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,40 +19,93 @@
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 assert = require("assert");
23
- const bytes = require("../../../util/bytes");
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ const node_assert_1 = __importDefault(require("node:assert"));
26
+ const bytes_1 = __importDefault(require("../../../util/bytes"));
27
+ /**
28
+ * @typeParam TConfig - the shape of `server.protocols.<name>` in the Kuzzle
29
+ * configuration, which is what `init` copies into
30
+ * `this.config`
31
+ */
24
32
  class Protocol {
25
- constructor(name) {
26
- this.maxRequestSize = null;
27
- this.entryPoint = null;
28
- this.name = name;
33
+ /**
34
+ * The entry point that owns this protocol, and the request size limit it
35
+ * published. Both are set by `init` and read by everything a protocol does
36
+ * afterwards — a handler cannot run before the server it is registered on
37
+ * has been created.
38
+ *
39
+ * Declaring them nullable and reading them anyway is what the subclasses
40
+ * did: 20 unchecked dereferences across the three of them, each one taking
41
+ * on trust what `init` establishes. These two accessors say it once, where
42
+ * it can actually fail.
43
+ */
44
+ get entryPoint() {
45
+ if (this._entryPoint === null) {
46
+ throw new Error(`Protocol "${this.name}" has no entry point: init() has not been called yet`);
47
+ }
48
+ return this._entryPoint;
49
+ }
50
+ get maxRequestSize() {
51
+ if (this._maxRequestSize === null) {
52
+ throw new Error(`Protocol "${this.name}" has no maxRequestSize: init() has not been called yet`);
53
+ }
54
+ return this._maxRequestSize;
55
+ }
56
+ set maxRequestSize(size) {
57
+ this._maxRequestSize = size;
58
+ }
59
+ /**
60
+ * Normalises the two `init` call shapes into the entry point they both
61
+ * carry. Every subclass overriding `init` has to accept both shapes too —
62
+ * a subclass that only took the live one would not honour the contract its
63
+ * base class publishes, and `init(null, entryPoint)` on it would throw —
64
+ * so the normalisation lives here rather than being written out four times.
65
+ *
66
+ * The old shape puts the entry point second. Reading `args[1]`
67
+ * unconditionally is what the first conversion did: `init(entryPoint)`
68
+ * type-checked and threw on `entryPoint.config` (TD-41).
69
+ */
70
+ static entryPointOf(args) {
71
+ // `||`, not `??`: v2.56.0 took any *falsy* first argument as the old shape
72
+ // (its assert only needed `!name`), so `init("", entryPoint)` and
73
+ // `init(false, entryPoint)` worked there. `??` kept `""` as the entry point.
74
+ const entryPoint = args[0] || args[1]; // NOSONAR: falsy, not nullish, on purpose
75
+ // Both call shapes crashed on `entryPoint.config` a few lines down when
76
+ // the entry point was missing. Same outcome, with the reason in the
77
+ // message — a third-party protocol in JavaScript is not constrained by
78
+ // the overloads.
79
+ (0, node_assert_1.default)(entryPoint !== undefined && entryPoint !== null, 'Invalid "entryPoint" parameter value: expected the network entry point');
80
+ return entryPoint;
81
+ }
82
+ constructor(name = "") {
83
+ this._maxRequestSize = null;
84
+ this._entryPoint = null;
29
85
  this.config = {};
30
86
  this.initCalled = false;
87
+ this.name = name;
31
88
  Reflect.defineProperty(this, "_kuzzle", {
32
89
  value: null,
33
90
  writable: true,
34
91
  });
35
92
  }
36
- /**
37
- * @param {string} name - Protocol name (used for accessor) @deprecated
38
- * @param {EmbeddedEntryPoint} entryPoint
39
- *
40
- * @returns {Promise<boolean>}
41
- */
42
- async init(name, entryPoint) {
43
- this.entryPoint = entryPoint;
44
- // name should be passed in the constructor
45
- assert(this.name && !name, "A name has been given in the constructor and init method. Passing the name in the init method is deprecated.");
46
- if (!this.name) {
47
- this.name = name;
48
- }
49
- this.maxRequestSize = bytes(entryPoint.config.maxRequestSize);
50
- assert(typeof this.name === "string" && this.name.length > 0, 'Invalid "name" parameter value: expected a non empty string value');
51
- if (entryPoint.config.protocols && entryPoint.config.protocols[this.name]) {
52
- this.config = entryPoint.config.protocols[this.name];
93
+ async init(...args) {
94
+ const entryPoint = Protocol.entryPointOf(args);
95
+ this._entryPoint = entryPoint;
96
+ // name should be passed in the constructor. The original condition was
97
+ // `this.name && !name`; normalisation above proves the first argument is
98
+ // never a name, so `!name` was constant-true. What remains is the half
99
+ // that can fail, and it throws the same error it always did.
100
+ (0, node_assert_1.default)(this.name, "A name has been given in the constructor and init method. Passing the name in the init method is deprecated.");
101
+ this._maxRequestSize = (0, bytes_1.default)(entryPoint.config.maxRequestSize);
102
+ (0, node_assert_1.default)(typeof this.name === "string" && this.name.length > 0, 'Invalid "name" parameter value: expected a non empty string value');
103
+ const protocolsConfig = entryPoint.config.protocols;
104
+ // the config is keyed by protocol name, which is only known at runtime
105
+ if (protocolsConfig && Reflect.get(protocolsConfig, this.name)) {
106
+ this.config = Reflect.get(protocolsConfig, this.name);
53
107
  }
54
- assert(Number.isInteger(this.maxRequestSize), 'Invalid "maxRequestSize" parameter value: expected a numeric value');
108
+ (0, node_assert_1.default)(Number.isInteger(this._maxRequestSize), 'Invalid "maxRequestSize" parameter value: expected a numeric value');
55
109
  this.initCalled = true;
56
110
  return true;
57
111
  }
@@ -59,11 +113,13 @@ class Protocol {
59
113
  // do nothing by default
60
114
  }
61
115
  joinChannel(channel, connectionId) {
62
- // do nothing by default
116
+ // do nothing by default, beyond echoing back what it was given — which the
117
+ // spec pins. The `| void` is what lets an override that registers the
118
+ // channel and returns nothing satisfy the contract.
63
119
  return { channel, connectionId };
64
120
  }
65
121
  leaveChannel(channel, connectionId) {
66
- // do nothing by default
122
+ // do nothing by default — see joinChannel.
67
123
  return { channel, connectionId };
68
124
  }
69
125
  notify() {
@@ -1,29 +1,23 @@
1
- export = Router;
2
- /**
3
- * @class Router
4
- * @property action
5
- * @param {Kuzzle} kuzzle
6
- */
1
+ import type { JSONObject } from "../../types/JSONObject";
2
+ import type { RequestContext } from "../../api/request";
3
+ import { Request } from "../../api/request";
4
+ import HttpRouter from "./httpRouter";
5
+ import type { RouteCallback } from "./httpRouter/routeTypes";
7
6
  declare class Router {
8
- connections: Map<any, any>;
7
+ connections: Map<string, RequestContext>;
9
8
  http: HttpRouter;
10
- logger: import("../../kuzzle/Logger").Logger;
9
+ private readonly logger;
10
+ constructor();
11
11
  /**
12
12
  * Declares a new connection attached to a network protocol.
13
- *
14
- * @param {RequestContext} requestContext
15
13
  */
16
14
  newConnection(requestContext: RequestContext): void;
17
15
  /**
18
16
  * Removes a connection from the connection pool.
19
- *
20
- * @param {RequestContext} requestContext
21
17
  */
22
18
  removeConnection(requestContext: RequestContext): void;
23
19
  /**
24
20
  * Check that the provided connection id executing a request is still alive
25
- *
26
- * @param {RequestContext} requestContext
27
21
  */
28
22
  isConnectionAlive(requestContext: RequestContext): boolean;
29
23
  /**
@@ -32,18 +26,15 @@ declare class Router {
32
26
  init(): void;
33
27
  /**
34
28
  * Returns the metrics of the router
35
- * @returns {Object}
36
29
  */
37
- metrics(): any;
30
+ metrics(): JSONObject;
38
31
  /**
39
32
  * Transmit HTTP requests to the funnel controller and forward its response
40
33
  * back to the client
41
34
  *
42
- * @param {String} verb
43
- * @param {Request} request - includes URL and POST query data
44
- * @param {function} cb - callback to invoke with the result
35
+ * @param request - includes URL and POST query data
36
+ * @param cb - callback to invoke with the result
45
37
  */
46
- _executeFromHttp(verb: string, request: Request, cb: Function): void;
38
+ _executeFromHttp(verb: string, request: Request, cb: RouteCallback): void;
47
39
  }
48
- import HttpRouter = require("./httpRouter");
49
- import { Request } from "../../api/request/kuzzleRequest";
40
+ export = Router;
@@ -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,27 +19,44 @@
18
19
  * See the License for the specific language governing permissions and
19
20
  * limitations under the License.
20
21
  */
21
- "use strict";
22
- const { Request } = require("../../api/request");
23
- const kerror = require("../../kerror");
24
- const HttpRouter = require("./httpRouter");
25
- const { removeStacktrace } = require("../../util/stackTrace");
26
- const kuzzleStateEnum = require("../../kuzzle/kuzzleStateEnum");
27
- /**
28
- * @class Router
29
- * @property action
30
- * @param {Kuzzle} kuzzle
31
- */
22
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ var desc = Object.getOwnPropertyDescriptor(m, k);
25
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
26
+ desc = { enumerable: true, get: function() { return m[k]; } };
27
+ }
28
+ Object.defineProperty(o, k2, desc);
29
+ }) : (function(o, m, k, k2) {
30
+ if (k2 === undefined) k2 = k;
31
+ o[k2] = m[k];
32
+ }));
33
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
34
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
35
+ }) : function(o, v) {
36
+ o["default"] = v;
37
+ });
38
+ var __importStar = (this && this.__importStar) || function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ const request_1 = require("../../api/request");
49
+ const kerror = __importStar(require("../../kerror"));
50
+ const kuzzleStateEnum_1 = __importDefault(require("../../kuzzle/kuzzleStateEnum"));
51
+ const httpRouter_1 = __importDefault(require("./httpRouter"));
32
52
  class Router {
33
53
  constructor() {
34
- this.connections = new Map();
35
- this.http = new HttpRouter();
36
54
  this.logger = global.kuzzle.log.child("core:network:router");
55
+ this.connections = new Map();
56
+ this.http = new httpRouter_1.default();
37
57
  }
38
58
  /**
39
59
  * Declares a new connection attached to a network protocol.
40
- *
41
- * @param {RequestContext} requestContext
42
60
  */
43
61
  newConnection(requestContext) {
44
62
  if (!requestContext.connection.id || !requestContext.connection.protocol) {
@@ -51,13 +69,11 @@ class Router {
51
69
  }
52
70
  /**
53
71
  * Removes a connection from the connection pool.
54
- *
55
- * @param {RequestContext} requestContext
56
72
  */
57
73
  removeConnection(requestContext) {
58
74
  const connId = requestContext.connection.id;
59
75
  if (!connId || !requestContext.connection.protocol) {
60
- this.logger.error(kerror.get("protocol", "runtime", "invalid_connection", JSON.stringify(requestContext.context)));
76
+ this.logger.error(kerror.get("protocol", "runtime", "invalid_connection", JSON.stringify(requestContext)));
61
77
  return;
62
78
  }
63
79
  if (!this.connections.has(connId)) {
@@ -69,8 +85,6 @@ class Router {
69
85
  }
70
86
  /**
71
87
  * Check that the provided connection id executing a request is still alive
72
- *
73
- * @param {RequestContext} requestContext
74
88
  */
75
89
  isConnectionAlive(requestContext) {
76
90
  // Check only defined connection identifiers (some protocols might
@@ -90,11 +104,14 @@ class Router {
90
104
  this.http.post("_query", (request, cb) => {
91
105
  // We need to build a new request from the body
92
106
  // and we also need to keep the original request context
93
- const requestPayload = request.input.body;
107
+ // `input.body` is nullable: a POST /_query with no body used to reach
108
+ // `requestPayload.jwt` and throw a TypeError. `getBody()` answers the
109
+ // same object and rejects the empty case with api.assert.body_required.
110
+ const requestPayload = request.getBody();
94
111
  if (request.input.jwt && requestPayload.jwt === undefined) {
95
112
  requestPayload.jwt = request.input.jwt;
96
113
  }
97
- const apiRequest = new Request(requestPayload, request.serialize().options);
114
+ const apiRequest = new request_1.Request(requestPayload, request.serialize().options);
98
115
  this._executeFromHttp("post", apiRequest, cb);
99
116
  });
100
117
  this.http.get("_healthcheck", (request, cb) => {
@@ -109,12 +126,12 @@ class Router {
109
126
  });
110
127
  this.http.get("_ready", (request, cb) => {
111
128
  let status = 200;
112
- if (global.kuzzle.state !== kuzzleStateEnum.RUNNING ||
129
+ if (global.kuzzle.state !== kuzzleStateEnum_1.default.RUNNING ||
113
130
  global.kuzzle.funnel.overloaded) {
114
131
  status = 503;
115
132
  }
116
133
  request.response.configure({
117
- status: status,
134
+ status,
118
135
  });
119
136
  /**
120
137
  * By avoiding using the funnel, we avoid the request to be logged
@@ -123,6 +140,7 @@ class Router {
123
140
  cb(request);
124
141
  });
125
142
  for (const route of routes) {
143
+ // the route table's verbs are the HttpRouter method names, uppercased
126
144
  const verb = route.verb.toLowerCase();
127
145
  this.http[verb](route.path, (request, cb) => {
128
146
  request.input.controller = route.controller;
@@ -136,24 +154,22 @@ class Router {
136
154
  }
137
155
  /**
138
156
  * Returns inner metrics from the router
139
- * @returns {Object}
140
157
  */
141
158
  global.kuzzle.onAsk("core:network:router:metrics", () => this.metrics());
142
159
  }
143
160
  /**
144
161
  * Returns the metrics of the router
145
- * @returns {Object}
146
162
  */
147
163
  metrics() {
148
164
  const connectionsByProtocol = {};
149
165
  for (const connection of this.connections.values()) {
150
- const protocol = connection.connection.protocol.toLowerCase();
151
- if (protocol === "internal") {
166
+ const protocol = connection.connection.protocol?.toLowerCase();
167
+ // A request context carries a nullable protocol; one without is not a
168
+ // client connection to count.
169
+ if (protocol === undefined || protocol === "internal") {
152
170
  continue;
153
171
  }
154
- if (connectionsByProtocol[protocol] === undefined) {
155
- connectionsByProtocol[protocol] = 0;
156
- }
172
+ connectionsByProtocol[protocol] ?? (connectionsByProtocol[protocol] = 0);
157
173
  connectionsByProtocol[protocol]++;
158
174
  }
159
175
  return {
@@ -164,30 +180,27 @@ class Router {
164
180
  * Transmit HTTP requests to the funnel controller and forward its response
165
181
  * back to the client
166
182
  *
167
- * @param {String} verb
168
- * @param {Request} request - includes URL and POST query data
169
- * @param {function} cb - callback to invoke with the result
183
+ * @param request - includes URL and POST query data
184
+ * @param cb - callback to invoke with the result
170
185
  */
171
186
  _executeFromHttp(verb, request, cb) {
172
187
  global.kuzzle.pipe(`http:${verb}`, request, (error, mutatedRequest) => {
173
188
  if (error) {
174
189
  request.setError(error);
175
190
  cb(request);
191
+ return;
176
192
  }
177
- else {
178
- global.kuzzle.funnel.execute(mutatedRequest, (err, result) => {
179
- const _res = result || request;
180
- if (err && !_res.error) {
181
- _res.setError(err);
182
- }
183
- cb(removeStacktrace(_res));
184
- });
185
- }
193
+ global.kuzzle.funnel.execute(mutatedRequest, (err, result) => {
194
+ const _res = result || request;
195
+ if (err && !_res.error) {
196
+ _res.setError(err);
197
+ }
198
+ // no sanitisation here: `_res` is a KuzzleRequest, and the stack
199
+ // is stripped by the protocols, on the serialized response
200
+ cb(_res);
201
+ });
186
202
  });
187
203
  }
188
204
  }
189
- /**
190
- * @type {RouterController}
191
- */
192
205
  module.exports = Router;
193
206
  //# sourceMappingURL=router.js.map
@@ -1,56 +1,62 @@
1
- export = Plugin;
1
+ import type { JSONObject } from "../../types/JSONObject";
2
+ import type { ControllerDefinition } from "../../types";
3
+ import type { PluginInstance, PluginOptions } from "../../types/PluginInstance";
4
+ import Manifest from "./pluginManifest";
5
+ import { PluginContext } from "./pluginContext";
6
+ /**
7
+ * Kuzzle's own wrapper around a plugin: its name, config, context and manifest,
8
+ * plus the assertions a plugin must satisfy before it is loaded.
9
+ *
10
+ * Not to be confused with `lib/types/Plugin.ts`'s `Plugin`, which is the
11
+ * abstract class a plugin author extends. This one wraps an instance of that.
12
+ */
2
13
  declare class Plugin {
3
- static loadFromDirectory(pluginPath: any): Plugin;
4
- static checkName(name: any): boolean;
5
- static checkControllerDefinition(name: any, definition: any, { application }?: {
6
- application?: boolean;
7
- }): void;
8
- constructor(instance: any, { name, application, deprecationWarning }?: {
9
- name: any;
10
- application?: boolean;
11
- deprecationWarning?: boolean;
12
- });
13
- _instance: any;
14
- _application: boolean;
15
- _initCalled: boolean;
16
- _config: {};
17
- _context: PluginContext;
18
- _version: any;
19
- _name: string;
20
- _manifest: any;
21
- _deprecationWarning: boolean;
22
- set name(name: string);
23
- get name(): string;
24
- init(name: any): void;
25
- set config(config: {});
26
- get config(): {};
27
- info(): {
28
- version: any;
29
- controllers: any[];
30
- hooks: any[];
31
- manifest: any;
32
- pipes: any[];
33
- routes: any[];
34
- strategies: any[];
35
- imports: {};
36
- } | {
37
- name: string;
38
- version: any;
39
- commit: any;
40
- controllers: any;
41
- pipes: string[];
42
- hooks: string[];
43
- };
44
- printDeprecation(message: any): void;
45
- get instance(): any;
46
- get context(): PluginContext;
14
+ private readonly _instance;
15
+ private readonly _application;
16
+ private _config;
17
+ private _context;
18
+ private _version;
19
+ private _name;
20
+ private _manifest;
21
+ private _deprecationWarning;
22
+ /**
23
+ * Set by `PluginsManager` once the plugin's own `init` has resolved.
24
+ *
25
+ * The JavaScript declared a `_initCalled` in the constructor and never read
26
+ * it: what the manager actually sets, and what the specs assert, is this
27
+ * public `initCalled`, created ad hoc on the object. The dead field is gone
28
+ * and the live one is declared.
29
+ */
30
+ initCalled: boolean;
31
+ /**
32
+ * Set from the outside by `Backend`, which reads it from the git tree — the
33
+ * wrapper has no way to derive it. `info()` reports it for an application.
34
+ */
35
+ commit: string | null;
36
+ /** Set from the outside by `Backend`, like `commit`. */
37
+ openApi: JSONObject | null;
38
+ constructor(instance: PluginInstance, { name, application, deprecationWarning, }?: PluginOptions);
39
+ init(name: string): void;
40
+ info(): JSONObject;
41
+ printDeprecation(message: string): void;
42
+ get instance(): PluginInstance;
43
+ get context(): PluginContext | null;
47
44
  get application(): boolean;
48
45
  get logPrefix(): string;
49
- set version(version: any);
50
- get version(): any;
51
- set deprecationWarning(value: boolean);
46
+ get config(): JSONObject;
47
+ set config(config: JSONObject);
48
+ get version(): string;
49
+ set version(version: string);
52
50
  get deprecationWarning(): boolean;
53
- set manifest(manifest: any);
54
- get manifest(): any;
51
+ set deprecationWarning(value: boolean);
52
+ get name(): string;
53
+ set name(name: string);
54
+ get manifest(): Manifest | null;
55
+ set manifest(manifest: Manifest | null);
56
+ static loadFromDirectory(pluginPath: string): Plugin;
57
+ static checkName(name: string): boolean;
58
+ static checkControllerDefinition(name: string, definition: ControllerDefinition | undefined, { application }?: {
59
+ application?: boolean;
60
+ }): asserts definition is ControllerDefinition;
55
61
  }
56
- import { PluginContext } from "./pluginContext";
62
+ export = Plugin;