kuzzle 2.19.2 → 2.19.5

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.
Files changed (293) hide show
  1. package/lib/api/controllers/adminController.js +94 -80
  2. package/lib/api/controllers/authController.js +239 -212
  3. package/lib/api/controllers/baseController.js +89 -51
  4. package/lib/api/controllers/bulkController.js +62 -49
  5. package/lib/api/controllers/clusterController.js +6 -8
  6. package/lib/api/controllers/collectionController.js +140 -129
  7. package/lib/api/controllers/debugController.d.ts +2 -2
  8. package/lib/api/controllers/debugController.js +33 -31
  9. package/lib/api/controllers/documentController.js +365 -274
  10. package/lib/api/controllers/index.js +13 -13
  11. package/lib/api/controllers/indexController.js +46 -50
  12. package/lib/api/controllers/memoryStorageController.js +410 -360
  13. package/lib/api/controllers/realtimeController.js +37 -36
  14. package/lib/api/controllers/securityController.js +553 -412
  15. package/lib/api/controllers/serverController.js +111 -104
  16. package/lib/api/documentExtractor.js +75 -68
  17. package/lib/api/funnel.js +411 -312
  18. package/lib/api/httpRoutes.js +1493 -324
  19. package/lib/api/openapi/OpenApiManager.d.ts +1 -1
  20. package/lib/api/openapi/OpenApiManager.js +22 -22
  21. package/lib/api/openapi/components/document/count.yaml +1 -1
  22. package/lib/api/openapi/components/document/create.yaml +2 -2
  23. package/lib/api/openapi/components/document/delete.yaml +1 -1
  24. package/lib/api/openapi/components/document/deleteByQuery.yaml +1 -1
  25. package/lib/api/openapi/components/document/exists.yaml +1 -1
  26. package/lib/api/openapi/components/document/get.yaml +2 -2
  27. package/lib/api/openapi/components/document/index.js +12 -12
  28. package/lib/api/openapi/components/document/replace.yaml +1 -1
  29. package/lib/api/openapi/components/document/scroll.yaml +1 -1
  30. package/lib/api/openapi/components/document/validate.yaml +1 -1
  31. package/lib/api/openapi/components/index.d.ts +2 -2
  32. package/lib/api/openapi/components/index.js +1 -1
  33. package/lib/api/openapi/components/security/index.js +1 -1
  34. package/lib/api/openapi/components/security/upsertUser.yaml +2 -3
  35. package/lib/api/openapi/index.d.ts +1 -1
  36. package/lib/api/openapi/openApiGenerator.d.ts +1 -1
  37. package/lib/api/openapi/openApiGenerator.js +7 -7
  38. package/lib/api/rateLimiter.js +12 -13
  39. package/lib/api/request/index.d.ts +4 -4
  40. package/lib/api/request/kuzzleRequest.d.ts +9 -9
  41. package/lib/api/request/kuzzleRequest.js +91 -90
  42. package/lib/api/request/requestContext.d.ts +2 -2
  43. package/lib/api/request/requestContext.js +17 -17
  44. package/lib/api/request/requestInput.d.ts +1 -1
  45. package/lib/api/request/requestInput.js +19 -19
  46. package/lib/api/request/requestResponse.d.ts +4 -4
  47. package/lib/api/request/requestResponse.js +31 -33
  48. package/lib/cluster/command.js +48 -44
  49. package/lib/cluster/idCardHandler.d.ts +1 -1
  50. package/lib/cluster/idCardHandler.js +15 -15
  51. package/lib/cluster/index.js +2 -2
  52. package/lib/cluster/node.js +301 -269
  53. package/lib/cluster/publisher.js +45 -46
  54. package/lib/cluster/state.d.ts +5 -5
  55. package/lib/cluster/state.js +8 -8
  56. package/lib/cluster/subscriber.js +163 -113
  57. package/lib/cluster/workers/IDCardRenewer.js +33 -32
  58. package/lib/config/default.config.d.ts +1 -1
  59. package/lib/config/default.config.js +212 -171
  60. package/lib/config/documentEventAliases.js +6 -6
  61. package/lib/config/index.js +161 -98
  62. package/lib/config/sdkCompatibility.json +8 -8
  63. package/lib/core/auth/formatProcessing.js +7 -7
  64. package/lib/core/auth/passportResponse.js +7 -7
  65. package/lib/core/auth/passportWrapper.js +34 -30
  66. package/lib/core/auth/tokenManager.d.ts +2 -2
  67. package/lib/core/auth/tokenManager.js +11 -10
  68. package/lib/core/backend/applicationManager.d.ts +1 -1
  69. package/lib/core/backend/applicationManager.js +2 -2
  70. package/lib/core/backend/backend.d.ts +4 -4
  71. package/lib/core/backend/backend.js +34 -31
  72. package/lib/core/backend/backendCluster.d.ts +8 -9
  73. package/lib/core/backend/backendCluster.js +8 -8
  74. package/lib/core/backend/backendConfig.d.ts +2 -2
  75. package/lib/core/backend/backendConfig.js +3 -3
  76. package/lib/core/backend/backendController.d.ts +2 -2
  77. package/lib/core/backend/backendController.js +9 -10
  78. package/lib/core/backend/backendErrors.d.ts +3 -3
  79. package/lib/core/backend/backendErrors.js +2 -1
  80. package/lib/core/backend/backendHook.d.ts +3 -3
  81. package/lib/core/backend/backendHook.js +5 -5
  82. package/lib/core/backend/backendImport.d.ts +3 -3
  83. package/lib/core/backend/backendImport.js +23 -23
  84. package/lib/core/backend/backendOpenApi.d.ts +2 -2
  85. package/lib/core/backend/backendOpenApi.js +16 -16
  86. package/lib/core/backend/backendPipe.d.ts +3 -3
  87. package/lib/core/backend/backendPipe.js +6 -6
  88. package/lib/core/backend/backendPlugin.d.ts +4 -4
  89. package/lib/core/backend/backendPlugin.js +14 -14
  90. package/lib/core/backend/backendStorage.d.ts +2 -2
  91. package/lib/core/backend/backendStorage.js +1 -2
  92. package/lib/core/backend/backendVault.d.ts +2 -2
  93. package/lib/core/backend/backendVault.js +3 -3
  94. package/lib/core/backend/index.d.ts +14 -14
  95. package/lib/core/backend/internalLogger.d.ts +1 -1
  96. package/lib/core/backend/internalLogger.js +5 -5
  97. package/lib/core/cache/cacheDbEnum.js +4 -4
  98. package/lib/core/cache/cacheEngine.js +79 -85
  99. package/lib/core/network/accessLogger.js +126 -120
  100. package/lib/core/network/clientConnection.js +5 -5
  101. package/lib/core/network/context.js +8 -8
  102. package/lib/core/network/entryPoint.js +100 -85
  103. package/lib/core/network/httpRouter/index.js +63 -60
  104. package/lib/core/network/httpRouter/routeHandler.js +18 -19
  105. package/lib/core/network/httpRouter/routePart.js +23 -19
  106. package/lib/core/network/protocolManifest.js +3 -3
  107. package/lib/core/network/protocols/httpMessage.js +8 -10
  108. package/lib/core/network/protocols/httpwsProtocol.js +305 -250
  109. package/lib/core/network/protocols/internalProtocol.js +27 -24
  110. package/lib/core/network/protocols/mqttProtocol.js +106 -96
  111. package/lib/core/network/protocols/protocol.js +20 -17
  112. package/lib/core/network/router.js +56 -46
  113. package/lib/core/plugin/plugin.js +151 -120
  114. package/lib/core/plugin/pluginContext.d.ts +7 -7
  115. package/lib/core/plugin/pluginContext.js +48 -44
  116. package/lib/core/plugin/pluginManifest.js +13 -12
  117. package/lib/core/plugin/pluginRepository.js +26 -27
  118. package/lib/core/plugin/pluginsManager.js +425 -304
  119. package/lib/core/plugin/privilegedContext.js +3 -3
  120. package/lib/core/realtime/actionEnum.js +1 -1
  121. package/lib/core/realtime/channel.d.ts +1 -1
  122. package/lib/core/realtime/channel.js +22 -22
  123. package/lib/core/realtime/connectionRooms.d.ts +1 -1
  124. package/lib/core/realtime/hotelClerk.d.ts +2 -2
  125. package/lib/core/realtime/hotelClerk.js +53 -50
  126. package/lib/core/realtime/index.js +5 -5
  127. package/lib/core/realtime/notification/document.js +25 -25
  128. package/lib/core/realtime/notification/index.js +4 -4
  129. package/lib/core/realtime/notification/server.js +3 -3
  130. package/lib/core/realtime/notification/user.js +4 -4
  131. package/lib/core/realtime/notifier.js +113 -75
  132. package/lib/core/realtime/room.d.ts +1 -1
  133. package/lib/core/realtime/subscription.d.ts +1 -1
  134. package/lib/core/realtime/subscription.js +1 -1
  135. package/lib/core/security/index.js +8 -8
  136. package/lib/core/security/profileRepository.d.ts +6 -6
  137. package/lib/core/security/profileRepository.js +48 -45
  138. package/lib/core/security/roleRepository.js +127 -115
  139. package/lib/core/security/securityLoader.js +70 -63
  140. package/lib/core/security/tokenRepository.js +132 -118
  141. package/lib/core/security/userRepository.js +104 -88
  142. package/lib/core/shared/KoncordeWrapper.d.ts +1 -1
  143. package/lib/core/shared/KoncordeWrapper.js +3 -1
  144. package/lib/core/shared/abstractManifest.js +22 -23
  145. package/lib/core/shared/repository.js +69 -67
  146. package/lib/core/shared/sdk/embeddedSdk.d.ts +2 -2
  147. package/lib/core/shared/sdk/embeddedSdk.js +36 -32
  148. package/lib/core/shared/sdk/funnelProtocol.d.ts +1 -1
  149. package/lib/core/shared/sdk/funnelProtocol.js +11 -11
  150. package/lib/core/shared/sdk/impersonatedSdk.js +19 -18
  151. package/lib/core/shared/store.js +127 -32
  152. package/lib/core/statistics/index.js +2 -2
  153. package/lib/core/statistics/statistics.js +99 -85
  154. package/lib/core/storage/clientAdapter.js +219 -136
  155. package/lib/core/storage/indexCache.js +3 -3
  156. package/lib/core/storage/storageEngine.js +10 -13
  157. package/lib/core/storage/storeScopeEnum.js +3 -3
  158. package/lib/core/validation/baseType.js +12 -10
  159. package/lib/core/validation/index.js +2 -2
  160. package/lib/core/validation/types/anything.js +4 -4
  161. package/lib/core/validation/types/boolean.js +7 -7
  162. package/lib/core/validation/types/date.js +165 -131
  163. package/lib/core/validation/types/email.js +18 -21
  164. package/lib/core/validation/types/enum.js +34 -21
  165. package/lib/core/validation/types/geoPoint.js +7 -7
  166. package/lib/core/validation/types/geoShape.js +148 -125
  167. package/lib/core/validation/types/integer.js +9 -9
  168. package/lib/core/validation/types/ipAddress.js +17 -19
  169. package/lib/core/validation/types/numeric.js +36 -29
  170. package/lib/core/validation/types/object.js +19 -19
  171. package/lib/core/validation/types/string.js +36 -29
  172. package/lib/core/validation/types/url.js +17 -19
  173. package/lib/core/validation/validation.js +422 -378
  174. package/lib/kerror/codes/1-services.json +7 -1
  175. package/lib/kerror/codes/4-plugin.json +2 -2
  176. package/lib/kerror/codes/index.js +85 -63
  177. package/lib/kerror/errors/badRequestError.d.ts +1 -1
  178. package/lib/kerror/errors/externalServiceError.d.ts +1 -1
  179. package/lib/kerror/errors/forbiddenError.d.ts +1 -1
  180. package/lib/kerror/errors/gatewayTimeoutError.d.ts +1 -1
  181. package/lib/kerror/errors/index.d.ts +15 -15
  182. package/lib/kerror/errors/internalError.d.ts +1 -1
  183. package/lib/kerror/errors/kuzzleError.d.ts +1 -1
  184. package/lib/kerror/errors/multipleErrorsError.d.ts +1 -1
  185. package/lib/kerror/errors/multipleErrorsError.js +1 -1
  186. package/lib/kerror/errors/notFoundError.d.ts +1 -1
  187. package/lib/kerror/errors/partialError.d.ts +1 -1
  188. package/lib/kerror/errors/partialError.js +1 -1
  189. package/lib/kerror/errors/pluginImplementationError.d.ts +1 -1
  190. package/lib/kerror/errors/pluginImplementationError.js +2 -1
  191. package/lib/kerror/errors/preconditionError.d.ts +1 -1
  192. package/lib/kerror/errors/serviceUnavailableError.d.ts +1 -1
  193. package/lib/kerror/errors/sizeLimitError.d.ts +1 -1
  194. package/lib/kerror/errors/tooManyRequestsError.d.ts +1 -1
  195. package/lib/kerror/errors/unauthorizedError.d.ts +1 -1
  196. package/lib/kerror/index.d.ts +3 -3
  197. package/lib/kerror/index.js +17 -16
  198. package/lib/kuzzle/dumpGenerator.js +130 -114
  199. package/lib/kuzzle/event/kuzzleEventEmitter.js +96 -70
  200. package/lib/kuzzle/event/pipeRunner.js +26 -25
  201. package/lib/kuzzle/event/waterfall.js +13 -15
  202. package/lib/kuzzle/index.js +2 -2
  203. package/lib/kuzzle/internalIndexHandler.js +80 -59
  204. package/lib/kuzzle/kuzzle.js +99 -99
  205. package/lib/kuzzle/kuzzleStateEnum.js +1 -1
  206. package/lib/kuzzle/log.js +23 -18
  207. package/lib/kuzzle/vault.js +34 -19
  208. package/lib/model/security/profile.d.ts +3 -3
  209. package/lib/model/security/profile.js +38 -37
  210. package/lib/model/security/rights.js +5 -5
  211. package/lib/model/security/role.d.ts +3 -3
  212. package/lib/model/security/role.js +25 -26
  213. package/lib/model/security/token.d.ts +1 -1
  214. package/lib/model/security/token.js +4 -4
  215. package/lib/model/security/user.d.ts +2 -2
  216. package/lib/model/security/user.js +9 -9
  217. package/lib/model/storage/apiKey.js +43 -33
  218. package/lib/model/storage/baseModel.js +49 -45
  219. package/lib/service/cache/redis.js +60 -55
  220. package/lib/service/service.js +17 -17
  221. package/lib/service/storage/elasticsearch.js +839 -755
  222. package/lib/service/storage/esWrapper.js +103 -86
  223. package/lib/service/storage/queryTranslator.js +52 -59
  224. package/lib/types/Controller.d.ts +3 -3
  225. package/lib/types/ControllerDefinition.d.ts +3 -3
  226. package/lib/types/DebugModule.d.ts +3 -2
  227. package/lib/types/DebugModule.js +1 -1
  228. package/lib/types/EventHandler.d.ts +31 -1
  229. package/lib/types/Global.d.ts +1 -1
  230. package/lib/types/HttpStream.d.ts +2 -1
  231. package/lib/types/HttpStream.js +7 -5
  232. package/lib/types/Kuzzle.d.ts +1 -1
  233. package/lib/types/KuzzleDocument.d.ts +1 -1
  234. package/lib/types/OpenApiDefinition.d.ts +1 -1
  235. package/lib/types/PasswordPolicy.d.ts +1 -1
  236. package/lib/types/Plugin.d.ts +8 -8
  237. package/lib/types/Plugin.js +2 -2
  238. package/lib/types/Policy.d.ts +1 -1
  239. package/lib/types/RequestPayload.d.ts +1 -1
  240. package/lib/types/ResponsePayload.d.ts +1 -1
  241. package/lib/types/Token.d.ts +1 -1
  242. package/lib/types/User.d.ts +1 -1
  243. package/lib/types/config/DumpConfiguration.d.ts +8 -8
  244. package/lib/types/config/HttpConfiguration.d.ts +1 -1
  245. package/lib/types/config/KuzzleConfiguration.d.ts +1 -1
  246. package/lib/types/config/LimitsConfiguration.d.ts +8 -8
  247. package/lib/types/config/PluginsConfiguration.d.ts +4 -4
  248. package/lib/types/config/SecurityConfiguration.d.ts +62 -62
  249. package/lib/types/config/ServerConfiguration.d.ts +55 -55
  250. package/lib/types/config/ServicesConfiguration.d.ts +2 -2
  251. package/lib/types/config/internalCache/InternalCacheRedisConfiguration.d.ts +10 -10
  252. package/lib/types/config/publicCache/PublicCacheRedisConfiguration.d.ts +3 -3
  253. package/lib/types/config/storageEngine/StorageEngineElasticsearchConfiguration.d.ts +194 -110
  254. package/lib/types/errors/ErrorDefinition.d.ts +1 -1
  255. package/lib/types/errors/ErrorDomains.d.ts +1 -1
  256. package/lib/types/events/EventGenericDocument.d.ts +26 -0
  257. package/lib/types/events/EventGenericDocument.js +3 -0
  258. package/lib/types/index.d.ts +39 -38
  259. package/lib/types/index.js +1 -0
  260. package/lib/types/realtime/RealtimeScope.d.ts +1 -1
  261. package/lib/types/realtime/RealtimeUsers.d.ts +1 -1
  262. package/lib/util/assertType.js +13 -11
  263. package/lib/util/async.d.ts +1 -0
  264. package/lib/util/async.js +61 -0
  265. package/lib/util/asyncStore.js +19 -21
  266. package/lib/util/bufferedPassThrough.d.ts +3 -2
  267. package/lib/util/bufferedPassThrough.js +4 -4
  268. package/lib/util/bytes.js +9 -13
  269. package/lib/util/crypto.js +1 -1
  270. package/lib/util/debug.js +5 -5
  271. package/lib/util/deprecate.js +24 -21
  272. package/lib/util/didYouMean.js +7 -7
  273. package/lib/util/dump-collection.d.ts +2 -2
  274. package/lib/util/dump-collection.js +26 -26
  275. package/lib/util/esRequest.d.ts +1 -0
  276. package/lib/util/esRequest.js +62 -0
  277. package/lib/util/extractFields.js +24 -25
  278. package/lib/util/inflector.js +5 -5
  279. package/lib/util/koncordeCompat.d.ts +2 -2
  280. package/lib/util/koncordeCompat.js +5 -5
  281. package/lib/util/memoize.js +3 -5
  282. package/lib/util/mutex.d.ts +19 -1
  283. package/lib/util/mutex.js +39 -12
  284. package/lib/util/name-generator.js +1331 -1331
  285. package/lib/util/promback.js +8 -10
  286. package/lib/util/readYamlFile.d.ts +1 -1
  287. package/lib/util/readYamlFile.js +1 -1
  288. package/lib/util/requestAssertions.js +34 -34
  289. package/lib/util/safeObject.js +5 -5
  290. package/lib/util/stackTrace.js +20 -22
  291. package/lib/util/wildcard.js +15 -15
  292. package/package.json +28 -29
  293. package/npm-shrinkwrap.json +0 -19422
