kuzzle 2.56.0 → 2.57.0-beta.2

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 (408) hide show
  1. package/dist/bin/copy-binaries.js +71 -4
  2. package/dist/bin/start-kuzzle-server +191 -97
  3. package/dist/index.d.ts +31 -1
  4. package/dist/index.js +45 -2
  5. package/dist/lib/api/controllers/adminController.d.ts +4 -3
  6. package/dist/lib/api/controllers/adminController.js +1 -2
  7. package/dist/lib/api/controllers/authController.d.ts +37 -16
  8. package/dist/lib/api/controllers/authController.js +88 -39
  9. package/dist/lib/api/controllers/baseController.d.ts +10 -5
  10. package/dist/lib/api/controllers/baseController.js +36 -15
  11. package/dist/lib/api/controllers/bulkController.d.ts +11 -7
  12. package/dist/lib/api/controllers/bulkController.js +28 -5
  13. package/dist/lib/api/controllers/clusterController.d.ts +2 -2
  14. package/dist/lib/api/controllers/clusterController.js +3 -3
  15. package/dist/lib/api/controllers/collectionController.d.ts +57 -21
  16. package/dist/lib/api/controllers/collectionController.js +40 -11
  17. package/dist/lib/api/controllers/debugController.d.ts +1 -1
  18. package/dist/lib/api/controllers/documentController.d.ts +137 -28
  19. package/dist/lib/api/controllers/documentController.js +156 -125
  20. package/dist/lib/api/controllers/index.d.ts +27 -12
  21. package/dist/lib/api/controllers/index.js +28 -13
  22. package/dist/lib/api/controllers/indexController.d.ts +17 -10
  23. package/dist/lib/api/controllers/indexController.js +13 -11
  24. package/dist/lib/api/controllers/memoryStorageController.d.ts +2 -5
  25. package/dist/lib/api/controllers/memoryStorageController.js +199 -127
  26. package/dist/lib/api/controllers/realtimeController.d.ts +19 -9
  27. package/dist/lib/api/controllers/realtimeController.js +8 -4
  28. package/dist/lib/api/controllers/securityController.d.ts +42 -29
  29. package/dist/lib/api/controllers/securityController.js +35 -19
  30. package/dist/lib/api/controllers/serverController.d.ts +114 -19
  31. package/dist/lib/api/controllers/serverController.js +69 -29
  32. package/dist/lib/api/documentExtractor.d.ts +9 -7
  33. package/dist/lib/api/documentExtractor.js +105 -41
  34. package/dist/lib/api/funnel.d.ts +131 -29
  35. package/dist/lib/api/funnel.js +436 -225
  36. package/dist/lib/api/httpRoutes.d.ts +16 -11
  37. package/dist/lib/api/httpRoutes.js +272 -2
  38. package/dist/lib/api/openapi/OpenApiManager.d.ts +1 -1
  39. package/dist/lib/api/openapi/openApiGenerator.d.ts +1 -1
  40. package/dist/lib/api/rateLimiter.d.ts +15 -5
  41. package/dist/lib/api/rateLimiter.js +42 -14
  42. package/dist/lib/api/request/kuzzleRequest.d.ts +83 -12
  43. package/dist/lib/api/request/kuzzleRequest.js +88 -23
  44. package/dist/lib/api/request/requestContext.d.ts +20 -5
  45. package/dist/lib/api/request/requestContext.js +14 -4
  46. package/dist/lib/api/request/requestInput.d.ts +37 -6
  47. package/dist/lib/api/request/requestInput.js +22 -9
  48. package/dist/lib/api/request/requestResponse.d.ts +45 -9
  49. package/dist/lib/api/request/requestResponse.js +34 -3
  50. package/dist/lib/cluster/command.d.ts +131 -37
  51. package/dist/lib/cluster/command.js +243 -71
  52. package/dist/lib/cluster/idCardHandler.d.ts +18 -5
  53. package/dist/lib/cluster/idCardHandler.js +52 -19
  54. package/dist/lib/cluster/index.d.ts +8 -2
  55. package/dist/lib/cluster/index.js +6 -2
  56. package/dist/lib/cluster/node.d.ts +127 -49
  57. package/dist/lib/cluster/node.js +412 -179
  58. package/dist/lib/cluster/protobuf/command.proto +18 -0
  59. package/dist/lib/cluster/protobuf/commandMessages.d.ts +104 -0
  60. package/dist/lib/cluster/protobuf/commandMessages.js +30 -0
  61. package/dist/lib/cluster/protobuf/syncMessages.d.ts +184 -0
  62. package/dist/lib/cluster/protobuf/syncMessages.js +23 -0
  63. package/dist/lib/cluster/publisher.d.ts +118 -78
  64. package/dist/lib/cluster/publisher.js +174 -72
  65. package/dist/lib/cluster/state.d.ts +15 -9
  66. package/dist/lib/cluster/state.js +12 -8
  67. package/dist/lib/cluster/subscriber.d.ts +185 -131
  68. package/dist/lib/cluster/subscriber.js +357 -95
  69. package/dist/lib/cluster/workers/IDCardRenewer.d.ts +39 -8
  70. package/dist/lib/cluster/workers/IDCardRenewer.js +88 -23
  71. package/dist/lib/config/default.config.d.ts +2 -2
  72. package/dist/lib/config/default.config.js +10 -3
  73. package/dist/lib/config/documentEventAliases.d.ts +1 -1
  74. package/dist/lib/config/index.d.ts +2 -5
  75. package/dist/lib/config/index.js +30 -17
  76. package/dist/lib/core/auth/formatProcessing.d.ts +3 -3
  77. package/dist/lib/core/auth/passportResponse.d.ts +1 -1
  78. package/dist/lib/core/auth/passportWrapper.d.ts +1 -1
  79. package/dist/lib/core/auth/passportWrapper.js +14 -13
  80. package/dist/lib/core/auth/tokenManager.d.ts +24 -3
  81. package/dist/lib/core/auth/tokenManager.js +47 -19
  82. package/dist/lib/core/backend/applicationManager.d.ts +2 -2
  83. package/dist/lib/core/backend/backend.d.ts +16 -5
  84. package/dist/lib/core/backend/backend.js +14 -6
  85. package/dist/lib/core/backend/backendCluster.d.ts +1 -1
  86. package/dist/lib/core/backend/backendConfig.d.ts +17 -5
  87. package/dist/lib/core/backend/backendConfig.js +1 -0
  88. package/dist/lib/core/backend/backendController.d.ts +1 -1
  89. package/dist/lib/core/backend/backendController.js +8 -1
  90. package/dist/lib/core/backend/backendErrors.d.ts +15 -8
  91. package/dist/lib/core/backend/backendErrors.js +5 -0
  92. package/dist/lib/core/backend/backendHook.d.ts +1 -1
  93. package/dist/lib/core/backend/backendImport.d.ts +1 -1
  94. package/dist/lib/core/backend/backendOpenApi.d.ts +3 -2
  95. package/dist/lib/core/backend/backendPipe.d.ts +1 -1
  96. package/dist/lib/core/backend/backendPipe.js +9 -1
  97. package/dist/lib/core/backend/backendPlugin.d.ts +2 -2
  98. package/dist/lib/core/backend/backendSubscription.d.ts +2 -2
  99. package/dist/lib/core/backend/backendVault.d.ts +1 -1
  100. package/dist/lib/core/backend/backendVault.js +8 -1
  101. package/dist/lib/core/cache/cacheEngine.d.ts +7 -4
  102. package/dist/lib/core/cache/cacheEngine.js +25 -8
  103. package/dist/lib/core/debug/kuzzleDebugger.d.ts +2 -1
  104. package/dist/lib/core/debug/kuzzleDebugger.js +31 -17
  105. package/dist/lib/core/network/accessLogger.d.ts +33 -18
  106. package/dist/lib/core/network/accessLogger.js +135 -73
  107. package/dist/lib/core/network/clientConnection.d.ts +13 -11
  108. package/dist/lib/core/network/clientConnection.js +33 -9
  109. package/dist/lib/core/network/context.d.ts +17 -22
  110. package/dist/lib/core/network/context.js +43 -26
  111. package/dist/lib/core/network/entryPoint.d.ts +38 -16
  112. package/dist/lib/core/network/entryPoint.js +119 -48
  113. package/dist/lib/core/network/httpRouter/index.d.ts +20 -50
  114. package/dist/lib/core/network/httpRouter/index.js +61 -75
  115. package/dist/lib/core/network/httpRouter/routeHandler.d.ts +17 -32
  116. package/dist/lib/core/network/httpRouter/routeHandler.js +26 -36
  117. package/dist/lib/core/network/httpRouter/routePart.d.ts +9 -18
  118. package/dist/lib/core/network/httpRouter/routePart.js +61 -43
  119. package/dist/lib/core/network/httpRouter/routeTypes.d.ts +3 -0
  120. package/dist/lib/core/network/httpRouter/routeTypes.js +23 -0
  121. package/dist/lib/core/network/networkEntryPoint.d.ts +20 -0
  122. package/dist/lib/core/network/networkEntryPoint.js +23 -0
  123. package/dist/lib/core/network/protocolManifest.d.ts +5 -4
  124. package/dist/lib/core/network/protocolManifest.js +6 -3
  125. package/dist/lib/core/network/protocols/httpMessage.d.ts +25 -18
  126. package/dist/lib/core/network/protocols/httpMessage.js +14 -11
  127. package/dist/lib/core/network/protocols/httpwsProtocol.d.ts +84 -93
  128. package/dist/lib/core/network/protocols/httpwsProtocol.js +284 -129
  129. package/dist/lib/core/network/protocols/internalProtocol.d.ts +26 -15
  130. package/dist/lib/core/network/protocols/internalProtocol.js +17 -16
  131. package/dist/lib/core/network/protocols/mqttProtocol.d.ts +56 -32
  132. package/dist/lib/core/network/protocols/mqttProtocol.js +91 -44
  133. package/dist/lib/core/network/protocols/protocol.d.ts +85 -21
  134. package/dist/lib/core/network/protocols/protocol.js +83 -27
  135. package/dist/lib/core/network/router.d.ts +13 -22
  136. package/dist/lib/core/network/router.js +59 -46
  137. package/dist/lib/core/plugin/plugin.d.ts +57 -51
  138. package/dist/lib/core/plugin/plugin.js +218 -103
  139. package/dist/lib/core/plugin/pluginContext.d.ts +54 -11
  140. package/dist/lib/core/plugin/pluginContext.js +99 -58
  141. package/dist/lib/core/plugin/pluginManifest.d.ts +6 -2
  142. package/dist/lib/core/plugin/pluginManifest.js +18 -11
  143. package/dist/lib/core/plugin/pluginRepository.d.ts +35 -44
  144. package/dist/lib/core/plugin/pluginRepository.js +35 -50
  145. package/dist/lib/core/plugin/pluginsManager.d.ts +128 -46
  146. package/dist/lib/core/plugin/pluginsManager.js +468 -231
  147. package/dist/lib/core/plugin/privilegedContext.d.ts +4 -9
  148. package/dist/lib/core/plugin/privilegedContext.js +5 -10
  149. package/dist/lib/core/realtime/actionEnum.d.ts +12 -21
  150. package/dist/lib/core/realtime/actionEnum.js +6 -7
  151. package/dist/lib/core/realtime/channel.d.ts +11 -5
  152. package/dist/lib/core/realtime/channel.js +17 -2
  153. package/dist/lib/core/realtime/connectionRooms.d.ts +2 -2
  154. package/dist/lib/core/realtime/hotelClerk.d.ts +12 -6
  155. package/dist/lib/core/realtime/hotelClerk.js +29 -11
  156. package/dist/lib/core/realtime/index.d.ts +8 -3
  157. package/dist/lib/core/realtime/index.js +12 -5
  158. package/dist/lib/core/realtime/notification/document.d.ts +54 -25
  159. package/dist/lib/core/realtime/notification/document.js +10 -13
  160. package/dist/lib/core/realtime/notification/index.d.ts +9 -3
  161. package/dist/lib/core/realtime/notification/index.js +10 -4
  162. package/dist/lib/core/realtime/notification/server.d.ts +7 -10
  163. package/dist/lib/core/realtime/notification/server.js +4 -7
  164. package/dist/lib/core/realtime/notification/user.d.ts +45 -21
  165. package/dist/lib/core/realtime/notification/user.js +8 -9
  166. package/dist/lib/core/realtime/notifier.d.ts +52 -40
  167. package/dist/lib/core/realtime/notifier.js +60 -25
  168. package/dist/lib/core/realtime/room.d.ts +1 -1
  169. package/dist/lib/core/realtime/subscription.d.ts +11 -6
  170. package/dist/lib/core/realtime/subscription.js +5 -1
  171. package/dist/lib/core/security/index.d.ts +14 -6
  172. package/dist/lib/core/security/index.js +27 -13
  173. package/dist/lib/core/security/profileRepository.d.ts +24 -19
  174. package/dist/lib/core/security/profileRepository.js +23 -10
  175. package/dist/lib/core/security/roleRepository.d.ts +60 -23
  176. package/dist/lib/core/security/roleRepository.js +122 -53
  177. package/dist/lib/core/security/securityLoader.d.ts +33 -18
  178. package/dist/lib/core/security/securityLoader.js +43 -16
  179. package/dist/lib/core/security/tokenRepository.d.ts +21 -7
  180. package/dist/lib/core/security/tokenRepository.js +50 -23
  181. package/dist/lib/core/security/userRepository.d.ts +44 -21
  182. package/dist/lib/core/security/userRepository.js +59 -19
  183. package/dist/lib/core/shared/KoncordeWrapper.d.ts +1 -1
  184. package/dist/lib/core/shared/ObjectRepository.d.ts +80 -18
  185. package/dist/lib/core/shared/ObjectRepository.js +57 -29
  186. package/dist/lib/core/shared/abstractManifest.d.ts +21 -8
  187. package/dist/lib/core/shared/abstractManifest.js +57 -17
  188. package/dist/lib/core/shared/sdk/embeddedSdk.d.ts +3 -1
  189. package/dist/lib/core/shared/sdk/embeddedSdk.js +8 -7
  190. package/dist/lib/core/shared/sdk/funnelProtocol.d.ts +2 -1
  191. package/dist/lib/core/shared/sdk/funnelProtocol.js +12 -3
  192. package/dist/lib/core/shared/sdk/impersonatedSdk.d.ts +11 -5
  193. package/dist/lib/core/shared/sdk/impersonatedSdk.js +22 -9
  194. package/dist/lib/core/shared/store.d.ts +45 -29
  195. package/dist/lib/core/shared/store.js +48 -27
  196. package/dist/lib/core/statistics/statistics.d.ts +1 -1
  197. package/dist/lib/core/storage/clientAdapter.d.ts +39 -21
  198. package/dist/lib/core/storage/clientAdapter.js +88 -48
  199. package/dist/lib/core/storage/indexCache.d.ts +8 -0
  200. package/dist/lib/core/storage/indexCache.js +16 -7
  201. package/dist/lib/core/storage/storageEngine.d.ts +7 -6
  202. package/dist/lib/core/storage/storageEngine.js +11 -8
  203. package/dist/lib/core/validation/baseType.d.ts +22 -22
  204. package/dist/lib/core/validation/baseType.js +11 -26
  205. package/dist/lib/core/validation/specification.d.ts +148 -0
  206. package/dist/lib/core/validation/specification.js +34 -0
  207. package/dist/lib/core/validation/typeOptions.d.ts +62 -0
  208. package/dist/lib/core/validation/typeOptions.js +23 -0
  209. package/dist/lib/core/validation/types/anything.d.ts +3 -6
  210. package/dist/lib/core/validation/types/anything.js +7 -7
  211. package/dist/lib/core/validation/types/boolean.d.ts +5 -12
  212. package/dist/lib/core/validation/types/boolean.js +7 -12
  213. package/dist/lib/core/validation/types/date.d.ts +19 -11
  214. package/dist/lib/core/validation/types/date.js +212 -161
  215. package/dist/lib/core/validation/types/email.d.ts +7 -11
  216. package/dist/lib/core/validation/types/email.js +13 -17
  217. package/dist/lib/core/validation/types/enum.d.ts +7 -11
  218. package/dist/lib/core/validation/types/enum.js +39 -20
  219. package/dist/lib/core/validation/types/geoPoint.d.ts +5 -13
  220. package/dist/lib/core/validation/types/geoPoint.js +10 -15
  221. package/dist/lib/core/validation/types/geoShape.d.ts +22 -21
  222. package/dist/lib/core/validation/types/geoShape.js +113 -129
  223. package/dist/lib/core/validation/types/geoShapeUtils.d.ts +15 -0
  224. package/dist/lib/core/validation/types/geoShapeUtils.js +75 -0
  225. package/dist/lib/core/validation/types/integer.d.ts +7 -5
  226. package/dist/lib/core/validation/types/integer.js +7 -13
  227. package/dist/lib/core/validation/types/ipAddress.d.ts +7 -11
  228. package/dist/lib/core/validation/types/ipAddress.js +13 -17
  229. package/dist/lib/core/validation/types/numeric.d.ts +7 -11
  230. package/dist/lib/core/validation/types/numeric.js +22 -29
  231. package/dist/lib/core/validation/types/object.d.ts +8 -15
  232. package/dist/lib/core/validation/types/object.js +12 -21
  233. package/dist/lib/core/validation/types/string.d.ts +7 -11
  234. package/dist/lib/core/validation/types/string.js +22 -29
  235. package/dist/lib/core/validation/types/url.d.ts +7 -11
  236. package/dist/lib/core/validation/types/url.js +14 -18
  237. package/dist/lib/core/validation/validation.d.ts +119 -80
  238. package/dist/lib/core/validation/validation.js +470 -412
  239. package/dist/lib/core/validation/validationUtils.d.ts +31 -0
  240. package/dist/lib/core/validation/validationUtils.js +190 -0
  241. package/dist/lib/kerror/codes/4-plugin.json +0 -12
  242. package/dist/lib/kerror/codes/index.d.ts +12 -2
  243. package/dist/lib/kerror/codes/index.js +5 -4
  244. package/dist/lib/kerror/errors/badRequestError.d.ts +1 -1
  245. package/dist/lib/kerror/errors/badRequestError.js +1 -1
  246. package/dist/lib/kerror/errors/externalServiceError.d.ts +1 -1
  247. package/dist/lib/kerror/errors/externalServiceError.js +1 -1
  248. package/dist/lib/kerror/errors/forbiddenError.d.ts +1 -1
  249. package/dist/lib/kerror/errors/forbiddenError.js +1 -1
  250. package/dist/lib/kerror/errors/gatewayTimeoutError.d.ts +1 -1
  251. package/dist/lib/kerror/errors/gatewayTimeoutError.js +1 -1
  252. package/dist/lib/kerror/errors/internalError.d.ts +1 -1
  253. package/dist/lib/kerror/errors/internalError.js +1 -1
  254. package/dist/lib/kerror/errors/kuzzleError.d.ts +32 -3
  255. package/dist/lib/kerror/errors/kuzzleError.js +21 -7
  256. package/dist/lib/kerror/errors/multipleErrorsError.d.ts +2 -2
  257. package/dist/lib/kerror/errors/multipleErrorsError.js +2 -2
  258. package/dist/lib/kerror/errors/notFoundError.d.ts +1 -1
  259. package/dist/lib/kerror/errors/notFoundError.js +1 -1
  260. package/dist/lib/kerror/errors/partialError.d.ts +8 -2
  261. package/dist/lib/kerror/errors/partialError.js +22 -9
  262. package/dist/lib/kerror/errors/pluginImplementationError.d.ts +9 -1
  263. package/dist/lib/kerror/errors/pluginImplementationError.js +9 -3
  264. package/dist/lib/kerror/errors/preconditionError.d.ts +1 -1
  265. package/dist/lib/kerror/errors/preconditionError.js +1 -1
  266. package/dist/lib/kerror/errors/serviceUnavailableError.d.ts +1 -1
  267. package/dist/lib/kerror/errors/serviceUnavailableError.js +1 -1
  268. package/dist/lib/kerror/errors/sizeLimitError.d.ts +1 -1
  269. package/dist/lib/kerror/errors/sizeLimitError.js +1 -1
  270. package/dist/lib/kerror/errors/tooManyRequestsError.d.ts +1 -1
  271. package/dist/lib/kerror/errors/tooManyRequestsError.js +1 -1
  272. package/dist/lib/kerror/errors/unauthorizedError.d.ts +1 -1
  273. package/dist/lib/kerror/errors/unauthorizedError.js +1 -1
  274. package/dist/lib/kerror/index.d.ts +19 -13
  275. package/dist/lib/kerror/index.js +60 -19
  276. package/dist/lib/kuzzle/Logger.d.ts +2 -2
  277. package/dist/lib/kuzzle/dumpGenerator.d.ts +12 -8
  278. package/dist/lib/kuzzle/dumpGenerator.js +130 -62
  279. package/dist/lib/kuzzle/event/KuzzleEventEmitter.d.ts +18 -9
  280. package/dist/lib/kuzzle/event/KuzzleEventEmitter.js +45 -18
  281. package/dist/lib/kuzzle/event/pipeRunner.d.ts +37 -16
  282. package/dist/lib/kuzzle/event/pipeRunner.js +73 -26
  283. package/dist/lib/kuzzle/event/waterfall.d.ts +11 -1
  284. package/dist/lib/kuzzle/event/waterfall.js +38 -13
  285. package/dist/lib/kuzzle/internalIndexHandler.d.ts +11 -174
  286. package/dist/lib/kuzzle/internalIndexHandler.js +58 -29
  287. package/dist/lib/kuzzle/kuzzle.d.ts +25 -10
  288. package/dist/lib/kuzzle/kuzzle.js +74 -17
  289. package/dist/lib/kuzzle/kuzzleStateEnum.d.ts +16 -12
  290. package/dist/lib/kuzzle/kuzzleStateEnum.js +5 -7
  291. package/dist/lib/kuzzle/vault.d.ts +5 -1
  292. package/dist/lib/kuzzle/vault.js +29 -17
  293. package/dist/lib/model/security/profile.d.ts +34 -5
  294. package/dist/lib/model/security/profile.js +6 -5
  295. package/dist/lib/model/security/rights.d.ts +12 -4
  296. package/dist/lib/model/security/rights.js +7 -6
  297. package/dist/lib/model/security/role.d.ts +8 -4
  298. package/dist/lib/model/security/role.js +12 -6
  299. package/dist/lib/model/security/token.d.ts +8 -0
  300. package/dist/lib/model/security/user.d.ts +8 -2
  301. package/dist/lib/model/security/user.js +7 -4
  302. package/dist/lib/model/storage/apiKey.d.ts +55 -26
  303. package/dist/lib/model/storage/apiKey.js +97 -24
  304. package/dist/lib/model/storage/baseModel.d.ts +77 -66
  305. package/dist/lib/model/storage/baseModel.js +21 -34
  306. package/dist/lib/service/cache/redis.d.ts +53 -36
  307. package/dist/lib/service/cache/redis.js +148 -71
  308. package/dist/lib/service/service.d.ts +14 -19
  309. package/dist/lib/service/service.js +41 -22
  310. package/dist/lib/service/storage/7/elasticsearch.d.ts +136 -93
  311. package/dist/lib/service/storage/7/elasticsearch.js +218 -165
  312. package/dist/lib/service/storage/7/esWrapper.d.ts +30 -13
  313. package/dist/lib/service/storage/7/esWrapper.js +58 -37
  314. package/dist/lib/service/storage/8/elasticsearch.d.ts +153 -119
  315. package/dist/lib/service/storage/8/elasticsearch.js +286 -213
  316. package/dist/lib/service/storage/8/esWrapper.d.ts +30 -13
  317. package/dist/lib/service/storage/8/esWrapper.js +59 -38
  318. package/dist/lib/service/storage/commons/queryTranslator.d.ts +3 -3
  319. package/dist/lib/service/storage/commons/queryTranslator.js +71 -35
  320. package/dist/lib/types/ApiRoute.d.ts +12 -0
  321. package/dist/lib/types/ApiRoute.js +23 -0
  322. package/dist/lib/types/ClientConnection.d.ts +1 -1
  323. package/dist/lib/types/EventHandler.d.ts +10 -0
  324. package/dist/lib/types/Global.d.ts +8 -3
  325. package/dist/lib/types/HttpMessage.d.ts +2 -2
  326. package/dist/lib/types/HttpStream.d.ts +1 -1
  327. package/dist/lib/types/HttpStream.js +3 -1
  328. package/dist/lib/types/JSONObject.d.ts +9 -0
  329. package/dist/lib/types/JSONObject.js +23 -0
  330. package/dist/lib/types/Kuzzle.d.ts +5 -3
  331. package/dist/lib/types/KuzzleDocument.d.ts +1 -1
  332. package/dist/lib/types/KuzzleWebSocket.d.ts +24 -0
  333. package/dist/lib/types/KuzzleWebSocket.js +23 -0
  334. package/dist/lib/types/OpenApiDefinition.d.ts +1 -1
  335. package/dist/lib/types/Plugin.d.ts +33 -8
  336. package/dist/lib/types/PluginInstance.d.ts +67 -0
  337. package/dist/lib/types/PluginInstance.js +23 -0
  338. package/dist/lib/types/Policy.d.ts +1 -1
  339. package/dist/lib/types/Target.d.ts +8 -0
  340. package/dist/lib/types/Token.d.ts +14 -2
  341. package/dist/lib/types/config/HttpConfiguration.d.ts +5 -0
  342. package/dist/lib/types/config/KuzzleConfiguration.d.ts +102 -1
  343. package/dist/lib/types/config/PluginsConfiguration.d.ts +3 -2
  344. package/dist/lib/types/config/SecurityConfiguration.d.ts +6 -2
  345. package/dist/lib/types/config/ServerConfiguration.d.ts +2 -2
  346. package/dist/lib/types/config/ServicesConfiguration.d.ts +1 -1
  347. package/dist/lib/types/config/cache/BaseCacheRedisConfiguration.d.ts +131 -0
  348. package/dist/lib/types/config/cache/BaseCacheRedisConfiguration.js +3 -0
  349. package/dist/lib/types/config/internalCache/InternalCacheRedisConfiguration.d.ts +2 -106
  350. package/dist/lib/types/config/publicCache/PublicCacheRedisConfiguration.d.ts +2 -26
  351. package/dist/lib/types/config/storageEngine/StorageEngineElasticsearchConfiguration.d.ts +3 -0
  352. package/dist/lib/types/controllers/Controller.d.ts +12 -3
  353. package/dist/lib/types/controllers/ControllerDefinition.d.ts +2 -2
  354. package/dist/lib/types/controllers/{adminControlller.type.js → adminController.type.js} +1 -1
  355. package/dist/lib/types/controllers/authController.type.d.ts +2 -2
  356. package/dist/lib/types/core/auth/formatProcessing.type.d.ts +7 -1
  357. package/dist/lib/types/errors/ErrorDomains.d.ts +1 -1
  358. package/dist/lib/types/events/EventGenericDocument.d.ts +10 -9
  359. package/dist/lib/types/events/EventProtocol.d.ts +4 -4
  360. package/dist/lib/types/index.d.ts +7 -0
  361. package/dist/lib/types/index.js +7 -0
  362. package/dist/lib/types/shared/StoreCollectionsDefinition.d.ts +1 -1
  363. package/dist/lib/types/storage/7/Elasticsearch.d.ts +62 -13
  364. package/dist/lib/types/storage/8/Elasticsearch.d.ts +62 -13
  365. package/dist/lib/util/Inflector.d.ts +4 -1
  366. package/dist/lib/util/Inflector.js +0 -3
  367. package/dist/lib/util/assertType.d.ts +24 -27
  368. package/dist/lib/util/assertType.js +28 -39
  369. package/dist/lib/util/async.js +19 -6
  370. package/dist/lib/util/asyncStore.js +1 -1
  371. package/dist/lib/util/bufferedPassThrough.d.ts +9 -0
  372. package/dist/lib/util/bufferedPassThrough.js +27 -13
  373. package/dist/lib/util/bytes.d.ts +1 -1
  374. package/dist/lib/util/bytes.js +6 -2
  375. package/dist/lib/util/debug.d.ts +3 -1
  376. package/dist/lib/util/debug.js +42 -10
  377. package/dist/lib/util/deprecate.d.ts +9 -1
  378. package/dist/lib/util/deprecate.js +10 -6
  379. package/dist/lib/util/didYouMean.d.ts +2 -1
  380. package/dist/lib/util/didYouMean.js +8 -4
  381. package/dist/lib/util/distributedLock.d.ts +56 -0
  382. package/dist/lib/util/distributedLock.js +166 -0
  383. package/dist/lib/util/dump-collection.d.ts +1 -1
  384. package/dist/lib/util/dump-collection.js +4 -5
  385. package/dist/lib/util/extractFields.d.ts +15 -11
  386. package/dist/lib/util/extractFields.js +8 -9
  387. package/dist/lib/util/koncordeCompat.d.ts +2 -2
  388. package/dist/lib/util/koncordeCompat.js +33 -0
  389. package/dist/lib/util/memoize.d.ts +7 -6
  390. package/dist/lib/util/memoize.js +3 -3
  391. package/dist/lib/util/mutex.d.ts +22 -2
  392. package/dist/lib/util/mutex.js +39 -1
  393. package/dist/lib/util/name-generator.js +14 -2
  394. package/dist/lib/util/promback.d.ts +20 -11
  395. package/dist/lib/util/promback.js +14 -7
  396. package/dist/lib/util/requestAssertions.d.ts +30 -10
  397. package/dist/lib/util/requestAssertions.js +125 -121
  398. package/dist/lib/util/safeObject.d.ts +3 -3
  399. package/dist/lib/util/safeObject.js +7 -3
  400. package/dist/lib/util/stackTrace.d.ts +13 -5
  401. package/dist/lib/util/stackTrace.js +17 -12
  402. package/dist/lib/util/thrown.d.ts +13 -0
  403. package/dist/lib/util/thrown.js +46 -0
  404. package/dist/package.json +26 -19
  405. package/package.json +26 -19
  406. package/dist/lib/util/wildcard.d.ts +0 -1
  407. package/dist/lib/util/wildcard.js +0 -46
  408. /package/dist/lib/types/controllers/{adminControlller.type.d.ts → adminController.type.d.ts} +0 -0
