@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,792 @@
1
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
2
+ var useValue = arguments.length > 2;
3
+ for (var i = 0; i < initializers.length; i++) {
4
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
5
+ }
6
+ return useValue ? value : void 0;
7
+ };
8
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
9
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
10
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
11
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
12
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
13
+ var _, done = false;
14
+ for (var i = decorators.length - 1; i >= 0; i--) {
15
+ var context = {};
16
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
17
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
18
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
19
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
20
+ if (kind === "accessor") {
21
+ if (result === void 0) continue;
22
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
23
+ if (_ = accept(result.get)) descriptor.get = _;
24
+ if (_ = accept(result.set)) descriptor.set = _;
25
+ if (_ = accept(result.init)) initializers.unshift(_);
26
+ }
27
+ else if (_ = accept(result)) {
28
+ if (kind === "field") initializers.unshift(_);
29
+ else descriptor[key] = _;
30
+ }
31
+ }
32
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
33
+ done = true;
34
+ };
35
+ import { WorkerOutput } from "@webda/workout";
36
+ import { setLogContext } from "../loggers/hooks.js";
37
+ import { FileUtils, State } from "@webda/utils";
38
+ import { existsSync, lstatSync, readFileSync } from "node:fs";
39
+ import { join, resolve, dirname, isAbsolute } from "node:path";
40
+ import * as WebdaError from "../errors/errors.js";
41
+ import { ServiceParameters } from "../services/serviceparameters.js";
42
+ import { isModelClass } from "@webda/models";
43
+ import { InstanceCache } from "../cache/cache.js";
44
+ /**
45
+ * Define a static member that only belongs to `target`
46
+ *
47
+ * Static members are inherited by subclasses, so a factory installed on a modda would be used
48
+ * by any subclass of it. The accessor returns `value` for `target` and `fallback` for any
49
+ * subclass, and lets a subclass assign its own value.
50
+ * @param target - the class owning the member
51
+ * @param property - the static member name
52
+ * @param value - the value for `target`
53
+ * @param fallback - the value for subclasses of `target`
54
+ */
55
+ function defineOwnStatic(target, property, value, fallback) {
56
+ Object.defineProperty(target, property, {
57
+ configurable: true,
58
+ enumerable: false,
59
+ get() {
60
+ return this === target ? value : fallback;
61
+ },
62
+ set(newValue) {
63
+ Object.defineProperty(this, property, { value: newValue, writable: true, configurable: true, enumerable: true });
64
+ }
65
+ });
66
+ }
67
+ /**
68
+ * Install `filterParameters` and `createConfiguration` on a modda or bean class
69
+ *
70
+ * Both are bound to `target`: a subclass that is not registered itself would otherwise inherit them and
71
+ * have its own parameters filtered out by the parent schema. Such a subclass gets the parent configuration
72
+ * class without filtering.
73
+ * @param target - the modda or bean class
74
+ * @param configurationClass - the parameters class to instantiate
75
+ * @param schema - the parameters JSON schema, used to filter the parameters
76
+ */
77
+ export function installConfigurationFactories(target, configurationClass = ServiceParameters, schema) {
78
+ const filterParameters = (params = {}) => {
79
+ if (!schema?.properties) {
80
+ return params;
81
+ }
82
+ const filteredParams = {};
83
+ for (const field of Object.keys(schema.properties)) {
84
+ if (params[field] !== undefined) {
85
+ filteredParams[field] = params[field];
86
+ }
87
+ }
88
+ return filteredParams;
89
+ };
90
+ defineOwnStatic(target, "filterParameters", filterParameters, (params = {}) => params);
91
+ defineOwnStatic(target, "createConfiguration", (params = {}) => new configurationClass().load(filterParameters(params)), (params = {}) => new configurationClass().load(params));
92
+ }
93
+ // We should not be able to set initial from outside
94
+ const ApplicationState = State;
95
+ /**
96
+ * Map a Webda Application
97
+ *
98
+ * It allows to:
99
+ * - Analyse imported modules
100
+ * - Scan code for Modda and generate the webda.config.json
101
+ * - Compile and Watch
102
+ * - Migrate from old configuration
103
+ * - List deployments
104
+ *
105
+ *
106
+ * @category CoreFeatures
107
+ */
108
+ let Application = (() => {
109
+ let _instanceExtraInitializers = [];
110
+ let _load_decorators;
111
+ return class Application {
112
+ static {
113
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
114
+ _load_decorators = [ApplicationState({ start: "loading", end: "ready" }), InstanceCache()];
115
+ __esDecorate(this, null, _load_decorators, { kind: "method", name: "load", static: false, private: false, access: { has: obj => "load" in obj, get: obj => obj.load }, metadata: _metadata }, null, _instanceExtraInitializers);
116
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
117
+ }
118
+ /**
119
+ * Get Application root path
120
+ */
121
+ applicationPath = __runInitializers(this, _instanceExtraInitializers);
122
+ /**
123
+ * Base configuration loaded from webda.config.json
124
+ */
125
+ baseConfiguration;
126
+ /**
127
+ * Current deployment
128
+ */
129
+ currentDeployment;
130
+ /**
131
+ * Contains definitions of current application
132
+ */
133
+ appModule = {
134
+ moddas: {},
135
+ models: {},
136
+ schemas: {}
137
+ };
138
+ /**
139
+ * Deployers type registry
140
+ */
141
+ deployers = {};
142
+ /**
143
+ * Moddas registry
144
+ */
145
+ moddas = {};
146
+ /**
147
+ * Models type registry
148
+ */
149
+ models = {};
150
+ /**
151
+ * Beans registry
152
+ */
153
+ beans = {};
154
+ /**
155
+ * Behaviors registry
156
+ *
157
+ * Populated by `loadModule` from the top-level `behaviors` map of every
158
+ * loaded `webda.module.json`. Each entry holds the metadata blob emitted by
159
+ * the compiler so downstream consumers (DomainService, REST transport, etc.)
160
+ * can introspect the Behavior's declared actions and shape.
161
+ *
162
+ * The Behavior class itself is NOT loaded at runtime: the per-model
163
+ * `__hydrateBehaviors` method emitted at compile time by
164
+ * `@webda/content-mapper` holds a static import to the class, so the runtime
165
+ * never needs to look it up by identifier.
166
+ */
167
+ behaviors = {};
168
+ /**
169
+ * Class Logger
170
+ */
171
+ logger;
172
+ /**
173
+ * Detect if running as workspace
174
+ */
175
+ workspacesPath = "";
176
+ /**
177
+ * Configuration file
178
+ */
179
+ configurationFile;
180
+ /**
181
+ * Current deployment file
182
+ */
183
+ deploymentFile;
184
+ /**
185
+ * Create a new Application
186
+ * @param file - file path or unpacked configuration to load from
187
+ * @param logger - the logger instance
188
+ */
189
+ constructor(file, logger = undefined) {
190
+ this.logger = logger || new WorkerOutput();
191
+ setLogContext(this.logger);
192
+ // If configuration is a programmatic object (usually for tests)
193
+ if (typeof file !== "string") {
194
+ this.baseConfiguration = { parameters: {}, ...file };
195
+ // Still want to ensure default configuration
196
+ this.applicationPath = process.cwd();
197
+ return;
198
+ }
199
+ if (!existsSync(file)) {
200
+ throw new WebdaError.CodeError("NO_WEBDA_FOLDER", `Not a webda application folder or webda.config.(ya?ml|jsonc?) file: unexisting ${file}`);
201
+ }
202
+ // Check if file is a file or folder
203
+ if (lstatSync(file).isDirectory()) {
204
+ file = FileUtils.getConfigurationFile(join(file, "webda.config"));
205
+ }
206
+ this.configurationFile = file;
207
+ this.applicationPath = resolve(dirname(file));
208
+ }
209
+ /**
210
+ * Run the application
211
+ * @returns the result
212
+ */
213
+ async run() {
214
+ return Application._runner(this);
215
+ }
216
+ /**
217
+ * Pluggable runner — set by runner.ts to avoid circular dependency with Core.
218
+ * @internal
219
+ */
220
+ static _runner;
221
+ /**
222
+ * Import all required modules
223
+ * @returns the result
224
+ */
225
+ async load() {
226
+ await this.loadConfiguration(this.configurationFile);
227
+ await this.loadModule(this.baseConfiguration.cachedModules);
228
+ return this;
229
+ }
230
+ /**
231
+ * Allow subclass to implement migration
232
+ *
233
+ * @param file - the file path
234
+ * @returns the result
235
+ */
236
+ async loadConfiguration(file) {
237
+ // Check if file is a file or folder
238
+ if (file && !existsSync(file)) {
239
+ throw new WebdaError.CodeError("NO_WEBDA_FOLDER", `Not a webda application folder or webda.config.jsonc or webda.config.json file: ${file}`);
240
+ }
241
+ try {
242
+ this.baseConfiguration ??= file ? FileUtils.load(file) : {};
243
+ if (this.baseConfiguration.version !== 4) {
244
+ this.log("ERROR", "Your configuration file should use version 4, see https://docs.webda.io/");
245
+ }
246
+ }
247
+ catch (err) {
248
+ throw new WebdaError.CodeError("INVALID_WEBDA_CONFIG", `Cannot parse JSON of: ${file}`);
249
+ }
250
+ }
251
+ /**
252
+ * Get a schema from a type
253
+ *
254
+ * Schema should be precomputed in the default app
255
+ * @param type - the type to look up
256
+ * @returns the result
257
+ */
258
+ getSchema(type) {
259
+ // "?" suffix means optional input — return the same schema without required fields
260
+ if (type.endsWith("?")) {
261
+ const base = this.getSchema(type.slice(0, -1));
262
+ if (!base)
263
+ return undefined;
264
+ const copy = { ...base };
265
+ delete copy.required;
266
+ return copy;
267
+ }
268
+ const cm = this.baseConfiguration.cachedModules;
269
+ return (cm.schemas[type] || cm.models?.[type]?.Schemas?.Input || cm.moddas?.[type]?.Schema || cm.beans?.[type]?.Schema);
270
+ }
271
+ /**
272
+ * Get schemas
273
+ * @returns the result
274
+ */
275
+ getSchemas() {
276
+ return this.baseConfiguration.cachedModules.schemas;
277
+ }
278
+ /**
279
+ * Check if application has cached modules
280
+ *
281
+ * When deployed the application contains cachedModules in the `webda.config.json`
282
+ * It allows to avoid the search for `webda.module.json` inside node_modules and
283
+ * take the schema from the cached modules also
284
+ * @returns true if the condition is met
285
+ */
286
+ isCached() {
287
+ return true;
288
+ }
289
+ /**
290
+ * Retrieve specific webda conf from package.json
291
+ *
292
+ * In case of workspaces the object is combined
293
+ * @returns the result
294
+ */
295
+ getPackageWebda() {
296
+ return (this.baseConfiguration.cachedModules.project?.webda || {
297
+ namespace: "Webda"
298
+ });
299
+ }
300
+ /**
301
+ * Retrieve content of package.json
302
+ * @returns the result
303
+ */
304
+ getPackageDescription() {
305
+ return this.baseConfiguration.cachedModules?.project?.package || {};
306
+ }
307
+ /**
308
+ * Log information
309
+ *
310
+ * @param level to log for
311
+ * @param args anything to display same as console.log
312
+ */
313
+ log(level, ...args) {
314
+ this.logger?.log(level, ...args);
315
+ }
316
+ /**
317
+ * Get current logger
318
+ * @returns the result
319
+ */
320
+ getWorkerOutput() {
321
+ return this.logger;
322
+ }
323
+ /**
324
+ * Return the current app path
325
+ *
326
+ * @param subpath to append to
327
+ * @returns the result string
328
+ */
329
+ getPath(subpath = undefined) {
330
+ if (subpath && subpath !== "") {
331
+ if (isAbsolute(subpath)) {
332
+ return subpath;
333
+ }
334
+ return join(this.applicationPath, subpath);
335
+ }
336
+ return this.applicationPath;
337
+ }
338
+ /**
339
+ * Add a new service
340
+ *
341
+ * @param name - the name to use
342
+ * @param service - the service instance
343
+ * @returns this for chaining
344
+ */
345
+ addModda(name, service) {
346
+ this.log("TRACE", "Registering service", name);
347
+ this.moddas[name] = service;
348
+ return this;
349
+ }
350
+ /**
351
+ *
352
+ * @param section - the section name
353
+ * @param name - the name to use
354
+ * @param caseSensitive - whether matching is case sensitive
355
+ * @returns true if the condition is met
356
+ */
357
+ hasWebdaObject(section, name) {
358
+ let objectName = this.completeNamespace(name);
359
+ this.log("TRACE", `Search for ${section} ${objectName}`);
360
+ if (!this[section][objectName] && name.indexOf("/") === -1) {
361
+ objectName = `Webda/${name}`;
362
+ }
363
+ return this[section][objectName] !== undefined;
364
+ }
365
+ /**
366
+ * Return true if `model` is the one that wins when consumers look up the
367
+ * short name in the current namespace. Used by transports (REST, GraphQL,
368
+ * gRPC) so only one model gets exposed at a given URL / type when the app
369
+ * overrides a framework-provided class — e.g. WebdaSample/User shadowing
370
+ * Webda/User at `/users`.
371
+ *
372
+ * A model is "final" when either:
373
+ * - it is the one resolved by `completeNamespace(shortName)`, or
374
+ * - no other model exists with the same short name in the current namespace.
375
+ * @param model - the fully-qualified model identifier (e.g. "Webda/User")
376
+ * @returns true when `model` should be treated as the canonical version
377
+ */
378
+ isFinalModel(model) {
379
+ if (!this.models[model]) {
380
+ return false;
381
+ }
382
+ const name = model.split("/").pop();
383
+ const resolved = this.completeNamespace(name);
384
+ // Only a model that the current namespace resolves to is exposed. If the
385
+ // app defines its own version (e.g. WebdaSample/User shadowing Webda/User)
386
+ // just that one wins; otherwise the framework-provided model stays internal.
387
+ return resolved === model;
388
+ }
389
+ /**
390
+ *
391
+ * @param section - the section name
392
+ * @param name - the name to use
393
+ * @returns the result
394
+ */
395
+ getWebdaObject(section, name) {
396
+ let objectName = this.completeNamespace(name);
397
+ this.log("TRACE", `Search for ${section} ${objectName}`);
398
+ if (!this[section][objectName] && name.indexOf("/") === -1) {
399
+ const namespaced = this.completeNamespace(name);
400
+ objectName = this[section][namespaced] ? `${namespaced}/${name}` : `Webda/${name}`;
401
+ }
402
+ if (!this[section][objectName]) {
403
+ if (Object.keys(this[section]).includes(objectName)) {
404
+ throw Error(`Null ${section.substring(0, section.length - 1)} ${objectName}`);
405
+ }
406
+ throw Error(`Undefined ${section.substring(0, section.length - 1)} ${objectName} (${Object.keys(this[section]).join(", ")})`);
407
+ }
408
+ return this[section][objectName];
409
+ }
410
+ /**
411
+ * Get a service based on name
412
+ *
413
+ * @param name - the name to use
414
+ * @returns the result
415
+ */
416
+ getModda(name) {
417
+ return this.getWebdaObject("moddas", name);
418
+ }
419
+ /**
420
+ * Return all services of the application
421
+ * @returns the result
422
+ */
423
+ getModdas() {
424
+ return this.moddas;
425
+ }
426
+ /**
427
+ * Retrieve the model implementation
428
+ *
429
+ * @param name model to retrieve
430
+ * @returns the result
431
+ */
432
+ getModel(name) {
433
+ return this.getWebdaObject("models", name);
434
+ }
435
+ /**
436
+ * Get all models definitions
437
+ * @returns the result
438
+ */
439
+ getModels() {
440
+ return this.models;
441
+ }
442
+ /**
443
+ * Return the metadata blob (Identifier, Actions, etc.) for a Behavior
444
+ * loaded from `webda.module.json`.
445
+ *
446
+ * @param identifier - fully qualified Behavior id (e.g. `Webda/MFA`)
447
+ * @returns the metadata, or undefined if no Behavior with that id is registered
448
+ */
449
+ getBehaviorMetadata(identifier) {
450
+ return this.behaviors[identifier]?.metadata;
451
+ }
452
+ /**
453
+ * Return all loaded Behaviors keyed by identifier.
454
+ *
455
+ * Each entry exposes the original metadata blob emitted by the compiler.
456
+ * @returns the result
457
+ */
458
+ getBehaviors() {
459
+ return this.behaviors;
460
+ }
461
+ /**
462
+ * Return the model name for a object
463
+ * @param object - the target object
464
+ * @returns the result
465
+ */
466
+ getModelFromInstance(object) {
467
+ return Object.keys(this.models).find(k => this.models[k] === object.constructor);
468
+ }
469
+ /**
470
+ * Return the model name for a object
471
+ * @param object - the target object
472
+ * @param model - the model to use
473
+ * @returns the result
474
+ */
475
+ getModelFromConstructor(model) {
476
+ // @ts-ignore
477
+ return Object.keys(this.models).find(k => this.models[k] === model);
478
+ }
479
+ /**
480
+ * Get the model name from a model or a constructor
481
+ *
482
+ * @param model - the model to use
483
+ * @paramn full if true always include the namespace, default is false e.g Webda/
484
+ * @returns longId for a model
485
+ */
486
+ getModelId(model) {
487
+ if (isModelClass(model)) {
488
+ return this.getModelFromConstructor(model);
489
+ }
490
+ return this.getModelFromInstance(model);
491
+ }
492
+ /**
493
+ * Return all deployers
494
+ * @returns the result
495
+ */
496
+ getDeployers() {
497
+ return this.deployers;
498
+ }
499
+ /**
500
+ * Add a new model
501
+ *
502
+ * @param name - the name to use
503
+ * @param model - the model to use
504
+ * @param dynamic class is dynamic so recompute the hierarchy
505
+ * @param metadata - the model metadata
506
+ * @returns this for chaining
507
+ */
508
+ addModel(name, model, metadata = {
509
+ Identifier: name,
510
+ Ancestors: [],
511
+ Subclasses: [],
512
+ Relations: {},
513
+ PrimaryKey: ["id"],
514
+ Events: [],
515
+ Schemas: {},
516
+ Actions: {},
517
+ Import: "",
518
+ Plural: name + "s",
519
+ Reflection: {}
520
+ }) {
521
+ name = this.completeNamespace(name);
522
+ this.log("TRACE", "Registering model", name);
523
+ if (!model) {
524
+ this.log("ERROR", "Model is undefined", name);
525
+ return this;
526
+ }
527
+ this.models[name] = model;
528
+ if (metadata) {
529
+ // Get ancestor?
530
+ const superClass = Object.getPrototypeOf(model);
531
+ model.Metadata = Object.freeze(metadata);
532
+ }
533
+ return this;
534
+ }
535
+ /* SERIALIZATION */
536
+ /**
537
+ *
538
+ * @param this - the constructor
539
+ * @param json - the JSON data
540
+ * @returns the result
541
+ */
542
+ static deserialize(json) {
543
+ const instance = new this();
544
+ instance.baseConfiguration = json.baseConfiguration;
545
+ instance.currentDeployment = json.currentDeployment;
546
+ instance.appModule = json.appModule;
547
+ return instance;
548
+ }
549
+ /**
550
+ * Serialize the application state to a plain object
551
+ * @returns the result
552
+ */
553
+ toJSON() {
554
+ return {
555
+ baseConfiguration: this.baseConfiguration,
556
+ currentDeployment: this.currentDeployment,
557
+ appModule: this.appModule
558
+ };
559
+ }
560
+ /**
561
+ * Return webda current version
562
+ *
563
+ * @returns package version
564
+ * @since 0.4.0
565
+ */
566
+ getWebdaVersion() {
567
+ return JSON.parse(readFileSync(__dirname + "/../../package.json").toString()).version;
568
+ }
569
+ /**
570
+ * Retrieve Git Repository information
571
+ *
572
+ * {@link GitInformation} for more details on how the information is gathered
573
+ * @return the git information
574
+ * @param _packageName - the package name
575
+ * @param _version - the version string
576
+ * @returns the result
577
+ */
578
+ getGitInformation(_packageName, _version) {
579
+ return this.baseConfiguration.cachedModules.project?.git;
580
+ }
581
+ /**
582
+ * Retrieve the project information
583
+ * @returns the result
584
+ */
585
+ getProjectInfo() {
586
+ return this.baseConfiguration.cachedModules.project;
587
+ }
588
+ /**
589
+ * Get current deployment name
590
+ * @returns the result string
591
+ */
592
+ getCurrentDeployment() {
593
+ return this.baseConfiguration.cachedModules.project.deployment.name;
594
+ }
595
+ /**
596
+ * Return all application modules merged as one
597
+ *
598
+ * Used when deployed
599
+ * @returns the result
600
+ */
601
+ getModules() {
602
+ return this.baseConfiguration.cachedModules;
603
+ }
604
+ /**
605
+ * Get application configuration
606
+ * @param _deployment - the deployment name
607
+ * @returns the result
608
+ */
609
+ getConfiguration(_deployment = undefined) {
610
+ return this.baseConfiguration;
611
+ }
612
+ /**
613
+ * Return current Configuration of the Application
614
+ *
615
+ * Same as calling
616
+ *
617
+ * ```js
618
+ * getConfiguration(this.currentDeployment);
619
+ * ```
620
+ * @returns the result
621
+ */
622
+ getCurrentConfiguration() {
623
+ return this.getConfiguration();
624
+ }
625
+ /**
626
+ * Import a file
627
+ *
628
+ * If the `default` is set take this or use old format
629
+ *
630
+ * @param info - the information object
631
+ * @param withExport - whether to include exports
632
+ * @returns the result
633
+ */
634
+ async importFile(info, withExport = true) {
635
+ if (info.startsWith(".")) {
636
+ info = this.getPath(info);
637
+ }
638
+ try {
639
+ this.log("TRACE", "Load file", info);
640
+ // eslint-disable-next-line prefer-const
641
+ let [importFilename, importName = "default"] = info.split(":");
642
+ if (!importFilename.endsWith(".js") && !importFilename.endsWith(".ts")) {
643
+ importFilename += ".js";
644
+ }
645
+ const importedFile = await import(importFilename);
646
+ if (!withExport) {
647
+ return;
648
+ }
649
+ const importObject = importedFile[importName];
650
+ if (!importObject) {
651
+ this.log("WARN", `Module ${importFilename} does not have export named ${importName}`);
652
+ }
653
+ return importObject;
654
+ }
655
+ catch (err) {
656
+ this.log("ERROR", "Cannot resolve require", info, err.message);
657
+ }
658
+ }
659
+ /**
660
+ * Load local module
661
+ */
662
+ async loadLocalModule() {
663
+ const moduleFile = join(process.cwd(), "webda.module.json");
664
+ if (existsSync(moduleFile)) {
665
+ await this.loadModule(FileUtils.load(moduleFile), process.cwd());
666
+ }
667
+ }
668
+ /**
669
+ * Get implementations of a class
670
+ * @param object - the target object
671
+ * @returns the result
672
+ */
673
+ getImplementations(object) {
674
+ const res = {};
675
+ for (const key in this.moddas) {
676
+ if (this.moddas[key] && object instanceof this.moddas[key]) {
677
+ res[key] = this.moddas[key];
678
+ }
679
+ }
680
+ return res;
681
+ }
682
+ /**
683
+ * Load the module,
684
+ *
685
+ * @protected
686
+ * @ignore Useless for documentation
687
+ */
688
+ async loadModule(module, parent = this.applicationPath) {
689
+ if (!module) {
690
+ return;
691
+ }
692
+ const info = module;
693
+ const sectionLoader = async (section) => {
694
+ for (const key in info[section]) {
695
+ this[section][key] ??= await this.importFile(join(parent, info[section][key].Import));
696
+ if (!this[section][key]) {
697
+ this.log("ERROR", `Cannot load ${section.substring(0, section.length - 1)} ${key} from ${join(parent, info[section][key].Import)}`);
698
+ continue;
699
+ }
700
+ if (section === "beans" || section === "moddas") {
701
+ // Load the parameters automatically
702
+ const configurationClass = info[section][key].Configuration
703
+ ? await this.importFile(join(parent, info[section][key].Configuration))
704
+ : ServiceParameters;
705
+ if (!configurationClass) {
706
+ this.log("ERROR", `Cannot load configuration for ${section.substring(0, section.length - 1)} ${key} from ${join(parent, info[section][key].Configuration)}`);
707
+ continue;
708
+ }
709
+ installConfigurationFactories(this[section][key], configurationClass, info[section][key].Schema);
710
+ }
711
+ }
712
+ };
713
+ // Filter beans based on ignoreBeans configuration
714
+ if (info.beans) {
715
+ const ignoreBeans = this.baseConfiguration?.parameters?.ignoreBeans;
716
+ for (const f of Object.keys(info.beans)) {
717
+ if (ignoreBeans === true)
718
+ continue;
719
+ if (Array.isArray(ignoreBeans) && ignoreBeans.includes(f))
720
+ continue;
721
+ this.baseConfiguration.cachedModules.beans[f] = info.beans[f];
722
+ }
723
+ }
724
+ // Behaviors are registered by metadata only — the runtime never imports
725
+ // the Behavior class. The per-model `__hydrateBehaviors(rawData)` method
726
+ // emitted at compile time by `@webda/content-mapper` holds the static
727
+ // imports needed to coerce raw values into Behavior instances, so the
728
+ // application registry just needs to retain the metadata blob (action
729
+ // shapes, identifier, etc.) for `DomainService` operation registration
730
+ // and the REST transport routing.
731
+ if (info.behaviors) {
732
+ for (const id in info.behaviors) {
733
+ this.behaviors[id] ??= { metadata: info.behaviors[id] };
734
+ }
735
+ }
736
+ // TODO Merging tree from different modules
737
+ await Promise.all([sectionLoader("moddas"), sectionLoader("models"), sectionLoader("beans")]);
738
+ // Set metadata on models - need to be done after all models are loaded
739
+ this.setModelMetadata(info.models);
740
+ }
741
+ /**
742
+ * Set object Metadata
743
+ * Need to be done after all models are loaded to resolve Ancestors and Subclasses
744
+ * @param info - the information object
745
+ */
746
+ setModelMetadata(info) {
747
+ // Might want to move this to specific methods
748
+ for (const m in this.models) {
749
+ if (!this.models[m]) {
750
+ continue;
751
+ }
752
+ // Register serializer under the full model identifier so app-specific
753
+ // classes (e.g. WebdaSample/User) don't collide with framework ones that
754
+ // share the same JS constructor name (Webda/User).
755
+ this.models[m].registerSerializer(true, m);
756
+ this.models[m].Metadata = Object.freeze({
757
+ ...info[m],
758
+ // Runtime: resolve strings to model classes for backward compat
759
+ // ModelMetadata types these as string[] but core resolves them to classes
760
+ Ancestors: info[m].Ancestors.map(s => this.models[s]),
761
+ Subclasses: info[m].Subclasses.map(s => this.models[s])
762
+ });
763
+ }
764
+ }
765
+ /**
766
+ * Return the full name including namespace
767
+ *
768
+ * In Webda the ServiceType include namespace `Webda/Store` or `Webda/Test`
769
+ * This method will make sure the namespace is present, adding it if no '/'
770
+ * is found in the name
771
+ *
772
+ * @param name - the name to use
773
+ * @returns the result string
774
+ */
775
+ completeNamespace(name = "") {
776
+ // Do not add a namespace if already present
777
+ if (name.includes("/")) {
778
+ return name;
779
+ }
780
+ return `${this.getNamespace()}/${name}`;
781
+ }
782
+ /**
783
+ * Return current namespace
784
+ * @returns the result string
785
+ */
786
+ getNamespace() {
787
+ return this.baseConfiguration?.cachedModules?.project?.webda?.namespace || "Webda";
788
+ }
789
+ };
790
+ })();
791
+ export { Application };
792
+ //# sourceMappingURL=application.js.map