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,9 +19,8 @@
18
19
  * See the License for the specific language governing permissions and
19
20
  * limitations under the License.
20
21
  */
21
- "use strict";
22
- const { NativeController } = require("./baseController");
23
- class ClusterController extends NativeController {
22
+ const baseController_1 = require("./baseController");
23
+ class ClusterController extends baseController_1.NativeController {
24
24
  constructor() {
25
25
  super(["status"]);
26
26
  }
@@ -1,90 +1,120 @@
1
- export = CollectionController;
1
+ import type { JSONObject } from "../../types/JSONObject";
2
+ import type { KuzzleRequest } from "../request";
3
+ import { NativeController } from "./baseController";
2
4
  /**
3
5
  * @class CollectionController
4
6
  */
5
7
  declare class CollectionController extends NativeController {
8
+ private readonly defaultScrollTTL;
6
9
  constructor();
7
- defaultScrollTTL: string;
8
10
  /**
9
11
  * Updates the mapping of the collection
10
12
  *
11
13
  * @param {Request} request
12
14
  * @returns {Promise.<Object>}
13
15
  */
14
- updateMapping(request: Request): Promise<any>;
16
+ updateMapping(request: KuzzleRequest): Promise<{
17
+ _meta: any;
18
+ dynamic: any;
19
+ properties: any;
20
+ }>;
15
21
  /**
16
22
  * Get the collection mapping
17
23
  *
18
24
  * @param {Request} request
19
25
  * @returns {Promise.<Object>}
20
26
  */
21
- getMapping(request: Request): Promise<any>;
27
+ getMapping(request: KuzzleRequest): Promise<{
28
+ _meta: any;
29
+ dynamic: any;
30
+ properties: any;
31
+ }>;
22
32
  /**
23
33
  * Get the collection settings
24
34
  *
25
35
  * @param {Request} request
26
36
  * @returns {Promise.<Object>}
27
37
  */
28
- getSettings(request: Request): Promise<any>;
38
+ getSettings(request: KuzzleRequest): Promise<any>;
29
39
  /**
30
40
  * Get the collection validation specifications
31
41
  *
32
42
  * @param {Request} request
33
43
  * @returns {Promise.<Object>}
34
44
  */
35
- getSpecifications(request: Request): Promise<any>;
45
+ getSpecifications(request: KuzzleRequest): Promise<any>;
36
46
  /**
37
47
  * Search for collection validation specifications
38
48
  *
39
49
  * @param {Request} request
40
50
  * @returns {Promise.<Object>}
41
51
  */
42
- searchSpecifications(request: Request): Promise<any>;
52
+ searchSpecifications(request: KuzzleRequest): Promise<{
53
+ hits: any;
54
+ scrollId: any;
55
+ total: any;
56
+ }>;
43
57
  /**
44
58
  * Scroll over a paginated search results
45
59
  *
46
60
  * @param {Request} request
47
61
  * @returns {Promise.<object>}
48
62
  */
49
- scrollSpecifications(request: Request): Promise<object>;
63
+ scrollSpecifications(request: KuzzleRequest): Promise<{
64
+ hits: any;
65
+ scrollId: any;
66
+ total: any;
67
+ }>;
50
68
  /**
51
69
  * Replace the specifications of a collection
52
70
  *
53
71
  * @param {Request} request
54
72
  * @returns {Promise.<Object>}
55
73
  */
56
- updateSpecifications(request: Request): Promise<any>;
74
+ updateSpecifications(request: KuzzleRequest): Promise<JSONObject>;
57
75
  /**
58
76
  * Add a specification collections
59
77
  *
60
78
  * @param {Request} request
61
79
  * @returns {Promise.<Object>}
62
80
  */
63
- deleteSpecifications(request: Request): Promise<any>;
81
+ deleteSpecifications(request: KuzzleRequest): Promise<{
82
+ acknowledged: boolean;
83
+ }>;
64
84
  /**
65
85
  * Validate a specification
66
86
  *
67
87
  * @param {Request} request
68
88
  * @returns {Promise.<Object>}
69
89
  */
70
- validateSpecifications(request: Request): Promise<any>;
90
+ validateSpecifications(request: KuzzleRequest): Promise<{
91
+ description: string;
92
+ details: string[] | undefined;
93
+ valid: boolean;
94
+ } | {
95
+ valid: boolean;
96
+ description?: undefined;
97
+ details?: undefined;
98
+ }>;
71
99
  /**
72
100
  * Reset a collection by removing all documents while keeping the existing mapping
73
101
  *
74
102
  * @param {KuzzleRequest} request
75
103
  * @returns {Promise.<Object>}
76
104
  */
77
- truncate(request: KuzzleRequest): Promise<any>;
105
+ truncate(request: KuzzleRequest): Promise<{
106
+ acknowledged: boolean;
107
+ }>;
78
108
  /**
79
109
  * @param {Request} request
80
110
  * @returns {Promise.<Object>}
81
111
  */
82
- list(request: Request): Promise<any>;
112
+ list(request: KuzzleRequest): Promise<JSONObject>;
83
113
  /**
84
114
  * @param {Request} request
85
115
  * @returns {Promise.<boolean>}
86
116
  */
87
- exists(request: Request): Promise<boolean>;
117
+ exists(request: KuzzleRequest): Promise<any>;
88
118
  /**
89
119
  * Creates a new collection with the specifed mappings and settings.
90
120
  * Only update the mappings and settings if the collection exists.
@@ -92,21 +122,23 @@ declare class CollectionController extends NativeController {
92
122
  * @param {Request} request
93
123
  * @returns {Promise.<Object>}
94
124
  */
95
- create(request: Request): Promise<any>;
125
+ create(request: KuzzleRequest): Promise<{
126
+ acknowledged: boolean;
127
+ }>;
96
128
  /**
97
129
  * Updates a collection mappings and settings.
98
130
  *
99
131
  * @param {Request} request
100
132
  * @returns {Promise.<Object>}
101
133
  */
102
- update(request: Request): Promise<any>;
134
+ update(request: KuzzleRequest): Promise<null>;
103
135
  /**
104
136
  * Refresh a collection
105
137
  *
106
138
  * @param {Request} request
107
139
  * @returns {Promise.<null>}
108
140
  */
109
- refresh(request: Request): Promise<null>;
141
+ refresh(request: KuzzleRequest): Promise<null>;
110
142
  /**
111
143
  * Deletes a collection
112
144
  *
@@ -115,7 +147,7 @@ declare class CollectionController extends NativeController {
115
147
  *
116
148
  * @returns {Promise.<null>}
117
149
  */
118
- delete(request: any): Promise<null>;
150
+ delete(request: KuzzleRequest): Promise<null>;
119
151
  /**
120
152
  * Uses from and size to paginate response results
121
153
  * If type is "all", stored collections are prioritary
@@ -125,12 +157,16 @@ declare class CollectionController extends NativeController {
125
157
  * @param {Object} response
126
158
  * @returns {Object} { collections, from, size }
127
159
  */
128
- _paginateCollections(from: number, size: number, response: any): any;
160
+ _paginateCollections(from: number, size: number, response: JSONObject): JSONObject;
129
161
  /**
130
162
  * Return only the mapping properties we want to output in our API
131
163
  * @param {Object} mapping - raw ES mapping
132
164
  * @returns {Object}
133
165
  */
134
- _filterMappingResponse(mapping: any): any;
166
+ _filterMappingResponse(mapping: JSONObject): {
167
+ _meta: any;
168
+ dynamic: any;
169
+ properties: any;
170
+ };
135
171
  }
136
- import { NativeController } from "./baseController";
172
+ export = CollectionController;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /*
2
3
  * Kuzzle, a backend software, self-hostable and ready to use
3
4
  * to power modern apps
@@ -18,14 +19,37 @@
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 { isPlainObject } = require("../../util/safeObject");
24
- const { NativeController } = require("./baseController");
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
+ const kerror = __importStar(require("../../kerror"));
46
+ const errors_1 = require("../../kerror/errors");
47
+ const safeObject_1 = require("../../util/safeObject");
48
+ const baseController_1 = require("./baseController");
25
49
  /**
26
50
  * @class CollectionController
27
51
  */
28
- class CollectionController extends NativeController {
52
+ class CollectionController extends baseController_1.NativeController {
29
53
  constructor() {
30
54
  super([
31
55
  "create",
@@ -108,7 +132,7 @@ class CollectionController extends NativeController {
108
132
  */
109
133
  async searchSpecifications(request) {
110
134
  const { from, size, scrollTTL, searchBody } = request.getSearchParams();
111
- if (!isPlainObject(searchBody)) {
135
+ if (!(0, safeObject_1.isPlainObject)(searchBody)) {
112
136
  throw kerror.get("api", "assert", "invalid_type", "body.query", "object");
113
137
  }
114
138
  this.assertNotExceedMaxFetch(size - from);
@@ -142,7 +166,9 @@ class CollectionController extends NativeController {
142
166
  const specifications = request.getBody();
143
167
  const { isValid, errors } = await global.kuzzle.validation.validateFormat(index, collection, specifications, true);
144
168
  if (!isValid) {
145
- throw kerror.get("validation", "assert", "invalid_specifications", errors.join("\n\t- "));
169
+ throw kerror.get("validation", "assert", "invalid_specifications",
170
+ // `validateFormat` answers errors only when it answers invalid.
171
+ (errors ?? []).join("\n\t- "));
146
172
  }
147
173
  await global.kuzzle.internalIndex.createOrReplace("validations", `${index}#${collection}`, {
148
174
  collection,
@@ -166,7 +192,7 @@ class CollectionController extends NativeController {
166
192
  await global.kuzzle.internalIndex.delete("validations", specificationsId);
167
193
  }
168
194
  catch (error) {
169
- if (error.status === 404) {
195
+ if (error instanceof errors_1.KuzzleError && error.status === 404) {
170
196
  return {
171
197
  acknowledged: true,
172
198
  };
@@ -321,16 +347,19 @@ class CollectionController extends NativeController {
321
347
  * @param {Object} response
322
348
  * @returns {Object} { collections, from, size }
323
349
  */
324
- _paginateCollections(from, size, response) {
350
+ _paginateCollections(
351
+ // Both come from `request.getInteger`, so the `Number.parseInt` this
352
+ // used to run over them re-parsed a number.
353
+ from, size, response) {
325
354
  if (from || size) {
326
355
  if (from) {
327
- response.from = Number.parseInt(from);
356
+ response.from = from;
328
357
  }
329
358
  else {
330
359
  response.from = 0;
331
360
  }
332
361
  if (size) {
333
- response.size = Number.parseInt(size);
362
+ response.size = size;
334
363
  response.collections = response.collections.slice(response.from, response.from + response.size);
335
364
  }
336
365
  else {
@@ -1,4 +1,4 @@
1
- import { KuzzleRequest } from "../request";
1
+ import type { KuzzleRequest } from "../request";
2
2
  import { NativeController } from "./baseController";
3
3
  /**
4
4
  * @class DebugController
@@ -1,53 +1,109 @@
1
- export = DocumentController;
1
+ import * as actionEnum from "../../core/realtime/actionEnum";
2
+ import type { KuzzleRequest } from "../request";
3
+ import { NativeController } from "./baseController";
4
+ /** One of `actionEnum`'s values — what a document notification reports. */
5
+ type NotifyAction = (typeof actionEnum)[keyof typeof actionEnum];
6
+ /** The two single-document writes `_writeDocument` serves. */
7
+ type WriteMethod = "replace" | "createOrReplace";
8
+ /** The two multi-document reads `_mFetch` serves. */
9
+ type FetchMethod = "mGet" | "mExists";
10
+ /** The five multi-document writes `_mChanges` serves. */
11
+ type ChangeMethod = "mCreate" | "mCreateOrReplace" | "mUpdate" | "mUpsert" | "mReplace";
2
12
  /**
3
13
  * @class DocumentController
4
14
  */
5
15
  declare class DocumentController extends NativeController {
16
+ constructor();
6
17
  /**
7
18
  * @returns {Record<string, unknown>}
8
19
  */
9
- static get actions(): Record<string, unknown>;
10
- constructor();
20
+ static get actions(): {
21
+ count: string;
22
+ create: string;
23
+ createOrReplace: string;
24
+ delete: string;
25
+ deleteByQuery: string;
26
+ deleteFields: string;
27
+ exists: string;
28
+ export: string;
29
+ get: string;
30
+ mCreate: string;
31
+ mCreateOrReplace: string;
32
+ mDelete: string;
33
+ mExists: string;
34
+ mGet: string;
35
+ mReplace: string;
36
+ mUpdate: string;
37
+ mUpsert: string;
38
+ replace: string;
39
+ scroll: string;
40
+ search: string;
41
+ update: string;
42
+ updateByQuery: string;
43
+ upsert: string;
44
+ validate: string;
45
+ };
11
46
  /**
12
47
  * @param {Request} request
13
48
  * @returns {Promise<Object>}
14
49
  */
15
- search(request: Request): Promise<any>;
50
+ search(request: KuzzleRequest): Promise<{
51
+ aggregations: any;
52
+ hits: any;
53
+ remaining: any;
54
+ scrollId: any;
55
+ suggest: any;
56
+ total: any;
57
+ }>;
16
58
  /**
17
59
  * @param {Request} request
18
60
  * @returns {Promise<Object>}
19
61
  */
20
- scroll(request: Request): Promise<any>;
62
+ scroll(request: KuzzleRequest): Promise<{
63
+ hits: any;
64
+ remaining: any;
65
+ scrollId: any;
66
+ total: any;
67
+ }>;
21
68
  /**
22
69
  * @param {Request} request
23
70
  * @returns {Promise<Boolean>}
24
71
  */
25
- exists(request: Request): Promise<boolean>;
72
+ exists(request: KuzzleRequest): Promise<any>;
26
73
  /**
27
74
  * @param {Request} request
28
75
  */
29
- mExists(request: Request): Promise<{
76
+ mExists(request: KuzzleRequest): Promise<{
30
77
  errors: any;
31
78
  successes: any;
32
79
  }>;
33
- export(request: any): Promise<import("../../..").HttpStream>;
80
+ export(request: KuzzleRequest): Promise<import("../../..").HttpStream>;
34
81
  /**
35
82
  * @param {Request} request
36
83
  * @returns {Promise<Object>}
37
84
  */
38
- get(request: Request): Promise<any>;
85
+ get(request: KuzzleRequest): Promise<{
86
+ _id: any;
87
+ _source: any;
88
+ _version: any;
89
+ }>;
39
90
  /**
40
91
  * Get specific documents according to given ids
41
92
  *
42
93
  * @param {Request} request
43
94
  * @returns {Promise<Object>}
44
95
  */
45
- mGet(request: Request): Promise<any>;
96
+ mGet(request: KuzzleRequest): Promise<{
97
+ errors: any;
98
+ successes: any;
99
+ }>;
46
100
  /**
47
101
  * @param {Request} request
48
102
  * @returns {Promise<Object>}
49
103
  */
50
- count(request: Request): Promise<any>;
104
+ count(request: KuzzleRequest): Promise<{
105
+ count: any;
106
+ }>;
51
107
  /**
52
108
  * Create a new document
53
109
  *
@@ -62,14 +118,17 @@ declare class DocumentController extends NativeController {
62
118
  * @param {Request} request
63
119
  * @returns {Promise<Object>}
64
120
  */
65
- mCreate(request: Request): Promise<any>;
121
+ mCreate(request: KuzzleRequest): Promise<{
122
+ errors: any;
123
+ successes: any;
124
+ }>;
66
125
  /**
67
126
  * Create a new document through the persistent layer. If it already exists, update it instead.
68
127
  *
69
128
  * @param {Request} request
70
129
  * @returns {Promise<Object>}
71
130
  */
72
- createOrReplace(request: Request): Promise<any>;
131
+ createOrReplace(request: KuzzleRequest): Promise<any>;
73
132
  /**
74
133
  * Create or replace the documents provided in the body
75
134
  * Delegates the notification to createOrReplace action
@@ -77,14 +136,17 @@ declare class DocumentController extends NativeController {
77
136
  * @param {Request} request
78
137
  * @returns {Promise<Object>}
79
138
  */
80
- mCreateOrReplace(request: Request): Promise<any>;
139
+ mCreateOrReplace(request: KuzzleRequest): Promise<{
140
+ errors: any;
141
+ successes: any;
142
+ }>;
81
143
  /**
82
144
  * Update a document through the persistent layer
83
145
  *
84
146
  * @param {Request} request
85
147
  * @returns {Promise<Object>}
86
148
  */
87
- update(request: Request): Promise<any>;
149
+ update(request: KuzzleRequest): Promise<any>;
88
150
  /**
89
151
  * Applies a partial update to an existing document.
90
152
  * If the document doesn't already exist, a new document is created.
@@ -92,7 +154,7 @@ declare class DocumentController extends NativeController {
92
154
  * @param {Request} request
93
155
  * @returns {Promise<Object>}
94
156
  */
95
- upsert(request: Request): Promise<any>;
157
+ upsert(request: KuzzleRequest): Promise<any>;
96
158
  /**
97
159
  * Update the documents provided in the body
98
160
  * Delegates the notification to update action
@@ -100,7 +162,10 @@ declare class DocumentController extends NativeController {
100
162
  * @param {Request} request
101
163
  * @returns {Promise<Object>}
102
164
  */
103
- mUpdate(request: Request): Promise<any>;
165
+ mUpdate(request: KuzzleRequest): Promise<{
166
+ errors: any;
167
+ successes: any;
168
+ }>;
104
169
  /**
105
170
  * Applies a partial update to documents provided in the body.
106
171
  * If some of the documents don't already exist, they will be created.
@@ -108,14 +173,17 @@ declare class DocumentController extends NativeController {
108
173
  * @param {Request} request
109
174
  * @returns {Promise<Object>}
110
175
  */
111
- mUpsert(request: Request): Promise<any>;
176
+ mUpsert(request: KuzzleRequest): Promise<{
177
+ errors: any;
178
+ successes: any;
179
+ }>;
112
180
  /**
113
181
  * Replace a document through the persistent layer. Throws an error if the document doesn't exist
114
182
  *
115
183
  * @param {Request} request
116
184
  * @returns {Promise<Object>}
117
185
  */
118
- replace(request: Request): Promise<any>;
186
+ replace(request: KuzzleRequest): Promise<any>;
119
187
  /**
120
188
  * Replace the documents provided in the body
121
189
  * Delegates the notification to update action
@@ -123,14 +191,17 @@ declare class DocumentController extends NativeController {
123
191
  * @param {Request} request
124
192
  * @returns {Promise<Object>}
125
193
  */
126
- mReplace(request: Request): Promise<any>;
194
+ mReplace(request: KuzzleRequest): Promise<{
195
+ errors: any;
196
+ successes: any;
197
+ }>;
127
198
  /**
128
199
  * Delete a document through the persistent layer
129
200
  *
130
201
  * @param {Request} request
131
202
  * @returns {Promise<Object>}
132
203
  */
133
- delete(request: Request): Promise<any>;
204
+ delete(request: KuzzleRequest): Promise<any>;
134
205
  /**
135
206
  * Delete specific documents according to given ids
136
207
  * Delegates the notification to delete action
@@ -138,35 +209,70 @@ declare class DocumentController extends NativeController {
138
209
  * @param {Request} request
139
210
  * @returns {Promise<Object>}
140
211
  */
141
- mDelete(request: Request): Promise<any>;
212
+ mDelete(request: KuzzleRequest): Promise<{
213
+ errors: any;
214
+ successes: any;
215
+ }>;
142
216
  /**
143
217
  * Delete several documents matching a query through the persistent layer
144
218
  *
145
219
  * @param {Request} request
146
220
  * @returns {Promise<Object>}
147
221
  */
148
- deleteByQuery(request: Request): Promise<any>;
222
+ deleteByQuery(request: KuzzleRequest): Promise<{
223
+ documents: any;
224
+ ids: any;
225
+ }>;
149
226
  /**
150
227
  * Delete fields of a document. Throws an error if the document doesn't exist
151
228
  *
152
229
  * @param {Request} request
153
230
  * @returns {Promise<Object>}
154
231
  */
155
- deleteFields(request: Request): Promise<any>;
232
+ deleteFields(request: KuzzleRequest): Promise<any>;
156
233
  /**
157
234
  * Update several documents matching a query through the persistent layer
158
235
  *
159
236
  * @param {Request} request
160
237
  * @returns {Promise<Object}
161
238
  */
162
- updateByQuery(request: Request): Promise<any>;
239
+ updateByQuery(request: KuzzleRequest): Promise<any>;
163
240
  /**
164
241
  * Validate a document against collection validation specifications.
165
242
  *
166
243
  * @param {Request} request
167
244
  * @returns {Promise<Object>}
168
245
  */
169
- validate(request: Request): Promise<any>;
246
+ validate(request: KuzzleRequest): Promise<{
247
+ errorMessages: import("../../core/validation/specification").VerboseErrorMessages;
248
+ valid: boolean;
249
+ }>;
250
+ /**
251
+ * Fetches documents by id (`mGet`) or checks their existence (`mExists`):
252
+ * the two actions take the same input and shape the same response, they only
253
+ * read through a different storage event.
254
+ *
255
+ * @param {Request} request
256
+ * @param {String} methodName storage method to ask for
257
+ * @returns {Promise.<Object>} { successes, errors }
258
+ */
259
+ _mFetch(request: KuzzleRequest, methodName: FetchMethod): Promise<{
260
+ errors: any;
261
+ successes: any;
262
+ }>;
263
+ /**
264
+ * Writes a single document, either through `replace` (which requires it to
265
+ * exist) or `createOrReplace` (which does not). Both validate, inject
266
+ * metadata, write and then notify; they differ only in the storage event,
267
+ * the notification action, and what that notification carries.
268
+ *
269
+ * @param {Request} request
270
+ * @param {String} methodName storage method to ask for — it also decides
271
+ * the notification action and its payload, so the two can
272
+ * no longer disagree (TD-31)
273
+ * @returns {Promise.<Object>} the storage response
274
+ */
275
+ _writeDocument(request: KuzzleRequest, methodName: WriteMethod): Promise<any>;
170
276
  /**
171
277
  * Applies a multi-document change request (create, update,
172
278
  * replace, createOrReplace, upsert)
@@ -176,6 +282,9 @@ declare class DocumentController extends NativeController {
176
282
  * @param {notifyActionEnum} action performed on the documents
177
283
  * @returns {Promise.<Object>} { successes, errors }
178
284
  */
179
- _mChanges(request: Request, methodName: string, action: notifyActionEnum): Promise<any>;
285
+ _mChanges(request: KuzzleRequest, methodName: ChangeMethod, action: NotifyAction): Promise<{
286
+ errors: any;
287
+ successes: any;
288
+ }>;
180
289
  }
181
- import { NativeController } from "./baseController";
290
+ export = DocumentController;