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,9 +1,12 @@
1
- import { KuzzleRequest } from "../request";
1
+ import type { KuzzleRequest } from "../request";
2
2
  import { NativeController } from "./baseController";
3
+ import type { JSONObject } from "../../types/JSONObject";
4
+ import type { Profile } from "../../model/security/profile";
5
+ import type { User } from "../../model/security/user";
3
6
  /**
4
7
  * @class SecurityController
5
8
  */
6
- export default class SecurityController extends NativeController {
9
+ declare class SecurityController extends NativeController {
7
10
  protected readonly subdomain: string;
8
11
  protected readonly securityCollections: string[];
9
12
  protected getStrategyMethod: any;
@@ -20,19 +23,28 @@ export default class SecurityController extends NativeController {
20
23
  /**
21
24
  * Creates a new API key for a user
22
25
  */
23
- createApiKey(request: KuzzleRequest): Promise<any>;
26
+ createApiKey(request: KuzzleRequest): Promise<{
27
+ _id: string | null;
28
+ _source: JSONObject;
29
+ }>;
24
30
  /**
25
31
  * Search in an user API keys
26
32
  */
27
33
  searchApiKeys(request: KuzzleRequest): Promise<{
28
- hits: any[];
34
+ hits: {
35
+ _id: string | null;
36
+ _source: JSONObject;
37
+ }[];
29
38
  total: number;
30
39
  }>;
31
40
  /**
32
- * Deletes an user API key
41
+ * Deletes an user API key.
42
+ *
43
+ * The API key to delete can be identified either by its `_id`, by the
44
+ * clear-text `key` itself, or by the key's `fingerprint`.
33
45
  */
34
46
  deleteApiKey(request: KuzzleRequest): Promise<{
35
- _id: string;
47
+ _id: string | null;
36
48
  }>;
37
49
  /**
38
50
  * Get the role mapping
@@ -62,7 +74,7 @@ export default class SecurityController extends NativeController {
62
74
  * @param {Request} request
63
75
  * @returns {Promise}
64
76
  */
65
- updateProfileMapping(request: any): Promise<any>;
77
+ updateProfileMapping(request: KuzzleRequest): Promise<any>;
66
78
  /**
67
79
  * Get the user mapping
68
80
  *
@@ -100,7 +112,7 @@ export default class SecurityController extends NativeController {
100
112
  * @param {Request} request
101
113
  * @returns {Promise}
102
114
  */
103
- refresh(request: KuzzleRequest): Promise<any>;
115
+ refresh(request: KuzzleRequest): Promise<null>;
104
116
  /**
105
117
  * Search for roles
106
118
  *
@@ -137,7 +149,7 @@ export default class SecurityController extends NativeController {
137
149
  * @param {Request} request
138
150
  * @returns {Promise<Object>}
139
151
  */
140
- getProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<import("../../model/security/profile").Profile>>;
152
+ getProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<Profile>>;
141
153
  /**
142
154
  * Get specific profiles according to given ids
143
155
  *
@@ -153,14 +165,14 @@ export default class SecurityController extends NativeController {
153
165
  * @param {Request} request
154
166
  * @returns {Promise<Object>}
155
167
  */
156
- createOrReplaceProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<import("../../model/security/profile").Profile>>;
168
+ createOrReplaceProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<Profile>>;
157
169
  /**
158
170
  * Create a Profile
159
171
  *
160
172
  * @param {Request} request
161
173
  * @returns {Promise<Object>}
162
174
  */
163
- createProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<import("../../model/security/profile").Profile>>;
175
+ createProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<Profile>>;
164
176
  /**
165
177
  * Deletes a profile
166
178
  *
@@ -183,7 +195,7 @@ export default class SecurityController extends NativeController {
183
195
  * @param {Request} request
184
196
  * @returns {Promise<Object>}
185
197
  */
186
- getUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<import("../../model/security/user").User>>;
198
+ getUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
187
199
  /**
188
200
  * Get specific users according to given ids
189
201
  *
@@ -200,7 +212,7 @@ export default class SecurityController extends NativeController {
200
212
  * @returns {Promise<Object>}
201
213
  */
202
214
  getProfileRights(request: KuzzleRequest): Promise<{
203
- hits: any[];
215
+ hits: never[];
204
216
  total: number;
205
217
  }>;
206
218
  /**
@@ -210,7 +222,7 @@ export default class SecurityController extends NativeController {
210
222
  * @returns {Promise<Object>}
211
223
  */
212
224
  getUserRights(request: KuzzleRequest): Promise<{
213
- hits: any[];
225
+ hits: never[];
214
226
  total: number;
215
227
  }>;
216
228
  /**
@@ -256,21 +268,21 @@ export default class SecurityController extends NativeController {
256
268
  * @param {Request} request
257
269
  * @returns {Promise<Object>}
258
270
  */
259
- createUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<import("../../model/security/user").User>>;
271
+ createUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
260
272
  /**
261
273
  * Creates a new User object in Kuzzle's database layer and applies restricted profileIds
262
274
  *
263
275
  * @param {Request} request
264
276
  * @returns {Promise<Object>}
265
277
  */
266
- createRestrictedUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<import("../../model/security/user").User>>;
278
+ createRestrictedUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
267
279
  /**
268
280
  * Updates an existing User
269
281
  *
270
282
  * @param {Request} request
271
283
  * @returns {Promise<Object>}
272
284
  */
273
- updateUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<import("../../model/security/user").User>>;
285
+ updateUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
274
286
  /**
275
287
  * Applies a partial update to an existing user.
276
288
  * If the user doesn't already exist, a new user is created.
@@ -278,21 +290,21 @@ export default class SecurityController extends NativeController {
278
290
  * @param {Request} request
279
291
  * @returns {Promise}
280
292
  */
281
- upsertUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<import("../../model/security/user").User>>;
293
+ upsertUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
282
294
  /**
283
295
  * Replaces an existing User
284
296
  *
285
297
  * @param {Request} request
286
298
  * @returns {Promise<Object>}
287
299
  */
288
- replaceUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<import("../../model/security/user").User>>;
300
+ replaceUser(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
289
301
  /**
290
302
  * Updates an existing profile
291
303
  *
292
304
  * @param {Request} request
293
305
  * @returns {Promise<Object>}
294
306
  */
295
- updateProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<import("../../model/security/profile").Profile>>;
307
+ updateProfile(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<Profile>>;
296
308
  /**
297
309
  * Updates an existing role
298
310
  *
@@ -306,7 +318,7 @@ export default class SecurityController extends NativeController {
306
318
  * @param {Request} request
307
319
  * @returns {Promise<Object>}
308
320
  */
309
- createFirstAdmin(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<import("../../model/security/user").User>>;
321
+ createFirstAdmin(request: KuzzleRequest): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
310
322
  /**
311
323
  * Restricted rights are applied to the `anonymous` and `default` roles
312
324
  * (by default, these roles don't have any restriction).
@@ -321,21 +333,21 @@ export default class SecurityController extends NativeController {
321
333
  * @param {Request} request
322
334
  * @returns {Promise<Object>}
323
335
  */
324
- mDeleteProfiles(request: any): Promise<any[]>;
336
+ mDeleteProfiles(request: KuzzleRequest): Promise<string[]>;
325
337
  /**
326
338
  * Deletes multiple roles
327
339
  *
328
340
  * @param {Request} request
329
341
  * @returns {Promise<Object>}
330
342
  */
331
- mDeleteRoles(request: any): Promise<any[]>;
343
+ mDeleteRoles(request: KuzzleRequest): Promise<string[]>;
332
344
  /**
333
345
  * Deletes multiple users
334
346
  *
335
347
  * @param {Request} request
336
348
  * @returns {Promise<Object>}
337
349
  */
338
- mDeleteUsers(request: any): Promise<any[]>;
350
+ mDeleteUsers(request: KuzzleRequest): Promise<string[]>;
339
351
  /**
340
352
  * Scroll a paginated users search result
341
353
  *
@@ -395,24 +407,24 @@ export default class SecurityController extends NativeController {
395
407
  /**
396
408
  * @returns {Promise<Object>}
397
409
  */
398
- getAllCredentialFields(): Promise<{}>;
410
+ getAllCredentialFields(): Promise<JSONObject>;
399
411
  /**
400
412
  * @param {Request} request
401
413
  * @returns {Promise.<null>}
402
414
  */
403
- revokeTokens(request: KuzzleRequest): Promise<any>;
415
+ revokeTokens(request: KuzzleRequest): Promise<null>;
404
416
  /**
405
417
  * @param {string.<profile|role|user>} type
406
418
  * @param {Request} request
407
419
  * @returns {Promise.<Array.<string>>}
408
420
  * @private
409
421
  */
410
- _mDelete(type: string, request: KuzzleRequest): Promise<any[]>;
422
+ _mDelete(type: string, request: KuzzleRequest): Promise<string[]>;
411
423
  /**
412
424
  * @returns {Promise}
413
425
  * @private
414
426
  */
415
- _changeUser(request: KuzzleRequest, id: string, content: any, userId: string | null, profileIds: string[] | null): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<import("../../model/security/user").User>>;
427
+ _changeUser(request: KuzzleRequest, id: string, content: any, userId: string | null, profileIds: string[] | null): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
416
428
  /**
417
429
  * @param {Request} request
418
430
  * @returns {Promise}
@@ -420,7 +432,7 @@ export default class SecurityController extends NativeController {
420
432
  */
421
433
  _persistUser(request: KuzzleRequest, profileIds: string[], content: any, { humanReadableId }?: {
422
434
  humanReadableId?: boolean;
423
- }): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<import("../../model/security/user").User>>;
435
+ }): Promise<import("../../types/core/auth/formatProcessing.type").Serialized<User>>;
424
436
  /**
425
437
  * Checks if a search result can exceeds the server configured limit
426
438
  * @param {Request} request
@@ -429,3 +441,4 @@ export default class SecurityController extends NativeController {
429
441
  */
430
442
  _getSearchPageSize(request: KuzzleRequest): number;
431
443
  }
444
+ export = SecurityController;
@@ -25,7 +25,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
28
  /*
30
29
  * Kuzzle, a backend software, self-hostable and ready to use
31
30
  * to power modern apps
@@ -46,6 +45,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
46
45
  * See the License for the specific language governing permissions and
47
46
  * limitations under the License.
48
47
  */
48
+ const node_util_1 = require("node:util");
49
49
  const bluebird_1 = __importDefault(require("bluebird"));
50
50
  const lodash_1 = require("lodash");
51
51
  const uuid_1 = require("uuid");
@@ -57,6 +57,13 @@ const apiKey_1 = __importDefault(require("../../model/storage/apiKey"));
57
57
  const kerror = __importStar(require("../../kerror"));
58
58
  const safeObject_1 = require("../../util/safeObject");
59
59
  const name_generator_1 = require("../../util/name-generator");
60
+ /**
61
+ * Whatever was thrown, as an `Error`. `catch` answers `unknown`, and the
62
+ * rollback path below reads a message off everything it collected.
63
+ */
64
+ function causeOf(thrown) {
65
+ return thrown instanceof Error ? thrown : new Error((0, node_util_1.inspect)(thrown));
66
+ }
60
67
  /**
61
68
  * @class SecurityController
62
69
  */
@@ -198,16 +205,18 @@ class SecurityController extends baseController_1.NativeController {
198
205
  };
199
206
  }
200
207
  /**
201
- * Deletes an user API key
208
+ * Deletes an user API key.
209
+ *
210
+ * The API key to delete can be identified either by its `_id`, by the
211
+ * clear-text `key` itself, or by the key's `fingerprint`.
202
212
  */
203
213
  async deleteApiKey(request) {
204
214
  const userId = request.getString("userId");
205
- const apiKeyId = request.getId();
206
215
  const refresh = request.getRefresh("wait_for");
207
- const apiKey = await apiKey_1.default.load(userId, apiKeyId);
216
+ const apiKey = await apiKey_1.default.loadFromRequest(userId, request);
208
217
  await apiKey.delete({ refresh });
209
218
  return {
210
- _id: apiKeyId,
219
+ _id: apiKey._id,
211
220
  };
212
221
  }
213
222
  /**
@@ -526,11 +535,12 @@ class SecurityController extends baseController_1.NativeController {
526
535
  ids = request.getBodyArray("ids");
527
536
  }
528
537
  else {
529
- // @deprecated Should be replaced with request.getArray('ids')
530
- ids = request.getArrayLegacy("ids");
538
+ ids = request.getArrayOrCsv("ids");
531
539
  }
532
540
  const users = await this.ask("core:security:user:mGet", ids);
533
- return { hits: users.map((user) => formatProcessing_1.default.serializeUser(user)) };
541
+ return {
542
+ hits: users.map((user) => formatProcessing_1.default.serializeUser(user)),
543
+ };
534
544
  }
535
545
  /**
536
546
  * Given a profile id, returns the matching profile's rights as an array.
@@ -707,7 +717,11 @@ class SecurityController extends baseController_1.NativeController {
707
717
  return await this._changeUser(request, id, content, userId, profileIds);
708
718
  }
709
719
  catch (error) {
710
- if (error.id && error.id === "security.user.not_found") {
720
+ // Duck-typed on the id, as it was: `core:security:user:get` rejects
721
+ // with a KuzzleError, and this branch reads nothing else off it.
722
+ if (error instanceof Error &&
723
+ "id" in error &&
724
+ error.id === "security.user.not_found") {
711
725
  const creatingContent = {
712
726
  ...defaultValues,
713
727
  ...content, // Order important, content erase default duplicates
@@ -806,8 +820,12 @@ class SecurityController extends baseController_1.NativeController {
806
820
  */
807
821
  async restrictDefaultRights(request) {
808
822
  const userId = request.getKuid();
809
- for (const type of ["role", "profile"]) {
810
- await bluebird_1.default.map(Object.entries(global.kuzzle.config.security.standard[`${type}s`]), ([name, value]) => this.ask(`core:security:${type}:createOrReplace`, name, value, {
823
+ const standard = global.kuzzle.config.security.standard;
824
+ for (const [type, defaults] of [
825
+ ["role", standard.roles],
826
+ ["profile", standard.profiles],
827
+ ]) {
828
+ await bluebird_1.default.map(Object.entries(defaults), ([name, value]) => this.ask(`core:security:${type}:createOrReplace`, name, value, {
811
829
  refresh: "wait_for",
812
830
  userId,
813
831
  }));
@@ -1047,7 +1065,7 @@ class SecurityController extends baseController_1.NativeController {
1047
1065
  const generator = humanReadableId
1048
1066
  ? () => name_generator_1.NameGenerator.generateRandomName({ prefix: "kuid" })
1049
1067
  : () => "kuid-" + (0, uuid_1.v4)();
1050
- let id = "";
1068
+ let id;
1051
1069
  let alreadyExists = false;
1052
1070
  // Early checks before the user is created
1053
1071
  do {
@@ -1120,20 +1138,18 @@ class SecurityController extends baseController_1.NativeController {
1120
1138
  catch (e) {
1121
1139
  this.logger.error(`User rollback error: ${e}`);
1122
1140
  }
1141
+ const cause = causeOf(creationFailure.error);
1123
1142
  if (deletionErrors.length > 0) {
1124
1143
  // 2 errors > we
1125
- throw kerror.get("plugin", "runtime", "unexpected_error", [
1126
- creationFailure.error.message,
1127
- ...deletionErrors.map((e) => e.message),
1128
- ].join("\n"));
1144
+ throw kerror.get("plugin", "runtime", "unexpected_error", [cause.message, ...deletionErrors.map((e) => causeOf(e).message)].join("\n"));
1129
1145
  }
1130
1146
  if (creationFailure.error instanceof errors_1.KuzzleError) {
1131
1147
  throw creationFailure.error;
1132
1148
  }
1133
1149
  if (creationFailure.validation) {
1134
- throw kerror.getFrom(creationFailure.error, "security", "credentials", "rejected", creationFailure.error.message);
1150
+ throw kerror.getFrom(cause, "security", "credentials", "rejected", cause.message);
1135
1151
  }
1136
- throw kerror.getFrom(creationFailure.error, "plugin", "runtime", "unexpected_error", creationFailure.error.message);
1152
+ throw kerror.getFrom(cause, "plugin", "runtime", "unexpected_error", cause.message);
1137
1153
  }
1138
1154
  /**
1139
1155
  * Checks if a search result can exceeds the server configured limit
@@ -1147,5 +1163,5 @@ class SecurityController extends baseController_1.NativeController {
1147
1163
  return size;
1148
1164
  }
1149
1165
  }
1150
- exports.default = SecurityController;
1166
+ module.exports = SecurityController;
1151
1167
  //# sourceMappingURL=securityController.js.map
@@ -1,13 +1,24 @@
1
- export = ServerController;
1
+ /// <reference types="node" />
2
+ import * as os from "node:os";
3
+ import type { ApiRoute } from "../../types/ApiRoute";
4
+ import type { KuzzleRequest } from "../request";
5
+ import { NativeController } from "./baseController";
6
+ interface ApiActionDefinition {
7
+ action: string;
8
+ controller: string;
9
+ http?: Array<{
10
+ path: string;
11
+ url: string;
12
+ verb: string;
13
+ }>;
14
+ }
2
15
  /**
3
16
  * @class ServerController
4
17
  */
5
18
  declare class ServerController extends NativeController {
19
+ /** Filled by `init()`, from what the two services report. */
20
+ private readonly _info;
6
21
  constructor();
7
- _info: {
8
- elasticsearch: any;
9
- redis: any;
10
- };
11
22
  /**
12
23
  * Init ServerController
13
24
  * Used to perform asynchronous initialization safely: the funnel will wait
@@ -15,7 +26,7 @@ declare class ServerController extends NativeController {
15
26
  *
16
27
  * @returns {Promise}
17
28
  */
18
- init(): Promise<any>;
29
+ init(): Promise<void>;
19
30
  /**
20
31
  * Returns the statistics frame from a date
21
32
  *
@@ -24,7 +35,17 @@ declare class ServerController extends NativeController {
24
35
  *
25
36
  * @deprecated
26
37
  */
27
- getStats(request: Request): Promise<any>;
38
+ getStats(request: KuzzleRequest): Promise<{
39
+ hits: ({
40
+ completedRequests: Record<string, number>;
41
+ connections: Record<string, number>;
42
+ failedRequests: Record<string, number>;
43
+ ongoingRequests: Record<string, number>;
44
+ } & {
45
+ timestamp: number;
46
+ })[];
47
+ total: number;
48
+ }>;
28
49
  /**
29
50
  * Returns the last statistics frame
30
51
  *
@@ -32,7 +53,21 @@ declare class ServerController extends NativeController {
32
53
  *
33
54
  * @deprecated
34
55
  */
35
- getLastStats(): Promise<any>;
56
+ getLastStats(): Promise<({
57
+ completedRequests: Record<string, number>;
58
+ connections: Record<string, number>;
59
+ failedRequests: Record<string, number>;
60
+ ongoingRequests: Record<string, number>;
61
+ } & {
62
+ timestamp: number;
63
+ }) | ({
64
+ completedRequests: Map<string, number>;
65
+ connections: Map<string, number>;
66
+ failedRequests: Map<string, number>;
67
+ ongoingRequests: Map<string, number>;
68
+ } & {
69
+ timestamp: number;
70
+ })>;
36
71
  /**
37
72
  * Returns all stored statistics frames
38
73
  *
@@ -40,7 +75,17 @@ declare class ServerController extends NativeController {
40
75
  *
41
76
  * @deprecated
42
77
  */
43
- getAllStats(): Promise<any>;
78
+ getAllStats(): Promise<{
79
+ hits: ({
80
+ completedRequests: Record<string, number>;
81
+ connections: Record<string, number>;
82
+ failedRequests: Record<string, number>;
83
+ ongoingRequests: Record<string, number>;
84
+ } & {
85
+ timestamp: number;
86
+ })[];
87
+ total: number;
88
+ }>;
44
89
  /**
45
90
  * Returns the Kuzzle configuration
46
91
  *
@@ -51,32 +96,82 @@ declare class ServerController extends NativeController {
51
96
  * Returns the Kuzzle capabilities
52
97
  * @returns {Promise<Object>}
53
98
  */
54
- capabilities(): Promise<any>;
99
+ capabilities(): Promise<{
100
+ limits: any;
101
+ plugins: Record<string, {
102
+ version: string;
103
+ }>;
104
+ routes: {
105
+ [x: string]: Record<string, ApiActionDefinition>;
106
+ };
107
+ services: Record<string, {
108
+ backend: string;
109
+ version: string;
110
+ }>;
111
+ version: any;
112
+ }>;
55
113
  /**
56
114
  * Checks if an admin user Exists
57
115
  *
58
116
  * @returns {Promise<Object>}
59
117
  */
60
- adminExists(): Promise<any>;
118
+ adminExists(): Promise<{
119
+ exists: any;
120
+ }>;
61
121
  /**
62
122
  * @returns {Promise<Object>}
63
123
  */
64
- now(): Promise<any>;
124
+ now(): Promise<{
125
+ now: number;
126
+ }>;
65
127
  /**
66
128
  * @returns {Promise<Object>}
67
129
  */
68
- healthCheck(request: any): Promise<any>;
130
+ healthCheck(request: KuzzleRequest): Promise<{
131
+ services: Record<string, string>;
132
+ status: string;
133
+ }>;
69
134
  /**
70
135
  * @returns {Promise<Object>}
71
136
  */
72
- info(): Promise<any>;
73
- publicApi(): Promise<{}>;
74
- openapi(request: any): Promise<any>;
137
+ info(): Promise<{
138
+ serverInfo: {
139
+ kuzzle: {
140
+ api: {
141
+ routes: {};
142
+ };
143
+ application: {};
144
+ memoryUsed: number;
145
+ nodeVersion: string;
146
+ plugins: {};
147
+ system: {
148
+ cpus: os.CpuInfo[];
149
+ memory: {
150
+ free: number;
151
+ total: number;
152
+ };
153
+ };
154
+ uptime: string;
155
+ version: string | undefined;
156
+ };
157
+ services: {};
158
+ };
159
+ }>;
160
+ publicApi(): Promise<{
161
+ [x: string]: Record<string, ApiActionDefinition>;
162
+ }>;
163
+ openapi(request: KuzzleRequest): Promise<any>;
75
164
  /**
76
165
  * Fetches and returns Kuzzle core metrics
77
166
  * @returns {Promise<Object>}
78
167
  */
79
- metrics(): Promise<any>;
80
- _buildApiDefinition(controllers: any, httpRoutes: any): {};
168
+ metrics(): Promise<{
169
+ api: any;
170
+ network: any;
171
+ realtime: any;
172
+ }>;
173
+ _buildApiDefinition(controllers: Map<string, {
174
+ _actions: Iterable<string>;
175
+ }>, httpRoutes: ApiRoute[]): Record<string, Record<string, ApiActionDefinition>>;
81
176
  }
82
- import { NativeController } from "./baseController";
177
+ export = ServerController;