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,14 +1,9 @@
1
- export = PrivilegedPluginContext;
1
+ import { PluginContext } from "./pluginContext";
2
2
  /**
3
- * @class PrivilegedPluginContext
4
- * @extends PluginContext
3
+ * The context handed to a plugin declared `privileged` in its manifest: the
4
+ * same surface as a regular plugin's, plus the Kuzzle instance itself.
5
5
  */
6
6
  declare class PrivilegedPluginContext extends PluginContext {
7
- /**
8
- * @param {Kuzzle} kuzzle
9
- * @param {string} pluginName
10
- * @constructor
11
- */
12
7
  constructor(pluginName: string);
13
8
  }
14
- import { PluginContext } from "./pluginContext";
9
+ export = PrivilegedPluginContext;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /*
2
3
  * Kuzzle, a backend software, self-hostable and ready to use
3
4
  * to power modern apps
@@ -18,18 +19,12 @@
18
19
  * See the License for the specific language governing permissions and
19
20
  * limitations under the License.
20
21
  */
21
- "use strict";
22
- const { PluginContext } = require("./pluginContext");
22
+ const pluginContext_1 = require("./pluginContext");
23
23
  /**
24
- * @class PrivilegedPluginContext
25
- * @extends PluginContext
24
+ * The context handed to a plugin declared `privileged` in its manifest: the
25
+ * same surface as a regular plugin's, plus the Kuzzle instance itself.
26
26
  */
