@webda/core 4.0.0-beta.1 → 4.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (675) hide show
  1. package/README.md +252 -0
  2. package/lib/application/application.d.ts +437 -0
  3. package/lib/application/application.d.ts.map +1 -0
  4. package/lib/application/application.js +792 -0
  5. package/lib/application/application.js.map +1 -0
  6. package/lib/application/hooks.d.ts +34 -0
  7. package/lib/application/hooks.d.ts.map +1 -0
  8. package/lib/application/hooks.js +57 -0
  9. package/lib/application/hooks.js.map +1 -0
  10. package/lib/application/iapplication.d.ts +43 -0
  11. package/lib/application/iapplication.d.ts.map +1 -0
  12. package/lib/application/iapplication.js +2 -0
  13. package/lib/application/iapplication.js.map +1 -0
  14. package/lib/application/iconfiguration.d.ts +176 -0
  15. package/lib/application/iconfiguration.d.ts.map +1 -0
  16. package/lib/application/iconfiguration.js +8 -0
  17. package/lib/application/iconfiguration.js.map +1 -0
  18. package/lib/application/runner.d.ts +8 -0
  19. package/lib/application/runner.d.ts.map +1 -0
  20. package/lib/application/runner.js +26 -0
  21. package/lib/application/runner.js.map +1 -0
  22. package/lib/application/unpackedapplication.d.ts +104 -0
  23. package/lib/application/unpackedapplication.d.ts.map +1 -0
  24. package/lib/application/unpackedapplication.js +492 -0
  25. package/lib/application/unpackedapplication.js.map +1 -0
  26. package/lib/bin/cli-phase.d.ts +28 -0
  27. package/lib/bin/cli-phase.d.ts.map +1 -0
  28. package/lib/bin/cli-phase.js +44 -0
  29. package/lib/bin/cli-phase.js.map +1 -0
  30. package/lib/bin/cli.d.ts +161 -0
  31. package/lib/bin/cli.d.ts.map +1 -0
  32. package/lib/bin/cli.js +828 -0
  33. package/lib/bin/cli.js.map +1 -0
  34. package/lib/bin/launcher.d.ts +3 -0
  35. package/lib/bin/launcher.d.ts.map +1 -0
  36. package/lib/bin/launcher.js +50 -0
  37. package/lib/bin/launcher.js.map +1 -0
  38. package/lib/cache/cache.d.ts +33 -0
  39. package/lib/cache/cache.d.ts.map +1 -0
  40. package/lib/cache/cache.js +8 -0
  41. package/lib/cache/cache.js.map +1 -0
  42. package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -49
  43. package/lib/configurations/configuration.service.d.ts.map +1 -0
  44. package/lib/configurations/configuration.service.js +248 -0
  45. package/lib/configurations/configuration.service.js.map +1 -0
  46. package/lib/configurations/fileconfiguration.service.d.ts +30 -0
  47. package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
  48. package/lib/configurations/fileconfiguration.service.js +65 -0
  49. package/lib/configurations/fileconfiguration.service.js.map +1 -0
  50. package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
  51. package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
  52. package/lib/configurations/kubernetesconfiguration.service.js +83 -0
  53. package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
  54. package/lib/contexts/execution.d.ts +33 -0
  55. package/lib/contexts/execution.d.ts.map +1 -0
  56. package/lib/contexts/execution.js +73 -0
  57. package/lib/contexts/execution.js.map +1 -0
  58. package/lib/contexts/globalcontext.d.ts +29 -0
  59. package/lib/contexts/globalcontext.d.ts.map +1 -0
  60. package/lib/contexts/globalcontext.js +38 -0
  61. package/lib/contexts/globalcontext.js.map +1 -0
  62. package/lib/{utils → contexts}/httpcontext.d.ts +45 -19
  63. package/lib/contexts/httpcontext.d.ts.map +1 -0
  64. package/lib/{utils → contexts}/httpcontext.js +102 -34
  65. package/lib/contexts/httpcontext.js.map +1 -0
  66. package/lib/contexts/icontext.d.ts +236 -0
  67. package/lib/contexts/icontext.d.ts.map +1 -0
  68. package/lib/contexts/icontext.js +230 -0
  69. package/lib/contexts/icontext.js.map +1 -0
  70. package/lib/contexts/operationcontext.d.ts +179 -0
  71. package/lib/contexts/operationcontext.d.ts.map +1 -0
  72. package/lib/contexts/operationcontext.js +358 -0
  73. package/lib/contexts/operationcontext.js.map +1 -0
  74. package/lib/contexts/simplecontext.d.ts +31 -0
  75. package/lib/contexts/simplecontext.d.ts.map +1 -0
  76. package/lib/contexts/simplecontext.js +45 -0
  77. package/lib/contexts/simplecontext.js.map +1 -0
  78. package/lib/contexts/webcontext.d.ts +218 -0
  79. package/lib/contexts/webcontext.d.ts.map +1 -0
  80. package/lib/contexts/webcontext.js +389 -0
  81. package/lib/contexts/webcontext.js.map +1 -0
  82. package/lib/core/authorizer.d.ts +23 -0
  83. package/lib/core/authorizer.d.ts.map +1 -0
  84. package/lib/core/authorizer.js +17 -0
  85. package/lib/core/authorizer.js.map +1 -0
  86. package/lib/core/core.d.ts +225 -0
  87. package/lib/core/core.d.ts.map +1 -0
  88. package/lib/core/core.js +576 -0
  89. package/lib/core/core.js.map +1 -0
  90. package/lib/core/hooks.d.ts +72 -0
  91. package/lib/core/hooks.d.ts.map +1 -0
  92. package/lib/core/hooks.js +73 -0
  93. package/lib/core/hooks.js.map +1 -0
  94. package/lib/core/icore.d.ts +249 -0
  95. package/lib/core/icore.d.ts.map +1 -0
  96. package/lib/core/icore.js +15 -0
  97. package/lib/core/icore.js.map +1 -0
  98. package/lib/core/instancestorage.d.ts +61 -0
  99. package/lib/core/instancestorage.d.ts.map +1 -0
  100. package/lib/core/instancestorage.js +75 -0
  101. package/lib/core/instancestorage.js.map +1 -0
  102. package/lib/core/operations.d.ts +181 -0
  103. package/lib/core/operations.d.ts.map +1 -0
  104. package/lib/core/operations.js +559 -0
  105. package/lib/core/operations.js.map +1 -0
  106. package/lib/errors/errors.d.ts +126 -0
  107. package/lib/errors/errors.d.ts.map +1 -0
  108. package/lib/errors/errors.js +165 -0
  109. package/lib/errors/errors.js.map +1 -0
  110. package/lib/events/asynceventemitter.d.ts +159 -0
  111. package/lib/events/asynceventemitter.d.ts.map +1 -0
  112. package/lib/events/asynceventemitter.js +152 -0
  113. package/lib/events/asynceventemitter.js.map +1 -0
  114. package/lib/events/events.d.ts +112 -0
  115. package/lib/events/events.d.ts.map +1 -0
  116. package/lib/events/events.js +45 -0
  117. package/lib/events/events.js.map +1 -0
  118. package/lib/index.d.ts +84 -51
  119. package/lib/index.d.ts.map +1 -0
  120. package/lib/index.js +82 -59
  121. package/lib/index.js.map +1 -1
  122. package/lib/loggers/console.service.d.ts +24 -0
  123. package/lib/loggers/console.service.d.ts.map +1 -0
  124. package/lib/loggers/console.service.js +30 -0
  125. package/lib/loggers/console.service.js.map +1 -0
  126. package/lib/loggers/file.service.d.ts +25 -0
  127. package/lib/loggers/file.service.d.ts.map +1 -0
  128. package/lib/loggers/file.service.js +33 -0
  129. package/lib/loggers/file.service.js.map +1 -0
  130. package/lib/loggers/hooks.d.ts +20 -0
  131. package/lib/loggers/hooks.d.ts.map +1 -0
  132. package/lib/loggers/hooks.js +40 -0
  133. package/lib/loggers/hooks.js.map +1 -0
  134. package/lib/loggers/ilogger.d.ts +76 -0
  135. package/lib/loggers/ilogger.d.ts.map +1 -0
  136. package/lib/loggers/ilogger.js +108 -0
  137. package/lib/loggers/ilogger.js.map +1 -0
  138. package/lib/loggers/logger.d.ts +13 -0
  139. package/lib/loggers/logger.d.ts.map +1 -0
  140. package/lib/loggers/logger.js +18 -0
  141. package/lib/loggers/logger.js.map +1 -0
  142. package/lib/loggers/memory.service.d.ts +18 -0
  143. package/lib/loggers/memory.service.d.ts.map +1 -0
  144. package/lib/loggers/memory.service.js +21 -0
  145. package/lib/loggers/memory.service.js.map +1 -0
  146. package/lib/loggers/params.d.ts +47 -0
  147. package/lib/loggers/params.d.ts.map +1 -0
  148. package/lib/loggers/params.js +56 -0
  149. package/lib/loggers/params.js.map +1 -0
  150. package/lib/metrics/metrics.d.ts +25 -0
  151. package/lib/metrics/metrics.d.ts.map +1 -0
  152. package/lib/metrics/metrics.js +51 -0
  153. package/lib/metrics/metrics.js.map +1 -0
  154. package/lib/models/aclmodel.d.ts +21 -77
  155. package/lib/models/aclmodel.d.ts.map +1 -0
  156. package/lib/models/aclmodel.js +27 -204
  157. package/lib/models/aclmodel.js.map +1 -1
  158. package/lib/models/coremodel.model.d.ts +5 -0
  159. package/lib/models/coremodel.model.d.ts.map +1 -0
  160. package/lib/models/coremodel.model.js +5 -0
  161. package/lib/models/coremodel.model.js.map +1 -0
  162. package/lib/models/decorator.d.ts +63 -0
  163. package/lib/models/decorator.d.ts.map +1 -0
  164. package/lib/models/decorator.js +63 -0
  165. package/lib/models/decorator.js.map +1 -0
  166. package/lib/models/deployment.d.ts +2 -1
  167. package/lib/models/deployment.d.ts.map +1 -0
  168. package/lib/models/ident.model.d.ts +89 -0
  169. package/lib/models/ident.model.d.ts.map +1 -0
  170. package/lib/models/ident.model.js +115 -0
  171. package/lib/models/ident.model.js.map +1 -0
  172. package/lib/models/ownermodel.model.d.ts +68 -0
  173. package/lib/models/ownermodel.model.d.ts.map +1 -0
  174. package/lib/models/ownermodel.model.js +112 -0
  175. package/lib/models/ownermodel.model.js.map +1 -0
  176. package/lib/models/registry.model.d.ts +76 -0
  177. package/lib/models/registry.model.d.ts.map +1 -0
  178. package/lib/models/registry.model.js +104 -0
  179. package/lib/models/registry.model.js.map +1 -0
  180. package/lib/models/rolemodel.model.d.ts +28 -0
  181. package/lib/models/rolemodel.model.d.ts.map +1 -0
  182. package/lib/models/rolemodel.model.js +53 -0
  183. package/lib/models/rolemodel.model.js.map +1 -0
  184. package/lib/models/simpleuser.model.d.ts +78 -0
  185. package/lib/models/simpleuser.model.d.ts.map +1 -0
  186. package/lib/models/simpleuser.model.js +123 -0
  187. package/lib/models/simpleuser.model.js.map +1 -0
  188. package/lib/models/types.d.ts +113 -0
  189. package/lib/models/types.d.ts.map +1 -0
  190. package/lib/models/types.js +2 -0
  191. package/lib/models/types.js.map +1 -0
  192. package/lib/models/user.model.d.ts +103 -0
  193. package/lib/models/user.model.d.ts.map +1 -0
  194. package/lib/models/user.model.js +125 -0
  195. package/lib/models/user.model.js.map +1 -0
  196. package/lib/queues/memoryqueue.service.d.ts +72 -0
  197. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  198. package/lib/queues/memoryqueue.service.js +136 -0
  199. package/lib/queues/memoryqueue.service.js.map +1 -0
  200. package/lib/queues/pubsubservice.d.ts +9 -6
  201. package/lib/queues/pubsubservice.d.ts.map +1 -0
  202. package/lib/queues/pubsubservice.js +5 -4
  203. package/lib/queues/pubsubservice.js.map +1 -1
  204. package/lib/queues/queueservice.d.ts +10 -11
  205. package/lib/queues/queueservice.d.ts.map +1 -0
  206. package/lib/queues/queueservice.js +48 -20
  207. package/lib/queues/queueservice.js.map +1 -1
  208. package/lib/rest/hooks.d.ts +8 -0
  209. package/lib/rest/hooks.d.ts.map +1 -0
  210. package/lib/rest/hooks.js +10 -0
  211. package/lib/rest/hooks.js.map +1 -0
  212. package/lib/rest/irest.d.ts +212 -0
  213. package/lib/rest/irest.d.ts.map +1 -0
  214. package/lib/rest/irest.js +39 -0
  215. package/lib/rest/irest.js.map +1 -0
  216. package/lib/rest/originfilter.d.ts +38 -0
  217. package/lib/rest/originfilter.d.ts.map +1 -0
  218. package/lib/rest/originfilter.js +61 -0
  219. package/lib/rest/originfilter.js.map +1 -0
  220. package/lib/rest/restoperationstransport.service.d.ts +193 -0
  221. package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
  222. package/lib/rest/restoperationstransport.service.js +780 -0
  223. package/lib/rest/restoperationstransport.service.js.map +1 -0
  224. package/lib/rest/router.service.d.ts +244 -0
  225. package/lib/rest/router.service.d.ts.map +1 -0
  226. package/lib/rest/router.service.js +843 -0
  227. package/lib/rest/router.service.js.map +1 -0
  228. package/lib/schemas/hooks.d.ts +48 -0
  229. package/lib/schemas/hooks.d.ts.map +1 -0
  230. package/lib/schemas/hooks.js +152 -0
  231. package/lib/schemas/hooks.js.map +1 -0
  232. package/lib/services/audit.model.d.ts +208 -0
  233. package/lib/services/audit.model.d.ts.map +1 -0
  234. package/lib/services/audit.model.js +431 -0
  235. package/lib/services/audit.model.js.map +1 -0
  236. package/lib/services/{authentication.d.ts → authentication.service.d.ts} +140 -58
  237. package/lib/services/authentication.service.d.ts.map +1 -0
  238. package/lib/services/authentication.service.js +932 -0
  239. package/lib/services/authentication.service.js.map +1 -0
  240. package/lib/services/binary.service.d.ts +808 -0
  241. package/lib/services/binary.service.d.ts.map +1 -0
  242. package/lib/services/binary.service.js +1365 -0
  243. package/lib/services/binary.service.js.map +1 -0
  244. package/lib/services/cloudbinary.d.ts +19 -13
  245. package/lib/services/cloudbinary.d.ts.map +1 -0
  246. package/lib/services/cloudbinary.js +24 -18
  247. package/lib/services/cloudbinary.js.map +1 -1
  248. package/lib/services/command.d.ts +118 -0
  249. package/lib/services/command.d.ts.map +1 -0
  250. package/lib/services/command.js +97 -0
  251. package/lib/services/command.js.map +1 -0
  252. package/lib/services/cron.service.d.ts +142 -0
  253. package/lib/services/cron.service.d.ts.map +1 -0
  254. package/lib/services/cron.service.js +291 -0
  255. package/lib/services/cron.service.js.map +1 -0
  256. package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +77 -142
  257. package/lib/services/cryptoservice.service.d.ts.map +1 -0
  258. package/lib/services/cryptoservice.service.js +527 -0
  259. package/lib/services/cryptoservice.service.js.map +1 -0
  260. package/lib/services/debugmailer.service.d.ts +49 -0
  261. package/lib/services/debugmailer.service.d.ts.map +1 -0
  262. package/lib/services/debugmailer.service.js +66 -0
  263. package/lib/services/debugmailer.service.js.map +1 -0
  264. package/lib/services/domainservice.service.d.ts +203 -0
  265. package/lib/services/domainservice.service.d.ts.map +1 -0
  266. package/lib/services/domainservice.service.js +600 -0
  267. package/lib/services/domainservice.service.js.map +1 -0
  268. package/lib/services/httpserver.service.d.ts +248 -0
  269. package/lib/services/httpserver.service.d.ts.map +1 -0
  270. package/lib/services/httpserver.service.js +673 -0
  271. package/lib/services/httpserver.service.js.map +1 -0
  272. package/lib/services/iauthentication.d.ts +9 -0
  273. package/lib/services/iauthentication.d.ts.map +1 -0
  274. package/lib/services/iauthentication.js +2 -0
  275. package/lib/services/iauthentication.js.map +1 -0
  276. package/lib/services/icryptoservice.d.ts +127 -0
  277. package/lib/services/icryptoservice.d.ts.map +1 -0
  278. package/lib/services/icryptoservice.js +68 -0
  279. package/lib/services/icryptoservice.js.map +1 -0
  280. package/lib/services/imailer.d.ts +17 -0
  281. package/lib/services/imailer.d.ts.map +1 -0
  282. package/lib/services/imailer.js +2 -0
  283. package/lib/services/imailer.js.map +1 -0
  284. package/lib/services/iservice.d.ts +104 -0
  285. package/lib/services/iservice.d.ts.map +1 -0
  286. package/lib/services/iservice.js +63 -0
  287. package/lib/services/iservice.js.map +1 -0
  288. package/lib/services/mailer.service.d.ts +220 -0
  289. package/lib/services/mailer.service.d.ts.map +1 -0
  290. package/lib/services/mailer.service.js +251 -0
  291. package/lib/services/mailer.service.js.map +1 -0
  292. package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -10
  293. package/lib/services/notificationservice.service.d.ts.map +1 -0
  294. package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
  295. package/lib/services/notificationservice.service.js.map +1 -0
  296. package/lib/services/oauth.d.ts +58 -31
  297. package/lib/services/oauth.d.ts.map +1 -0
  298. package/lib/services/oauth.js +365 -251
  299. package/lib/services/oauth.js.map +1 -1
  300. package/lib/services/operationstransport.d.ts +65 -0
  301. package/lib/services/operationstransport.d.ts.map +1 -0
  302. package/lib/services/operationstransport.js +103 -0
  303. package/lib/services/operationstransport.js.map +1 -0
  304. package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -11
  305. package/lib/services/prometheus.service.d.ts.map +1 -0
  306. package/lib/services/prometheus.service.js +203 -0
  307. package/lib/services/prometheus.service.js.map +1 -0
  308. package/lib/services/resource.service.d.ts +121 -0
  309. package/lib/services/resource.service.d.ts.map +1 -0
  310. package/lib/services/resource.service.js +301 -0
  311. package/lib/services/resource.service.js.map +1 -0
  312. package/lib/services/service.d.ts +88 -189
  313. package/lib/services/service.d.ts.map +1 -0
  314. package/lib/services/service.js +407 -432
  315. package/lib/services/service.js.map +1 -1
  316. package/lib/services/servicecommands.d.ts +99 -0
  317. package/lib/services/servicecommands.d.ts.map +1 -0
  318. package/lib/services/servicecommands.js +165 -0
  319. package/lib/services/servicecommands.js.map +1 -0
  320. package/lib/services/serviceparameters.d.ts +33 -0
  321. package/lib/services/serviceparameters.d.ts.map +1 -0
  322. package/lib/services/serviceparameters.js +79 -0
  323. package/lib/services/serviceparameters.js.map +1 -0
  324. package/lib/{utils → session}/cookie.d.ts +32 -18
  325. package/lib/session/cookie.d.ts.map +1 -0
  326. package/lib/{utils → session}/cookie.js +76 -23
  327. package/lib/session/cookie.js.map +1 -0
  328. package/lib/session/manager.model.d.ts +71 -0
  329. package/lib/session/manager.model.d.ts.map +1 -0
  330. package/lib/session/manager.model.js +155 -0
  331. package/lib/session/manager.model.js.map +1 -0
  332. package/lib/session/session.d.ts +57 -0
  333. package/lib/session/session.d.ts.map +1 -0
  334. package/lib/session/session.js +126 -0
  335. package/lib/session/session.js.map +1 -0
  336. package/lib/stores/istore.d.ts +99 -0
  337. package/lib/stores/istore.d.ts.map +1 -0
  338. package/lib/stores/istore.js +26 -0
  339. package/lib/stores/istore.js.map +1 -0
  340. package/lib/stores/memory.service.d.ts +114 -0
  341. package/lib/stores/memory.service.d.ts.map +1 -0
  342. package/lib/stores/memory.service.js +343 -0
  343. package/lib/stores/memory.service.js.map +1 -0
  344. package/lib/stores/store.d.ts +127 -768
  345. package/lib/stores/store.d.ts.map +1 -0
  346. package/lib/stores/store.js +258 -1718
  347. package/lib/stores/store.js.map +1 -1
  348. package/lib/templates/templates.d.ts +39 -0
  349. package/lib/templates/templates.d.ts.map +1 -0
  350. package/lib/templates/templates.js +92 -0
  351. package/lib/templates/templates.js.map +1 -0
  352. package/lib/test/application.d.ts +174 -0
  353. package/lib/test/application.d.ts.map +1 -0
  354. package/lib/test/application.js +288 -0
  355. package/lib/test/application.js.map +1 -0
  356. package/lib/test/asyncstorage.d.ts +16 -0
  357. package/lib/test/asyncstorage.d.ts.map +1 -0
  358. package/lib/test/asyncstorage.js +32 -0
  359. package/lib/test/asyncstorage.js.map +1 -0
  360. package/lib/test/core.d.ts +63 -0
  361. package/lib/test/core.d.ts.map +1 -0
  362. package/lib/test/core.js +190 -0
  363. package/lib/test/core.js.map +1 -0
  364. package/lib/test/index.d.ts +7 -0
  365. package/lib/test/index.d.ts.map +1 -0
  366. package/lib/test/index.js +8 -0
  367. package/lib/test/index.js.map +1 -0
  368. package/lib/test/internal.d.ts +34 -0
  369. package/lib/test/internal.d.ts.map +1 -0
  370. package/lib/test/internal.js +156 -0
  371. package/lib/test/internal.js.map +1 -0
  372. package/lib/test/objects.d.ts +318 -0
  373. package/lib/test/objects.d.ts.map +1 -0
  374. package/lib/test/objects.js +443 -0
  375. package/lib/test/objects.js.map +1 -0
  376. package/lib/utils/abstractdeployer.d.ts +5 -2
  377. package/lib/utils/abstractdeployer.d.ts.map +1 -0
  378. package/lib/utils/abstractdeployer.js +3 -0
  379. package/lib/utils/abstractdeployer.js.map +1 -1
  380. package/package.json +85 -56
  381. package/test/cachedapp/webda.config.json +1 -5
  382. package/test/config-cached.json +1 -5
  383. package/test/config.json +6 -99
  384. package/test/data/.env +1 -0
  385. package/test/my-cnf.json +9 -0
  386. package/webda.module.json +3462 -2231
  387. package/lib/application.d.ts +0 -876
  388. package/lib/application.js +0 -741
  389. package/lib/application.js.map +0 -1
  390. package/lib/application.spec.d.ts +0 -1
  391. package/lib/application.spec.js +0 -234
  392. package/lib/application.spec.js.map +0 -1
  393. package/lib/core.d.ts +0 -740
  394. package/lib/core.js +0 -1310
  395. package/lib/core.js.map +0 -1
  396. package/lib/core.spec.d.ts +0 -1
  397. package/lib/core.spec.js +0 -761
  398. package/lib/core.spec.js.map +0 -1
  399. package/lib/errors.d.ts +0 -65
  400. package/lib/errors.js +0 -113
  401. package/lib/errors.js.map +0 -1
  402. package/lib/errors.spec.d.ts +0 -1
  403. package/lib/errors.spec.js +0 -33
  404. package/lib/errors.spec.js.map +0 -1
  405. package/lib/models/aclmodel.spec.d.ts +0 -1
  406. package/lib/models/aclmodel.spec.js +0 -187
  407. package/lib/models/aclmodel.spec.js.map +0 -1
  408. package/lib/models/coremodel.d.ts +0 -887
  409. package/lib/models/coremodel.js +0 -1208
  410. package/lib/models/coremodel.js.map +0 -1
  411. package/lib/models/coremodel.spec.d.ts +0 -1
  412. package/lib/models/coremodel.spec.js +0 -462
  413. package/lib/models/coremodel.spec.js.map +0 -1
  414. package/lib/models/ident.d.ts +0 -53
  415. package/lib/models/ident.js +0 -40
  416. package/lib/models/ident.js.map +0 -1
  417. package/lib/models/ident.spec.d.ts +0 -1
  418. package/lib/models/ident.spec.js +0 -43
  419. package/lib/models/ident.spec.js.map +0 -1
  420. package/lib/models/ownermodel.d.ts +0 -50
  421. package/lib/models/ownermodel.js +0 -65
  422. package/lib/models/ownermodel.js.map +0 -1
  423. package/lib/models/ownermodel.spec.d.ts +0 -1
  424. package/lib/models/ownermodel.spec.js +0 -191
  425. package/lib/models/ownermodel.spec.js.map +0 -1
  426. package/lib/models/relations.d.ts +0 -181
  427. package/lib/models/relations.js +0 -157
  428. package/lib/models/relations.js.map +0 -1
  429. package/lib/models/relations.spec.d.ts +0 -12
  430. package/lib/models/relations.spec.js +0 -224
  431. package/lib/models/relations.spec.js.map +0 -1
  432. package/lib/models/rolemodel.d.ts +0 -10
  433. package/lib/models/rolemodel.js +0 -35
  434. package/lib/models/rolemodel.js.map +0 -1
  435. package/lib/models/rolemodel.spec.d.ts +0 -1
  436. package/lib/models/rolemodel.spec.js +0 -86
  437. package/lib/models/rolemodel.spec.js.map +0 -1
  438. package/lib/models/user.d.ts +0 -100
  439. package/lib/models/user.js +0 -157
  440. package/lib/models/user.js.map +0 -1
  441. package/lib/models/user.spec.d.ts +0 -1
  442. package/lib/models/user.spec.js +0 -88
  443. package/lib/models/user.spec.js.map +0 -1
  444. package/lib/queues/filequeue.d.ts +0 -58
  445. package/lib/queues/filequeue.js +0 -131
  446. package/lib/queues/filequeue.js.map +0 -1
  447. package/lib/queues/filequeue.spec.d.ts +0 -1
  448. package/lib/queues/filequeue.spec.js +0 -78
  449. package/lib/queues/filequeue.spec.js.map +0 -1
  450. package/lib/queues/memoryqueue.d.ts +0 -45
  451. package/lib/queues/memoryqueue.js +0 -81
  452. package/lib/queues/memoryqueue.js.map +0 -1
  453. package/lib/queues/memoryqueue.spec.d.ts +0 -1
  454. package/lib/queues/memoryqueue.spec.js +0 -192
  455. package/lib/queues/memoryqueue.spec.js.map +0 -1
  456. package/lib/queues/queue.spec.d.ts +0 -5
  457. package/lib/queues/queue.spec.js +0 -55
  458. package/lib/queues/queue.spec.js.map +0 -1
  459. package/lib/router.d.ts +0 -172
  460. package/lib/router.js +0 -419
  461. package/lib/router.js.map +0 -1
  462. package/lib/router.spec.d.ts +0 -1
  463. package/lib/router.spec.js +0 -229
  464. package/lib/router.spec.js.map +0 -1
  465. package/lib/services/asyncevents.d.ts +0 -151
  466. package/lib/services/asyncevents.js +0 -217
  467. package/lib/services/asyncevents.js.map +0 -1
  468. package/lib/services/asyncevents.spec.d.ts +0 -1
  469. package/lib/services/asyncevents.spec.js +0 -118
  470. package/lib/services/asyncevents.spec.js.map +0 -1
  471. package/lib/services/authentication.js +0 -772
  472. package/lib/services/authentication.js.map +0 -1
  473. package/lib/services/authentication.spec.d.ts +0 -1
  474. package/lib/services/authentication.spec.js +0 -458
  475. package/lib/services/authentication.spec.js.map +0 -1
  476. package/lib/services/binary.d.ts +0 -549
  477. package/lib/services/binary.js +0 -986
  478. package/lib/services/binary.js.map +0 -1
  479. package/lib/services/binary.spec.d.ts +0 -44
  480. package/lib/services/binary.spec.js +0 -438
  481. package/lib/services/binary.spec.js.map +0 -1
  482. package/lib/services/cloudbinary.spec.d.ts +0 -13
  483. package/lib/services/cloudbinary.spec.js +0 -192
  484. package/lib/services/cloudbinary.spec.js.map +0 -1
  485. package/lib/services/configuration.js +0 -178
  486. package/lib/services/configuration.js.map +0 -1
  487. package/lib/services/configuration.spec.d.ts +0 -1
  488. package/lib/services/configuration.spec.js +0 -87
  489. package/lib/services/configuration.spec.js.map +0 -1
  490. package/lib/services/cron.d.ts +0 -73
  491. package/lib/services/cron.js +0 -141
  492. package/lib/services/cron.js.map +0 -1
  493. package/lib/services/cron.spec.d.ts +0 -1
  494. package/lib/services/cron.spec.js +0 -76
  495. package/lib/services/cron.spec.js.map +0 -1
  496. package/lib/services/cryptoservice.js +0 -434
  497. package/lib/services/cryptoservice.js.map +0 -1
  498. package/lib/services/cryptoservice.spec.d.ts +0 -1
  499. package/lib/services/cryptoservice.spec.js +0 -177
  500. package/lib/services/cryptoservice.spec.js.map +0 -1
  501. package/lib/services/debugmailer.d.ts +0 -36
  502. package/lib/services/debugmailer.js +0 -52
  503. package/lib/services/debugmailer.js.map +0 -1
  504. package/lib/services/debugmailer.spec.d.ts +0 -1
  505. package/lib/services/debugmailer.spec.js +0 -29
  506. package/lib/services/debugmailer.spec.js.map +0 -1
  507. package/lib/services/domainservice.d.ts +0 -152
  508. package/lib/services/domainservice.js +0 -881
  509. package/lib/services/domainservice.js.map +0 -1
  510. package/lib/services/domainservice.spec.d.ts +0 -1
  511. package/lib/services/domainservice.spec.js +0 -401
  512. package/lib/services/domainservice.spec.js.map +0 -1
  513. package/lib/services/filebinary.d.ts +0 -133
  514. package/lib/services/filebinary.js +0 -371
  515. package/lib/services/filebinary.js.map +0 -1
  516. package/lib/services/filebinary.spec.d.ts +0 -21
  517. package/lib/services/filebinary.spec.js +0 -415
  518. package/lib/services/filebinary.spec.js.map +0 -1
  519. package/lib/services/fileconfiguration.d.ts +0 -22
  520. package/lib/services/fileconfiguration.js +0 -48
  521. package/lib/services/fileconfiguration.js.map +0 -1
  522. package/lib/services/fileconfiguration.spec.d.ts +0 -1
  523. package/lib/services/fileconfiguration.spec.js +0 -177
  524. package/lib/services/fileconfiguration.spec.js.map +0 -1
  525. package/lib/services/invitationservice.d.ts +0 -222
  526. package/lib/services/invitationservice.js +0 -526
  527. package/lib/services/invitationservice.js.map +0 -1
  528. package/lib/services/invitationservice.spec.d.ts +0 -1
  529. package/lib/services/invitationservice.spec.js +0 -516
  530. package/lib/services/invitationservice.spec.js.map +0 -1
  531. package/lib/services/kubernetesconfiguration.d.ts +0 -26
  532. package/lib/services/kubernetesconfiguration.js +0 -54
  533. package/lib/services/kubernetesconfiguration.js.map +0 -1
  534. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -1
  535. package/lib/services/kubernetesconfiguration.spec.js +0 -147
  536. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  537. package/lib/services/mailer.d.ts +0 -165
  538. package/lib/services/mailer.js +0 -176
  539. package/lib/services/mailer.js.map +0 -1
  540. package/lib/services/mailer.spec.d.ts +0 -1
  541. package/lib/services/mailer.spec.js +0 -144
  542. package/lib/services/mailer.spec.js.map +0 -1
  543. package/lib/services/notificationservice.js.map +0 -1
  544. package/lib/services/notificationservice.spec.d.ts +0 -1
  545. package/lib/services/notificationservice.spec.js +0 -78
  546. package/lib/services/notificationservice.spec.js.map +0 -1
  547. package/lib/services/oauth.spec.d.ts +0 -1
  548. package/lib/services/oauth.spec.js +0 -184
  549. package/lib/services/oauth.spec.js.map +0 -1
  550. package/lib/services/prometheus.js +0 -160
  551. package/lib/services/prometheus.js.map +0 -1
  552. package/lib/services/prometheus.spec.d.ts +0 -1
  553. package/lib/services/prometheus.spec.js +0 -57
  554. package/lib/services/prometheus.spec.js.map +0 -1
  555. package/lib/services/resource.d.ts +0 -87
  556. package/lib/services/resource.js +0 -156
  557. package/lib/services/resource.js.map +0 -1
  558. package/lib/services/resource.spec.d.ts +0 -1
  559. package/lib/services/resource.spec.js +0 -122
  560. package/lib/services/resource.spec.js.map +0 -1
  561. package/lib/services/service.spec.d.ts +0 -1
  562. package/lib/services/service.spec.js +0 -268
  563. package/lib/services/service.spec.js.map +0 -1
  564. package/lib/stores/aggregator.d.ts +0 -41
  565. package/lib/stores/aggregator.js +0 -80
  566. package/lib/stores/aggregator.js.map +0 -1
  567. package/lib/stores/aliasstore.d.ts +0 -108
  568. package/lib/stores/aliasstore.js +0 -168
  569. package/lib/stores/aliasstore.js.map +0 -1
  570. package/lib/stores/aliasstore.spec.d.ts +0 -11
  571. package/lib/stores/aliasstore.spec.js +0 -89
  572. package/lib/stores/aliasstore.spec.js.map +0 -1
  573. package/lib/stores/file.d.ts +0 -107
  574. package/lib/stores/file.js +0 -188
  575. package/lib/stores/file.js.map +0 -1
  576. package/lib/stores/file.spec.d.ts +0 -19
  577. package/lib/stores/file.spec.js +0 -232
  578. package/lib/stores/file.spec.js.map +0 -1
  579. package/lib/stores/mapper.d.ts +0 -149
  580. package/lib/stores/mapper.js +0 -293
  581. package/lib/stores/mapper.js.map +0 -1
  582. package/lib/stores/mapper.spec.d.ts +0 -1
  583. package/lib/stores/mapper.spec.js +0 -160
  584. package/lib/stores/mapper.spec.js.map +0 -1
  585. package/lib/stores/memory.d.ts +0 -151
  586. package/lib/stores/memory.js +0 -371
  587. package/lib/stores/memory.js.map +0 -1
  588. package/lib/stores/memory.spec.d.ts +0 -20
  589. package/lib/stores/memory.spec.js +0 -328
  590. package/lib/stores/memory.spec.js.map +0 -1
  591. package/lib/stores/modelmapper.d.ts +0 -61
  592. package/lib/stores/modelmapper.js +0 -199
  593. package/lib/stores/modelmapper.js.map +0 -1
  594. package/lib/stores/store.spec.d.ts +0 -65
  595. package/lib/stores/store.spec.js +0 -906
  596. package/lib/stores/store.spec.js.map +0 -1
  597. package/lib/test.d.ts +0 -162
  598. package/lib/test.js +0 -399
  599. package/lib/test.js.map +0 -1
  600. package/lib/unpackedapplication.d.ts +0 -76
  601. package/lib/unpackedapplication.js +0 -299
  602. package/lib/unpackedapplication.js.map +0 -1
  603. package/lib/utils/abstractdeployer.spec.d.ts +0 -1
  604. package/lib/utils/abstractdeployer.spec.js +0 -21
  605. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  606. package/lib/utils/case.d.ts +0 -7
  607. package/lib/utils/case.js +0 -43
  608. package/lib/utils/case.js.map +0 -1
  609. package/lib/utils/case.spec.d.ts +0 -1
  610. package/lib/utils/case.spec.js +0 -50
  611. package/lib/utils/case.spec.js.map +0 -1
  612. package/lib/utils/context.d.ts +0 -462
  613. package/lib/utils/context.js +0 -732
  614. package/lib/utils/context.js.map +0 -1
  615. package/lib/utils/context.spec.d.ts +0 -9
  616. package/lib/utils/context.spec.js +0 -372
  617. package/lib/utils/context.spec.js.map +0 -1
  618. package/lib/utils/cookie.js.map +0 -1
  619. package/lib/utils/cookie.spec.d.ts +0 -1
  620. package/lib/utils/cookie.spec.js +0 -78
  621. package/lib/utils/cookie.spec.js.map +0 -1
  622. package/lib/utils/esm.d.ts +0 -13
  623. package/lib/utils/esm.js +0 -19
  624. package/lib/utils/esm.js.map +0 -1
  625. package/lib/utils/httpcontext.js.map +0 -1
  626. package/lib/utils/httpcontext.spec.d.ts +0 -4
  627. package/lib/utils/httpcontext.spec.js +0 -77
  628. package/lib/utils/httpcontext.spec.js.map +0 -1
  629. package/lib/utils/logger.d.ts +0 -91
  630. package/lib/utils/logger.js +0 -121
  631. package/lib/utils/logger.js.map +0 -1
  632. package/lib/utils/logger.spec.d.ts +0 -1
  633. package/lib/utils/logger.spec.js +0 -48
  634. package/lib/utils/logger.spec.js.map +0 -1
  635. package/lib/utils/serializers.d.ts +0 -161
  636. package/lib/utils/serializers.js +0 -420
  637. package/lib/utils/serializers.js.map +0 -1
  638. package/lib/utils/serializers.spec.d.ts +0 -1
  639. package/lib/utils/serializers.spec.js +0 -313
  640. package/lib/utils/serializers.spec.js.map +0 -1
  641. package/lib/utils/session.d.ts +0 -126
  642. package/lib/utils/session.js +0 -166
  643. package/lib/utils/session.js.map +0 -1
  644. package/lib/utils/session.spec.d.ts +0 -1
  645. package/lib/utils/session.spec.js +0 -71
  646. package/lib/utils/session.spec.js.map +0 -1
  647. package/lib/utils/throttler.d.ts +0 -102
  648. package/lib/utils/throttler.js +0 -168
  649. package/lib/utils/throttler.js.map +0 -1
  650. package/lib/utils/throttler.spec.d.ts +0 -1
  651. package/lib/utils/throttler.spec.js +0 -55
  652. package/lib/utils/throttler.spec.js.map +0 -1
  653. package/lib/utils/waiter.d.ts +0 -93
  654. package/lib/utils/waiter.js +0 -148
  655. package/lib/utils/waiter.js.map +0 -1
  656. package/lib/utils/waiter.spec.d.ts +0 -1
  657. package/lib/utils/waiter.spec.js +0 -98
  658. package/lib/utils/waiter.spec.js.map +0 -1
  659. package/test/config-file-missing-file-no-default.json +0 -44
  660. package/test/config-file-missing-file.json +0 -55
  661. package/test/config-file-no-reload.json +0 -69
  662. package/test/config-file-reload.json +0 -68
  663. package/test/config-invitation.json +0 -63
  664. package/test/config-kube-reload.json +0 -68
  665. package/test/config-reload.json +0 -66
  666. package/test/config.old.json +0 -152
  667. package/test/jsonutils/mdocs.yaml +0 -56
  668. package/test/jsonutils/test.json +0 -3
  669. package/test/jsonutils/test.yml +0 -5
  670. package/test/moddas/annotatedservice.js +0 -23
  671. package/test/moddas/debugmailer.js +0 -13
  672. package/test/moddas/fakeservice.js +0 -4
  673. package/test/moddas/voidstore.js +0 -66
  674. package/test/models/ident.js +0 -36
  675. package/test/models/task.js +0 -42
