@webda/core 4.0.0-beta.1 → 4.0.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 (675) hide show
  1. package/README.md +252 -0
  2. package/lib/application/application.d.ts +437 -0
  3. package/lib/application/application.d.ts.map +1 -0
  4. package/lib/application/application.js +792 -0
  5. package/lib/application/application.js.map +1 -0
  6. package/lib/application/hooks.d.ts +34 -0
  7. package/lib/application/hooks.d.ts.map +1 -0
  8. package/lib/application/hooks.js +57 -0
  9. package/lib/application/hooks.js.map +1 -0
  10. package/lib/application/iapplication.d.ts +43 -0
  11. package/lib/application/iapplication.d.ts.map +1 -0
  12. package/lib/application/iapplication.js +2 -0
  13. package/lib/application/iapplication.js.map +1 -0
  14. package/lib/application/iconfiguration.d.ts +176 -0
  15. package/lib/application/iconfiguration.d.ts.map +1 -0
  16. package/lib/application/iconfiguration.js +8 -0
  17. package/lib/application/iconfiguration.js.map +1 -0
  18. package/lib/application/runner.d.ts +8 -0
  19. package/lib/application/runner.d.ts.map +1 -0
  20. package/lib/application/runner.js +26 -0
  21. package/lib/application/runner.js.map +1 -0
  22. package/lib/application/unpackedapplication.d.ts +104 -0
  23. package/lib/application/unpackedapplication.d.ts.map +1 -0
  24. package/lib/application/unpackedapplication.js +492 -0
  25. package/lib/application/unpackedapplication.js.map +1 -0
  26. package/lib/bin/cli-phase.d.ts +28 -0
  27. package/lib/bin/cli-phase.d.ts.map +1 -0
  28. package/lib/bin/cli-phase.js +44 -0
  29. package/lib/bin/cli-phase.js.map +1 -0
  30. package/lib/bin/cli.d.ts +161 -0
  31. package/lib/bin/cli.d.ts.map +1 -0
  32. package/lib/bin/cli.js +828 -0
  33. package/lib/bin/cli.js.map +1 -0
  34. package/lib/bin/launcher.d.ts +3 -0
  35. package/lib/bin/launcher.d.ts.map +1 -0
  36. package/lib/bin/launcher.js +50 -0
  37. package/lib/bin/launcher.js.map +1 -0
  38. package/lib/cache/cache.d.ts +33 -0
  39. package/lib/cache/cache.d.ts.map +1 -0
  40. package/lib/cache/cache.js +8 -0
  41. package/lib/cache/cache.js.map +1 -0
  42. package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -49
  43. package/lib/configurations/configuration.service.d.ts.map +1 -0
  44. package/lib/configurations/configuration.service.js +248 -0
  45. package/lib/configurations/configuration.service.js.map +1 -0
  46. package/lib/configurations/fileconfiguration.service.d.ts +30 -0
  47. package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
  48. package/lib/configurations/fileconfiguration.service.js +65 -0
  49. package/lib/configurations/fileconfiguration.service.js.map +1 -0
  50. package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
  51. package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
  52. package/lib/configurations/kubernetesconfiguration.service.js +83 -0
  53. package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
  54. package/lib/contexts/execution.d.ts +33 -0
  55. package/lib/contexts/execution.d.ts.map +1 -0
  56. package/lib/contexts/execution.js +73 -0
  57. package/lib/contexts/execution.js.map +1 -0
  58. package/lib/contexts/globalcontext.d.ts +29 -0
  59. package/lib/contexts/globalcontext.d.ts.map +1 -0
  60. package/lib/contexts/globalcontext.js +38 -0
  61. package/lib/contexts/globalcontext.js.map +1 -0
  62. package/lib/{utils → contexts}/httpcontext.d.ts +45 -19
  63. package/lib/contexts/httpcontext.d.ts.map +1 -0
  64. package/lib/{utils → contexts}/httpcontext.js +102 -34
  65. package/lib/contexts/httpcontext.js.map +1 -0
  66. package/lib/contexts/icontext.d.ts +236 -0
  67. package/lib/contexts/icontext.d.ts.map +1 -0
  68. package/lib/contexts/icontext.js +230 -0
  69. package/lib/contexts/icontext.js.map +1 -0
  70. package/lib/contexts/operationcontext.d.ts +179 -0
  71. package/lib/contexts/operationcontext.d.ts.map +1 -0
  72. package/lib/contexts/operationcontext.js +358 -0
  73. package/lib/contexts/operationcontext.js.map +1 -0
  74. package/lib/contexts/simplecontext.d.ts +31 -0
  75. package/lib/contexts/simplecontext.d.ts.map +1 -0
  76. package/lib/contexts/simplecontext.js +45 -0
  77. package/lib/contexts/simplecontext.js.map +1 -0
  78. package/lib/contexts/webcontext.d.ts +218 -0
  79. package/lib/contexts/webcontext.d.ts.map +1 -0
  80. package/lib/contexts/webcontext.js +389 -0
  81. package/lib/contexts/webcontext.js.map +1 -0
  82. package/lib/core/authorizer.d.ts +23 -0
  83. package/lib/core/authorizer.d.ts.map +1 -0
  84. package/lib/core/authorizer.js +17 -0
  85. package/lib/core/authorizer.js.map +1 -0
  86. package/lib/core/core.d.ts +225 -0
  87. package/lib/core/core.d.ts.map +1 -0
  88. package/lib/core/core.js +576 -0
  89. package/lib/core/core.js.map +1 -0
  90. package/lib/core/hooks.d.ts +72 -0
  91. package/lib/core/hooks.d.ts.map +1 -0
  92. package/lib/core/hooks.js +73 -0
  93. package/lib/core/hooks.js.map +1 -0
  94. package/lib/core/icore.d.ts +249 -0
  95. package/lib/core/icore.d.ts.map +1 -0
  96. package/lib/core/icore.js +15 -0
  97. package/lib/core/icore.js.map +1 -0
  98. package/lib/core/instancestorage.d.ts +61 -0
  99. package/lib/core/instancestorage.d.ts.map +1 -0
  100. package/lib/core/instancestorage.js +75 -0
  101. package/lib/core/instancestorage.js.map +1 -0
  102. package/lib/core/operations.d.ts +181 -0
  103. package/lib/core/operations.d.ts.map +1 -0
  104. package/lib/core/operations.js +559 -0
  105. package/lib/core/operations.js.map +1 -0
  106. package/lib/errors/errors.d.ts +126 -0
  107. package/lib/errors/errors.d.ts.map +1 -0
  108. package/lib/errors/errors.js +165 -0
  109. package/lib/errors/errors.js.map +1 -0
  110. package/lib/events/asynceventemitter.d.ts +159 -0
  111. package/lib/events/asynceventemitter.d.ts.map +1 -0
  112. package/lib/events/asynceventemitter.js +152 -0
  113. package/lib/events/asynceventemitter.js.map +1 -0
  114. package/lib/events/events.d.ts +112 -0
  115. package/lib/events/events.d.ts.map +1 -0
  116. package/lib/events/events.js +45 -0
  117. package/lib/events/events.js.map +1 -0
  118. package/lib/index.d.ts +84 -51
  119. package/lib/index.d.ts.map +1 -0
  120. package/lib/index.js +82 -59
  121. package/lib/index.js.map +1 -1
  122. package/lib/loggers/console.service.d.ts +24 -0
  123. package/lib/loggers/console.service.d.ts.map +1 -0
  124. package/lib/loggers/console.service.js +30 -0
  125. package/lib/loggers/console.service.js.map +1 -0
  126. package/lib/loggers/file.service.d.ts +25 -0
  127. package/lib/loggers/file.service.d.ts.map +1 -0
  128. package/lib/loggers/file.service.js +33 -0
  129. package/lib/loggers/file.service.js.map +1 -0
  130. package/lib/loggers/hooks.d.ts +20 -0
  131. package/lib/loggers/hooks.d.ts.map +1 -0
  132. package/lib/loggers/hooks.js +40 -0
  133. package/lib/loggers/hooks.js.map +1 -0
  134. package/lib/loggers/ilogger.d.ts +76 -0
  135. package/lib/loggers/ilogger.d.ts.map +1 -0
  136. package/lib/loggers/ilogger.js +108 -0
  137. package/lib/loggers/ilogger.js.map +1 -0
  138. package/lib/loggers/logger.d.ts +13 -0
  139. package/lib/loggers/logger.d.ts.map +1 -0
  140. package/lib/loggers/logger.js +18 -0
  141. package/lib/loggers/logger.js.map +1 -0
  142. package/lib/loggers/memory.service.d.ts +18 -0
  143. package/lib/loggers/memory.service.d.ts.map +1 -0
  144. package/lib/loggers/memory.service.js +21 -0
  145. package/lib/loggers/memory.service.js.map +1 -0
  146. package/lib/loggers/params.d.ts +47 -0
  147. package/lib/loggers/params.d.ts.map +1 -0
  148. package/lib/loggers/params.js +56 -0
  149. package/lib/loggers/params.js.map +1 -0
  150. package/lib/metrics/metrics.d.ts +25 -0
  151. package/lib/metrics/metrics.d.ts.map +1 -0
  152. package/lib/metrics/metrics.js +51 -0
  153. package/lib/metrics/metrics.js.map +1 -0
  154. package/lib/models/aclmodel.d.ts +21 -77
  155. package/lib/models/aclmodel.d.ts.map +1 -0
  156. package/lib/models/aclmodel.js +27 -204
  157. package/lib/models/aclmodel.js.map +1 -1
  158. package/lib/models/coremodel.model.d.ts +5 -0
  159. package/lib/models/coremodel.model.d.ts.map +1 -0
  160. package/lib/models/coremodel.model.js +5 -0
  161. package/lib/models/coremodel.model.js.map +1 -0
  162. package/lib/models/decorator.d.ts +63 -0
  163. package/lib/models/decorator.d.ts.map +1 -0
  164. package/lib/models/decorator.js +63 -0
  165. package/lib/models/decorator.js.map +1 -0
  166. package/lib/models/deployment.d.ts +2 -1
  167. package/lib/models/deployment.d.ts.map +1 -0
  168. package/lib/models/ident.model.d.ts +89 -0
  169. package/lib/models/ident.model.d.ts.map +1 -0
  170. package/lib/models/ident.model.js +115 -0
  171. package/lib/models/ident.model.js.map +1 -0
  172. package/lib/models/ownermodel.model.d.ts +68 -0
  173. package/lib/models/ownermodel.model.d.ts.map +1 -0
  174. package/lib/models/ownermodel.model.js +112 -0
  175. package/lib/models/ownermodel.model.js.map +1 -0
  176. package/lib/models/registry.model.d.ts +76 -0
  177. package/lib/models/registry.model.d.ts.map +1 -0
  178. package/lib/models/registry.model.js +104 -0
  179. package/lib/models/registry.model.js.map +1 -0
  180. package/lib/models/rolemodel.model.d.ts +28 -0
  181. package/lib/models/rolemodel.model.d.ts.map +1 -0
  182. package/lib/models/rolemodel.model.js +53 -0
  183. package/lib/models/rolemodel.model.js.map +1 -0
  184. package/lib/models/simpleuser.model.d.ts +78 -0
  185. package/lib/models/simpleuser.model.d.ts.map +1 -0
  186. package/lib/models/simpleuser.model.js +123 -0
  187. package/lib/models/simpleuser.model.js.map +1 -0
  188. package/lib/models/types.d.ts +113 -0
  189. package/lib/models/types.d.ts.map +1 -0
  190. package/lib/models/types.js +2 -0
  191. package/lib/models/types.js.map +1 -0
  192. package/lib/models/user.model.d.ts +103 -0
  193. package/lib/models/user.model.d.ts.map +1 -0
  194. package/lib/models/user.model.js +125 -0
  195. package/lib/models/user.model.js.map +1 -0
  196. package/lib/queues/memoryqueue.service.d.ts +72 -0
  197. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  198. package/lib/queues/memoryqueue.service.js +136 -0
  199. package/lib/queues/memoryqueue.service.js.map +1 -0
  200. package/lib/queues/pubsubservice.d.ts +9 -6
  201. package/lib/queues/pubsubservice.d.ts.map +1 -0
  202. package/lib/queues/pubsubservice.js +5 -4
  203. package/lib/queues/pubsubservice.js.map +1 -1
  204. package/lib/queues/queueservice.d.ts +10 -11
  205. package/lib/queues/queueservice.d.ts.map +1 -0
  206. package/lib/queues/queueservice.js +48 -20
  207. package/lib/queues/queueservice.js.map +1 -1
  208. package/lib/rest/hooks.d.ts +8 -0
  209. package/lib/rest/hooks.d.ts.map +1 -0
  210. package/lib/rest/hooks.js +10 -0
  211. package/lib/rest/hooks.js.map +1 -0
  212. package/lib/rest/irest.d.ts +212 -0
  213. package/lib/rest/irest.d.ts.map +1 -0
  214. package/lib/rest/irest.js +39 -0
  215. package/lib/rest/irest.js.map +1 -0
  216. package/lib/rest/originfilter.d.ts +38 -0
  217. package/lib/rest/originfilter.d.ts.map +1 -0
  218. package/lib/rest/originfilter.js +61 -0
  219. package/lib/rest/originfilter.js.map +1 -0
  220. package/lib/rest/restoperationstransport.service.d.ts +193 -0
  221. package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
  222. package/lib/rest/restoperationstransport.service.js +780 -0
  223. package/lib/rest/restoperationstransport.service.js.map +1 -0
  224. package/lib/rest/router.service.d.ts +244 -0
  225. package/lib/rest/router.service.d.ts.map +1 -0
  226. package/lib/rest/router.service.js +843 -0
  227. package/lib/rest/router.service.js.map +1 -0
  228. package/lib/schemas/hooks.d.ts +48 -0
  229. package/lib/schemas/hooks.d.ts.map +1 -0
  230. package/lib/schemas/hooks.js +152 -0
  231. package/lib/schemas/hooks.js.map +1 -0
  232. package/lib/services/audit.model.d.ts +208 -0
  233. package/lib/services/audit.model.d.ts.map +1 -0
  234. package/lib/services/audit.model.js +431 -0
  235. package/lib/services/audit.model.js.map +1 -0
  236. package/lib/services/{authentication.d.ts → authentication.service.d.ts} +140 -58
  237. package/lib/services/authentication.service.d.ts.map +1 -0
  238. package/lib/services/authentication.service.js +932 -0
  239. package/lib/services/authentication.service.js.map +1 -0
  240. package/lib/services/binary.service.d.ts +808 -0
  241. package/lib/services/binary.service.d.ts.map +1 -0
  242. package/lib/services/binary.service.js +1365 -0
  243. package/lib/services/binary.service.js.map +1 -0
  244. package/lib/services/cloudbinary.d.ts +19 -13
  245. package/lib/services/cloudbinary.d.ts.map +1 -0
  246. package/lib/services/cloudbinary.js +24 -18
  247. package/lib/services/cloudbinary.js.map +1 -1
  248. package/lib/services/command.d.ts +118 -0
  249. package/lib/services/command.d.ts.map +1 -0
  250. package/lib/services/command.js +97 -0
  251. package/lib/services/command.js.map +1 -0
  252. package/lib/services/cron.service.d.ts +142 -0
  253. package/lib/services/cron.service.d.ts.map +1 -0
  254. package/lib/services/cron.service.js +291 -0
  255. package/lib/services/cron.service.js.map +1 -0
  256. package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +77 -142
  257. package/lib/services/cryptoservice.service.d.ts.map +1 -0
  258. package/lib/services/cryptoservice.service.js +527 -0
  259. package/lib/services/cryptoservice.service.js.map +1 -0
  260. package/lib/services/debugmailer.service.d.ts +49 -0
  261. package/lib/services/debugmailer.service.d.ts.map +1 -0
  262. package/lib/services/debugmailer.service.js +66 -0
  263. package/lib/services/debugmailer.service.js.map +1 -0
  264. package/lib/services/domainservice.service.d.ts +203 -0
  265. package/lib/services/domainservice.service.d.ts.map +1 -0
  266. package/lib/services/domainservice.service.js +600 -0
  267. package/lib/services/domainservice.service.js.map +1 -0
  268. package/lib/services/httpserver.service.d.ts +248 -0
  269. package/lib/services/httpserver.service.d.ts.map +1 -0
  270. package/lib/services/httpserver.service.js +673 -0
  271. package/lib/services/httpserver.service.js.map +1 -0
  272. package/lib/services/iauthentication.d.ts +9 -0
  273. package/lib/services/iauthentication.d.ts.map +1 -0
  274. package/lib/services/iauthentication.js +2 -0
  275. package/lib/services/iauthentication.js.map +1 -0
  276. package/lib/services/icryptoservice.d.ts +127 -0
  277. package/lib/services/icryptoservice.d.ts.map +1 -0
  278. package/lib/services/icryptoservice.js +68 -0
  279. package/lib/services/icryptoservice.js.map +1 -0
  280. package/lib/services/imailer.d.ts +17 -0
  281. package/lib/services/imailer.d.ts.map +1 -0
  282. package/lib/services/imailer.js +2 -0
  283. package/lib/services/imailer.js.map +1 -0
  284. package/lib/services/iservice.d.ts +104 -0
  285. package/lib/services/iservice.d.ts.map +1 -0
  286. package/lib/services/iservice.js +63 -0
  287. package/lib/services/iservice.js.map +1 -0
  288. package/lib/services/mailer.service.d.ts +220 -0
  289. package/lib/services/mailer.service.d.ts.map +1 -0
  290. package/lib/services/mailer.service.js +251 -0
  291. package/lib/services/mailer.service.js.map +1 -0
  292. package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -10
  293. package/lib/services/notificationservice.service.d.ts.map +1 -0
  294. package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
  295. package/lib/services/notificationservice.service.js.map +1 -0
  296. package/lib/services/oauth.d.ts +58 -31
  297. package/lib/services/oauth.d.ts.map +1 -0
  298. package/lib/services/oauth.js +365 -251
  299. package/lib/services/oauth.js.map +1 -1
  300. package/lib/services/operationstransport.d.ts +65 -0
  301. package/lib/services/operationstransport.d.ts.map +1 -0
  302. package/lib/services/operationstransport.js +103 -0
  303. package/lib/services/operationstransport.js.map +1 -0
  304. package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -11
  305. package/lib/services/prometheus.service.d.ts.map +1 -0
  306. package/lib/services/prometheus.service.js +203 -0
  307. package/lib/services/prometheus.service.js.map +1 -0
  308. package/lib/services/resource.service.d.ts +121 -0
  309. package/lib/services/resource.service.d.ts.map +1 -0
  310. package/lib/services/resource.service.js +301 -0
  311. package/lib/services/resource.service.js.map +1 -0
  312. package/lib/services/service.d.ts +88 -189
  313. package/lib/services/service.d.ts.map +1 -0
  314. package/lib/services/service.js +407 -432
  315. package/lib/services/service.js.map +1 -1
  316. package/lib/services/servicecommands.d.ts +99 -0
  317. package/lib/services/servicecommands.d.ts.map +1 -0
  318. package/lib/services/servicecommands.js +165 -0
  319. package/lib/services/servicecommands.js.map +1 -0
  320. package/lib/services/serviceparameters.d.ts +33 -0
  321. package/lib/services/serviceparameters.d.ts.map +1 -0
  322. package/lib/services/serviceparameters.js +79 -0
  323. package/lib/services/serviceparameters.js.map +1 -0
  324. package/lib/{utils → session}/cookie.d.ts +32 -18
  325. package/lib/session/cookie.d.ts.map +1 -0
  326. package/lib/{utils → session}/cookie.js +76 -23
  327. package/lib/session/cookie.js.map +1 -0
  328. package/lib/session/manager.model.d.ts +71 -0
  329. package/lib/session/manager.model.d.ts.map +1 -0
  330. package/lib/session/manager.model.js +155 -0
  331. package/lib/session/manager.model.js.map +1 -0
  332. package/lib/session/session.d.ts +57 -0
  333. package/lib/session/session.d.ts.map +1 -0
  334. package/lib/session/session.js +126 -0
  335. package/lib/session/session.js.map +1 -0
  336. package/lib/stores/istore.d.ts +99 -0
  337. package/lib/stores/istore.d.ts.map +1 -0
  338. package/lib/stores/istore.js +26 -0
  339. package/lib/stores/istore.js.map +1 -0
  340. package/lib/stores/memory.service.d.ts +114 -0
  341. package/lib/stores/memory.service.d.ts.map +1 -0
  342. package/lib/stores/memory.service.js +343 -0
  343. package/lib/stores/memory.service.js.map +1 -0
  344. package/lib/stores/store.d.ts +127 -768
  345. package/lib/stores/store.d.ts.map +1 -0
  346. package/lib/stores/store.js +258 -1718
  347. package/lib/stores/store.js.map +1 -1
  348. package/lib/templates/templates.d.ts +39 -0
  349. package/lib/templates/templates.d.ts.map +1 -0
  350. package/lib/templates/templates.js +92 -0
  351. package/lib/templates/templates.js.map +1 -0
  352. package/lib/test/application.d.ts +174 -0
  353. package/lib/test/application.d.ts.map +1 -0
  354. package/lib/test/application.js +288 -0
  355. package/lib/test/application.js.map +1 -0
  356. package/lib/test/asyncstorage.d.ts +16 -0
  357. package/lib/test/asyncstorage.d.ts.map +1 -0
  358. package/lib/test/asyncstorage.js +32 -0
  359. package/lib/test/asyncstorage.js.map +1 -0
  360. package/lib/test/core.d.ts +63 -0
  361. package/lib/test/core.d.ts.map +1 -0
  362. package/lib/test/core.js +190 -0
  363. package/lib/test/core.js.map +1 -0
  364. package/lib/test/index.d.ts +7 -0
  365. package/lib/test/index.d.ts.map +1 -0
  366. package/lib/test/index.js +8 -0
  367. package/lib/test/index.js.map +1 -0
  368. package/lib/test/internal.d.ts +34 -0
  369. package/lib/test/internal.d.ts.map +1 -0
  370. package/lib/test/internal.js +156 -0
  371. package/lib/test/internal.js.map +1 -0
  372. package/lib/test/objects.d.ts +318 -0
  373. package/lib/test/objects.d.ts.map +1 -0
  374. package/lib/test/objects.js +443 -0
  375. package/lib/test/objects.js.map +1 -0
  376. package/lib/utils/abstractdeployer.d.ts +5 -2
  377. package/lib/utils/abstractdeployer.d.ts.map +1 -0
  378. package/lib/utils/abstractdeployer.js +3 -0
  379. package/lib/utils/abstractdeployer.js.map +1 -1
  380. package/package.json +85 -56
  381. package/test/cachedapp/webda.config.json +1 -5
  382. package/test/config-cached.json +1 -5
  383. package/test/config.json +6 -99
  384. package/test/data/.env +1 -0
  385. package/test/my-cnf.json +9 -0
  386. package/webda.module.json +3462 -2231
  387. package/lib/application.d.ts +0 -876
  388. package/lib/application.js +0 -741
  389. package/lib/application.js.map +0 -1
  390. package/lib/application.spec.d.ts +0 -1
  391. package/lib/application.spec.js +0 -234
  392. package/lib/application.spec.js.map +0 -1
  393. package/lib/core.d.ts +0 -740
  394. package/lib/core.js +0 -1310
  395. package/lib/core.js.map +0 -1
  396. package/lib/core.spec.d.ts +0 -1
  397. package/lib/core.spec.js +0 -761
  398. package/lib/core.spec.js.map +0 -1
  399. package/lib/errors.d.ts +0 -65
  400. package/lib/errors.js +0 -113
  401. package/lib/errors.js.map +0 -1
  402. package/lib/errors.spec.d.ts +0 -1
  403. package/lib/errors.spec.js +0 -33
  404. package/lib/errors.spec.js.map +0 -1
  405. package/lib/models/aclmodel.spec.d.ts +0 -1
  406. package/lib/models/aclmodel.spec.js +0 -187
  407. package/lib/models/aclmodel.spec.js.map +0 -1
  408. package/lib/models/coremodel.d.ts +0 -887
  409. package/lib/models/coremodel.js +0 -1208
  410. package/lib/models/coremodel.js.map +0 -1
  411. package/lib/models/coremodel.spec.d.ts +0 -1
  412. package/lib/models/coremodel.spec.js +0 -462
  413. package/lib/models/coremodel.spec.js.map +0 -1
  414. package/lib/models/ident.d.ts +0 -53
  415. package/lib/models/ident.js +0 -40
  416. package/lib/models/ident.js.map +0 -1
  417. package/lib/models/ident.spec.d.ts +0 -1
  418. package/lib/models/ident.spec.js +0 -43
  419. package/lib/models/ident.spec.js.map +0 -1
  420. package/lib/models/ownermodel.d.ts +0 -50
  421. package/lib/models/ownermodel.js +0 -65
  422. package/lib/models/ownermodel.js.map +0 -1
  423. package/lib/models/ownermodel.spec.d.ts +0 -1
  424. package/lib/models/ownermodel.spec.js +0 -191
  425. package/lib/models/ownermodel.spec.js.map +0 -1
  426. package/lib/models/relations.d.ts +0 -181
  427. package/lib/models/relations.js +0 -157
  428. package/lib/models/relations.js.map +0 -1
  429. package/lib/models/relations.spec.d.ts +0 -12
  430. package/lib/models/relations.spec.js +0 -224
  431. package/lib/models/relations.spec.js.map +0 -1
  432. package/lib/models/rolemodel.d.ts +0 -10
  433. package/lib/models/rolemodel.js +0 -35
  434. package/lib/models/rolemodel.js.map +0 -1
  435. package/lib/models/rolemodel.spec.d.ts +0 -1
  436. package/lib/models/rolemodel.spec.js +0 -86
  437. package/lib/models/rolemodel.spec.js.map +0 -1
  438. package/lib/models/user.d.ts +0 -100
  439. package/lib/models/user.js +0 -157
  440. package/lib/models/user.js.map +0 -1
  441. package/lib/models/user.spec.d.ts +0 -1
  442. package/lib/models/user.spec.js +0 -88
  443. package/lib/models/user.spec.js.map +0 -1
  444. package/lib/queues/filequeue.d.ts +0 -58
  445. package/lib/queues/filequeue.js +0 -131
  446. package/lib/queues/filequeue.js.map +0 -1
  447. package/lib/queues/filequeue.spec.d.ts +0 -1
  448. package/lib/queues/filequeue.spec.js +0 -78
  449. package/lib/queues/filequeue.spec.js.map +0 -1
  450. package/lib/queues/memoryqueue.d.ts +0 -45
  451. package/lib/queues/memoryqueue.js +0 -81
  452. package/lib/queues/memoryqueue.js.map +0 -1
  453. package/lib/queues/memoryqueue.spec.d.ts +0 -1
  454. package/lib/queues/memoryqueue.spec.js +0 -192
  455. package/lib/queues/memoryqueue.spec.js.map +0 -1
  456. package/lib/queues/queue.spec.d.ts +0 -5
  457. package/lib/queues/queue.spec.js +0 -55
  458. package/lib/queues/queue.spec.js.map +0 -1
  459. package/lib/router.d.ts +0 -172
  460. package/lib/router.js +0 -419
  461. package/lib/router.js.map +0 -1
  462. package/lib/router.spec.d.ts +0 -1
  463. package/lib/router.spec.js +0 -229
  464. package/lib/router.spec.js.map +0 -1
  465. package/lib/services/asyncevents.d.ts +0 -151
  466. package/lib/services/asyncevents.js +0 -217
  467. package/lib/services/asyncevents.js.map +0 -1
  468. package/lib/services/asyncevents.spec.d.ts +0 -1
  469. package/lib/services/asyncevents.spec.js +0 -118
  470. package/lib/services/asyncevents.spec.js.map +0 -1
  471. package/lib/services/authentication.js +0 -772
  472. package/lib/services/authentication.js.map +0 -1
  473. package/lib/services/authentication.spec.d.ts +0 -1
  474. package/lib/services/authentication.spec.js +0 -458
  475. package/lib/services/authentication.spec.js.map +0 -1
  476. package/lib/services/binary.d.ts +0 -549
  477. package/lib/services/binary.js +0 -986
  478. package/lib/services/binary.js.map +0 -1
  479. package/lib/services/binary.spec.d.ts +0 -44
  480. package/lib/services/binary.spec.js +0 -438
  481. package/lib/services/binary.spec.js.map +0 -1
  482. package/lib/services/cloudbinary.spec.d.ts +0 -13
  483. package/lib/services/cloudbinary.spec.js +0 -192
  484. package/lib/services/cloudbinary.spec.js.map +0 -1
  485. package/lib/services/configuration.js +0 -178
  486. package/lib/services/configuration.js.map +0 -1
  487. package/lib/services/configuration.spec.d.ts +0 -1
  488. package/lib/services/configuration.spec.js +0 -87
  489. package/lib/services/configuration.spec.js.map +0 -1
  490. package/lib/services/cron.d.ts +0 -73
  491. package/lib/services/cron.js +0 -141
  492. package/lib/services/cron.js.map +0 -1
  493. package/lib/services/cron.spec.d.ts +0 -1
  494. package/lib/services/cron.spec.js +0 -76
  495. package/lib/services/cron.spec.js.map +0 -1
  496. package/lib/services/cryptoservice.js +0 -434
  497. package/lib/services/cryptoservice.js.map +0 -1
  498. package/lib/services/cryptoservice.spec.d.ts +0 -1
  499. package/lib/services/cryptoservice.spec.js +0 -177
  500. package/lib/services/cryptoservice.spec.js.map +0 -1
  501. package/lib/services/debugmailer.d.ts +0 -36
  502. package/lib/services/debugmailer.js +0 -52
  503. package/lib/services/debugmailer.js.map +0 -1
  504. package/lib/services/debugmailer.spec.d.ts +0 -1
  505. package/lib/services/debugmailer.spec.js +0 -29
  506. package/lib/services/debugmailer.spec.js.map +0 -1
  507. package/lib/services/domainservice.d.ts +0 -152
  508. package/lib/services/domainservice.js +0 -881
  509. package/lib/services/domainservice.js.map +0 -1
  510. package/lib/services/domainservice.spec.d.ts +0 -1
  511. package/lib/services/domainservice.spec.js +0 -401
  512. package/lib/services/domainservice.spec.js.map +0 -1
  513. package/lib/services/filebinary.d.ts +0 -133
  514. package/lib/services/filebinary.js +0 -371
  515. package/lib/services/filebinary.js.map +0 -1
  516. package/lib/services/filebinary.spec.d.ts +0 -21
  517. package/lib/services/filebinary.spec.js +0 -415
  518. package/lib/services/filebinary.spec.js.map +0 -1
  519. package/lib/services/fileconfiguration.d.ts +0 -22
  520. package/lib/services/fileconfiguration.js +0 -48
  521. package/lib/services/fileconfiguration.js.map +0 -1
  522. package/lib/services/fileconfiguration.spec.d.ts +0 -1
  523. package/lib/services/fileconfiguration.spec.js +0 -177
  524. package/lib/services/fileconfiguration.spec.js.map +0 -1
  525. package/lib/services/invitationservice.d.ts +0 -222
  526. package/lib/services/invitationservice.js +0 -526
  527. package/lib/services/invitationservice.js.map +0 -1
  528. package/lib/services/invitationservice.spec.d.ts +0 -1
  529. package/lib/services/invitationservice.spec.js +0 -516
  530. package/lib/services/invitationservice.spec.js.map +0 -1
  531. package/lib/services/kubernetesconfiguration.d.ts +0 -26
  532. package/lib/services/kubernetesconfiguration.js +0 -54
  533. package/lib/services/kubernetesconfiguration.js.map +0 -1
  534. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -1
  535. package/lib/services/kubernetesconfiguration.spec.js +0 -147
  536. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  537. package/lib/services/mailer.d.ts +0 -165
  538. package/lib/services/mailer.js +0 -176
  539. package/lib/services/mailer.js.map +0 -1
  540. package/lib/services/mailer.spec.d.ts +0 -1
  541. package/lib/services/mailer.spec.js +0 -144
  542. package/lib/services/mailer.spec.js.map +0 -1
  543. package/lib/services/notificationservice.js.map +0 -1
  544. package/lib/services/notificationservice.spec.d.ts +0 -1
  545. package/lib/services/notificationservice.spec.js +0 -78
  546. package/lib/services/notificationservice.spec.js.map +0 -1
  547. package/lib/services/oauth.spec.d.ts +0 -1
  548. package/lib/services/oauth.spec.js +0 -184
  549. package/lib/services/oauth.spec.js.map +0 -1
  550. package/lib/services/prometheus.js +0 -160
  551. package/lib/services/prometheus.js.map +0 -1
  552. package/lib/services/prometheus.spec.d.ts +0 -1
  553. package/lib/services/prometheus.spec.js +0 -57
  554. package/lib/services/prometheus.spec.js.map +0 -1
  555. package/lib/services/resource.d.ts +0 -87
  556. package/lib/services/resource.js +0 -156
  557. package/lib/services/resource.js.map +0 -1
  558. package/lib/services/resource.spec.d.ts +0 -1
  559. package/lib/services/resource.spec.js +0 -122
  560. package/lib/services/resource.spec.js.map +0 -1
  561. package/lib/services/service.spec.d.ts +0 -1
  562. package/lib/services/service.spec.js +0 -268
  563. package/lib/services/service.spec.js.map +0 -1
  564. package/lib/stores/aggregator.d.ts +0 -41
  565. package/lib/stores/aggregator.js +0 -80
  566. package/lib/stores/aggregator.js.map +0 -1
  567. package/lib/stores/aliasstore.d.ts +0 -108
  568. package/lib/stores/aliasstore.js +0 -168
  569. package/lib/stores/aliasstore.js.map +0 -1
  570. package/lib/stores/aliasstore.spec.d.ts +0 -11
  571. package/lib/stores/aliasstore.spec.js +0 -89
  572. package/lib/stores/aliasstore.spec.js.map +0 -1
  573. package/lib/stores/file.d.ts +0 -107
  574. package/lib/stores/file.js +0 -188
  575. package/lib/stores/file.js.map +0 -1
  576. package/lib/stores/file.spec.d.ts +0 -19
  577. package/lib/stores/file.spec.js +0 -232
  578. package/lib/stores/file.spec.js.map +0 -1
  579. package/lib/stores/mapper.d.ts +0 -149
  580. package/lib/stores/mapper.js +0 -293
  581. package/lib/stores/mapper.js.map +0 -1
  582. package/lib/stores/mapper.spec.d.ts +0 -1
  583. package/lib/stores/mapper.spec.js +0 -160
  584. package/lib/stores/mapper.spec.js.map +0 -1
  585. package/lib/stores/memory.d.ts +0 -151
  586. package/lib/stores/memory.js +0 -371
  587. package/lib/stores/memory.js.map +0 -1
  588. package/lib/stores/memory.spec.d.ts +0 -20
  589. package/lib/stores/memory.spec.js +0 -328
  590. package/lib/stores/memory.spec.js.map +0 -1
  591. package/lib/stores/modelmapper.d.ts +0 -61
  592. package/lib/stores/modelmapper.js +0 -199
  593. package/lib/stores/modelmapper.js.map +0 -1
  594. package/lib/stores/store.spec.d.ts +0 -65
  595. package/lib/stores/store.spec.js +0 -906
  596. package/lib/stores/store.spec.js.map +0 -1
  597. package/lib/test.d.ts +0 -162
  598. package/lib/test.js +0 -399
  599. package/lib/test.js.map +0 -1
  600. package/lib/unpackedapplication.d.ts +0 -76
  601. package/lib/unpackedapplication.js +0 -299
  602. package/lib/unpackedapplication.js.map +0 -1
  603. package/lib/utils/abstractdeployer.spec.d.ts +0 -1
  604. package/lib/utils/abstractdeployer.spec.js +0 -21
  605. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  606. package/lib/utils/case.d.ts +0 -7
  607. package/lib/utils/case.js +0 -43
  608. package/lib/utils/case.js.map +0 -1
  609. package/lib/utils/case.spec.d.ts +0 -1
  610. package/lib/utils/case.spec.js +0 -50
  611. package/lib/utils/case.spec.js.map +0 -1
  612. package/lib/utils/context.d.ts +0 -462
  613. package/lib/utils/context.js +0 -732
  614. package/lib/utils/context.js.map +0 -1
  615. package/lib/utils/context.spec.d.ts +0 -9
  616. package/lib/utils/context.spec.js +0 -372
  617. package/lib/utils/context.spec.js.map +0 -1
  618. package/lib/utils/cookie.js.map +0 -1
  619. package/lib/utils/cookie.spec.d.ts +0 -1
  620. package/lib/utils/cookie.spec.js +0 -78
  621. package/lib/utils/cookie.spec.js.map +0 -1
  622. package/lib/utils/esm.d.ts +0 -13
  623. package/lib/utils/esm.js +0 -19
  624. package/lib/utils/esm.js.map +0 -1
  625. package/lib/utils/httpcontext.js.map +0 -1
  626. package/lib/utils/httpcontext.spec.d.ts +0 -4
  627. package/lib/utils/httpcontext.spec.js +0 -77
  628. package/lib/utils/httpcontext.spec.js.map +0 -1
  629. package/lib/utils/logger.d.ts +0 -91
  630. package/lib/utils/logger.js +0 -121
  631. package/lib/utils/logger.js.map +0 -1
  632. package/lib/utils/logger.spec.d.ts +0 -1
  633. package/lib/utils/logger.spec.js +0 -48
  634. package/lib/utils/logger.spec.js.map +0 -1
  635. package/lib/utils/serializers.d.ts +0 -161
  636. package/lib/utils/serializers.js +0 -420
  637. package/lib/utils/serializers.js.map +0 -1
  638. package/lib/utils/serializers.spec.d.ts +0 -1
  639. package/lib/utils/serializers.spec.js +0 -313
  640. package/lib/utils/serializers.spec.js.map +0 -1
  641. package/lib/utils/session.d.ts +0 -126
  642. package/lib/utils/session.js +0 -166
  643. package/lib/utils/session.js.map +0 -1
  644. package/lib/utils/session.spec.d.ts +0 -1
  645. package/lib/utils/session.spec.js +0 -71
  646. package/lib/utils/session.spec.js.map +0 -1
  647. package/lib/utils/throttler.d.ts +0 -102
  648. package/lib/utils/throttler.js +0 -168
  649. package/lib/utils/throttler.js.map +0 -1
  650. package/lib/utils/throttler.spec.d.ts +0 -1
  651. package/lib/utils/throttler.spec.js +0 -55
  652. package/lib/utils/throttler.spec.js.map +0 -1
  653. package/lib/utils/waiter.d.ts +0 -93
  654. package/lib/utils/waiter.js +0 -148
  655. package/lib/utils/waiter.js.map +0 -1
  656. package/lib/utils/waiter.spec.d.ts +0 -1
  657. package/lib/utils/waiter.spec.js +0 -98
  658. package/lib/utils/waiter.spec.js.map +0 -1
  659. package/test/config-file-missing-file-no-default.json +0 -44
  660. package/test/config-file-missing-file.json +0 -55
  661. package/test/config-file-no-reload.json +0 -69
  662. package/test/config-file-reload.json +0 -68
  663. package/test/config-invitation.json +0 -63
  664. package/test/config-kube-reload.json +0 -68
  665. package/test/config-reload.json +0 -66
  666. package/test/config.old.json +0 -152
  667. package/test/jsonutils/mdocs.yaml +0 -56
  668. package/test/jsonutils/test.json +0 -3
  669. package/test/jsonutils/test.yml +0 -5
  670. package/test/moddas/annotatedservice.js +0 -23
  671. package/test/moddas/debugmailer.js +0 -13
  672. package/test/moddas/fakeservice.js +0 -4
  673. package/test/moddas/voidstore.js +0 -66
  674. package/test/models/ident.js +0 -36
  675. package/test/models/task.js +0 -42
