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
@@ -1,13 +1,13 @@
1
- import { ClientOptions } from '@elastic/elasticsearch';
1
+ import { ClientOptions } from "@elastic/elasticsearch";
2
2
  export declare type StorageEngineElasticsearch = {
3
3
  /**
4
4
  * @default ['storageEngine']
5
- */
5
+ */
6
6
  aliases: string[];
7
7
  /**
8
8
  * @default "elasticsearch"
9
- */
10
- backend: 'elasticsearch';
9
+ */
10
+ backend: "elasticsearch";
11
11
  /**
12
12
  * Elasticsearch constructor options. Use this field to specify your
13
13
  * Elasticsearch config options, this object is passed through to the
@@ -21,7 +21,7 @@ export declare type StorageEngineElasticsearch = {
21
21
  * node: 'http://localhost:9200'
22
22
  * }
23
23
  *
24
- */
24
+ */
25
25
  client: ClientOptions;
26
26
  /**
27
27
  * Default policy against new fields that are not referenced in the
@@ -38,8 +38,8 @@ export declare type StorageEngineElasticsearch = {
38
38
  commonMapping: {
39
39
  /**
40
40
  * @default "false"
41
- */
42
- dynamic: 'true' | 'false' | 'strict';
41
+ */
42
+ dynamic: "true" | "false" | "strict";
43
43
  properties: {
44
44
  _kuzzle_info: {
45
45
  properties: {
@@ -68,26 +68,26 @@ export declare type StorageEngineElasticsearch = {
68
68
  type: string;
69
69
  };
70
70
  /**
71
- * @default
72
- *
73
- * [
74
- * {
75
- * type: 'keyword',
76
- * }
77
- * ]
78
- */
71
+ * @default
72
+ *
73
+ * [
74
+ * {
75
+ * type: 'keyword',
76
+ * }
77
+ * ]
78
+ */
79
79
  updater: {
80
80
  type: string;
81
81
  };
82
82
  /**
83
- * @default
84
- *
85
- * [
86
- * {
87
- * type: 'date',
88
- * }
89
- * ]
90
- */
83
+ * @default
84
+ *
85
+ * [
86
+ * {
87
+ * type: 'date',
88
+ * }
89
+ * ]
90
+ */
91
91
  updatedAt: {
92
92
  type: string;
93
93
  };
@@ -97,49 +97,73 @@ export declare type StorageEngineElasticsearch = {
97
97
  };
98
98
  internalIndex: {
99
99
  /**
100
- * @default "kuzzle"
101
- */
100
+ * @default "kuzzle"
101
+ */
102
102
  name: string;
103
103
  collections: {
104
104
  users: {
105
- /**
106
- * @default 'false'
107
- */
108
- dynamic: 'true' | 'false' | 'strict';
109
- properties: {
105
+ settings: {
110
106
  /**
111
- * @default
112
- *
113
- * [
114
- * {
115
- * type: 'keyword',
116
- * }
117
- * ]
118
- */
119
- profileIds: {
120
- type: string;
107
+ * @default 1
108
+ */
109
+ number_of_shards: number;
110
+ /**
111
+ * @default 1
112
+ */
113
+ number_of_replicas: number;
114
+ };
115
+ mappings: {
116
+ /**
117
+ * @default 'false'
118
+ */
119
+ dynamic: "true" | "false" | "strict";
120
+ properties: {
121
+ /**
122
+ * @default
123
+ *
124
+ * [
125
+ * {
126
+ * type: 'keyword',
127
+ * }
128
+ * ]
129
+ */
130
+ profileIds: {
131
+ type: string;
132
+ };
121
133
  };
122
134
  };
123
135
  };
124
136
  profiles: {
125
- dynamic: 'false';
126
- properties: {
127
- tags: {
128
- type: 'keyword';
129
- };
130
- policies: {
131
- properties: {
132
- roleId: {
133
- type: 'keyword';
134
- };
135
- restrictedTo: {
136
- type: 'nested';
137
- properties: {
138
- index: {
139
- type: 'keyword';
140
- };
141
- collections: {
142
- type: 'keyword';
137
+ settings: {
138
+ /**
139
+ * @default 1
140
+ */
141
+ number_of_shards: number;
142
+ /**
143
+ * @default 1
144
+ */
145
+ number_of_replicas: number;
146
+ };
147
+ mappings: {
148
+ dynamic: "false";
149
+ properties: {
150
+ tags: {
151
+ type: "keyword";
152
+ };
153
+ policies: {
154
+ properties: {
155
+ roleId: {
156
+ type: "keyword";
157
+ };
158
+ restrictedTo: {
159
+ type: "nested";
160
+ properties: {
161
+ index: {
162
+ type: "keyword";
163
+ };
164
+ collections: {
165
+ type: "keyword";
166
+ };
143
167
  };
144
168
  };
145
169
  };
@@ -148,77 +172,137 @@ export declare type StorageEngineElasticsearch = {
148
172
  };
149
173
  };
150
174
  roles: {
151
- dynamic: 'false';
152
- properties: {
153
- tags: {
154
- type: 'keyword';
155
- };
156
- controllers: {
157
- dynamic: 'false';
158
- properties: Record<string, unknown>;
175
+ settings: {
176
+ /**
177
+ * @default 1
178
+ */
179
+ number_of_shards: number;
180
+ /**
181
+ * @default 1
182
+ */
183
+ number_of_replicas: number;
184
+ };
185
+ mappings: {
186
+ dynamic: "false";
187
+ properties: {
188
+ tags: {
189
+ type: "keyword";
190
+ };
191
+ controllers: {
192
+ dynamic: "false";
193
+ properties: Record<string, unknown>;
194
+ };
159
195
  };
160
196
  };
161
197
  };
162
198
  validations: {
163
- properties: {
164
- index: {
165
- type: 'keyword';
166
- };
167
- collection: {
168
- type: 'keyword';
169
- };
170
- validations: {
171
- dynamic: 'false';
172
- properties: Record<string, unknown>;
199
+ settings: {
200
+ /**
201
+ * @default 1
202
+ */
203
+ number_of_shards: number;
204
+ /**
205
+ * @default 1
206
+ */
207
+ number_of_replicas: number;
208
+ };
209
+ mappings: {
210
+ properties: {
211
+ index: {
212
+ type: "keyword";
213
+ };
214
+ collection: {
215
+ type: "keyword";
216
+ };
217
+ validations: {
218
+ dynamic: "false";
219
+ properties: Record<string, unknown>;
220
+ };
173
221
  };
174
222
  };
175
223
  };
176
224
  config: {
177
- dynamic: 'false';
178
- properties: Record<string, unknown>;
225
+ settings: {
226
+ /**
227
+ * @default 1
228
+ */
229
+ number_of_shards: number;
230
+ /**
231
+ * @default 1
232
+ */
233
+ number_of_replicas: number;
234
+ };
235
+ mappings: {
236
+ dynamic: "false";
237
+ properties: Record<string, unknown>;
238
+ };
179
239
  };
180
- 'api-keys': {
181
- dynamic: 'false';
182
- properties: {
183
- userId: {
184
- type: 'keyword';
185
- };
186
- hash: {
187
- type: 'keyword';
188
- };
189
- description: {
190
- type: 'text';
191
- };
192
- expiresAt: {
193
- type: 'long';
194
- };
195
- ttl: {
196
- type: 'keyword';
197
- };
198
- token: {
199
- type: 'keyword';
240
+ "api-keys": {
241
+ settings: {
242
+ /**
243
+ * @default 1
244
+ */
245
+ number_of_shards: number;
246
+ /**
247
+ * @default 1
248
+ */
249
+ number_of_replicas: number;
250
+ };
251
+ mappings: {
252
+ dynamic: "false";
253
+ properties: {
254
+ userId: {
255
+ type: "keyword";
256
+ };
257
+ hash: {
258
+ type: "keyword";
259
+ };
260
+ description: {
261
+ type: "text";
262
+ };
263
+ expiresAt: {
264
+ type: "long";
265
+ };
266
+ ttl: {
267
+ type: "keyword";
268
+ };
269
+ token: {
270
+ type: "keyword";
271
+ };
200
272
  };
201
273
  };
202
274
  };
203
275
  installations: {
204
- dynamic: 'strict';
205
- properties: {
206
- description: {
207
- type: 'text';
208
- };
209
- handler: {
210
- type: 'text';
211
- };
212
- installedAt: {
213
- type: 'date';
276
+ settings: {
277
+ /**
278
+ * @default 1
279
+ */
280
+ number_of_shards: number;
281
+ /**
282
+ * @default 1
283
+ */
284
+ number_of_replicas: number;
285
+ };
286
+ mappings: {
287
+ dynamic: "strict";
288
+ properties: {
289
+ description: {
290
+ type: "text";
291
+ };
292
+ handler: {
293
+ type: "text";
294
+ };
295
+ installedAt: {
296
+ type: "date";
297
+ };
214
298
  };
215
299
  };
216
300
  };
217
301
  };
218
302
  };
219
- maxScrollDuration: '1m';
303
+ maxScrollDuration: "1m";
220
304
  defaults: {
221
305
  onUpdateConflictRetries: 0;
222
- scrollTTL: '15s';
306
+ scrollTTL: "15s";
223
307
  };
224
308
  };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Available error class
3
3
  */
4
- export declare type ErrorClassNames = 'BadRequestError' | 'ExternalServiceError' | 'ForbiddenError' | 'GatewayTimeoutError' | 'InternalError' | 'KuzzleError' | 'MultipleErrorsError' | 'NotFoundError' | 'PartialError' | 'PluginImplementationError' | 'ServiceUnavailableError' | 'SizeLimitError' | 'UnauthorizedError' | 'PreconditionError' | 'TooManyRequestsError';
4
+ export declare type ErrorClassNames = "BadRequestError" | "ExternalServiceError" | "ForbiddenError" | "GatewayTimeoutError" | "InternalError" | "KuzzleError" | "MultipleErrorsError" | "NotFoundError" | "PartialError" | "PluginImplementationError" | "ServiceUnavailableError" | "SizeLimitError" | "UnauthorizedError" | "PreconditionError" | "TooManyRequestsError";
5
5
  /**
6
6
  * Represents a standardized error definition
7
7
  */
@@ -1,4 +1,4 @@
1
- import { ErrorDefinition } from './ErrorDefinition';
1
+ import { ErrorDefinition } from "./ErrorDefinition";
2
2
  /**
3
3
  * Represents the domains, subDomains and error names with associated definitions
4
4
  */
@@ -1,38 +1,38 @@
1
- export * from './Plugin';
2
- export * from './Controller';
3
- export * from './ControllerDefinition';
4
- export * from './ControllerRights';
5
- export * from './ResponsePayload';
6
- export * from './Deprecation';
7
- export * from './EventHandler';
8
- export * from './Policy';
9
- export * from './PolicyRestrictions';
10
- export * from './User';
11
- export * from './Token';
12
- export * from './Target';
13
- export * from './Global';
14
- export * from './HttpStream';
15
- export * from './PasswordPolicy';
16
- export * from './config/KuzzleConfiguration';
17
- export * from './config/ServerConfiguration';
18
- export * from './config/ServicesConfiguration';
19
- export * from './config/SecurityConfiguration';
20
- export * from './config/HttpConfiguration';
21
- export * from './config/PluginsConfiguration';
22
- export * from './RoleDefinition';
23
- export * from './ProfileDefinition';
24
- export * from './Plugin';
25
- export * from './config/LimitsConfiguration';
26
- export * from './RoleDefinition';
27
- export * from './ProfileDefinition';
28
- export * from './realtime/RealtimeScope';
29
- export * from './realtime/RealtimeUsers';
30
- export * from './realtime/RoomList';
31
- export * from './KuzzleDocument';
32
- export * from './config/publicCache/PublicCacheRedisConfiguration';
33
- export * from './config/internalCache/InternalCacheRedisConfiguration';
34
- export * from './config/storageEngine/StorageEngineElasticsearchConfiguration';
35
- export * from './config/DumpConfiguration';
36
- export * from './OpenApiDefinition';
37
- export * from './errors/ErrorDefinition';
38
- export * from './errors/ErrorDomains';
1
+ export * from "./Plugin";
2
+ export * from "./Controller";
3
+ export * from "./ControllerDefinition";
4
+ export * from "./ControllerRights";
5
+ export * from "./ResponsePayload";
6
+ export * from "./Deprecation";
7
+ export * from "./EventHandler";
8
+ export * from "./Policy";
9
+ export * from "./PolicyRestrictions";
10
+ export * from "./User";
11
+ export * from "./Token";
12
+ export * from "./Target";
13
+ export * from "./Global";
14
+ export * from "./HttpStream";
15
+ export * from "./PasswordPolicy";
16
+ export * from "./config/KuzzleConfiguration";
17
+ export * from "./config/ServerConfiguration";
18
+ export * from "./config/ServicesConfiguration";
19
+ export * from "./config/SecurityConfiguration";
20
+ export * from "./config/HttpConfiguration";
21
+ export * from "./config/PluginsConfiguration";
22
+ export * from "./RoleDefinition";
23
+ export * from "./ProfileDefinition";
24
+ export * from "./Plugin";
25
+ export * from "./config/LimitsConfiguration";
26
+ export * from "./RoleDefinition";
27
+ export * from "./ProfileDefinition";
28
+ export * from "./realtime/RealtimeScope";
29
+ export * from "./realtime/RealtimeUsers";
30
+ export * from "./realtime/RoomList";
31
+ export * from "./KuzzleDocument";
32
+ export * from "./config/publicCache/PublicCacheRedisConfiguration";
33
+ export * from "./config/internalCache/InternalCacheRedisConfiguration";
34
+ export * from "./config/storageEngine/StorageEngineElasticsearchConfiguration";
35
+ export * from "./config/DumpConfiguration";
36
+ export * from "./OpenApiDefinition";
37
+ export * from "./errors/ErrorDefinition";
38
+ export * from "./errors/ErrorDomains";
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Subscribe to notification of document entering, leaving the scope or both.
3
3
  */
4
- export declare type RealtimeScope = 'in' | 'out' | 'all';
4
+ export declare type RealtimeScope = "in" | "out" | "all";
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Subscribe to users entering or leaving the room
3
3
  */
4
- export declare type RealtimeUsers = 'in' | 'out' | 'all' | 'none';
4
+ export declare type RealtimeUsers = "in" | "out" | "all" | "none";
@@ -19,9 +19,9 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
- const { BadRequestError } = require('../kerror/errors');
24
+ const { BadRequestError } = require("../kerror/errors");
25
25
 
26
26
  /**
27
27
  * Throws if the provided data is not an object.
@@ -32,12 +32,12 @@ const { BadRequestError } = require('../kerror/errors');
32
32
  * @param {*} data
33
33
  * @return {object}
34
34
  */
35
- function assertObject (attr, data) {
35
+ function assertObject(attr, data) {
36
36
  if (data === null || data === undefined) {
37
37
  return null;
38
38
  }
39
39
 
40
- if (typeof data !== 'object' || Array.isArray(data)) {
40
+ if (typeof data !== "object" || Array.isArray(data)) {
41
41
  throw new BadRequestError(`Attribute ${attr} must be of type "object"`);
42
42
  }
43
43
 
@@ -54,12 +54,12 @@ function assertObject (attr, data) {
54
54
  * @param {*} data
55
55
  * @return {array}
56
56
  */
57
- function assertArray (attr, data, type) {
57
+ function assertArray(attr, data, type) {
58
58
  if (data === null || data === undefined) {
59
59
  return [];
60
60
  }
61
61
 
62
- if (! Array.isArray(data)) {
62
+ if (!Array.isArray(data)) {
63
63
  throw new BadRequestError(`Attribute ${attr} must be of type "array"`);
64
64
  }
65
65
 
@@ -68,7 +68,9 @@ function assertArray (attr, data, type) {
68
68
  for (const d of data) {
69
69
  if (d !== undefined && d !== null) {
70
70
  if (typeof d !== type) {
71
- throw new BadRequestError(`Attribute ${attr} must contain only values of type "${type}"`);
71
+ throw new BadRequestError(
72
+ `Attribute ${attr} must contain only values of type "${type}"`
73
+ );
72
74
  }
73
75
 
74
76
  clone.push(d);
@@ -87,12 +89,12 @@ function assertArray (attr, data, type) {
87
89
  * @param {*} data
88
90
  * @return {null|string}
89
91
  */
90
- function assertString (attr, data) {
92
+ function assertString(attr, data) {
91
93
  if (data === null || data === undefined) {
92
94
  return null;
93
95
  }
94
96
 
95
- if (typeof data !== 'string') {
97
+ if (typeof data !== "string") {
96
98
  throw new BadRequestError(`Attribute ${attr} must be of type "string"`);
97
99
  }
98
100
 
@@ -108,8 +110,8 @@ function assertString (attr, data) {
108
110
  * @param {*} data
109
111
  * @return {number}
110
112
  */
111
- function assertInteger (attr, data) {
112
- if (! Number.isInteger(data)) {
113
+ function assertInteger(attr, data) {
114
+ if (!Number.isInteger(data)) {
113
115
  throw new BadRequestError(`Attribute ${attr} must be an integer`);
114
116
  }
115
117
 
@@ -0,0 +1 @@
1
+ export declare function promiseAllN<T>(collection: Array<() => Promise<T>>, n?: number): Promise<T[]>;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.promiseAllN = void 0;
4
+ /*
5
+ * Resolve promises with a limited concurrency number
6
+ *
7
+ * Replacement of Bluebird.map taken from :
8
+ * https://gist.github.com/jcouyang/632709f30e12a7879a73e9e132c0d56b
9
+ */
10
+ function promiseAllN(collection, n = 100) {
11
+ let i = 0;
12
+ let jobsLeft = collection.length;
13
+ const outcome = [];
14
+ let rejected = false;
15
+ // create a new promise and capture reference to resolve and reject to avoid nesting of code
16
+ let resolve, reject;
17
+ const pendingPromise = new Promise((res, rej) => {
18
+ resolve = res;
19
+ reject = rej;
20
+ });
21
+ // Guard clause
22
+ if (collection.length === 0) {
23
+ return resolve([]);
24
+ }
25
+ // execute the j'th thunk
26
+ function runJob(j) {
27
+ collection[j]()
28
+ .then((result) => {
29
+ if (rejected) {
30
+ return; // no op!
31
+ }
32
+ jobsLeft--;
33
+ outcome[j] = result;
34
+ if (jobsLeft <= 0) {
35
+ resolve(outcome);
36
+ }
37
+ else if (i < collection.length) {
38
+ runJob(i);
39
+ i++;
40
+ }
41
+ else {
42
+ return; // nothing to do here.
43
+ }
44
+ })
45
+ .catch((e) => {
46
+ if (rejected) {
47
+ return; // no op!
48
+ }
49
+ rejected = true;
50
+ reject(e);
51
+ });
52
+ }
53
+ // bootstrap, while handling cases where the length of the given array is smaller than maxConcurrent jobs
54
+ while (i < Math.min(collection.length, n)) {
55
+ runJob(i);
56
+ i++;
57
+ }
58
+ return pendingPromise;
59
+ }
60
+ exports.promiseAllN = promiseAllN;
61
+ //# sourceMappingURL=async.js.map