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,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,38 @@
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 kerror = require("../../kerror");
23
- const { NativeController } = require("./baseController");
24
- const actionEnum = require("../../core/realtime/actionEnum");
25
- const { assertHasBody, assertHasIndexAndCollection, } = require("../../util/requestAssertions");
26
- const extractFields = require("../../util/extractFields");
27
- const { dumpCollectionDocuments } = require("../../util/dump-collection");
22
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ var desc = Object.getOwnPropertyDescriptor(m, k);
25
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
26
+ desc = { enumerable: true, get: function() { return m[k]; } };
27
+ }
28
+ Object.defineProperty(o, k2, desc);
29
+ }) : (function(o, m, k, k2) {
30
+ if (k2 === undefined) k2 = k;
31
+ o[k2] = m[k];
32
+ }));
33
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
34
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
35
+ }) : function(o, v) {
36
+ o["default"] = v;
37
+ });
38
+ var __importStar = (this && this.__importStar) || function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ const actionEnum = __importStar(require("../../core/realtime/actionEnum"));
49
+ const kerror = __importStar(require("../../kerror"));
50
+ const dump_collection_1 = require("../../util/dump-collection");
51
+ const requestAssertions_1 = require("../../util/requestAssertions");
52
+ const baseController_1 = require("./baseController");
53
+ const extractFields_1 = __importDefault(require("../../util/extractFields"));
28
54
  /**
29
55
  * @description actions available on the document Controller (used by generic events)
30
56
  * @key actions
@@ -59,7 +85,7 @@ const actions = {
59
85
  /**
60
86
  * @class DocumentController
61
87
  */
