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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (793) hide show
  1. package/README.md +252 -0
  2. package/lib/application/application.d.ts +468 -0
  3. package/lib/application/application.d.ts.map +1 -0
  4. package/lib/application/application.js +845 -0
  5. package/lib/application/application.js.map +1 -0
  6. package/lib/application/deployment.d.ts +93 -0
  7. package/lib/application/deployment.d.ts.map +1 -0
  8. package/lib/application/deployment.js +99 -0
  9. package/lib/application/deployment.js.map +1 -0
  10. package/lib/application/hooks.d.ts +34 -0
  11. package/lib/application/hooks.d.ts.map +1 -0
  12. package/lib/application/hooks.js +57 -0
  13. package/lib/application/hooks.js.map +1 -0
  14. package/lib/application/iapplication.d.ts +43 -0
  15. package/lib/application/iapplication.d.ts.map +1 -0
  16. package/lib/application/iapplication.js +2 -0
  17. package/lib/application/iapplication.js.map +1 -0
  18. package/lib/application/iconfiguration.d.ts +176 -0
  19. package/lib/application/iconfiguration.d.ts.map +1 -0
  20. package/lib/application/iconfiguration.js +8 -0
  21. package/lib/application/iconfiguration.js.map +1 -0
  22. package/lib/application/runner.d.ts +8 -0
  23. package/lib/application/runner.d.ts.map +1 -0
  24. package/lib/application/runner.js +26 -0
  25. package/lib/application/runner.js.map +1 -0
  26. package/lib/{unpackedapplication.d.ts → application/unpackedapplication.d.ts} +43 -23
  27. package/lib/application/unpackedapplication.d.ts.map +1 -0
  28. package/lib/application/unpackedapplication.js +500 -0
  29. package/lib/application/unpackedapplication.js.map +1 -0
  30. package/lib/bin/cli-phase.d.ts +28 -0
  31. package/lib/bin/cli-phase.d.ts.map +1 -0
  32. package/lib/bin/cli-phase.js +44 -0
  33. package/lib/bin/cli-phase.js.map +1 -0
  34. package/lib/bin/cli.d.ts +196 -0
  35. package/lib/bin/cli.d.ts.map +1 -0
  36. package/lib/bin/cli.js +934 -0
  37. package/lib/bin/cli.js.map +1 -0
  38. package/lib/bin/launcher.d.ts +3 -0
  39. package/lib/bin/launcher.d.ts.map +1 -0
  40. package/lib/bin/launcher.js +50 -0
  41. package/lib/bin/launcher.js.map +1 -0
  42. package/lib/cache/cache.d.ts +33 -0
  43. package/lib/cache/cache.d.ts.map +1 -0
  44. package/lib/cache/cache.js +8 -0
  45. package/lib/cache/cache.js.map +1 -0
  46. package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -58
  47. package/lib/configurations/configuration.service.d.ts.map +1 -0
  48. package/lib/configurations/configuration.service.js +248 -0
  49. package/lib/configurations/configuration.service.js.map +1 -0
  50. package/lib/configurations/fileconfiguration.service.d.ts +30 -0
  51. package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
  52. package/lib/configurations/fileconfiguration.service.js +65 -0
  53. package/lib/configurations/fileconfiguration.service.js.map +1 -0
  54. package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
  55. package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
  56. package/lib/configurations/kubernetesconfiguration.service.js +83 -0
  57. package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
  58. package/lib/contexts/execution.d.ts +33 -0
  59. package/lib/contexts/execution.d.ts.map +1 -0
  60. package/lib/contexts/execution.js +73 -0
  61. package/lib/contexts/execution.js.map +1 -0
  62. package/lib/contexts/globalcontext.d.ts +29 -0
  63. package/lib/contexts/globalcontext.d.ts.map +1 -0
  64. package/lib/contexts/globalcontext.js +38 -0
  65. package/lib/contexts/globalcontext.js.map +1 -0
  66. package/lib/{utils → contexts}/httpcontext.d.ts +44 -19
  67. package/lib/contexts/httpcontext.d.ts.map +1 -0
  68. package/lib/{utils → contexts}/httpcontext.js +95 -27
  69. package/lib/contexts/httpcontext.js.map +1 -0
  70. package/lib/contexts/icontext.d.ts +236 -0
  71. package/lib/contexts/icontext.d.ts.map +1 -0
  72. package/lib/contexts/icontext.js +230 -0
  73. package/lib/contexts/icontext.js.map +1 -0
  74. package/lib/contexts/operationcontext.d.ts +182 -0
  75. package/lib/contexts/operationcontext.d.ts.map +1 -0
  76. package/lib/contexts/operationcontext.js +361 -0
  77. package/lib/contexts/operationcontext.js.map +1 -0
  78. package/lib/contexts/simplecontext.d.ts +31 -0
  79. package/lib/contexts/simplecontext.d.ts.map +1 -0
  80. package/lib/contexts/simplecontext.js +45 -0
  81. package/lib/contexts/simplecontext.js.map +1 -0
  82. package/lib/contexts/webcontext.d.ts +218 -0
  83. package/lib/contexts/webcontext.d.ts.map +1 -0
  84. package/lib/contexts/webcontext.js +389 -0
  85. package/lib/contexts/webcontext.js.map +1 -0
  86. package/lib/core/authorizer.d.ts +23 -0
  87. package/lib/core/authorizer.d.ts.map +1 -0
  88. package/lib/core/authorizer.js +17 -0
  89. package/lib/core/authorizer.js.map +1 -0
  90. package/lib/core/core.d.ts +225 -0
  91. package/lib/core/core.d.ts.map +1 -0
  92. package/lib/core/core.js +576 -0
  93. package/lib/core/core.js.map +1 -0
  94. package/lib/core/hooks.d.ts +94 -0
  95. package/lib/core/hooks.d.ts.map +1 -0
  96. package/lib/core/hooks.js +97 -0
  97. package/lib/core/hooks.js.map +1 -0
  98. package/lib/core/icore.d.ts +249 -0
  99. package/lib/core/icore.d.ts.map +1 -0
  100. package/lib/core/icore.js +15 -0
  101. package/lib/core/icore.js.map +1 -0
  102. package/lib/core/instancestorage.d.ts +61 -0
  103. package/lib/core/instancestorage.d.ts.map +1 -0
  104. package/lib/core/instancestorage.js +75 -0
  105. package/lib/core/instancestorage.js.map +1 -0
  106. package/lib/core/operations.d.ts +181 -0
  107. package/lib/core/operations.d.ts.map +1 -0
  108. package/lib/core/operations.js +559 -0
  109. package/lib/core/operations.js.map +1 -0
  110. package/lib/deployers/deployer.d.ts +157 -0
  111. package/lib/deployers/deployer.d.ts.map +1 -0
  112. package/lib/deployers/deployer.js +81 -0
  113. package/lib/deployers/deployer.js.map +1 -0
  114. package/lib/deployers/git.d.ts +27 -0
  115. package/lib/deployers/git.d.ts.map +1 -0
  116. package/lib/deployers/git.js +66 -0
  117. package/lib/deployers/git.js.map +1 -0
  118. package/lib/deployers/packager.d.ts +85 -0
  119. package/lib/deployers/packager.d.ts.map +1 -0
  120. package/lib/deployers/packager.js +259 -0
  121. package/lib/deployers/packager.js.map +1 -0
  122. package/lib/errors/errors.d.ts +126 -0
  123. package/lib/errors/errors.d.ts.map +1 -0
  124. package/lib/errors/errors.js +165 -0
  125. package/lib/errors/errors.js.map +1 -0
  126. package/lib/events/asynceventemitter.d.ts +159 -0
  127. package/lib/events/asynceventemitter.d.ts.map +1 -0
  128. package/lib/events/asynceventemitter.js +152 -0
  129. package/lib/events/asynceventemitter.js.map +1 -0
  130. package/lib/events/events.d.ts +112 -0
  131. package/lib/events/events.d.ts.map +1 -0
  132. package/lib/events/events.js +45 -0
  133. package/lib/events/events.js.map +1 -0
  134. package/lib/index.d.ts +88 -54
  135. package/lib/index.d.ts.map +1 -1
  136. package/lib/index.js +88 -64
  137. package/lib/index.js.map +1 -1
  138. package/lib/loggers/console.service.d.ts +24 -0
  139. package/lib/loggers/console.service.d.ts.map +1 -0
  140. package/lib/loggers/console.service.js +30 -0
  141. package/lib/loggers/console.service.js.map +1 -0
  142. package/lib/loggers/file.service.d.ts +25 -0
  143. package/lib/loggers/file.service.d.ts.map +1 -0
  144. package/lib/loggers/file.service.js +33 -0
  145. package/lib/loggers/file.service.js.map +1 -0
  146. package/lib/loggers/hooks.d.ts +20 -0
  147. package/lib/loggers/hooks.d.ts.map +1 -0
  148. package/lib/loggers/hooks.js +40 -0
  149. package/lib/loggers/hooks.js.map +1 -0
  150. package/lib/loggers/ilogger.d.ts +76 -0
  151. package/lib/loggers/ilogger.d.ts.map +1 -0
  152. package/lib/loggers/ilogger.js +108 -0
  153. package/lib/loggers/ilogger.js.map +1 -0
  154. package/lib/loggers/logger.d.ts +13 -0
  155. package/lib/loggers/logger.d.ts.map +1 -0
  156. package/lib/loggers/logger.js +18 -0
  157. package/lib/loggers/logger.js.map +1 -0
  158. package/lib/loggers/memory.service.d.ts +18 -0
  159. package/lib/loggers/memory.service.d.ts.map +1 -0
  160. package/lib/loggers/memory.service.js +21 -0
  161. package/lib/loggers/memory.service.js.map +1 -0
  162. package/lib/loggers/params.d.ts +47 -0
  163. package/lib/loggers/params.d.ts.map +1 -0
  164. package/lib/loggers/params.js +56 -0
  165. package/lib/loggers/params.js.map +1 -0
  166. package/lib/metrics/metrics.d.ts +25 -0
  167. package/lib/metrics/metrics.d.ts.map +1 -0
  168. package/lib/metrics/metrics.js +51 -0
  169. package/lib/metrics/metrics.js.map +1 -0
  170. package/lib/models/aclmodel.d.ts +20 -76
  171. package/lib/models/aclmodel.d.ts.map +1 -1
  172. package/lib/models/aclmodel.js +27 -203
  173. package/lib/models/aclmodel.js.map +1 -1
  174. package/lib/models/coremodel.model.d.ts +5 -0
  175. package/lib/models/coremodel.model.d.ts.map +1 -0
  176. package/lib/models/coremodel.model.js +5 -0
  177. package/lib/models/coremodel.model.js.map +1 -0
  178. package/lib/models/decorator.d.ts +67 -0
  179. package/lib/models/decorator.d.ts.map +1 -0
  180. package/lib/models/decorator.js +67 -0
  181. package/lib/models/decorator.js.map +1 -0
  182. package/lib/models/deployment.d.ts +2 -21
  183. package/lib/models/deployment.d.ts.map +1 -1
  184. package/lib/models/encrypted.model.d.ts +46 -0
  185. package/lib/models/encrypted.model.d.ts.map +1 -0
  186. package/lib/models/encrypted.model.js +87 -0
  187. package/lib/models/encrypted.model.js.map +1 -0
  188. package/lib/models/ident.model.d.ts +128 -0
  189. package/lib/models/ident.model.d.ts.map +1 -0
  190. package/lib/models/ident.model.js +207 -0
  191. package/lib/models/ident.model.js.map +1 -0
  192. package/lib/models/ownermodel.model.d.ts +68 -0
  193. package/lib/models/ownermodel.model.d.ts.map +1 -0
  194. package/lib/models/ownermodel.model.js +113 -0
  195. package/lib/models/ownermodel.model.js.map +1 -0
  196. package/lib/models/password.model.d.ts +78 -0
  197. package/lib/models/password.model.d.ts.map +1 -0
  198. package/lib/models/password.model.js +171 -0
  199. package/lib/models/password.model.js.map +1 -0
  200. package/lib/models/refreshtoken.model.d.ts +30 -0
  201. package/lib/models/refreshtoken.model.d.ts.map +1 -0
  202. package/lib/models/refreshtoken.model.js +29 -0
  203. package/lib/models/refreshtoken.model.js.map +1 -0
  204. package/lib/models/registry.model.d.ts +76 -0
  205. package/lib/models/registry.model.d.ts.map +1 -0
  206. package/lib/models/registry.model.js +104 -0
  207. package/lib/models/registry.model.js.map +1 -0
  208. package/lib/models/rolemodel.model.d.ts +28 -0
  209. package/lib/models/rolemodel.model.d.ts.map +1 -0
  210. package/lib/models/{rolemodel.js → rolemodel.model.js} +23 -5
  211. package/lib/models/rolemodel.model.js.map +1 -0
  212. package/lib/models/simpleuser.model.d.ts +78 -0
  213. package/lib/models/simpleuser.model.d.ts.map +1 -0
  214. package/lib/models/simpleuser.model.js +124 -0
  215. package/lib/models/simpleuser.model.js.map +1 -0
  216. package/lib/models/types.d.ts +113 -0
  217. package/lib/models/types.d.ts.map +1 -0
  218. package/lib/models/types.js +2 -0
  219. package/lib/models/types.js.map +1 -0
  220. package/lib/models/user.model.d.ts +103 -0
  221. package/lib/models/user.model.d.ts.map +1 -0
  222. package/lib/models/user.model.js +164 -0
  223. package/lib/models/user.model.js.map +1 -0
  224. package/lib/queues/{memoryqueue.d.ts → memoryqueue.service.d.ts} +26 -13
  225. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  226. package/lib/queues/{memoryqueue.js → memoryqueue.service.js} +55 -31
  227. package/lib/queues/memoryqueue.service.js.map +1 -0
  228. package/lib/queues/pubsubservice.d.ts +8 -6
  229. package/lib/queues/pubsubservice.d.ts.map +1 -1
  230. package/lib/queues/pubsubservice.js +5 -4
  231. package/lib/queues/pubsubservice.js.map +1 -1
  232. package/lib/queues/queueservice.d.ts +9 -11
  233. package/lib/queues/queueservice.d.ts.map +1 -1
  234. package/lib/queues/queueservice.js +41 -13
  235. package/lib/queues/queueservice.js.map +1 -1
  236. package/lib/rest/hooks.d.ts +8 -0
  237. package/lib/rest/hooks.d.ts.map +1 -0
  238. package/lib/rest/hooks.js +10 -0
  239. package/lib/rest/hooks.js.map +1 -0
  240. package/lib/rest/irest.d.ts +212 -0
  241. package/lib/rest/irest.d.ts.map +1 -0
  242. package/lib/rest/irest.js +39 -0
  243. package/lib/rest/irest.js.map +1 -0
  244. package/lib/rest/originfilter.d.ts +38 -0
  245. package/lib/rest/originfilter.d.ts.map +1 -0
  246. package/lib/rest/originfilter.js +61 -0
  247. package/lib/rest/originfilter.js.map +1 -0
  248. package/lib/rest/restoperationstransport.service.d.ts +193 -0
  249. package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
  250. package/lib/rest/restoperationstransport.service.js +780 -0
  251. package/lib/rest/restoperationstransport.service.js.map +1 -0
  252. package/lib/rest/router.service.d.ts +244 -0
  253. package/lib/rest/router.service.d.ts.map +1 -0
  254. package/lib/rest/router.service.js +843 -0
  255. package/lib/rest/router.service.js.map +1 -0
  256. package/lib/schemas/hooks.d.ts +48 -0
  257. package/lib/schemas/hooks.d.ts.map +1 -0
  258. package/lib/schemas/hooks.js +152 -0
  259. package/lib/schemas/hooks.js.map +1 -0
  260. package/lib/services/audit.model.d.ts +208 -0
  261. package/lib/services/audit.model.d.ts.map +1 -0
  262. package/lib/services/audit.model.js +432 -0
  263. package/lib/services/audit.model.js.map +1 -0
  264. package/lib/services/binary.service.d.ts +808 -0
  265. package/lib/services/binary.service.d.ts.map +1 -0
  266. package/lib/services/binary.service.js +1365 -0
  267. package/lib/services/binary.service.js.map +1 -0
  268. package/lib/services/cloudbinary.d.ts +17 -12
  269. package/lib/services/cloudbinary.d.ts.map +1 -1
  270. package/lib/services/cloudbinary.js +23 -17
  271. package/lib/services/cloudbinary.js.map +1 -1
  272. package/lib/services/command.d.ts +118 -0
  273. package/lib/services/command.d.ts.map +1 -0
  274. package/lib/services/command.js +97 -0
  275. package/lib/services/command.js.map +1 -0
  276. package/lib/services/cron.service.d.ts +142 -0
  277. package/lib/services/cron.service.d.ts.map +1 -0
  278. package/lib/services/cron.service.js +291 -0
  279. package/lib/services/cron.service.js.map +1 -0
  280. package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +75 -141
  281. package/lib/services/cryptoservice.service.d.ts.map +1 -0
  282. package/lib/services/cryptoservice.service.js +527 -0
  283. package/lib/services/cryptoservice.service.js.map +1 -0
  284. package/lib/services/debugmailer.service.d.ts +49 -0
  285. package/lib/services/debugmailer.service.d.ts.map +1 -0
  286. package/lib/services/{debugmailer.js → debugmailer.service.js} +25 -10
  287. package/lib/services/debugmailer.service.js.map +1 -0
  288. package/lib/services/domainservice.service.d.ts +242 -0
  289. package/lib/services/domainservice.service.d.ts.map +1 -0
  290. package/lib/services/domainservice.service.js +676 -0
  291. package/lib/services/domainservice.service.js.map +1 -0
  292. package/lib/services/httpserver.service.d.ts +248 -0
  293. package/lib/services/httpserver.service.d.ts.map +1 -0
  294. package/lib/services/httpserver.service.js +673 -0
  295. package/lib/services/httpserver.service.js.map +1 -0
  296. package/lib/services/iauthentication.d.ts +202 -0
  297. package/lib/services/iauthentication.d.ts.map +1 -0
  298. package/lib/services/iauthentication.js +2 -0
  299. package/lib/services/iauthentication.js.map +1 -0
  300. package/lib/services/icryptoservice.d.ts +127 -0
  301. package/lib/services/icryptoservice.d.ts.map +1 -0
  302. package/lib/services/icryptoservice.js +68 -0
  303. package/lib/services/icryptoservice.js.map +1 -0
  304. package/lib/services/imailer.d.ts +17 -0
  305. package/lib/services/imailer.d.ts.map +1 -0
  306. package/lib/services/imailer.js +2 -0
  307. package/lib/services/imailer.js.map +1 -0
  308. package/lib/services/iservice.d.ts +104 -0
  309. package/lib/services/iservice.d.ts.map +1 -0
  310. package/lib/services/iservice.js +63 -0
  311. package/lib/services/iservice.js.map +1 -0
  312. package/lib/services/mailer.service.d.ts +220 -0
  313. package/lib/services/mailer.service.d.ts.map +1 -0
  314. package/lib/services/mailer.service.js +251 -0
  315. package/lib/services/mailer.service.js.map +1 -0
  316. package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -11
  317. package/lib/services/notificationservice.service.d.ts.map +1 -0
  318. package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
  319. package/lib/services/notificationservice.service.js.map +1 -0
  320. package/lib/services/operationstransport.d.ts +65 -0
  321. package/lib/services/operationstransport.d.ts.map +1 -0
  322. package/lib/services/operationstransport.js +103 -0
  323. package/lib/services/operationstransport.js.map +1 -0
  324. package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -12
  325. package/lib/services/prometheus.service.d.ts.map +1 -0
  326. package/lib/services/prometheus.service.js +203 -0
  327. package/lib/services/prometheus.service.js.map +1 -0
  328. package/lib/services/{resource.d.ts → resource.service.d.ts} +34 -15
  329. package/lib/services/resource.service.d.ts.map +1 -0
  330. package/lib/services/resource.service.js +301 -0
  331. package/lib/services/resource.service.js.map +1 -0
  332. package/lib/services/service.d.ts +87 -188
  333. package/lib/services/service.d.ts.map +1 -1
  334. package/lib/services/service.js +407 -422
  335. package/lib/services/service.js.map +1 -1
  336. package/lib/services/servicecommands.d.ts +99 -0
  337. package/lib/services/servicecommands.d.ts.map +1 -0
  338. package/lib/services/servicecommands.js +171 -0
  339. package/lib/services/servicecommands.js.map +1 -0
  340. package/lib/services/serviceparameters.d.ts +33 -0
  341. package/lib/services/serviceparameters.d.ts.map +1 -0
  342. package/lib/services/serviceparameters.js +79 -0
  343. package/lib/services/serviceparameters.js.map +1 -0
  344. package/lib/services/token.service.d.ts +95 -0
  345. package/lib/services/token.service.d.ts.map +1 -0
  346. package/lib/services/token.service.js +182 -0
  347. package/lib/services/token.service.js.map +1 -0
  348. package/lib/{utils → session}/cookie.d.ts +32 -19
  349. package/lib/session/cookie.d.ts.map +1 -0
  350. package/lib/{utils → session}/cookie.js +76 -23
  351. package/lib/session/cookie.js.map +1 -0
  352. package/lib/session/manager.model.d.ts +87 -0
  353. package/lib/session/manager.model.d.ts.map +1 -0
  354. package/lib/session/manager.model.js +212 -0
  355. package/lib/session/manager.model.js.map +1 -0
  356. package/lib/session/session.d.ts +100 -0
  357. package/lib/session/session.d.ts.map +1 -0
  358. package/lib/session/session.js +175 -0
  359. package/lib/session/session.js.map +1 -0
  360. package/lib/stores/istore.d.ts +99 -0
  361. package/lib/stores/istore.d.ts.map +1 -0
  362. package/lib/stores/istore.js +26 -0
  363. package/lib/stores/istore.js.map +1 -0
  364. package/lib/stores/memory.service.d.ts +114 -0
  365. package/lib/stores/memory.service.d.ts.map +1 -0
  366. package/lib/stores/memory.service.js +344 -0
  367. package/lib/stores/memory.service.js.map +1 -0
  368. package/lib/stores/store.d.ts +126 -626
  369. package/lib/stores/store.d.ts.map +1 -1
  370. package/lib/stores/store.js +257 -1117
  371. package/lib/stores/store.js.map +1 -1
  372. package/lib/templates/templates.d.ts +47 -0
  373. package/lib/templates/templates.d.ts.map +1 -0
  374. package/lib/templates/templates.js +101 -0
  375. package/lib/templates/templates.js.map +1 -0
  376. package/lib/test/application.d.ts +174 -0
  377. package/lib/test/application.d.ts.map +1 -0
  378. package/lib/test/application.js +288 -0
  379. package/lib/test/application.js.map +1 -0
  380. package/lib/test/asyncstorage.d.ts +16 -0
  381. package/lib/test/asyncstorage.d.ts.map +1 -0
  382. package/lib/test/asyncstorage.js +32 -0
  383. package/lib/test/asyncstorage.js.map +1 -0
  384. package/lib/test/behavior-fixture.model.d.ts +30 -0
  385. package/lib/test/behavior-fixture.model.d.ts.map +1 -0
  386. package/lib/test/behavior-fixture.model.js +63 -0
  387. package/lib/test/behavior-fixture.model.js.map +1 -0
  388. package/lib/test/core.d.ts +63 -0
  389. package/lib/test/core.d.ts.map +1 -0
  390. package/lib/test/core.js +190 -0
  391. package/lib/test/core.js.map +1 -0
  392. package/lib/test/index.d.ts +7 -0
  393. package/lib/test/index.d.ts.map +1 -0
  394. package/lib/test/index.js +8 -0
  395. package/lib/test/index.js.map +1 -0
  396. package/lib/test/internal.d.ts +34 -0
  397. package/lib/test/internal.d.ts.map +1 -0
  398. package/lib/test/internal.js +156 -0
  399. package/lib/test/internal.js.map +1 -0
  400. package/lib/test/legacyident.fixture.model.d.ts +98 -0
  401. package/lib/test/legacyident.fixture.model.d.ts.map +1 -0
  402. package/lib/test/legacyident.fixture.model.js +125 -0
  403. package/lib/test/legacyident.fixture.model.js.map +1 -0
  404. package/lib/test/objects.d.ts +318 -0
  405. package/lib/test/objects.d.ts.map +1 -0
  406. package/lib/test/objects.js +443 -0
  407. package/lib/test/objects.js.map +1 -0
  408. package/lib/utils/abstractdeployer.d.ts +4 -2
  409. package/lib/utils/abstractdeployer.d.ts.map +1 -1
  410. package/lib/utils/abstractdeployer.js +3 -0
  411. package/lib/utils/abstractdeployer.js.map +1 -1
  412. package/package.json +102 -60
  413. package/test/cachedapp/webda.config.json +1 -5
  414. package/test/config-cached.json +3 -6
  415. package/test/config.json +3 -10
  416. package/test/my-cnf.json +9 -0
  417. package/webda.module.json +3755 -2496
  418. package/lib/application.d.ts +0 -888
  419. package/lib/application.d.ts.map +0 -1
  420. package/lib/application.js +0 -768
  421. package/lib/application.js.map +0 -1
  422. package/lib/application.spec.d.ts +0 -2
  423. package/lib/application.spec.d.ts.map +0 -1
  424. package/lib/application.spec.js +0 -248
  425. package/lib/application.spec.js.map +0 -1
  426. package/lib/core.d.ts +0 -743
  427. package/lib/core.d.ts.map +0 -1
  428. package/lib/core.js +0 -1334
  429. package/lib/core.js.map +0 -1
  430. package/lib/core.spec.d.ts +0 -2
  431. package/lib/core.spec.d.ts.map +0 -1
  432. package/lib/core.spec.js +0 -790
  433. package/lib/core.spec.js.map +0 -1
  434. package/lib/errors.d.ts +0 -64
  435. package/lib/errors.d.ts.map +0 -1
  436. package/lib/errors.js +0 -97
  437. package/lib/errors.js.map +0 -1
  438. package/lib/errors.spec.d.ts +0 -2
  439. package/lib/errors.spec.d.ts.map +0 -1
  440. package/lib/errors.spec.js +0 -33
  441. package/lib/errors.spec.js.map +0 -1
  442. package/lib/models/aclmodel.spec.d.ts +0 -2
  443. package/lib/models/aclmodel.spec.d.ts.map +0 -1
  444. package/lib/models/aclmodel.spec.js +0 -187
  445. package/lib/models/aclmodel.spec.js.map +0 -1
  446. package/lib/models/coremodel.d.ts +0 -896
  447. package/lib/models/coremodel.d.ts.map +0 -1
  448. package/lib/models/coremodel.js +0 -1214
  449. package/lib/models/coremodel.js.map +0 -1
  450. package/lib/models/coremodel.spec.d.ts +0 -2
  451. package/lib/models/coremodel.spec.d.ts.map +0 -1
  452. package/lib/models/coremodel.spec.js +0 -464
  453. package/lib/models/coremodel.spec.js.map +0 -1
  454. package/lib/models/ident.d.ts +0 -68
  455. package/lib/models/ident.d.ts.map +0 -1
  456. package/lib/models/ident.js +0 -26
  457. package/lib/models/ident.js.map +0 -1
  458. package/lib/models/ident.spec.d.ts +0 -2
  459. package/lib/models/ident.spec.d.ts.map +0 -1
  460. package/lib/models/ident.spec.js +0 -24
  461. package/lib/models/ident.spec.js.map +0 -1
  462. package/lib/models/ownermodel.d.ts +0 -51
  463. package/lib/models/ownermodel.d.ts.map +0 -1
  464. package/lib/models/ownermodel.js +0 -65
  465. package/lib/models/ownermodel.js.map +0 -1
  466. package/lib/models/ownermodel.spec.d.ts +0 -2
  467. package/lib/models/ownermodel.spec.d.ts.map +0 -1
  468. package/lib/models/ownermodel.spec.js +0 -215
  469. package/lib/models/ownermodel.spec.js.map +0 -1
  470. package/lib/models/relations.d.ts +0 -182
  471. package/lib/models/relations.d.ts.map +0 -1
  472. package/lib/models/relations.js +0 -157
  473. package/lib/models/relations.js.map +0 -1
  474. package/lib/models/relations.spec.d.ts +0 -14
  475. package/lib/models/relations.spec.d.ts.map +0 -1
  476. package/lib/models/relations.spec.js +0 -217
  477. package/lib/models/relations.spec.js.map +0 -1
  478. package/lib/models/rolemodel.d.ts +0 -11
  479. package/lib/models/rolemodel.d.ts.map +0 -1
  480. package/lib/models/rolemodel.js.map +0 -1
  481. package/lib/models/rolemodel.spec.d.ts +0 -2
  482. package/lib/models/rolemodel.spec.d.ts.map +0 -1
  483. package/lib/models/rolemodel.spec.js +0 -90
  484. package/lib/models/rolemodel.spec.js.map +0 -1
  485. package/lib/models/simpleuser.d.ts +0 -47
  486. package/lib/models/simpleuser.d.ts.map +0 -1
  487. package/lib/models/simpleuser.js +0 -84
  488. package/lib/models/simpleuser.js.map +0 -1
  489. package/lib/models/test.d.ts +0 -11
  490. package/lib/models/test.d.ts.map +0 -1
  491. package/lib/models/test.js +0 -7
  492. package/lib/models/test.js.map +0 -1
  493. package/lib/models/user.d.ts +0 -67
  494. package/lib/models/user.d.ts.map +0 -1
  495. package/lib/models/user.js +0 -86
  496. package/lib/models/user.js.map +0 -1
  497. package/lib/models/user.spec.d.ts +0 -2
  498. package/lib/models/user.spec.d.ts.map +0 -1
  499. package/lib/models/user.spec.js +0 -89
  500. package/lib/models/user.spec.js.map +0 -1
  501. package/lib/queues/filequeue.d.ts +0 -59
  502. package/lib/queues/filequeue.d.ts.map +0 -1
  503. package/lib/queues/filequeue.js +0 -131
  504. package/lib/queues/filequeue.js.map +0 -1
  505. package/lib/queues/filequeue.spec.d.ts +0 -2
  506. package/lib/queues/filequeue.spec.d.ts.map +0 -1
  507. package/lib/queues/filequeue.spec.js +0 -84
  508. package/lib/queues/filequeue.spec.js.map +0 -1
  509. package/lib/queues/memoryqueue.d.ts.map +0 -1
  510. package/lib/queues/memoryqueue.js.map +0 -1
  511. package/lib/queues/memoryqueue.spec.d.ts +0 -2
  512. package/lib/queues/memoryqueue.spec.d.ts.map +0 -1
  513. package/lib/queues/memoryqueue.spec.js +0 -203
  514. package/lib/queues/memoryqueue.spec.js.map +0 -1
  515. package/lib/queues/queue.spec.d.ts +0 -6
  516. package/lib/queues/queue.spec.d.ts.map +0 -1
  517. package/lib/queues/queue.spec.js +0 -55
  518. package/lib/queues/queue.spec.js.map +0 -1
  519. package/lib/rest/restdomainservice.d.ts +0 -63
  520. package/lib/rest/restdomainservice.d.ts.map +0 -1
  521. package/lib/rest/restdomainservice.js +0 -687
  522. package/lib/rest/restdomainservice.js.map +0 -1
  523. package/lib/rest/restdomainservice.spec.d.ts +0 -2
  524. package/lib/rest/restdomainservice.spec.d.ts.map +0 -1
  525. package/lib/rest/restdomainservice.spec.js +0 -124
  526. package/lib/rest/restdomainservice.spec.js.map +0 -1
  527. package/lib/rest/router.d.ts +0 -174
  528. package/lib/rest/router.d.ts.map +0 -1
  529. package/lib/rest/router.js +0 -429
  530. package/lib/rest/router.js.map +0 -1
  531. package/lib/rest/router.spec.d.ts +0 -2
  532. package/lib/rest/router.spec.d.ts.map +0 -1
  533. package/lib/rest/router.spec.js +0 -255
  534. package/lib/rest/router.spec.js.map +0 -1
  535. package/lib/services/asyncevents.d.ts +0 -152
  536. package/lib/services/asyncevents.d.ts.map +0 -1
  537. package/lib/services/asyncevents.js +0 -217
  538. package/lib/services/asyncevents.js.map +0 -1
  539. package/lib/services/asyncevents.spec.d.ts +0 -2
  540. package/lib/services/asyncevents.spec.d.ts.map +0 -1
  541. package/lib/services/asyncevents.spec.js +0 -118
  542. package/lib/services/asyncevents.spec.js.map +0 -1
  543. package/lib/services/authentication.d.ts +0 -361
  544. package/lib/services/authentication.d.ts.map +0 -1
  545. package/lib/services/authentication.js +0 -773
  546. package/lib/services/authentication.js.map +0 -1
  547. package/lib/services/authentication.spec.d.ts +0 -2
  548. package/lib/services/authentication.spec.d.ts.map +0 -1
  549. package/lib/services/authentication.spec.js +0 -458
  550. package/lib/services/authentication.spec.js.map +0 -1
  551. package/lib/services/binary.d.ts +0 -477
  552. package/lib/services/binary.d.ts.map +0 -1
  553. package/lib/services/binary.js +0 -617
  554. package/lib/services/binary.js.map +0 -1
  555. package/lib/services/binary.spec.d.ts +0 -41
  556. package/lib/services/binary.spec.d.ts.map +0 -1
  557. package/lib/services/binary.spec.js +0 -151
  558. package/lib/services/binary.spec.js.map +0 -1
  559. package/lib/services/cloudbinary.spec.d.ts +0 -6
  560. package/lib/services/cloudbinary.spec.d.ts.map +0 -1
  561. package/lib/services/cloudbinary.spec.js +0 -66
  562. package/lib/services/cloudbinary.spec.js.map +0 -1
  563. package/lib/services/configuration.d.ts.map +0 -1
  564. package/lib/services/configuration.js +0 -193
  565. package/lib/services/configuration.js.map +0 -1
  566. package/lib/services/configuration.spec.d.ts +0 -2
  567. package/lib/services/configuration.spec.d.ts.map +0 -1
  568. package/lib/services/configuration.spec.js +0 -130
  569. package/lib/services/configuration.spec.js.map +0 -1
  570. package/lib/services/cron.d.ts +0 -74
  571. package/lib/services/cron.d.ts.map +0 -1
  572. package/lib/services/cron.js +0 -141
  573. package/lib/services/cron.js.map +0 -1
  574. package/lib/services/cron.spec.d.ts +0 -2
  575. package/lib/services/cron.spec.d.ts.map +0 -1
  576. package/lib/services/cron.spec.js +0 -76
  577. package/lib/services/cron.spec.js.map +0 -1
  578. package/lib/services/cryptoservice.d.ts.map +0 -1
  579. package/lib/services/cryptoservice.js +0 -433
  580. package/lib/services/cryptoservice.js.map +0 -1
  581. package/lib/services/cryptoservice.spec.d.ts +0 -2
  582. package/lib/services/cryptoservice.spec.d.ts.map +0 -1
  583. package/lib/services/cryptoservice.spec.js +0 -177
  584. package/lib/services/cryptoservice.spec.js.map +0 -1
  585. package/lib/services/debugmailer.d.ts +0 -36
  586. package/lib/services/debugmailer.d.ts.map +0 -1
  587. package/lib/services/debugmailer.js.map +0 -1
  588. package/lib/services/debugmailer.spec.d.ts +0 -2
  589. package/lib/services/debugmailer.spec.d.ts.map +0 -1
  590. package/lib/services/debugmailer.spec.js +0 -32
  591. package/lib/services/debugmailer.spec.js.map +0 -1
  592. package/lib/services/domainservice.d.ts +0 -272
  593. package/lib/services/domainservice.d.ts.map +0 -1
  594. package/lib/services/domainservice.js +0 -651
  595. package/lib/services/domainservice.js.map +0 -1
  596. package/lib/services/domainservice.spec.d.ts +0 -2
  597. package/lib/services/domainservice.spec.d.ts.map +0 -1
  598. package/lib/services/domainservice.spec.js +0 -592
  599. package/lib/services/domainservice.spec.js.map +0 -1
  600. package/lib/services/filebinary.d.ts +0 -136
  601. package/lib/services/filebinary.d.ts.map +0 -1
  602. package/lib/services/filebinary.js +0 -373
  603. package/lib/services/filebinary.js.map +0 -1
  604. package/lib/services/filebinary.spec.d.ts +0 -25
  605. package/lib/services/filebinary.spec.d.ts.map +0 -1
  606. package/lib/services/filebinary.spec.js +0 -428
  607. package/lib/services/filebinary.spec.js.map +0 -1
  608. package/lib/services/fileconfiguration.d.ts +0 -23
  609. package/lib/services/fileconfiguration.d.ts.map +0 -1
  610. package/lib/services/fileconfiguration.js +0 -48
  611. package/lib/services/fileconfiguration.js.map +0 -1
  612. package/lib/services/fileconfiguration.spec.d.ts +0 -2
  613. package/lib/services/fileconfiguration.spec.d.ts.map +0 -1
  614. package/lib/services/fileconfiguration.spec.js +0 -215
  615. package/lib/services/fileconfiguration.spec.js.map +0 -1
  616. package/lib/services/invitationservice.d.ts +0 -223
  617. package/lib/services/invitationservice.d.ts.map +0 -1
  618. package/lib/services/invitationservice.js +0 -529
  619. package/lib/services/invitationservice.js.map +0 -1
  620. package/lib/services/invitationservice.spec.d.ts +0 -2
  621. package/lib/services/invitationservice.spec.d.ts.map +0 -1
  622. package/lib/services/invitationservice.spec.js +0 -567
  623. package/lib/services/invitationservice.spec.js.map +0 -1
  624. package/lib/services/kubernetesconfiguration.d.ts +0 -27
  625. package/lib/services/kubernetesconfiguration.d.ts.map +0 -1
  626. package/lib/services/kubernetesconfiguration.js +0 -52
  627. package/lib/services/kubernetesconfiguration.js.map +0 -1
  628. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -2
  629. package/lib/services/kubernetesconfiguration.spec.d.ts.map +0 -1
  630. package/lib/services/kubernetesconfiguration.spec.js +0 -206
  631. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  632. package/lib/services/mailer.d.ts +0 -166
  633. package/lib/services/mailer.d.ts.map +0 -1
  634. package/lib/services/mailer.js +0 -176
  635. package/lib/services/mailer.js.map +0 -1
  636. package/lib/services/mailer.spec.d.ts +0 -2
  637. package/lib/services/mailer.spec.d.ts.map +0 -1
  638. package/lib/services/mailer.spec.js +0 -158
  639. package/lib/services/mailer.spec.js.map +0 -1
  640. package/lib/services/notificationservice.d.ts.map +0 -1
  641. package/lib/services/notificationservice.js.map +0 -1
  642. package/lib/services/notificationservice.spec.d.ts +0 -2
  643. package/lib/services/notificationservice.spec.d.ts.map +0 -1
  644. package/lib/services/notificationservice.spec.js +0 -83
  645. package/lib/services/notificationservice.spec.js.map +0 -1
  646. package/lib/services/oauth.d.ts +0 -226
  647. package/lib/services/oauth.d.ts.map +0 -1
  648. package/lib/services/oauth.js +0 -294
  649. package/lib/services/oauth.js.map +0 -1
  650. package/lib/services/oauth.spec.d.ts +0 -2
  651. package/lib/services/oauth.spec.d.ts.map +0 -1
  652. package/lib/services/oauth.spec.js +0 -208
  653. package/lib/services/oauth.spec.js.map +0 -1
  654. package/lib/services/prometheus.d.ts.map +0 -1
  655. package/lib/services/prometheus.js +0 -160
  656. package/lib/services/prometheus.js.map +0 -1
  657. package/lib/services/prometheus.spec.d.ts +0 -2
  658. package/lib/services/prometheus.spec.d.ts.map +0 -1
  659. package/lib/services/prometheus.spec.js +0 -76
  660. package/lib/services/prometheus.spec.js.map +0 -1
  661. package/lib/services/resource.d.ts.map +0 -1
  662. package/lib/services/resource.js +0 -170
  663. package/lib/services/resource.js.map +0 -1
  664. package/lib/services/resource.spec.d.ts +0 -2
  665. package/lib/services/resource.spec.d.ts.map +0 -1
  666. package/lib/services/resource.spec.js +0 -140
  667. package/lib/services/resource.spec.js.map +0 -1
  668. package/lib/services/service.spec.d.ts +0 -2
  669. package/lib/services/service.spec.d.ts.map +0 -1
  670. package/lib/services/service.spec.js +0 -286
  671. package/lib/services/service.spec.js.map +0 -1
  672. package/lib/stores/aggregator.d.ts +0 -48
  673. package/lib/stores/aggregator.d.ts.map +0 -1
  674. package/lib/stores/aggregator.js +0 -80
  675. package/lib/stores/aggregator.js.map +0 -1
  676. package/lib/stores/file.d.ts +0 -108
  677. package/lib/stores/file.d.ts.map +0 -1
  678. package/lib/stores/file.js +0 -188
  679. package/lib/stores/file.js.map +0 -1
  680. package/lib/stores/file.spec.d.ts +0 -13
  681. package/lib/stores/file.spec.d.ts.map +0 -1
  682. package/lib/stores/file.spec.js +0 -138
  683. package/lib/stores/file.spec.js.map +0 -1
  684. package/lib/stores/mapper.d.ts +0 -150
  685. package/lib/stores/mapper.d.ts.map +0 -1
  686. package/lib/stores/mapper.js +0 -293
  687. package/lib/stores/mapper.js.map +0 -1
  688. package/lib/stores/mapper.spec.d.ts +0 -2
  689. package/lib/stores/mapper.spec.d.ts.map +0 -1
  690. package/lib/stores/mapper.spec.js +0 -167
  691. package/lib/stores/mapper.spec.js.map +0 -1
  692. package/lib/stores/memory.d.ts +0 -152
  693. package/lib/stores/memory.d.ts.map +0 -1
  694. package/lib/stores/memory.js +0 -371
  695. package/lib/stores/memory.js.map +0 -1
  696. package/lib/stores/memory.spec.d.ts +0 -14
  697. package/lib/stores/memory.spec.d.ts.map +0 -1
  698. package/lib/stores/memory.spec.js +0 -263
  699. package/lib/stores/memory.spec.js.map +0 -1
  700. package/lib/stores/modelmapper.d.ts +0 -62
  701. package/lib/stores/modelmapper.d.ts.map +0 -1
  702. package/lib/stores/modelmapper.js +0 -197
  703. package/lib/stores/modelmapper.js.map +0 -1
  704. package/lib/stores/store.spec.d.ts +0 -57
  705. package/lib/stores/store.spec.d.ts.map +0 -1
  706. package/lib/stores/store.spec.js +0 -737
  707. package/lib/stores/store.spec.js.map +0 -1
  708. package/lib/test.d.ts +0 -265
  709. package/lib/test.d.ts.map +0 -1
  710. package/lib/test.js +0 -622
  711. package/lib/test.js.map +0 -1
  712. package/lib/unpackedapplication.d.ts.map +0 -1
  713. package/lib/unpackedapplication.js +0 -350
  714. package/lib/unpackedapplication.js.map +0 -1
  715. package/lib/utils/abstractdeployer.spec.d.ts +0 -2
  716. package/lib/utils/abstractdeployer.spec.d.ts.map +0 -1
  717. package/lib/utils/abstractdeployer.spec.js +0 -21
  718. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  719. package/lib/utils/case.d.ts +0 -8
  720. package/lib/utils/case.d.ts.map +0 -1
  721. package/lib/utils/case.js +0 -43
  722. package/lib/utils/case.js.map +0 -1
  723. package/lib/utils/case.spec.d.ts +0 -2
  724. package/lib/utils/case.spec.d.ts.map +0 -1
  725. package/lib/utils/case.spec.js +0 -50
  726. package/lib/utils/case.spec.js.map +0 -1
  727. package/lib/utils/context.d.ts +0 -482
  728. package/lib/utils/context.d.ts.map +0 -1
  729. package/lib/utils/context.js +0 -739
  730. package/lib/utils/context.js.map +0 -1
  731. package/lib/utils/context.spec.d.ts +0 -10
  732. package/lib/utils/context.spec.d.ts.map +0 -1
  733. package/lib/utils/context.spec.js +0 -383
  734. package/lib/utils/context.spec.js.map +0 -1
  735. package/lib/utils/cookie.d.ts.map +0 -1
  736. package/lib/utils/cookie.js.map +0 -1
  737. package/lib/utils/cookie.spec.d.ts +0 -2
  738. package/lib/utils/cookie.spec.d.ts.map +0 -1
  739. package/lib/utils/cookie.spec.js +0 -88
  740. package/lib/utils/cookie.spec.js.map +0 -1
  741. package/lib/utils/esm.d.ts +0 -14
  742. package/lib/utils/esm.d.ts.map +0 -1
  743. package/lib/utils/esm.js +0 -19
  744. package/lib/utils/esm.js.map +0 -1
  745. package/lib/utils/httpcontext.d.ts.map +0 -1
  746. package/lib/utils/httpcontext.js.map +0 -1
  747. package/lib/utils/httpcontext.spec.d.ts +0 -5
  748. package/lib/utils/httpcontext.spec.d.ts.map +0 -1
  749. package/lib/utils/httpcontext.spec.js +0 -77
  750. package/lib/utils/httpcontext.spec.js.map +0 -1
  751. package/lib/utils/logger.d.ts +0 -92
  752. package/lib/utils/logger.d.ts.map +0 -1
  753. package/lib/utils/logger.js +0 -121
  754. package/lib/utils/logger.js.map +0 -1
  755. package/lib/utils/logger.spec.d.ts +0 -2
  756. package/lib/utils/logger.spec.d.ts.map +0 -1
  757. package/lib/utils/logger.spec.js +0 -48
  758. package/lib/utils/logger.spec.js.map +0 -1
  759. package/lib/utils/serializers.d.ts +0 -162
  760. package/lib/utils/serializers.d.ts.map +0 -1
  761. package/lib/utils/serializers.js +0 -420
  762. package/lib/utils/serializers.js.map +0 -1
  763. package/lib/utils/serializers.spec.d.ts +0 -2
  764. package/lib/utils/serializers.spec.d.ts.map +0 -1
  765. package/lib/utils/serializers.spec.js +0 -311
  766. package/lib/utils/serializers.spec.js.map +0 -1
  767. package/lib/utils/session.d.ts +0 -123
  768. package/lib/utils/session.d.ts.map +0 -1
  769. package/lib/utils/session.js +0 -156
  770. package/lib/utils/session.js.map +0 -1
  771. package/lib/utils/session.spec.d.ts +0 -2
  772. package/lib/utils/session.spec.d.ts.map +0 -1
  773. package/lib/utils/session.spec.js +0 -81
  774. package/lib/utils/session.spec.js.map +0 -1
  775. package/lib/utils/throttler.d.ts +0 -99
  776. package/lib/utils/throttler.d.ts.map +0 -1
  777. package/lib/utils/throttler.js +0 -160
  778. package/lib/utils/throttler.js.map +0 -1
  779. package/lib/utils/throttler.spec.d.ts +0 -2
  780. package/lib/utils/throttler.spec.d.ts.map +0 -1
  781. package/lib/utils/throttler.spec.js +0 -53
  782. package/lib/utils/throttler.spec.js.map +0 -1
  783. package/lib/utils/waiter.d.ts +0 -94
  784. package/lib/utils/waiter.d.ts.map +0 -1
  785. package/lib/utils/waiter.js +0 -148
  786. package/lib/utils/waiter.js.map +0 -1
  787. package/lib/utils/waiter.spec.d.ts +0 -2
  788. package/lib/utils/waiter.spec.d.ts.map +0 -1
  789. package/lib/utils/waiter.spec.js +0 -98
  790. package/lib/utils/waiter.spec.js.map +0 -1
  791. package/test/jsonutils/mdocs.yaml +0 -56
  792. package/test/jsonutils/test.json +0 -3
  793. package/test/jsonutils/test.yml +0 -5
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Options accepted by `@Action()` and `@Operation()`.
3
+ *
4
+ * The compiler scans for these decorators by name to populate model and
5
+ * Behavior metadata. The runtime decorator itself is a no-op pass-through —
6
+ * its only job is to make `@Action()` a valid runtime call so the source
7
+ * compiles. All actual action wiring is metadata-driven (see
8
+ * `compiler/src/metadata/actions.ts` and `metadata/behaviors.ts`).
9
+ */
10
+ export interface ActionOptions {
11
+ /** Override the registered action name (defaults to the method name). */
12
+ name?: string;
13
+ /** OpenAPI overrides for the registered route. */
14
+ openapi?: any;
15
+ /** HTTP methods accepted by the action; defaults to `["PUT"]`. */
16
+ methods?: string[];
17
+ /** Mark the action as global (class-level) rather than instance-level. */
18
+ global?: boolean;
19
+ /**
20
+ * Behavior-only override for the REST route registration.
21
+ *
22
+ * - `route: "."` ⇒ `/<plural>/{uuid}/<attribute>` (no extra segment)
23
+ * - `route: "url"` ⇒ `/<plural>/{uuid}/<attribute>/url`
24
+ * - `route: "{hash}"` ⇒ `/<plural>/{uuid}/<attribute>/{hash}`
25
+ *
26
+ * `method` overrides the HTTP verb; defaults to `"PUT"` when omitted.
27
+ */
28
+ rest?: {
29
+ route?: string;
30
+ method?: string;
31
+ };
32
+ /** Free-form description forwarded into operation metadata. */
33
+ description?: string;
34
+ /** Free-form summary forwarded into operation metadata. */
35
+ summary?: string;
36
+ }
37
+ /**
38
+ * Marker decorator used to expose a method as a model or Behavior action.
39
+ *
40
+ * The body is intentionally empty. The compiler discovers `@Action`-decorated
41
+ * methods by inspecting the AST during module generation, then writes the
42
+ * action metadata into `webda.module.json`. At runtime the decorator simply
43
+ * returns the method untouched, so applying or omitting it has no behavioural
44
+ * effect on the method itself.
45
+ *
46
+ * Both `@Action` (no parens) and `@Action({...})` are supported.
47
+ */
48
+ export declare const Action: {
49
+ (value: any, context: any): any;
50
+ (_options?: ActionOptions): (value: any, context: any) => any;
51
+ };
52
+ /**
53
+ * Some simple annotations that can be used to add some behavior to attributes
54
+ */
55
+ export declare const Masked: {
56
+ (initialValue: undefined, context: any): void;
57
+ (context: any, mask: string): (initialValue: undefined, context: any) => void;
58
+ };
59
+ /**
60
+ * Placeholder that only prefixes the value with "ENCRYPTED:": it does NOT encrypt anything
61
+ * @deprecated use the {@link EncryptedField} behavior (`field: EncryptedField<T>`), encrypted with the CryptoService
62
+ */
63
+ export declare const Encrypted: {
64
+ (initialValue: undefined, context: any): void;
65
+ (context: any): (initialValue: undefined, context: any) => void;
66
+ };
67
+ //# sourceMappingURL=decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorator.d.ts","sourceRoot":"","sources":["../../src/models/decorator.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM;;;CAAwF,CAAC;AAE5G;;GAEG;AACH,eAAO,MAAM,MAAM;;;CA0BjB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS;;;CAqBpB,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { createMethodDecorator, createPropertyDecorator } from "@webda/tsc-esm";
2
+ import { truncate } from "fs/promises";
3
+ /**
4
+ * Marker decorator used to expose a method as a model or Behavior action.
5
+ *
6
+ * The body is intentionally empty. The compiler discovers `@Action`-decorated
7
+ * methods by inspecting the AST during module generation, then writes the
8
+ * action metadata into `webda.module.json`. At runtime the decorator simply
9
+ * returns the method untouched, so applying or omitting it has no behavioural
10
+ * effect on the method itself.
11
+ *
12
+ * Both `@Action` (no parens) and `@Action({...})` are supported.
13
+ */
14
+ export const Action = createMethodDecorator((value, _context, _options) => value);
15
+ /**
16
+ * Some simple annotations that can be used to add some behavior to attributes
17
+ */
18
+ export const Masked = createPropertyDecorator((value, context, mask) => {
19
+ if (context.kind === "field") {
20
+ context.addInitializer(function maskedInit() {
21
+ const descriptor = Object.getOwnPropertyDescriptor(this, context.name) || {};
22
+ Object.defineProperty(this, context.name, {
23
+ ...descriptor,
24
+ get: function maskedGet() {
25
+ return this[`__${context.name}`];
26
+ },
27
+ set: function maskedSet(value) {
28
+ value = value.padEnd(mask.length, "?");
29
+ for (let i = 0; i < mask.length; i++) {
30
+ if (mask[i] === "X") {
31
+ value = value.substring(0, i) + "X" + value.substring(i + 1);
32
+ }
33
+ }
34
+ if (truncate) {
35
+ value = value.substring(0, mask.length);
36
+ }
37
+ this[`__${context.name}`] = value;
38
+ }
39
+ });
40
+ });
41
+ }
42
+ });
43
+ /**
44
+ * Placeholder that only prefixes the value with "ENCRYPTED:": it does NOT encrypt anything
45
+ * @deprecated use the {@link EncryptedField} behavior (`field: EncryptedField<T>`), encrypted with the CryptoService
46
+ */
47
+ export const Encrypted = createPropertyDecorator((value, context) => {
48
+ if (context.kind === "field") {
49
+ context.addInitializer(function encryptedInit() {
50
+ const descriptor = Object.getOwnPropertyDescriptor(this, context.name) || {};
51
+ Object.defineProperty(this, context.name, {
52
+ ...descriptor,
53
+ get: function encryptedGet() {
54
+ const val = this[`__${context.name}`];
55
+ if (val && val.startsWith("ENCRYPTED:")) {
56
+ return val.substring("ENCRYPTED:".length);
57
+ }
58
+ return val;
59
+ },
60
+ set: function encryptedSet(value) {
61
+ this[`__${context.name}`] = "ENCRYPTED:" + value;
62
+ }
63
+ });
64
+ });
65
+ }
66
+ });
67
+ //# sourceMappingURL=decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../src/models/decorator.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,5 @@
1
1
  /**
2
- * This represent a deployment unit of the appllication
3
- *
4
- * Type can be a single Deployer or a chain of Deployer
2
+ * Deployment types moved to the application, kept here for compatibility
5
3
  */
