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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (675) hide show
  1. package/README.md +252 -0
  2. package/lib/application/application.d.ts +437 -0
  3. package/lib/application/application.d.ts.map +1 -0
  4. package/lib/application/application.js +792 -0
  5. package/lib/application/application.js.map +1 -0
  6. package/lib/application/hooks.d.ts +34 -0
  7. package/lib/application/hooks.d.ts.map +1 -0
  8. package/lib/application/hooks.js +57 -0
  9. package/lib/application/hooks.js.map +1 -0
  10. package/lib/application/iapplication.d.ts +43 -0
  11. package/lib/application/iapplication.d.ts.map +1 -0
  12. package/lib/application/iapplication.js +2 -0
  13. package/lib/application/iapplication.js.map +1 -0
  14. package/lib/application/iconfiguration.d.ts +176 -0
  15. package/lib/application/iconfiguration.d.ts.map +1 -0
  16. package/lib/application/iconfiguration.js +8 -0
  17. package/lib/application/iconfiguration.js.map +1 -0
  18. package/lib/application/runner.d.ts +8 -0
  19. package/lib/application/runner.d.ts.map +1 -0
  20. package/lib/application/runner.js +26 -0
  21. package/lib/application/runner.js.map +1 -0
  22. package/lib/application/unpackedapplication.d.ts +104 -0
  23. package/lib/application/unpackedapplication.d.ts.map +1 -0
  24. package/lib/application/unpackedapplication.js +492 -0
  25. package/lib/application/unpackedapplication.js.map +1 -0
  26. package/lib/bin/cli-phase.d.ts +28 -0
  27. package/lib/bin/cli-phase.d.ts.map +1 -0
  28. package/lib/bin/cli-phase.js +44 -0
  29. package/lib/bin/cli-phase.js.map +1 -0
  30. package/lib/bin/cli.d.ts +161 -0
  31. package/lib/bin/cli.d.ts.map +1 -0
  32. package/lib/bin/cli.js +828 -0
  33. package/lib/bin/cli.js.map +1 -0
  34. package/lib/bin/launcher.d.ts +3 -0
  35. package/lib/bin/launcher.d.ts.map +1 -0
  36. package/lib/bin/launcher.js +50 -0
  37. package/lib/bin/launcher.js.map +1 -0
  38. package/lib/cache/cache.d.ts +33 -0
  39. package/lib/cache/cache.d.ts.map +1 -0
  40. package/lib/cache/cache.js +8 -0
  41. package/lib/cache/cache.js.map +1 -0
  42. package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -49
  43. package/lib/configurations/configuration.service.d.ts.map +1 -0
  44. package/lib/configurations/configuration.service.js +248 -0
  45. package/lib/configurations/configuration.service.js.map +1 -0
  46. package/lib/configurations/fileconfiguration.service.d.ts +30 -0
  47. package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
  48. package/lib/configurations/fileconfiguration.service.js +65 -0
  49. package/lib/configurations/fileconfiguration.service.js.map +1 -0
  50. package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
  51. package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
  52. package/lib/configurations/kubernetesconfiguration.service.js +83 -0
  53. package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
  54. package/lib/contexts/execution.d.ts +33 -0
  55. package/lib/contexts/execution.d.ts.map +1 -0
  56. package/lib/contexts/execution.js +73 -0
  57. package/lib/contexts/execution.js.map +1 -0
  58. package/lib/contexts/globalcontext.d.ts +29 -0
  59. package/lib/contexts/globalcontext.d.ts.map +1 -0
  60. package/lib/contexts/globalcontext.js +38 -0
  61. package/lib/contexts/globalcontext.js.map +1 -0
  62. package/lib/{utils → contexts}/httpcontext.d.ts +45 -19
  63. package/lib/contexts/httpcontext.d.ts.map +1 -0
  64. package/lib/{utils → contexts}/httpcontext.js +102 -34
  65. package/lib/contexts/httpcontext.js.map +1 -0
  66. package/lib/contexts/icontext.d.ts +236 -0
  67. package/lib/contexts/icontext.d.ts.map +1 -0
  68. package/lib/contexts/icontext.js +230 -0
  69. package/lib/contexts/icontext.js.map +1 -0
  70. package/lib/contexts/operationcontext.d.ts +179 -0
  71. package/lib/contexts/operationcontext.d.ts.map +1 -0
  72. package/lib/contexts/operationcontext.js +358 -0
  73. package/lib/contexts/operationcontext.js.map +1 -0
  74. package/lib/contexts/simplecontext.d.ts +31 -0
  75. package/lib/contexts/simplecontext.d.ts.map +1 -0
  76. package/lib/contexts/simplecontext.js +45 -0
  77. package/lib/contexts/simplecontext.js.map +1 -0
  78. package/lib/contexts/webcontext.d.ts +218 -0
  79. package/lib/contexts/webcontext.d.ts.map +1 -0
  80. package/lib/contexts/webcontext.js +389 -0
  81. package/lib/contexts/webcontext.js.map +1 -0
  82. package/lib/core/authorizer.d.ts +23 -0
  83. package/lib/core/authorizer.d.ts.map +1 -0
  84. package/lib/core/authorizer.js +17 -0
  85. package/lib/core/authorizer.js.map +1 -0
  86. package/lib/core/core.d.ts +225 -0
  87. package/lib/core/core.d.ts.map +1 -0
  88. package/lib/core/core.js +576 -0
  89. package/lib/core/core.js.map +1 -0
  90. package/lib/core/hooks.d.ts +72 -0
  91. package/lib/core/hooks.d.ts.map +1 -0
  92. package/lib/core/hooks.js +73 -0
  93. package/lib/core/hooks.js.map +1 -0
  94. package/lib/core/icore.d.ts +249 -0
  95. package/lib/core/icore.d.ts.map +1 -0
  96. package/lib/core/icore.js +15 -0
  97. package/lib/core/icore.js.map +1 -0
  98. package/lib/core/instancestorage.d.ts +61 -0
  99. package/lib/core/instancestorage.d.ts.map +1 -0
  100. package/lib/core/instancestorage.js +75 -0
  101. package/lib/core/instancestorage.js.map +1 -0
  102. package/lib/core/operations.d.ts +181 -0
  103. package/lib/core/operations.d.ts.map +1 -0
  104. package/lib/core/operations.js +559 -0
  105. package/lib/core/operations.js.map +1 -0
  106. package/lib/errors/errors.d.ts +126 -0
  107. package/lib/errors/errors.d.ts.map +1 -0
  108. package/lib/errors/errors.js +165 -0
  109. package/lib/errors/errors.js.map +1 -0
  110. package/lib/events/asynceventemitter.d.ts +159 -0
  111. package/lib/events/asynceventemitter.d.ts.map +1 -0
  112. package/lib/events/asynceventemitter.js +152 -0
  113. package/lib/events/asynceventemitter.js.map +1 -0
  114. package/lib/events/events.d.ts +112 -0
  115. package/lib/events/events.d.ts.map +1 -0
  116. package/lib/events/events.js +45 -0
  117. package/lib/events/events.js.map +1 -0
  118. package/lib/index.d.ts +84 -51
  119. package/lib/index.d.ts.map +1 -0
  120. package/lib/index.js +82 -59
  121. package/lib/index.js.map +1 -1
  122. package/lib/loggers/console.service.d.ts +24 -0
  123. package/lib/loggers/console.service.d.ts.map +1 -0
  124. package/lib/loggers/console.service.js +30 -0
  125. package/lib/loggers/console.service.js.map +1 -0
  126. package/lib/loggers/file.service.d.ts +25 -0
  127. package/lib/loggers/file.service.d.ts.map +1 -0
  128. package/lib/loggers/file.service.js +33 -0
  129. package/lib/loggers/file.service.js.map +1 -0
  130. package/lib/loggers/hooks.d.ts +20 -0
  131. package/lib/loggers/hooks.d.ts.map +1 -0
  132. package/lib/loggers/hooks.js +40 -0
  133. package/lib/loggers/hooks.js.map +1 -0
  134. package/lib/loggers/ilogger.d.ts +76 -0
  135. package/lib/loggers/ilogger.d.ts.map +1 -0
  136. package/lib/loggers/ilogger.js +108 -0
  137. package/lib/loggers/ilogger.js.map +1 -0
  138. package/lib/loggers/logger.d.ts +13 -0
  139. package/lib/loggers/logger.d.ts.map +1 -0
  140. package/lib/loggers/logger.js +18 -0
  141. package/lib/loggers/logger.js.map +1 -0
  142. package/lib/loggers/memory.service.d.ts +18 -0
  143. package/lib/loggers/memory.service.d.ts.map +1 -0
  144. package/lib/loggers/memory.service.js +21 -0
  145. package/lib/loggers/memory.service.js.map +1 -0
  146. package/lib/loggers/params.d.ts +47 -0
  147. package/lib/loggers/params.d.ts.map +1 -0
  148. package/lib/loggers/params.js +56 -0
  149. package/lib/loggers/params.js.map +1 -0
  150. package/lib/metrics/metrics.d.ts +25 -0
  151. package/lib/metrics/metrics.d.ts.map +1 -0
  152. package/lib/metrics/metrics.js +51 -0
  153. package/lib/metrics/metrics.js.map +1 -0
  154. package/lib/models/aclmodel.d.ts +21 -77
  155. package/lib/models/aclmodel.d.ts.map +1 -0
  156. package/lib/models/aclmodel.js +27 -204
  157. package/lib/models/aclmodel.js.map +1 -1
  158. package/lib/models/coremodel.model.d.ts +5 -0
  159. package/lib/models/coremodel.model.d.ts.map +1 -0
  160. package/lib/models/coremodel.model.js +5 -0
  161. package/lib/models/coremodel.model.js.map +1 -0
  162. package/lib/models/decorator.d.ts +63 -0
  163. package/lib/models/decorator.d.ts.map +1 -0
  164. package/lib/models/decorator.js +63 -0
  165. package/lib/models/decorator.js.map +1 -0
  166. package/lib/models/deployment.d.ts +2 -1
  167. package/lib/models/deployment.d.ts.map +1 -0
  168. package/lib/models/ident.model.d.ts +89 -0
  169. package/lib/models/ident.model.d.ts.map +1 -0
  170. package/lib/models/ident.model.js +115 -0
  171. package/lib/models/ident.model.js.map +1 -0
  172. package/lib/models/ownermodel.model.d.ts +68 -0
  173. package/lib/models/ownermodel.model.d.ts.map +1 -0
  174. package/lib/models/ownermodel.model.js +112 -0
  175. package/lib/models/ownermodel.model.js.map +1 -0
  176. package/lib/models/registry.model.d.ts +76 -0
  177. package/lib/models/registry.model.d.ts.map +1 -0
  178. package/lib/models/registry.model.js +104 -0
  179. package/lib/models/registry.model.js.map +1 -0
  180. package/lib/models/rolemodel.model.d.ts +28 -0
  181. package/lib/models/rolemodel.model.d.ts.map +1 -0
  182. package/lib/models/rolemodel.model.js +53 -0
  183. package/lib/models/rolemodel.model.js.map +1 -0
  184. package/lib/models/simpleuser.model.d.ts +78 -0
  185. package/lib/models/simpleuser.model.d.ts.map +1 -0
  186. package/lib/models/simpleuser.model.js +123 -0
  187. package/lib/models/simpleuser.model.js.map +1 -0
  188. package/lib/models/types.d.ts +113 -0
  189. package/lib/models/types.d.ts.map +1 -0
  190. package/lib/models/types.js +2 -0
  191. package/lib/models/types.js.map +1 -0
  192. package/lib/models/user.model.d.ts +103 -0
  193. package/lib/models/user.model.d.ts.map +1 -0
  194. package/lib/models/user.model.js +125 -0
  195. package/lib/models/user.model.js.map +1 -0
  196. package/lib/queues/memoryqueue.service.d.ts +72 -0
  197. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  198. package/lib/queues/memoryqueue.service.js +136 -0
  199. package/lib/queues/memoryqueue.service.js.map +1 -0
  200. package/lib/queues/pubsubservice.d.ts +9 -6
  201. package/lib/queues/pubsubservice.d.ts.map +1 -0
  202. package/lib/queues/pubsubservice.js +5 -4
  203. package/lib/queues/pubsubservice.js.map +1 -1
  204. package/lib/queues/queueservice.d.ts +10 -11
  205. package/lib/queues/queueservice.d.ts.map +1 -0
  206. package/lib/queues/queueservice.js +48 -20
  207. package/lib/queues/queueservice.js.map +1 -1
  208. package/lib/rest/hooks.d.ts +8 -0
  209. package/lib/rest/hooks.d.ts.map +1 -0
  210. package/lib/rest/hooks.js +10 -0
  211. package/lib/rest/hooks.js.map +1 -0
  212. package/lib/rest/irest.d.ts +212 -0
  213. package/lib/rest/irest.d.ts.map +1 -0
  214. package/lib/rest/irest.js +39 -0
  215. package/lib/rest/irest.js.map +1 -0
  216. package/lib/rest/originfilter.d.ts +38 -0
  217. package/lib/rest/originfilter.d.ts.map +1 -0
  218. package/lib/rest/originfilter.js +61 -0
  219. package/lib/rest/originfilter.js.map +1 -0
  220. package/lib/rest/restoperationstransport.service.d.ts +193 -0
  221. package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
  222. package/lib/rest/restoperationstransport.service.js +780 -0
  223. package/lib/rest/restoperationstransport.service.js.map +1 -0
  224. package/lib/rest/router.service.d.ts +244 -0
  225. package/lib/rest/router.service.d.ts.map +1 -0
  226. package/lib/rest/router.service.js +843 -0
  227. package/lib/rest/router.service.js.map +1 -0
  228. package/lib/schemas/hooks.d.ts +48 -0
  229. package/lib/schemas/hooks.d.ts.map +1 -0
  230. package/lib/schemas/hooks.js +152 -0
  231. package/lib/schemas/hooks.js.map +1 -0
  232. package/lib/services/audit.model.d.ts +208 -0
  233. package/lib/services/audit.model.d.ts.map +1 -0
  234. package/lib/services/audit.model.js +431 -0
  235. package/lib/services/audit.model.js.map +1 -0
  236. package/lib/services/{authentication.d.ts → authentication.service.d.ts} +140 -58
  237. package/lib/services/authentication.service.d.ts.map +1 -0
  238. package/lib/services/authentication.service.js +932 -0
  239. package/lib/services/authentication.service.js.map +1 -0
  240. package/lib/services/binary.service.d.ts +808 -0
  241. package/lib/services/binary.service.d.ts.map +1 -0
  242. package/lib/services/binary.service.js +1365 -0
  243. package/lib/services/binary.service.js.map +1 -0
  244. package/lib/services/cloudbinary.d.ts +19 -13
  245. package/lib/services/cloudbinary.d.ts.map +1 -0
  246. package/lib/services/cloudbinary.js +24 -18
  247. package/lib/services/cloudbinary.js.map +1 -1
  248. package/lib/services/command.d.ts +118 -0
  249. package/lib/services/command.d.ts.map +1 -0
  250. package/lib/services/command.js +97 -0
  251. package/lib/services/command.js.map +1 -0
  252. package/lib/services/cron.service.d.ts +142 -0
  253. package/lib/services/cron.service.d.ts.map +1 -0
  254. package/lib/services/cron.service.js +291 -0
  255. package/lib/services/cron.service.js.map +1 -0
  256. package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +77 -142
  257. package/lib/services/cryptoservice.service.d.ts.map +1 -0
  258. package/lib/services/cryptoservice.service.js +527 -0
  259. package/lib/services/cryptoservice.service.js.map +1 -0
  260. package/lib/services/debugmailer.service.d.ts +49 -0
  261. package/lib/services/debugmailer.service.d.ts.map +1 -0
  262. package/lib/services/debugmailer.service.js +66 -0
  263. package/lib/services/debugmailer.service.js.map +1 -0
  264. package/lib/services/domainservice.service.d.ts +203 -0
  265. package/lib/services/domainservice.service.d.ts.map +1 -0
  266. package/lib/services/domainservice.service.js +600 -0
  267. package/lib/services/domainservice.service.js.map +1 -0
  268. package/lib/services/httpserver.service.d.ts +248 -0
  269. package/lib/services/httpserver.service.d.ts.map +1 -0
  270. package/lib/services/httpserver.service.js +673 -0
  271. package/lib/services/httpserver.service.js.map +1 -0
  272. package/lib/services/iauthentication.d.ts +9 -0
  273. package/lib/services/iauthentication.d.ts.map +1 -0
  274. package/lib/services/iauthentication.js +2 -0
  275. package/lib/services/iauthentication.js.map +1 -0
  276. package/lib/services/icryptoservice.d.ts +127 -0
  277. package/lib/services/icryptoservice.d.ts.map +1 -0
  278. package/lib/services/icryptoservice.js +68 -0
  279. package/lib/services/icryptoservice.js.map +1 -0
  280. package/lib/services/imailer.d.ts +17 -0
  281. package/lib/services/imailer.d.ts.map +1 -0
  282. package/lib/services/imailer.js +2 -0
  283. package/lib/services/imailer.js.map +1 -0
  284. package/lib/services/iservice.d.ts +104 -0
  285. package/lib/services/iservice.d.ts.map +1 -0
  286. package/lib/services/iservice.js +63 -0
  287. package/lib/services/iservice.js.map +1 -0
  288. package/lib/services/mailer.service.d.ts +220 -0
  289. package/lib/services/mailer.service.d.ts.map +1 -0
  290. package/lib/services/mailer.service.js +251 -0
  291. package/lib/services/mailer.service.js.map +1 -0
  292. package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -10
  293. package/lib/services/notificationservice.service.d.ts.map +1 -0
  294. package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
  295. package/lib/services/notificationservice.service.js.map +1 -0
  296. package/lib/services/oauth.d.ts +58 -31
  297. package/lib/services/oauth.d.ts.map +1 -0
  298. package/lib/services/oauth.js +365 -251
  299. package/lib/services/oauth.js.map +1 -1
  300. package/lib/services/operationstransport.d.ts +65 -0
  301. package/lib/services/operationstransport.d.ts.map +1 -0
  302. package/lib/services/operationstransport.js +103 -0
  303. package/lib/services/operationstransport.js.map +1 -0
  304. package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -11
  305. package/lib/services/prometheus.service.d.ts.map +1 -0
  306. package/lib/services/prometheus.service.js +203 -0
  307. package/lib/services/prometheus.service.js.map +1 -0
  308. package/lib/services/resource.service.d.ts +121 -0
  309. package/lib/services/resource.service.d.ts.map +1 -0
  310. package/lib/services/resource.service.js +301 -0
  311. package/lib/services/resource.service.js.map +1 -0
  312. package/lib/services/service.d.ts +88 -189
  313. package/lib/services/service.d.ts.map +1 -0
  314. package/lib/services/service.js +407 -432
  315. package/lib/services/service.js.map +1 -1
  316. package/lib/services/servicecommands.d.ts +99 -0
  317. package/lib/services/servicecommands.d.ts.map +1 -0
  318. package/lib/services/servicecommands.js +165 -0
  319. package/lib/services/servicecommands.js.map +1 -0
  320. package/lib/services/serviceparameters.d.ts +33 -0
  321. package/lib/services/serviceparameters.d.ts.map +1 -0
  322. package/lib/services/serviceparameters.js +79 -0
  323. package/lib/services/serviceparameters.js.map +1 -0
  324. package/lib/{utils → session}/cookie.d.ts +32 -18
  325. package/lib/session/cookie.d.ts.map +1 -0
  326. package/lib/{utils → session}/cookie.js +76 -23
  327. package/lib/session/cookie.js.map +1 -0
  328. package/lib/session/manager.model.d.ts +71 -0
  329. package/lib/session/manager.model.d.ts.map +1 -0
  330. package/lib/session/manager.model.js +155 -0
  331. package/lib/session/manager.model.js.map +1 -0
  332. package/lib/session/session.d.ts +57 -0
  333. package/lib/session/session.d.ts.map +1 -0
  334. package/lib/session/session.js +126 -0
  335. package/lib/session/session.js.map +1 -0
  336. package/lib/stores/istore.d.ts +99 -0
  337. package/lib/stores/istore.d.ts.map +1 -0
  338. package/lib/stores/istore.js +26 -0
  339. package/lib/stores/istore.js.map +1 -0
  340. package/lib/stores/memory.service.d.ts +114 -0
  341. package/lib/stores/memory.service.d.ts.map +1 -0
  342. package/lib/stores/memory.service.js +343 -0
  343. package/lib/stores/memory.service.js.map +1 -0
  344. package/lib/stores/store.d.ts +127 -768
  345. package/lib/stores/store.d.ts.map +1 -0
  346. package/lib/stores/store.js +258 -1718
  347. package/lib/stores/store.js.map +1 -1
  348. package/lib/templates/templates.d.ts +39 -0
  349. package/lib/templates/templates.d.ts.map +1 -0
  350. package/lib/templates/templates.js +92 -0
  351. package/lib/templates/templates.js.map +1 -0
  352. package/lib/test/application.d.ts +174 -0
  353. package/lib/test/application.d.ts.map +1 -0
  354. package/lib/test/application.js +288 -0
  355. package/lib/test/application.js.map +1 -0
  356. package/lib/test/asyncstorage.d.ts +16 -0
  357. package/lib/test/asyncstorage.d.ts.map +1 -0
  358. package/lib/test/asyncstorage.js +32 -0
  359. package/lib/test/asyncstorage.js.map +1 -0
  360. package/lib/test/core.d.ts +63 -0
  361. package/lib/test/core.d.ts.map +1 -0
  362. package/lib/test/core.js +190 -0
  363. package/lib/test/core.js.map +1 -0
  364. package/lib/test/index.d.ts +7 -0
  365. package/lib/test/index.d.ts.map +1 -0
  366. package/lib/test/index.js +8 -0
  367. package/lib/test/index.js.map +1 -0
  368. package/lib/test/internal.d.ts +34 -0
  369. package/lib/test/internal.d.ts.map +1 -0
  370. package/lib/test/internal.js +156 -0
  371. package/lib/test/internal.js.map +1 -0
  372. package/lib/test/objects.d.ts +318 -0
  373. package/lib/test/objects.d.ts.map +1 -0
  374. package/lib/test/objects.js +443 -0
  375. package/lib/test/objects.js.map +1 -0
  376. package/lib/utils/abstractdeployer.d.ts +5 -2
  377. package/lib/utils/abstractdeployer.d.ts.map +1 -0
  378. package/lib/utils/abstractdeployer.js +3 -0
  379. package/lib/utils/abstractdeployer.js.map +1 -1
  380. package/package.json +85 -56
  381. package/test/cachedapp/webda.config.json +1 -5
  382. package/test/config-cached.json +1 -5
  383. package/test/config.json +6 -99
  384. package/test/data/.env +1 -0
  385. package/test/my-cnf.json +9 -0
  386. package/webda.module.json +3462 -2231
  387. package/lib/application.d.ts +0 -876
  388. package/lib/application.js +0 -741
  389. package/lib/application.js.map +0 -1
  390. package/lib/application.spec.d.ts +0 -1
  391. package/lib/application.spec.js +0 -234
  392. package/lib/application.spec.js.map +0 -1
  393. package/lib/core.d.ts +0 -740
  394. package/lib/core.js +0 -1310
  395. package/lib/core.js.map +0 -1
  396. package/lib/core.spec.d.ts +0 -1
  397. package/lib/core.spec.js +0 -761
  398. package/lib/core.spec.js.map +0 -1
  399. package/lib/errors.d.ts +0 -65
  400. package/lib/errors.js +0 -113
  401. package/lib/errors.js.map +0 -1
  402. package/lib/errors.spec.d.ts +0 -1
  403. package/lib/errors.spec.js +0 -33
  404. package/lib/errors.spec.js.map +0 -1
  405. package/lib/models/aclmodel.spec.d.ts +0 -1
  406. package/lib/models/aclmodel.spec.js +0 -187
  407. package/lib/models/aclmodel.spec.js.map +0 -1
  408. package/lib/models/coremodel.d.ts +0 -887
  409. package/lib/models/coremodel.js +0 -1208
  410. package/lib/models/coremodel.js.map +0 -1
  411. package/lib/models/coremodel.spec.d.ts +0 -1
  412. package/lib/models/coremodel.spec.js +0 -462
  413. package/lib/models/coremodel.spec.js.map +0 -1
  414. package/lib/models/ident.d.ts +0 -53
  415. package/lib/models/ident.js +0 -40
  416. package/lib/models/ident.js.map +0 -1
  417. package/lib/models/ident.spec.d.ts +0 -1
  418. package/lib/models/ident.spec.js +0 -43
  419. package/lib/models/ident.spec.js.map +0 -1
  420. package/lib/models/ownermodel.d.ts +0 -50
  421. package/lib/models/ownermodel.js +0 -65
  422. package/lib/models/ownermodel.js.map +0 -1
  423. package/lib/models/ownermodel.spec.d.ts +0 -1
  424. package/lib/models/ownermodel.spec.js +0 -191
  425. package/lib/models/ownermodel.spec.js.map +0 -1
  426. package/lib/models/relations.d.ts +0 -181
  427. package/lib/models/relations.js +0 -157
  428. package/lib/models/relations.js.map +0 -1
  429. package/lib/models/relations.spec.d.ts +0 -12
  430. package/lib/models/relations.spec.js +0 -224
  431. package/lib/models/relations.spec.js.map +0 -1
  432. package/lib/models/rolemodel.d.ts +0 -10
  433. package/lib/models/rolemodel.js +0 -35
  434. package/lib/models/rolemodel.js.map +0 -1
  435. package/lib/models/rolemodel.spec.d.ts +0 -1
  436. package/lib/models/rolemodel.spec.js +0 -86
  437. package/lib/models/rolemodel.spec.js.map +0 -1
  438. package/lib/models/user.d.ts +0 -100
  439. package/lib/models/user.js +0 -157
  440. package/lib/models/user.js.map +0 -1
  441. package/lib/models/user.spec.d.ts +0 -1
  442. package/lib/models/user.spec.js +0 -88
  443. package/lib/models/user.spec.js.map +0 -1
  444. package/lib/queues/filequeue.d.ts +0 -58
  445. package/lib/queues/filequeue.js +0 -131
  446. package/lib/queues/filequeue.js.map +0 -1
  447. package/lib/queues/filequeue.spec.d.ts +0 -1
  448. package/lib/queues/filequeue.spec.js +0 -78
  449. package/lib/queues/filequeue.spec.js.map +0 -1
  450. package/lib/queues/memoryqueue.d.ts +0 -45
  451. package/lib/queues/memoryqueue.js +0 -81
  452. package/lib/queues/memoryqueue.js.map +0 -1
  453. package/lib/queues/memoryqueue.spec.d.ts +0 -1
  454. package/lib/queues/memoryqueue.spec.js +0 -192
  455. package/lib/queues/memoryqueue.spec.js.map +0 -1
  456. package/lib/queues/queue.spec.d.ts +0 -5
  457. package/lib/queues/queue.spec.js +0 -55
  458. package/lib/queues/queue.spec.js.map +0 -1
  459. package/lib/router.d.ts +0 -172
  460. package/lib/router.js +0 -419
  461. package/lib/router.js.map +0 -1
  462. package/lib/router.spec.d.ts +0 -1
  463. package/lib/router.spec.js +0 -229
  464. package/lib/router.spec.js.map +0 -1
  465. package/lib/services/asyncevents.d.ts +0 -151
  466. package/lib/services/asyncevents.js +0 -217
  467. package/lib/services/asyncevents.js.map +0 -1
  468. package/lib/services/asyncevents.spec.d.ts +0 -1
  469. package/lib/services/asyncevents.spec.js +0 -118
  470. package/lib/services/asyncevents.spec.js.map +0 -1
  471. package/lib/services/authentication.js +0 -772
  472. package/lib/services/authentication.js.map +0 -1
  473. package/lib/services/authentication.spec.d.ts +0 -1
  474. package/lib/services/authentication.spec.js +0 -458
  475. package/lib/services/authentication.spec.js.map +0 -1
  476. package/lib/services/binary.d.ts +0 -549
  477. package/lib/services/binary.js +0 -986
  478. package/lib/services/binary.js.map +0 -1
  479. package/lib/services/binary.spec.d.ts +0 -44
  480. package/lib/services/binary.spec.js +0 -438
  481. package/lib/services/binary.spec.js.map +0 -1
  482. package/lib/services/cloudbinary.spec.d.ts +0 -13
  483. package/lib/services/cloudbinary.spec.js +0 -192
  484. package/lib/services/cloudbinary.spec.js.map +0 -1
  485. package/lib/services/configuration.js +0 -178
  486. package/lib/services/configuration.js.map +0 -1
  487. package/lib/services/configuration.spec.d.ts +0 -1
  488. package/lib/services/configuration.spec.js +0 -87
  489. package/lib/services/configuration.spec.js.map +0 -1
  490. package/lib/services/cron.d.ts +0 -73
  491. package/lib/services/cron.js +0 -141
  492. package/lib/services/cron.js.map +0 -1
  493. package/lib/services/cron.spec.d.ts +0 -1
  494. package/lib/services/cron.spec.js +0 -76
  495. package/lib/services/cron.spec.js.map +0 -1
  496. package/lib/services/cryptoservice.js +0 -434
  497. package/lib/services/cryptoservice.js.map +0 -1
  498. package/lib/services/cryptoservice.spec.d.ts +0 -1
  499. package/lib/services/cryptoservice.spec.js +0 -177
  500. package/lib/services/cryptoservice.spec.js.map +0 -1
  501. package/lib/services/debugmailer.d.ts +0 -36
  502. package/lib/services/debugmailer.js +0 -52
  503. package/lib/services/debugmailer.js.map +0 -1
  504. package/lib/services/debugmailer.spec.d.ts +0 -1
  505. package/lib/services/debugmailer.spec.js +0 -29
  506. package/lib/services/debugmailer.spec.js.map +0 -1
  507. package/lib/services/domainservice.d.ts +0 -152
  508. package/lib/services/domainservice.js +0 -881
  509. package/lib/services/domainservice.js.map +0 -1
  510. package/lib/services/domainservice.spec.d.ts +0 -1
  511. package/lib/services/domainservice.spec.js +0 -401
  512. package/lib/services/domainservice.spec.js.map +0 -1
  513. package/lib/services/filebinary.d.ts +0 -133
  514. package/lib/services/filebinary.js +0 -371
  515. package/lib/services/filebinary.js.map +0 -1
  516. package/lib/services/filebinary.spec.d.ts +0 -21
  517. package/lib/services/filebinary.spec.js +0 -415
  518. package/lib/services/filebinary.spec.js.map +0 -1
  519. package/lib/services/fileconfiguration.d.ts +0 -22
  520. package/lib/services/fileconfiguration.js +0 -48
  521. package/lib/services/fileconfiguration.js.map +0 -1
  522. package/lib/services/fileconfiguration.spec.d.ts +0 -1
  523. package/lib/services/fileconfiguration.spec.js +0 -177
  524. package/lib/services/fileconfiguration.spec.js.map +0 -1
  525. package/lib/services/invitationservice.d.ts +0 -222
  526. package/lib/services/invitationservice.js +0 -526
  527. package/lib/services/invitationservice.js.map +0 -1
  528. package/lib/services/invitationservice.spec.d.ts +0 -1
  529. package/lib/services/invitationservice.spec.js +0 -516
  530. package/lib/services/invitationservice.spec.js.map +0 -1
  531. package/lib/services/kubernetesconfiguration.d.ts +0 -26
  532. package/lib/services/kubernetesconfiguration.js +0 -54
  533. package/lib/services/kubernetesconfiguration.js.map +0 -1
  534. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -1
  535. package/lib/services/kubernetesconfiguration.spec.js +0 -147
  536. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  537. package/lib/services/mailer.d.ts +0 -165
  538. package/lib/services/mailer.js +0 -176
  539. package/lib/services/mailer.js.map +0 -1
  540. package/lib/services/mailer.spec.d.ts +0 -1
  541. package/lib/services/mailer.spec.js +0 -144
  542. package/lib/services/mailer.spec.js.map +0 -1
  543. package/lib/services/notificationservice.js.map +0 -1
  544. package/lib/services/notificationservice.spec.d.ts +0 -1
  545. package/lib/services/notificationservice.spec.js +0 -78
  546. package/lib/services/notificationservice.spec.js.map +0 -1
  547. package/lib/services/oauth.spec.d.ts +0 -1
  548. package/lib/services/oauth.spec.js +0 -184
  549. package/lib/services/oauth.spec.js.map +0 -1
  550. package/lib/services/prometheus.js +0 -160
  551. package/lib/services/prometheus.js.map +0 -1
  552. package/lib/services/prometheus.spec.d.ts +0 -1
  553. package/lib/services/prometheus.spec.js +0 -57
  554. package/lib/services/prometheus.spec.js.map +0 -1
  555. package/lib/services/resource.d.ts +0 -87
  556. package/lib/services/resource.js +0 -156
  557. package/lib/services/resource.js.map +0 -1
  558. package/lib/services/resource.spec.d.ts +0 -1
  559. package/lib/services/resource.spec.js +0 -122
  560. package/lib/services/resource.spec.js.map +0 -1
  561. package/lib/services/service.spec.d.ts +0 -1
  562. package/lib/services/service.spec.js +0 -268
  563. package/lib/services/service.spec.js.map +0 -1
  564. package/lib/stores/aggregator.d.ts +0 -41
  565. package/lib/stores/aggregator.js +0 -80
  566. package/lib/stores/aggregator.js.map +0 -1
  567. package/lib/stores/aliasstore.d.ts +0 -108
  568. package/lib/stores/aliasstore.js +0 -168
  569. package/lib/stores/aliasstore.js.map +0 -1
  570. package/lib/stores/aliasstore.spec.d.ts +0 -11
  571. package/lib/stores/aliasstore.spec.js +0 -89
  572. package/lib/stores/aliasstore.spec.js.map +0 -1
  573. package/lib/stores/file.d.ts +0 -107
  574. package/lib/stores/file.js +0 -188
  575. package/lib/stores/file.js.map +0 -1
  576. package/lib/stores/file.spec.d.ts +0 -19
  577. package/lib/stores/file.spec.js +0 -232
  578. package/lib/stores/file.spec.js.map +0 -1
  579. package/lib/stores/mapper.d.ts +0 -149
  580. package/lib/stores/mapper.js +0 -293
  581. package/lib/stores/mapper.js.map +0 -1
  582. package/lib/stores/mapper.spec.d.ts +0 -1
  583. package/lib/stores/mapper.spec.js +0 -160
  584. package/lib/stores/mapper.spec.js.map +0 -1
  585. package/lib/stores/memory.d.ts +0 -151
  586. package/lib/stores/memory.js +0 -371
  587. package/lib/stores/memory.js.map +0 -1
  588. package/lib/stores/memory.spec.d.ts +0 -20
  589. package/lib/stores/memory.spec.js +0 -328
  590. package/lib/stores/memory.spec.js.map +0 -1
  591. package/lib/stores/modelmapper.d.ts +0 -61
  592. package/lib/stores/modelmapper.js +0 -199
  593. package/lib/stores/modelmapper.js.map +0 -1
  594. package/lib/stores/store.spec.d.ts +0 -65
  595. package/lib/stores/store.spec.js +0 -906
  596. package/lib/stores/store.spec.js.map +0 -1
  597. package/lib/test.d.ts +0 -162
  598. package/lib/test.js +0 -399
  599. package/lib/test.js.map +0 -1
  600. package/lib/unpackedapplication.d.ts +0 -76
  601. package/lib/unpackedapplication.js +0 -299
  602. package/lib/unpackedapplication.js.map +0 -1
  603. package/lib/utils/abstractdeployer.spec.d.ts +0 -1
  604. package/lib/utils/abstractdeployer.spec.js +0 -21
  605. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  606. package/lib/utils/case.d.ts +0 -7
  607. package/lib/utils/case.js +0 -43
  608. package/lib/utils/case.js.map +0 -1
  609. package/lib/utils/case.spec.d.ts +0 -1
  610. package/lib/utils/case.spec.js +0 -50
  611. package/lib/utils/case.spec.js.map +0 -1
  612. package/lib/utils/context.d.ts +0 -462
  613. package/lib/utils/context.js +0 -732
  614. package/lib/utils/context.js.map +0 -1
  615. package/lib/utils/context.spec.d.ts +0 -9
  616. package/lib/utils/context.spec.js +0 -372
  617. package/lib/utils/context.spec.js.map +0 -1
  618. package/lib/utils/cookie.js.map +0 -1
  619. package/lib/utils/cookie.spec.d.ts +0 -1
  620. package/lib/utils/cookie.spec.js +0 -78
  621. package/lib/utils/cookie.spec.js.map +0 -1
  622. package/lib/utils/esm.d.ts +0 -13
  623. package/lib/utils/esm.js +0 -19
  624. package/lib/utils/esm.js.map +0 -1
  625. package/lib/utils/httpcontext.js.map +0 -1
  626. package/lib/utils/httpcontext.spec.d.ts +0 -4
  627. package/lib/utils/httpcontext.spec.js +0 -77
  628. package/lib/utils/httpcontext.spec.js.map +0 -1
  629. package/lib/utils/logger.d.ts +0 -91
  630. package/lib/utils/logger.js +0 -121
  631. package/lib/utils/logger.js.map +0 -1
  632. package/lib/utils/logger.spec.d.ts +0 -1
  633. package/lib/utils/logger.spec.js +0 -48
  634. package/lib/utils/logger.spec.js.map +0 -1
  635. package/lib/utils/serializers.d.ts +0 -161
  636. package/lib/utils/serializers.js +0 -420
  637. package/lib/utils/serializers.js.map +0 -1
  638. package/lib/utils/serializers.spec.d.ts +0 -1
  639. package/lib/utils/serializers.spec.js +0 -313
  640. package/lib/utils/serializers.spec.js.map +0 -1
  641. package/lib/utils/session.d.ts +0 -126
  642. package/lib/utils/session.js +0 -166
  643. package/lib/utils/session.js.map +0 -1
  644. package/lib/utils/session.spec.d.ts +0 -1
  645. package/lib/utils/session.spec.js +0 -71
  646. package/lib/utils/session.spec.js.map +0 -1
  647. package/lib/utils/throttler.d.ts +0 -102
  648. package/lib/utils/throttler.js +0 -168
  649. package/lib/utils/throttler.js.map +0 -1
  650. package/lib/utils/throttler.spec.d.ts +0 -1
  651. package/lib/utils/throttler.spec.js +0 -55
  652. package/lib/utils/throttler.spec.js.map +0 -1
  653. package/lib/utils/waiter.d.ts +0 -93
  654. package/lib/utils/waiter.js +0 -148
  655. package/lib/utils/waiter.js.map +0 -1
  656. package/lib/utils/waiter.spec.d.ts +0 -1
  657. package/lib/utils/waiter.spec.js +0 -98
  658. package/lib/utils/waiter.spec.js.map +0 -1
  659. package/test/config-file-missing-file-no-default.json +0 -44
  660. package/test/config-file-missing-file.json +0 -55
  661. package/test/config-file-no-reload.json +0 -69
  662. package/test/config-file-reload.json +0 -68
  663. package/test/config-invitation.json +0 -63
  664. package/test/config-kube-reload.json +0 -68
  665. package/test/config-reload.json +0 -66
  666. package/test/config.old.json +0 -152
  667. package/test/jsonutils/mdocs.yaml +0 -56
  668. package/test/jsonutils/test.json +0 -3
  669. package/test/jsonutils/test.yml +0 -5
  670. package/test/moddas/annotatedservice.js +0 -23
  671. package/test/moddas/debugmailer.js +0 -13
  672. package/test/moddas/fakeservice.js +0 -4
  673. package/test/moddas/voidstore.js +0 -66
  674. package/test/models/ident.js +0 -36
  675. package/test/models/task.js +0 -42
