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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (675) hide show
  1. package/README.md +252 -0
  2. package/lib/application/application.d.ts +437 -0
  3. package/lib/application/application.d.ts.map +1 -0
  4. package/lib/application/application.js +792 -0
  5. package/lib/application/application.js.map +1 -0
  6. package/lib/application/hooks.d.ts +34 -0
  7. package/lib/application/hooks.d.ts.map +1 -0
  8. package/lib/application/hooks.js +57 -0
  9. package/lib/application/hooks.js.map +1 -0
  10. package/lib/application/iapplication.d.ts +43 -0
  11. package/lib/application/iapplication.d.ts.map +1 -0
  12. package/lib/application/iapplication.js +2 -0
  13. package/lib/application/iapplication.js.map +1 -0
  14. package/lib/application/iconfiguration.d.ts +176 -0
  15. package/lib/application/iconfiguration.d.ts.map +1 -0
  16. package/lib/application/iconfiguration.js +8 -0
  17. package/lib/application/iconfiguration.js.map +1 -0
  18. package/lib/application/runner.d.ts +8 -0
  19. package/lib/application/runner.d.ts.map +1 -0
  20. package/lib/application/runner.js +26 -0
  21. package/lib/application/runner.js.map +1 -0
  22. package/lib/application/unpackedapplication.d.ts +104 -0
  23. package/lib/application/unpackedapplication.d.ts.map +1 -0
  24. package/lib/application/unpackedapplication.js +492 -0
  25. package/lib/application/unpackedapplication.js.map +1 -0
  26. package/lib/bin/cli-phase.d.ts +28 -0
  27. package/lib/bin/cli-phase.d.ts.map +1 -0
  28. package/lib/bin/cli-phase.js +44 -0
  29. package/lib/bin/cli-phase.js.map +1 -0
  30. package/lib/bin/cli.d.ts +161 -0
  31. package/lib/bin/cli.d.ts.map +1 -0
  32. package/lib/bin/cli.js +828 -0
  33. package/lib/bin/cli.js.map +1 -0
  34. package/lib/bin/launcher.d.ts +3 -0
  35. package/lib/bin/launcher.d.ts.map +1 -0
  36. package/lib/bin/launcher.js +50 -0
  37. package/lib/bin/launcher.js.map +1 -0
  38. package/lib/cache/cache.d.ts +33 -0
  39. package/lib/cache/cache.d.ts.map +1 -0
  40. package/lib/cache/cache.js +8 -0
  41. package/lib/cache/cache.js.map +1 -0
  42. package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -49
  43. package/lib/configurations/configuration.service.d.ts.map +1 -0
  44. package/lib/configurations/configuration.service.js +248 -0
  45. package/lib/configurations/configuration.service.js.map +1 -0
  46. package/lib/configurations/fileconfiguration.service.d.ts +30 -0
  47. package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
  48. package/lib/configurations/fileconfiguration.service.js +65 -0
  49. package/lib/configurations/fileconfiguration.service.js.map +1 -0
  50. package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
  51. package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
  52. package/lib/configurations/kubernetesconfiguration.service.js +83 -0
  53. package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
  54. package/lib/contexts/execution.d.ts +33 -0
  55. package/lib/contexts/execution.d.ts.map +1 -0
  56. package/lib/contexts/execution.js +73 -0
  57. package/lib/contexts/execution.js.map +1 -0
  58. package/lib/contexts/globalcontext.d.ts +29 -0
  59. package/lib/contexts/globalcontext.d.ts.map +1 -0
  60. package/lib/contexts/globalcontext.js +38 -0
  61. package/lib/contexts/globalcontext.js.map +1 -0
  62. package/lib/{utils → contexts}/httpcontext.d.ts +45 -19
  63. package/lib/contexts/httpcontext.d.ts.map +1 -0
  64. package/lib/{utils → contexts}/httpcontext.js +102 -34
  65. package/lib/contexts/httpcontext.js.map +1 -0
  66. package/lib/contexts/icontext.d.ts +236 -0
  67. package/lib/contexts/icontext.d.ts.map +1 -0
  68. package/lib/contexts/icontext.js +230 -0
  69. package/lib/contexts/icontext.js.map +1 -0
  70. package/lib/contexts/operationcontext.d.ts +179 -0
  71. package/lib/contexts/operationcontext.d.ts.map +1 -0
  72. package/lib/contexts/operationcontext.js +358 -0
  73. package/lib/contexts/operationcontext.js.map +1 -0
  74. package/lib/contexts/simplecontext.d.ts +31 -0
  75. package/lib/contexts/simplecontext.d.ts.map +1 -0
  76. package/lib/contexts/simplecontext.js +45 -0
  77. package/lib/contexts/simplecontext.js.map +1 -0
  78. package/lib/contexts/webcontext.d.ts +218 -0
  79. package/lib/contexts/webcontext.d.ts.map +1 -0
  80. package/lib/contexts/webcontext.js +389 -0
  81. package/lib/contexts/webcontext.js.map +1 -0
  82. package/lib/core/authorizer.d.ts +23 -0
  83. package/lib/core/authorizer.d.ts.map +1 -0
  84. package/lib/core/authorizer.js +17 -0
  85. package/lib/core/authorizer.js.map +1 -0
  86. package/lib/core/core.d.ts +225 -0
  87. package/lib/core/core.d.ts.map +1 -0
  88. package/lib/core/core.js +576 -0
  89. package/lib/core/core.js.map +1 -0
  90. package/lib/core/hooks.d.ts +72 -0
  91. package/lib/core/hooks.d.ts.map +1 -0
  92. package/lib/core/hooks.js +73 -0
  93. package/lib/core/hooks.js.map +1 -0
  94. package/lib/core/icore.d.ts +249 -0
  95. package/lib/core/icore.d.ts.map +1 -0
  96. package/lib/core/icore.js +15 -0
  97. package/lib/core/icore.js.map +1 -0
  98. package/lib/core/instancestorage.d.ts +61 -0
  99. package/lib/core/instancestorage.d.ts.map +1 -0
  100. package/lib/core/instancestorage.js +75 -0
  101. package/lib/core/instancestorage.js.map +1 -0
  102. package/lib/core/operations.d.ts +181 -0
  103. package/lib/core/operations.d.ts.map +1 -0
  104. package/lib/core/operations.js +559 -0
  105. package/lib/core/operations.js.map +1 -0
  106. package/lib/errors/errors.d.ts +126 -0
  107. package/lib/errors/errors.d.ts.map +1 -0
  108. package/lib/errors/errors.js +165 -0
  109. package/lib/errors/errors.js.map +1 -0
  110. package/lib/events/asynceventemitter.d.ts +159 -0
  111. package/lib/events/asynceventemitter.d.ts.map +1 -0
  112. package/lib/events/asynceventemitter.js +152 -0
  113. package/lib/events/asynceventemitter.js.map +1 -0
  114. package/lib/events/events.d.ts +112 -0
  115. package/lib/events/events.d.ts.map +1 -0
  116. package/lib/events/events.js +45 -0
  117. package/lib/events/events.js.map +1 -0
  118. package/lib/index.d.ts +84 -51
  119. package/lib/index.d.ts.map +1 -0
  120. package/lib/index.js +82 -59
  121. package/lib/index.js.map +1 -1
  122. package/lib/loggers/console.service.d.ts +24 -0
  123. package/lib/loggers/console.service.d.ts.map +1 -0
  124. package/lib/loggers/console.service.js +30 -0
  125. package/lib/loggers/console.service.js.map +1 -0
  126. package/lib/loggers/file.service.d.ts +25 -0
  127. package/lib/loggers/file.service.d.ts.map +1 -0
  128. package/lib/loggers/file.service.js +33 -0
  129. package/lib/loggers/file.service.js.map +1 -0
  130. package/lib/loggers/hooks.d.ts +20 -0
  131. package/lib/loggers/hooks.d.ts.map +1 -0
  132. package/lib/loggers/hooks.js +40 -0
  133. package/lib/loggers/hooks.js.map +1 -0
  134. package/lib/loggers/ilogger.d.ts +76 -0
  135. package/lib/loggers/ilogger.d.ts.map +1 -0
  136. package/lib/loggers/ilogger.js +108 -0
  137. package/lib/loggers/ilogger.js.map +1 -0
  138. package/lib/loggers/logger.d.ts +13 -0
  139. package/lib/loggers/logger.d.ts.map +1 -0
  140. package/lib/loggers/logger.js +18 -0
  141. package/lib/loggers/logger.js.map +1 -0
  142. package/lib/loggers/memory.service.d.ts +18 -0
  143. package/lib/loggers/memory.service.d.ts.map +1 -0
  144. package/lib/loggers/memory.service.js +21 -0
  145. package/lib/loggers/memory.service.js.map +1 -0
  146. package/lib/loggers/params.d.ts +47 -0
  147. package/lib/loggers/params.d.ts.map +1 -0
  148. package/lib/loggers/params.js +56 -0
  149. package/lib/loggers/params.js.map +1 -0
  150. package/lib/metrics/metrics.d.ts +25 -0
  151. package/lib/metrics/metrics.d.ts.map +1 -0
  152. package/lib/metrics/metrics.js +51 -0
  153. package/lib/metrics/metrics.js.map +1 -0
  154. package/lib/models/aclmodel.d.ts +21 -77
  155. package/lib/models/aclmodel.d.ts.map +1 -0
  156. package/lib/models/aclmodel.js +27 -204
  157. package/lib/models/aclmodel.js.map +1 -1
  158. package/lib/models/coremodel.model.d.ts +5 -0
  159. package/lib/models/coremodel.model.d.ts.map +1 -0
  160. package/lib/models/coremodel.model.js +5 -0
  161. package/lib/models/coremodel.model.js.map +1 -0
  162. package/lib/models/decorator.d.ts +63 -0
  163. package/lib/models/decorator.d.ts.map +1 -0
  164. package/lib/models/decorator.js +63 -0
  165. package/lib/models/decorator.js.map +1 -0
  166. package/lib/models/deployment.d.ts +2 -1
  167. package/lib/models/deployment.d.ts.map +1 -0
  168. package/lib/models/ident.model.d.ts +89 -0
  169. package/lib/models/ident.model.d.ts.map +1 -0
  170. package/lib/models/ident.model.js +115 -0
  171. package/lib/models/ident.model.js.map +1 -0
  172. package/lib/models/ownermodel.model.d.ts +68 -0
  173. package/lib/models/ownermodel.model.d.ts.map +1 -0
  174. package/lib/models/ownermodel.model.js +112 -0
  175. package/lib/models/ownermodel.model.js.map +1 -0
  176. package/lib/models/registry.model.d.ts +76 -0
  177. package/lib/models/registry.model.d.ts.map +1 -0
  178. package/lib/models/registry.model.js +104 -0
  179. package/lib/models/registry.model.js.map +1 -0
  180. package/lib/models/rolemodel.model.d.ts +28 -0
  181. package/lib/models/rolemodel.model.d.ts.map +1 -0
  182. package/lib/models/rolemodel.model.js +53 -0
  183. package/lib/models/rolemodel.model.js.map +1 -0
  184. package/lib/models/simpleuser.model.d.ts +78 -0
  185. package/lib/models/simpleuser.model.d.ts.map +1 -0
  186. package/lib/models/simpleuser.model.js +123 -0
  187. package/lib/models/simpleuser.model.js.map +1 -0
  188. package/lib/models/types.d.ts +113 -0
  189. package/lib/models/types.d.ts.map +1 -0
  190. package/lib/models/types.js +2 -0
  191. package/lib/models/types.js.map +1 -0
  192. package/lib/models/user.model.d.ts +103 -0
  193. package/lib/models/user.model.d.ts.map +1 -0
  194. package/lib/models/user.model.js +125 -0
  195. package/lib/models/user.model.js.map +1 -0
  196. package/lib/queues/memoryqueue.service.d.ts +72 -0
  197. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  198. package/lib/queues/memoryqueue.service.js +136 -0
  199. package/lib/queues/memoryqueue.service.js.map +1 -0
  200. package/lib/queues/pubsubservice.d.ts +9 -6
  201. package/lib/queues/pubsubservice.d.ts.map +1 -0
  202. package/lib/queues/pubsubservice.js +5 -4
  203. package/lib/queues/pubsubservice.js.map +1 -1
  204. package/lib/queues/queueservice.d.ts +10 -11
  205. package/lib/queues/queueservice.d.ts.map +1 -0
  206. package/lib/queues/queueservice.js +48 -20
  207. package/lib/queues/queueservice.js.map +1 -1
  208. package/lib/rest/hooks.d.ts +8 -0
  209. package/lib/rest/hooks.d.ts.map +1 -0
  210. package/lib/rest/hooks.js +10 -0
  211. package/lib/rest/hooks.js.map +1 -0
  212. package/lib/rest/irest.d.ts +212 -0
  213. package/lib/rest/irest.d.ts.map +1 -0
  214. package/lib/rest/irest.js +39 -0
  215. package/lib/rest/irest.js.map +1 -0
  216. package/lib/rest/originfilter.d.ts +38 -0
  217. package/lib/rest/originfilter.d.ts.map +1 -0
  218. package/lib/rest/originfilter.js +61 -0
  219. package/lib/rest/originfilter.js.map +1 -0
  220. package/lib/rest/restoperationstransport.service.d.ts +193 -0
  221. package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
  222. package/lib/rest/restoperationstransport.service.js +780 -0
  223. package/lib/rest/restoperationstransport.service.js.map +1 -0
  224. package/lib/rest/router.service.d.ts +244 -0
  225. package/lib/rest/router.service.d.ts.map +1 -0
  226. package/lib/rest/router.service.js +843 -0
  227. package/lib/rest/router.service.js.map +1 -0
  228. package/lib/schemas/hooks.d.ts +48 -0
  229. package/lib/schemas/hooks.d.ts.map +1 -0
  230. package/lib/schemas/hooks.js +152 -0
  231. package/lib/schemas/hooks.js.map +1 -0
  232. package/lib/services/audit.model.d.ts +208 -0
  233. package/lib/services/audit.model.d.ts.map +1 -0
  234. package/lib/services/audit.model.js +431 -0
  235. package/lib/services/audit.model.js.map +1 -0
  236. package/lib/services/{authentication.d.ts → authentication.service.d.ts} +140 -58
  237. package/lib/services/authentication.service.d.ts.map +1 -0
  238. package/lib/services/authentication.service.js +932 -0
  239. package/lib/services/authentication.service.js.map +1 -0
  240. package/lib/services/binary.service.d.ts +808 -0
  241. package/lib/services/binary.service.d.ts.map +1 -0
  242. package/lib/services/binary.service.js +1365 -0
  243. package/lib/services/binary.service.js.map +1 -0
  244. package/lib/services/cloudbinary.d.ts +19 -13
  245. package/lib/services/cloudbinary.d.ts.map +1 -0
  246. package/lib/services/cloudbinary.js +24 -18
  247. package/lib/services/cloudbinary.js.map +1 -1
  248. package/lib/services/command.d.ts +118 -0
  249. package/lib/services/command.d.ts.map +1 -0
  250. package/lib/services/command.js +97 -0
  251. package/lib/services/command.js.map +1 -0
  252. package/lib/services/cron.service.d.ts +142 -0
  253. package/lib/services/cron.service.d.ts.map +1 -0
  254. package/lib/services/cron.service.js +291 -0
  255. package/lib/services/cron.service.js.map +1 -0
  256. package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +77 -142
  257. package/lib/services/cryptoservice.service.d.ts.map +1 -0
  258. package/lib/services/cryptoservice.service.js +527 -0
  259. package/lib/services/cryptoservice.service.js.map +1 -0
  260. package/lib/services/debugmailer.service.d.ts +49 -0
  261. package/lib/services/debugmailer.service.d.ts.map +1 -0
  262. package/lib/services/debugmailer.service.js +66 -0
  263. package/lib/services/debugmailer.service.js.map +1 -0
  264. package/lib/services/domainservice.service.d.ts +203 -0
  265. package/lib/services/domainservice.service.d.ts.map +1 -0
  266. package/lib/services/domainservice.service.js +600 -0
  267. package/lib/services/domainservice.service.js.map +1 -0
  268. package/lib/services/httpserver.service.d.ts +248 -0
  269. package/lib/services/httpserver.service.d.ts.map +1 -0
  270. package/lib/services/httpserver.service.js +673 -0
  271. package/lib/services/httpserver.service.js.map +1 -0
  272. package/lib/services/iauthentication.d.ts +9 -0
  273. package/lib/services/iauthentication.d.ts.map +1 -0
  274. package/lib/services/iauthentication.js +2 -0
  275. package/lib/services/iauthentication.js.map +1 -0
  276. package/lib/services/icryptoservice.d.ts +127 -0
  277. package/lib/services/icryptoservice.d.ts.map +1 -0
  278. package/lib/services/icryptoservice.js +68 -0
  279. package/lib/services/icryptoservice.js.map +1 -0
  280. package/lib/services/imailer.d.ts +17 -0
  281. package/lib/services/imailer.d.ts.map +1 -0
  282. package/lib/services/imailer.js +2 -0
  283. package/lib/services/imailer.js.map +1 -0
  284. package/lib/services/iservice.d.ts +104 -0
  285. package/lib/services/iservice.d.ts.map +1 -0
  286. package/lib/services/iservice.js +63 -0
  287. package/lib/services/iservice.js.map +1 -0
  288. package/lib/services/mailer.service.d.ts +220 -0
  289. package/lib/services/mailer.service.d.ts.map +1 -0
  290. package/lib/services/mailer.service.js +251 -0
  291. package/lib/services/mailer.service.js.map +1 -0
  292. package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -10
  293. package/lib/services/notificationservice.service.d.ts.map +1 -0
  294. package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
  295. package/lib/services/notificationservice.service.js.map +1 -0
  296. package/lib/services/oauth.d.ts +58 -31
  297. package/lib/services/oauth.d.ts.map +1 -0
  298. package/lib/services/oauth.js +365 -251
  299. package/lib/services/oauth.js.map +1 -1
  300. package/lib/services/operationstransport.d.ts +65 -0
  301. package/lib/services/operationstransport.d.ts.map +1 -0
  302. package/lib/services/operationstransport.js +103 -0
  303. package/lib/services/operationstransport.js.map +1 -0
  304. package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -11
  305. package/lib/services/prometheus.service.d.ts.map +1 -0
  306. package/lib/services/prometheus.service.js +203 -0
  307. package/lib/services/prometheus.service.js.map +1 -0
  308. package/lib/services/resource.service.d.ts +121 -0
  309. package/lib/services/resource.service.d.ts.map +1 -0
  310. package/lib/services/resource.service.js +301 -0
  311. package/lib/services/resource.service.js.map +1 -0
  312. package/lib/services/service.d.ts +88 -189
  313. package/lib/services/service.d.ts.map +1 -0
  314. package/lib/services/service.js +407 -432
  315. package/lib/services/service.js.map +1 -1
  316. package/lib/services/servicecommands.d.ts +99 -0
  317. package/lib/services/servicecommands.d.ts.map +1 -0
  318. package/lib/services/servicecommands.js +165 -0
  319. package/lib/services/servicecommands.js.map +1 -0
  320. package/lib/services/serviceparameters.d.ts +33 -0
  321. package/lib/services/serviceparameters.d.ts.map +1 -0
  322. package/lib/services/serviceparameters.js +79 -0
  323. package/lib/services/serviceparameters.js.map +1 -0
  324. package/lib/{utils → session}/cookie.d.ts +32 -18
  325. package/lib/session/cookie.d.ts.map +1 -0
  326. package/lib/{utils → session}/cookie.js +76 -23
  327. package/lib/session/cookie.js.map +1 -0
  328. package/lib/session/manager.model.d.ts +71 -0
  329. package/lib/session/manager.model.d.ts.map +1 -0
  330. package/lib/session/manager.model.js +155 -0
  331. package/lib/session/manager.model.js.map +1 -0
  332. package/lib/session/session.d.ts +57 -0
  333. package/lib/session/session.d.ts.map +1 -0
  334. package/lib/session/session.js +126 -0
  335. package/lib/session/session.js.map +1 -0
  336. package/lib/stores/istore.d.ts +99 -0
  337. package/lib/stores/istore.d.ts.map +1 -0
  338. package/lib/stores/istore.js +26 -0
  339. package/lib/stores/istore.js.map +1 -0
  340. package/lib/stores/memory.service.d.ts +114 -0
  341. package/lib/stores/memory.service.d.ts.map +1 -0
  342. package/lib/stores/memory.service.js +343 -0
  343. package/lib/stores/memory.service.js.map +1 -0
  344. package/lib/stores/store.d.ts +127 -768
  345. package/lib/stores/store.d.ts.map +1 -0
  346. package/lib/stores/store.js +258 -1718
  347. package/lib/stores/store.js.map +1 -1
  348. package/lib/templates/templates.d.ts +39 -0
  349. package/lib/templates/templates.d.ts.map +1 -0
  350. package/lib/templates/templates.js +92 -0
  351. package/lib/templates/templates.js.map +1 -0
  352. package/lib/test/application.d.ts +174 -0
  353. package/lib/test/application.d.ts.map +1 -0
  354. package/lib/test/application.js +288 -0
  355. package/lib/test/application.js.map +1 -0
  356. package/lib/test/asyncstorage.d.ts +16 -0
  357. package/lib/test/asyncstorage.d.ts.map +1 -0
  358. package/lib/test/asyncstorage.js +32 -0
  359. package/lib/test/asyncstorage.js.map +1 -0
  360. package/lib/test/core.d.ts +63 -0
  361. package/lib/test/core.d.ts.map +1 -0
  362. package/lib/test/core.js +190 -0
  363. package/lib/test/core.js.map +1 -0
  364. package/lib/test/index.d.ts +7 -0
  365. package/lib/test/index.d.ts.map +1 -0
  366. package/lib/test/index.js +8 -0
  367. package/lib/test/index.js.map +1 -0
  368. package/lib/test/internal.d.ts +34 -0
  369. package/lib/test/internal.d.ts.map +1 -0
  370. package/lib/test/internal.js +156 -0
  371. package/lib/test/internal.js.map +1 -0
  372. package/lib/test/objects.d.ts +318 -0
  373. package/lib/test/objects.d.ts.map +1 -0
  374. package/lib/test/objects.js +443 -0
  375. package/lib/test/objects.js.map +1 -0
  376. package/lib/utils/abstractdeployer.d.ts +5 -2
  377. package/lib/utils/abstractdeployer.d.ts.map +1 -0
  378. package/lib/utils/abstractdeployer.js +3 -0
  379. package/lib/utils/abstractdeployer.js.map +1 -1
  380. package/package.json +85 -56
  381. package/test/cachedapp/webda.config.json +1 -5
  382. package/test/config-cached.json +1 -5
  383. package/test/config.json +6 -99
  384. package/test/data/.env +1 -0
  385. package/test/my-cnf.json +9 -0
  386. package/webda.module.json +3462 -2231
  387. package/lib/application.d.ts +0 -876
  388. package/lib/application.js +0 -741
  389. package/lib/application.js.map +0 -1
  390. package/lib/application.spec.d.ts +0 -1
  391. package/lib/application.spec.js +0 -234
  392. package/lib/application.spec.js.map +0 -1
  393. package/lib/core.d.ts +0 -740
  394. package/lib/core.js +0 -1310
  395. package/lib/core.js.map +0 -1
  396. package/lib/core.spec.d.ts +0 -1
  397. package/lib/core.spec.js +0 -761
  398. package/lib/core.spec.js.map +0 -1
  399. package/lib/errors.d.ts +0 -65
  400. package/lib/errors.js +0 -113
  401. package/lib/errors.js.map +0 -1
  402. package/lib/errors.spec.d.ts +0 -1
  403. package/lib/errors.spec.js +0 -33
  404. package/lib/errors.spec.js.map +0 -1
  405. package/lib/models/aclmodel.spec.d.ts +0 -1
  406. package/lib/models/aclmodel.spec.js +0 -187
  407. package/lib/models/aclmodel.spec.js.map +0 -1
  408. package/lib/models/coremodel.d.ts +0 -887
  409. package/lib/models/coremodel.js +0 -1208
  410. package/lib/models/coremodel.js.map +0 -1
  411. package/lib/models/coremodel.spec.d.ts +0 -1
  412. package/lib/models/coremodel.spec.js +0 -462
  413. package/lib/models/coremodel.spec.js.map +0 -1
  414. package/lib/models/ident.d.ts +0 -53
  415. package/lib/models/ident.js +0 -40
  416. package/lib/models/ident.js.map +0 -1
  417. package/lib/models/ident.spec.d.ts +0 -1
  418. package/lib/models/ident.spec.js +0 -43
  419. package/lib/models/ident.spec.js.map +0 -1
  420. package/lib/models/ownermodel.d.ts +0 -50
  421. package/lib/models/ownermodel.js +0 -65
  422. package/lib/models/ownermodel.js.map +0 -1
  423. package/lib/models/ownermodel.spec.d.ts +0 -1
  424. package/lib/models/ownermodel.spec.js +0 -191
  425. package/lib/models/ownermodel.spec.js.map +0 -1
  426. package/lib/models/relations.d.ts +0 -181
  427. package/lib/models/relations.js +0 -157
  428. package/lib/models/relations.js.map +0 -1
  429. package/lib/models/relations.spec.d.ts +0 -12
  430. package/lib/models/relations.spec.js +0 -224
  431. package/lib/models/relations.spec.js.map +0 -1
  432. package/lib/models/rolemodel.d.ts +0 -10
  433. package/lib/models/rolemodel.js +0 -35
  434. package/lib/models/rolemodel.js.map +0 -1
  435. package/lib/models/rolemodel.spec.d.ts +0 -1
  436. package/lib/models/rolemodel.spec.js +0 -86
  437. package/lib/models/rolemodel.spec.js.map +0 -1
  438. package/lib/models/user.d.ts +0 -100
  439. package/lib/models/user.js +0 -157
  440. package/lib/models/user.js.map +0 -1
  441. package/lib/models/user.spec.d.ts +0 -1
  442. package/lib/models/user.spec.js +0 -88
  443. package/lib/models/user.spec.js.map +0 -1
  444. package/lib/queues/filequeue.d.ts +0 -58
  445. package/lib/queues/filequeue.js +0 -131
  446. package/lib/queues/filequeue.js.map +0 -1
  447. package/lib/queues/filequeue.spec.d.ts +0 -1
  448. package/lib/queues/filequeue.spec.js +0 -78
  449. package/lib/queues/filequeue.spec.js.map +0 -1
  450. package/lib/queues/memoryqueue.d.ts +0 -45
  451. package/lib/queues/memoryqueue.js +0 -81
  452. package/lib/queues/memoryqueue.js.map +0 -1
  453. package/lib/queues/memoryqueue.spec.d.ts +0 -1
  454. package/lib/queues/memoryqueue.spec.js +0 -192
  455. package/lib/queues/memoryqueue.spec.js.map +0 -1
  456. package/lib/queues/queue.spec.d.ts +0 -5
  457. package/lib/queues/queue.spec.js +0 -55
  458. package/lib/queues/queue.spec.js.map +0 -1
  459. package/lib/router.d.ts +0 -172
  460. package/lib/router.js +0 -419
  461. package/lib/router.js.map +0 -1
  462. package/lib/router.spec.d.ts +0 -1
  463. package/lib/router.spec.js +0 -229
  464. package/lib/router.spec.js.map +0 -1
  465. package/lib/services/asyncevents.d.ts +0 -151
  466. package/lib/services/asyncevents.js +0 -217
  467. package/lib/services/asyncevents.js.map +0 -1
  468. package/lib/services/asyncevents.spec.d.ts +0 -1
  469. package/lib/services/asyncevents.spec.js +0 -118
  470. package/lib/services/asyncevents.spec.js.map +0 -1
  471. package/lib/services/authentication.js +0 -772
  472. package/lib/services/authentication.js.map +0 -1
  473. package/lib/services/authentication.spec.d.ts +0 -1
  474. package/lib/services/authentication.spec.js +0 -458
  475. package/lib/services/authentication.spec.js.map +0 -1
  476. package/lib/services/binary.d.ts +0 -549
  477. package/lib/services/binary.js +0 -986
  478. package/lib/services/binary.js.map +0 -1
  479. package/lib/services/binary.spec.d.ts +0 -44
  480. package/lib/services/binary.spec.js +0 -438
  481. package/lib/services/binary.spec.js.map +0 -1
  482. package/lib/services/cloudbinary.spec.d.ts +0 -13
  483. package/lib/services/cloudbinary.spec.js +0 -192
  484. package/lib/services/cloudbinary.spec.js.map +0 -1
  485. package/lib/services/configuration.js +0 -178
  486. package/lib/services/configuration.js.map +0 -1
  487. package/lib/services/configuration.spec.d.ts +0 -1
  488. package/lib/services/configuration.spec.js +0 -87
  489. package/lib/services/configuration.spec.js.map +0 -1
  490. package/lib/services/cron.d.ts +0 -73
  491. package/lib/services/cron.js +0 -141
  492. package/lib/services/cron.js.map +0 -1
  493. package/lib/services/cron.spec.d.ts +0 -1
  494. package/lib/services/cron.spec.js +0 -76
  495. package/lib/services/cron.spec.js.map +0 -1
  496. package/lib/services/cryptoservice.js +0 -434
  497. package/lib/services/cryptoservice.js.map +0 -1
  498. package/lib/services/cryptoservice.spec.d.ts +0 -1
  499. package/lib/services/cryptoservice.spec.js +0 -177
  500. package/lib/services/cryptoservice.spec.js.map +0 -1
  501. package/lib/services/debugmailer.d.ts +0 -36
  502. package/lib/services/debugmailer.js +0 -52
  503. package/lib/services/debugmailer.js.map +0 -1
  504. package/lib/services/debugmailer.spec.d.ts +0 -1
  505. package/lib/services/debugmailer.spec.js +0 -29
  506. package/lib/services/debugmailer.spec.js.map +0 -1
  507. package/lib/services/domainservice.d.ts +0 -152
  508. package/lib/services/domainservice.js +0 -881
  509. package/lib/services/domainservice.js.map +0 -1
  510. package/lib/services/domainservice.spec.d.ts +0 -1
  511. package/lib/services/domainservice.spec.js +0 -401
  512. package/lib/services/domainservice.spec.js.map +0 -1
  513. package/lib/services/filebinary.d.ts +0 -133
  514. package/lib/services/filebinary.js +0 -371
  515. package/lib/services/filebinary.js.map +0 -1
  516. package/lib/services/filebinary.spec.d.ts +0 -21
  517. package/lib/services/filebinary.spec.js +0 -415
  518. package/lib/services/filebinary.spec.js.map +0 -1
  519. package/lib/services/fileconfiguration.d.ts +0 -22
  520. package/lib/services/fileconfiguration.js +0 -48
  521. package/lib/services/fileconfiguration.js.map +0 -1
  522. package/lib/services/fileconfiguration.spec.d.ts +0 -1
  523. package/lib/services/fileconfiguration.spec.js +0 -177
  524. package/lib/services/fileconfiguration.spec.js.map +0 -1
  525. package/lib/services/invitationservice.d.ts +0 -222
  526. package/lib/services/invitationservice.js +0 -526
  527. package/lib/services/invitationservice.js.map +0 -1
  528. package/lib/services/invitationservice.spec.d.ts +0 -1
  529. package/lib/services/invitationservice.spec.js +0 -516
  530. package/lib/services/invitationservice.spec.js.map +0 -1
  531. package/lib/services/kubernetesconfiguration.d.ts +0 -26
  532. package/lib/services/kubernetesconfiguration.js +0 -54
  533. package/lib/services/kubernetesconfiguration.js.map +0 -1
  534. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -1
  535. package/lib/services/kubernetesconfiguration.spec.js +0 -147
  536. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  537. package/lib/services/mailer.d.ts +0 -165
  538. package/lib/services/mailer.js +0 -176
  539. package/lib/services/mailer.js.map +0 -1
  540. package/lib/services/mailer.spec.d.ts +0 -1
  541. package/lib/services/mailer.spec.js +0 -144
  542. package/lib/services/mailer.spec.js.map +0 -1
  543. package/lib/services/notificationservice.js.map +0 -1
  544. package/lib/services/notificationservice.spec.d.ts +0 -1
  545. package/lib/services/notificationservice.spec.js +0 -78
  546. package/lib/services/notificationservice.spec.js.map +0 -1
  547. package/lib/services/oauth.spec.d.ts +0 -1
  548. package/lib/services/oauth.spec.js +0 -184
  549. package/lib/services/oauth.spec.js.map +0 -1
  550. package/lib/services/prometheus.js +0 -160
  551. package/lib/services/prometheus.js.map +0 -1
  552. package/lib/services/prometheus.spec.d.ts +0 -1
  553. package/lib/services/prometheus.spec.js +0 -57
  554. package/lib/services/prometheus.spec.js.map +0 -1
  555. package/lib/services/resource.d.ts +0 -87
  556. package/lib/services/resource.js +0 -156
  557. package/lib/services/resource.js.map +0 -1
  558. package/lib/services/resource.spec.d.ts +0 -1
  559. package/lib/services/resource.spec.js +0 -122
  560. package/lib/services/resource.spec.js.map +0 -1
  561. package/lib/services/service.spec.d.ts +0 -1
  562. package/lib/services/service.spec.js +0 -268
  563. package/lib/services/service.spec.js.map +0 -1
  564. package/lib/stores/aggregator.d.ts +0 -41
  565. package/lib/stores/aggregator.js +0 -80
  566. package/lib/stores/aggregator.js.map +0 -1
  567. package/lib/stores/aliasstore.d.ts +0 -108
  568. package/lib/stores/aliasstore.js +0 -168
  569. package/lib/stores/aliasstore.js.map +0 -1
  570. package/lib/stores/aliasstore.spec.d.ts +0 -11
  571. package/lib/stores/aliasstore.spec.js +0 -89
  572. package/lib/stores/aliasstore.spec.js.map +0 -1
  573. package/lib/stores/file.d.ts +0 -107
  574. package/lib/stores/file.js +0 -188
  575. package/lib/stores/file.js.map +0 -1
  576. package/lib/stores/file.spec.d.ts +0 -19
  577. package/lib/stores/file.spec.js +0 -232
  578. package/lib/stores/file.spec.js.map +0 -1
  579. package/lib/stores/mapper.d.ts +0 -149
  580. package/lib/stores/mapper.js +0 -293
  581. package/lib/stores/mapper.js.map +0 -1
  582. package/lib/stores/mapper.spec.d.ts +0 -1
  583. package/lib/stores/mapper.spec.js +0 -160
  584. package/lib/stores/mapper.spec.js.map +0 -1
  585. package/lib/stores/memory.d.ts +0 -151
  586. package/lib/stores/memory.js +0 -371
  587. package/lib/stores/memory.js.map +0 -1
  588. package/lib/stores/memory.spec.d.ts +0 -20
  589. package/lib/stores/memory.spec.js +0 -328
  590. package/lib/stores/memory.spec.js.map +0 -1
  591. package/lib/stores/modelmapper.d.ts +0 -61
  592. package/lib/stores/modelmapper.js +0 -199
  593. package/lib/stores/modelmapper.js.map +0 -1
  594. package/lib/stores/store.spec.d.ts +0 -65
  595. package/lib/stores/store.spec.js +0 -906
  596. package/lib/stores/store.spec.js.map +0 -1
  597. package/lib/test.d.ts +0 -162
  598. package/lib/test.js +0 -399
  599. package/lib/test.js.map +0 -1
  600. package/lib/unpackedapplication.d.ts +0 -76
  601. package/lib/unpackedapplication.js +0 -299
  602. package/lib/unpackedapplication.js.map +0 -1
  603. package/lib/utils/abstractdeployer.spec.d.ts +0 -1
  604. package/lib/utils/abstractdeployer.spec.js +0 -21
  605. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  606. package/lib/utils/case.d.ts +0 -7
  607. package/lib/utils/case.js +0 -43
  608. package/lib/utils/case.js.map +0 -1
  609. package/lib/utils/case.spec.d.ts +0 -1
  610. package/lib/utils/case.spec.js +0 -50
  611. package/lib/utils/case.spec.js.map +0 -1
  612. package/lib/utils/context.d.ts +0 -462
  613. package/lib/utils/context.js +0 -732
  614. package/lib/utils/context.js.map +0 -1
  615. package/lib/utils/context.spec.d.ts +0 -9
  616. package/lib/utils/context.spec.js +0 -372
  617. package/lib/utils/context.spec.js.map +0 -1
  618. package/lib/utils/cookie.js.map +0 -1
  619. package/lib/utils/cookie.spec.d.ts +0 -1
  620. package/lib/utils/cookie.spec.js +0 -78
  621. package/lib/utils/cookie.spec.js.map +0 -1
  622. package/lib/utils/esm.d.ts +0 -13
  623. package/lib/utils/esm.js +0 -19
  624. package/lib/utils/esm.js.map +0 -1
  625. package/lib/utils/httpcontext.js.map +0 -1
  626. package/lib/utils/httpcontext.spec.d.ts +0 -4
  627. package/lib/utils/httpcontext.spec.js +0 -77
  628. package/lib/utils/httpcontext.spec.js.map +0 -1
  629. package/lib/utils/logger.d.ts +0 -91
  630. package/lib/utils/logger.js +0 -121
  631. package/lib/utils/logger.js.map +0 -1
  632. package/lib/utils/logger.spec.d.ts +0 -1
  633. package/lib/utils/logger.spec.js +0 -48
  634. package/lib/utils/logger.spec.js.map +0 -1
  635. package/lib/utils/serializers.d.ts +0 -161
  636. package/lib/utils/serializers.js +0 -420
  637. package/lib/utils/serializers.js.map +0 -1
  638. package/lib/utils/serializers.spec.d.ts +0 -1
  639. package/lib/utils/serializers.spec.js +0 -313
  640. package/lib/utils/serializers.spec.js.map +0 -1
  641. package/lib/utils/session.d.ts +0 -126
  642. package/lib/utils/session.js +0 -166
  643. package/lib/utils/session.js.map +0 -1
  644. package/lib/utils/session.spec.d.ts +0 -1
  645. package/lib/utils/session.spec.js +0 -71
  646. package/lib/utils/session.spec.js.map +0 -1
  647. package/lib/utils/throttler.d.ts +0 -102
  648. package/lib/utils/throttler.js +0 -168
  649. package/lib/utils/throttler.js.map +0 -1
  650. package/lib/utils/throttler.spec.d.ts +0 -1
  651. package/lib/utils/throttler.spec.js +0 -55
  652. package/lib/utils/throttler.spec.js.map +0 -1
  653. package/lib/utils/waiter.d.ts +0 -93
  654. package/lib/utils/waiter.js +0 -148
  655. package/lib/utils/waiter.js.map +0 -1
  656. package/lib/utils/waiter.spec.d.ts +0 -1
  657. package/lib/utils/waiter.spec.js +0 -98
  658. package/lib/utils/waiter.spec.js.map +0 -1
  659. package/test/config-file-missing-file-no-default.json +0 -44
  660. package/test/config-file-missing-file.json +0 -55
  661. package/test/config-file-no-reload.json +0 -69
  662. package/test/config-file-reload.json +0 -68
  663. package/test/config-invitation.json +0 -63
  664. package/test/config-kube-reload.json +0 -68
  665. package/test/config-reload.json +0 -66
  666. package/test/config.old.json +0 -152
  667. package/test/jsonutils/mdocs.yaml +0 -56
  668. package/test/jsonutils/test.json +0 -3
  669. package/test/jsonutils/test.yml +0 -5
  670. package/test/moddas/annotatedservice.js +0 -23
  671. package/test/moddas/debugmailer.js +0 -13
  672. package/test/moddas/fakeservice.js +0 -4
  673. package/test/moddas/voidstore.js +0 -66
  674. package/test/models/ident.js +0 -36
  675. package/test/models/task.js +0 -42