6
- export interface DeploymentUnit {
7
- name: string;
8
- type: string;
9
- }
10
- /**
11
- * A Deployment is a configuration of an application along with its differents DeploymentUnit
12
- *
13
- * You can override the webda.config.json parameters and services parameters by specifying specific
14
- */
15
- export default interface Deployment {
16
- $schema?: string;
17
- parameters: any;
18
- resources: any;
19
- services: any;
20
- units: DeploymentUnit[];
21
- name?: string;
22
- }
23
- export { Deployment };
4
+ export type { Deployment, DeploymentUnit } from "../application/deployment.js";
24
5
  //# sourceMappingURL=deployment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../src/models/deployment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,WAAW,UAAU;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,GAAG,CAAC;IAChB,SAAS,EAAE,GAAG,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../src/models/deployment.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { WEBDA_STORAGE } from "@webda/models";
2
+ /**
3
+ * A model field encrypted at rest with the CryptoService
4
+ *
5
+ * Only the ciphertext is stored (`__ciphertext`, server-only: `__` keys never reach a public output). The value is
6
+ * JSON-serialised, encrypted with the current symmetric key (AES, with a random IV) and wrapped in a JWT signed with
7
+ * that key, so tampering is detected; values encrypted before a key rotation still decrypt while the CryptoService
8
+ * keeps the old key.
9
+ *
10
+ * ```typescript
11
+ * class MyModel extends UuidModel {
12
+ * secret: EncryptedField<{ apiKey: string }>;
13
+ * }
14
+ * await model.secret.set({ apiKey: "..." });
15
+ * await model.save();
16
+ * const { apiKey } = await model.secret.get();
17
+ * ```
18
+ * @WebdaBehavior Webda/Encrypted
19
+ */
20
+ export declare class EncryptedField<T = any> {
21
+ [WEBDA_STORAGE]: Record<string, any>;
22
+ /** Encrypted value (a JWT wrapping the AES ciphertext), never output */
23
+ __ciphertext?: string;
24
+ /**
25
+ * @returns true when a value is stored
26
+ */
27
+ isSet(): boolean;
28
+ /**
29
+ * Encrypt and store a value (does not save the model); undefined clears it
30
+ * @param value - value to store, JSON-serialisable
31
+ */
32
+ set(value: T | undefined): Promise<void>;
33
+ /**
34
+ * Decrypt the stored value
35
+ * @returns the value, undefined when none is stored
36
+ * @throws Error when the ciphertext is invalid (tampered, or encrypted with an unknown key)
37
+ */
38
+ get(): Promise<T | undefined>;
39
+ /**
40
+ * Remove the stored value (does not save the model)
41
+ */
42
+ clear(): void;
43
+ get parent(): any;
44
+ toJSON(): Record<string, any>;
45
+ }
46
+ //# sourceMappingURL=encrypted.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encrypted.model.d.ts","sourceRoot":"","sources":["../../src/models/encrypted.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAe9C;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,cAAc,CAAC,CAAC,GAAG,GAAG;IACjC,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAC1C,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,KAAK,IAAI,OAAO,CAEf;IAED;;;OAGG;IACG,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAM7C;IAED;;;;OAIG;IACG,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAKlC;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;IACD,IAAI,MAAM,QAAgD;IAC1D,MAAM,wBAcL;CACF"}
@@ -0,0 +1,87 @@
1
+ import { WEBDA_STORAGE } from "@webda/models";
2
+ import { useDynamicService } from "../core/hooks.js";
3
+ /**
4
+ * @returns the CryptoService
5
+ * @throws Error when no CryptoService is available
6
+ */
7
+ function crypto() {
8
+ const service = useDynamicService("CryptoService");
9
+ if (!service) {
10
+ throw new Error("Encrypted fields require the CryptoService");
11
+ }
12
+ return service;
13
+ }
14
+ /**
15
+ * A model field encrypted at rest with the CryptoService
16
+ *
17
+ * Only the ciphertext is stored (`__ciphertext`, server-only: `__` keys never reach a public output). The value is
18
+ * JSON-serialised, encrypted with the current symmetric key (AES, with a random IV) and wrapped in a JWT signed with
19
+ * that key, so tampering is detected; values encrypted before a key rotation still decrypt while the CryptoService
20
+ * keeps the old key.
21
+ *
22
+ * ```typescript
23
+ * class MyModel extends UuidModel {
24
+ * secret: EncryptedField<{ apiKey: string }>;
25
+ * }
26
+ * await model.secret.set({ apiKey: "..." });
27
+ * await model.save();
28
+ * const { apiKey } = await model.secret.get();
29
+ * ```
30
+ * @WebdaBehavior Webda/Encrypted
31
+ */
32
+ export class EncryptedField {
33
+ [WEBDA_STORAGE] = {};
34
+ /** Encrypted value (a JWT wrapping the AES ciphertext), never output */
35
+ __ciphertext;
36
+ /**
37
+ * @returns true when a value is stored
38
+ */
39
+ isSet() {
40
+ return typeof this.__ciphertext === "string" && this.__ciphertext.length > 0;
41
+ }
42
+ /**
43
+ * Encrypt and store a value (does not save the model); undefined clears it
44
+ * @param value - value to store, JSON-serialisable
45
+ */
46
+ async set(value) {
47
+ if (value === undefined) {
48
+ this.clear();
49
+ return;
50
+ }
51
+ this.__ciphertext = await crypto().encrypt(value);
52
+ }
53
+ /**
54
+ * Decrypt the stored value
55
+ * @returns the value, undefined when none is stored
56
+ * @throws Error when the ciphertext is invalid (tampered, or encrypted with an unknown key)
57
+ */
58
+ async get() {
59
+ if (!this.isSet()) {
60
+ return undefined;
61
+ }
62
+ return crypto().decrypt(this.__ciphertext);
63
+ }
64
+ /**
65
+ * Remove the stored value (does not save the model)
66
+ */
67
+ clear() {
68
+ this.__ciphertext = undefined;
69
+ }
70
+ get parent() { return this[WEBDA_STORAGE]["__parent__"]; }
71
+ toJSON() {
72
+ const result = {};
73
+ for (const key of Object.keys(this)) {
74
+ result[key] = this[key];
75
+ }
76
+ const storage = this[WEBDA_STORAGE];
77
+ if (storage) {
78
+ for (const key of Object.keys(storage)) {
79
+ if (key !== "__parent__") {
80
+ result[key] = storage[key];
81
+ }
82
+ }
83
+ }
84
+ return result;
85
+ }
86
+ }
87
+ //# sourceMappingURL=encrypted.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encrypted.model.js","sourceRoot":"","sources":["../../src/models/encrypted.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;GAGG;AACH,SAAS,MAAM;IACb,MAAM,OAAO,GAAG,iBAAiB,CAAM,eAAe,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,cAAc;IACzB,CAAC,aAAa,CAAC,GAAwB,EAAE,CAAC;IAC1C,wEAAwE;IACxE,YAAY,CAAU;IAEtB;;OAEG;IACH,KAAK;QACH,OAAO,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,KAAoB;QAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,MAAM,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAChC,CAAC;IACD,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM;QACJ,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,GAAI,IAAY,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,OAAO,GAAqC,IAAY,CAAC,aAAa,CAAC,CAAC;QAC9E,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvC,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;oBACzB,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,128 @@
1
+ import type { PrimaryKeyType } from "@webda/models";
2
+ import { Model, ModelLink, WEBDA_PRIMARY_KEY, WEBDA_PRIMARY_KEY_SEPARATOR, type Settable } from "@webda/models";
3
+ import * as WebdaError from "../errors/errors.js";
4
+ import type { IOperationContext } from "../contexts/icontext.js";
5
+ import { User } from "./user.model.js";
6
+ import { EncryptedField } from "./encrypted.model.js";
7
+ /** Tokens (credentials) of an identity provider, as the provider returns them */
8
+ export interface IdentTokens {
9
+ /** Access token */
10
+ access_token?: string;
11
+ /** Refresh token */
12
+ refresh_token?: string;
13
+ /** Any other provider field */
14
+ [key: string]: any;
15
+ }
16
+ /** Email sending throttle state of an ident (login failures are top-level `Ident` attributes) */
17
+ export interface IdentThrottle {
18
+ /** Timestamp of the last email sent */
19
+ lastSentAt?: number;
20
+ }
21
+ /** Raised for malformed ident keys (400 INVALID_IDENT) */
22
+ export declare class InvalidIdent extends WebdaError.HttpError {
23
+ /** @param message - error message */
24
+ constructor(message?: string);
25
+ }
26
+ /**
27
+ * An identity linked to a user: `<providerUid>:<provider>`
28
+ * @WebdaModel
29
+ */
30
+ export declare class Ident extends Model {
31
+ /** Composite primary key */
32
+ [WEBDA_PRIMARY_KEY]: readonly ["providerUid", "provider"];
33
+ [WEBDA_PRIMARY_KEY_SEPARATOR]: string;
34
+ /** Identifier on the provider (normalised email for "email") */
35
+ providerUid: string;
36
+ /** Provider name */
37
+ provider: string;
38
+ /** Owner */
39
+ get _user(): ModelLink<User>;
40
+ set _user(value: string | User | PrimaryKeyType<User> | ModelLink<User>);
41
+ /** Email asserted for this ident */
42
+ email?: string;
43
+ /** When the ident was verified */
44
+ get verifiedAt(): Date;
45
+ set verifiedAt(value: string | number | Date);
46
+ /** Last login with this ident */
47
+ get lastUsedAt(): Date;
48
+ set lastUsedAt(value: string | number | Date);
49
+ /** Email sending throttle state */
50
+ _throttle: IdentThrottle;
51
+ /**
52
+ * Login attempts counted since the last successful login
53
+ *
54
+ * Top-level so stores can increment it atomically (nested-path atomic operations are not portable)
55
+ */
56
+ _loginAttempts: number;
57
+ /** Timestamp (ms) of the last counted login attempt */
58
+ _lastLoginAttemptAt?: number;
59
+ /** Provider profile */
60
+ __profile?: any;
61
+ /** Provider tokens, encrypted at rest (`await ident.tokens.get()`) */
62
+ tokens: EncryptedField<IdentTokens>;
63
+ /** @param data - initial data */
64
+ constructor(data?: Settable<Ident>);
65
+ /**
66
+ * Build and validate a key
67
+ * @param providerUid - uid on the provider
68
+ * @param provider - provider name
69
+ * @returns the composite key
70
+ */
71
+ static key(providerUid: string, provider: string): {
72
+ providerUid: string;
73
+ provider: string;
74
+ };
75
+ /**
76
+ * Parse a v3 storage key `"<providerUid>_<provider>"`, split on its LAST "_" (provider names never
77
+ * contain "_", provider uids such as emails may)
78
+ *
79
+ * Consulted by repositories for keys that are not `"<providerUid>:<provider>"` (see `WEBDA_LEGACY_UID`),
80
+ * so v3 records stay addressable and queryable until they are upgraded.
81
+ * @param uid - raw storage key
82
+ * @returns the key parts, or undefined when the key is not a v3 ident key
83
+ */
84
+ static parseLegacyUID(uid: string): {
85
+ providerUid: string;
86
+ provider: string;
87
+ } | undefined;
88
+ /**
89
+ * v3 storage key of a record stored before the composite key (v3 kept it as `uuid` in the body)
90
+ *
91
+ * Such an ident has no `providerUid`: it must be upgraded (`@webda/auth` `upgradeIdent`) before use.
92
+ * @returns the v3 key, or undefined for a current ident
93
+ */
94
+ getLegacyUID(): string | undefined;
95
+ /**
96
+ * Normalise an email for use as providerUid
97
+ * @param email - raw email
98
+ * @returns trimmed lowercase email
99
+ */
100
+ static normalizeEmail(email: string): string;
101
+ /**
102
+ * @returns the owner link
103
+ */
104
+ getUser(): ModelLink<User>;
105
+ /**
106
+ * @param user - owner uuid or user
107
+ */
108
+ setUser(user: string | User): void;
109
+ /**
110
+ * @returns the email of this ident
111
+ */
112
+ getEmail(): string | undefined;
113
+ /**
114
+ * @returns true when verified
115
+ */
116
+ isVerified(): boolean;
117
+ /**
118
+ * Only the owner may act on an ident
119
+ * @param ctx - operation context
120
+ * @param action - action name
121
+ * @returns true or a refusal reason
122
+ */
123
+ canAct(ctx: IOperationContext, action: string): Promise<string | boolean>;
124
+ /** Generated by @webda/content-mapper: include values held in WEBDA_STORAGE. */
125
+ toJSON(): any;
126
+ protected __hydrateBehaviors(rawData?: any): void;
127
+ }
128
+ //# sourceMappingURL=ident.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ident.model.d.ts","sourceRoot":"","sources":["../../src/models/ident.model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ import { WEBDA_STORAGE } from "@webda/models";
2
+ import { Model, ModelLink, WEBDA_PRIMARY_KEY, WEBDA_PRIMARY_KEY_SEPARATOR } from "@webda/models";
3
+ import * as WebdaError from "../errors/errors.js";
4
+ import { User } from "./user.model.js";
5
+ import { EncryptedField } from "./encrypted.model.js";
6
+ /** Raised for malformed ident keys (400 INVALID_IDENT) */
7
+ export class InvalidIdent extends WebdaError.HttpError {
8
+ /** @param message - error message */
9
+ constructor(message = "Invalid ident") {
10
+ super(message, 400);
11
+ }
12
+ }
13
+ const SEPARATOR = ":";
14
+ /**
15
+ * An identity linked to a user: `<providerUid>:<provider>`
16
+ * @WebdaModel
17
+ */
18
+ export class Ident extends Model {
19
+ /** Composite primary key */
20
+ [WEBDA_PRIMARY_KEY] = ["providerUid", "provider"];
21
+ // Must stay a string literal: the content mapper reads it textually
22
+ [WEBDA_PRIMARY_KEY_SEPARATOR] = ":";
23
+ /** Identifier on the provider (normalised email for "email") */
24
+ providerUid;
25
+ /** Provider name */
26
+ provider;
27
+ /** Owner */
28
+ get _user() {
29
+ return this[WEBDA_STORAGE]["_user"];
30
+ }
31
+ set _user(value) {
32
+ if (value instanceof ModelLink) {
33
+ this[WEBDA_STORAGE]["_user"] = value;
34
+ }
35
+ else if (value != null) {
36
+ const inst = this[WEBDA_STORAGE]["_user"] || new ModelLink(User);
37
+ inst.set(value);
38
+ this[WEBDA_STORAGE]["_user"] = inst;
39
+ }
40
+ else {
41
+ this[WEBDA_STORAGE]["_user"] = value;
42
+ }
43
+ }
44
+ /** Email asserted for this ident */
45
+ email;
46
+ /** When the ident was verified */
47
+ get verifiedAt() {
48
+ return this[WEBDA_STORAGE]["verifiedAt"];
49
+ }
50
+ set verifiedAt(value) {
51
+ this[WEBDA_STORAGE]["verifiedAt"] = value !== undefined && value !== null ? new Date(value) : value;
52
+ }
53
+ /** Last login with this ident */
54
+ get lastUsedAt() {
55
+ return this[WEBDA_STORAGE]["lastUsedAt"];
56
+ }
57
+ set lastUsedAt(value) {
58
+ this[WEBDA_STORAGE]["lastUsedAt"] = value !== undefined && value !== null ? new Date(value) : value;
59
+ }
60
+ /** Email sending throttle state */
61
+ _throttle = {};
62
+ /**
63
+ * Login attempts counted since the last successful login
64
+ *
65
+ * Top-level so stores can increment it atomically (nested-path atomic operations are not portable)
66
+ */
67
+ _loginAttempts = 0;
68
+ /** Timestamp (ms) of the last counted login attempt */
69
+ _lastLoginAttemptAt;
70
+ /** Provider profile */
71
+ __profile;
72
+ /** Provider tokens, encrypted at rest (`await ident.tokens.get()`) */
73
+ tokens;
74
+ /** @param data - initial data */
75
+ constructor(data) {
76
+ super();
77
+ Object.assign(this, data);
78
+ // Raw stored data (or none) must become an EncryptedField behavior
79
+ if (!(this.tokens instanceof EncryptedField)) {
80
+ this.__hydrateBehaviors?.({ tokens: data?.tokens ?? {} });
81
+ }
82
+ }
83
+ /**
84
+ * Build and validate a key
85
+ * @param providerUid - uid on the provider
86
+ * @param provider - provider name
87
+ * @returns the composite key
88
+ */
89
+ static key(providerUid, provider) {
90
+ for (const [name, v] of [
91
+ ["providerUid", providerUid],
92
+ ["provider", provider]
93
+ ]) {
94
+ if (typeof v !== "string" || v.length === 0 || v.includes(SEPARATOR)) {
95
+ throw new InvalidIdent(`${name} must be a non-empty string without '${SEPARATOR}'`);
96
+ }
97
+ }
98
+ return { providerUid, provider };
99
+ }
100
+ /**
101
+ * Parse a v3 storage key `"<providerUid>_<provider>"`, split on its LAST "_" (provider names never
102
+ * contain "_", provider uids such as emails may)
103
+ *
104
+ * Consulted by repositories for keys that are not `"<providerUid>:<provider>"` (see `WEBDA_LEGACY_UID`),
105
+ * so v3 records stay addressable and queryable until they are upgraded.
106
+ * @param uid - raw storage key
107
+ * @returns the key parts, or undefined when the key is not a v3 ident key
108
+ */
109
+ static parseLegacyUID(uid) {
110
+ if (typeof uid !== "string" || uid.includes(SEPARATOR)) {
111
+ return undefined;
112
+ }
113
+ const i = uid.lastIndexOf("_");
114
+ if (i <= 0 || i === uid.length - 1) {
115
+ return undefined;
116
+ }
117
+ return { providerUid: uid.substring(0, i), provider: uid.substring(i + 1) };
118
+ }
119
+ /**
120
+ * v3 storage key of a record stored before the composite key (v3 kept it as `uuid` in the body)
121
+ *
122
+ * Such an ident has no `providerUid`: it must be upgraded (`@webda/auth` `upgradeIdent`) before use.
123
+ * @returns the v3 key, or undefined for a current ident
124
+ */
125
+ getLegacyUID() {
126
+ const uuid = this.uuid;
127
+ if (this.providerUid || typeof uuid !== "string" || !Ident.parseLegacyUID(uuid)) {
128
+ return undefined;
129
+ }
130
+ return uuid;
131
+ }
132
+ /**
133
+ * Normalise an email for use as providerUid
134
+ * @param email - raw email
135
+ * @returns trimmed lowercase email
136
+ */
137
+ static normalizeEmail(email) {
138
+ return `${email ?? ""}`.trim().toLowerCase();
139
+ }
140
+ /**
141
+ * @returns the owner link
142
+ */
143
+ getUser() {
144
+ return this._user;
145
+ }
146
+ /**
147
+ * @param user - owner uuid or user
148
+ */
149
+ setUser(user) {
150
+ const uuid = typeof user === "string" ? user : user.getUUID();
151
+ this._user ??= new ModelLink(User).set(uuid);
152
+ this._user.set(uuid);
153
+ }
154
+ /**
155
+ * @returns the email of this ident
156
+ */
157
+ getEmail() {
158
+ return this.email;
159
+ }
160
+ /**
161
+ * @returns true when verified
162
+ */
163
+ isVerified() {
164
+ return this.verifiedAt !== undefined && this.verifiedAt !== null;
165
+ }
166
+ /**
167
+ * Only the owner may act on an ident
168
+ * @param ctx - operation context
169
+ * @param action - action name
170
+ * @returns true or a refusal reason
171
+ */
172
+ async canAct(ctx, action) {
173
+ if (!ctx.getCurrentUserId() || this._user?.toString() !== ctx.getCurrentUserId()) {
174
+ return "You can't act on this ident";
175
+ }
176
+ return true;
177
+ }
178
+ /** Generated by @webda/content-mapper: include values held in WEBDA_STORAGE. */
179
+ toJSON() {
180
+ const parent = super.toJSON ? super.toJSON() : {};
181
+ const result = parent === this ? {} : parent;
182
+ for (const key of Object.keys(this)) {
183
+ result[key] = this[key];
184
+ }
185
+ Object.assign(result, this[WEBDA_STORAGE]);
186
+ return result;
187
+ }
188
+ __hydrateBehaviors(rawData) {
189
+ {
190
+ let v = this.tokens;
191
+ if (rawData !== undefined && rawData !== null && rawData["tokens"] !== undefined) {
192
+ v = rawData["tokens"];
193
+ }
194
+ if (!(v instanceof EncryptedField)) {
195
+ const inst = new EncryptedField();
196
+ if (v !== undefined && v !== null) {
197
+ Object.assign(inst, v);
198
+ }
199
+ v = inst;
200
+ }
201
+ v[WEBDA_STORAGE] = v[WEBDA_STORAGE] || {};
202
+ v[WEBDA_STORAGE]["__parent__"] = { instance: this, attribute: "tokens" };
203
+ this.tokens = v;
204
+ }
205
+ }
206
+ }
207
+ //# sourceMappingURL=ident.model.js.map