@@ -1,741 +0,0 @@
1
- import { WorkerOutput } from "@webda/workout";
2
- import * as fs from "fs";
3
- import * as path from "path";
4
- import { CoreModel, WebdaError } from "./index.js";
5
- import { getCommonJS } from "./utils/esm.js";
6
- import { FileUtils } from "./utils/serializers.js";
7
- const { __dirname } = getCommonJS(import.meta.url);
8
- export var SectionEnum;
9
- (function (SectionEnum) {
10
- SectionEnum["Moddas"] = "moddas";
11
- SectionEnum["Deployers"] = "deployers";
12
- SectionEnum["Beans"] = "beans";
13
- })(SectionEnum || (SectionEnum = {}));
14
- /**
15
- * Map a Webda Application
16
- *
17
- * It allows to:
18
- * - Analyse imported modules
19
- * - Scan code for Modda and generate the webda.config.json
20
- * - Compile and Watch
21
- * - Migrate from old configuration
22
- * - List deployments
23
- *
24
- *
25
- * @category CoreFeatures
26
- */
27
- export class Application {
28
- /**
29
- *
30
- * @param {string} fileOrFolder to load Webda Application from
31
- * @param {Logger} logger
32
- */
33
- constructor(file, logger = undefined) {
34
- /**
35
- * Contains definitions of current application
36
- */
37
- this.appModule = {
38
- moddas: {},
39
- models: {
40
- list: {},
41
- graph: {},
42
- tree: {},
43
- plurals: {},
44
- shortIds: {},
45
- reflections: {}
46
- },
47
- deployers: {}
48
- };
49
- /**
50
- * Contains already loaded modules
51
- */
52
- this._loaded = [];
53
- /**
54
- * Deployers type registry
55
- */
56
- this.deployers = {};
57
- /**
58
- * Moddas registry
59
- */
60
- this.moddas = {};
61
- /**
62
- * Models type registry
63
- */
64
- this.models = {};
65
- /**
66
- * Models graph
67
- */
68
- this.graph = {};
69
- /**
70
- * Models specific plurals
71
- */
72
- this.plurals = {};
73
- /**
74
- * Detect if running as workspace
75
- */
76
- this.workspacesPath = "";
77
- /**
78
- * Direct parent of a model
79
- */
80
- this.flatHierarchy = {};
81
- this.logger = logger || new WorkerOutput();
82
- this.initTime = Date.now();
83
- if (!fs.existsSync(file)) {
84
- throw new WebdaError.CodeError("NO_WEBDA_FOLDER", `Not a webda application folder or webda.config.jsonc or webda.config.json file: unexisting ${file}`);
85
- }
86
- if (fs.lstatSync(file).isDirectory()) {
87
- file = path.join(file, "webda.config.jsonc");
88
- if (!fs.existsSync(file)) {
89
- file = file.substring(0, file.length - 1);
90
- }
91
- }
92
- this.configurationFile = file;
93
- this.appPath = path.resolve(path.dirname(file));
94
- }
95
- /**
96
- * Import all required modules
97
- */
98
- async load() {
99
- this.loadConfiguration(this.configurationFile);
100
- await this.loadModule(this.baseConfiguration.cachedModules);
101
- // Flat the model tree
102
- const addParent = (parent, tree) => {
103
- for (let key in tree) {
104
- this.flatHierarchy[key] = parent;
105
- addParent(key, tree[key]);
106
- }
107
- };
108
- addParent("Webda/CoreModel", this.baseConfiguration.cachedModules.models.tree);
109
- return this;
110
- }
111
- /**
112
- * Allow subclass to implement migration
113
- *
114
- * @param file
115
- * @returns
116
- */
117
- loadConfiguration(file) {
118
- var _a, _b;
119
- // Check if file is a file or folder
120
- if (!fs.existsSync(file)) {
121
- throw new WebdaError.CodeError("NO_WEBDA_FOLDER", `Not a webda application folder or webda.config.jsonc or webda.config.json file: ${file}`);
122
- }
123
- try {
124
- this.baseConfiguration = FileUtils.load(file);
125
- (_a = this.baseConfiguration).parameters ?? (_a.parameters = {});
126
- (_b = this.baseConfiguration.parameters).defaultStore ?? (_b.defaultStore = "Registry");
127
- if (this.baseConfiguration.version !== 3) {
128
- this.log("ERROR", "Your configuration file should use version 3, see https://docs.webda.io/");
129
- }
130
- }
131
- catch (err) {
132
- throw new WebdaError.CodeError("INVALID_WEBDA_CONFIG", `Cannot parse JSON of: ${file}`);
133
- }
134
- }
135
- /**
136
- *
137
- * @param proto Prototype to send
138
- */
139
- getFullNameFromPrototype(proto) {
140
- for (let section in SectionEnum) {
141
- for (let i in this[SectionEnum[section]]) {
142
- if (this[SectionEnum[section]][i] && this[SectionEnum[section]][i].prototype === proto) {
143
- return i;
144
- }
145
- }
146
- }
147
- // Manage CoreModel too
148
- for (let i in this.models) {
149
- if (this.models[i].prototype === proto) {
150
- return i;
151
- }
152
- }
153
- }
154
- /**
155
- * Get a schema from a type
156
- *
157
- * Schema should be precomputed in the default app
158
- * @param type
159
- * @returns
160
- */
161
- getSchema(type) {
162
- return this.baseConfiguration.cachedModules.schemas[type];
163
- }
164
- /**
165
- * Get schemas
166
- * @returns
167
- */
168
- getSchemas() {
169
- return this.baseConfiguration.cachedModules.schemas;
170
- }
171
- /**
172
- * Check if a schema exists
173
- * @param type
174
- * @returns schema name if it exists
175
- */
176
- hasSchema(type) {
177
- return this.baseConfiguration.cachedModules.schemas[type] !== undefined;
178
- }
179
- /**
180
- * Get model graph
181
- */
182
- getRelations(model) {
183
- const name = typeof model === "string" ? this.completeNamespace(model) : this.getModelName(model);
184
- // Get relations should not be case-sensitive until v4
185
- const key = Object.keys(this.graph).find(k => k?.toLowerCase() === name?.toLowerCase());
186
- return this.getGraph()[key] || {};
187
- }
188
- /**
189
- * Get the all graph
190
- * @returns
191
- */
192
- getGraph() {
193
- return this.graph;
194
- }
195
- /**
196
- * Check if application has cached modules
197
- *
198
- * When deployed the application contains cachedModules in the `webda.config.json`
199
- * It allows to avoid the search for `webda.module.json` inside node_modules and
200
- * take the schema from the cached modules also
201
- */
202
- isCached() {
203
- return true;
204
- }
205
- /**
206
- * Retrieve specific webda conf from package.json
207
- *
208
- * In case of workspaces the object is combined
209
- */
210
- getPackageWebda() {
211
- return (this.baseConfiguration.cachedModules.project?.webda || {
212
- namespace: "Webda"
213
- });
214
- }
215
- /**
216
- * Retrieve content of package.json
217
- */
218
- getPackageDescription() {
219
- return this.baseConfiguration.cachedModules?.project?.package || {};
220
- }
221
- /**
222
- * Log information
223
- *
224
- * @param level to log for
225
- * @param args anything to display same as console.log
226
- */
227
- log(level, ...args) {
228
- if (this.logger) {
229
- this.logger.log(level, ...args);
230
- }
231
- }
232
- /**
233
- * Get current logger
234
- */
235
- getWorkerOutput() {
236
- return this.logger;
237
- }
238
- /**
239
- * Return the current app path
240
- *
241
- * @param subpath to append to
242
- */
243
- getAppPath(subpath = undefined) {
244
- if (subpath && subpath !== "") {
245
- if (path.isAbsolute(subpath)) {
246
- return subpath;
247
- }
248
- return path.join(this.appPath, subpath);
249
- }
250
- return this.appPath;
251
- }
252
- /**
253
- * Add a new service
254
- *
255
- * @param name
256
- * @param service
257
- */
258
- addService(name, service) {
259
- this.log("TRACE", "Registering service", name);
260
- this.moddas[name] = service;
261
- return this;
262
- }
263
- /**
264
- * Register a new schema in the application
265
- * @param name
266
- * @param schema
267
- */
268
- registerSchema(name, schema) {
269
- if (this.hasSchema(name)) {
270
- throw new Error(`Schema ${name} already registered`);
271
- }
272
- this.baseConfiguration.cachedModules.schemas[name] = schema;
273
- }
274
- /**
275
- * Get plural of an Id
276
- * @param name
277
- * @returns
278
- */
279
- getModelPlural(name) {
280
- let value = this.plurals[name] || name.split("/").pop();
281
- return value.endsWith("s") ? value : value + "s";
282
- }
283
- /**
284
- *
285
- * @param section
286
- * @param name
287
- * @param caseSensitive
288
- */
289
- hasWebdaObject(section, name, caseSensitive = false) {
290
- let objectName = this.completeNamespace(name);
291
- this.log("TRACE", `Search for ${section} ${objectName}`);
292
- if (!this[section][objectName] && name.indexOf("/") === -1) {
293
- objectName = `Webda/${name}`;
294
- }
295
- if (!this[section][objectName]) {
296
- const caseInsensitive = Object.keys(this[section]).find(k => k.toLowerCase() === name.toLowerCase());
297
- if (this[section][caseInsensitive] && !caseSensitive) {
298
- // We found a case insensitive match
299
- return true;
300
- }
301
- return false;
302
- }
303
- return true;
304
- }
305
- /**
306
- *
307
- * @param section
308
- * @param name
309
- * @returns
310
- */
311
- getWebdaObject(section, name, caseSensitive = false) {
312
- let objectName = this.completeNamespace(name);
313
- this.log("TRACE", `Search for ${section} ${objectName}`);
314
- if (!this[section][objectName] && name.indexOf("/") === -1) {
315
- objectName = `Webda/${name}`;
316
- }
317
- if (!this[section][objectName]) {
318
- const caseInsensitive = Object.keys(this[section]).find(k => k.toLowerCase() === name.toLowerCase());
319
- if (this[section][caseInsensitive] && !caseSensitive) {
320
- // We found a case insensitive match
321
- this.log("DEBUG", `Found ${caseInsensitive} instead of ${name}, will be removed in 4.0`);
322
- return this[section][caseInsensitive];
323
- }
324
- objectName = name !== objectName ? ` or ${objectName}` : "";
325
- throw Error(`Undefined ${section.substring(0, section.length - 1)} ${name}${objectName} (${Object.keys(this[section]).join(", ")})`);
326
- }
327
- return this[section][objectName];
328
- }
329
- /**
330
- * Get a service based on name
331
- *
332
- * @param name
333
- */
334
- getModda(name) {
335
- return this.getWebdaObject("moddas", name);
336
- }
337
- /**
338
- * Return all services of the application
339
- */
340
- getModdas() {
341
- return this.moddas;
342
- }
343
- /**
344
- * Return all beans of the application
345
- */
346
- getBeans() {
347
- return this.baseConfiguration.cachedModules.beans;
348
- }
349
- /**
350
- * Retrieve the model implementation
351
- *
352
- * @param name model to retrieve
353
- */
354
- getModel(name) {
355
- return this.getWebdaObject("models", this.completeNamespace(name));
356
- }
357
- /**
358
- * Get all models definitions
359
- */
360
- getModels() {
361
- return this.models;
362
- }
363
- /**
364
- * Return models that do not have parents
365
- * @returns
366
- */
367
- getRootModels() {
368
- return Object.keys(this.graph).filter(key => !this.graph[key].parent && this.models[key]?.Expose);
369
- }
370
- /**
371
- * Return models that do not have parents and are exposed
372
- * Or specifically set as root via the Expose.root parameter
373
- * @returns
374
- */
375
- getRootExposedModels() {
376
- const results = new Set(this.getRootModels().filter(k => this.getModel(k).Expose));
377
- for (let model in this.models) {
378
- if (this.models[model].Expose?.root) {
379
- results.add(model);
380
- }
381
- }
382
- return [...results];
383
- }
384
- /**
385
- * Return the model name for a object
386
- * @param object
387
- */
388
- getModelFromInstance(object) {
389
- return Object.keys(this.models).find(k => this.models[k] === object.constructor);
390
- }
391
- /**
392
- * Return the model name for a object
393
- * @param object
394
- */
395
- getModelFromConstructor(model) {
396
- return Object.keys(this.models).find(k => this.models[k] === model);
397
- }
398
- /**
399
- * Get the model name from a model or a constructor
400
- *
401
- * @param model
402
- * @returns longId for a model
403
- */
404
- getModelName(model) {
405
- // If __type is defined, use it
406
- if (model.__type) {
407
- return this.completeNamespace(model.__type);
408
- }
409
- if (model instanceof CoreModel) {
410
- return this.getModelFromInstance(model);
411
- }
412
- return this.getModelFromConstructor(model);
413
- }
414
- /**
415
- * Get the model hierarchy
416
- * @param model
417
- */
418
- getModelHierarchy(model) {
419
- if (typeof model !== "string") {
420
- model = this.getModelName(model);
421
- }
422
- else {
423
- model = this.completeNamespace(model);
424
- }
425
- if (model === "Webda/CoreModel") {
426
- return { ancestors: [], children: this.baseConfiguration?.cachedModules?.models?.tree };
427
- }
428
- let ancestors = [];
429
- let modelInfo = model;
430
- while ((this.flatHierarchy[modelInfo] || "Webda/CoreModel") !== "Webda/CoreModel") {
431
- modelInfo = this.flatHierarchy[modelInfo];
432
- ancestors.unshift(modelInfo);
433
- }
434
- let tree = this.baseConfiguration?.cachedModules?.models?.tree || {};
435
- ancestors.forEach(ancestor => {
436
- tree = tree[ancestor] || {};
437
- });
438
- ancestors.unshift(this.getShortId("Webda/CoreModel"));
439
- ancestors.reverse();
440
- return { ancestors: ancestors.map(i => this.getShortId(i)), children: tree[model] || {} };
441
- }
442
- /**
443
- * Get all model types with the hierarchy
444
- * @param model
445
- * @returns
446
- */
447
- getModelTypes(model) {
448
- const hierarchy = this.getModelHierarchy(model);
449
- const coreModel = this.getShortId("Webda/CoreModel");
450
- return [model.__type, ...hierarchy.ancestors]
451
- .map(i => (i.includes("/") ? this.getShortId(i) : i))
452
- .filter(i => i !== coreModel);
453
- }
454
- /**
455
- * Return all deployers
456
- */
457
- getDeployers() {
458
- return this.deployers;
459
- }
460
- /**
461
- * Add a new model
462
- *
463
- * @param name
464
- * @param model
465
- */
466
- addModel(name, model, dynamic = true) {
467
- this.log("TRACE", "Registering model", name);
468
- this.models[name] = model;
469
- if (dynamic && model) {
470
- const superClass = Object.getPrototypeOf(model);
471
- Object.values(this.getModels())
472
- .filter(m => m === superClass)
473
- .forEach(m => {
474
- this.flatHierarchy[name] = this.getModelName(m);
475
- this.getModelHierarchy(this.flatHierarchy[name]).children[name] = {};
476
- });
477
- }
478
- return this;
479
- }
480
- /**
481
- * Add a new deployer
482
- *
483
- * @param name
484
- * @param model
485
- */
486
- addDeployer(name, model) {
487
- this.log("TRACE", "Registering deployer", name);
488
- this.deployers[name] = model;
489
- return this;
490
- }
491
- /**
492
- * Return webda current version
493
- *
494
- * @returns package version
495
- * @since 0.4.0
496
- */
497
- getWebdaVersion() {
498
- return JSON.parse(fs.readFileSync(__dirname + "/../package.json").toString()).version;
499
- }
500
- /**
501
- * Retrieve Git Repository information
502
- *
503
- * {@link GitInformation} for more details on how the information is gathered
504
- * @return the git information
505
- */
506
- getGitInformation(_packageName, _version) {
507
- return this.baseConfiguration.cachedModules.project?.git;
508
- }
509
- /**
510
- * Allow variable inside of string
511
- *
512
- * @param templateString to copy
513
- * @param replacements additional replacements to run
514
- */
515
- stringParameter(templateString, replacements = {}) {
516
- // Optimization if no parameter is found just skip the costy function
517
- if (templateString.indexOf("${") < 0) {
518
- return templateString;
519
- }
520
- let scan = templateString;
521
- let index;
522
- let i = 0;
523
- while ((index = scan.indexOf("${")) >= 0) {
524
- // Add escape sequence
525
- if (index > 0 && scan.substring(index - 1, 1) === "\\") {
526
- scan = scan.substring(scan.indexOf("}", index));
527
- continue;
528
- }
529
- let next = scan.indexOf("}", index);
530
- let variable = scan.substring(index + 2, next);
531
- scan = scan.substring(next);
532
- if (variable.match(/[|&;<>\\{]/)) {
533
- throw new Error(`Variable cannot use every javascript features found ${variable}`);
534
- }
535
- if (i++ > 10) {
536
- throw new Error("Too many variables");
537
- }
538
- }
539
- return new Function("return `" + (" " + templateString).replace(/([^\\])\$\{([^}{]+)}/g, "$1${this.$2}").substring(1) + "`;").call({
540
- ...this.baseConfiguration.cachedModules.project,
541
- now: this.initTime,
542
- ...replacements
543
- });
544
- }
545
- /**
546
- * Allow variable inside object strings
547
- *
548
- * Example
549
- * ```js
550
- * replaceVariables({
551
- * myobj: "${test.replace}"
552
- * }, {
553
- * test: {
554
- * replace: 'plop'
555
- * }
556
- * })
557
- * ```
558
- * will return
559
- * ```
560
- * {
561
- * myobj: 'plop'
562
- * }
563
- * ```
564
- *
565
- * By default the replacements map contains
566
- * ```
567
- * {
568
- * git: GitInformation,
569
- * package: 'package.json content',
570
- * deployment: string,
571
- * now: number,
572
- * ...replacements
573
- * }
574
- * ```
575
- *
576
- * See: {@link GitInformation}
577
- *
578
- * @param object a duplicated object with replacement done
579
- * @param replacements additional replacements to run
580
- */
581
- replaceVariables(object, replacements = {}) {
582
- if (typeof object === "string") {
583
- return this.stringParameter(object, replacements);
584
- }
585
- let app = this;
586
- return JSON.parse(JSON.stringify(object, function (key, value) {
587
- if (typeof this[key] === "string") {
588
- return app.stringParameter(value, replacements);
589
- }
590
- return value;
591
- }));
592
- }
593
- /**
594
- * Get current deployment name
595
- */
596
- getCurrentDeployment() {
597
- return this.baseConfiguration.cachedModules.project.deployment.name;
598
- }
599
- /**
600
- * Return all application modules merged as one
601
- *
602
- * Used when deployed
603
- * @returns
604
- */
605
- getModules() {
606
- return this.baseConfiguration.cachedModules;
607
- }
608
- /**
609
- * Get application configuration
610
- * @returns
611
- */
612
- getConfiguration(_deployment = undefined) {
613
- return this.baseConfiguration;
614
- }
615
- /**
616
- * Return current Configuration of the Application
617
- *
618
- * Same as calling
619
- *
620
- * ```js
621
- * getConfiguration(this.currentDeployment);
622
- * ```
623
- */
624
- getCurrentConfiguration() {
625
- return this.getConfiguration();
626
- }
627
- /**
628
- * Import a file
629
- *
630
- * If the `default` is set take this or use old format
631
- *
632
- * @param info
633
- */
634
- async importFile(info, withExport = true) {
635
- if (info.startsWith(".")) {
636
- info = this.getAppPath(info);
637
- }
638
- try {
639
- this.log("TRACE", "Load file", info);
640
- let [importFilename, importName = "default"] = info.split(":");
641
- if (!importFilename.endsWith(".js")) {
642
- importFilename += ".js";
643
- }
644
- const importedFile = await import(importFilename);
645
- if (!withExport) {
646
- return;
647
- }
648
- const importObject = importedFile[importName];
649
- if (!importObject) {
650
- this.log("WARN", `Module ${importFilename} does not have export named ${importName}`);
651
- }
652
- return importObject;
653
- }
654
- catch (err) {
655
- this.log("WARN", "Cannot resolve require", info, err.message);
656
- }
657
- }
658
- /**
659
- * Load local module
660
- */
661
- async loadLocalModule() {
662
- let moduleFile = path.join(process.cwd(), "webda.module.json");
663
- if (fs.existsSync(moduleFile)) {
664
- await this.loadModule(FileUtils.load(moduleFile), process.cwd());
665
- }
666
- }
667
- /**
668
- * Load the module,
669
- *
670
- * @protected
671
- * @ignore Useless for documentation
672
- */
673
- async loadModule(module, parent = this.appPath) {
674
- const info = { beans: {}, ...module };
675
- const sectionLoader = async (section) => {
676
- var _a;
677
- for (let key in info[section]) {
678
- (_a = this[section])[key] ?? (_a[key] = await this.importFile(path.join(parent, info[section][key])));
679
- }
680
- };
681
- // Merging graph from different modules
682
- Object.keys(module.models.graph || {}).forEach(k => {
683
- this.graph[k] = module.models.graph[k];
684
- });
685
- // TODO Merging tree from different modules
686
- await Promise.all([
687
- sectionLoader("moddas"),
688
- sectionLoader("deployers"),
689
- // Load models
690
- (async () => {
691
- // Copy plurals
692
- for (let key in info.models.plurals || {}) {
693
- this.plurals[key] = info.models.plurals[key];
694
- }
695
- for (let key in info.models.list) {
696
- this.addModel(key, await this.importFile(path.join(parent, info.models.list[key])), false);
697
- }
698
- })(),
699
- ...Object.keys(info.beans).map(f => {
700
- this.baseConfiguration.cachedModules.beans[f] = info.beans[f];
701
- return this.importFile(path.join(parent, info.beans[f]), false).catch(this.log.bind(this, "WARN"));
702
- })
703
- ]);
704
- }
705
- /**
706
- * Return the full name including namespace
707
- *
708
- * In Webda the ServiceType include namespace `Webda/Store` or `Webda/Test`
709
- * This method will make sure the namespace is present, adding it if no '/'
710
- * is found in the name
711
- *
712
- * @param name
713
- */
714
- completeNamespace(name = "") {
715
- // Do not add a namespace if already present
716
- if (name.includes("/")) {
717
- return name;
718
- }
719
- name = this.getShortId(name);
720
- if (name.includes("/")) {
721
- return name;
722
- }
723
- return `${this.getNamespace()}/${name}`;
724
- }
725
- /**
726
- * Return current namespace
727
- * @returns
728
- */
729
- getNamespace() {
730
- return this.baseConfiguration?.cachedModules?.project?.webda?.namespace || "Webda";
731
- }
732
- /**
733
- * Get short id for a name
734
- * @param name if name is shortId return longId else return shortId
735
- * @returns
736
- */
737
- getShortId(name) {
738
- return this.baseConfiguration?.cachedModules?.models?.shortIds[name] || name;
739
- }
740
- }
741
- //# sourceMappingURL=application.js.map