@webda/core 4.0.0-beta.2 → 4.0.0-beta.4

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 (793) hide show
  1. package/README.md +252 -0
  2. package/lib/application/application.d.ts +468 -0
  3. package/lib/application/application.d.ts.map +1 -0
  4. package/lib/application/application.js +845 -0
  5. package/lib/application/application.js.map +1 -0
  6. package/lib/application/deployment.d.ts +93 -0
  7. package/lib/application/deployment.d.ts.map +1 -0
  8. package/lib/application/deployment.js +99 -0
  9. package/lib/application/deployment.js.map +1 -0
  10. package/lib/application/hooks.d.ts +34 -0
  11. package/lib/application/hooks.d.ts.map +1 -0
  12. package/lib/application/hooks.js +57 -0
  13. package/lib/application/hooks.js.map +1 -0
  14. package/lib/application/iapplication.d.ts +43 -0
  15. package/lib/application/iapplication.d.ts.map +1 -0
  16. package/lib/application/iapplication.js +2 -0
  17. package/lib/application/iapplication.js.map +1 -0
  18. package/lib/application/iconfiguration.d.ts +176 -0
  19. package/lib/application/iconfiguration.d.ts.map +1 -0
  20. package/lib/application/iconfiguration.js +8 -0
  21. package/lib/application/iconfiguration.js.map +1 -0
  22. package/lib/application/runner.d.ts +8 -0
  23. package/lib/application/runner.d.ts.map +1 -0
  24. package/lib/application/runner.js +26 -0
  25. package/lib/application/runner.js.map +1 -0
  26. package/lib/{unpackedapplication.d.ts → application/unpackedapplication.d.ts} +43 -23
  27. package/lib/application/unpackedapplication.d.ts.map +1 -0
  28. package/lib/application/unpackedapplication.js +500 -0
  29. package/lib/application/unpackedapplication.js.map +1 -0
  30. package/lib/bin/cli-phase.d.ts +28 -0
  31. package/lib/bin/cli-phase.d.ts.map +1 -0
  32. package/lib/bin/cli-phase.js +44 -0
  33. package/lib/bin/cli-phase.js.map +1 -0
  34. package/lib/bin/cli.d.ts +196 -0
  35. package/lib/bin/cli.d.ts.map +1 -0
  36. package/lib/bin/cli.js +934 -0
  37. package/lib/bin/cli.js.map +1 -0
  38. package/lib/bin/launcher.d.ts +3 -0
  39. package/lib/bin/launcher.d.ts.map +1 -0
  40. package/lib/bin/launcher.js +50 -0
  41. package/lib/bin/launcher.js.map +1 -0
  42. package/lib/cache/cache.d.ts +33 -0
  43. package/lib/cache/cache.d.ts.map +1 -0
  44. package/lib/cache/cache.js +8 -0
  45. package/lib/cache/cache.js.map +1 -0
  46. package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -58
  47. package/lib/configurations/configuration.service.d.ts.map +1 -0
  48. package/lib/configurations/configuration.service.js +248 -0
  49. package/lib/configurations/configuration.service.js.map +1 -0
  50. package/lib/configurations/fileconfiguration.service.d.ts +30 -0
  51. package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
  52. package/lib/configurations/fileconfiguration.service.js +65 -0
  53. package/lib/configurations/fileconfiguration.service.js.map +1 -0
  54. package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
  55. package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
  56. package/lib/configurations/kubernetesconfiguration.service.js +83 -0
  57. package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
  58. package/lib/contexts/execution.d.ts +33 -0
  59. package/lib/contexts/execution.d.ts.map +1 -0
  60. package/lib/contexts/execution.js +73 -0
  61. package/lib/contexts/execution.js.map +1 -0
  62. package/lib/contexts/globalcontext.d.ts +29 -0
  63. package/lib/contexts/globalcontext.d.ts.map +1 -0
  64. package/lib/contexts/globalcontext.js +38 -0
  65. package/lib/contexts/globalcontext.js.map +1 -0
  66. package/lib/{utils → contexts}/httpcontext.d.ts +44 -19
  67. package/lib/contexts/httpcontext.d.ts.map +1 -0
  68. package/lib/{utils → contexts}/httpcontext.js +95 -27
  69. package/lib/contexts/httpcontext.js.map +1 -0
  70. package/lib/contexts/icontext.d.ts +236 -0
  71. package/lib/contexts/icontext.d.ts.map +1 -0
  72. package/lib/contexts/icontext.js +230 -0
  73. package/lib/contexts/icontext.js.map +1 -0
  74. package/lib/contexts/operationcontext.d.ts +182 -0
  75. package/lib/contexts/operationcontext.d.ts.map +1 -0
  76. package/lib/contexts/operationcontext.js +361 -0
  77. package/lib/contexts/operationcontext.js.map +1 -0
  78. package/lib/contexts/simplecontext.d.ts +31 -0
  79. package/lib/contexts/simplecontext.d.ts.map +1 -0
  80. package/lib/contexts/simplecontext.js +45 -0
  81. package/lib/contexts/simplecontext.js.map +1 -0
  82. package/lib/contexts/webcontext.d.ts +218 -0
  83. package/lib/contexts/webcontext.d.ts.map +1 -0
  84. package/lib/contexts/webcontext.js +389 -0
  85. package/lib/contexts/webcontext.js.map +1 -0
  86. package/lib/core/authorizer.d.ts +23 -0
  87. package/lib/core/authorizer.d.ts.map +1 -0
  88. package/lib/core/authorizer.js +17 -0
  89. package/lib/core/authorizer.js.map +1 -0
  90. package/lib/core/core.d.ts +225 -0
  91. package/lib/core/core.d.ts.map +1 -0
  92. package/lib/core/core.js +576 -0
  93. package/lib/core/core.js.map +1 -0
  94. package/lib/core/hooks.d.ts +94 -0
  95. package/lib/core/hooks.d.ts.map +1 -0
  96. package/lib/core/hooks.js +97 -0
  97. package/lib/core/hooks.js.map +1 -0
  98. package/lib/core/icore.d.ts +249 -0
  99. package/lib/core/icore.d.ts.map +1 -0
  100. package/lib/core/icore.js +15 -0
  101. package/lib/core/icore.js.map +1 -0
  102. package/lib/core/instancestorage.d.ts +61 -0
  103. package/lib/core/instancestorage.d.ts.map +1 -0
  104. package/lib/core/instancestorage.js +75 -0
  105. package/lib/core/instancestorage.js.map +1 -0
  106. package/lib/core/operations.d.ts +181 -0
  107. package/lib/core/operations.d.ts.map +1 -0
  108. package/lib/core/operations.js +559 -0
  109. package/lib/core/operations.js.map +1 -0
  110. package/lib/deployers/deployer.d.ts +157 -0
  111. package/lib/deployers/deployer.d.ts.map +1 -0
  112. package/lib/deployers/deployer.js +81 -0
  113. package/lib/deployers/deployer.js.map +1 -0
  114. package/lib/deployers/git.d.ts +27 -0
  115. package/lib/deployers/git.d.ts.map +1 -0
  116. package/lib/deployers/git.js +66 -0
  117. package/lib/deployers/git.js.map +1 -0
  118. package/lib/deployers/packager.d.ts +85 -0
  119. package/lib/deployers/packager.d.ts.map +1 -0
  120. package/lib/deployers/packager.js +259 -0
  121. package/lib/deployers/packager.js.map +1 -0
  122. package/lib/errors/errors.d.ts +126 -0
  123. package/lib/errors/errors.d.ts.map +1 -0
  124. package/lib/errors/errors.js +165 -0
  125. package/lib/errors/errors.js.map +1 -0
  126. package/lib/events/asynceventemitter.d.ts +159 -0
  127. package/lib/events/asynceventemitter.d.ts.map +1 -0
  128. package/lib/events/asynceventemitter.js +152 -0
  129. package/lib/events/asynceventemitter.js.map +1 -0
  130. package/lib/events/events.d.ts +112 -0
  131. package/lib/events/events.d.ts.map +1 -0
  132. package/lib/events/events.js +45 -0
  133. package/lib/events/events.js.map +1 -0
  134. package/lib/index.d.ts +88 -54
  135. package/lib/index.d.ts.map +1 -1
  136. package/lib/index.js +88 -64
  137. package/lib/index.js.map +1 -1
  138. package/lib/loggers/console.service.d.ts +24 -0
  139. package/lib/loggers/console.service.d.ts.map +1 -0
  140. package/lib/loggers/console.service.js +30 -0
  141. package/lib/loggers/console.service.js.map +1 -0
  142. package/lib/loggers/file.service.d.ts +25 -0
  143. package/lib/loggers/file.service.d.ts.map +1 -0
  144. package/lib/loggers/file.service.js +33 -0
  145. package/lib/loggers/file.service.js.map +1 -0
  146. package/lib/loggers/hooks.d.ts +20 -0
  147. package/lib/loggers/hooks.d.ts.map +1 -0
  148. package/lib/loggers/hooks.js +40 -0
  149. package/lib/loggers/hooks.js.map +1 -0
  150. package/lib/loggers/ilogger.d.ts +76 -0
  151. package/lib/loggers/ilogger.d.ts.map +1 -0
  152. package/lib/loggers/ilogger.js +108 -0
  153. package/lib/loggers/ilogger.js.map +1 -0
  154. package/lib/loggers/logger.d.ts +13 -0
  155. package/lib/loggers/logger.d.ts.map +1 -0
  156. package/lib/loggers/logger.js +18 -0
  157. package/lib/loggers/logger.js.map +1 -0
  158. package/lib/loggers/memory.service.d.ts +18 -0
  159. package/lib/loggers/memory.service.d.ts.map +1 -0
  160. package/lib/loggers/memory.service.js +21 -0
  161. package/lib/loggers/memory.service.js.map +1 -0
  162. package/lib/loggers/params.d.ts +47 -0
  163. package/lib/loggers/params.d.ts.map +1 -0
  164. package/lib/loggers/params.js +56 -0
  165. package/lib/loggers/params.js.map +1 -0
  166. package/lib/metrics/metrics.d.ts +25 -0
  167. package/lib/metrics/metrics.d.ts.map +1 -0
  168. package/lib/metrics/metrics.js +51 -0
  169. package/lib/metrics/metrics.js.map +1 -0
  170. package/lib/models/aclmodel.d.ts +20 -76
  171. package/lib/models/aclmodel.d.ts.map +1 -1
  172. package/lib/models/aclmodel.js +27 -203
  173. package/lib/models/aclmodel.js.map +1 -1
  174. package/lib/models/coremodel.model.d.ts +5 -0
  175. package/lib/models/coremodel.model.d.ts.map +1 -0
  176. package/lib/models/coremodel.model.js +5 -0
  177. package/lib/models/coremodel.model.js.map +1 -0
  178. package/lib/models/decorator.d.ts +67 -0
  179. package/lib/models/decorator.d.ts.map +1 -0
  180. package/lib/models/decorator.js +67 -0
  181. package/lib/models/decorator.js.map +1 -0
  182. package/lib/models/deployment.d.ts +2 -21
  183. package/lib/models/deployment.d.ts.map +1 -1
  184. package/lib/models/encrypted.model.d.ts +46 -0
  185. package/lib/models/encrypted.model.d.ts.map +1 -0
  186. package/lib/models/encrypted.model.js +87 -0
  187. package/lib/models/encrypted.model.js.map +1 -0
  188. package/lib/models/ident.model.d.ts +128 -0
  189. package/lib/models/ident.model.d.ts.map +1 -0
  190. package/lib/models/ident.model.js +207 -0
  191. package/lib/models/ident.model.js.map +1 -0
  192. package/lib/models/ownermodel.model.d.ts +68 -0
  193. package/lib/models/ownermodel.model.d.ts.map +1 -0
  194. package/lib/models/ownermodel.model.js +113 -0
  195. package/lib/models/ownermodel.model.js.map +1 -0
  196. package/lib/models/password.model.d.ts +78 -0
  197. package/lib/models/password.model.d.ts.map +1 -0
  198. package/lib/models/password.model.js +171 -0
  199. package/lib/models/password.model.js.map +1 -0
  200. package/lib/models/refreshtoken.model.d.ts +30 -0
  201. package/lib/models/refreshtoken.model.d.ts.map +1 -0
  202. package/lib/models/refreshtoken.model.js +29 -0
  203. package/lib/models/refreshtoken.model.js.map +1 -0
  204. package/lib/models/registry.model.d.ts +76 -0
  205. package/lib/models/registry.model.d.ts.map +1 -0
  206. package/lib/models/registry.model.js +104 -0
  207. package/lib/models/registry.model.js.map +1 -0
  208. package/lib/models/rolemodel.model.d.ts +28 -0
  209. package/lib/models/rolemodel.model.d.ts.map +1 -0
  210. package/lib/models/{rolemodel.js → rolemodel.model.js} +23 -5
  211. package/lib/models/rolemodel.model.js.map +1 -0
  212. package/lib/models/simpleuser.model.d.ts +78 -0
  213. package/lib/models/simpleuser.model.d.ts.map +1 -0
  214. package/lib/models/simpleuser.model.js +124 -0
  215. package/lib/models/simpleuser.model.js.map +1 -0
  216. package/lib/models/types.d.ts +113 -0
  217. package/lib/models/types.d.ts.map +1 -0
  218. package/lib/models/types.js +2 -0
  219. package/lib/models/types.js.map +1 -0
  220. package/lib/models/user.model.d.ts +103 -0
  221. package/lib/models/user.model.d.ts.map +1 -0
  222. package/lib/models/user.model.js +164 -0
  223. package/lib/models/user.model.js.map +1 -0
  224. package/lib/queues/{memoryqueue.d.ts → memoryqueue.service.d.ts} +26 -13
  225. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  226. package/lib/queues/{memoryqueue.js → memoryqueue.service.js} +55 -31
  227. package/lib/queues/memoryqueue.service.js.map +1 -0
  228. package/lib/queues/pubsubservice.d.ts +8 -6
  229. package/lib/queues/pubsubservice.d.ts.map +1 -1
  230. package/lib/queues/pubsubservice.js +5 -4
  231. package/lib/queues/pubsubservice.js.map +1 -1
  232. package/lib/queues/queueservice.d.ts +9 -11
  233. package/lib/queues/queueservice.d.ts.map +1 -1
  234. package/lib/queues/queueservice.js +41 -13
  235. package/lib/queues/queueservice.js.map +1 -1
  236. package/lib/rest/hooks.d.ts +8 -0
  237. package/lib/rest/hooks.d.ts.map +1 -0
  238. package/lib/rest/hooks.js +10 -0
  239. package/lib/rest/hooks.js.map +1 -0
  240. package/lib/rest/irest.d.ts +212 -0
  241. package/lib/rest/irest.d.ts.map +1 -0
  242. package/lib/rest/irest.js +39 -0
  243. package/lib/rest/irest.js.map +1 -0
  244. package/lib/rest/originfilter.d.ts +38 -0
  245. package/lib/rest/originfilter.d.ts.map +1 -0
  246. package/lib/rest/originfilter.js +61 -0
  247. package/lib/rest/originfilter.js.map +1 -0
  248. package/lib/rest/restoperationstransport.service.d.ts +193 -0
  249. package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
  250. package/lib/rest/restoperationstransport.service.js +780 -0
  251. package/lib/rest/restoperationstransport.service.js.map +1 -0
  252. package/lib/rest/router.service.d.ts +244 -0
  253. package/lib/rest/router.service.d.ts.map +1 -0
  254. package/lib/rest/router.service.js +843 -0
  255. package/lib/rest/router.service.js.map +1 -0
  256. package/lib/schemas/hooks.d.ts +48 -0
  257. package/lib/schemas/hooks.d.ts.map +1 -0
  258. package/lib/schemas/hooks.js +152 -0
  259. package/lib/schemas/hooks.js.map +1 -0
  260. package/lib/services/audit.model.d.ts +208 -0
  261. package/lib/services/audit.model.d.ts.map +1 -0
  262. package/lib/services/audit.model.js +432 -0
  263. package/lib/services/audit.model.js.map +1 -0
  264. package/lib/services/binary.service.d.ts +808 -0
  265. package/lib/services/binary.service.d.ts.map +1 -0
  266. package/lib/services/binary.service.js +1365 -0
  267. package/lib/services/binary.service.js.map +1 -0
  268. package/lib/services/cloudbinary.d.ts +17 -12
  269. package/lib/services/cloudbinary.d.ts.map +1 -1
  270. package/lib/services/cloudbinary.js +23 -17
  271. package/lib/services/cloudbinary.js.map +1 -1
  272. package/lib/services/command.d.ts +118 -0
  273. package/lib/services/command.d.ts.map +1 -0
  274. package/lib/services/command.js +97 -0
  275. package/lib/services/command.js.map +1 -0
  276. package/lib/services/cron.service.d.ts +142 -0
  277. package/lib/services/cron.service.d.ts.map +1 -0
  278. package/lib/services/cron.service.js +291 -0
  279. package/lib/services/cron.service.js.map +1 -0
  280. package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +75 -141
  281. package/lib/services/cryptoservice.service.d.ts.map +1 -0
  282. package/lib/services/cryptoservice.service.js +527 -0
  283. package/lib/services/cryptoservice.service.js.map +1 -0
  284. package/lib/services/debugmailer.service.d.ts +49 -0
  285. package/lib/services/debugmailer.service.d.ts.map +1 -0
  286. package/lib/services/{debugmailer.js → debugmailer.service.js} +25 -10
  287. package/lib/services/debugmailer.service.js.map +1 -0
  288. package/lib/services/domainservice.service.d.ts +242 -0
  289. package/lib/services/domainservice.service.d.ts.map +1 -0
  290. package/lib/services/domainservice.service.js +676 -0
  291. package/lib/services/domainservice.service.js.map +1 -0
  292. package/lib/services/httpserver.service.d.ts +248 -0
  293. package/lib/services/httpserver.service.d.ts.map +1 -0
  294. package/lib/services/httpserver.service.js +673 -0
  295. package/lib/services/httpserver.service.js.map +1 -0
  296. package/lib/services/iauthentication.d.ts +202 -0
  297. package/lib/services/iauthentication.d.ts.map +1 -0
  298. package/lib/services/iauthentication.js +2 -0
  299. package/lib/services/iauthentication.js.map +1 -0
  300. package/lib/services/icryptoservice.d.ts +127 -0
  301. package/lib/services/icryptoservice.d.ts.map +1 -0
  302. package/lib/services/icryptoservice.js +68 -0
  303. package/lib/services/icryptoservice.js.map +1 -0
  304. package/lib/services/imailer.d.ts +17 -0
  305. package/lib/services/imailer.d.ts.map +1 -0
  306. package/lib/services/imailer.js +2 -0
  307. package/lib/services/imailer.js.map +1 -0
  308. package/lib/services/iservice.d.ts +104 -0
  309. package/lib/services/iservice.d.ts.map +1 -0
  310. package/lib/services/iservice.js +63 -0
  311. package/lib/services/iservice.js.map +1 -0
  312. package/lib/services/mailer.service.d.ts +220 -0
  313. package/lib/services/mailer.service.d.ts.map +1 -0
  314. package/lib/services/mailer.service.js +251 -0
  315. package/lib/services/mailer.service.js.map +1 -0
  316. package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -11
  317. package/lib/services/notificationservice.service.d.ts.map +1 -0
  318. package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
  319. package/lib/services/notificationservice.service.js.map +1 -0
  320. package/lib/services/operationstransport.d.ts +65 -0
  321. package/lib/services/operationstransport.d.ts.map +1 -0
  322. package/lib/services/operationstransport.js +103 -0
  323. package/lib/services/operationstransport.js.map +1 -0
  324. package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -12
  325. package/lib/services/prometheus.service.d.ts.map +1 -0
  326. package/lib/services/prometheus.service.js +203 -0
  327. package/lib/services/prometheus.service.js.map +1 -0
  328. package/lib/services/{resource.d.ts → resource.service.d.ts} +34 -15
  329. package/lib/services/resource.service.d.ts.map +1 -0
  330. package/lib/services/resource.service.js +301 -0
  331. package/lib/services/resource.service.js.map +1 -0
  332. package/lib/services/service.d.ts +87 -188
  333. package/lib/services/service.d.ts.map +1 -1
  334. package/lib/services/service.js +407 -422
  335. package/lib/services/service.js.map +1 -1
  336. package/lib/services/servicecommands.d.ts +99 -0
  337. package/lib/services/servicecommands.d.ts.map +1 -0
  338. package/lib/services/servicecommands.js +171 -0
  339. package/lib/services/servicecommands.js.map +1 -0
  340. package/lib/services/serviceparameters.d.ts +33 -0
  341. package/lib/services/serviceparameters.d.ts.map +1 -0
  342. package/lib/services/serviceparameters.js +79 -0
  343. package/lib/services/serviceparameters.js.map +1 -0
  344. package/lib/services/token.service.d.ts +95 -0
  345. package/lib/services/token.service.d.ts.map +1 -0
  346. package/lib/services/token.service.js +182 -0
  347. package/lib/services/token.service.js.map +1 -0
  348. package/lib/{utils → session}/cookie.d.ts +32 -19
  349. package/lib/session/cookie.d.ts.map +1 -0
  350. package/lib/{utils → session}/cookie.js +76 -23
  351. package/lib/session/cookie.js.map +1 -0
  352. package/lib/session/manager.model.d.ts +87 -0
  353. package/lib/session/manager.model.d.ts.map +1 -0
  354. package/lib/session/manager.model.js +212 -0
  355. package/lib/session/manager.model.js.map +1 -0
  356. package/lib/session/session.d.ts +100 -0
  357. package/lib/session/session.d.ts.map +1 -0
  358. package/lib/session/session.js +175 -0
  359. package/lib/session/session.js.map +1 -0
  360. package/lib/stores/istore.d.ts +99 -0
  361. package/lib/stores/istore.d.ts.map +1 -0
  362. package/lib/stores/istore.js +26 -0
  363. package/lib/stores/istore.js.map +1 -0
  364. package/lib/stores/memory.service.d.ts +114 -0
  365. package/lib/stores/memory.service.d.ts.map +1 -0
  366. package/lib/stores/memory.service.js +344 -0
  367. package/lib/stores/memory.service.js.map +1 -0
  368. package/lib/stores/store.d.ts +126 -626
  369. package/lib/stores/store.d.ts.map +1 -1
  370. package/lib/stores/store.js +257 -1117
  371. package/lib/stores/store.js.map +1 -1
  372. package/lib/templates/templates.d.ts +47 -0
  373. package/lib/templates/templates.d.ts.map +1 -0
  374. package/lib/templates/templates.js +101 -0
  375. package/lib/templates/templates.js.map +1 -0
  376. package/lib/test/application.d.ts +174 -0
  377. package/lib/test/application.d.ts.map +1 -0
  378. package/lib/test/application.js +288 -0
  379. package/lib/test/application.js.map +1 -0
  380. package/lib/test/asyncstorage.d.ts +16 -0
  381. package/lib/test/asyncstorage.d.ts.map +1 -0
  382. package/lib/test/asyncstorage.js +32 -0
  383. package/lib/test/asyncstorage.js.map +1 -0
  384. package/lib/test/behavior-fixture.model.d.ts +30 -0
  385. package/lib/test/behavior-fixture.model.d.ts.map +1 -0
  386. package/lib/test/behavior-fixture.model.js +63 -0
  387. package/lib/test/behavior-fixture.model.js.map +1 -0
  388. package/lib/test/core.d.ts +63 -0
  389. package/lib/test/core.d.ts.map +1 -0
  390. package/lib/test/core.js +190 -0
  391. package/lib/test/core.js.map +1 -0
  392. package/lib/test/index.d.ts +7 -0
  393. package/lib/test/index.d.ts.map +1 -0
  394. package/lib/test/index.js +8 -0
  395. package/lib/test/index.js.map +1 -0
  396. package/lib/test/internal.d.ts +34 -0
  397. package/lib/test/internal.d.ts.map +1 -0
  398. package/lib/test/internal.js +156 -0
  399. package/lib/test/internal.js.map +1 -0
  400. package/lib/test/legacyident.fixture.model.d.ts +98 -0
  401. package/lib/test/legacyident.fixture.model.d.ts.map +1 -0
  402. package/lib/test/legacyident.fixture.model.js +125 -0
  403. package/lib/test/legacyident.fixture.model.js.map +1 -0
  404. package/lib/test/objects.d.ts +318 -0
  405. package/lib/test/objects.d.ts.map +1 -0
  406. package/lib/test/objects.js +443 -0
  407. package/lib/test/objects.js.map +1 -0
  408. package/lib/utils/abstractdeployer.d.ts +4 -2
  409. package/lib/utils/abstractdeployer.d.ts.map +1 -1
  410. package/lib/utils/abstractdeployer.js +3 -0
  411. package/lib/utils/abstractdeployer.js.map +1 -1
  412. package/package.json +102 -60
  413. package/test/cachedapp/webda.config.json +1 -5
  414. package/test/config-cached.json +3 -6
  415. package/test/config.json +3 -10
  416. package/test/my-cnf.json +9 -0
  417. package/webda.module.json +3755 -2496
  418. package/lib/application.d.ts +0 -888
  419. package/lib/application.d.ts.map +0 -1
  420. package/lib/application.js +0 -768
  421. package/lib/application.js.map +0 -1
  422. package/lib/application.spec.d.ts +0 -2
  423. package/lib/application.spec.d.ts.map +0 -1
  424. package/lib/application.spec.js +0 -248
  425. package/lib/application.spec.js.map +0 -1
  426. package/lib/core.d.ts +0 -743
  427. package/lib/core.d.ts.map +0 -1
  428. package/lib/core.js +0 -1334
  429. package/lib/core.js.map +0 -1
  430. package/lib/core.spec.d.ts +0 -2
  431. package/lib/core.spec.d.ts.map +0 -1
  432. package/lib/core.spec.js +0 -790
  433. package/lib/core.spec.js.map +0 -1
  434. package/lib/errors.d.ts +0 -64
  435. package/lib/errors.d.ts.map +0 -1
  436. package/lib/errors.js +0 -97
  437. package/lib/errors.js.map +0 -1
  438. package/lib/errors.spec.d.ts +0 -2
  439. package/lib/errors.spec.d.ts.map +0 -1
  440. package/lib/errors.spec.js +0 -33
  441. package/lib/errors.spec.js.map +0 -1
  442. package/lib/models/aclmodel.spec.d.ts +0 -2
  443. package/lib/models/aclmodel.spec.d.ts.map +0 -1
  444. package/lib/models/aclmodel.spec.js +0 -187
  445. package/lib/models/aclmodel.spec.js.map +0 -1
  446. package/lib/models/coremodel.d.ts +0 -896
  447. package/lib/models/coremodel.d.ts.map +0 -1
  448. package/lib/models/coremodel.js +0 -1214
  449. package/lib/models/coremodel.js.map +0 -1
  450. package/lib/models/coremodel.spec.d.ts +0 -2
  451. package/lib/models/coremodel.spec.d.ts.map +0 -1
  452. package/lib/models/coremodel.spec.js +0 -464
  453. package/lib/models/coremodel.spec.js.map +0 -1
  454. package/lib/models/ident.d.ts +0 -68
  455. package/lib/models/ident.d.ts.map +0 -1
  456. package/lib/models/ident.js +0 -26
  457. package/lib/models/ident.js.map +0 -1
  458. package/lib/models/ident.spec.d.ts +0 -2
  459. package/lib/models/ident.spec.d.ts.map +0 -1
  460. package/lib/models/ident.spec.js +0 -24
  461. package/lib/models/ident.spec.js.map +0 -1
  462. package/lib/models/ownermodel.d.ts +0 -51
  463. package/lib/models/ownermodel.d.ts.map +0 -1
  464. package/lib/models/ownermodel.js +0 -65
  465. package/lib/models/ownermodel.js.map +0 -1
  466. package/lib/models/ownermodel.spec.d.ts +0 -2
  467. package/lib/models/ownermodel.spec.d.ts.map +0 -1
  468. package/lib/models/ownermodel.spec.js +0 -215
  469. package/lib/models/ownermodel.spec.js.map +0 -1
  470. package/lib/models/relations.d.ts +0 -182
  471. package/lib/models/relations.d.ts.map +0 -1
  472. package/lib/models/relations.js +0 -157
  473. package/lib/models/relations.js.map +0 -1
  474. package/lib/models/relations.spec.d.ts +0 -14
  475. package/lib/models/relations.spec.d.ts.map +0 -1
  476. package/lib/models/relations.spec.js +0 -217
  477. package/lib/models/relations.spec.js.map +0 -1
  478. package/lib/models/rolemodel.d.ts +0 -11
  479. package/lib/models/rolemodel.d.ts.map +0 -1
  480. package/lib/models/rolemodel.js.map +0 -1
  481. package/lib/models/rolemodel.spec.d.ts +0 -2
  482. package/lib/models/rolemodel.spec.d.ts.map +0 -1
  483. package/lib/models/rolemodel.spec.js +0 -90
  484. package/lib/models/rolemodel.spec.js.map +0 -1
  485. package/lib/models/simpleuser.d.ts +0 -47
  486. package/lib/models/simpleuser.d.ts.map +0 -1
  487. package/lib/models/simpleuser.js +0 -84
  488. package/lib/models/simpleuser.js.map +0 -1
  489. package/lib/models/test.d.ts +0 -11
  490. package/lib/models/test.d.ts.map +0 -1
  491. package/lib/models/test.js +0 -7
  492. package/lib/models/test.js.map +0 -1
  493. package/lib/models/user.d.ts +0 -67
  494. package/lib/models/user.d.ts.map +0 -1
  495. package/lib/models/user.js +0 -86
  496. package/lib/models/user.js.map +0 -1
  497. package/lib/models/user.spec.d.ts +0 -2
  498. package/lib/models/user.spec.d.ts.map +0 -1
  499. package/lib/models/user.spec.js +0 -89
  500. package/lib/models/user.spec.js.map +0 -1
  501. package/lib/queues/filequeue.d.ts +0 -59
  502. package/lib/queues/filequeue.d.ts.map +0 -1
  503. package/lib/queues/filequeue.js +0 -131
  504. package/lib/queues/filequeue.js.map +0 -1
  505. package/lib/queues/filequeue.spec.d.ts +0 -2
  506. package/lib/queues/filequeue.spec.d.ts.map +0 -1
  507. package/lib/queues/filequeue.spec.js +0 -84
  508. package/lib/queues/filequeue.spec.js.map +0 -1
  509. package/lib/queues/memoryqueue.d.ts.map +0 -1
  510. package/lib/queues/memoryqueue.js.map +0 -1
  511. package/lib/queues/memoryqueue.spec.d.ts +0 -2
  512. package/lib/queues/memoryqueue.spec.d.ts.map +0 -1
  513. package/lib/queues/memoryqueue.spec.js +0 -203
  514. package/lib/queues/memoryqueue.spec.js.map +0 -1
  515. package/lib/queues/queue.spec.d.ts +0 -6
  516. package/lib/queues/queue.spec.d.ts.map +0 -1
  517. package/lib/queues/queue.spec.js +0 -55
  518. package/lib/queues/queue.spec.js.map +0 -1
  519. package/lib/rest/restdomainservice.d.ts +0 -63
  520. package/lib/rest/restdomainservice.d.ts.map +0 -1
  521. package/lib/rest/restdomainservice.js +0 -687
  522. package/lib/rest/restdomainservice.js.map +0 -1
  523. package/lib/rest/restdomainservice.spec.d.ts +0 -2
  524. package/lib/rest/restdomainservice.spec.d.ts.map +0 -1
  525. package/lib/rest/restdomainservice.spec.js +0 -124
  526. package/lib/rest/restdomainservice.spec.js.map +0 -1
  527. package/lib/rest/router.d.ts +0 -174
  528. package/lib/rest/router.d.ts.map +0 -1
  529. package/lib/rest/router.js +0 -429
  530. package/lib/rest/router.js.map +0 -1
  531. package/lib/rest/router.spec.d.ts +0 -2
  532. package/lib/rest/router.spec.d.ts.map +0 -1
  533. package/lib/rest/router.spec.js +0 -255
  534. package/lib/rest/router.spec.js.map +0 -1
  535. package/lib/services/asyncevents.d.ts +0 -152
  536. package/lib/services/asyncevents.d.ts.map +0 -1
  537. package/lib/services/asyncevents.js +0 -217
  538. package/lib/services/asyncevents.js.map +0 -1
  539. package/lib/services/asyncevents.spec.d.ts +0 -2
  540. package/lib/services/asyncevents.spec.d.ts.map +0 -1
  541. package/lib/services/asyncevents.spec.js +0 -118
  542. package/lib/services/asyncevents.spec.js.map +0 -1
  543. package/lib/services/authentication.d.ts +0 -361
  544. package/lib/services/authentication.d.ts.map +0 -1
  545. package/lib/services/authentication.js +0 -773
  546. package/lib/services/authentication.js.map +0 -1
  547. package/lib/services/authentication.spec.d.ts +0 -2
  548. package/lib/services/authentication.spec.d.ts.map +0 -1
  549. package/lib/services/authentication.spec.js +0 -458
  550. package/lib/services/authentication.spec.js.map +0 -1
  551. package/lib/services/binary.d.ts +0 -477
  552. package/lib/services/binary.d.ts.map +0 -1
  553. package/lib/services/binary.js +0 -617
  554. package/lib/services/binary.js.map +0 -1
  555. package/lib/services/binary.spec.d.ts +0 -41
  556. package/lib/services/binary.spec.d.ts.map +0 -1
  557. package/lib/services/binary.spec.js +0 -151
  558. package/lib/services/binary.spec.js.map +0 -1
  559. package/lib/services/cloudbinary.spec.d.ts +0 -6
  560. package/lib/services/cloudbinary.spec.d.ts.map +0 -1
  561. package/lib/services/cloudbinary.spec.js +0 -66
  562. package/lib/services/cloudbinary.spec.js.map +0 -1
  563. package/lib/services/configuration.d.ts.map +0 -1
  564. package/lib/services/configuration.js +0 -193
  565. package/lib/services/configuration.js.map +0 -1
  566. package/lib/services/configuration.spec.d.ts +0 -2
  567. package/lib/services/configuration.spec.d.ts.map +0 -1
  568. package/lib/services/configuration.spec.js +0 -130
  569. package/lib/services/configuration.spec.js.map +0 -1
  570. package/lib/services/cron.d.ts +0 -74
  571. package/lib/services/cron.d.ts.map +0 -1
  572. package/lib/services/cron.js +0 -141
  573. package/lib/services/cron.js.map +0 -1
  574. package/lib/services/cron.spec.d.ts +0 -2
  575. package/lib/services/cron.spec.d.ts.map +0 -1
  576. package/lib/services/cron.spec.js +0 -76
  577. package/lib/services/cron.spec.js.map +0 -1
  578. package/lib/services/cryptoservice.d.ts.map +0 -1
  579. package/lib/services/cryptoservice.js +0 -433
  580. package/lib/services/cryptoservice.js.map +0 -1
  581. package/lib/services/cryptoservice.spec.d.ts +0 -2
  582. package/lib/services/cryptoservice.spec.d.ts.map +0 -1
  583. package/lib/services/cryptoservice.spec.js +0 -177
  584. package/lib/services/cryptoservice.spec.js.map +0 -1
  585. package/lib/services/debugmailer.d.ts +0 -36
  586. package/lib/services/debugmailer.d.ts.map +0 -1
  587. package/lib/services/debugmailer.js.map +0 -1
  588. package/lib/services/debugmailer.spec.d.ts +0 -2
  589. package/lib/services/debugmailer.spec.d.ts.map +0 -1
  590. package/lib/services/debugmailer.spec.js +0 -32
  591. package/lib/services/debugmailer.spec.js.map +0 -1
  592. package/lib/services/domainservice.d.ts +0 -272
  593. package/lib/services/domainservice.d.ts.map +0 -1
  594. package/lib/services/domainservice.js +0 -651
  595. package/lib/services/domainservice.js.map +0 -1
  596. package/lib/services/domainservice.spec.d.ts +0 -2
  597. package/lib/services/domainservice.spec.d.ts.map +0 -1
  598. package/lib/services/domainservice.spec.js +0 -592
  599. package/lib/services/domainservice.spec.js.map +0 -1
  600. package/lib/services/filebinary.d.ts +0 -136
  601. package/lib/services/filebinary.d.ts.map +0 -1
  602. package/lib/services/filebinary.js +0 -373
  603. package/lib/services/filebinary.js.map +0 -1
  604. package/lib/services/filebinary.spec.d.ts +0 -25
  605. package/lib/services/filebinary.spec.d.ts.map +0 -1
  606. package/lib/services/filebinary.spec.js +0 -428
  607. package/lib/services/filebinary.spec.js.map +0 -1
  608. package/lib/services/fileconfiguration.d.ts +0 -23
  609. package/lib/services/fileconfiguration.d.ts.map +0 -1
  610. package/lib/services/fileconfiguration.js +0 -48
  611. package/lib/services/fileconfiguration.js.map +0 -1
  612. package/lib/services/fileconfiguration.spec.d.ts +0 -2
  613. package/lib/services/fileconfiguration.spec.d.ts.map +0 -1
  614. package/lib/services/fileconfiguration.spec.js +0 -215
  615. package/lib/services/fileconfiguration.spec.js.map +0 -1
  616. package/lib/services/invitationservice.d.ts +0 -223
  617. package/lib/services/invitationservice.d.ts.map +0 -1
  618. package/lib/services/invitationservice.js +0 -529
  619. package/lib/services/invitationservice.js.map +0 -1
  620. package/lib/services/invitationservice.spec.d.ts +0 -2
  621. package/lib/services/invitationservice.spec.d.ts.map +0 -1
  622. package/lib/services/invitationservice.spec.js +0 -567
  623. package/lib/services/invitationservice.spec.js.map +0 -1
  624. package/lib/services/kubernetesconfiguration.d.ts +0 -27
  625. package/lib/services/kubernetesconfiguration.d.ts.map +0 -1
  626. package/lib/services/kubernetesconfiguration.js +0 -52
  627. package/lib/services/kubernetesconfiguration.js.map +0 -1
  628. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -2
  629. package/lib/services/kubernetesconfiguration.spec.d.ts.map +0 -1
  630. package/lib/services/kubernetesconfiguration.spec.js +0 -206
  631. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  632. package/lib/services/mailer.d.ts +0 -166
  633. package/lib/services/mailer.d.ts.map +0 -1
  634. package/lib/services/mailer.js +0 -176
  635. package/lib/services/mailer.js.map +0 -1
  636. package/lib/services/mailer.spec.d.ts +0 -2
  637. package/lib/services/mailer.spec.d.ts.map +0 -1
  638. package/lib/services/mailer.spec.js +0 -158
  639. package/lib/services/mailer.spec.js.map +0 -1
  640. package/lib/services/notificationservice.d.ts.map +0 -1
  641. package/lib/services/notificationservice.js.map +0 -1
  642. package/lib/services/notificationservice.spec.d.ts +0 -2
  643. package/lib/services/notificationservice.spec.d.ts.map +0 -1
  644. package/lib/services/notificationservice.spec.js +0 -83
  645. package/lib/services/notificationservice.spec.js.map +0 -1
  646. package/lib/services/oauth.d.ts +0 -226
  647. package/lib/services/oauth.d.ts.map +0 -1
  648. package/lib/services/oauth.js +0 -294
  649. package/lib/services/oauth.js.map +0 -1
  650. package/lib/services/oauth.spec.d.ts +0 -2
  651. package/lib/services/oauth.spec.d.ts.map +0 -1
  652. package/lib/services/oauth.spec.js +0 -208
  653. package/lib/services/oauth.spec.js.map +0 -1
  654. package/lib/services/prometheus.d.ts.map +0 -1
  655. package/lib/services/prometheus.js +0 -160
  656. package/lib/services/prometheus.js.map +0 -1
  657. package/lib/services/prometheus.spec.d.ts +0 -2
  658. package/lib/services/prometheus.spec.d.ts.map +0 -1
  659. package/lib/services/prometheus.spec.js +0 -76
  660. package/lib/services/prometheus.spec.js.map +0 -1
  661. package/lib/services/resource.d.ts.map +0 -1
  662. package/lib/services/resource.js +0 -170
  663. package/lib/services/resource.js.map +0 -1
  664. package/lib/services/resource.spec.d.ts +0 -2
  665. package/lib/services/resource.spec.d.ts.map +0 -1
  666. package/lib/services/resource.spec.js +0 -140
  667. package/lib/services/resource.spec.js.map +0 -1
  668. package/lib/services/service.spec.d.ts +0 -2
  669. package/lib/services/service.spec.d.ts.map +0 -1
  670. package/lib/services/service.spec.js +0 -286
  671. package/lib/services/service.spec.js.map +0 -1
  672. package/lib/stores/aggregator.d.ts +0 -48
  673. package/lib/stores/aggregator.d.ts.map +0 -1
  674. package/lib/stores/aggregator.js +0 -80
  675. package/lib/stores/aggregator.js.map +0 -1
  676. package/lib/stores/file.d.ts +0 -108
  677. package/lib/stores/file.d.ts.map +0 -1
  678. package/lib/stores/file.js +0 -188
  679. package/lib/stores/file.js.map +0 -1
  680. package/lib/stores/file.spec.d.ts +0 -13
  681. package/lib/stores/file.spec.d.ts.map +0 -1
  682. package/lib/stores/file.spec.js +0 -138
  683. package/lib/stores/file.spec.js.map +0 -1
  684. package/lib/stores/mapper.d.ts +0 -150
  685. package/lib/stores/mapper.d.ts.map +0 -1
  686. package/lib/stores/mapper.js +0 -293
  687. package/lib/stores/mapper.js.map +0 -1
  688. package/lib/stores/mapper.spec.d.ts +0 -2
  689. package/lib/stores/mapper.spec.d.ts.map +0 -1
  690. package/lib/stores/mapper.spec.js +0 -167
  691. package/lib/stores/mapper.spec.js.map +0 -1
  692. package/lib/stores/memory.d.ts +0 -152
  693. package/lib/stores/memory.d.ts.map +0 -1
  694. package/lib/stores/memory.js +0 -371
  695. package/lib/stores/memory.js.map +0 -1
  696. package/lib/stores/memory.spec.d.ts +0 -14
  697. package/lib/stores/memory.spec.d.ts.map +0 -1
  698. package/lib/stores/memory.spec.js +0 -263
  699. package/lib/stores/memory.spec.js.map +0 -1
  700. package/lib/stores/modelmapper.d.ts +0 -62
  701. package/lib/stores/modelmapper.d.ts.map +0 -1
  702. package/lib/stores/modelmapper.js +0 -197
  703. package/lib/stores/modelmapper.js.map +0 -1
  704. package/lib/stores/store.spec.d.ts +0 -57
  705. package/lib/stores/store.spec.d.ts.map +0 -1
  706. package/lib/stores/store.spec.js +0 -737
  707. package/lib/stores/store.spec.js.map +0 -1
  708. package/lib/test.d.ts +0 -265
  709. package/lib/test.d.ts.map +0 -1
  710. package/lib/test.js +0 -622
  711. package/lib/test.js.map +0 -1
  712. package/lib/unpackedapplication.d.ts.map +0 -1
  713. package/lib/unpackedapplication.js +0 -350
  714. package/lib/unpackedapplication.js.map +0 -1
  715. package/lib/utils/abstractdeployer.spec.d.ts +0 -2
  716. package/lib/utils/abstractdeployer.spec.d.ts.map +0 -1
  717. package/lib/utils/abstractdeployer.spec.js +0 -21
  718. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  719. package/lib/utils/case.d.ts +0 -8
  720. package/lib/utils/case.d.ts.map +0 -1
  721. package/lib/utils/case.js +0 -43
  722. package/lib/utils/case.js.map +0 -1
  723. package/lib/utils/case.spec.d.ts +0 -2
  724. package/lib/utils/case.spec.d.ts.map +0 -1
  725. package/lib/utils/case.spec.js +0 -50
  726. package/lib/utils/case.spec.js.map +0 -1
  727. package/lib/utils/context.d.ts +0 -482
  728. package/lib/utils/context.d.ts.map +0 -1
  729. package/lib/utils/context.js +0 -739
  730. package/lib/utils/context.js.map +0 -1
  731. package/lib/utils/context.spec.d.ts +0 -10
  732. package/lib/utils/context.spec.d.ts.map +0 -1
  733. package/lib/utils/context.spec.js +0 -383
  734. package/lib/utils/context.spec.js.map +0 -1
  735. package/lib/utils/cookie.d.ts.map +0 -1
  736. package/lib/utils/cookie.js.map +0 -1
  737. package/lib/utils/cookie.spec.d.ts +0 -2
  738. package/lib/utils/cookie.spec.d.ts.map +0 -1
  739. package/lib/utils/cookie.spec.js +0 -88
  740. package/lib/utils/cookie.spec.js.map +0 -1
  741. package/lib/utils/esm.d.ts +0 -14
  742. package/lib/utils/esm.d.ts.map +0 -1
  743. package/lib/utils/esm.js +0 -19
  744. package/lib/utils/esm.js.map +0 -1
  745. package/lib/utils/httpcontext.d.ts.map +0 -1
  746. package/lib/utils/httpcontext.js.map +0 -1
  747. package/lib/utils/httpcontext.spec.d.ts +0 -5
  748. package/lib/utils/httpcontext.spec.d.ts.map +0 -1
  749. package/lib/utils/httpcontext.spec.js +0 -77
  750. package/lib/utils/httpcontext.spec.js.map +0 -1
  751. package/lib/utils/logger.d.ts +0 -92
  752. package/lib/utils/logger.d.ts.map +0 -1
  753. package/lib/utils/logger.js +0 -121
  754. package/lib/utils/logger.js.map +0 -1
  755. package/lib/utils/logger.spec.d.ts +0 -2
  756. package/lib/utils/logger.spec.d.ts.map +0 -1
  757. package/lib/utils/logger.spec.js +0 -48
  758. package/lib/utils/logger.spec.js.map +0 -1
  759. package/lib/utils/serializers.d.ts +0 -162
  760. package/lib/utils/serializers.d.ts.map +0 -1
  761. package/lib/utils/serializers.js +0 -420
  762. package/lib/utils/serializers.js.map +0 -1
  763. package/lib/utils/serializers.spec.d.ts +0 -2
  764. package/lib/utils/serializers.spec.d.ts.map +0 -1
  765. package/lib/utils/serializers.spec.js +0 -311
  766. package/lib/utils/serializers.spec.js.map +0 -1
  767. package/lib/utils/session.d.ts +0 -123
  768. package/lib/utils/session.d.ts.map +0 -1
  769. package/lib/utils/session.js +0 -156
  770. package/lib/utils/session.js.map +0 -1
  771. package/lib/utils/session.spec.d.ts +0 -2
  772. package/lib/utils/session.spec.d.ts.map +0 -1
  773. package/lib/utils/session.spec.js +0 -81
  774. package/lib/utils/session.spec.js.map +0 -1
  775. package/lib/utils/throttler.d.ts +0 -99
  776. package/lib/utils/throttler.d.ts.map +0 -1
  777. package/lib/utils/throttler.js +0 -160
  778. package/lib/utils/throttler.js.map +0 -1
  779. package/lib/utils/throttler.spec.d.ts +0 -2
  780. package/lib/utils/throttler.spec.d.ts.map +0 -1
  781. package/lib/utils/throttler.spec.js +0 -53
  782. package/lib/utils/throttler.spec.js.map +0 -1
  783. package/lib/utils/waiter.d.ts +0 -94
  784. package/lib/utils/waiter.d.ts.map +0 -1
  785. package/lib/utils/waiter.js +0 -148
  786. package/lib/utils/waiter.js.map +0 -1
  787. package/lib/utils/waiter.spec.d.ts +0 -2
  788. package/lib/utils/waiter.spec.d.ts.map +0 -1
  789. package/lib/utils/waiter.spec.js +0 -98
  790. package/lib/utils/waiter.spec.js.map +0 -1
  791. package/test/jsonutils/mdocs.yaml +0 -56
  792. package/test/jsonutils/test.json +0 -3
  793. package/test/jsonutils/test.yml +0 -5
