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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (756) hide show
  1. package/README.md +252 -0
  2. package/lib/application/application.d.ts +437 -0
  3. package/lib/application/application.d.ts.map +1 -0
  4. package/lib/application/application.js +792 -0
  5. package/lib/application/application.js.map +1 -0
  6. package/lib/application/hooks.d.ts +34 -0
  7. package/lib/application/hooks.d.ts.map +1 -0
  8. package/lib/application/hooks.js +57 -0
  9. package/lib/application/hooks.js.map +1 -0
  10. package/lib/application/iapplication.d.ts +43 -0
  11. package/lib/application/iapplication.d.ts.map +1 -0
  12. package/lib/application/iapplication.js +2 -0
  13. package/lib/application/iapplication.js.map +1 -0
  14. package/lib/application/iconfiguration.d.ts +176 -0
  15. package/lib/application/iconfiguration.d.ts.map +1 -0
  16. package/lib/application/iconfiguration.js +8 -0
  17. package/lib/application/iconfiguration.js.map +1 -0
  18. package/lib/application/runner.d.ts +8 -0
  19. package/lib/application/runner.d.ts.map +1 -0
  20. package/lib/application/runner.js +26 -0
  21. package/lib/application/runner.js.map +1 -0
  22. package/lib/{unpackedapplication.d.ts → application/unpackedapplication.d.ts} +43 -23
  23. package/lib/application/unpackedapplication.d.ts.map +1 -0
  24. package/lib/application/unpackedapplication.js +492 -0
  25. package/lib/application/unpackedapplication.js.map +1 -0
  26. package/lib/bin/cli-phase.d.ts +28 -0
  27. package/lib/bin/cli-phase.d.ts.map +1 -0
  28. package/lib/bin/cli-phase.js +44 -0
  29. package/lib/bin/cli-phase.js.map +1 -0
  30. package/lib/bin/cli.d.ts +161 -0
  31. package/lib/bin/cli.d.ts.map +1 -0
  32. package/lib/bin/cli.js +828 -0
  33. package/lib/bin/cli.js.map +1 -0
  34. package/lib/bin/launcher.d.ts +3 -0
  35. package/lib/bin/launcher.d.ts.map +1 -0
  36. package/lib/bin/launcher.js +50 -0
  37. package/lib/bin/launcher.js.map +1 -0
  38. package/lib/cache/cache.d.ts +33 -0
  39. package/lib/cache/cache.d.ts.map +1 -0
  40. package/lib/cache/cache.js +8 -0
  41. package/lib/cache/cache.js.map +1 -0
  42. package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -58
  43. package/lib/configurations/configuration.service.d.ts.map +1 -0
  44. package/lib/configurations/configuration.service.js +248 -0
  45. package/lib/configurations/configuration.service.js.map +1 -0
  46. package/lib/configurations/fileconfiguration.service.d.ts +30 -0
  47. package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
  48. package/lib/configurations/fileconfiguration.service.js +65 -0
  49. package/lib/configurations/fileconfiguration.service.js.map +1 -0
  50. package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
  51. package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
  52. package/lib/configurations/kubernetesconfiguration.service.js +83 -0
  53. package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
  54. package/lib/contexts/execution.d.ts +33 -0
  55. package/lib/contexts/execution.d.ts.map +1 -0
  56. package/lib/contexts/execution.js +73 -0
  57. package/lib/contexts/execution.js.map +1 -0
  58. package/lib/contexts/globalcontext.d.ts +29 -0
  59. package/lib/contexts/globalcontext.d.ts.map +1 -0
  60. package/lib/contexts/globalcontext.js +38 -0
  61. package/lib/contexts/globalcontext.js.map +1 -0
  62. package/lib/{utils → contexts}/httpcontext.d.ts +44 -19
  63. package/lib/contexts/httpcontext.d.ts.map +1 -0
  64. package/lib/{utils → contexts}/httpcontext.js +95 -27
  65. package/lib/contexts/httpcontext.js.map +1 -0
  66. package/lib/contexts/icontext.d.ts +236 -0
  67. package/lib/contexts/icontext.d.ts.map +1 -0
  68. package/lib/contexts/icontext.js +230 -0
  69. package/lib/contexts/icontext.js.map +1 -0
  70. package/lib/contexts/operationcontext.d.ts +179 -0
  71. package/lib/contexts/operationcontext.d.ts.map +1 -0
  72. package/lib/contexts/operationcontext.js +358 -0
  73. package/lib/contexts/operationcontext.js.map +1 -0
  74. package/lib/contexts/simplecontext.d.ts +31 -0
  75. package/lib/contexts/simplecontext.d.ts.map +1 -0
  76. package/lib/contexts/simplecontext.js +45 -0
  77. package/lib/contexts/simplecontext.js.map +1 -0
  78. package/lib/contexts/webcontext.d.ts +218 -0
  79. package/lib/contexts/webcontext.d.ts.map +1 -0
  80. package/lib/contexts/webcontext.js +389 -0
  81. package/lib/contexts/webcontext.js.map +1 -0
  82. package/lib/core/authorizer.d.ts +23 -0
  83. package/lib/core/authorizer.d.ts.map +1 -0
  84. package/lib/core/authorizer.js +17 -0
  85. package/lib/core/authorizer.js.map +1 -0
  86. package/lib/core/core.d.ts +225 -0
  87. package/lib/core/core.d.ts.map +1 -0
  88. package/lib/core/core.js +576 -0
  89. package/lib/core/core.js.map +1 -0
  90. package/lib/core/hooks.d.ts +72 -0
  91. package/lib/core/hooks.d.ts.map +1 -0
  92. package/lib/core/hooks.js +73 -0
  93. package/lib/core/hooks.js.map +1 -0
  94. package/lib/core/icore.d.ts +249 -0
  95. package/lib/core/icore.d.ts.map +1 -0
  96. package/lib/core/icore.js +15 -0
  97. package/lib/core/icore.js.map +1 -0
  98. package/lib/core/instancestorage.d.ts +61 -0
  99. package/lib/core/instancestorage.d.ts.map +1 -0
  100. package/lib/core/instancestorage.js +75 -0
  101. package/lib/core/instancestorage.js.map +1 -0
  102. package/lib/core/operations.d.ts +181 -0
  103. package/lib/core/operations.d.ts.map +1 -0
  104. package/lib/core/operations.js +559 -0
  105. package/lib/core/operations.js.map +1 -0
  106. package/lib/errors/errors.d.ts +126 -0
  107. package/lib/errors/errors.d.ts.map +1 -0
  108. package/lib/errors/errors.js +165 -0
  109. package/lib/errors/errors.js.map +1 -0
  110. package/lib/events/asynceventemitter.d.ts +159 -0
  111. package/lib/events/asynceventemitter.d.ts.map +1 -0
  112. package/lib/events/asynceventemitter.js +152 -0
  113. package/lib/events/asynceventemitter.js.map +1 -0
  114. package/lib/events/events.d.ts +112 -0
  115. package/lib/events/events.d.ts.map +1 -0
  116. package/lib/events/events.js +45 -0
  117. package/lib/events/events.js.map +1 -0
  118. package/lib/index.d.ts +82 -53
  119. package/lib/index.d.ts.map +1 -1
  120. package/lib/index.js +81 -62
  121. package/lib/index.js.map +1 -1
  122. package/lib/loggers/console.service.d.ts +24 -0
  123. package/lib/loggers/console.service.d.ts.map +1 -0
  124. package/lib/loggers/console.service.js +30 -0
  125. package/lib/loggers/console.service.js.map +1 -0
  126. package/lib/loggers/file.service.d.ts +25 -0
  127. package/lib/loggers/file.service.d.ts.map +1 -0
  128. package/lib/loggers/file.service.js +33 -0
  129. package/lib/loggers/file.service.js.map +1 -0
  130. package/lib/loggers/hooks.d.ts +20 -0
  131. package/lib/loggers/hooks.d.ts.map +1 -0
  132. package/lib/loggers/hooks.js +40 -0
  133. package/lib/loggers/hooks.js.map +1 -0
  134. package/lib/loggers/ilogger.d.ts +76 -0
  135. package/lib/loggers/ilogger.d.ts.map +1 -0
  136. package/lib/loggers/ilogger.js +108 -0
  137. package/lib/loggers/ilogger.js.map +1 -0
  138. package/lib/loggers/logger.d.ts +13 -0
  139. package/lib/loggers/logger.d.ts.map +1 -0
  140. package/lib/loggers/logger.js +18 -0
  141. package/lib/loggers/logger.js.map +1 -0
  142. package/lib/loggers/memory.service.d.ts +18 -0
  143. package/lib/loggers/memory.service.d.ts.map +1 -0
  144. package/lib/loggers/memory.service.js +21 -0
  145. package/lib/loggers/memory.service.js.map +1 -0
  146. package/lib/loggers/params.d.ts +47 -0
  147. package/lib/loggers/params.d.ts.map +1 -0
  148. package/lib/loggers/params.js +56 -0
  149. package/lib/loggers/params.js.map +1 -0
  150. package/lib/metrics/metrics.d.ts +25 -0
  151. package/lib/metrics/metrics.d.ts.map +1 -0
  152. package/lib/metrics/metrics.js +51 -0
  153. package/lib/metrics/metrics.js.map +1 -0
  154. package/lib/models/aclmodel.d.ts +20 -76
  155. package/lib/models/aclmodel.d.ts.map +1 -1
  156. package/lib/models/aclmodel.js +27 -203
  157. package/lib/models/aclmodel.js.map +1 -1
  158. package/lib/models/coremodel.model.d.ts +5 -0
  159. package/lib/models/coremodel.model.d.ts.map +1 -0
  160. package/lib/models/coremodel.model.js +5 -0
  161. package/lib/models/coremodel.model.js.map +1 -0
  162. package/lib/models/decorator.d.ts +63 -0
  163. package/lib/models/decorator.d.ts.map +1 -0
  164. package/lib/models/decorator.js +63 -0
  165. package/lib/models/decorator.js.map +1 -0
  166. package/lib/models/deployment.d.ts +1 -1
  167. package/lib/models/deployment.d.ts.map +1 -1
  168. package/lib/models/ident.model.d.ts +89 -0
  169. package/lib/models/ident.model.d.ts.map +1 -0
  170. package/lib/models/ident.model.js +115 -0
  171. package/lib/models/ident.model.js.map +1 -0
  172. package/lib/models/ownermodel.model.d.ts +68 -0
  173. package/lib/models/ownermodel.model.d.ts.map +1 -0
  174. package/lib/models/ownermodel.model.js +112 -0
  175. package/lib/models/ownermodel.model.js.map +1 -0
  176. package/lib/models/registry.model.d.ts +76 -0
  177. package/lib/models/registry.model.d.ts.map +1 -0
  178. package/lib/models/registry.model.js +104 -0
  179. package/lib/models/registry.model.js.map +1 -0
  180. package/lib/models/rolemodel.model.d.ts +28 -0
  181. package/lib/models/rolemodel.model.d.ts.map +1 -0
  182. package/lib/models/{rolemodel.js → rolemodel.model.js} +23 -5
  183. package/lib/models/rolemodel.model.js.map +1 -0
  184. package/lib/models/simpleuser.model.d.ts +78 -0
  185. package/lib/models/simpleuser.model.d.ts.map +1 -0
  186. package/lib/models/simpleuser.model.js +123 -0
  187. package/lib/models/simpleuser.model.js.map +1 -0
  188. package/lib/models/types.d.ts +113 -0
  189. package/lib/models/types.d.ts.map +1 -0
  190. package/lib/models/types.js +2 -0
  191. package/lib/models/types.js.map +1 -0
  192. package/lib/models/user.model.d.ts +103 -0
  193. package/lib/models/user.model.d.ts.map +1 -0
  194. package/lib/models/user.model.js +125 -0
  195. package/lib/models/user.model.js.map +1 -0
  196. package/lib/queues/{memoryqueue.d.ts → memoryqueue.service.d.ts} +26 -13
  197. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  198. package/lib/queues/{memoryqueue.js → memoryqueue.service.js} +55 -31
  199. package/lib/queues/memoryqueue.service.js.map +1 -0
  200. package/lib/queues/pubsubservice.d.ts +8 -6
  201. package/lib/queues/pubsubservice.d.ts.map +1 -1
  202. package/lib/queues/pubsubservice.js +5 -4
  203. package/lib/queues/pubsubservice.js.map +1 -1
  204. package/lib/queues/queueservice.d.ts +9 -11
  205. package/lib/queues/queueservice.d.ts.map +1 -1
  206. package/lib/queues/queueservice.js +41 -13
  207. package/lib/queues/queueservice.js.map +1 -1
  208. package/lib/rest/hooks.d.ts +8 -0
  209. package/lib/rest/hooks.d.ts.map +1 -0
  210. package/lib/rest/hooks.js +10 -0
  211. package/lib/rest/hooks.js.map +1 -0
  212. package/lib/rest/irest.d.ts +212 -0
  213. package/lib/rest/irest.d.ts.map +1 -0
  214. package/lib/rest/irest.js +39 -0
  215. package/lib/rest/irest.js.map +1 -0
  216. package/lib/rest/originfilter.d.ts +38 -0
  217. package/lib/rest/originfilter.d.ts.map +1 -0
  218. package/lib/rest/originfilter.js +61 -0
  219. package/lib/rest/originfilter.js.map +1 -0
  220. package/lib/rest/restoperationstransport.service.d.ts +193 -0
  221. package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
  222. package/lib/rest/restoperationstransport.service.js +780 -0
  223. package/lib/rest/restoperationstransport.service.js.map +1 -0
  224. package/lib/rest/router.service.d.ts +244 -0
  225. package/lib/rest/router.service.d.ts.map +1 -0
  226. package/lib/rest/router.service.js +843 -0
  227. package/lib/rest/router.service.js.map +1 -0
  228. package/lib/schemas/hooks.d.ts +48 -0
  229. package/lib/schemas/hooks.d.ts.map +1 -0
  230. package/lib/schemas/hooks.js +152 -0
  231. package/lib/schemas/hooks.js.map +1 -0
  232. package/lib/services/audit.model.d.ts +208 -0
  233. package/lib/services/audit.model.d.ts.map +1 -0
  234. package/lib/services/audit.model.js +431 -0
  235. package/lib/services/audit.model.js.map +1 -0
  236. package/lib/services/{authentication.d.ts → authentication.service.d.ts} +140 -59
  237. package/lib/services/authentication.service.d.ts.map +1 -0
  238. package/lib/services/authentication.service.js +932 -0
  239. package/lib/services/authentication.service.js.map +1 -0
  240. package/lib/services/binary.service.d.ts +808 -0
  241. package/lib/services/binary.service.d.ts.map +1 -0
  242. package/lib/services/binary.service.js +1365 -0
  243. package/lib/services/binary.service.js.map +1 -0
  244. package/lib/services/cloudbinary.d.ts +17 -12
  245. package/lib/services/cloudbinary.d.ts.map +1 -1
  246. package/lib/services/cloudbinary.js +23 -17
  247. package/lib/services/cloudbinary.js.map +1 -1
  248. package/lib/services/command.d.ts +118 -0
  249. package/lib/services/command.d.ts.map +1 -0
  250. package/lib/services/command.js +97 -0
  251. package/lib/services/command.js.map +1 -0
  252. package/lib/services/cron.service.d.ts +142 -0
  253. package/lib/services/cron.service.d.ts.map +1 -0
  254. package/lib/services/cron.service.js +291 -0
  255. package/lib/services/cron.service.js.map +1 -0
  256. package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +75 -141
  257. package/lib/services/cryptoservice.service.d.ts.map +1 -0
  258. package/lib/services/cryptoservice.service.js +527 -0
  259. package/lib/services/cryptoservice.service.js.map +1 -0
  260. package/lib/services/debugmailer.service.d.ts +49 -0
  261. package/lib/services/debugmailer.service.d.ts.map +1 -0
  262. package/lib/services/{debugmailer.js → debugmailer.service.js} +25 -10
  263. package/lib/services/debugmailer.service.js.map +1 -0
  264. package/lib/services/domainservice.service.d.ts +203 -0
  265. package/lib/services/domainservice.service.d.ts.map +1 -0
  266. package/lib/services/domainservice.service.js +600 -0
  267. package/lib/services/domainservice.service.js.map +1 -0
  268. package/lib/services/httpserver.service.d.ts +248 -0
  269. package/lib/services/httpserver.service.d.ts.map +1 -0
  270. package/lib/services/httpserver.service.js +673 -0
  271. package/lib/services/httpserver.service.js.map +1 -0
  272. package/lib/services/iauthentication.d.ts +9 -0
  273. package/lib/services/iauthentication.d.ts.map +1 -0
  274. package/lib/services/iauthentication.js +2 -0
  275. package/lib/services/iauthentication.js.map +1 -0
  276. package/lib/services/icryptoservice.d.ts +127 -0
  277. package/lib/services/icryptoservice.d.ts.map +1 -0
  278. package/lib/services/icryptoservice.js +68 -0
  279. package/lib/services/icryptoservice.js.map +1 -0
  280. package/lib/services/imailer.d.ts +17 -0
  281. package/lib/services/imailer.d.ts.map +1 -0
  282. package/lib/services/imailer.js +2 -0
  283. package/lib/services/imailer.js.map +1 -0
  284. package/lib/services/iservice.d.ts +104 -0
  285. package/lib/services/iservice.d.ts.map +1 -0
  286. package/lib/services/iservice.js +63 -0
  287. package/lib/services/iservice.js.map +1 -0
  288. package/lib/services/mailer.service.d.ts +220 -0
  289. package/lib/services/mailer.service.d.ts.map +1 -0
  290. package/lib/services/mailer.service.js +251 -0
  291. package/lib/services/mailer.service.js.map +1 -0
  292. package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -11
  293. package/lib/services/notificationservice.service.d.ts.map +1 -0
  294. package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
  295. package/lib/services/notificationservice.service.js.map +1 -0
  296. package/lib/services/oauth.d.ts +52 -28
  297. package/lib/services/oauth.d.ts.map +1 -1
  298. package/lib/services/oauth.js +365 -254
  299. package/lib/services/oauth.js.map +1 -1
  300. package/lib/services/operationstransport.d.ts +65 -0
  301. package/lib/services/operationstransport.d.ts.map +1 -0
  302. package/lib/services/operationstransport.js +103 -0
  303. package/lib/services/operationstransport.js.map +1 -0
  304. package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -12
  305. package/lib/services/prometheus.service.d.ts.map +1 -0
  306. package/lib/services/prometheus.service.js +203 -0
  307. package/lib/services/prometheus.service.js.map +1 -0
  308. package/lib/services/{resource.d.ts → resource.service.d.ts} +34 -15
  309. package/lib/services/resource.service.d.ts.map +1 -0
  310. package/lib/services/resource.service.js +301 -0
  311. package/lib/services/resource.service.js.map +1 -0
  312. package/lib/services/service.d.ts +87 -188
  313. package/lib/services/service.d.ts.map +1 -1
  314. package/lib/services/service.js +407 -422
  315. package/lib/services/service.js.map +1 -1
  316. package/lib/services/servicecommands.d.ts +99 -0
  317. package/lib/services/servicecommands.d.ts.map +1 -0
  318. package/lib/services/servicecommands.js +165 -0
  319. package/lib/services/servicecommands.js.map +1 -0
  320. package/lib/services/serviceparameters.d.ts +33 -0
  321. package/lib/services/serviceparameters.d.ts.map +1 -0
  322. package/lib/services/serviceparameters.js +79 -0
  323. package/lib/services/serviceparameters.js.map +1 -0
  324. package/lib/{utils → session}/cookie.d.ts +32 -19
  325. package/lib/session/cookie.d.ts.map +1 -0
  326. package/lib/{utils → session}/cookie.js +76 -23
  327. package/lib/session/cookie.js.map +1 -0
  328. package/lib/session/manager.model.d.ts +71 -0
  329. package/lib/session/manager.model.d.ts.map +1 -0
  330. package/lib/session/manager.model.js +155 -0
  331. package/lib/session/manager.model.js.map +1 -0
  332. package/lib/session/session.d.ts +57 -0
  333. package/lib/session/session.d.ts.map +1 -0
  334. package/lib/session/session.js +126 -0
  335. package/lib/session/session.js.map +1 -0
  336. package/lib/stores/istore.d.ts +99 -0
  337. package/lib/stores/istore.d.ts.map +1 -0
  338. package/lib/stores/istore.js +26 -0
  339. package/lib/stores/istore.js.map +1 -0
  340. package/lib/stores/memory.service.d.ts +114 -0
  341. package/lib/stores/memory.service.d.ts.map +1 -0
  342. package/lib/stores/memory.service.js +343 -0
  343. package/lib/stores/memory.service.js.map +1 -0
  344. package/lib/stores/store.d.ts +126 -626
  345. package/lib/stores/store.d.ts.map +1 -1
  346. package/lib/stores/store.js +257 -1117
  347. package/lib/stores/store.js.map +1 -1
  348. package/lib/templates/templates.d.ts +39 -0
  349. package/lib/templates/templates.d.ts.map +1 -0
  350. package/lib/templates/templates.js +92 -0
  351. package/lib/templates/templates.js.map +1 -0
  352. package/lib/test/application.d.ts +174 -0
  353. package/lib/test/application.d.ts.map +1 -0
  354. package/lib/test/application.js +288 -0
  355. package/lib/test/application.js.map +1 -0
  356. package/lib/test/asyncstorage.d.ts +16 -0
  357. package/lib/test/asyncstorage.d.ts.map +1 -0
  358. package/lib/test/asyncstorage.js +32 -0
  359. package/lib/test/asyncstorage.js.map +1 -0
  360. package/lib/test/core.d.ts +63 -0
  361. package/lib/test/core.d.ts.map +1 -0
  362. package/lib/test/core.js +190 -0
  363. package/lib/test/core.js.map +1 -0
  364. package/lib/test/index.d.ts +7 -0
  365. package/lib/test/index.d.ts.map +1 -0
  366. package/lib/test/index.js +8 -0
  367. package/lib/test/index.js.map +1 -0
  368. package/lib/test/internal.d.ts +34 -0
  369. package/lib/test/internal.d.ts.map +1 -0
  370. package/lib/test/internal.js +156 -0
  371. package/lib/test/internal.js.map +1 -0
  372. package/lib/test/objects.d.ts +318 -0
  373. package/lib/test/objects.d.ts.map +1 -0
  374. package/lib/test/objects.js +443 -0
  375. package/lib/test/objects.js.map +1 -0
  376. package/lib/utils/abstractdeployer.d.ts +4 -2
  377. package/lib/utils/abstractdeployer.d.ts.map +1 -1
  378. package/lib/utils/abstractdeployer.js +3 -0
  379. package/lib/utils/abstractdeployer.js.map +1 -1
  380. package/package.json +85 -60
  381. package/test/cachedapp/webda.config.json +1 -5
  382. package/test/config-cached.json +1 -5
  383. package/test/config.json +0 -9
  384. package/test/my-cnf.json +9 -0
  385. package/webda.module.json +3463 -2482
  386. package/lib/application.d.ts +0 -888
  387. package/lib/application.d.ts.map +0 -1
  388. package/lib/application.js +0 -768
  389. package/lib/application.js.map +0 -1
  390. package/lib/application.spec.d.ts +0 -2
  391. package/lib/application.spec.d.ts.map +0 -1
  392. package/lib/application.spec.js +0 -248
  393. package/lib/application.spec.js.map +0 -1
  394. package/lib/core.d.ts +0 -743
  395. package/lib/core.d.ts.map +0 -1
  396. package/lib/core.js +0 -1334
  397. package/lib/core.js.map +0 -1
  398. package/lib/core.spec.d.ts +0 -2
  399. package/lib/core.spec.d.ts.map +0 -1
  400. package/lib/core.spec.js +0 -790
  401. package/lib/core.spec.js.map +0 -1
  402. package/lib/errors.d.ts +0 -64
  403. package/lib/errors.d.ts.map +0 -1
  404. package/lib/errors.js +0 -97
  405. package/lib/errors.js.map +0 -1
  406. package/lib/errors.spec.d.ts +0 -2
  407. package/lib/errors.spec.d.ts.map +0 -1
  408. package/lib/errors.spec.js +0 -33
  409. package/lib/errors.spec.js.map +0 -1
  410. package/lib/models/aclmodel.spec.d.ts +0 -2
  411. package/lib/models/aclmodel.spec.d.ts.map +0 -1
  412. package/lib/models/aclmodel.spec.js +0 -187
  413. package/lib/models/aclmodel.spec.js.map +0 -1
  414. package/lib/models/coremodel.d.ts +0 -896
  415. package/lib/models/coremodel.d.ts.map +0 -1
  416. package/lib/models/coremodel.js +0 -1214
  417. package/lib/models/coremodel.js.map +0 -1
  418. package/lib/models/coremodel.spec.d.ts +0 -2
  419. package/lib/models/coremodel.spec.d.ts.map +0 -1
  420. package/lib/models/coremodel.spec.js +0 -464
  421. package/lib/models/coremodel.spec.js.map +0 -1
  422. package/lib/models/ident.d.ts +0 -68
  423. package/lib/models/ident.d.ts.map +0 -1
  424. package/lib/models/ident.js +0 -26
  425. package/lib/models/ident.js.map +0 -1
  426. package/lib/models/ident.spec.d.ts +0 -2
  427. package/lib/models/ident.spec.d.ts.map +0 -1
  428. package/lib/models/ident.spec.js +0 -24
  429. package/lib/models/ident.spec.js.map +0 -1
  430. package/lib/models/ownermodel.d.ts +0 -51
  431. package/lib/models/ownermodel.d.ts.map +0 -1
  432. package/lib/models/ownermodel.js +0 -65
  433. package/lib/models/ownermodel.js.map +0 -1
  434. package/lib/models/ownermodel.spec.d.ts +0 -2
  435. package/lib/models/ownermodel.spec.d.ts.map +0 -1
  436. package/lib/models/ownermodel.spec.js +0 -215
  437. package/lib/models/ownermodel.spec.js.map +0 -1
  438. package/lib/models/relations.d.ts +0 -182
  439. package/lib/models/relations.d.ts.map +0 -1
  440. package/lib/models/relations.js +0 -157
  441. package/lib/models/relations.js.map +0 -1
  442. package/lib/models/relations.spec.d.ts +0 -14
  443. package/lib/models/relations.spec.d.ts.map +0 -1
  444. package/lib/models/relations.spec.js +0 -217
  445. package/lib/models/relations.spec.js.map +0 -1
  446. package/lib/models/rolemodel.d.ts +0 -11
  447. package/lib/models/rolemodel.d.ts.map +0 -1
  448. package/lib/models/rolemodel.js.map +0 -1
  449. package/lib/models/rolemodel.spec.d.ts +0 -2
  450. package/lib/models/rolemodel.spec.d.ts.map +0 -1
  451. package/lib/models/rolemodel.spec.js +0 -90
  452. package/lib/models/rolemodel.spec.js.map +0 -1
  453. package/lib/models/simpleuser.d.ts +0 -47
  454. package/lib/models/simpleuser.d.ts.map +0 -1
  455. package/lib/models/simpleuser.js +0 -84
  456. package/lib/models/simpleuser.js.map +0 -1
  457. package/lib/models/test.d.ts +0 -11
  458. package/lib/models/test.d.ts.map +0 -1
  459. package/lib/models/test.js +0 -7
  460. package/lib/models/test.js.map +0 -1
  461. package/lib/models/user.d.ts +0 -67
  462. package/lib/models/user.d.ts.map +0 -1
  463. package/lib/models/user.js +0 -86
  464. package/lib/models/user.js.map +0 -1
  465. package/lib/models/user.spec.d.ts +0 -2
  466. package/lib/models/user.spec.d.ts.map +0 -1
  467. package/lib/models/user.spec.js +0 -89
  468. package/lib/models/user.spec.js.map +0 -1
  469. package/lib/queues/filequeue.d.ts +0 -59
  470. package/lib/queues/filequeue.d.ts.map +0 -1
  471. package/lib/queues/filequeue.js +0 -131
  472. package/lib/queues/filequeue.js.map +0 -1
  473. package/lib/queues/filequeue.spec.d.ts +0 -2
  474. package/lib/queues/filequeue.spec.d.ts.map +0 -1
  475. package/lib/queues/filequeue.spec.js +0 -84
  476. package/lib/queues/filequeue.spec.js.map +0 -1
  477. package/lib/queues/memoryqueue.d.ts.map +0 -1
  478. package/lib/queues/memoryqueue.js.map +0 -1
  479. package/lib/queues/memoryqueue.spec.d.ts +0 -2
  480. package/lib/queues/memoryqueue.spec.d.ts.map +0 -1
  481. package/lib/queues/memoryqueue.spec.js +0 -203
  482. package/lib/queues/memoryqueue.spec.js.map +0 -1
  483. package/lib/queues/queue.spec.d.ts +0 -6
  484. package/lib/queues/queue.spec.d.ts.map +0 -1
  485. package/lib/queues/queue.spec.js +0 -55
  486. package/lib/queues/queue.spec.js.map +0 -1
  487. package/lib/rest/restdomainservice.d.ts +0 -63
  488. package/lib/rest/restdomainservice.d.ts.map +0 -1
  489. package/lib/rest/restdomainservice.js +0 -687
  490. package/lib/rest/restdomainservice.js.map +0 -1
  491. package/lib/rest/restdomainservice.spec.d.ts +0 -2
  492. package/lib/rest/restdomainservice.spec.d.ts.map +0 -1
  493. package/lib/rest/restdomainservice.spec.js +0 -124
  494. package/lib/rest/restdomainservice.spec.js.map +0 -1
  495. package/lib/rest/router.d.ts +0 -174
  496. package/lib/rest/router.d.ts.map +0 -1
  497. package/lib/rest/router.js +0 -429
  498. package/lib/rest/router.js.map +0 -1
  499. package/lib/rest/router.spec.d.ts +0 -2
  500. package/lib/rest/router.spec.d.ts.map +0 -1
  501. package/lib/rest/router.spec.js +0 -255
  502. package/lib/rest/router.spec.js.map +0 -1
  503. package/lib/services/asyncevents.d.ts +0 -152
  504. package/lib/services/asyncevents.d.ts.map +0 -1
  505. package/lib/services/asyncevents.js +0 -217
  506. package/lib/services/asyncevents.js.map +0 -1
  507. package/lib/services/asyncevents.spec.d.ts +0 -2
  508. package/lib/services/asyncevents.spec.d.ts.map +0 -1
  509. package/lib/services/asyncevents.spec.js +0 -118
  510. package/lib/services/asyncevents.spec.js.map +0 -1
  511. package/lib/services/authentication.d.ts.map +0 -1
  512. package/lib/services/authentication.js +0 -773
  513. package/lib/services/authentication.js.map +0 -1
  514. package/lib/services/authentication.spec.d.ts +0 -2
  515. package/lib/services/authentication.spec.d.ts.map +0 -1
  516. package/lib/services/authentication.spec.js +0 -458
  517. package/lib/services/authentication.spec.js.map +0 -1
  518. package/lib/services/binary.d.ts +0 -477
  519. package/lib/services/binary.d.ts.map +0 -1
  520. package/lib/services/binary.js +0 -617
  521. package/lib/services/binary.js.map +0 -1
  522. package/lib/services/binary.spec.d.ts +0 -41
  523. package/lib/services/binary.spec.d.ts.map +0 -1
  524. package/lib/services/binary.spec.js +0 -151
  525. package/lib/services/binary.spec.js.map +0 -1
  526. package/lib/services/cloudbinary.spec.d.ts +0 -6
  527. package/lib/services/cloudbinary.spec.d.ts.map +0 -1
  528. package/lib/services/cloudbinary.spec.js +0 -66
  529. package/lib/services/cloudbinary.spec.js.map +0 -1
  530. package/lib/services/configuration.d.ts.map +0 -1
  531. package/lib/services/configuration.js +0 -193
  532. package/lib/services/configuration.js.map +0 -1
  533. package/lib/services/configuration.spec.d.ts +0 -2
  534. package/lib/services/configuration.spec.d.ts.map +0 -1
  535. package/lib/services/configuration.spec.js +0 -130
  536. package/lib/services/configuration.spec.js.map +0 -1
  537. package/lib/services/cron.d.ts +0 -74
  538. package/lib/services/cron.d.ts.map +0 -1
  539. package/lib/services/cron.js +0 -141
  540. package/lib/services/cron.js.map +0 -1
  541. package/lib/services/cron.spec.d.ts +0 -2
  542. package/lib/services/cron.spec.d.ts.map +0 -1
  543. package/lib/services/cron.spec.js +0 -76
  544. package/lib/services/cron.spec.js.map +0 -1
  545. package/lib/services/cryptoservice.d.ts.map +0 -1
  546. package/lib/services/cryptoservice.js +0 -433
  547. package/lib/services/cryptoservice.js.map +0 -1
  548. package/lib/services/cryptoservice.spec.d.ts +0 -2
  549. package/lib/services/cryptoservice.spec.d.ts.map +0 -1
  550. package/lib/services/cryptoservice.spec.js +0 -177
  551. package/lib/services/cryptoservice.spec.js.map +0 -1
  552. package/lib/services/debugmailer.d.ts +0 -36
  553. package/lib/services/debugmailer.d.ts.map +0 -1
  554. package/lib/services/debugmailer.js.map +0 -1
  555. package/lib/services/debugmailer.spec.d.ts +0 -2
  556. package/lib/services/debugmailer.spec.d.ts.map +0 -1
  557. package/lib/services/debugmailer.spec.js +0 -32
  558. package/lib/services/debugmailer.spec.js.map +0 -1
  559. package/lib/services/domainservice.d.ts +0 -272
  560. package/lib/services/domainservice.d.ts.map +0 -1
  561. package/lib/services/domainservice.js +0 -651
  562. package/lib/services/domainservice.js.map +0 -1
  563. package/lib/services/domainservice.spec.d.ts +0 -2
  564. package/lib/services/domainservice.spec.d.ts.map +0 -1
  565. package/lib/services/domainservice.spec.js +0 -592
  566. package/lib/services/domainservice.spec.js.map +0 -1
  567. package/lib/services/filebinary.d.ts +0 -136
  568. package/lib/services/filebinary.d.ts.map +0 -1
  569. package/lib/services/filebinary.js +0 -373
  570. package/lib/services/filebinary.js.map +0 -1
  571. package/lib/services/filebinary.spec.d.ts +0 -25
  572. package/lib/services/filebinary.spec.d.ts.map +0 -1
  573. package/lib/services/filebinary.spec.js +0 -428
  574. package/lib/services/filebinary.spec.js.map +0 -1
  575. package/lib/services/fileconfiguration.d.ts +0 -23
  576. package/lib/services/fileconfiguration.d.ts.map +0 -1
  577. package/lib/services/fileconfiguration.js +0 -48
  578. package/lib/services/fileconfiguration.js.map +0 -1
  579. package/lib/services/fileconfiguration.spec.d.ts +0 -2
  580. package/lib/services/fileconfiguration.spec.d.ts.map +0 -1
  581. package/lib/services/fileconfiguration.spec.js +0 -215
  582. package/lib/services/fileconfiguration.spec.js.map +0 -1
  583. package/lib/services/invitationservice.d.ts +0 -223
  584. package/lib/services/invitationservice.d.ts.map +0 -1
  585. package/lib/services/invitationservice.js +0 -529
  586. package/lib/services/invitationservice.js.map +0 -1
  587. package/lib/services/invitationservice.spec.d.ts +0 -2
  588. package/lib/services/invitationservice.spec.d.ts.map +0 -1
  589. package/lib/services/invitationservice.spec.js +0 -567
  590. package/lib/services/invitationservice.spec.js.map +0 -1
  591. package/lib/services/kubernetesconfiguration.d.ts +0 -27
  592. package/lib/services/kubernetesconfiguration.d.ts.map +0 -1
  593. package/lib/services/kubernetesconfiguration.js +0 -52
  594. package/lib/services/kubernetesconfiguration.js.map +0 -1
  595. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -2
  596. package/lib/services/kubernetesconfiguration.spec.d.ts.map +0 -1
  597. package/lib/services/kubernetesconfiguration.spec.js +0 -206
  598. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  599. package/lib/services/mailer.d.ts +0 -166
  600. package/lib/services/mailer.d.ts.map +0 -1
  601. package/lib/services/mailer.js +0 -176
  602. package/lib/services/mailer.js.map +0 -1
  603. package/lib/services/mailer.spec.d.ts +0 -2
  604. package/lib/services/mailer.spec.d.ts.map +0 -1
  605. package/lib/services/mailer.spec.js +0 -158
  606. package/lib/services/mailer.spec.js.map +0 -1
  607. package/lib/services/notificationservice.d.ts.map +0 -1
  608. package/lib/services/notificationservice.js.map +0 -1
  609. package/lib/services/notificationservice.spec.d.ts +0 -2
  610. package/lib/services/notificationservice.spec.d.ts.map +0 -1
  611. package/lib/services/notificationservice.spec.js +0 -83
  612. package/lib/services/notificationservice.spec.js.map +0 -1
  613. package/lib/services/oauth.spec.d.ts +0 -2
  614. package/lib/services/oauth.spec.d.ts.map +0 -1
  615. package/lib/services/oauth.spec.js +0 -208
  616. package/lib/services/oauth.spec.js.map +0 -1
  617. package/lib/services/prometheus.d.ts.map +0 -1
  618. package/lib/services/prometheus.js +0 -160
  619. package/lib/services/prometheus.js.map +0 -1
  620. package/lib/services/prometheus.spec.d.ts +0 -2
  621. package/lib/services/prometheus.spec.d.ts.map +0 -1
  622. package/lib/services/prometheus.spec.js +0 -76
  623. package/lib/services/prometheus.spec.js.map +0 -1
  624. package/lib/services/resource.d.ts.map +0 -1
  625. package/lib/services/resource.js +0 -170
  626. package/lib/services/resource.js.map +0 -1
  627. package/lib/services/resource.spec.d.ts +0 -2
  628. package/lib/services/resource.spec.d.ts.map +0 -1
  629. package/lib/services/resource.spec.js +0 -140
  630. package/lib/services/resource.spec.js.map +0 -1
  631. package/lib/services/service.spec.d.ts +0 -2
  632. package/lib/services/service.spec.d.ts.map +0 -1
  633. package/lib/services/service.spec.js +0 -286
  634. package/lib/services/service.spec.js.map +0 -1
  635. package/lib/stores/aggregator.d.ts +0 -48
  636. package/lib/stores/aggregator.d.ts.map +0 -1
  637. package/lib/stores/aggregator.js +0 -80
  638. package/lib/stores/aggregator.js.map +0 -1
  639. package/lib/stores/file.d.ts +0 -108
  640. package/lib/stores/file.d.ts.map +0 -1
  641. package/lib/stores/file.js +0 -188
  642. package/lib/stores/file.js.map +0 -1
  643. package/lib/stores/file.spec.d.ts +0 -13
  644. package/lib/stores/file.spec.d.ts.map +0 -1
  645. package/lib/stores/file.spec.js +0 -138
  646. package/lib/stores/file.spec.js.map +0 -1
  647. package/lib/stores/mapper.d.ts +0 -150
  648. package/lib/stores/mapper.d.ts.map +0 -1
  649. package/lib/stores/mapper.js +0 -293
  650. package/lib/stores/mapper.js.map +0 -1
  651. package/lib/stores/mapper.spec.d.ts +0 -2
  652. package/lib/stores/mapper.spec.d.ts.map +0 -1
  653. package/lib/stores/mapper.spec.js +0 -167
  654. package/lib/stores/mapper.spec.js.map +0 -1
  655. package/lib/stores/memory.d.ts +0 -152
  656. package/lib/stores/memory.d.ts.map +0 -1
  657. package/lib/stores/memory.js +0 -371
  658. package/lib/stores/memory.js.map +0 -1
  659. package/lib/stores/memory.spec.d.ts +0 -14
  660. package/lib/stores/memory.spec.d.ts.map +0 -1
  661. package/lib/stores/memory.spec.js +0 -263
  662. package/lib/stores/memory.spec.js.map +0 -1
  663. package/lib/stores/modelmapper.d.ts +0 -62
  664. package/lib/stores/modelmapper.d.ts.map +0 -1
  665. package/lib/stores/modelmapper.js +0 -197
  666. package/lib/stores/modelmapper.js.map +0 -1
  667. package/lib/stores/store.spec.d.ts +0 -57
  668. package/lib/stores/store.spec.d.ts.map +0 -1
  669. package/lib/stores/store.spec.js +0 -737
  670. package/lib/stores/store.spec.js.map +0 -1
  671. package/lib/test.d.ts +0 -265
  672. package/lib/test.d.ts.map +0 -1
  673. package/lib/test.js +0 -622
  674. package/lib/test.js.map +0 -1
  675. package/lib/unpackedapplication.d.ts.map +0 -1
  676. package/lib/unpackedapplication.js +0 -350
  677. package/lib/unpackedapplication.js.map +0 -1
  678. package/lib/utils/abstractdeployer.spec.d.ts +0 -2
  679. package/lib/utils/abstractdeployer.spec.d.ts.map +0 -1
  680. package/lib/utils/abstractdeployer.spec.js +0 -21
  681. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  682. package/lib/utils/case.d.ts +0 -8
  683. package/lib/utils/case.d.ts.map +0 -1
  684. package/lib/utils/case.js +0 -43
  685. package/lib/utils/case.js.map +0 -1
  686. package/lib/utils/case.spec.d.ts +0 -2
  687. package/lib/utils/case.spec.d.ts.map +0 -1
  688. package/lib/utils/case.spec.js +0 -50
  689. package/lib/utils/case.spec.js.map +0 -1
  690. package/lib/utils/context.d.ts +0 -482
  691. package/lib/utils/context.d.ts.map +0 -1
  692. package/lib/utils/context.js +0 -739
  693. package/lib/utils/context.js.map +0 -1
  694. package/lib/utils/context.spec.d.ts +0 -10
  695. package/lib/utils/context.spec.d.ts.map +0 -1
  696. package/lib/utils/context.spec.js +0 -383
  697. package/lib/utils/context.spec.js.map +0 -1
  698. package/lib/utils/cookie.d.ts.map +0 -1
  699. package/lib/utils/cookie.js.map +0 -1
  700. package/lib/utils/cookie.spec.d.ts +0 -2
  701. package/lib/utils/cookie.spec.d.ts.map +0 -1
  702. package/lib/utils/cookie.spec.js +0 -88
  703. package/lib/utils/cookie.spec.js.map +0 -1
  704. package/lib/utils/esm.d.ts +0 -14
  705. package/lib/utils/esm.d.ts.map +0 -1
  706. package/lib/utils/esm.js +0 -19
  707. package/lib/utils/esm.js.map +0 -1
  708. package/lib/utils/httpcontext.d.ts.map +0 -1
  709. package/lib/utils/httpcontext.js.map +0 -1
  710. package/lib/utils/httpcontext.spec.d.ts +0 -5
  711. package/lib/utils/httpcontext.spec.d.ts.map +0 -1
  712. package/lib/utils/httpcontext.spec.js +0 -77
  713. package/lib/utils/httpcontext.spec.js.map +0 -1
  714. package/lib/utils/logger.d.ts +0 -92
  715. package/lib/utils/logger.d.ts.map +0 -1
  716. package/lib/utils/logger.js +0 -121
  717. package/lib/utils/logger.js.map +0 -1
  718. package/lib/utils/logger.spec.d.ts +0 -2
  719. package/lib/utils/logger.spec.d.ts.map +0 -1
  720. package/lib/utils/logger.spec.js +0 -48
  721. package/lib/utils/logger.spec.js.map +0 -1
  722. package/lib/utils/serializers.d.ts +0 -162
  723. package/lib/utils/serializers.d.ts.map +0 -1
  724. package/lib/utils/serializers.js +0 -420
  725. package/lib/utils/serializers.js.map +0 -1
  726. package/lib/utils/serializers.spec.d.ts +0 -2
  727. package/lib/utils/serializers.spec.d.ts.map +0 -1
  728. package/lib/utils/serializers.spec.js +0 -311
  729. package/lib/utils/serializers.spec.js.map +0 -1
  730. package/lib/utils/session.d.ts +0 -123
  731. package/lib/utils/session.d.ts.map +0 -1
  732. package/lib/utils/session.js +0 -156
  733. package/lib/utils/session.js.map +0 -1
  734. package/lib/utils/session.spec.d.ts +0 -2
  735. package/lib/utils/session.spec.d.ts.map +0 -1
  736. package/lib/utils/session.spec.js +0 -81
  737. package/lib/utils/session.spec.js.map +0 -1
  738. package/lib/utils/throttler.d.ts +0 -99
  739. package/lib/utils/throttler.d.ts.map +0 -1
  740. package/lib/utils/throttler.js +0 -160
  741. package/lib/utils/throttler.js.map +0 -1
  742. package/lib/utils/throttler.spec.d.ts +0 -2
  743. package/lib/utils/throttler.spec.d.ts.map +0 -1
  744. package/lib/utils/throttler.spec.js +0 -53
  745. package/lib/utils/throttler.spec.js.map +0 -1
  746. package/lib/utils/waiter.d.ts +0 -94
  747. package/lib/utils/waiter.d.ts.map +0 -1
  748. package/lib/utils/waiter.js +0 -148
  749. package/lib/utils/waiter.js.map +0 -1
  750. package/lib/utils/waiter.spec.d.ts +0 -2
  751. package/lib/utils/waiter.spec.d.ts.map +0 -1
  752. package/lib/utils/waiter.spec.js +0 -98
  753. package/lib/utils/waiter.spec.js.map +0 -1
  754. package/test/jsonutils/mdocs.yaml +0 -56
  755. package/test/jsonutils/test.json +0 -3
  756. package/test/jsonutils/test.yml +0 -5