@@ -0,0 +1,30 @@
1
+ import { ConfigurationService, ConfigurationServiceParameters } from "./configuration.service.js";
2
+ /**
3
+ * Allow for dynamic configuration from a file
4
+ * @WebdaModda Webda/FileConfiguration
5
+ */
6
+ export declare class FileConfigurationService<T extends ConfigurationServiceParameters = ConfigurationServiceParameters> extends ConfigurationService<T> {
7
+ sourcePaths: Record<string, string>;
8
+ /**
9
+ * Resolve the file path for a given configuration source id, creating from defaults if missing
10
+ * @param id - the identifier
11
+ * @returns the result string
12
+ */
13
+ getFilePath(id: string): string;
14
+ /**
15
+ * Watch the configuration file for changes and trigger the callback when modified
16
+ * @param id - the identifier
17
+ * @param callback - the callback function
18
+ * @param defaultValue - the default value
19
+ * @returns the result
20
+ */
21
+ canTriggerConfiguration(id: string, callback: () => void, defaultValue?: any): boolean;
22
+ /**
23
+ * Load the JSON from source defined file
24
+ * @override
25
+ */
26
+ getConfiguration(id: string): Promise<{
27
+ [key: string]: any;
28
+ }>;
29
+ }
30
+ //# sourceMappingURL=fileconfiguration.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileconfiguration.service.d.ts","sourceRoot":"","sources":["../../src/configurations/fileconfiguration.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAGlG;;;GAGG;AACH,qBAAa,wBAAwB,CACnC,CAAC,SAAS,8BAA8B,GAAG,8BAA8B,CACzE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAEzC;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CA0B9B;IAED;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,OAAO,CAIrF;IAED;;;OAGG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAG5D;CACF"}
@@ -0,0 +1,65 @@
1
+ import { existsSync, watchFile } from "fs";
2
+ import * as WebdaError from "../errors/errors.js";
3
+ import { FileUtils } from "@webda/utils";
4
+ import { ConfigurationService } from "./configuration.service.js";
5
+ import { useApplication } from "../application/hooks.js";
6
+ /**
7
+ * Allow for dynamic configuration from a file
8
+ * @WebdaModda Webda/FileConfiguration
9
+ */
10
+ export class FileConfigurationService extends ConfigurationService {
11
+ sourcePaths = {};
12
+ /**
13
+ * Resolve the file path for a given configuration source id, creating from defaults if missing
14
+ * @param id - the identifier
15
+ * @returns the result string
16
+ */
17
+ getFilePath(id) {
18
+ // Allow .jsonc, .yaml, .yml, .json
19
+ if (/\.(jsonc?|ya?ml)$/.test(id)) {
20
+ this.sourcePaths[id] = useApplication().getPath(id);
21
+ }
22
+ else {
23
+ try {
24
+ this.sourcePaths[id] = FileUtils.getConfigurationFile(useApplication().getPath(id));
25
+ this.log("DEBUG", `Using configuration file ${this.sourcePaths[id]}`);
26
+ }
27
+ catch (error) {
28
+ // Default to yaml in case we create based on default value
29
+ this.sourcePaths[id] = useApplication().getPath(id + ".yaml");
30
+ this.log("DEBUG", `Using configuration file ${this.sourcePaths[id]} (defaulted to .yaml extension)`);
31
+ }
32
+ }
33
+ if (!existsSync(this.sourcePaths[id])) {
34
+ if (!this.parameters.default) {
35
+ throw new WebdaError.CodeError("FILE_CONFIGURATION_SOURCE_MISSING", "Configuration file not found: " + this.sourcePaths[id]);
36
+ }
37
+ else {
38
+ this.log("DEBUG", `Setting default value for file ${this.sourcePaths[id]}`);
39
+ FileUtils.save(this.parameters.default, this.sourcePaths[id]);
40
+ }
41
+ }
42
+ return this.sourcePaths[id];
43
+ }
44
+ /**
45
+ * Watch the configuration file for changes and trigger the callback when modified
46
+ * @param id - the identifier
47
+ * @param callback - the callback function
48
+ * @param defaultValue - the default value
49
+ * @returns the result
50
+ */
51
+ canTriggerConfiguration(id, callback, defaultValue) {
52
+ this.sourcePaths[id] ??= this.getFilePath(id);
53
+ watchFile(this.sourcePaths[id], callback);
54
+ return true;
55
+ }
56
+ /**
57
+ * Load the JSON from source defined file
58
+ * @override
59
+ */
60
+ getConfiguration(id) {
61
+ this.sourcePaths[id] ??= this.getFilePath(id);
62
+ return FileUtils.load(this.sourcePaths[id]);
63
+ }
64
+ }
65
+ //# sourceMappingURL=fileconfiguration.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileconfiguration.service.js","sourceRoot":"","sources":["../../src/configurations/fileconfiguration.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAkC,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;;GAGG;AACH,MAAM,OAAO,wBAEX,SAAQ,oBAAuB;IAC/B,WAAW,GAA2B,EAAE,CAAC;IAEzC;;;;OAIG;IACH,WAAW,CAAC,EAAU;QACpB,mCAAmC;QACnC,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,oBAAoB,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,4BAA4B,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,2DAA2D;gBAC3D,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC;gBAC9D,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,4BAA4B,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,iCAAiC,CAAC,CAAC;YACvG,CAAC;QACH,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC7B,MAAM,IAAI,UAAU,CAAC,SAAS,CAC5B,mCAAmC,EACnC,gCAAgC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CACxD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,kCAAkC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC5E,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAU,EAAE,QAAoB,EAAE,YAAkB;QAC1E,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9C,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,EAAU;QACzB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9C,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;CACF"}
@@ -0,0 +1,43 @@
1
+ import { ConfigurationService, ConfigurationServiceParameters } from "./configuration.service.js";
2
+ /**
3
+ * Parameters for KubernetesConfigurationService
4
+ * Throw error if default is set
5
+ */
6
+ export declare class KubernetesConfigurationParameters extends ConfigurationServiceParameters {
7
+ /**
8
+ * Load parameters, rejecting any default configuration since Kubernetes sources are required
9
+ * @param params - the service parameters
10
+ * @returns the result
11
+ */
12
+ load(params: any): this;
13
+ }
14
+ /**
15
+ * Allow for dynamic configuration from ConfigMap or Secrets
16
+ *
17
+ * Read a ConfigMap from Kubernetes and auto-update
18
+ * @WebdaModda
19
+ */
20
+ export declare class KubernetesConfigurationService<T extends KubernetesConfigurationParameters = KubernetesConfigurationParameters> extends ConfigurationService<T> {
21
+ sourcePaths: Record<string, string>;
22
+ /**
23
+ * Resolve the Kubernetes-mounted file path for a configuration source
24
+ * @param id - the identifier
25
+ * @returns the result string
26
+ */
27
+ getFilePath(id: string): string;
28
+ /**
29
+ * Check if the configuration can be triggered
30
+ * @param id - the identifier
31
+ * @param callback - the callback function
32
+ * @returns true if the condition is met
33
+ */
34
+ canTriggerConfiguration(id: string, callback: () => void): boolean;
35
+ /**
36
+ * Load configuration from a ConfigMap or a Secret
37
+ * @override
38
+ */
39
+ getConfiguration(id: string): Promise<{
40
+ [key: string]: any;
41
+ }>;
42
+ }
43
+ //# sourceMappingURL=kubernetesconfiguration.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubernetesconfiguration.service.d.ts","sourceRoot":"","sources":["../../src/configurations/kubernetesconfiguration.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAGlG;;;GAGG;AACH,qBAAa,iCAAkC,SAAQ,8BAA8B;IACnF;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,GAAG,QAcf;CACF;AACD;;;;;GAKG;AACH,qBAAa,8BAA8B,CAEzC,CAAC,SAAS,iCAAiC,GAAG,iCAAiC,CAC/E,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAEzC;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAS9B;IAED;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAejE;IAED;;;OAGG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAalE;CACF"}
@@ -0,0 +1,83 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import * as WebdaError from "../errors/errors.js";
4
+ import { FileUtils } from "@webda/utils";
5
+ import { ConfigurationService, ConfigurationServiceParameters } from "./configuration.service.js";
6
+ import { useApplication } from "../application/hooks.js";
7
+ /**
8
+ * Parameters for KubernetesConfigurationService
9
+ * Throw error if default is set
10
+ */
11
+ export class KubernetesConfigurationParameters extends ConfigurationServiceParameters {
12
+ /**
13
+ * Load parameters, rejecting any default configuration since Kubernetes sources are required
14
+ * @param params - the service parameters
15
+ * @returns the result
16
+ */
17
+ load(params) {
18
+ super.load(params);
19
+ if (Object.keys(params.default?.services || {}).length ||
20
+ Object.keys(params.default?.application || {}).length ||
21
+ Object.keys(params.default?.parameters || {}).length) {
22
+ throw new WebdaError.CodeError("KUBE_CONFIGURATION_NO_DEFAULT", `KubernetesConfigurationService does not support default configuration ${params.default}`);
23
+ }
24
+ console.log(this.source, this.sources);
25
+ return this;
26
+ }
27
+ }
28
+ /**
29
+ * Allow for dynamic configuration from ConfigMap or Secrets
30
+ *
31
+ * Read a ConfigMap from Kubernetes and auto-update
32
+ * @WebdaModda
33
+ */
34
+ export class KubernetesConfigurationService extends ConfigurationService {
35
+ sourcePaths = {};
36
+ /**
37
+ * Resolve the Kubernetes-mounted file path for a configuration source
38
+ * @param id - the identifier
39
+ * @returns the result string
40
+ */
41
+ getFilePath(id) {
42
+ this.sourcePaths[id] ??= useApplication().getPath(id);
43
+ if (!fs.existsSync(this.sourcePaths[id])) {
44
+ throw new WebdaError.CodeError("KUBE_CONFIGURATION_SOURCE_MISSING", `Kubernetes configuration source not found: ${this.sourcePaths[id]}`);
45
+ }
46
+ return this.sourcePaths[id];
47
+ }
48
+ /**
49
+ * Check if the configuration can be triggered
50
+ * @param id - the identifier
51
+ * @param callback - the callback function
52
+ * @returns true if the condition is met
53
+ */
54
+ canTriggerConfiguration(id, callback) {
55
+ this.sourcePaths[id] ??= this.getFilePath(id);
56
+ console.log("canTriggerConfiguration", this.sourcePaths[id]);
57
+ if (!fs.existsSync(this.sourcePaths[id])) {
58
+ throw new WebdaError.CodeError("KUBE_CONFIGURATION_SOURCE_MISSING", `Kubernetes configuration source not found: ${this.sourcePaths[id]}`);
59
+ }
60
+ console.log("Watch", path.join(this.sourcePaths[id], "..data"));
61
+ fs.watchFile(path.join(this.sourcePaths[id], "..data"), { interval: 500 }, () => {
62
+ console.log("Configuration source changed", id, this.sourcePaths[id], Date.now());
63
+ callback();
64
+ });
65
+ return true;
66
+ }
67
+ /**
68
+ * Load configuration from a ConfigMap or a Secret
69
+ * @override
70
+ */
71
+ async getConfiguration(id) {
72
+ this.sourcePaths[id] ??= this.getFilePath(id);
73
+ const found = fs
74
+ .readdirSync(this.sourcePaths[id])
75
+ .filter(f => !f.startsWith(".") && f.match(/webda\.(jsonc?|ya?ml)$/i))
76
+ .pop();
77
+ if (!found) {
78
+ throw new WebdaError.CodeError("KUBE_CONFIGURATION_SOURCE_INVALID", `Kubernetes configuration source not valid: ${this.sourcePaths[id]}`);
79
+ }
80
+ return FileUtils.load(path.join(this.sourcePaths[id], found));
81
+ }
82
+ }
83
+ //# sourceMappingURL=kubernetesconfiguration.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kubernetesconfiguration.service.js","sourceRoot":"","sources":["../../src/configurations/kubernetesconfiguration.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { Context, IContextAware } from "./icontext.js";
2
+ /**
3
+ * Get current execution context
4
+ * @returns the result
5
+ */
6
+ export declare function useContext<T extends Context>(): T;
7
+ /**
8
+ * Shortcut to get the current user
9
+ * @returns the result
10
+ */
11
+ export declare function useCurrentUser(): Promise<any>;
12
+ /**
13
+ * Shortcut to get the current user id
14
+ * @returns the result
15
+ */
16
+ export declare function useCurrentUserId(): string;
17
+ /**
18
+ * Run this function as system
19
+ *
20
+ * @param run - the function to run
21
+ * @param attach - whether to attach to current context
22
+ * @returns the list of results
23
+ */
24
+ export declare function runAsSystem<T>(run: () => T, attach?: IContextAware[]): T;
25
+ /**
26
+ * Run this function as user
27
+ * @param context - the execution context
28
+ * @param run - the function to run
29
+ * @param attach - whether to attach to current context
30
+ * @returns the list of results
31
+ */
32
+ export declare function runWithContext<T>(context: Context, run: () => T, attach?: IContextAware[]): T;
33
+ //# sourceMappingURL=execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/contexts/execution.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAoB,MAAM,eAAe,CAAC;AAMzE;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,KAAK,CAAC,CAEjD;AAED;;;GAGG;AACH,wBAAgB,cAAc,iBAE7B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,WAE/B;AAcD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAE,aAAa,EAAO,GAAG,CAAC,CAE5E;AACD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAE,aAAa,EAAO,GAAG,CAAC,CAcjG"}
@@ -0,0 +1,73 @@
1
+ import { AsyncLocalStorage } from "node:async_hooks";
2
+ import { GlobalContext } from "./globalcontext.js";
3
+ import { setContextUpdate } from "./icontext.js";
4
+ const globalContext = new GlobalContext();
5
+ // Test are transpiling and creating several instances of 'instancestorage.ts'
6
+ process["webdaContexts"] ??= new AsyncLocalStorage();
7
+ const storage = process["webdaContexts"];
8
+ /**
9
+ * Get current execution context
10
+ * @returns the result
11
+ */
12
+ export function useContext() {
13
+ return (storage.getStore()?.context || globalContext);
14
+ }
15
+ /**
16
+ * Shortcut to get the current user
17
+ * @returns the result
18
+ */
19
+ export function useCurrentUser() {
20
+ return useContext().getCurrentUser();
21
+ }
22
+ /**
23
+ * Shortcut to get the current user id
24
+ * @returns the result
25
+ */
26
+ export function useCurrentUserId() {
27
+ return useContext().getCurrentUserId();
28
+ }
29
+ /**
30
+ * Used to update model context
31
+ *
32
+ * @param models - the models
33
+ * @param context - the execution context
34
+ */
35
+ function attachModels(models, context) {
36
+ setContextUpdate(true);
37
+ models.forEach(m => (m.context = context));
38
+ setContextUpdate(false);
39
+ }
40
+ /**
41
+ * Run this function as system
42
+ *
43
+ * @param run - the function to run
44
+ * @param attach - whether to attach to current context
45
+ * @returns the list of results
46
+ */
47
+ export function runAsSystem(run, attach = []) {
48
+ return this.runWithContext(globalContext, run, attach);
49
+ }
50
+ /**
51
+ * Run this function as user
52
+ * @param context - the execution context
53
+ * @param run - the function to run
54
+ * @param attach - whether to attach to current context
55
+ * @returns the list of results
56
+ */
57
+ export function runWithContext(context, run, attach = []) {
58
+ const previousContext = storage.getStore()?.context;
59
+ attachModels(attach, context);
60
+ const res = storage.run({ context, previousContext }, run);
61
+ // Manage both promise and normal
62
+ if (res instanceof Promise) {
63
+ // Return the .finally() promise so the rejection is not left dangling.
64
+ // Without this, .finally() creates a derived promise that rejects
65
+ // (when `run` rejects) with no handler, causing unhandled rejections.
66
+ return res.finally(() => attachModels(attach, undefined));
67
+ }
68
+ else {
69
+ attachModels(attach, undefined);
70
+ }
71
+ return res;
72
+ }
73
+ //# sourceMappingURL=execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/contexts/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAA0B,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEzE,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAC1C,8EAA8E;AAC9E,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,iBAAiB,EAAkD,CAAC;AACrG,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACzC;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,OAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,IAAI,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,UAAU,EAAE,CAAC,cAAc,EAAE,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,EAAE,CAAC,gBAAgB,EAAE,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,MAAa,EAAE,OAAgB;IACnD,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAC3C,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAI,GAAY,EAAE,MAAM,GAAoB,EAAE;IACvE,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AACD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAI,OAAgB,EAAE,GAAY,EAAE,MAAM,GAAoB,EAAE;IAC5F,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC;IACpD,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3D,iCAAiC;IACjC,IAAI,GAAG,YAAY,OAAO,EAAE,CAAC;QAC3B,uEAAuE;QACvE,kEAAkE;QAClE,sEAAsE;QACtE,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAM,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { Writable } from "stream";
2
+ import { Context } from "./icontext.js";
3
+ /**
4
+ * Global Context is used as system context
5
+ */
6
+ export declare class GlobalContext extends Context {
7
+ /**
8
+ * @override
9
+ */
10
+ getOutputStream(): Promise<Writable>;
11
+ /**
12
+ * @override
13
+ */
14
+ getCurrentUserId(): string;
15
+ /**
16
+ * @override
17
+ */
18
+ isGlobalContext(): boolean;
19
+ /**
20
+ * @override
21
+ */
22
+ getCurrentUser(): Promise<undefined>;
23
+ /**
24
+ * Provide an empty session object
25
+ * @returns the result
26
+ */
27
+ getSession(): {};
28
+ }
29
+ //# sourceMappingURL=globalcontext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalcontext.d.ts","sourceRoot":"","sources":["../../src/contexts/globalcontext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;GAEG;AACH,qBAAa,aAAc,SAAQ,OAAO;IACxC;;OAEG;IACH,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC,CAEnC;IAED;;OAEG;IACH,gBAAgB,IAAI,MAAM,CAEzB;IAED;;OAEG;IACH,eAAe,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,SAAS,CAAC,CAEnC;IAED;;;OAGG;IACH,UAAU,OAET;CACF"}
@@ -0,0 +1,38 @@
1
+ import { Context } from "./icontext.js";
2
+ /**
3
+ * Global Context is used as system context
4
+ */
5
+ export class GlobalContext extends Context {
6
+ /**
7
+ * @override
8
+ */
9
+ getOutputStream() {
10
+ throw new Error("You cannot write to a global context.");
11
+ }
12
+ /**
13
+ * @override
14
+ */
15
+ getCurrentUserId() {
16
+ return "system";
17
+ }
18
+ /**
19
+ * @override
20
+ */
21
+ isGlobalContext() {
22
+ return true;
23
+ }
24
+ /**
25
+ * @override
26
+ */
27
+ getCurrentUser() {
28
+ return undefined;
29
+ }
30
+ /**
31
+ * Provide an empty session object
32
+ * @returns the result
33
+ */
34
+ getSession() {
35
+ return {};
36
+ }
37
+ }
38
+ //# sourceMappingURL=globalcontext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalcontext.js","sourceRoot":"","sources":["../../src/contexts/globalcontext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO;IACxC;;OAEG;IACH,eAAe;QACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { IncomingHttpHeaders } from "http";
1
+ import { type IncomingHttpHeaders } from "http";
2
2
  import { Readable } from "stream";