@@ -1,52 +1,91 @@
1
- export = ClusterSubscriber;
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import Long from "long";
4
+ import type { IKuzzleConfiguration } from "../types/config/KuzzleConfiguration";
5
+ import type State from "./state";
6
+ import type { AddCollectionMessage, AddIndexMessage, ClusterWideEventMessage, DocumentNotificationMessage, DumpRequestMessage, InvalidateProfileMessage, InvalidateRoleMessage, NewAuthStrategyMessage, NewRealtimeRoomMessage, NodeEvictedMessage, NodePreventEvictionMessage, NodeShutdownMessage, RemoveAuthStrategyMessage, RemoveCollectionMessage, RemoveIndexesMessage, RemoveRealtimeRoomMessage, SubscriptionMessage, SyncMessage, SyncMessages, SyncTopic, UnsubscriptionMessage, UserNotificationMessage } from "./protobuf/syncMessages";
7
+ /**
8
+ * A frame as `protobufjs` hands it back, before `validateMessage()` has
9
+ * established that it carries the `messageId` every sync message must have.
10
+ */
11
+ type DecodedMessage = Partial<SyncMessage> & Record<string, unknown>;
12
+ /**
13
+ * What a subscriber needs from the node that owns it. `node.js` is converted in
14
+ * J3; this is the part of its surface this file actually reads.
15
+ */
16
+ type SubscribingNode = {
17
+ config: IKuzzleConfiguration["cluster"];
18
+ heartbeatDelay: number;
19
+ nodeId: string;
20
+ fullState: State;
21
+ eventEmitter: {
22
+ emit(event: string, payload: unknown): void;
23
+ };
24
+ evictNode(nodeId: string, options: {
25
+ broadcast: boolean;
26
+ reason: string;
27
+ }): Promise<void>;
28
+ evictSelf(reason: string, error?: Error): Promise<void>;
29
+ command: {
30
+ requestRetransmit(ip: string, from: Long, to: Long): Promise<BufferedFrame[] | null>;
31
+ };
32
+ };
33
+ /**
34
+ * A topic's handler, as the dispatch table holds it: each one is declared with
35
+ * the message type `sync.proto` gives its topic, so registering a handler under
36
+ * the wrong topic stops compiling.
37
+ */
38
+ type SyncMessageHandlers = {
39
+ [T in SyncTopic]: (message: SyncMessages[T]) => void | Promise<void>;
40
+ };
41
+ /** One raw frame as it comes off the socket, before it is decoded. */
42
+ type BufferedFrame = [topic: string, data: Buffer];
2
43
  declare class ClusterSubscriber {
3
- /**
4
- * @constructor
5
- * @param {ClusterNode} localNode
6
- * @param {string} remoteNodeId - Remote node unique ID
7
- * @param {string} remoteNodeIP - address of the distant node
8
- */
9
- constructor(localNode: ClusterNode, remoteNodeId: string, remoteNodeIP: string);
10
- localNode: ClusterNode;
11
- remoteNodeIP: string;
12
- remoteNodeAddress: string;
13
- remoteNodeId: string;
44
+ static readonly stateEnum: Readonly<{
45
+ BUFFERING: 1;
46
+ SANE: 2;
47
+ MISSING_HEARTBEAT: 3;
48
+ EVICTED: 4;
49
+ }>;
50
+ private readonly localNode;
51
+ readonly remoteNodeIP: string;
52
+ private readonly remoteNodeAddress;
53
+ readonly remoteNodeId: string;
54
+ /** Used in debug mode when the node might be slower */
14
55
  remoteNodeEvictionPrevented: boolean;
15
- socket: Subscriber;
16
- protoroot: protobuf.Root;
56
+ private socket;
57
+ private protoroot;
58
+ /** keeps track of received message ids from the remote node */
17
59
  lastMessageId: Long;
18
- state: 1;
19
- buffer: any[];
20
- heartbeatTimer: NodeJS.Timeout;
60
+ subscriptionConfirmed: boolean;
61
+ private readonly subscriptionProof;
62
+ private confirmSubscription;
63
+ /**
64
+ * One of the values of `stateEnum`. Deliberately `number` and not the
65
+ * literal union `1 | 2 | 3 | 4`: `state` is mutated by other methods while
66
+ * `listen()` is awaiting a socket read, and TypeScript's control-flow
67
+ * narrowing does not model that — under the literal union it reports the
68
+ * deliberate re-checks after an `await` as impossible comparisons. Those
69
+ * re-checks are the point.
70
+ */
71
+ state: number;
72
+ private buffer;
73
+ /**
74
+ * Whether `recover()` is running: waiting for the remote node to retransmit
75
+ * what was lost, or applying it.
76
+ */
77
+ private recovering;
78
+ private heartbeatTimer;
21
79
  lastHeartbeat: number;
22
- heartbeatDelay: number;
23
- handlers: Readonly<{
24
- AddCollection: (message: any) => void;
25
- AddIndex: (message: any) => void;
26
- ClusterWideEvent: (message: any) => void;
27
- DocumentNotification: (message: any) => void;
28
- DumpRequest: (message: any) => void;
29
- Heartbeat: () => void;
30
- InvalidateProfile: (message: any) => void;
31
- InvalidateRole: (message: any) => void;
32
- NewAuthStrategy: (message: any) => void;
33
- NewRealtimeRoom: (message: any) => void;
34
- NodeEvicted: (message: any) => void;
35
- NodePreventEviction: (message: any) => Promise<void>;
36
- NodeShutdown: (message: any) => void;
37
- RefreshIndexCache: () => Promise<void>;
38
- RefreshValidators: () => void;
39
- RemoveAuthStrategy: (message: any) => void;
40
- RemoveCollection: (message: any) => void;
41
- RemoveIndexes: (message: any) => void;
42
- RemoveRealtimeRoom: (message: any) => void;
43
- ResetSecurity: () => void;
44
- Shutdown: () => void;
45
- Subscription: (message: any) => void;
46
- Unsubscription: (message: any) => void;
47
- UserNotification: (message: any) => void;
48
- }>;
49
- logger: import("../kuzzle/Logger").Logger;
80
+ private readonly heartbeatDelay;
81
+ readonly handlers: Readonly<SyncMessageHandlers>;
82
+ private readonly logger;
83
+ /**
84
+ * @param localNode the cluster node this subscriber belongs to
85
+ * @param remoteNodeId - Remote node unique ID
86
+ * @param remoteNodeIP - address of the distant node
87
+ */
88
+ constructor(localNode: SubscribingNode, remoteNodeId: string, remoteNodeIP: string);
50
89
  /**
51
90
  * Initializes this class, establishes a connection to the remote node and
52
91
  * starts listening to it.
@@ -58,14 +97,41 @@ declare class ClusterSubscriber {
58
97
  * return (unless the remote node has been evicted)
59
98
  */
60
99
  listen(): Promise<void>;
100
+ /**
101
+ * One frame off the sync socket.
102
+ *
103
+ * @returns `null` when there is nothing more to read — the socket is gone,
104
+ * or the read failed and this node has been evicted for it, which
105
+ * is what ends `listen()`'s loop.
106
+ */
107
+ private receiveFrame;
108
+ /**
109
+ * Resolves once a message has been received from the remote node, which is
110
+ * the only observable proof that this subscription is live on its side.
111
+ *
112
+ * The handshake reads a remote node's `lastMessageId` over the *command*
113
+ * channel and then resumes this subscription from it. Nothing orders that
114
+ * snapshot after the subscription taking effect on the *sync* channel — they
115
+ * are different sockets — so without this wait, anything the remote publishes
116
+ * in between is dropped by its PUB socket while this node is told to resume
117
+ * from just before it. That gap is read as a desync. See TD-65 (#2773).
118
+ *
119
+ * Every node publishes a heartbeat every `cluster.heartbeat` ms (2s by
120
+ * default) from before it is discoverable, so this normally costs less than
121
+ * one round.
122
+ *
123
+ * @param timeout - ms to wait before giving up
124
+ * @return whether the subscription was proven live
125
+ */
126
+ waitForSubscription(timeout: number): Promise<boolean>;
61
127
  /**
62
128
  * Plays all buffered sync messages, and switches this subscriber state from
63
129
  * BUFFERING to SANE.
64
130
  *
65
- * @param {Long} lastMessageId
66
- * @return {void}
131
+ * @param lastMessageId
132
+ * @return false if a gap was found while replaying, which evicts this node
67
133
  */
68
- sync(lastMessageId: Long): void;
134
+ sync(lastMessageId: Long): Promise<boolean>;
69
135
  /**
70
136
  * Decodes an incoming message, and dispatches it.
71
137
  * The topic name must match a protobuf message.
@@ -75,119 +141,111 @@ declare class ClusterSubscriber {
75
141
  * and it also cannot afford to attach a rejection handler everytime a message
76
142
  * is received to prevent clogging the event loop with unnecessary promises
77
143
  *
78
- * @param {string} topic
79
- * @param {Buffer} data
80
- * @return {void}
144
+ * @param topic
145
+ * @param data
81
146
  */
82
- processData(topic: string, data: Buffer): void;
83
- handleNodePreventEviction(message: any): Promise<void>;
147
+ processData(topic: string, data: Buffer): Promise<void>;
148
+ /**
149
+ * Set from two places: a `NodePreventEviction` message published by this
150
+ * peer, and `node.preventEviction()` on this node. The local caller used to
151
+ * reach the wire handler below with a hand-built `{ evictionPrevented }` —
152
+ * an object shaped like a sync message that never came off the wire and
153
+ * carries no `messageId`. The conversion could not type that, and it should
154
+ * not have to: the two callers want the same effect, not the same envelope.
155
+ */
156
+ setEvictionPrevented(evictionPrevented: boolean): void;
157
+ handleNodePreventEviction(message: NodePreventEvictionMessage): Promise<void>;
84
158
  /**
85
159
  * Handles a heartbeat from the remote node
86
160
  *
87
- * @return {void}
88
161
  */
89
162
  handleHeartbeat(): void;
90
163
  /**
91
164
  * Handles a node eviction message.
92
165
  *
93
- * @param {Object} message - decoded NodeEvicted protobuf message
94
- * @return {void}
166
+ * @param message - decoded NodeEvicted protobuf message
95
167
  */
96
- handleNodeEviction(message: any): void;
168
+ handleNodeEviction(message: NodeEvictedMessage): Promise<void>;
97
169
  /**
98
170
  * Handles a node shutdown.
99
171
  *
100
- * @param {Object} message - decoded NodeShutdown protobuf message
101
- * @return {void}
172
+ * @param message - decoded NodeShutdown protobuf message
102
173
  */
103
- handleNodeShutdown(message: any): void;
174
+ handleNodeShutdown(message: NodeShutdownMessage): Promise<void>;
104
175
  /**
105
176
  * Handles messages about realtime room creations
106
177
  *
107
- * @param {Object} message - decoded NewRealtimeRoom protobuf message
108
- * @return {void}
178
+ * @param message - decoded NewRealtimeRoom protobuf message
109
179
  */
110
- handleNewRealtimeRoom(message: any): void;
180
+ handleNewRealtimeRoom(message: NewRealtimeRoomMessage): void;
111
181
  /**
112
182
  * Handles messages about realtime subscriptions
113
183
  *
114
- * @param {Object} message - decoded Subscription protobuf message
115
- * @return {void}
184
+ * @param message - decoded Subscription protobuf message
116
185
  */
117
- handleSubscription(message: any): void;
186
+ handleSubscription(message: SubscriptionMessage): void;
118
187
  /**
119
188
  * Handles messages about realtime room removal
120
189
  *
121
- * @param {Object} message - decoded RemoveRealtimeRoom protobuf message
122
- * @return {void}
190
+ * @param message - decoded RemoveRealtimeRoom protobuf message
123
191
  */
124
- handleRealtimeRoomRemoval(message: any): void;
192
+ handleRealtimeRoomRemoval(message: RemoveRealtimeRoomMessage): void;
125
193
  /**
126
194
  * Handles messages about user unsubscriptions
127
195
  *
128
- * @param {Object} message - decoded Unscription protobuf message
129
- * @return {void}
196
+ * @param message - decoded Unsubscription protobuf message
130
197
  */
131
- handleUnsubscription(message: any): void;
198
+ handleUnsubscription(message: UnsubscriptionMessage): void;
132
199
  /**
133
200
  * Handles messages about cluster-wide events
134
201
  *
135
- * @param {Object} message - decoded ClusterWideEvent protobuf message
136
- * @return {void}
202
+ * @param message - decoded ClusterWideEvent protobuf message
137
203
  */
138
- handleClusterWideEvent(message: any): void;
204
+ handleClusterWideEvent(message: ClusterWideEventMessage): void;
139
205
  /**
140
206
  * Handles messages about document notifications
141
207
  *
142
- * @param {Object} message - decoded DocumentNotification protobuf message
143
- * @return {void}
208
+ * @param message - decoded DocumentNotification protobuf message
144
209
  */
145
- handleDocumentNotification(message: any): void;
210
+ handleDocumentNotification(message: DocumentNotificationMessage): Promise<void>;
146
211
  /**
147
212
  * Handles messages about user notifications
148
213
  *
149
- * @param {Object} message - decoded UserNotification protobuf message
150
- * @return {void}
214
+ * @param message - decoded UserNotification protobuf message
151
215
  */
152
- handleUserNotification(message: any): void;
216
+ handleUserNotification(message: UserNotificationMessage): Promise<void>;
153
217
  /**
154
218
  * Handles messages about new authentication strategies
155
219
  *
156
- * @param {Object} message - decoded NewAuthStrategy protobuf message
157
- * @return {void}
220
+ * @param message - decoded NewAuthStrategy protobuf message
158
221
  */
159
- handleNewAuthStrategy(message: any): void;
222
+ handleNewAuthStrategy(message: NewAuthStrategyMessage): void;
160
223
  /**
161
224
  * Handles messages about authentication strategy removals
162
225
  *
163
- * @param {Object} message - decoded RemoveAuthStrategy protobuf message
164
- * @return {void}
226
+ * @param message - decoded RemoveAuthStrategy protobuf message
165
227
  */
166
- handleAuthStrategyRemoval(message: any): void;
228
+ handleAuthStrategyRemoval(message: RemoveAuthStrategyMessage): void;
167
229
  /**
168
230
  * Handles messages about security resets
169
231
  *
170
- * @return {void}
171
232
  */
172
- handleResetSecurity(): void;
233
+ handleResetSecurity(): Promise<void>;
173
234
  /**
174
235
  * Handles a cross-nodes dump request
175
236
  *
176
- * @param {Object} message - decoded DumpRequest protobuf message
177
- * @return {void}
237
+ * @param message - decoded DumpRequest protobuf message
178
238
  */
179
- handleDumpRequest(message: any): void;
239
+ handleDumpRequest(message: DumpRequestMessage): void;
180
240
  /**
181
241
  * Handles cluster-wide shutdown
182
- * @return {void}
183
242
  */
184
243
  handleShutdown(): void;
185
244
  /**
186
245
  * Handles changes on document validators
187
246
  *
188
- * @return {void}
189
247
  */
190
- handleRefreshValidators(): void;
248
+ handleRefreshValidators(): Promise<void>;
191
249
  /**
192
250
  * Handles manual refresh of the index cache
193
251
  */
@@ -195,45 +253,39 @@ declare class ClusterSubscriber {
195
253
  /**
196
254
  * Invalidates a profile to force reloading it from the storage space
197
255
  *
198
- * @param {Object} message - decoded DumpRequest protobuf message
199
- * @return {void}
256
+ * @param message - decoded InvalidateProfile protobuf message
200
257
  */
201
- handleProfileInvalidation(message: any): void;
258
+ handleProfileInvalidation(message: InvalidateProfileMessage): Promise<void>;
202
259
  /**
203
260
  * Invalidates a role to force reloading it from the storage space
204
261
  *
205
- * @param {Object} message - decoded DumpRequest protobuf message
206
- * @return {void}
262
+ * @param message - decoded InvalidateRole protobuf message
207
263
  */
208
- handleRoleInvalidation(message: any): void;
264
+ handleRoleInvalidation(message: InvalidateRoleMessage): Promise<void>;
209
265
  /**
210
266
  * Adds a new index to the index cache
211
267
  *
212
- * @param {Object} message - decoded IndexCacheAdd protobuf message
213
- * @return {void}
268
+ * @param message - decoded AddIndex protobuf message
214
269
  */
215
- handleIndexAddition(message: any): void;
270
+ handleIndexAddition(message: AddIndexMessage): Promise<void>;
216
271
  /**
217
272
  * Removes indexes from the index cache
218
273
  *
219
- * @param {Object} message - decoded IndexCacheAdd protobuf message
220
- * @return {void}
274
+ * @param message - decoded RemoveIndexes protobuf message
221
275
  */
222
- handleIndexesRemoval(message: any): void;
276
+ handleIndexesRemoval(message: RemoveIndexesMessage): Promise<void>;
223
277
  /**
224
278
  * Adds a new collection to the index cache
225
279
  *
226
- * @param {Object} message - decoded IndexCacheAdd protobuf message
227
- * @return {void}
280
+ * @param message - decoded AddCollection protobuf message
228
281
  */
229
- handleCollectionAddition(message: any): void;
282
+ handleCollectionAddition(message: AddCollectionMessage): Promise<void>;
230
283
  /**
231
284
  * Removes a collection from the index cache
232
285
  *
233
- * @param {Object} message - decoded IndexCacheAdd protobuf message
234
- * @return {void}
286
+ * @param message - decoded RemoveCollection protobuf message
235
287
  */
236
- handleCollectionRemoval(message: any): void;
288
+ handleCollectionRemoval(message: RemoveCollectionMessage): Promise<void>;
237
289
  /**
238
290
  * Checks that we did receive a heartbeat from the remote node
239
291
  * If a heartbeat is missing, we allow 1 heartbeat round for the remote node
@@ -246,24 +298,26 @@ declare class ClusterSubscriber {
246
298
  dispose(): void;
247
299
  /**
248
300
  * Checks that the received message is the one we expect.
249
- * @param {Object} message - decoded protobuf message
250
- * @return {boolean} false: the message must be discarded, true otherwise
301
+ * @param message - decoded protobuf message
302
+ * @return false: the message must be discarded, true otherwise
251
303
  */
252
- validateMessage(message: any): boolean;
253
- evictNode({ broadcast, reason }: {
254
- broadcast: any;
255
- reason: any;
304
+ validateMessage(message: DecodedMessage): Promise<boolean>;
305
+ /**
306
+ * Fetches the messages with ids `from` to `upTo - 1` from the remote node,
307
+ * which keeps its last ones for that purpose, and applies them in order
308
+ * (#2785).
309
+ *
310
+ * Awaited where the gap is found, so nothing that came after it is applied
311
+ * before it: `listen()` stops reading meanwhile (ZeroMQ queues what arrives)
312
+ * and `sync()` stops replaying.
313
+ *
314
+ * @return whether every missing message was applied; `false` leaves the
315
+ * decision — eviction — to the caller
316
+ */
317
+ private recover;
318
+ evictNode({ broadcast, reason, }: {
319
+ broadcast: boolean;
320
+ reason: string;
256
321
  }): Promise<void>;
257
322
  }
258
- declare namespace ClusterSubscriber {
259
- export { stateEnum };
260
- }
261
- import { Subscriber } from "zeromq";
262
- import protobuf = require("protobufjs");
263
- import Long = require("long/umd/types");
264
- declare const stateEnum: Readonly<{
265
- BUFFERING: 1;
266
- SANE: 2;
267
- MISSING_HEARTBEAT: 3;
268
- EVICTED: 4;
269
- }>;
323
+ export = ClusterSubscriber;