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
@@ -19,19 +19,19 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
- const Numeric = require('./numeric');
24
+ const Numeric = require("./numeric");
25
25
 
26
26
  /**
27
27
  * @class IntegerType
28
28
  */
29
29
  class IntegerType extends Numeric {
30
- constructor () {
30
+ constructor() {
31
31
  super();
32
- this.typeName = 'integer';
32
+ this.typeName = "integer";
33
33
  this.allowChildren = false;
34
- this.allowedTypeOptions = ['range'];
34
+ this.allowedTypeOptions = ["range"];
35
35
  }
36
36
 
37
37
  /**
@@ -40,13 +40,13 @@ class IntegerType extends Numeric {
40
40
  * @param {string[]} errorMessages
41
41
  * @returns {boolean}
42
42
  */
43
- validate (typeOptions, fieldValue, errorMessages) {
44
- if (! super.validate(typeOptions, fieldValue, errorMessages)) {
43
+ validate(typeOptions, fieldValue, errorMessages) {
44
+ if (!super.validate(typeOptions, fieldValue, errorMessages)) {
45
45
  return false;
46
46
  }
47
47
 
48
- if (! Number.isInteger(fieldValue)) {
49
- errorMessages.push('The field must be an integer.');
48
+ if (!Number.isInteger(fieldValue)) {
49
+ errorMessages.push("The field must be an integer.");
50
50
  return false;
51
51
  }
52
52
 
@@ -19,22 +19,21 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
- const
25
- kerror = require('../../../kerror').wrap('validation', 'assert'),
26
- BaseType = require('../baseType'),
27
- validator = require('validator');
24
+ const kerror = require("../../../kerror").wrap("validation", "assert"),
25
+ BaseType = require("../baseType"),
26
+ validator = require("validator");
28
27
 
29
28
  /**
30
29
  * @class IpAddressType
31
30
  */
32
31
  class IpAddressType extends BaseType {
33
- constructor () {
32
+ constructor() {
34
33
  super();
35
- this.typeName = 'ip_address';
34
+ this.typeName = "ip_address";
36
35
  this.allowChildren = false;
37
- this.allowedTypeOptions = ['notEmpty'];
36
+ this.allowedTypeOptions = ["notEmpty"];
38
37
  }
39
38
 
40
39
  /**
@@ -43,22 +42,22 @@ class IpAddressType extends BaseType {
43
42
  * @param {string[]} errorMessages
44
43
  * @returns {boolean}
45
44
  */
46
- validate (typeOptions, fieldValue, errorMessages) {
47
- if (typeof fieldValue !== 'string') {
48
- errorMessages.push('The field must be a string.');
45
+ validate(typeOptions, fieldValue, errorMessages) {
46
+ if (typeof fieldValue !== "string") {
47
+ errorMessages.push("The field must be a string.");
49
48
  return false;
50
49
  }
51
50
 
52
51
  if (fieldValue.length === 0) {
53
52
  if (typeOptions.notEmpty) {
54
- errorMessages.push('The string must not be empty.');
53
+ errorMessages.push("The string must not be empty.");
55
54
  return false;
56
55
  }
57
56
  return true;
58
57
  }
59
58
 
60
- if (! validator.isIP(fieldValue)) {
61
- errorMessages.push('The string must be a valid IP address.');
59
+ if (!validator.isIP(fieldValue)) {
60
+ errorMessages.push("The string must be a valid IP address.");
62
61
  return false;
63
62
  }
64
63
 
@@ -70,12 +69,11 @@ class IpAddressType extends BaseType {
70
69
  * @returns {TypeOptions}
71
70
  * @throws {PreconditionError}
72
71
  */
73
- validateFieldSpecification (typeOptions) {
74
- if (! Object.prototype.hasOwnProperty.call(typeOptions, 'notEmpty')) {
72
+ validateFieldSpecification(typeOptions) {
73
+ if (!Object.prototype.hasOwnProperty.call(typeOptions, "notEmpty")) {
75
74
  typeOptions.notEmpty = false;
76
- }
77
- else if (typeof typeOptions.notEmpty !== 'boolean') {
78
- throw kerror.get('invalid_type', 'notEmpty', 'boolean');
75
+ } else if (typeof typeOptions.notEmpty !== "boolean") {
76
+ throw kerror.get("invalid_type", "notEmpty", "boolean");
79
77
  }
80
78
 
81
79
  return typeOptions;
@@ -19,21 +19,20 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
- const
25
- kerror = require('../../../kerror').wrap('validation', 'assert'),
26
- BaseType = require('../baseType');
24
+ const kerror = require("../../../kerror").wrap("validation", "assert"),
25
+ BaseType = require("../baseType");
27
26
 
28
27
  /**
29
28
  * @class NumericType
30
29
  */
31
30
  class NumericType extends BaseType {
32
- constructor () {
31
+ constructor() {
33
32
  super();
34
- this.typeName = 'numeric';
33
+ this.typeName = "numeric";
35
34
  this.allowChildren = false;
36
- this.allowedTypeOptions = ['range'];
35
+ this.allowedTypeOptions = ["range"];
37
36
  }
38
37
 
39
38
  /**
@@ -42,24 +41,30 @@ class NumericType extends BaseType {
42
41
  * @param {string[]} errorMessages
43
42
  * @returns {boolean}
44
43
  */
45
- validate (typeOptions, fieldValue, errorMessages) {
46
- if (typeof fieldValue !== 'number') {
47
- errorMessages.push('The field must be a number.');
44
+ validate(typeOptions, fieldValue, errorMessages) {
45
+ if (typeof fieldValue !== "number") {
46
+ errorMessages.push("The field must be a number.");
48
47
  return false;
49
48
  }
50
49
 
51
- if (Object.prototype.hasOwnProperty.call(typeOptions, 'range')) {
52
- if (Object.prototype.hasOwnProperty.call(typeOptions.range, 'min')
53
- && fieldValue < typeOptions.range.min
50
+ if (Object.prototype.hasOwnProperty.call(typeOptions, "range")) {
51
+ if (
52
+ Object.prototype.hasOwnProperty.call(typeOptions.range, "min") &&
53
+ fieldValue < typeOptions.range.min
54
54
  ) {
55
- errorMessages.push(`Value ${fieldValue} is lesser than the allowed minimum (${typeOptions.range.min})`);
55
+ errorMessages.push(
56
+ `Value ${fieldValue} is lesser than the allowed minimum (${typeOptions.range.min})`
57
+ );
56
58
  return false;
57
59
  }
58
60
 
59
- if (Object.prototype.hasOwnProperty.call(typeOptions.range, 'max')
60
- && fieldValue > typeOptions.range.max
61
+ if (
62
+ Object.prototype.hasOwnProperty.call(typeOptions.range, "max") &&
63
+ fieldValue > typeOptions.range.max
61
64
  ) {
62
- errorMessages.push(`Value ${fieldValue} is greater than the allowed maximum (${typeOptions.range.max})`);
65
+ errorMessages.push(
66
+ `Value ${fieldValue} is greater than the allowed maximum (${typeOptions.range.max})`
67
+ );
63
68
  return false;
64
69
  }
65
70
  }
@@ -72,25 +77,27 @@ class NumericType extends BaseType {
72
77
  * @returns {TypeOptions}
73
78
  * @throws {PreconditionError}
74
79
  */
75
- validateFieldSpecification (typeOptions) {
76
- if (Object.prototype.hasOwnProperty.call(typeOptions, 'range')) {
77
- if (! this.checkAllowedProperties(typeOptions.range, ['min', 'max'])) {
78
- throw kerror.get('unexpected_properties', 'range', 'min, max');
80
+ validateFieldSpecification(typeOptions) {
81
+ if (Object.prototype.hasOwnProperty.call(typeOptions, "range")) {
82
+ if (!this.checkAllowedProperties(typeOptions.range, ["min", "max"])) {
83
+ throw kerror.get("unexpected_properties", "range", "min, max");
79
84
  }
80
85
 
81
- for (const prop of ['min', 'max']) {
82
- if (Object.prototype.hasOwnProperty.call(typeOptions.range, prop)
83
- && typeof typeOptions.range[prop] !== 'number'
86
+ for (const prop of ["min", "max"]) {
87
+ if (
88
+ Object.prototype.hasOwnProperty.call(typeOptions.range, prop) &&
89
+ typeof typeOptions.range[prop] !== "number"
84
90
  ) {
85
- throw kerror.get('invalid_type', `range.${prop}`, 'number');
91
+ throw kerror.get("invalid_type", `range.${prop}`, "number");
86
92
  }
87
93
  }
88
94
 
89
- if ( Object.prototype.hasOwnProperty.call(typeOptions.range, 'min')
90
- && Object.prototype.hasOwnProperty.call(typeOptions.range, 'max')
91
- && typeOptions.range.max < typeOptions.range.min
95
+ if (
96
+ Object.prototype.hasOwnProperty.call(typeOptions.range, "min") &&
97
+ Object.prototype.hasOwnProperty.call(typeOptions.range, "max") &&
98
+ typeOptions.range.max < typeOptions.range.min
92
99
  ) {
93
- throw kerror.get('invalid_range', 'range', 'min', 'max');
100
+ throw kerror.get("invalid_range", "range", "min", "max");
94
101
  }
95
102
  }
96
103
 
@@ -19,21 +19,20 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
- const
25
- kerror = require('../../../kerror').wrap('validation', 'assert'),
26
- BaseType = require('../baseType');
24
+ const kerror = require("../../../kerror").wrap("validation", "assert"),
25
+ BaseType = require("../baseType");
27
26
 
28
27
  /**
29
28
  * @class ObjectType
30
29
  */
31
30
  class ObjectType extends BaseType {
32
- constructor () {
31
+ constructor() {
33
32
  super();
34
- this.typeName = 'object';
33
+ this.typeName = "object";
35
34
  this.allowChildren = true;
36
- this.allowedTypeOptions = ['strict'];
35
+ this.allowedTypeOptions = ["strict"];
37
36
  }
38
37
 
39
38
  /**
@@ -42,12 +41,13 @@ class ObjectType extends BaseType {
42
41
  * @param {string[]} errorMessages
43
42
  * @returns {boolean}
44
43
  */
45
- validate (typeOptions, fieldValue, errorMessages) {
46
- if (fieldValue === null
47
- || typeof fieldValue !== 'object'
48
- || Array.isArray(fieldValue)
44
+ validate(typeOptions, fieldValue, errorMessages) {
45
+ if (
46
+ fieldValue === null ||
47
+ typeof fieldValue !== "object" ||
48
+ Array.isArray(fieldValue)
49
49
  ) {
50
- errorMessages.push('The value must be an object.');
50
+ errorMessages.push("The value must be an object.");
51
51
  return false;
52
52
  }
53
53
 
@@ -59,11 +59,12 @@ class ObjectType extends BaseType {
59
59
  * @returns {TypeOptions}
60
60
  * @throws {PreconditionError}
61
61
  */
62
- validateFieldSpecification (typeOptions) {
63
- if (Object.prototype.hasOwnProperty.call(typeOptions, 'strict')
64
- && typeof typeOptions.strict !== 'boolean'
62
+ validateFieldSpecification(typeOptions) {
63
+ if (
64
+ Object.prototype.hasOwnProperty.call(typeOptions, "strict") &&
65
+ typeof typeOptions.strict !== "boolean"
65
66
  ) {
66
- throw kerror.get('invalid_type', 'strict', 'boolean');
67
+ throw kerror.get("invalid_type", "strict", "boolean");
67
68
  }
68
69
 
69
70
  return typeOptions;
@@ -75,8 +76,8 @@ class ObjectType extends BaseType {
75
76
  * @returns {boolean|TypeOptions}
76
77
  * @throws KuzzleInternalError
77
78
  */
78
- getStrictness (typeOptions, parentStrictness) {
79
- if (! Object.prototype.hasOwnProperty.call(typeOptions, 'strict')) {
79
+ getStrictness(typeOptions, parentStrictness) {
80
+ if (!Object.prototype.hasOwnProperty.call(typeOptions, "strict")) {
80
81
  return parentStrictness;
81
82
  }
82
83
 
@@ -85,4 +86,3 @@ class ObjectType extends BaseType {
85
86
  }
86
87
 
87
88
  module.exports = ObjectType;
88
-
@@ -19,21 +19,20 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
- const
25
- kerror = require('../../../kerror').wrap('validation', 'assert'),
26
- BaseType = require('../baseType');
24
+ const kerror = require("../../../kerror").wrap("validation", "assert"),
25
+ BaseType = require("../baseType");
27
26
 
28
27
  /**
29
28
  * @class StringType
30
29
  */
31
30
  class StringType extends BaseType {
32
- constructor () {
31
+ constructor() {
33
32
  super();
34
- this.typeName = 'string';
33
+ this.typeName = "string";
35
34
  this.allowChildren = false;
36
- this.allowedTypeOptions = ['length'];
35
+ this.allowedTypeOptions = ["length"];
37
36
  }
38
37
 
39
38
  /**
@@ -42,27 +41,33 @@ class StringType extends BaseType {
42
41
  * @param {string[]} errorMessages
43
42
  * @returns {boolean}
44
43
  */
45
- validate (typeOptions, fieldValue, errorMessages) {
46
- if (typeof fieldValue !== 'string') {
47
- errorMessages.push('The field must be a string.');
44
+ validate(typeOptions, fieldValue, errorMessages) {
45
+ if (typeof fieldValue !== "string") {
46
+ errorMessages.push("The field must be a string.");
48
47
  return false;
49
48
  }
50
49
 
51
- if (! typeOptions.length) {
50
+ if (!typeOptions.length) {
52
51
  return true;
53
52
  }
54
53
 
55
- if (Object.prototype.hasOwnProperty.call(typeOptions.length, 'min')
56
- && fieldValue.length < typeOptions.length.min
54
+ if (
55
+ Object.prototype.hasOwnProperty.call(typeOptions.length, "min") &&
56
+ fieldValue.length < typeOptions.length.min
57
57
  ) {
58
- errorMessages.push(`Invalid string length. Expected min: ${typeOptions.length.min}. Received: ${fieldValue.length} ("${fieldValue}")`);
58
+ errorMessages.push(
59
+ `Invalid string length. Expected min: ${typeOptions.length.min}. Received: ${fieldValue.length} ("${fieldValue}")`
60
+ );
59
61
  return false;
60
62
  }
61
63
 
62
- if (Object.prototype.hasOwnProperty.call(typeOptions.length, 'max')
63
- && fieldValue.length > typeOptions.length.max
64
+ if (
65
+ Object.prototype.hasOwnProperty.call(typeOptions.length, "max") &&
66
+ fieldValue.length > typeOptions.length.max
64
67
  ) {
65
- errorMessages.push(`Invalid string length. Expected max: ${typeOptions.length.max}. Received: ${fieldValue.length} ("${fieldValue}")`);
68
+ errorMessages.push(
69
+ `Invalid string length. Expected max: ${typeOptions.length.max}. Received: ${fieldValue.length} ("${fieldValue}")`
70
+ );
66
71
  return false;
67
72
  }
68
73
 
@@ -74,25 +79,27 @@ class StringType extends BaseType {
74
79
  * @returns {TypeOptions}
75
80
  * @throws {PreconditionError}
76
81
  */
77
- validateFieldSpecification (typeOptions) {
78
- if (Object.prototype.hasOwnProperty.call(typeOptions, 'length')) {
79
- if (! this.checkAllowedProperties(typeOptions.length, ['min', 'max'])) {
80
- throw kerror.get('unexpected_properties', 'length', 'min, max');
82
+ validateFieldSpecification(typeOptions) {
83
+ if (Object.prototype.hasOwnProperty.call(typeOptions, "length")) {
84
+ if (!this.checkAllowedProperties(typeOptions.length, ["min", "max"])) {
85
+ throw kerror.get("unexpected_properties", "length", "min, max");
81
86
  }
82
87
 
83
- for (const prop of ['min', 'max']) {
84
- if (Object.prototype.hasOwnProperty.call(typeOptions.length, prop)
85
- && typeof typeOptions.length[prop] !== 'number'
88
+ for (const prop of ["min", "max"]) {
89
+ if (
90
+ Object.prototype.hasOwnProperty.call(typeOptions.length, prop) &&
91
+ typeof typeOptions.length[prop] !== "number"
86
92
  ) {
87
- throw kerror.get('invalid_type', `length.${prop}`, 'number');
93
+ throw kerror.get("invalid_type", `length.${prop}`, "number");
88
94
  }
89
95
  }
90
96
 
91
- if ( Object.prototype.hasOwnProperty.call(typeOptions.length, 'min')
92
- && Object.prototype.hasOwnProperty.call(typeOptions.length, 'max')
93
- && typeOptions.length.min > typeOptions.length.max
97
+ if (
98
+ Object.prototype.hasOwnProperty.call(typeOptions.length, "min") &&
99
+ Object.prototype.hasOwnProperty.call(typeOptions.length, "max") &&
100
+ typeOptions.length.min > typeOptions.length.max
94
101
  ) {
95
- throw kerror.get('invalid_range', 'length', 'min', 'max');
102
+ throw kerror.get("invalid_range", "length", "min", "max");
96
103
  }
97
104
  }
98
105
 
@@ -19,22 +19,21 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
- const
25
- kerror = require('../../../kerror').wrap('validation', 'assert'),
26
- BaseType = require('../baseType'),
27
- validator = require('validator');
24
+ const kerror = require("../../../kerror").wrap("validation", "assert"),
25
+ BaseType = require("../baseType"),
26
+ validator = require("validator");
28
27
 
29
28
  /**
30
29
  * @class UrlType
31
30
  */
32
31
  class UrlType extends BaseType {
33
- constructor () {
32
+ constructor() {
34
33
  super();
35
- this.typeName = 'url';
34
+ this.typeName = "url";
36
35
  this.allowChildren = false;
37
- this.allowedTypeOptions = ['notEmpty'];
36
+ this.allowedTypeOptions = ["notEmpty"];
38
37
  }
39
38
 
40
39
  /**
@@ -43,22 +42,22 @@ class UrlType extends BaseType {
43
42
  * @param {string[]} errorMessages
44
43
  * @returns {boolean}
45
44
  */
46
- validate (typeOptions, fieldValue, errorMessages) {
47
- if (typeof fieldValue !== 'string') {
48
- errorMessages.push('The field must be a string.');
45
+ validate(typeOptions, fieldValue, errorMessages) {
46
+ if (typeof fieldValue !== "string") {
47
+ errorMessages.push("The field must be a string.");
49
48
  return false;
50
49
  }
51
50
 
52
51
  if (fieldValue.length === 0) {
53
52
  if (typeOptions.notEmpty) {
54
- errorMessages.push('The string must not be empty.');
53
+ errorMessages.push("The string must not be empty.");
55
54
  return false;
56
55
  }
57
56
  return true;
58
57
  }
59
58
 
60
- if (! validator.isURL(fieldValue)) {
61
- errorMessages.push('The string must be a valid URL.');
59
+ if (!validator.isURL(fieldValue)) {
60
+ errorMessages.push("The string must be a valid URL.");
62
61
  return false;
63
62
  }
64
63
 
@@ -70,12 +69,11 @@ class UrlType extends BaseType {
70
69
  * @returns {TypeOptions}
71
70
  * @throws PreconditionError
72
71
  */
73
- validateFieldSpecification (typeOptions) {
74
- if (! Object.prototype.hasOwnProperty.call(typeOptions, 'notEmpty')) {
72
+ validateFieldSpecification(typeOptions) {
73
+ if (!Object.prototype.hasOwnProperty.call(typeOptions, "notEmpty")) {
75
74
  typeOptions.notEmpty = false;
76
- }
77
- else if (typeof typeOptions.notEmpty !== 'boolean') {
78
- throw kerror.get('invalid_type', 'notEmpty', 'boolean');
75
+ } else if (typeof typeOptions.notEmpty !== "boolean") {
76
+ throw kerror.get("invalid_type", "notEmpty", "boolean");
79
77
  }
80
78
 
81
79
  return typeOptions;