3
3
  export type HttpMethodType = "GET" | "OPTIONS" | "POST" | "PUT" | "PATCH" | "DELETE";
4
4
  /**
@@ -49,21 +49,32 @@ export declare class HttpContext {
49
49
  * URI prefix in case it is exposed through something that prefix the uri
50
50
  */
51
51
  prefix: string;
52
+ /** Create a new HttpContext
53
+ * @param hostname - the request hostname
54
+ * @param method - the HTTP method
55
+ * @param uri - the request URI
56
+ * @param protocol - the protocol
57
+ * @param port - the port number
58
+ * @param headers - the request headers
59
+ */
52
60
  constructor(hostname: string, method: HttpMethodType, uri: string, protocol?: "http" | "https", port?: number | string, headers?: {
53
61
  [key: string]: string | string[];
54
62
  });
55
63
  /**
56
64
  * Set the client ip
65
+ * @param ip - the IP address
66
+ * @returns this for chaining
57
67
  */
58
68
  setClientIp(ip: string): this;
59
69
  /**
60
70
  * Get the client ip
71
+ * @returns the result string
61
72
  */
62
73
  getClientIp(): string;
63
74
  /**
64
75
  *
65
76
  * @see https://developer.mozilla.org/en-US/docs/Web/API/URL/href
66
- * @returns
77
+ * @returns the result string
67
78
  */
68
79
  getHref(): string;
69
80
  /**
@@ -73,51 +84,56 @@ export declare class HttpContext {
73
84
  setPrefix(prefix: string): void;
74
85
  /**
75
86
  * Return Uri without prefix
87
+ *
88
+ * The prefix is only removed on a path boundary, so prefix `/prod` does not strip `/production`
89
+ * @returns the result string
76
90
  */
77
91
  getRelativeUri(): string;
78
92
  /**
79
93
  * Get full URI
80
- * @returns
94
+ * @returns the result string
81
95
  */
82
96
  getUrl(): string;
83
97
  /**
84
98
  * Get cookies
85
- * @returns
99
+ * @returns the result
86
100
  */
87
101
  getCookies(): any;
88
102
  /**
89
103
  * Get port number as string
90
104
  *
91
105
  * If http on port 80, or https on port 443 will return ""
106
+ * @returns the result string
92
107
  */
93
108
  getPort(): string;
94
109
  /**
95
110
  * Get the port number
111
+ * @returns the result number
96
112
  */
97
113
  getPortNumber(): number;
98
114
  /**
99
115
  * Return hostname and port
100
- * @returns
116
+ * @returns the result string
101
117
  */
102
118
  getHost(): string;
103
119
  /**
104
120
  * Return protocol, hostname and port
105
- * @returns
121
+ * @returns the result string
106
122
  */
107
123
  getOrigin(): string;
108
124
  /**
109
125
  * Get the hostname
110
- * @returns
126
+ * @returns the result string
111
127
  */
112
128
  getHostName(): string;
113
129
  /**
114
130
  * Get HTTP Method used
115
- * @returns
131
+ * @returns the result
116
132
  */
117
133
  getMethod(): HttpMethodType;
118
134
  /**
119
135
  * Get protocol used
120
- * @returns
136
+ * @returns the result
121
137
  */
122
138
  getProtocol(): "http:" | "https:";
123
139
  /**
@@ -126,7 +142,7 @@ export declare class HttpContext {
126
142
  * @param limit the size of readable request
127
143
  * @param timeout the time to read the request
128
144
  * @param encoding to analyze
129
- * @returns
145
+ * @returns the result
130
146
  */
131
147
  getRawBodyAsString(limit?: number, timeout?: number, encoding?: string): Promise<string>;
132
148
  /**
@@ -134,52 +150,62 @@ export declare class HttpContext {
134
150
  *
135
151
  * @param limit the size of readable request
136
152
  * @param timeout the time to read the request
137
- * @returns
153
+ * @returns the result
138
154
  */
139
155
  getRawBody(limit?: number, timeout?: number): Promise<Buffer | undefined>;
