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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (793) hide show
  1. package/README.md +252 -0
  2. package/lib/application/application.d.ts +468 -0
  3. package/lib/application/application.d.ts.map +1 -0
  4. package/lib/application/application.js +845 -0
  5. package/lib/application/application.js.map +1 -0
  6. package/lib/application/deployment.d.ts +93 -0
  7. package/lib/application/deployment.d.ts.map +1 -0
  8. package/lib/application/deployment.js +99 -0
  9. package/lib/application/deployment.js.map +1 -0
  10. package/lib/application/hooks.d.ts +34 -0
  11. package/lib/application/hooks.d.ts.map +1 -0
  12. package/lib/application/hooks.js +57 -0
  13. package/lib/application/hooks.js.map +1 -0
  14. package/lib/application/iapplication.d.ts +43 -0
  15. package/lib/application/iapplication.d.ts.map +1 -0
  16. package/lib/application/iapplication.js +2 -0
  17. package/lib/application/iapplication.js.map +1 -0
  18. package/lib/application/iconfiguration.d.ts +176 -0
  19. package/lib/application/iconfiguration.d.ts.map +1 -0
  20. package/lib/application/iconfiguration.js +8 -0
  21. package/lib/application/iconfiguration.js.map +1 -0
  22. package/lib/application/runner.d.ts +8 -0
  23. package/lib/application/runner.d.ts.map +1 -0
  24. package/lib/application/runner.js +26 -0
  25. package/lib/application/runner.js.map +1 -0
  26. package/lib/{unpackedapplication.d.ts → application/unpackedapplication.d.ts} +43 -23
  27. package/lib/application/unpackedapplication.d.ts.map +1 -0
  28. package/lib/application/unpackedapplication.js +500 -0
  29. package/lib/application/unpackedapplication.js.map +1 -0
  30. package/lib/bin/cli-phase.d.ts +28 -0
  31. package/lib/bin/cli-phase.d.ts.map +1 -0
  32. package/lib/bin/cli-phase.js +44 -0
  33. package/lib/bin/cli-phase.js.map +1 -0
  34. package/lib/bin/cli.d.ts +196 -0
  35. package/lib/bin/cli.d.ts.map +1 -0
  36. package/lib/bin/cli.js +934 -0
  37. package/lib/bin/cli.js.map +1 -0
  38. package/lib/bin/launcher.d.ts +3 -0
  39. package/lib/bin/launcher.d.ts.map +1 -0
  40. package/lib/bin/launcher.js +50 -0
  41. package/lib/bin/launcher.js.map +1 -0
  42. package/lib/cache/cache.d.ts +33 -0
  43. package/lib/cache/cache.d.ts.map +1 -0
  44. package/lib/cache/cache.js +8 -0
  45. package/lib/cache/cache.js.map +1 -0
  46. package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -58
  47. package/lib/configurations/configuration.service.d.ts.map +1 -0
  48. package/lib/configurations/configuration.service.js +248 -0
  49. package/lib/configurations/configuration.service.js.map +1 -0
  50. package/lib/configurations/fileconfiguration.service.d.ts +30 -0
  51. package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
  52. package/lib/configurations/fileconfiguration.service.js +65 -0
  53. package/lib/configurations/fileconfiguration.service.js.map +1 -0
  54. package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
  55. package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
  56. package/lib/configurations/kubernetesconfiguration.service.js +83 -0
  57. package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
  58. package/lib/contexts/execution.d.ts +33 -0
  59. package/lib/contexts/execution.d.ts.map +1 -0
  60. package/lib/contexts/execution.js +73 -0
  61. package/lib/contexts/execution.js.map +1 -0
  62. package/lib/contexts/globalcontext.d.ts +29 -0
  63. package/lib/contexts/globalcontext.d.ts.map +1 -0
  64. package/lib/contexts/globalcontext.js +38 -0
  65. package/lib/contexts/globalcontext.js.map +1 -0
  66. package/lib/{utils → contexts}/httpcontext.d.ts +44 -19
  67. package/lib/contexts/httpcontext.d.ts.map +1 -0
  68. package/lib/{utils → contexts}/httpcontext.js +95 -27
  69. package/lib/contexts/httpcontext.js.map +1 -0
  70. package/lib/contexts/icontext.d.ts +236 -0
  71. package/lib/contexts/icontext.d.ts.map +1 -0
  72. package/lib/contexts/icontext.js +230 -0
  73. package/lib/contexts/icontext.js.map +1 -0
  74. package/lib/contexts/operationcontext.d.ts +182 -0
  75. package/lib/contexts/operationcontext.d.ts.map +1 -0
  76. package/lib/contexts/operationcontext.js +361 -0
  77. package/lib/contexts/operationcontext.js.map +1 -0
  78. package/lib/contexts/simplecontext.d.ts +31 -0
  79. package/lib/contexts/simplecontext.d.ts.map +1 -0
  80. package/lib/contexts/simplecontext.js +45 -0
  81. package/lib/contexts/simplecontext.js.map +1 -0
  82. package/lib/contexts/webcontext.d.ts +218 -0
  83. package/lib/contexts/webcontext.d.ts.map +1 -0
  84. package/lib/contexts/webcontext.js +389 -0
  85. package/lib/contexts/webcontext.js.map +1 -0
  86. package/lib/core/authorizer.d.ts +23 -0
  87. package/lib/core/authorizer.d.ts.map +1 -0
  88. package/lib/core/authorizer.js +17 -0
  89. package/lib/core/authorizer.js.map +1 -0
  90. package/lib/core/core.d.ts +225 -0
  91. package/lib/core/core.d.ts.map +1 -0
  92. package/lib/core/core.js +576 -0
  93. package/lib/core/core.js.map +1 -0
  94. package/lib/core/hooks.d.ts +94 -0
  95. package/lib/core/hooks.d.ts.map +1 -0
  96. package/lib/core/hooks.js +97 -0
  97. package/lib/core/hooks.js.map +1 -0
  98. package/lib/core/icore.d.ts +249 -0
  99. package/lib/core/icore.d.ts.map +1 -0
  100. package/lib/core/icore.js +15 -0
  101. package/lib/core/icore.js.map +1 -0
  102. package/lib/core/instancestorage.d.ts +61 -0
  103. package/lib/core/instancestorage.d.ts.map +1 -0
  104. package/lib/core/instancestorage.js +75 -0
  105. package/lib/core/instancestorage.js.map +1 -0
  106. package/lib/core/operations.d.ts +181 -0
  107. package/lib/core/operations.d.ts.map +1 -0
  108. package/lib/core/operations.js +559 -0
  109. package/lib/core/operations.js.map +1 -0
  110. package/lib/deployers/deployer.d.ts +157 -0
  111. package/lib/deployers/deployer.d.ts.map +1 -0
  112. package/lib/deployers/deployer.js +81 -0
  113. package/lib/deployers/deployer.js.map +1 -0
  114. package/lib/deployers/git.d.ts +27 -0
  115. package/lib/deployers/git.d.ts.map +1 -0
  116. package/lib/deployers/git.js +66 -0
  117. package/lib/deployers/git.js.map +1 -0
  118. package/lib/deployers/packager.d.ts +85 -0
  119. package/lib/deployers/packager.d.ts.map +1 -0
  120. package/lib/deployers/packager.js +259 -0
  121. package/lib/deployers/packager.js.map +1 -0
  122. package/lib/errors/errors.d.ts +126 -0
  123. package/lib/errors/errors.d.ts.map +1 -0
  124. package/lib/errors/errors.js +165 -0
  125. package/lib/errors/errors.js.map +1 -0
  126. package/lib/events/asynceventemitter.d.ts +159 -0
  127. package/lib/events/asynceventemitter.d.ts.map +1 -0
  128. package/lib/events/asynceventemitter.js +152 -0
  129. package/lib/events/asynceventemitter.js.map +1 -0
  130. package/lib/events/events.d.ts +112 -0
  131. package/lib/events/events.d.ts.map +1 -0
  132. package/lib/events/events.js +45 -0
  133. package/lib/events/events.js.map +1 -0
  134. package/lib/index.d.ts +88 -54
  135. package/lib/index.d.ts.map +1 -1
  136. package/lib/index.js +88 -64
  137. package/lib/index.js.map +1 -1
  138. package/lib/loggers/console.service.d.ts +24 -0
  139. package/lib/loggers/console.service.d.ts.map +1 -0
  140. package/lib/loggers/console.service.js +30 -0
  141. package/lib/loggers/console.service.js.map +1 -0
  142. package/lib/loggers/file.service.d.ts +25 -0
  143. package/lib/loggers/file.service.d.ts.map +1 -0
  144. package/lib/loggers/file.service.js +33 -0
  145. package/lib/loggers/file.service.js.map +1 -0
  146. package/lib/loggers/hooks.d.ts +20 -0
  147. package/lib/loggers/hooks.d.ts.map +1 -0
  148. package/lib/loggers/hooks.js +40 -0
  149. package/lib/loggers/hooks.js.map +1 -0
  150. package/lib/loggers/ilogger.d.ts +76 -0
  151. package/lib/loggers/ilogger.d.ts.map +1 -0
  152. package/lib/loggers/ilogger.js +108 -0
  153. package/lib/loggers/ilogger.js.map +1 -0
  154. package/lib/loggers/logger.d.ts +13 -0
  155. package/lib/loggers/logger.d.ts.map +1 -0
  156. package/lib/loggers/logger.js +18 -0
  157. package/lib/loggers/logger.js.map +1 -0
  158. package/lib/loggers/memory.service.d.ts +18 -0
  159. package/lib/loggers/memory.service.d.ts.map +1 -0
  160. package/lib/loggers/memory.service.js +21 -0
  161. package/lib/loggers/memory.service.js.map +1 -0
  162. package/lib/loggers/params.d.ts +47 -0
  163. package/lib/loggers/params.d.ts.map +1 -0
  164. package/lib/loggers/params.js +56 -0
  165. package/lib/loggers/params.js.map +1 -0
  166. package/lib/metrics/metrics.d.ts +25 -0
  167. package/lib/metrics/metrics.d.ts.map +1 -0
  168. package/lib/metrics/metrics.js +51 -0
  169. package/lib/metrics/metrics.js.map +1 -0
  170. package/lib/models/aclmodel.d.ts +20 -76
  171. package/lib/models/aclmodel.d.ts.map +1 -1
  172. package/lib/models/aclmodel.js +27 -203
  173. package/lib/models/aclmodel.js.map +1 -1
  174. package/lib/models/coremodel.model.d.ts +5 -0
  175. package/lib/models/coremodel.model.d.ts.map +1 -0
  176. package/lib/models/coremodel.model.js +5 -0
  177. package/lib/models/coremodel.model.js.map +1 -0
  178. package/lib/models/decorator.d.ts +67 -0
  179. package/lib/models/decorator.d.ts.map +1 -0
  180. package/lib/models/decorator.js +67 -0
  181. package/lib/models/decorator.js.map +1 -0
  182. package/lib/models/deployment.d.ts +2 -21
  183. package/lib/models/deployment.d.ts.map +1 -1
  184. package/lib/models/encrypted.model.d.ts +46 -0
  185. package/lib/models/encrypted.model.d.ts.map +1 -0
  186. package/lib/models/encrypted.model.js +87 -0
  187. package/lib/models/encrypted.model.js.map +1 -0
  188. package/lib/models/ident.model.d.ts +128 -0
  189. package/lib/models/ident.model.d.ts.map +1 -0
  190. package/lib/models/ident.model.js +207 -0
  191. package/lib/models/ident.model.js.map +1 -0
  192. package/lib/models/ownermodel.model.d.ts +68 -0
  193. package/lib/models/ownermodel.model.d.ts.map +1 -0
  194. package/lib/models/ownermodel.model.js +113 -0
  195. package/lib/models/ownermodel.model.js.map +1 -0
  196. package/lib/models/password.model.d.ts +78 -0
  197. package/lib/models/password.model.d.ts.map +1 -0
  198. package/lib/models/password.model.js +171 -0
  199. package/lib/models/password.model.js.map +1 -0
  200. package/lib/models/refreshtoken.model.d.ts +30 -0
  201. package/lib/models/refreshtoken.model.d.ts.map +1 -0
  202. package/lib/models/refreshtoken.model.js +29 -0
  203. package/lib/models/refreshtoken.model.js.map +1 -0
  204. package/lib/models/registry.model.d.ts +76 -0
  205. package/lib/models/registry.model.d.ts.map +1 -0
  206. package/lib/models/registry.model.js +104 -0
  207. package/lib/models/registry.model.js.map +1 -0
  208. package/lib/models/rolemodel.model.d.ts +28 -0
  209. package/lib/models/rolemodel.model.d.ts.map +1 -0
  210. package/lib/models/{rolemodel.js → rolemodel.model.js} +23 -5
  211. package/lib/models/rolemodel.model.js.map +1 -0
  212. package/lib/models/simpleuser.model.d.ts +78 -0
  213. package/lib/models/simpleuser.model.d.ts.map +1 -0
  214. package/lib/models/simpleuser.model.js +124 -0
  215. package/lib/models/simpleuser.model.js.map +1 -0
  216. package/lib/models/types.d.ts +113 -0
  217. package/lib/models/types.d.ts.map +1 -0
  218. package/lib/models/types.js +2 -0
  219. package/lib/models/types.js.map +1 -0
  220. package/lib/models/user.model.d.ts +103 -0
  221. package/lib/models/user.model.d.ts.map +1 -0
  222. package/lib/models/user.model.js +164 -0
  223. package/lib/models/user.model.js.map +1 -0
  224. package/lib/queues/{memoryqueue.d.ts → memoryqueue.service.d.ts} +26 -13
  225. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  226. package/lib/queues/{memoryqueue.js → memoryqueue.service.js} +55 -31
  227. package/lib/queues/memoryqueue.service.js.map +1 -0
  228. package/lib/queues/pubsubservice.d.ts +8 -6
  229. package/lib/queues/pubsubservice.d.ts.map +1 -1
  230. package/lib/queues/pubsubservice.js +5 -4
  231. package/lib/queues/pubsubservice.js.map +1 -1
  232. package/lib/queues/queueservice.d.ts +9 -11
  233. package/lib/queues/queueservice.d.ts.map +1 -1
  234. package/lib/queues/queueservice.js +41 -13
  235. package/lib/queues/queueservice.js.map +1 -1
  236. package/lib/rest/hooks.d.ts +8 -0
  237. package/lib/rest/hooks.d.ts.map +1 -0
  238. package/lib/rest/hooks.js +10 -0
  239. package/lib/rest/hooks.js.map +1 -0
  240. package/lib/rest/irest.d.ts +212 -0
  241. package/lib/rest/irest.d.ts.map +1 -0
  242. package/lib/rest/irest.js +39 -0
  243. package/lib/rest/irest.js.map +1 -0
  244. package/lib/rest/originfilter.d.ts +38 -0
  245. package/lib/rest/originfilter.d.ts.map +1 -0
  246. package/lib/rest/originfilter.js +61 -0
  247. package/lib/rest/originfilter.js.map +1 -0
  248. package/lib/rest/restoperationstransport.service.d.ts +193 -0
  249. package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
  250. package/lib/rest/restoperationstransport.service.js +780 -0
  251. package/lib/rest/restoperationstransport.service.js.map +1 -0
  252. package/lib/rest/router.service.d.ts +244 -0
  253. package/lib/rest/router.service.d.ts.map +1 -0
  254. package/lib/rest/router.service.js +843 -0
  255. package/lib/rest/router.service.js.map +1 -0
  256. package/lib/schemas/hooks.d.ts +48 -0
  257. package/lib/schemas/hooks.d.ts.map +1 -0
  258. package/lib/schemas/hooks.js +152 -0
  259. package/lib/schemas/hooks.js.map +1 -0
  260. package/lib/services/audit.model.d.ts +208 -0
  261. package/lib/services/audit.model.d.ts.map +1 -0
  262. package/lib/services/audit.model.js +432 -0
  263. package/lib/services/audit.model.js.map +1 -0
  264. package/lib/services/binary.service.d.ts +808 -0
  265. package/lib/services/binary.service.d.ts.map +1 -0
  266. package/lib/services/binary.service.js +1365 -0
  267. package/lib/services/binary.service.js.map +1 -0
  268. package/lib/services/cloudbinary.d.ts +17 -12
  269. package/lib/services/cloudbinary.d.ts.map +1 -1
  270. package/lib/services/cloudbinary.js +23 -17
  271. package/lib/services/cloudbinary.js.map +1 -1
  272. package/lib/services/command.d.ts +118 -0
  273. package/lib/services/command.d.ts.map +1 -0
  274. package/lib/services/command.js +97 -0
  275. package/lib/services/command.js.map +1 -0
  276. package/lib/services/cron.service.d.ts +142 -0
  277. package/lib/services/cron.service.d.ts.map +1 -0
  278. package/lib/services/cron.service.js +291 -0
  279. package/lib/services/cron.service.js.map +1 -0
  280. package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +75 -141
  281. package/lib/services/cryptoservice.service.d.ts.map +1 -0
  282. package/lib/services/cryptoservice.service.js +527 -0
  283. package/lib/services/cryptoservice.service.js.map +1 -0
  284. package/lib/services/debugmailer.service.d.ts +49 -0
  285. package/lib/services/debugmailer.service.d.ts.map +1 -0
  286. package/lib/services/{debugmailer.js → debugmailer.service.js} +25 -10
  287. package/lib/services/debugmailer.service.js.map +1 -0
  288. package/lib/services/domainservice.service.d.ts +242 -0
  289. package/lib/services/domainservice.service.d.ts.map +1 -0
  290. package/lib/services/domainservice.service.js +676 -0
  291. package/lib/services/domainservice.service.js.map +1 -0
  292. package/lib/services/httpserver.service.d.ts +248 -0
  293. package/lib/services/httpserver.service.d.ts.map +1 -0
  294. package/lib/services/httpserver.service.js +673 -0
  295. package/lib/services/httpserver.service.js.map +1 -0
  296. package/lib/services/iauthentication.d.ts +202 -0
  297. package/lib/services/iauthentication.d.ts.map +1 -0
  298. package/lib/services/iauthentication.js +2 -0
  299. package/lib/services/iauthentication.js.map +1 -0
  300. package/lib/services/icryptoservice.d.ts +127 -0
  301. package/lib/services/icryptoservice.d.ts.map +1 -0
  302. package/lib/services/icryptoservice.js +68 -0
  303. package/lib/services/icryptoservice.js.map +1 -0
  304. package/lib/services/imailer.d.ts +17 -0
  305. package/lib/services/imailer.d.ts.map +1 -0
  306. package/lib/services/imailer.js +2 -0
  307. package/lib/services/imailer.js.map +1 -0
  308. package/lib/services/iservice.d.ts +104 -0
  309. package/lib/services/iservice.d.ts.map +1 -0
  310. package/lib/services/iservice.js +63 -0
  311. package/lib/services/iservice.js.map +1 -0
  312. package/lib/services/mailer.service.d.ts +220 -0
  313. package/lib/services/mailer.service.d.ts.map +1 -0
  314. package/lib/services/mailer.service.js +251 -0
  315. package/lib/services/mailer.service.js.map +1 -0
  316. package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -11
  317. package/lib/services/notificationservice.service.d.ts.map +1 -0
  318. package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
  319. package/lib/services/notificationservice.service.js.map +1 -0
  320. package/lib/services/operationstransport.d.ts +65 -0
  321. package/lib/services/operationstransport.d.ts.map +1 -0
  322. package/lib/services/operationstransport.js +103 -0
  323. package/lib/services/operationstransport.js.map +1 -0
  324. package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -12
  325. package/lib/services/prometheus.service.d.ts.map +1 -0
  326. package/lib/services/prometheus.service.js +203 -0
  327. package/lib/services/prometheus.service.js.map +1 -0
  328. package/lib/services/{resource.d.ts → resource.service.d.ts} +34 -15
  329. package/lib/services/resource.service.d.ts.map +1 -0
  330. package/lib/services/resource.service.js +301 -0
  331. package/lib/services/resource.service.js.map +1 -0
  332. package/lib/services/service.d.ts +87 -188
  333. package/lib/services/service.d.ts.map +1 -1
  334. package/lib/services/service.js +407 -422
  335. package/lib/services/service.js.map +1 -1
  336. package/lib/services/servicecommands.d.ts +99 -0
  337. package/lib/services/servicecommands.d.ts.map +1 -0
  338. package/lib/services/servicecommands.js +171 -0
  339. package/lib/services/servicecommands.js.map +1 -0
  340. package/lib/services/serviceparameters.d.ts +33 -0
  341. package/lib/services/serviceparameters.d.ts.map +1 -0
  342. package/lib/services/serviceparameters.js +79 -0
  343. package/lib/services/serviceparameters.js.map +1 -0
  344. package/lib/services/token.service.d.ts +95 -0
  345. package/lib/services/token.service.d.ts.map +1 -0
  346. package/lib/services/token.service.js +182 -0
  347. package/lib/services/token.service.js.map +1 -0
  348. package/lib/{utils → session}/cookie.d.ts +32 -19
  349. package/lib/session/cookie.d.ts.map +1 -0
  350. package/lib/{utils → session}/cookie.js +76 -23
  351. package/lib/session/cookie.js.map +1 -0
  352. package/lib/session/manager.model.d.ts +87 -0
  353. package/lib/session/manager.model.d.ts.map +1 -0
  354. package/lib/session/manager.model.js +212 -0
  355. package/lib/session/manager.model.js.map +1 -0
  356. package/lib/session/session.d.ts +100 -0
  357. package/lib/session/session.d.ts.map +1 -0
  358. package/lib/session/session.js +175 -0
  359. package/lib/session/session.js.map +1 -0
  360. package/lib/stores/istore.d.ts +99 -0
  361. package/lib/stores/istore.d.ts.map +1 -0
  362. package/lib/stores/istore.js +26 -0
  363. package/lib/stores/istore.js.map +1 -0
  364. package/lib/stores/memory.service.d.ts +114 -0
  365. package/lib/stores/memory.service.d.ts.map +1 -0
  366. package/lib/stores/memory.service.js +344 -0
  367. package/lib/stores/memory.service.js.map +1 -0
  368. package/lib/stores/store.d.ts +126 -626
  369. package/lib/stores/store.d.ts.map +1 -1
  370. package/lib/stores/store.js +257 -1117
  371. package/lib/stores/store.js.map +1 -1
  372. package/lib/templates/templates.d.ts +47 -0
  373. package/lib/templates/templates.d.ts.map +1 -0
  374. package/lib/templates/templates.js +101 -0
  375. package/lib/templates/templates.js.map +1 -0
  376. package/lib/test/application.d.ts +174 -0
  377. package/lib/test/application.d.ts.map +1 -0
  378. package/lib/test/application.js +288 -0
  379. package/lib/test/application.js.map +1 -0
  380. package/lib/test/asyncstorage.d.ts +16 -0
  381. package/lib/test/asyncstorage.d.ts.map +1 -0
  382. package/lib/test/asyncstorage.js +32 -0
  383. package/lib/test/asyncstorage.js.map +1 -0
  384. package/lib/test/behavior-fixture.model.d.ts +30 -0
  385. package/lib/test/behavior-fixture.model.d.ts.map +1 -0
  386. package/lib/test/behavior-fixture.model.js +63 -0
  387. package/lib/test/behavior-fixture.model.js.map +1 -0
  388. package/lib/test/core.d.ts +63 -0
  389. package/lib/test/core.d.ts.map +1 -0
  390. package/lib/test/core.js +190 -0
  391. package/lib/test/core.js.map +1 -0
  392. package/lib/test/index.d.ts +7 -0
  393. package/lib/test/index.d.ts.map +1 -0
  394. package/lib/test/index.js +8 -0
  395. package/lib/test/index.js.map +1 -0
  396. package/lib/test/internal.d.ts +34 -0
  397. package/lib/test/internal.d.ts.map +1 -0
  398. package/lib/test/internal.js +156 -0
  399. package/lib/test/internal.js.map +1 -0
  400. package/lib/test/legacyident.fixture.model.d.ts +98 -0
  401. package/lib/test/legacyident.fixture.model.d.ts.map +1 -0
  402. package/lib/test/legacyident.fixture.model.js +125 -0
  403. package/lib/test/legacyident.fixture.model.js.map +1 -0
  404. package/lib/test/objects.d.ts +318 -0
  405. package/lib/test/objects.d.ts.map +1 -0
  406. package/lib/test/objects.js +443 -0
  407. package/lib/test/objects.js.map +1 -0
  408. package/lib/utils/abstractdeployer.d.ts +4 -2
  409. package/lib/utils/abstractdeployer.d.ts.map +1 -1
  410. package/lib/utils/abstractdeployer.js +3 -0
  411. package/lib/utils/abstractdeployer.js.map +1 -1
  412. package/package.json +102 -60
  413. package/test/cachedapp/webda.config.json +1 -5
  414. package/test/config-cached.json +3 -6
  415. package/test/config.json +3 -10
  416. package/test/my-cnf.json +9 -0
  417. package/webda.module.json +3755 -2496
  418. package/lib/application.d.ts +0 -888
  419. package/lib/application.d.ts.map +0 -1
  420. package/lib/application.js +0 -768
  421. package/lib/application.js.map +0 -1
  422. package/lib/application.spec.d.ts +0 -2
  423. package/lib/application.spec.d.ts.map +0 -1
  424. package/lib/application.spec.js +0 -248
  425. package/lib/application.spec.js.map +0 -1
  426. package/lib/core.d.ts +0 -743
  427. package/lib/core.d.ts.map +0 -1
  428. package/lib/core.js +0 -1334
  429. package/lib/core.js.map +0 -1
  430. package/lib/core.spec.d.ts +0 -2
  431. package/lib/core.spec.d.ts.map +0 -1
  432. package/lib/core.spec.js +0 -790
  433. package/lib/core.spec.js.map +0 -1
  434. package/lib/errors.d.ts +0 -64
  435. package/lib/errors.d.ts.map +0 -1
  436. package/lib/errors.js +0 -97
  437. package/lib/errors.js.map +0 -1
  438. package/lib/errors.spec.d.ts +0 -2
  439. package/lib/errors.spec.d.ts.map +0 -1
  440. package/lib/errors.spec.js +0 -33
  441. package/lib/errors.spec.js.map +0 -1
  442. package/lib/models/aclmodel.spec.d.ts +0 -2
  443. package/lib/models/aclmodel.spec.d.ts.map +0 -1
  444. package/lib/models/aclmodel.spec.js +0 -187
  445. package/lib/models/aclmodel.spec.js.map +0 -1
  446. package/lib/models/coremodel.d.ts +0 -896
  447. package/lib/models/coremodel.d.ts.map +0 -1
  448. package/lib/models/coremodel.js +0 -1214
  449. package/lib/models/coremodel.js.map +0 -1
  450. package/lib/models/coremodel.spec.d.ts +0 -2
  451. package/lib/models/coremodel.spec.d.ts.map +0 -1
  452. package/lib/models/coremodel.spec.js +0 -464
  453. package/lib/models/coremodel.spec.js.map +0 -1
  454. package/lib/models/ident.d.ts +0 -68
  455. package/lib/models/ident.d.ts.map +0 -1
  456. package/lib/models/ident.js +0 -26
  457. package/lib/models/ident.js.map +0 -1
  458. package/lib/models/ident.spec.d.ts +0 -2
  459. package/lib/models/ident.spec.d.ts.map +0 -1
  460. package/lib/models/ident.spec.js +0 -24
  461. package/lib/models/ident.spec.js.map +0 -1
  462. package/lib/models/ownermodel.d.ts +0 -51
  463. package/lib/models/ownermodel.d.ts.map +0 -1
  464. package/lib/models/ownermodel.js +0 -65
  465. package/lib/models/ownermodel.js.map +0 -1
  466. package/lib/models/ownermodel.spec.d.ts +0 -2
  467. package/lib/models/ownermodel.spec.d.ts.map +0 -1
  468. package/lib/models/ownermodel.spec.js +0 -215
  469. package/lib/models/ownermodel.spec.js.map +0 -1
  470. package/lib/models/relations.d.ts +0 -182
  471. package/lib/models/relations.d.ts.map +0 -1
  472. package/lib/models/relations.js +0 -157
  473. package/lib/models/relations.js.map +0 -1
  474. package/lib/models/relations.spec.d.ts +0 -14
  475. package/lib/models/relations.spec.d.ts.map +0 -1
  476. package/lib/models/relations.spec.js +0 -217
  477. package/lib/models/relations.spec.js.map +0 -1
  478. package/lib/models/rolemodel.d.ts +0 -11
  479. package/lib/models/rolemodel.d.ts.map +0 -1
  480. package/lib/models/rolemodel.js.map +0 -1
  481. package/lib/models/rolemodel.spec.d.ts +0 -2
  482. package/lib/models/rolemodel.spec.d.ts.map +0 -1
  483. package/lib/models/rolemodel.spec.js +0 -90
  484. package/lib/models/rolemodel.spec.js.map +0 -1
  485. package/lib/models/simpleuser.d.ts +0 -47
  486. package/lib/models/simpleuser.d.ts.map +0 -1
  487. package/lib/models/simpleuser.js +0 -84
  488. package/lib/models/simpleuser.js.map +0 -1
  489. package/lib/models/test.d.ts +0 -11
  490. package/lib/models/test.d.ts.map +0 -1
  491. package/lib/models/test.js +0 -7
  492. package/lib/models/test.js.map +0 -1
  493. package/lib/models/user.d.ts +0 -67
  494. package/lib/models/user.d.ts.map +0 -1
  495. package/lib/models/user.js +0 -86
  496. package/lib/models/user.js.map +0 -1
  497. package/lib/models/user.spec.d.ts +0 -2
  498. package/lib/models/user.spec.d.ts.map +0 -1
  499. package/lib/models/user.spec.js +0 -89
  500. package/lib/models/user.spec.js.map +0 -1
  501. package/lib/queues/filequeue.d.ts +0 -59
  502. package/lib/queues/filequeue.d.ts.map +0 -1
  503. package/lib/queues/filequeue.js +0 -131
  504. package/lib/queues/filequeue.js.map +0 -1
  505. package/lib/queues/filequeue.spec.d.ts +0 -2
  506. package/lib/queues/filequeue.spec.d.ts.map +0 -1
  507. package/lib/queues/filequeue.spec.js +0 -84
  508. package/lib/queues/filequeue.spec.js.map +0 -1
  509. package/lib/queues/memoryqueue.d.ts.map +0 -1
  510. package/lib/queues/memoryqueue.js.map +0 -1
  511. package/lib/queues/memoryqueue.spec.d.ts +0 -2
  512. package/lib/queues/memoryqueue.spec.d.ts.map +0 -1
  513. package/lib/queues/memoryqueue.spec.js +0 -203
  514. package/lib/queues/memoryqueue.spec.js.map +0 -1
  515. package/lib/queues/queue.spec.d.ts +0 -6
  516. package/lib/queues/queue.spec.d.ts.map +0 -1
  517. package/lib/queues/queue.spec.js +0 -55
  518. package/lib/queues/queue.spec.js.map +0 -1
  519. package/lib/rest/restdomainservice.d.ts +0 -63
  520. package/lib/rest/restdomainservice.d.ts.map +0 -1
  521. package/lib/rest/restdomainservice.js +0 -687
  522. package/lib/rest/restdomainservice.js.map +0 -1
  523. package/lib/rest/restdomainservice.spec.d.ts +0 -2
  524. package/lib/rest/restdomainservice.spec.d.ts.map +0 -1
  525. package/lib/rest/restdomainservice.spec.js +0 -124
  526. package/lib/rest/restdomainservice.spec.js.map +0 -1
  527. package/lib/rest/router.d.ts +0 -174
  528. package/lib/rest/router.d.ts.map +0 -1
  529. package/lib/rest/router.js +0 -429
  530. package/lib/rest/router.js.map +0 -1
  531. package/lib/rest/router.spec.d.ts +0 -2
  532. package/lib/rest/router.spec.d.ts.map +0 -1
  533. package/lib/rest/router.spec.js +0 -255
  534. package/lib/rest/router.spec.js.map +0 -1
  535. package/lib/services/asyncevents.d.ts +0 -152
  536. package/lib/services/asyncevents.d.ts.map +0 -1
  537. package/lib/services/asyncevents.js +0 -217
  538. package/lib/services/asyncevents.js.map +0 -1
  539. package/lib/services/asyncevents.spec.d.ts +0 -2
  540. package/lib/services/asyncevents.spec.d.ts.map +0 -1
  541. package/lib/services/asyncevents.spec.js +0 -118
  542. package/lib/services/asyncevents.spec.js.map +0 -1
  543. package/lib/services/authentication.d.ts +0 -361
  544. package/lib/services/authentication.d.ts.map +0 -1
  545. package/lib/services/authentication.js +0 -773
  546. package/lib/services/authentication.js.map +0 -1
  547. package/lib/services/authentication.spec.d.ts +0 -2
  548. package/lib/services/authentication.spec.d.ts.map +0 -1
  549. package/lib/services/authentication.spec.js +0 -458
  550. package/lib/services/authentication.spec.js.map +0 -1
  551. package/lib/services/binary.d.ts +0 -477
  552. package/lib/services/binary.d.ts.map +0 -1
  553. package/lib/services/binary.js +0 -617
  554. package/lib/services/binary.js.map +0 -1
  555. package/lib/services/binary.spec.d.ts +0 -41
  556. package/lib/services/binary.spec.d.ts.map +0 -1
  557. package/lib/services/binary.spec.js +0 -151
  558. package/lib/services/binary.spec.js.map +0 -1
  559. package/lib/services/cloudbinary.spec.d.ts +0 -6
  560. package/lib/services/cloudbinary.spec.d.ts.map +0 -1
  561. package/lib/services/cloudbinary.spec.js +0 -66
  562. package/lib/services/cloudbinary.spec.js.map +0 -1
  563. package/lib/services/configuration.d.ts.map +0 -1
  564. package/lib/services/configuration.js +0 -193
  565. package/lib/services/configuration.js.map +0 -1
  566. package/lib/services/configuration.spec.d.ts +0 -2
  567. package/lib/services/configuration.spec.d.ts.map +0 -1
  568. package/lib/services/configuration.spec.js +0 -130
  569. package/lib/services/configuration.spec.js.map +0 -1
  570. package/lib/services/cron.d.ts +0 -74
  571. package/lib/services/cron.d.ts.map +0 -1
  572. package/lib/services/cron.js +0 -141
  573. package/lib/services/cron.js.map +0 -1
  574. package/lib/services/cron.spec.d.ts +0 -2
  575. package/lib/services/cron.spec.d.ts.map +0 -1
  576. package/lib/services/cron.spec.js +0 -76
  577. package/lib/services/cron.spec.js.map +0 -1
  578. package/lib/services/cryptoservice.d.ts.map +0 -1
  579. package/lib/services/cryptoservice.js +0 -433
  580. package/lib/services/cryptoservice.js.map +0 -1
  581. package/lib/services/cryptoservice.spec.d.ts +0 -2
  582. package/lib/services/cryptoservice.spec.d.ts.map +0 -1
  583. package/lib/services/cryptoservice.spec.js +0 -177
  584. package/lib/services/cryptoservice.spec.js.map +0 -1
  585. package/lib/services/debugmailer.d.ts +0 -36
  586. package/lib/services/debugmailer.d.ts.map +0 -1
  587. package/lib/services/debugmailer.js.map +0 -1
  588. package/lib/services/debugmailer.spec.d.ts +0 -2
  589. package/lib/services/debugmailer.spec.d.ts.map +0 -1
  590. package/lib/services/debugmailer.spec.js +0 -32
  591. package/lib/services/debugmailer.spec.js.map +0 -1
  592. package/lib/services/domainservice.d.ts +0 -272
  593. package/lib/services/domainservice.d.ts.map +0 -1
  594. package/lib/services/domainservice.js +0 -651
  595. package/lib/services/domainservice.js.map +0 -1
  596. package/lib/services/domainservice.spec.d.ts +0 -2
  597. package/lib/services/domainservice.spec.d.ts.map +0 -1
  598. package/lib/services/domainservice.spec.js +0 -592
  599. package/lib/services/domainservice.spec.js.map +0 -1
  600. package/lib/services/filebinary.d.ts +0 -136
  601. package/lib/services/filebinary.d.ts.map +0 -1
  602. package/lib/services/filebinary.js +0 -373
  603. package/lib/services/filebinary.js.map +0 -1
  604. package/lib/services/filebinary.spec.d.ts +0 -25
  605. package/lib/services/filebinary.spec.d.ts.map +0 -1
  606. package/lib/services/filebinary.spec.js +0 -428
  607. package/lib/services/filebinary.spec.js.map +0 -1
  608. package/lib/services/fileconfiguration.d.ts +0 -23
  609. package/lib/services/fileconfiguration.d.ts.map +0 -1
  610. package/lib/services/fileconfiguration.js +0 -48
  611. package/lib/services/fileconfiguration.js.map +0 -1
  612. package/lib/services/fileconfiguration.spec.d.ts +0 -2
  613. package/lib/services/fileconfiguration.spec.d.ts.map +0 -1
  614. package/lib/services/fileconfiguration.spec.js +0 -215
  615. package/lib/services/fileconfiguration.spec.js.map +0 -1
  616. package/lib/services/invitationservice.d.ts +0 -223
  617. package/lib/services/invitationservice.d.ts.map +0 -1
  618. package/lib/services/invitationservice.js +0 -529
  619. package/lib/services/invitationservice.js.map +0 -1
  620. package/lib/services/invitationservice.spec.d.ts +0 -2
  621. package/lib/services/invitationservice.spec.d.ts.map +0 -1
  622. package/lib/services/invitationservice.spec.js +0 -567
  623. package/lib/services/invitationservice.spec.js.map +0 -1
  624. package/lib/services/kubernetesconfiguration.d.ts +0 -27
  625. package/lib/services/kubernetesconfiguration.d.ts.map +0 -1
  626. package/lib/services/kubernetesconfiguration.js +0 -52
  627. package/lib/services/kubernetesconfiguration.js.map +0 -1
  628. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -2
  629. package/lib/services/kubernetesconfiguration.spec.d.ts.map +0 -1
  630. package/lib/services/kubernetesconfiguration.spec.js +0 -206
  631. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  632. package/lib/services/mailer.d.ts +0 -166
  633. package/lib/services/mailer.d.ts.map +0 -1
  634. package/lib/services/mailer.js +0 -176
  635. package/lib/services/mailer.js.map +0 -1
  636. package/lib/services/mailer.spec.d.ts +0 -2
  637. package/lib/services/mailer.spec.d.ts.map +0 -1
  638. package/lib/services/mailer.spec.js +0 -158
  639. package/lib/services/mailer.spec.js.map +0 -1
  640. package/lib/services/notificationservice.d.ts.map +0 -1
  641. package/lib/services/notificationservice.js.map +0 -1
  642. package/lib/services/notificationservice.spec.d.ts +0 -2
  643. package/lib/services/notificationservice.spec.d.ts.map +0 -1
  644. package/lib/services/notificationservice.spec.js +0 -83
  645. package/lib/services/notificationservice.spec.js.map +0 -1
  646. package/lib/services/oauth.d.ts +0 -226
  647. package/lib/services/oauth.d.ts.map +0 -1
  648. package/lib/services/oauth.js +0 -294
  649. package/lib/services/oauth.js.map +0 -1
  650. package/lib/services/oauth.spec.d.ts +0 -2
  651. package/lib/services/oauth.spec.d.ts.map +0 -1
  652. package/lib/services/oauth.spec.js +0 -208
  653. package/lib/services/oauth.spec.js.map +0 -1
  654. package/lib/services/prometheus.d.ts.map +0 -1
  655. package/lib/services/prometheus.js +0 -160
  656. package/lib/services/prometheus.js.map +0 -1
  657. package/lib/services/prometheus.spec.d.ts +0 -2
  658. package/lib/services/prometheus.spec.d.ts.map +0 -1
  659. package/lib/services/prometheus.spec.js +0 -76
  660. package/lib/services/prometheus.spec.js.map +0 -1
  661. package/lib/services/resource.d.ts.map +0 -1
  662. package/lib/services/resource.js +0 -170
  663. package/lib/services/resource.js.map +0 -1
  664. package/lib/services/resource.spec.d.ts +0 -2
  665. package/lib/services/resource.spec.d.ts.map +0 -1
  666. package/lib/services/resource.spec.js +0 -140
  667. package/lib/services/resource.spec.js.map +0 -1
  668. package/lib/services/service.spec.d.ts +0 -2
  669. package/lib/services/service.spec.d.ts.map +0 -1
  670. package/lib/services/service.spec.js +0 -286
  671. package/lib/services/service.spec.js.map +0 -1
  672. package/lib/stores/aggregator.d.ts +0 -48
  673. package/lib/stores/aggregator.d.ts.map +0 -1
  674. package/lib/stores/aggregator.js +0 -80
  675. package/lib/stores/aggregator.js.map +0 -1
  676. package/lib/stores/file.d.ts +0 -108
  677. package/lib/stores/file.d.ts.map +0 -1
  678. package/lib/stores/file.js +0 -188
  679. package/lib/stores/file.js.map +0 -1
  680. package/lib/stores/file.spec.d.ts +0 -13
  681. package/lib/stores/file.spec.d.ts.map +0 -1
  682. package/lib/stores/file.spec.js +0 -138
  683. package/lib/stores/file.spec.js.map +0 -1
  684. package/lib/stores/mapper.d.ts +0 -150
  685. package/lib/stores/mapper.d.ts.map +0 -1
  686. package/lib/stores/mapper.js +0 -293
  687. package/lib/stores/mapper.js.map +0 -1
  688. package/lib/stores/mapper.spec.d.ts +0 -2
  689. package/lib/stores/mapper.spec.d.ts.map +0 -1
  690. package/lib/stores/mapper.spec.js +0 -167
  691. package/lib/stores/mapper.spec.js.map +0 -1
  692. package/lib/stores/memory.d.ts +0 -152
  693. package/lib/stores/memory.d.ts.map +0 -1
  694. package/lib/stores/memory.js +0 -371
  695. package/lib/stores/memory.js.map +0 -1
  696. package/lib/stores/memory.spec.d.ts +0 -14
  697. package/lib/stores/memory.spec.d.ts.map +0 -1
  698. package/lib/stores/memory.spec.js +0 -263
  699. package/lib/stores/memory.spec.js.map +0 -1
  700. package/lib/stores/modelmapper.d.ts +0 -62
  701. package/lib/stores/modelmapper.d.ts.map +0 -1
  702. package/lib/stores/modelmapper.js +0 -197
  703. package/lib/stores/modelmapper.js.map +0 -1
  704. package/lib/stores/store.spec.d.ts +0 -57
  705. package/lib/stores/store.spec.d.ts.map +0 -1
  706. package/lib/stores/store.spec.js +0 -737
  707. package/lib/stores/store.spec.js.map +0 -1
  708. package/lib/test.d.ts +0 -265
  709. package/lib/test.d.ts.map +0 -1
  710. package/lib/test.js +0 -622
  711. package/lib/test.js.map +0 -1
  712. package/lib/unpackedapplication.d.ts.map +0 -1
  713. package/lib/unpackedapplication.js +0 -350
  714. package/lib/unpackedapplication.js.map +0 -1
  715. package/lib/utils/abstractdeployer.spec.d.ts +0 -2
  716. package/lib/utils/abstractdeployer.spec.d.ts.map +0 -1
  717. package/lib/utils/abstractdeployer.spec.js +0 -21
  718. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  719. package/lib/utils/case.d.ts +0 -8
  720. package/lib/utils/case.d.ts.map +0 -1
  721. package/lib/utils/case.js +0 -43
  722. package/lib/utils/case.js.map +0 -1
  723. package/lib/utils/case.spec.d.ts +0 -2
  724. package/lib/utils/case.spec.d.ts.map +0 -1
  725. package/lib/utils/case.spec.js +0 -50
  726. package/lib/utils/case.spec.js.map +0 -1
  727. package/lib/utils/context.d.ts +0 -482
  728. package/lib/utils/context.d.ts.map +0 -1
  729. package/lib/utils/context.js +0 -739
  730. package/lib/utils/context.js.map +0 -1
  731. package/lib/utils/context.spec.d.ts +0 -10
  732. package/lib/utils/context.spec.d.ts.map +0 -1
  733. package/lib/utils/context.spec.js +0 -383
  734. package/lib/utils/context.spec.js.map +0 -1
  735. package/lib/utils/cookie.d.ts.map +0 -1
  736. package/lib/utils/cookie.js.map +0 -1
  737. package/lib/utils/cookie.spec.d.ts +0 -2
  738. package/lib/utils/cookie.spec.d.ts.map +0 -1
  739. package/lib/utils/cookie.spec.js +0 -88
  740. package/lib/utils/cookie.spec.js.map +0 -1
  741. package/lib/utils/esm.d.ts +0 -14
  742. package/lib/utils/esm.d.ts.map +0 -1
  743. package/lib/utils/esm.js +0 -19
  744. package/lib/utils/esm.js.map +0 -1
  745. package/lib/utils/httpcontext.d.ts.map +0 -1
  746. package/lib/utils/httpcontext.js.map +0 -1
  747. package/lib/utils/httpcontext.spec.d.ts +0 -5
  748. package/lib/utils/httpcontext.spec.d.ts.map +0 -1
  749. package/lib/utils/httpcontext.spec.js +0 -77
  750. package/lib/utils/httpcontext.spec.js.map +0 -1
  751. package/lib/utils/logger.d.ts +0 -92
  752. package/lib/utils/logger.d.ts.map +0 -1
  753. package/lib/utils/logger.js +0 -121
  754. package/lib/utils/logger.js.map +0 -1
  755. package/lib/utils/logger.spec.d.ts +0 -2
  756. package/lib/utils/logger.spec.d.ts.map +0 -1
  757. package/lib/utils/logger.spec.js +0 -48
  758. package/lib/utils/logger.spec.js.map +0 -1
  759. package/lib/utils/serializers.d.ts +0 -162
  760. package/lib/utils/serializers.d.ts.map +0 -1
  761. package/lib/utils/serializers.js +0 -420
  762. package/lib/utils/serializers.js.map +0 -1
  763. package/lib/utils/serializers.spec.d.ts +0 -2
  764. package/lib/utils/serializers.spec.d.ts.map +0 -1
  765. package/lib/utils/serializers.spec.js +0 -311
  766. package/lib/utils/serializers.spec.js.map +0 -1
  767. package/lib/utils/session.d.ts +0 -123
  768. package/lib/utils/session.d.ts.map +0 -1
  769. package/lib/utils/session.js +0 -156
  770. package/lib/utils/session.js.map +0 -1
  771. package/lib/utils/session.spec.d.ts +0 -2
  772. package/lib/utils/session.spec.d.ts.map +0 -1
  773. package/lib/utils/session.spec.js +0 -81
  774. package/lib/utils/session.spec.js.map +0 -1
  775. package/lib/utils/throttler.d.ts +0 -99
  776. package/lib/utils/throttler.d.ts.map +0 -1
  777. package/lib/utils/throttler.js +0 -160
  778. package/lib/utils/throttler.js.map +0 -1
  779. package/lib/utils/throttler.spec.d.ts +0 -2
  780. package/lib/utils/throttler.spec.d.ts.map +0 -1
  781. package/lib/utils/throttler.spec.js +0 -53
  782. package/lib/utils/throttler.spec.js.map +0 -1
  783. package/lib/utils/waiter.d.ts +0 -94
  784. package/lib/utils/waiter.d.ts.map +0 -1
  785. package/lib/utils/waiter.js +0 -148
  786. package/lib/utils/waiter.js.map +0 -1
  787. package/lib/utils/waiter.spec.d.ts +0 -2
  788. package/lib/utils/waiter.spec.d.ts.map +0 -1
  789. package/lib/utils/waiter.spec.js +0 -98
  790. package/lib/utils/waiter.spec.js.map +0 -1
  791. package/test/jsonutils/mdocs.yaml +0 -56
  792. package/test/jsonutils/test.json +0 -3
  793. package/test/jsonutils/test.yml +0 -5
