### Is there an existing issue for this?

- [X] I have searched the existing issues

### Enhancement description

Kinesis Mock is preparing a switch to a Javascript executable offering, which will remove the old GraalVM executables. This should be much easier to work with from Localstack's perspective, as well as remove the java dependency for users. But I'm unsure as to how to approach this in Localstack's code base, and am looking for some guidance / direction.

The current plan is to have 2 GitHub release assets:
- main.js
- main.js.map

To start the service, you'd simply do `./main.js`, as it should be an executable. You can use `node main.js` as well. 

I also plan to publish this to NPM if that is an easier grab for localstack. 

References:

https://github.com/etspaceman/kinesis-mock/pull/531
https://github.com/etspaceman/kinesis-mock/blob/scalajs/docker/Dockerfile


### 🧑‍💻 Implementation

Update these lines to execute a nodejs command instead:

https://github.com/localstack/localstack/blob/master/localstack/services/kinesis/kinesis_mock_server.py#L101

Upgrade this to the newest version (planning for 0.4.0):

https://github.com/localstack/localstack/blob/master/localstack/services/kinesis/kinesis_mock_server.py#L101

Update this to get the `main.js` file for all platforms:

https://github.com/localstack/localstack/blob/master/localstack/services/kinesis/kinesis_mock_server.py#L101



### Anything else?

_No response_
"CREATE_STREAM_DURATION",
            "DELETE_STREAM_DURATION",
            "REGISTER_STREAM_CONSUMER_DURATION",
            "START_STREAM_ENCRYPTION_DURATION",
            "STOP_STREAM_ENCRYPTION_DURATION",
            "DEREGISTER_STREAM_CONSUMER_DURATION",
            "MERGE_SHARDS_DURATION",
            "SPLIT_SHARD_DURATION",
            "UPDATE_SHARD_COUNT_DURATION",
            "UPDATE_STREAM_MODE_DURATION",
        ]
        for param in latency_params:
            env_vars[param] = self._latency
        if self._data_dir:
            env_vars["SHOULD_PERSIST_DATA"] = "true"
            env_vars["PERSIST_PATH"] = self._data_dir
            env_vars["PERSIST_FILE_NAME"] = self._data_filename
            env_vars["PERSIST_INTERVAL"] = config.KINESIS_MOCK_PERSIST_INTERVAL
        env_vars["LOG_LEVEL"] = self._log_level
        if self._initialize_streams:
            env_vars["INITIALIZE_STREAMS"] = self._initialize_streams
        if self._bin_path.endswith(".jar"):
            cmd = ["java", "-XX:+UseG1GC", "-jar", self._bin_path]
        else:
            chmod_r(self._bin_path, 0o777)
            cmd = [self._bin_path, "--gc=G1"]
        return cmd, env_vars
    def _log_listener(self, line, **_kwargs):
        LOG.info(line.rstrip())
class KinesisServerManager: