kuzzle 2.56.0 → 2.57.0-beta.2
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-binaries.js +71 -4
- package/dist/bin/start-kuzzle-server +191 -97
- package/dist/index.d.ts +31 -1
- package/dist/index.js +45 -2
- package/dist/lib/api/controllers/adminController.d.ts +4 -3
- package/dist/lib/api/controllers/adminController.js +1 -2
- package/dist/lib/api/controllers/authController.d.ts +37 -16
- package/dist/lib/api/controllers/authController.js +88 -39
- package/dist/lib/api/controllers/baseController.d.ts +10 -5
- package/dist/lib/api/controllers/baseController.js +36 -15
- package/dist/lib/api/controllers/bulkController.d.ts +11 -7
- package/dist/lib/api/controllers/bulkController.js +28 -5
- package/dist/lib/api/controllers/clusterController.d.ts +2 -2
- package/dist/lib/api/controllers/clusterController.js +3 -3
- package/dist/lib/api/controllers/collectionController.d.ts +57 -21
- package/dist/lib/api/controllers/collectionController.js +40 -11
- package/dist/lib/api/controllers/debugController.d.ts +1 -1
- package/dist/lib/api/controllers/documentController.d.ts +137 -28
- package/dist/lib/api/controllers/documentController.js +156 -125
- package/dist/lib/api/controllers/index.d.ts +27 -12
- package/dist/lib/api/controllers/index.js +28 -13
- package/dist/lib/api/controllers/indexController.d.ts +17 -10
- package/dist/lib/api/controllers/indexController.js +13 -11
- package/dist/lib/api/controllers/memoryStorageController.d.ts +2 -5
- package/dist/lib/api/controllers/memoryStorageController.js +199 -127
- package/dist/lib/api/controllers/realtimeController.d.ts +19 -9
- package/dist/lib/api/controllers/realtimeController.js +8 -4
- package/dist/lib/api/controllers/securityController.d.ts +42 -29
- package/dist/lib/api/controllers/securityController.js +35 -19
- package/dist/lib/api/controllers/serverController.d.ts +114 -19
- package/dist/lib/api/controllers/serverController.js +69 -29
- package/dist/lib/api/documentExtractor.d.ts +9 -7
- package/dist/lib/api/documentExtractor.js +105 -41
- package/dist/lib/api/funnel.d.ts +131 -29
- package/dist/lib/api/funnel.js +436 -225
- package/dist/lib/api/httpRoutes.d.ts +16 -11
- package/dist/lib/api/httpRoutes.js +272 -2
- package/dist/lib/api/openapi/OpenApiManager.d.ts +1 -1
- package/dist/lib/api/openapi/openApiGenerator.d.ts +1 -1
- package/dist/lib/api/rateLimiter.d.ts +15 -5
- package/dist/lib/api/rateLimiter.js +42 -14
- package/dist/lib/api/request/kuzzleRequest.d.ts +83 -12
- package/dist/lib/api/request/kuzzleRequest.js +88 -23
- package/dist/lib/api/request/requestContext.d.ts +20 -5
- package/dist/lib/api/request/requestContext.js +14 -4
- package/dist/lib/api/request/requestInput.d.ts +37 -6
- package/dist/lib/api/request/requestInput.js +22 -9
- package/dist/lib/api/request/requestResponse.d.ts +45 -9
- package/dist/lib/api/request/requestResponse.js +34 -3
- package/dist/lib/cluster/command.d.ts +131 -37
- package/dist/lib/cluster/command.js +243 -71
- package/dist/lib/cluster/idCardHandler.d.ts +18 -5
- package/dist/lib/cluster/idCardHandler.js +52 -19
- package/dist/lib/cluster/index.d.ts +8 -2
- package/dist/lib/cluster/index.js +6 -2
- package/dist/lib/cluster/node.d.ts +127 -49
- package/dist/lib/cluster/node.js +412 -179
- package/dist/lib/cluster/protobuf/command.proto +18 -0
- package/dist/lib/cluster/protobuf/commandMessages.d.ts +104 -0
- package/dist/lib/cluster/protobuf/commandMessages.js +30 -0
- package/dist/lib/cluster/protobuf/syncMessages.d.ts +184 -0
- package/dist/lib/cluster/protobuf/syncMessages.js +23 -0
- package/dist/lib/cluster/publisher.d.ts +118 -78
- package/dist/lib/cluster/publisher.js +174 -72
- package/dist/lib/cluster/state.d.ts +15 -9
- package/dist/lib/cluster/state.js +12 -8
- package/dist/lib/cluster/subscriber.d.ts +185 -131
- package/dist/lib/cluster/subscriber.js +357 -95
- package/dist/lib/cluster/workers/IDCardRenewer.d.ts +39 -8
- package/dist/lib/cluster/workers/IDCardRenewer.js +88 -23
- package/dist/lib/config/default.config.d.ts +2 -2
- package/dist/lib/config/default.config.js +10 -3
- package/dist/lib/config/documentEventAliases.d.ts +1 -1
- package/dist/lib/config/index.d.ts +2 -5
- package/dist/lib/config/index.js +30 -17
- package/dist/lib/core/auth/formatProcessing.d.ts +3 -3
- package/dist/lib/core/auth/passportResponse.d.ts +1 -1
- package/dist/lib/core/auth/passportWrapper.d.ts +1 -1
- package/dist/lib/core/auth/passportWrapper.js +14 -13
- package/dist/lib/core/auth/tokenManager.d.ts +24 -3
- package/dist/lib/core/auth/tokenManager.js +47 -19
- package/dist/lib/core/backend/applicationManager.d.ts +2 -2
- package/dist/lib/core/backend/backend.d.ts +16 -5
- package/dist/lib/core/backend/backend.js +14 -6
- package/dist/lib/core/backend/backendCluster.d.ts +1 -1
- package/dist/lib/core/backend/backendConfig.d.ts +17 -5
- package/dist/lib/core/backend/backendConfig.js +1 -0
- package/dist/lib/core/backend/backendController.d.ts +1 -1
- package/dist/lib/core/backend/backendController.js +8 -1
- package/dist/lib/core/backend/backendErrors.d.ts +15 -8
- package/dist/lib/core/backend/backendErrors.js +5 -0
- package/dist/lib/core/backend/backendHook.d.ts +1 -1
- package/dist/lib/core/backend/backendImport.d.ts +1 -1
- package/dist/lib/core/backend/backendOpenApi.d.ts +3 -2
- package/dist/lib/core/backend/backendPipe.d.ts +1 -1
- package/dist/lib/core/backend/backendPipe.js +9 -1
- package/dist/lib/core/backend/backendPlugin.d.ts +2 -2
- package/dist/lib/core/backend/backendSubscription.d.ts +2 -2
- package/dist/lib/core/backend/backendVault.d.ts +1 -1
- package/dist/lib/core/backend/backendVault.js +8 -1
- package/dist/lib/core/cache/cacheEngine.d.ts +7 -4
- package/dist/lib/core/cache/cacheEngine.js +25 -8
- package/dist/lib/core/debug/kuzzleDebugger.d.ts +2 -1
- package/dist/lib/core/debug/kuzzleDebugger.js +31 -17
- package/dist/lib/core/network/accessLogger.d.ts +33 -18
- package/dist/lib/core/network/accessLogger.js +135 -73
- package/dist/lib/core/network/clientConnection.d.ts +13 -11
- package/dist/lib/core/network/clientConnection.js +33 -9
- package/dist/lib/core/network/context.d.ts +17 -22
- package/dist/lib/core/network/context.js +43 -26
- package/dist/lib/core/network/entryPoint.d.ts +38 -16
- package/dist/lib/core/network/entryPoint.js +119 -48
- package/dist/lib/core/network/httpRouter/index.d.ts +20 -50
- package/dist/lib/core/network/httpRouter/index.js +61 -75
- package/dist/lib/core/network/httpRouter/routeHandler.d.ts +17 -32
- package/dist/lib/core/network/httpRouter/routeHandler.js +26 -36
- package/dist/lib/core/network/httpRouter/routePart.d.ts +9 -18
- package/dist/lib/core/network/httpRouter/routePart.js +61 -43
- package/dist/lib/core/network/httpRouter/routeTypes.d.ts +3 -0
- package/dist/lib/core/network/httpRouter/routeTypes.js +23 -0
- package/dist/lib/core/network/networkEntryPoint.d.ts +20 -0
- package/dist/lib/core/network/networkEntryPoint.js +23 -0
- package/dist/lib/core/network/protocolManifest.d.ts +5 -4
- package/dist/lib/core/network/protocolManifest.js +6 -3
- package/dist/lib/core/network/protocols/httpMessage.d.ts +25 -18
- package/dist/lib/core/network/protocols/httpMessage.js +14 -11
- package/dist/lib/core/network/protocols/httpwsProtocol.d.ts +84 -93
- package/dist/lib/core/network/protocols/httpwsProtocol.js +284 -129
- package/dist/lib/core/network/protocols/internalProtocol.d.ts +26 -15
- package/dist/lib/core/network/protocols/internalProtocol.js +17 -16
- package/dist/lib/core/network/protocols/mqttProtocol.d.ts +56 -32
- package/dist/lib/core/network/protocols/mqttProtocol.js +91 -44
- package/dist/lib/core/network/protocols/protocol.d.ts +85 -21
- package/dist/lib/core/network/protocols/protocol.js +83 -27
- package/dist/lib/core/network/router.d.ts +13 -22
- package/dist/lib/core/network/router.js +59 -46
- package/dist/lib/core/plugin/plugin.d.ts +57 -51
- package/dist/lib/core/plugin/plugin.js +218 -103
- package/dist/lib/core/plugin/pluginContext.d.ts +54 -11
- package/dist/lib/core/plugin/pluginContext.js +99 -58
- package/dist/lib/core/plugin/pluginManifest.d.ts +6 -2
- package/dist/lib/core/plugin/pluginManifest.js +18 -11
- package/dist/lib/core/plugin/pluginRepository.d.ts +35 -44
- package/dist/lib/core/plugin/pluginRepository.js +35 -50
- package/dist/lib/core/plugin/pluginsManager.d.ts +128 -46
- package/dist/lib/core/plugin/pluginsManager.js +468 -231
- package/dist/lib/core/plugin/privilegedContext.d.ts +4 -9
- package/dist/lib/core/plugin/privilegedContext.js +5 -10
- package/dist/lib/core/realtime/actionEnum.d.ts +12 -21
- package/dist/lib/core/realtime/actionEnum.js +6 -7
- package/dist/lib/core/realtime/channel.d.ts +11 -5
- package/dist/lib/core/realtime/channel.js +17 -2
- package/dist/lib/core/realtime/connectionRooms.d.ts +2 -2
- package/dist/lib/core/realtime/hotelClerk.d.ts +12 -6
- package/dist/lib/core/realtime/hotelClerk.js +29 -11
- package/dist/lib/core/realtime/index.d.ts +8 -3
- package/dist/lib/core/realtime/index.js +12 -5
- package/dist/lib/core/realtime/notification/document.d.ts +54 -25
- package/dist/lib/core/realtime/notification/document.js +10 -13
- package/dist/lib/core/realtime/notification/index.d.ts +9 -3
- package/dist/lib/core/realtime/notification/index.js +10 -4
- package/dist/lib/core/realtime/notification/server.d.ts +7 -10
- package/dist/lib/core/realtime/notification/server.js +4 -7
- package/dist/lib/core/realtime/notification/user.d.ts +45 -21
- package/dist/lib/core/realtime/notification/user.js +8 -9
- package/dist/lib/core/realtime/notifier.d.ts +52 -40
- package/dist/lib/core/realtime/notifier.js +60 -25
- package/dist/lib/core/realtime/room.d.ts +1 -1
- package/dist/lib/core/realtime/subscription.d.ts +11 -6
- package/dist/lib/core/realtime/subscription.js +5 -1
- package/dist/lib/core/security/index.d.ts +14 -6
- package/dist/lib/core/security/index.js +27 -13
- package/dist/lib/core/security/profileRepository.d.ts +24 -19
- package/dist/lib/core/security/profileRepository.js +23 -10
- package/dist/lib/core/security/roleRepository.d.ts +60 -23
- package/dist/lib/core/security/roleRepository.js +122 -53
- package/dist/lib/core/security/securityLoader.d.ts +33 -18
- package/dist/lib/core/security/securityLoader.js +43 -16
- package/dist/lib/core/security/tokenRepository.d.ts +21 -7
- package/dist/lib/core/security/tokenRepository.js +50 -23
- package/dist/lib/core/security/userRepository.d.ts +44 -21
- package/dist/lib/core/security/userRepository.js +59 -19
- package/dist/lib/core/shared/KoncordeWrapper.d.ts +1 -1
- package/dist/lib/core/shared/ObjectRepository.d.ts +80 -18
- package/dist/lib/core/shared/ObjectRepository.js +57 -29
- package/dist/lib/core/shared/abstractManifest.d.ts +21 -8
- package/dist/lib/core/shared/abstractManifest.js +57 -17
- package/dist/lib/core/shared/sdk/embeddedSdk.d.ts +3 -1
- package/dist/lib/core/shared/sdk/embeddedSdk.js +8 -7
- package/dist/lib/core/shared/sdk/funnelProtocol.d.ts +2 -1
- package/dist/lib/core/shared/sdk/funnelProtocol.js +12 -3
- package/dist/lib/core/shared/sdk/impersonatedSdk.d.ts +11 -5
- package/dist/lib/core/shared/sdk/impersonatedSdk.js +22 -9
- package/dist/lib/core/shared/store.d.ts +45 -29
- package/dist/lib/core/shared/store.js +48 -27
- package/dist/lib/core/statistics/statistics.d.ts +1 -1
- package/dist/lib/core/storage/clientAdapter.d.ts +39 -21
- package/dist/lib/core/storage/clientAdapter.js +88 -48
- package/dist/lib/core/storage/indexCache.d.ts +8 -0
- package/dist/lib/core/storage/indexCache.js +16 -7
- package/dist/lib/core/storage/storageEngine.d.ts +7 -6
- package/dist/lib/core/storage/storageEngine.js +11 -8
- package/dist/lib/core/validation/baseType.d.ts +22 -22
- package/dist/lib/core/validation/baseType.js +11 -26
- package/dist/lib/core/validation/specification.d.ts +148 -0
- package/dist/lib/core/validation/specification.js +34 -0
- package/dist/lib/core/validation/typeOptions.d.ts +62 -0
- package/dist/lib/core/validation/typeOptions.js +23 -0
- package/dist/lib/core/validation/types/anything.d.ts +3 -6
- package/dist/lib/core/validation/types/anything.js +7 -7
- package/dist/lib/core/validation/types/boolean.d.ts +5 -12
- package/dist/lib/core/validation/types/boolean.js +7 -12
- package/dist/lib/core/validation/types/date.d.ts +19 -11
- package/dist/lib/core/validation/types/date.js +212 -161
- package/dist/lib/core/validation/types/email.d.ts +7 -11
- package/dist/lib/core/validation/types/email.js +13 -17
- package/dist/lib/core/validation/types/enum.d.ts +7 -11
- package/dist/lib/core/validation/types/enum.js +39 -20
- package/dist/lib/core/validation/types/geoPoint.d.ts +5 -13
- package/dist/lib/core/validation/types/geoPoint.js +10 -15
- package/dist/lib/core/validation/types/geoShape.d.ts +22 -21
- package/dist/lib/core/validation/types/geoShape.js +113 -129
- package/dist/lib/core/validation/types/geoShapeUtils.d.ts +15 -0
- package/dist/lib/core/validation/types/geoShapeUtils.js +75 -0
- package/dist/lib/core/validation/types/integer.d.ts +7 -5
- package/dist/lib/core/validation/types/integer.js +7 -13
- package/dist/lib/core/validation/types/ipAddress.d.ts +7 -11
- package/dist/lib/core/validation/types/ipAddress.js +13 -17
- package/dist/lib/core/validation/types/numeric.d.ts +7 -11
- package/dist/lib/core/validation/types/numeric.js +22 -29
- package/dist/lib/core/validation/types/object.d.ts +8 -15
- package/dist/lib/core/validation/types/object.js +12 -21
- package/dist/lib/core/validation/types/string.d.ts +7 -11
- package/dist/lib/core/validation/types/string.js +22 -29
- package/dist/lib/core/validation/types/url.d.ts +7 -11
- package/dist/lib/core/validation/types/url.js +14 -18
- package/dist/lib/core/validation/validation.d.ts +119 -80
- package/dist/lib/core/validation/validation.js +470 -412
- package/dist/lib/core/validation/validationUtils.d.ts +31 -0
- package/dist/lib/core/validation/validationUtils.js +190 -0
- package/dist/lib/kerror/codes/4-plugin.json +0 -12
- package/dist/lib/kerror/codes/index.d.ts +12 -2
- package/dist/lib/kerror/codes/index.js +5 -4
- package/dist/lib/kerror/errors/badRequestError.d.ts +1 -1
- package/dist/lib/kerror/errors/badRequestError.js +1 -1
- package/dist/lib/kerror/errors/externalServiceError.d.ts +1 -1
- package/dist/lib/kerror/errors/externalServiceError.js +1 -1
- package/dist/lib/kerror/errors/forbiddenError.d.ts +1 -1
- package/dist/lib/kerror/errors/forbiddenError.js +1 -1
- package/dist/lib/kerror/errors/gatewayTimeoutError.d.ts +1 -1
- package/dist/lib/kerror/errors/gatewayTimeoutError.js +1 -1
- package/dist/lib/kerror/errors/internalError.d.ts +1 -1
- package/dist/lib/kerror/errors/internalError.js +1 -1
- package/dist/lib/kerror/errors/kuzzleError.d.ts +32 -3
- package/dist/lib/kerror/errors/kuzzleError.js +21 -7
- package/dist/lib/kerror/errors/multipleErrorsError.d.ts +2 -2
- package/dist/lib/kerror/errors/multipleErrorsError.js +2 -2
- package/dist/lib/kerror/errors/notFoundError.d.ts +1 -1
- package/dist/lib/kerror/errors/notFoundError.js +1 -1
- package/dist/lib/kerror/errors/partialError.d.ts +8 -2
- package/dist/lib/kerror/errors/partialError.js +22 -9
- package/dist/lib/kerror/errors/pluginImplementationError.d.ts +9 -1
- package/dist/lib/kerror/errors/pluginImplementationError.js +9 -3
- package/dist/lib/kerror/errors/preconditionError.d.ts +1 -1
- package/dist/lib/kerror/errors/preconditionError.js +1 -1
- package/dist/lib/kerror/errors/serviceUnavailableError.d.ts +1 -1
- package/dist/lib/kerror/errors/serviceUnavailableError.js +1 -1
- package/dist/lib/kerror/errors/sizeLimitError.d.ts +1 -1
- package/dist/lib/kerror/errors/sizeLimitError.js +1 -1
- package/dist/lib/kerror/errors/tooManyRequestsError.d.ts +1 -1
- package/dist/lib/kerror/errors/tooManyRequestsError.js +1 -1
- package/dist/lib/kerror/errors/unauthorizedError.d.ts +1 -1
- package/dist/lib/kerror/errors/unauthorizedError.js +1 -1
- package/dist/lib/kerror/index.d.ts +19 -13
- package/dist/lib/kerror/index.js +60 -19
- package/dist/lib/kuzzle/Logger.d.ts +2 -2
- package/dist/lib/kuzzle/dumpGenerator.d.ts +12 -8
- package/dist/lib/kuzzle/dumpGenerator.js +130 -62
- package/dist/lib/kuzzle/event/KuzzleEventEmitter.d.ts +18 -9
- package/dist/lib/kuzzle/event/KuzzleEventEmitter.js +45 -18
- package/dist/lib/kuzzle/event/pipeRunner.d.ts +37 -16
- package/dist/lib/kuzzle/event/pipeRunner.js +73 -26
- package/dist/lib/kuzzle/event/waterfall.d.ts +11 -1
- package/dist/lib/kuzzle/event/waterfall.js +38 -13
- package/dist/lib/kuzzle/internalIndexHandler.d.ts +11 -174
- package/dist/lib/kuzzle/internalIndexHandler.js +58 -29
- package/dist/lib/kuzzle/kuzzle.d.ts +25 -10
- package/dist/lib/kuzzle/kuzzle.js +74 -17
- package/dist/lib/kuzzle/kuzzleStateEnum.d.ts +16 -12
- package/dist/lib/kuzzle/kuzzleStateEnum.js +5 -7
- package/dist/lib/kuzzle/vault.d.ts +5 -1
- package/dist/lib/kuzzle/vault.js +29 -17
- package/dist/lib/model/security/profile.d.ts +34 -5
- package/dist/lib/model/security/profile.js +6 -5
- package/dist/lib/model/security/rights.d.ts +12 -4
- package/dist/lib/model/security/rights.js +7 -6
- package/dist/lib/model/security/role.d.ts +8 -4
- package/dist/lib/model/security/role.js +12 -6
- package/dist/lib/model/security/token.d.ts +8 -0
- package/dist/lib/model/security/user.d.ts +8 -2
- package/dist/lib/model/security/user.js +7 -4
- package/dist/lib/model/storage/apiKey.d.ts +55 -26
- package/dist/lib/model/storage/apiKey.js +97 -24
- package/dist/lib/model/storage/baseModel.d.ts +77 -66
- package/dist/lib/model/storage/baseModel.js +21 -34
- package/dist/lib/service/cache/redis.d.ts +53 -36
- package/dist/lib/service/cache/redis.js +148 -71
- package/dist/lib/service/service.d.ts +14 -19
- package/dist/lib/service/service.js +41 -22
- package/dist/lib/service/storage/7/elasticsearch.d.ts +136 -93
- package/dist/lib/service/storage/7/elasticsearch.js +218 -165
- package/dist/lib/service/storage/7/esWrapper.d.ts +30 -13
- package/dist/lib/service/storage/7/esWrapper.js +58 -37
- package/dist/lib/service/storage/8/elasticsearch.d.ts +153 -119
- package/dist/lib/service/storage/8/elasticsearch.js +286 -213
- package/dist/lib/service/storage/8/esWrapper.d.ts +30 -13
- package/dist/lib/service/storage/8/esWrapper.js +59 -38
- package/dist/lib/service/storage/commons/queryTranslator.d.ts +3 -3
- package/dist/lib/service/storage/commons/queryTranslator.js +71 -35
- package/dist/lib/types/ApiRoute.d.ts +12 -0
- package/dist/lib/types/ApiRoute.js +23 -0
- package/dist/lib/types/ClientConnection.d.ts +1 -1
- package/dist/lib/types/EventHandler.d.ts +10 -0
- package/dist/lib/types/Global.d.ts +8 -3
- package/dist/lib/types/HttpMessage.d.ts +2 -2
- package/dist/lib/types/HttpStream.d.ts +1 -1
- package/dist/lib/types/HttpStream.js +3 -1
- package/dist/lib/types/JSONObject.d.ts +9 -0
- package/dist/lib/types/JSONObject.js +23 -0
- package/dist/lib/types/Kuzzle.d.ts +5 -3
- package/dist/lib/types/KuzzleDocument.d.ts +1 -1
- package/dist/lib/types/KuzzleWebSocket.d.ts +24 -0
- package/dist/lib/types/KuzzleWebSocket.js +23 -0
- package/dist/lib/types/OpenApiDefinition.d.ts +1 -1
- package/dist/lib/types/Plugin.d.ts +33 -8
- package/dist/lib/types/PluginInstance.d.ts +67 -0
- package/dist/lib/types/PluginInstance.js +23 -0
- package/dist/lib/types/Policy.d.ts +1 -1
- package/dist/lib/types/Target.d.ts +8 -0
- package/dist/lib/types/Token.d.ts +14 -2
- package/dist/lib/types/config/HttpConfiguration.d.ts +5 -0
- package/dist/lib/types/config/KuzzleConfiguration.d.ts +102 -1
- package/dist/lib/types/config/PluginsConfiguration.d.ts +3 -2
- package/dist/lib/types/config/SecurityConfiguration.d.ts +6 -2
- package/dist/lib/types/config/ServerConfiguration.d.ts +2 -2
- package/dist/lib/types/config/ServicesConfiguration.d.ts +1 -1
- package/dist/lib/types/config/cache/BaseCacheRedisConfiguration.d.ts +131 -0
- package/dist/lib/types/config/cache/BaseCacheRedisConfiguration.js +3 -0
- package/dist/lib/types/config/internalCache/InternalCacheRedisConfiguration.d.ts +2 -106
- package/dist/lib/types/config/publicCache/PublicCacheRedisConfiguration.d.ts +2 -26
- package/dist/lib/types/config/storageEngine/StorageEngineElasticsearchConfiguration.d.ts +3 -0
- package/dist/lib/types/controllers/Controller.d.ts +12 -3
- package/dist/lib/types/controllers/ControllerDefinition.d.ts +2 -2
- package/dist/lib/types/controllers/{adminControlller.type.js → adminController.type.js} +1 -1
- package/dist/lib/types/controllers/authController.type.d.ts +2 -2
- package/dist/lib/types/core/auth/formatProcessing.type.d.ts +7 -1
- package/dist/lib/types/errors/ErrorDomains.d.ts +1 -1
- package/dist/lib/types/events/EventGenericDocument.d.ts +10 -9
- package/dist/lib/types/events/EventProtocol.d.ts +4 -4
- package/dist/lib/types/index.d.ts +7 -0
- package/dist/lib/types/index.js +7 -0
- package/dist/lib/types/shared/StoreCollectionsDefinition.d.ts +1 -1
- package/dist/lib/types/storage/7/Elasticsearch.d.ts +62 -13
- package/dist/lib/types/storage/8/Elasticsearch.d.ts +62 -13
- package/dist/lib/util/Inflector.d.ts +4 -1
- package/dist/lib/util/Inflector.js +0 -3
- package/dist/lib/util/assertType.d.ts +24 -27
- package/dist/lib/util/assertType.js +28 -39
- package/dist/lib/util/async.js +19 -6
- package/dist/lib/util/asyncStore.js +1 -1
- package/dist/lib/util/bufferedPassThrough.d.ts +9 -0
- package/dist/lib/util/bufferedPassThrough.js +27 -13
- package/dist/lib/util/bytes.d.ts +1 -1
- package/dist/lib/util/bytes.js +6 -2
- package/dist/lib/util/debug.d.ts +3 -1
- package/dist/lib/util/debug.js +42 -10
- package/dist/lib/util/deprecate.d.ts +9 -1
- package/dist/lib/util/deprecate.js +10 -6
- package/dist/lib/util/didYouMean.d.ts +2 -1
- package/dist/lib/util/didYouMean.js +8 -4
- package/dist/lib/util/distributedLock.d.ts +56 -0
- package/dist/lib/util/distributedLock.js +166 -0
- package/dist/lib/util/dump-collection.d.ts +1 -1
- package/dist/lib/util/dump-collection.js +4 -5
- package/dist/lib/util/extractFields.d.ts +15 -11
- package/dist/lib/util/extractFields.js +8 -9
- package/dist/lib/util/koncordeCompat.d.ts +2 -2
- package/dist/lib/util/koncordeCompat.js +33 -0
- package/dist/lib/util/memoize.d.ts +7 -6
- package/dist/lib/util/memoize.js +3 -3
- package/dist/lib/util/mutex.d.ts +22 -2
- package/dist/lib/util/mutex.js +39 -1
- package/dist/lib/util/name-generator.js +14 -2
- package/dist/lib/util/promback.d.ts +20 -11
- package/dist/lib/util/promback.js +14 -7
- package/dist/lib/util/requestAssertions.d.ts +30 -10
- package/dist/lib/util/requestAssertions.js +125 -121
- package/dist/lib/util/safeObject.d.ts +3 -3
- package/dist/lib/util/safeObject.js +7 -3
- package/dist/lib/util/stackTrace.d.ts +13 -5
- package/dist/lib/util/stackTrace.js +17 -12
- package/dist/lib/util/thrown.d.ts +13 -0
- package/dist/lib/util/thrown.js +46 -0
- package/dist/package.json +26 -19
- package/package.json +26 -19
- package/dist/lib/util/wildcard.d.ts +0 -1
- package/dist/lib/util/wildcard.js +0 -46
- /package/dist/lib/types/controllers/{adminControlller.type.d.ts → adminController.type.d.ts} +0 -0
|
@@ -1,52 +1,91 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import Long from "long";
|
|
4
|
+
import type { IKuzzleConfiguration } from "../types/config/KuzzleConfiguration";
|
|
5
|
+
import type State from "./state";
|
|
6
|
+
import type { AddCollectionMessage, AddIndexMessage, ClusterWideEventMessage, DocumentNotificationMessage, DumpRequestMessage, InvalidateProfileMessage, InvalidateRoleMessage, NewAuthStrategyMessage, NewRealtimeRoomMessage, NodeEvictedMessage, NodePreventEvictionMessage, NodeShutdownMessage, RemoveAuthStrategyMessage, RemoveCollectionMessage, RemoveIndexesMessage, RemoveRealtimeRoomMessage, SubscriptionMessage, SyncMessage, SyncMessages, SyncTopic, UnsubscriptionMessage, UserNotificationMessage } from "./protobuf/syncMessages";
|
|
7
|
+
/**
|
|
8
|
+
* A frame as `protobufjs` hands it back, before `validateMessage()` has
|
|
9
|
+
* established that it carries the `messageId` every sync message must have.
|
|
10
|
+
*/
|
|
11
|
+
type DecodedMessage = Partial<SyncMessage> & Record<string, unknown>;
|
|
12
|
+
/**
|
|
13
|
+
* What a subscriber needs from the node that owns it. `node.js` is converted in
|
|
14
|
+
* J3; this is the part of its surface this file actually reads.
|
|
15
|
+
*/
|
|
16
|
+
type SubscribingNode = {
|
|
17
|
+
config: IKuzzleConfiguration["cluster"];
|
|
18
|
+
heartbeatDelay: number;
|
|
19
|
+
nodeId: string;
|
|
20
|
+
fullState: State;
|
|
21
|
+
eventEmitter: {
|
|
22
|
+
emit(event: string, payload: unknown): void;
|
|
23
|
+
};
|
|
24
|
+
evictNode(nodeId: string, options: {
|
|
25
|
+
broadcast: boolean;
|
|
26
|
+
reason: string;
|
|
27
|
+
}): Promise<void>;
|
|
28
|
+
evictSelf(reason: string, error?: Error): Promise<void>;
|
|
29
|
+
command: {
|
|
30
|
+
requestRetransmit(ip: string, from: Long, to: Long): Promise<BufferedFrame[] | null>;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* A topic's handler, as the dispatch table holds it: each one is declared with
|
|
35
|
+
* the message type `sync.proto` gives its topic, so registering a handler under
|
|
36
|
+
* the wrong topic stops compiling.
|
|
37
|
+
*/
|
|
38
|
+
type SyncMessageHandlers = {
|
|
39
|
+
[T in SyncTopic]: (message: SyncMessages[T]) => void | Promise<void>;
|
|
40
|
+
};
|
|
41
|
+
/** One raw frame as it comes off the socket, before it is decoded. */
|
|
42
|
+
type BufferedFrame = [topic: string, data: Buffer];
|
|
2
43
|
declare class ClusterSubscriber {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
44
|
+
static readonly stateEnum: Readonly<{
|
|
45
|
+
BUFFERING: 1;
|
|
46
|
+
SANE: 2;
|
|
47
|
+
MISSING_HEARTBEAT: 3;
|
|
48
|
+
EVICTED: 4;
|
|
49
|
+
}>;
|
|
50
|
+
private readonly localNode;
|
|
51
|
+
readonly remoteNodeIP: string;
|
|
52
|
+
private readonly remoteNodeAddress;
|
|
53
|
+
readonly remoteNodeId: string;
|
|
54
|
+
/** Used in debug mode when the node might be slower */
|
|
14
55
|
remoteNodeEvictionPrevented: boolean;
|
|
15
|
-
socket
|
|
16
|
-
protoroot
|
|
56
|
+
private socket;
|
|
57
|
+
private protoroot;
|
|
58
|
+
/** keeps track of received message ids from the remote node */
|
|
17
59
|
lastMessageId: Long;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
60
|
+
subscriptionConfirmed: boolean;
|
|
61
|
+
private readonly subscriptionProof;
|
|
62
|
+
private confirmSubscription;
|
|
63
|
+
/**
|
|
64
|
+
* One of the values of `stateEnum`. Deliberately `number` and not the
|
|
65
|
+
* literal union `1 | 2 | 3 | 4`: `state` is mutated by other methods while
|
|
66
|
+
* `listen()` is awaiting a socket read, and TypeScript's control-flow
|
|
67
|
+
* narrowing does not model that — under the literal union it reports the
|
|
68
|
+
* deliberate re-checks after an `await` as impossible comparisons. Those
|
|
69
|
+
* re-checks are the point.
|
|
70
|
+
*/
|
|
71
|
+
state: number;
|
|
72
|
+
private buffer;
|
|
73
|
+
/**
|
|
74
|
+
* Whether `recover()` is running: waiting for the remote node to retransmit
|
|
75
|
+
* what was lost, or applying it.
|
|
76
|
+
*/
|
|
77
|
+
private recovering;
|
|
78
|
+
private heartbeatTimer;
|
|
21
79
|
lastHeartbeat: number;
|
|
22
|
-
heartbeatDelay
|
|
23
|
-
handlers: Readonly<
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
InvalidateRole: (message: any) => void;
|
|
32
|
-
NewAuthStrategy: (message: any) => void;
|
|
33
|
-
NewRealtimeRoom: (message: any) => void;
|
|
34
|
-
NodeEvicted: (message: any) => void;
|
|
35
|
-
NodePreventEviction: (message: any) => Promise<void>;
|
|
36
|
-
NodeShutdown: (message: any) => void;
|
|
37
|
-
RefreshIndexCache: () => Promise<void>;
|
|
38
|
-
RefreshValidators: () => void;
|
|
39
|
-
RemoveAuthStrategy: (message: any) => void;
|
|
40
|
-
RemoveCollection: (message: any) => void;
|
|
41
|
-
RemoveIndexes: (message: any) => void;
|
|
42
|
-
RemoveRealtimeRoom: (message: any) => void;
|
|
43
|
-
ResetSecurity: () => void;
|
|
44
|
-
Shutdown: () => void;
|
|
45
|
-
Subscription: (message: any) => void;
|
|
46
|
-
Unsubscription: (message: any) => void;
|
|
47
|
-
UserNotification: (message: any) => void;
|
|
48
|
-
}>;
|
|
49
|
-
logger: import("../kuzzle/Logger").Logger;
|
|
80
|
+
private readonly heartbeatDelay;
|
|
81
|
+
readonly handlers: Readonly<SyncMessageHandlers>;
|
|
82
|
+
private readonly logger;
|
|
83
|
+
/**
|
|
84
|
+
* @param localNode the cluster node this subscriber belongs to
|
|
85
|
+
* @param remoteNodeId - Remote node unique ID
|
|
86
|
+
* @param remoteNodeIP - address of the distant node
|
|
87
|
+
*/
|
|
88
|
+
constructor(localNode: SubscribingNode, remoteNodeId: string, remoteNodeIP: string);
|
|
50
89
|
/**
|
|
51
90
|
* Initializes this class, establishes a connection to the remote node and
|
|
52
91
|
* starts listening to it.
|
|
@@ -58,14 +97,41 @@ declare class ClusterSubscriber {
|
|
|
58
97
|
* return (unless the remote node has been evicted)
|
|
59
98
|
*/
|
|
60
99
|
listen(): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* One frame off the sync socket.
|
|
102
|
+
*
|
|
103
|
+
* @returns `null` when there is nothing more to read — the socket is gone,
|
|
104
|
+
* or the read failed and this node has been evicted for it, which
|
|
105
|
+
* is what ends `listen()`'s loop.
|
|
106
|
+
*/
|
|
107
|
+
private receiveFrame;
|
|
108
|
+
/**
|
|
109
|
+
* Resolves once a message has been received from the remote node, which is
|
|
110
|
+
* the only observable proof that this subscription is live on its side.
|
|
111
|
+
*
|
|
112
|
+
* The handshake reads a remote node's `lastMessageId` over the *command*
|
|
113
|
+
* channel and then resumes this subscription from it. Nothing orders that
|
|
114
|
+
* snapshot after the subscription taking effect on the *sync* channel — they
|
|
115
|
+
* are different sockets — so without this wait, anything the remote publishes
|
|
116
|
+
* in between is dropped by its PUB socket while this node is told to resume
|
|
117
|
+
* from just before it. That gap is read as a desync. See TD-65 (#2773).
|
|
118
|
+
*
|
|
119
|
+
* Every node publishes a heartbeat every `cluster.heartbeat` ms (2s by
|
|
120
|
+
* default) from before it is discoverable, so this normally costs less than
|
|
121
|
+
* one round.
|
|
122
|
+
*
|
|
123
|
+
* @param timeout - ms to wait before giving up
|
|
124
|
+
* @return whether the subscription was proven live
|
|
125
|
+
*/
|
|
126
|
+
waitForSubscription(timeout: number): Promise<boolean>;
|
|
61
127
|
/**
|
|
62
128
|
* Plays all buffered sync messages, and switches this subscriber state from
|
|
63
129
|
* BUFFERING to SANE.
|
|
64
130
|
*
|
|
65
|
-
* @param
|
|
66
|
-
* @return
|
|
131
|
+
* @param lastMessageId
|
|
132
|
+
* @return false if a gap was found while replaying, which evicts this node
|
|
67
133
|
*/
|
|
68
|
-
sync(lastMessageId: Long):
|
|
134
|
+
sync(lastMessageId: Long): Promise<boolean>;
|
|
69
135
|
/**
|
|
70
136
|
* Decodes an incoming message, and dispatches it.
|
|
71
137
|
* The topic name must match a protobuf message.
|
|
@@ -75,119 +141,111 @@ declare class ClusterSubscriber {
|
|
|
75
141
|
* and it also cannot afford to attach a rejection handler everytime a message
|
|
76
142
|
* is received to prevent clogging the event loop with unnecessary promises
|
|
77
143
|
*
|
|
78
|
-
* @param
|
|
79
|
-
* @param
|
|
80
|
-
* @return {void}
|
|
144
|
+
* @param topic
|
|
145
|
+
* @param data
|
|
81
146
|
*/
|
|
82
|
-
processData(topic: string, data: Buffer): void
|
|
83
|
-
|
|
147
|
+
processData(topic: string, data: Buffer): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* Set from two places: a `NodePreventEviction` message published by this
|
|
150
|
+
* peer, and `node.preventEviction()` on this node. The local caller used to
|
|
151
|
+
* reach the wire handler below with a hand-built `{ evictionPrevented }` —
|
|
152
|
+
* an object shaped like a sync message that never came off the wire and
|
|
153
|
+
* carries no `messageId`. The conversion could not type that, and it should
|
|
154
|
+
* not have to: the two callers want the same effect, not the same envelope.
|
|
155
|
+
*/
|
|
156
|
+
setEvictionPrevented(evictionPrevented: boolean): void;
|
|
157
|
+
handleNodePreventEviction(message: NodePreventEvictionMessage): Promise<void>;
|
|
84
158
|
/**
|
|
85
159
|
* Handles a heartbeat from the remote node
|
|
86
160
|
*
|
|
87
|
-
* @return {void}
|
|
88
161
|
*/
|
|
89
162
|
handleHeartbeat(): void;
|
|
90
163
|
/**
|
|
91
164
|
* Handles a node eviction message.
|
|
92
165
|
*
|
|
93
|
-
* @param
|
|
94
|
-
* @return {void}
|
|
166
|
+
* @param message - decoded NodeEvicted protobuf message
|
|
95
167
|
*/
|
|
96
|
-
handleNodeEviction(message:
|
|
168
|
+
handleNodeEviction(message: NodeEvictedMessage): Promise<void>;
|
|
97
169
|
/**
|
|
98
170
|
* Handles a node shutdown.
|
|
99
171
|
*
|
|
100
|
-
* @param
|
|
101
|
-
* @return {void}
|
|
172
|
+
* @param message - decoded NodeShutdown protobuf message
|
|
102
173
|
*/
|
|
103
|
-
handleNodeShutdown(message:
|
|
174
|
+
handleNodeShutdown(message: NodeShutdownMessage): Promise<void>;
|
|
104
175
|
/**
|
|
105
176
|
* Handles messages about realtime room creations
|
|
106
177
|
*
|
|
107
|
-
* @param
|
|
108
|
-
* @return {void}
|
|
178
|
+
* @param message - decoded NewRealtimeRoom protobuf message
|
|
109
179
|
*/
|
|
110
|
-
handleNewRealtimeRoom(message:
|
|
180
|
+
handleNewRealtimeRoom(message: NewRealtimeRoomMessage): void;
|
|
111
181
|
/**
|
|
112
182
|
* Handles messages about realtime subscriptions
|
|
113
183
|
*
|
|
114
|
-
* @param
|
|
115
|
-
* @return {void}
|
|
184
|
+
* @param message - decoded Subscription protobuf message
|
|
116
185
|
*/
|
|
117
|
-
handleSubscription(message:
|
|
186
|
+
handleSubscription(message: SubscriptionMessage): void;
|
|
118
187
|
/**
|
|
119
188
|
* Handles messages about realtime room removal
|
|
120
189
|
*
|
|
121
|
-
* @param
|
|
122
|
-
* @return {void}
|
|
190
|
+
* @param message - decoded RemoveRealtimeRoom protobuf message
|
|
123
191
|
*/
|
|
124
|
-
handleRealtimeRoomRemoval(message:
|
|
192
|
+
handleRealtimeRoomRemoval(message: RemoveRealtimeRoomMessage): void;
|
|
125
193
|
/**
|
|
126
194
|
* Handles messages about user unsubscriptions
|
|
127
195
|
*
|
|
128
|
-
* @param
|
|
129
|
-
* @return {void}
|
|
196
|
+
* @param message - decoded Unsubscription protobuf message
|
|
130
197
|
*/
|
|
131
|
-
handleUnsubscription(message:
|
|
198
|
+
handleUnsubscription(message: UnsubscriptionMessage): void;
|
|
132
199
|
/**
|
|
133
200
|
* Handles messages about cluster-wide events
|
|
134
201
|
*
|
|
135
|
-
* @param
|
|
136
|
-
* @return {void}
|
|
202
|
+
* @param message - decoded ClusterWideEvent protobuf message
|
|
137
203
|
*/
|
|
138
|
-
handleClusterWideEvent(message:
|
|
204
|
+
handleClusterWideEvent(message: ClusterWideEventMessage): void;
|
|
139
205
|
/**
|
|
140
206
|
* Handles messages about document notifications
|
|
141
207
|
*
|
|
142
|
-
* @param
|
|
143
|
-
* @return {void}
|
|
208
|
+
* @param message - decoded DocumentNotification protobuf message
|
|
144
209
|
*/
|
|
145
|
-
handleDocumentNotification(message:
|
|
210
|
+
handleDocumentNotification(message: DocumentNotificationMessage): Promise<void>;
|
|
146
211
|
/**
|
|
147
212
|
* Handles messages about user notifications
|
|
148
213
|
*
|
|
149
|
-
* @param
|
|
150
|
-
* @return {void}
|
|
214
|
+
* @param message - decoded UserNotification protobuf message
|
|
151
215
|
*/
|
|
152
|
-
handleUserNotification(message:
|
|
216
|
+
handleUserNotification(message: UserNotificationMessage): Promise<void>;
|
|
153
217
|
/**
|
|
154
218
|
* Handles messages about new authentication strategies
|
|
155
219
|
*
|
|
156
|
-
* @param
|
|
157
|
-
* @return {void}
|
|
220
|
+
* @param message - decoded NewAuthStrategy protobuf message
|
|
158
221
|
*/
|
|
159
|
-
handleNewAuthStrategy(message:
|
|
222
|
+
handleNewAuthStrategy(message: NewAuthStrategyMessage): void;
|
|
160
223
|
/**
|
|
161
224
|
* Handles messages about authentication strategy removals
|
|
162
225
|
*
|
|
163
|
-
* @param
|
|
164
|
-
* @return {void}
|
|
226
|
+
* @param message - decoded RemoveAuthStrategy protobuf message
|
|
165
227
|
*/
|
|
166
|
-
handleAuthStrategyRemoval(message:
|
|
228
|
+
handleAuthStrategyRemoval(message: RemoveAuthStrategyMessage): void;
|
|
167
229
|
/**
|
|
168
230
|
* Handles messages about security resets
|
|
169
231
|
*
|
|
170
|
-
* @return {void}
|
|
171
232
|
*/
|
|
172
|
-
handleResetSecurity(): void
|
|
233
|
+
handleResetSecurity(): Promise<void>;
|
|
173
234
|
/**
|
|
174
235
|
* Handles a cross-nodes dump request
|
|
175
236
|
*
|
|
176
|
-
* @param
|
|
177
|
-
* @return {void}
|
|
237
|
+
* @param message - decoded DumpRequest protobuf message
|
|
178
238
|
*/
|
|
179
|
-
handleDumpRequest(message:
|
|
239
|
+
handleDumpRequest(message: DumpRequestMessage): void;
|
|
180
240
|
/**
|
|
181
241
|
* Handles cluster-wide shutdown
|
|
182
|
-
* @return {void}
|
|
183
242
|
*/
|
|
184
243
|
handleShutdown(): void;
|
|
185
244
|
/**
|
|
186
245
|
* Handles changes on document validators
|
|
187
246
|
*
|
|
188
|
-
* @return {void}
|
|
189
247
|
*/
|
|
190
|
-
handleRefreshValidators(): void
|
|
248
|
+
handleRefreshValidators(): Promise<void>;
|
|
191
249
|
/**
|
|
192
250
|
* Handles manual refresh of the index cache
|
|
193
251
|
*/
|
|
@@ -195,45 +253,39 @@ declare class ClusterSubscriber {
|
|
|
195
253
|
/**
|
|
196
254
|
* Invalidates a profile to force reloading it from the storage space
|
|
197
255
|
*
|
|
198
|
-
* @param
|
|
199
|
-
* @return {void}
|
|
256
|
+
* @param message - decoded InvalidateProfile protobuf message
|
|
200
257
|
*/
|
|
201
|
-
handleProfileInvalidation(message:
|
|
258
|
+
handleProfileInvalidation(message: InvalidateProfileMessage): Promise<void>;
|
|
202
259
|
/**
|
|
203
260
|
* Invalidates a role to force reloading it from the storage space
|
|
204
261
|
*
|
|
205
|
-
* @param
|
|
206
|
-
* @return {void}
|
|
262
|
+
* @param message - decoded InvalidateRole protobuf message
|
|
207
263
|
*/
|
|
208
|
-
handleRoleInvalidation(message:
|
|
264
|
+
handleRoleInvalidation(message: InvalidateRoleMessage): Promise<void>;
|
|
209
265
|
/**
|
|
210
266
|
* Adds a new index to the index cache
|
|
211
267
|
*
|
|
212
|
-
* @param
|
|
213
|
-
* @return {void}
|
|
268
|
+
* @param message - decoded AddIndex protobuf message
|
|
214
269
|
*/
|
|
215
|
-
handleIndexAddition(message:
|
|
270
|
+
handleIndexAddition(message: AddIndexMessage): Promise<void>;
|
|
216
271
|
/**
|
|
217
272
|
* Removes indexes from the index cache
|
|
218
273
|
*
|
|
219
|
-
* @param
|
|
220
|
-
* @return {void}
|
|
274
|
+
* @param message - decoded RemoveIndexes protobuf message
|
|
221
275
|
*/
|
|
222
|
-
handleIndexesRemoval(message:
|
|
276
|
+
handleIndexesRemoval(message: RemoveIndexesMessage): Promise<void>;
|
|
223
277
|
/**
|
|
224
278
|
* Adds a new collection to the index cache
|
|
225
279
|
*
|
|
226
|
-
* @param
|
|
227
|
-
* @return {void}
|
|
280
|
+
* @param message - decoded AddCollection protobuf message
|
|
228
281
|
*/
|
|
229
|
-
handleCollectionAddition(message:
|
|
282
|
+
handleCollectionAddition(message: AddCollectionMessage): Promise<void>;
|
|
230
283
|
/**
|
|
231
284
|
* Removes a collection from the index cache
|
|
232
285
|
*
|
|
233
|
-
* @param
|
|
234
|
-
* @return {void}
|
|
286
|
+
* @param message - decoded RemoveCollection protobuf message
|
|
235
287
|
*/
|
|
236
|
-
handleCollectionRemoval(message:
|
|
288
|
+
handleCollectionRemoval(message: RemoveCollectionMessage): Promise<void>;
|
|
237
289
|
/**
|
|
238
290
|
* Checks that we did receive a heartbeat from the remote node
|
|
239
291
|
* If a heartbeat is missing, we allow 1 heartbeat round for the remote node
|
|
@@ -246,24 +298,26 @@ declare class ClusterSubscriber {
|
|
|
246
298
|
dispose(): void;
|
|
247
299
|
/**
|
|
248
300
|
* Checks that the received message is the one we expect.
|
|
249
|
-
* @param
|
|
250
|
-
* @return
|
|
301
|
+
* @param message - decoded protobuf message
|
|
302
|
+
* @return false: the message must be discarded, true otherwise
|
|
251
303
|
*/
|
|
252
|
-
validateMessage(message:
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
304
|
+
validateMessage(message: DecodedMessage): Promise<boolean>;
|
|
305
|
+
/**
|
|
306
|
+
* Fetches the messages with ids `from` to `upTo - 1` from the remote node,
|
|
307
|
+
* which keeps its last ones for that purpose, and applies them in order
|
|
308
|
+
* (#2785).
|
|
309
|
+
*
|
|
310
|
+
* Awaited where the gap is found, so nothing that came after it is applied
|
|
311
|
+
* before it: `listen()` stops reading meanwhile (ZeroMQ queues what arrives)
|
|
312
|
+
* and `sync()` stops replaying.
|
|
313
|
+
*
|
|
314
|
+
* @return whether every missing message was applied; `false` leaves the
|
|
315
|
+
* decision — eviction — to the caller
|
|
316
|
+
*/
|
|
317
|
+
private recover;
|
|
318
|
+
evictNode({ broadcast, reason, }: {
|
|
319
|
+
broadcast: boolean;
|
|
320
|
+
reason: string;
|
|
256
321
|
}): Promise<void>;
|
|
257
322
|
}
|
|
258
|
-
|
|
259
|
-
export { stateEnum };
|
|
260
|
-
}
|
|
261
|
-
import { Subscriber } from "zeromq";
|
|
262
|
-
import protobuf = require("protobufjs");
|
|
263
|
-
import Long = require("long/umd/types");
|
|
264
|
-
declare const stateEnum: Readonly<{
|
|
265
|
-
BUFFERING: 1;
|
|
266
|
-
SANE: 2;
|
|
267
|
-
MISSING_HEARTBEAT: 3;
|
|
268
|
-
EVICTED: 4;
|
|
269
|
-
}>;
|
|
323
|
+
export = ClusterSubscriber;
|