@@ -47,8 +47,8 @@ exports.BackendImport = void 0;
47
47
  const kerror = __importStar(require("../../kerror"));
48
48
  const index_1 = require("./index");
49
49
  const safeObject_1 = require("../../../lib/util/safeObject");
50
- const assertionError = kerror.wrap('validation', 'assert');
51
- const runtimeError = kerror.wrap('plugin', 'runtime');
50
+ const assertionError = kerror.wrap("validation", "assert");
51
+ const runtimeError = kerror.wrap("plugin", "runtime");
52
52
  class BackendImport extends index_1.ApplicationManager {
53
53
  /**
54
54
  * Import mappings.
@@ -68,18 +68,17 @@ class BackendImport extends index_1.ApplicationManager {
68
68
  */
69
69
  mappings(mappings) {
70
70
  if (this._application.started) {
71
- throw runtimeError.get('already_started', 'import');
71
+ throw runtimeError.get("already_started", "import");
72
72
  }
73
73
  else if (!(0, safeObject_1.isPlainObject)(mappings)) {
74
- throw assertionError.get('invalid_type', 'mappings', 'object');
74
+ throw assertionError.get("invalid_type", "mappings", "object");
75
75
  }
76
76
  for (const index of Object.keys(mappings)) {
77
77
  if (!(0, safeObject_1.isPlainObject)(mappings[index])) {
78
- throw assertionError.get('invalid_type', `mappings.${index}`, 'object');
78
+ throw assertionError.get("invalid_type", `mappings.${index}`, "object");
79
79
  }
80
80
  // If some collections have already been defined, only their last mappings will be retained
81
- this._application._import.mappings[index] =
82
- Object.assign({}, this._application._import.mappings[index], mappings[index]);
81
+ this._application._import.mappings[index] = Object.assign({}, this._application._import.mappings[index], mappings[index]);
83
82
  }
84
83
  }
85
84
  /**
@@ -96,14 +95,13 @@ class BackendImport extends index_1.ApplicationManager {
96
95
  */
97
96
  profiles(profiles) {
98
97
  if (this._application.started) {
99
- throw runtimeError.get('already_started', 'import');
98
+ throw runtimeError.get("already_started", "import");
100
99
  }
101
100
  else if (!(0, safeObject_1.isPlainObject)(profiles)) {
102
- throw assertionError.get('invalid_type', 'profiles', 'object');
101
+ throw assertionError.get("invalid_type", "profiles", "object");
103
102
  }
104
103
  // If some profiles have already been defined, only their last definition will be retained
105
- this._application._import.profiles =
106
- Object.assign({}, this._application._import.profiles, profiles);
104
+ this._application._import.profiles = Object.assign({}, this._application._import.profiles, profiles);
107
105
  }
108
106
  /**
109
107
  * Import roles
@@ -119,14 +117,13 @@ class BackendImport extends index_1.ApplicationManager {
119
117
  */
120
118
  roles(roles) {
121
119
  if (this._application.started) {
122
- throw runtimeError.get('already_started', 'import');
120
+ throw runtimeError.get("already_started", "import");
123
121
  }
124
122
  else if (!(0, safeObject_1.isPlainObject)(roles)) {
125
- throw assertionError.get('invalid_type', 'roles', 'object');
123
+ throw assertionError.get("invalid_type", "roles", "object");
126
124
  }
127
125
  // If some roles have already been defined, only their last definition will be retained
128
- this._application._import.roles =
129
- Object.assign({}, this._application._import.roles, roles);
126
+ this._application._import.roles = Object.assign({}, this._application._import.roles, roles);
130
127
  }
131
128
  /**
132
129
  * Import user mappings.
@@ -144,10 +141,10 @@ class BackendImport extends index_1.ApplicationManager {
144
141
  */
145
142
  userMappings(mappings) {
146
143
  if (this._application.started) {
147
- throw runtimeError.get('already_started', 'import');
144
+ throw runtimeError.get("already_started", "import");
148
145
  }
149
146
  else if (!(0, safeObject_1.isPlainObject)(mappings)) {
150
- throw assertionError.get('invalid_type', 'mappings', 'object');
147
+ throw assertionError.get("invalid_type", "mappings", "object");
151
148
  }
152
149
  this._application._import.userMappings = mappings;
153
150
  }
@@ -165,20 +162,23 @@ class BackendImport extends index_1.ApplicationManager {
165
162
  */
166
163
  users(users, options = {}) {
167
164
  if (this._application.started) {
168
- throw runtimeError.get('already_started', 'import');
165
+ throw runtimeError.get("already_started", "import");
169
166
  }
170
167
  else if (!(0, safeObject_1.isPlainObject)(users)) {
171
- throw assertionError.get('invalid_type', 'users', 'object');
168
+ throw assertionError.get("invalid_type", "users", "object");
172
169
  }
173
170
  else if (options.onExistingUsers) {
174
- if (!(options.onExistingUsers === 'overwrite' || options.onExistingUsers === 'skip')) {
175
- throw assertionError.get('invalid_type', 'onExistingUsers', ['overwrite', 'skip']);
171
+ if (!(options.onExistingUsers === "overwrite" ||
172
+ options.onExistingUsers === "skip")) {
173
+ throw assertionError.get("invalid_type", "onExistingUsers", [
174
+ "overwrite",
175
+ "skip",
176
+ ]);
176
177
  }
177
178
  this._application._import.onExistingUsers = options.onExistingUsers;
178
179
  }
179
180
  // If some users have already been defined (before startup), only their last definition will be retained
180
- this._application._import.users =
181
- Object.assign({}, this._application._import.users, users);
181
+ this._application._import.users = Object.assign({}, this._application._import.users, users);
182
182
  }
183
183
  }
184
184
  exports.BackendImport = BackendImport;
@@ -1,5 +1,5 @@
1
- import { ApplicationManager, Backend } from './index';
2
- import { OpenApiDefinition } from '../../types';
1
+ import { ApplicationManager, Backend } from "./index";
2
+ import { OpenApiDefinition } from "../../types";
3
3
  export declare class BackendOpenApi extends ApplicationManager {
4
4
  /**
5
5
  * Application Open API definition
@@ -27,40 +27,40 @@ class BackendOpenApi extends index_1.ApplicationManager {
27
27
  super(application);
28
28
  /* eslint-disable sort-keys */
29
29
  this.definition = {
30
- openapi: '3.0.0',
30
+ openapi: "3.0.0",
31
31
  info: {
32
32
  title: `${application.name} API`,
33
33
  description: `${application.name} HTTP API definition`,
34
34
  contact: {
35
- name: 'Kuzzle team',
36
- url: 'https://kuzzle.io',
37
- email: 'support@kuzzle.io',
38
- discord: 'http://join.discord.kuzzle.io'
35
+ name: "Kuzzle team",
36
+ url: "https://kuzzle.io",
37
+ email: "support@kuzzle.io",
38
+ discord: "http://join.discord.kuzzle.io",
39
39
  },
40
40
  license: {
41
- name: 'Apache 2',
42
- url: 'http://opensource.org/licenses/apache2.0'
41
+ name: "Apache 2",
42
+ url: "http://opensource.org/licenses/apache2.0",
43
43
  },
44
- version: application.version
44
+ version: application.version,
45
45
  },
46
46
  externalDocs: {
47
- description: 'Kuzzle API Documentation',
48
- url: 'https://docs.kuzzle.io/core/2/api/'
47
+ description: "Kuzzle API Documentation",
48
+ url: "https://docs.kuzzle.io/core/2/api/",
49
49
  },
50
50
  servers: [
51
51
  {
52
- url: 'https://{baseUrl}:{port}',
52
+ url: "https://{baseUrl}:{port}",
53
53
  description: `${application.name} Base Url`,
54
54
  variables: {
55
- baseUrl: { default: 'localhost' },
55
+ baseUrl: { default: "localhost" },
56
56
  port: { default: 7512 },
57
- }
58
- }
57
+ },
58
+ },
59
59
  ],
60
60
  tags: [],
61
- schemes: ['https', 'http'],
61
+ schemes: ["https", "http"],
62
62
  paths: {},
63
- components: {}
63
+ components: {},
64
64
  };
65
65
  /* eslint-enable sort-keys */
66
66
  }
