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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (756) hide show
  1. package/README.md +252 -0
  2. package/lib/application/application.d.ts +437 -0
  3. package/lib/application/application.d.ts.map +1 -0
  4. package/lib/application/application.js +792 -0
  5. package/lib/application/application.js.map +1 -0
  6. package/lib/application/hooks.d.ts +34 -0
  7. package/lib/application/hooks.d.ts.map +1 -0
  8. package/lib/application/hooks.js +57 -0
  9. package/lib/application/hooks.js.map +1 -0
  10. package/lib/application/iapplication.d.ts +43 -0
  11. package/lib/application/iapplication.d.ts.map +1 -0
  12. package/lib/application/iapplication.js +2 -0
  13. package/lib/application/iapplication.js.map +1 -0
  14. package/lib/application/iconfiguration.d.ts +176 -0
  15. package/lib/application/iconfiguration.d.ts.map +1 -0
  16. package/lib/application/iconfiguration.js +8 -0
  17. package/lib/application/iconfiguration.js.map +1 -0
  18. package/lib/application/runner.d.ts +8 -0
  19. package/lib/application/runner.d.ts.map +1 -0
  20. package/lib/application/runner.js +26 -0
  21. package/lib/application/runner.js.map +1 -0
  22. package/lib/{unpackedapplication.d.ts → application/unpackedapplication.d.ts} +43 -23
  23. package/lib/application/unpackedapplication.d.ts.map +1 -0
  24. package/lib/application/unpackedapplication.js +492 -0
  25. package/lib/application/unpackedapplication.js.map +1 -0
  26. package/lib/bin/cli-phase.d.ts +28 -0
  27. package/lib/bin/cli-phase.d.ts.map +1 -0
  28. package/lib/bin/cli-phase.js +44 -0
  29. package/lib/bin/cli-phase.js.map +1 -0
  30. package/lib/bin/cli.d.ts +161 -0
  31. package/lib/bin/cli.d.ts.map +1 -0
  32. package/lib/bin/cli.js +828 -0
  33. package/lib/bin/cli.js.map +1 -0
  34. package/lib/bin/launcher.d.ts +3 -0
  35. package/lib/bin/launcher.d.ts.map +1 -0
  36. package/lib/bin/launcher.js +50 -0
  37. package/lib/bin/launcher.js.map +1 -0
  38. package/lib/cache/cache.d.ts +33 -0
  39. package/lib/cache/cache.d.ts.map +1 -0
  40. package/lib/cache/cache.js +8 -0
  41. package/lib/cache/cache.js.map +1 -0
  42. package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -58
  43. package/lib/configurations/configuration.service.d.ts.map +1 -0
  44. package/lib/configurations/configuration.service.js +248 -0
  45. package/lib/configurations/configuration.service.js.map +1 -0
  46. package/lib/configurations/fileconfiguration.service.d.ts +30 -0
  47. package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
  48. package/lib/configurations/fileconfiguration.service.js +65 -0
  49. package/lib/configurations/fileconfiguration.service.js.map +1 -0
  50. package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
  51. package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
  52. package/lib/configurations/kubernetesconfiguration.service.js +83 -0
  53. package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
  54. package/lib/contexts/execution.d.ts +33 -0
  55. package/lib/contexts/execution.d.ts.map +1 -0
  56. package/lib/contexts/execution.js +73 -0
  57. package/lib/contexts/execution.js.map +1 -0
  58. package/lib/contexts/globalcontext.d.ts +29 -0
  59. package/lib/contexts/globalcontext.d.ts.map +1 -0
  60. package/lib/contexts/globalcontext.js +38 -0
  61. package/lib/contexts/globalcontext.js.map +1 -0
  62. package/lib/{utils → contexts}/httpcontext.d.ts +44 -19
  63. package/lib/contexts/httpcontext.d.ts.map +1 -0
  64. package/lib/{utils → contexts}/httpcontext.js +95 -27
  65. package/lib/contexts/httpcontext.js.map +1 -0
  66. package/lib/contexts/icontext.d.ts +236 -0
  67. package/lib/contexts/icontext.d.ts.map +1 -0
  68. package/lib/contexts/icontext.js +230 -0
  69. package/lib/contexts/icontext.js.map +1 -0
  70. package/lib/contexts/operationcontext.d.ts +179 -0
  71. package/lib/contexts/operationcontext.d.ts.map +1 -0
  72. package/lib/contexts/operationcontext.js +358 -0
  73. package/lib/contexts/operationcontext.js.map +1 -0
  74. package/lib/contexts/simplecontext.d.ts +31 -0
  75. package/lib/contexts/simplecontext.d.ts.map +1 -0
  76. package/lib/contexts/simplecontext.js +45 -0
  77. package/lib/contexts/simplecontext.js.map +1 -0
  78. package/lib/contexts/webcontext.d.ts +218 -0
  79. package/lib/contexts/webcontext.d.ts.map +1 -0
  80. package/lib/contexts/webcontext.js +389 -0
  81. package/lib/contexts/webcontext.js.map +1 -0
  82. package/lib/core/authorizer.d.ts +23 -0
  83. package/lib/core/authorizer.d.ts.map +1 -0
  84. package/lib/core/authorizer.js +17 -0
  85. package/lib/core/authorizer.js.map +1 -0
  86. package/lib/core/core.d.ts +225 -0
  87. package/lib/core/core.d.ts.map +1 -0
  88. package/lib/core/core.js +576 -0
  89. package/lib/core/core.js.map +1 -0
  90. package/lib/core/hooks.d.ts +72 -0
  91. package/lib/core/hooks.d.ts.map +1 -0
  92. package/lib/core/hooks.js +73 -0
  93. package/lib/core/hooks.js.map +1 -0
  94. package/lib/core/icore.d.ts +249 -0
  95. package/lib/core/icore.d.ts.map +1 -0
  96. package/lib/core/icore.js +15 -0
  97. package/lib/core/icore.js.map +1 -0
  98. package/lib/core/instancestorage.d.ts +61 -0
  99. package/lib/core/instancestorage.d.ts.map +1 -0
  100. package/lib/core/instancestorage.js +75 -0
  101. package/lib/core/instancestorage.js.map +1 -0
  102. package/lib/core/operations.d.ts +181 -0
  103. package/lib/core/operations.d.ts.map +1 -0
  104. package/lib/core/operations.js +559 -0
  105. package/lib/core/operations.js.map +1 -0
  106. package/lib/errors/errors.d.ts +126 -0
  107. package/lib/errors/errors.d.ts.map +1 -0
  108. package/lib/errors/errors.js +165 -0
  109. package/lib/errors/errors.js.map +1 -0
  110. package/lib/events/asynceventemitter.d.ts +159 -0
  111. package/lib/events/asynceventemitter.d.ts.map +1 -0
  112. package/lib/events/asynceventemitter.js +152 -0
  113. package/lib/events/asynceventemitter.js.map +1 -0
  114. package/lib/events/events.d.ts +112 -0
  115. package/lib/events/events.d.ts.map +1 -0
  116. package/lib/events/events.js +45 -0
  117. package/lib/events/events.js.map +1 -0
  118. package/lib/index.d.ts +82 -53
  119. package/lib/index.d.ts.map +1 -1
  120. package/lib/index.js +81 -62
  121. package/lib/index.js.map +1 -1
  122. package/lib/loggers/console.service.d.ts +24 -0
  123. package/lib/loggers/console.service.d.ts.map +1 -0
  124. package/lib/loggers/console.service.js +30 -0
  125. package/lib/loggers/console.service.js.map +1 -0
  126. package/lib/loggers/file.service.d.ts +25 -0
  127. package/lib/loggers/file.service.d.ts.map +1 -0
  128. package/lib/loggers/file.service.js +33 -0
  129. package/lib/loggers/file.service.js.map +1 -0
  130. package/lib/loggers/hooks.d.ts +20 -0
  131. package/lib/loggers/hooks.d.ts.map +1 -0
  132. package/lib/loggers/hooks.js +40 -0
  133. package/lib/loggers/hooks.js.map +1 -0
  134. package/lib/loggers/ilogger.d.ts +76 -0
  135. package/lib/loggers/ilogger.d.ts.map +1 -0
  136. package/lib/loggers/ilogger.js +108 -0
  137. package/lib/loggers/ilogger.js.map +1 -0
  138. package/lib/loggers/logger.d.ts +13 -0
  139. package/lib/loggers/logger.d.ts.map +1 -0
  140. package/lib/loggers/logger.js +18 -0
  141. package/lib/loggers/logger.js.map +1 -0
  142. package/lib/loggers/memory.service.d.ts +18 -0
  143. package/lib/loggers/memory.service.d.ts.map +1 -0
  144. package/lib/loggers/memory.service.js +21 -0
  145. package/lib/loggers/memory.service.js.map +1 -0
  146. package/lib/loggers/params.d.ts +47 -0
  147. package/lib/loggers/params.d.ts.map +1 -0
  148. package/lib/loggers/params.js +56 -0
  149. package/lib/loggers/params.js.map +1 -0
  150. package/lib/metrics/metrics.d.ts +25 -0
  151. package/lib/metrics/metrics.d.ts.map +1 -0
  152. package/lib/metrics/metrics.js +51 -0
  153. package/lib/metrics/metrics.js.map +1 -0
  154. package/lib/models/aclmodel.d.ts +20 -76
  155. package/lib/models/aclmodel.d.ts.map +1 -1
  156. package/lib/models/aclmodel.js +27 -203
  157. package/lib/models/aclmodel.js.map +1 -1
  158. package/lib/models/coremodel.model.d.ts +5 -0
  159. package/lib/models/coremodel.model.d.ts.map +1 -0
  160. package/lib/models/coremodel.model.js +5 -0
  161. package/lib/models/coremodel.model.js.map +1 -0
  162. package/lib/models/decorator.d.ts +63 -0
  163. package/lib/models/decorator.d.ts.map +1 -0
  164. package/lib/models/decorator.js +63 -0
  165. package/lib/models/decorator.js.map +1 -0
  166. package/lib/models/deployment.d.ts +1 -1
  167. package/lib/models/deployment.d.ts.map +1 -1
  168. package/lib/models/ident.model.d.ts +89 -0
  169. package/lib/models/ident.model.d.ts.map +1 -0
  170. package/lib/models/ident.model.js +115 -0
  171. package/lib/models/ident.model.js.map +1 -0
  172. package/lib/models/ownermodel.model.d.ts +68 -0
  173. package/lib/models/ownermodel.model.d.ts.map +1 -0
  174. package/lib/models/ownermodel.model.js +112 -0
  175. package/lib/models/ownermodel.model.js.map +1 -0
  176. package/lib/models/registry.model.d.ts +76 -0
  177. package/lib/models/registry.model.d.ts.map +1 -0
  178. package/lib/models/registry.model.js +104 -0
  179. package/lib/models/registry.model.js.map +1 -0
  180. package/lib/models/rolemodel.model.d.ts +28 -0
  181. package/lib/models/rolemodel.model.d.ts.map +1 -0
  182. package/lib/models/{rolemodel.js → rolemodel.model.js} +23 -5
  183. package/lib/models/rolemodel.model.js.map +1 -0
  184. package/lib/models/simpleuser.model.d.ts +78 -0
  185. package/lib/models/simpleuser.model.d.ts.map +1 -0
  186. package/lib/models/simpleuser.model.js +123 -0
  187. package/lib/models/simpleuser.model.js.map +1 -0
  188. package/lib/models/types.d.ts +113 -0
  189. package/lib/models/types.d.ts.map +1 -0
  190. package/lib/models/types.js +2 -0
  191. package/lib/models/types.js.map +1 -0
  192. package/lib/models/user.model.d.ts +103 -0
  193. package/lib/models/user.model.d.ts.map +1 -0
  194. package/lib/models/user.model.js +125 -0
  195. package/lib/models/user.model.js.map +1 -0
  196. package/lib/queues/{memoryqueue.d.ts → memoryqueue.service.d.ts} +26 -13
  197. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  198. package/lib/queues/{memoryqueue.js → memoryqueue.service.js} +55 -31
  199. package/lib/queues/memoryqueue.service.js.map +1 -0
  200. package/lib/queues/pubsubservice.d.ts +8 -6
  201. package/lib/queues/pubsubservice.d.ts.map +1 -1
  202. package/lib/queues/pubsubservice.js +5 -4
  203. package/lib/queues/pubsubservice.js.map +1 -1
  204. package/lib/queues/queueservice.d.ts +9 -11
  205. package/lib/queues/queueservice.d.ts.map +1 -1
  206. package/lib/queues/queueservice.js +41 -13
  207. package/lib/queues/queueservice.js.map +1 -1
  208. package/lib/rest/hooks.d.ts +8 -0
  209. package/lib/rest/hooks.d.ts.map +1 -0
  210. package/lib/rest/hooks.js +10 -0
  211. package/lib/rest/hooks.js.map +1 -0
  212. package/lib/rest/irest.d.ts +212 -0
  213. package/lib/rest/irest.d.ts.map +1 -0
  214. package/lib/rest/irest.js +39 -0
  215. package/lib/rest/irest.js.map +1 -0
  216. package/lib/rest/originfilter.d.ts +38 -0
  217. package/lib/rest/originfilter.d.ts.map +1 -0
  218. package/lib/rest/originfilter.js +61 -0
  219. package/lib/rest/originfilter.js.map +1 -0
  220. package/lib/rest/restoperationstransport.service.d.ts +193 -0
  221. package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
  222. package/lib/rest/restoperationstransport.service.js +780 -0
  223. package/lib/rest/restoperationstransport.service.js.map +1 -0
  224. package/lib/rest/router.service.d.ts +244 -0
  225. package/lib/rest/router.service.d.ts.map +1 -0
  226. package/lib/rest/router.service.js +843 -0
  227. package/lib/rest/router.service.js.map +1 -0
  228. package/lib/schemas/hooks.d.ts +48 -0
  229. package/lib/schemas/hooks.d.ts.map +1 -0
  230. package/lib/schemas/hooks.js +152 -0
  231. package/lib/schemas/hooks.js.map +1 -0
  232. package/lib/services/audit.model.d.ts +208 -0
  233. package/lib/services/audit.model.d.ts.map +1 -0
  234. package/lib/services/audit.model.js +431 -0
  235. package/lib/services/audit.model.js.map +1 -0
  236. package/lib/services/{authentication.d.ts → authentication.service.d.ts} +140 -59
  237. package/lib/services/authentication.service.d.ts.map +1 -0
  238. package/lib/services/authentication.service.js +932 -0
  239. package/lib/services/authentication.service.js.map +1 -0
  240. package/lib/services/binary.service.d.ts +808 -0
  241. package/lib/services/binary.service.d.ts.map +1 -0
  242. package/lib/services/binary.service.js +1365 -0
  243. package/lib/services/binary.service.js.map +1 -0
  244. package/lib/services/cloudbinary.d.ts +17 -12
  245. package/lib/services/cloudbinary.d.ts.map +1 -1
  246. package/lib/services/cloudbinary.js +23 -17
  247. package/lib/services/cloudbinary.js.map +1 -1
  248. package/lib/services/command.d.ts +118 -0
  249. package/lib/services/command.d.ts.map +1 -0
  250. package/lib/services/command.js +97 -0
  251. package/lib/services/command.js.map +1 -0
  252. package/lib/services/cron.service.d.ts +142 -0
  253. package/lib/services/cron.service.d.ts.map +1 -0
  254. package/lib/services/cron.service.js +291 -0
  255. package/lib/services/cron.service.js.map +1 -0
  256. package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +75 -141
  257. package/lib/services/cryptoservice.service.d.ts.map +1 -0
  258. package/lib/services/cryptoservice.service.js +527 -0
  259. package/lib/services/cryptoservice.service.js.map +1 -0
  260. package/lib/services/debugmailer.service.d.ts +49 -0
  261. package/lib/services/debugmailer.service.d.ts.map +1 -0
  262. package/lib/services/{debugmailer.js → debugmailer.service.js} +25 -10
  263. package/lib/services/debugmailer.service.js.map +1 -0
  264. package/lib/services/domainservice.service.d.ts +203 -0
  265. package/lib/services/domainservice.service.d.ts.map +1 -0
  266. package/lib/services/domainservice.service.js +600 -0
  267. package/lib/services/domainservice.service.js.map +1 -0
  268. package/lib/services/httpserver.service.d.ts +248 -0
  269. package/lib/services/httpserver.service.d.ts.map +1 -0
  270. package/lib/services/httpserver.service.js +673 -0
  271. package/lib/services/httpserver.service.js.map +1 -0
  272. package/lib/services/iauthentication.d.ts +9 -0
  273. package/lib/services/iauthentication.d.ts.map +1 -0
  274. package/lib/services/iauthentication.js +2 -0
  275. package/lib/services/iauthentication.js.map +1 -0
  276. package/lib/services/icryptoservice.d.ts +127 -0
  277. package/lib/services/icryptoservice.d.ts.map +1 -0
  278. package/lib/services/icryptoservice.js +68 -0
  279. package/lib/services/icryptoservice.js.map +1 -0
  280. package/lib/services/imailer.d.ts +17 -0
  281. package/lib/services/imailer.d.ts.map +1 -0
  282. package/lib/services/imailer.js +2 -0
  283. package/lib/services/imailer.js.map +1 -0
  284. package/lib/services/iservice.d.ts +104 -0
  285. package/lib/services/iservice.d.ts.map +1 -0
  286. package/lib/services/iservice.js +63 -0
  287. package/lib/services/iservice.js.map +1 -0
  288. package/lib/services/mailer.service.d.ts +220 -0
  289. package/lib/services/mailer.service.d.ts.map +1 -0
  290. package/lib/services/mailer.service.js +251 -0
  291. package/lib/services/mailer.service.js.map +1 -0
  292. package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -11
  293. package/lib/services/notificationservice.service.d.ts.map +1 -0
  294. package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
  295. package/lib/services/notificationservice.service.js.map +1 -0
  296. package/lib/services/oauth.d.ts +52 -28
  297. package/lib/services/oauth.d.ts.map +1 -1
  298. package/lib/services/oauth.js +365 -254
  299. package/lib/services/oauth.js.map +1 -1
  300. package/lib/services/operationstransport.d.ts +65 -0
  301. package/lib/services/operationstransport.d.ts.map +1 -0
  302. package/lib/services/operationstransport.js +103 -0
  303. package/lib/services/operationstransport.js.map +1 -0
  304. package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -12
  305. package/lib/services/prometheus.service.d.ts.map +1 -0
  306. package/lib/services/prometheus.service.js +203 -0
  307. package/lib/services/prometheus.service.js.map +1 -0
  308. package/lib/services/{resource.d.ts → resource.service.d.ts} +34 -15
  309. package/lib/services/resource.service.d.ts.map +1 -0
  310. package/lib/services/resource.service.js +301 -0
  311. package/lib/services/resource.service.js.map +1 -0
  312. package/lib/services/service.d.ts +87 -188
  313. package/lib/services/service.d.ts.map +1 -1
  314. package/lib/services/service.js +407 -422
  315. package/lib/services/service.js.map +1 -1
  316. package/lib/services/servicecommands.d.ts +99 -0
  317. package/lib/services/servicecommands.d.ts.map +1 -0
  318. package/lib/services/servicecommands.js +165 -0
  319. package/lib/services/servicecommands.js.map +1 -0
  320. package/lib/services/serviceparameters.d.ts +33 -0
  321. package/lib/services/serviceparameters.d.ts.map +1 -0
  322. package/lib/services/serviceparameters.js +79 -0
  323. package/lib/services/serviceparameters.js.map +1 -0
  324. package/lib/{utils → session}/cookie.d.ts +32 -19
  325. package/lib/session/cookie.d.ts.map +1 -0
  326. package/lib/{utils → session}/cookie.js +76 -23
  327. package/lib/session/cookie.js.map +1 -0
  328. package/lib/session/manager.model.d.ts +71 -0
  329. package/lib/session/manager.model.d.ts.map +1 -0
  330. package/lib/session/manager.model.js +155 -0
  331. package/lib/session/manager.model.js.map +1 -0
  332. package/lib/session/session.d.ts +57 -0
  333. package/lib/session/session.d.ts.map +1 -0
  334. package/lib/session/session.js +126 -0
  335. package/lib/session/session.js.map +1 -0
  336. package/lib/stores/istore.d.ts +99 -0
  337. package/lib/stores/istore.d.ts.map +1 -0
  338. package/lib/stores/istore.js +26 -0
  339. package/lib/stores/istore.js.map +1 -0
  340. package/lib/stores/memory.service.d.ts +114 -0
  341. package/lib/stores/memory.service.d.ts.map +1 -0
  342. package/lib/stores/memory.service.js +343 -0
  343. package/lib/stores/memory.service.js.map +1 -0
  344. package/lib/stores/store.d.ts +126 -626
  345. package/lib/stores/store.d.ts.map +1 -1
  346. package/lib/stores/store.js +257 -1117
  347. package/lib/stores/store.js.map +1 -1
  348. package/lib/templates/templates.d.ts +39 -0
  349. package/lib/templates/templates.d.ts.map +1 -0
  350. package/lib/templates/templates.js +92 -0
  351. package/lib/templates/templates.js.map +1 -0
  352. package/lib/test/application.d.ts +174 -0
  353. package/lib/test/application.d.ts.map +1 -0
  354. package/lib/test/application.js +288 -0
  355. package/lib/test/application.js.map +1 -0
  356. package/lib/test/asyncstorage.d.ts +16 -0
  357. package/lib/test/asyncstorage.d.ts.map +1 -0
  358. package/lib/test/asyncstorage.js +32 -0
  359. package/lib/test/asyncstorage.js.map +1 -0
  360. package/lib/test/core.d.ts +63 -0
  361. package/lib/test/core.d.ts.map +1 -0
  362. package/lib/test/core.js +190 -0
  363. package/lib/test/core.js.map +1 -0
  364. package/lib/test/index.d.ts +7 -0
  365. package/lib/test/index.d.ts.map +1 -0
  366. package/lib/test/index.js +8 -0
  367. package/lib/test/index.js.map +1 -0
  368. package/lib/test/internal.d.ts +34 -0
  369. package/lib/test/internal.d.ts.map +1 -0
  370. package/lib/test/internal.js +156 -0
  371. package/lib/test/internal.js.map +1 -0
  372. package/lib/test/objects.d.ts +318 -0
  373. package/lib/test/objects.d.ts.map +1 -0
  374. package/lib/test/objects.js +443 -0
  375. package/lib/test/objects.js.map +1 -0
  376. package/lib/utils/abstractdeployer.d.ts +4 -2
  377. package/lib/utils/abstractdeployer.d.ts.map +1 -1
  378. package/lib/utils/abstractdeployer.js +3 -0
  379. package/lib/utils/abstractdeployer.js.map +1 -1
  380. package/package.json +85 -60
  381. package/test/cachedapp/webda.config.json +1 -5
  382. package/test/config-cached.json +1 -5
  383. package/test/config.json +0 -9
  384. package/test/my-cnf.json +9 -0
  385. package/webda.module.json +3463 -2482
  386. package/lib/application.d.ts +0 -888
  387. package/lib/application.d.ts.map +0 -1
  388. package/lib/application.js +0 -768
  389. package/lib/application.js.map +0 -1
  390. package/lib/application.spec.d.ts +0 -2
  391. package/lib/application.spec.d.ts.map +0 -1
  392. package/lib/application.spec.js +0 -248
  393. package/lib/application.spec.js.map +0 -1
  394. package/lib/core.d.ts +0 -743
  395. package/lib/core.d.ts.map +0 -1
  396. package/lib/core.js +0 -1334
  397. package/lib/core.js.map +0 -1
  398. package/lib/core.spec.d.ts +0 -2
  399. package/lib/core.spec.d.ts.map +0 -1
  400. package/lib/core.spec.js +0 -790
  401. package/lib/core.spec.js.map +0 -1
  402. package/lib/errors.d.ts +0 -64
  403. package/lib/errors.d.ts.map +0 -1
  404. package/lib/errors.js +0 -97
  405. package/lib/errors.js.map +0 -1
  406. package/lib/errors.spec.d.ts +0 -2
  407. package/lib/errors.spec.d.ts.map +0 -1
  408. package/lib/errors.spec.js +0 -33
  409. package/lib/errors.spec.js.map +0 -1
  410. package/lib/models/aclmodel.spec.d.ts +0 -2
  411. package/lib/models/aclmodel.spec.d.ts.map +0 -1
  412. package/lib/models/aclmodel.spec.js +0 -187
  413. package/lib/models/aclmodel.spec.js.map +0 -1
  414. package/lib/models/coremodel.d.ts +0 -896
  415. package/lib/models/coremodel.d.ts.map +0 -1
  416. package/lib/models/coremodel.js +0 -1214
  417. package/lib/models/coremodel.js.map +0 -1
  418. package/lib/models/coremodel.spec.d.ts +0 -2
  419. package/lib/models/coremodel.spec.d.ts.map +0 -1
  420. package/lib/models/coremodel.spec.js +0 -464
  421. package/lib/models/coremodel.spec.js.map +0 -1
  422. package/lib/models/ident.d.ts +0 -68
  423. package/lib/models/ident.d.ts.map +0 -1
  424. package/lib/models/ident.js +0 -26
  425. package/lib/models/ident.js.map +0 -1
  426. package/lib/models/ident.spec.d.ts +0 -2
  427. package/lib/models/ident.spec.d.ts.map +0 -1
  428. package/lib/models/ident.spec.js +0 -24
  429. package/lib/models/ident.spec.js.map +0 -1
  430. package/lib/models/ownermodel.d.ts +0 -51
  431. package/lib/models/ownermodel.d.ts.map +0 -1
  432. package/lib/models/ownermodel.js +0 -65
  433. package/lib/models/ownermodel.js.map +0 -1
  434. package/lib/models/ownermodel.spec.d.ts +0 -2
  435. package/lib/models/ownermodel.spec.d.ts.map +0 -1
  436. package/lib/models/ownermodel.spec.js +0 -215
  437. package/lib/models/ownermodel.spec.js.map +0 -1
  438. package/lib/models/relations.d.ts +0 -182
  439. package/lib/models/relations.d.ts.map +0 -1
  440. package/lib/models/relations.js +0 -157
  441. package/lib/models/relations.js.map +0 -1
  442. package/lib/models/relations.spec.d.ts +0 -14
  443. package/lib/models/relations.spec.d.ts.map +0 -1
  444. package/lib/models/relations.spec.js +0 -217
  445. package/lib/models/relations.spec.js.map +0 -1
  446. package/lib/models/rolemodel.d.ts +0 -11
  447. package/lib/models/rolemodel.d.ts.map +0 -1
  448. package/lib/models/rolemodel.js.map +0 -1
  449. package/lib/models/rolemodel.spec.d.ts +0 -2
  450. package/lib/models/rolemodel.spec.d.ts.map +0 -1
  451. package/lib/models/rolemodel.spec.js +0 -90
  452. package/lib/models/rolemodel.spec.js.map +0 -1
  453. package/lib/models/simpleuser.d.ts +0 -47
  454. package/lib/models/simpleuser.d.ts.map +0 -1
  455. package/lib/models/simpleuser.js +0 -84
  456. package/lib/models/simpleuser.js.map +0 -1
  457. package/lib/models/test.d.ts +0 -11
  458. package/lib/models/test.d.ts.map +0 -1
  459. package/lib/models/test.js +0 -7
  460. package/lib/models/test.js.map +0 -1
  461. package/lib/models/user.d.ts +0 -67
  462. package/lib/models/user.d.ts.map +0 -1
  463. package/lib/models/user.js +0 -86
  464. package/lib/models/user.js.map +0 -1
  465. package/lib/models/user.spec.d.ts +0 -2
  466. package/lib/models/user.spec.d.ts.map +0 -1
  467. package/lib/models/user.spec.js +0 -89
  468. package/lib/models/user.spec.js.map +0 -1
  469. package/lib/queues/filequeue.d.ts +0 -59
  470. package/lib/queues/filequeue.d.ts.map +0 -1
  471. package/lib/queues/filequeue.js +0 -131
  472. package/lib/queues/filequeue.js.map +0 -1
  473. package/lib/queues/filequeue.spec.d.ts +0 -2
  474. package/lib/queues/filequeue.spec.d.ts.map +0 -1
  475. package/lib/queues/filequeue.spec.js +0 -84
  476. package/lib/queues/filequeue.spec.js.map +0 -1
  477. package/lib/queues/memoryqueue.d.ts.map +0 -1
  478. package/lib/queues/memoryqueue.js.map +0 -1
  479. package/lib/queues/memoryqueue.spec.d.ts +0 -2
  480. package/lib/queues/memoryqueue.spec.d.ts.map +0 -1
  481. package/lib/queues/memoryqueue.spec.js +0 -203
  482. package/lib/queues/memoryqueue.spec.js.map +0 -1
  483. package/lib/queues/queue.spec.d.ts +0 -6
  484. package/lib/queues/queue.spec.d.ts.map +0 -1
  485. package/lib/queues/queue.spec.js +0 -55
  486. package/lib/queues/queue.spec.js.map +0 -1
  487. package/lib/rest/restdomainservice.d.ts +0 -63
  488. package/lib/rest/restdomainservice.d.ts.map +0 -1
  489. package/lib/rest/restdomainservice.js +0 -687
  490. package/lib/rest/restdomainservice.js.map +0 -1
  491. package/lib/rest/restdomainservice.spec.d.ts +0 -2
  492. package/lib/rest/restdomainservice.spec.d.ts.map +0 -1
  493. package/lib/rest/restdomainservice.spec.js +0 -124
  494. package/lib/rest/restdomainservice.spec.js.map +0 -1
  495. package/lib/rest/router.d.ts +0 -174
  496. package/lib/rest/router.d.ts.map +0 -1
  497. package/lib/rest/router.js +0 -429
  498. package/lib/rest/router.js.map +0 -1
  499. package/lib/rest/router.spec.d.ts +0 -2
  500. package/lib/rest/router.spec.d.ts.map +0 -1
  501. package/lib/rest/router.spec.js +0 -255
  502. package/lib/rest/router.spec.js.map +0 -1
  503. package/lib/services/asyncevents.d.ts +0 -152
  504. package/lib/services/asyncevents.d.ts.map +0 -1
  505. package/lib/services/asyncevents.js +0 -217
  506. package/lib/services/asyncevents.js.map +0 -1
  507. package/lib/services/asyncevents.spec.d.ts +0 -2
  508. package/lib/services/asyncevents.spec.d.ts.map +0 -1
  509. package/lib/services/asyncevents.spec.js +0 -118
  510. package/lib/services/asyncevents.spec.js.map +0 -1
  511. package/lib/services/authentication.d.ts.map +0 -1
  512. package/lib/services/authentication.js +0 -773
  513. package/lib/services/authentication.js.map +0 -1
  514. package/lib/services/authentication.spec.d.ts +0 -2
  515. package/lib/services/authentication.spec.d.ts.map +0 -1
  516. package/lib/services/authentication.spec.js +0 -458
  517. package/lib/services/authentication.spec.js.map +0 -1
  518. package/lib/services/binary.d.ts +0 -477
  519. package/lib/services/binary.d.ts.map +0 -1
  520. package/lib/services/binary.js +0 -617
  521. package/lib/services/binary.js.map +0 -1
  522. package/lib/services/binary.spec.d.ts +0 -41
  523. package/lib/services/binary.spec.d.ts.map +0 -1
  524. package/lib/services/binary.spec.js +0 -151
  525. package/lib/services/binary.spec.js.map +0 -1
  526. package/lib/services/cloudbinary.spec.d.ts +0 -6
  527. package/lib/services/cloudbinary.spec.d.ts.map +0 -1
  528. package/lib/services/cloudbinary.spec.js +0 -66
  529. package/lib/services/cloudbinary.spec.js.map +0 -1
  530. package/lib/services/configuration.d.ts.map +0 -1
  531. package/lib/services/configuration.js +0 -193
  532. package/lib/services/configuration.js.map +0 -1
  533. package/lib/services/configuration.spec.d.ts +0 -2
  534. package/lib/services/configuration.spec.d.ts.map +0 -1
  535. package/lib/services/configuration.spec.js +0 -130
  536. package/lib/services/configuration.spec.js.map +0 -1
  537. package/lib/services/cron.d.ts +0 -74
  538. package/lib/services/cron.d.ts.map +0 -1
  539. package/lib/services/cron.js +0 -141
  540. package/lib/services/cron.js.map +0 -1
  541. package/lib/services/cron.spec.d.ts +0 -2
  542. package/lib/services/cron.spec.d.ts.map +0 -1
  543. package/lib/services/cron.spec.js +0 -76
  544. package/lib/services/cron.spec.js.map +0 -1
  545. package/lib/services/cryptoservice.d.ts.map +0 -1
  546. package/lib/services/cryptoservice.js +0 -433
  547. package/lib/services/cryptoservice.js.map +0 -1
  548. package/lib/services/cryptoservice.spec.d.ts +0 -2
  549. package/lib/services/cryptoservice.spec.d.ts.map +0 -1
  550. package/lib/services/cryptoservice.spec.js +0 -177
  551. package/lib/services/cryptoservice.spec.js.map +0 -1
  552. package/lib/services/debugmailer.d.ts +0 -36
  553. package/lib/services/debugmailer.d.ts.map +0 -1
  554. package/lib/services/debugmailer.js.map +0 -1
  555. package/lib/services/debugmailer.spec.d.ts +0 -2
  556. package/lib/services/debugmailer.spec.d.ts.map +0 -1
  557. package/lib/services/debugmailer.spec.js +0 -32
  558. package/lib/services/debugmailer.spec.js.map +0 -1
  559. package/lib/services/domainservice.d.ts +0 -272
  560. package/lib/services/domainservice.d.ts.map +0 -1
  561. package/lib/services/domainservice.js +0 -651
  562. package/lib/services/domainservice.js.map +0 -1
  563. package/lib/services/domainservice.spec.d.ts +0 -2
  564. package/lib/services/domainservice.spec.d.ts.map +0 -1
  565. package/lib/services/domainservice.spec.js +0 -592
  566. package/lib/services/domainservice.spec.js.map +0 -1
  567. package/lib/services/filebinary.d.ts +0 -136
  568. package/lib/services/filebinary.d.ts.map +0 -1
  569. package/lib/services/filebinary.js +0 -373
  570. package/lib/services/filebinary.js.map +0 -1
  571. package/lib/services/filebinary.spec.d.ts +0 -25
  572. package/lib/services/filebinary.spec.d.ts.map +0 -1
  573. package/lib/services/filebinary.spec.js +0 -428
  574. package/lib/services/filebinary.spec.js.map +0 -1
  575. package/lib/services/fileconfiguration.d.ts +0 -23
  576. package/lib/services/fileconfiguration.d.ts.map +0 -1
  577. package/lib/services/fileconfiguration.js +0 -48
  578. package/lib/services/fileconfiguration.js.map +0 -1
  579. package/lib/services/fileconfiguration.spec.d.ts +0 -2
  580. package/lib/services/fileconfiguration.spec.d.ts.map +0 -1
  581. package/lib/services/fileconfiguration.spec.js +0 -215
  582. package/lib/services/fileconfiguration.spec.js.map +0 -1
  583. package/lib/services/invitationservice.d.ts +0 -223
  584. package/lib/services/invitationservice.d.ts.map +0 -1
  585. package/lib/services/invitationservice.js +0 -529
  586. package/lib/services/invitationservice.js.map +0 -1
  587. package/lib/services/invitationservice.spec.d.ts +0 -2
  588. package/lib/services/invitationservice.spec.d.ts.map +0 -1
  589. package/lib/services/invitationservice.spec.js +0 -567
  590. package/lib/services/invitationservice.spec.js.map +0 -1
  591. package/lib/services/kubernetesconfiguration.d.ts +0 -27
  592. package/lib/services/kubernetesconfiguration.d.ts.map +0 -1
  593. package/lib/services/kubernetesconfiguration.js +0 -52
  594. package/lib/services/kubernetesconfiguration.js.map +0 -1
  595. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -2
  596. package/lib/services/kubernetesconfiguration.spec.d.ts.map +0 -1
  597. package/lib/services/kubernetesconfiguration.spec.js +0 -206
  598. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  599. package/lib/services/mailer.d.ts +0 -166
  600. package/lib/services/mailer.d.ts.map +0 -1
  601. package/lib/services/mailer.js +0 -176
  602. package/lib/services/mailer.js.map +0 -1
  603. package/lib/services/mailer.spec.d.ts +0 -2
  604. package/lib/services/mailer.spec.d.ts.map +0 -1
  605. package/lib/services/mailer.spec.js +0 -158
  606. package/lib/services/mailer.spec.js.map +0 -1
  607. package/lib/services/notificationservice.d.ts.map +0 -1
  608. package/lib/services/notificationservice.js.map +0 -1
  609. package/lib/services/notificationservice.spec.d.ts +0 -2
  610. package/lib/services/notificationservice.spec.d.ts.map +0 -1
  611. package/lib/services/notificationservice.spec.js +0 -83
  612. package/lib/services/notificationservice.spec.js.map +0 -1
  613. package/lib/services/oauth.spec.d.ts +0 -2
  614. package/lib/services/oauth.spec.d.ts.map +0 -1
  615. package/lib/services/oauth.spec.js +0 -208
  616. package/lib/services/oauth.spec.js.map +0 -1
  617. package/lib/services/prometheus.d.ts.map +0 -1
  618. package/lib/services/prometheus.js +0 -160
  619. package/lib/services/prometheus.js.map +0 -1
  620. package/lib/services/prometheus.spec.d.ts +0 -2
  621. package/lib/services/prometheus.spec.d.ts.map +0 -1
  622. package/lib/services/prometheus.spec.js +0 -76
  623. package/lib/services/prometheus.spec.js.map +0 -1
  624. package/lib/services/resource.d.ts.map +0 -1
  625. package/lib/services/resource.js +0 -170
  626. package/lib/services/resource.js.map +0 -1
  627. package/lib/services/resource.spec.d.ts +0 -2
  628. package/lib/services/resource.spec.d.ts.map +0 -1
  629. package/lib/services/resource.spec.js +0 -140
  630. package/lib/services/resource.spec.js.map +0 -1
  631. package/lib/services/service.spec.d.ts +0 -2
  632. package/lib/services/service.spec.d.ts.map +0 -1
  633. package/lib/services/service.spec.js +0 -286
  634. package/lib/services/service.spec.js.map +0 -1
  635. package/lib/stores/aggregator.d.ts +0 -48
  636. package/lib/stores/aggregator.d.ts.map +0 -1
  637. package/lib/stores/aggregator.js +0 -80
  638. package/lib/stores/aggregator.js.map +0 -1
  639. package/lib/stores/file.d.ts +0 -108
  640. package/lib/stores/file.d.ts.map +0 -1
  641. package/lib/stores/file.js +0 -188
  642. package/lib/stores/file.js.map +0 -1
  643. package/lib/stores/file.spec.d.ts +0 -13
  644. package/lib/stores/file.spec.d.ts.map +0 -1
  645. package/lib/stores/file.spec.js +0 -138
  646. package/lib/stores/file.spec.js.map +0 -1
  647. package/lib/stores/mapper.d.ts +0 -150
  648. package/lib/stores/mapper.d.ts.map +0 -1
  649. package/lib/stores/mapper.js +0 -293
  650. package/lib/stores/mapper.js.map +0 -1
  651. package/lib/stores/mapper.spec.d.ts +0 -2
  652. package/lib/stores/mapper.spec.d.ts.map +0 -1
  653. package/lib/stores/mapper.spec.js +0 -167
  654. package/lib/stores/mapper.spec.js.map +0 -1
  655. package/lib/stores/memory.d.ts +0 -152
  656. package/lib/stores/memory.d.ts.map +0 -1
  657. package/lib/stores/memory.js +0 -371
  658. package/lib/stores/memory.js.map +0 -1
  659. package/lib/stores/memory.spec.d.ts +0 -14
  660. package/lib/stores/memory.spec.d.ts.map +0 -1
  661. package/lib/stores/memory.spec.js +0 -263
  662. package/lib/stores/memory.spec.js.map +0 -1
  663. package/lib/stores/modelmapper.d.ts +0 -62
  664. package/lib/stores/modelmapper.d.ts.map +0 -1
  665. package/lib/stores/modelmapper.js +0 -197
  666. package/lib/stores/modelmapper.js.map +0 -1
  667. package/lib/stores/store.spec.d.ts +0 -57
  668. package/lib/stores/store.spec.d.ts.map +0 -1
  669. package/lib/stores/store.spec.js +0 -737
  670. package/lib/stores/store.spec.js.map +0 -1
  671. package/lib/test.d.ts +0 -265
  672. package/lib/test.d.ts.map +0 -1
  673. package/lib/test.js +0 -622
  674. package/lib/test.js.map +0 -1
  675. package/lib/unpackedapplication.d.ts.map +0 -1
  676. package/lib/unpackedapplication.js +0 -350
  677. package/lib/unpackedapplication.js.map +0 -1
  678. package/lib/utils/abstractdeployer.spec.d.ts +0 -2
  679. package/lib/utils/abstractdeployer.spec.d.ts.map +0 -1
  680. package/lib/utils/abstractdeployer.spec.js +0 -21
  681. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  682. package/lib/utils/case.d.ts +0 -8
  683. package/lib/utils/case.d.ts.map +0 -1
  684. package/lib/utils/case.js +0 -43
  685. package/lib/utils/case.js.map +0 -1
  686. package/lib/utils/case.spec.d.ts +0 -2
  687. package/lib/utils/case.spec.d.ts.map +0 -1
  688. package/lib/utils/case.spec.js +0 -50
  689. package/lib/utils/case.spec.js.map +0 -1
  690. package/lib/utils/context.d.ts +0 -482
  691. package/lib/utils/context.d.ts.map +0 -1
  692. package/lib/utils/context.js +0 -739
  693. package/lib/utils/context.js.map +0 -1
  694. package/lib/utils/context.spec.d.ts +0 -10
  695. package/lib/utils/context.spec.d.ts.map +0 -1
  696. package/lib/utils/context.spec.js +0 -383
  697. package/lib/utils/context.spec.js.map +0 -1
  698. package/lib/utils/cookie.d.ts.map +0 -1
  699. package/lib/utils/cookie.js.map +0 -1
  700. package/lib/utils/cookie.spec.d.ts +0 -2
  701. package/lib/utils/cookie.spec.d.ts.map +0 -1
  702. package/lib/utils/cookie.spec.js +0 -88
  703. package/lib/utils/cookie.spec.js.map +0 -1
  704. package/lib/utils/esm.d.ts +0 -14
  705. package/lib/utils/esm.d.ts.map +0 -1
  706. package/lib/utils/esm.js +0 -19
  707. package/lib/utils/esm.js.map +0 -1
  708. package/lib/utils/httpcontext.d.ts.map +0 -1
  709. package/lib/utils/httpcontext.js.map +0 -1
  710. package/lib/utils/httpcontext.spec.d.ts +0 -5
  711. package/lib/utils/httpcontext.spec.d.ts.map +0 -1
  712. package/lib/utils/httpcontext.spec.js +0 -77
  713. package/lib/utils/httpcontext.spec.js.map +0 -1
  714. package/lib/utils/logger.d.ts +0 -92
  715. package/lib/utils/logger.d.ts.map +0 -1
  716. package/lib/utils/logger.js +0 -121
  717. package/lib/utils/logger.js.map +0 -1
  718. package/lib/utils/logger.spec.d.ts +0 -2
  719. package/lib/utils/logger.spec.d.ts.map +0 -1
  720. package/lib/utils/logger.spec.js +0 -48
  721. package/lib/utils/logger.spec.js.map +0 -1
  722. package/lib/utils/serializers.d.ts +0 -162
  723. package/lib/utils/serializers.d.ts.map +0 -1
  724. package/lib/utils/serializers.js +0 -420
  725. package/lib/utils/serializers.js.map +0 -1
  726. package/lib/utils/serializers.spec.d.ts +0 -2
  727. package/lib/utils/serializers.spec.d.ts.map +0 -1
  728. package/lib/utils/serializers.spec.js +0 -311
  729. package/lib/utils/serializers.spec.js.map +0 -1
  730. package/lib/utils/session.d.ts +0 -123
  731. package/lib/utils/session.d.ts.map +0 -1
  732. package/lib/utils/session.js +0 -156
  733. package/lib/utils/session.js.map +0 -1
  734. package/lib/utils/session.spec.d.ts +0 -2
  735. package/lib/utils/session.spec.d.ts.map +0 -1
  736. package/lib/utils/session.spec.js +0 -81
  737. package/lib/utils/session.spec.js.map +0 -1
  738. package/lib/utils/throttler.d.ts +0 -99
  739. package/lib/utils/throttler.d.ts.map +0 -1
  740. package/lib/utils/throttler.js +0 -160
  741. package/lib/utils/throttler.js.map +0 -1
  742. package/lib/utils/throttler.spec.d.ts +0 -2
  743. package/lib/utils/throttler.spec.d.ts.map +0 -1
  744. package/lib/utils/throttler.spec.js +0 -53
  745. package/lib/utils/throttler.spec.js.map +0 -1
  746. package/lib/utils/waiter.d.ts +0 -94
  747. package/lib/utils/waiter.d.ts.map +0 -1
  748. package/lib/utils/waiter.js +0 -148
  749. package/lib/utils/waiter.js.map +0 -1
  750. package/lib/utils/waiter.spec.d.ts +0 -2
  751. package/lib/utils/waiter.spec.d.ts.map +0 -1
  752. package/lib/utils/waiter.spec.js +0 -98
  753. package/lib/utils/waiter.spec.js.map +0 -1
  754. package/test/jsonutils/mdocs.yaml +0 -56
  755. package/test/jsonutils/test.json +0 -3
  756. package/test/jsonutils/test.yml +0 -5
@@ -1,773 +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 bcrypt from "bcryptjs";
8
- import { Counter } from "../core.js";
9
- import * as WebdaError from "../errors.js";
10
- import { Inject, Service, ServiceParameters } from "../services/service.js";
11
- import { Route } from "../rest/router.js";
12
- import { HttpContext } from "../utils/httpcontext.js";
13
- export class AuthenticationParameters extends ServiceParameters {
14
- constructor(params) {
15
- var _a, _b;
16
- super(params);
17
- this.identModel ?? (this.identModel = "Webda/Ident");
18
- this.userModel ?? (this.userModel = "Webda/User");
19
- this.url ?? (this.url = "/auth");
20
- this.password ?? (this.password = {
21
- regexp: ".{8,}"
22
- });
23
- if (this.email) {
24
- (_a = this.email).delay ?? (_a.delay = 3600000 * 4);
25
- (_b = this.email).failedLoginBeforeDelay ?? (_b.failedLoginBeforeDelay = 3);
26
- }
27
- }
28
- }
29
- /**
30
- * This class is known as the Authentication module
31
- * It handles OAuth for several providers for now (Facebook, Google, Amazon, GitHub and Twitter)
32
- * It also handles email authentication with prevalidation or postvalidation of the email
33
- *
34
- * It requires two Store to work one `idents` and one `users`
35
- *
36
- * The parameters are
37
- * ```
38
- * providerName: {
39
- * clientID: '...',
40
- * clientSecret: '...',
41
- * scope: ''
42
- * },
43
- * email: {
44
- * postValidation: true|false // If postValidation=true, account created without email verification
45
- * }
46
- * url: 'url' // By default /auth
47
- * ```
48
- *
49
- * @category CoreServices
50
- * @WebdaModda
51
- */
52
- class Authentication extends Service {
53
- constructor() {
54
- super(...arguments);
55
- this.providers = new Set();
56
- }
57
- /**
58
- * Load the parameters for a service
59
- */
60
- loadParameters(params) {
61
- return new AuthenticationParameters(params);
62
- }
63
- /**
64
- * Get the user store
65
- * @returns
66
- */
67
- getUserStore() {
68
- return this._userModel.store();
69
- }
70
- /**
71
- * Get the user store
72
- * @returns
73
- */
74
- getIdentStore() {
75
- return this._identModel.store();
76
- }
77
- /**
78
- * @ignore
79
- * Setup the default routes
80
- */
81
- computeParameters() {
82
- super.computeParameters();
83
- this._identModel = this.getWebda().getModel(this.parameters.identModel);
84
- this._userModel = this.getWebda().getModel(this.parameters.userModel);
85
- if (this.parameters.password.verifier) {
86
- this._passwordVerifier = this.getService(this.parameters.password.verifier);
87
- }
88
- if (this.parameters.email && this.getMailMan() === undefined) {
89
- throw Error("email authentication requires a Mailer service");
90
- }
91
- // Add email provider
92
- if (this.parameters.email) {
93
- this.addProvider("email");
94
- this.addRoute("./email/{email}/recover", ["GET"], this._passwordRecoveryEmail, {
95
- get: {
96
- description: "The password reset process will be start",
97
- summary: "Start password recovery",
98
- operationId: "startEmailRecovery",
99
- responses: {
100
- "204": {
101
- description: ""
102
- },
103
- "404": {
104
- description: "Email does not exist"
105
- },
106
- "429": {
107
- description: "Recovery has been initiated in the last 4 hours"
108
- }
109
- }
110
- }
111
- });
112
- this.addRoute("./email/passwordRecovery", ["POST"], this._passwordRecovery, {
113
- post: {
114
- schemas: {
115
- input: {
116
- type: "object",
117
- properties: {
118
- token: {
119
- type: "string"
120
- },
121
- expire: {
122
- type: "number"
123
- },
124
- password: {
125
- type: "string"
126
- },
127
- login: {
128
- type: "string"
129
- }
130
- }
131
- }
132
- },
133
- description: "Reinit the password if we have the right token, expire",
134
- summary: "Reinit password",
135
- operationId: "reinitPassword",
136
- responses: {
137
- "204": {
138
- description: ""
139
- },
140
- "403": {
141
- description: "Wrong Token"
142
- }
143
- }
144
- }
145
- });
146
- this.addRoute("./email", ["POST"], this._handleEmail, {
147
- post: {
148
- description: "Authenticate with an email and password",
149
- summary: "Authenticate with email",
150
- operationId: `authWithEmail`
151
- }
152
- });
153
- }
154
- }
155
- /**
156
- * @override
157
- */
158
- initMetrics() {
159
- super.initMetrics();
160
- this.metrics.login = this.getMetric(Counter, {
161
- name: "auth_login",
162
- help: "Counter number of login per provider",
163
- labelNames: ["provider"]
164
- });
165
- this.metrics.logout = this.getMetric(Counter, {
166
- name: "auth_logout",
167
- help: "Counter number of logout"
168
- });
169
- this.metrics.registration = this.getMetric(Counter, {
170
- name: "auth_registration",
171
- help: "Counter number of registration per provider",
172
- labelNames: ["provider"]
173
- });
174
- if (this.parameters.email) {
175
- this.metrics.loginFailed = this.getMetric(Counter, {
176
- name: "auth_login_failed",
177
- help: "Counter number of login failed with password"
178
- });
179
- this.metrics.recovery = this.getMetric(Counter, {
180
- name: "auth_login_recovery",
181
- help: "Counter number of password lost process initiated"
182
- });
183
- this.metrics.recovered = this.getMetric(Counter, {
184
- name: "auth_login_recovered",
185
- help: "Counter number of password lost process successful"
186
- });
187
- }
188
- }
189
- /**
190
- * Add a provider to the oauth scheme
191
- * @param name
192
- */
193
- addProvider(name) {
194
- this.providers.add(name);
195
- }
196
- /**
197
- * Ensure email is enabled for all emails routes
198
- * @override
199
- */
200
- getUrl(url, methods) {
201
- if (url.startsWith("./emails") && !this.parameters.email) {
202
- return undefined;
203
- }
204
- return super.getUrl(url, methods);
205
- }
206
- /**
207
- * Send or resend an email to validate the email address
208
- *
209
- * @param ctx
210
- * @throws 409 if ident is linked to someone else
211
- * @throws 412 if the email is already validated
212
- * @throws 429 if a validation email has been sent recently
213
- */
214
- async _sendEmailValidation(ctx) {
215
- const identKey = ctx.parameters.email + "_email";
216
- const ident = await this._identModel.ref(identKey).get();
217
- if (!ident) {
218
- await this._identModel.ref(`${ctx.parameters.email}_email`).create({
219
- _lastValidationEmail: Date.now(),
220
- _type: "email"
221
- });
222
- }
223
- else {
224
- // If the ident is linked to someone else - might want to remove it
225
- if (ident.getUser().getUuid() !== ctx.getCurrentUserId()) {
226
- throw new WebdaError.Conflict("Ident is linked to someone else");
227
- }
228
- // If the email is already validated
229
- if (ident._validation) {
230
- throw new WebdaError.PreconditionFailed("Email already validated");
231
- }
232
- //
233
- if (ident._lastValidationEmail >= Date.now() - this.parameters.email.delay) {
234
- throw new WebdaError.TooManyRequests("Email sent recently");
235
- }
236
- await this._identModel.ref(ident.getUuid()).setAttribute("_lastValidationEmail", Date.now());
237
- }
238
- await this.sendValidationEmail(ctx, ctx.parameters.email);
239
- }
240
- /**
241
- * Return current user
242
- * @param ctx
243
- */
244
- async _getMe(ctx) {
245
- const user = await ctx.getCurrentUser();
246
- if (user === undefined) {
247
- throw new WebdaError.NotFound("No user found");
248
- }
249
- await this.emitSync("Authentication.GetMe", {
250
- context: ctx,
251
- user
252
- });
253
- ctx.write(user);
254
- }
255
- /**
256
- * Handle both list of available authentication
257
- * and logout with method 'DELETE'
258
- *
259
- * @param ctx
260
- * @returns
261
- */
262
- async _listAuthentications(ctx) {
263
- if (ctx.getHttpContext().getMethod() === "DELETE") {
264
- await this.logout(ctx);
265
- this.metrics.logout.inc();
266
- ctx.write("GoodBye");
267
- return;
268
- }
269
- ctx.write(Array.from(this.providers));
270
- }
271
- async onIdentLogin(ctx, provider, identId, profile, tokens = undefined) {
272
- // Auto postifx with provider name
273
- const postfix = `_${provider}`;
274
- if (!identId.endsWith(postfix)) {
275
- identId += postfix;
276
- }
277
- let ident = await this._identModel.ref(identId).get();
278
- // Ident is known
279
- if (ident) {
280
- await this.login(ctx, ident.getUser().toString(), ident, provider);
281
- await ident.patch({
282
- _lastUsed: new Date(),
283
- __tokens: tokens
284
- });
285
- // Redirect to?
286
- return;
287
- }
288
- let user;
289
- if (profile.email) {
290
- ident = await this._identModel.ref(`${profile.email}_email`).get();
291
- }
292
- // If already login
293
- if (ctx.getCurrentUserId()) {
294
- user = await ctx.getCurrentUser();
295
- }
296
- else {
297
- // If an email in profile try to find the ident
298
- if (ident) {
299
- user = await this._userModel.ref(ident.getUser().toString()).get();
300
- }
301
- if (!user) {
302
- // If no user, register a new user automatically
303
- user = await this.registerUser(ctx, profile, identId);
304
- await user.save();
305
- }
306
- }
307
- if (profile.email && !ident) {
308
- // Save additional email
309
- await new this._identModel()
310
- .load({
311
- uuid: `${profile.email}_email`,
312
- provider: "email",
313
- _user: user.getUuid()
314
- }, true)
315
- .save();
316
- }
317
- // Work directly on ident argument
318
- ident = new this._identModel().load({
319
- uuid: identId,
320
- __profile: profile,
321
- __tokens: tokens,
322
- provider
323
- }, true);
324
- ident.setUser(user.uuid);
325
- ident._lastUsed = new Date();
326
- ident.setType(provider);
327
- await ident.save();
328
- ident.__new = true;
329
- await this.login(ctx, user, ident, provider);
330
- }
331
- /**
332
- * Create a new User with the link ident
333
- * @param ident
334
- */
335
- async createUserWithIdent(provider, identId, profile = {}) {
336
- if (await this._identModel.ref(`${identId}_${provider}`).exists()) {
337
- throw new Error("Ident is already known");
338
- }
339
- const ctx = await this._webda.newWebContext(new HttpContext("fake", "GET", "/"));
340
- // Pretend we logged in with the ident
341
- await this.onIdentLogin(ctx, provider, identId, profile);
342
- }
343
- async registerUser(ctx, data, identId, user = new this._userModel()) {
344
- user.load({
345
- email: data.email,
346
- locale: ctx.getLocale()
347
- }, true);
348
- this.metrics.registration.inc();
349
- await this.emitSync("Authentication.Register", {
350
- user: user,
351
- data: data,
352
- context: ctx,
353
- identId
354
- });
355
- return user;
356
- }
357
- async getPasswordRecoveryInfos(uuid, interval = this.parameters.email.delay) {
358
- const expire = Date.now() + interval;
359
- let user;
360
- if (typeof uuid === "string") {
361
- user = await this._userModel.ref(uuid).get();
362
- }
363
- else {
364
- user = uuid;
365
- }
366
- if (!user) {
367
- return undefined;
368
- }
369
- return {
370
- expire: expire,
371
- // Might want to add more alea not coming from the db to avoid exploitation of stolen db
372
- token: await this.cryptoService.hmac(user.uuid + expire + user.getPassword()),
373
- login: user.uuid
374
- };
375
- }
376
- /**
377
- * Manage password recovery
378
- * @param ctx
379
- */
380
- async _passwordRecoveryEmail(ctx) {
381
- const email = ctx.parameter("email");
382
- const ident = await this._identModel.ref(email + "_email").get();
383
- if (!ident) {
384
- throw new WebdaError.NotFound("Email not found");
385
- }
386
- const user = await this._userModel.ref(ident.getUser().toString()).get();
387
- // Dont allow to do too many request
388
- if (!user.lastPasswordRecoveryBefore(Date.now() - this.parameters.email.delay)) {
389
- throw new WebdaError.TooManyRequests("Password recovery already requested recently");
390
- }
391
- await user.patch({
392
- _lastPasswordRecovery: Date.now()
393
- }, null);
394
- this.metrics.recovery.inc();
395
- await this.sendRecoveryEmail(ctx, user, email);
396
- }
397
- async _verifyPassword(password, user) {
398
- if (this._passwordVerifier) {
399
- if (!(await this._passwordVerifier.validate(password, user))) {
400
- throw new WebdaError.BadRequest("Password does not match the policy");
401
- }
402
- return;
403
- }
404
- const regexp = new RegExp(this.parameters.password.regexp);
405
- if (regexp.exec(password) === null) {
406
- throw new WebdaError.BadRequest("Password does not match the policy");
407
- }
408
- }
409
- async _passwordRecovery(ctx) {
410
- const body = await ctx.getRequestBody();
411
- const user = await this._userModel.ref(body.login.toLowerCase()).get();
412
- if (!user) {
413
- throw new WebdaError.Forbidden("User not found");
414
- }
415
- if (!(await this.cryptoService.hmacVerify(body.login.toLowerCase() + body.expire + user.getPassword(), body.token))) {
416
- throw new WebdaError.Forbidden("Invalid token");
417
- }
418
- if (body.expire < Date.now()) {
419
- throw new WebdaError.Gone("Expired token");
420
- }
421
- await this._verifyPassword(body.password, user);
422
- const password = this.hashPassword(body.password);
423
- await user.patch({
424
- __password: password
425
- }, null);
426
- this.metrics.recovered.inc();
427
- await this.emitSync("Authentication.PasswordUpdate", {
428
- user,
429
- password,
430
- context: ctx
431
- });
432
- }
433
- /**
434
- * Callback to validate an email address
435
- * @param ctx
436
- * @returns
437
- */
438
- async _handleEmailCallback(ctx) {
439
- if (!(await this.cryptoService.hmacVerify(`${ctx.parameter("email")}_${ctx.parameter("user")}`, ctx.parameter("token")))) {
440
- ctx.writeHead(302, {
441
- Location: this.parameters.failureRedirect + "?reason=badToken"
442
- });
443
- return;
444
- }
445
- if (ctx.parameter("user") !== ctx.getCurrentUserId() &&
446
- ctx.getCurrentUserId() !== "" &&
447
- ctx.getCurrentUserId() !== undefined) {
448
- ctx.writeHead(302, {
449
- Location: this.parameters.failureRedirect + "?reason=badUser"
450
- });
451
- return;
452
- }
453
- if (!ctx.parameter("user")) {
454
- ctx.writeHead(302, {
455
- Location: `${this.parameters.registerRedirect}?token=${ctx.parameter("token")}&email=${ctx.parameter("email")}`
456
- });
457
- return;
458
- }
459
- const uuid = ctx.parameter("email") + "_email";
460
- let ident = await this._identModel.ref(uuid).get();
461
- // Would mean the ident got delete in the mean time... hyper low likely hood
462
- if (ident === undefined) {
463
- ident = new this._identModel().setUuid(uuid);
464
- }
465
- ident._type = "email";
466
- ident._validation = new Date();
467
- ident.setUser(ctx.parameter("user"));
468
- await ident.save();
469
- ctx.writeHead(302, {
470
- Location: this.parameters.successRedirect + "?validation=email",
471
- "X-Webda-Authentication": "success"
472
- });
473
- }
474
- /**
475
- * Send an email to recover the user password
476
- *
477
- * @param ctx
478
- * @param user
479
- * @param email
480
- * @returns
481
- */
482
- async sendRecoveryEmail(ctx, user, email) {
483
- const infos = await this.getPasswordRecoveryInfos(user);
484
- const mailer = this.getMailMan();
485
- const locale = user.locale || ctx.getLocale();
486
- const mailOptions = {
487
- to: email,
488
- locale: locale,
489
- template: "EMAIL_RECOVERY",
490
- replacements: {
491
- ...this.parameters.email,
492
- infos,
493
- to: email,
494
- context: ctx
495
- }
496
- };
497
- return mailer.send(mailOptions);
498
- }
499
- /**
500
- * Send an email to validate the user email by sending a unique link to
501
- * his email
502
- *
503
- * @param ctx
504
- * @param email
505
- * @returns
506
- */
507
- async sendValidationEmail(ctx, email) {
508
- const mailer = this.getMailMan();
509
- const replacements = {
510
- ...this.parameters.email,
511
- context: ctx,
512
- url: ctx
513
- .getHttpContext()
514
- .getAbsoluteUrl(`${this.parameters.url}/email/callback?email=${email}&token=${await this.generateEmailValidationToken(ctx.getCurrentUserId(), email)}`)
515
- };
516
- const userId = ctx.getCurrentUserId();
517
- if (userId && userId.length > 0) {
518
- replacements.url += "&user=" + userId;
519
- }
520
- const mailOptions = {
521
- to: email,
522
- locale: ctx.getLocale(),
523
- template: "EMAIL_REGISTER",
524
- replacements: replacements
525
- };
526
- return mailer.send(mailOptions);
527
- }
528
- /**
529
- * Check the password match the stored hash
530
- * @param hash generate prior by hashPassword
531
- * @param password as entered by the user
532
- */
533
- checkPassword(hash, pass) {
534
- return bcrypt.compareSync(pass, hash);
535
- }
536
- /**
537
- * Hash the password according to good practices
538
- *
539
- * @param pass to hash
540
- */
541
- hashPassword(pass) {
542
- return bcrypt.hashSync(pass, this.parameters.salt || 10);
543
- }
544
- /**
545
- * Logout user
546
- */
547
- async logout(ctx) {
548
- await this.emitSync("Authentication.Logout", {
549
- context: ctx
550
- });
551
- await ctx.newSession();
552
- }
553
- /**
554
- * Login a user
555
- *
556
- * @param ctx
557
- * @param user
558
- * @param ident
559
- * @returns
560
- */
561
- async login(ctx, user, ident, provider) {
562
- const event = {
563
- context: ctx,
564
- userId: "",
565
- identId: ident.uuid,
566
- ident
567
- };
568
- if (typeof user == "object") {
569
- event.userId = user.getUuid();
570
- event.user = user;
571
- }
572
- else {
573
- event.userId = user;
574
- }
575
- event.context = ctx;
576
- ctx.getSession().login(event.userId, event.identId);
577
- this.metrics.login.inc({ provider });
578
- return this.emitSync("Authentication.Login", event);
579
- }
580
- getMailMan() {
581
- return this.getService(this.parameters.email.mailer ? this.parameters.email.mailer : "Mailer");
582
- }
583
- /**
584
- * Handle a user login request
585
- *
586
- * @param ctx
587
- * @param ident
588
- */
589
- async handleLogin(ctx, ident) {
590
- const updates = {};
591
- const user = await this._userModel.ref(ident.getUser().toString()).get();
592
- // Check password
593
- if (this.checkPassword(user.getPassword(), (await ctx.getRequestBody()).password)) {
594
- if (ident._failedLogin > 0) {
595
- ident._failedLogin = 0;
596
- }
597
- updates._lastUsed = new Date();
598
- updates._failedLogin = 0;
599
- await this._identModel.ref(ident.uuid).patch(updates);
600
- await this.login(ctx, ident.getUser().toString(), ident, "email");
601
- ctx.write(user);
602
- }
603
- else {
604
- this.metrics.loginFailed.inc();
605
- await this.emitSync("Authentication.LoginFailed", {
606
- user,
607
- context: ctx
608
- });
609
- ident._failedLogin ?? (ident._failedLogin = 0);
610
- updates._failedLogin = ident._failedLogin + 1;
611
- updates._lastFailedLogin = new Date();
612
- // Swalow exeception issue to double check !
613
- await this._identModel.ref(ident.uuid).patch(updates);
614
- // Allows to auto redirect user to a oauth if needed
615
- // It can intercept the error and redirect to the oauth if
616
- // email match
617
- if (!ctx.isEnded()) {
618
- throw new WebdaError.Forbidden("Invalid password");
619
- }
620
- }
621
- }
622
- /**
623
- * Handle the POST /auth/email
624
- *
625
- * @param ctx
626
- * @returns
627
- */
628
- async _handleEmail(ctx) {
629
- // If called while logged in reject
630
- if (ctx.getCurrentUserId() !== undefined) {
631
- throw new WebdaError.Gone("Already logged in");
632
- }
633
- const body = await ctx.getRequestBody();
634
- const mailConfig = this.parameters.email;
635
- const uuid = body.login.toLowerCase() + "_email";
636
- let ident = await this._identModel.ref(uuid).get();
637
- if (ident !== undefined && ident.getUser() !== undefined) {
638
- // Register on an known user
639
- if (!body.register) {
640
- await this.handleLogin(ctx, ident);
641
- return;
642
- }
643
- // If register on a validate email
644
- if (ident._validation !== undefined) {
645
- throw new WebdaError.Conflict("Email already registered");
646
- }
647
- }
648
- // TODO Handle add of email on authenticated user
649
- const email = body.login.toLowerCase();
650
- // Read the form
651
- if (body.register) {
652
- let validation = undefined;
653
- // Need to check email before creation
654
- if (!mailConfig.postValidation) {
655
- if (body.token && (await this.cryptoService.hmacVerify(`${email}_${ctx.getCurrentUserId()}`, body.token))) {
656
- validation = new Date();
657
- }
658
- else {
659
- ctx.write({});
660
- // token is undefined send an email
661
- return this.sendValidationEmail(ctx, email);
662
- }
663
- }
664
- if (!body.password) {
665
- throw new WebdaError.BadRequest("Password is required");
666
- }
667
- // Store with a _
668
- const __password = this.hashPassword(body.password);
669
- await this._verifyPassword(body.password);
670
- // Remove useless attributes
671
- delete body.password;
672
- delete body.register;
673
- delete body.token;
674
- const user = await this.registerUser(ctx, {}, uuid, new this._userModel().load({
675
- ...body,
676
- __password
677
- }, true));
678
- await this.emitSync("Authentication.PasswordCreate", {
679
- user,
680
- password: __password,
681
- context: ctx
682
- });
683
- await user.save();
684
- const newIdent = new this._identModel().load({
685
- uuid: uuid,
686
- _type: "email",
687
- email: email
688
- }, true);
689
- newIdent.setUser(user.getUuid());
690
- if (validation) {
691
- newIdent._validation = validation;
692
- }
693
- else if (!mailConfig.skipEmailValidation) {
694
- newIdent._lastValidationEmail = Date.now();
695
- }
696
- ident = await newIdent.save();
697
- await this.login(ctx, user, ident, "email");
698
- ctx.write(user);
699
- if (!validation && !mailConfig.skipEmailValidation) {
700
- await this.sendValidationEmail(ctx, email);
701
- }
702
- return;
703
- }
704
- throw new WebdaError.NotFound("");
705
- }
706
- async generateEmailValidationToken(user, email) {
707
- return this.cryptoService.hmac(email + "_" + user);
708
- }
709
- }
710
- __decorate([
711
- Inject("CryptoService")
712
- ], Authentication.prototype, "cryptoService", void 0);
713
- __decorate([
714
- Route("./email/{email}/validate", ["GET"], {
715
- get: {
716
- description: "The email validation process will be start",
717
- summary: "Restart email validation",
718
- operationId: "startEmailRecovery",
719
- responses: {
720
- "204": {
721
- description: ""
722
- },
723
- "409": {
724
- description: "Email already verified for another user"
725
- },
726
- "412": {
727
- description: "Email already verified for current user"
728
- },
729
- "429": {
730
- description: "Validation has been initiated in the last 4 hours"
731
- }
732
- }
733
- }
734
- })
735
- ], Authentication.prototype, "_sendEmailValidation", null);
736
- __decorate([
737
- Route("./me", ["GET"], {
738
- get: {
739
- description: "Retrieve the current user from the session",
740
- summary: "Get current user",
741
- operationId: "getCurrentUser"
742
- }
743
- })
744
- ], Authentication.prototype, "_getMe", null);
745
- __decorate([
746
- Route(".", ["GET", "DELETE"], {
747
- get: {
748
- description: "Retrieve the list of available authentication",
749
- summary: "Get available auths",
750
- operationId: `getAuthenticationMethods`,
751
- responses: {
752
- "200": {
753
- description: "List of authentication"
754
- }
755
- }
756
- },
757
- delete: {
758
- description: "Logout current user",
759
- summary: "Logout",
760
- operationId: `logout`,
761
- responses: {
762
- "200": {}
763
- }
764
- }
765
- })
766
- ], Authentication.prototype, "_listAuthentications", null);
767
- __decorate([
768
- Route("./email/callback{?email,token,user?}", ["GET"], {
769
- hidden: true
770
- })
771
- ], Authentication.prototype, "_handleEmailCallback", null);
772
- export { Authentication };
773
- //# sourceMappingURL=authentication.js.map