gitextract_5br62wbj/ ├── .dockerignore ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ └── bug_report.md │ └── workflows/ │ ├── lint-test.yml │ └── release.yml ├── .gitignore ├── .gitmodules ├── .npmignore ├── CHANGELOG.md ├── Dockerfile ├── Dockerfile.alpine ├── LICENSE ├── README.md ├── SECURITY.md ├── ascii-logo.txt ├── bin/ │ ├── deepstream-cluster.ts │ ├── deepstream-daemon.ts │ ├── deepstream-hash.ts │ ├── deepstream-info.ts │ ├── deepstream-nginx.ts │ ├── deepstream-service.ts │ ├── deepstream-start.ts │ └── deepstream.ts ├── conf/ │ ├── config.yml │ ├── permissions.yml │ └── users.yml ├── package.json ├── scripts/ │ ├── connector/ │ │ ├── package-connector.sh │ │ └── test-connector.sh │ ├── details.js │ ├── executable-test.js │ ├── license-aggregator.js │ ├── linux-package.sh │ ├── linux-test.sh │ ├── node-test.js │ ├── package.sh │ ├── pkg.js │ ├── release.sh │ ├── resources/ │ │ ├── PackageInfo │ │ ├── daemon/ │ │ │ ├── after-install │ │ │ ├── after-upgrade │ │ │ ├── before-remove │ │ │ └── before-upgrade │ │ ├── missing-licenses.txt │ │ └── node.rc │ ├── sanity-test.sh │ ├── setup.sh │ ├── trigger-build.sh │ └── tsc.sh ├── src/ │ ├── config/ │ │ ├── config-initialiser.spec.ts │ │ ├── config-initialiser.ts │ │ ├── config-validator.ts │ │ ├── ds-info.ts │ │ ├── file-utils.spec.ts │ │ ├── file-utils.ts │ │ ├── js-yaml-loader.spec.ts │ │ └── js-yaml-loader.ts │ ├── connection-endpoint/ │ │ ├── base/ │ │ │ ├── connection-endpoint.spec.ts │ │ │ ├── connection-endpoint.ts │ │ │ └── socket-wrapper.ts │ │ ├── http/ │ │ │ ├── connection-endpoint.spec.ts │ │ │ ├── connection-endpoint.ts │ │ │ └── socket-wrapper.ts │ │ ├── mqtt/ │ │ │ ├── connection-endpoint.ts │ │ │ ├── message-parser.ts │ │ │ └── socket-wrapper-factory.ts │ │ └── websocket/ │ │ ├── binary/ │ │ │ ├── connection-endpoint.ts │ │ │ └── socket-wrapper-factory.ts │ │ ├── json/ │ │ │ ├── connection-endpoint.ts │ │ │ └── socket-wrapper-factory.ts │ │ └── text/ │ │ ├── connection-endpoint.ts │ │ ├── socket-wrapper-factory.ts │ │ └── text-protocol/ │ │ ├── constants.ts │ │ ├── message-builder.ts │ │ ├── message-parser.ts │ │ └── utils.ts │ ├── constants.ts │ ├── deepstream.io.spec.ts │ ├── deepstream.io.ts │ ├── default-options.ts │ ├── handlers/ │ │ ├── event/ │ │ │ ├── event-handler.spec.ts │ │ │ └── event-handler.ts │ │ ├── monitoring/ │ │ │ └── monitoring.ts │ │ ├── presence/ │ │ │ ├── presence-handler.spec.ts │ │ │ └── presence-handler.ts │ │ ├── record/ │ │ │ ├── record-deletion.spec.ts │ │ │ ├── record-deletion.ts │ │ │ ├── record-handler-permission.spec.ts │ │ │ ├── record-handler.spec.ts │ │ │ ├── record-handler.ts │ │ │ ├── record-request.spec.ts │ │ │ ├── record-request.ts │ │ │ ├── record-transition.spec.ts │ │ │ ├── record-transition.ts │ │ │ ├── record-write-acknowledgement.spec.ts │ │ │ └── test-messages.ts │ │ └── rpc/ │ │ ├── rpc-handler.spec.ts │ │ ├── rpc-handler.ts │ │ ├── rpc-proxy.spec.ts │ │ ├── rpc-proxy.ts │ │ └── rpc.ts │ ├── jif/ │ │ ├── jif-handler.spec.ts │ │ ├── jif-handler.ts │ │ └── jif-schema.ts │ ├── listen/ │ │ ├── listener-registry.spec.ts │ │ ├── listener-registry.ts │ │ └── listener-test-utils.ts │ ├── plugins/ │ │ └── heap-snapshot/ │ │ └── heap-snapshot.ts │ ├── service/ │ │ ├── daemon.ts │ │ ├── service.ts │ │ └── template/ │ │ ├── initd.ts │ │ └── systemd.ts │ ├── services/ │ │ ├── authentication/ │ │ │ ├── combine/ │ │ │ │ └── combine-authentication.ts │ │ │ ├── file/ │ │ │ │ ├── file-based-authentication.spec.ts │ │ │ │ └── file-based-authentication.ts │ │ │ ├── http/ │ │ │ │ ├── http-authentication.spec.ts │ │ │ │ └── http-authentication.ts │ │ │ ├── open/ │ │ │ │ ├── open-authentication.spec.ts │ │ │ │ └── open-authentication.ts │ │ │ └── storage/ │ │ │ └── storage-based-authentication.ts │ │ ├── cache/ │ │ │ ├── local-cache.spec.ts │ │ │ └── local-cache.ts │ │ ├── cluster-node/ │ │ │ ├── single-cluster-node.ts │ │ │ └── vertical-cluster-node.ts │ │ ├── cluster-registry/ │ │ │ ├── distributed-cluster-registry.ts │ │ │ └── distributed-state-registry-factory.ts │ │ ├── cluster-state/ │ │ │ ├── distributed-state-registry-factory.ts │ │ │ ├── distributed-state-registry.ts │ │ │ └── single-state-registry.ts │ │ ├── http/ │ │ │ ├── node/ │ │ │ │ └── node-http.ts │ │ │ └── uws/ │ │ │ └── uws-http.ts │ │ ├── lock/ │ │ │ └── distributed-lock-registry.ts │ │ ├── logger/ │ │ │ ├── pino/ │ │ │ │ └── pino-logger.ts │ │ │ └── std/ │ │ │ ├── std-out-logger.spec.ts │ │ │ └── std-out-logger.ts │ │ ├── monitoring/ │ │ │ ├── combine-monitoring.ts │ │ │ ├── http/ │ │ │ │ ├── monitoring-http.spec.ts │ │ │ │ └── monitoring-http.ts │ │ │ ├── log/ │ │ │ │ ├── monitoring-log.spec.ts │ │ │ │ └── monitoring-log.ts │ │ │ ├── monitoring-base.ts │ │ │ └── noop-monitoring.ts │ │ ├── permission/ │ │ │ ├── open/ │ │ │ │ ├── open-permission.spec.ts │ │ │ │ └── open-permission.ts │ │ │ └── valve/ │ │ │ ├── config-compiler.spec.ts │ │ │ ├── config-compiler.ts │ │ │ ├── config-permission-basic.spec.ts │ │ │ ├── config-permission-create.spec.ts │ │ │ ├── config-permission-cross-reference.spec.ts │ │ │ ├── config-permission-load.spec.ts │ │ │ ├── config-permission-nested-cross-reference.spec.ts │ │ │ ├── config-permission-other.spec.ts │ │ │ ├── config-permission-record-patch.spec.ts │ │ │ ├── config-permission.ts │ │ │ ├── config-schema.ts │ │ │ ├── config-validator.spec.ts │ │ │ ├── config-validator.ts │ │ │ ├── path-parser.spec.ts │ │ │ ├── path-parser.ts │ │ │ ├── rule-application.ts │ │ │ ├── rule-cache.spec.ts │ │ │ ├── rule-cache.ts │ │ │ ├── rule-parser.spec.ts │ │ │ ├── rule-parser.ts │ │ │ ├── rules-map.spec.ts │ │ │ └── rules-map.ts │ │ ├── storage/ │ │ │ ├── noop-storage.spec.ts │ │ │ └── noop-storage.ts │ │ ├── subscription-registry/ │ │ │ ├── default-subscription-registry-factory.ts │ │ │ ├── default-subscription-registry.spec.ts │ │ │ └── default-subscription-registry.ts │ │ └── telemetry/ │ │ └── deepstreamio-telemetry.ts │ ├── test/ │ │ ├── common.ts │ │ ├── config/ │ │ │ ├── basic-permission-config.json │ │ │ ├── basic-valid-json.json │ │ │ ├── blank-config.json │ │ │ ├── config-broken.js │ │ │ ├── config-broken.yml │ │ │ ├── config.js │ │ │ ├── config.yml │ │ │ ├── empty-map-config.json │ │ │ ├── exists-test/ │ │ │ │ ├── a-file.js │ │ │ │ ├── a-file.yml │ │ │ │ └── a-json-file.json │ │ │ ├── invalid-permission-conf.json │ │ │ ├── invalid-user-config.json │ │ │ ├── json-with-env-variables.json │ │ │ ├── no-private-events-permission-config.json │ │ │ ├── sslKey.pem │ │ │ ├── users-unhashed.json │ │ │ └── users.json │ │ ├── helper/ │ │ │ ├── start-test-server.ts │ │ │ ├── test-helper.ts │ │ │ ├── test-http-server.ts │ │ │ └── test-mocks.ts │ │ └── mock/ │ │ ├── authentication-handler-mock.ts │ │ ├── http-mock.ts │ │ ├── logger-mock.ts │ │ ├── message-connector-mock.ts │ │ ├── permission-handler-mock.ts │ │ ├── plugin-mock.ts │ │ ├── socket-mock.ts │ │ ├── socket-wrapper-factory-mock.ts │ │ └── storage-mock.ts │ └── utils/ │ ├── dependency-initialiser.spec.ts │ ├── dependency-initialiser.ts │ ├── json-path.spec.ts │ ├── json-path.ts │ ├── message-distributor.spec.ts │ ├── message-distributor.ts │ ├── message-processor.spec.ts │ ├── message-processor.ts │ ├── utils.spec.ts │ └── utils.ts ├── telemetry-server/ │ ├── package.json │ ├── telemetry-server.config.js │ └── telemetry-server.ts ├── test-e2e/ │ ├── config/ │ │ ├── permissions-complex.json │ │ └── permissions-open.json │ ├── framework/ │ │ ├── client-handler.ts │ │ ├── client.ts │ │ ├── event.ts │ │ ├── listening.ts │ │ ├── presence.ts │ │ ├── record.ts │ │ ├── rpc.ts │ │ ├── utils.ts │ │ └── world.ts │ ├── framework-v3/ │ │ ├── client-handler.ts │ │ ├── client.ts │ │ ├── event.ts │ │ ├── listening.ts │ │ ├── presence.ts │ │ ├── record.ts │ │ ├── rpc.ts │ │ ├── utils.ts │ │ └── world.ts │ ├── steps/ │ │ ├── client/ │ │ │ ├── client-definition-step.ts │ │ │ ├── connection-steps.ts │ │ │ ├── event-steps.ts │ │ │ ├── listening-steps.ts │ │ │ ├── presence-steps.ts │ │ │ ├── record-steps.ts │ │ │ └── rpc-steps.ts │ │ ├── http/ │ │ │ └── http-steps.ts │ │ └── server/ │ │ └── step-definition-server.ts │ └── tools/ │ ├── e2e-authentication.ts │ ├── e2e-cluster-node.ts │ ├── e2e-harness.ts │ ├── e2e-logger.ts │ └── e2e-server-config.ts ├── tsconfig.json ├── tslint.json └── types/ ├── global.d.ts └── uws.d.ts