kuzzle 2.49.1 → 2.50.0-beta.3

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 (592) hide show
  1. package/dist/bin/check-node-version.js +11 -0
  2. package/dist/bin/copy-protobuf.js +17 -0
  3. package/dist/lib/api/controllers/adminController.d.ts +51 -0
  4. package/dist/lib/api/controllers/adminController.js +191 -0
  5. package/{lib → dist/lib}/api/controllers/authController.d.ts +20 -40
  6. package/{lib → dist/lib}/api/controllers/authController.js +23 -24
  7. package/dist/lib/api/controllers/bulkController.d.ts +46 -0
  8. package/dist/lib/api/controllers/bulkController.js +132 -0
  9. package/dist/lib/api/controllers/clusterController.d.ts +6 -0
  10. package/{lib → dist/lib}/api/controllers/clusterController.js +7 -11
  11. package/dist/lib/api/controllers/collectionController.d.ts +136 -0
  12. package/dist/lib/api/controllers/collectionController.js +356 -0
  13. package/dist/lib/api/controllers/documentController.d.ts +181 -0
  14. package/dist/lib/api/controllers/documentController.js +768 -0
  15. package/dist/lib/api/controllers/index.d.ts +12 -0
  16. package/{lib → dist/lib}/api/controllers/index.js +13 -14
  17. package/dist/lib/api/controllers/indexController.d.ts +65 -0
  18. package/dist/lib/api/controllers/indexController.js +139 -0
  19. package/dist/lib/api/controllers/memoryStorageController.d.ts +8 -0
  20. package/dist/lib/api/controllers/memoryStorageController.js +867 -0
  21. package/dist/lib/api/controllers/realtimeController.d.ts +47 -0
  22. package/dist/lib/api/controllers/realtimeController.js +128 -0
  23. package/dist/lib/api/controllers/securityController.d.ts +423 -0
  24. package/dist/lib/api/controllers/securityController.js +1139 -0
  25. package/dist/lib/api/controllers/serverController.d.ts +82 -0
  26. package/dist/lib/api/controllers/serverController.js +321 -0
  27. package/dist/lib/api/documentExtractor.d.ts +9 -0
  28. package/dist/lib/api/documentExtractor.js +274 -0
  29. package/dist/lib/api/funnel.d.ts +183 -0
  30. package/dist/lib/api/funnel.js +821 -0
  31. package/dist/lib/api/httpRoutes.d.ts +17 -0
  32. package/dist/lib/api/httpRoutes.js +1496 -0
  33. package/dist/lib/api/rateLimiter.d.ts +18 -0
  34. package/dist/lib/api/rateLimiter.js +74 -0
  35. package/{lib → dist/lib}/api/request/kuzzleRequest.d.ts +2 -2
  36. package/{lib → dist/lib}/api/request/requestContext.d.ts +2 -1
  37. package/dist/lib/cluster/command.d.ts +73 -0
  38. package/dist/lib/cluster/command.js +236 -0
  39. package/dist/lib/cluster/index.d.ts +2 -0
  40. package/{lib → dist/lib}/cluster/index.js +1 -2
  41. package/dist/lib/cluster/node.d.ts +278 -0
  42. package/dist/lib/cluster/node.js +876 -0
  43. package/dist/lib/cluster/publisher.d.ts +188 -0
  44. package/dist/lib/cluster/publisher.js +347 -0
  45. package/dist/lib/cluster/subscriber.d.ts +269 -0
  46. package/dist/lib/cluster/subscriber.js +555 -0
  47. package/dist/lib/cluster/workers/IDCardRenewer.d.ts +13 -0
  48. package/dist/lib/cluster/workers/IDCardRenewer.js +120 -0
  49. package/{lib → dist/lib}/config/documentEventAliases.d.ts +1 -2
  50. package/dist/lib/config/index.d.ts +5 -0
  51. package/dist/lib/config/index.js +244 -0
  52. package/dist/lib/config/sdkCompatibility.json +9 -0
  53. package/dist/lib/core/auth/formatProcessing.d.ts +30 -0
  54. package/dist/lib/core/auth/formatProcessing.js +55 -0
  55. package/dist/lib/core/auth/passportResponse.d.ts +15 -0
  56. package/{lib → dist/lib}/core/auth/passportResponse.js +24 -30
  57. package/dist/lib/core/auth/passportWrapper.d.ts +28 -0
  58. package/dist/lib/core/auth/passportWrapper.js +126 -0
  59. package/{lib → dist/lib}/core/backend/backendConfig.js +2 -2
  60. package/{lib → dist/lib}/core/backend/backendErrors.js +9 -12
  61. package/dist/lib/core/cache/cacheEngine.d.ts +15 -0
  62. package/dist/lib/core/cache/cacheEngine.js +205 -0
  63. package/dist/lib/core/network/accessLogger.d.ts +29 -0
  64. package/dist/lib/core/network/accessLogger.js +250 -0
  65. package/dist/lib/core/network/clientConnection.d.ts +15 -0
  66. package/{lib → dist/lib}/core/network/clientConnection.js +17 -24
  67. package/dist/lib/core/network/context.d.ts +42 -0
  68. package/dist/lib/core/network/context.js +57 -0
  69. package/dist/lib/core/network/entryPoint.d.ts +62 -0
  70. package/dist/lib/core/network/entryPoint.js +261 -0
  71. package/dist/lib/core/network/httpRouter/index.d.ts +85 -0
  72. package/dist/lib/core/network/httpRouter/index.js +258 -0
  73. package/dist/lib/core/network/httpRouter/routeHandler.d.ts +46 -0
  74. package/dist/lib/core/network/httpRouter/routeHandler.js +101 -0
  75. package/dist/lib/core/network/httpRouter/routePart.d.ts +35 -0
  76. package/dist/lib/core/network/httpRouter/routePart.js +117 -0
  77. package/dist/lib/core/network/protocolManifest.d.ts +6 -0
  78. package/{lib → dist/lib}/core/network/protocolManifest.js +5 -9
  79. package/dist/lib/core/network/protocols/httpMessage.d.ts +22 -0
  80. package/dist/lib/core/network/protocols/httpMessage.js +62 -0
  81. package/dist/lib/core/network/protocols/httpwsProtocol.d.ts +171 -0
  82. package/dist/lib/core/network/protocols/httpwsProtocol.js +921 -0
  83. package/dist/lib/core/network/protocols/internalProtocol.d.ts +27 -0
  84. package/dist/lib/core/network/protocols/internalProtocol.js +82 -0
  85. package/dist/lib/core/network/protocols/mqttProtocol.d.ts +39 -0
  86. package/dist/lib/core/network/protocols/mqttProtocol.js +219 -0
  87. package/dist/lib/core/network/protocols/protocol.d.ts +26 -0
  88. package/dist/lib/core/network/protocols/protocol.js +74 -0
  89. package/dist/lib/core/network/router.d.ts +49 -0
  90. package/dist/lib/core/network/router.js +193 -0
  91. package/dist/lib/core/plugin/plugin.d.ts +56 -0
  92. package/dist/lib/core/plugin/plugin.js +282 -0
  93. package/{lib → dist/lib}/core/plugin/pluginContext.js +2 -2
  94. package/dist/lib/core/plugin/pluginManifest.d.ts +5 -0
  95. package/{lib → dist/lib}/core/plugin/pluginManifest.js +16 -27
  96. package/dist/lib/core/plugin/pluginRepository.d.ts +53 -0
  97. package/dist/lib/core/plugin/pluginRepository.js +112 -0
  98. package/dist/lib/core/plugin/pluginsManager.d.ts +190 -0
  99. package/dist/lib/core/plugin/pluginsManager.js +817 -0
  100. package/dist/lib/core/plugin/privilegedContext.d.ts +14 -0
  101. package/{lib → dist/lib}/core/plugin/privilegedContext.js +10 -14
  102. package/dist/lib/core/realtime/actionEnum.d.ts +25 -0
  103. package/{lib → dist/lib}/core/realtime/actionEnum.js +7 -10
  104. package/dist/lib/core/realtime/index.d.ts +8 -0
  105. package/{lib → dist/lib}/core/realtime/index.js +9 -13
  106. package/dist/lib/core/realtime/notification/document.d.ts +34 -0
  107. package/dist/lib/core/realtime/notification/document.js +98 -0
  108. package/dist/lib/core/realtime/notification/index.d.ts +3 -0
  109. package/{lib → dist/lib}/core/realtime/notification/index.js +4 -5
  110. package/dist/lib/core/realtime/notification/server.d.ts +17 -0
  111. package/{lib → dist/lib}/core/realtime/notification/server.js +8 -10
  112. package/dist/lib/core/realtime/notification/user.d.ts +29 -0
  113. package/dist/lib/core/realtime/notification/user.js +66 -0
  114. package/dist/lib/core/realtime/notifier.d.ts +171 -0
  115. package/dist/lib/core/realtime/notifier.js +405 -0
  116. package/dist/lib/core/security/index.d.ts +14 -0
  117. package/{lib → dist/lib}/core/security/index.js +15 -19
  118. package/dist/lib/core/security/roleRepository.d.ts +143 -0
  119. package/dist/lib/core/security/roleRepository.js +445 -0
  120. package/dist/lib/core/security/securityLoader.d.ts +24 -0
  121. package/dist/lib/core/security/securityLoader.js +125 -0
  122. package/{lib → dist/lib}/core/security/tokenRepository.js +1 -1
  123. package/dist/lib/core/security/userRepository.d.ts +81 -0
  124. package/dist/lib/core/security/userRepository.js +346 -0
  125. package/dist/lib/core/shared/abstractManifest.d.ts +27 -0
  126. package/dist/lib/core/shared/abstractManifest.js +85 -0
  127. package/dist/lib/core/shared/sdk/impersonatedSdk.d.ts +7 -0
  128. package/dist/lib/core/shared/sdk/impersonatedSdk.js +80 -0
  129. package/{lib → dist/lib}/core/shared/store.d.ts +2 -2
  130. package/dist/lib/core/statistics/statistics.d.ts +94 -0
  131. package/dist/lib/core/statistics/statistics.js +287 -0
  132. package/dist/lib/core/storage/clientAdapter.d.ts +62 -0
  133. package/dist/lib/core/storage/clientAdapter.js +756 -0
  134. package/dist/lib/core/storage/storageEngine.d.ts +13 -0
  135. package/dist/lib/core/storage/storageEngine.js +52 -0
  136. package/dist/lib/core/validation/baseType.d.ts +35 -0
  137. package/dist/lib/core/validation/baseType.js +70 -0
  138. package/dist/lib/core/validation/types/anything.d.ts +10 -0
  139. package/{lib → dist/lib}/core/validation/types/anything.js +7 -10
  140. package/dist/lib/core/validation/types/boolean.d.ts +16 -0
  141. package/{lib → dist/lib}/core/validation/types/boolean.js +18 -23
  142. package/dist/lib/core/validation/types/date.d.ts +17 -0
  143. package/dist/lib/core/validation/types/date.js +215 -0
  144. package/dist/lib/core/validation/types/email.d.ts +17 -0
  145. package/dist/lib/core/validation/types/email.js +80 -0
  146. package/dist/lib/core/validation/types/enum.d.ts +17 -0
  147. package/dist/lib/core/validation/types/enum.js +70 -0
  148. package/dist/lib/core/validation/types/geoPoint.d.ts +17 -0
  149. package/{lib → dist/lib}/core/validation/types/geoPoint.js +19 -24
  150. package/dist/lib/core/validation/types/geoShape.d.ts +31 -0
  151. package/dist/lib/core/validation/types/geoShape.js +280 -0
  152. package/dist/lib/core/validation/types/integer.d.ts +7 -0
  153. package/{lib → dist/lib}/core/validation/types/integer.js +21 -27
  154. package/dist/lib/core/validation/types/ipAddress.d.ts +17 -0
  155. package/dist/lib/core/validation/types/ipAddress.js +73 -0
  156. package/dist/lib/core/validation/types/numeric.d.ts +17 -0
  157. package/dist/lib/core/validation/types/numeric.js +84 -0
  158. package/dist/lib/core/validation/types/object.d.ts +24 -0
  159. package/dist/lib/core/validation/types/object.js +74 -0
  160. package/dist/lib/core/validation/types/string.d.ts +17 -0
  161. package/dist/lib/core/validation/types/string.js +85 -0
  162. package/dist/lib/core/validation/types/url.d.ts +17 -0
  163. package/dist/lib/core/validation/types/url.js +73 -0
  164. package/dist/lib/core/validation/validation.d.ts +113 -0
  165. package/dist/lib/core/validation/validation.js +692 -0
  166. package/dist/lib/kerror/codes/0-core.json +194 -0
  167. package/dist/lib/kerror/codes/1-services.json +351 -0
  168. package/dist/lib/kerror/codes/2-api.json +195 -0
  169. package/dist/lib/kerror/codes/3-network.json +151 -0
  170. package/dist/lib/kerror/codes/4-plugin.json +498 -0
  171. package/dist/lib/kerror/codes/5-validation.json +158 -0
  172. package/dist/lib/kerror/codes/6-protocol.json +28 -0
  173. package/dist/lib/kerror/codes/7-security.json +283 -0
  174. package/dist/lib/kerror/codes/8-cluster.json +16 -0
  175. package/dist/lib/kerror/codes/index.d.ts +24 -0
  176. package/dist/lib/kerror/codes/index.js +140 -0
  177. package/{lib → dist/lib}/kerror/index.d.ts +5 -5
  178. package/{lib → dist/lib}/kuzzle/Logger.d.ts +6 -0
  179. package/{lib → dist/lib}/kuzzle/Logger.js +26 -5
  180. package/dist/lib/kuzzle/dumpGenerator.d.ts +14 -0
  181. package/dist/lib/kuzzle/dumpGenerator.js +180 -0
  182. package/dist/lib/kuzzle/event/pipeRunner.d.ts +30 -0
  183. package/dist/lib/kuzzle/event/pipeRunner.js +119 -0
  184. package/dist/lib/kuzzle/event/waterfall.d.ts +2 -0
  185. package/dist/lib/kuzzle/event/waterfall.js +90 -0
  186. package/dist/lib/kuzzle/internalIndexHandler.d.ts +186 -0
  187. package/dist/lib/kuzzle/internalIndexHandler.js +174 -0
  188. package/{lib → dist/lib}/kuzzle/kuzzle.d.ts +6 -7
  189. package/{lib → dist/lib}/kuzzle/kuzzle.js +5 -2
  190. package/dist/lib/kuzzle/kuzzleStateEnum.d.ts +20 -0
  191. package/{lib → dist/lib}/kuzzle/kuzzleStateEnum.js +5 -8
  192. package/dist/lib/kuzzle/vault.d.ts +2 -0
  193. package/dist/lib/kuzzle/vault.js +63 -0
  194. package/dist/lib/model/security/rights.d.ts +8 -0
  195. package/{lib → dist/lib}/model/security/rights.js +4 -8
  196. package/{lib → dist/lib}/model/security/role.d.ts +1 -1
  197. package/{lib → dist/lib}/model/security/user.d.ts +1 -0
  198. package/dist/lib/model/storage/apiKey.d.ts +49 -0
  199. package/dist/lib/model/storage/apiKey.js +126 -0
  200. package/dist/lib/model/storage/baseModel.d.ts +100 -0
  201. package/dist/lib/model/storage/baseModel.js +211 -0
  202. package/dist/lib/service/cache/redis.d.ts +74 -0
  203. package/dist/lib/service/cache/redis.js +237 -0
  204. package/dist/lib/service/service.d.ts +30 -0
  205. package/dist/lib/service/service.js +74 -0
  206. package/{lib → dist/lib}/service/storage/7/elasticsearch.d.ts +2 -2
  207. package/{lib → dist/lib}/service/storage/7/elasticsearch.js +23 -25
  208. package/dist/lib/service/storage/7/esWrapper.d.ts +19 -0
  209. package/dist/lib/service/storage/7/esWrapper.js +245 -0
  210. package/{lib → dist/lib}/service/storage/8/elasticsearch.js +23 -25
  211. package/dist/lib/service/storage/8/esWrapper.d.ts +19 -0
  212. package/dist/lib/service/storage/8/esWrapper.js +245 -0
  213. package/{lib → dist/lib}/types/Plugin.d.ts +1 -1
  214. package/{lib/types → dist/lib/types/controllers}/Controller.d.ts +2 -2
  215. package/{lib/types → dist/lib/types/controllers}/ControllerDefinition.d.ts +1 -1
  216. package/dist/lib/types/controllers/adminControlller.type.d.ts +5 -0
  217. package/dist/lib/types/controllers/adminControlller.type.js +3 -0
  218. package/dist/lib/types/controllers/authController.type.d.ts +5 -0
  219. package/dist/lib/types/controllers/authController.type.js +3 -0
  220. package/dist/lib/types/core/auth/formatProcessing.type.d.ts +7 -0
  221. package/dist/lib/types/core/auth/formatProcessing.type.js +3 -0
  222. package/{lib → dist/lib}/types/index.d.ts +3 -3
  223. package/{lib → dist/lib}/types/index.js +3 -3
  224. package/dist/lib/util/assertType.d.ts +41 -0
  225. package/{lib → dist/lib}/util/assertType.js +38 -56
  226. package/dist/lib/util/asyncStore.d.ts +38 -0
  227. package/dist/lib/util/asyncStore.js +70 -0
  228. package/dist/lib/util/bytes.d.ts +2 -0
  229. package/dist/lib/util/bytes.js +33 -0
  230. package/dist/lib/util/debug.d.ts +2 -0
  231. package/{lib → dist/lib}/util/debug.js +15 -23
  232. package/dist/lib/util/deprecate.d.ts +1 -0
  233. package/dist/lib/util/deprecate.js +64 -0
  234. package/dist/lib/util/didYouMean.d.ts +2 -0
  235. package/{lib → dist/lib}/util/didYouMean.js +9 -15
  236. package/dist/lib/util/extractFields.d.ts +17 -0
  237. package/{lib → dist/lib}/util/extractFields.js +18 -32
  238. package/dist/lib/util/memoize.d.ts +7 -0
  239. package/{lib → dist/lib}/util/memoize.js +14 -21
  240. package/dist/lib/util/promback.d.ts +13 -0
  241. package/dist/lib/util/promback.js +60 -0
  242. package/dist/lib/util/requestAssertions.d.ts +10 -0
  243. package/dist/lib/util/requestAssertions.js +143 -0
  244. package/dist/lib/util/safeObject.d.ts +3 -0
  245. package/{lib → dist/lib}/util/safeObject.js +7 -13
  246. package/dist/lib/util/stackTrace.d.ts +19 -0
  247. package/{lib → dist/lib}/util/stackTrace.js +35 -41
  248. package/dist/lib/util/wildcard.d.ts +1 -0
  249. package/{lib → dist/lib}/util/wildcard.js +21 -30
  250. package/dist/package.json +120 -0
  251. package/package.json +45 -58
  252. package/bin/start-kuzzle-server +0 -126
  253. package/check-node-version.js +0 -17
  254. package/lib/api/controllers/adminController.js +0 -229
  255. package/lib/api/controllers/bulkController.js +0 -210
  256. package/lib/api/controllers/collectionController.js +0 -502
  257. package/lib/api/controllers/documentController.js +0 -1156
  258. package/lib/api/controllers/indexController.js +0 -179
  259. package/lib/api/controllers/memoryStorageController.js +0 -1023
  260. package/lib/api/controllers/realtimeController.js +0 -155
  261. package/lib/api/controllers/securityController.js +0 -1571
  262. package/lib/api/controllers/serverController.js +0 -381
  263. package/lib/api/documentExtractor.js +0 -309
  264. package/lib/api/funnel.js +0 -1143
  265. package/lib/api/httpRoutes.js +0 -1547
  266. package/lib/api/rateLimiter.js +0 -87
  267. package/lib/cluster/command.js +0 -284
  268. package/lib/cluster/node.js +0 -1203
  269. package/lib/cluster/publisher.js +0 -386
  270. package/lib/cluster/subscriber.js +0 -776
  271. package/lib/cluster/workers/IDCardRenewer.js +0 -144
  272. package/lib/config/index.js +0 -351
  273. package/lib/config/sdkCompatibility.json +0 -9
  274. package/lib/core/auth/formatProcessing.js +0 -66
  275. package/lib/core/auth/passportWrapper.js +0 -126
  276. package/lib/core/cache/cacheEngine.js +0 -278
  277. package/lib/core/network/accessLogger.js +0 -322
  278. package/lib/core/network/context.js +0 -80
  279. package/lib/core/network/entryPoint.js +0 -358
  280. package/lib/core/network/httpRouter/index.js +0 -316
  281. package/lib/core/network/httpRouter/routeHandler.js +0 -111
  282. package/lib/core/network/httpRouter/routePart.js +0 -147
  283. package/lib/core/network/protocols/httpMessage.js +0 -69
  284. package/lib/core/network/protocols/httpwsProtocol.js +0 -1254
  285. package/lib/core/network/protocols/internalProtocol.js +0 -109
  286. package/lib/core/network/protocols/mqttProtocol.js +0 -291
  287. package/lib/core/network/protocols/protocol.js +0 -102
  288. package/lib/core/network/router.js +0 -255
  289. package/lib/core/plugin/plugin.js +0 -436
  290. package/lib/core/plugin/pluginRepository.js +0 -132
  291. package/lib/core/plugin/pluginsManager.js +0 -1244
  292. package/lib/core/realtime/notification/document.js +0 -108
  293. package/lib/core/realtime/notification/user.js +0 -70
  294. package/lib/core/realtime/notifier.js +0 -541
  295. package/lib/core/security/README.md +0 -223
  296. package/lib/core/security/roleRepository.js +0 -569
  297. package/lib/core/security/securityLoader.js +0 -174
  298. package/lib/core/security/userRepository.js +0 -446
  299. package/lib/core/shared/README.md +0 -3
  300. package/lib/core/shared/abstractManifest.js +0 -102
  301. package/lib/core/shared/sdk/impersonatedSdk.js +0 -94
  302. package/lib/core/statistics/index.js +0 -24
  303. package/lib/core/statistics/statistics.js +0 -373
  304. package/lib/core/storage/clientAdapter.js +0 -1045
  305. package/lib/core/storage/storageEngine.js +0 -63
  306. package/lib/core/validation/baseType.js +0 -80
  307. package/lib/core/validation/index.js +0 -24
  308. package/lib/core/validation/types/date.js +0 -284
  309. package/lib/core/validation/types/email.js +0 -92
  310. package/lib/core/validation/types/enum.js +0 -100
  311. package/lib/core/validation/types/geoShape.js +0 -370
  312. package/lib/core/validation/types/ipAddress.js +0 -83
  313. package/lib/core/validation/types/numeric.js +0 -108
  314. package/lib/core/validation/types/object.js +0 -88
  315. package/lib/core/validation/types/string.js +0 -110
  316. package/lib/core/validation/types/url.js +0 -83
  317. package/lib/core/validation/validation.js +0 -1180
  318. package/lib/kerror/codes/0-core.json +0 -194
  319. package/lib/kerror/codes/1-services.json +0 -351
  320. package/lib/kerror/codes/2-api.json +0 -195
  321. package/lib/kerror/codes/3-network.json +0 -151
  322. package/lib/kerror/codes/4-plugin.json +0 -498
  323. package/lib/kerror/codes/5-validation.json +0 -158
  324. package/lib/kerror/codes/6-protocol.json +0 -28
  325. package/lib/kerror/codes/7-security.json +0 -283
  326. package/lib/kerror/codes/8-cluster.json +0 -16
  327. package/lib/kerror/codes/index.js +0 -208
  328. package/lib/kuzzle/dumpGenerator.js +0 -259
  329. package/lib/kuzzle/event/pipeRunner.js +0 -144
  330. package/lib/kuzzle/event/waterfall.js +0 -101
  331. package/lib/kuzzle/internalIndexHandler.js +0 -234
  332. package/lib/kuzzle/vault.js +0 -89
  333. package/lib/model/storage/apiKey.js +0 -158
  334. package/lib/model/storage/baseModel.js +0 -275
  335. package/lib/service/cache/redis.js +0 -282
  336. package/lib/service/service.js +0 -84
  337. package/lib/service/storage/7/esWrapper.js +0 -303
  338. package/lib/service/storage/8/esWrapper.js +0 -303
  339. package/lib/util/asyncStore.js +0 -112
  340. package/lib/util/bytes.js +0 -36
  341. package/lib/util/deprecate.js +0 -82
  342. package/lib/util/promback.js +0 -66
  343. package/lib/util/readYamlFile.d.ts +0 -2
  344. package/lib/util/readYamlFile.js +0 -10
  345. package/lib/util/requestAssertions.js +0 -157
  346. /package/{index.d.ts → dist/index.d.ts} +0 -0
  347. /package/{index.js → dist/index.js} +0 -0
  348. /package/{lib → dist/lib}/api/controllers/baseController.d.ts +0 -0
  349. /package/{lib → dist/lib}/api/controllers/baseController.js +0 -0
  350. /package/{lib → dist/lib}/api/controllers/debugController.d.ts +0 -0
  351. /package/{lib → dist/lib}/api/controllers/debugController.js +0 -0
  352. /package/{lib → dist/lib}/api/openapi/OpenApiManager.d.ts +0 -0
  353. /package/{lib → dist/lib}/api/openapi/OpenApiManager.js +0 -0
  354. /package/{lib → dist/lib}/api/openapi/index.d.ts +0 -0
  355. /package/{lib → dist/lib}/api/openapi/index.js +0 -0
  356. /package/{lib → dist/lib}/api/openapi/openApiGenerator.d.ts +0 -0
  357. /package/{lib → dist/lib}/api/openapi/openApiGenerator.js +0 -0
  358. /package/{lib → dist/lib}/api/request/index.d.ts +0 -0
  359. /package/{lib → dist/lib}/api/request/index.js +0 -0
  360. /package/{lib → dist/lib}/api/request/kuzzleRequest.js +0 -0
  361. /package/{lib → dist/lib}/api/request/requestContext.js +0 -0
  362. /package/{lib → dist/lib}/api/request/requestInput.d.ts +0 -0
  363. /package/{lib → dist/lib}/api/request/requestInput.js +0 -0
  364. /package/{lib → dist/lib}/api/request/requestResponse.d.ts +0 -0
  365. /package/{lib → dist/lib}/api/request/requestResponse.js +0 -0
  366. /package/{lib → dist/lib}/cluster/idCardHandler.d.ts +0 -0
  367. /package/{lib → dist/lib}/cluster/idCardHandler.js +0 -0
  368. /package/{lib → dist/lib}/cluster/protobuf/command.proto +0 -0
  369. /package/{lib → dist/lib}/cluster/protobuf/sync.proto +0 -0
  370. /package/{lib → dist/lib}/cluster/state.d.ts +0 -0
  371. /package/{lib → dist/lib}/cluster/state.js +0 -0
  372. /package/{lib → dist/lib}/config/default.config.d.ts +0 -0
  373. /package/{lib → dist/lib}/config/default.config.js +0 -0
  374. /package/{lib → dist/lib}/config/documentEventAliases.js +0 -0
  375. /package/{lib → dist/lib}/core/auth/tokenManager.d.ts +0 -0
  376. /package/{lib → dist/lib}/core/auth/tokenManager.js +0 -0
  377. /package/{lib → dist/lib}/core/backend/applicationManager.d.ts +0 -0
  378. /package/{lib → dist/lib}/core/backend/applicationManager.js +0 -0
  379. /package/{lib → dist/lib}/core/backend/backend.d.ts +0 -0
  380. /package/{lib → dist/lib}/core/backend/backend.js +0 -0
  381. /package/{lib → dist/lib}/core/backend/backendCluster.d.ts +0 -0
  382. /package/{lib → dist/lib}/core/backend/backendCluster.js +0 -0
  383. /package/{lib → dist/lib}/core/backend/backendConfig.d.ts +0 -0
  384. /package/{lib → dist/lib}/core/backend/backendController.d.ts +0 -0
  385. /package/{lib → dist/lib}/core/backend/backendController.js +0 -0
  386. /package/{lib → dist/lib}/core/backend/backendErrors.d.ts +0 -0
  387. /package/{lib → dist/lib}/core/backend/backendHook.d.ts +0 -0
  388. /package/{lib → dist/lib}/core/backend/backendHook.js +0 -0
  389. /package/{lib → dist/lib}/core/backend/backendImport.d.ts +0 -0
  390. /package/{lib → dist/lib}/core/backend/backendImport.js +0 -0
  391. /package/{lib → dist/lib}/core/backend/backendOpenApi.d.ts +0 -0
  392. /package/{lib → dist/lib}/core/backend/backendOpenApi.js +0 -0
  393. /package/{lib → dist/lib}/core/backend/backendPipe.d.ts +0 -0
  394. /package/{lib → dist/lib}/core/backend/backendPipe.js +0 -0
  395. /package/{lib → dist/lib}/core/backend/backendPlugin.d.ts +0 -0
  396. /package/{lib → dist/lib}/core/backend/backendPlugin.js +0 -0
  397. /package/{lib → dist/lib}/core/backend/backendStorage.d.ts +0 -0
  398. /package/{lib → dist/lib}/core/backend/backendStorage.js +0 -0
  399. /package/{lib → dist/lib}/core/backend/backendSubscription.d.ts +0 -0
  400. /package/{lib → dist/lib}/core/backend/backendSubscription.js +0 -0
  401. /package/{lib → dist/lib}/core/backend/backendVault.d.ts +0 -0
  402. /package/{lib → dist/lib}/core/backend/backendVault.js +0 -0
  403. /package/{lib → dist/lib}/core/backend/index.d.ts +0 -0
  404. /package/{lib → dist/lib}/core/backend/index.js +0 -0
  405. /package/{lib → dist/lib}/core/backend/internalLogger.d.ts +0 -0
  406. /package/{lib → dist/lib}/core/backend/internalLogger.js +0 -0
  407. /package/{lib → dist/lib}/core/cache/cacheDbEnum.d.ts +0 -0
  408. /package/{lib → dist/lib}/core/cache/cacheDbEnum.js +0 -0
  409. /package/{lib → dist/lib}/core/debug/kuzzleDebugger.d.ts +0 -0
  410. /package/{lib → dist/lib}/core/debug/kuzzleDebugger.js +0 -0
  411. /package/{lib → dist/lib}/core/plugin/pluginContext.d.ts +0 -0
  412. /package/{lib → dist/lib}/core/realtime/channel.d.ts +0 -0
  413. /package/{lib → dist/lib}/core/realtime/channel.js +0 -0
  414. /package/{lib → dist/lib}/core/realtime/connectionRooms.d.ts +0 -0
  415. /package/{lib → dist/lib}/core/realtime/connectionRooms.js +0 -0
  416. /package/{lib → dist/lib}/core/realtime/hotelClerk.d.ts +0 -0
  417. /package/{lib → dist/lib}/core/realtime/hotelClerk.js +0 -0
  418. /package/{lib → dist/lib}/core/realtime/room.d.ts +0 -0
  419. /package/{lib → dist/lib}/core/realtime/room.js +0 -0
  420. /package/{lib → dist/lib}/core/realtime/subscription.d.ts +0 -0
  421. /package/{lib → dist/lib}/core/realtime/subscription.js +0 -0
  422. /package/{lib → dist/lib}/core/security/profileRepository.d.ts +0 -0
  423. /package/{lib → dist/lib}/core/security/profileRepository.js +0 -0
  424. /package/{lib → dist/lib}/core/security/tokenRepository.d.ts +0 -0
  425. /package/{lib → dist/lib}/core/shared/KoncordeWrapper.d.ts +0 -0
  426. /package/{lib → dist/lib}/core/shared/KoncordeWrapper.js +0 -0
  427. /package/{lib → dist/lib}/core/shared/ObjectRepository.d.ts +0 -0
  428. /package/{lib → dist/lib}/core/shared/ObjectRepository.js +0 -0
  429. /package/{lib → dist/lib}/core/shared/sdk/embeddedSdk.d.ts +0 -0
  430. /package/{lib → dist/lib}/core/shared/sdk/embeddedSdk.js +0 -0
  431. /package/{lib → dist/lib}/core/shared/sdk/funnelProtocol.d.ts +0 -0
  432. /package/{lib → dist/lib}/core/shared/sdk/funnelProtocol.js +0 -0
  433. /package/{lib → dist/lib}/core/shared/store.js +0 -0
  434. /package/{lib → dist/lib}/core/storage/indexCache.d.ts +0 -0
  435. /package/{lib → dist/lib}/core/storage/indexCache.js +0 -0
  436. /package/{lib → dist/lib}/core/storage/storeScopeEnum.d.ts +0 -0
  437. /package/{lib → dist/lib}/core/storage/storeScopeEnum.js +0 -0
  438. /package/{lib → dist/lib}/kerror/errors/badRequestError.d.ts +0 -0
  439. /package/{lib → dist/lib}/kerror/errors/badRequestError.js +0 -0
  440. /package/{lib → dist/lib}/kerror/errors/externalServiceError.d.ts +0 -0
  441. /package/{lib → dist/lib}/kerror/errors/externalServiceError.js +0 -0
  442. /package/{lib → dist/lib}/kerror/errors/forbiddenError.d.ts +0 -0
  443. /package/{lib → dist/lib}/kerror/errors/forbiddenError.js +0 -0
  444. /package/{lib → dist/lib}/kerror/errors/gatewayTimeoutError.d.ts +0 -0
  445. /package/{lib → dist/lib}/kerror/errors/gatewayTimeoutError.js +0 -0
  446. /package/{lib → dist/lib}/kerror/errors/index.d.ts +0 -0
  447. /package/{lib → dist/lib}/kerror/errors/index.js +0 -0
  448. /package/{lib → dist/lib}/kerror/errors/internalError.d.ts +0 -0
  449. /package/{lib → dist/lib}/kerror/errors/internalError.js +0 -0
  450. /package/{lib → dist/lib}/kerror/errors/kuzzleError.d.ts +0 -0
  451. /package/{lib → dist/lib}/kerror/errors/kuzzleError.js +0 -0
  452. /package/{lib → dist/lib}/kerror/errors/multipleErrorsError.d.ts +0 -0
  453. /package/{lib → dist/lib}/kerror/errors/multipleErrorsError.js +0 -0
  454. /package/{lib → dist/lib}/kerror/errors/notFoundError.d.ts +0 -0
  455. /package/{lib → dist/lib}/kerror/errors/notFoundError.js +0 -0
  456. /package/{lib → dist/lib}/kerror/errors/partialError.d.ts +0 -0
  457. /package/{lib → dist/lib}/kerror/errors/partialError.js +0 -0
  458. /package/{lib → dist/lib}/kerror/errors/pluginImplementationError.d.ts +0 -0
  459. /package/{lib → dist/lib}/kerror/errors/pluginImplementationError.js +0 -0
  460. /package/{lib → dist/lib}/kerror/errors/preconditionError.d.ts +0 -0
  461. /package/{lib → dist/lib}/kerror/errors/preconditionError.js +0 -0
  462. /package/{lib → dist/lib}/kerror/errors/serviceUnavailableError.d.ts +0 -0
  463. /package/{lib → dist/lib}/kerror/errors/serviceUnavailableError.js +0 -0
  464. /package/{lib → dist/lib}/kerror/errors/sizeLimitError.d.ts +0 -0
  465. /package/{lib → dist/lib}/kerror/errors/sizeLimitError.js +0 -0
  466. /package/{lib → dist/lib}/kerror/errors/tooManyRequestsError.d.ts +0 -0
  467. /package/{lib → dist/lib}/kerror/errors/tooManyRequestsError.js +0 -0
  468. /package/{lib → dist/lib}/kerror/errors/unauthorizedError.d.ts +0 -0
  469. /package/{lib → dist/lib}/kerror/errors/unauthorizedError.js +0 -0
  470. /package/{lib → dist/lib}/kerror/index.js +0 -0
  471. /package/{lib → dist/lib}/kuzzle/event/KuzzleEventEmitter.d.ts +0 -0
  472. /package/{lib → dist/lib}/kuzzle/event/KuzzleEventEmitter.js +0 -0
  473. /package/{lib → dist/lib}/kuzzle/index.d.ts +0 -0
  474. /package/{lib → dist/lib}/kuzzle/index.js +0 -0
  475. /package/{lib → dist/lib}/model/security/profile.d.ts +0 -0
  476. /package/{lib → dist/lib}/model/security/profile.js +0 -0
  477. /package/{lib → dist/lib}/model/security/role.js +0 -0
  478. /package/{lib → dist/lib}/model/security/token.d.ts +0 -0
  479. /package/{lib → dist/lib}/model/security/token.js +0 -0
  480. /package/{lib → dist/lib}/model/security/user.js +0 -0
  481. /package/{lib → dist/lib}/service/storage/8/elasticsearch.d.ts +0 -0
  482. /package/{lib → dist/lib}/service/storage/Elasticsearch.d.ts +0 -0
  483. /package/{lib → dist/lib}/service/storage/Elasticsearch.js +0 -0
  484. /package/{lib → dist/lib}/service/storage/commons/queryTranslator.d.ts +0 -0
  485. /package/{lib → dist/lib}/service/storage/commons/queryTranslator.js +0 -0
  486. /package/{lib → dist/lib}/types/ClientConnection.d.ts +0 -0
  487. /package/{lib → dist/lib}/types/ClientConnection.js +0 -0
  488. /package/{lib → dist/lib}/types/Deprecation.d.ts +0 -0
  489. /package/{lib → dist/lib}/types/Deprecation.js +0 -0
  490. /package/{lib → dist/lib}/types/EventHandler.d.ts +0 -0
  491. /package/{lib → dist/lib}/types/EventHandler.js +0 -0
  492. /package/{lib → dist/lib}/types/Global.d.ts +0 -0
  493. /package/{lib → dist/lib}/types/Global.js +0 -0
  494. /package/{lib → dist/lib}/types/HttpMessage.d.ts +0 -0
  495. /package/{lib → dist/lib}/types/HttpMessage.js +0 -0
  496. /package/{lib → dist/lib}/types/HttpStream.d.ts +0 -0
  497. /package/{lib → dist/lib}/types/HttpStream.js +0 -0
  498. /package/{lib → dist/lib}/types/Kuzzle.d.ts +0 -0
  499. /package/{lib → dist/lib}/types/Kuzzle.js +0 -0
  500. /package/{lib → dist/lib}/types/KuzzleDocument.d.ts +0 -0
  501. /package/{lib → dist/lib}/types/KuzzleDocument.js +0 -0
  502. /package/{lib → dist/lib}/types/OpenApiDefinition.d.ts +0 -0
  503. /package/{lib → dist/lib}/types/OpenApiDefinition.js +0 -0
  504. /package/{lib → dist/lib}/types/PasswordPolicy.d.ts +0 -0
  505. /package/{lib → dist/lib}/types/PasswordPolicy.js +0 -0
  506. /package/{lib → dist/lib}/types/Plugin.js +0 -0
  507. /package/{lib → dist/lib}/types/PluginManifest.d.ts +0 -0
  508. /package/{lib → dist/lib}/types/PluginManifest.js +0 -0
  509. /package/{lib → dist/lib}/types/Policy.d.ts +0 -0
  510. /package/{lib → dist/lib}/types/Policy.js +0 -0
  511. /package/{lib → dist/lib}/types/PolicyRestrictions.d.ts +0 -0
  512. /package/{lib → dist/lib}/types/PolicyRestrictions.js +0 -0
  513. /package/{lib → dist/lib}/types/ProfileDefinition.d.ts +0 -0
  514. /package/{lib → dist/lib}/types/ProfileDefinition.js +0 -0
  515. /package/{lib → dist/lib}/types/RoleDefinition.d.ts +0 -0
  516. /package/{lib → dist/lib}/types/RoleDefinition.js +0 -0
  517. /package/{lib → dist/lib}/types/StrategyDefinition.d.ts +0 -0
  518. /package/{lib → dist/lib}/types/StrategyDefinition.js +0 -0
  519. /package/{lib → dist/lib}/types/Target.d.ts +0 -0
  520. /package/{lib → dist/lib}/types/Target.js +0 -0
  521. /package/{lib → dist/lib}/types/Token.d.ts +0 -0
  522. /package/{lib → dist/lib}/types/Token.js +0 -0
  523. /package/{lib → dist/lib}/types/User.d.ts +0 -0
  524. /package/{lib → dist/lib}/types/User.js +0 -0
  525. /package/{lib → dist/lib}/types/config/DumpConfiguration.d.ts +0 -0
  526. /package/{lib → dist/lib}/types/config/DumpConfiguration.js +0 -0
  527. /package/{lib → dist/lib}/types/config/HttpConfiguration.d.ts +0 -0
  528. /package/{lib → dist/lib}/types/config/HttpConfiguration.js +0 -0
  529. /package/{lib → dist/lib}/types/config/KuzzleConfiguration.d.ts +0 -0
  530. /package/{lib → dist/lib}/types/config/KuzzleConfiguration.js +0 -0
  531. /package/{lib → dist/lib}/types/config/LimitsConfiguration.d.ts +0 -0
  532. /package/{lib → dist/lib}/types/config/LimitsConfiguration.js +0 -0
  533. /package/{lib → dist/lib}/types/config/PluginsConfiguration.d.ts +0 -0
  534. /package/{lib → dist/lib}/types/config/PluginsConfiguration.js +0 -0
  535. /package/{lib → dist/lib}/types/config/SecurityConfiguration.d.ts +0 -0
  536. /package/{lib → dist/lib}/types/config/SecurityConfiguration.js +0 -0
  537. /package/{lib → dist/lib}/types/config/ServerConfiguration.d.ts +0 -0
  538. /package/{lib → dist/lib}/types/config/ServerConfiguration.js +0 -0
  539. /package/{lib → dist/lib}/types/config/ServicesConfiguration.d.ts +0 -0
  540. /package/{lib → dist/lib}/types/config/ServicesConfiguration.js +0 -0
  541. /package/{lib → dist/lib}/types/config/internalCache/InternalCacheRedisConfiguration.d.ts +0 -0
  542. /package/{lib → dist/lib}/types/config/internalCache/InternalCacheRedisConfiguration.js +0 -0
  543. /package/{lib → dist/lib}/types/config/publicCache/PublicCacheRedisConfiguration.d.ts +0 -0
  544. /package/{lib → dist/lib}/types/config/publicCache/PublicCacheRedisConfiguration.js +0 -0
  545. /package/{lib → dist/lib}/types/config/storageEngine/StorageEngineElasticsearchConfiguration.d.ts +0 -0
  546. /package/{lib → dist/lib}/types/config/storageEngine/StorageEngineElasticsearchConfiguration.js +0 -0
  547. /package/{lib/types → dist/lib/types/controllers}/Controller.js +0 -0
  548. /package/{lib/types → dist/lib/types/controllers}/ControllerDefinition.js +0 -0
  549. /package/{lib/types → dist/lib/types/controllers}/ControllerRights.d.ts +0 -0
  550. /package/{lib/types → dist/lib/types/controllers}/ControllerRights.js +0 -0
  551. /package/{lib → dist/lib}/types/errors/ErrorDefinition.d.ts +0 -0
  552. /package/{lib → dist/lib}/types/errors/ErrorDefinition.js +0 -0
  553. /package/{lib → dist/lib}/types/errors/ErrorDomains.d.ts +0 -0
  554. /package/{lib → dist/lib}/types/errors/ErrorDomains.js +0 -0
  555. /package/{lib → dist/lib}/types/events/EventGenericDocument.d.ts +0 -0
  556. /package/{lib → dist/lib}/types/events/EventGenericDocument.js +0 -0
  557. /package/{lib → dist/lib}/types/events/EventProtocol.d.ts +0 -0
  558. /package/{lib → dist/lib}/types/events/EventProtocol.js +0 -0
  559. /package/{lib → dist/lib}/types/realtime/RealtimeScope.d.ts +0 -0
  560. /package/{lib → dist/lib}/types/realtime/RealtimeScope.js +0 -0
  561. /package/{lib → dist/lib}/types/realtime/RealtimeUsers.d.ts +0 -0
  562. /package/{lib → dist/lib}/types/realtime/RealtimeUsers.js +0 -0
  563. /package/{lib → dist/lib}/types/realtime/RoomList.d.ts +0 -0
  564. /package/{lib → dist/lib}/types/realtime/RoomList.js +0 -0
  565. /package/{lib → dist/lib}/types/shared/StoreCollectionsDefinition.d.ts +0 -0
  566. /package/{lib → dist/lib}/types/shared/StoreCollectionsDefinition.js +0 -0
  567. /package/{lib → dist/lib}/types/storage/7/Elasticsearch.d.ts +0 -0
  568. /package/{lib → dist/lib}/types/storage/7/Elasticsearch.js +0 -0
  569. /package/{lib → dist/lib}/types/storage/8/Elasticsearch.d.ts +0 -0
  570. /package/{lib → dist/lib}/types/storage/8/Elasticsearch.js +0 -0
  571. /package/{lib → dist/lib}/util/Inflector.d.ts +0 -0
  572. /package/{lib → dist/lib}/util/Inflector.js +0 -0
  573. /package/{lib → dist/lib}/util/array.d.ts +0 -0
  574. /package/{lib → dist/lib}/util/array.js +0 -0
  575. /package/{lib → dist/lib}/util/async.d.ts +0 -0
  576. /package/{lib → dist/lib}/util/async.js +0 -0
  577. /package/{lib → dist/lib}/util/bufferedPassThrough.d.ts +0 -0
  578. /package/{lib → dist/lib}/util/bufferedPassThrough.js +0 -0
  579. /package/{lib → dist/lib}/util/crypto.d.ts +0 -0
  580. /package/{lib → dist/lib}/util/crypto.js +0 -0
  581. /package/{lib → dist/lib}/util/dump-collection.d.ts +0 -0
  582. /package/{lib → dist/lib}/util/dump-collection.js +0 -0
  583. /package/{lib → dist/lib}/util/esRequest.d.ts +0 -0
  584. /package/{lib → dist/lib}/util/esRequest.js +0 -0
  585. /package/{lib → dist/lib}/util/koncordeCompat.d.ts +0 -0
  586. /package/{lib → dist/lib}/util/koncordeCompat.js +0 -0
  587. /package/{lib → dist/lib}/util/mutex.d.ts +0 -0
  588. /package/{lib → dist/lib}/util/mutex.js +0 -0
  589. /package/{lib → dist/lib}/util/name-generator.d.ts +0 -0
  590. /package/{lib → dist/lib}/util/name-generator.js +0 -0
  591. /package/{lib → dist/lib}/util/time.d.ts +0 -0
  592. /package/{lib → dist/lib}/util/time.js +0 -0