@@ -1,1214 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { EventEmitter } from "events";
8
- import util from "util";
9
- import { Core, EventEmitterUtils } from "../core.js";
10
- import * as WebdaError from "../errors.js";
11
- import { BinariesImpl, Binary } from "../services/binary.js";
12
- import * as WebdaQL from "@webda/ql";
13
- import { Throttler } from "../utils/throttler.js";
14
- import { ModelLinksArray, ModelLinksSimpleArray, ModelMapLoaderImplementation, createModelLinksMap } from "./relations.js";
15
- /**
16
- * Expose the model through API or GraphQL if it exists
17
- * The model will be exposed using its class name + 's'
18
- * If you need to have a specific plural, use the annotation WebdaPlural
19
- * to define the plural name
20
- *
21
- * @returns
22
- */
23
- export function Expose(params = {}) {
24
- return (target) => {
25
- params.restrict ?? (params.restrict = {});
26
- target.Expose = params;
27
- };
28
- }
29
- /**
30
- *
31
- */
32
- export class CoreModelQuery {
33
- constructor(type, model, attribute) {
34
- this.attribute = attribute;
35
- this.type = type;
36
- this.model = model;
37
- }
38
- /**
39
- * Retrieve target model definition
40
- * @returns
41
- */
42
- getTargetModel() {
43
- this.targetModel ?? (this.targetModel = Core.get().getModel(this.type));
44
- return this.targetModel;
45
- }
46
- /**
47
- * Query the object
48
- * @param query
49
- * @returns
50
- */
51
- query(query, context) {
52
- return this.getTargetModel().query(this.completeQuery(query), true, context);
53
- }
54
- /**
55
- * Complete the query with condition
56
- * @param query
57
- * @returns
58
- */
59
- completeQuery(query) {
60
- return WebdaQL.PrependCondition(query, `${this.attribute} = '${this.model.getUuid()}'`);
61
- }
62
- /**
63
- *
64
- * @param callback
65
- * @param context
66
- */
67
- async forEach(callback, query, context, parallelism = 3) {
68
- const throttler = new Throttler();
69
- throttler.setConcurrency(parallelism);
70
- for await (const model of this.iterate(query, context)) {
71
- throttler.execute(() => callback(model));
72
- }
73
- return throttler.wait();
74
- }
75
- /**
76
- * Iterate through all
77
- * @param context
78
- * @returns
79
- */
80
- iterate(query, context) {
81
- return Core.get().getModelStore(this.getTargetModel()).iterate(this.completeQuery(query), context);
82
- }
83
- /**
84
- * Get all the objects
85
- * @returns
86
- */
87
- async getAll(context) {
88
- const res = [];
89
- for await (const item of this.iterate(this.completeQuery(), context)) {
90
- res.push(item);
91
- }
92
- return res;
93
- }
94
- }
95
- __decorate([
96
- NotEnumerable
97
- ], CoreModelQuery.prototype, "type", void 0);
98
- __decorate([
99
- NotEnumerable
100
- ], CoreModelQuery.prototype, "model", void 0);
101
- __decorate([
102
- NotEnumerable
103
- ], CoreModelQuery.prototype, "attribute", void 0);
104
- __decorate([
105
- NotEnumerable
106
- ], CoreModelQuery.prototype, "targetModel", void 0);
107
- /**
108
- * Make a property hidden from json and schema
109
- *
110
- * This property will not be saved in the store
111
- * Nor it will be exposed in the API
112
- *
113
- * @param target
114
- * @param propertyKey
115
- */
116
- export function NotEnumerable(target, propertyKey) {
117
- Object.defineProperty(target, propertyKey, {
118
- set(value) {
119
- Object.defineProperty(this, propertyKey, {
120
- value,
121
- writable: true,
122
- configurable: true
123
- });
124
- },
125
- configurable: true
126
- });
127
- }
128
- const ActionsAnnotated = new Map();
129
- /**
130
- * Define an object method as an action
131
- * @param target
132
- * @param propertyKey
133
- */
134
- export function Action(options = {}) {
135
- return (target, propertyKey) => {
136
- let custom = target;
137
- const global = typeof target === "function";
138
- if (!global) {
139
- custom = target.constructor;
140
- }
141
- if (!ActionsAnnotated.has(custom)) {
142
- ActionsAnnotated.set(custom, {});
143
- }
144
- const actions = ActionsAnnotated.get(custom);
145
- actions[options.name || propertyKey] = {
146
- ...options,
147
- global,
148
- method: propertyKey
149
- };
150
- };
151
- }
152
- export class ModelRef {
153
- constructor(uuid, model, parent) {
154
- this.uuid = uuid;
155
- this.model = model;
156
- this.uuid = uuid === "" ? undefined : model.completeUid(uuid);
157
- this.store = Core.get().getModelStore(model);
158
- }
159
- async get(context) {
160
- return (await this.store.get(this.uuid))?.setContext(context || this.parent?.getContext());
161
- }
162
- set(id) {
163
- this.uuid = id instanceof CoreModel ? id.getUuid() : id;
164
- this.parent?.__dirty.add(Object.keys(this.parent).find(k => this.parent[k] === this));
165
- }
166
- toString() {
167
- return this.uuid;
168
- }
169
- toJSON() {
170
- return this.uuid;
171
- }
172
- getUuid() {
173
- return this.uuid;
174
- }
175
- async deleteItemFromCollection(prop, index, itemWriteCondition, itemWriteConditionField) {
176
- const updateDate = await this.store.deleteItemFromCollection(this.uuid, prop, index, itemWriteCondition, itemWriteConditionField);
177
- await this.model.emitSync("Store.PartialUpdated", {
178
- object_id: this.uuid,
179
- store: this.store,
180
- updateDate,
181
- partial_update: {
182
- deleteItem: {
183
- property: prop,
184
- index: index
185
- }
186
- }
187
- });
188
- return this;
189
- }
190
- async upsertItemToCollection(prop, item, index, itemWriteCondition, itemWriteConditionField) {
191
- const updateDate = await this.store.upsertItemToCollection(this.uuid, prop, item, index, itemWriteCondition, itemWriteConditionField);
192
- await this.model.emitSync("Store.PartialUpdated", {
193
- object_id: this.uuid,
194
- store: this.store,
195
- updateDate,
196
- partial_update: {
197
- addItem: {
198
- value: item,
199
- property: prop,
200
- index: index
201
- }
202
- }
203
- });
204
- return this;
205
- }
206
- exists() {
207
- return this.store.exists(this.uuid);
208
- }
209
- delete() {
210
- return this.store.delete(this.uuid);
211
- }
212
- conditionalPatch(updates, conditionField, condition) {
213
- return this.store.conditionalPatch(this.uuid, updates, conditionField, condition);
214
- }
215
- patch(updates) {
216
- return this.store.conditionalPatch(this.uuid, updates, null, undefined);
217
- }
218
- async setAttribute(attribute, value) {
219
- await this.store.setAttribute(this.uuid, attribute, value);
220
- return this;
221
- }
222
- async removeAttribute(attribute, itemWriteCondition, itemWriteConditionField) {
223
- await this.store.removeAttribute(this.uuid, attribute, itemWriteCondition, itemWriteConditionField);
224
- await this.model?.emitSync("Store.PartialUpdated", {
225
- object_id: this.uuid,
226
- store: this.store,
227
- partial_update: {
228
- deleteAttribute: attribute
229
- }
230
- });
231
- return this;
232
- }
233
- async incrementAttributes(info) {
234
- const updateDate = await this.store.incrementAttributes(this.uuid, info);
235
- await this.model.emitSync("Store.PartialUpdated", {
236
- object_id: this.uuid,
237
- store: this.store,
238
- updateDate,
239
- partial_update: {
240
- increments: info
241
- }
242
- });
243
- return this;
244
- }
245
- }
246
- __decorate([
247
- NotEnumerable
248
- ], ModelRef.prototype, "store", void 0);
249
- __decorate([
250
- NotEnumerable
251
- ], ModelRef.prototype, "model", void 0);
252
- __decorate([
253
- NotEnumerable
254
- ], ModelRef.prototype, "parent", void 0);
255
- export class ModelRefWithCreate extends ModelRef {
256
- /**
257
- * Allow to create a model
258
- * @param defaultValue
259
- * @param context
260
- * @param withSave
261
- * @returns
262
- */
263
- async create(defaultValue, context, withSave = true) {
264
- const result = new this.model().setContext(context).load(defaultValue, true).setUuid(this.uuid);
265
- if (withSave) {
266
- await result.save();
267
- }
268
- return result;
269
- }
270
- /**
271
- * Load a model from the known store
272
- *
273
- * @param this the class from which the static is called
274
- * @param id of the object to load
275
- * @param defaultValue if object not found return a default object
276
- * @param context to set on the object
277
- * @returns
278
- */
279
- async getOrCreate(defaultValue, context, withSave = true) {
280
- return (await this.get()) || this.create(defaultValue, context, withSave);
281
- }
282
- }
283
- export class ModelRefCustom extends ModelRef {
284
- constructor(uuid, model, data, parent) {
285
- super(uuid, model, parent);
286
- this.uuid = uuid;
287
- Object.assign(this, data);
288
- }
289
- toJSON() {
290
- return this;
291
- }
292
- getUuid() {
293
- return this.uuid;
294
- }
295
- }
296
- export const Emitters = new WeakMap();
297
- /**
298
- * Basic Object in Webda
299
- *
300
- * It is used to define a data stored
301
- * Any variable starting with _ can only be set by the server
302
- * Any variable starting with __ won't be exported outside of the server
303
- *
304
- * @class
305
- * @WebdaModel
306
- */
307
- class CoreModel {
308
- constructor() {
309
- this.__dirty = new Set();
310
- this.__class = new.target;
311
- // Get the store automatically now
312
- this.__store = Core.get()?.getModelStore(new.target);
313
- // Get the type automatically now
314
- this.__type = Core.get()?.getApplication().getShortId(Core.get()?.getApplication().getModelFromInstance(this));
315
- }
316
- /**
317
- * Listen to events on the model
318
- * @param event
319
- * @param listener
320
- * @param async
321
- */
322
- static on(event, listener, async = false) {
323
- if (!Emitters.has(this)) {
324
- Emitters.set(this, new EventEmitter());
325
- }
326
- // TODO Manage async
327
- if (async) {
328
- Core.get()
329
- .getService("AsyncEvents")
330
- .bindAsyncListener(this, event, listener);
331
- }
332
- else {
333
- Emitters.get(this).on(event, listener);
334
- }
335
- return this;
336
- }
337
- /**
338
- * Emit an event for this class
339
- * @param this
340
- * @param event
341
- * @param evt
342
- */
343
- static emit(event, evt) {
344
- // eslint-disable-next-line @typescript-eslint/no-this-alias
345
- let clazz = this;
346
- // @ts-ignore
347
- while (clazz) {
348
- // Emit for all parent class
349
- if (Emitters.has(clazz)) {
350
- EventEmitterUtils.emit(Emitters.get(clazz), event, evt);
351
- }
352
- // @ts-ignore
353
- if (clazz === CoreModel) {
354
- break;
355
- }
356
- clazz = Object.getPrototypeOf(clazz);
357
- }
358
- }
359
- /**
360
- * Emit an event for this class and wait for all listeners to finish
361
- * @param this
362
- * @param event
363
- * @param evt
364
- */
365
- static async emitSync(event, evt) {
366
- // eslint-disable-next-line @typescript-eslint/no-this-alias
367
- let clazz = this;
368
- const p = [];
369
- // @ts-ignore
370
- while (clazz) {
371
- // Emit for all parent class
372
- if (Emitters.has(clazz)) {
373
- p.push(EventEmitterUtils.emitSync(Emitters.get(clazz), event, evt));
374
- }
375
- // @ts-ignore
376
- if (clazz === CoreModel) {
377
- break;
378
- }
379
- clazz = Object.getPrototypeOf(clazz);
380
- }
381
- await Promise.all(p);
382
- }
383
- /**
384
- * Listen to events on the model asynchronously
385
- * @param event
386
- * @param listener
387
- */
388
- static onAsync(event, listener, queue) {
389
- return this.on(event, listener, true);
390
- }
391
- /**
392
- *
393
- * @param event
394
- * @param listener
395
- * @returns
396
- */
397
- static addListener(event, listener) {
398
- return this.on(event, listener);
399
- }
400
- static emitter(method, ...args) {
401
- if (!Emitters.has(this)) {
402
- Emitters.set(this, new EventEmitter());
403
- }
404
- // @ts-ignore
405
- return Emitters.get(this)[method](...args);
406
- }
407
- static removeListener(...args) {
408
- return this.emitter("removeListener", ...args);
409
- }
410
- static off(...args) {
411
- return this.emitter("off", ...args);
412
- }
413
- static once(...args) {
414
- return this.emitter("once", ...args);
415
- }
416
- static removeAllListeners(...args) {
417
- return this.emitter("removeAllListeners", ...args);
418
- }
419
- static setMaxListeners(...args) {
420
- return this.emitter("setMaxListeners", ...args);
421
- }
422
- static getMaxListeners(...args) {
423
- return this.emitter("getMaxListeners", ...args);
424
- }
425
- static listeners(...args) {
426
- return this.emitter("listeners", ...args);
427
- }
428
- static rawListeners(...args) {
429
- return this.emitter("rawListeners", ...args);
430
- }
431
- static listenerCount(...args) {
432
- return this.emitter("listenerCount", ...args);
433
- }
434
- static prependListener(...args) {
435
- return this.emitter("prependListener", ...args);
436
- }
437
- static prependOnceListener(...args) {
438
- return this.emitter("prependOnceListener", ...args);
439
- }
440
- static eventNames(...args) {
441
- return this.emitter("eventNames", ...args);
442
- }
443
- /**
444
- *
445
- * @returns
446
- */
447
- static getRelations() {
448
- return Core.get()?.getApplication().getRelations(this);
449
- }
450
- /**
451
- * Do not declare any public events by default
452
- * @returns
453
- */
454
- static getClientEvents() {
455
- return [];
456
- }
457
- /**
458
- * Does not allow any event by default
459
- * @param _event
460
- * @param _context
461
- * @returns
462
- */
463
- static authorizeClientEvent(_event, _context, _model) {
464
- return false;
465
- }
466
- /**
467
- * Get Store for this model
468
- * @param this
469
- * @returns
470
- */
471
- static store() {
472
- if (!Core.get()) {
473
- throw new Error("Webda not initialized");
474
- }
475
- return Core.get().getModelStore(this);
476
- }
477
- /**
478
- * Complete the uid with prefix if any
479
- *
480
- * Useful when object are stored with a prefix for full uuid
481
- * @param uid
482
- * @returns
483
- */
484
- static completeUid(uid) {
485
- return uid;
486
- }
487
- /**
488
- * Return the known schema
489
- * @returns
490
- */
491
- static getSchema() {
492
- const app = Core.get()?.getApplication();
493
- return app?.getSchema(app.getModelFromConstructor(this));
494
- }
495
- /**
496
- * Get a reference to a model
497
- * @param this
498
- * @param uid
499
- * @returns
500
- */
501
- static ref(uid) {
502
- return new ModelRefWithCreate(uid, this);
503
- }
504
- /**
505
- * Get a reference to a model
506
- * @param this
507
- * @param uid
508
- * @returns
509
- */
510
- static create(data) {
511
- return new this().load(data, true).save();
512
- }
513
- /**
514
- * Get identifier for this model
515
- * @returns
516
- */
517
- static getIdentifier(short = true) {
518
- const res = Core.get().getApplication().getModelName(this);
519
- if (short) {
520
- return Core.get().getApplication().getShortId(res);
521
- }
522
- else {
523
- return res;
524
- }
525
- }
526
- /**
527
- * By default allow a field
528
- * @returns
529
- */
530
- isDeleted() {
531
- return this.__deleted;
532
- }
533
- /**
534
- * Get the model hierarchy
535
- *
536
- * Ancestors will contain every model it inherits from
537
- * Children will contain every model that inherits from this model in a tree structure
538
- */
539
- static getHierarchy() {
540
- return Core.get().getApplication().getModelHierarchy(this);
541
- }
542
- /**
543
- * Unflat an object
544
- * @param data
545
- * @param split
546
- * @returns
547
- */
548
- static unflat(data, split = "#") {
549
- const res = {};
550
- for (const i in data) {
551
- const attrs = i.split(split);
552
- let attr = attrs.shift();
553
- let cur = res;
554
- while (attr) {
555
- if (attrs.length) {
556
- cur[attr] ?? (cur[attr] = {});
557
- cur = cur[attr];
558
- }
559
- else {
560
- cur[attr] = data[i];
561
- }
562
- attr = attrs.shift();
563
- }
564
- }
565
- return res;
566
- }
567
- /**
568
- * Create subobject for a model
569
- *
570
- * Useful for counters
571
- *
572
- * @param split
573
- * @returns
574
- */
575
- unflat(split = "#") {
576
- return CoreModel.unflat(this, split);
577
- }
578
- /**
579
- * Flat an object into another
580
- *
581
- * {
582
- * a: {
583
- * b: 1
584
- * },
585
- * c: 1
586
- * }
587
- *
588
- * become
589
- *
590
- * {
591
- * "a#b": 1
592
- * "c": 1
593
- * }
594
- *
595
- * @param target
596
- * @param data
597
- * @param split
598
- * @param prefix
599
- */
600
- static flat(target, data, split = "#", prefix = "") {
601
- for (const i in data) {
602
- if (typeof data[i] === "object") {
603
- CoreModel.flat(target, data[i], split, i + split);
604
- }
605
- else {
606
- target[prefix + i] = data[i];
607
- }
608
- }
609
- }
610
- /**
611
- * Complete the query with __type/__types
612
- * @param query
613
- * @param includeSubclass
614
- * @returns
615
- */
616
- static completeQuery(query, includeSubclass = true) {
617
- if (!query.includes("__type")) {
618
- let condition;
619
- const app = Core.get().getApplication();
620
- const name = app.getShortId(app.getModelName(this));
621
- if (includeSubclass) {
622
- condition = `__types CONTAINS "${name}"`;
623
- }
624
- else {
625
- condition = `__type = "${name}"`;
626
- }
627
- return WebdaQL.PrependCondition(query, condition);
628
- }
629
- return query;
630
- }
631
- /**
632
- * Iterate through the model
633
- *
634
- * How to use a iterator is:
635
- *
636
- * ```
637
- * for await (const model of CoreModel.iterate()) {
638
- * // Do something with my model
639
- * }
640
- * ```
641
- *
642
- * @param this
643
- * @param query
644
- * @param includeSubclass
645
- * @param context
646
- * @returns
647
- */
648
- static iterate(query = "", includeSubclass = true, context) {
649
- // @ts-ignore
650
- return this.store().iterate(this.completeQuery(query, includeSubclass), context);
651
- }
652
- /**
653
- * Query for models
654
- * @param this
655
- * @param id
656
- * @returns
657
- */
658
- static async query(query = "", includeSubclass = true, context) {
659
- // @ts-ignore
660
- return this.store().query(this.completeQuery(query, includeSubclass), context);
661
- }
662
- /**
663
- * Return a proxy to the object to detect if dirty
664
- * @returns
665
- */
666
- getProxy() {
667
- const subProxier = prop => {
668
- return {
669
- set: (target, p, value) => {
670
- this.__dirty.add(prop);
671
- target[p] = value;
672
- return true;
673
- },
674
- get: (target, p) => {
675
- if (Array.isArray(target[p]) || target[p] instanceof Object) {
676
- return new Proxy(target[p], subProxier(prop));
677
- }
678
- return target[p];
679
- },
680
- deleteProperty: (t, property) => {
681
- delete t[property];
682
- this.__dirty.add(prop);
683
- return true;
684
- }
685
- };
686
- };
687
- const proxier = {
688
- deleteProperty: (t, property) => {
689
- delete t[property];
690
- this.__dirty.add(property);
691
- return true;
692
- },
693
- set: (target, p, value) => {
694
- if (p !== "__dirty") {
695
- target.__dirty.add(p);
696
- }
697
- target[p] = value;
698
- return true;
699
- },
700
- get: (target, p) => {
701
- if (typeof p === "string" && p.startsWith("__")) {
702
- return target[p];
703
- }
704
- if (Array.isArray(target[p]) || target[p] instanceof Object) {
705
- return new Proxy(target[p], subProxier(p));
706
- }
707
- return target[p];
708
- }
709
- };
710
- return new Proxy(this, proxier);
711
- }
712
- /**
713
- * Return true if needs a save
714
- * @returns
715
- */
716
- isDirty() {
717
- return this.__dirty.size > 0;
718
- }
719
- /**
720
- *
721
- * @returns the uuid of the object
722
- */
723
- getUuid() {
724
- // @ts-ignore
725
- return this[this.__class.getUuidField()];
726
- }
727
- /**
728
- *
729
- * @param uuid
730
- * @param target
731
- */
732
- setUuid(uuid, target = this) {
733
- target[this.__class.getUuidField()] = uuid;
734
- return target;
735
- }
736
- /**
737
- * Get actions callable on an object
738
- *
739
- * This will expose them by the Store with /storeUrl/{uuid}/{action}
740
- */
741
- static getActions() {
742
- const actions = [];
743
- // Explore all parent classes to collect all known actions
744
- // eslint-disable-next-line @typescript-eslint/no-this-alias
745
- let clazz = this;
746
- // @ts-ignore
747
- while (clazz !== CoreModel) {
748
- if (ActionsAnnotated.has(clazz)) {
749
- actions.push(ActionsAnnotated.get(clazz));
750
- }
751
- clazz = Object.getPrototypeOf(clazz);
752
- }
753
- // Reduce right to give priority to the last class:
754
- return actions.reduceRight((v, c) => ({ ...v, ...c }), {});
755
- }
756
- /**
757
- * Return the expressable query for permission
758
- *
759
- * @param context of the query
760
- * @returns
761
- */
762
- static getPermissionQuery(_ctx) {
763
- return null;
764
- }
765
- async checkAct(context, action) {
766
- const msg = await this.canAct(context, action);
767
- if (msg !== true) {
768
- throw new WebdaError.Forbidden(msg === false ? "No permission" : msg);
769
- }
770
- }
771
- /**
772
- * By default nothing is permitted on a CoreModel
773
- * @returns
774
- */
775
- async canAct(_context, _action) {
776
- return "This model does not support any action: override canAct";
777
- }
778
- /**
779
- * Get the UUID property
780
- */
781
- static getUuidField() {
782
- return "uuid";
783
- }
784
- /**
785
- * Create an object
786
- * @returns
787
- */
788
- static factory(object, context) {
789
- return object instanceof this ? object : new this().setContext(context).load(object, context === undefined);
790
- }
791
- /**
792
- * Detect what looks like a CoreModel but can be from different version
793
- * @param object
794
- * @returns
795
- */
796
- static instanceOf(object) {
797
- return (typeof object.toStoredJSON === "function" && object.__class && object.__class.factory && object.__class.instanceOf);
798
- }
799
- /**
800
- * Return a unique reference within the application to the object
801
- *
802
- * It contains the Store containing it
803
- * @returns
804
- */
805
- getFullUuid() {
806
- return `${this.__type.replace(/\//, "-")}$${this.getUuid()}`;
807
- }
808
- /**
809
- * Get an object from the full uuid
810
- * @param core
811
- * @param fullUuid
812
- * @param partials
813
- * @returns
814
- */
815
- static async fromFullUuid(fullUuid, core = Core.get(), partials) {
816
- const [model, uuid] = fullUuid.split("$");
817
- const modelObject = core.getApplication().getModel(model.replace("-", "/"));
818
- if (partials) {
819
- return new modelObject().load(partials, true).setUuid(uuid);
820
- }
821
- return new modelObject().setUuid(uuid).get();
822
- }
823
- /**
824
- * Allow to define custom permission per attribute
825
- *
826
- * This method allows you to do permission based attribute
827
- * But also a mask destructive attribute
828
- *
829
- * @param key
830
- * @param value
831
- * @param mode
832
- * @param context
833
- * @returns updated value
834
- */
835
- attributePermission(key, value, mode, context) {
836
- if (mode === "WRITE") {
837
- return key.startsWith("_") ? undefined : value;
838
- }
839
- else {
840
- return !key.startsWith("__") ? value : undefined;
841
- }
842
- }
843
- /**
844
- * Load an object from RAW
845
- *
846
- * @param raw data
847
- * @param secure if false will ignore any _ variable
848
- */
849
- load(raw, secure = false, relations = true) {
850
- // Object assign with filter
851
- for (const prop in raw) {
852
- let val = raw[prop];
853
- if (!secure) {
854
- val = this.attributePermission(prop, raw[prop], "WRITE");
855
- if (val === undefined) {
856
- continue;
857
- }
858
- }
859
- // @ts-ignore
860
- this[prop] = val;
861
- }
862
- if (this._creationDate) {
863
- this._creationDate = new Date(this._creationDate);
864
- }
865
- if (this._lastUpdate) {
866
- this._lastUpdate = new Date(this._lastUpdate);
867
- }
868
- if (!this.getUuid()) {
869
- this.setUuid(this.generateUid(raw));
870
- }
871
- if (relations) {
872
- this.handleRelations();
873
- }
874
- return this;
875
- }
876
- /**
877
- * Patch every attribute that is based on a relation
878
- * to add all the helpers
879
- */
880
- handleRelations() {
881
- var _a, _b;
882
- const rel = Core.get()
883
- ?.getApplication()
884
- ?.getRelations(this) || {};
885
- for (const link of rel.links || []) {
886
- const model = Core.get().getModel(link.model);
887
- if (link.type === "LINK") {
888
- this[_a = link.attribute] ?? (this[_a] = "");
889
- if (typeof this[link.attribute] === "string") {
890
- this[link.attribute] = new ModelRef(this[link.attribute], model, this);
891
- }
892
- }
893
- else if (link.type === "LINKS_ARRAY") {
894
- this[link.attribute] = new ModelLinksArray(model, this[link.attribute], this);
895
- }
896
- else if (link.type === "LINKS_SIMPLE_ARRAY") {
897
- this[link.attribute] = new ModelLinksSimpleArray(model, this[link.attribute], this);
898
- }
899
- else if (link.type === "LINKS_MAP") {
900
- this[link.attribute] = createModelLinksMap(model, this[link.attribute], this);
901
- }
902
- }
903
- for (const link of rel.maps || []) {
904
- this[link.attribute] = (this[link.attribute] || []).map(el => new ModelMapLoaderImplementation(Core.get().getModel(link.model), el, this));
905
- }
906
- for (const query of rel.queries || []) {
907
- this[query.attribute] = new CoreModelQuery(query.model, this, query.targetAttribute);
908
- }
909
- if (rel.parent) {
910
- this[_b = rel.parent.attribute] ?? (this[_b] = "");
911
- if (typeof this[rel.parent.attribute] === "string") {
912
- this[rel.parent.attribute] = new ModelRef(this[rel.parent.attribute], Core.get().getModel(rel.parent.model), this);
913
- }
914
- }
915
- for (const binary of rel.binaries || []) {
916
- if (binary.cardinality === "ONE") {
917
- this[binary.attribute] = new Binary(binary.attribute, this);
918
- }
919
- else {
920
- this[binary.attribute] = new BinariesImpl().assign(this, binary.attribute);
921
- }
922
- }
923
- }
924
- /**
925
- * Context of the request
926
- */
927
- setContext(ctx) {
928
- this.__ctx = ctx;
929
- return this;
930
- }
931
- /**
932
- * Get object context
933
- *
934
- * Global object does not belong to a request
935
- */
936
- getContext() {
937
- return this.__ctx || Core.get().getGlobalContext();
938
- }
939
- /**
940
- * Return the object registered store
941
- */
942
- getStore() {
943
- return this.__store;
944
- }
945
- /**
946
- * Get the object
947
- * @returns
948
- */
949
- async get() {
950
- return this.refresh();
951
- }
952
- /**
953
- * Get the object again
954
- *
955
- * @throws Error if the object is not coming from a store
956
- */
957
- async refresh() {
958
- const obj = await this.__store.get(this.getUuid());
959
- if (obj) {
960
- Object.assign(this, obj);
961
- for (const i in this) {
962
- // @ts-ignore
963
- if (obj[i] !== this[i]) {
964
- delete this[i];
965
- }
966
- }
967
- this.handleRelations();
968
- }
969
- return this;
970
- }
971
- /**
972
- * Delete this object
973
- *
974
- * @throws Error if the object is not coming from a store
975
- */
976
- async delete() {
977
- return this.__store.delete(this);
978
- }
979
- /**
980
- * Patch current object with this update
981
- * @param obj
982
- * @param conditionField if null no condition used otherwise fallback to lastUpdate
983
- * @param conditionValue
984
- */
985
- async patch(obj, conditionField, conditionValue) {
986
- await this.__store.patch({ [this.__class.getUuidField()]: this.getUuid(), ...obj }, true, conditionField, conditionValue);
987
- Object.assign(this, obj);
988
- }
989
- /**
990
- * Save this object
991
- *
992
- * @throws Error if the object is not coming from a store
993
- */
994
- async save(full, ...args) {
995
- // If proxy is not used and not field specified call save
996
- if ((!util.types.isProxy(this) && full === undefined) || full === true) {
997
- if (!this._creationDate || !this._lastUpdate) {
998
- await this.__store.create(this, this.getContext());
999
- }
1000
- else {
1001
- await this.__store.update(this);
1002
- }
1003
- return this;
1004
- }
1005
- const patch = {
1006
- [this.__class.getUuidField()]: this.getUuid()
1007
- };
1008
- if (typeof full === "string") {
1009
- [full, ...args].forEach(k => {
1010
- patch[k] = this[k];
1011
- });
1012
- }
1013
- else {
1014
- for (const entry of this.__dirty.entries()) {
1015
- patch[entry[0]] = this[entry[0]];
1016
- }
1017
- }
1018
- await this.__store.patch(patch);
1019
- this.__dirty.clear();
1020
- return this;
1021
- }
1022
- /**
1023
- * Validate objet modification
1024
- *
1025
- * @param ctx
1026
- * @param updates
1027
- */
1028
- async validate(ctx, updates, ignoreRequired = false) {
1029
- ctx.getWebda().validateSchema(this, updates, ignoreRequired);
1030
- return true;
1031
- }
1032
- /**
1033
- * Generate uuid for the object
1034
- *
1035
- * @param object
1036
- * @returns
1037
- */
1038
- generateUid(_object = undefined) {
1039
- return Core.get().getUuid();
1040
- }
1041
- /**
1042
- * Return the object to be serialized without the __store
1043
- *
1044
- * @param stringify
1045
- * @returns
1046
- */
1047
- toStoredJSON(stringify = false) {
1048
- const obj = this._toJSON(true);
1049
- if (stringify) {
1050
- return JSON.stringify(obj);
1051
- }
1052
- return obj;
1053
- }
1054
- /**
1055
- * Get a pre typed service
1056
- *
1057
- * @param service to retrieve
1058
- * WARNING: Only object attached to a store can retrieve service
1059
- */
1060
- getService(service) {
1061
- return this.__store.getService(service);
1062
- }
1063
- /**
1064
- * Remove the specific attributes if not secure
1065
- *
1066
- *
1067
- *
1068
- * @param secure serialize server fields also
1069
- * @returns filtered object to be serialized
1070
- */
1071
- _toJSON(secure) {
1072
- const obj = {};
1073
- for (const i in this) {
1074
- let value = this[i];
1075
- if (!secure) {
1076
- value = this.attributePermission(i, value, "READ");
1077
- }
1078
- if (value === undefined)
1079
- continue;
1080
- if (value instanceof ModelRef) {
1081
- obj[i] = value.toString();
1082
- }
1083
- else if (value instanceof Binary) {
1084
- obj[i] = value.toJSON();
1085
- }
1086
- else {
1087
- obj[i] = value;
1088
- }
1089
- }
1090
- return obj;
1091
- }
1092
- /**
1093
- * Return the object without sensitive attributes
1094
- *
1095
- * @returns Object to serialize
1096
- */
1097
- toJSON() {
1098
- return this._toJSON(false);
1099
- }
1100
- /**
1101
- * Called when object is about to be deleted
1102
- */
1103
- async _onDelete() {
1104
- // Empty to be overriden
1105
- }
1106
- /**
1107
- * Called when object has been deleted
1108
- */
1109
- async _onDeleted() {
1110
- // Empty to be overriden
1111
- }
1112
- /**
1113
- * Called when object is retrieved
1114
- */
1115
- async _onGet() {
1116
- // Empty to be overriden
1117
- }
1118
- /**
1119
- * Called when object is about to be saved
1120
- */
1121
- async _onSave() {
1122
- // Empty to be overriden
1123
- }
1124
- /**
1125
- * Called when object is saved
1126
- */
1127
- async _onSaved() {
1128
- // Empty to be overriden
1129
- }
1130
- /**
1131
- * Called when object is about to be updates
1132
- *
1133
- * @param updates to be send
1134
- */
1135
- async _onUpdate(_updates) {
1136
- // Empty to be overriden
1137
- }
1138
- /**
1139
- * Called when object is updated
1140
- */
1141
- async _onUpdated() {
1142
- // Empty to be overriden
1143
- }
1144
- /**
1145
- * Set attribute on the object and database
1146
- * @param property
1147
- * @param value
1148
- */
1149
- async setAttribute(property, value) {
1150
- await this.getRef().setAttribute(property, value);
1151
- this[property] = value;
1152
- }
1153
- /**
1154
- * Remove attribute from both the object and db
1155
- * @param property
1156
- */
1157
- async removeAttribute(property) {
1158
- await this.getRef().removeAttribute(property);
1159
- delete this[property];
1160
- }
1161
- /**
1162
- * Increment an attribute both in store and object
1163
- * @param property
1164
- * @param value
1165
- */
1166
- async incrementAttribute(property, value) {
1167
- return this.incrementAttributes([{ property, value }]);
1168
- }
1169
- /**
1170
- * Return a model ref
1171
- * @returns
1172
- */
1173
- getRef() {
1174
- return new ModelRef(this.getUuid(), this.__class);
1175
- }
1176
- /**
1177
- * Increment a attributes both in store and object
1178
- * @param info
1179
- */
1180
- async incrementAttributes(info) {
1181
- var _a;
1182
- await this.getRef().incrementAttributes(info);
1183
- for (const inc of info) {
1184
- this[_a = inc.property] ?? (this[_a] = 0);
1185
- this[inc.property] += inc.value;
1186
- }
1187
- }
1188
- }
1189
- __decorate([
1190
- NotEnumerable
1191
- ], CoreModel.prototype, "__class", void 0);
1192
- __decorate([
1193
- NotEnumerable
1194
- ], CoreModel.prototype, "__ctx", void 0);
1195
- __decorate([
1196
- NotEnumerable
1197
- ], CoreModel.prototype, "__store", void 0);
1198
- __decorate([
1199
- NotEnumerable
1200
- ], CoreModel.prototype, "__dirty", void 0);
1201
- /**
1202
- * CoreModel with a uuid
1203
- */
1204
- class UuidModel extends CoreModel {
1205
- /**
1206
- * @override
1207
- */
1208
- validate(ctx, updates, ignoreRequired) {
1209
- updates.uuid ?? (updates.uuid = this.generateUid());
1210
- return super.validate(ctx, updates, ignoreRequired);
1211
- }
1212
- }
1213
- export { CoreModel, UuidModel };
1214
- //# sourceMappingURL=coremodel.js.map