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,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,13 +19,38 @@
|
|
|
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
|
-
|
|
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 };
|
|
47
|
+
};
|
|
48
|
+
const actionEnum = __importStar(require("../../core/realtime/actionEnum"));
|
|
49
|
+
const kerror = __importStar(require("../../kerror"));
|
|
50
|
+
const dump_collection_1 = require("../../util/dump-collection");
|
|
51
|
+
const requestAssertions_1 = require("../../util/requestAssertions");
|
|
52
|
+
const baseController_1 = require("./baseController");
|
|
53
|
+
const extractFields_1 = __importDefault(require("../../util/extractFields"));
|
|
28
54
|
/**
|
|
29
55
|
* @description actions available on the document Controller (used by generic events)
|
|
30
56
|
* @key actions
|
|
@@ -59,7 +85,7 @@ const actions = {
|
|
|
59
85
|
/**
|
|
60
86
|
* @class DocumentController
|
|
61
87
|
*/
|
|
62
|
-
class DocumentController extends NativeController {
|
|
88
|
+
class DocumentController extends baseController_1.NativeController {
|
|
63
89
|
constructor() {
|
|
64
90
|
super(Object.keys(actions));
|
|
65
91
|
}
|
|
@@ -76,7 +102,9 @@ class DocumentController extends NativeController {
|
|
|
76
102
|
async search(request) {
|
|
77
103
|
const { from, size, scrollTTL, searchBody } = request.getSearchParams();
|
|
78
104
|
const index = request.getIndex({ required: false });
|
|
79
|
-
const collection = request.getCollection({
|
|
105
|
+
const collection = request.getCollection({
|
|
106
|
+
required: false,
|
|
107
|
+
});
|
|
80
108
|
const targets = request.getArray("targets", []);
|
|
81
109
|
const lang = request.getLangParam();
|
|
82
110
|
if (!index && !collection && (!targets || targets.length === 0)) {
|
|
@@ -146,27 +174,8 @@ class DocumentController extends NativeController {
|
|
|
146
174
|
/**
|
|
147
175
|
* @param {Request} request
|
|
148
176
|
*/
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
if (request.input.body &&
|
|
152
|
-
request.input.body.ids &&
|
|
153
|
-
Object.keys(request.input.body.ids).length) {
|
|
154
|
-
ids = request.getBodyArray("ids");
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
ids = request.getArray("ids");
|
|
158
|
-
}
|
|
159
|
-
const { index, collection } = request.getIndexAndCollection();
|
|
160
|
-
const strict = request.getBoolean("strict");
|
|
161
|
-
this.assertNotExceedMaxFetch(ids.length);
|
|
162
|
-
const { items, errors } = await this.ask("core:storage:public:document:mExists", index, collection, ids);
|
|
163
|
-
if (strict && errors.length) {
|
|
164
|
-
throw kerror.get("api", "process", "incomplete_multiple_request", "get", errors);
|
|
165
|
-
}
|
|
166
|
-
return {
|
|
167
|
-
errors,
|
|
168
|
-
successes: items,
|
|
169
|
-
};
|
|
177
|
+
mExists(request) {
|
|
178
|
+
return this._mFetch(request, "mExists");
|
|
170
179
|
}
|
|
171
180
|
async export(request) {
|
|
172
181
|
const { index, collection } = request.getIndexAndCollection();
|
|
@@ -175,6 +184,7 @@ class DocumentController extends NativeController {
|
|
|
175
184
|
const format = request.getString("format", "jsonl");
|
|
176
185
|
const separator = request.getString("separator", ",");
|
|
177
186
|
const query = request.getObjectFromBodyOrArgs("query", {});
|
|
187
|
+
const sort = getExportSort(request);
|
|
178
188
|
const collapse = request.getObjectFromBodyOrArgs("collapse", {});
|
|
179
189
|
const fields = request.getArrayFromBodyOrArgs("fields", []);
|
|
180
190
|
const fieldsName = request.getObjectFromBodyOrArgs("fieldsName", {});
|
|
@@ -188,6 +198,9 @@ class DocumentController extends NativeController {
|
|
|
188
198
|
if (lang === "koncorde") {
|
|
189
199
|
searchBody.query = await this.translateKoncorde(searchBody.query || {});
|
|
190
200
|
}
|
|
201
|
+
if (sort !== undefined) {
|
|
202
|
+
searchBody.sort = sort;
|
|
203
|
+
}
|
|
191
204
|
let mimeType = "html/text";
|
|
192
205
|
if (format.toLowerCase() === "csv") {
|
|
193
206
|
mimeType = "text/csv";
|
|
@@ -198,7 +211,7 @@ class DocumentController extends NativeController {
|
|
|
198
211
|
"Content-Type": mimeType,
|
|
199
212
|
},
|
|
200
213
|
});
|
|
201
|
-
return dumpCollectionDocuments(index, collection, searchBody, format, fields, {
|
|
214
|
+
return (0, dump_collection_1.dumpCollectionDocuments)(index, collection, searchBody, format, fields, {
|
|
202
215
|
fieldsName,
|
|
203
216
|
lang,
|
|
204
217
|
scroll: scrollTTL || "5s",
|
|
@@ -226,28 +239,9 @@ class DocumentController extends NativeController {
|
|
|
226
239
|
* @param {Request} request
|
|
227
240
|
* @returns {Promise<Object>}
|
|
228
241
|
*/
|
|
229
|
-
|
|
230
|
-
let ids;
|
|
231
|
-
if (request.input.body &&
|
|
232
|
-
request.input.body.ids &&
|
|
233
|
-
Object.keys(request.input.body.ids).length) {
|
|
234
|
-
ids = request.getBodyArray("ids");
|
|
235
|
-
}
|
|
236
|
-
else {
|
|
237
|
-
ids = request.getArray("ids");
|
|
238
|
-
}
|
|
239
|
-
const { index, collection } = request.getIndexAndCollection();
|
|
240
|
-
const strict = request.getBoolean("strict");
|
|
241
|
-
this.assertNotExceedMaxFetch(ids.length);
|
|
242
|
-
const { items, errors } = await this.ask("core:storage:public:document:mGet", index, collection, ids);
|
|
243
|
-
if (strict && errors.length) {
|
|
244
|
-
throw kerror.get("api", "process", "incomplete_multiple_request", "get", errors);
|
|
245
|
-
}
|
|
242
|
+
mGet(request) {
|
|
246
243
|
// @todo next major release: if (successes.length === 0) then throw (no matter strict value)
|
|
247
|
-
return
|
|
248
|
-
errors,
|
|
249
|
-
successes: items,
|
|
250
|
-
};
|
|
244
|
+
return this._mFetch(request, "mGet");
|
|
251
245
|
}
|
|
252
246
|
/**
|
|
253
247
|
* @param {Request} request
|
|
@@ -316,36 +310,8 @@ class DocumentController extends NativeController {
|
|
|
316
310
|
* @param {Request} request
|
|
317
311
|
* @returns {Promise<Object>}
|
|
318
312
|
*/
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
const content = request.getBody();
|
|
322
|
-
const userId = request.getKuid();
|
|
323
|
-
const silent = request.getBoolean("silent");
|
|
324
|
-
const refresh = request.getString("refresh", "false");
|
|
325
|
-
const { index, collection } = request.getIndexAndCollection();
|
|
326
|
-
const modifiedRequest = await global.kuzzle.validation.validate(request, false);
|
|
327
|
-
// Add metadata
|
|
328
|
-
const pipeMetadataResult = await this.pipe("generic:document:injectMetadata", {
|
|
329
|
-
metadata: {
|
|
330
|
-
author: userId,
|
|
331
|
-
createdAt: Date.now(),
|
|
332
|
-
updatedAt: Date.now(),
|
|
333
|
-
updater: userId,
|
|
334
|
-
},
|
|
335
|
-
request,
|
|
336
|
-
});
|
|
337
|
-
const response = await this.ask("core:storage:public:document:createOrReplace", index, collection, id, {
|
|
338
|
-
...content,
|
|
339
|
-
_kuzzle_info: pipeMetadataResult.metadata,
|
|
340
|
-
}, {
|
|
341
|
-
injectKuzzleMeta: false,
|
|
342
|
-
refresh,
|
|
343
|
-
userId,
|
|
344
|
-
});
|
|
345
|
-
if (!silent) {
|
|
346
|
-
await this.ask("core:realtime:document:notify", modifiedRequest, actionEnum.WRITE, response);
|
|
347
|
-
}
|
|
348
|
-
return response;
|
|
313
|
+
createOrReplace(request) {
|
|
314
|
+
return this._writeDocument(request, "createOrReplace");
|
|
349
315
|
}
|
|
350
316
|
/**
|
|
351
317
|
* Create or replace the documents provided in the body
|
|
@@ -390,7 +356,7 @@ class DocumentController extends NativeController {
|
|
|
390
356
|
retryOnConflict,
|
|
391
357
|
userId,
|
|
392
358
|
});
|
|
393
|
-
const _updatedFields =
|
|
359
|
+
const _updatedFields = (0, extractFields_1.default)(content, {
|
|
394
360
|
fieldsToIgnore: ["_kuzzle_info"],
|
|
395
361
|
});
|
|
396
362
|
if (!silent) {
|
|
@@ -458,7 +424,7 @@ class DocumentController extends NativeController {
|
|
|
458
424
|
await this.ask("core:realtime:document:notify", request, actionEnum.CREATE, updatedDocument._source);
|
|
459
425
|
}
|
|
460
426
|
else if (!silent) {
|
|
461
|
-
const _updatedFields =
|
|
427
|
+
const _updatedFields = (0, extractFields_1.default)(content, {
|
|
462
428
|
fieldsToIgnore: ["_kuzzle_info"],
|
|
463
429
|
});
|
|
464
430
|
await this.ask("core:realtime:document:notify", request, actionEnum.UPDATE, {
|
|
@@ -502,39 +468,8 @@ class DocumentController extends NativeController {
|
|
|
502
468
|
* @param {Request} request
|
|
503
469
|
* @returns {Promise<Object>}
|
|
504
470
|
*/
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
const content = request.getBody();
|
|
508
|
-
const userId = request.getKuid();
|
|
509
|
-
const silent = request.getBoolean("silent");
|
|
510
|
-
const refresh = request.getString("refresh", "false");
|
|
511
|
-
const { index, collection } = request.getIndexAndCollection();
|
|
512
|
-
const modifiedRequest = await global.kuzzle.validation.validate(request, false);
|
|
513
|
-
// Add metadata
|
|
514
|
-
const pipeMetadataResult = await this.pipe("generic:document:injectMetadata", {
|
|
515
|
-
metadata: {
|
|
516
|
-
author: userId,
|
|
517
|
-
createdAt: Date.now(),
|
|
518
|
-
updatedAt: Date.now(),
|
|
519
|
-
updater: userId,
|
|
520
|
-
},
|
|
521
|
-
request,
|
|
522
|
-
});
|
|
523
|
-
const response = await this.ask("core:storage:public:document:replace", index, collection, id, {
|
|
524
|
-
...content,
|
|
525
|
-
_kuzzle_info: pipeMetadataResult.metadata,
|
|
526
|
-
}, {
|
|
527
|
-
injectKuzzleMeta: false,
|
|
528
|
-
refresh,
|
|
529
|
-
userId,
|
|
530
|
-
});
|
|
531
|
-
if (!silent) {
|
|
532
|
-
await this.ask("core:realtime:document:notify", modifiedRequest, actionEnum.REPLACE, {
|
|
533
|
-
_id: modifiedRequest.input.args._id,
|
|
534
|
-
_source: modifiedRequest.input.body,
|
|
535
|
-
});
|
|
536
|
-
}
|
|
537
|
-
return response;
|
|
471
|
+
replace(request) {
|
|
472
|
+
return this._writeDocument(request, "replace");
|
|
538
473
|
}
|
|
539
474
|
/**
|
|
540
475
|
* Replace the documents provided in the body
|
|
@@ -674,7 +609,7 @@ class DocumentController extends NativeController {
|
|
|
674
609
|
await this.ask("core:realtime:document:mNotify", request, actionEnum.UPDATE, result.successes.map((doc) => ({
|
|
675
610
|
_id: doc._id,
|
|
676
611
|
_source: doc._source,
|
|
677
|
-
_updatedFields:
|
|
612
|
+
_updatedFields: (0, extractFields_1.default)(changes, {
|
|
678
613
|
fieldsToIgnore: ["_kuzzle_info"],
|
|
679
614
|
}),
|
|
680
615
|
})));
|
|
@@ -691,11 +626,88 @@ class DocumentController extends NativeController {
|
|
|
691
626
|
* @returns {Promise<Object>}
|
|
692
627
|
*/
|
|
693
628
|
validate(request) {
|
|
694
|
-
assertHasBody(request);
|
|
695
|
-
assertHasIndexAndCollection(request);
|
|
629
|
+
(0, requestAssertions_1.assertHasBody)(request);
|
|
630
|
+
(0, requestAssertions_1.assertHasIndexAndCollection)(request);
|
|
696
631
|
// @todo validation service should not take request argument
|
|
697
632
|
return global.kuzzle.validation.validate(request, true);
|
|
698
633
|
}
|
|
634
|
+
/**
|
|
635
|
+
* Fetches documents by id (`mGet`) or checks their existence (`mExists`):
|
|
636
|
+
* the two actions take the same input and shape the same response, they only
|
|
637
|
+
* read through a different storage event.
|
|
638
|
+
*
|
|
639
|
+
* @param {Request} request
|
|
640
|
+
* @param {String} methodName storage method to ask for
|
|
641
|
+
* @returns {Promise.<Object>} { successes, errors }
|
|
642
|
+
*/
|
|
643
|
+
async _mFetch(request, methodName) {
|
|
644
|
+
// `ids` may come either in the body or in the query string
|
|
645
|
+
const ids = request.input.body?.ids && Object.keys(request.input.body.ids).length
|
|
646
|
+
? request.getBodyArray("ids")
|
|
647
|
+
: request.getArray("ids");
|
|
648
|
+
const { index, collection } = request.getIndexAndCollection();
|
|
649
|
+
const strict = request.getBoolean("strict");
|
|
650
|
+
this.assertNotExceedMaxFetch(ids.length);
|
|
651
|
+
const { items, errors } = await this.ask(`core:storage:public:document:${methodName}`, index, collection, ids);
|
|
652
|
+
if (strict && errors.length) {
|
|
653
|
+
throw kerror.get("api", "process", "incomplete_multiple_request", "get", errors);
|
|
654
|
+
}
|
|
655
|
+
return {
|
|
656
|
+
errors,
|
|
657
|
+
successes: items,
|
|
658
|
+
};
|
|
659
|
+
}
|
|
660
|
+
/**
|
|
661
|
+
* Writes a single document, either through `replace` (which requires it to
|
|
662
|
+
* exist) or `createOrReplace` (which does not). Both validate, inject
|
|
663
|
+
* metadata, write and then notify; they differ only in the storage event,
|
|
664
|
+
* the notification action, and what that notification carries.
|
|
665
|
+
*
|
|
666
|
+
* @param {Request} request
|
|
667
|
+
* @param {String} methodName storage method to ask for — it also decides
|
|
668
|
+
* the notification action and its payload, so the two can
|
|
669
|
+
* no longer disagree (TD-31)
|
|
670
|
+
* @returns {Promise.<Object>} the storage response
|
|
671
|
+
*/
|
|
672
|
+
async _writeDocument(request, methodName) {
|
|
673
|
+
const action = methodName === "replace" ? actionEnum.REPLACE : actionEnum.WRITE;
|
|
674
|
+
const id = request.getId();
|
|
675
|
+
const content = request.getBody();
|
|
676
|
+
const userId = request.getKuid();
|
|
677
|
+
const silent = request.getBoolean("silent");
|
|
678
|
+
const refresh = request.getString("refresh", "false");
|
|
679
|
+
const { index, collection } = request.getIndexAndCollection();
|
|
680
|
+
const modifiedRequest = await global.kuzzle.validation.validate(request, false);
|
|
681
|
+
// Add metadata
|
|
682
|
+
const pipeMetadataResult = await this.pipe("generic:document:injectMetadata", {
|
|
683
|
+
metadata: {
|
|
684
|
+
author: userId,
|
|
685
|
+
createdAt: Date.now(),
|
|
686
|
+
updatedAt: Date.now(),
|
|
687
|
+
updater: userId,
|
|
688
|
+
},
|
|
689
|
+
request,
|
|
690
|
+
});
|
|
691
|
+
const response = await this.ask(`core:storage:public:document:${methodName}`, index, collection, id, {
|
|
692
|
+
...content,
|
|
693
|
+
_kuzzle_info: pipeMetadataResult.metadata,
|
|
694
|
+
}, {
|
|
695
|
+
injectKuzzleMeta: false,
|
|
696
|
+
refresh,
|
|
697
|
+
userId,
|
|
698
|
+
});
|
|
699
|
+
if (!silent) {
|
|
700
|
+
// `replace` notifies the request's own payload rather than the storage
|
|
701
|
+
// response — kept as-is, the two actions have always differed here.
|
|
702
|
+
await this.ask("core:realtime:document:notify", modifiedRequest, action, methodName === "replace"
|
|
703
|
+
? {
|
|
704
|
+
_id: modifiedRequest.input.args._id,
|
|
705
|
+
_source: modifiedRequest.input.body,
|
|
706
|
+
}
|
|
707
|
+
: response);
|
|
708
|
+
}
|
|
709
|
+
return response;
|
|
710
|
+
}
|
|
699
711
|
/**
|
|
700
712
|
* Applies a multi-document change request (create, update,
|
|
701
713
|
* replace, createOrReplace, upsert)
|
|
@@ -729,12 +741,12 @@ class DocumentController extends NativeController {
|
|
|
729
741
|
successes: [],
|
|
730
742
|
};
|
|
731
743
|
}
|
|
732
|
-
for (
|
|
733
|
-
if (
|
|
744
|
+
for (const [i, document] of documents.entries()) {
|
|
745
|
+
if (document._source) {
|
|
734
746
|
throw kerror.get("api", "assert", "unexpected_argument", `documents[${i}]._source`, `documents[${i}].body`);
|
|
735
747
|
}
|
|
736
|
-
if (
|
|
737
|
-
delete
|
|
748
|
+
if (document.body?._kuzzle_info !== undefined) {
|
|
749
|
+
delete document.body._kuzzle_info;
|
|
738
750
|
}
|
|
739
751
|
}
|
|
740
752
|
const response = await this.ask(`core:storage:public:document:${methodName}`, index, collection, documents, { refresh, retryOnConflict, source, userId });
|
|
@@ -751,7 +763,7 @@ class DocumentController extends NativeController {
|
|
|
751
763
|
}, {});
|
|
752
764
|
await this.ask("core:realtime:document:mNotify", request, action, response.items.map((item) => {
|
|
753
765
|
if (!item.created) {
|
|
754
|
-
item._updatedFields =
|
|
766
|
+
item._updatedFields = (0, extractFields_1.default)(documentsDictionnary[item._id], { fieldsToIgnore: ["_kuzzle_info"] });
|
|
755
767
|
}
|
|
756
768
|
return item;
|
|
757
769
|
}));
|
|
@@ -768,5 +780,24 @@ class DocumentController extends NativeController {
|
|
|
768
780
|
function hasMultiTargets(str) {
|
|
769
781
|
return [",", "*", "+"].some((chr) => str.includes(chr)) || str === "_all";
|
|
770
782
|
}
|
|
783
|
+
/**
|
|
784
|
+
* `document:export`'s `sort`, in every form Elasticsearch takes — an object, a
|
|
785
|
+
* field name, or the array its documentation (and ours) shows — and forwarded
|
|
786
|
+
* as is, as `document:search` does. `getObjectFromBodyOrArgs` refused the array
|
|
787
|
+
* outside HTTP GET. An empty value means no sort.
|
|
788
|
+
*/
|
|
789
|
+
function getExportSort(request) {
|
|
790
|
+
const { misc, protocol } = request.context.connection;
|
|
791
|
+
const sort = protocol === "http" && misc.verb === "GET"
|
|
792
|
+
? request.getObjectFromBodyOrArgs("sort", {})
|
|
793
|
+
: request.input.body?.sort;
|
|
794
|
+
if (sort === undefined ||
|
|
795
|
+
sort === null ||
|
|
796
|
+
(typeof sort === "object" && Object.keys(sort).length === 0) ||
|
|
797
|
+
sort === "") {
|
|
798
|
+
return undefined;
|
|
799
|
+
}
|
|
800
|
+
return sort;
|
|
801
|
+
}
|
|
771
802
|
module.exports = DocumentController;
|
|
772
803
|
//# sourceMappingURL=documentController.js.map
|
|
@@ -1,12 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import AdminController from "./adminController";
|
|
2
|
+
import AuthController from "./authController";
|
|
3
|
+
import BulkController from "./bulkController";
|
|
4
|
+
import ClusterController from "./clusterController";
|
|
5
|
+
import CollectionController from "./collectionController";
|
|
6
|
+
import DocumentController from "./documentController";
|
|
7
|
+
import IndexController from "./indexController";
|
|
8
|
+
import MemoryStorageController from "./memoryStorageController";
|
|
9
|
+
import RealtimeController from "./realtimeController";
|
|
10
|
+
import SecurityController from "./securityController";
|
|
11
|
+
import ServerController from "./serverController";
|
|
12
|
+
import { DebugController } from "./debugController";
|
|
13
|
+
declare const _default: {
|
|
14
|
+
AdminController: typeof AdminController;
|
|
15
|
+
AuthController: typeof AuthController;
|
|
16
|
+
BulkController: typeof BulkController;
|
|
17
|
+
ClusterController: typeof ClusterController;
|
|
18
|
+
CollectionController: typeof CollectionController;
|
|
19
|
+
DebugController: typeof DebugController;
|
|
20
|
+
DocumentController: typeof DocumentController;
|
|
21
|
+
IndexController: typeof IndexController;
|
|
22
|
+
MemoryStorageController: typeof MemoryStorageController;
|
|
23
|
+
RealtimeController: typeof RealtimeController;
|
|
24
|
+
SecurityController: typeof SecurityController;
|
|
25
|
+
ServerController: typeof ServerController;
|
|
26
|
+
};
|
|
27
|
+
export = _default;
|
|
@@ -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,33 @@
|
|
|
18
19
|
* See the License for the specific language governing permissions and
|
|
19
20
|
* limitations under the License.
|
|
20
21
|
*/
|
|
21
|
-
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
const adminController_1 = __importDefault(require("./adminController"));
|
|
26
|
+
const authController_1 = __importDefault(require("./authController"));
|
|
27
|
+
const bulkController_1 = __importDefault(require("./bulkController"));
|
|
28
|
+
const clusterController_1 = __importDefault(require("./clusterController"));
|
|
29
|
+
const collectionController_1 = __importDefault(require("./collectionController"));
|
|
30
|
+
const documentController_1 = __importDefault(require("./documentController"));
|
|
31
|
+
const indexController_1 = __importDefault(require("./indexController"));
|
|
32
|
+
const memoryStorageController_1 = __importDefault(require("./memoryStorageController"));
|
|
33
|
+
const realtimeController_1 = __importDefault(require("./realtimeController"));
|
|
34
|
+
const securityController_1 = __importDefault(require("./securityController"));
|
|
35
|
+
const serverController_1 = __importDefault(require("./serverController"));
|
|
36
|
+
const debugController_1 = require("./debugController");
|
|
22
37
|
module.exports = {
|
|
23
|
-
AdminController:
|
|
24
|
-
AuthController:
|
|
25
|
-
BulkController:
|
|
26
|
-
ClusterController:
|
|
27
|
-
CollectionController:
|
|
28
|
-
DebugController:
|
|
29
|
-
DocumentController:
|
|
30
|
-
IndexController:
|
|
31
|
-
MemoryStorageController:
|
|
32
|
-
RealtimeController:
|
|
33
|
-
SecurityController:
|
|
34
|
-
ServerController:
|
|
38
|
+
AdminController: adminController_1.default,
|
|
39
|
+
AuthController: authController_1.default,
|
|
40
|
+
BulkController: bulkController_1.default,
|
|
41
|
+
ClusterController: clusterController_1.default,
|
|
42
|
+
CollectionController: collectionController_1.default,
|
|
43
|
+
DebugController: debugController_1.DebugController,
|
|
44
|
+
DocumentController: documentController_1.default,
|
|
45
|
+
IndexController: indexController_1.default,
|
|
46
|
+
MemoryStorageController: memoryStorageController_1.default,
|
|
47
|
+
RealtimeController: realtimeController_1.default,
|
|
48
|
+
SecurityController: securityController_1.default,
|
|
49
|
+
ServerController: serverController_1.default,
|
|
35
50
|
};
|
|
36
51
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import type { KuzzleRequest } from "../request";
|
|
2
|
+
import { NativeController } from "./baseController";
|
|
2
3
|
/**
|
|
3
4
|
* @class IndexController
|
|
4
5
|
*/
|
|
@@ -14,7 +15,9 @@ declare class IndexController extends NativeController {
|
|
|
14
15
|
*
|
|
15
16
|
* @returns {Promise.<Object>}
|
|
16
17
|
*/
|
|
17
|
-
mDelete(request:
|
|
18
|
+
mDelete(request: KuzzleRequest): Promise<{
|
|
19
|
+
deleted: any;
|
|
20
|
+
}>;
|
|
18
21
|
/**
|
|
19
22
|
* Creates an index
|
|
20
23
|
*
|
|
@@ -22,20 +25,25 @@ declare class IndexController extends NativeController {
|
|
|
22
25
|
*
|
|
23
26
|
* @returns {Promise}
|
|
24
27
|
*/
|
|
25
|
-
create(request:
|
|
28
|
+
create(request: KuzzleRequest): Promise<void>;
|
|
26
29
|
/**
|
|
27
30
|
* Deletes the index and associated collections
|
|
28
31
|
*
|
|
29
32
|
* @param {Request} request
|
|
30
33
|
* @returns {Promise.<Object>}
|
|
31
34
|
*/
|
|
32
|
-
delete(request:
|
|
35
|
+
delete(request: KuzzleRequest): Promise<{
|
|
36
|
+
acknowledged: boolean;
|
|
37
|
+
}>;
|
|
33
38
|
/**
|
|
34
39
|
* Lists indexes
|
|
35
40
|
*
|
|
36
41
|
*/
|
|
37
|
-
list(request:
|
|
38
|
-
indexes:
|
|
42
|
+
list(request: KuzzleRequest): Promise<{
|
|
43
|
+
indexes: string[];
|
|
44
|
+
collections?: {
|
|
45
|
+
[index: string]: number;
|
|
46
|
+
} | undefined;
|
|
39
47
|
}>;
|
|
40
48
|
/**
|
|
41
49
|
* Tells if an index exists
|
|
@@ -43,7 +51,7 @@ declare class IndexController extends NativeController {
|
|
|
43
51
|
* @param {Request} request
|
|
44
52
|
* @returns {Promise.<boolean>}
|
|
45
53
|
*/
|
|
46
|
-
exists(request:
|
|
54
|
+
exists(request: KuzzleRequest): Promise<any>;
|
|
47
55
|
/**
|
|
48
56
|
* Returns storage stats
|
|
49
57
|
*
|
|
@@ -59,7 +67,6 @@ declare class IndexController extends NativeController {
|
|
|
59
67
|
* @param {Request} request
|
|
60
68
|
* @param {String[]} publicIndexes - Public indexes list
|
|
61
69
|
*/
|
|
62
|
-
_allowedIndexes(request:
|
|
70
|
+
_allowedIndexes(request: KuzzleRequest, publicIndexes: string[]): string[] | Promise<string[]>;
|
|
63
71
|
}
|
|
64
|
-
|
|
65
|
-
import { Request } from "../request/kuzzleRequest";
|
|
72
|
+
export = IndexController;
|
|
@@ -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,13 +19,12 @@
|
|
|
18
19
|
* See the License for the specific language governing permissions and
|
|
19
20
|
* limitations under the License.
|
|
20
21
|
*/
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
const { NativeController } = require("./baseController");
|
|
22
|
+
const request_1 = require("../request");
|
|
23
|
+
const baseController_1 = require("./baseController");
|
|
24
24
|
/**
|
|
25
25
|
* @class IndexController
|
|
26
26
|
*/
|
|
27
|
-
class IndexController extends NativeController {
|
|
27
|
+
class IndexController extends baseController_1.NativeController {
|
|
28
28
|
constructor() {
|
|
29
29
|
super(["create", "delete", "exists", "list", "mDelete", "stats"]);
|
|
30
30
|
}
|
|
@@ -79,11 +79,14 @@ class IndexController extends NativeController {
|
|
|
79
79
|
indexes,
|
|
80
80
|
};
|
|
81
81
|
if (countCollection) {
|
|
82
|
-
response.collections
|
|
82
|
+
// Through a local: `response.collections` is optional, and the narrowing
|
|
83
|
+
// the assignment gives does not reach inside the callbacks below.
|
|
84
|
+
const counts = {};
|
|
85
|
+
response.collections = counts;
|
|
83
86
|
const promises = [];
|
|
84
87
|
for (const index of indexes) {
|
|
85
88
|
promises.push(this.ask("core:storage:public:collection:list", index).then((collections) => {
|
|
86
|
-
|
|
89
|
+
counts[index] = collections.length;
|
|
87
90
|
}));
|
|
88
91
|
}
|
|
89
92
|
await Promise.all(promises);
|
|
@@ -118,15 +121,14 @@ class IndexController extends NativeController {
|
|
|
118
121
|
* @param {String[]} publicIndexes - Public indexes list
|
|
119
122
|
*/
|
|
120
123
|
_allowedIndexes(request, publicIndexes) {
|
|
121
|
-
|
|
124
|
+
const user = request.getUser();
|
|
125
|
+
if (user === null) {
|
|
122
126
|
return publicIndexes;
|
|
123
127
|
}
|
|
124
128
|
const allowedIndexes = [];
|
|
125
129
|
const promises = publicIndexes.map((index) => {
|
|
126
|
-
const deleteIndexRequest = new Request({ action: "delete", controller: "index", index }, request.context);
|
|
127
|
-
return
|
|
128
|
-
.isActionAllowed(deleteIndexRequest)
|
|
129
|
-
.then((isAllowed) => {
|
|
130
|
+
const deleteIndexRequest = new request_1.Request({ action: "delete", controller: "index", index }, request.context);
|
|
131
|
+
return user.isActionAllowed(deleteIndexRequest).then((isAllowed) => {
|
|
130
132
|
if (isAllowed) {
|
|
131
133
|
allowedIndexes.push(index);
|
|
132
134
|
}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* @class MemoryStorageController
|
|
4
|
-
*/
|
|
1
|
+
import { NativeController } from "./baseController";
|
|
5
2
|
declare class MemoryStorageController extends NativeController {
|
|
6
3
|
constructor();
|
|
7
4
|
}
|
|
8
|
-
|
|
5
|
+
export = MemoryStorageController;
|