@@ -0,0 +1,62 @@
1
+ export = EntryPoint;
2
+ declare class EntryPoint {
3
+ config: import("../../..").ServerConfiguration;
4
+ protocols: Map<any, any>;
5
+ _clients: Map<any, any>;
6
+ accessLogger: AccessLogger;
7
+ isShuttingDown: boolean;
8
+ logger: import("../../kuzzle/Logger").Logger;
9
+ dispatch(event: any, data: any): void;
10
+ /**
11
+ * Initializes the InternalProtocol first to allow subscriptions
12
+ * in plugins init() method.
13
+ *
14
+ * @returns {Promise}
15
+ */
16
+ init(): Promise<any>;
17
+ /**
18
+ * Starts the network protocols.
19
+ * Every protocol is listening for request after this call
20
+ *
21
+ * @returns {Promise}
22
+ */
23
+ startListening(): Promise<any>;
24
+ /**
25
+ * On client subscribing to a channel, dispatch the information
26
+ * to the protocol.
27
+ *
28
+ * @param {string} channel
29
+ * @param {string} connectionId
30
+ */
31
+ joinChannel(channel: string, connectionId: string): void;
32
+ leaveChannel(channel: any, connectionId: any): void;
33
+ /**
34
+ * Loads installed protocols in memory
35
+ */
36
+ loadMoreProtocols(): Promise<void>;
37
+ /**
38
+ * @param {ClientConnection} connection
39
+ * @param {Request} request
40
+ * @param {object} extra
41
+ */
42
+ logAccess(connection: ClientConnection, request: Request, extra?: object): void;
43
+ /**
44
+ * @param {ClientConnection} connection
45
+ * @param {Request} request
46
+ * @param cb
47
+ */
48
+ execute(connection: ClientConnection, request: Request, cb: any): void;
49
+ /**
50
+ *
51
+ * @param {ClientConnection} connection
52
+ */
53
+ newConnection(connection: ClientConnection): void;
54
+ /**
55
+ * @param {string} connectionId
56
+ */
57
+ removeConnection(connectionId: string): void;
58
+ _broadcast(data: any): void;
59
+ _isShuttingDownError(connection: any, request: any, cb: any): void;
60
+ _notify(data: any): void;
61
+ }
62
+ import { AccessLogger } from "./accessLogger";
@@ -0,0 +1,261 @@
1
+ /*
2
+ * Kuzzle, a backend software, self-hostable and ready to use
3
+ * to power modern apps
4
+ *
5
+ * Copyright 2015-2022 Kuzzle
6
+ * mailto: support AT kuzzle.io
7
+ * website: http://kuzzle.io
8
+ *
9
+ * Licensed under the Apache License, Version 2.0 (the "License");
10
+ * you may not use this file except in compliance with the License.
11
+ * You may obtain a copy of the License at
12
+ *
13
+ * https://www.apache.org/licenses/LICENSE-2.0
14
+ *
15
+ * Unless required by applicable law or agreed to in writing, software
16
+ * distributed under the License is distributed on an "AS IS" BASIS,
17
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ * See the License for the specific language governing permissions and
19
+ * limitations under the License.
20
+ */
21
+ "use strict";
22
+ const fs = require("fs");
23
+ const path = require("path");
24
+ const Bluebird = require("bluebird");
25
+ const { RequestContext } = require("../../api/request");
26
+ const Context = require("./context");
27
+ const debug = require("../../util/debug")("kuzzle:network:embedded");
28
+ const MqttProtocol = require("./protocols/mqttProtocol");
29
+ const InternalProtocol = require("./protocols/internalProtocol");
30
+ const HttpWsProtocol = require("./protocols/httpwsProtocol");
31
+ const Manifest = require("./protocolManifest");
32
+ const { removeStacktrace } = require("../../util/stackTrace");
33
+ const kerror = require("../../kerror");
34
+ const { AccessLogger } = require("./accessLogger");
35
+ const networkError = kerror.wrap("network", "entrypoint");
36
+ const DEFAULT_PROTOCOLS = [HttpWsProtocol, MqttProtocol, InternalProtocol];
37
+ class EntryPoint {
38
+ constructor() {
39
+ this.config = global.kuzzle.config.server;
40
+ this.protocols = new Map();
41
+ this._clients = new Map();
42
+ this.accessLogger = new AccessLogger();
43
+ this.isShuttingDown = false;
44
+ this.logger = global.kuzzle.log.child("core:network:entrypoint");
45
+ }
46
+ dispatch(event, data) {
47
+ switch (event) {
48
+ case "notify":
49
+ this._notify(data);
50
+ return;
51
+ case "broadcast":
52
+ this._broadcast(data);
53
+ return;
54
+ case "shutdown":
55
+ this.isShuttingDown = true;
56
+ return;
57
+ default:
58
+ throw networkError.get("unexpected_event", event);
59
+ }
60
+ }
61
+ /**
62
+ * Initializes the InternalProtocol first to allow subscriptions
63
+ * in plugins init() method.
64
+ *
65
+ * @returns {Promise}
66
+ */
67
+ async init() {
68
+ for (const ProtocolClass of DEFAULT_PROTOCOLS) {
69
+ const protocol = new ProtocolClass();
70
+ this.protocols.set(protocol.name, protocol);
71
+ }
72
+ return this.protocols.get("internal").init(this);
73
+ }
74
+ /**
75
+ * Starts the network protocols.
76
+ * Every protocol is listening for request after this call
77
+ *
78
+ * @returns {Promise}
79
+ */
80
+ async startListening() {
81
+ // We need to verify the port ourselves, to make sure Node.js won't open
82
+ // a named pipe if the provided port number is a string
83
+ if (!Number.isInteger(this.config.port)) {
84
+ throw networkError.get("invalid_port", this.config.port);
85
+ }
86
+ await this.accessLogger.init();
87
+ const initPromises = [];
88
+ for (const protocol of this.protocols.values()) {
89
+ // InternalProtocol is already initialized
90
+ if (protocol.initCalled) {
91
+ continue;
92
+ }
93
+ initPromises.push(protocol.init(this).then((enabled) => {
94
+ if (!enabled) {
95
+ this.protocols.delete(protocol.name);
96
+ }
97
+ }));
98
+ }
99
+ await Bluebird.all(initPromises);
100
+ await this.loadMoreProtocols();
101
+ }
102
+ /**
103
+ * On client subscribing to a channel, dispatch the information
104
+ * to the protocol.
105
+ *
106
+ * @param {string} channel
107
+ * @param {string} connectionId
108
+ */
109
+ joinChannel(channel, connectionId) {
110
+ debug('[server] client "%s" joining channel "%s"', connectionId, channel);
111
+ const client = this._clients.get(connectionId);
112
+ if (!client || !client.protocol) {
113
+ return;
114
+ }
115
+ try {
116
+ this.protocols.get(client.protocol).joinChannel(channel, connectionId);
117
+ }
118
+ catch (e) {
119
+ this.logger.error(`[join] protocol ${client && client.protocol} failed: ${e.message}`);
120
+ }
121
+ }
122
+ leaveChannel(channel, connectionId) {
123
+ debug('[server] connection "%s" leaving channel "%s"', connectionId, channel);
124
+ const client = this._clients.get(connectionId);
125
+ if (!client || !client.protocol) {
126
+ return;
127
+ }
128
+ try {
129
+ this.protocols.get(client.protocol).leaveChannel(channel, connectionId);
130
+ }
131
+ catch (e) {
132
+ this.logger.error(`[leave channel] protocol ${client && client.protocol} failed: ${e.message}`);
133
+ }
134
+ }
135
+ /**
136
+ * Loads installed protocols in memory
137
+ */
138
+ async loadMoreProtocols() {
139
+ const dir = path.join(__dirname, "../../../protocols/enabled");
140
+ let dirs;
141
+ try {
142
+ dirs = fs.readdirSync(dir);
143
+ }
144
+ catch (e) {
145
+ // ignore if there is no protocols directory
146
+ return;
147
+ }
148
+ dirs = dirs
149
+ .map((d) => path.join(dir, d))
150
+ .filter((d) => fs.statSync(d).isDirectory());
151
+ await Bluebird.map(dirs, (protoDir) => {
152
+ const protocol = new (require(protoDir))();
153
+ const manifest = new Manifest(protoDir, protocol);
154
+ manifest.load();
155
+ const initTimeout = global.kuzzle.config.services.common.defaultInitTimeout;
156
+ return Bluebird.resolve()
157
+ .then(() => protocol.init(this, new Context()))
158
+ .catch((error) => {
159
+ this.logger.error(`Error during "${manifest.name}" protocol init:`);
160
+ throw error;
161
+ })
162
+ .timeout(initTimeout, `Protocol "${manifest.name}" initialization timed out after ${initTimeout}ms. Try to increase the configuration "services.common.defaultInitTimeout".`)
163
+ .then(() => {
164
+ if (this.protocols.has(manifest.name)) {
165
+ throw kerror.get("protocol", "runtime", "already_exists", manifest.name);
166
+ }
167
+ this.protocols.set(manifest.name, protocol);
168
+ });
169
+ });
170
+ }
171
+ /**
172
+ * @param {ClientConnection} connection
173
+ * @param {Request} request
174
+ * @param {object} extra
175
+ */
176
+ logAccess(connection, request, extra = null) {
177
+ this.accessLogger.log(connection, request, extra);
178
+ }
179
+ /*
180
+ -----------------------------------------------------------------------
181
+ methods exposed to protocols
182
+ -----------------------------------------------------------------------
183
+ */
184
+ /**
185
+ * @param {ClientConnection} connection
186
+ * @param {Request} request
187
+ * @param cb
188
+ */
189
+ execute(connection, request, cb) {
190
+ if (this.isShuttingDown) {
191
+ debug("Shutting down. Dropping request: %a", request);
192
+ this._isShuttingDownError(connection, request, cb);
193
+ return;
194
+ }
195
+ debug("Funneling request: %a", request);
196
+ global.kuzzle.funnel.execute(request, (error, result) => {
197
+ const _res = result || request;
198
+ if (error && !_res.error) {
199
+ _res.setError(error);
200
+ }
201
+ this.logAccess(connection, _res);
202
+ const response = _res.response.toJSON();
203
+ cb(removeStacktrace(response));
204
+ });
205
+ }
206
+ /**
207
+ *
208
+ * @param {ClientConnection} connection
209
+ */
210
+ newConnection(connection) {
211
+ this._clients.set(connection.id, connection);
212
+ global.kuzzle.emit("connection:new", connection);
213
+ global.kuzzle.router.newConnection(new RequestContext({ connection }));
214
+ debug("New connection created: %s (protocol: %s)", connection.id, connection.protocol);
215
+ }
216
+ /**
217
+ * @param {string} connectionId
218
+ */
219
+ removeConnection(connectionId) {
220
+ const connection = this._clients.get(connectionId);
221
+ if (connection) {
222
+ global.kuzzle.emit("connection:remove", connection);
223
+ global.kuzzle.router.removeConnection(new RequestContext({ connection }));
224
+ this._clients.delete(connectionId);
225
+ debug("Removed connection: %s (protocol: %s)", connection.id, connection.protocol);
226
+ }
227
+ }
228
+ // --------------------------------------------------------------------
229
+ _broadcast(data) {
230
+ const sanitized = removeStacktrace(data);
231
+ debug("[server] broadcasting data through all protocols: %a", sanitized);
232
+ for (const [name, protocol] of this.protocols.entries()) {
233
+ try {
234
+ protocol.broadcast(sanitized);
235
+ }
236
+ catch (e) {
237
+ this.logger.error(`[broadcast] protocol ${name} failed: ${e.message}\n${e.stack}`);
238
+ }
239
+ }
240
+ }
241
+ _isShuttingDownError(connection, request, cb) {
242
+ request.setError(networkError.get("shutting_down"));
243
+ this.logAccess(connection, request);
244
+ cb(removeStacktrace(request.response.toJSON()));
245
+ }
246
+ _notify(data) {
247
+ debug('[server] sending notification to client with connection id "%s": %a', data.connectionId, data);
248
+ const client = this._clients.get(data.connectionId);
249
+ if (!client || !client.protocol) {
250
+ return;
251
+ }
252
+ try {
253
+ this.protocols.get(client.protocol).notify(removeStacktrace(data));
254
+ }
255
+ catch (e) {
256
+ this.logger.error(`[notify] protocol ${client.protocol} failed: ${e.message}`);
257
+ }
258
+ }
259
+ }
260
+ module.exports = EntryPoint;
261
+ //# sourceMappingURL=entryPoint.js.map
@@ -0,0 +1,85 @@
1
+ export = Router;
2
+ /**
3
+ * Attach handler to routes and dispatch a HTTP
4
+ * message to the right handler
5
+ *
6
+ * Handlers will be called with the following arguments:
7
+ * - request: received HTTP request
8
+ * - response: HTTP response object
9
+ * - data: URL query arguments and/or POST data, if any
10
+ *
11
+ * @class Router
12
+ */
13
+ declare class Router {
14
+ defaultHeaders: {
15
+ "Accept-Encoding": string;
16
+ "Access-Control-Allow-Headers": string;
17
+ "Access-Control-Allow-Methods": string;
18
+ "content-type": string;
19
+ };
20
+ routes: {
21
+ DELETE: RoutePart;
22
+ GET: RoutePart;
23
+ HEAD: RoutePart;
24
+ PATCH: RoutePart;
25
+ POST: RoutePart;
26
+ PUT: RoutePart;
27
+ };
28
+ /**
29
+ * Attach a handler to a GET HTTP route
30
+ *
31
+ * @param {string} path
32
+ * @param {Function} handler
33
+ */
34
+ get(path: string, handler: Function): void;
35
+ /**
36
+ * Attach a handler to a POST HTTP route
37
+ *
38
+ * @param {string} path
39
+ * @param {Function} handler
40
+ */
41
+ post(path: string, handler: Function): void;
42
+ /**
43
+ * Attach a handler to a PUT HTTP route
44
+ *
45
+ * @param {string} path
46
+ * @param {Function} handler
47
+ */
48
+ put(path: string, handler: Function): void;
49
+ /**
50
+ * Attach a handler to a PATCH HTTP route
51
+ *
52
+ * @param {string} path
53
+ * @param {Function} handler
54
+ */
55
+ patch(path: string, handler: Function): void;
56
+ /**
57
+ * Attach a handler to a DELETE HTTP route
58
+ *
59
+ * @param {string} path
60
+ * @param {Function} handler
61
+ */
62
+ delete(path: string, handler: Function): void;
63
+ /**
64
+ * Attach a handler to a HEAD HTTP route
65
+ *
66
+ * @param {string} path
67
+ * @param {Function} handler
68
+ */
69
+ head(path: string, handler: Function): void;
70
+ /**
71
+ * Route an incoming HTTP message to the right handler
72
+ *
73
+ * @param {HttpMessage} message - Parsed HTTP message
74
+ * @param {function} cb
75
+ */
76
+ route(message: HttpMessage, cb: Function): void;
77
+ /**
78
+ * Route HTTP messages using an HTTP method that is not handled by Kuzzle's
79
+ * API, such as OPTIONS.
80
+ * @param {HttpMessage} message
81
+ * @param {function} cb
82
+ */
83
+ routeUnhandledHttpMethod(message: HttpMessage, cb: Function): void;
84
+ }
85
+ import RoutePart = require("./routePart");
@@ -0,0 +1,258 @@
1
+ /*
2
+ * Kuzzle, a backend software, self-hostable and ready to use
3
+ * to power modern apps
4
+ *
5
+ * Copyright 2015-2022 Kuzzle
6
+ * mailto: support AT kuzzle.io
7
+ * website: http://kuzzle.io
8
+ *
9
+ * Licensed under the Apache License, Version 2.0 (the "License");
10
+ * you may not use this file except in compliance with the License.
11
+ * You may obtain a copy of the License at
12
+ *
13
+ * https://www.apache.org/licenses/LICENSE-2.0
14
+ *
15
+ * Unless required by applicable law or agreed to in writing, software
16
+ * distributed under the License is distributed on an "AS IS" BASIS,
17
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ * See the License for the specific language governing permissions and
19
+ * limitations under the License.
20
+ */
21
+ "use strict";
22
+ const { Request } = require("../../../api/request");
23
+ const { KuzzleError } = require("../../../kerror/errors");
24
+ const RoutePart = require("./routePart");
25
+ const { has } = require("../../../util/safeObject");
26
+ const kerror = require("../../../kerror").wrap("network", "http");
27
+ const debug = require("../../../util/debug")("kuzzle:http:router");
28
+ /**
29
+ * Attach handler to routes and dispatch a HTTP
30
+ * message to the right handler
31
+ *
32
+ * Handlers will be called with the following arguments:
33
+ * - request: received HTTP request
34
+ * - response: HTTP response object
35
+ * - data: URL query arguments and/or POST data, if any
36
+ *
37
+ * @class Router
38
+ */
39
+ class Router {
40
+ constructor() {
41
+ this.defaultHeaders = {
42
+ "Accept-Encoding": "identity",
43
+ "Access-Control-Allow-Headers": global.kuzzle.config.http.accessControlAllowHeaders,
44
+ "Access-Control-Allow-Methods": global.kuzzle.config.http.accessControlAllowMethods,
45
+ "content-type": "application/json",
46
+ };
47
+ if (global.kuzzle.config.http.cookieAuthentication) {
48
+ this.defaultHeaders["Access-Control-Allow-Credentials"] = "true";
49
+ }
50
+ if (global.kuzzle.config.server.protocols.http.allowCompression === true) {
51
+ this.defaultHeaders["Accept-Encoding"] = "gzip,deflate,identity";
52
+ }
53
+ this.routes = {
54
+ DELETE: new RoutePart(),
55
+ GET: new RoutePart(),
56
+ HEAD: new RoutePart(),
57
+ PATCH: new RoutePart(),
58
+ POST: new RoutePart(),
59
+ PUT: new RoutePart(),
60
+ };
61
+ // Add an automatic HEAD route on the '/' url, answering with default headers
62
+ attach("/", (request, cb) => {
63
+ request.setResult({}, 200);
64
+ cb(request);
65
+ }, this.routes.HEAD);
66
+ }
67
+ /**
68
+ * Attach a handler to a GET HTTP route
69
+ *
70
+ * @param {string} path
71
+ * @param {Function} handler
72
+ */
73
+ get(path, handler) {
74
+ attach(path, handler, this.routes.GET);
75
+ }
76
+ /**
77
+ * Attach a handler to a POST HTTP route
78
+ *
79
+ * @param {string} path
80
+ * @param {Function} handler
81
+ */
82
+ post(path, handler) {
83
+ attach(path, handler, this.routes.POST);
84
+ }
85
+ /**
86
+ * Attach a handler to a PUT HTTP route
87
+ *
88
+ * @param {string} path
89
+ * @param {Function} handler
90
+ */
91
+ put(path, handler) {
92
+ attach(path, handler, this.routes.PUT);
93
+ }
94
+ /**
95
+ * Attach a handler to a PATCH HTTP route
96
+ *
97
+ * @param {string} path
98
+ * @param {Function} handler
99
+ */
100
+ patch(path, handler) {
101
+ attach(path, handler, this.routes.PATCH);
102
+ }
103
+ /**
104
+ * Attach a handler to a DELETE HTTP route
105
+ *
106
+ * @param {string} path
107
+ * @param {Function} handler
108
+ */
109
+ delete(path, handler) {
110
+ attach(path, handler, this.routes.DELETE);
111
+ }
112
+ /**
113
+ * Attach a handler to a HEAD HTTP route
114
+ *
115
+ * @param {string} path
116
+ * @param {Function} handler
117
+ */
118
+ head(path, handler) {
119
+ attach(path, handler, this.routes.HEAD);
120
+ }
121
+ /**
122
+ * Route an incoming HTTP message to the right handler
123
+ *
124
+ * @param {HttpMessage} message - Parsed HTTP message
125
+ * @param {function} cb
126
+ */
127
+ route(message, cb) {
128
+ debug("Routing HTTP message: %a", message);
129
+ if (!has(this.routes, message.method)) {
130
+ this.routeUnhandledHttpMethod(message, cb);
131
+ return;
132
+ }
133
+ let routeHandler;
134
+ try {
135
+ routeHandler = this.routes[message.method].getHandler(message);
136
+ // Set Headers if not present
137
+ routeHandler.request.response.setHeaders(this.defaultHeaders, true);
138
+ applyACAOHeader(message, routeHandler.request);
139
+ if (routeHandler.handler === null) {
140
+ throw kerror.get("url_not_found", routeHandler.url);
141
+ }
142
+ routeHandler.invokeHandler(cb);
143
+ }
144
+ catch (err) {
145
+ let request;
146
+ if (!routeHandler || !routeHandler._request) {
147
+ request = new Request({ requestId: message.requestId }, {});
148
+ // Set Headers if not present
149
+ request.response.setHeaders(this.defaultHeaders, true);
150
+ applyACAOHeader(message, request);
151
+ }
152
+ else {
153
+ request = routeHandler.request;
154
+ }
155
+ const e = err instanceof KuzzleError
156
+ ? err
157
+ : kerror.getFrom(err, "unexpected_error", err.message);
158
+ replyWithError(cb, request, e);
159
+ }
160
+ }
161
+ /**
162
+ * Route HTTP messages using an HTTP method that is not handled by Kuzzle's
163
+ * API, such as OPTIONS.
164
+ * @param {HttpMessage} message
165
+ * @param {function} cb
166
+ */
167
+ routeUnhandledHttpMethod(message, cb) {
168
+ const requestContext = global.kuzzle.router.connections.get(message.connection.id), request = new Request({ requestId: message.requestId }, requestContext && requestContext.toJSON());
169
+ // Set Headers if not present
170
+ request.response.setHeaders(this.defaultHeaders, true);
171
+ applyACAOHeader(message, request);
172
+ if (message.method === "OPTIONS") {
173
+ request.input.headers = message.headers;
174
+ request.setResult({}, 200);
175
+ global.kuzzle.pipe("http:options", request, (error, result) => {
176
+ if (error) {
177
+ replyWithError(cb, request, error);
178
+ }
179
+ else {
180
+ cb(result);
181
+ }
182
+ });
183
+ return;
184
+ }
185
+ replyWithError(cb, request, kerror.get("unsupported_verb", message.method));
186
+ }
187
+ }
188
+ /**
189
+ * Set the Header Access-Control-Allow-Origin based on the kuzzle configuration and request origin
190
+ *
191
+ * @param {HttpMessage} message
192
+ * @param {Request} request
193
+ */
194
+ function applyACAOHeader(message, request) {
195
+ if (message.headers && message.headers.origin) {
196
+ request.response.setHeaders({
197
+ "Access-Control-Allow-Origin": message.headers.origin,
198
+ Vary: "Origin",
199
+ }, true);
200
+ }
201
+ }
202
+ /**
203
+ * Attach a handler to an path and stores it to the target object
204
+ *
205
+ * @param {string} path
206
+ * @param {Function} handler
207
+ * @param {RoutePart} target
208
+ */
209
+ function attach(path, handler, target) {
210
+ const sanitized = path[path.length - 1] === "/" ? path.slice(0, -1) : path;
211
+ if (!attachParts(sanitized.split("/"), handler, target)) {
212
+ throw kerror.get("duplicate_url", sanitized);
213
+ }
214
+ }
215
+ /**
216
+ *
217
+ * @param {Array<string>} parts
218
+ * @param {Function} routeHandler
219
+ * @param {RoutePart} target
220
+ * @param {Array<string>} placeholders
221
+ * @returns {Boolean} If false, failed to attach because of a duplicate
222
+ */
223
+ function attachParts(parts, handler, target, placeholders = []) {
224
+ let part;
225
+ do {
226
+ part = parts.shift();
227
+ } while (parts.length > 0 && part.length === 0);
228
+ if (part && part[0] === ":") {
229
+ placeholders.push(part.substring(1));
230
+ part = "*";
231
+ }
232
+ const next = target.getNext(part);
233
+ if (parts.length > 0) {
234
+ return attachParts(parts, handler, next, placeholders);
235
+ }
236
+ if (target.exists(part)) {
237
+ return false;
238
+ }
239
+ next.handler = handler;
240
+ next.placeholders = placeholders;
241
+ return true;
242
+ }
243
+ /**
244
+ * Reply to a callback function with an HTTP error
245
+ *
246
+ * @param {function} cb
247
+ * @param {Request} request
248
+ * @param {Error} error
249
+ */
250
+ function replyWithError(cb, request, error) {
251
+ request.setError(error);
252
+ cb(request);
253
+ }
254
+ /**
255
+ * @type {Router}
256
+ */
257
+ module.exports = Router;
258
+ //# sourceMappingURL=index.js.map