@@ -1,732 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import acceptLanguage from "accept-language";
8
- import { EventEmitter } from "events";
9
- import sanitize from "sanitize-html";
10
- import { Readable } from "stream";
11
- import { WritableStreamBuffer } from "stream-buffers";
12
- import { NotEnumerable } from "../models/coremodel.js";
13
- import { Session } from "../utils/session.js";
14
- import { JSONUtils } from "./serializers.js";
15
- /**
16
- * @category CoreFeatures
17
- */
18
- class Cookie {
19
- }
20
- /**
21
- * OperationContext is used when call to an operation
22
- *
23
- * @param T type of input for this context
24
- * @param U type of output for this context
25
- */
26
- export class OperationContext extends EventEmitter {
27
- /**
28
- * @ignore
29
- * Used by Webda framework to set the body, session and output stream if known
30
- */
31
- constructor(webda, stream = undefined) {
32
- super();
33
- this.extensions = {};
34
- this._webda = webda;
35
- this._promises = [];
36
- this._body = undefined;
37
- this._stream = stream;
38
- if (stream === undefined) {
39
- this.createStream();
40
- }
41
- }
42
- /**
43
- * Get an extension of the context
44
- * @param name of the extension
45
- * @returns extension object
46
- */
47
- getExtension(name) {
48
- return this.extensions[name];
49
- }
50
- /**
51
- * For easier compatibility with WebContext
52
- * On OperationContext this call is simply ignored
53
- */
54
- setHeader(_name, _value) {
55
- // Do nothing
56
- }
57
- /**
58
- * For easier compatibility with WebContext
59
- * On OperationContext this call is simply ignored
60
- */
61
- writeHead(_code, _headers) {
62
- // Do nothing
63
- }
64
- /**
65
- *
66
- * @param name to add
67
- * @param extension object to store
68
- */
69
- setExtension(name, extension) {
70
- this.extensions[name] = extension;
71
- return this;
72
- }
73
- /**
74
- * Return the webda
75
- */
76
- getWebda() {
77
- return this._webda;
78
- }
79
- /**
80
- * Register a promise with the context
81
- * @param promise
82
- */
83
- addAsyncRequest(promise) {
84
- this._promises.push(promise);
85
- }
86
- /**
87
- * Get output as string, if a OutputStream is provided it will returned null
88
- * @returns
89
- */
90
- getOutput() {
91
- if (this._stream instanceof WritableStreamBuffer && this._stream.size()) {
92
- return this._stream.getContents().toString();
93
- }
94
- return this._body;
95
- }
96
- /**
97
- * Get current http context
98
- */
99
- getHttpContext() {
100
- return this.getExtension("http");
101
- }
102
- /**
103
- * Ensure the whole execution is finished
104
- */
105
- async end() {
106
- this.emit("end");
107
- await Promise.all(this._promises);
108
- this.emit("close");
109
- }
110
- async getInput(sanitizedOptions = {
111
- allowedTags: [],
112
- allowedAttributes: {}
113
- }) {
114
- if (this._sanitized && !sanitizedOptions.raw) {
115
- return this._sanitized;
116
- }
117
- let recursiveSanitize = (obj, options = undefined, path = "") => {
118
- if (typeof obj === "string") {
119
- return sanitize(obj, options);
120
- }
121
- if (obj !== null && typeof obj === "object") {
122
- Object.keys(obj).forEach(key => {
123
- obj[key] =
124
- Array.isArray(sanitizedOptions.raw) && sanitizedOptions.raw.includes(path + key)
125
- ? obj[key]
126
- : recursiveSanitize(obj[key], options, path + key + ".");
127
- });
128
- }
129
- return obj;
130
- };
131
- try {
132
- let data = await this.getRawInputAsString(this.getWebda().getGlobalParams().requestLimit, this.getWebda().getGlobalParams().requestTimeout);
133
- if (sanitizedOptions.raw === true) {
134
- return JSON.parse(data || sanitizedOptions.defaultValue);
135
- }
136
- if (!data || data.length === 0) {
137
- this._sanitized = sanitizedOptions.defaultValue;
138
- return this._sanitized;
139
- }
140
- this._sanitized = recursiveSanitize(JSON.parse(data), sanitizedOptions);
141
- }
142
- catch (err) {
143
- this.log("ERROR", err, `Body: '${await this.getRawInputAsString()}'`);
144
- this._sanitized = sanitizedOptions.defaultValue;
145
- }
146
- return this._sanitized;
147
- }
148
- /**
149
- * By default empty
150
- * @returns
151
- */
152
- async getRawInputAsString(limit = 1024 * 1024 * 10, timeout = 60000, encoding) {
153
- return (await this.getRawInput(limit, timeout)).toString(encoding);
154
- }
155
- /**
156
- * @override
157
- */
158
- async getRawInput(_limit = 1024 * 1024 * 10, _timeout = 60000) {
159
- return Buffer.from("");
160
- }
161
- /**
162
- * @override
163
- */
164
- getRawStream() {
165
- return undefined;
166
- }
167
- /**
168
- * Get the HTTP stream to output raw data
169
- * @returns {*}
170
- */
171
- getOutputStream() {
172
- return this._stream;
173
- }
174
- /**
175
- * Get linked session
176
- * @returns
177
- */
178
- getSession() {
179
- return this.session;
180
- }
181
- /**
182
- * Remove sanitized body
183
- */
184
- reinit() {
185
- this._sanitized = undefined;
186
- if (!this._stream || this._stream instanceof WritableStreamBuffer) {
187
- this.createStream();
188
- }
189
- }
190
- /**
191
- * Create a buffer stream
192
- */
193
- createStream() {
194
- this._stream = new WritableStreamBuffer({
195
- initialSize: 100 * 1024,
196
- incrementAmount: 100 * 1024
197
- });
198
- }
199
- /**
200
- * Proxy for simplification
201
- * @param level
202
- * @param args
203
- */
204
- log(level, ...args) {
205
- this._webda.log(level, ...args);
206
- }
207
- /**
208
- * Create a new session
209
- * @returns
210
- */
211
- async newSession() {
212
- this.session = await this._webda.getService("SessionManager").newSession(this);
213
- return this.session;
214
- }
215
- /**
216
- * Remove everything that was about to be sent
217
- */
218
- resetResponse() {
219
- this._body = undefined;
220
- if (this._stream instanceof WritableStreamBuffer) {
221
- this.createStream();
222
- }
223
- }
224
- /**
225
- * Write data to the client
226
- *
227
- * @param output If it is an object it will be serialized with toPublicJSON, if it is a String it will be appended to the result, if it is a buffer it will replace the result
228
- * @param ...args any arguments to pass to the toPublicJSON method
229
- */
230
- write(output, _encoding, _cb) {
231
- if (!output) {
232
- return false;
233
- }
234
- if (typeof output === "object" && !(output instanceof Buffer)) {
235
- this._body = JSONUtils.stringify(output, undefined, 0, true);
236
- }
237
- else if (typeof output == "string") {
238
- if (this._body == undefined) {
239
- this._body = "";
240
- }
241
- this._body += output;
242
- }
243
- else {
244
- this._body = output.toString();
245
- }
246
- return true;
247
- }
248
- async init() {
249
- return this;
250
- }
251
- /**
252
- * Get the current user from session
253
- */
254
- async getCurrentUser(refresh = false) {
255
- if (!this.getCurrentUserId()) {
256
- return undefined;
257
- }
258
- // Caching the answer
259
- if (!this.user || refresh) {
260
- this.user = await this._webda.getApplication().getModel("User").ref(this.getCurrentUserId()).get(this);
261
- }
262
- return this.user;
263
- }
264
- /**
265
- * Get the current user id from session
266
- */
267
- getCurrentUserId() {
268
- return undefined;
269
- }
270
- /**
271
- * Global context is the default Context
272
- *
273
- * Whenever a request is internal to the system
274
- * or not linked to a user request
275
- * @returns
276
- */
277
- isGlobal() {
278
- return false;
279
- }
280
- }
281
- __decorate([
282
- NotEnumerable
283
- ], OperationContext.prototype, "_webda", void 0);
284
- __decorate([
285
- NotEnumerable
286
- ], OperationContext.prototype, "_promises", void 0);
287
- __decorate([
288
- NotEnumerable
289
- ], OperationContext.prototype, "_stream", void 0);
290
- export class GlobalContext extends OperationContext {
291
- constructor(webda) {
292
- super(webda);
293
- this.session = new Session();
294
- this.session.login("system", "system");
295
- // Disable logout
296
- this.session.logout = () => { };
297
- }
298
- /**
299
- * @override
300
- */
301
- isGlobal() {
302
- return true;
303
- }
304
- }
305
- /**
306
- * Simple Operation Context with custom input
307
- */
308
- export class SimpleOperationContext extends OperationContext {
309
- constructor(webda) {
310
- super(webda);
311
- }
312
- /**
313
- * Create another context from an existing one
314
- * @param context
315
- * @returns
316
- */
317
- static async fromContext(context) {
318
- const ctx = new SimpleOperationContext(context.getWebda());
319
- ctx.setSession(context.getSession());
320
- ctx.setInput(Buffer.from(JSONUtils.stringify(await context.getInput())));
321
- return ctx;
322
- }
323
- /**
324
- * Set the input
325
- */
326
- setInput(input) {
327
- this.input = input;
328
- return this;
329
- }
330
- /**
331
- * Set the session
332
- * @param session
333
- * @returns
334
- */
335
- setSession(session) {
336
- this.session = session;
337
- return this;
338
- }
339
- /**
340
- * @override
341
- */
342
- async getRawInput(limit = 1024 * 1024 * 10, _timeout = 60000) {
343
- return this.input.slice(0, limit);
344
- }
345
- }
346
- /**
347
- * This represent in fact a WebContext
348
- * In 3.0 an abstract version of Context will replace this (closer to OperationContext)
349
- * @category CoreFeatures
350
- *
351
- */
352
- export class WebContext extends OperationContext {
353
- /**
354
- * Set current http context
355
- * @param httpContext current http context
356
- */
357
- setHttpContext(httpContext) {
358
- this.extensions["http"] = httpContext;
359
- this.reinit();
360
- }
361
- /**
362
- * @override
363
- */
364
- async getRawInputAsString(limit = 1024 * 1024 * 10, timeout = 60000, encoding) {
365
- return this.getHttpContext().getRawBodyAsString(limit, timeout, encoding);
366
- }
367
- /**
368
- * @override
369
- */
370
- async getRawInput(limit = 1024 * 1024 * 10, timeout = 60000) {
371
- return this.getHttpContext().getRawBody(limit, timeout);
372
- }
373
- /**
374
- * @override
375
- */
376
- getRawStream() {
377
- return this.getHttpContext().getRawStream();
378
- }
379
- /**
380
- * Get output headers
381
- */
382
- getResponseHeaders() {
383
- return this._outputHeaders;
384
- }
385
- getRequestParameters() {
386
- return this.parameters;
387
- }
388
- parameter(name) {
389
- return this.getParameters()[name];
390
- }
391
- getParameters() {
392
- return this.parameters;
393
- }
394
- processParameters() {
395
- this.parameters = Object.assign({}, this._serviceParams);
396
- this.parameters = Object.assign(this.parameters, this._pathParams);
397
- }
398
- getServiceParameters() {
399
- return this._serviceParams;
400
- }
401
- getPathParameters() {
402
- return this._pathParams;
403
- }
404
- setServiceParameters(params) {
405
- this._serviceParams = params;
406
- this.processParameters();
407
- }
408
- setPathParameters(params) {
409
- this._pathParams = params;
410
- this.processParameters();
411
- }
412
- /**
413
- * Remove everything that was about to be sent
414
- */
415
- resetResponse() {
416
- this._outputHeaders = {};
417
- super.resetResponse();
418
- }
419
- /**
420
- * Write data to the client
421
- *
422
- * @param output If it is an object it will be serializeb with toPublicJSON, if it is a String it will be appended to the result, if it is a buffer it will replace the result
423
- * @param ...args any arguments to pass to the toPublicJSON method
424
- */
425
- // @ts-ignore
426
- write(output, encoding, cb) {
427
- if (this.statusCode === 204) {
428
- this.statusCode = 200;
429
- }
430
- if (typeof output === "object" && !(output instanceof Buffer) && !this.hasFlushedHeaders()) {
431
- this.setHeader("Content-type", "application/json");
432
- }
433
- return super.write(output, encoding, cb);
434
- }
435
- /**
436
- * Set a header value
437
- *
438
- * @param {String} header name
439
- * @param {String} value
440
- */
441
- setHeader(header, value) {
442
- if (this.headersFlushed) {
443
- throw new Error("Headers have been sent already");
444
- }
445
- if (value) {
446
- this._outputHeaders[header] = value;
447
- }
448
- else if (this._outputHeaders[header]) {
449
- delete this._outputHeaders[header];
450
- }
451
- }
452
- /**
453
- * Write the http return code and some headers
454
- * Those headers are not flushed yet so can still be overwritten
455
- *
456
- * @param {Number} statusCode to return to the client
457
- * @param {Object} headers to add to the response
458
- */
459
- writeHead(statusCode, headers = undefined) {
460
- this._outputHeaders = { ...this._outputHeaders, ...headers };
461
- // Ensure undefined values are removed
462
- Object.keys(this._outputHeaders)
463
- .filter(h => this._outputHeaders[h] === undefined)
464
- .forEach(h => delete this._outputHeaders[h]);
465
- if (statusCode !== undefined) {
466
- this.statusCode = statusCode;
467
- }
468
- return this;
469
- }
470
- /**
471
- *
472
- * @returns
473
- */
474
- getResponseCode() {
475
- return this.statusCode || 200;
476
- }
477
- /**
478
- * Redirect to another url
479
- * @param url
480
- */
481
- redirect(url) {
482
- this.writeHead(302, { Location: url });
483
- }
484
- /**
485
- * For compatibility reason
486
- */
487
- cookie(param, value, options = undefined) {
488
- /** @ignore */
489
- if (this._cookie === undefined) {
490
- this._cookie = new Map();
491
- }
492
- this._cookie[param] = { name: param, value, options };
493
- }
494
- getResponseCookies() {
495
- return this._cookie;
496
- }
497
- isEnded() {
498
- return this._ended;
499
- }
500
- /******************************
501
- *
502
- * Express Compatibiliy method
503
- *
504
- ******************************/
505
- /**
506
- * Express response allow statusCode to be defined this way
507
- * @param code to return
508
- */
509
- status(code) {
510
- this.statusCode = code;
511
- return this;
512
- }
513
- /**
514
- * Express response allow answer to be sent this way
515
- * @param code to return
516
- */
517
- json(obj) {
518
- this.write(obj);
519
- return this;
520
- }
521
- /**
522
- * Return the response size
523
- * @returns
524
- */
525
- getResponseSize() {
526
- return this._body ? Buffer.byteLength(this._body, "utf8") : undefined;
527
- }
528
- /**
529
- * Flush the request
530
- *
531
- * @emits 'finish' event
532
- * @throws Error if the request was already ended
533
- */
534
- async end() {
535
- /** @ignore */
536
- if (this._ended) {
537
- return this._ended;
538
- }
539
- this._ended = (async () => {
540
- this.emit("end");
541
- if (this.getExtension("http")) {
542
- await this._webda.getService("SessionManager").save(this, this.session);
543
- }
544
- await Promise.all(this._promises);
545
- if (this._stream instanceof WritableStreamBuffer && this._stream.size()) {
546
- this._body = this._stream.getContents().toString();
547
- this.statusCode = this.statusCode < 300 ? 200 : this.statusCode;
548
- }
549
- if (!this.headersFlushed) {
550
- this._webda.flushHeaders(this);
551
- }
552
- this._webda.flush(this);
553
- this.emit("close");
554
- })();
555
- return this._ended;
556
- }
557
- /**
558
- * Alias to keep compatibility with WebContext
559
- * @param sanitizedOptions
560
- * @returns
561
- */
562
- async getRequestBody(sanitizedOptions = {
563
- allowedTags: [],
564
- allowedAttributes: {}
565
- }) {
566
- return this.getInput(sanitizedOptions);
567
- }
568
- /**
569
- * Get request body
570
- * @returns
571
- */
572
- getResponseBody() {
573
- if (!this._body && this._stream instanceof WritableStreamBuffer) {
574
- return this._stream.getContents();
575
- }
576
- return this._body;
577
- }
578
- /**
579
- * Retrieve a http.IncomingMessage valid from Context
580
- *
581
- * Need more testing
582
- * @returns
583
- */
584
- getRequest() {
585
- const stream = Readable.from([JSON.stringify(this.getRequestBody())]);
586
- return {
587
- httpVersionMajor: 1,
588
- httpVersionMinor: 0,
589
- headers: this.headers,
590
- httpVersion: "1.0",
591
- method: this.getHttpContext().getMethod(),
592
- rawHeaders: [], // TODO Regenerate headers based on the map
593
- rawTrailers: [],
594
- setTimeout: (msec, callback) => {
595
- setTimeout(callback, msec);
596
- },
597
- socket: undefined,
598
- statusCode: 200,
599
- trailers: {},
600
- url: this.getHttpContext().getUrl(),
601
- connection: undefined,
602
- ...stream
603
- };
604
- }
605
- /**
606
- * Get a service from webda
607
- *
608
- * @see Webda
609
- * @param {String} name of the service
610
- */
611
- getService(name) {
612
- return this._webda.getService(name);
613
- }
614
- /**
615
- * Get the HTTP stream to output raw data
616
- * @returns {*}
617
- */
618
- getStream() {
619
- return this.getOutputStream();
620
- }
621
- /**
622
- * Get the current user id from session
623
- */
624
- getCurrentUserId() {
625
- if (this.session) {
626
- return this.session.userId;
627
- }
628
- return undefined;
629
- }
630
- /**
631
- * Return the service handling the request
632
- */
633
- getExecutor() {
634
- return this._executor;
635
- }
636
- /**
637
- * Execute the target route
638
- */
639
- async execute() {
640
- return this._route._method(this);
641
- }
642
- /**
643
- * Get the request locale if found
644
- */
645
- getLocale() {
646
- let locales = this._webda.getLocales();
647
- acceptLanguage.languages(locales);
648
- let header = this.getHttpContext().getUniqueHeader("accept-language");
649
- if (header) {
650
- return acceptLanguage.get(header);
651
- }
652
- return locales[0];
653
- }
654
- /**
655
- * @ignore
656
- * Used by Webda framework to set the current route
657
- */
658
- setRoute(route) {
659
- this._route = route;
660
- this.parameters = { ...route.params, ...this.parameters };
661
- }
662
- getRoute() {
663
- return this._route;
664
- }
665
- /**
666
- * @param executor {object} Set the current executor for this context
667
- */
668
- setExecutor(executor) {
669
- this._executor = executor;
670
- }
671
- /**
672
- * @ignore
673
- * Used for compatibility with express module
674
- */
675
- logIn() {
676
- // Empty for compatibility
677
- }
678
- /**
679
- * Return true if Headers got flushed already
680
- * @returns
681
- */
682
- hasFlushedHeaders() {
683
- return this.headersFlushed;
684
- }
685
- /**
686
- * Set flushed header status
687
- * @param status
688
- */
689
- setFlushedHeaders(status = true) {
690
- this.headersFlushed = status;
691
- }
692
- /**
693
- * @ignore
694
- * Used by Webda framework to set the body, session and output stream if known
695
- */
696
- constructor(webda, httpContext, stream = undefined) {
697
- super(webda, stream);
698
- this._ended = undefined;
699
- this.parameters = undefined;
700
- this._pathParams = {};
701
- this._serviceParams = {};
702
- this.setHttpContext(httpContext);
703
- this._outputHeaders = webda.getGlobalParams().defaultHeaders || {
704
- // Gotta Cache ‘em all: bending the rules of web cache exploitation
705
- // https://defcon.org/html/defcon-32/dc-32-speakers.html
706
- "Cache-Control": "private"
707
- };
708
- this.headersFlushed = false;
709
- this.statusCode = 204;
710
- this.parameters = {};
711
- this.headers = new Map();
712
- this.processParameters();
713
- }
714
- async init(force = false) {
715
- if (this._init && !force) {
716
- return this._init;
717
- }
718
- this._stream.on("pipe", () => {
719
- this._webda.flushHeaders(this);
720
- this.headersFlushed = true;
721
- });
722
- if (this.getExtension("http")) {
723
- this.session = (await this._webda.getService("SessionManager").load(this)).getProxy();
724
- }
725
- this._init = super.init();
726
- return this._init;
727
- }
728
- emitError(err) {
729
- this.emit("error", err);
730
- }
731
- }
732
- //# sourceMappingURL=context.js.map