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

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