27
- class PrivilegedPluginContext extends PluginContext {
28
- /**
29
- * @param {Kuzzle} kuzzle
30
- * @param {string} pluginName
31
- * @constructor
32
- */
27
+ class PrivilegedPluginContext extends pluginContext_1.PluginContext {
33
28
  constructor(pluginName) {
34
29
  super(pluginName);
35
30
  this.accessors.kuzzle = global.kuzzle;
@@ -1,25 +1,16 @@
1
- export = actionEnum;
2
- /**
3
- * Enum for the document's notification "action" option
4
- */
5
- type actionEnum = notifyActionEnum;
6
1
  /**
7
- * @typedef {number} notifyActionEnum
8
- */
9
- /**
10
- * Enum for the document's notification "action" option
11
- * @readOnly
12
- * @enum {notifyActionEnum}
2
+ * Enum for the document's notification "action" option.
3
+ *
4
+ * `as const` is type-only (no runtime change) and is what gives the members
5
+ * literal types, so `NotifyActionEnum` below is a real union instead of
6
+ * widening to `number`.
13
7
  */
14
8
  declare const actionEnum: Readonly<{
15
- CREATE: 1;
16
- DELETE: 2;
17
- REPLACE: 3;
18
- UPDATE: 4;
19
- UPSERT: 5;
20
- WRITE: 6;
9
+ readonly CREATE: 1;
10
+ readonly DELETE: 2;
11
+ readonly REPLACE: 3;
12
+ readonly UPDATE: 4;
13
+ readonly UPSERT: 5;
14
+ readonly WRITE: 6;
21
15
  }>;
22
- declare namespace actionEnum {
23
- export { notifyActionEnum };
24
- }
25
- type notifyActionEnum = number;
16
+ export = actionEnum;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /*
2
3
  * Kuzzle, a backend software, self-hostable and ready to use
3
4
  * to power modern apps
@@ -18,14 +19,12 @@
18
19
  * See the License for the specific language governing permissions and
19
20
  * limitations under the License.
20
21
  */
21
- "use strict";
22
22
  /**
23
- * @typedef {number} notifyActionEnum
24
- */
25
- /**
26
- * Enum for the document's notification "action" option
27
- * @readOnly
28
- * @enum {notifyActionEnum}
23
+ * Enum for the document's notification "action" option.
24
+ *
25
+ * `as const` is type-only (no runtime change) and is what gives the members
26
+ * literal types, so `NotifyActionEnum` below is a real union instead of
27
+ * widening to `number`.
29
28
  */
30
29
  const actionEnum = Object.freeze({
31
30
  CREATE: 1,
@@ -1,4 +1,10 @@
1
- import { RealtimeScope, RealtimeUsers } from "../../types";
1
+ import type { RealtimeScope, RealtimeUsers } from "../../types";
2
+ /**
3
+ * A channel's document scope. Wider than `RealtimeScope`, which also types a
4
+ * document *notification* and so cannot hold `"none"`: a `"none"`-scoped
5
+ * channel takes user events and no document event (TD-74).
6
+ */
7
+ export type ChannelScope = RealtimeScope | "none";
2
8
  /**
3
9
  * A channel define how notifications should be send for a particular realtime
4
10
  * room.
@@ -27,8 +33,8 @@ export declare class Channel {
27
33
  * This is 10x faster than murmur.
28
34
  */
29
35
  static hash(channel: Channel): string;
30
- static USERS_ALLOWED_VALUES: string[];
31
- static SCOPE_ALLOWED_VALUES: string[];
36
+ static readonly USERS_ALLOWED_VALUES: string[];
37
+ static readonly SCOPE_ALLOWED_VALUES: readonly string[];
32
38
  /**
33
39
  * Identifier of the channel.
34
40
  *
@@ -41,7 +47,7 @@ export declare class Channel {
41
47
  *
42
48
  * @default "all"
43
49
  */
44
- scope: RealtimeScope;
50
+ scope: ChannelScope;
45
51
  /**
46
52
  * Define if notification should be send when users join or leave the channel.
47
53
  *
@@ -57,7 +63,7 @@ export declare class Channel {
57
63
  */
58
64
  cluster: boolean;
59
65
  constructor(roomId: string, { scope, users, propagate, }?: {
60
- scope?: RealtimeScope;
66
+ scope?: ChannelScope;
61
67
  users?: RealtimeUsers;
62
68
  propagate?: boolean;
63
69
  });
@@ -82,8 +82,13 @@ class Channel {
82
82
  case "in":
83
83
  str += "2";
84
84
  break;
85
+ // "out" and "none" both hashed to "3", so two subscriptions to one room
86
+ // that differed only there shared a channel, and the second got the
87
+ // first one's configuration (`Room.createChannel` keeps the first).
88
+ // "none" keeps "3" — it is the default, and every default channel keeps
89
+ // its name — and "out" takes the next free digit (TD-74).
85
90
  case "out":
86
- str += "3";
91
+ str += "4";
87
92
  break;
88
93
  case "none":
89
94
  str += "3";
@@ -107,6 +112,9 @@ class Channel {
107
112
  case "out":
108
113
  str += "3";
109
114
  break;
115
+ // No case for "none", on purpose: it adds no digit, and since every
116
+ // other field always adds exactly one, a two-digit suffix is already
117
+ // unique to it. A case would only rename those channels (TD-74).
110
118
  }
111
119
  return str;
112
120
  }
@@ -125,5 +133,12 @@ class Channel {
125
133
  }
126
134
  exports.Channel = Channel;
127
135
  Channel.USERS_ALLOWED_VALUES = ["all", "in", "out", "none"];
128
- Channel.SCOPE_ALLOWED_VALUES = Channel.USERS_ALLOWED_VALUES;
136
+ // Its own array: it used to be `USERS_ALLOWED_VALUES` itself, which is how
137
+ // `"none"` became a valid scope without the type or the hash knowing.
138
+ Channel.SCOPE_ALLOWED_VALUES = [
139
+ "all",
140
+ "in",
141
+ "out",
142
+ "none",
143
+ ];
129
144
  //# sourceMappingURL=channel.js.map
@@ -1,4 +1,4 @@
1
- import { JSONObject } from "kuzzle-sdk";
1
+ import type { JSONObject } from "../../types/JSONObject";
2
2
  /**
3
3
  * Each connection can subscribe to many rooms with different sets of volatile
4
4
  * data.
@@ -24,5 +24,5 @@ export declare class ConnectionRooms {
24
24
  /**
25
25
  * Returns the volatile data for this room subscription
26
26
  */
27
- getVolatile(roomId: string): JSONObject;
27
+ getVolatile(roomId: string): JSONObject | undefined;
28
28
  }
@@ -1,6 +1,7 @@
1
1
  import { KuzzleRequest } from "../../api/request";
2
- import { RoomList } from "../../types";
3
- import { User } from "../../model/security/user";
2
+ import type { RoomList } from "../../types";
3
+ import { Room } from "./room";
4
+ import type { User } from "../../model/security/user";
4
5
  /**
5
6
  * The HotelClerk is responsible of keeping the list of rooms and subscriptions
6
7
  * made to those rooms.
@@ -31,7 +32,12 @@ export declare class HotelClerk {
31
32
  *
32
33
  * Map<roomId, Room>
33
34
  */
34
- private rooms;
35
+ /**
36
+ * Not `private`: `core/realtime/notifier` reads it directly
37
+ * (`this.module.hotelClerk.rooms.get(room)`) to resolve a room's channels.
38
+ * The modifier never matched that long-standing cross-class access.
39
+ */
40
+ rooms: Map<string, Room>;
35
41
  /**
36
42
  * Current subscribing connections handled by the HotelClerk.
37
43
  *
@@ -68,7 +74,7 @@ export declare class HotelClerk {
68
74
  subscribe(request: KuzzleRequest): Promise<{
69
75
  channel: string;
70
76
  roomId: string;
71
- }>;
77
+ } | null>;
72
78
  /**
73
79
  * Returns the list of collections of an index with realtime rooms.
74
80
  */
@@ -80,8 +86,8 @@ export declare class HotelClerk {
80
86
  * filters will be fetched from the cluster.
81
87
  */
82
88
  join(request: KuzzleRequest): Promise<{
83
- channel: any;
84
- roomId: any;
89
+ channel: string;
90
+ roomId: string;
85
91
  }>;
86
92
  /**
87
93
  * Return the list of index, collection, rooms and subscribing connections
@@ -88,6 +88,11 @@ class HotelClerk {
88
88
  *
89
89
  * Map<roomId, Room>
90
90
  */
91
+ /**
92
+ * Not `private`: `core/realtime/notifier` reads it directly
93
+ * (`this.module.hotelClerk.rooms.get(room)`) to resolve a room's channels.
94
+ * The modifier never matched that long-standing cross-class access.
95
+ */
91
96
  this.rooms = new Map();
92
97
  /**
93
98
  * Current subscribing connections handled by the HotelClerk.
@@ -207,15 +212,19 @@ class HotelClerk {
207
212
  * is made on the very last moment and is essential to ensure
208
213
  * that no zombie subscription can be performed
209
214
  */
210
- if (!global.kuzzle.router.isConnectionAlive(request.context)) {
215
+ const connectionId = request.context.connection.id;
216
+ // A subscription is keyed by the connection that made it, so no connection
217
+ // id is the same dead connection this check is here to catch.
218
+ if (connectionId === null ||
219
+ !global.kuzzle.router.isConnectionAlive(request.context)) {
211
220
  return null;
212
221
  }
213
222
  let normalized;
214
223
  try {
215
- normalized = this.koncorde.normalize(request.input.body, (0, koncordeCompat_1.toKoncordeIndex)(index, collection));
224
+ normalized = this.koncorde.normalize(request.input.body ?? {}, (0, koncordeCompat_1.toKoncordeIndex)(index, collection));
216
225
  }
217
226
  catch (e) {
218
- throw kerror.get("api", "assert", "koncorde_dsl_error", e.message);
227
+ throw kerror.get("api", "assert", "koncorde_dsl_error", e instanceof Error ? e.message : String(e));
219
228
  }
220
229
  this.createRoom(normalized);
221
230
  /**
@@ -249,7 +258,7 @@ class HotelClerk {
249
258
  }
250
259
  };
251
260
  const { channel } = await this.subscribeToRoom(normalized.id, request, afterSubscribeCallback);
252
- const subscription = new subscription_1.Subscription(index, collection, request.input.body, normalized.id, request.context.connection.id, request.context.user);
261
+ const subscription = new subscription_1.Subscription(index, collection, request.input.body ?? {}, normalized.id, connectionId, request.context.user);
253
262
  global.kuzzle.emit("core:realtime:user:subscribe:after", subscription);
254
263
  return {
255
264
  channel,
@@ -269,7 +278,7 @@ class HotelClerk {
269
278
  * filters will be fetched from the cluster.
270
279
  */
271
280
  async join(request) {
272
- const roomId = request.input.body.roomId;
281
+ const roomId = request.input.body?.roomId;
273
282
  if (!this.rooms.has(roomId)) {
274
283
  const normalized = await global.kuzzle.ask("cluster:realtime:filters:get", roomId);
275
284
  if (!normalized) {
@@ -322,15 +331,16 @@ class HotelClerk {
322
331
  const toRemove = [];
323
332
  const collectionNames = Object.keys(collections);
324
333
  // Iterate from the end so we process the most recently added collections first
325
- for (let i = collectionNames.length - 1; i >= 0; i--) {
326
- const collection = collectionNames[i];
334
+ // Reversed copy rather than a backwards index loop: same order, and the
335
+ // entries come out of it already narrowed.
336
+ for (const collection of [...collectionNames].reverse()) {
327
337
  isAllowedRequest.input.resource.collection = collection;
328
338
  if (!(await user.isActionAllowed(isAllowedRequest))) {
329
339
  toRemove.push(collection);
330
340
  }
331
341
  }
332
342
  for (const collection of toRemove) {
333
- delete fullStateRooms[index][collection];
343
+ delete fullStateRooms[index]?.[collection];
334
344
  }
335
345
  }
336
346
  return fullStateRooms;
@@ -369,7 +379,7 @@ class HotelClerk {
369
379
  this.subscriptions.set(connectionId, connectionRooms);
370
380
  }
371
381
  connectionRooms.addRoom(roomId, volatile);
372
- this.rooms.get(roomId).addConnection(connectionId);
382
+ this.rooms.get(roomId)?.addConnection(connectionId);
373
383
  }
374
384
  /**
375
385
  * Create new room if needed
@@ -512,7 +522,7 @@ class HotelClerk {
512
522
  try {
513
523
  await global.kuzzle.pipe("room:remove", roomId);
514
524
  }
515
- catch (e) {
525
+ catch {
516
526
  return;
517
527
  }
518
528
  }
@@ -528,12 +538,20 @@ class HotelClerk {
528
538
  let notifyPromise;
529
539
  const { scope, users, propagate } = request.input.args;
530
540
  const connectionId = request.context.connection.id;
541
+ // Same as `subscribe`: a room is joined by a connection, and there is none.
542
+ if (connectionId === null) {
543
+ throw kerror.get("core", "realtime", "not_subscribed", "", roomId);
544
+ }
531
545
  const channel = new channel_1.Channel(roomId, { propagate, scope, users });
532
546
  const connectionRooms = this.subscriptions.get(connectionId);
533
547
  const room = this.rooms.get(roomId);
548
+ // Every caller creates or fetches the room before subscribing to it.
549
+ if (room === undefined) {
550
+ throw kerror.get("core", "realtime", "room_not_found", roomId);
551
+ }
534
552
  if (!connectionRooms || !connectionRooms.hasRoom(roomId)) {
535
553
  subscribed = true;
536
- this.registerSubscription(connectionId, roomId, request.input.volatile);
554
+ this.registerSubscription(connectionId, roomId, request.input.volatile ?? {});
537
555
  notifyPromise = this.module.notifier.notifyUser(roomId, request, "in", {
538
556
  count: room.size,
539
557
  });
@@ -1,8 +1,13 @@
1
- export = RealtimeModule;
1
+ import Notifier from "./notifier";
2
+ import { HotelClerk } from "./hotelClerk";
3
+ /**
4
+ * Wires the realtime components together. Both receive this module: the
5
+ * notifier reads `module.hotelClerk.rooms` to resolve a room's channels.
6
+ */
2
7
  declare class RealtimeModule {
3
8
  notifier: Notifier;
4
9
  hotelClerk: HotelClerk;
10
+ constructor();
5
11
  init(): Promise<void>;
6
12
  }
7
- import Notifier = require("./notifier");
8
- import { HotelClerk } from "./hotelClerk";
13
+ export = RealtimeModule;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /*
2
3
  * Kuzzle, a backend software, self-hostable and ready to use
3
4
  * to power modern apps
@@ -18,13 +19,19 @@
18
19
  * See the License for the specific language governing permissions and
19
20
  * limitations under the License.
20
21
  */
21
- "use strict";
22
- const Notifier = require("./notifier");
23
- const { HotelClerk } = require("./hotelClerk");
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ const notifier_1 = __importDefault(require("./notifier"));
26
+ const hotelClerk_1 = require("./hotelClerk");
27
+ /**
28
+ * Wires the realtime components together. Both receive this module: the
29
+ * notifier reads `module.hotelClerk.rooms` to resolve a room's channels.
30
+ */
24
31
  class RealtimeModule {
25
32
  constructor() {
26
- this.notifier = new Notifier(this);
27
- this.hotelClerk = new HotelClerk(this);
33
+ this.notifier = new notifier_1.default(this);
34
+ this.hotelClerk = new hotelClerk_1.HotelClerk(this);
28
35
  }
29
36
  async init() {
30
37
  await this.notifier.init();
@@ -1,34 +1,63 @@
1
- export = DocumentNotification;
1
+ import type { JSONObject } from "../../../types/JSONObject";
2
+ import type { KuzzleRequest } from "../../../api/request";
3
+ import type { RealtimeScope } from "../../../types";
4
+ import "../../../types/Global";
5
+ /**
6
+ * Coarse event a document action belongs to. Subscribers filter on it, so the
7
+ * mapping below is part of the realtime contract.
8
+ */
9
+ type DocumentNotificationEvent = "write" | "delete" | "publish";
10
+ /**
11
+ * Constructor payload. Two producers fill it: `fromRequest` below, and
12
+ * `cluster/subscriber` when it rebuilds a notification from a decoded protobuf
13
+ * message — hence the wide `result` and `volatile`.
14
+ */
15
+ interface DocumentNotificationOptions {
16
+ status: number;
17
+ action: string;
18
+ scope: RealtimeScope;
19
+ result: JSONObject;
20
+ node: string;
21
+ requestId?: string;
22
+ timestamp: number;
23
+ /**
24
+ * Nullable, like the other four below: they come straight off the request,
25
+ * where each is nullable, and a notification built from a request without one
26
+ * has always been emitted — and received — with `null` in that field.
27
+ */
28
+ volatile: JSONObject | null;
29
+ index: string;
30
+ collection: string;
31
+ controller: string | null;
32
+ protocol: string | null;
33
+ }
2
34
  /**
3
35
  * Document notification document
4
- *
5
- * @class DocumentNotification
6
36
  */
7
37
  declare class DocumentNotification {
38
+ type: string;
39
+ status: number;
40
+ action: string;
41
+ scope: RealtimeScope;
42
+ result: JSONObject;
43
+ node: string;
44
+ event: DocumentNotificationEvent;
45
+ requestId?: string;
46
+ timestamp: number;
47
+ volatile: JSONObject | null;
48
+ index: string;
49
+ collection: string;
50
+ controller: string | null;
51
+ protocol: string | null;
52
+ constructor(opts: DocumentNotificationOptions);
8
53
  /**
9
54
  * Instantiates a DocumentNotification object from a KuzzleRequest
10
55
  *
11
- * @param {Request} request - the request object from which the notification is issued
12
- * @param {string} scope - The scope of the notification (in or out)
13
- * @param {state} state - The document state (pending or done)
14
- * @param {action} action - Action performed on the document
15
- * @param {result} content - Notification content
16
- * @returns {DocumentNotification}
56
+ * @param request - the request object from which the notification is issued
57
+ * @param scope - The scope of the notification (in or out)
58
+ * @param action - Action performed on the document
59
+ * @param result - Notification content
17
60
  */
18
- static fromRequest(request: Request, scope: string, action: any, result: any): DocumentNotification;
19
- constructor(opts: any);
20
- type: string;
21
- status: any;
22
- action: any;
23
- scope: any;
24
- result: any;
25
- node: any;
26
- event: string;
27
- requestId: any;
28
- timestamp: any;
29
- volatile: any;
30
- index: any;
31
- collection: any;
32
- controller: any;
33
- protocol: any;
61
+ static fromRequest(request: KuzzleRequest, scope: RealtimeScope, action: string, result: JSONObject): DocumentNotification;
34
62
  }
63
+ export = DocumentNotification;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /*
2
3
  * Kuzzle, a backend software, self-hostable and ready to use
3
4
  * to power modern apps
@@ -18,8 +19,8 @@
18
19
  * See the License for the specific language governing permissions and
19
20
  * limitations under the License.
20
21
  */
21
- "use strict";
22
- const { InternalError } = require("../../../kerror/errors");
22
+ const errors_1 = require("../../../kerror/errors");
23
+ require("../../../types/Global");
23
24
  function getEvent(action) {
24
25
  switch (action) {
25
26
  case "create":
@@ -42,13 +43,11 @@ function getEvent(action) {
42
43
  case "publish":
43
44
  return "publish";
44
45
  default:
45
- throw new InternalError(`Unknown event type for action "${action}"`);
46
+ throw new errors_1.InternalError(`Unknown event type for action "${action}"`);
46
47
  }
47
48
  }
48
49
  /**
49
50
  * Document notification document
50
- *
51
- * @class DocumentNotification
52
51
  */
53
52
  class DocumentNotification {
54
53
  constructor(opts) {
@@ -70,19 +69,17 @@ class DocumentNotification {
70
69
  /**
71
70
  * Instantiates a DocumentNotification object from a KuzzleRequest
72
71
  *
73
- * @param {Request} request - the request object from which the notification is issued
74
- * @param {string} scope - The scope of the notification (in or out)
75
- * @param {state} state - The document state (pending or done)
76
- * @param {action} action - Action performed on the document
77
- * @param {result} content - Notification content
78
- * @returns {DocumentNotification}
72
+ * @param request - the request object from which the notification is issued
73
+ * @param scope - The scope of the notification (in or out)
74
+ * @param action - Action performed on the document
75
+ * @param result - Notification content
79
76
  */
80
77
  static fromRequest(request, scope, action, result) {
81
78
  return new DocumentNotification({
82
79
  action,
83
- collection: request.input.resource.collection,
80
+ collection: request.input.args.collection,
84
81
  controller: request.input.controller,
85
- index: request.input.resource.index,
82
+ index: request.input.args.index,
86
83
  node: global.kuzzle.id,
87
84
  protocol: request.context.connection.protocol,
88
85
  requestId: request.id,
@@ -1,3 +1,9 @@
1
- export let DocumentNotification: typeof import("./document");
2
- export let ServerNotification: typeof import("./server");
3
- export let UserNotification: typeof import("./user");
1
+ import DocumentNotification from "./document";
2
+ import ServerNotification from "./server";
3
+ import UserNotification from "./user";
4
+ declare const _default: {
5
+ DocumentNotification: typeof DocumentNotification;
6
+ ServerNotification: typeof ServerNotification;
7
+ UserNotification: typeof UserNotification;
8
+ };
9
+ export = _default;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /*
2
3
  * Kuzzle, a backend software, self-hostable and ready to use
3
4
  * to power modern apps
@@ -18,10 +19,15 @@
18
19
  * See the License for the specific language governing permissions and
19
20
  * limitations under the License.
20
21
  */
21
- "use strict";
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ const document_1 = __importDefault(require("./document"));
26
+ const server_1 = __importDefault(require("./server"));
27
+ const user_1 = __importDefault(require("./user"));
22
28
  module.exports = {
23
- DocumentNotification: require("./document"),
24
- ServerNotification: require("./server"),
25
- UserNotification: require("./user"),
29
+ DocumentNotification: document_1.default,
30
+ ServerNotification: server_1.default,
31
+ UserNotification: user_1.default,
26
32
  };
27
33
  //# sourceMappingURL=index.js.map
@@ -1,17 +1,14 @@
1
- export = ServerNotification;
1
+ import "../../../types/Global";
2
2
  /**
3
- * Creates a notification response from a given room, request object, and content.
4
- *
5
- * @class ServerNotification
6
- * @param {Request} request - the request object from which the notification is issued
7
- * @param {string} type - Notification type
8
- * @param {string} message - Notification message
3
+ * A notification issued by the server itself rather than by a request —
4
+ * currently only "TokenExpired".
9
5
  */
10
6
  declare class ServerNotification {
11
- constructor(type: any, message: any);
12
7
  status: number;
13
8
  info: string;
14
- message: any;
15
- type: any;
9
+ message: string;
10
+ type: string;
16
11
  node: string;
12
+ constructor(type: string, message: string);
17
13
  }
14
+ export = ServerNotification;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /*
2
3
  * Kuzzle, a backend software, self-hostable and ready to use
3
4
  * to power modern apps
@@ -18,14 +19,10 @@
18
19
  * See the License for the specific language governing permissions and
19
20
  * limitations under the License.
20
21
  */
21
- "use strict";
22
+ require("../../../types/Global");
22
23
  /**
23
- * Creates a notification response from a given room, request object, and content.
24
- *
25
- * @class ServerNotification
26
- * @param {Request} request - the request object from which the notification is issued
27
- * @param {string} type - Notification type
28
- * @param {string} message - Notification message
24
+ * A notification issued by the server itself rather than by a request —
25
+ * currently only "TokenExpired".
29
26
  */
30
27
  class ServerNotification {
31
28
  constructor(type, message) {