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
package/dist/lib/api/funnel.d.ts
CHANGED
|
@@ -1,23 +1,58 @@
|
|
|
1
|
-
|
|
1
|
+
import Bluebird from "bluebird";
|
|
2
|
+
import Deque from "denque";
|
|
3
|
+
import { KuzzleError } from "../kerror/errors";
|
|
4
|
+
import type { EventAliases } from "../config/documentEventAliases";
|
|
5
|
+
import RateLimiter from "./rateLimiter";
|
|
6
|
+
import type { Logger } from "../kuzzle/Logger";
|
|
7
|
+
import type { BaseController, NativeController } from "./controllers/baseController";
|
|
8
|
+
import type { KuzzleRequest } from "./request";
|
|
9
|
+
type ThrottledFn = (request: KuzzleRequest) => void;
|
|
10
|
+
type ExecuteCallback = (error: Error | null, request: KuzzleRequest) => void;
|
|
11
|
+
/**
|
|
12
|
+
* @class PendingRequest
|
|
13
|
+
*/
|
|
14
|
+
declare class PendingRequest {
|
|
15
|
+
request: KuzzleRequest;
|
|
16
|
+
fn: ThrottledFn;
|
|
17
|
+
context: unknown;
|
|
18
|
+
constructor(request: KuzzleRequest, fn: ThrottledFn, context: unknown);
|
|
19
|
+
}
|
|
20
|
+
interface SdkRequirements {
|
|
21
|
+
min?: number | string;
|
|
22
|
+
max?: number | string;
|
|
23
|
+
}
|
|
24
|
+
type DocumentEventAliases = EventAliases & {
|
|
25
|
+
mirrorList: Record<string, string>;
|
|
26
|
+
};
|
|
2
27
|
/**
|
|
3
28
|
* @class Funnel
|
|
4
29
|
*/
|
|
5
30
|
declare class Funnel {
|
|
6
31
|
overloaded: boolean;
|
|
7
32
|
concurrentRequests: number;
|
|
8
|
-
controllers: Map<
|
|
9
|
-
pendingRequestsQueue: Deque<
|
|
10
|
-
pendingRequestsById: Map<
|
|
33
|
+
controllers: Map<string, NativeController>;
|
|
34
|
+
pendingRequestsQueue: Deque<string>;
|
|
35
|
+
pendingRequestsById: Map<string, PendingRequest>;
|
|
11
36
|
lastOverloadTime: number;
|
|
12
37
|
overloadWarned: boolean;
|
|
13
38
|
lastWarningTime: number;
|
|
14
39
|
rateLimiter: RateLimiter;
|
|
15
|
-
lastDumpedErrors:
|
|
16
|
-
sdkCompatibility:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
40
|
+
lastDumpedErrors: Record<string, number>;
|
|
41
|
+
sdkCompatibility: Record<string, SdkRequirements>;
|
|
42
|
+
documentEventAliases: DocumentEventAliases;
|
|
43
|
+
logger: Logger;
|
|
44
|
+
constructor();
|
|
45
|
+
init(): Bluebird<void[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Answers the table rather than assigning it: a field set by a method the
|
|
48
|
+
* constructor calls is not one the compiler can see being initialised.
|
|
49
|
+
*/
|
|
50
|
+
loadDocumentEventAliases(): DocumentEventAliases;
|
|
51
|
+
/**
|
|
52
|
+
* Emits the "core:overload" event and logs a warning when the pending-request
|
|
53
|
+
* queue crosses its warning threshold — rate-limited to once per 500ms.
|
|
54
|
+
*/
|
|
55
|
+
private _warnOverload;
|
|
21
56
|
/**
|
|
22
57
|
* Asks the overload-protection system for an execution slot.
|
|
23
58
|
*
|
|
@@ -43,7 +78,7 @@ declare class Funnel {
|
|
|
43
78
|
* @returns {Boolean} - A boolean telling whether the request has been
|
|
44
79
|
* immediately executed or not.
|
|
45
80
|
*/
|
|
46
|
-
throttle(fn:
|
|
81
|
+
throttle(fn: ThrottledFn, context: unknown, request: KuzzleRequest): boolean;
|
|
47
82
|
/**
|
|
48
83
|
* Execute the API request by
|
|
49
84
|
* 1/ check domain from origin header
|
|
@@ -56,22 +91,51 @@ declare class Funnel {
|
|
|
56
91
|
* @param {Function} callback
|
|
57
92
|
* @returns {Number} -1: request delayed, 0: request processing, 1: error
|
|
58
93
|
*/
|
|
59
|
-
execute(request:
|
|
94
|
+
execute(request: KuzzleRequest, callback: ExecuteCallback): 1 | 0 | -1 | null;
|
|
95
|
+
/**
|
|
96
|
+
* Runs a request that has been granted an execution slot by the
|
|
97
|
+
* overload-protection system. Extracted from `execute` verbatim.
|
|
98
|
+
*
|
|
99
|
+
* @param request - the very request `execute` handed to `throttle`
|
|
100
|
+
*/
|
|
101
|
+
private _executeThrottled;
|
|
102
|
+
/**
|
|
103
|
+
* Rights check -> rate limit -> controller action, then reports the outcome
|
|
104
|
+
* through `callback`. Extracted from `execute` verbatim.
|
|
105
|
+
*
|
|
106
|
+
* @param request - the original request (the rate-limit branch inspects it,
|
|
107
|
+
* not the pipe-modified one)
|
|
108
|
+
* @param modifiedRequest - the "request:beforeExecution" pipe result
|
|
109
|
+
*/
|
|
110
|
+
private _dispatch;
|
|
111
|
+
/**
|
|
112
|
+
* Fires "request:afterExecution" in failure mode, then reports the (possibly
|
|
113
|
+
* pipe-rewritten) error through `callback`. Extracted from `execute` verbatim
|
|
114
|
+
* — both of its catch blocks did exactly this.
|
|
115
|
+
*/
|
|
116
|
+
private _reportExecutionError;
|
|
60
117
|
/**
|
|
61
118
|
* Checks if an error is worth dumping Kuzzle. If so,
|
|
62
119
|
* creates a dump.
|
|
63
120
|
*
|
|
64
121
|
* @param {KuzzleError|*} err
|
|
65
122
|
*/
|
|
66
|
-
handleErrorDump(err:
|
|
123
|
+
handleErrorDump(err: Error | KuzzleError): void;
|
|
67
124
|
/**
|
|
68
125
|
* Checks if a user has the necessary rights to execute the action
|
|
69
126
|
*
|
|
70
127
|
* @param {Request} request
|
|
71
128
|
* @returns {Promise<Request>}
|
|
72
129
|
*/
|
|
73
|
-
checkRights(request:
|
|
74
|
-
|
|
130
|
+
checkRights(request: KuzzleRequest): Promise<KuzzleRequest>;
|
|
131
|
+
/**
|
|
132
|
+
* When cookie authentication is enabled, promotes the request's auth-token
|
|
133
|
+
* cookie to `request.input.jwt`. Extracted from `checkRights` verbatim.
|
|
134
|
+
*
|
|
135
|
+
* @returns whether token verification must be skipped (anonymous check)
|
|
136
|
+
*/
|
|
137
|
+
private _applyCookieAuthToken;
|
|
138
|
+
_isLogin(request: KuzzleRequest): boolean;
|
|
75
139
|
/**
|
|
76
140
|
* Executes the request immediately.
|
|
77
141
|
* /!\ To be used only by methods having already passed the overload check.
|
|
@@ -79,7 +143,7 @@ declare class Funnel {
|
|
|
79
143
|
* @param {KuzzleRequest} request
|
|
80
144
|
* @returns {Promise}
|
|
81
145
|
*/
|
|
82
|
-
processRequest(request: KuzzleRequest): Promise<
|
|
146
|
+
processRequest(request: KuzzleRequest): Promise<KuzzleRequest>;
|
|
83
147
|
/**
|
|
84
148
|
* Triggers generic:document:* events
|
|
85
149
|
*
|
|
@@ -103,7 +167,7 @@ declare class Funnel {
|
|
|
103
167
|
* @returns {Promise}
|
|
104
168
|
*/
|
|
105
169
|
executePluginRequest(request: KuzzleRequest): Promise<any>;
|
|
106
|
-
handleProcessRequestError(modifiedRequest:
|
|
170
|
+
handleProcessRequestError(modifiedRequest: KuzzleRequest, request: KuzzleRequest, error: Error): Promise<any>;
|
|
107
171
|
/**
|
|
108
172
|
* Helper function meant to normalize event names
|
|
109
173
|
* by retrieving controller aliases' original names.
|
|
@@ -112,7 +176,7 @@ declare class Funnel {
|
|
|
112
176
|
* @param {string} prefix - event prefix
|
|
113
177
|
* @returns {string} event name
|
|
114
178
|
*/
|
|
115
|
-
getEventName(request:
|
|
179
|
+
getEventName(request: KuzzleRequest, prefix: string): string;
|
|
116
180
|
/**
|
|
117
181
|
* Returns the number of remaining requests
|
|
118
182
|
*
|
|
@@ -126,18 +190,26 @@ declare class Funnel {
|
|
|
126
190
|
* @returns {Object} controller object
|
|
127
191
|
* @throws {BadRequestError} If the asked controller or action is unknown
|
|
128
192
|
*/
|
|
129
|
-
getController(request:
|
|
193
|
+
getController(request: KuzzleRequest): BaseController;
|
|
130
194
|
/**
|
|
131
195
|
* Tell if the controller is a native controller or not
|
|
132
196
|
* @param {String} controller
|
|
133
197
|
* @returns {Boolean}
|
|
134
198
|
*/
|
|
135
|
-
|
|
199
|
+
/**
|
|
200
|
+
* `string | null`: the two callers ask it of `request.input.controller`,
|
|
201
|
+
* which is null until set. A request naming no controller is not a native
|
|
202
|
+
* one, which is the answer the map already gave.
|
|
203
|
+
*/
|
|
204
|
+
isNativeController(controller: string | null): boolean;
|
|
136
205
|
/**
|
|
137
206
|
* Returns inner metrics from the Funnel
|
|
138
207
|
* @returns {Object}
|
|
139
208
|
*/
|
|
140
|
-
metrics():
|
|
209
|
+
metrics(): {
|
|
210
|
+
concurrentRequests: number;
|
|
211
|
+
pendingRequests: number;
|
|
212
|
+
};
|
|
141
213
|
/**
|
|
142
214
|
* If the request is coming from an official SDK,
|
|
143
215
|
* then checks the compatibility of the SDK against current Kuzzle version.
|
|
@@ -146,7 +218,7 @@ declare class Funnel {
|
|
|
146
218
|
*
|
|
147
219
|
* @throws
|
|
148
220
|
*/
|
|
149
|
-
_checkSdkVersion(request:
|
|
221
|
+
_checkSdkVersion(request: KuzzleRequest): void;
|
|
150
222
|
/**
|
|
151
223
|
* Populates the given request with the error and calls the callback
|
|
152
224
|
*
|
|
@@ -157,19 +229,52 @@ declare class Funnel {
|
|
|
157
229
|
* @returns {null}
|
|
158
230
|
* @private
|
|
159
231
|
*/
|
|
160
|
-
|
|
232
|
+
_executeError(error: Error, request: KuzzleRequest, asError: boolean, callback: ExecuteCallback): null;
|
|
233
|
+
/**
|
|
234
|
+
* Plays the request at the front of the pending queue.
|
|
235
|
+
*
|
|
236
|
+
* @returns whether the loop should carry on — false when the queue has
|
|
237
|
+
* nothing playable at its head, when the throttle refuses the
|
|
238
|
+
* slot, or when it throws.
|
|
239
|
+
*/
|
|
240
|
+
private _playOnePendingRequest;
|
|
161
241
|
/**
|
|
162
242
|
* Background task. Checks if there are any requests in cache, and replay them
|
|
163
243
|
* if Kuzzle is not overloaded anymore,
|
|
164
244
|
*/
|
|
165
245
|
_playPendingRequests(): void;
|
|
166
246
|
/**
|
|
167
|
-
* Eventually wrap an error into a PluginImplementationError
|
|
247
|
+
* Eventually wrap an error into a PluginImplementationError.
|
|
248
|
+
*
|
|
249
|
+
* Everything that reaches this method comes out of a pipe — the error pipes
|
|
250
|
+
* of `handleProcessRequestError`, or `processRequest`'s own
|
|
251
|
+
* `request:onExecution` / before / after pipes — i.e. out of plugin code. A
|
|
252
|
+
* controller's error is wrapped at its source by `_wrapControllerError` and
|
|
253
|
+
* arrives here already a KuzzleError, so there is nothing left to guard on:
|
|
254
|
+
* see TD-27 (https://github.com/kuzzleio/kuzzle/issues/2703), which is why
|
|
255
|
+
* the previous guard on the controller name is gone rather than fixed.
|
|
256
|
+
*
|
|
168
257
|
* @param {Request} request
|
|
169
258
|
* @param {Error} error
|
|
170
259
|
* @returns {KuzzleError}
|
|
171
260
|
*/
|
|
172
|
-
_wrapError(request:
|
|
261
|
+
_wrapError(request: KuzzleRequest, error: Error): Error;
|
|
262
|
+
/**
|
|
263
|
+
* Normalizes an error thrown by a controller action into a KuzzleError.
|
|
264
|
+
*
|
|
265
|
+
* A native controller throwing something that is not a KuzzleError is a
|
|
266
|
+
* Kuzzle bug, and it is reported as one (`core.fatal.unexpected_error`).
|
|
267
|
+
* Reporting it as `plugin.runtime.unexpected_error` — which is what happened
|
|
268
|
+
* for as long as `_wrapError`'s guard was dead — names the wrong culprit,
|
|
269
|
+
* and letting it through raw is worse still: `KuzzleRequest.setError` then
|
|
270
|
+
* builds an InternalError with no `id` and no `code`, on a 500 sent to a
|
|
271
|
+
* client. See TD-27 (https://github.com/kuzzleio/kuzzle/issues/2703).
|
|
272
|
+
*
|
|
273
|
+
* @param {Request} request
|
|
274
|
+
* @param {Error} error
|
|
275
|
+
* @returns {KuzzleError}
|
|
276
|
+
*/
|
|
277
|
+
_wrapControllerError(request: KuzzleRequest, error: Error): Error;
|
|
173
278
|
/**
|
|
174
279
|
* Verifies if requests sent from a specific origin are allowed
|
|
175
280
|
* @param {string} origin
|
|
@@ -177,7 +282,4 @@ declare class Funnel {
|
|
|
177
282
|
*/
|
|
178
283
|
_isOriginAuthorized(origin: string): boolean;
|
|
179
284
|
}
|
|
180
|
-
|
|
181
|
-
import RateLimiter = require("./rateLimiter");
|
|
182
|
-
import Bluebird = require("bluebird");
|
|
183
|
-
import { KuzzleError } from "../kerror/errors/kuzzleError";
|
|
285
|
+
export = Funnel;
|