@@ -1,5 +1,5 @@
1
- import { EventHandler } from '../../types';
2
- import { ApplicationManager } from './index';
1
+ import { EventDefinition, PipeEventHandler } from "../../types";
2
+ import { ApplicationManager } from "./index";
3
3
  export declare class BackendPipe extends ApplicationManager {
4
4
  /**
5
5
  * Registers a new pipe on an event
@@ -7,6 +7,6 @@ export declare class BackendPipe extends ApplicationManager {
7
7
  * @param event - Event name
8
8
  * @param handler - Function to execute when the event is triggered
9
9
  */
10
- register(event: string, handler: EventHandler, options?: any): string | void;
10
+ register<TEventDefinition extends EventDefinition = EventDefinition>(event: TEventDefinition["name"], handler: PipeEventHandler<TEventDefinition>, options?: any): string | void;
11
11
  unregister(pipeId: string): void;
12
12
  }
@@ -46,8 +46,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
46
46
  exports.BackendPipe = void 0;
47
47
  const kerror = __importStar(require("../../kerror"));
48
48
  const index_1 = require("./index");
49
- const assertionError = kerror.wrap('plugin', 'assert');
50
- const runtimeError = kerror.wrap('plugin', 'runtime');
49
+ const assertionError = kerror.wrap("plugin", "assert");
50
+ const runtimeError = kerror.wrap("plugin", "runtime");
51
51
  class BackendPipe extends index_1.ApplicationManager {
52
52
  /**
53
53
  * Registers a new pipe on an event
@@ -57,10 +57,10 @@ class BackendPipe extends index_1.ApplicationManager {
57
57
  */
58
58
  register(event, handler, options = {}) {
59
59
  if (this._application.started && options.dynamic !== true) {
60
- throw runtimeError.get('already_started', 'pipe.register');
60
+ throw runtimeError.get("already_started", "pipe.register");
61
61
  }
62
- if (typeof handler !== 'function') {
63
- throw assertionError.get('invalid_pipe', event);
62
+ if (typeof handler !== "function") {
63
+ throw assertionError.get("invalid_pipe", event);
64
64
  }
65
65
  if (this._application.started) {
66
66
  return global.kuzzle.pluginsManager.registerPipe(global.kuzzle.pluginsManager.application, event, handler);
@@ -72,7 +72,7 @@ class BackendPipe extends index_1.ApplicationManager {
72
72
  }
73
73
  unregister(pipeId) {
74
74
  if (!this._application.started) {
75
- throw runtimeError.get('unavailable_before_start', 'pipe.unregister');
75
+ throw runtimeError.get("unavailable_before_start", "pipe.unregister");
76
76
  }
77
77
  global.kuzzle.pluginsManager.unregisterPipe(pipeId);
78
78
  }
@@ -1,6 +1,6 @@
1
- import { JSONObject } from '../../../index';
2
- import { Plugin } from '../../types';
3
- import { ApplicationManager } from './index';
1
+ import { JSONObject } from "../../../index";
2
+ import { Plugin } from "../../types";
3
+ import { ApplicationManager } from "./index";
4
4
  export declare class BackendPlugin extends ApplicationManager {
5
5
  /**
6
6
  * Uses a plugin in this application.
@@ -24,7 +24,7 @@ export declare class BackendPlugin extends ApplicationManager {
24
24
  *
25
25
  * @param name Plugin name
26
26
  */
27
- get(name: string): Plugin;
27
+ get<TPlugin extends Plugin>(name: string): TPlugin;
28
28
  /**
29
29
  * Lists loaded plugins
30
30
  */
@@ -51,8 +51,8 @@ const inflector_1 = require("../../util/inflector");
51
51
  const kerror = __importStar(require("../../kerror"));
52
52
  const index_1 = require("./index");
53
53
  const didYouMean_1 = __importDefault(require("../../util/didYouMean"));
54
- const assertionError = kerror.wrap('plugin', 'assert');
55
- const runtimeError = kerror.wrap('plugin', 'runtime');
54
+ const assertionError = kerror.wrap("plugin", "assert");
55
+ const runtimeError = kerror.wrap("plugin", "runtime");
56
56
  class BackendPlugin extends index_1.ApplicationManager {
57
57
  /**
58
58
  * Uses a plugin in this application.
@@ -68,24 +68,24 @@ class BackendPlugin extends index_1.ApplicationManager {
68
68
  */
69
69
  use(plugin, options = {}) {
70
70
  if (this._application.started) {
71
- throw runtimeError.get('already_started', 'plugin');
71
+ throw runtimeError.get("already_started", "plugin");
72
72
  }
73
73
  // Avoid plain objects
74
- if ((typeof plugin.constructor !== 'function'
75
- || plugin.constructor.name === 'Object')
76
- && !options.name) {
77
- throw assertionError.get('no_name_provided');
74
+ if ((typeof plugin.constructor !== "function" ||
75
+ plugin.constructor.name === "Object") &&
76
+ !options.name) {
77
+ throw assertionError.get("no_name_provided");
78
78
  }
79
- const name = options.name
80
- || inflector_1.Inflector.kebabCase(plugin.constructor.name.replace('Plugin', ''));
79
+ const name = options.name ||
80
+ inflector_1.Inflector.kebabCase(plugin.constructor.name.replace("Plugin", ""));
81
81
  if (!this._application.PluginObject.checkName(name)) {
82
- throw assertionError.get('invalid_plugin_name', name);
82
+ throw assertionError.get("invalid_plugin_name", name);
83
83
  }
84
84
  if (this._application._plugins[name]) {
85
- throw assertionError.get('name_already_exists', name);
85
+ throw assertionError.get("name_already_exists", name);
86
86
  }
87
- if (typeof plugin.init !== 'function') {
88
- throw assertionError.get('init_not_found', name);
87
+ if (typeof plugin.init !== "function") {
88
+ throw assertionError.get("init_not_found", name);
89
89
  }
90
90
  this._application._plugins[name] = { options, plugin };
91
91
  }
@@ -96,7 +96,7 @@ class BackendPlugin extends index_1.ApplicationManager {
96
96
  */
97
97
  get(name) {
98
98
  if (!this._application._plugins[name]) {
99
- throw assertionError.get('plugin_not_found', name, (0, didYouMean_1.default)(name, this.list()));
99
+ throw assertionError.get("plugin_not_found", name, (0, didYouMean_1.default)(name, this.list()));
100
100
  }
101
101
  return this._application._plugins[name].plugin;
102
102
  }
@@ -1,5 +1,5 @@
1
- import { Client } from '@elastic/elasticsearch';
2
- import { ApplicationManager, Backend } from './index';
1
+ import { Client } from "@elastic/elasticsearch";
2
+ import { ApplicationManager, Backend } from "./index";
3
3
  export declare class BackendStorage extends ApplicationManager {
4
4
  private _client;
5
5
  private _Client;
@@ -56,8 +56,7 @@ class BackendStorage extends index_1.ApplicationManager {
56
56
  */
57
57
  get storageClient() {
58
58
  if (!this._client) {
59
- this._client = elasticsearch_1.default
60
- .buildClient(this._kuzzle.config.services.storageEngine.client);
59
+ this._client = elasticsearch_1.default.buildClient(this._kuzzle.config.services.storageEngine.client);
61
60
  }
62
61
  return this._client;
63
62
  }
@@ -1,5 +1,5 @@
1
- import { JSONObject } from '../../../index';
2
- import { ApplicationManager } from './index';
1
+ import { JSONObject } from "../../../index";
2
+ import { ApplicationManager } from "./index";
3
3
  export declare class BackendVault extends ApplicationManager {
4
4
  private decrypted;
5
5
  private _secrets;
@@ -50,7 +50,7 @@ exports.BackendVault = void 0;
50
50
  const vault_1 = __importDefault(require("../../kuzzle/vault"));
51
51
  const kerror = __importStar(require("../../kerror"));
52
52
  const index_1 = require("./index");
53
- const runtimeError = kerror.wrap('plugin', 'runtime');
53
+ const runtimeError = kerror.wrap("plugin", "runtime");
54
54
  class BackendVault extends index_1.ApplicationManager {
55
55
  constructor() {
56
56
  super(...arguments);
@@ -61,7 +61,7 @@ class BackendVault extends index_1.ApplicationManager {
61
61
  */
62
62
  set key(key) {
63
63
  if (this._application.started) {
64
- throw runtimeError.get('already_started', 'vault');
64
+ throw runtimeError.get("already_started", "vault");
65
65
  }
66
66
  this._application._vaultKey = key;
67
67
  }
@@ -70,7 +70,7 @@ class BackendVault extends index_1.ApplicationManager {
70
70
  */
71
71
  set file(file) {
72
72
  if (this._application.started) {
73
- throw runtimeError.get('already_started', 'vault');
73
+ throw runtimeError.get("already_started", "vault");
74
74
  }
75
75
  this._application._secretsFile = file;
76
76
  }
@@ -1,14 +1,14 @@
1
- export * from './applicationManager';
2
- export * from './backend';
3
- export * from './backendCluster';
4
- export * from './backendConfig';
5
- export * from './backendController';
6
- export * from './backendHook';
7
- export * from './backendImport';
8
- export * from './backendPipe';
9
- export * from './backendPlugin';
10
- export * from './backendStorage';
11
- export * from './backendVault';
12
- export * from './backendOpenApi';
13
- export * from './internalLogger';
14
- export * from './backendErrors';
1
+ export * from "./applicationManager";
2
+ export * from "./backend";
3
+ export * from "./backendCluster";
4
+ export * from "./backendConfig";
5
+ export * from "./backendController";
6
+ export * from "./backendHook";
7
+ export * from "./backendImport";
8
+ export * from "./backendPipe";
9
+ export * from "./backendPlugin";
10
+ export * from "./backendStorage";
11
+ export * from "./backendVault";
12
+ export * from "./backendOpenApi";
13
+ export * from "./internalLogger";
14
+ export * from "./backendErrors";
@@ -1,4 +1,4 @@
1
- import { ApplicationManager } from './index';
1
+ import { ApplicationManager } from "./index";
2
2
  export declare class InternalLogger extends ApplicationManager {
3
3
  /**
4
4
  * Logs an debug message
@@ -31,31 +31,31 @@ class InternalLogger extends index_1.ApplicationManager {
31
31
  * Logs an debug message
32
32
  */
33
33
  debug(message) {
34
- this._log('debug', message);
34
+ this._log("debug", message);
35
35
  }
36
36
  /**
37
37
  * Logs an info message
38
38
  */
39
39
  info(message) {
40
- this._log('info', message);
40
+ this._log("info", message);
41
41
  }
42
42
  /**
43
43
  * Logs a warn message
44
44
  */
45
45
  warn(message) {
46
- this._log('warn', message);
46
+ this._log("warn", message);
47
47
  }
48
48
  /**
49
49
  * Logs an error message
50
50
  */
51
51
  error(message) {
52
- this._log('error', message);
52
+ this._log("error", message);
53
53
  }
54
54
  /**
55
55
  * Logs a verbose message
56
56
  */
57
57
  verbose(message) {
58
- this._log('verbose', message);
58
+ this._log("verbose", message);
59
59
  }
60
60
  _log(level, message) {
61
61
  if (!this._application.started) {
@@ -19,7 +19,7 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
24
  /**
25
25
  * @typedef {string} cacheDbEnum
@@ -32,9 +32,9 @@
32
32
  * @enum {cacheDbEnum}
33
33
  */
34
34
  const cacheDbEnum = Object.freeze({
35
- INTERNAL: 'internal',
36
- NONE: 'none',
37
- PUBLIC: 'public',
35
+ INTERNAL: "internal",
36
+ NONE: "none",
37
+ PUBLIC: "public",
38
38
  });
39
39
 
40
40
  module.exports = cacheDbEnum;