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,10 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export function
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export function
|
|
8
|
-
export function
|
|
9
|
-
export function
|
|
10
|
-
|
|
1
|
+
import type { JSONObject } from "../types/JSONObject";
|
|
2
|
+
import type { KuzzleRequest } from "../api/request";
|
|
3
|
+
export declare function assertArgsHasAttribute(request: KuzzleRequest, attribute: string): void;
|
|
4
|
+
/**
|
|
5
|
+
* Note: Assumes assertHasBody has been called first
|
|
6
|
+
*/
|
|
7
|
+
export declare function assertBodyAttributeType(request: KuzzleRequest, attribute: string, type: string): boolean;
|
|
8
|
+
export declare function assertBodyHasAttribute(request: KuzzleRequest, attribute: string): void;
|
|
9
|
+
export declare function assertBodyHasNotAttribute(request: KuzzleRequest, attribute: string): void;
|
|
10
|
+
/**
|
|
11
|
+
* A request whose body this module has checked. `input.body` is
|
|
12
|
+
* `JSONObject | null` on every request — a GET carries none — and the
|
|
13
|
+
* controllers read it straight after asserting it, dozens of times per file.
|
|
14
|
+
* The assertion signature is what carries that check to those reads instead
|
|
15
|
+
* of each one restating it.
|
|
16
|
+
*/
|
|
17
|
+
export type RequestWithBody = KuzzleRequest & {
|
|
18
|
+
input: KuzzleRequest["input"] & {
|
|
19
|
+
body: JSONObject;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Note: Assumes content exists
|
|
24
|
+
*/
|
|
25
|
+
export declare function assertHasBody(request: KuzzleRequest): asserts request is RequestWithBody;
|
|
26
|
+
export declare function assertHasId(request: KuzzleRequest): void;
|
|
27
|
+
export declare function assertHasIndex(request: KuzzleRequest): void;
|
|
28
|
+
export declare function assertHasIndexAndCollection(request: KuzzleRequest): void;
|
|
29
|
+
export declare function assertIsAuthenticated(anonymousId: string, request: KuzzleRequest): void;
|
|
30
|
+
export declare function assertIsObject(value: unknown): void;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/*
|
|
2
3
|
* Kuzzle, a backend software, self-hostable and ready to use
|
|
3
4
|
* to power modern apps
|
|
@@ -18,126 +19,129 @@
|
|
|
18
19
|
* See the License for the specific language governing permissions and
|
|
19
20
|
* limitations under the License.
|
|
20
21
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
// The body should always be passed as JSON, we don't consider type conversion possibilities
|
|
47
|
-
if (typeof get(request.input.body, attribute) === type) {
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
break;
|
|
51
|
-
case "array":
|
|
52
|
-
if (Array.isArray(get(request.input.body, attribute))) {
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
break;
|
|
56
|
-
case "object":
|
|
57
|
-
if (isPlainObject(get(request.input.body, attribute))) {
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
break;
|
|
61
|
-
default:
|
|
62
|
-
throw assertionError.get("unexpected_type_assertion", type, attribute);
|
|
63
|
-
}
|
|
64
|
-
throw assertionError.get("invalid_type", `body.${attribute}`, type);
|
|
65
|
-
},
|
|
66
|
-
/**
|
|
67
|
-
*
|
|
68
|
-
* @param {Request} request
|
|
69
|
-
* @param {string} attribute
|
|
70
|
-
*/
|
|
71
|
-
assertBodyHasAttribute: (request, attribute) => {
|
|
72
|
-
if (_.isNil(get(request.input.body, attribute))) {
|
|
73
|
-
throw assertionError.get("missing_argument", `body.${attribute}`);
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
/**
|
|
77
|
-
* @param {Request} request
|
|
78
|
-
* @param {string} attribute
|
|
79
|
-
*/
|
|
80
|
-
assertBodyHasNotAttribute: (request, attribute) => {
|
|
81
|
-
if (!_.isNil(get(request.input.body, attribute))) {
|
|
82
|
-
throw assertionError.get("forbidden_argument", `body.${attribute}`);
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
/**
|
|
86
|
-
* Note: Assumes content exists
|
|
87
|
-
*
|
|
88
|
-
* @param {Request} request
|
|
89
|
-
* @param {string} attribute
|
|
90
|
-
* @param {string} type
|
|
91
|
-
*/
|
|
92
|
-
assertHasBody: (request) => {
|
|
93
|
-
if (_.isNil(request.input.body)) {
|
|
94
|
-
throw assertionError.get("body_required");
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
/**
|
|
98
|
-
* @param {Request} request
|
|
99
|
-
*/
|
|
100
|
-
assertHasId: (request) => {
|
|
101
|
-
if (!request.input.args._id) {
|
|
102
|
-
throw assertionError.get("missing_argument", "_id");
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
/**
|
|
106
|
-
* @param {Request} request
|
|
107
|
-
*/
|
|
108
|
-
assertHasIndex: (request) => {
|
|
109
|
-
if (!request.input.args.index) {
|
|
110
|
-
throw assertionError.get("missing_argument", "index");
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
/**
|
|
114
|
-
* @param {Request} request
|
|
115
|
-
*/
|
|
116
|
-
assertHasIndexAndCollection: (request) => {
|
|
117
|
-
if (!request.input.args.index) {
|
|
118
|
-
throw assertionError.get("missing_argument", "index");
|
|
119
|
-
}
|
|
120
|
-
if (!request.input.args.collection) {
|
|
121
|
-
throw assertionError.get("missing_argument", "collection");
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
/**
|
|
125
|
-
* @param {Kuzzle} kuzzle
|
|
126
|
-
* @param {Request} request
|
|
127
|
-
*/
|
|
128
|
-
assertIsAuthenticated: (anonymousId, request) => {
|
|
129
|
-
if (request.context.user._id === anonymousId) {
|
|
130
|
-
throw kerror.get("security", "rights", "unauthorized");
|
|
131
|
-
}
|
|
132
|
-
},
|
|
133
|
-
/**
|
|
134
|
-
* @param {Kuzzle} kuzzle
|
|
135
|
-
* @param {Request} request
|
|
136
|
-
*/
|
|
137
|
-
assertIsObject: (value) => {
|
|
138
|
-
if (!isPlainObject(value)) {
|
|
139
|
-
throw assertionError.get("invalid_argument", value, "object");
|
|
140
|
-
}
|
|
141
|
-
},
|
|
22
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
25
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
26
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
27
|
+
}
|
|
28
|
+
Object.defineProperty(o, k2, desc);
|
|
29
|
+
}) : (function(o, m, k, k2) {
|
|
30
|
+
if (k2 === undefined) k2 = k;
|
|
31
|
+
o[k2] = m[k];
|
|
32
|
+
}));
|
|
33
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
34
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
35
|
+
}) : function(o, v) {
|
|
36
|
+
o["default"] = v;
|
|
37
|
+
});
|
|
38
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
39
|
+
if (mod && mod.__esModule) return mod;
|
|
40
|
+
var result = {};
|
|
41
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
42
|
+
__setModuleDefault(result, mod);
|
|
43
|
+
return result;
|
|
44
|
+
};
|
|
45
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
46
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
142
47
|
};
|
|
48
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
+
exports.assertIsObject = exports.assertIsAuthenticated = exports.assertHasIndexAndCollection = exports.assertHasIndex = exports.assertHasId = exports.assertHasBody = exports.assertBodyHasNotAttribute = exports.assertBodyHasAttribute = exports.assertBodyAttributeType = exports.assertArgsHasAttribute = void 0;
|
|
50
|
+
const isNil_1 = __importDefault(require("lodash/isNil"));
|
|
51
|
+
const kerror = __importStar(require("../kerror"));
|
|
52
|
+
const safeObject_1 = require("./safeObject");
|
|
53
|
+
const assertionError = kerror.wrap("api", "assert");
|
|
54
|
+
function assertArgsHasAttribute(request, attribute) {
|
|
55
|
+
if ((0, isNil_1.default)((0, safeObject_1.get)(request.input.args, attribute))) {
|
|
56
|
+
throw assertionError.get("missing_argument", attribute);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.assertArgsHasAttribute = assertArgsHasAttribute;
|
|
60
|
+
/**
|
|
61
|
+
* Note: Assumes assertHasBody has been called first
|
|
62
|
+
*/
|
|
63
|
+
function assertBodyAttributeType(request, attribute, type) {
|
|
64
|
+
switch (type) {
|
|
65
|
+
case "number":
|
|
66
|
+
case "boolean":
|
|
67
|
+
case "string":
|
|
68
|
+
// The body should always be passed as JSON, we don't consider type conversion possibilities
|
|
69
|
+
if (typeof (0, safeObject_1.get)(request.input.body, attribute) === type) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
break;
|
|
73
|
+
case "array":
|
|
74
|
+
if (Array.isArray((0, safeObject_1.get)(request.input.body, attribute))) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
break;
|
|
78
|
+
case "object":
|
|
79
|
+
if ((0, safeObject_1.isPlainObject)((0, safeObject_1.get)(request.input.body, attribute))) {
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
break;
|
|
83
|
+
default:
|
|
84
|
+
throw assertionError.get("unexpected_type_assertion", type, attribute);
|
|
85
|
+
}
|
|
86
|
+
throw assertionError.get("invalid_type", `body.${attribute}`, type);
|
|
87
|
+
}
|
|
88
|
+
exports.assertBodyAttributeType = assertBodyAttributeType;
|
|
89
|
+
function assertBodyHasAttribute(request, attribute) {
|
|
90
|
+
if ((0, isNil_1.default)((0, safeObject_1.get)(request.input.body, attribute))) {
|
|
91
|
+
throw assertionError.get("missing_argument", `body.${attribute}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.assertBodyHasAttribute = assertBodyHasAttribute;
|
|
95
|
+
function assertBodyHasNotAttribute(request, attribute) {
|
|
96
|
+
if (!(0, isNil_1.default)((0, safeObject_1.get)(request.input.body, attribute))) {
|
|
97
|
+
throw assertionError.get("forbidden_argument", `body.${attribute}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.assertBodyHasNotAttribute = assertBodyHasNotAttribute;
|
|
101
|
+
/**
|
|
102
|
+
* Note: Assumes content exists
|
|
103
|
+
*/
|
|
104
|
+
function assertHasBody(request) {
|
|
105
|
+
if ((0, isNil_1.default)(request.input.body)) {
|
|
106
|
+
throw assertionError.get("body_required");
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.assertHasBody = assertHasBody;
|
|
110
|
+
function assertHasId(request) {
|
|
111
|
+
if (!request.input.args._id) {
|
|
112
|
+
throw assertionError.get("missing_argument", "_id");
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.assertHasId = assertHasId;
|
|
116
|
+
function assertHasIndex(request) {
|
|
117
|
+
if (!request.input.args.index) {
|
|
118
|
+
throw assertionError.get("missing_argument", "index");
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
exports.assertHasIndex = assertHasIndex;
|
|
122
|
+
function assertHasIndexAndCollection(request) {
|
|
123
|
+
if (!request.input.args.index) {
|
|
124
|
+
throw assertionError.get("missing_argument", "index");
|
|
125
|
+
}
|
|
126
|
+
if (!request.input.args.collection) {
|
|
127
|
+
throw assertionError.get("missing_argument", "collection");
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
exports.assertHasIndexAndCollection = assertHasIndexAndCollection;
|
|
131
|
+
function assertIsAuthenticated(anonymousId, request) {
|
|
132
|
+
// `context.user` is null until the request has been authenticated, which is
|
|
133
|
+
// precisely the case this assertion exists to reject — reading `_id` off it
|
|
134
|
+
// threw a TypeError instead of the intended error.
|
|
135
|
+
if (request.context.user === null ||
|
|
136
|
+
request.context.user._id === anonymousId) {
|
|
137
|
+
throw kerror.get("security", "rights", "unauthorized");
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.assertIsAuthenticated = assertIsAuthenticated;
|
|
141
|
+
function assertIsObject(value) {
|
|
142
|
+
if (!(0, safeObject_1.isPlainObject)(value)) {
|
|
143
|
+
throw assertionError.get("invalid_argument", value, "object");
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.assertIsObject = assertIsObject;
|
|
143
147
|
//# sourceMappingURL=requestAssertions.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export function
|
|
2
|
-
export function
|
|
3
|
-
export function isPlainObject(o:
|
|
1
|
+
export declare function has(o: unknown, prop: PropertyKey): boolean;
|
|
2
|
+
export declare function get(o: unknown, prop: PropertyKey): unknown;
|
|
3
|
+
export declare function isPlainObject(o: unknown): o is Record<string, unknown>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/*
|
|
2
3
|
* Kuzzle, a backend software, self-hostable and ready to use
|
|
3
4
|
* to power modern apps
|
|
@@ -18,19 +19,22 @@
|
|
|
18
19
|
* See the License for the specific language governing permissions and
|
|
19
20
|
* limitations under the License.
|
|
20
21
|
*/
|
|
21
|
-
"
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.isPlainObject = exports.get = exports.has = void 0;
|
|
22
24
|
// Simple utility functions for safe (and fast) object manipulations
|
|
23
25
|
function has(o, prop) {
|
|
24
|
-
return Object.
|
|
26
|
+
return Object.hasOwn(o, prop);
|
|
25
27
|
}
|
|
28
|
+
exports.has = has;
|
|
26
29
|
function get(o, prop) {
|
|
27
30
|
if (has(o, prop)) {
|
|
28
31
|
return o[prop];
|
|
29
32
|
}
|
|
30
33
|
return undefined;
|
|
31
34
|
}
|
|
35
|
+
exports.get = get;
|
|
32
36
|
function isPlainObject(o) {
|
|
33
37
|
return Object.prototype.toString.call(o) === "[object Object]";
|
|
34
38
|
}
|
|
35
|
-
|
|
39
|
+
exports.isPlainObject = isPlainObject;
|
|
36
40
|
//# sourceMappingURL=safeObject.js.map
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import "../types/Global";
|
|
1
2
|
/**
|
|
2
3
|
* Hilight user code
|
|
3
4
|
*
|
|
@@ -8,12 +9,19 @@
|
|
|
8
9
|
* >>>> at init (/home/aschen/projets/app/test.ts:8:3)
|
|
9
10
|
* at Module._compile (internal/modules/cjs/loader.js:1133:30)
|
|
10
11
|
*/
|
|
11
|
-
export function hilightUserCode(line:
|
|
12
|
+
export declare function hilightUserCode(line: string): string;
|
|
13
|
+
interface SerializedRequestResponse {
|
|
14
|
+
content?: {
|
|
15
|
+
error?: {
|
|
16
|
+
stack?: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
}
|
|
12
20
|
/**
|
|
13
21
|
* utility method: must be invoked by all protocols to remove stack traces
|
|
14
22
|
* from payloads before sending them
|
|
15
|
-
* @param
|
|
16
|
-
*
|
|
17
|
-
* @returns {*} return the data minus the stack trace
|
|
23
|
+
* @param data - expected: plain error object or serialized request response
|
|
24
|
+
* @returns return the data minus the stack trace
|
|
18
25
|
*/
|
|
19
|
-
export function removeStacktrace
|
|
26
|
+
export declare function removeStacktrace<T extends Error | SerializedRequestResponse>(data: T): T;
|
|
27
|
+
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/*
|
|
2
3
|
* Kuzzle, a backend software, self-hostable and ready to use
|
|
3
4
|
* to power modern apps
|
|
@@ -18,8 +19,9 @@
|
|
|
18
19
|
* See the License for the specific language governing permissions and
|
|
19
20
|
* limitations under the License.
|
|
20
21
|
*/
|
|
21
|
-
"
|
|
22
|
-
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.removeStacktrace = exports.hilightUserCode = void 0;
|
|
24
|
+
require("../types/Global");
|
|
23
25
|
const MARKER = ">";
|
|
24
26
|
const PADDING = " ";
|
|
25
27
|
/**
|
|
@@ -48,23 +50,29 @@ function hilightUserCode(line) {
|
|
|
48
50
|
// hilight user code
|
|
49
51
|
return MARKER + line;
|
|
50
52
|
}
|
|
53
|
+
exports.hilightUserCode = hilightUserCode;
|
|
51
54
|
/**
|
|
52
55
|
* utility method: must be invoked by all protocols to remove stack traces
|
|
53
56
|
* from payloads before sending them
|
|
54
|
-
* @param
|
|
55
|
-
*
|
|
56
|
-
* @returns {*} return the data minus the stack trace
|
|
57
|
+
* @param data - expected: plain error object or serialized request response
|
|
58
|
+
* @returns return the data minus the stack trace
|
|
57
59
|
*/
|
|
58
60
|
function removeStacktrace(data) {
|
|
59
|
-
if (
|
|
61
|
+
if (data instanceof Error) {
|
|
60
62
|
if (global.NODE_ENV !== "development") {
|
|
61
63
|
data.stack = undefined;
|
|
62
64
|
}
|
|
63
65
|
else {
|
|
64
|
-
|
|
66
|
+
// `KuzzleError` sets `stack` to undefined in its own constructor before
|
|
67
|
+
// deciding what to put there, so an Error with no stack is not a
|
|
68
|
+
// hypothetical here — the branch below already spelled this out for the
|
|
69
|
+
// serialized-response case.
|
|
70
|
+
data.stack = data.stack
|
|
71
|
+
? data.stack.split("\n").map(hilightUserCode).join("\n")
|
|
72
|
+
: undefined;
|
|
65
73
|
}
|
|
66
74
|
}
|
|
67
|
-
else if (data
|
|
75
|
+
else if (data?.content?.error) {
|
|
68
76
|
// @todo v3: stack should be removed only for "production" env
|
|
69
77
|
if (global.NODE_ENV !== "development") {
|
|
70
78
|
data.content.error.stack = undefined;
|
|
@@ -77,8 +85,5 @@ function removeStacktrace(data) {
|
|
|
77
85
|
}
|
|
78
86
|
return data;
|
|
79
87
|
}
|
|
80
|
-
|
|
81
|
-
hilightUserCode,
|
|
82
|
-
removeStacktrace,
|
|
83
|
-
};
|
|
88
|
+
exports.removeStacktrace = removeStacktrace;
|
|
84
89
|
//# sourceMappingURL=stackTrace.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whatever was thrown, as an `Error`.
|
|
3
|
+
*
|
|
4
|
+
* `catch` answers `unknown`, and a plugin may throw or reject with anything.
|
|
5
|
+
* The message is the thrown value's own `message`, read the way the
|
|
6
|
+
* JavaScript read it: `{ message: "x" }` gives "x", and a value without one
|
|
7
|
+
* (a string, a number, `null`) gives "undefined" — where the JavaScript
|
|
8
|
+
* crashed on `null`.
|
|
9
|
+
*
|
|
10
|
+
* Never `util.inspect`: this message ends up in the error a client receives,
|
|
11
|
+
* and inspecting a plugin's object would copy its whole content there.
|
|
12
|
+
*/
|
|
13
|
+
export declare function causeOf(thrown: unknown): Error;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Kuzzle, a backend software, self-hostable and ready to use
|
|
4
|
+
* to power modern apps
|
|
5
|
+
*
|
|
6
|
+
* Copyright 2015-2022 Kuzzle
|
|
7
|
+
* mailto: support AT kuzzle.io
|
|
8
|
+
* website: http://kuzzle.io
|
|
9
|
+
*
|
|
10
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11
|
+
* you may not use this file except in compliance with the License.
|
|
12
|
+
* You may obtain a copy of the License at
|
|
13
|
+
*
|
|
14
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
15
|
+
*
|
|
16
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
17
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19
|
+
* See the License for the specific language governing permissions and
|
|
20
|
+
* limitations under the License.
|
|
21
|
+
*/
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.causeOf = void 0;
|
|
24
|
+
/**
|
|
25
|
+
* Whatever was thrown, as an `Error`.
|
|
26
|
+
*
|
|
27
|
+
* `catch` answers `unknown`, and a plugin may throw or reject with anything.
|
|
28
|
+
* The message is the thrown value's own `message`, read the way the
|
|
29
|
+
* JavaScript read it: `{ message: "x" }` gives "x", and a value without one
|
|
30
|
+
* (a string, a number, `null`) gives "undefined" — where the JavaScript
|
|
31
|
+
* crashed on `null`.
|
|
32
|
+
*
|
|
33
|
+
* Never `util.inspect`: this message ends up in the error a client receives,
|
|
34
|
+
* and inspecting a plugin's object would copy its whole content there.
|
|
35
|
+
*/
|
|
36
|
+
function causeOf(thrown) {
|
|
37
|
+
if (thrown instanceof Error) {
|
|
38
|
+
return thrown;
|
|
39
|
+
}
|
|
40
|
+
const message = thrown === null || thrown === undefined
|
|
41
|
+
? undefined
|
|
42
|
+
: Reflect.get(Object(thrown), "message");
|
|
43
|
+
return new Error(String(message));
|
|
44
|
+
}
|
|
45
|
+
exports.causeOf = causeOf;
|
|
46
|
+
//# sourceMappingURL=thrown.js.map
|
package/dist/package.json
CHANGED
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kuzzle",
|
|
3
3
|
"author": "The Kuzzle Team <support@kuzzle.io>",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.57.0-beta.2",
|
|
5
5
|
"description": "Kuzzle is an open-source solution that handles all the data management through a secured API, with a large choice of protocols.",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"build": "rm -Rf ./dist && tsc && node ./bin/copy-binaries.
|
|
7
|
+
"build": "rm -Rf ./dist && tsc && node -r ts-node/register/transpile-only ./bin/copy-binaries.ts",
|
|
8
8
|
"cucumber": "cucumber.js --fail-fast",
|
|
9
9
|
"dev": "tsx watch start-kuzzle-dev.ts",
|
|
10
10
|
"doc-error-codes": "node -r ts-node/register doc/build-error-codes",
|
|
11
|
-
"prepublishOnly": "npm run build",
|
|
12
|
-
"prettier": "prettier ./lib ./
|
|
11
|
+
"prepublishOnly": "npm run build && ./.ci/scripts/check-build-payload.sh",
|
|
12
|
+
"prettier": "prettier ./lib ./tests ./features ./features-legacy --write",
|
|
13
|
+
"prettier:check": "prettier ./lib ./tests ./features ./features-legacy --check",
|
|
14
|
+
"ratchet": "npm run ratchet:js && npm run ratchet:any && npm run ratchet:casts && npm run ratchet:cpd-exclusions",
|
|
15
|
+
"ratchet:any": "bash scripts/ratchet.sh any",
|
|
16
|
+
"ratchet:casts": "bash scripts/ratchet.sh casts",
|
|
17
|
+
"ratchet:cpd-exclusions": "bash scripts/ratchet.sh cpd-exclusions",
|
|
18
|
+
"ratchet:js": "bash scripts/ratchet.sh js",
|
|
13
19
|
"test:functional:legacy:http": "cucumber-js --format progress-bar --profile httpLegacy --config cucumber.config.cjs",
|
|
14
20
|
"test:functional:legacy:mqtt": "cucumber-js --format progress-bar --profile mqttLegacy --config cucumber.config.cjs",
|
|
15
21
|
"test:functional:legacy:websocket": "cucumber-js --format progress-bar --profile websocketLegacy --config cucumber.config.cjs",
|
|
16
22
|
"test:functional:http": "KUZZLE_PROTOCOL=http cucumber-js --profile http --config cucumber.config.cjs",
|
|
17
23
|
"test:functional:websocket": "KUZZLE_PROTOCOL=websocket cucumber-js --profile websocket --config cucumber.config.cjs",
|
|
18
24
|
"test:unit:vitest": "vitest run --fileParallelism false --coverage --bail=1 --passWithNoTests",
|
|
19
|
-
"test:
|
|
20
|
-
"
|
|
21
|
-
"
|
|
25
|
+
"test:lint": "eslint ./lib ./tests ./bin ./features ./features-legacy",
|
|
26
|
+
"typecheck:tests": "tsc -p tsconfig.tests.json",
|
|
27
|
+
"typecheck:typings": "tsc -p tests/typings/tsconfig.json && tsc -p tests/typings/tsconfig.loose.json"
|
|
22
28
|
},
|
|
23
29
|
"main": "./dist/index.js",
|
|
24
30
|
"types": "./dist/index.d.ts",
|
|
@@ -33,18 +39,18 @@
|
|
|
33
39
|
"debug": "4.4.3",
|
|
34
40
|
"denque": "2.1.0",
|
|
35
41
|
"didyoumean": "1.2.2",
|
|
36
|
-
"dumpme": "2.0.
|
|
42
|
+
"dumpme": "2.1.0-dev.1",
|
|
37
43
|
"eventemitter3": "5.0.1",
|
|
38
44
|
"inquirer": "13.1.0",
|
|
39
45
|
"ioredis": "5.8.2",
|
|
40
46
|
"json-stable-stringify": "1.3.0",
|
|
41
47
|
"json2yaml": "1.1.0",
|
|
42
48
|
"jsonwebtoken": "9.0.3",
|
|
43
|
-
"koncorde": "4.
|
|
49
|
+
"koncorde": "4.8.0-beta.2",
|
|
44
50
|
"kuzzle-logger": "1.4.0",
|
|
45
51
|
"kuzzle-plugin-auth-passport-local": "6.4.1",
|
|
46
|
-
"kuzzle-sdk": ">=7.17.1",
|
|
47
|
-
"kuzzle-vault": "2.
|
|
52
|
+
"kuzzle-sdk": ">=7.17.1 <8.0.0",
|
|
53
|
+
"kuzzle-vault": "2.2.0",
|
|
48
54
|
"lodash": "4.17.21",
|
|
49
55
|
"long": "5.3.2",
|
|
50
56
|
"moment": "2.30.1",
|
|
@@ -59,6 +65,7 @@
|
|
|
59
65
|
"pino-transport-ecs": "1.1.0",
|
|
60
66
|
"protobufjs": "7.5.4",
|
|
61
67
|
"rc": "1.2.8",
|
|
68
|
+
"redis-semaphore": "5.8.0",
|
|
62
69
|
"sdk-es7": "npm:@elastic/elasticsearch@7.13.0",
|
|
63
70
|
"sdk-es8": "npm:@elastic/elasticsearch@8.17.1",
|
|
64
71
|
"semver": "7.7.3",
|
|
@@ -75,29 +82,29 @@
|
|
|
75
82
|
},
|
|
76
83
|
"devDependencies": {
|
|
77
84
|
"@cucumber/cucumber": "12.5.0",
|
|
85
|
+
"@types/async": "^3.2.24",
|
|
78
86
|
"@types/bluebird": "3.5.42",
|
|
79
87
|
"@types/cookie": "1.0.0",
|
|
80
88
|
"@types/lodash": "4.17.21",
|
|
81
|
-
"@types/mocha": "10.0.10",
|
|
82
89
|
"@types/passport": "1.0.17",
|
|
90
|
+
"@types/validator": "^13.15.10",
|
|
91
|
+
"@types/yargs": "17.0.35",
|
|
83
92
|
"@vitest/coverage-v8": "4.0.16",
|
|
84
93
|
"async": "3.2.6",
|
|
85
|
-
"
|
|
86
|
-
"eslint-plugin-kuzzle": "0.0
|
|
87
|
-
"
|
|
88
|
-
"mock-require": "3.0.3",
|
|
94
|
+
"eslint": "10.10.0",
|
|
95
|
+
"eslint-plugin-kuzzle": "2.0.0",
|
|
96
|
+
"ioredis-mock": "8.13.1",
|
|
89
97
|
"mqtt": "5.14.1",
|
|
98
|
+
"prettier": "3.9.7",
|
|
90
99
|
"request-promise": "4.2.6",
|
|
91
|
-
"rewire": "5.0.0",
|
|
92
100
|
"semantic-release-config-kuzzle": "1.3.0",
|
|
93
101
|
"should": "13.2.3",
|
|
94
|
-
"should-sinon": "0.0.6",
|
|
95
|
-
"sinon": "21.0.0",
|
|
96
102
|
"strip-json-comments": "https://github.com/sindresorhus/strip-json-comments/archive/refs/tags/v3.1.1.tar.gz",
|
|
97
103
|
"ts-node": "10.9.2",
|
|
98
104
|
"tsx": "4.21.0",
|
|
99
105
|
"typescript": "5.4.5",
|
|
100
106
|
"vitest": "4.0.16",
|
|
107
|
+
"ws": "^8.18.3",
|
|
101
108
|
"yaml": "2.8.2"
|
|
102
109
|
},
|
|
103
110
|
"engines": {
|