@@ -0,0 +1,68 @@
1
+ import { type ModelClass, ModelLink, type PrimaryKeyType, UuidModel } from "@webda/models";
2
+ import { User } from "./user.model.js";
3
+ import { IOperationContext } from "../contexts/icontext.js";
4
+ /**
5
+ * Abstract class to define an object with an owner
6
+ *
7
+ * The owner is the user that created the object
8
+ * The owner can be changed by the owner
9
+ */
10
+ export declare abstract class AbstractOwnerModel<T extends User> extends UuidModel {
11
+ /**
12
+ * Default owner of the object
13
+ */
14
+ get _user(): ModelLink<T>;
15
+ set _user(value: string | T | PrimaryKeyType<T> | ModelLink<T>);
16
+ /**
17
+ * Define if the object is publicly readable
18
+ * @default false
19
+ */
20
+ public?: boolean;
21
+ /**
22
+ *
23
+ * @returns
24
+ */
25
+ abstract getOwnerModel(): ModelClass<T>;
26
+ /**
27
+ * Set object owner
28
+ * @param uuid - the unique identifier
29
+ */
30
+ setOwner(uuid: PrimaryKeyType<T>): void;
31
+ /**
32
+ * Return the owner of the object
33
+ *
34
+ * Only the owner can do update to the object
35
+ * @returns the result
36
+ */
37
+ getOwner(): ModelLink<T>;
38
+ /**
39
+ * Check if the current user can perform the given action based on ownership
40
+ * @param context - the execution context
41
+ * @param action - the action to check
42
+ * @returns the result
43
+ */
44
+ canAct(context: IOperationContext, action: string): Promise<string | boolean>;
45
+ /**
46
+ * Return a query to filter OwnerModel
47
+ *
48
+ * @param context - the execution context
49
+ * @returns the result
50
+ */
51
+ static getPermissionQuery(context?: IOperationContext): null | {
52
+ partial: boolean;
53
+ query: string;
54
+ };
55
+ /** Generated by @webda/content-mapper: include values held in WEBDA_STORAGE. */
56
+ toJSON(): any;
57
+ }
58
+ /**
59
+ * @WebdaModel
60
+ */
61
+ export declare class OwnerModel extends AbstractOwnerModel<User> {
62
+ /**
63
+ * Get the User model class used for ownership
64
+ * @returns the result
65
+ */
66
+ getOwnerModel(): ModelClass<User>;
67
+ }
68
+ //# sourceMappingURL=ownermodel.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownermodel.model.d.ts","sourceRoot":"","sources":["../../src/models/ownermodel.model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;;;;GAKG;AACH,8BAAsB,kBAAkB,CAAC,CAAC,SAAS,IAAI,CAAE,SAAQ,SAAS;IACxE;;OAEG;IACH,IAAI,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,CAExB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAU7D;IACD;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,QAAQ,CAAC,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAGtC;IAED;;;;;OAKG;IACH,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CAEvB;IAED;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,CAalF;IAED;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAQjG;IAED,gFAAgF;IAChF,MAAM,IAAI,GAAG,CAOZ;CACF;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,kBAAkB,CAAC,IAAI,CAAC;IACtD;;;OAGG;IACH,aAAa,IAAI,UAAU,CAAC,IAAI,CAAC,CAEhC;CACF"}
@@ -0,0 +1,112 @@
1
+ import { WEBDA_STORAGE } from "@webda/models";
2
+ //import { UuidModel } from "./uuid.js";
3
+ import { ModelLink, UuidModel } from "@webda/models";
4
+ import { User } from "./user.model.js";
5
+ /**
6
+ * Abstract class to define an object with an owner
7
+ *
8
+ * The owner is the user that created the object
9
+ * The owner can be changed by the owner
10
+ */
11
+ export class AbstractOwnerModel extends UuidModel {
12
+ /**
13
+ * Default owner of the object
14
+ */
15
+ get _user() {
16
+ return this[WEBDA_STORAGE]["_user"];
17
+ }
18
+ set _user(value) {
19
+ if (value instanceof ModelLink) {
20
+ this[WEBDA_STORAGE]["_user"] = value;
21
+ }
22
+ else if (value != null) {
23
+ const inst = this[WEBDA_STORAGE]["_user"] || new ModelLink(User);
24
+ inst.set(value);
25
+ this[WEBDA_STORAGE]["_user"] = inst;
26
+ }
27
+ else {
28
+ this[WEBDA_STORAGE]["_user"] = value;
29
+ }
30
+ }
31
+ /**
32
+ * Define if the object is publicly readable
33
+ * @default false
34
+ */
35
+ public;
36
+ /**
37
+ * Set object owner
38
+ * @param uuid - the unique identifier
39
+ */
40
+ setOwner(uuid) {
41
+ this._user ??= new ModelLink(this.getOwnerModel()).set(uuid);
42
+ this._user.set(uuid);
43
+ }
44
+ /**
45
+ * Return the owner of the object
46
+ *
47
+ * Only the owner can do update to the object
48
+ * @returns the result
49
+ */
50
+ getOwner() {
51
+ return this._user;
52
+ }
53
+ /**
54
+ * Check if the current user can perform the given action based on ownership
55
+ * @param context - the execution context
56
+ * @param action - the action to check
57
+ * @returns the result
58
+ */
59
+ async canAct(context, action) {
60
+ // Object is public
61
+ if (this.public && (action === "get" || action === "get_binary")) {
62
+ return true;
63
+ }
64
+ else if (!context.getCurrentUserId()) {
65
+ return "You need to be logged in to access this object";
66
+ }
67
+ else if (!this.getOwner() && action !== "create") {
68
+ return "Object does not have an owner";
69
+ }
70
+ if (action === "create") {
71
+ //this.setOwner(Uuid.parse(ctx.getCurrentUserId(), this.getOwnerModel()));
72
+ }
73
+ return context.getCurrentUserId() === this.getOwner()?.toString();
74
+ }
75
+ /**
76
+ * Return a query to filter OwnerModel
77
+ *
78
+ * @param context - the execution context
79
+ * @returns the result
80
+ */
81
+ static getPermissionQuery(context) {
82
+ if (!context) {
83
+ return null;
84
+ }
85
+ return {
86
+ query: `_user = '${context.getCurrentUserId()}' OR public = TRUE`,
87
+ partial: false
88
+ };
89
+ }
90
+ /** Generated by @webda/content-mapper: include values held in WEBDA_STORAGE. */
91
+ toJSON() {
92
+ const result = super.toJSON ? super.toJSON() : {};
93
+ for (const key of Object.keys(this)) {
94
+ result[key] = this[key];
95
+ }
96
+ Object.assign(result, this[WEBDA_STORAGE]);
97
+ return result;
98
+ }
99
+ }
100
+ /**
101
+ * @WebdaModel
102
+ */
103
+ export class OwnerModel extends AbstractOwnerModel {
104
+ /**
105
+ * Get the User model class used for ownership
106
+ * @returns the result
107
+ */
108
+ getOwnerModel() {
109
+ return User;
110
+ }
111
+ }
112
+ //# sourceMappingURL=ownermodel.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownermodel.model.js","sourceRoot":"","sources":["../../src/models/ownermodel.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,wCAAwC;AACxC,OAAO,EAAmB,SAAS,EAAuB,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGvC;;;;;GAKG;AACH,MAAM,OAAgB,kBAAmC,SAAQ,SAAS;IACxE;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,KAAK,CAAC,KAAoD;QAC5D,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QACvC,CAAC;aAAM,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,GAAiB,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/E,IAAI,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QACvC,CAAC;IACH,CAAC;IACD;;;OAGG;IACH,MAAM,CAAW;IAQjB;;;OAGG;IACH,QAAQ,CAAC,IAAuB;QAC9B,IAAI,CAAC,KAAK,KAAK,IAAI,SAAS,CAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,OAA0B,EAAE,MAAc;QACrD,mBAAmB;QACnB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,YAAY,CAAC,EAAE,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACvC,OAAO,gDAAgD,CAAC;QAC1D,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,+BAA+B,CAAC;QACzC,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,0EAA0E;QAC5E,CAAC;QACD,OAAO,OAAO,CAAC,gBAAgB,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAA2B;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,KAAK,EAAE,YAAY,OAAO,CAAC,gBAAgB,EAAE,oBAAoB;YACjE,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,MAAM;QACJ,MAAM,MAAM,GAAS,KAAK,CAAC,MAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,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,CAAC,MAAM,CAAC,MAAM,EAAG,IAAY,CAAC,aAAa,CAAC,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,kBAAwB;IACtD;;;OAGG;IACH,aAAa;QACX,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,76 @@
1
+ import { type Settable, UuidModel } from "@webda/models";
2
+ /**
3
+ * Specific type for registry
4
+ */
5
+ export declare class RegistryEntry extends UuidModel {
6
+ /** Create a new RegistryEntry
7
+ * @param data - initial data
8
+ */
9
+ constructor(data?: Settable<RegistryEntry>);
10
+ /**
11
+ * Registry entries are not serializable to DTO
12
+ * @returns the result
13
+ */
14
+ toDTO(): undefined;
15
+ /**
16
+ * No-op DTO deserialization for registry entries
17
+ * @returns this for chaining
18
+ */
19
+ fromDTO(): this;
20
+ /**
21
+ * Remove an attribute from the registry
22
+ * @param uuid - the unique identifier
23
+ * @param attribute - the attribute name
24
+ * @returns the result
25
+ */
26
+ static removeAttribute(uuid: string, attribute: string): Promise<void>;
27
+ /**
28
+ * Set an attribute from the registry
29
+ * @param uuid - the unique identifier
30
+ * @param attribute - the attribute name
31
+ * @param value - the value to set
32
+ * @returns the result
33
+ */
34
+ static setAttribute(uuid: string, attribute: string, value: any): Promise<void>;
35
+ /**
36
+ * Helper for upsert
37
+ * @param uuid - the unique identifier
38
+ * @param data - the data to process
39
+ * @returns the result
40
+ */
41
+ static get<K = any>(uuid: string, data?: K): Promise<RegistryEntry & K>;
42
+ /**
43
+ * Helper for upsert
44
+ * @param uuid - the unique identifier
45
+ * @param data - the data to process
46
+ * @returns the result
47
+ */
48
+ static put<K = any>(uuid: string, data: K): Promise<K & RegistryEntry>;
49
+ /**
50
+ * Delete a registry entry by UUID
51
+ * @param uuid - the unique identifier
52
+ * @returns the result
53
+ */
54
+ static delete(uuid: string): Promise<void>;
55
+ /**
56
+ * Check if a registry entry exists
57
+ * @param uuid - the unique identifier
58
+ * @returns the result
59
+ */
60
+ static exists(uuid: string): Promise<boolean>;
61
+ /**
62
+ * Perform a conditional patch
63
+ * @param uuid - the unique identifier
64
+ * @param patch - the patch to apply
65
+ * @param conditionField - the condition field name
66
+ * @param conditionValue - the condition value
67
+ * @returns the result
68
+ */
69
+ static patch(uuid: string, patch: any, conditionField: string, conditionValue: any): Promise<void>;
70
+ }
71
+ /**
72
+ * Use the registry
73
+ * @returns the result
74
+ */
75
+ export declare function useRegistry(): typeof RegistryEntry;
76
+ //# sourceMappingURL=registry.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.model.d.ts","sourceRoot":"","sources":["../../src/models/registry.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqE,KAAK,QAAQ,EAAiB,SAAS,EAAE,MAAM,eAAe,CAAC;AAG3I;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C;;OAEG;IACH,YAAY,IAAI,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAGzC;IAED;;;OAGG;IACH,KAAK,IAAI,SAAS,CAEjB;IAED;;;OAGG;IACH,OAAO,IAAI,IAAI,CAEd;IAED;;;;;OAKG;IACH,OAAa,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAG3D;IAED;;;;;;OAMG;IACH,OAAa,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,iBAGpE;IAED;;;;;OAKG;IACH,OAAa,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,CAI5E;IAED;;;;;OAKG;IACH,OAAa,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,aAAa,CAAC,CAE3E;IAED;;;;OAIG;IACH,OAAa,MAAM,CAAC,IAAI,EAAE,MAAM,iBAE/B;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,oBAEzB;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,iBAGjF;CACF;AAED;;;GAGG;AACH,wBAAgB,WAAW,yBAE1B"}
@@ -0,0 +1,104 @@
1
+ import { UuidModel } from "@webda/models";
2
+ /**
3
+ * Specific type for registry
4
+ */
5
+ export class RegistryEntry extends UuidModel {
6
+ /** Create a new RegistryEntry
7
+ * @param data - initial data
8
+ */
9
+ constructor(data) {
10
+ super(data);
11
+ Object.assign(this, data);
12
+ }
13
+ /**
14
+ * Registry entries are not serializable to DTO
15
+ * @returns the result
16
+ */
17
+ toDTO() {
18
+ return undefined;
19
+ }
20
+ /**
21
+ * No-op DTO deserialization for registry entries
22
+ * @returns this for chaining
23
+ */
24
+ fromDTO() {
25
+ return this;
26
+ }
27
+ /**
28
+ * Remove an attribute from the registry
29
+ * @param uuid - the unique identifier
30
+ * @param attribute - the attribute name
31
+ * @returns the result
32
+ */
33
+ static async removeAttribute(uuid, attribute) {
34
+ // @ts-ignore
35
+ return await RegistryEntry.ref(uuid).removeAttribute(attribute);
36
+ }
37
+ /**
38
+ * Set an attribute from the registry
39
+ * @param uuid - the unique identifier
40
+ * @param attribute - the attribute name
41
+ * @param value - the value to set
42
+ * @returns the result
43
+ */
44
+ static async setAttribute(uuid, attribute, value) {
45
+ // @ts-ignore
46
+ return await RegistryEntry.ref(uuid).setAttribute(attribute, value);
47
+ }
48
+ /**
49
+ * Helper for upsert
50
+ * @param uuid - the unique identifier
51
+ * @param data - the data to process
52
+ * @returns the result
53
+ */
54
+ static async get(uuid, data) {
55
+ return data
56
+ ? await RegistryEntry.ref(uuid).upsert(data)
57
+ : await RegistryEntry.ref(uuid).get();
58
+ }
59
+ /**
60
+ * Helper for upsert
61
+ * @param uuid - the unique identifier
62
+ * @param data - the data to process
63
+ * @returns the result
64
+ */
65
+ static async put(uuid, data) {
66
+ return await RegistryEntry.ref(uuid).upsert(data);
67
+ }
68
+ /**
69
+ * Delete a registry entry by UUID
70
+ * @param uuid - the unique identifier
71
+ * @returns the result
72
+ */
73
+ static async delete(uuid) {
74
+ return await RegistryEntry.ref(uuid).delete();
75
+ }
76
+ /**
77
+ * Check if a registry entry exists
78
+ * @param uuid - the unique identifier
79
+ * @returns the result
80
+ */
81
+ static exists(uuid) {
82
+ return RegistryEntry.ref(uuid).exists();
83
+ }
84
+ /**
85
+ * Perform a conditional patch
86
+ * @param uuid - the unique identifier
87
+ * @param patch - the patch to apply
88
+ * @param conditionField - the condition field name
89
+ * @param conditionValue - the condition value
90
+ * @returns the result
91
+ */
92
+ static patch(uuid, patch, conditionField, conditionValue) {
93
+ // @ts-ignore
94
+ return RegistryEntry.ref(uuid).patch(patch, conditionField, conditionValue);
95
+ }
96
+ }
97
+ /**
98
+ * Use the registry
99
+ * @returns the result
100
+ */
101
+ export function useRegistry() {
102
+ return RegistryEntry;
103
+ }
104
+ //# sourceMappingURL=registry.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.model.js","sourceRoot":"","sources":["../../src/models/registry.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmG,SAAS,EAAE,MAAM,eAAe,CAAC;AAG3I;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C;;OAEG;IACH,YAAY,IAA8B;QACxC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,SAAiB;QAC1D,aAAa;QACb,OAAO,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,CAAM,SAAS,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,SAAiB,EAAE,KAAU;QACnE,aAAa;QACb,OAAO,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,CAAM,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,CAAU,IAAY,EAAE,IAAQ;QAC9C,OAAO,IAAI;YACT,CAAC,CAAM,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAM,IAAI,CAAC;YACtD,CAAC,CAAoB,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,CAAU,IAAY,EAAE,IAAO;QAC7C,OAAY,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAM,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,OAAO,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAAY;QACxB,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,IAAY,EAAE,KAAU,EAAE,cAAsB,EAAE,cAAmB;QAChF,aAAa;QACb,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAO,cAAc,EAAE,cAAc,CAAC,CAAC;IACnF,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Model } from "@webda/models";
2
+ import type { IOperationContext } from "../contexts/icontext.js";
3
+ /** Model with role-based access control, mapping actions to required roles */
4
+ declare abstract class RoleModel extends Model {
5
+ abstract getRolesMap(): {
6
+ [key: string]: string;
7
+ };
8
+ /**
9
+ * Whether actions without an explicit role mapping are allowed
10
+ * @returns true if the condition is met
11
+ */
12
+ isPermissive(): boolean;
13
+ /**
14
+ * Get the roles for the current user, caching them in the session
15
+ * @param ctx - the operation context
16
+ * @returns the result
17
+ */
18
+ getRoles(ctx: IOperationContext): Promise<any>;
19
+ /**
20
+ * Check if the user has the required role for the given action
21
+ * @param context - the execution context
22
+ * @param action - the action to check
23
+ * @returns the result
24
+ */
25
+ canAct(context: IOperationContext, action: string): Promise<string | boolean>;
26
+ }
27
+ export { RoleModel };
28
+ //# sourceMappingURL=rolemodel.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rolemodel.model.d.ts","sourceRoot":"","sources":["../../src/models/rolemodel.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAIjE,8EAA8E;AAC9E,uBAAe,SAAU,SAAQ,KAAK;IACpC,QAAQ,CAAC,WAAW,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAElD;;;OAGG;IACH,YAAY,IAAI,OAAO,CAEtB;IAED;;;;OAIG;IACG,QAAQ,CAAC,GAAG,EAAE,iBAAiB,gBAYpC;IAED;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,CAalF;CACF;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { Model } from "@webda/models";
2
+ import * as WebdaError from "../errors/errors.js";
3
+ import { useContext } from "../contexts/execution.js";
4
+ /** Model with role-based access control, mapping actions to required roles */
5
+ class RoleModel extends Model {
6
+ /**
7
+ * Whether actions without an explicit role mapping are allowed
8
+ * @returns true if the condition is met
9
+ */
10
+ isPermissive() {
11
+ return false;
12
+ }
13
+ /**
14
+ * Get the roles for the current user, caching them in the session
15
+ * @param ctx - the operation context
16
+ * @returns the result
17
+ */
18
+ async getRoles(ctx) {
19
+ if (!ctx.getCurrentUserId()) {
20
+ throw new WebdaError.Forbidden("No user");
21
+ }
22
+ // If roles are cached in session
23
+ if (ctx.getSession().roles) {
24
+ return ctx.getSession().roles;
25
+ }
26
+ const user = await ctx.getCurrentUser();
27
+ // Cache roles in session
28
+ ctx.getSession().roles = user.getRoles();
29
+ return ctx.getSession().roles;
30
+ }
31
+ /**
32
+ * Check if the user has the required role for the given action
33
+ * @param context - the execution context
34
+ * @param action - the action to check
35
+ * @returns the result
36
+ */
37
+ async canAct(context, action) {
38
+ // If this action doesn't require role
39
+ if (!this.getRolesMap()[action]) {
40
+ if (this.isPermissive()) {
41
+ return true;
42
+ }
43
+ return "No permission for this action defined";
44
+ }
45
+ const roles = await this.getRoles(useContext());
46
+ if (roles.indexOf(this.getRolesMap()[action]) >= 0) {
47
+ return true;
48
+ }
49
+ return "No permission";
50
+ }
51
+ }
52
+ export { RoleModel };
53
+ //# sourceMappingURL=rolemodel.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rolemodel.model.js","sourceRoot":"","sources":["../../src/models/rolemodel.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,8EAA8E;AAC9E,MAAe,SAAU,SAAQ,KAAK;IAGpC;;;OAGG;IACH,YAAY;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAsB;QACnC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,iCAAiC;QACjC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;QAChC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;QACxC,yBAAyB;QACzB,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,OAA0B,EAAE,MAAc;QACrD,sCAAsC;QACtC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,uCAAuC,CAAC;QACjD,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;CACF;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { Ident } from "./ident.model.js";
2
+ import { ModelRelated, Settable } from "@webda/models";
3
+ import { User } from "./user.model.js";
4
+ /**
5
+ * Simple user offers groups and roles management
6
+ *
7
+ * Groups and roles are defined just as string, no
8
+ * models
9
+ */
10
+ export declare class SimpleUser extends User {
11
+ /** Create a new SimpleUser
12
+ * @param data - initial data
13
+ */
14
+ constructor(data?: Settable<SimpleUser>);
15
+ /**
16
+ * Groups for a user
17
+ */
18
+ _groups: string[];
19
+ /**
20
+ * Roles of the user
21
+ */
22
+ _roles: string[];
23
+ /**
24
+ * Normal ident
25
+ */
26
+ readonly _idents: ModelRelated<Ident, User, "_user">;
27
+ /**
28
+ * Return idents
29
+ * @returns the result
30
+ */
31
+ getIdents(): any;
32
+ /**
33
+ * Add a group for the user
34
+ * @param group - the group name
35
+ * @returns the result
36
+ */
37
+ addGroup(group: string): void;
38
+ /**
39
+ *
40
+ * @param group - the group name
41
+ * @returns true if the condition is met
42
+ */
43
+ inGroup(group: string): boolean;
44
+ /**
45
+ * Remove a group from this user
46
+ * @param group - the group name
47
+ */
48
+ removeGroup(group: string): void;
49
+ /**
50
+ * Get all groups this user belongs to
51
+ * @returns the list of results
52
+ */
53
+ getGroups(): string[];
54
+ /**
55
+ * Get all roles assigned to this user
56
+ * @returns the list of results
57
+ */
58
+ getRoles(): string[];
59
+ /**
60
+ * Add a role to this user if not already present
61
+ * @param role - the role
62
+ */
63
+ addRole(role: string): void;
64
+ /**
65
+ * Check if this user has the given role
66
+ * @param role - the role
67
+ * @returns the result
68
+ */
69
+ hasRole(role: string): boolean;
70
+ /**
71
+ * Remove a role from this user
72
+ * @param role - the role
73
+ */
74
+ removeRole(role: string): void;
75
+ /** Generated by @webda/content-mapper: include values held in WEBDA_STORAGE. */
76
+ toJSON(): any;
77
+ }
78
+ //# sourceMappingURL=simpleuser.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simpleuser.model.d.ts","sourceRoot":"","sources":["../../src/models/simpleuser.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAW,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,IAAI;IAClC;;OAEG;IACH,YAAY,IAAI,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,EAEtC;IACD;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAM;IACvB;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAM;IACtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAgF;IACpI;;;OAGG;IACH,SAAS,IACgB,GAAG,CAC3B;IAED;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,QAKrB;IAED;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAK9B;IAED;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,QAMxB;IAED;;;OAGG;IACH,SAAS,IAAI,MAAM,EAAE,CAEpB;IAED;;;OAGG;IACH,QAAQ,IAAI,MAAM,EAAE,CAEnB;IAED;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,QAKnB;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,WAEnB;IAED;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,QAMtB;IAED,gFAAgF;IAChF,MAAM,IAAI,GAAG,CAOZ;CACF"}
@@ -0,0 +1,123 @@
1
+ import { WEBDA_STORAGE } from "@webda/models";
2
+ import { Ident } from "./ident.model.js";
3
+ import { ModelRelated } from "@webda/models";
4
+ import { User } from "./user.model.js";
5
+ /**
6
+ * Simple user offers groups and roles management
7
+ *
8
+ * Groups and roles are defined just as string, no
9
+ * models
10
+ */
11
+ export class SimpleUser extends User {
12
+ /** Create a new SimpleUser
13
+ * @param data - initial data
14
+ */
15
+ constructor(data) {
16
+ super(data);
17
+ }
18
+ /**
19
+ * Groups for a user
20
+ */
21
+ _groups = [];
22
+ /**
23
+ * Roles of the user
24
+ */
25
+ _roles = [];
26
+ /**
27
+ * Normal ident
28
+ */
29
+ _idents = new ModelRelated(Ident, this, "_user");
30
+ /**
31
+ * Return idents
32
+ * @returns the result
33
+ */
34
+ getIdents() {
35
+ return this._idents;
36
+ }
37
+ /**
38
+ * Add a group for the user
39
+ * @param group - the group name
40
+ * @returns the result
41
+ */
42
+ addGroup(group) {
43
+ if (this.inGroup(group)) {
44
+ return;
45
+ }
46
+ this._groups.push(group);
47
+ }
48
+ /**
49
+ *
50
+ * @param group - the group name
51
+ * @returns true if the condition is met
52
+ */
53
+ inGroup(group) {
54
+ if (group === "all" || group === this.uuid) {
55
+ return true;
56
+ }
57
+ return this._groups.includes(group);
58
+ }
59
+ /**
60
+ * Remove a group from this user
61
+ * @param group - the group name
62
+ */
63
+ removeGroup(group) {
64
+ const ind = this._groups.indexOf(group);
65
+ if (ind < 0) {
66
+ return;
67
+ }
68
+ this._groups.splice(ind, 1);
69
+ }
70
+ /**
71
+ * Get all groups this user belongs to
72
+ * @returns the list of results
73
+ */
74
+ getGroups() {
75
+ return this._groups;
76
+ }
77
+ /**
78
+ * Get all roles assigned to this user
79
+ * @returns the list of results
80
+ */
81
+ getRoles() {
82
+ return this._roles;
83
+ }
84
+ /**
85
+ * Add a role to this user if not already present
86
+ * @param role - the role
87
+ */
88
+ addRole(role) {
89
+ if (this.hasRole(role)) {
90
+ return;
91
+ }
92
+ this._roles.push(role);
93
+ }
94
+ /**
95
+ * Check if this user has the given role
96
+ * @param role - the role
97
+ * @returns the result
98
+ */
99
+ hasRole(role) {
100
+ return this._roles.indexOf(role) >= 0;
101
+ }
102
+ /**
103
+ * Remove a role from this user
104
+ * @param role - the role
105
+ */
106
+ removeRole(role) {
107
+ const ind = this._roles.indexOf(role);
108
+ if (ind < 0) {
109
+ return;
110
+ }
111
+ this._roles.splice(ind, 1);
112
+ }
113
+ /** Generated by @webda/content-mapper: include values held in WEBDA_STORAGE. */
114
+ toJSON() {
115
+ const result = super.toJSON ? super.toJSON() : {};
116
+ for (const key of Object.keys(this)) {
117
+ result[key] = this[key];
118
+ }
119
+ Object.assign(result, this[WEBDA_STORAGE]);
120
+ return result;
121
+ }
122
+ }
123
+ //# sourceMappingURL=simpleuser.model.js.map