@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,165 +1,233 @@
1
- import { Counter } from "../core.js";
2
- import { WebdaError } from "../index.js";
3
- import { RegExpStringValidator, Service, ServiceParameters } from "./service.js";
4
- export class OAuthServiceParameters extends ServiceParameters {
5
- constructor(params) {
6
- super(params);
7
- this.scope ?? (this.scope = ["email"]);
8
- this.exposeScope ?? (this.exposeScope = false);
9
- this.authenticationService ?? (this.authenticationService = "Authentication");
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);
10
5
  }
11
- }
12
- /**
13
- * OAuth service implementing the default OAuth workflow
14
- * It is abstract as it does not manage any provider as is
15
- */
16
- export class OAuthService extends Service {
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 * as WebdaError from "../errors/errors.js";
36
+ import { Service } from "./service.js";
37
+ import { getUuid } from "@webda/utils";
38
+ import { Route } from "../rest/irest.js";
39
+ import { Counter } from "../metrics/metrics.js";
40
+ import { RegExpStringValidator } from "@webda/utils";
41
+ import { ServiceParameters } from "../services/serviceparameters.js";
42
+ import { useService } from "../core/hooks.js";
43
+ /** Parameters for OAuth services including client credentials, scopes, and redirect URIs */
44
+ export class OAuthServiceParameters extends ServiceParameters {
17
45
  /**
18
- * Ensure default parameter url
46
+ * Scope to request on OAuth flow
47
+ *
48
+ * @defaut ["email"]
19
49
  */
20
- constructor(webda, name, params) {
21
- super(webda, name, params);
22
- this.parameters.url = this.parameters.url || `${this.getDefaultUrl()}`;
23
- }
24
- initMetrics() {
25
- super.initMetrics();
26
- this.metrics.login = this.getMetric(Counter, {
27
- name: "oauth_login",
28
- help: "count the number of login",
29
- labelNames: ["method"]
30
- });
31
- }
50
+ scope;
32
51
  /**
33
- * Load parameters
52
+ * If set to true it will add a ${url}/scope
53
+ * So client can anticipate the requested scope
54
+ *
55
+ * This is useful when using the client api to generate
56
+ * token. This way the service can request the wanted scope
34
57
  *
35
- * @param params
58
+ * @default false
36
59
  */
37
- loadParameters(params) {
38
- let result = new OAuthServiceParameters(params);
39
- if (result.authorized_uris === undefined) {
40
- this.log("WARN", "Not defining authorized_uris is a security risk");
41
- }
42
- else {
43
- this.authorized_uris = new RegExpStringValidator(result.authorized_uris);
44
- }
45
- return result;
46
- }
60
+ exposeScope;
47
61
  /**
48
- * Allow callback referer to access this url no matter what
49
- * @param context
50
- * @returns
62
+ * List of URIs authorized for redirect post authorization
63
+ *
64
+ * @default []
51
65
  */
52
- async checkRequest(context) {
53
- // Only authorize url from this service
54
- if (!context.getHttpContext().getRelativeUri().startsWith(this.parameters.url)) {
55
- return false;
56
- }
57
- let regexps = this.getCallbackReferer();
58
- let valid = false;
59
- let referer = context.getHttpContext().getUniqueHeader("referer", "");
60
- if (this.parameters.no_referer && referer === "") {
61
- return true;
62
- }
63
- for (let i in regexps) {
64
- valid = referer.match(regexps[i]) !== null;
65
- if (valid) {
66
- break;
67
- }
68
- }
69
- return valid;
70
- }
66
+ authorized_uris;
71
67
  /**
72
- * Resolve dynamic dependancy
68
+ * Default redirect_uri
69
+ *
70
+ * @default ${url}/callback
73
71
  */
74
- resolve() {
75
- super.resolve();
76
- this._authenticationService = this.getService(this.parameters.authenticationService);
77
- return this;
78
- }
72
+ redirect_uri;
79
73
  /**
80
- * Get OAuth callback query parameters
81
- * @returns
74
+ * Allow direct connection without a referer
75
+ *
76
+ * @default false
82
77
  */
83
- getCallbackQueryParams() {
84
- return [
85
- {
86
- name: "code",
87
- required: true
88
- },
89
- {
90
- name: "scope",
91
- required: true
92
- },
93
- {
94
- name: "state",
95
- required: true
96
- }
97
- ];
98
- }
78
+ no_referer;
99
79
  /**
100
- * Add routes for the authentication
80
+ * Name of the authentication service to use if exist
81
+ * @default Authentication
101
82
  */
102
- initRoutes() {
103
- super.initRoutes();
104
- let name = this.getName();
105
- this.addRoute(`${this.parameters.url}{?redirect?}`, ["GET"], this._redirect, {
106
- get: {
107
- description: `Log with a ${name} account`,
108
- summary: `Redirect to ${name}`,
109
- operationId: `logInWith${name}`,
110
- responses: {
111
- "302": {
112
- description: ""
113
- },
114
- "400": {
115
- description: "Missing token"
83
+ authenticationService;
84
+ /**
85
+ * Load parameters with defaults for scopes, auth service, and URI settings
86
+ * @param params - the service parameters
87
+ * @returns the result
88
+ */
89
+ load(params) {
90
+ super.load(params);
91
+ this.scope ??= ["email"];
92
+ this.exposeScope ??= false;
93
+ this.authenticationService ??= "Authentication";
94
+ this.authorized_uris ??= [];
95
+ this.no_referer ??= false;
96
+ return this;
97
+ }
98
+ }
99
+ /**
100
+ * OAuth service implementing the default OAuth workflow
101
+ * It is abstract as it does not manage any provider as is
102
+ */
103
+ let OAuthService = (() => {
104
+ let _classSuper = Service;
105
+ let _instanceExtraInitializers = [];
106
+ let __redirect_decorators;
107
+ return class OAuthService extends _classSuper {
108
+ static {
109
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
110
+ __redirect_decorators = [Route(".{?redirect?}", ["GET"], {
111
+ get: {
112
+ description: "Log with a ${name} account",
113
+ summary: "Redirect to ${name}",
114
+ operationId: "logInWith${name}",
115
+ responses: {
116
+ "302": { description: "" },
117
+ "400": { description: "Missing token" }
118
+ }
116
119
  }
117
- }
120
+ })];
121
+ __esDecorate(this, null, __redirect_decorators, { kind: "method", name: "_redirect", static: false, private: false, access: { has: obj => "_redirect" in obj, get: obj => obj._redirect }, metadata: _metadata }, null, _instanceExtraInitializers);
122
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
123
+ }
124
+ _authenticationService = __runInitializers(this, _instanceExtraInitializers);
125
+ authorized_uris;
126
+ /**
127
+ * Ensure default parameter url
128
+ * @param name - the service name
129
+ * @param params - the service parameters
130
+ */
131
+ constructor(name, params) {
132
+ super(name, params);
133
+ this.parameters.url ??= this.getDefaultUrl();
134
+ }
135
+ /** Initialize OAuth-specific metrics for tracking logins */
136
+ initMetrics() {
137
+ super.initMetrics();
138
+ this.metrics.login = this.getMetric(Counter, {
139
+ name: "oauth_login",
140
+ help: "count the number of login",
141
+ labelNames: ["method"]
142
+ });
143
+ }
144
+ /**
145
+ * Allow callback referer to access this url no matter what
146
+ * @param context - the execution context
147
+ * @returns true if the condition is met
148
+ */
149
+ async checkRequest(context) {
150
+ // Only authorize url from this service
151
+ if (!context.getHttpContext().getRelativeUri().startsWith(this.parameters.url)) {
152
+ return false;
118
153
  }
119
- });
120
- this.addRoute(this.parameters.url +
121
- "/callback{?" +
122
- this.getCallbackQueryParams()
123
- .map(param => param.name + (param.required ? "" : "?"))
124
- .join(",") +
125
- "}", ["GET"], this._callback, {
126
- get: {
127
- description: `Get result from ${name} Authentication`,
128
- summary: `Use the token provide to validate with ${name} the user`,
129
- operationId: `callbackFrom${name}`,
130
- responses: {
131
- "204": {
132
- description: ""
133
- },
134
- "400": {
135
- description: "Missing token"
136
- }
154
+ const regexps = this.getCallbackReferer();
155
+ let valid = false;
156
+ const referer = context.getHttpContext().getUniqueHeader("referer", "");
157
+ if (this.parameters.no_referer && referer === "") {
158
+ return true;
159
+ }
160
+ for (const i in regexps) {
161
+ valid = referer.match(regexps[i]) !== null;
162
+ if (valid) {
163
+ break;
137
164
  }
138
165
  }
139
- });
140
- if (this.hasToken()) {
141
- this.addRoute(this.parameters.url + "/token", ["POST"], this._token, {
142
- post: {
143
- description: `Log with a ${name} token`,
144
- summary: `Use the token provide to validate with ${name} the user`,
145
- operationId: `verify${name}Token`,
146
- responses: {
147
- "204": {
148
- description: ""
149
- },
150
- "400": {
151
- description: "Missing token"
152
- }
153
- }
166
+ return valid;
167
+ }
168
+ /**
169
+ * Resolve dynamic dependancy
170
+ * @returns this for chaining
171
+ */
172
+ resolve() {
173
+ super.resolve();
174
+ this.parameters.with(params => {
175
+ if (params.url === undefined) {
176
+ params.url = this.getDefaultUrl();
154
177
  }
178
+ if (params.authorized_uris === undefined) {
179
+ this.log("WARN", "Not defining authorized_uris is a security risk");
180
+ }
181
+ else {
182
+ this.authorized_uris = new RegExpStringValidator(params.authorized_uris);
183
+ }
184
+ this._authenticationService = useService(this.parameters.authenticationService);
155
185
  });
186
+ return this;
156
187
  }
157
- if (this.parameters.exposeScope) {
158
- this.addRoute(this.parameters.url + "/scope", ["GET"], this._scope, {
188
+ /**
189
+ * Get OAuth callback query parameters
190
+ * @returns the result
191
+ */
192
+ getCallbackQueryParams() {
193
+ return [
194
+ {
195
+ name: "code",
196
+ required: true
197
+ },
198
+ {
199
+ name: "scope",
200
+ required: true
201
+ },
202
+ {
203
+ name: "state",
204
+ required: true
205
+ }
206
+ ];
207
+ }
208
+ /**
209
+ * Register callback + optional token/scope routes.
210
+ *
211
+ * `_redirect` is declared via `@Route` below. The callback query string
212
+ * depends on {@link getCallbackQueryParams} (subclass-overridable), and
213
+ * the token/scope routes are conditional on {@link hasToken} and
214
+ * `parameters.exposeScope`, so those three stay programmatic.
215
+ *
216
+ * @returns this for chaining
217
+ */
218
+ async init() {
219
+ await super.init();
220
+ const name = this.getName();
221
+ this.addRoute(this.parameters.url +
222
+ "/callback{?" +
223
+ this.getCallbackQueryParams()
224
+ .map(param => param.name + (param.required ? "" : "?"))
225
+ .join(",") +
226
+ "}", ["GET"], this._callback, {
159
227
  get: {
160
- description: `List ${name} auth scope for this apps`,
161
- summary: "Retrieve the scope intended to be used with this auth",
162
- operationId: `get${name}Scope`,
228
+ description: `Get result from ${name} Authentication`,
229
+ summary: `Use the token provide to validate with ${name} the user`,
230
+ operationId: `callbackFrom${name}`,
163
231
  responses: {
164
232
  "204": {
165
233
  description: ""
@@ -170,122 +238,168 @@ export class OAuthService extends Service {
170
238
  }
171
239
  }
172
240
  });
241
+ if (this.hasToken()) {
242
+ this.addRoute(this.parameters.url + "/token", ["POST"], this._token, {
243
+ post: {
244
+ description: `Log with a ${name} token`,
245
+ summary: `Use the token provide to validate with ${name} the user`,
246
+ operationId: `verify${name}Token`,
247
+ responses: {
248
+ "204": {
249
+ description: ""
250
+ },
251
+ "400": {
252
+ description: "Missing token"
253
+ }
254
+ }
255
+ }
256
+ });
257
+ }
258
+ if (this.parameters.exposeScope) {
259
+ this.addRoute(this.parameters.url + "/scope", ["GET"], this._scope, {
260
+ get: {
261
+ description: `List ${name} auth scope for this apps`,
262
+ summary: "Retrieve the scope intended to be used with this auth",
263
+ operationId: `get${name}Scope`,
264
+ responses: {
265
+ "204": {
266
+ description: ""
267
+ },
268
+ "400": {
269
+ description: "Missing token"
270
+ }
271
+ }
272
+ }
273
+ });
274
+ }
275
+ return this;
173
276
  }
174
- }
175
- /**
176
- * Expose the scope used by the authentication
177
- * @param ctx
178
- */
179
- _scope(ctx) {
180
- ctx.write(this.parameters.scope);
181
- }
182
- /**
183
- * Define if this provider allow authentication by tokens
184
- * @returns
185
- */
186
- hasToken() {
187
- return false;
188
- }
189
- /**
190
- * Check if the url is authorized
191
- * @param redirect
192
- * @param context
193
- * @returns
194
- */
195
- isAuthorizedUri(redirect, context) {
196
- return (!this.parameters.authorized_uris || // If no authorized_uris defined, allow all
197
- this.authorized_uris?.validate(redirect) || // If redirect is included in authorized_uris
198
- (this.parameters.no_referer && !context.getHttpContext().getUniqueHeader("referer"))); // If no_referer is allowed
199
- }
200
- /**
201
- * Redirect to the OAuth provider
202
- *
203
- * The calling url must be and authorized_uris if defined
204
- * @param ctx
205
- */
206
- _redirect(ctx) {
207
- // implement default behavior
208
- let redirect_uri = this.parameters.redirect_uri || `${ctx.getHttpContext().getAbsoluteUrl()}/callback`;
209
- let redirect = ctx.getParameters().redirect || ctx.getHttpContext().getHeaders().referer;
210
- if (!this.isAuthorizedUri(redirect, ctx)) {
211
- throw new WebdaError.Unauthorized("Unauthorized redirect parameter");
277
+ /**
278
+ * Expose the scope used by the authentication
279
+ * @param ctx - the operation context
280
+ */
281
+ _scope(ctx) {
282
+ ctx.write(this.parameters.scope);
212
283
  }
213
- const session = ctx.getSession();
214
- session.oauth ?? (session.oauth = {});
215
- // Generate 2 random uuid: nonce and state
216
- session.oauth.state = this.getWebda().getUuid("base64");
217
- // Redirect to the calling uri
218
- session.oauth.redirect = redirect;
219
- ctx.redirect(this.generateAuthUrl(redirect_uri, session.oauth.state, ctx));
220
- }
221
- /**
222
- * Handle a token return
223
- *
224
- * This is private to avoid any override
225
- * @param context
226
- */
227
- async _token(context) {
228
- const res = await this.handleToken(context);
229
- await this.handleReturn(context, res.identId, res.profile);
230
- await this.emitSync("OAuth.Callback", {
231
- ...res,
232
- type: "token",
233
- provider: this.getName(),
234
- context
235
- });
236
- this.metrics.login.inc({ method: "token" });
237
- }
238
- /**
239
- * Handle a standard url callback
240
- *
241
- * This is private to avoid any override
242
- * @param ctx
243
- */
244
- async _callback(ctx) {
245
- const res = await this.handleCallback(ctx);
246
- await this.handleReturn(ctx, res.identId, res.profile);
247
- await this.emitSync("OAuth.Callback", {
248
- ...res,
249
- type: "callback",
250
- provider: this.getName(),
251
- context: ctx
252
- });
253
- this.metrics.login.inc({ method: "callback" });
254
- }
255
- /**
256
- * Once approved by the OAuth provider this will do the common task
257
- * @param ctx
258
- * @param identId
259
- * @param profile
260
- */
261
- async handleReturn(ctx, identId, profile, _tokens = undefined) {
262
- // If no identId has been provided error
263
- if (!identId) {
264
- throw new WebdaError.Forbidden("No identId provided by the OAuth provider");
284
+ /**
285
+ * Define if this provider allow authentication by tokens
286
+ * @returns true if the condition is met
287
+ */
288
+ hasToken() {
289
+ return false;
265
290
  }
266
- const session = ctx.getSession();
267
- session.oauth ?? (session.oauth = {});
268
- // If authentication service then create a User/Ident couple
269
- if (this._authenticationService) {
270
- // Should call the onIdentLogin()
271
- await this._authenticationService.onIdentLogin(ctx, this.getName().toLowerCase(), identId, profile);
291
+ /**
292
+ * Check if the url is authorized
293
+ * @param redirect - the redirect URL
294
+ * @param context - the execution context
295
+ * @returns true if the condition is met
296
+ */
297
+ isAuthorizedUri(redirect, context) {
298
+ return (!this.parameters.authorized_uris || // If no authorized_uris defined, allow all
299
+ this.authorized_uris?.validate(redirect) || // If redirect is included in authorized_uris
300
+ (this.parameters.no_referer && !context.getHttpContext().getUniqueHeader("referer"))); // If no_referer is allowed
272
301
  }
273
- else {
274
- // Login in session
275
- ctx.getSession().login(identId, identId);
276
- // Store the profile retrieved
277
- session.oauth.profile = profile;
302
+ /**
303
+ * Inject the provider name into openapi template replacements so the
304
+ * `${name}` placeholders in `@Route` metadata resolve per-instance.
305
+ *
306
+ * @returns replacements map merged with defaults
307
+ */
308
+ getOpenApiReplacements() {
309
+ return { ...super.getOpenApiReplacements(), name: this.getName() };
278
310
  }
279
- // Redirect to our targets
280
- if (session.oauth.redirect) {
281
- ctx.redirect(session.oauth.redirect);
311
+ /**
312
+ * Redirect to the OAuth provider
313
+ *
314
+ * The calling url must be and authorized_uris if defined
315
+ * @param ctx - the operation context
316
+ */
317
+ _redirect(ctx) {
318
+ // implement default behavior
319
+ const redirect_uri = this.parameters.redirect_uri || `${ctx.getHttpContext().getAbsoluteUrl()}/callback`;
320
+ const redirect = ctx.getParameters().redirect || ctx.getHttpContext().getHeaders().referer;
321
+ if (!this.isAuthorizedUri(redirect, ctx)) {
322
+ throw new WebdaError.Unauthorized("Unauthorized redirect parameter");
323
+ }
324
+ const session = ctx.getSession();
325
+ session.oauth ??= {};
326
+ // Generate 2 random uuid: nonce and state
327
+ session.oauth.state = getUuid("base64");
328
+ // Redirect to the calling uri
329
+ session.oauth.redirect = redirect;
330
+ ctx.redirect(this.generateAuthUrl(redirect_uri, session.oauth.state, ctx));
282
331
  }
283
- else {
284
- ctx.write("Your authentication is successful");
332
+ /**
333
+ * Handle a token return
334
+ *
335
+ * This is private to avoid any override
336
+ * @param context - the execution context
337
+ */
338
+ async _token(context) {
339
+ const res = await this.handleToken(context);
340
+ await this.handleReturn(context, res.identId, res.profile);
341
+ await this.emit("OAuth.Callback", {
342
+ ...res,
343
+ type: "token",
344
+ provider: this.getName(),
345
+ context
346
+ });
347
+ this.metrics.login.inc({ method: "token" });
285
348
  }
286
- // Clean variables from session
287
- session.oauth.state = undefined;
288
- session.oauth.redirect = undefined;
289
- }
290
- }
349
+ /**
350
+ * Handle a standard url callback
351
+ *
352
+ * This is private to avoid any override
353
+ * @param ctx - the operation context
354
+ */
355
+ async _callback(ctx) {
356
+ const res = await this.handleCallback(ctx);
357
+ await this.handleReturn(ctx, res.identId, res.profile);
358
+ await this.emit("OAuth.Callback", {
359
+ ...res,
360
+ type: "callback",
361
+ provider: this.getName(),
362
+ context: ctx
363
+ });
364
+ this.metrics.login.inc({ method: "callback" });
365
+ }
366
+ /**
367
+ * Once approved by the OAuth provider this will do the common task
368
+ * @param ctx - the operation context
369
+ * @param identId - the identity identifier
370
+ * @param profile - the user profile
371
+ * @param _tokens - the authentication tokens
372
+ */
373
+ async handleReturn(ctx, identId, profile, _tokens = undefined) {
374
+ // If no identId has been provided error
375
+ if (!identId) {
376
+ throw new WebdaError.Forbidden("No identId provided by the OAuth provider");
377
+ }
378
+ const session = ctx.getSession();
379
+ session.oauth ??= {};
380
+ // If authentication service then create a User/Ident couple
381
+ if (this._authenticationService) {
382
+ // Should call the onIdentLogin()
383
+ await this._authenticationService.onIdentLogin(ctx, this.getName().toLowerCase(), identId, profile);
384
+ }
385
+ else {
386
+ // Login in session
387
+ ctx.getSession().login(identId, identId);
388
+ // Store the profile retrieved
389
+ session.oauth.profile = profile;
390
+ }
391
+ // Redirect to our targets
392
+ if (session.oauth.redirect) {
393
+ ctx.redirect(session.oauth.redirect);
394
+ }
395
+ else {
396
+ ctx.write("Your authentication is successful");
397
+ }
398
+ // Clean variables from session
399
+ session.oauth.state = undefined;
400
+ session.oauth.redirect = undefined;
401
+ }
402
+ };
403
+ })();
404
+ export { OAuthService };
291
405
  //# sourceMappingURL=oauth.js.map