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,17 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* @class GeoPointType
|
|
4
|
-
*/
|
|
1
|
+
import BaseType from "../baseType";
|
|
2
|
+
import type { TypeOptions } from "../typeOptions";
|
|
5
3
|
declare class GeoPointType extends BaseType {
|
|
6
4
|
typeName: string;
|
|
7
5
|
allowChildren: boolean;
|
|
8
|
-
allowedTypeOptions:
|
|
9
|
-
|
|
10
|
-
* @param {TypeOptions} typeOptions
|
|
11
|
-
* @param {*} fieldValue
|
|
12
|
-
* @param {string[]} errorMessages
|
|
13
|
-
* @returns {boolean}
|
|
14
|
-
*/
|
|
15
|
-
validate(typeOptions: TypeOptions, fieldValue: any, errorMessages: string[]): boolean;
|
|
6
|
+
allowedTypeOptions: string[];
|
|
7
|
+
validate(typeOptions: TypeOptions, fieldValue: unknown, errorMessages: string[]): boolean;
|
|
16
8
|
}
|
|
17
|
-
|
|
9
|
+
export = GeoPointType;
|
|
@@ -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,27 +19,21 @@
|
|
|
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
|
-
class GeoPointType extends BaseType {
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
const KoncordeWrapper_1 = require("../../shared/KoncordeWrapper");
|
|
26
|
+
const baseType_1 = __importDefault(require("../baseType"));
|
|
27
|
+
class GeoPointType extends baseType_1.default {
|
|
28
28
|
constructor() {
|
|
29
|
-
super();
|
|
29
|
+
super(...arguments);
|
|
30
30
|
this.typeName = "geo_point";
|
|
31
31
|
this.allowChildren = false;
|
|
32
32
|
this.allowedTypeOptions = [];
|
|
33
33
|
}
|
|
34
|
-
/**
|
|
35
|
-
* @param {TypeOptions} typeOptions
|
|
36
|
-
* @param {*} fieldValue
|
|
37
|
-
* @param {string[]} errorMessages
|
|
38
|
-
* @returns {boolean}
|
|
39
|
-
*/
|
|
40
34
|
validate(typeOptions, fieldValue, errorMessages) {
|
|
41
|
-
|
|
35
|
+
// `convertGeopoint` is the one telling a geopoint apart from anything else
|
|
36
|
+
if (KoncordeWrapper_1.Koncorde.convertGeopoint(fieldValue) === null) {
|
|
42
37
|
errorMessages.push("Invalid GeoPoint format");
|
|
43
38
|
return false;
|
|
44
39
|
}
|
|
@@ -1,31 +1,32 @@
|
|
|
1
|
-
|
|
1
|
+
import BaseType from "../baseType";
|
|
2
|
+
import type { GeoShapeTypeOptions } from "../typeOptions";
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
+
* A GeoJSON-like shape, as the user submits it: nothing but `type` can be
|
|
5
|
+
* assumed to be there, which is what `checkStructure` is for.
|
|
4
6
|
*/
|
|
5
|
-
|
|
7
|
+
interface GeoShape {
|
|
8
|
+
type?: string;
|
|
9
|
+
coordinates?: unknown[];
|
|
10
|
+
radius?: string | number;
|
|
11
|
+
orientation?: string;
|
|
12
|
+
geometries?: GeoShape[];
|
|
13
|
+
}
|
|
14
|
+
declare class GeoShapeType extends BaseType<GeoShapeTypeOptions> {
|
|
6
15
|
typeName: string;
|
|
7
16
|
allowChildren: boolean;
|
|
8
17
|
allowedTypeOptions: string[];
|
|
18
|
+
validate(typeOptions: GeoShapeTypeOptions, fieldValue: GeoShape, errorMessages: string[]): boolean;
|
|
19
|
+
recursiveShapeValidation(allowedShapes: string[], shape: GeoShape, errorMessages: string[]): boolean;
|
|
20
|
+
private checkGeometries;
|
|
21
|
+
checkStructure(allowedShapes: string[], shape: GeoShape, errorMessages: string[]): boolean;
|
|
22
|
+
private checkShapeType;
|
|
9
23
|
/**
|
|
10
|
-
*
|
|
11
|
-
* @param {GeoShape} fieldValue
|
|
12
|
-
* @param {string[]} errorMessages
|
|
13
|
-
* @returns {boolean}
|
|
14
|
-
*/
|
|
15
|
-
validate(typeOptions: TypeOptions, fieldValue: GeoShape, errorMessages: string[]): boolean;
|
|
16
|
-
/**
|
|
17
|
-
* @param {string[]} allowedShapes
|
|
18
|
-
* @param {GeoShape} shape
|
|
19
|
-
* @param {string[]} errorMessages
|
|
20
|
-
* @returns {boolean}
|
|
24
|
+
* Checks the properties each shape type does and does not accept.
|
|
21
25
|
*/
|
|
22
|
-
|
|
26
|
+
private checkShapeProperties;
|
|
23
27
|
/**
|
|
24
|
-
* @
|
|
25
|
-
* @param {GeoShape} shape
|
|
26
|
-
* @param {string[]} errorMessages
|
|
27
|
-
* @returns {boolean}
|
|
28
|
+
* @throws {PreconditionError}
|
|
28
29
|
*/
|
|
29
|
-
|
|
30
|
+
validateFieldSpecification(typeOptions: GeoShapeTypeOptions): GeoShapeTypeOptions;
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
+
export = GeoShapeType;
|
|
@@ -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,24 +19,51 @@
|
|
|
18
19
|
* See the License for the specific language governing permissions and
|
|
19
20
|
* limitations under the License.
|
|
20
21
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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 koncorde_1 = require("koncorde");
|
|
49
|
+
const kerror = __importStar(require("../../../kerror"));
|
|
50
|
+
const safeObject_1 = require("../../../util/safeObject");
|
|
51
|
+
const baseType_1 = __importDefault(require("../baseType"));
|
|
52
|
+
const geoShapeUtils_1 = require("./geoShapeUtils");
|
|
25
53
|
const allowedShapeProperties = [
|
|
26
54
|
"type",
|
|
27
55
|
"coordinates",
|
|
28
56
|
"radius",
|
|
29
57
|
"orientation",
|
|
30
58
|
"geometries",
|
|
31
|
-
], allowedOrientations = [
|
|
59
|
+
], allowedOrientations = new Set([
|
|
32
60
|
"right",
|
|
33
61
|
"ccw",
|
|
34
62
|
"counterclockwise",
|
|
35
63
|
"left",
|
|
36
64
|
"cw",
|
|
37
65
|
"clockwise",
|
|
38
|
-
], multiTypes = ["multipoint", "multilinestring", "multipolygon"], allowedShapeTypes = [
|
|
66
|
+
]), multiTypes = new Set(["multipoint", "multilinestring", "multipolygon"]), allowedShapeTypes = [
|
|
39
67
|
"point",
|
|
40
68
|
"linestring",
|
|
41
69
|
"polygon",
|
|
@@ -46,123 +74,98 @@ const allowedShapeProperties = [
|
|
|
46
74
|
"envelope",
|
|
47
75
|
"circle",
|
|
48
76
|
];
|
|
49
|
-
|
|
50
|
-
* @class GeoShapeType
|
|
51
|
-
*/
|
|
52
|
-
class GeoShapeType extends BaseType {
|
|
77
|
+
class GeoShapeType extends baseType_1.default {
|
|
53
78
|
constructor() {
|
|
54
|
-
super();
|
|
79
|
+
super(...arguments);
|
|
55
80
|
this.typeName = "geo_shape";
|
|
56
81
|
this.allowChildren = false;
|
|
57
82
|
this.allowedTypeOptions = ["shapeTypes"];
|
|
58
83
|
}
|
|
59
|
-
/**
|
|
60
|
-
* @param {TypeOptions} typeOptions
|
|
61
|
-
* @param {GeoShape} fieldValue
|
|
62
|
-
* @param {string[]} errorMessages
|
|
63
|
-
* @returns {boolean}
|
|
64
|
-
*/
|
|
65
84
|
validate(typeOptions, fieldValue, errorMessages) {
|
|
66
|
-
return this.recursiveShapeValidation(typeOptions.shapeTypes, fieldValue, errorMessages);
|
|
85
|
+
return this.recursiveShapeValidation(typeOptions.shapeTypes ?? [], fieldValue, errorMessages);
|
|
67
86
|
}
|
|
68
|
-
/**
|
|
69
|
-
* @param {string[]} allowedShapes
|
|
70
|
-
* @param {GeoShape} shape
|
|
71
|
-
* @param {string[]} errorMessages
|
|
72
|
-
* @returns {boolean}
|
|
73
|
-
*/
|
|
74
87
|
recursiveShapeValidation(allowedShapes, shape, errorMessages) {
|
|
75
88
|
if (!this.checkStructure(allowedShapes, shape, errorMessages)) {
|
|
76
89
|
return false;
|
|
77
90
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
91
|
+
// checkStructure has just proven these three are there; the defaults only
|
|
92
|
+
// exist to keep the destructuring total.
|
|
93
|
+
const { type = "", coordinates = [], geometries = [] } = shape;
|
|
94
|
+
const isMulti = multiTypes.has(type);
|
|
95
|
+
// the default also covers "geometrycollection", which holds no coordinates
|
|
96
|
+
// of its own, and the unreachable `default:` branch below
|
|
97
|
+
let coordinateValidation = () => true, result = true;
|
|
98
|
+
switch (type) {
|
|
81
99
|
case "point":
|
|
82
100
|
case "multipoint":
|
|
83
|
-
coordinateValidation = isPoint;
|
|
101
|
+
coordinateValidation = geoShapeUtils_1.isPoint;
|
|
84
102
|
break;
|
|
85
103
|
case "linestring":
|
|
86
104
|
case "multilinestring":
|
|
87
|
-
coordinateValidation = isLine;
|
|
105
|
+
coordinateValidation = geoShapeUtils_1.isLine;
|
|
88
106
|
break;
|
|
89
107
|
case "polygon":
|
|
90
108
|
case "multipolygon":
|
|
91
|
-
coordinateValidation = isPolygon;
|
|
92
|
-
|
|
93
|
-
!allowedOrientations.includes(shape.orientation)) {
|
|
94
|
-
errorMessages.push("The orientation property has not a valid value.");
|
|
95
|
-
result = false;
|
|
96
|
-
}
|
|
109
|
+
coordinateValidation = geoShapeUtils_1.isPolygon;
|
|
110
|
+
result = checkOrientation(shape, errorMessages);
|
|
97
111
|
break;
|
|
98
112
|
case "geometrycollection":
|
|
99
|
-
|
|
100
|
-
for (let i = 0; i < shape.geometries.length; i++) {
|
|
101
|
-
if (!this.recursiveShapeValidation(allowedShapes, shape.geometries[i], errorMessages)) {
|
|
102
|
-
result = false;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
113
|
+
result = this.checkGeometries(allowedShapes, geometries, errorMessages);
|
|
105
114
|
break;
|
|
106
115
|
case "envelope":
|
|
107
|
-
coordinateValidation = isEnvelope;
|
|
116
|
+
coordinateValidation = geoShapeUtils_1.isEnvelope;
|
|
108
117
|
break;
|
|
109
118
|
case "circle":
|
|
110
|
-
coordinateValidation = isPoint;
|
|
111
|
-
|
|
112
|
-
try {
|
|
113
|
-
if (typeof Koncorde.convertDistance(shape.radius) !== "number") {
|
|
114
|
-
errorMessages.push("The radius property has not a valid format.");
|
|
115
|
-
result = false;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
catch (error) {
|
|
119
|
-
errorMessages.push("The radius property has not a valid format.");
|
|
120
|
-
result = false;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
else if (typeof shape.radius !== "number") {
|
|
124
|
-
errorMessages.push("The radius property has not a valid format.");
|
|
125
|
-
result = false;
|
|
126
|
-
}
|
|
119
|
+
coordinateValidation = geoShapeUtils_1.isPoint;
|
|
120
|
+
result = checkRadius(shape, errorMessages);
|
|
127
121
|
break;
|
|
128
122
|
default:
|
|
129
123
|
// added to comply with sonarqube
|
|
130
124
|
// but it's currently not possible to get here
|
|
131
|
-
errorMessages.push(`Unrecognized shape: ${
|
|
125
|
+
errorMessages.push(`Unrecognized shape: ${type}`);
|
|
132
126
|
result = false;
|
|
133
127
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
128
|
+
// evaluated before the `&&` so that its error message is pushed even when
|
|
129
|
+
// the switch has already invalidated the shape
|
|
130
|
+
const coordinatesOk = checkCoordinates(type, isMulti, coordinates, coordinateValidation, errorMessages);
|
|
131
|
+
return result && coordinatesOk;
|
|
132
|
+
}
|
|
133
|
+
checkGeometries(allowedShapes, geometries, errorMessages) {
|
|
134
|
+
let result = true;
|
|
135
|
+
for (const geometry of geometries) {
|
|
136
|
+
if (!this.recursiveShapeValidation(allowedShapes, geometry, errorMessages)) {
|
|
137
137
|
result = false;
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
|
-
else if (!coordinateValidation(shape.coordinates)) {
|
|
141
|
-
errorMessages.push(`The shape type "${shape.type}" has bad coordinates.`);
|
|
142
|
-
return false;
|
|
143
|
-
}
|
|
144
140
|
return result;
|
|
145
141
|
}
|
|
146
|
-
/**
|
|
147
|
-
* @param {string[]} allowedShapes
|
|
148
|
-
* @param {GeoShape} shape
|
|
149
|
-
* @param {string[]} errorMessages
|
|
150
|
-
* @returns {boolean}
|
|
151
|
-
*/
|
|
152
142
|
checkStructure(allowedShapes, shape, errorMessages) {
|
|
153
|
-
let result = true;
|
|
154
143
|
if (!shape.type) {
|
|
155
144
|
errorMessages.push("The shape object has no type defined.");
|
|
156
145
|
return false;
|
|
157
146
|
}
|
|
147
|
+
// every check pushes its own message, so none of them may be short-circuited
|
|
148
|
+
const typeOk = this.checkShapeType(allowedShapes, shape, shape.type, errorMessages);
|
|
149
|
+
const propertiesOk = this.checkShapeProperties(shape, errorMessages);
|
|
150
|
+
return typeOk && propertiesOk;
|
|
151
|
+
}
|
|
152
|
+
checkShapeType(allowedShapes, shape, type, errorMessages) {
|
|
153
|
+
let result = true;
|
|
158
154
|
if (!this.checkAllowedProperties(shape, allowedShapeProperties)) {
|
|
159
155
|
errorMessages.push("The shape object has a not allowed property.");
|
|
160
156
|
result = false;
|
|
161
157
|
}
|
|
162
|
-
if (allowedShapes.
|
|
158
|
+
if (!allowedShapes.includes(type)) {
|
|
163
159
|
errorMessages.push("The provided shape type is not allowed.");
|
|
164
160
|
result = false;
|
|
165
161
|
}
|
|
162
|
+
return result;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Checks the properties each shape type does and does not accept.
|
|
166
|
+
*/
|
|
167
|
+
checkShapeProperties(shape, errorMessages) {
|
|
168
|
+
let result = true;
|
|
166
169
|
if (shape.type === "geometrycollection" && shape.coordinates) {
|
|
167
170
|
errorMessages.push('The coordinates property must not be provided for the "geometrycollection" shape type.');
|
|
168
171
|
result = false;
|
|
@@ -198,17 +201,15 @@ class GeoShapeType extends BaseType {
|
|
|
198
201
|
return result;
|
|
199
202
|
}
|
|
200
203
|
/**
|
|
201
|
-
* @param {TypeOptions} typeOptions
|
|
202
|
-
* @returns {TypeOptions}
|
|
203
204
|
* @throws {PreconditionError}
|
|
204
205
|
*/
|
|
205
206
|
validateFieldSpecification(typeOptions) {
|
|
206
|
-
if (
|
|
207
|
-
|
|
208
|
-
|
|
207
|
+
if ((0, safeObject_1.has)(typeOptions, "shapeTypes")) {
|
|
208
|
+
const { shapeTypes } = typeOptions;
|
|
209
|
+
if (!Array.isArray(shapeTypes) || shapeTypes.length === 0) {
|
|
209
210
|
throw kerror.get("validation", "assert", "invalid_type", "shapeTypes", "string[]");
|
|
210
211
|
}
|
|
211
|
-
const invalid =
|
|
212
|
+
const invalid = shapeTypes.filter((shape) => !allowedShapeTypes.includes(shape));
|
|
212
213
|
if (invalid.length > 0) {
|
|
213
214
|
throw kerror.get("validation", "types", "invalid_geoshape", invalid);
|
|
214
215
|
}
|
|
@@ -219,62 +220,45 @@ class GeoShapeType extends BaseType {
|
|
|
219
220
|
return typeOptions;
|
|
220
221
|
}
|
|
221
222
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
*/
|
|
226
|
-
function isPoint(point) {
|
|
227
|
-
if (!Array.isArray(point) || point.length !== 2) {
|
|
223
|
+
function checkOrientation(shape, errorMessages) {
|
|
224
|
+
if (shape.orientation && !allowedOrientations.has(shape.orientation)) {
|
|
225
|
+
errorMessages.push("The orientation property has not a valid value.");
|
|
228
226
|
return false;
|
|
229
227
|
}
|
|
230
|
-
return
|
|
231
|
-
point[0] > 180 ||
|
|
232
|
-
point[1] < -90 ||
|
|
233
|
-
point[1] > 90);
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* @param {GeoShapePointCoordinates} pointA
|
|
237
|
-
* @param {GeoShapePointCoordinates} pointB
|
|
238
|
-
* @returns {boolean}
|
|
239
|
-
*/
|
|
240
|
-
function isPointEqual(pointA, pointB) {
|
|
241
|
-
return pointA[0] === pointB[0] && pointA[1] === pointB[1];
|
|
228
|
+
return true;
|
|
242
229
|
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
230
|
+
function checkRadius(shape, errorMessages) {
|
|
231
|
+
let valid;
|
|
232
|
+
if (typeof shape.radius === "string") {
|
|
233
|
+
try {
|
|
234
|
+
valid = typeof koncorde_1.Koncorde.convertDistance(shape.radius) === "number";
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
// an unparseable distance is an invalid radius, like any other
|
|
238
|
+
valid = false;
|
|
239
|
+
}
|
|
250
240
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
/**
|
|
254
|
-
* @param {GeoShapePolygonPart} polygonPart
|
|
255
|
-
* @returns {boolean}
|
|
256
|
-
*/
|
|
257
|
-
function isPolygonPart(polygonPart) {
|
|
258
|
-
return (Array.isArray(polygonPart) &&
|
|
259
|
-
polygonPart.length >= 4 &&
|
|
260
|
-
isLine(polygonPart) &&
|
|
261
|
-
isPointEqual(polygonPart[0], polygonPart[polygonPart.length - 1]));
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* @param {GeoShapePolygon} polygon
|
|
265
|
-
* @returns {boolean}
|
|
266
|
-
*/
|
|
267
|
-
function isPolygon(polygon) {
|
|
268
|
-
if (!Array.isArray(polygon)) {
|
|
269
|
-
return false;
|
|
241
|
+
else {
|
|
242
|
+
valid = typeof shape.radius === "number";
|
|
270
243
|
}
|
|
271
|
-
|
|
244
|
+
if (!valid) {
|
|
245
|
+
errorMessages.push("The radius property has not a valid format.");
|
|
246
|
+
}
|
|
247
|
+
return valid;
|
|
272
248
|
}
|
|
273
|
-
function
|
|
274
|
-
if (
|
|
249
|
+
function checkCoordinates(type, isMulti, coordinates, coordinateValidation, errorMessages) {
|
|
250
|
+
if (isMulti) {
|
|
251
|
+
if (coordinates.some((coordinate) => !coordinateValidation(coordinate))) {
|
|
252
|
+
errorMessages.push(`One of the shapes in the shape type "${type}" has bad coordinates.`);
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
return true;
|
|
256
|
+
}
|
|
257
|
+
if (!coordinateValidation(coordinates)) {
|
|
258
|
+
errorMessages.push(`The shape type "${type}" has bad coordinates.`);
|
|
275
259
|
return false;
|
|
276
260
|
}
|
|
277
|
-
return
|
|
261
|
+
return true;
|
|
278
262
|
}
|
|
279
263
|
module.exports = GeoShapeType;
|
|
280
264
|
//# sourceMappingURL=geoShape.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The coordinate predicates a GeoJSON-like shape is checked against.
|
|
3
|
+
*
|
|
4
|
+
* They are pure functions of a coordinate array, and they are the unit worth
|
|
5
|
+
* testing directly: `geoShape.ts` uses `export =`, which cannot carry named
|
|
6
|
+
* exports beside it, so the only way a spec could address them was `rewire`'s
|
|
7
|
+
* `__get__` — and, from there, `__set__` to replace them in the module that
|
|
8
|
+
* calls them (ADR-0001, step 13 L6g).
|
|
9
|
+
*/
|
|
10
|
+
export declare function isPoint(point: unknown): boolean;
|
|
11
|
+
export declare function isPointEqual(pointA: unknown[], pointB: unknown[]): boolean;
|
|
12
|
+
export declare function isLine(line: unknown): boolean;
|
|
13
|
+
export declare function isPolygonPart(polygonPart: unknown): boolean;
|
|
14
|
+
export declare function isPolygon(polygon: unknown): boolean;
|
|
15
|
+
export declare function isEnvelope(envelope: unknown): boolean;
|
|
@@ -0,0 +1,75 @@
|
|
|
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.isEnvelope = exports.isPolygon = exports.isPolygonPart = exports.isLine = exports.isPointEqual = exports.isPoint = void 0;
|
|
24
|
+
/**
|
|
25
|
+
* The coordinate predicates a GeoJSON-like shape is checked against.
|
|
26
|
+
*
|
|
27
|
+
* They are pure functions of a coordinate array, and they are the unit worth
|
|
28
|
+
* testing directly: `geoShape.ts` uses `export =`, which cannot carry named
|
|
29
|
+
* exports beside it, so the only way a spec could address them was `rewire`'s
|
|
30
|
+
* `__get__` — and, from there, `__set__` to replace them in the module that
|
|
31
|
+
* calls them (ADR-0001, step 13 L6g).
|
|
32
|
+
*/
|
|
33
|
+
function isPoint(point) {
|
|
34
|
+
if (!Array.isArray(point) || point.length !== 2) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return !(point[0] < -180 ||
|
|
38
|
+
point[0] > 180 ||
|
|
39
|
+
point[1] < -90 ||
|
|
40
|
+
point[1] > 90);
|
|
41
|
+
}
|
|
42
|
+
exports.isPoint = isPoint;
|
|
43
|
+
function isPointEqual(pointA, pointB) {
|
|
44
|
+
return pointA[0] === pointB[0] && pointA[1] === pointB[1];
|
|
45
|
+
}
|
|
46
|
+
exports.isPointEqual = isPointEqual;
|
|
47
|
+
function isLine(line) {
|
|
48
|
+
if (!Array.isArray(line) || line.length < 2) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
return line.every((point) => isPoint(point));
|
|
52
|
+
}
|
|
53
|
+
exports.isLine = isLine;
|
|
54
|
+
function isPolygonPart(polygonPart) {
|
|
55
|
+
return (Array.isArray(polygonPart) &&
|
|
56
|
+
polygonPart.length >= 4 &&
|
|
57
|
+
isLine(polygonPart) &&
|
|
58
|
+
isPointEqual(polygonPart[0], polygonPart.at(-1)));
|
|
59
|
+
}
|
|
60
|
+
exports.isPolygonPart = isPolygonPart;
|
|
61
|
+
function isPolygon(polygon) {
|
|
62
|
+
if (!Array.isArray(polygon)) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return polygon.every((polygonPart) => isPolygonPart(polygonPart));
|
|
66
|
+
}
|
|
67
|
+
exports.isPolygon = isPolygon;
|
|
68
|
+
function isEnvelope(envelope) {
|
|
69
|
+
if (!Array.isArray(envelope) || envelope.length !== 2) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
return isPoint(envelope[0]) && isPoint(envelope[1]);
|
|
73
|
+
}
|
|
74
|
+
exports.isEnvelope = isEnvelope;
|
|
75
|
+
//# sourceMappingURL=geoShapeUtils.js.map
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* @class IntegerType
|
|
4
|
-
*/
|
|
1
|
+
import type { NumericTypeOptions } from "../typeOptions";
|
|
2
|
+
import Numeric from "./numeric";
|
|
5
3
|
declare class IntegerType extends Numeric {
|
|
4
|
+
typeName: string;
|
|
5
|
+
allowChildren: boolean;
|
|
6
|
+
allowedTypeOptions: string[];
|
|
7
|
+
validate(typeOptions: NumericTypeOptions, fieldValue: unknown, errorMessages: string[]): boolean;
|
|
6
8
|
}
|
|
7
|
-
|
|
9
|
+
export = IntegerType;
|
|
@@ -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,24 +19,17 @@
|
|
|
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
|
-
class IntegerType extends Numeric {
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
const numeric_1 = __importDefault(require("./numeric"));
|
|
26
|
+
class IntegerType extends numeric_1.default {
|
|
27
27
|
constructor() {
|
|
28
|
-
super();
|
|
28
|
+
super(...arguments);
|
|
29
29
|
this.typeName = "integer";
|
|
30
30
|
this.allowChildren = false;
|
|
31
31
|
this.allowedTypeOptions = ["range"];
|
|
32
32
|
}
|
|
33
|
-
/**
|
|
34
|
-
* @param {TypeOptions} typeOptions
|
|
35
|
-
* @param {*} fieldValue
|
|
36
|
-
* @param {string[]} errorMessages
|
|
37
|
-
* @returns {boolean}
|
|
38
|
-
*/
|
|
39
33
|
validate(typeOptions, fieldValue, errorMessages) {
|
|
40
34
|
if (!super.validate(typeOptions, fieldValue, errorMessages)) {
|
|
41
35
|
return false;
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*/
|
|
5
|
-
declare class IpAddressType extends BaseType {
|
|
1
|
+
import BaseType from "../baseType";
|
|
2
|
+
import type { NotEmptyTypeOptions } from "../typeOptions";
|
|
3
|
+
declare class IpAddressType extends BaseType<NotEmptyTypeOptions> {
|
|
6
4
|
typeName: string;
|
|
7
5
|
allowChildren: boolean;
|
|
8
6
|
allowedTypeOptions: string[];
|
|
7
|
+
validate(typeOptions: NotEmptyTypeOptions, fieldValue: unknown, errorMessages: string[]): boolean;
|
|
9
8
|
/**
|
|
10
|
-
* @
|
|
11
|
-
* @param {*} fieldValue
|
|
12
|
-
* @param {string[]} errorMessages
|
|
13
|
-
* @returns {boolean}
|
|
9
|
+
* @throws {PreconditionError}
|
|
14
10
|
*/
|
|
15
|
-
|
|
11
|
+
validateFieldSpecification(typeOptions: NotEmptyTypeOptions): NotEmptyTypeOptions;
|
|
16
12
|
}
|
|
17
|
-
|
|
13
|
+
export = IpAddressType;
|