kuzzle 2.49.1 → 2.50.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/copy-protobuf.js +17 -0
- package/dist/lib/api/controllers/adminController.d.ts +51 -0
- package/dist/lib/api/controllers/adminController.js +191 -0
- package/{lib → dist/lib}/api/controllers/authController.d.ts +20 -40
- package/{lib → dist/lib}/api/controllers/authController.js +23 -24
- package/dist/lib/api/controllers/bulkController.d.ts +46 -0
- package/dist/lib/api/controllers/bulkController.js +132 -0
- package/dist/lib/api/controllers/clusterController.d.ts +6 -0
- package/{lib → dist/lib}/api/controllers/clusterController.js +7 -11
- package/dist/lib/api/controllers/collectionController.d.ts +136 -0
- package/dist/lib/api/controllers/collectionController.js +356 -0
- package/dist/lib/api/controllers/documentController.d.ts +181 -0
- package/dist/lib/api/controllers/documentController.js +768 -0
- package/dist/lib/api/controllers/index.d.ts +12 -0
- package/{lib → dist/lib}/api/controllers/index.js +13 -14
- package/dist/lib/api/controllers/indexController.d.ts +65 -0
- package/dist/lib/api/controllers/indexController.js +139 -0
- package/dist/lib/api/controllers/memoryStorageController.d.ts +8 -0
- package/dist/lib/api/controllers/memoryStorageController.js +867 -0
- package/dist/lib/api/controllers/realtimeController.d.ts +47 -0
- package/dist/lib/api/controllers/realtimeController.js +128 -0
- package/dist/lib/api/controllers/securityController.d.ts +423 -0
- package/dist/lib/api/controllers/securityController.js +1139 -0
- package/dist/lib/api/controllers/serverController.d.ts +82 -0
- package/dist/lib/api/controllers/serverController.js +321 -0
- package/dist/lib/api/documentExtractor.d.ts +9 -0
- package/dist/lib/api/documentExtractor.js +274 -0
- package/dist/lib/api/funnel.d.ts +183 -0
- package/dist/lib/api/funnel.js +821 -0
- package/dist/lib/api/httpRoutes.d.ts +17 -0
- package/dist/lib/api/httpRoutes.js +1496 -0
- package/dist/lib/api/rateLimiter.d.ts +18 -0
- package/dist/lib/api/rateLimiter.js +74 -0
- package/{lib → dist/lib}/api/request/kuzzleRequest.d.ts +2 -2
- package/{lib → dist/lib}/api/request/requestContext.d.ts +2 -1
- package/dist/lib/cluster/command.d.ts +73 -0
- package/dist/lib/cluster/command.js +236 -0
- package/dist/lib/cluster/index.d.ts +2 -0
- package/{lib → dist/lib}/cluster/index.js +1 -2
- package/dist/lib/cluster/node.d.ts +278 -0
- package/dist/lib/cluster/node.js +876 -0
- package/dist/lib/cluster/publisher.d.ts +188 -0
- package/dist/lib/cluster/publisher.js +347 -0
- package/dist/lib/cluster/subscriber.d.ts +269 -0
- package/dist/lib/cluster/subscriber.js +555 -0
- package/dist/lib/cluster/workers/IDCardRenewer.d.ts +13 -0
- package/dist/lib/cluster/workers/IDCardRenewer.js +120 -0
- package/{lib → dist/lib}/config/documentEventAliases.d.ts +1 -2
- package/dist/lib/config/index.d.ts +5 -0
- package/dist/lib/config/index.js +244 -0
- package/dist/lib/config/sdkCompatibility.json +9 -0
- package/dist/lib/core/auth/formatProcessing.d.ts +30 -0
- package/dist/lib/core/auth/formatProcessing.js +55 -0
- package/dist/lib/core/auth/passportResponse.d.ts +15 -0
- package/{lib → dist/lib}/core/auth/passportResponse.js +24 -30
- package/dist/lib/core/auth/passportWrapper.d.ts +28 -0
- package/dist/lib/core/auth/passportWrapper.js +126 -0
- package/{lib → dist/lib}/core/backend/backendConfig.js +2 -2
- package/{lib → dist/lib}/core/backend/backendErrors.js +9 -12
- package/dist/lib/core/cache/cacheEngine.d.ts +15 -0
- package/dist/lib/core/cache/cacheEngine.js +205 -0
- package/dist/lib/core/network/accessLogger.d.ts +29 -0
- package/dist/lib/core/network/accessLogger.js +250 -0
- package/dist/lib/core/network/clientConnection.d.ts +15 -0
- package/{lib → dist/lib}/core/network/clientConnection.js +17 -24
- package/dist/lib/core/network/context.d.ts +42 -0
- package/dist/lib/core/network/context.js +57 -0
- package/dist/lib/core/network/entryPoint.d.ts +62 -0
- package/dist/lib/core/network/entryPoint.js +261 -0
- package/dist/lib/core/network/httpRouter/index.d.ts +85 -0
- package/dist/lib/core/network/httpRouter/index.js +258 -0
- package/dist/lib/core/network/httpRouter/routeHandler.d.ts +46 -0
- package/dist/lib/core/network/httpRouter/routeHandler.js +101 -0
- package/dist/lib/core/network/httpRouter/routePart.d.ts +35 -0
- package/dist/lib/core/network/httpRouter/routePart.js +117 -0
- package/dist/lib/core/network/protocolManifest.d.ts +6 -0
- package/{lib → dist/lib}/core/network/protocolManifest.js +5 -9
- package/dist/lib/core/network/protocols/httpMessage.d.ts +22 -0
- package/dist/lib/core/network/protocols/httpMessage.js +62 -0
- package/dist/lib/core/network/protocols/httpwsProtocol.d.ts +171 -0
- package/dist/lib/core/network/protocols/httpwsProtocol.js +921 -0
- package/dist/lib/core/network/protocols/internalProtocol.d.ts +27 -0
- package/dist/lib/core/network/protocols/internalProtocol.js +82 -0
- package/dist/lib/core/network/protocols/mqttProtocol.d.ts +39 -0
- package/dist/lib/core/network/protocols/mqttProtocol.js +219 -0
- package/dist/lib/core/network/protocols/protocol.d.ts +26 -0
- package/dist/lib/core/network/protocols/protocol.js +74 -0
- package/dist/lib/core/network/router.d.ts +49 -0
- package/dist/lib/core/network/router.js +193 -0
- package/dist/lib/core/plugin/plugin.d.ts +56 -0
- package/dist/lib/core/plugin/plugin.js +282 -0
- package/{lib → dist/lib}/core/plugin/pluginContext.js +2 -2
- package/dist/lib/core/plugin/pluginManifest.d.ts +5 -0
- package/{lib → dist/lib}/core/plugin/pluginManifest.js +16 -27
- package/dist/lib/core/plugin/pluginRepository.d.ts +53 -0
- package/dist/lib/core/plugin/pluginRepository.js +112 -0
- package/dist/lib/core/plugin/pluginsManager.d.ts +190 -0
- package/dist/lib/core/plugin/pluginsManager.js +817 -0
- package/dist/lib/core/plugin/privilegedContext.d.ts +14 -0
- package/{lib → dist/lib}/core/plugin/privilegedContext.js +10 -14
- package/dist/lib/core/realtime/actionEnum.d.ts +25 -0
- package/{lib → dist/lib}/core/realtime/actionEnum.js +7 -10
- package/dist/lib/core/realtime/index.d.ts +8 -0
- package/{lib → dist/lib}/core/realtime/index.js +9 -13
- package/dist/lib/core/realtime/notification/document.d.ts +34 -0
- package/dist/lib/core/realtime/notification/document.js +98 -0
- package/dist/lib/core/realtime/notification/index.d.ts +3 -0
- package/{lib → dist/lib}/core/realtime/notification/index.js +4 -5
- package/dist/lib/core/realtime/notification/server.d.ts +17 -0
- package/{lib → dist/lib}/core/realtime/notification/server.js +8 -10
- package/dist/lib/core/realtime/notification/user.d.ts +29 -0
- package/dist/lib/core/realtime/notification/user.js +66 -0
- package/dist/lib/core/realtime/notifier.d.ts +171 -0
- package/dist/lib/core/realtime/notifier.js +405 -0
- package/dist/lib/core/security/index.d.ts +14 -0
- package/{lib → dist/lib}/core/security/index.js +15 -19
- package/dist/lib/core/security/roleRepository.d.ts +143 -0
- package/dist/lib/core/security/roleRepository.js +445 -0
- package/dist/lib/core/security/securityLoader.d.ts +24 -0
- package/dist/lib/core/security/securityLoader.js +125 -0
- package/{lib → dist/lib}/core/security/tokenRepository.js +1 -1
- package/dist/lib/core/security/userRepository.d.ts +81 -0
- package/dist/lib/core/security/userRepository.js +346 -0
- package/dist/lib/core/shared/abstractManifest.d.ts +27 -0
- package/dist/lib/core/shared/abstractManifest.js +85 -0
- package/dist/lib/core/shared/sdk/impersonatedSdk.d.ts +7 -0
- package/dist/lib/core/shared/sdk/impersonatedSdk.js +80 -0
- package/{lib → dist/lib}/core/shared/store.d.ts +2 -2
- package/dist/lib/core/statistics/statistics.d.ts +94 -0
- package/dist/lib/core/statistics/statistics.js +287 -0
- package/dist/lib/core/storage/clientAdapter.d.ts +62 -0
- package/dist/lib/core/storage/clientAdapter.js +756 -0
- package/dist/lib/core/storage/storageEngine.d.ts +13 -0
- package/dist/lib/core/storage/storageEngine.js +52 -0
- package/dist/lib/core/validation/baseType.d.ts +35 -0
- package/dist/lib/core/validation/baseType.js +70 -0
- package/dist/lib/core/validation/types/anything.d.ts +10 -0
- package/{lib → dist/lib}/core/validation/types/anything.js +7 -10
- package/dist/lib/core/validation/types/boolean.d.ts +16 -0
- package/{lib → dist/lib}/core/validation/types/boolean.js +18 -23
- package/dist/lib/core/validation/types/date.d.ts +17 -0
- package/dist/lib/core/validation/types/date.js +215 -0
- package/dist/lib/core/validation/types/email.d.ts +17 -0
- package/dist/lib/core/validation/types/email.js +80 -0
- package/dist/lib/core/validation/types/enum.d.ts +17 -0
- package/dist/lib/core/validation/types/enum.js +70 -0
- package/dist/lib/core/validation/types/geoPoint.d.ts +17 -0
- package/{lib → dist/lib}/core/validation/types/geoPoint.js +19 -24
- package/dist/lib/core/validation/types/geoShape.d.ts +31 -0
- package/dist/lib/core/validation/types/geoShape.js +280 -0
- package/dist/lib/core/validation/types/integer.d.ts +7 -0
- package/{lib → dist/lib}/core/validation/types/integer.js +21 -27
- package/dist/lib/core/validation/types/ipAddress.d.ts +17 -0
- package/dist/lib/core/validation/types/ipAddress.js +73 -0
- package/dist/lib/core/validation/types/numeric.d.ts +17 -0
- package/dist/lib/core/validation/types/numeric.js +84 -0
- package/dist/lib/core/validation/types/object.d.ts +24 -0
- package/dist/lib/core/validation/types/object.js +74 -0
- package/dist/lib/core/validation/types/string.d.ts +17 -0
- package/dist/lib/core/validation/types/string.js +85 -0
- package/dist/lib/core/validation/types/url.d.ts +17 -0
- package/dist/lib/core/validation/types/url.js +73 -0
- package/dist/lib/core/validation/validation.d.ts +113 -0
- package/dist/lib/core/validation/validation.js +692 -0
- package/dist/lib/kerror/codes/0-core.json +194 -0
- package/dist/lib/kerror/codes/1-services.json +351 -0
- package/dist/lib/kerror/codes/2-api.json +195 -0
- package/dist/lib/kerror/codes/3-network.json +151 -0
- package/dist/lib/kerror/codes/4-plugin.json +498 -0
- package/dist/lib/kerror/codes/5-validation.json +158 -0
- package/dist/lib/kerror/codes/6-protocol.json +28 -0
- package/dist/lib/kerror/codes/7-security.json +283 -0
- package/dist/lib/kerror/codes/8-cluster.json +16 -0
- package/dist/lib/kerror/codes/index.d.ts +24 -0
- package/dist/lib/kerror/codes/index.js +140 -0
- package/{lib → dist/lib}/kerror/index.d.ts +5 -5
- package/{lib → dist/lib}/kuzzle/Logger.d.ts +6 -0
- package/{lib → dist/lib}/kuzzle/Logger.js +26 -5
- package/dist/lib/kuzzle/dumpGenerator.d.ts +14 -0
- package/dist/lib/kuzzle/dumpGenerator.js +180 -0
- package/dist/lib/kuzzle/event/pipeRunner.d.ts +30 -0
- package/dist/lib/kuzzle/event/pipeRunner.js +119 -0
- package/dist/lib/kuzzle/event/waterfall.d.ts +2 -0
- package/dist/lib/kuzzle/event/waterfall.js +90 -0
- package/dist/lib/kuzzle/internalIndexHandler.d.ts +186 -0
- package/dist/lib/kuzzle/internalIndexHandler.js +174 -0
- package/{lib → dist/lib}/kuzzle/kuzzle.d.ts +6 -7
- package/{lib → dist/lib}/kuzzle/kuzzle.js +5 -2
- package/dist/lib/kuzzle/kuzzleStateEnum.d.ts +20 -0
- package/{lib → dist/lib}/kuzzle/kuzzleStateEnum.js +5 -8
- package/dist/lib/kuzzle/vault.d.ts +2 -0
- package/dist/lib/kuzzle/vault.js +63 -0
- package/dist/lib/model/security/rights.d.ts +8 -0
- package/{lib → dist/lib}/model/security/rights.js +4 -8
- package/{lib → dist/lib}/model/security/role.d.ts +1 -1
- package/{lib → dist/lib}/model/security/user.d.ts +1 -0
- package/dist/lib/model/storage/apiKey.d.ts +49 -0
- package/dist/lib/model/storage/apiKey.js +126 -0
- package/dist/lib/model/storage/baseModel.d.ts +100 -0
- package/dist/lib/model/storage/baseModel.js +211 -0
- package/dist/lib/service/cache/redis.d.ts +74 -0
- package/dist/lib/service/cache/redis.js +237 -0
- package/dist/lib/service/service.d.ts +30 -0
- package/dist/lib/service/service.js +74 -0
- package/{lib → dist/lib}/service/storage/7/elasticsearch.d.ts +2 -2
- package/{lib → dist/lib}/service/storage/7/elasticsearch.js +23 -25
- package/dist/lib/service/storage/7/esWrapper.d.ts +19 -0
- package/dist/lib/service/storage/7/esWrapper.js +245 -0
- package/{lib → dist/lib}/service/storage/8/elasticsearch.js +23 -25
- package/dist/lib/service/storage/8/esWrapper.d.ts +19 -0
- package/dist/lib/service/storage/8/esWrapper.js +245 -0
- package/{lib → dist/lib}/types/Plugin.d.ts +1 -1
- package/{lib/types → dist/lib/types/controllers}/Controller.d.ts +2 -2
- package/{lib/types → dist/lib/types/controllers}/ControllerDefinition.d.ts +1 -1
- package/dist/lib/types/controllers/adminControlller.type.d.ts +5 -0
- package/dist/lib/types/controllers/adminControlller.type.js +3 -0
- package/dist/lib/types/controllers/authController.type.d.ts +5 -0
- package/dist/lib/types/controllers/authController.type.js +3 -0
- package/dist/lib/types/core/auth/formatProcessing.type.d.ts +7 -0
- package/dist/lib/types/core/auth/formatProcessing.type.js +3 -0
- package/{lib → dist/lib}/types/index.d.ts +3 -3
- package/{lib → dist/lib}/types/index.js +3 -3
- package/dist/lib/util/assertType.d.ts +41 -0
- package/{lib → dist/lib}/util/assertType.js +38 -56
- package/dist/lib/util/asyncStore.d.ts +38 -0
- package/dist/lib/util/asyncStore.js +70 -0
- package/dist/lib/util/bytes.d.ts +2 -0
- package/dist/lib/util/bytes.js +33 -0
- package/dist/lib/util/debug.d.ts +2 -0
- package/{lib → dist/lib}/util/debug.js +15 -23
- package/dist/lib/util/deprecate.d.ts +1 -0
- package/dist/lib/util/deprecate.js +64 -0
- package/dist/lib/util/didYouMean.d.ts +2 -0
- package/{lib → dist/lib}/util/didYouMean.js +9 -15
- package/dist/lib/util/extractFields.d.ts +17 -0
- package/{lib → dist/lib}/util/extractFields.js +18 -32
- package/dist/lib/util/memoize.d.ts +7 -0
- package/{lib → dist/lib}/util/memoize.js +14 -21
- package/dist/lib/util/promback.d.ts +13 -0
- package/dist/lib/util/promback.js +60 -0
- package/dist/lib/util/requestAssertions.d.ts +10 -0
- package/dist/lib/util/requestAssertions.js +143 -0
- package/dist/lib/util/safeObject.d.ts +3 -0
- package/{lib → dist/lib}/util/safeObject.js +7 -13
- package/dist/lib/util/stackTrace.d.ts +19 -0
- package/{lib → dist/lib}/util/stackTrace.js +35 -41
- package/dist/lib/util/wildcard.d.ts +1 -0
- package/{lib → dist/lib}/util/wildcard.js +21 -30
- package/dist/package.json +119 -0
- package/package.json +44 -58
- package/bin/start-kuzzle-server +0 -126
- package/check-node-version.js +0 -17
- package/lib/api/controllers/adminController.js +0 -229
- package/lib/api/controllers/bulkController.js +0 -210
- package/lib/api/controllers/collectionController.js +0 -502
- package/lib/api/controllers/documentController.js +0 -1156
- package/lib/api/controllers/indexController.js +0 -179
- package/lib/api/controllers/memoryStorageController.js +0 -1023
- package/lib/api/controllers/realtimeController.js +0 -155
- package/lib/api/controllers/securityController.js +0 -1571
- package/lib/api/controllers/serverController.js +0 -381
- package/lib/api/documentExtractor.js +0 -309
- package/lib/api/funnel.js +0 -1143
- package/lib/api/httpRoutes.js +0 -1547
- package/lib/api/rateLimiter.js +0 -87
- package/lib/cluster/command.js +0 -284
- package/lib/cluster/node.js +0 -1203
- package/lib/cluster/publisher.js +0 -386
- package/lib/cluster/subscriber.js +0 -776
- package/lib/cluster/workers/IDCardRenewer.js +0 -144
- package/lib/config/index.js +0 -351
- package/lib/config/sdkCompatibility.json +0 -9
- package/lib/core/auth/formatProcessing.js +0 -66
- package/lib/core/auth/passportWrapper.js +0 -126
- package/lib/core/cache/cacheEngine.js +0 -278
- package/lib/core/network/accessLogger.js +0 -322
- package/lib/core/network/context.js +0 -80
- package/lib/core/network/entryPoint.js +0 -358
- package/lib/core/network/httpRouter/index.js +0 -316
- package/lib/core/network/httpRouter/routeHandler.js +0 -111
- package/lib/core/network/httpRouter/routePart.js +0 -147
- package/lib/core/network/protocols/httpMessage.js +0 -69
- package/lib/core/network/protocols/httpwsProtocol.js +0 -1254
- package/lib/core/network/protocols/internalProtocol.js +0 -109
- package/lib/core/network/protocols/mqttProtocol.js +0 -291
- package/lib/core/network/protocols/protocol.js +0 -102
- package/lib/core/network/router.js +0 -255
- package/lib/core/plugin/plugin.js +0 -436
- package/lib/core/plugin/pluginRepository.js +0 -132
- package/lib/core/plugin/pluginsManager.js +0 -1244
- package/lib/core/realtime/notification/document.js +0 -108
- package/lib/core/realtime/notification/user.js +0 -70
- package/lib/core/realtime/notifier.js +0 -541
- package/lib/core/security/README.md +0 -223
- package/lib/core/security/roleRepository.js +0 -569
- package/lib/core/security/securityLoader.js +0 -174
- package/lib/core/security/userRepository.js +0 -446
- package/lib/core/shared/README.md +0 -3
- package/lib/core/shared/abstractManifest.js +0 -102
- package/lib/core/shared/sdk/impersonatedSdk.js +0 -94
- package/lib/core/statistics/index.js +0 -24
- package/lib/core/statistics/statistics.js +0 -373
- package/lib/core/storage/clientAdapter.js +0 -1045
- package/lib/core/storage/storageEngine.js +0 -63
- package/lib/core/validation/baseType.js +0 -80
- package/lib/core/validation/index.js +0 -24
- package/lib/core/validation/types/date.js +0 -284
- package/lib/core/validation/types/email.js +0 -92
- package/lib/core/validation/types/enum.js +0 -100
- package/lib/core/validation/types/geoShape.js +0 -370
- package/lib/core/validation/types/ipAddress.js +0 -83
- package/lib/core/validation/types/numeric.js +0 -108
- package/lib/core/validation/types/object.js +0 -88
- package/lib/core/validation/types/string.js +0 -110
- package/lib/core/validation/types/url.js +0 -83
- package/lib/core/validation/validation.js +0 -1180
- package/lib/kerror/codes/0-core.json +0 -194
- package/lib/kerror/codes/1-services.json +0 -351
- package/lib/kerror/codes/2-api.json +0 -195
- package/lib/kerror/codes/3-network.json +0 -151
- package/lib/kerror/codes/4-plugin.json +0 -498
- package/lib/kerror/codes/5-validation.json +0 -158
- package/lib/kerror/codes/6-protocol.json +0 -28
- package/lib/kerror/codes/7-security.json +0 -283
- package/lib/kerror/codes/8-cluster.json +0 -16
- package/lib/kerror/codes/index.js +0 -208
- package/lib/kuzzle/dumpGenerator.js +0 -259
- package/lib/kuzzle/event/pipeRunner.js +0 -144
- package/lib/kuzzle/event/waterfall.js +0 -101
- package/lib/kuzzle/internalIndexHandler.js +0 -234
- package/lib/kuzzle/vault.js +0 -89
- package/lib/model/storage/apiKey.js +0 -158
- package/lib/model/storage/baseModel.js +0 -275
- package/lib/service/cache/redis.js +0 -282
- package/lib/service/service.js +0 -84
- package/lib/service/storage/7/esWrapper.js +0 -303
- package/lib/service/storage/8/esWrapper.js +0 -303
- package/lib/util/asyncStore.js +0 -112
- package/lib/util/bytes.js +0 -36
- package/lib/util/deprecate.js +0 -82
- package/lib/util/promback.js +0 -66
- package/lib/util/readYamlFile.d.ts +0 -2
- package/lib/util/readYamlFile.js +0 -10
- package/lib/util/requestAssertions.js +0 -157
- /package/{index.d.ts → dist/index.d.ts} +0 -0
- /package/{index.js → dist/index.js} +0 -0
- /package/{lib → dist/lib}/api/controllers/baseController.d.ts +0 -0
- /package/{lib → dist/lib}/api/controllers/baseController.js +0 -0
- /package/{lib → dist/lib}/api/controllers/debugController.d.ts +0 -0
- /package/{lib → dist/lib}/api/controllers/debugController.js +0 -0
- /package/{lib → dist/lib}/api/openapi/OpenApiManager.d.ts +0 -0
- /package/{lib → dist/lib}/api/openapi/OpenApiManager.js +0 -0
- /package/{lib → dist/lib}/api/openapi/index.d.ts +0 -0
- /package/{lib → dist/lib}/api/openapi/index.js +0 -0
- /package/{lib → dist/lib}/api/openapi/openApiGenerator.d.ts +0 -0
- /package/{lib → dist/lib}/api/openapi/openApiGenerator.js +0 -0
- /package/{lib → dist/lib}/api/request/index.d.ts +0 -0
- /package/{lib → dist/lib}/api/request/index.js +0 -0
- /package/{lib → dist/lib}/api/request/kuzzleRequest.js +0 -0
- /package/{lib → dist/lib}/api/request/requestContext.js +0 -0
- /package/{lib → dist/lib}/api/request/requestInput.d.ts +0 -0
- /package/{lib → dist/lib}/api/request/requestInput.js +0 -0
- /package/{lib → dist/lib}/api/request/requestResponse.d.ts +0 -0
- /package/{lib → dist/lib}/api/request/requestResponse.js +0 -0
- /package/{lib → dist/lib}/cluster/idCardHandler.d.ts +0 -0
- /package/{lib → dist/lib}/cluster/idCardHandler.js +0 -0
- /package/{lib → dist/lib}/cluster/protobuf/command.proto +0 -0
- /package/{lib → dist/lib}/cluster/protobuf/sync.proto +0 -0
- /package/{lib → dist/lib}/cluster/state.d.ts +0 -0
- /package/{lib → dist/lib}/cluster/state.js +0 -0
- /package/{lib → dist/lib}/config/default.config.d.ts +0 -0
- /package/{lib → dist/lib}/config/default.config.js +0 -0
- /package/{lib → dist/lib}/config/documentEventAliases.js +0 -0
- /package/{lib → dist/lib}/core/auth/tokenManager.d.ts +0 -0
- /package/{lib → dist/lib}/core/auth/tokenManager.js +0 -0
- /package/{lib → dist/lib}/core/backend/applicationManager.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/applicationManager.js +0 -0
- /package/{lib → dist/lib}/core/backend/backend.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backend.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendCluster.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendCluster.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendConfig.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendController.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendController.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendErrors.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendHook.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendHook.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendImport.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendImport.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendOpenApi.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendOpenApi.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendPipe.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendPipe.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendPlugin.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendPlugin.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendStorage.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendStorage.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendSubscription.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendSubscription.js +0 -0
- /package/{lib → dist/lib}/core/backend/backendVault.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/backendVault.js +0 -0
- /package/{lib → dist/lib}/core/backend/index.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/index.js +0 -0
- /package/{lib → dist/lib}/core/backend/internalLogger.d.ts +0 -0
- /package/{lib → dist/lib}/core/backend/internalLogger.js +0 -0
- /package/{lib → dist/lib}/core/cache/cacheDbEnum.d.ts +0 -0
- /package/{lib → dist/lib}/core/cache/cacheDbEnum.js +0 -0
- /package/{lib → dist/lib}/core/debug/kuzzleDebugger.d.ts +0 -0
- /package/{lib → dist/lib}/core/debug/kuzzleDebugger.js +0 -0
- /package/{lib → dist/lib}/core/plugin/pluginContext.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/channel.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/channel.js +0 -0
- /package/{lib → dist/lib}/core/realtime/connectionRooms.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/connectionRooms.js +0 -0
- /package/{lib → dist/lib}/core/realtime/hotelClerk.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/hotelClerk.js +0 -0
- /package/{lib → dist/lib}/core/realtime/room.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/room.js +0 -0
- /package/{lib → dist/lib}/core/realtime/subscription.d.ts +0 -0
- /package/{lib → dist/lib}/core/realtime/subscription.js +0 -0
- /package/{lib → dist/lib}/core/security/profileRepository.d.ts +0 -0
- /package/{lib → dist/lib}/core/security/profileRepository.js +0 -0
- /package/{lib → dist/lib}/core/security/tokenRepository.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/KoncordeWrapper.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/KoncordeWrapper.js +0 -0
- /package/{lib → dist/lib}/core/shared/ObjectRepository.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/ObjectRepository.js +0 -0
- /package/{lib → dist/lib}/core/shared/sdk/embeddedSdk.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/sdk/embeddedSdk.js +0 -0
- /package/{lib → dist/lib}/core/shared/sdk/funnelProtocol.d.ts +0 -0
- /package/{lib → dist/lib}/core/shared/sdk/funnelProtocol.js +0 -0
- /package/{lib → dist/lib}/core/shared/store.js +0 -0
- /package/{lib → dist/lib}/core/storage/indexCache.d.ts +0 -0
- /package/{lib → dist/lib}/core/storage/indexCache.js +0 -0
- /package/{lib → dist/lib}/core/storage/storeScopeEnum.d.ts +0 -0
- /package/{lib → dist/lib}/core/storage/storeScopeEnum.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/badRequestError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/badRequestError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/externalServiceError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/externalServiceError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/forbiddenError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/forbiddenError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/gatewayTimeoutError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/gatewayTimeoutError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/index.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/index.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/internalError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/internalError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/kuzzleError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/kuzzleError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/multipleErrorsError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/multipleErrorsError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/notFoundError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/notFoundError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/partialError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/partialError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/pluginImplementationError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/pluginImplementationError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/preconditionError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/preconditionError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/serviceUnavailableError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/serviceUnavailableError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/sizeLimitError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/sizeLimitError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/tooManyRequestsError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/tooManyRequestsError.js +0 -0
- /package/{lib → dist/lib}/kerror/errors/unauthorizedError.d.ts +0 -0
- /package/{lib → dist/lib}/kerror/errors/unauthorizedError.js +0 -0
- /package/{lib → dist/lib}/kerror/index.js +0 -0
- /package/{lib → dist/lib}/kuzzle/event/KuzzleEventEmitter.d.ts +0 -0
- /package/{lib → dist/lib}/kuzzle/event/KuzzleEventEmitter.js +0 -0
- /package/{lib → dist/lib}/kuzzle/index.d.ts +0 -0
- /package/{lib → dist/lib}/kuzzle/index.js +0 -0
- /package/{lib → dist/lib}/model/security/profile.d.ts +0 -0
- /package/{lib → dist/lib}/model/security/profile.js +0 -0
- /package/{lib → dist/lib}/model/security/role.js +0 -0
- /package/{lib → dist/lib}/model/security/token.d.ts +0 -0
- /package/{lib → dist/lib}/model/security/token.js +0 -0
- /package/{lib → dist/lib}/model/security/user.js +0 -0
- /package/{lib → dist/lib}/service/storage/8/elasticsearch.d.ts +0 -0
- /package/{lib → dist/lib}/service/storage/Elasticsearch.d.ts +0 -0
- /package/{lib → dist/lib}/service/storage/Elasticsearch.js +0 -0
- /package/{lib → dist/lib}/service/storage/commons/queryTranslator.d.ts +0 -0
- /package/{lib → dist/lib}/service/storage/commons/queryTranslator.js +0 -0
- /package/{lib → dist/lib}/types/ClientConnection.d.ts +0 -0
- /package/{lib → dist/lib}/types/ClientConnection.js +0 -0
- /package/{lib → dist/lib}/types/Deprecation.d.ts +0 -0
- /package/{lib → dist/lib}/types/Deprecation.js +0 -0
- /package/{lib → dist/lib}/types/EventHandler.d.ts +0 -0
- /package/{lib → dist/lib}/types/EventHandler.js +0 -0
- /package/{lib → dist/lib}/types/Global.d.ts +0 -0
- /package/{lib → dist/lib}/types/Global.js +0 -0
- /package/{lib → dist/lib}/types/HttpMessage.d.ts +0 -0
- /package/{lib → dist/lib}/types/HttpMessage.js +0 -0
- /package/{lib → dist/lib}/types/HttpStream.d.ts +0 -0
- /package/{lib → dist/lib}/types/HttpStream.js +0 -0
- /package/{lib → dist/lib}/types/Kuzzle.d.ts +0 -0
- /package/{lib → dist/lib}/types/Kuzzle.js +0 -0
- /package/{lib → dist/lib}/types/KuzzleDocument.d.ts +0 -0
- /package/{lib → dist/lib}/types/KuzzleDocument.js +0 -0
- /package/{lib → dist/lib}/types/OpenApiDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/OpenApiDefinition.js +0 -0
- /package/{lib → dist/lib}/types/PasswordPolicy.d.ts +0 -0
- /package/{lib → dist/lib}/types/PasswordPolicy.js +0 -0
- /package/{lib → dist/lib}/types/Plugin.js +0 -0
- /package/{lib → dist/lib}/types/PluginManifest.d.ts +0 -0
- /package/{lib → dist/lib}/types/PluginManifest.js +0 -0
- /package/{lib → dist/lib}/types/Policy.d.ts +0 -0
- /package/{lib → dist/lib}/types/Policy.js +0 -0
- /package/{lib → dist/lib}/types/PolicyRestrictions.d.ts +0 -0
- /package/{lib → dist/lib}/types/PolicyRestrictions.js +0 -0
- /package/{lib → dist/lib}/types/ProfileDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/ProfileDefinition.js +0 -0
- /package/{lib → dist/lib}/types/RoleDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/RoleDefinition.js +0 -0
- /package/{lib → dist/lib}/types/StrategyDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/StrategyDefinition.js +0 -0
- /package/{lib → dist/lib}/types/Target.d.ts +0 -0
- /package/{lib → dist/lib}/types/Target.js +0 -0
- /package/{lib → dist/lib}/types/Token.d.ts +0 -0
- /package/{lib → dist/lib}/types/Token.js +0 -0
- /package/{lib → dist/lib}/types/User.d.ts +0 -0
- /package/{lib → dist/lib}/types/User.js +0 -0
- /package/{lib → dist/lib}/types/config/DumpConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/DumpConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/HttpConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/HttpConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/KuzzleConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/KuzzleConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/LimitsConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/LimitsConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/PluginsConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/PluginsConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/SecurityConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/SecurityConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/ServerConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/ServerConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/ServicesConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/ServicesConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/internalCache/InternalCacheRedisConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/internalCache/InternalCacheRedisConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/publicCache/PublicCacheRedisConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/publicCache/PublicCacheRedisConfiguration.js +0 -0
- /package/{lib → dist/lib}/types/config/storageEngine/StorageEngineElasticsearchConfiguration.d.ts +0 -0
- /package/{lib → dist/lib}/types/config/storageEngine/StorageEngineElasticsearchConfiguration.js +0 -0
- /package/{lib/types → dist/lib/types/controllers}/Controller.js +0 -0
- /package/{lib/types → dist/lib/types/controllers}/ControllerDefinition.js +0 -0
- /package/{lib/types → dist/lib/types/controllers}/ControllerRights.d.ts +0 -0
- /package/{lib/types → dist/lib/types/controllers}/ControllerRights.js +0 -0
- /package/{lib → dist/lib}/types/errors/ErrorDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/errors/ErrorDefinition.js +0 -0
- /package/{lib → dist/lib}/types/errors/ErrorDomains.d.ts +0 -0
- /package/{lib → dist/lib}/types/errors/ErrorDomains.js +0 -0
- /package/{lib → dist/lib}/types/events/EventGenericDocument.d.ts +0 -0
- /package/{lib → dist/lib}/types/events/EventGenericDocument.js +0 -0
- /package/{lib → dist/lib}/types/events/EventProtocol.d.ts +0 -0
- /package/{lib → dist/lib}/types/events/EventProtocol.js +0 -0
- /package/{lib → dist/lib}/types/realtime/RealtimeScope.d.ts +0 -0
- /package/{lib → dist/lib}/types/realtime/RealtimeScope.js +0 -0
- /package/{lib → dist/lib}/types/realtime/RealtimeUsers.d.ts +0 -0
- /package/{lib → dist/lib}/types/realtime/RealtimeUsers.js +0 -0
- /package/{lib → dist/lib}/types/realtime/RoomList.d.ts +0 -0
- /package/{lib → dist/lib}/types/realtime/RoomList.js +0 -0
- /package/{lib → dist/lib}/types/shared/StoreCollectionsDefinition.d.ts +0 -0
- /package/{lib → dist/lib}/types/shared/StoreCollectionsDefinition.js +0 -0
- /package/{lib → dist/lib}/types/storage/7/Elasticsearch.d.ts +0 -0
- /package/{lib → dist/lib}/types/storage/7/Elasticsearch.js +0 -0
- /package/{lib → dist/lib}/types/storage/8/Elasticsearch.d.ts +0 -0
- /package/{lib → dist/lib}/types/storage/8/Elasticsearch.js +0 -0
- /package/{lib → dist/lib}/util/Inflector.d.ts +0 -0
- /package/{lib → dist/lib}/util/Inflector.js +0 -0
- /package/{lib → dist/lib}/util/array.d.ts +0 -0
- /package/{lib → dist/lib}/util/array.js +0 -0
- /package/{lib → dist/lib}/util/async.d.ts +0 -0
- /package/{lib → dist/lib}/util/async.js +0 -0
- /package/{lib → dist/lib}/util/bufferedPassThrough.d.ts +0 -0
- /package/{lib → dist/lib}/util/bufferedPassThrough.js +0 -0
- /package/{lib → dist/lib}/util/crypto.d.ts +0 -0
- /package/{lib → dist/lib}/util/crypto.js +0 -0
- /package/{lib → dist/lib}/util/dump-collection.d.ts +0 -0
- /package/{lib → dist/lib}/util/dump-collection.js +0 -0
- /package/{lib → dist/lib}/util/esRequest.d.ts +0 -0
- /package/{lib → dist/lib}/util/esRequest.js +0 -0
- /package/{lib → dist/lib}/util/koncordeCompat.d.ts +0 -0
- /package/{lib → dist/lib}/util/koncordeCompat.js +0 -0
- /package/{lib → dist/lib}/util/mutex.d.ts +0 -0
- /package/{lib → dist/lib}/util/mutex.js +0 -0
- /package/{lib → dist/lib}/util/name-generator.d.ts +0 -0
- /package/{lib → dist/lib}/util/name-generator.js +0 -0
- /package/{lib → dist/lib}/util/time.d.ts +0 -0
- /package/{lib → dist/lib}/util/time.js +0 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
export = ClusterPublisher;
|
|
2
|
+
declare class ClusterPublisher {
|
|
3
|
+
/**
|
|
4
|
+
* @constructor
|
|
5
|
+
* @param {ClusterNode} node
|
|
6
|
+
*/
|
|
7
|
+
constructor(node: ClusterNode);
|
|
8
|
+
node: ClusterNode;
|
|
9
|
+
lastMessageId: Long;
|
|
10
|
+
socket: Publisher;
|
|
11
|
+
protoroot: protobuf.Root;
|
|
12
|
+
state: 1;
|
|
13
|
+
buffer: any[];
|
|
14
|
+
init(): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Publishes an event telling them that this node has created a new room
|
|
17
|
+
*
|
|
18
|
+
* @param {NormalizedFilter} normalized - Obtained with Koncorde.normalize()
|
|
19
|
+
* @return {Long} ID of the message sent to other nodes
|
|
20
|
+
*/
|
|
21
|
+
sendNewRealtimeRoom(normalized: NormalizedFilter): Long;
|
|
22
|
+
/**
|
|
23
|
+
* Publishes an event telling telling them that this node
|
|
24
|
+
* no longer has subscribers on the provided realtime room.
|
|
25
|
+
*
|
|
26
|
+
* @param {string} roomId
|
|
27
|
+
* @return {Long} ID of the message sent to other nodes
|
|
28
|
+
*/
|
|
29
|
+
sendRemoveRealtimeRoom(roomId: string): Long;
|
|
30
|
+
/**
|
|
31
|
+
* Publishes an event telling that a room has one less subscriber
|
|
32
|
+
* @param {string} roomId
|
|
33
|
+
* @return {Long} ID of the message sent to other nodes
|
|
34
|
+
*/
|
|
35
|
+
sendUnsubscription(roomId: string): Long;
|
|
36
|
+
/**
|
|
37
|
+
* Publishes an event telling that a new subscription has been made
|
|
38
|
+
* made to an existing room
|
|
39
|
+
*
|
|
40
|
+
* @param {string} roomId
|
|
41
|
+
* @return {Long} Id of the message sent to other nodes
|
|
42
|
+
*/
|
|
43
|
+
sendSubscription(roomId: string): Long;
|
|
44
|
+
/**
|
|
45
|
+
* Publishes an event telling that a document notification must be
|
|
46
|
+
* propagated
|
|
47
|
+
*
|
|
48
|
+
* @param {Array.<string>} rooms - Koncorde rooms
|
|
49
|
+
* @param {DocumentNotification} notification
|
|
50
|
+
* @return {Long} Id of the message sent to other nodes
|
|
51
|
+
*/
|
|
52
|
+
sendDocumentNotification(rooms: Array<string>, notification: DocumentNotification): Long;
|
|
53
|
+
/**
|
|
54
|
+
* Publishes an event telling that a user notification must be
|
|
55
|
+
* propagated
|
|
56
|
+
*
|
|
57
|
+
* @param {string} room - Koncorde room
|
|
58
|
+
* @param {UserNotification} notification
|
|
59
|
+
* @return {Long} Id of the message sent to other nodes
|
|
60
|
+
*/
|
|
61
|
+
sendUserNotification(room: string, notification: UserNotification): Long;
|
|
62
|
+
/**
|
|
63
|
+
* Publishes an event telling that a new authentication strategy has been
|
|
64
|
+
* dynamically added
|
|
65
|
+
*
|
|
66
|
+
* @param {string} strategyName
|
|
67
|
+
* @param {string} pluginName
|
|
68
|
+
* @param {Object} strategy
|
|
69
|
+
* @return {Long} Id of the message sent to other nodes
|
|
70
|
+
*/
|
|
71
|
+
sendNewAuthStrategy(strategyName: string, pluginName: string, strategy: any): Long;
|
|
72
|
+
/**
|
|
73
|
+
* Publishes an event telling that a new authentication strategy has been
|
|
74
|
+
* dynamically added
|
|
75
|
+
*
|
|
76
|
+
* @param {string} strategyName
|
|
77
|
+
* @param {string} pluginName
|
|
78
|
+
* @param {Object} strategyObject
|
|
79
|
+
* @return {Long} Id of the message sent to other nodes
|
|
80
|
+
*/
|
|
81
|
+
sendRemoveAuthStrategy(strategyName: string, pluginName: string): Long;
|
|
82
|
+
/**
|
|
83
|
+
* Publishes an event telling other nodes to create an info dump
|
|
84
|
+
*
|
|
85
|
+
* @param {string} suffix - dump directory suffix name
|
|
86
|
+
* @returns {Long} ID of the message sent
|
|
87
|
+
*/
|
|
88
|
+
sendDumpRequest(suffix: string): Long;
|
|
89
|
+
/**
|
|
90
|
+
* Publishes an event about a new index being added
|
|
91
|
+
*
|
|
92
|
+
* @param {storeScopeEnum} scope
|
|
93
|
+
* @param {string} index
|
|
94
|
+
* @returns {Long} ID of the message sent
|
|
95
|
+
*/
|
|
96
|
+
sendAddIndex(scope: storeScopeEnum, index: string): Long;
|
|
97
|
+
/**
|
|
98
|
+
* Publishes an event about a new collection being added
|
|
99
|
+
*
|
|
100
|
+
* @param {storeScopeEnum} scope
|
|
101
|
+
* @param {string} index
|
|
102
|
+
* @param {string} collection
|
|
103
|
+
* @returns {Long} ID of the message sent
|
|
104
|
+
*/
|
|
105
|
+
sendAddCollection(scope: storeScopeEnum, index: string, collection: string): Long;
|
|
106
|
+
/**
|
|
107
|
+
* Publishes an event about indexes been removed
|
|
108
|
+
*
|
|
109
|
+
* @param {storeScopeEnum} scope
|
|
110
|
+
* @param {Array.<string>} indexes
|
|
111
|
+
* @returns {Long} ID of the message sent
|
|
112
|
+
*/
|
|
113
|
+
sendRemoveIndexes(scope: storeScopeEnum, indexes: Array<string>): Long;
|
|
114
|
+
/**
|
|
115
|
+
* Publishes an event about a collection been removed
|
|
116
|
+
*
|
|
117
|
+
* @param {storeScopeEnum} scope
|
|
118
|
+
* @param {string} index
|
|
119
|
+
* @param {string} collection
|
|
120
|
+
* @returns {Long} ID of the message sent
|
|
121
|
+
*/
|
|
122
|
+
sendRemoveCollection(scope: storeScopeEnum, index: string, collection: string): Long;
|
|
123
|
+
/**
|
|
124
|
+
* Publishes an event about a cluster-wide event emission
|
|
125
|
+
*
|
|
126
|
+
* @param {string} event name
|
|
127
|
+
* @param {Object} payload - event payload
|
|
128
|
+
* @returns {Long} ID of the message sent
|
|
129
|
+
*/
|
|
130
|
+
sendClusterWideEvent(event: string, payload: any): Long;
|
|
131
|
+
/**
|
|
132
|
+
* Publishes an event about shutdown
|
|
133
|
+
*
|
|
134
|
+
* @param {Object} nodeId - node ID
|
|
135
|
+
*
|
|
136
|
+
* @returns {Long} ID of the message sent
|
|
137
|
+
*/
|
|
138
|
+
sendNodeShutdown(nodeId: any): Long;
|
|
139
|
+
/**
|
|
140
|
+
* Publishes an event about the node being in debug mode
|
|
141
|
+
* @param {bool} evictionPrevented
|
|
142
|
+
*
|
|
143
|
+
* @returns {Long} ID of the message sent
|
|
144
|
+
*/
|
|
145
|
+
sendNodePreventEviction(evictionPrevented: bool): Long;
|
|
146
|
+
/**
|
|
147
|
+
* Publishes an event about a node being evicted
|
|
148
|
+
*
|
|
149
|
+
* @param {string} evictor node ID of the evictor
|
|
150
|
+
* @param {Object} nodeId - node ID of the node being evicted
|
|
151
|
+
* @param {Object} reason - reason of the eviction
|
|
152
|
+
*
|
|
153
|
+
* @returns {Long} ID of the message sent
|
|
154
|
+
*/
|
|
155
|
+
sendNodeEvicted(evictor: string, nodeId: any, reason: any): Long;
|
|
156
|
+
/**
|
|
157
|
+
* Publishes an event about heartbeat
|
|
158
|
+
*
|
|
159
|
+
* @param {string} address node sync address
|
|
160
|
+
*
|
|
161
|
+
* @returns {Long} ID of the message sent
|
|
162
|
+
*/
|
|
163
|
+
sendHeartbeat(address: string): Long;
|
|
164
|
+
/**
|
|
165
|
+
* Broadcasts a sync message. Topic must match a protobuf type name.
|
|
166
|
+
* Returns immediately, but the message to be sent migh be bufferized and send
|
|
167
|
+
* later.
|
|
168
|
+
*
|
|
169
|
+
* @param {String} topic name
|
|
170
|
+
* @param {Object} data
|
|
171
|
+
* @returns {Long} ID of the message sent
|
|
172
|
+
* @throws If the topic's protobuf type cannot be found
|
|
173
|
+
*/
|
|
174
|
+
send(topic: string, data: any): Long;
|
|
175
|
+
/**
|
|
176
|
+
* Sends the provided message, and then sends all pending ones waiting in
|
|
177
|
+
* the buffer, in order
|
|
178
|
+
*
|
|
179
|
+
* @param {string} topic
|
|
180
|
+
* @param {Buffer} data
|
|
181
|
+
* @return {void}
|
|
182
|
+
*/
|
|
183
|
+
bufferSend(topic: string, data: Buffer): void;
|
|
184
|
+
dispose(): Promise<void>;
|
|
185
|
+
}
|
|
186
|
+
import Long = require("long/umd/types");
|
|
187
|
+
import { Publisher } from "zeromq";
|
|
188
|
+
import protobuf = require("protobufjs");
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Kuzzle, a backend software, self-hostable and ready to use
|
|
3
|
+
* to power modern apps
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2015-2022 Kuzzle
|
|
6
|
+
* mailto: support AT kuzzle.io
|
|
7
|
+
* website: http://kuzzle.io
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
10
|
+
* you may not use this file except in compliance with the License.
|
|
11
|
+
* You may obtain a copy of the License at
|
|
12
|
+
*
|
|
13
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
14
|
+
*
|
|
15
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
16
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18
|
+
* See the License for the specific language governing permissions and
|
|
19
|
+
* limitations under the License.
|
|
20
|
+
*/
|
|
21
|
+
"use strict";
|
|
22
|
+
const { Publisher } = require("zeromq");
|
|
23
|
+
const protobuf = require("protobufjs");
|
|
24
|
+
const Long = require("long");
|
|
25
|
+
const Bluebird = require("bluebird");
|
|
26
|
+
const STATE = Object.freeze({
|
|
27
|
+
READY: 1,
|
|
28
|
+
SENDING: 2,
|
|
29
|
+
});
|
|
30
|
+
// Handles messages publication to other nodes
|
|
31
|
+
class ClusterPublisher {
|
|
32
|
+
/**
|
|
33
|
+
* @constructor
|
|
34
|
+
* @param {ClusterNode} node
|
|
35
|
+
*/
|
|
36
|
+
constructor(node) {
|
|
37
|
+
this.node = node;
|
|
38
|
+
this.lastMessageId = new Long(0, 0, true);
|
|
39
|
+
this.socket = null;
|
|
40
|
+
this.protoroot = null;
|
|
41
|
+
// Only one call to socket.send can be performed at any given time, and it
|
|
42
|
+
// must be awaited before another send is launched.
|
|
43
|
+
// Since cluster syncs are triggered on events emitted by Kuzzle, and since
|
|
44
|
+
// those events aren't awaitable, many send requests can be requested
|
|
45
|
+
// before a single one has time to finish. We need to handle that here,
|
|
46
|
+
// by bufferizing requests to send
|
|
47
|
+
this.state = STATE.READY;
|
|
48
|
+
this.buffer = [];
|
|
49
|
+
}
|
|
50
|
+
async init() {
|
|
51
|
+
this.socket = new Publisher();
|
|
52
|
+
await this.socket.bind(`tcp://*:${this.node.config.ports.sync}`);
|
|
53
|
+
this.protoroot = await protobuf.load(`${__dirname}/protobuf/sync.proto`);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Publishes an event telling them that this node has created a new room
|
|
57
|
+
*
|
|
58
|
+
* @param {NormalizedFilter} normalized - Obtained with Koncorde.normalize()
|
|
59
|
+
* @return {Long} ID of the message sent to other nodes
|
|
60
|
+
*/
|
|
61
|
+
sendNewRealtimeRoom(normalized) {
|
|
62
|
+
const payload = {
|
|
63
|
+
filter: JSON.stringify(normalized.filter),
|
|
64
|
+
id: normalized.id,
|
|
65
|
+
index: normalized.index,
|
|
66
|
+
};
|
|
67
|
+
return this.send("NewRealtimeRoom", payload);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Publishes an event telling telling them that this node
|
|
71
|
+
* no longer has subscribers on the provided realtime room.
|
|
72
|
+
*
|
|
73
|
+
* @param {string} roomId
|
|
74
|
+
* @return {Long} ID of the message sent to other nodes
|
|
75
|
+
*/
|
|
76
|
+
sendRemoveRealtimeRoom(roomId) {
|
|
77
|
+
return this.send("RemoveRealtimeRoom", { roomId });
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Publishes an event telling that a room has one less subscriber
|
|
81
|
+
* @param {string} roomId
|
|
82
|
+
* @return {Long} ID of the message sent to other nodes
|
|
83
|
+
*/
|
|
84
|
+
sendUnsubscription(roomId) {
|
|
85
|
+
return this.send("Unsubscription", { roomId });
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Publishes an event telling that a new subscription has been made
|
|
89
|
+
* made to an existing room
|
|
90
|
+
*
|
|
91
|
+
* @param {string} roomId
|
|
92
|
+
* @return {Long} Id of the message sent to other nodes
|
|
93
|
+
*/
|
|
94
|
+
sendSubscription(roomId) {
|
|
95
|
+
return this.send("Subscription", { roomId });
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Publishes an event telling that a document notification must be
|
|
99
|
+
* propagated
|
|
100
|
+
*
|
|
101
|
+
* @param {Array.<string>} rooms - Koncorde rooms
|
|
102
|
+
* @param {DocumentNotification} notification
|
|
103
|
+
* @return {Long} Id of the message sent to other nodes
|
|
104
|
+
*/
|
|
105
|
+
sendDocumentNotification(rooms, notification) {
|
|
106
|
+
return this.send("DocumentNotification", {
|
|
107
|
+
action: notification.action,
|
|
108
|
+
collection: notification.collection,
|
|
109
|
+
controller: notification.controller,
|
|
110
|
+
index: notification.index,
|
|
111
|
+
protocol: notification.protocol,
|
|
112
|
+
requestId: notification.requestId,
|
|
113
|
+
result: JSON.stringify(notification.result),
|
|
114
|
+
rooms,
|
|
115
|
+
scope: notification.scope,
|
|
116
|
+
status: notification.status,
|
|
117
|
+
timestamp: notification.timestamp,
|
|
118
|
+
volatile: JSON.stringify(notification.volatile),
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Publishes an event telling that a user notification must be
|
|
123
|
+
* propagated
|
|
124
|
+
*
|
|
125
|
+
* @param {string} room - Koncorde room
|
|
126
|
+
* @param {UserNotification} notification
|
|
127
|
+
* @return {Long} Id of the message sent to other nodes
|
|
128
|
+
*/
|
|
129
|
+
sendUserNotification(room, notification) {
|
|
130
|
+
return this.send("UserNotification", {
|
|
131
|
+
action: notification.action,
|
|
132
|
+
collection: notification.collection,
|
|
133
|
+
controller: notification.controller,
|
|
134
|
+
index: notification.index,
|
|
135
|
+
protocol: notification.protocol,
|
|
136
|
+
result: JSON.stringify(notification.result),
|
|
137
|
+
room,
|
|
138
|
+
status: notification.status,
|
|
139
|
+
timestamp: notification.timestamp,
|
|
140
|
+
user: notification.user,
|
|
141
|
+
volatile: JSON.stringify(notification.volatile),
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Publishes an event telling that a new authentication strategy has been
|
|
146
|
+
* dynamically added
|
|
147
|
+
*
|
|
148
|
+
* @param {string} strategyName
|
|
149
|
+
* @param {string} pluginName
|
|
150
|
+
* @param {Object} strategy
|
|
151
|
+
* @return {Long} Id of the message sent to other nodes
|
|
152
|
+
*/
|
|
153
|
+
sendNewAuthStrategy(strategyName, pluginName, strategy) {
|
|
154
|
+
return this.send("NewAuthStrategy", {
|
|
155
|
+
pluginName,
|
|
156
|
+
strategy,
|
|
157
|
+
strategyName,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Publishes an event telling that a new authentication strategy has been
|
|
162
|
+
* dynamically added
|
|
163
|
+
*
|
|
164
|
+
* @param {string} strategyName
|
|
165
|
+
* @param {string} pluginName
|
|
166
|
+
* @param {Object} strategyObject
|
|
167
|
+
* @return {Long} Id of the message sent to other nodes
|
|
168
|
+
*/
|
|
169
|
+
sendRemoveAuthStrategy(strategyName, pluginName) {
|
|
170
|
+
return this.send("RemoveAuthStrategy", {
|
|
171
|
+
pluginName,
|
|
172
|
+
strategyName,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Publishes an event telling other nodes to create an info dump
|
|
177
|
+
*
|
|
178
|
+
* @param {string} suffix - dump directory suffix name
|
|
179
|
+
* @returns {Long} ID of the message sent
|
|
180
|
+
*/
|
|
181
|
+
sendDumpRequest(suffix) {
|
|
182
|
+
return this.send("DumpRequest", { suffix });
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Publishes an event about a new index being added
|
|
186
|
+
*
|
|
187
|
+
* @param {storeScopeEnum} scope
|
|
188
|
+
* @param {string} index
|
|
189
|
+
* @returns {Long} ID of the message sent
|
|
190
|
+
*/
|
|
191
|
+
sendAddIndex(scope, index) {
|
|
192
|
+
return this.send("AddIndex", { index, scope });
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Publishes an event about a new collection being added
|
|
196
|
+
*
|
|
197
|
+
* @param {storeScopeEnum} scope
|
|
198
|
+
* @param {string} index
|
|
199
|
+
* @param {string} collection
|
|
200
|
+
* @returns {Long} ID of the message sent
|
|
201
|
+
*/
|
|
202
|
+
sendAddCollection(scope, index, collection) {
|
|
203
|
+
return this.send("AddCollection", { collection, index, scope });
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Publishes an event about indexes been removed
|
|
207
|
+
*
|
|
208
|
+
* @param {storeScopeEnum} scope
|
|
209
|
+
* @param {Array.<string>} indexes
|
|
210
|
+
* @returns {Long} ID of the message sent
|
|
211
|
+
*/
|
|
212
|
+
sendRemoveIndexes(scope, indexes) {
|
|
213
|
+
return this.send("RemoveIndexes", { indexes, scope });
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Publishes an event about a collection been removed
|
|
217
|
+
*
|
|
218
|
+
* @param {storeScopeEnum} scope
|
|
219
|
+
* @param {string} index
|
|
220
|
+
* @param {string} collection
|
|
221
|
+
* @returns {Long} ID of the message sent
|
|
222
|
+
*/
|
|
223
|
+
sendRemoveCollection(scope, index, collection) {
|
|
224
|
+
return this.send("RemoveCollection", { collection, index, scope });
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Publishes an event about a cluster-wide event emission
|
|
228
|
+
*
|
|
229
|
+
* @param {string} event name
|
|
230
|
+
* @param {Object} payload - event payload
|
|
231
|
+
* @returns {Long} ID of the message sent
|
|
232
|
+
*/
|
|
233
|
+
sendClusterWideEvent(event, payload) {
|
|
234
|
+
return this.send("ClusterWideEvent", {
|
|
235
|
+
event,
|
|
236
|
+
payload: JSON.stringify(payload),
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Publishes an event about shutdown
|
|
241
|
+
*
|
|
242
|
+
* @param {Object} nodeId - node ID
|
|
243
|
+
*
|
|
244
|
+
* @returns {Long} ID of the message sent
|
|
245
|
+
*/
|
|
246
|
+
sendNodeShutdown(nodeId) {
|
|
247
|
+
return this.send("NodeShutdown", { nodeId });
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Publishes an event about the node being in debug mode
|
|
251
|
+
* @param {bool} evictionPrevented
|
|
252
|
+
*
|
|
253
|
+
* @returns {Long} ID of the message sent
|
|
254
|
+
*/
|
|
255
|
+
sendNodePreventEviction(evictionPrevented) {
|
|
256
|
+
return this.send("NodePreventEviction", { evictionPrevented });
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Publishes an event about a node being evicted
|
|
260
|
+
*
|
|
261
|
+
* @param {string} evictor node ID of the evictor
|
|
262
|
+
* @param {Object} nodeId - node ID of the node being evicted
|
|
263
|
+
* @param {Object} reason - reason of the eviction
|
|
264
|
+
*
|
|
265
|
+
* @returns {Long} ID of the message sent
|
|
266
|
+
*/
|
|
267
|
+
sendNodeEvicted(evictor, nodeId, reason) {
|
|
268
|
+
return this.send("NodeEvicted", { evictor, nodeId, reason });
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Publishes an event about heartbeat
|
|
272
|
+
*
|
|
273
|
+
* @param {string} address node sync address
|
|
274
|
+
*
|
|
275
|
+
* @returns {Long} ID of the message sent
|
|
276
|
+
*/
|
|
277
|
+
sendHeartbeat(address) {
|
|
278
|
+
return this.send("Heartbeat", { address });
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Broadcasts a sync message. Topic must match a protobuf type name.
|
|
282
|
+
* Returns immediately, but the message to be sent migh be bufferized and send
|
|
283
|
+
* later.
|
|
284
|
+
*
|
|
285
|
+
* @param {String} topic name
|
|
286
|
+
* @param {Object} data
|
|
287
|
+
* @returns {Long} ID of the message sent
|
|
288
|
+
* @throws If the topic's protobuf type cannot be found
|
|
289
|
+
*/
|
|
290
|
+
send(topic, data) {
|
|
291
|
+
if (this.socket === null) {
|
|
292
|
+
return Long.NEG_ONE;
|
|
293
|
+
}
|
|
294
|
+
this.lastMessageId = this.lastMessageId.add(1);
|
|
295
|
+
const payload = Object.assign({ messageId: this.lastMessageId }, data);
|
|
296
|
+
const type = this.protoroot.lookupType(topic);
|
|
297
|
+
const buffer = type.encode(type.create(payload)).finish();
|
|
298
|
+
// DO NOT AWAIT: bufferSend is built to bufferize payloads to be sent, and
|
|
299
|
+
// it makes sure that they are sent in order and serially (0mq publisher
|
|
300
|
+
// sockets can only send 1 message at a time, otherwise it throws with a
|
|
301
|
+
// EAGAIN error)
|
|
302
|
+
// Awaiting this method has no practical use. If you DO want to await it
|
|
303
|
+
// (don't), then you have to first make a local copy of this.lastMessageId
|
|
304
|
+
// to make sure that the value returned to the caller has not been
|
|
305
|
+
// increased by other calls
|
|
306
|
+
this.bufferSend(topic, buffer);
|
|
307
|
+
return this.lastMessageId;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Sends the provided message, and then sends all pending ones waiting in
|
|
311
|
+
* the buffer, in order
|
|
312
|
+
*
|
|
313
|
+
* @param {string} topic
|
|
314
|
+
* @param {Buffer} data
|
|
315
|
+
* @return {void}
|
|
316
|
+
*/
|
|
317
|
+
async bufferSend(topic, data) {
|
|
318
|
+
this.buffer.push({ data, topic });
|
|
319
|
+
if (this.state === STATE.SENDING) {
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
this.state = STATE.SENDING;
|
|
323
|
+
do {
|
|
324
|
+
const _buffer = this.buffer;
|
|
325
|
+
this.buffer = [];
|
|
326
|
+
for (let i = 0; i < _buffer.length; i++) {
|
|
327
|
+
const payload = _buffer[i];
|
|
328
|
+
// This method will never return a rejected promise
|
|
329
|
+
// http://zeromq.github.io/zeromq.js/classes/publisher.html#send
|
|
330
|
+
await this.socket.send([payload.topic, payload.data]);
|
|
331
|
+
}
|
|
332
|
+
} while (this.buffer.length > 0);
|
|
333
|
+
this.state = STATE.READY;
|
|
334
|
+
}
|
|
335
|
+
async dispose() {
|
|
336
|
+
// waits for the buffer to be empty before closing
|
|
337
|
+
while (this.state !== STATE.READY) {
|
|
338
|
+
await Bluebird.delay(100);
|
|
339
|
+
}
|
|
340
|
+
if (this.socket !== null) {
|
|
341
|
+
this.socket.close();
|
|
342
|
+
this.socket = null;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
module.exports = ClusterPublisher;
|
|
347
|
+
//# sourceMappingURL=publisher.js.map
|