140
156
  /**
141
157
  * Get the body as stream
158
+ * @returns the result
142
159
  */
143
160
  getRawStream(): Readable;
144
161
  /**
145
162
  * Get HTTP Headers
146
- * @returns
163
+ * @returns the result
147
164
  */
148
165
  getHeaders(): Readonly<IncomingHttpHeaders>;
149
166
  /**
150
167
  * Get header value
151
- * @param name
152
- * @param def
153
- * @returns
168
+ * @param name - the name to use
169
+ * @param def - the default value
170
+ * @returns the list of results
154
171
  */
155
172
  getHeader(name: string, def?: string): string | string[];
156
173
  /**
157
174
  * Return the last header found with that name
175
+ * @param name - the name to use
176
+ * @param def - the default value
177
+ * @returns the result string
158
178
  */
159
179
  getUniqueHeader(name: string, def?: string): string;
160
180
  /**
161
181
  * Used for test
162
- * @param body
182
+ * @param body - the request body
183
+ * @returns this for chaining
163
184
  */
164
185
  setBody(body: Buffer | string | Readable | any): this;
165
186
  /**
166
187
  * Get request path name
167
188
  *
168
189
  * @see https://developer.mozilla.org/en-US/docs/Web/API/URL/pathname
169
- * @returns
190
+ * @returns the result
170
191
  */
171
192
  getPathName(): string;
172
193
  /**
173
194
  * Get search section
174
195
  *
175
196
  * @see https://developer.mozilla.org/en-US/docs/Web/API/URL/search
176
- * @returns
197
+ * @returns the result
177
198
  */
178
199
  getSearch(): string;
179
200
  /**
201
+ * Return the absolute url of the request, or of an application uri
202
+ *
203
+ * An application uri is relative to the prefix, so the prefix is added to it
180
204
  *
181
- * @param uri to return absolute url from
205
+ * @param uri to return absolute url from, the request uri by default
206
+ * @returns the result string
182
207
  */
183
208
  getAbsoluteUrl(uri?: string): string;
184
209
  }
185
210
  export {};
211
+ //# sourceMappingURL=httpcontext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpcontext.d.ts","sourceRoot":"","sources":["../../src/contexts/httpcontext.ts"],"names":[],"mappings":"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"}