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,12 +19,12 @@
19
19
  * limitations under the License.
20
20
  */
21
21
 
22
- 'use strict';
22
+ "use strict";
23
23
 
24
- const { Publisher } = require('zeromq');
25
- const protobuf = require('protobufjs');
26
- const Long = require('long');
27
- const Bluebird = require('bluebird');
24
+ const { Publisher } = require("zeromq");
25
+ const protobuf = require("protobufjs");
26
+ const Long = require("long");
27
+ const Bluebird = require("bluebird");
28
28
 
29
29
  const STATE = Object.freeze({
30
30
  READY: 1,
@@ -37,7 +37,7 @@ class ClusterPublisher {
37
37
  * @constructor
38
38
  * @param {ClusterNode} node
39
39
  */
40
- constructor (node) {
40
+ constructor(node) {
41
41
  this.node = node;
42
42
  this.lastMessageId = new Long(0, 0, true);
43
43
  this.socket = null;
@@ -53,7 +53,7 @@ class ClusterPublisher {
53
53
  this.buffer = [];
54
54
  }
55
55
 
56
- async init () {
56
+ async init() {
57
57
  this.socket = new Publisher();
58
58
  await this.socket.bind(`tcp://*:${this.node.config.ports.sync}`);
59
59
 
@@ -66,14 +66,14 @@ class ClusterPublisher {
66
66
  * @param {NormalizedFilter} normalized - Obtained with Koncorde.normalize()
67
67
  * @return {Long} ID of the message sent to other nodes
68
68
  */
69
- sendNewRealtimeRoom (normalized) {
69
+ sendNewRealtimeRoom(normalized) {
70
70
  const payload = {
71
71
  filter: JSON.stringify(normalized.filter),
72
72
  id: normalized.id,
73
73
  index: normalized.index,
74
74
  };
75
75
 
76
- return this.send('NewRealtimeRoom', payload);
76
+ return this.send("NewRealtimeRoom", payload);
77
77
  }
78
78
 
79
79
  /**
@@ -83,8 +83,8 @@ class ClusterPublisher {
83
83
  * @param {string} roomId
84
84
  * @return {Long} ID of the message sent to other nodes
85
85
  */
86
- sendRemoveRealtimeRoom (roomId) {
87
- return this.send('RemoveRealtimeRoom', { roomId });
86
+ sendRemoveRealtimeRoom(roomId) {
87
+ return this.send("RemoveRealtimeRoom", { roomId });
88
88
  }
89
89
 
90
90
  /**
@@ -92,8 +92,8 @@ class ClusterPublisher {
92
92
  * @param {string} roomId
93
93
  * @return {Long} ID of the message sent to other nodes
94
94
  */
95
- sendUnsubscription (roomId) {
96
- return this.send('Unsubscription', { roomId });
95
+ sendUnsubscription(roomId) {
96
+ return this.send("Unsubscription", { roomId });
97
97
  }
98
98
 
99
99
  /**
@@ -103,8 +103,8 @@ class ClusterPublisher {
103
103
  * @param {string} roomId
104
104
  * @return {Long} Id of the message sent to other nodes
105
105
  */
106
- sendSubscription (roomId) {
107
- return this.send('Subscription', { roomId });
106
+ sendSubscription(roomId) {
107
+ return this.send("Subscription", { roomId });
108
108
  }
109
109
 
110
110
  /**
@@ -115,8 +115,8 @@ class ClusterPublisher {
115
115
  * @param {DocumentNotification} notification
116
116
  * @return {Long} Id of the message sent to other nodes
117
117
  */
118
- sendDocumentNotification (rooms, notification) {
119
- return this.send('DocumentNotification', {
118
+ sendDocumentNotification(rooms, notification) {
119
+ return this.send("DocumentNotification", {
120
120
  action: notification.action,
121
121
  collection: notification.collection,
122
122
  controller: notification.controller,
@@ -140,8 +140,8 @@ class ClusterPublisher {
140
140
  * @param {UserNotification} notification
141
141
  * @return {Long} Id of the message sent to other nodes
142
142
  */
143
- sendUserNotification (room, notification) {
144
- return this.send('UserNotification', {
143
+ sendUserNotification(room, notification) {
144
+ return this.send("UserNotification", {
145
145
  action: notification.action,
146
146
  collection: notification.collection,
147
147
  controller: notification.controller,
@@ -165,8 +165,8 @@ class ClusterPublisher {
165
165
  * @param {Object} strategy
166
166
  * @return {Long} Id of the message sent to other nodes
167
167
  */
168
- sendNewAuthStrategy (strategyName, pluginName, strategy) {
169
- return this.send('NewAuthStrategy', {
168
+ sendNewAuthStrategy(strategyName, pluginName, strategy) {
169
+ return this.send("NewAuthStrategy", {
170
170
  pluginName,
171
171
  strategy,
172
172
  strategyName,
@@ -182,8 +182,8 @@ class ClusterPublisher {
182
182
  * @param {Object} strategyObject
183
183
  * @return {Long} Id of the message sent to other nodes
184
184
  */
185
- sendRemoveAuthStrategy (strategyName, pluginName) {
186
- return this.send('RemoveAuthStrategy', {
185
+ sendRemoveAuthStrategy(strategyName, pluginName) {
186
+ return this.send("RemoveAuthStrategy", {
187
187
  pluginName,
188
188
  strategyName,
189
189
  });
@@ -195,8 +195,8 @@ class ClusterPublisher {
195
195
  * @param {string} suffix - dump directory suffix name
196
196
  * @returns {Long} ID of the message sent
197
197
  */
198
- sendDumpRequest (suffix) {
199
- return this.send('DumpRequest', { suffix });
198
+ sendDumpRequest(suffix) {
199
+ return this.send("DumpRequest", { suffix });
200
200
  }
201
201
 
202
202
  /**
@@ -206,8 +206,8 @@ class ClusterPublisher {
206
206
  * @param {string} index
207
207
  * @returns {Long} ID of the message sent
208
208
  */
209
- sendAddIndex (scope, index) {
210
- return this.send('AddIndex', { index, scope });
209
+ sendAddIndex(scope, index) {
210
+ return this.send("AddIndex", { index, scope });
211
211
  }
212
212
 
213
213
  /**
@@ -218,8 +218,8 @@ class ClusterPublisher {
218
218
  * @param {string} collection
219
219
  * @returns {Long} ID of the message sent
220
220
  */
221
- sendAddCollection (scope, index, collection) {
222
- return this.send('AddCollection', { collection, index, scope });
221
+ sendAddCollection(scope, index, collection) {
222
+ return this.send("AddCollection", { collection, index, scope });
223
223
  }
224
224
 
225
225
  /**
@@ -229,8 +229,8 @@ class ClusterPublisher {
229
229
  * @param {Array.<string>} indexes
230
230
  * @returns {Long} ID of the message sent
231
231
  */
232
- sendRemoveIndexes (scope, indexes) {
233
- return this.send('RemoveIndexes', { indexes, scope });
232
+ sendRemoveIndexes(scope, indexes) {
233
+ return this.send("RemoveIndexes", { indexes, scope });
234
234
  }
235
235
 
236
236
  /**
@@ -241,8 +241,8 @@ class ClusterPublisher {
241
241
  * @param {string} collection
242
242
  * @returns {Long} ID of the message sent
243
243
  */
244
- sendRemoveCollection (scope, index, collection) {
245
- return this.send('RemoveCollection', { collection, index, scope });
244
+ sendRemoveCollection(scope, index, collection) {
245
+ return this.send("RemoveCollection", { collection, index, scope });
246
246
  }
247
247
 
248
248
  /**
@@ -252,8 +252,8 @@ class ClusterPublisher {
252
252
  * @param {Object} payload - event payload
253
253
  * @returns {Long} ID of the message sent
254
254
  */
255
- sendClusterWideEvent (event, payload) {
256
- return this.send('ClusterWideEvent', {
255
+ sendClusterWideEvent(event, payload) {
256
+ return this.send("ClusterWideEvent", {
257
257
  event,
258
258
  payload: JSON.stringify(payload),
259
259
  });
@@ -266,8 +266,8 @@ class ClusterPublisher {
266
266
  *
267
267
  * @returns {Long} ID of the message sent
268
268
  */
269
- sendNodeShutdown (nodeId) {
270
- return this.send('NodeShutdown', { nodeId });
269
+ sendNodeShutdown(nodeId) {
270
+ return this.send("NodeShutdown", { nodeId });
271
271
  }
272
272
 
273
273
  /**
@@ -279,8 +279,8 @@ class ClusterPublisher {
279
279
  *
280
280
  * @returns {Long} ID of the message sent
281
281
  */
282
- sendNodeEvicted (evictor, nodeId, reason) {
283
- return this.send('NodeEvicted', { evictor, nodeId, reason });
282
+ sendNodeEvicted(evictor, nodeId, reason) {
283
+ return this.send("NodeEvicted", { evictor, nodeId, reason });
284
284
  }
285
285
 
286
286
  /**
@@ -290,8 +290,8 @@ class ClusterPublisher {
290
290
  *
291
291
  * @returns {Long} ID of the message sent
292
292
  */
293
- sendHeartbeat (address) {
294
- return this.send('Heartbeat', { address });
293
+ sendHeartbeat(address) {
294
+ return this.send("Heartbeat", { address });
295
295
  }
296
296
 
297
297
  /**
@@ -304,7 +304,7 @@ class ClusterPublisher {
304
304
  * @returns {Long} ID of the message sent
305
305
  * @throws If the topic's protobuf type cannot be found
306
306
  */
307
- send (topic, data) {
307
+ send(topic, data) {
308
308
  if (this.socket === null) {
309
309
  return Long.NEG_ONE;
310
310
  }
@@ -336,7 +336,7 @@ class ClusterPublisher {
336
336
  * @param {Buffer} data
337
337
  * @return {void}
338
338
  */
339
- async bufferSend (topic, data) {
339
+ async bufferSend(topic, data) {
340
340
  this.buffer.push({ data, topic });
341
341
 
342
342
  if (this.state === STATE.SENDING) {
@@ -355,13 +355,12 @@ class ClusterPublisher {
355
355
  // http://zeromq.github.io/zeromq.js/classes/publisher.html#send
356
356
  await this.socket.send([payload.topic, payload.data]);
357
357
  }
358
- }
359
- while (this.buffer.length > 0);
358
+ } while (this.buffer.length > 0);
360
359
 
361
360
  this.state = STATE.READY;
362
361
  }
363
362
 
364
- async dispose () {
363
+ async dispose() {
365
364
  // waits for the buffer to be empty before closing
366
365
  while (this.state !== STATE.READY) {
367
366
  await Bluebird.delay(100);
@@ -1,8 +1,8 @@
1
- import { NormalizedFilter } from 'koncorde';
2
- import { JSONObject } from 'kuzzle-sdk';
3
- import { RoomList } from '../types';
4
- import Long from 'long';
5
- import '../types/Global';
1
+ import { NormalizedFilter } from "koncorde";
2
+ import { JSONObject } from "kuzzle-sdk";
3
+ import { RoomList } from "../types";
4
+ import Long from "long";
5
+ import "../types/Global";
6
6
  export declare type SerializedRoomSubscriptions = {
7
7
  nodeId: string;
8
8
  messageId: Long;
@@ -47,7 +47,7 @@ const koncorde_1 = require("koncorde");
47
47
  const kerror = __importStar(require("../kerror"));
48
48
  require("../types/Global");
49
49
  const koncordeCompat_1 = require("../util/koncordeCompat");
50
- const errorFatal = kerror.wrap('cluster', 'fatal');
50
+ const errorFatal = kerror.wrap("cluster", "fatal");
51
51
  /**
52
52
  * Private class aiming at maintaining both the number of a node's subscriptions
53
53
  * to a room, and the node's last message ID to detect desyncs.
@@ -119,7 +119,7 @@ class RoomState {
119
119
  */
120
120
  addNode(nodeId, messageId, subscribers) {
121
121
  if (this.nodes.has(nodeId)) {
122
- throw errorFatal.get('desync', `cannot add node ${nodeId} to room ${this.id} (duplicate node)`);
122
+ throw errorFatal.get("desync", `cannot add node ${nodeId} to room ${this.id} (duplicate node)`);
123
123
  }
124
124
  this.nodes.set(nodeId, new RoomSubscriptions(nodeId, messageId, subscribers));
125
125
  }
@@ -130,7 +130,7 @@ class RoomState {
130
130
  const node = this.nodes.get(nodeId);
131
131
  if (!node) {
132
132
  // die
133
- throw errorFatal.get('desync', `cannot add subscription to room ${this.id} (unknown node ${nodeId})`);
133
+ throw errorFatal.get("desync", `cannot add subscription to room ${this.id} (unknown node ${nodeId})`);
134
134
  }
135
135
  node.incr(messageId);
136
136
  }
@@ -138,10 +138,10 @@ class RoomState {
138
138
  const node = this.nodes.get(nodeId);
139
139
  if (!node) {
140
140
  // die
141
- throw errorFatal.get('desync', `cannot remove subscription from room ${this.id} (unknown node ${nodeId})`);
141
+ throw errorFatal.get("desync", `cannot remove subscription from room ${this.id} (unknown node ${nodeId})`);
142
142
  }
143
143
  if (node.decr(messageId) < 0) {
144
- throw errorFatal.get('desync', `node ${nodeId} has a negative subscribers count on room ${this.id}`);
144
+ throw errorFatal.get("desync", `node ${nodeId} has a negative subscribers count on room ${this.id}`);
145
145
  }
146
146
  }
147
147
  hasNodes() {
@@ -265,14 +265,14 @@ class State {
265
265
  addRealtimeSubscription(roomId, nodeId, messageId) {
266
266
  const room = this.realtime.get(roomId);
267
267
  if (!room) {
268
- throw errorFatal.get('desync', `cannot add subscription to room ${roomId} (room doesn't exist)`);
268
+ throw errorFatal.get("desync", `cannot add subscription to room ${roomId} (room doesn't exist)`);
269
269
  }
270
270
  room.incr(nodeId, messageId);
271
271
  }
272
272
  removeRealtimeSubscription(roomId, nodeId, messageId) {
273
273
  const room = this.realtime.get(roomId);
274
274
  if (!room) {
275
- throw errorFatal.get('desync', `cannot remove subscription from room ${roomId} (room doesn't exist)`);
275
+ throw errorFatal.get("desync", `cannot remove subscription from room ${roomId} (room doesn't exist)`);
276
276
  }
277
277
  room.decr(nodeId, messageId);
278
278
  }
@@ -299,7 +299,7 @@ class State {
299
299
  serialize() {
300
300
  return {
301
301
  authStrategies: Array.from(this.strategies.values()),
302
- rooms: Array.from(this.realtime.values()).map(room => room.serialize()),
302
+ rooms: Array.from(this.realtime.values()).map((room) => room.serialize()),
303
303
  };
304
304
  }
305
305
  /**