@webda/core 4.0.0-beta.2 → 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 (756) 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/{unpackedapplication.d.ts → application/unpackedapplication.d.ts} +43 -23
  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 -58
  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 +44 -19
  63. package/lib/contexts/httpcontext.d.ts.map +1 -0
  64. package/lib/{utils → contexts}/httpcontext.js +95 -27
  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 +82 -53
  119. package/lib/index.d.ts.map +1 -1
  120. package/lib/index.js +81 -62
  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 +20 -76
  155. package/lib/models/aclmodel.d.ts.map +1 -1
  156. package/lib/models/aclmodel.js +27 -203
  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 +1 -1
  167. package/lib/models/deployment.d.ts.map +1 -1
  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.js → rolemodel.model.js} +23 -5
  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.d.ts → memoryqueue.service.d.ts} +26 -13
  197. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  198. package/lib/queues/{memoryqueue.js → memoryqueue.service.js} +55 -31
  199. package/lib/queues/memoryqueue.service.js.map +1 -0
  200. package/lib/queues/pubsubservice.d.ts +8 -6
  201. package/lib/queues/pubsubservice.d.ts.map +1 -1
  202. package/lib/queues/pubsubservice.js +5 -4
  203. package/lib/queues/pubsubservice.js.map +1 -1
  204. package/lib/queues/queueservice.d.ts +9 -11
  205. package/lib/queues/queueservice.d.ts.map +1 -1
  206. package/lib/queues/queueservice.js +41 -13
  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 -59
  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 +17 -12
  245. package/lib/services/cloudbinary.d.ts.map +1 -1
  246. package/lib/services/cloudbinary.js +23 -17
  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} +75 -141
  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.js → debugmailer.service.js} +25 -10
  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 -11
  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 +52 -28
  297. package/lib/services/oauth.d.ts.map +1 -1
  298. package/lib/services/oauth.js +365 -254
  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 -12
  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.d.ts → resource.service.d.ts} +34 -15
  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 +87 -188
  313. package/lib/services/service.d.ts.map +1 -1
  314. package/lib/services/service.js +407 -422
  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 -19
  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 +126 -626
  345. package/lib/stores/store.d.ts.map +1 -1
  346. package/lib/stores/store.js +257 -1117
  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 +4 -2
  377. package/lib/utils/abstractdeployer.d.ts.map +1 -1
  378. package/lib/utils/abstractdeployer.js +3 -0
  379. package/lib/utils/abstractdeployer.js.map +1 -1
  380. package/package.json +85 -60
  381. package/test/cachedapp/webda.config.json +1 -5
  382. package/test/config-cached.json +1 -5
  383. package/test/config.json +0 -9
  384. package/test/my-cnf.json +9 -0
  385. package/webda.module.json +3463 -2482
  386. package/lib/application.d.ts +0 -888
  387. package/lib/application.d.ts.map +0 -1
  388. package/lib/application.js +0 -768
  389. package/lib/application.js.map +0 -1
  390. package/lib/application.spec.d.ts +0 -2
  391. package/lib/application.spec.d.ts.map +0 -1
  392. package/lib/application.spec.js +0 -248
  393. package/lib/application.spec.js.map +0 -1
  394. package/lib/core.d.ts +0 -743
  395. package/lib/core.d.ts.map +0 -1
  396. package/lib/core.js +0 -1334
  397. package/lib/core.js.map +0 -1
  398. package/lib/core.spec.d.ts +0 -2
  399. package/lib/core.spec.d.ts.map +0 -1
  400. package/lib/core.spec.js +0 -790
  401. package/lib/core.spec.js.map +0 -1
  402. package/lib/errors.d.ts +0 -64
  403. package/lib/errors.d.ts.map +0 -1
  404. package/lib/errors.js +0 -97
  405. package/lib/errors.js.map +0 -1
  406. package/lib/errors.spec.d.ts +0 -2
  407. package/lib/errors.spec.d.ts.map +0 -1
  408. package/lib/errors.spec.js +0 -33
  409. package/lib/errors.spec.js.map +0 -1
  410. package/lib/models/aclmodel.spec.d.ts +0 -2
  411. package/lib/models/aclmodel.spec.d.ts.map +0 -1
  412. package/lib/models/aclmodel.spec.js +0 -187
  413. package/lib/models/aclmodel.spec.js.map +0 -1
  414. package/lib/models/coremodel.d.ts +0 -896
  415. package/lib/models/coremodel.d.ts.map +0 -1
  416. package/lib/models/coremodel.js +0 -1214
  417. package/lib/models/coremodel.js.map +0 -1
  418. package/lib/models/coremodel.spec.d.ts +0 -2
  419. package/lib/models/coremodel.spec.d.ts.map +0 -1
  420. package/lib/models/coremodel.spec.js +0 -464
  421. package/lib/models/coremodel.spec.js.map +0 -1
  422. package/lib/models/ident.d.ts +0 -68
  423. package/lib/models/ident.d.ts.map +0 -1
  424. package/lib/models/ident.js +0 -26
  425. package/lib/models/ident.js.map +0 -1
  426. package/lib/models/ident.spec.d.ts +0 -2
  427. package/lib/models/ident.spec.d.ts.map +0 -1
  428. package/lib/models/ident.spec.js +0 -24
  429. package/lib/models/ident.spec.js.map +0 -1
  430. package/lib/models/ownermodel.d.ts +0 -51
  431. package/lib/models/ownermodel.d.ts.map +0 -1
  432. package/lib/models/ownermodel.js +0 -65
  433. package/lib/models/ownermodel.js.map +0 -1
  434. package/lib/models/ownermodel.spec.d.ts +0 -2
  435. package/lib/models/ownermodel.spec.d.ts.map +0 -1
  436. package/lib/models/ownermodel.spec.js +0 -215
  437. package/lib/models/ownermodel.spec.js.map +0 -1
  438. package/lib/models/relations.d.ts +0 -182
  439. package/lib/models/relations.d.ts.map +0 -1
  440. package/lib/models/relations.js +0 -157
  441. package/lib/models/relations.js.map +0 -1
  442. package/lib/models/relations.spec.d.ts +0 -14
  443. package/lib/models/relations.spec.d.ts.map +0 -1
  444. package/lib/models/relations.spec.js +0 -217
  445. package/lib/models/relations.spec.js.map +0 -1
  446. package/lib/models/rolemodel.d.ts +0 -11
  447. package/lib/models/rolemodel.d.ts.map +0 -1
  448. package/lib/models/rolemodel.js.map +0 -1
  449. package/lib/models/rolemodel.spec.d.ts +0 -2
  450. package/lib/models/rolemodel.spec.d.ts.map +0 -1
  451. package/lib/models/rolemodel.spec.js +0 -90
  452. package/lib/models/rolemodel.spec.js.map +0 -1
  453. package/lib/models/simpleuser.d.ts +0 -47
  454. package/lib/models/simpleuser.d.ts.map +0 -1
  455. package/lib/models/simpleuser.js +0 -84
  456. package/lib/models/simpleuser.js.map +0 -1
  457. package/lib/models/test.d.ts +0 -11
  458. package/lib/models/test.d.ts.map +0 -1
  459. package/lib/models/test.js +0 -7
  460. package/lib/models/test.js.map +0 -1
  461. package/lib/models/user.d.ts +0 -67
  462. package/lib/models/user.d.ts.map +0 -1
  463. package/lib/models/user.js +0 -86
  464. package/lib/models/user.js.map +0 -1
  465. package/lib/models/user.spec.d.ts +0 -2
  466. package/lib/models/user.spec.d.ts.map +0 -1
  467. package/lib/models/user.spec.js +0 -89
  468. package/lib/models/user.spec.js.map +0 -1
  469. package/lib/queues/filequeue.d.ts +0 -59
  470. package/lib/queues/filequeue.d.ts.map +0 -1
  471. package/lib/queues/filequeue.js +0 -131
  472. package/lib/queues/filequeue.js.map +0 -1
  473. package/lib/queues/filequeue.spec.d.ts +0 -2
  474. package/lib/queues/filequeue.spec.d.ts.map +0 -1
  475. package/lib/queues/filequeue.spec.js +0 -84
  476. package/lib/queues/filequeue.spec.js.map +0 -1
  477. package/lib/queues/memoryqueue.d.ts.map +0 -1
  478. package/lib/queues/memoryqueue.js.map +0 -1
  479. package/lib/queues/memoryqueue.spec.d.ts +0 -2
  480. package/lib/queues/memoryqueue.spec.d.ts.map +0 -1
  481. package/lib/queues/memoryqueue.spec.js +0 -203
  482. package/lib/queues/memoryqueue.spec.js.map +0 -1
  483. package/lib/queues/queue.spec.d.ts +0 -6
  484. package/lib/queues/queue.spec.d.ts.map +0 -1
  485. package/lib/queues/queue.spec.js +0 -55
  486. package/lib/queues/queue.spec.js.map +0 -1
  487. package/lib/rest/restdomainservice.d.ts +0 -63
  488. package/lib/rest/restdomainservice.d.ts.map +0 -1
  489. package/lib/rest/restdomainservice.js +0 -687
  490. package/lib/rest/restdomainservice.js.map +0 -1
  491. package/lib/rest/restdomainservice.spec.d.ts +0 -2
  492. package/lib/rest/restdomainservice.spec.d.ts.map +0 -1
  493. package/lib/rest/restdomainservice.spec.js +0 -124
  494. package/lib/rest/restdomainservice.spec.js.map +0 -1
  495. package/lib/rest/router.d.ts +0 -174
  496. package/lib/rest/router.d.ts.map +0 -1
  497. package/lib/rest/router.js +0 -429
  498. package/lib/rest/router.js.map +0 -1
  499. package/lib/rest/router.spec.d.ts +0 -2
  500. package/lib/rest/router.spec.d.ts.map +0 -1
  501. package/lib/rest/router.spec.js +0 -255
  502. package/lib/rest/router.spec.js.map +0 -1
  503. package/lib/services/asyncevents.d.ts +0 -152
  504. package/lib/services/asyncevents.d.ts.map +0 -1
  505. package/lib/services/asyncevents.js +0 -217
  506. package/lib/services/asyncevents.js.map +0 -1
  507. package/lib/services/asyncevents.spec.d.ts +0 -2
  508. package/lib/services/asyncevents.spec.d.ts.map +0 -1
  509. package/lib/services/asyncevents.spec.js +0 -118
  510. package/lib/services/asyncevents.spec.js.map +0 -1
  511. package/lib/services/authentication.d.ts.map +0 -1
  512. package/lib/services/authentication.js +0 -773
  513. package/lib/services/authentication.js.map +0 -1
  514. package/lib/services/authentication.spec.d.ts +0 -2
  515. package/lib/services/authentication.spec.d.ts.map +0 -1
  516. package/lib/services/authentication.spec.js +0 -458
  517. package/lib/services/authentication.spec.js.map +0 -1
  518. package/lib/services/binary.d.ts +0 -477
  519. package/lib/services/binary.d.ts.map +0 -1
  520. package/lib/services/binary.js +0 -617
  521. package/lib/services/binary.js.map +0 -1
  522. package/lib/services/binary.spec.d.ts +0 -41
  523. package/lib/services/binary.spec.d.ts.map +0 -1
  524. package/lib/services/binary.spec.js +0 -151
  525. package/lib/services/binary.spec.js.map +0 -1
  526. package/lib/services/cloudbinary.spec.d.ts +0 -6
  527. package/lib/services/cloudbinary.spec.d.ts.map +0 -1
  528. package/lib/services/cloudbinary.spec.js +0 -66
  529. package/lib/services/cloudbinary.spec.js.map +0 -1
  530. package/lib/services/configuration.d.ts.map +0 -1
  531. package/lib/services/configuration.js +0 -193
  532. package/lib/services/configuration.js.map +0 -1
  533. package/lib/services/configuration.spec.d.ts +0 -2
  534. package/lib/services/configuration.spec.d.ts.map +0 -1
  535. package/lib/services/configuration.spec.js +0 -130
  536. package/lib/services/configuration.spec.js.map +0 -1
  537. package/lib/services/cron.d.ts +0 -74
  538. package/lib/services/cron.d.ts.map +0 -1
  539. package/lib/services/cron.js +0 -141
  540. package/lib/services/cron.js.map +0 -1
  541. package/lib/services/cron.spec.d.ts +0 -2
  542. package/lib/services/cron.spec.d.ts.map +0 -1
  543. package/lib/services/cron.spec.js +0 -76
  544. package/lib/services/cron.spec.js.map +0 -1
  545. package/lib/services/cryptoservice.d.ts.map +0 -1
  546. package/lib/services/cryptoservice.js +0 -433
  547. package/lib/services/cryptoservice.js.map +0 -1
  548. package/lib/services/cryptoservice.spec.d.ts +0 -2
  549. package/lib/services/cryptoservice.spec.d.ts.map +0 -1
  550. package/lib/services/cryptoservice.spec.js +0 -177
  551. package/lib/services/cryptoservice.spec.js.map +0 -1
  552. package/lib/services/debugmailer.d.ts +0 -36
  553. package/lib/services/debugmailer.d.ts.map +0 -1
  554. package/lib/services/debugmailer.js.map +0 -1
  555. package/lib/services/debugmailer.spec.d.ts +0 -2
  556. package/lib/services/debugmailer.spec.d.ts.map +0 -1
  557. package/lib/services/debugmailer.spec.js +0 -32
  558. package/lib/services/debugmailer.spec.js.map +0 -1
  559. package/lib/services/domainservice.d.ts +0 -272
  560. package/lib/services/domainservice.d.ts.map +0 -1
  561. package/lib/services/domainservice.js +0 -651
  562. package/lib/services/domainservice.js.map +0 -1
  563. package/lib/services/domainservice.spec.d.ts +0 -2
  564. package/lib/services/domainservice.spec.d.ts.map +0 -1
  565. package/lib/services/domainservice.spec.js +0 -592
  566. package/lib/services/domainservice.spec.js.map +0 -1
  567. package/lib/services/filebinary.d.ts +0 -136
  568. package/lib/services/filebinary.d.ts.map +0 -1
  569. package/lib/services/filebinary.js +0 -373
  570. package/lib/services/filebinary.js.map +0 -1
  571. package/lib/services/filebinary.spec.d.ts +0 -25
  572. package/lib/services/filebinary.spec.d.ts.map +0 -1
  573. package/lib/services/filebinary.spec.js +0 -428
  574. package/lib/services/filebinary.spec.js.map +0 -1
  575. package/lib/services/fileconfiguration.d.ts +0 -23
  576. package/lib/services/fileconfiguration.d.ts.map +0 -1
  577. package/lib/services/fileconfiguration.js +0 -48
  578. package/lib/services/fileconfiguration.js.map +0 -1
  579. package/lib/services/fileconfiguration.spec.d.ts +0 -2
  580. package/lib/services/fileconfiguration.spec.d.ts.map +0 -1
  581. package/lib/services/fileconfiguration.spec.js +0 -215
  582. package/lib/services/fileconfiguration.spec.js.map +0 -1
  583. package/lib/services/invitationservice.d.ts +0 -223
  584. package/lib/services/invitationservice.d.ts.map +0 -1
  585. package/lib/services/invitationservice.js +0 -529
  586. package/lib/services/invitationservice.js.map +0 -1
  587. package/lib/services/invitationservice.spec.d.ts +0 -2
  588. package/lib/services/invitationservice.spec.d.ts.map +0 -1
  589. package/lib/services/invitationservice.spec.js +0 -567
  590. package/lib/services/invitationservice.spec.js.map +0 -1
  591. package/lib/services/kubernetesconfiguration.d.ts +0 -27
  592. package/lib/services/kubernetesconfiguration.d.ts.map +0 -1
  593. package/lib/services/kubernetesconfiguration.js +0 -52
  594. package/lib/services/kubernetesconfiguration.js.map +0 -1
  595. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -2
  596. package/lib/services/kubernetesconfiguration.spec.d.ts.map +0 -1
  597. package/lib/services/kubernetesconfiguration.spec.js +0 -206
  598. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  599. package/lib/services/mailer.d.ts +0 -166
  600. package/lib/services/mailer.d.ts.map +0 -1
  601. package/lib/services/mailer.js +0 -176
  602. package/lib/services/mailer.js.map +0 -1
  603. package/lib/services/mailer.spec.d.ts +0 -2
  604. package/lib/services/mailer.spec.d.ts.map +0 -1
  605. package/lib/services/mailer.spec.js +0 -158
  606. package/lib/services/mailer.spec.js.map +0 -1
  607. package/lib/services/notificationservice.d.ts.map +0 -1
  608. package/lib/services/notificationservice.js.map +0 -1
  609. package/lib/services/notificationservice.spec.d.ts +0 -2
  610. package/lib/services/notificationservice.spec.d.ts.map +0 -1
  611. package/lib/services/notificationservice.spec.js +0 -83
  612. package/lib/services/notificationservice.spec.js.map +0 -1
  613. package/lib/services/oauth.spec.d.ts +0 -2
  614. package/lib/services/oauth.spec.d.ts.map +0 -1
  615. package/lib/services/oauth.spec.js +0 -208
  616. package/lib/services/oauth.spec.js.map +0 -1
  617. package/lib/services/prometheus.d.ts.map +0 -1
  618. package/lib/services/prometheus.js +0 -160
  619. package/lib/services/prometheus.js.map +0 -1
  620. package/lib/services/prometheus.spec.d.ts +0 -2
  621. package/lib/services/prometheus.spec.d.ts.map +0 -1
  622. package/lib/services/prometheus.spec.js +0 -76
  623. package/lib/services/prometheus.spec.js.map +0 -1
  624. package/lib/services/resource.d.ts.map +0 -1
  625. package/lib/services/resource.js +0 -170
  626. package/lib/services/resource.js.map +0 -1
  627. package/lib/services/resource.spec.d.ts +0 -2
  628. package/lib/services/resource.spec.d.ts.map +0 -1
  629. package/lib/services/resource.spec.js +0 -140
  630. package/lib/services/resource.spec.js.map +0 -1
  631. package/lib/services/service.spec.d.ts +0 -2
  632. package/lib/services/service.spec.d.ts.map +0 -1
  633. package/lib/services/service.spec.js +0 -286
  634. package/lib/services/service.spec.js.map +0 -1
  635. package/lib/stores/aggregator.d.ts +0 -48
  636. package/lib/stores/aggregator.d.ts.map +0 -1
  637. package/lib/stores/aggregator.js +0 -80
  638. package/lib/stores/aggregator.js.map +0 -1
  639. package/lib/stores/file.d.ts +0 -108
  640. package/lib/stores/file.d.ts.map +0 -1
  641. package/lib/stores/file.js +0 -188
  642. package/lib/stores/file.js.map +0 -1
  643. package/lib/stores/file.spec.d.ts +0 -13
  644. package/lib/stores/file.spec.d.ts.map +0 -1
  645. package/lib/stores/file.spec.js +0 -138
  646. package/lib/stores/file.spec.js.map +0 -1
  647. package/lib/stores/mapper.d.ts +0 -150
  648. package/lib/stores/mapper.d.ts.map +0 -1
  649. package/lib/stores/mapper.js +0 -293
  650. package/lib/stores/mapper.js.map +0 -1
  651. package/lib/stores/mapper.spec.d.ts +0 -2
  652. package/lib/stores/mapper.spec.d.ts.map +0 -1
  653. package/lib/stores/mapper.spec.js +0 -167
  654. package/lib/stores/mapper.spec.js.map +0 -1
  655. package/lib/stores/memory.d.ts +0 -152
  656. package/lib/stores/memory.d.ts.map +0 -1
  657. package/lib/stores/memory.js +0 -371
  658. package/lib/stores/memory.js.map +0 -1
  659. package/lib/stores/memory.spec.d.ts +0 -14
  660. package/lib/stores/memory.spec.d.ts.map +0 -1
  661. package/lib/stores/memory.spec.js +0 -263
  662. package/lib/stores/memory.spec.js.map +0 -1
  663. package/lib/stores/modelmapper.d.ts +0 -62
  664. package/lib/stores/modelmapper.d.ts.map +0 -1
  665. package/lib/stores/modelmapper.js +0 -197
  666. package/lib/stores/modelmapper.js.map +0 -1
  667. package/lib/stores/store.spec.d.ts +0 -57
  668. package/lib/stores/store.spec.d.ts.map +0 -1
  669. package/lib/stores/store.spec.js +0 -737
  670. package/lib/stores/store.spec.js.map +0 -1
  671. package/lib/test.d.ts +0 -265
  672. package/lib/test.d.ts.map +0 -1
  673. package/lib/test.js +0 -622
  674. package/lib/test.js.map +0 -1
  675. package/lib/unpackedapplication.d.ts.map +0 -1
  676. package/lib/unpackedapplication.js +0 -350
  677. package/lib/unpackedapplication.js.map +0 -1
  678. package/lib/utils/abstractdeployer.spec.d.ts +0 -2
  679. package/lib/utils/abstractdeployer.spec.d.ts.map +0 -1
  680. package/lib/utils/abstractdeployer.spec.js +0 -21
  681. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  682. package/lib/utils/case.d.ts +0 -8
  683. package/lib/utils/case.d.ts.map +0 -1
  684. package/lib/utils/case.js +0 -43
  685. package/lib/utils/case.js.map +0 -1
  686. package/lib/utils/case.spec.d.ts +0 -2
  687. package/lib/utils/case.spec.d.ts.map +0 -1
  688. package/lib/utils/case.spec.js +0 -50
  689. package/lib/utils/case.spec.js.map +0 -1
  690. package/lib/utils/context.d.ts +0 -482
  691. package/lib/utils/context.d.ts.map +0 -1
  692. package/lib/utils/context.js +0 -739
  693. package/lib/utils/context.js.map +0 -1
  694. package/lib/utils/context.spec.d.ts +0 -10
  695. package/lib/utils/context.spec.d.ts.map +0 -1
  696. package/lib/utils/context.spec.js +0 -383
  697. package/lib/utils/context.spec.js.map +0 -1
  698. package/lib/utils/cookie.d.ts.map +0 -1
  699. package/lib/utils/cookie.js.map +0 -1
  700. package/lib/utils/cookie.spec.d.ts +0 -2
  701. package/lib/utils/cookie.spec.d.ts.map +0 -1
  702. package/lib/utils/cookie.spec.js +0 -88
  703. package/lib/utils/cookie.spec.js.map +0 -1
  704. package/lib/utils/esm.d.ts +0 -14
  705. package/lib/utils/esm.d.ts.map +0 -1
  706. package/lib/utils/esm.js +0 -19
  707. package/lib/utils/esm.js.map +0 -1
  708. package/lib/utils/httpcontext.d.ts.map +0 -1
  709. package/lib/utils/httpcontext.js.map +0 -1
  710. package/lib/utils/httpcontext.spec.d.ts +0 -5
  711. package/lib/utils/httpcontext.spec.d.ts.map +0 -1
  712. package/lib/utils/httpcontext.spec.js +0 -77
  713. package/lib/utils/httpcontext.spec.js.map +0 -1
  714. package/lib/utils/logger.d.ts +0 -92
  715. package/lib/utils/logger.d.ts.map +0 -1
  716. package/lib/utils/logger.js +0 -121
  717. package/lib/utils/logger.js.map +0 -1
  718. package/lib/utils/logger.spec.d.ts +0 -2
  719. package/lib/utils/logger.spec.d.ts.map +0 -1
  720. package/lib/utils/logger.spec.js +0 -48
  721. package/lib/utils/logger.spec.js.map +0 -1
  722. package/lib/utils/serializers.d.ts +0 -162
  723. package/lib/utils/serializers.d.ts.map +0 -1
  724. package/lib/utils/serializers.js +0 -420
  725. package/lib/utils/serializers.js.map +0 -1
  726. package/lib/utils/serializers.spec.d.ts +0 -2
  727. package/lib/utils/serializers.spec.d.ts.map +0 -1
  728. package/lib/utils/serializers.spec.js +0 -311
  729. package/lib/utils/serializers.spec.js.map +0 -1
  730. package/lib/utils/session.d.ts +0 -123
  731. package/lib/utils/session.d.ts.map +0 -1
  732. package/lib/utils/session.js +0 -156
  733. package/lib/utils/session.js.map +0 -1
  734. package/lib/utils/session.spec.d.ts +0 -2
  735. package/lib/utils/session.spec.d.ts.map +0 -1
  736. package/lib/utils/session.spec.js +0 -81
  737. package/lib/utils/session.spec.js.map +0 -1
  738. package/lib/utils/throttler.d.ts +0 -99
  739. package/lib/utils/throttler.d.ts.map +0 -1
  740. package/lib/utils/throttler.js +0 -160
  741. package/lib/utils/throttler.js.map +0 -1
  742. package/lib/utils/throttler.spec.d.ts +0 -2
  743. package/lib/utils/throttler.spec.d.ts.map +0 -1
  744. package/lib/utils/throttler.spec.js +0 -53
  745. package/lib/utils/throttler.spec.js.map +0 -1
  746. package/lib/utils/waiter.d.ts +0 -94
  747. package/lib/utils/waiter.d.ts.map +0 -1
  748. package/lib/utils/waiter.js +0 -148
  749. package/lib/utils/waiter.js.map +0 -1
  750. package/lib/utils/waiter.spec.d.ts +0 -2
  751. package/lib/utils/waiter.spec.d.ts.map +0 -1
  752. package/lib/utils/waiter.spec.js +0 -98
  753. package/lib/utils/waiter.spec.js.map +0 -1
  754. package/test/jsonutils/mdocs.yaml +0 -56
  755. package/test/jsonutils/test.json +0 -3
  756. 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