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
@@ -18,12 +18,12 @@
18
18
  * See the License for the specific language governing permissions and
19
19
  * limitations under the License.
20
20
  */
21
- 'use strict';
21
+ "use strict";
22
22
 
23
- const Bluebird = require('bluebird');
23
+ const Bluebird = require("bluebird");
24
24
 
25
25
  class Promback {
26
- constructor (callback = null) {
26
+ constructor(callback = null) {
27
27
  this._callback = callback;
28
28
  this._resolve = null;
29
29
  this._reject = null;
@@ -38,29 +38,27 @@ class Promback {
38
38
  }
39
39
  }
40
40
 
41
- resolve (result) {
41
+ resolve(result) {
42
42
  if (this.isPromise) {
43
43
  this._resolve(result);
44
- }
45
- else {
44
+ } else {
46
45
  this._callback(null, result);
47
46
  }
48
47
 
49
48
  return this.deferred;
50
49
  }
51
50
 
52
- reject (error) {
51
+ reject(error) {
53
52
  if (this.isPromise) {
54
53
  this._reject(error);
55
- }
56
- else {
54
+ } else {
57
55
  this._callback(error);
58
56
  }
59
57
 
60
58
  return this.deferred;
61
59
  }
62
60
 
63
- get promise () {
61
+ get promise() {
64
62
  return this.deferred;
65
63
  }
66
64
  }
@@ -1,2 +1,2 @@
1
- import { JSONObject } from '../../index';
1
+ import { JSONObject } from "../../index";
2
2
  export declare function readYamlFile(path: string): JSONObject;
@@ -4,7 +4,7 @@ exports.readYamlFile = void 0;
4
4
  const fs_1 = require("fs");
5
5
  const js_yaml_1 = require("js-yaml");
6
6
  function readYamlFile(path) {
7
- return (0, js_yaml_1.load)((0, fs_1.readFileSync)(path, 'utf-8'));
7
+ return (0, js_yaml_1.load)((0, fs_1.readFileSync)(path, "utf-8"));
8
8
  }
9
9
  exports.readYamlFile = readYamlFile;
10
10
  //# sourceMappingURL=readYamlFile.js.map
@@ -19,13 +19,13 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
- const _ = require('lodash');
25
- const { get, isPlainObject } = require('./safeObject');
26
- const kerror = require('../kerror');
24
+ const _ = require("lodash");
25
+ const { get, isPlainObject } = require("./safeObject");
26
+ const kerror = require("../kerror");
27
27
 
28
- const assertionError = kerror.wrap('api', 'assert');
28
+ const assertionError = kerror.wrap("api", "assert");
29
29
 
30
30
  module.exports = {
31
31
  /**
@@ -33,7 +33,7 @@ module.exports = {
33
33
  */
34
34
  assertArgsHasAttribute: (request, attribute) => {
35
35
  if (_.isNil(get(request.input.args, attribute))) {
36
- throw assertionError.get('missing_argument', attribute);
36
+ throw assertionError.get("missing_argument", attribute);
37
37
  }
38
38
  },
39
39
 
@@ -45,29 +45,29 @@ module.exports = {
45
45
  */
46
46
  assertBodyAttributeType: (request, attribute, type) => {
47
47
  switch (type) {
48
- case 'number':
49
- case 'boolean':
50
- case 'string':
48
+ case "number":
49
+ case "boolean":
50
+ case "string":
51
51
  // The body should always be passed as JSON, we don't consider type conversion possibilities
52
52
  if (typeof get(request.input.body, attribute) === type) {
53
53
  return true;
54
54
  }
55
55
  break;
56
- case 'array':
56
+ case "array":
57
57
  if (Array.isArray(get(request.input.body, attribute))) {
58
58
  return true;
59
59
  }
60
60
  break;
61
- case 'object':
61
+ case "object":
62
62
  if (isPlainObject(get(request.input.body, attribute))) {
63
63
  return true;
64
64
  }
65
65
  break;
66
66
  default:
67
- throw assertionError.get('unexpected_type_assertion', type, attribute);
67
+ throw assertionError.get("unexpected_type_assertion", type, attribute);
68
68
  }
69
69
 
70
- throw assertionError.get('invalid_type', `body.${attribute}`, type);
70
+ throw assertionError.get("invalid_type", `body.${attribute}`, type);
71
71
  },
72
72
 
73
73
  /**
@@ -77,7 +77,7 @@ module.exports = {
77
77
  */
78
78
  assertBodyHasAttribute: (request, attribute) => {
79
79
  if (_.isNil(get(request.input.body, attribute))) {
80
- throw assertionError.get('missing_argument', `body.${attribute}`);
80
+ throw assertionError.get("missing_argument", `body.${attribute}`);
81
81
  }
82
82
  },
83
83
 
@@ -86,8 +86,8 @@ module.exports = {
86
86
  * @param {string} attribute
87
87
  */
88
88
  assertBodyHasNotAttribute: (request, attribute) => {
89
- if (! _.isNil(get(request.input.body, attribute))) {
90
- throw assertionError.get('forbidden_argument', `body.${attribute}`);
89
+ if (!_.isNil(get(request.input.body, attribute))) {
90
+ throw assertionError.get("forbidden_argument", `body.${attribute}`);
91
91
  }
92
92
  },
93
93
 
@@ -98,40 +98,40 @@ module.exports = {
98
98
  * @param {string} attribute
99
99
  * @param {string} type
100
100
  */
101
- assertHasBody: request => {
101
+ assertHasBody: (request) => {
102
102
  if (_.isNil(request.input.body)) {
103
- throw assertionError.get('body_required');
103
+ throw assertionError.get("body_required");
104
104
  }
105
105
  },
106
106
 
107
107
  /**
108
108
  * @param {Request} request
109
109
  */
110
- assertHasId: request => {
111
- if (! request.input.args._id) {
112
- throw assertionError.get('missing_argument', '_id');
110
+ assertHasId: (request) => {
111
+ if (!request.input.args._id) {
112
+ throw assertionError.get("missing_argument", "_id");
113
113
  }
114
114
  },
115
115
 
116
116
  /**
117
117
  * @param {Request} request
118
118
  */
119
- assertHasIndex: request => {
120
- if (! request.input.args.index) {
121
- throw assertionError.get('missing_argument', 'index');
119
+ assertHasIndex: (request) => {
120
+ if (!request.input.args.index) {
121
+ throw assertionError.get("missing_argument", "index");
122
122
  }
123
123
  },
124
124
 
125
125
  /**
126
126
  * @param {Request} request
127
127
  */
128
- assertHasIndexAndCollection: request => {
129
- if (! request.input.args.index) {
130
- throw assertionError.get('missing_argument', 'index');
128
+ assertHasIndexAndCollection: (request) => {
129
+ if (!request.input.args.index) {
130
+ throw assertionError.get("missing_argument", "index");
131
131
  }
132
132
 
133
- if (! request.input.args.collection) {
134
- throw assertionError.get('missing_argument', 'collection');
133
+ if (!request.input.args.collection) {
134
+ throw assertionError.get("missing_argument", "collection");
135
135
  }
136
136
  },
137
137
 
@@ -141,7 +141,7 @@ module.exports = {
141
141
  */
142
142
  assertIsAuthenticated: (anonymousId, request) => {
143
143
  if (request.context.user._id === anonymousId) {
144
- throw kerror.get('security', 'rights', 'unauthorized');
144
+ throw kerror.get("security", "rights", "unauthorized");
145
145
  }
146
146
  },
147
147
 
@@ -149,9 +149,9 @@ module.exports = {
149
149
  * @param {Kuzzle} kuzzle
150
150
  * @param {Request} request
151
151
  */
152
- assertIsObject: value => {
153
- if (! isPlainObject(value)) {
154
- throw assertionError.get('invalid_argument', value, 'object');
152
+ assertIsObject: (value) => {
153
+ if (!isPlainObject(value)) {
154
+ throw assertionError.get("invalid_argument", value, "object");
155
155
  }
156
- }
156
+ },
157
157
  };
@@ -19,15 +19,15 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
24
  // Simple utility functions for safe (and fast) object manipulations
25
25
 
26
- function has (o, prop) {
26
+ function has(o, prop) {
27
27
  return Object.prototype.hasOwnProperty.call(o, prop);
28
28
  }
29
29
 
30
- function get (o, prop) {
30
+ function get(o, prop) {
31
31
  if (has(o, prop)) {
32
32
  return o[prop];
33
33
  }
@@ -35,8 +35,8 @@ function get (o, prop) {
35
35
  return undefined;
36
36
  }
37
37
 
38
- function isPlainObject (o) {
39
- return Object.prototype.toString.call(o) === '[object Object]';
38
+ function isPlainObject(o) {
39
+ return Object.prototype.toString.call(o) === "[object Object]";
40
40
  }
41
41
 
42
42
  module.exports = { get, has, isPlainObject };
@@ -19,12 +19,12 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
- const util = require('util');
24
+ const util = require("util");
25
25
 
26
- const MARKER = '>';
27
- const PADDING = ' ';
26
+ const MARKER = ">";
27
+ const PADDING = " ";
28
28
 
29
29
  /**
30
30
  * Hilight user code
@@ -36,17 +36,18 @@ const PADDING = ' ';
36
36
  * >>>> at init (/home/aschen/projets/app/test.ts:8:3)
37
37
  * at Module._compile (internal/modules/cjs/loader.js:1133:30)
38
38
  */
39
- function hilightUserCode (line) {
39
+ function hilightUserCode(line) {
40
40
  // ignore first line (error message) or already enhanced
41
- if (! line.includes(' at ') || line.startsWith(MARKER)) {
41
+ if (!line.includes(" at ") || line.startsWith(MARKER)) {
42
42
  return line;
43
43
  }
44
44
 
45
- const isKuzzleCode = line.includes('kuzzle/lib/');
46
- const isNodeCode = ! line.includes('at /')
47
- && ! line.includes('at async /')
48
- && line.charAt(line.indexOf('(') + 1) !== '/';
49
- const isModuleCode = line.includes('node_modules');
45
+ const isKuzzleCode = line.includes("kuzzle/lib/");
46
+ const isNodeCode =
47
+ !line.includes("at /") &&
48
+ !line.includes("at async /") &&
49
+ line.charAt(line.indexOf("(") + 1) !== "/";
50
+ const isModuleCode = line.includes("node_modules");
50
51
  if (isKuzzleCode || isNodeCode || isModuleCode) {
51
52
  return PADDING + line;
52
53
  }
@@ -62,23 +63,20 @@ function hilightUserCode (line) {
62
63
  * request response
63
64
  * @returns {*} return the data minus the stack trace
64
65
  */
65
- function removeStacktrace (data) {
66
+ function removeStacktrace(data) {
66
67
  if (util.types.isNativeError(data)) {
67
- if (global.NODE_ENV !== 'development') {
68
+ if (global.NODE_ENV !== "development") {
68
69
  data.stack = undefined;
70
+ } else {
71
+ data.stack = data.stack.split("\n").map(hilightUserCode).join("\n");
69
72
  }
70
- else {
71
- data.stack = data.stack.split('\n').map(hilightUserCode).join('\n');
72
- }
73
- }
74
- else if (data && data.content && data.content.error) {
73
+ } else if (data && data.content && data.content.error) {
75
74
  // @todo v3: stack should be removed only for "production" env
76
- if (global.NODE_ENV !== 'development') {
75
+ if (global.NODE_ENV !== "development") {
77
76
  data.content.error.stack = undefined;
78
- }
79
- else {
77
+ } else {
80
78
  data.content.error.stack = data.content.error.stack
81
- ? data.content.error.stack.split('\n').map(hilightUserCode).join('\n')
79
+ ? data.content.error.stack.split("\n").map(hilightUserCode).join("\n")
82
80
  : undefined;
83
81
  }
84
82
  }
@@ -19,37 +19,37 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
- const _ = require('lodash');
24
+ const _ = require("lodash");
25
25
 
26
- function match (pattern, list) {
26
+ function match(pattern, list) {
27
27
  // Match everything
28
- if (pattern === '*') {
28
+ if (pattern === "*") {
29
29
  return list;
30
30
  }
31
31
  /**
32
32
  * Reduces repeating "*" to one ".*"
33
33
  * One of the fastest and most readable way to do this
34
34
  */
35
- const wildCardPattern = pattern.split('*')
36
- .filter((patternPart, index, array) =>
37
- patternPart !== ''
38
- || index === 0
39
- || index === array.length - 1
35
+ const wildCardPattern = pattern
36
+ .split("*")
37
+ .filter(
38
+ (patternPart, index, array) =>
39
+ patternPart !== "" || index === 0 || index === array.length - 1
40
40
  )
41
- .map(patternPart => _.escapeRegExp(patternPart)) // escape special regex characters
42
- .join('.*');
43
-
41
+ .map((patternPart) => _.escapeRegExp(patternPart)) // escape special regex characters
42
+ .join(".*");
43
+
44
44
  // Match everything
45
- if (wildCardPattern === '.*') {
45
+ if (wildCardPattern === ".*") {
46
46
  return list;
47
47
  }
48
-
48
+
49
49
  const regex = new RegExp(`^${wildCardPattern}$`);
50
50
 
51
51
  // Keep only matching elements
52
- return list.filter(item => ! regex.test(item));
52
+ return list.filter((item) => !regex.test(item));
53
53
  }
54
54
 
55
55
  module.exports = { match };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "kuzzle",
3
3
  "author": "The Kuzzle Team <support@kuzzle.io>",
4
- "version": "2.19.2",
4
+ "version": "2.19.3",
5
5
  "description": "Kuzzle is an open-source solution that handles all the data management through a secured API, with a large choice of protocols.",
6
6
  "bin": "bin/start-kuzzle-server",
7
7
  "scripts": {
@@ -29,8 +29,8 @@
29
29
  "test:lint": "npm run test:lint:js && npm run test:lint:ts",
30
30
  "test:lint:ts": "eslint --max-warnings=0 ./lib --ext .ts --config .eslintc-ts.json",
31
31
  "test:lint:ts:fix": "eslint --max-warnings=0 --fix ./lib --ext .ts --config .eslintc-ts.json",
32
- "test:lint:js": "eslint --max-warnings=0 ./lib ./test ./features-legacy ./bin ./features ./doc/build-error-codes.js ./plugins/available/functional-test-plugin",
33
- "test:lint:js:fix": "eslint --max-warnings=0 --fix ./lib ./test ./features-legacy ./bin ./features ./doc/build-error-codes.js",
32
+ "test:lint:js": "eslint --max-warnings=0 ./lib ./test ./bin ./features ./plugins/available/functional-test-plugin",
33
+ "test:lint:js:fix": "eslint --max-warnings=0 --fix ./lib ./test ./bin ./features",
34
34
  "doc-error-codes": "node -r ts-node/register doc/build-error-codes",
35
35
  "docker:install": "docker-compose run kuzzle_node_1 npm install",
36
36
  "docker:test:unit": "docker-compose run kuzzle_node_1 npm run test:unit",
@@ -71,12 +71,13 @@
71
71
  "ndjson": "^2.0.0",
72
72
  "node-segfault-handler": "^1.0.4",
73
73
  "passport": "^0.5.2",
74
+ "prettier": "^2.7.1",
74
75
  "protobufjs": "~6.11.2",
75
76
  "rc": "1.2.8",
76
77
  "semver": "^7.3.7",
77
78
  "sorted-array": "^2.0.4",
78
- "uuid": "^8.3.2",
79
79
  "uWebSockets.js": "https://github.com/uNetworking/uWebSockets.js/archive/refs/tags/v20.0.0.tar.gz",
80
+ "uuid": "^8.3.2",
80
81
  "validator": "^13.7.0",
81
82
  "winston": "^3.7.2",
82
83
  "winston-elasticsearch": "0.16.1",
@@ -99,7 +100,7 @@
99
100
  "cucumber": "^6.0.5",
100
101
  "ergol": "^1.0.2",
101
102
  "eslint": "^8.13.0",
102
- "eslint-plugin-no-only-tests": "^2.6.0",
103
+ "eslint-plugin-kuzzle": "0.0.1",
103
104
  "mocha": "^9.2.2",
104
105
  "mock-require": "^3.0.3",
105
106
  "mqtt": "^4.3.7",
@@ -126,7 +127,6 @@
126
127
  "lib/**/*.proto",
127
128
  "lib/**/*.yaml",
128
129
  "package.json",
129
- "package-lock.json",
130
130
  "index.js",
131
131
  "index.d.ts",
132
132
  "LICENSE.md",