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
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /*
3
+ * Kuzzle, a backend software, self-hostable and ready to use
4
+ * to power modern apps
5
+ *
6
+ * Copyright 2015-2022 Kuzzle
7
+ * mailto: support AT kuzzle.io
8
+ * website: http://kuzzle.io
9
+ *
10
+ * Licensed under the Apache License, Version 2.0 (the "License");
11
+ * you may not use this file except in compliance with the License.
12
+ * You may obtain a copy of the License at
13
+ *
14
+ * https://www.apache.org/licenses/LICENSE-2.0
15
+ *
16
+ * Unless required by applicable law or agreed to in writing, software
17
+ * distributed under the License is distributed on an "AS IS" BASIS,
18
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ * See the License for the specific language governing permissions and
20
+ * limitations under the License.
21
+ */
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ //# sourceMappingURL=KuzzleWebSocket.js.map
@@ -1,4 +1,4 @@
1
- import { JSONObject } from "kuzzle-sdk";
1
+ import type { JSONObject } from "./JSONObject";
2
2
  export type OpenApiDefinition = {
3
3
  swagger?: string;
4
4
  openapi?: string;
@@ -1,10 +1,10 @@
1
- import { JSONObject } from "kuzzle-sdk";
2
- import { PluginContext } from "../core/plugin/pluginContext";
3
- import { ControllerDefinition } from "./controllers/ControllerDefinition";
4
- import { PluginManifest } from "./PluginManifest";
5
- import { StrategyDefinition } from "./StrategyDefinition";
6
- import { PipeEventHandler, HookEventHandler } from "./EventHandler";
7
- import { ImportConfig } from "./Kuzzle";
1
+ import type { JSONObject } from "./JSONObject";
2
+ import type { PluginContext } from "../core/plugin/pluginContext";
3
+ import type { ControllerDefinition } from "./controllers/ControllerDefinition";
4
+ import type { PluginManifest } from "./PluginManifest";
5
+ import type { StrategyDefinition } from "./StrategyDefinition";
6
+ import type { HookEventHandler, PipeEventHandler } from "./EventHandler";
7
+ import type { ImportConfig } from "./Kuzzle";
8
8
  /**
9
9
  * Allows to define plugins controllers and actions
10
10
  */
@@ -14,8 +14,20 @@ export type PluginApiDefinition = {
14
14
  */
15
15
  [controller: string]: ControllerDefinition;
16
16
  };
17
+ /**
18
+ * A hook or pipe target given as the **name** of one of the plugin's methods
19
+ * instead of the function itself.
20
+ *
21
+ * @deprecated Pass the function. Kuzzle still resolves the name, and prints a
22
+ * deprecation warning when it registers the handler.
23
+ */
24
+ export type PluginMethodName = string;
17
25
  /**
18
26
  * Allows to define hooks on events
27
+ *
28
+ * Kuzzle also resolves a {@link PluginMethodName} in place of a handler, but
29
+ * the type admits only functions, as v2.56.0's did: code compiled against
30
+ * that reads a value back and calls it, which a `string` in the union breaks.
19
31
  */
20
32
  export type PluginHookDefinition = {
21
33
  /**
@@ -24,7 +36,12 @@ export type PluginHookDefinition = {
24
36
  [event: string]: HookEventHandler | HookEventHandler[];
25
37
  };
26
38
  /**
27
- * Allows to define pipes on events
39
+ * Allows to define pipes on events.
40
+ *
41
+ * A pipe either returns a promise, or takes a trailing `callback(error,
42
+ * request)`: both forms are documented, and the runner accepts both — and a
43
+ * {@link PluginMethodName}. The type is v2.56.0's, for the reason given on
44
+ * {@link PluginHookDefinition}.
28
45
  */
29
46
  export type PluginPipeDefinition = {
30
47
  /**
@@ -39,10 +56,18 @@ export declare abstract class Plugin {
39
56
  _manifest: PluginManifest;
40
57
  /**
41
58
  * Plugin context.
59
+ *
60
+ * Kuzzle hands it to `init(config, context)` and never assigns it here:
61
+ * storing it is the documented convention plugin authors follow. It is
62
+ * declared as always present (`!`) because that is what every method but
63
+ * `init` can rely on, and what v2.56.0 declared — an optional field made
64
+ * every `this.context.*` of a `strict` plugin a compile error.
42
65
  */
43
66
  context: PluginContext;
44
67
  /**
45
68
  * Plugin config.
69
+ *
70
+ * Declared as always present for the same reason as {@link context}.
46
71
  */
47
72
  config: JSONObject;
48
73
  /**
@@ -0,0 +1,67 @@
1
+ import type { JSONObject } from "./JSONObject";
2
+ import type { Logger } from "../kuzzle/Logger";
3
+ import type PluginManifest from "../core/plugin/pluginManifest";
4
+ import type { PluginContext } from "../core/plugin/pluginContext";
5
+ import type { PluginApiDefinition } from "./Plugin";
6
+ import type { HookEventHandler, RegisteredPipeHandler } from "./EventHandler";
7
+ /**
8
+ * The hooks Kuzzle accepts off a plugin object: the public
9
+ * `PluginHookDefinition`, plus the (deprecated) name of one of the plugin's
10
+ * methods in place of a handler — the `string` — which the public type
11
+ * leaves out (see there).
12
+ */
13
+ type InstanceHookDefinition = {
14
+ [event: string]: HookEventHandler | string | Array<HookEventHandler | string>;
15
+ };
16
+ /**
17
+ * The pipes Kuzzle accepts off a plugin object: either handler form, or a
18
+ * method name (see `PluginPipeDefinition`).
19
+ */
20
+ type InstancePipeDefinition = {
21
+ [event: string]: RegisteredPipeHandler | string | Array<RegisteredPipeHandler | string>;
22
+ };
23
+ /**
24
+ * What Kuzzle needs of a plugin's own object. The full contract third parties
25
+ * implement is the abstract `Plugin` in `lib/types/Plugin.ts`; this is the
26
+ * subset this wrapper reads, and every member is optional because a plugin is
27
+ * a user-supplied object that may declare none of them.
28
+ */
29
+ export interface PluginInstance {
30
+ /**
31
+ * A plugin is a user-supplied object and may expose any member: the named
32
+ * ones below are what Kuzzle reads, and handlers are routinely referenced by
33
+ * name (`controllers.foo.bar = "someMethod"`), which needs this signature.
34
+ */
35
+ [member: string]: unknown;
36
+ init?: (config: JSONObject, context: PluginContext) => unknown;
37
+ /**
38
+ * An application's own logger (`Backend.log`). Only an application has one —
39
+ * a plain plugin does not — and it lives here, on the instance, not on the
40
+ * `Plugin` wrapper: the shutdown path read it off the wrapper for years and
41
+ * silently flushed nothing (TD-51).
42
+ */
43
+ log?: Logger;
44
+ authenticators?: JSONObject;
45
+ version?: string;
46
+ _manifest?: PluginManifest;
47
+ api?: PluginApiDefinition;
48
+ imports?: JSONObject;
49
+ hooks?: InstanceHookDefinition;
50
+ pipes?: InstancePipeDefinition;
51
+ /** The pre-Kaaf controller shape: controller → action → handler or method name. */
52
+ controllers?: JSONObject;
53
+ routes?: JSONObject[];
54
+ /**
55
+ * `JSONObject`, not `StrategyDefinition`: that type is the *authoring*
56
+ * contract a plugin writes against, while this interface describes what
57
+ * Kuzzle reads off a plugin object before anything has validated it.
58
+ * `PluginsManager.validateStrategy` is what turns one into the other.
59
+ */
60
+ strategies?: JSONObject;
61
+ }
62
+ export interface PluginOptions {
63
+ name?: string;
64
+ application?: boolean;
65
+ deprecationWarning?: boolean;
66
+ }
67
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /*
3
+ * Kuzzle, a backend software, self-hostable and ready to use
4
+ * to power modern apps
5
+ *
6
+ * Copyright 2015-2022 Kuzzle
7
+ * mailto: support AT kuzzle.io
8
+ * website: http://kuzzle.io
9
+ *
10
+ * Licensed under the Apache License, Version 2.0 (the "License");
11
+ * you may not use this file except in compliance with the License.
12
+ * You may obtain a copy of the License at
13
+ *
14
+ * https://www.apache.org/licenses/LICENSE-2.0
15
+ *
16
+ * Unless required by applicable law or agreed to in writing, software
17
+ * distributed under the License is distributed on an "AS IS" BASIS,
18
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ * See the License for the specific language governing permissions and
20
+ * limitations under the License.
21
+ */
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ //# sourceMappingURL=PluginInstance.js.map
@@ -1,4 +1,4 @@
1
- import { PolicyRestrictions, OptimizedPolicyRestrictions } from "./PolicyRestrictions";
1
+ import type { PolicyRestrictions, OptimizedPolicyRestrictions } from "./PolicyRestrictions";
2
2
  /**
3
3
  * Policy definition for a role
4
4
  * and its restrictions
@@ -13,3 +13,11 @@ export type Target = {
13
13
  index?: string;
14
14
  collections?: string[];
15
15
  };
16
+ /**
17
+ * A target that has been through `BaseController.assertTargetsAreValid`.
18
+ *
19
+ * That assertion rejects a target missing `index` or `collections`, so the
20
+ * storage layer — which is only ever handed validated targets — can read both
21
+ * without re-checking them.
22
+ */
23
+ export type ValidatedTarget = Required<Target>;
@@ -1,6 +1,10 @@
1
- import { JSONObject } from "kuzzle-sdk";
1
+ import type { JSONObject } from "./JSONObject";
2
2
  /**
3
- * Kuzzle authentication token.
3
+ * Kuzzle authentication token, as a plain object.
4
+ *
5
+ * Not the type of `request.context.token`: that is the server's token model,
6
+ * exported as `KuzzleToken`, which has every member below except
7
+ * `connectionId` (ADR-0002 step 02, TD-07).
4
8
  */
5
9
  export interface Token extends JSONObject {
6
10
  /**
@@ -21,6 +25,14 @@ export interface Token extends JSONObject {
21
25
  userId: string;
22
26
  /**
23
27
  * Associated connection ID
28
+ *
29
+ * Never set on the tokens Kuzzle builds: a token can serve several
30
+ * connections, and the token manager keeps those links, not the token. The
31
+ * connection of a request is `request.context.connection.id`.
32
+ *
33
+ * @deprecated Never set, on v2.56.0 or since; kept so that code reading it
34
+ * still compiles. Use `request.context.connection.id` for a request's
35
+ * connection. To be removed in the next major (ADR-0002 step 04).
24
36
  */
25
37
  connectionId: string | null;
26
38
  /**
@@ -10,6 +10,11 @@ export type HttpConfiguration = {
10
10
  * Sets the default Access-Control-Allow-Origin HTTP
11
11
  * header used to send responses to the client.
12
12
  *
13
+ * A comma-separated list, or an array of origins. Kuzzle stores the array
14
+ * once the configuration is loaded — of `RegExp`s with
15
+ * `accessControlAllowOriginUseRegExp`. Declared `string` all the same, as
16
+ * v2.56.0 declared it: code compiled against that reads it as one.
17
+ *
13
18
  * @default "*"
14
19
  */
15
20
  accessControlAllowOrigin: string;
@@ -1,5 +1,22 @@
1
- import { DumpConfiguration, HttpConfiguration, LimitsConfiguration, PluginsConfiguration, SecurityConfiguration, ServerConfiguration, ServicesConfiguration } from "../index";
1
+ import type { DumpConfiguration, HttpConfiguration, LimitsConfiguration, PluginsConfiguration, SecurityConfiguration, ServerConfiguration, ServicesConfiguration } from "../index";
2
+ /**
3
+ * The **merged, runtime** configuration: a user's `.kuzzlerc` applied over the
4
+ * packaged defaults. Nothing here is optional, because `loadConfig()` always
5
+ * produces every section — this is what `global.kuzzle.config` holds.
6
+ *
7
+ * For what a user may *write*, see {@link KuzzleConfiguration}.
8
+ */
2
9
  export interface IKuzzleConfiguration {
10
+ /**
11
+ * Kuzzle version, populated at runtime from `package.json`.
12
+ *
13
+ * Optional here, like the other members v2.56.0's declaration did not have
14
+ * (`cluster.retransmitBuffer`, `internal.allowAllOrigins`, `vault`): a
15
+ * required new member breaks code that builds this type. The loaded
16
+ * configuration always has them (the packaged defaults and `loadConfig()`
17
+ * fill them), so Kuzzle's own readers assert them present.
18
+ */
19
+ version?: string;
3
20
  realtime: {
4
21
  /**
5
22
  * @default false
@@ -118,11 +135,43 @@ export interface IKuzzleConfiguration {
118
135
  * @default 5000
119
136
  */
120
137
  syncTimeout: number;
138
+ /**
139
+ * How many of its last sync messages a node keeps, so that a peer that
140
+ * missed some can ask for them again instead of evicting itself. The
141
+ * oldest are dropped as soon as either bound is exceeded; 0 disables it.
142
+ *
143
+ * Optional here for the reason given on {@link IKuzzleConfiguration.version}.
144
+ */
145
+ retransmitBuffer?: {
146
+ /**
147
+ * @default 1000
148
+ */
149
+ messages: number;
150
+ /**
151
+ * @default 16777216 (16 MiB)
152
+ */
153
+ bytes: number;
154
+ };
121
155
  };
122
156
  internal: {
123
157
  hash: any;
124
158
  notifiableProtocols: string[];
159
+ /**
160
+ * Derived at startup from "http.accessControlAllowOrigin": true when the
161
+ * configured origins contain the "*" wildcard.
162
+ *
163
+ * Optional here for the reason given on {@link IKuzzleConfiguration.version}.
164
+ */
165
+ allowAllOrigins?: boolean;
125
166
  };
167
+ /**
168
+ * Collection specifications to apply at startup, by index then collection.
169
+ * Read when the internal index holds none of its own — the database is not
170
+ * necessarily prepared when validation first loads.
171
+ *
172
+ * Their shape is a `RawSpecification`, which validation reads it as; the
173
+ * declaration is v2.56.0's, which code compiled against it assigns to.
174
+ */
126
175
  validation: Record<string, unknown>;
127
176
  controllers: {
128
177
  definition: {
@@ -134,5 +183,57 @@ export interface IKuzzleConfiguration {
134
183
  allowAdditionalActionProperties: boolean;
135
184
  };
136
185
  };
186
+ /**
187
+ * The vault section lets you configure the secrets vault behavior.
188
+ *
189
+ * Optional here for the reason given on {@link IKuzzleConfiguration.version}.
190
+ */
191
+ vault?: {
192
+ /**
193
+ * Opt-in for the new vault encryption algorithm (AES-256-GCM) instead
194
+ * of the legacy one (AES-256-CBC).
195
+ *
196
+ * @default false
197
+ */
198
+ newAlgorithm: boolean;
199
+ };
137
200
  }
201
+ /**
202
+ * What `lib/config/default.config.ts` ships: every section except the two
203
+ * `loadConfig()` derives at startup — `version`, read from `package.json`, and
204
+ * `internal`, computed from the rest (the hash seed, the notifiable protocols,
205
+ * the `allowAllOrigins` flag). Declaring the omission is what keeps the defaults
206
+ * file total — any other missing section is an error, not an oversight.
207
+ */
208
+ export type PackagedKuzzleConfiguration = Omit<IKuzzleConfiguration, "version" | "internal">;
209
+ /**
210
+ * Recursively optional. Written out here rather than imported because the user
211
+ * shape below is its only use: an override is always *partial at every depth*,
212
+ * and a shallow `Partial` demands the whole of any section it is given.
213
+ *
214
+ * Arrays and functions are left alone — a partial array element is not a thing
215
+ * a config override can express, and `_.merge` replaces arrays wholesale.
216
+ */
217
+ type DeepPartial<T> = T extends unknown[] ? T : T extends (...args: never[]) => unknown ? T : T extends object ? {
218
+ [K in keyof T]?: DeepPartial<T[K]>;
219
+ } : T;
220
+ /**
221
+ * What a **user** may supply: a `.kuzzlerc` file, the object passed to
222
+ * `app.config.merge()`, an environment override. Everything is optional, at
223
+ * every depth, because the packaged defaults provide the rest — and because
224
+ * that is what `rc` and `_.merge` actually accept.
225
+ *
226
+ * This is **not** the shape of `global.kuzzle.config`, which is this merged
227
+ * over `lib/config/default.config.ts` and therefore total — that one is
228
+ * {@link IKuzzleConfiguration}. One name used for both is what kept every
229
+ * config reader out of `strict`: see ADR-0001, TD-53 (#2756).
230
+ */
231
+ export type KuzzleConfigurationOverrides = DeepPartial<IKuzzleConfiguration>;
232
+ /**
233
+ * v2.56.0's name for a configuration that may omit whole sections — but not
234
+ * keys within one: `Partial`, not {@link KuzzleConfigurationOverrides}. Kept
235
+ * as it was, because code compiled against it reads a section it set back
236
+ * without `?.` (`config.limits!.documentsFetchCount` as a `number`).
237
+ */
138
238
  export type KuzzleConfiguration = Partial<IKuzzleConfiguration>;
239
+ export {};
@@ -1,5 +1,5 @@
1
- import { JSONObject } from "kuzzle-sdk";
2
- import { PasswordPolicy } from "../index";
1
+ import type { JSONObject } from "../JSONObject";
2
+ import type { PasswordPolicy } from "../index";
3
3
  export type PluginsConfiguration = {
4
4
  /**
5
5
  * Common configuration for all plugins.
@@ -166,5 +166,6 @@ export type PluginsConfiguration = {
166
166
  */
167
167
  passwordPolicies: PasswordPolicy[];
168
168
  };
169
+ } & {
169
170
  [pluginName: string]: JSONObject;
170
171
  };
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
- import { JSONObject } from "kuzzle-sdk";
4
- import { RoleDefinition, ProfileDefinition } from "../index";
3
+ import type { JSONObject } from "../JSONObject";
4
+ import type { RoleDefinition, ProfileDefinition } from "../index";
5
5
  export type SecurityConfiguration = {
6
6
  /**
7
7
  * Debugger configuration
@@ -22,6 +22,10 @@ export type SecurityConfiguration = {
22
22
  restrictedProfileIds: string[];
23
23
  /**
24
24
  * @deprecated Use `security.authToken` instead.
25
+ *
26
+ * `default.config.ts` always ships it, and `authToken`'s readers fall back
27
+ * to it — `authToken.algorithm ?? jwt.algorithm`. Optional all the same, as
28
+ * v2.56.0 declared it: a required member breaks code that builds this type.
25
29
  */
26
30
  jwt?: JSONObject;
27
31
  /**
@@ -1,5 +1,5 @@
1
- import { KuzzleLoggerConfig } from "kuzzle-logger";
2
- import { JSONObject } from "kuzzle-sdk";
1
+ import type { KuzzleLoggerConfig } from "kuzzle-logger";
2
+ import type { JSONObject } from "../JSONObject";
3
3
  export type ServerConfiguration = {
4
4
  /**
5
5
  * The maximum size of an incoming request.
@@ -1,4 +1,4 @@
1
- import { PublicCacheRedisConfiguration, InternalCacheConfiguration, StorageEngineElasticsearch } from "../index";
1
+ import type { PublicCacheRedisConfiguration, InternalCacheConfiguration, StorageEngineElasticsearch } from "../index";
2
2
  export type ServicesConfiguration = {
3
3
  common: {
4
4
  /**
@@ -0,0 +1,131 @@
1
+ /**
2
+ * The cache service relies on Redis sample settings for Redis service (see also https://github.com/luin/ioredis)
3
+ *
4
+ * 1. using a single Redis database:
5
+ * * node:
6
+ * * host:
7
+ * The host on which Redis can be reached.
8
+ * Can take an IP address, an URI or a hostname
9
+ * * port:
10
+ * The port on which Redis is running its database:
11
+ * * (optional, deprecated) database:
12
+ * ID of the redis database (default: 0)
13
+ * NOTE: this option is deprecated and will be removed in Kuzzle v3.
14
+ * Use 'options.db' instead. If both options are set, then
15
+ * "options.db" will take precedence.
16
+ * * (optional) options:
17
+ * Redis specific options compatible with IORedis.
18
+ * See Redis client constructor available options:
19
+ * https://github.com/luin/ioredis/blob/master/API.md#new-redisport-host-options
20
+ *
21
+ * 2. using a master/slaves Redis instance with Redis sentinels
22
+ * (cf. http://redis.io/topics/sentinel):
23
+ * * node:
24
+ * * sentinels:
25
+ * array of sentinels instances:
26
+ * * host:
27
+ * Host name/address of the sentinel server
28
+ * Can be an IP address, an URI or a hostname
29
+ * * port:
30
+ * Network port opened by Redis on the sentinel server
31
+ * * name:
32
+ * Group of Redis instances composed of a master and one
33
+ * or more slaves
34
+ * * (optional, deprecated) database:
35
+ * ID of the redis database (default: 0)
36
+ * NOTE: this option is deprecated and will be removed in Kuzzle v3.
37
+ * Use 'options.db' instead. If both options are set, then
38
+ * "options.db" will take precedence.
39
+ * * (optional) options:
40
+ * Redis specific options compatible with IORedis.
41
+ * See Redis client constructor available options:
42
+ * https://github.com/luin/ioredis/blob/master/API.md#redis--eventemitter
43
+ *
44
+ * 3. using a redis cluster (cf. http://redis.io/topics/cluster-spec):
45
+ * * nodes: array of master nodes of the cluster
46
+ * * host:
47
+ * Host name/address of a redis cluster node
48
+ * Can be an IP address, an URI or a hostname
49
+ * * port:
50
+ * Network port opened by the redis cluster node
51
+ * * (optional, deprecated) database:
52
+ * ID of the redis database (default: 0)
53
+ * NOTE: this option is deprecated and will be removed in Kuzzle v3.
54
+ * Use 'options.db' instead. If both options are set, then
55
+ * "options.db" will take precedence.
56
+ * * (optional) options:
57
+ * Redis specific options compatible with IORedis.
58
+ * See Redis client constructor available options:
59
+ * https://github.com/luin/ioredis/blob/master/API.md#new-redisport-host-options
60
+ * * (optional) clusterOptions:
61
+ * Redis Cluster specific options compatible with IORedis.
62
+ * See Redis Cluster client constructor available options:
63
+ * https://github.com/luin/ioredis/blob/master/API.md#new-clusterstartupnodes-options
64
+ * * (optional) overrideDnsLookup:
65
+ * Only available when using a Redis Cluster config.
66
+ * Use with caution: if set to true, it makes Kuzzle skip DNS validation for TLS certificates
67
+ * This is the only way to connect to an AWS Elasticache Cluster with TLS encryption.
68
+ * See: https://github.com/luin/ioredis#special-note-aws-elasticache-clusters-with-tls
69
+ */
70
+ export type BaseCacheRedisConfiguration = {
71
+ /**
72
+ * @default 'redis'
73
+ */
74
+ backend: "redis";
75
+ clusterOptions: {
76
+ /**
77
+ * @default true
78
+ */
79
+ enableReadyCheck: boolean;
80
+ /**
81
+ * Custom DNS lookup function, automatically set when `overrideDnsLookup`
82
+ * is true. Only relevant when using a Redis Cluster config.
83
+ */
84
+ dnsLookup?: (address: string, callback: (err: Error | null, address: string) => void) => void;
85
+ };
86
+ node: {
87
+ /**
88
+ * @default 'localhost'
89
+ */
90
+ host: string;
91
+ /**
92
+ * @default 6379
93
+ */
94
+ port: number;
95
+ };
96
+ /**
97
+ * Array of master nodes of the cluster. Only used when configuring a
98
+ * Redis Cluster (see option 3 in the docblock above).
99
+ */
100
+ nodes?: Array<{
101
+ host: string;
102
+ port: number;
103
+ }>;
104
+ /**
105
+ * * (optional) options:
106
+ * Redis specific options compatible with IORedis.
107
+ * See Redis client constructor available options:
108
+ * https://github.com/luin/ioredis/blob/master/API.md#new-redisport-host-options
109
+ *
110
+ */
111
+ options?: Record<string, unknown>;
112
+ /**
113
+ * Only available when using a Redis Cluster config.
114
+ * Use with caution: if set to true, it makes Kuzzle skip DNS validation for TLS certificates
115
+ * This is the only way to connect to an AWS Elasticache Cluster with TLS encryption.
116
+ * See: https://github.com/luin/ioredis#special-note-aws-elasticache-clusters-with-tls
117
+ * @default false
118
+ */
119
+ overrideDnsLookup: boolean;
120
+ /**
121
+ * Service initialization timeout, in milliseconds. Falls back to
122
+ * `config.services.common.defaultInitTimeout` when not set.
123
+ */
124
+ initTimeout?: number;
125
+ /**
126
+ * Delay, in milliseconds, between application-level pings sent to keep
127
+ * the connection alive (e.g. required by some managed Redis providers).
128
+ * Disabled when not set.
129
+ */
130
+ pingKeepAlive?: number;
131
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=BaseCacheRedisConfiguration.js.map