kuzzle 2.19.2 → 2.19.3

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 (289) 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 +89 -87
  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 +3 -3
  71. package/lib/core/backend/backend.js +34 -31
  72. package/lib/core/backend/backendCluster.d.ts +2 -2
  73. package/lib/core/backend/backendCluster.js +5 -5
  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 +2 -2
  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 +2 -2
  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 +25 -24
  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 +2 -2
  227. package/lib/types/DebugModule.js +1 -1
  228. package/lib/types/Global.d.ts +1 -1
  229. package/lib/types/HttpStream.d.ts +2 -1
  230. package/lib/types/HttpStream.js +7 -5
  231. package/lib/types/Kuzzle.d.ts +1 -1
  232. package/lib/types/KuzzleDocument.d.ts +1 -1
  233. package/lib/types/OpenApiDefinition.d.ts +1 -1
  234. package/lib/types/PasswordPolicy.d.ts +1 -1
  235. package/lib/types/Plugin.d.ts +6 -6
  236. package/lib/types/Plugin.js +2 -2
  237. package/lib/types/Policy.d.ts +1 -1
  238. package/lib/types/RequestPayload.d.ts +1 -1
  239. package/lib/types/ResponsePayload.d.ts +1 -1
  240. package/lib/types/Token.d.ts +1 -1
  241. package/lib/types/User.d.ts +1 -1
  242. package/lib/types/config/DumpConfiguration.d.ts +8 -8
  243. package/lib/types/config/HttpConfiguration.d.ts +1 -1
  244. package/lib/types/config/KuzzleConfiguration.d.ts +1 -1
  245. package/lib/types/config/LimitsConfiguration.d.ts +8 -8
  246. package/lib/types/config/PluginsConfiguration.d.ts +4 -4
  247. package/lib/types/config/SecurityConfiguration.d.ts +62 -62
  248. package/lib/types/config/ServerConfiguration.d.ts +55 -55
  249. package/lib/types/config/ServicesConfiguration.d.ts +2 -2
  250. package/lib/types/config/internalCache/InternalCacheRedisConfiguration.d.ts +10 -10
  251. package/lib/types/config/publicCache/PublicCacheRedisConfiguration.d.ts +3 -3
  252. package/lib/types/config/storageEngine/StorageEngineElasticsearchConfiguration.d.ts +194 -110
  253. package/lib/types/errors/ErrorDefinition.d.ts +1 -1
  254. package/lib/types/errors/ErrorDomains.d.ts +1 -1
  255. package/lib/types/index.d.ts +38 -38
  256. package/lib/types/realtime/RealtimeScope.d.ts +1 -1
  257. package/lib/types/realtime/RealtimeUsers.d.ts +1 -1
  258. package/lib/util/assertType.js +13 -11
  259. package/lib/util/async.d.ts +1 -0
  260. package/lib/util/async.js +61 -0
  261. package/lib/util/asyncStore.js +19 -21
  262. package/lib/util/bufferedPassThrough.d.ts +2 -2
  263. package/lib/util/bufferedPassThrough.js +4 -4
  264. package/lib/util/bytes.js +9 -13
  265. package/lib/util/crypto.js +1 -1
  266. package/lib/util/debug.js +5 -5
  267. package/lib/util/deprecate.js +24 -21
  268. package/lib/util/didYouMean.js +7 -7
  269. package/lib/util/dump-collection.d.ts +2 -2
  270. package/lib/util/dump-collection.js +26 -26
  271. package/lib/util/esRequest.d.ts +1 -0
  272. package/lib/util/esRequest.js +62 -0
  273. package/lib/util/extractFields.js +24 -25
  274. package/lib/util/inflector.js +5 -5
  275. package/lib/util/koncordeCompat.d.ts +2 -2
  276. package/lib/util/koncordeCompat.js +5 -5
  277. package/lib/util/memoize.js +3 -5
  278. package/lib/util/mutex.d.ts +19 -1
  279. package/lib/util/mutex.js +39 -12
  280. package/lib/util/name-generator.js +1331 -1331
  281. package/lib/util/promback.js +8 -10
  282. package/lib/util/readYamlFile.d.ts +1 -1
  283. package/lib/util/readYamlFile.js +1 -1
  284. package/lib/util/requestAssertions.js +34 -34
  285. package/lib/util/safeObject.js +5 -5
  286. package/lib/util/stackTrace.js +20 -22
  287. package/lib/util/wildcard.js +15 -15
  288. package/package.json +6 -6
  289. package/npm-shrinkwrap.json +0 -19422