@@ -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"}
@@ -1,8 +1,20 @@
1
- import { CoreModel, WebdaError } from "../index.js";
2
- class RoleModel extends CoreModel {
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
+ */
3
10
  isPermissive() {
4
11
  return false;
5
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
+ */
6
18
  async getRoles(ctx) {
7
19
  if (!ctx.getCurrentUserId()) {
8
20
  throw new WebdaError.Forbidden("No user");
@@ -16,7 +28,13 @@ class RoleModel extends CoreModel {
16
28
  ctx.getSession().roles = user.getRoles();
17
29
  return ctx.getSession().roles;
18
30
  }
19
- async canAct(ctx, action) {
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) {
20
38
  // If this action doesn't require role
21
39
  if (!this.getRolesMap()[action]) {
22
40
  if (this.isPermissive()) {
@@ -24,7 +42,7 @@ class RoleModel extends CoreModel {
24
42
  }
25
43
  return "No permission for this action defined";
26
44
  }
27
- const roles = await this.getRoles(ctx);
45
+ const roles = await this.getRoles(useContext());
28
46
  if (roles.indexOf(this.getRolesMap()[action]) >= 0) {
29
47
  return true;
30
48
  }
@@ -32,4 +50,4 @@ class RoleModel extends CoreModel {
32
50
  }
33
51
  }
34
52
  export { RoleModel };
35
- //# sourceMappingURL=rolemodel.js.map
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