@@ -0,0 +1,673 @@
1
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
2
+ var useValue = arguments.length > 2;
3
+ for (var i = 0; i < initializers.length; i++) {
4
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
5
+ }
6
+ return useValue ? value : void 0;
7
+ };
8
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
9
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
10
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
11
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
12
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
13
+ var _, done = false;
14
+ for (var i = decorators.length - 1; i >= 0; i--) {
15
+ var context = {};
16
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
17
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
18
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
19
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
20
+ if (kind === "accessor") {
21
+ if (result === void 0) continue;
22
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
23
+ if (_ = accept(result.get)) descriptor.get = _;
24
+ if (_ = accept(result.set)) descriptor.set = _;
25
+ if (_ = accept(result.init)) initializers.unshift(_);
26
+ }
27
+ else if (_ = accept(result)) {
28
+ if (kind === "field") initializers.unshift(_);
29
+ else descriptor[key] = _;
30
+ }
31
+ }
32
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
33
+ done = true;
34
+ };
35
+ import { Service } from "./service.js";
36
+ import { Command } from "./command.js";
37
+ import { WebContext } from "../contexts/webcontext.js";
38
+ import { OperationContext } from "../contexts/operationcontext.js";
39
+ import { ServiceParameters } from "../services/serviceparameters.js";
40
+ import { emitCoreEvent } from "../events/events.js";
41
+ import { createServer } from "node:http";
42
+ import { createServer as createHttpsServer } from "node:https";
43
+ import { createSecureServer, createServer as createHttp2Server } from "node:http2";
44
+ import { HttpContext } from "../contexts/httpcontext.js";
45
+ import { createChecker } from "is-in-subnet";
46
+ import { useLog } from "@webda/workout";
47
+ import { CancelablePromise } from "@webda/utils";
48
+ import { useRouter } from "../rest/hooks.js";
49
+ import { runWithContext } from "../contexts/execution.js";
50
+ import { readFileSync, existsSync, mkdirSync } from "node:fs";
51
+ import { execFileSync } from "node:child_process";
52
+ import { AsyncResource } from "node:async_hooks";
53
+ import { join } from "node:path";
54
+ import { serialize as cookieSerialize } from "cookie";
55
+ /**
56
+ * How long a connection to a TLS port may stay silent before it is dropped,
57
+ * while it is not yet known whether it speaks TLS or plain HTTP
58
+ */
59
+ const TLS_GATE_TIMEOUT = 30000;
60
+ /** Parameters for the HTTP server including request limits, timeouts, TLS, and proxy settings */
61
+ export class HttpServerParameters extends ServiceParameters {
62
+ /**
63
+ * Will not try to parse request bigger than this
64
+ *
65
+ * This parameter can be overriden by a direct call to
66
+ * getHttpContext().getRawBody(xxx)
67
+ *
68
+ * @default 10Mb
69
+ */
70
+ requestLimit;
71
+ /**
72
+ * Will not take more than this to read a request (unit: milliseconds)
73
+ *
74
+ * This parameter can be overriden by a direct call to
75
+ * getHttpContext().getRawBody(undefined, xxx)
76
+ *
77
+ * @default 60000
78
+ */
79
+ requestTimeout;
80
+ /**
81
+ * Trust this reverse proxies
82
+ */
83
+ trustedProxies;
84
+ /**
85
+ * Allowed origin for referer that match
86
+ * any of this regexp
87
+ *
88
+ * {@link OriginFilter}
89
+ */
90
+ csrfOrigins;
91
+ /**
92
+ * Default headers to send to the client
93
+ *
94
+ * Having a Cache-Control: private will prevent caching for API
95
+ * If you overwrite this parameter, you will need to add it back
96
+ */
97
+ defaultHeaders;
98
+ /**
99
+ * Port to listen on
100
+ *
101
+ * @default 18080
102
+ */
103
+ port;
104
+ /**
105
+ * Run this instance as an HTTP/2 cleartext (h2c) server rather than
106
+ * HTTP/1.1. The resulting port accepts only prior-knowledge HTTP/2
107
+ * clients (e.g. `grpcurl -plaintext`). To serve both REST (HTTP/1.1)
108
+ * and gRPC without TLS, configure a second HttpServer service with
109
+ * `h2c: true` on a separate port.
110
+ * @default false
111
+ */
112
+ h2c;
113
+ /**
114
+ * TLS key file path — enables HTTPS or HTTP/2
115
+ */
116
+ key;
117
+ /**
118
+ * TLS certificate file path
119
+ */
120
+ cert;
121
+ /**
122
+ * Enable HTTP/2 (default: true when key+cert provided)
123
+ * Set to false for HTTPS without HTTP/2
124
+ */
125
+ http2;
126
+ /**
127
+ * Auto-generate a self-signed certificate on startup when `key`/`cert`
128
+ * aren't configured. Dev convenience: gives the main port HTTP/2 via
129
+ * ALPN (plus HTTP/1.1 fallback) with zero setup. Keys are written under
130
+ * `.webda/dev-tls/`.
131
+ *
132
+ * @default false
133
+ */
134
+ autoTls;
135
+ /**
136
+ * Load parameters with defaults for request limits, timeouts, and proxy configuration
137
+ * @param params - the service parameters
138
+ * @returns this for chaining
139
+ */
140
+ load(params) {
141
+ super.load(params);
142
+ this.requestLimit ??= 10 * 1024 * 1024;
143
+ this.requestTimeout ??= 60000;
144
+ this.trustedProxies ??= [];
145
+ if (typeof params.trustedProxies === "string") {
146
+ this.trustedProxies = params.trustedProxies.split(",").map(n => n.trim());
147
+ }
148
+ return this;
149
+ }
150
+ }
151
+ /** HTTP/1.1-only headers that must be filtered for HTTP/2 */
152
+ const HTTP1_ONLY_HEADERS = ["keep-alive", "connection", "transfer-encoding"];
153
+ /**
154
+ * HTTP server service supporting HTTP/1.1, HTTPS, and HTTP/2
155
+ *
156
+ * @WebdaModda
157
+ */
158
+ let HttpServer = (() => {
159
+ let _classSuper = Service;
160
+ let _instanceExtraInitializers = [];
161
+ let _serve_decorators;
162
+ return class HttpServer extends _classSuper {
163
+ static {
164
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
165
+ _serve_decorators = [Command("serve", { description: "Start the HTTP server", requires: ["router", "rest-domain"] })];
166
+ __esDecorate(this, null, _serve_decorators, { kind: "method", name: "serve", static: false, private: false, access: { has: obj => "serve" in obj, get: obj => obj.serve }, metadata: _metadata }, null, _instanceExtraInitializers);
167
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
168
+ }
169
+ /** Registered context providers */
170
+ contextProviders = (__runInitializers(this, _instanceExtraInitializers), [
171
+ {
172
+ getContext: (info) => {
173
+ if (info.http) {
174
+ return new WebContext(info.http, info.stream);
175
+ }
176
+ return new OperationContext(info.stream);
177
+ }
178
+ }
179
+ ]);
180
+ server;
181
+ /**
182
+ * Resolvers of the pending serve() promises, settled when the service stops
183
+ */
184
+ serving = new Set();
185
+ /** In TLS mode, the server answering plain HTTP with a redirect */
186
+ redirectServer;
187
+ subnetChecker;
188
+ /** Whether this server uses HTTP/2 */
189
+ isHttp2 = false;
190
+ /**
191
+ * Extra request handlers — matched first, before the default web request
192
+ * pipeline. Used to plug in alternate wire protocols (gRPC) that share the
193
+ * same port. Each interceptor returns true when it handles the request.
194
+ */
195
+ interceptors = [];
196
+ /**
197
+ * Register an additional low-level request handler. Interceptors are
198
+ * checked in registration order; the first one that returns true short-
199
+ * circuits the default pipeline. Typical use: gRPC dispatcher that matches
200
+ * `content-type: application/grpc`.
201
+ * @param handler - returns true when it has taken ownership of the request
202
+ */
203
+ registerRequestInterceptor(handler) {
204
+ this.interceptors.push(handler);
205
+ }
206
+ /**
207
+ * Flush response headers from WebContext to the underlying response stream.
208
+ * Handles both HTTP/1.1 (writeHead) and HTTP/2 (setHeader + statusCode) patterns.
209
+ *
210
+ * @param ctx - the web context with stored headers
211
+ */
212
+ flushHeaders(ctx) {
213
+ const res = ctx._stream;
214
+ if (res.headersSent)
215
+ return;
216
+ const headers = ctx.getResponseHeaders();
217
+ const cookies = ctx.getResponseCookies?.() || {};
218
+ if (this.isHttp2) {
219
+ // HTTP/2: use setHeader individually, filter HTTP/1.1-only headers
220
+ for (const [name, value] of Object.entries(headers)) {
221
+ if (HTTP1_ONLY_HEADERS.includes(name.toLowerCase()))
222
+ continue;
223
+ res.setHeader(name, value);
224
+ }
225
+ for (const i in cookies) {
226
+ res.setHeader("Set-Cookie", cookieSerialize(cookies[i].name, cookies[i].value, cookies[i].options));
227
+ }
228
+ res.statusCode = ctx.getResponseCode();
229
+ }
230
+ else {
231
+ // HTTP/1.1: use writeHead
232
+ for (const i in cookies) {
233
+ headers["Set-Cookie"] = cookieSerialize(cookies[i].name, cookies[i].value, cookies[i].options);
234
+ }
235
+ res.writeHead(ctx.getResponseCode(), headers);
236
+ }
237
+ }
238
+ /**
239
+ * Flush the response body and close the response.
240
+ *
241
+ * @param ctx - the web context with buffered output
242
+ */
243
+ flush(ctx) {
244
+ const res = ctx._stream;
245
+ if (res.writableEnded)
246
+ return;
247
+ this.flushHeaders(ctx);
248
+ res.end(ctx.getOutput() || "");
249
+ }
250
+ /**
251
+ * Handle an incoming HTTP request: create context, route, flush response.
252
+ *
253
+ * @param req - the incoming message
254
+ * @param res - the server response
255
+ */
256
+ async handleRequest(req, res) {
257
+ // Alternate protocols (e.g. gRPC) get first crack at the request — they
258
+ // return true to claim it, otherwise we fall through to the normal web
259
+ // pipeline.
260
+ for (const interceptor of this.interceptors) {
261
+ try {
262
+ if (interceptor(req, res))
263
+ return;
264
+ }
265
+ catch (err) {
266
+ useLog("ERROR", "Request interceptor failed", err);
267
+ }
268
+ }
269
+ try {
270
+ const ctx = await this.getContextFromRequest(req, res);
271
+ if (!ctx) {
272
+ res.writeHead(500);
273
+ res.end();
274
+ return;
275
+ }
276
+ const webCtx = ctx;
277
+ await runWithContext(webCtx, async () => {
278
+ try {
279
+ emitCoreEvent("Webda.Request", { context: webCtx });
280
+ }
281
+ catch { /* listener error */ }
282
+ try {
283
+ await useRouter().execute(webCtx);
284
+ }
285
+ catch (err) {
286
+ webCtx.statusCode = err?.getResponseCode?.() || 500;
287
+ const method = webCtx.getHttpContext().getMethod();
288
+ const url = webCtx.getHttpContext().getUrl();
289
+ // Log 5xx at ERROR and 4xx at DEBUG so validation failures are still
290
+ // visible during development but don't drown the normal log stream.
291
+ if (webCtx.statusCode >= 500) {
292
+ useLog("ERROR", `${method} ${url} → ${webCtx.statusCode}`, err);
293
+ }
294
+ else if (webCtx.statusCode >= 400) {
295
+ useLog("WARN", `${method} ${url} → ${webCtx.statusCode}: ${err?.message ?? err}`);
296
+ }
297
+ // Stash the error on the context so listeners (e.g. debug capture)
298
+ // can include it in the request log entry.
299
+ webCtx.setExtension("error", err);
300
+ // Write a body so the client actually sees the failure. For 4xx we
301
+ // include the message + structured details (e.g. AJV errors[] from
302
+ // input-schema validation). For 5xx we hide internal details.
303
+ if (!webCtx.hasFlushedHeaders?.() && (webCtx.getOutput?.() ?? "") === "") {
304
+ if (webCtx.statusCode >= 500) {
305
+ webCtx.write({
306
+ error: {
307
+ code: err?.code ?? "INTERNAL_SERVER_ERROR",
308
+ message: "Internal server error"
309
+ }
310
+ });
311
+ }
312
+ else {
313
+ const body = {
314
+ code: err?.code ?? "BAD_REQUEST",
315
+ message: err?.message ?? String(err)
316
+ };
317
+ if (err?.details !== undefined)
318
+ body.details = err.details;
319
+ webCtx.write({ error: body });
320
+ }
321
+ }
322
+ }
323
+ // Always emit the Result event — both success and error paths converge
324
+ // here so that subscribers see every request reach a terminal state.
325
+ try {
326
+ emitCoreEvent("Webda.Result", { context: webCtx });
327
+ }
328
+ catch { /* listener error */ }
329
+ });
330
+ // Flush response — skip if pipeline/streaming already handled it
331
+ if (!res.writableEnded && !res.headersSent) {
332
+ this.flush(webCtx);
333
+ }
334
+ else if (!res.writableEnded) {
335
+ // Headers sent (by flushHeaders in pipeline path) but body not ended
336
+ res.end(webCtx.getOutput() || "");
337
+ }
338
+ }
339
+ catch (err) {
340
+ useLog("ERROR", "Unhandled error in HTTP request handler", err);
341
+ if (!res.writableEnded) {
342
+ if (!res.headersSent)
343
+ res.writeHead(500);
344
+ res.end();
345
+ }
346
+ }
347
+ }
348
+ /**
349
+ * Serve HTTP until the service stops
350
+ *
351
+ * The returned promise stays pending while the server runs: it resolves when the
352
+ * service stops, and cancelling it closes the server.
353
+ * Use {@link start} to only wait for the server to listen.
354
+ *
355
+ * @param bind - the bind address
356
+ * @param port - the port number
357
+ * @returns a promise settled once the server is stopped
358
+ */
359
+ serve(bind, port) {
360
+ return new CancelablePromise((resolve, reject) => {
361
+ this.start(bind, port).then(() => {
362
+ this.serving.add(resolve);
363
+ }, reject);
364
+ }, async () => {
365
+ await this.closeServer();
366
+ });
367
+ }
368
+ /**
369
+ * Start the HTTP server
370
+ * @param bind - the bind address
371
+ * @param port - the port number
372
+ * @returns a promise resolved once the server listens
373
+ */
374
+ async start(bind, port) {
375
+ this.parameters.with(params => {
376
+ // `??`, not `||`: port 0 asks the OS for a free port
377
+ const listenPort = port ?? params.port ?? 18080;
378
+ useLog("INFO", `Starting HTTP server on ${bind ?? "0.0.0.0"}:${listenPort}`);
379
+ // Node.js pipeline() emits ERR_STREAM_PREMATURE_CLOSE as uncaughtException
380
+ // when piping to ServerResponse. Suppress this specific error.
381
+ if (!process.listeners("uncaughtExceptionMonitor").find((l) => l._webda)) {
382
+ const monitor = function _webdaMonitor() { };
383
+ monitor._webda = true;
384
+ process.on("uncaughtExceptionMonitor", monitor);
385
+ }
386
+ if (!process.listeners("uncaughtException").find((l) => l._webda)) {
387
+ const handler = function _webdaHandler(err) {
388
+ if (err?.code === "ERR_STREAM_PREMATURE_CLOSE")
389
+ return;
390
+ useLog("ERROR", "Uncaught exception", err);
391
+ process.exit(1);
392
+ };
393
+ handler._webda = true;
394
+ process.on("uncaughtException", handler);
395
+ }
396
+ if (this.server) {
397
+ this.server.close();
398
+ }
399
+ // Auto-generate a dev self-signed cert when autoTls is on and nothing is
400
+ // already configured — gives the port HTTP/2 via ALPN for free.
401
+ if (params.autoTls && !(params.key && params.cert)) {
402
+ const { key, cert } = this.ensureDevTlsCert();
403
+ params.key = key;
404
+ params.cert = cert;
405
+ }
406
+ // Create server based on configuration. The same HttpServer class runs
407
+ // in three modes — one instance per mode, one port per instance. Mix
408
+ // modes by configuring multiple HttpServer services (e.g. a TLS one
409
+ // for REST/GraphQL and a second h2c one for gRPC without TLS).
410
+ if (params.key && params.cert) {
411
+ // TLS — HTTP/2 via ALPN with HTTP/1.1 fallback (or plain HTTPS).
412
+ const tlsOptions = {
413
+ key: readFileSync(params.key),
414
+ cert: readFileSync(params.cert),
415
+ allowHTTP1: true
416
+ };
417
+ let tlsServer;
418
+ if (params.http2 !== false) {
419
+ this.isHttp2 = true;
420
+ tlsServer = createSecureServer(tlsOptions, (req, res) => {
421
+ if (req.headers[":authority"]) {
422
+ const [host] = req.headers[":authority"].split(":");
423
+ req.headers.host = host;
424
+ }
425
+ this.handleRequest(req, res);
426
+ });
427
+ }
428
+ else {
429
+ tlsServer = createHttpsServer(tlsOptions, (req, res) => this.handleRequest(req, res));
430
+ }
431
+ this.redirectPlainHttp(tlsServer);
432
+ this.server = tlsServer;
433
+ }
434
+ else if (params.h2c) {
435
+ // Prior-knowledge HTTP/2 cleartext — for gRPC clients without TLS.
436
+ this.isHttp2 = true;
437
+ this.server = createHttp2Server((req, res) => this.handleRequest(req, res));
438
+ }
439
+ else {
440
+ // Plain HTTP/1.1
441
+ this.server = createServer((req, res) => this.handleRequest(req, res));
442
+ }
443
+ // Ensure routes are mapped before accepting requests
444
+ useRouter().remapRoutes();
445
+ this.server.listen(listenPort, bind);
446
+ if (params.key && params.cert) {
447
+ useLog("INFO", `Serving https://${bind ?? "localhost"}:${listenPort} (http:// redirects to https)`);
448
+ }
449
+ // Emit on both channels: core event for decoupled listeners (gRPC
450
+ // interceptor, graphql ws handler) and the service-level event for
451
+ // anyone still listening via `this.on(...)`.
452
+ this.emit("Webda.Init.Http", this.server);
453
+ emitCoreEvent("Webda.Init.Http", this.server);
454
+ });
455
+ // Set up trusted proxy checker
456
+ this.parameters.with(params => {
457
+ this.subnetChecker = createChecker(params.trustedProxies.map(n => (n.indexOf("/") < 0 ? `${n.trim()}/32` : n.trim())));
458
+ });
459
+ const server = this.server;
460
+ if (!server.listening) {
461
+ await new Promise((resolve, reject) => {
462
+ const onError = (err) => {
463
+ server.off("listening", onListening);
464
+ reject(err);
465
+ };
466
+ const onListening = () => {
467
+ server.off("error", onError);
468
+ resolve();
469
+ };
470
+ server.once("listening", onListening);
471
+ server.once("error", onError);
472
+ });
473
+ }
474
+ }
475
+ /**
476
+ * Close the HTTP server, dropping its open connections
477
+ * @returns a promise resolved once the server is closed
478
+ */
479
+ async closeServer() {
480
+ // Its connections never reach `server`: close them too (clients keep them alive)
481
+ this.redirectServer?.closeAllConnections();
482
+ const server = this.server;
483
+ if (!server?.listening) {
484
+ return;
485
+ }
486
+ await new Promise(resolve => {
487
+ server.close(() => resolve());
488
+ // Keep-alive connections would hold close() until they time out
489
+ server.closeAllConnections?.();
490
+ // HTTP/2 sessions have no closeAllConnections: do not wait for them forever
491
+ setTimeout(resolve, 1000).unref();
492
+ });
493
+ }
494
+ /**
495
+ * Address the server is listening on, or null before it listens
496
+ * @returns the bound address
497
+ */
498
+ address() {
499
+ return this.server?.address() ?? null;
500
+ }
501
+ /**
502
+ * Accept plain HTTP on a TLS port. TLS handshakes go to the TLS server as
503
+ * before; anything else gets a 308 redirect to the same URL over https,
504
+ * where a browser typing `localhost:<port>` would otherwise get an empty
505
+ * response.
506
+ *
507
+ * Node's TLS server wraps each accepted socket in its single `connection`
508
+ * listener; that listener is wrapped so the server keeps owning the port
509
+ * (`listening`, `address()` and the `Webda.Init.Http` hooks are unchanged).
510
+ * @param tlsServer - the TLS server handling the application
511
+ */
512
+ redirectPlainHttp(tlsServer) {
513
+ const listeners = tlsServer.listeners("connection");
514
+ if (listeners.length !== 1) {
515
+ useLog("WARN", "Cannot redirect plain HTTP to https on this Node.js version");
516
+ return;
517
+ }
518
+ const handshake = listeners[0];
519
+ const redirect = (this.redirectServer = createServer((req, res) => {
520
+ res.writeHead(308, { Location: `https://${req.headers.host ?? "localhost"}${req.url ?? "/"}` });
521
+ res.end();
522
+ }));
523
+ tlsServer.removeListener("connection", handshake);
524
+ tlsServer.on("connection", (socket) => {
525
+ // Until the first bytes arrive, nobody else owns the socket
526
+ const drop = () => socket.destroy();
527
+ socket.on("error", drop);
528
+ socket.setTimeout(TLS_GATE_TIMEOUT, drop);
529
+ // Hand the socket over in this callback's async context, as the TLS
530
+ // server would have: request handling needs Webda's instance storage
531
+ socket.once("data", AsyncResource.bind((chunk) => {
532
+ socket.off("error", drop);
533
+ socket.setTimeout(0);
534
+ socket.pause();
535
+ socket.unshift(chunk);
536
+ // 0x16 opens a TLS handshake record
537
+ if (chunk[0] === 0x16) {
538
+ handshake.call(tlsServer, socket);
539
+ }
540
+ else {
541
+ redirect.emit("connection", socket);
542
+ }
543
+ process.nextTick(() => socket.resume());
544
+ }));
545
+ });
546
+ }
547
+ /** @override */
548
+ async stop() {
549
+ await super.stop();
550
+ await this.closeServer();
551
+ // Settle the pending serve() promises
552
+ for (const resolve of this.serving) {
553
+ resolve();
554
+ }
555
+ this.serving.clear();
556
+ }
557
+ /**
558
+ * Ensure a self-signed TLS key+cert exists under `.webda/dev-tls/` and
559
+ * return their paths. Used by {@link HttpServerParameters.autoTls} to bring
560
+ * up HTTPS/HTTP2 on the dev server with zero setup. Dev-only — real
561
+ * deploys should supply a proper cert via `key`/`cert` params.
562
+ *
563
+ * @returns absolute paths to the generated key and cert files
564
+ */
565
+ ensureDevTlsCert() {
566
+ const dir = join(process.cwd(), ".webda", "dev-tls");
567
+ const key = join(dir, "key.pem");
568
+ const cert = join(dir, "cert.pem");
569
+ if (existsSync(key) && existsSync(cert)) {
570
+ return { key, cert };
571
+ }
572
+ mkdirSync(dir, { recursive: true });
573
+ // SAN on localhost/127.0.0.1 so browsers and grpcurl skip hostname
574
+ // complaints when -k / -insecure is used.
575
+ try {
576
+ execFileSync("openssl", [
577
+ "req", "-x509", "-newkey", "rsa:2048",
578
+ "-keyout", key,
579
+ "-out", cert,
580
+ "-days", "365",
581
+ "-nodes",
582
+ "-subj", "/CN=localhost",
583
+ "-addext", "subjectAltName=DNS:localhost,IP:127.0.0.1,IP:0.0.0.0"
584
+ ], { stdio: "pipe" });
585
+ }
586
+ catch (err) {
587
+ throw new Error(`autoTls: failed to generate self-signed cert via openssl — ${err}`);
588
+ }
589
+ this.log("INFO", `generated self-signed dev cert at ${dir}`);
590
+ return { key, cert };
591
+ }
592
+ /**
593
+ * Create a WebContext from an HTTP request
594
+ * @param req - the incoming message
595
+ * @param res - the server response
596
+ * @returns the context, or undefined if request should be rejected
597
+ */
598
+ async getContextFromRequest(req, res) {
599
+ let vhost = req.headers.host?.match(/:/g)
600
+ ? req.headers.host.slice(0, req.headers.host.indexOf(":"))
601
+ : req.headers.host || "localhost";
602
+ if ((req.headers["x-forwarded-for"] ||
603
+ req.headers["x-forwarded-host"] ||
604
+ req.headers["x-forwarded-proto"] ||
605
+ req.headers["x-forwarded-port"]) &&
606
+ !this.isProxyTrusted(req.socket?.remoteAddress)) {
607
+ this.log("WARN", `X-Forwarded-* headers set from an unknown source: ${req.socket?.remoteAddress}`);
608
+ res?.writeHead(400);
609
+ return;
610
+ }
611
+ if (req.headers["x-forwarded-host"] !== undefined) {
612
+ vhost = req.headers["x-forwarded-host"];
613
+ }
614
+ let protocol = this.isHttp2 ? "https" : "http";
615
+ if (req.headers["x-forwarded-proto"] !== undefined) {
616
+ protocol = req.headers["x-forwarded-proto"];
617
+ }
618
+ let port;
619
+ if (req.socket && req.socket.address()) {
620
+ port = req.socket.address().port;
621
+ }
622
+ if (req.headers["x-forwarded-port"] !== undefined) {
623
+ port = parseInt(req.headers["x-forwarded-port"]);
624
+ }
625
+ else if (req.headers["x-forwarded-proto"] !== undefined) {
626
+ port = protocol === "http" ? 80 : 443;
627
+ }
628
+ // Filter HTTP/2 pseudo-headers from the headers object
629
+ const headers = this.isHttp2
630
+ ? Object.fromEntries(Object.entries(req.headers).filter(([k]) => !k.startsWith(":")))
631
+ : req.headers;
632
+ const httpContext = new HttpContext(vhost, req.method, req.url, protocol, port, headers);
633
+ httpContext.setClientIp(httpContext.getUniqueHeader("x-forwarded-for", req.socket?.remoteAddress));
634
+ if (["PUT", "PATCH", "POST", "DELETE"].includes(req.method)) {
635
+ httpContext.setBody(req);
636
+ }
637
+ return this.newContext({ http: httpContext, stream: res });
638
+ }
639
+ /**
640
+ * Check if a proxy is a trusted proxy
641
+ * @param ip - the IP address
642
+ * @returns true if the proxy is trusted
643
+ */
644
+ isProxyTrusted(ip) {
645
+ return this.subnetChecker?.(ip) ?? false;
646
+ }
647
+ /**
648
+ * Create a context from provider info
649
+ * @param info - the context provider info
650
+ * @param noInit - skip initialization
651
+ * @returns the created context
652
+ */
653
+ async newContext(info, noInit = false) {
654
+ let context;
655
+ this.contextProviders.find(provider => (context = provider.getContext(info)) !== undefined);
656
+ if (!noInit) {
657
+ await context.init();
658
+ }
659
+ await emitCoreEvent("Webda.NewContext", { context, info });
660
+ return context;
661
+ }
662
+ /**
663
+ * Register a new context provider (prepended, higher priority)
664
+ * @param provider - the context provider
665
+ */
666
+ registerContextProvider(provider) {
667
+ this.contextProviders ??= [];
668
+ this.contextProviders.unshift(provider);
669
+ }
670
+ };
671
+ })();
672
+ export { HttpServer };
673
+ //# sourceMappingURL=httpserver.service.js.map