@@ -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 { EventHandler } 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
@@ -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;
@@ -19,18 +19,18 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
- const Bluebird = require('bluebird');
24
+ const Bluebird = require("bluebird");
25
25
 
26
- const Redis = require('../../service/cache/redis');
26
+ const Redis = require("../../service/cache/redis");
27
27
 
28
28
  class CacheEngine {
29
- constructor () {
29
+ constructor() {
30
30
  const config = global.kuzzle.config.services;
31
31
 
32
- this.public = new Redis(config.memoryStorage, 'public_adapter');
33
- this.internal = new Redis(config.internalCache, 'internal_adapter');
32
+ this.public = new Redis(config.memoryStorage, "public_adapter");
33
+ this.internal = new Redis(config.internalCache, "internal_adapter");
34
34
  }
35
35
 
36
36
  /**
@@ -38,100 +38,95 @@ class CacheEngine {
38
38
  *
39
39
  * @returns {Promise}
40
40
  */
41
- async init () {
42
- await Bluebird.all([
43
- this.public.init(),
44
- this.internal.init(),
45
- ]);
41
+ async init() {
42
+ await Bluebird.all([this.public.init(), this.internal.init()]);
46
43
 
47
44
  this.registerInternalEvents();
48
45
  this.registerPublicEvents();
49
46
 
50
- global.kuzzle.log.info('[✔] Cache initialized');
47
+ global.kuzzle.log.info("[✔] Cache initialized");
51
48
  }
52
49
 
53
- registerInternalEvents () {
50
+ registerInternalEvents() {
54
51
  /**
55
52
  * Deletes on or multiple keys
56
53
  * @param {string|Array.<string>} keys
57
54
  */
58
- global.kuzzle.onAsk(
59
- 'core:cache:internal:del',
60
- keys => this.internal.commands.del(keys));
55
+ global.kuzzle.onAsk("core:cache:internal:del", (keys) =>
56
+ this.internal.commands.del(keys)
57
+ );
61
58
 
62
59
  /**
63
60
  * Asks a key to expire in the provided delay
64
61
  * @param {string} key
65
62
  * @param {number} ttl (in seconds)
66
63
  */
67
- global.kuzzle.onAsk(
68
- 'core:cache:internal:expire',
69
- (key, ttl) => this.internal.commands.expire(key, ttl));
64
+ global.kuzzle.onAsk("core:cache:internal:expire", (key, ttl) =>
65
+ this.internal.commands.expire(key, ttl)
66
+ );
70
67
 
71
68
  /**
72
69
  * Wipes the database clean
73
70
  */
74
- global.kuzzle.onAsk(
75
- 'core:cache:internal:flushdb',
76
- () => this.internal.commands.flushdb());
71
+ global.kuzzle.onAsk("core:cache:internal:flushdb", () =>
72
+ this.internal.commands.flushdb()
73
+ );
77
74
 
78
75
  /**
79
76
  * Returns basic information about the internal cache service
80
77
  * @returns {Promise.<Object>}
81
78
  */
82
- global.kuzzle.onAsk(
83
- 'core:cache:internal:info:get',
84
- () => this.internal.info());
79
+ global.kuzzle.onAsk("core:cache:internal:info:get", () =>
80
+ this.internal.info()
81
+ );
85
82
 
86
83
  /**
87
84
  * Fetches a single value
88
85
  * @param {string} key
89
86
  * @return {string}
90
87
  */
91
- global.kuzzle.onAsk(
92
- 'core:cache:internal:get',
93
- key => this.internal.commands.get(key));
88
+ global.kuzzle.onAsk("core:cache:internal:get", (key) =>
89
+ this.internal.commands.get(key)
90
+ );
94
91
 
95
92
  /**
96
93
  * Fetches multiple values in one go
97
94
  * @param {Array.<string>} ids
98
95
  * @return {Array.<string|null>}
99
96
  */
100
- global.kuzzle.onAsk(
101
- 'core:cache:internal:mget',
102
- keys => {
103
- // redis throws an error if trying to mget without arguments
104
- if (keys.length === 0) {
105
- return [];
106
- }
97
+ global.kuzzle.onAsk("core:cache:internal:mget", (keys) => {
98
+ // redis throws an error if trying to mget without arguments
99
+ if (keys.length === 0) {
100
+ return [];
101
+ }
107
102
 
108
- return this.internal.commands.mget(keys);
109
- });
103
+ return this.internal.commands.mget(keys);
104
+ });
110
105
 
111
106
  /**
112
107
  * Makes a key persistent (disable its expiration delay, if there is one)
113
108
  * @param {string} key
114
109
  */
115
- global.kuzzle.onAsk(
116
- 'core:cache:internal:persist',
117
- (key) => this.internal.commands.persist(key));
110
+ global.kuzzle.onAsk("core:cache:internal:persist", (key) =>
111
+ this.internal.commands.persist(key)
112
+ );
118
113
 
119
114
  /**
120
115
  * Asks a key to expire in the provided delay
121
116
  * @param {string} key
122
117
  * @param {number} ttl (in milliseconds)
123
118
  */
124
- global.kuzzle.onAsk(
125
- 'core:cache:internal:pexpire',
126
- (key, ttl) => this.internal.commands.pexpire(key, ttl));
119
+ global.kuzzle.onAsk("core:cache:internal:pexpire", (key, ttl) =>
120
+ this.internal.commands.pexpire(key, ttl)
121
+ );
127
122
 
128
123
  /**
129
124
  * Fetches all keys matching the provided pattern
130
125
  * @param {string} pattern
131
126
  */
132
- global.kuzzle.onAsk(
133
- 'core:cache:internal:searchKeys',
134
- pattern => this.internal.searchKeys(pattern));
127
+ global.kuzzle.onAsk("core:cache:internal:searchKeys", (pattern) =>
128
+ this.internal.searchKeys(pattern)
129
+ );
135
130
 
136
131
  /**
137
132
  * Add a custom LUA script to the internal client
@@ -143,13 +138,14 @@ class CacheEngine {
143
138
  * @param {string} script
144
139
  */
145
140
  global.kuzzle.onAsk(
146
- 'core:cache:internal:script:define',
141
+ "core:cache:internal:script:define",
147
142
  (name, keys, script) => {
148
143
  return this.internal.client.defineCommand(name, {
149
144
  lua: script,
150
145
  numberOfKeys: keys,
151
146
  });
152
- });
147
+ }
148
+ );
153
149
 
154
150
  /**
155
151
  * Execute a script previously defined with core:cache:internal:script:define
@@ -158,9 +154,9 @@ class CacheEngine {
158
154
  * @param {...string} args -- script arguments
159
155
  * @return {*} script result (if any)
160
156
  */
161
- global.kuzzle.onAsk(
162
- 'core:cache:internal:script:execute',
163
- (name, ...args) => this.internal.client[name](...args));
157
+ global.kuzzle.onAsk("core:cache:internal:script:execute", (name, ...args) =>
158
+ this.internal.client[name](...args)
159
+ );
164
160
 
165
161
  /**
166
162
  * Convenience method for easy access to options NX and PX of the "set"
@@ -177,86 +173,84 @@ class CacheEngine {
177
173
  * @param {{ttl: number, onlyIfNew: boolean}} [opts]
178
174
  * @returns {Promise.<boolean>} true if the key was set, false otherwise
179
175
  */
180
- global.kuzzle.onAsk(
181
- 'core:cache:internal:store',
182
- (key, value, opts) => this.internal.store(key, value, opts));
176
+ global.kuzzle.onAsk("core:cache:internal:store", (key, value, opts) =>
177
+ this.internal.store(key, value, opts)
178
+ );
183
179
 
184
180
  /**
185
181
  * Executes an arbitrary NATIVE cache command directly
186
182
  * @param {string} command
187
183
  * @param {Array} args -- command arguments
188
184
  */
189
- global.kuzzle.onAsk(
190
- 'core:cache:internal:execute',
191
- (command, ...args) => this.internal.exec(command, ...args));
185
+ global.kuzzle.onAsk("core:cache:internal:execute", (command, ...args) =>
186
+ this.internal.exec(command, ...args)
187
+ );
192
188
  }
193
189
 
194
- registerPublicEvents () {
190
+ registerPublicEvents() {
195
191
  /**
196
192
  * Deletes on or multiple keys
197
193
  * @param {string|Array.<string>} keys
198
194
  */
199
- global.kuzzle.onAsk(
200
- 'core:cache:public:del',
201
- keys => this.public.commands.del(keys));
195
+ global.kuzzle.onAsk("core:cache:public:del", (keys) =>
196
+ this.public.commands.del(keys)
197
+ );
202
198
 
203
199
  /**
204
200
  * Executes an arbitrary NATIVE cache command directly
205
201
  * @param {string} command
206
202
  * @param {Array} args -- command arguments
207
203
  */
208
- global.kuzzle.onAsk(
209
- 'core:cache:public:execute',
210
- (command, ...args) => this.public.exec(command, ...args));
204
+ global.kuzzle.onAsk("core:cache:public:execute", (command, ...args) =>
205
+ this.public.exec(command, ...args)
206
+ );
211
207
 
212
208
  /**
213
209
  * Asks a key to expire in the provided delay
214
210
  * @param {string} key
215
211
  * @param {number} ttl (in seconds)
216
212
  */
217
- global.kuzzle.onAsk(
218
- 'core:cache:public:expire',
219
- (key, ttl) => this.public.commands.expire(key, ttl));
213
+ global.kuzzle.onAsk("core:cache:public:expire", (key, ttl) =>
214
+ this.public.commands.expire(key, ttl)
215
+ );
220
216
 
221
217
  /**
222
218
  * Wipes the database clean
223
219
  */
224
- global.kuzzle.onAsk(
225
- 'core:cache:public:flushdb',
226
- () => this.public.commands.flushdb());
220
+ global.kuzzle.onAsk("core:cache:public:flushdb", () =>
221
+ this.public.commands.flushdb()
222
+ );
227
223
 
228
224
  /**
229
225
  * Returns basic information about the internal cache service
230
226
  * @returns {Promise.<Object>}
231
227
  */
232
- global.kuzzle.onAsk(
233
- 'core:cache:public:info:get',
234
- () => this.public.info());
228
+ global.kuzzle.onAsk("core:cache:public:info:get", () => this.public.info());
235
229
 
236
230
  /**
237
231
  * Fetches a single value
238
232
  * @param {string} key
239
233
  * @return {string}
240
234
  */
241
- global.kuzzle.onAsk(
242
- 'core:cache:public:get',
243
- key => this.public.commands.get(key));
235
+ global.kuzzle.onAsk("core:cache:public:get", (key) =>
236
+ this.public.commands.get(key)
237
+ );
244
238
 
245
239
  /**
246
240
  * Executes multiple cache commands in one go, as a single transaction
247
241
  * @param {Array} commands to execute
248
242
  */
249
- global.kuzzle.onAsk(
250
- 'core:cache:public:mExecute',
251
- commands => this.public.mExecute(commands));
243
+ global.kuzzle.onAsk("core:cache:public:mExecute", (commands) =>
244
+ this.public.mExecute(commands)
245
+ );
252
246
 
253
247
  /**
254
248
  * Makes a key persistent (disable its expiration delay, if there is one)
255
249
  * @param {string} key
256
250
  */
257
- global.kuzzle.onAsk(
258
- 'core:cache:public:persist',
259
- (key) => this.public.commands.persist(key));
251
+ global.kuzzle.onAsk("core:cache:public:persist", (key) =>
252
+ this.public.commands.persist(key)
253
+ );
260
254
 
261
255
  /**
262
256
  * Convenience method for easy access to options NX and PX of the "set"
@@ -273,9 +267,9 @@ class CacheEngine {
273
267
  * @param {{ttl: number, onlyIfNew: boolean}} [opts]
274
268
  * @returns {Promise.<boolean>} true if the key was set, false otherwise
275
269
  */
276
- global.kuzzle.onAsk(
277
- 'core:cache:public:store',
278
- (key, value, opts) => this.public.store(key, value, opts));
270
+ global.kuzzle.onAsk("core:cache:public:store", (key, value, opts) =>
271
+ this.public.store(key, value, opts)
272
+ );
279
273
  }
280
274
  }
281
275