62
- class DocumentController extends NativeController {
88
+ class DocumentController extends baseController_1.NativeController {
63
89
  constructor() {
64
90
  super(Object.keys(actions));
65
91
  }
@@ -76,7 +102,9 @@ class DocumentController extends NativeController {
76
102
  async search(request) {
77
103
  const { from, size, scrollTTL, searchBody } = request.getSearchParams();
78
104
  const index = request.getIndex({ required: false });
79
- const collection = request.getCollection({ required: false });
105
+ const collection = request.getCollection({
106
+ required: false,
107
+ });
80
108
  const targets = request.getArray("targets", []);
81
109
  const lang = request.getLangParam();
82
110
  if (!index && !collection && (!targets || targets.length === 0)) {
@@ -146,27 +174,8 @@ class DocumentController extends NativeController {
146
174
  /**
147
175
  * @param {Request} request
148
176
  */
149
- async mExists(request) {
150
- let ids;
151
- if (request.input.body &&
152
- request.input.body.ids &&
153
- Object.keys(request.input.body.ids).length) {
154
- ids = request.getBodyArray("ids");
155
- }
156
- else {
157
- ids = request.getArray("ids");
158
- }
159
- const { index, collection } = request.getIndexAndCollection();
160
- const strict = request.getBoolean("strict");
161
- this.assertNotExceedMaxFetch(ids.length);
162
- const { items, errors } = await this.ask("core:storage:public:document:mExists", index, collection, ids);
163
- if (strict && errors.length) {
164
- throw kerror.get("api", "process", "incomplete_multiple_request", "get", errors);
165
- }
166
- return {
167
- errors,
168
- successes: items,
169
- };
177
+ mExists(request) {
178
+ return this._mFetch(request, "mExists");
170
179
  }
171
180
  async export(request) {
172
181
  const { index, collection } = request.getIndexAndCollection();
@@ -175,6 +184,7 @@ class DocumentController extends NativeController {
175
184
  const format = request.getString("format", "jsonl");
176
185
  const separator = request.getString("separator", ",");
177
186
  const query = request.getObjectFromBodyOrArgs("query", {});
187
+ const sort = getExportSort(request);
178
188
  const collapse = request.getObjectFromBodyOrArgs("collapse", {});
179
189
  const fields = request.getArrayFromBodyOrArgs("fields", []);
180
190
  const fieldsName = request.getObjectFromBodyOrArgs("fieldsName", {});
@@ -188,6 +198,9 @@ class DocumentController extends NativeController {
188
198
  if (lang === "koncorde") {
189
199
  searchBody.query = await this.translateKoncorde(searchBody.query || {});
190
200
  }
201
+ if (sort !== undefined) {
202
+ searchBody.sort = sort;
203
+ }
191
204
  let mimeType = "html/text";
192
205
  if (format.toLowerCase() === "csv") {
193
206
  mimeType = "text/csv";
@@ -198,7 +211,7 @@ class DocumentController extends NativeController {
198
211
  "Content-Type": mimeType,
199
212
  },
200
213
  });
201
- return dumpCollectionDocuments(index, collection, searchBody, format, fields, {
214
+ return (0, dump_collection_1.dumpCollectionDocuments)(index, collection, searchBody, format, fields, {
202
215
  fieldsName,
203
216
  lang,
204
217
  scroll: scrollTTL || "5s",
@@ -226,28 +239,9 @@ class DocumentController extends NativeController {
226
239
  * @param {Request} request
227
240
  * @returns {Promise<Object>}
228
241
  */
229
- async mGet(request) {
230
- let ids;
231
- if (request.input.body &&
232
- request.input.body.ids &&
233
- Object.keys(request.input.body.ids).length) {
234
- ids = request.getBodyArray("ids");
235
- }
236
- else {
237
- ids = request.getArray("ids");
238
- }
239
- const { index, collection } = request.getIndexAndCollection();
240
- const strict = request.getBoolean("strict");
241
- this.assertNotExceedMaxFetch(ids.length);
242
- const { items, errors } = await this.ask("core:storage:public:document:mGet", index, collection, ids);
243
- if (strict && errors.length) {
244
- throw kerror.get("api", "process", "incomplete_multiple_request", "get", errors);
245
- }
242
+ mGet(request) {
246
243
  // @todo next major release: if (successes.length === 0) then throw (no matter strict value)
247
- return {
248
- errors,
249
- successes: items,
250
- };
244
+ return this._mFetch(request, "mGet");
251
245
  }
252
246
  /**
253
247
  * @param {Request} request
@@ -316,36 +310,8 @@ class DocumentController extends NativeController {
316
310
  * @param {Request} request
317
311
  * @returns {Promise<Object>}
318
312
  */
319
- async createOrReplace(request) {
320
- const id = request.getId();
321
- const content = request.getBody();
322
- const userId = request.getKuid();
323
- const silent = request.getBoolean("silent");
324
- const refresh = request.getString("refresh", "false");
325
- const { index, collection } = request.getIndexAndCollection();
326
- const modifiedRequest = await global.kuzzle.validation.validate(request, false);
327
- // Add metadata
328
- const pipeMetadataResult = await this.pipe("generic:document:injectMetadata", {
329
- metadata: {
330
- author: userId,
331
- createdAt: Date.now(),
332
- updatedAt: Date.now(),
333
- updater: userId,
334
- },
335
- request,
336
- });
337
- const response = await this.ask("core:storage:public:document:createOrReplace", index, collection, id, {
338
- ...content,
339
- _kuzzle_info: pipeMetadataResult.metadata,
340
- }, {
341
- injectKuzzleMeta: false,
342
- refresh,
343
- userId,
344
- });
345
- if (!silent) {
346
- await this.ask("core:realtime:document:notify", modifiedRequest, actionEnum.WRITE, response);
347
- }
348
- return response;
313
+ createOrReplace(request) {
314
+ return this._writeDocument(request, "createOrReplace");
349
315
  }
350
316
  /**
351
317
  * Create or replace the documents provided in the body
@@ -390,7 +356,7 @@ class DocumentController extends NativeController {
390
356
  retryOnConflict,
391
357
  userId,
392
358
  });
393
- const _updatedFields = extractFields(content, {
359
+ const _updatedFields = (0, extractFields_1.default)(content, {
394
360
  fieldsToIgnore: ["_kuzzle_info"],
395
361
  });
396
362
  if (!silent) {
@@ -458,7 +424,7 @@ class DocumentController extends NativeController {
458
424
  await this.ask("core:realtime:document:notify", request, actionEnum.CREATE, updatedDocument._source);
459
425
  }
460
426
  else if (!silent) {
461
- const _updatedFields = extractFields(content, {
427
+ const _updatedFields = (0, extractFields_1.default)(content, {
462
428
  fieldsToIgnore: ["_kuzzle_info"],
463
429
  });
464
430
  await this.ask("core:realtime:document:notify", request, actionEnum.UPDATE, {
@@ -502,39 +468,8 @@ class DocumentController extends NativeController {
502
468
  * @param {Request} request
503
469
  * @returns {Promise<Object>}
504
470
  */
505
- async replace(request) {
506
- const id = request.getId();
507
- const content = request.getBody();
508
- const userId = request.getKuid();
509
- const silent = request.getBoolean("silent");
510
- const refresh = request.getString("refresh", "false");
511
- const { index, collection } = request.getIndexAndCollection();
512
- const modifiedRequest = await global.kuzzle.validation.validate(request, false);
513
- // Add metadata
514
- const pipeMetadataResult = await this.pipe("generic:document:injectMetadata", {
515
- metadata: {
516
- author: userId,
517
- createdAt: Date.now(),
518
- updatedAt: Date.now(),
519
- updater: userId,
520
- },
521
- request,
522
- });
523
- const response = await this.ask("core:storage:public:document:replace", index, collection, id, {
524
- ...content,
525
- _kuzzle_info: pipeMetadataResult.metadata,
526
- }, {
527
- injectKuzzleMeta: false,
528
- refresh,
529
- userId,
530
- });
531
- if (!silent) {
532
- await this.ask("core:realtime:document:notify", modifiedRequest, actionEnum.REPLACE, {
533
- _id: modifiedRequest.input.args._id,
534
- _source: modifiedRequest.input.body,
535
- });
536
- }
537
- return response;
471
+ replace(request) {
472
+ return this._writeDocument(request, "replace");
538
473
  }
539
474
  /**
540
475
  * Replace the documents provided in the body
@@ -674,7 +609,7 @@ class DocumentController extends NativeController {
674
609
  await this.ask("core:realtime:document:mNotify", request, actionEnum.UPDATE, result.successes.map((doc) => ({
675
610
  _id: doc._id,
676
611
  _source: doc._source,
677
- _updatedFields: extractFields(changes, {
612
+ _updatedFields: (0, extractFields_1.default)(changes, {
678
613
  fieldsToIgnore: ["_kuzzle_info"],
679
614
  }),
680
615
  })));
@@ -691,11 +626,88 @@ class DocumentController extends NativeController {
691
626
  * @returns {Promise<Object>}
692
627
  */
693
628
  validate(request) {
694
- assertHasBody(request);
695
- assertHasIndexAndCollection(request);
629
+ (0, requestAssertions_1.assertHasBody)(request);
630
+ (0, requestAssertions_1.assertHasIndexAndCollection)(request);
696
631
  // @todo validation service should not take request argument
697
632
  return global.kuzzle.validation.validate(request, true);
698
633
  }
634
+ /**
635
+ * Fetches documents by id (`mGet`) or checks their existence (`mExists`):
636
+ * the two actions take the same input and shape the same response, they only
637
+ * read through a different storage event.
638
+ *
639
+ * @param {Request} request
640
+ * @param {String} methodName storage method to ask for
641
+ * @returns {Promise.<Object>} { successes, errors }
642
+ */
643
+ async _mFetch(request, methodName) {
644
+ // `ids` may come either in the body or in the query string
645
+ const ids = request.input.body?.ids && Object.keys(request.input.body.ids).length
646
+ ? request.getBodyArray("ids")
647
+ : request.getArray("ids");
648
+ const { index, collection } = request.getIndexAndCollection();
649
+ const strict = request.getBoolean("strict");
650
+ this.assertNotExceedMaxFetch(ids.length);
651
+ const { items, errors } = await this.ask(`core:storage:public:document:${methodName}`, index, collection, ids);
652
+ if (strict && errors.length) {
653
+ throw kerror.get("api", "process", "incomplete_multiple_request", "get", errors);
654
+ }
655
+ return {
656
+ errors,
657
+ successes: items,
658
+ };
659
+ }
660
+ /**
661
+ * Writes a single document, either through `replace` (which requires it to
662
+ * exist) or `createOrReplace` (which does not). Both validate, inject
663
+ * metadata, write and then notify; they differ only in the storage event,
664
+ * the notification action, and what that notification carries.
665
+ *
666
+ * @param {Request} request
667
+ * @param {String} methodName storage method to ask for — it also decides
668
+ * the notification action and its payload, so the two can
669
+ * no longer disagree (TD-31)
670
+ * @returns {Promise.<Object>} the storage response
671
+ */
672
+ async _writeDocument(request, methodName) {
673
+ const action = methodName === "replace" ? actionEnum.REPLACE : actionEnum.WRITE;
674
+ const id = request.getId();
675
+ const content = request.getBody();
676
+ const userId = request.getKuid();
677
+ const silent = request.getBoolean("silent");
678
+ const refresh = request.getString("refresh", "false");
679
+ const { index, collection } = request.getIndexAndCollection();
680
+ const modifiedRequest = await global.kuzzle.validation.validate(request, false);
681
+ // Add metadata
682
+ const pipeMetadataResult = await this.pipe("generic:document:injectMetadata", {
683
+ metadata: {
684
+ author: userId,
685
+ createdAt: Date.now(),
686
+ updatedAt: Date.now(),
687
+ updater: userId,
688
+ },
689
+ request,
690
+ });
691
+ const response = await this.ask(`core:storage:public:document:${methodName}`, index, collection, id, {
692
+ ...content,
693
+ _kuzzle_info: pipeMetadataResult.metadata,
694
+ }, {
695
+ injectKuzzleMeta: false,
696
+ refresh,
697
+ userId,
698
+ });
699
+ if (!silent) {
700
+ // `replace` notifies the request's own payload rather than the storage
701
+ // response — kept as-is, the two actions have always differed here.
702
+ await this.ask("core:realtime:document:notify", modifiedRequest, action, methodName === "replace"
703
+ ? {
704
+ _id: modifiedRequest.input.args._id,
705
+ _source: modifiedRequest.input.body,
706
+ }
707
+ : response);
708
+ }
709
+ return response;
710
+ }
699
711
  /**
700
712
  * Applies a multi-document change request (create, update,
701
713
  * replace, createOrReplace, upsert)
@@ -729,12 +741,12 @@ class DocumentController extends NativeController {
729
741
  successes: [],
730
742
  };
731
743
  }
732
- for (let i = 0; i < documents.length; i++) {
733
- if (documents[i]._source) {
744
+ for (const [i, document] of documents.entries()) {
745
+ if (document._source) {
734
746
  throw kerror.get("api", "assert", "unexpected_argument", `documents[${i}]._source`, `documents[${i}].body`);
735
747
  }
736
- if (documents[i].body?._kuzzle_info !== undefined) {
737
- delete documents[i].body._kuzzle_info;
748
+ if (document.body?._kuzzle_info !== undefined) {
749
+ delete document.body._kuzzle_info;
738
750
  }
739
751
  }
740
752
  const response = await this.ask(`core:storage:public:document:${methodName}`, index, collection, documents, { refresh, retryOnConflict, source, userId });
@@ -751,7 +763,7 @@ class DocumentController extends NativeController {
751
763
  }, {});
752
764
  await this.ask("core:realtime:document:mNotify", request, action, response.items.map((item) => {
753
765
  if (!item.created) {
754
- item._updatedFields = extractFields(documentsDictionnary[item._id], { fieldsToIgnore: ["_kuzzle_info"] });
766
+ item._updatedFields = (0, extractFields_1.default)(documentsDictionnary[item._id], { fieldsToIgnore: ["_kuzzle_info"] });
755
767
  }
756
768
  return item;
757
769
  }));
@@ -768,5 +780,24 @@ class DocumentController extends NativeController {
768
780
  function hasMultiTargets(str) {
769
781
  return [",", "*", "+"].some((chr) => str.includes(chr)) || str === "_all";
770
782
  }
783
+ /**
784
+ * `document:export`'s `sort`, in every form Elasticsearch takes — an object, a
785
+ * field name, or the array its documentation (and ours) shows — and forwarded
786
+ * as is, as `document:search` does. `getObjectFromBodyOrArgs` refused the array
787
+ * outside HTTP GET. An empty value means no sort.
788
+ */
789
+ function getExportSort(request) {
790
+ const { misc, protocol } = request.context.connection;
791
+ const sort = protocol === "http" && misc.verb === "GET"
792
+ ? request.getObjectFromBodyOrArgs("sort", {})
793
+ : request.input.body?.sort;
794
+ if (sort === undefined ||
795
+ sort === null ||
796
+ (typeof sort === "object" && Object.keys(sort).length === 0) ||
797
+ sort === "") {
798
+ return undefined;
799
+ }
800
+ return sort;
801
+ }
771
802
  module.exports = DocumentController;
772
803
  //# sourceMappingURL=documentController.js.map
@@ -1,12 +1,27 @@
1
- export let AdminController: typeof import("./adminController");
2
- export let AuthController: typeof import("./authController");
3
- export let BulkController: typeof import("./bulkController");
4
- export let ClusterController: typeof import("./clusterController");
5
- export let CollectionController: typeof import("./collectionController");
6
- export let DebugController: typeof import("./debugController").DebugController;
7
- export let DocumentController: typeof import("./documentController");
8
- export let IndexController: typeof import("./indexController");
9
- export let MemoryStorageController: typeof import("./memoryStorageController");
10
- export let RealtimeController: typeof import("./realtimeController");
11
- export let SecurityController: typeof import("./securityController");
12
- export let ServerController: typeof import("./serverController");
1
+ import AdminController from "./adminController";
2
+ import AuthController from "./authController";
3
+ import BulkController from "./bulkController";
4
+ import ClusterController from "./clusterController";
5
+ import CollectionController from "./collectionController";
6
+ import DocumentController from "./documentController";
7
+ import IndexController from "./indexController";
8
+ import MemoryStorageController from "./memoryStorageController";
9
+ import RealtimeController from "./realtimeController";
10
+ import SecurityController from "./securityController";
11
+ import ServerController from "./serverController";
12
+ import { DebugController } from "./debugController";
13
+ declare const _default: {
14
+ AdminController: typeof AdminController;
15
+ AuthController: typeof AuthController;
16
+ BulkController: typeof BulkController;
17
+ ClusterController: typeof ClusterController;
18
+ CollectionController: typeof CollectionController;
19
+ DebugController: typeof DebugController;
20
+ DocumentController: typeof DocumentController;
21
+ IndexController: typeof IndexController;
22
+ MemoryStorageController: typeof MemoryStorageController;
23
+ RealtimeController: typeof RealtimeController;
24
+ SecurityController: typeof SecurityController;
25
+ ServerController: typeof ServerController;
26
+ };
27
+ 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,19 +19,33 @@
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 adminController_1 = __importDefault(require("./adminController"));
26
+ const authController_1 = __importDefault(require("./authController"));
27
+ const bulkController_1 = __importDefault(require("./bulkController"));
28
+ const clusterController_1 = __importDefault(require("./clusterController"));
29
+ const collectionController_1 = __importDefault(require("./collectionController"));
30
+ const documentController_1 = __importDefault(require("./documentController"));
31
+ const indexController_1 = __importDefault(require("./indexController"));
32
+ const memoryStorageController_1 = __importDefault(require("./memoryStorageController"));
33
+ const realtimeController_1 = __importDefault(require("./realtimeController"));
34
+ const securityController_1 = __importDefault(require("./securityController"));
35
+ const serverController_1 = __importDefault(require("./serverController"));
36
+ const debugController_1 = require("./debugController");
22
37
  module.exports = {
23
- AdminController: require("./adminController"),
24
- AuthController: require("./authController"),
25
- BulkController: require("./bulkController"),
26
- ClusterController: require("./clusterController"),
27
- CollectionController: require("./collectionController"),
28
- DebugController: require("./debugController").DebugController,
29
- DocumentController: require("./documentController"),
30
- IndexController: require("./indexController"),
31
- MemoryStorageController: require("./memoryStorageController"),
32
- RealtimeController: require("./realtimeController"),
33
- SecurityController: require("./securityController"),
34
- ServerController: require("./serverController"),
38
+ AdminController: adminController_1.default,
39
+ AuthController: authController_1.default,
40
+ BulkController: bulkController_1.default,
41
+ ClusterController: clusterController_1.default,
42
+ CollectionController: collectionController_1.default,
43
+ DebugController: debugController_1.DebugController,
44
+ DocumentController: documentController_1.default,
45
+ IndexController: indexController_1.default,
46
+ MemoryStorageController: memoryStorageController_1.default,
47
+ RealtimeController: realtimeController_1.default,
48
+ SecurityController: securityController_1.default,
49
+ ServerController: serverController_1.default,
35
50
  };
36
51
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,5 @@
1
- export = IndexController;
1
+ import type { KuzzleRequest } from "../request";
2
+ import { NativeController } from "./baseController";
2
3
  /**
3
4
  * @class IndexController
4
5
  */
@@ -14,7 +15,9 @@ declare class IndexController extends NativeController {
14
15
  *
15
16
  * @returns {Promise.<Object>}
16
17
  */
17
- mDelete(request: Request): Promise<any>;
18
+ mDelete(request: KuzzleRequest): Promise<{
19
+ deleted: any;
20
+ }>;
18
21
  /**
19
22
  * Creates an index
20
23
  *
@@ -22,20 +25,25 @@ declare class IndexController extends NativeController {
22
25
  *
23
26
  * @returns {Promise}
24
27
  */
25
- create(request: Request): Promise<any>;
28
+ create(request: KuzzleRequest): Promise<void>;
26
29
  /**
27
30
  * Deletes the index and associated collections
28
31
  *
29
32
  * @param {Request} request
30
33
  * @returns {Promise.<Object>}
31
34
  */
32
- delete(request: Request): Promise<any>;
35
+ delete(request: KuzzleRequest): Promise<{
36
+ acknowledged: boolean;
37
+ }>;
33
38
  /**
34
39
  * Lists indexes
35
40
  *
36
41
  */
37
- list(request: any): Promise<{
38
- indexes: any;
42
+ list(request: KuzzleRequest): Promise<{
43
+ indexes: string[];
44
+ collections?: {
45
+ [index: string]: number;
46
+ } | undefined;
39
47
  }>;
40
48
  /**
41
49
  * Tells if an index exists
@@ -43,7 +51,7 @@ declare class IndexController extends NativeController {
43
51
  * @param {Request} request
44
52
  * @returns {Promise.<boolean>}
45
53
  */
46
- exists(request: Request): Promise<boolean>;
54
+ exists(request: KuzzleRequest): Promise<any>;
47
55
  /**
48
56
  * Returns storage stats
49
57
  *
@@ -59,7 +67,6 @@ declare class IndexController extends NativeController {
59
67
  * @param {Request} request
60
68
  * @param {String[]} publicIndexes - Public indexes list
61
69
  */
62
- _allowedIndexes(request: Request, publicIndexes: string[]): string[] | Promise<any[]>;
70
+ _allowedIndexes(request: KuzzleRequest, publicIndexes: string[]): string[] | Promise<string[]>;
63
71
  }
64
- import { NativeController } from "./baseController";
65
- import { Request } from "../request/kuzzleRequest";
72
+ export = IndexController;
@@ -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,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 { Request } = require("../request");
23
- const { NativeController } = require("./baseController");
22
+ const request_1 = require("../request");
23
+ const baseController_1 = require("./baseController");
24
24
  /**
25
25
  * @class IndexController
26
26
  */
27
- class IndexController extends NativeController {
27
+ class IndexController extends baseController_1.NativeController {
28
28
  constructor() {
29
29
  super(["create", "delete", "exists", "list", "mDelete", "stats"]);
30
30
  }
@@ -79,11 +79,14 @@ class IndexController extends NativeController {
79
79
  indexes,
80
80
  };
81
81
  if (countCollection) {
82
- response.collections = {};
82
+ // Through a local: `response.collections` is optional, and the narrowing
83
+ // the assignment gives does not reach inside the callbacks below.
84
+ const counts = {};
85
+ response.collections = counts;
83
86
  const promises = [];
84
87
  for (const index of indexes) {
85
88
  promises.push(this.ask("core:storage:public:collection:list", index).then((collections) => {
86
- response.collections[index] = collections.length;
89
+ counts[index] = collections.length;
87
90
  }));
88
91
  }
89
92
  await Promise.all(promises);
@@ -118,15 +121,14 @@ class IndexController extends NativeController {
118
121
  * @param {String[]} publicIndexes - Public indexes list
119
122
  */
120
123
  _allowedIndexes(request, publicIndexes) {
121
- if (request.getUser() === null) {
124
+ const user = request.getUser();
125
+ if (user === null) {
122
126
  return publicIndexes;
123
127
  }
124
128
  const allowedIndexes = [];
125
129
  const promises = publicIndexes.map((index) => {
126
- const deleteIndexRequest = new Request({ action: "delete", controller: "index", index }, request.context);
127
- return request.context.user
128
- .isActionAllowed(deleteIndexRequest)
129
- .then((isAllowed) => {
130
+ const deleteIndexRequest = new request_1.Request({ action: "delete", controller: "index", index }, request.context);
131
+ return user.isActionAllowed(deleteIndexRequest).then((isAllowed) => {
130
132
  if (isAllowed) {
131
133
  allowedIndexes.push(index);
132
134
  }
@@ -1,8 +1,5 @@
1
- export = MemoryStorageController;
2
- /**
3
- * @class MemoryStorageController
4
- */
1
+ import { NativeController } from "./baseController";
5
2
  declare class MemoryStorageController extends NativeController {
6
3
  constructor();
7
4
  }
8
- import { NativeController } from "./baseController";
5
+ export = MemoryStorageController;