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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (793) hide show
  1. package/README.md +252 -0
  2. package/lib/application/application.d.ts +468 -0
  3. package/lib/application/application.d.ts.map +1 -0
  4. package/lib/application/application.js +845 -0
  5. package/lib/application/application.js.map +1 -0
  6. package/lib/application/deployment.d.ts +93 -0
  7. package/lib/application/deployment.d.ts.map +1 -0
  8. package/lib/application/deployment.js +99 -0
  9. package/lib/application/deployment.js.map +1 -0
  10. package/lib/application/hooks.d.ts +34 -0
  11. package/lib/application/hooks.d.ts.map +1 -0
  12. package/lib/application/hooks.js +57 -0
  13. package/lib/application/hooks.js.map +1 -0
  14. package/lib/application/iapplication.d.ts +43 -0
  15. package/lib/application/iapplication.d.ts.map +1 -0
  16. package/lib/application/iapplication.js +2 -0
  17. package/lib/application/iapplication.js.map +1 -0
  18. package/lib/application/iconfiguration.d.ts +176 -0
  19. package/lib/application/iconfiguration.d.ts.map +1 -0
  20. package/lib/application/iconfiguration.js +8 -0
  21. package/lib/application/iconfiguration.js.map +1 -0
  22. package/lib/application/runner.d.ts +8 -0
  23. package/lib/application/runner.d.ts.map +1 -0
  24. package/lib/application/runner.js +26 -0
  25. package/lib/application/runner.js.map +1 -0
  26. package/lib/{unpackedapplication.d.ts → application/unpackedapplication.d.ts} +43 -23
  27. package/lib/application/unpackedapplication.d.ts.map +1 -0
  28. package/lib/application/unpackedapplication.js +500 -0
  29. package/lib/application/unpackedapplication.js.map +1 -0
  30. package/lib/bin/cli-phase.d.ts +28 -0
  31. package/lib/bin/cli-phase.d.ts.map +1 -0
  32. package/lib/bin/cli-phase.js +44 -0
  33. package/lib/bin/cli-phase.js.map +1 -0
  34. package/lib/bin/cli.d.ts +196 -0
  35. package/lib/bin/cli.d.ts.map +1 -0
  36. package/lib/bin/cli.js +934 -0
  37. package/lib/bin/cli.js.map +1 -0
  38. package/lib/bin/launcher.d.ts +3 -0
  39. package/lib/bin/launcher.d.ts.map +1 -0
  40. package/lib/bin/launcher.js +50 -0
  41. package/lib/bin/launcher.js.map +1 -0
  42. package/lib/cache/cache.d.ts +33 -0
  43. package/lib/cache/cache.d.ts.map +1 -0
  44. package/lib/cache/cache.js +8 -0
  45. package/lib/cache/cache.js.map +1 -0
  46. package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -58
  47. package/lib/configurations/configuration.service.d.ts.map +1 -0
  48. package/lib/configurations/configuration.service.js +248 -0
  49. package/lib/configurations/configuration.service.js.map +1 -0
  50. package/lib/configurations/fileconfiguration.service.d.ts +30 -0
  51. package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
  52. package/lib/configurations/fileconfiguration.service.js +65 -0
  53. package/lib/configurations/fileconfiguration.service.js.map +1 -0
  54. package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
  55. package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
  56. package/lib/configurations/kubernetesconfiguration.service.js +83 -0
  57. package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
  58. package/lib/contexts/execution.d.ts +33 -0
  59. package/lib/contexts/execution.d.ts.map +1 -0
  60. package/lib/contexts/execution.js +73 -0
  61. package/lib/contexts/execution.js.map +1 -0
  62. package/lib/contexts/globalcontext.d.ts +29 -0
  63. package/lib/contexts/globalcontext.d.ts.map +1 -0
  64. package/lib/contexts/globalcontext.js +38 -0
  65. package/lib/contexts/globalcontext.js.map +1 -0
  66. package/lib/{utils → contexts}/httpcontext.d.ts +44 -19
  67. package/lib/contexts/httpcontext.d.ts.map +1 -0
  68. package/lib/{utils → contexts}/httpcontext.js +95 -27
  69. package/lib/contexts/httpcontext.js.map +1 -0
  70. package/lib/contexts/icontext.d.ts +236 -0
  71. package/lib/contexts/icontext.d.ts.map +1 -0
  72. package/lib/contexts/icontext.js +230 -0
  73. package/lib/contexts/icontext.js.map +1 -0
  74. package/lib/contexts/operationcontext.d.ts +182 -0
  75. package/lib/contexts/operationcontext.d.ts.map +1 -0
  76. package/lib/contexts/operationcontext.js +361 -0
  77. package/lib/contexts/operationcontext.js.map +1 -0
  78. package/lib/contexts/simplecontext.d.ts +31 -0
  79. package/lib/contexts/simplecontext.d.ts.map +1 -0
  80. package/lib/contexts/simplecontext.js +45 -0
  81. package/lib/contexts/simplecontext.js.map +1 -0
  82. package/lib/contexts/webcontext.d.ts +218 -0
  83. package/lib/contexts/webcontext.d.ts.map +1 -0
  84. package/lib/contexts/webcontext.js +389 -0
  85. package/lib/contexts/webcontext.js.map +1 -0
  86. package/lib/core/authorizer.d.ts +23 -0
  87. package/lib/core/authorizer.d.ts.map +1 -0
  88. package/lib/core/authorizer.js +17 -0
  89. package/lib/core/authorizer.js.map +1 -0
  90. package/lib/core/core.d.ts +225 -0
  91. package/lib/core/core.d.ts.map +1 -0
  92. package/lib/core/core.js +576 -0
  93. package/lib/core/core.js.map +1 -0
  94. package/lib/core/hooks.d.ts +94 -0
  95. package/lib/core/hooks.d.ts.map +1 -0
  96. package/lib/core/hooks.js +97 -0
  97. package/lib/core/hooks.js.map +1 -0
  98. package/lib/core/icore.d.ts +249 -0
  99. package/lib/core/icore.d.ts.map +1 -0
  100. package/lib/core/icore.js +15 -0
  101. package/lib/core/icore.js.map +1 -0
  102. package/lib/core/instancestorage.d.ts +61 -0
  103. package/lib/core/instancestorage.d.ts.map +1 -0
  104. package/lib/core/instancestorage.js +75 -0
  105. package/lib/core/instancestorage.js.map +1 -0
  106. package/lib/core/operations.d.ts +181 -0
  107. package/lib/core/operations.d.ts.map +1 -0
  108. package/lib/core/operations.js +559 -0
  109. package/lib/core/operations.js.map +1 -0
  110. package/lib/deployers/deployer.d.ts +157 -0
  111. package/lib/deployers/deployer.d.ts.map +1 -0
  112. package/lib/deployers/deployer.js +81 -0
  113. package/lib/deployers/deployer.js.map +1 -0
  114. package/lib/deployers/git.d.ts +27 -0
  115. package/lib/deployers/git.d.ts.map +1 -0
  116. package/lib/deployers/git.js +66 -0
  117. package/lib/deployers/git.js.map +1 -0
  118. package/lib/deployers/packager.d.ts +85 -0
  119. package/lib/deployers/packager.d.ts.map +1 -0
  120. package/lib/deployers/packager.js +259 -0
  121. package/lib/deployers/packager.js.map +1 -0
  122. package/lib/errors/errors.d.ts +126 -0
  123. package/lib/errors/errors.d.ts.map +1 -0
  124. package/lib/errors/errors.js +165 -0
  125. package/lib/errors/errors.js.map +1 -0
  126. package/lib/events/asynceventemitter.d.ts +159 -0
  127. package/lib/events/asynceventemitter.d.ts.map +1 -0
  128. package/lib/events/asynceventemitter.js +152 -0
  129. package/lib/events/asynceventemitter.js.map +1 -0
  130. package/lib/events/events.d.ts +112 -0
  131. package/lib/events/events.d.ts.map +1 -0
  132. package/lib/events/events.js +45 -0
  133. package/lib/events/events.js.map +1 -0
  134. package/lib/index.d.ts +88 -54
  135. package/lib/index.d.ts.map +1 -1
  136. package/lib/index.js +88 -64
  137. package/lib/index.js.map +1 -1
  138. package/lib/loggers/console.service.d.ts +24 -0
  139. package/lib/loggers/console.service.d.ts.map +1 -0
  140. package/lib/loggers/console.service.js +30 -0
  141. package/lib/loggers/console.service.js.map +1 -0
  142. package/lib/loggers/file.service.d.ts +25 -0
  143. package/lib/loggers/file.service.d.ts.map +1 -0
  144. package/lib/loggers/file.service.js +33 -0
  145. package/lib/loggers/file.service.js.map +1 -0
  146. package/lib/loggers/hooks.d.ts +20 -0
  147. package/lib/loggers/hooks.d.ts.map +1 -0
  148. package/lib/loggers/hooks.js +40 -0
  149. package/lib/loggers/hooks.js.map +1 -0
  150. package/lib/loggers/ilogger.d.ts +76 -0
  151. package/lib/loggers/ilogger.d.ts.map +1 -0
  152. package/lib/loggers/ilogger.js +108 -0
  153. package/lib/loggers/ilogger.js.map +1 -0
  154. package/lib/loggers/logger.d.ts +13 -0
  155. package/lib/loggers/logger.d.ts.map +1 -0
  156. package/lib/loggers/logger.js +18 -0
  157. package/lib/loggers/logger.js.map +1 -0
  158. package/lib/loggers/memory.service.d.ts +18 -0
  159. package/lib/loggers/memory.service.d.ts.map +1 -0
  160. package/lib/loggers/memory.service.js +21 -0
  161. package/lib/loggers/memory.service.js.map +1 -0
  162. package/lib/loggers/params.d.ts +47 -0
  163. package/lib/loggers/params.d.ts.map +1 -0
  164. package/lib/loggers/params.js +56 -0
  165. package/lib/loggers/params.js.map +1 -0
  166. package/lib/metrics/metrics.d.ts +25 -0
  167. package/lib/metrics/metrics.d.ts.map +1 -0
  168. package/lib/metrics/metrics.js +51 -0
  169. package/lib/metrics/metrics.js.map +1 -0
  170. package/lib/models/aclmodel.d.ts +20 -76
  171. package/lib/models/aclmodel.d.ts.map +1 -1
  172. package/lib/models/aclmodel.js +27 -203
  173. package/lib/models/aclmodel.js.map +1 -1
  174. package/lib/models/coremodel.model.d.ts +5 -0
  175. package/lib/models/coremodel.model.d.ts.map +1 -0
  176. package/lib/models/coremodel.model.js +5 -0
  177. package/lib/models/coremodel.model.js.map +1 -0
  178. package/lib/models/decorator.d.ts +67 -0
  179. package/lib/models/decorator.d.ts.map +1 -0
  180. package/lib/models/decorator.js +67 -0
  181. package/lib/models/decorator.js.map +1 -0
  182. package/lib/models/deployment.d.ts +2 -21
  183. package/lib/models/deployment.d.ts.map +1 -1
  184. package/lib/models/encrypted.model.d.ts +46 -0
  185. package/lib/models/encrypted.model.d.ts.map +1 -0
  186. package/lib/models/encrypted.model.js +87 -0
  187. package/lib/models/encrypted.model.js.map +1 -0
  188. package/lib/models/ident.model.d.ts +128 -0
  189. package/lib/models/ident.model.d.ts.map +1 -0
  190. package/lib/models/ident.model.js +207 -0
  191. package/lib/models/ident.model.js.map +1 -0
  192. package/lib/models/ownermodel.model.d.ts +68 -0
  193. package/lib/models/ownermodel.model.d.ts.map +1 -0
  194. package/lib/models/ownermodel.model.js +113 -0
  195. package/lib/models/ownermodel.model.js.map +1 -0
  196. package/lib/models/password.model.d.ts +78 -0
  197. package/lib/models/password.model.d.ts.map +1 -0
  198. package/lib/models/password.model.js +171 -0
  199. package/lib/models/password.model.js.map +1 -0
  200. package/lib/models/refreshtoken.model.d.ts +30 -0
  201. package/lib/models/refreshtoken.model.d.ts.map +1 -0
  202. package/lib/models/refreshtoken.model.js +29 -0
  203. package/lib/models/refreshtoken.model.js.map +1 -0
  204. package/lib/models/registry.model.d.ts +76 -0
  205. package/lib/models/registry.model.d.ts.map +1 -0
  206. package/lib/models/registry.model.js +104 -0
  207. package/lib/models/registry.model.js.map +1 -0
  208. package/lib/models/rolemodel.model.d.ts +28 -0
  209. package/lib/models/rolemodel.model.d.ts.map +1 -0
  210. package/lib/models/{rolemodel.js → rolemodel.model.js} +23 -5
  211. package/lib/models/rolemodel.model.js.map +1 -0
  212. package/lib/models/simpleuser.model.d.ts +78 -0
  213. package/lib/models/simpleuser.model.d.ts.map +1 -0
  214. package/lib/models/simpleuser.model.js +124 -0
  215. package/lib/models/simpleuser.model.js.map +1 -0
  216. package/lib/models/types.d.ts +113 -0
  217. package/lib/models/types.d.ts.map +1 -0
  218. package/lib/models/types.js +2 -0
  219. package/lib/models/types.js.map +1 -0
  220. package/lib/models/user.model.d.ts +103 -0
  221. package/lib/models/user.model.d.ts.map +1 -0
  222. package/lib/models/user.model.js +164 -0
  223. package/lib/models/user.model.js.map +1 -0
  224. package/lib/queues/{memoryqueue.d.ts → memoryqueue.service.d.ts} +26 -13
  225. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  226. package/lib/queues/{memoryqueue.js → memoryqueue.service.js} +55 -31
  227. package/lib/queues/memoryqueue.service.js.map +1 -0
  228. package/lib/queues/pubsubservice.d.ts +8 -6
  229. package/lib/queues/pubsubservice.d.ts.map +1 -1
  230. package/lib/queues/pubsubservice.js +5 -4
  231. package/lib/queues/pubsubservice.js.map +1 -1
  232. package/lib/queues/queueservice.d.ts +9 -11
  233. package/lib/queues/queueservice.d.ts.map +1 -1
  234. package/lib/queues/queueservice.js +41 -13
  235. package/lib/queues/queueservice.js.map +1 -1
  236. package/lib/rest/hooks.d.ts +8 -0
  237. package/lib/rest/hooks.d.ts.map +1 -0
  238. package/lib/rest/hooks.js +10 -0
  239. package/lib/rest/hooks.js.map +1 -0
  240. package/lib/rest/irest.d.ts +212 -0
  241. package/lib/rest/irest.d.ts.map +1 -0
  242. package/lib/rest/irest.js +39 -0
  243. package/lib/rest/irest.js.map +1 -0
  244. package/lib/rest/originfilter.d.ts +38 -0
  245. package/lib/rest/originfilter.d.ts.map +1 -0
  246. package/lib/rest/originfilter.js +61 -0
  247. package/lib/rest/originfilter.js.map +1 -0
  248. package/lib/rest/restoperationstransport.service.d.ts +193 -0
  249. package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
  250. package/lib/rest/restoperationstransport.service.js +780 -0
  251. package/lib/rest/restoperationstransport.service.js.map +1 -0
  252. package/lib/rest/router.service.d.ts +244 -0
  253. package/lib/rest/router.service.d.ts.map +1 -0
  254. package/lib/rest/router.service.js +843 -0
  255. package/lib/rest/router.service.js.map +1 -0
  256. package/lib/schemas/hooks.d.ts +48 -0
  257. package/lib/schemas/hooks.d.ts.map +1 -0
  258. package/lib/schemas/hooks.js +152 -0
  259. package/lib/schemas/hooks.js.map +1 -0
  260. package/lib/services/audit.model.d.ts +208 -0
  261. package/lib/services/audit.model.d.ts.map +1 -0
  262. package/lib/services/audit.model.js +432 -0
  263. package/lib/services/audit.model.js.map +1 -0
  264. package/lib/services/binary.service.d.ts +808 -0
  265. package/lib/services/binary.service.d.ts.map +1 -0
  266. package/lib/services/binary.service.js +1365 -0
  267. package/lib/services/binary.service.js.map +1 -0
  268. package/lib/services/cloudbinary.d.ts +17 -12
  269. package/lib/services/cloudbinary.d.ts.map +1 -1
  270. package/lib/services/cloudbinary.js +23 -17
  271. package/lib/services/cloudbinary.js.map +1 -1
  272. package/lib/services/command.d.ts +118 -0
  273. package/lib/services/command.d.ts.map +1 -0
  274. package/lib/services/command.js +97 -0
  275. package/lib/services/command.js.map +1 -0
  276. package/lib/services/cron.service.d.ts +142 -0
  277. package/lib/services/cron.service.d.ts.map +1 -0
  278. package/lib/services/cron.service.js +291 -0
  279. package/lib/services/cron.service.js.map +1 -0
  280. package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +75 -141
  281. package/lib/services/cryptoservice.service.d.ts.map +1 -0
  282. package/lib/services/cryptoservice.service.js +527 -0
  283. package/lib/services/cryptoservice.service.js.map +1 -0
  284. package/lib/services/debugmailer.service.d.ts +49 -0
  285. package/lib/services/debugmailer.service.d.ts.map +1 -0
  286. package/lib/services/{debugmailer.js → debugmailer.service.js} +25 -10
  287. package/lib/services/debugmailer.service.js.map +1 -0
  288. package/lib/services/domainservice.service.d.ts +242 -0
  289. package/lib/services/domainservice.service.d.ts.map +1 -0
  290. package/lib/services/domainservice.service.js +676 -0
  291. package/lib/services/domainservice.service.js.map +1 -0
  292. package/lib/services/httpserver.service.d.ts +248 -0
  293. package/lib/services/httpserver.service.d.ts.map +1 -0
  294. package/lib/services/httpserver.service.js +673 -0
  295. package/lib/services/httpserver.service.js.map +1 -0
  296. package/lib/services/iauthentication.d.ts +202 -0
  297. package/lib/services/iauthentication.d.ts.map +1 -0
  298. package/lib/services/iauthentication.js +2 -0
  299. package/lib/services/iauthentication.js.map +1 -0
  300. package/lib/services/icryptoservice.d.ts +127 -0
  301. package/lib/services/icryptoservice.d.ts.map +1 -0
  302. package/lib/services/icryptoservice.js +68 -0
  303. package/lib/services/icryptoservice.js.map +1 -0
  304. package/lib/services/imailer.d.ts +17 -0
  305. package/lib/services/imailer.d.ts.map +1 -0
  306. package/lib/services/imailer.js +2 -0
  307. package/lib/services/imailer.js.map +1 -0
  308. package/lib/services/iservice.d.ts +104 -0
  309. package/lib/services/iservice.d.ts.map +1 -0
  310. package/lib/services/iservice.js +63 -0
  311. package/lib/services/iservice.js.map +1 -0
  312. package/lib/services/mailer.service.d.ts +220 -0
  313. package/lib/services/mailer.service.d.ts.map +1 -0
  314. package/lib/services/mailer.service.js +251 -0
  315. package/lib/services/mailer.service.js.map +1 -0
  316. package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -11
  317. package/lib/services/notificationservice.service.d.ts.map +1 -0
  318. package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
  319. package/lib/services/notificationservice.service.js.map +1 -0
  320. package/lib/services/operationstransport.d.ts +65 -0
  321. package/lib/services/operationstransport.d.ts.map +1 -0
  322. package/lib/services/operationstransport.js +103 -0
  323. package/lib/services/operationstransport.js.map +1 -0
  324. package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -12
  325. package/lib/services/prometheus.service.d.ts.map +1 -0
  326. package/lib/services/prometheus.service.js +203 -0
  327. package/lib/services/prometheus.service.js.map +1 -0
  328. package/lib/services/{resource.d.ts → resource.service.d.ts} +34 -15
  329. package/lib/services/resource.service.d.ts.map +1 -0
  330. package/lib/services/resource.service.js +301 -0
  331. package/lib/services/resource.service.js.map +1 -0
  332. package/lib/services/service.d.ts +87 -188
  333. package/lib/services/service.d.ts.map +1 -1
  334. package/lib/services/service.js +407 -422
  335. package/lib/services/service.js.map +1 -1
  336. package/lib/services/servicecommands.d.ts +99 -0
  337. package/lib/services/servicecommands.d.ts.map +1 -0
  338. package/lib/services/servicecommands.js +171 -0
  339. package/lib/services/servicecommands.js.map +1 -0
  340. package/lib/services/serviceparameters.d.ts +33 -0
  341. package/lib/services/serviceparameters.d.ts.map +1 -0
  342. package/lib/services/serviceparameters.js +79 -0
  343. package/lib/services/serviceparameters.js.map +1 -0
  344. package/lib/services/token.service.d.ts +95 -0
  345. package/lib/services/token.service.d.ts.map +1 -0
  346. package/lib/services/token.service.js +182 -0
  347. package/lib/services/token.service.js.map +1 -0
  348. package/lib/{utils → session}/cookie.d.ts +32 -19
  349. package/lib/session/cookie.d.ts.map +1 -0
  350. package/lib/{utils → session}/cookie.js +76 -23
  351. package/lib/session/cookie.js.map +1 -0
  352. package/lib/session/manager.model.d.ts +87 -0
  353. package/lib/session/manager.model.d.ts.map +1 -0
  354. package/lib/session/manager.model.js +212 -0
  355. package/lib/session/manager.model.js.map +1 -0
  356. package/lib/session/session.d.ts +100 -0
  357. package/lib/session/session.d.ts.map +1 -0
  358. package/lib/session/session.js +175 -0
  359. package/lib/session/session.js.map +1 -0
  360. package/lib/stores/istore.d.ts +99 -0
  361. package/lib/stores/istore.d.ts.map +1 -0
  362. package/lib/stores/istore.js +26 -0
  363. package/lib/stores/istore.js.map +1 -0
  364. package/lib/stores/memory.service.d.ts +114 -0
  365. package/lib/stores/memory.service.d.ts.map +1 -0
  366. package/lib/stores/memory.service.js +344 -0
  367. package/lib/stores/memory.service.js.map +1 -0
  368. package/lib/stores/store.d.ts +126 -626
  369. package/lib/stores/store.d.ts.map +1 -1
  370. package/lib/stores/store.js +257 -1117
  371. package/lib/stores/store.js.map +1 -1
  372. package/lib/templates/templates.d.ts +47 -0
  373. package/lib/templates/templates.d.ts.map +1 -0
  374. package/lib/templates/templates.js +101 -0
  375. package/lib/templates/templates.js.map +1 -0
  376. package/lib/test/application.d.ts +174 -0
  377. package/lib/test/application.d.ts.map +1 -0
  378. package/lib/test/application.js +288 -0
  379. package/lib/test/application.js.map +1 -0
  380. package/lib/test/asyncstorage.d.ts +16 -0
  381. package/lib/test/asyncstorage.d.ts.map +1 -0
  382. package/lib/test/asyncstorage.js +32 -0
  383. package/lib/test/asyncstorage.js.map +1 -0
  384. package/lib/test/behavior-fixture.model.d.ts +30 -0
  385. package/lib/test/behavior-fixture.model.d.ts.map +1 -0
  386. package/lib/test/behavior-fixture.model.js +63 -0
  387. package/lib/test/behavior-fixture.model.js.map +1 -0
  388. package/lib/test/core.d.ts +63 -0
  389. package/lib/test/core.d.ts.map +1 -0
  390. package/lib/test/core.js +190 -0
  391. package/lib/test/core.js.map +1 -0
  392. package/lib/test/index.d.ts +7 -0
  393. package/lib/test/index.d.ts.map +1 -0
  394. package/lib/test/index.js +8 -0
  395. package/lib/test/index.js.map +1 -0
  396. package/lib/test/internal.d.ts +34 -0
  397. package/lib/test/internal.d.ts.map +1 -0
  398. package/lib/test/internal.js +156 -0
  399. package/lib/test/internal.js.map +1 -0
  400. package/lib/test/legacyident.fixture.model.d.ts +98 -0
  401. package/lib/test/legacyident.fixture.model.d.ts.map +1 -0
  402. package/lib/test/legacyident.fixture.model.js +125 -0
  403. package/lib/test/legacyident.fixture.model.js.map +1 -0
  404. package/lib/test/objects.d.ts +318 -0
  405. package/lib/test/objects.d.ts.map +1 -0
  406. package/lib/test/objects.js +443 -0
  407. package/lib/test/objects.js.map +1 -0
  408. package/lib/utils/abstractdeployer.d.ts +4 -2
  409. package/lib/utils/abstractdeployer.d.ts.map +1 -1
  410. package/lib/utils/abstractdeployer.js +3 -0
  411. package/lib/utils/abstractdeployer.js.map +1 -1
  412. package/package.json +102 -60
  413. package/test/cachedapp/webda.config.json +1 -5
  414. package/test/config-cached.json +3 -6
  415. package/test/config.json +3 -10
  416. package/test/my-cnf.json +9 -0
  417. package/webda.module.json +3755 -2496
  418. package/lib/application.d.ts +0 -888
  419. package/lib/application.d.ts.map +0 -1
  420. package/lib/application.js +0 -768
  421. package/lib/application.js.map +0 -1
  422. package/lib/application.spec.d.ts +0 -2
  423. package/lib/application.spec.d.ts.map +0 -1
  424. package/lib/application.spec.js +0 -248
  425. package/lib/application.spec.js.map +0 -1
  426. package/lib/core.d.ts +0 -743
  427. package/lib/core.d.ts.map +0 -1
  428. package/lib/core.js +0 -1334
  429. package/lib/core.js.map +0 -1
  430. package/lib/core.spec.d.ts +0 -2
  431. package/lib/core.spec.d.ts.map +0 -1
  432. package/lib/core.spec.js +0 -790
  433. package/lib/core.spec.js.map +0 -1
  434. package/lib/errors.d.ts +0 -64
  435. package/lib/errors.d.ts.map +0 -1
  436. package/lib/errors.js +0 -97
  437. package/lib/errors.js.map +0 -1
  438. package/lib/errors.spec.d.ts +0 -2
  439. package/lib/errors.spec.d.ts.map +0 -1
  440. package/lib/errors.spec.js +0 -33
  441. package/lib/errors.spec.js.map +0 -1
  442. package/lib/models/aclmodel.spec.d.ts +0 -2
  443. package/lib/models/aclmodel.spec.d.ts.map +0 -1
  444. package/lib/models/aclmodel.spec.js +0 -187
  445. package/lib/models/aclmodel.spec.js.map +0 -1
  446. package/lib/models/coremodel.d.ts +0 -896
  447. package/lib/models/coremodel.d.ts.map +0 -1
  448. package/lib/models/coremodel.js +0 -1214
  449. package/lib/models/coremodel.js.map +0 -1
  450. package/lib/models/coremodel.spec.d.ts +0 -2
  451. package/lib/models/coremodel.spec.d.ts.map +0 -1
  452. package/lib/models/coremodel.spec.js +0 -464
  453. package/lib/models/coremodel.spec.js.map +0 -1
  454. package/lib/models/ident.d.ts +0 -68
  455. package/lib/models/ident.d.ts.map +0 -1
  456. package/lib/models/ident.js +0 -26
  457. package/lib/models/ident.js.map +0 -1
  458. package/lib/models/ident.spec.d.ts +0 -2
  459. package/lib/models/ident.spec.d.ts.map +0 -1
  460. package/lib/models/ident.spec.js +0 -24
  461. package/lib/models/ident.spec.js.map +0 -1
  462. package/lib/models/ownermodel.d.ts +0 -51
  463. package/lib/models/ownermodel.d.ts.map +0 -1
  464. package/lib/models/ownermodel.js +0 -65
  465. package/lib/models/ownermodel.js.map +0 -1
  466. package/lib/models/ownermodel.spec.d.ts +0 -2
  467. package/lib/models/ownermodel.spec.d.ts.map +0 -1
  468. package/lib/models/ownermodel.spec.js +0 -215
  469. package/lib/models/ownermodel.spec.js.map +0 -1
  470. package/lib/models/relations.d.ts +0 -182
  471. package/lib/models/relations.d.ts.map +0 -1
  472. package/lib/models/relations.js +0 -157
  473. package/lib/models/relations.js.map +0 -1
  474. package/lib/models/relations.spec.d.ts +0 -14
  475. package/lib/models/relations.spec.d.ts.map +0 -1
  476. package/lib/models/relations.spec.js +0 -217
  477. package/lib/models/relations.spec.js.map +0 -1
  478. package/lib/models/rolemodel.d.ts +0 -11
  479. package/lib/models/rolemodel.d.ts.map +0 -1
  480. package/lib/models/rolemodel.js.map +0 -1
  481. package/lib/models/rolemodel.spec.d.ts +0 -2
  482. package/lib/models/rolemodel.spec.d.ts.map +0 -1
  483. package/lib/models/rolemodel.spec.js +0 -90
  484. package/lib/models/rolemodel.spec.js.map +0 -1
  485. package/lib/models/simpleuser.d.ts +0 -47
  486. package/lib/models/simpleuser.d.ts.map +0 -1
  487. package/lib/models/simpleuser.js +0 -84
  488. package/lib/models/simpleuser.js.map +0 -1
  489. package/lib/models/test.d.ts +0 -11
  490. package/lib/models/test.d.ts.map +0 -1
  491. package/lib/models/test.js +0 -7
  492. package/lib/models/test.js.map +0 -1
  493. package/lib/models/user.d.ts +0 -67
  494. package/lib/models/user.d.ts.map +0 -1
  495. package/lib/models/user.js +0 -86
  496. package/lib/models/user.js.map +0 -1
  497. package/lib/models/user.spec.d.ts +0 -2
  498. package/lib/models/user.spec.d.ts.map +0 -1
  499. package/lib/models/user.spec.js +0 -89
  500. package/lib/models/user.spec.js.map +0 -1
  501. package/lib/queues/filequeue.d.ts +0 -59
  502. package/lib/queues/filequeue.d.ts.map +0 -1
  503. package/lib/queues/filequeue.js +0 -131
  504. package/lib/queues/filequeue.js.map +0 -1
  505. package/lib/queues/filequeue.spec.d.ts +0 -2
  506. package/lib/queues/filequeue.spec.d.ts.map +0 -1
  507. package/lib/queues/filequeue.spec.js +0 -84
  508. package/lib/queues/filequeue.spec.js.map +0 -1
  509. package/lib/queues/memoryqueue.d.ts.map +0 -1
  510. package/lib/queues/memoryqueue.js.map +0 -1
  511. package/lib/queues/memoryqueue.spec.d.ts +0 -2
  512. package/lib/queues/memoryqueue.spec.d.ts.map +0 -1
  513. package/lib/queues/memoryqueue.spec.js +0 -203
  514. package/lib/queues/memoryqueue.spec.js.map +0 -1
  515. package/lib/queues/queue.spec.d.ts +0 -6
  516. package/lib/queues/queue.spec.d.ts.map +0 -1
  517. package/lib/queues/queue.spec.js +0 -55
  518. package/lib/queues/queue.spec.js.map +0 -1
  519. package/lib/rest/restdomainservice.d.ts +0 -63
  520. package/lib/rest/restdomainservice.d.ts.map +0 -1
  521. package/lib/rest/restdomainservice.js +0 -687
  522. package/lib/rest/restdomainservice.js.map +0 -1
  523. package/lib/rest/restdomainservice.spec.d.ts +0 -2
  524. package/lib/rest/restdomainservice.spec.d.ts.map +0 -1
  525. package/lib/rest/restdomainservice.spec.js +0 -124
  526. package/lib/rest/restdomainservice.spec.js.map +0 -1
  527. package/lib/rest/router.d.ts +0 -174
  528. package/lib/rest/router.d.ts.map +0 -1
  529. package/lib/rest/router.js +0 -429
  530. package/lib/rest/router.js.map +0 -1
  531. package/lib/rest/router.spec.d.ts +0 -2
  532. package/lib/rest/router.spec.d.ts.map +0 -1
  533. package/lib/rest/router.spec.js +0 -255
  534. package/lib/rest/router.spec.js.map +0 -1
  535. package/lib/services/asyncevents.d.ts +0 -152
  536. package/lib/services/asyncevents.d.ts.map +0 -1
  537. package/lib/services/asyncevents.js +0 -217
  538. package/lib/services/asyncevents.js.map +0 -1
  539. package/lib/services/asyncevents.spec.d.ts +0 -2
  540. package/lib/services/asyncevents.spec.d.ts.map +0 -1
  541. package/lib/services/asyncevents.spec.js +0 -118
  542. package/lib/services/asyncevents.spec.js.map +0 -1
  543. package/lib/services/authentication.d.ts +0 -361
  544. package/lib/services/authentication.d.ts.map +0 -1
  545. package/lib/services/authentication.js +0 -773
  546. package/lib/services/authentication.js.map +0 -1
  547. package/lib/services/authentication.spec.d.ts +0 -2
  548. package/lib/services/authentication.spec.d.ts.map +0 -1
  549. package/lib/services/authentication.spec.js +0 -458
  550. package/lib/services/authentication.spec.js.map +0 -1
  551. package/lib/services/binary.d.ts +0 -477
  552. package/lib/services/binary.d.ts.map +0 -1
  553. package/lib/services/binary.js +0 -617
  554. package/lib/services/binary.js.map +0 -1
  555. package/lib/services/binary.spec.d.ts +0 -41
  556. package/lib/services/binary.spec.d.ts.map +0 -1
  557. package/lib/services/binary.spec.js +0 -151
  558. package/lib/services/binary.spec.js.map +0 -1
  559. package/lib/services/cloudbinary.spec.d.ts +0 -6
  560. package/lib/services/cloudbinary.spec.d.ts.map +0 -1
  561. package/lib/services/cloudbinary.spec.js +0 -66
  562. package/lib/services/cloudbinary.spec.js.map +0 -1
  563. package/lib/services/configuration.d.ts.map +0 -1
  564. package/lib/services/configuration.js +0 -193
  565. package/lib/services/configuration.js.map +0 -1
  566. package/lib/services/configuration.spec.d.ts +0 -2
  567. package/lib/services/configuration.spec.d.ts.map +0 -1
  568. package/lib/services/configuration.spec.js +0 -130
  569. package/lib/services/configuration.spec.js.map +0 -1
  570. package/lib/services/cron.d.ts +0 -74
  571. package/lib/services/cron.d.ts.map +0 -1
  572. package/lib/services/cron.js +0 -141
  573. package/lib/services/cron.js.map +0 -1
  574. package/lib/services/cron.spec.d.ts +0 -2
  575. package/lib/services/cron.spec.d.ts.map +0 -1
  576. package/lib/services/cron.spec.js +0 -76
  577. package/lib/services/cron.spec.js.map +0 -1
  578. package/lib/services/cryptoservice.d.ts.map +0 -1
  579. package/lib/services/cryptoservice.js +0 -433
  580. package/lib/services/cryptoservice.js.map +0 -1
  581. package/lib/services/cryptoservice.spec.d.ts +0 -2
  582. package/lib/services/cryptoservice.spec.d.ts.map +0 -1
  583. package/lib/services/cryptoservice.spec.js +0 -177
  584. package/lib/services/cryptoservice.spec.js.map +0 -1
  585. package/lib/services/debugmailer.d.ts +0 -36
  586. package/lib/services/debugmailer.d.ts.map +0 -1
  587. package/lib/services/debugmailer.js.map +0 -1
  588. package/lib/services/debugmailer.spec.d.ts +0 -2
  589. package/lib/services/debugmailer.spec.d.ts.map +0 -1
  590. package/lib/services/debugmailer.spec.js +0 -32
  591. package/lib/services/debugmailer.spec.js.map +0 -1
  592. package/lib/services/domainservice.d.ts +0 -272
  593. package/lib/services/domainservice.d.ts.map +0 -1
  594. package/lib/services/domainservice.js +0 -651
  595. package/lib/services/domainservice.js.map +0 -1
  596. package/lib/services/domainservice.spec.d.ts +0 -2
  597. package/lib/services/domainservice.spec.d.ts.map +0 -1
  598. package/lib/services/domainservice.spec.js +0 -592
  599. package/lib/services/domainservice.spec.js.map +0 -1
  600. package/lib/services/filebinary.d.ts +0 -136
  601. package/lib/services/filebinary.d.ts.map +0 -1
  602. package/lib/services/filebinary.js +0 -373
  603. package/lib/services/filebinary.js.map +0 -1
  604. package/lib/services/filebinary.spec.d.ts +0 -25
  605. package/lib/services/filebinary.spec.d.ts.map +0 -1
  606. package/lib/services/filebinary.spec.js +0 -428
  607. package/lib/services/filebinary.spec.js.map +0 -1
  608. package/lib/services/fileconfiguration.d.ts +0 -23
  609. package/lib/services/fileconfiguration.d.ts.map +0 -1
  610. package/lib/services/fileconfiguration.js +0 -48
  611. package/lib/services/fileconfiguration.js.map +0 -1
  612. package/lib/services/fileconfiguration.spec.d.ts +0 -2
  613. package/lib/services/fileconfiguration.spec.d.ts.map +0 -1
  614. package/lib/services/fileconfiguration.spec.js +0 -215
  615. package/lib/services/fileconfiguration.spec.js.map +0 -1
  616. package/lib/services/invitationservice.d.ts +0 -223
  617. package/lib/services/invitationservice.d.ts.map +0 -1
  618. package/lib/services/invitationservice.js +0 -529
  619. package/lib/services/invitationservice.js.map +0 -1
  620. package/lib/services/invitationservice.spec.d.ts +0 -2
  621. package/lib/services/invitationservice.spec.d.ts.map +0 -1
  622. package/lib/services/invitationservice.spec.js +0 -567
  623. package/lib/services/invitationservice.spec.js.map +0 -1
  624. package/lib/services/kubernetesconfiguration.d.ts +0 -27
  625. package/lib/services/kubernetesconfiguration.d.ts.map +0 -1
  626. package/lib/services/kubernetesconfiguration.js +0 -52
  627. package/lib/services/kubernetesconfiguration.js.map +0 -1
  628. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -2
  629. package/lib/services/kubernetesconfiguration.spec.d.ts.map +0 -1
  630. package/lib/services/kubernetesconfiguration.spec.js +0 -206
  631. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  632. package/lib/services/mailer.d.ts +0 -166
  633. package/lib/services/mailer.d.ts.map +0 -1
  634. package/lib/services/mailer.js +0 -176
  635. package/lib/services/mailer.js.map +0 -1
  636. package/lib/services/mailer.spec.d.ts +0 -2
  637. package/lib/services/mailer.spec.d.ts.map +0 -1
  638. package/lib/services/mailer.spec.js +0 -158
  639. package/lib/services/mailer.spec.js.map +0 -1
  640. package/lib/services/notificationservice.d.ts.map +0 -1
  641. package/lib/services/notificationservice.js.map +0 -1
  642. package/lib/services/notificationservice.spec.d.ts +0 -2
  643. package/lib/services/notificationservice.spec.d.ts.map +0 -1
  644. package/lib/services/notificationservice.spec.js +0 -83
  645. package/lib/services/notificationservice.spec.js.map +0 -1
  646. package/lib/services/oauth.d.ts +0 -226
  647. package/lib/services/oauth.d.ts.map +0 -1
  648. package/lib/services/oauth.js +0 -294
  649. package/lib/services/oauth.js.map +0 -1
  650. package/lib/services/oauth.spec.d.ts +0 -2
  651. package/lib/services/oauth.spec.d.ts.map +0 -1
  652. package/lib/services/oauth.spec.js +0 -208
  653. package/lib/services/oauth.spec.js.map +0 -1
  654. package/lib/services/prometheus.d.ts.map +0 -1
  655. package/lib/services/prometheus.js +0 -160
  656. package/lib/services/prometheus.js.map +0 -1
  657. package/lib/services/prometheus.spec.d.ts +0 -2
  658. package/lib/services/prometheus.spec.d.ts.map +0 -1
  659. package/lib/services/prometheus.spec.js +0 -76
  660. package/lib/services/prometheus.spec.js.map +0 -1
  661. package/lib/services/resource.d.ts.map +0 -1
  662. package/lib/services/resource.js +0 -170
  663. package/lib/services/resource.js.map +0 -1
  664. package/lib/services/resource.spec.d.ts +0 -2
  665. package/lib/services/resource.spec.d.ts.map +0 -1
  666. package/lib/services/resource.spec.js +0 -140
  667. package/lib/services/resource.spec.js.map +0 -1
  668. package/lib/services/service.spec.d.ts +0 -2
  669. package/lib/services/service.spec.d.ts.map +0 -1
  670. package/lib/services/service.spec.js +0 -286
  671. package/lib/services/service.spec.js.map +0 -1
  672. package/lib/stores/aggregator.d.ts +0 -48
  673. package/lib/stores/aggregator.d.ts.map +0 -1
  674. package/lib/stores/aggregator.js +0 -80
  675. package/lib/stores/aggregator.js.map +0 -1
  676. package/lib/stores/file.d.ts +0 -108
  677. package/lib/stores/file.d.ts.map +0 -1
  678. package/lib/stores/file.js +0 -188
  679. package/lib/stores/file.js.map +0 -1
  680. package/lib/stores/file.spec.d.ts +0 -13
  681. package/lib/stores/file.spec.d.ts.map +0 -1
  682. package/lib/stores/file.spec.js +0 -138
  683. package/lib/stores/file.spec.js.map +0 -1
  684. package/lib/stores/mapper.d.ts +0 -150
  685. package/lib/stores/mapper.d.ts.map +0 -1
  686. package/lib/stores/mapper.js +0 -293
  687. package/lib/stores/mapper.js.map +0 -1
  688. package/lib/stores/mapper.spec.d.ts +0 -2
  689. package/lib/stores/mapper.spec.d.ts.map +0 -1
  690. package/lib/stores/mapper.spec.js +0 -167
  691. package/lib/stores/mapper.spec.js.map +0 -1
  692. package/lib/stores/memory.d.ts +0 -152
  693. package/lib/stores/memory.d.ts.map +0 -1
  694. package/lib/stores/memory.js +0 -371
  695. package/lib/stores/memory.js.map +0 -1
  696. package/lib/stores/memory.spec.d.ts +0 -14
  697. package/lib/stores/memory.spec.d.ts.map +0 -1
  698. package/lib/stores/memory.spec.js +0 -263
  699. package/lib/stores/memory.spec.js.map +0 -1
  700. package/lib/stores/modelmapper.d.ts +0 -62
  701. package/lib/stores/modelmapper.d.ts.map +0 -1
  702. package/lib/stores/modelmapper.js +0 -197
  703. package/lib/stores/modelmapper.js.map +0 -1
  704. package/lib/stores/store.spec.d.ts +0 -57
  705. package/lib/stores/store.spec.d.ts.map +0 -1
  706. package/lib/stores/store.spec.js +0 -737
  707. package/lib/stores/store.spec.js.map +0 -1
  708. package/lib/test.d.ts +0 -265
  709. package/lib/test.d.ts.map +0 -1
  710. package/lib/test.js +0 -622
  711. package/lib/test.js.map +0 -1
  712. package/lib/unpackedapplication.d.ts.map +0 -1
  713. package/lib/unpackedapplication.js +0 -350
  714. package/lib/unpackedapplication.js.map +0 -1
  715. package/lib/utils/abstractdeployer.spec.d.ts +0 -2
  716. package/lib/utils/abstractdeployer.spec.d.ts.map +0 -1
  717. package/lib/utils/abstractdeployer.spec.js +0 -21
  718. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  719. package/lib/utils/case.d.ts +0 -8
  720. package/lib/utils/case.d.ts.map +0 -1
  721. package/lib/utils/case.js +0 -43
  722. package/lib/utils/case.js.map +0 -1
  723. package/lib/utils/case.spec.d.ts +0 -2
  724. package/lib/utils/case.spec.d.ts.map +0 -1
  725. package/lib/utils/case.spec.js +0 -50
  726. package/lib/utils/case.spec.js.map +0 -1
  727. package/lib/utils/context.d.ts +0 -482
  728. package/lib/utils/context.d.ts.map +0 -1
  729. package/lib/utils/context.js +0 -739
  730. package/lib/utils/context.js.map +0 -1
  731. package/lib/utils/context.spec.d.ts +0 -10
  732. package/lib/utils/context.spec.d.ts.map +0 -1
  733. package/lib/utils/context.spec.js +0 -383
  734. package/lib/utils/context.spec.js.map +0 -1
  735. package/lib/utils/cookie.d.ts.map +0 -1
  736. package/lib/utils/cookie.js.map +0 -1
  737. package/lib/utils/cookie.spec.d.ts +0 -2
  738. package/lib/utils/cookie.spec.d.ts.map +0 -1
  739. package/lib/utils/cookie.spec.js +0 -88
  740. package/lib/utils/cookie.spec.js.map +0 -1
  741. package/lib/utils/esm.d.ts +0 -14
  742. package/lib/utils/esm.d.ts.map +0 -1
  743. package/lib/utils/esm.js +0 -19
  744. package/lib/utils/esm.js.map +0 -1
  745. package/lib/utils/httpcontext.d.ts.map +0 -1
  746. package/lib/utils/httpcontext.js.map +0 -1
  747. package/lib/utils/httpcontext.spec.d.ts +0 -5
  748. package/lib/utils/httpcontext.spec.d.ts.map +0 -1
  749. package/lib/utils/httpcontext.spec.js +0 -77
  750. package/lib/utils/httpcontext.spec.js.map +0 -1
  751. package/lib/utils/logger.d.ts +0 -92
  752. package/lib/utils/logger.d.ts.map +0 -1
  753. package/lib/utils/logger.js +0 -121
  754. package/lib/utils/logger.js.map +0 -1
  755. package/lib/utils/logger.spec.d.ts +0 -2
  756. package/lib/utils/logger.spec.d.ts.map +0 -1
  757. package/lib/utils/logger.spec.js +0 -48
  758. package/lib/utils/logger.spec.js.map +0 -1
  759. package/lib/utils/serializers.d.ts +0 -162
  760. package/lib/utils/serializers.d.ts.map +0 -1
  761. package/lib/utils/serializers.js +0 -420
  762. package/lib/utils/serializers.js.map +0 -1
  763. package/lib/utils/serializers.spec.d.ts +0 -2
  764. package/lib/utils/serializers.spec.d.ts.map +0 -1
  765. package/lib/utils/serializers.spec.js +0 -311
  766. package/lib/utils/serializers.spec.js.map +0 -1
  767. package/lib/utils/session.d.ts +0 -123
  768. package/lib/utils/session.d.ts.map +0 -1
  769. package/lib/utils/session.js +0 -156
  770. package/lib/utils/session.js.map +0 -1
  771. package/lib/utils/session.spec.d.ts +0 -2
  772. package/lib/utils/session.spec.d.ts.map +0 -1
  773. package/lib/utils/session.spec.js +0 -81
  774. package/lib/utils/session.spec.js.map +0 -1
  775. package/lib/utils/throttler.d.ts +0 -99
  776. package/lib/utils/throttler.d.ts.map +0 -1
  777. package/lib/utils/throttler.js +0 -160
  778. package/lib/utils/throttler.js.map +0 -1
  779. package/lib/utils/throttler.spec.d.ts +0 -2
  780. package/lib/utils/throttler.spec.d.ts.map +0 -1
  781. package/lib/utils/throttler.spec.js +0 -53
  782. package/lib/utils/throttler.spec.js.map +0 -1
  783. package/lib/utils/waiter.d.ts +0 -94
  784. package/lib/utils/waiter.d.ts.map +0 -1
  785. package/lib/utils/waiter.js +0 -148
  786. package/lib/utils/waiter.js.map +0 -1
  787. package/lib/utils/waiter.spec.d.ts +0 -2
  788. package/lib/utils/waiter.spec.d.ts.map +0 -1
  789. package/lib/utils/waiter.spec.js +0 -98
  790. package/lib/utils/waiter.spec.js.map +0 -1
  791. package/test/jsonutils/mdocs.yaml +0 -56
  792. package/test/jsonutils/test.json +0 -3
  793. package/test/jsonutils/test.yml +0 -5
@@ -1,15 +1,62 @@
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 { EventEmitterUtils } from "../events/asynceventemitter.js";
36
+ import { createPropertyDecorator } from "@webda/tsc-esm";
37
+ import { useMetric } from "../metrics/metrics.js";
38
+ import { ServiceParameters } from "./serviceparameters.js";
39
+ import { useDynamicService, useService } from "../core/hooks.js";
40
+ import { registerOperation } from "../core/operations.js";
1
41
  import { deepmerge } from "deepmerge-ts";
2
- import * as events from "events";
3
- import { EventEmitterUtils } from "../index.js";
4
- import { Route } from "../rest/router.js";
42
+ import { useApplication } from "../application/hooks.js";
43
+ import { AbstractService } from "../core/icore.js";
44
+ import { useLogger } from "../loggers/hooks.js";
45
+ import { WEBDA_EVENTS } from "@webda/models";
46
+ import { State } from "@webda/utils";
47
+ import { ServiceState } from "./iservice.js";
48
+ import { getMetadata } from "@webda/decorators";
5
49
  /**
6
50
  * Represent a Inject annotation
7
51
  *
8
52
  * @see Inject
9
53
  */
10
54
  class Injector {
55
+ parameter;
56
+ value;
57
+ property;
58
+ optional;
11
59
  /**
12
- *
13
60
  * @param property annotated
14
61
  * @param parameterOrName to inject from
15
62
  * @param defaultValue in case of a parameter
@@ -41,7 +88,7 @@ class Injector {
41
88
  if (this.parameter) {
42
89
  name = service.getParameters()[this.parameter] || this.value;
43
90
  }
44
- service[this.property] = service.getService(name);
91
+ service[this.property] = useService(name);
45
92
  if (!service[this.property] && !this.optional) {
46
93
  if (this.parameter) {
47
94
  throw new Error(`Injector did not found bean '${name}'(parameter:${this.parameter}) for '${service.getName()}'`);
@@ -55,7 +102,9 @@ class Injector {
55
102
  * @param service to inject to
56
103
  */
57
104
  static resolveAll(service) {
58
- (Object.getPrototypeOf(service).Injectors || []).forEach(injector => injector.resolve(service));
105
+ getMetadata(service.constructor)?.["webda.inject"]?.forEach((injector) => {
106
+ injector.resolve(service);
107
+ });
59
108
  }
60
109
  }
61
110
  /**
@@ -70,127 +119,29 @@ class Injector {
70
119
  * @param parameterOrName of the service to inject
71
120
  *
72
121
  * Might consider to split into two annotations
122
+ * TODO @webda/compiler could get all interfaces and ancestors classes to find the correct service
73
123
  */
74
- export function Inject(parameterOrName, defaultValue, optional) {
75
- return (target, propertyName) => {
76
- target.Injectors = target.Injectors || [];
77
- if (typeof defaultValue === "boolean") {
78
- target.Injectors.push(new Injector(propertyName, parameterOrName || propertyName, undefined, defaultValue));
79
- }
80
- else {
81
- target.Injectors.push(new Injector(propertyName, parameterOrName || propertyName, defaultValue, optional));
82
- }
83
- };
84
- }
85
- /**
86
- * Register an Operation within the framework
87
- *
88
- * An operation is a callable method with an input and output
89
- * The method will receive a Context from where it can execute
90
- *
91
- * @param id
92
- * @param input
93
- * @param output
94
- */
95
- export function Operation(properties, route) {
96
- return (target, executor) => {
97
- var _a, _b, _c, _d, _e, _f;
98
- (_a = target.constructor).operations ?? (_a.operations = {});
99
- properties ?? (properties = {});
100
- properties.id ?? (properties.id = executor.substring(0, 1).toUpperCase() + executor.substring(1));
101
- const id = properties.id;
102
- if (target.constructor.operations[id]) {
103
- console.error("Operation already exists", id);
104
- return;
105
- }
106
- (_b = target.constructor.operations)[id] ?? (_b[id] = {
107
- method: executor,
108
- ...properties
109
- });
110
- // If url is specified define the openapi
111
- if (route) {
112
- route.method ?? (route.method = "GET");
113
- route.openapi ?? (route.openapi = {});
114
- (_c = route.openapi)[_d = route.method.toLowerCase()] ?? (_c[_d] = {});
115
- const def = route.openapi[route.method.toLowerCase()];
116
- def.operationId = id;
117
- def.schemas ?? (def.schemas = {});
118
- (_e = def.schemas).input ?? (_e.input = properties.id.toLowerCase() + ".input");
119
- (_f = def.schemas).output ?? (_f.output = properties.id.toLowerCase() + ".output");
120
- Route(route.url, route.method, route.openapi)(target, executor);
121
- }
122
- };
123
- }
124
- /**
125
- * A utility class that takes a array of string or string transformed into regex that includes
126
- * a start line and end line
127
- */
128
- export class RegExpValidator {
129
- constructor(info) {
130
- info = Array.isArray(info) ? info : [info];
131
- this.validators = info.map(i => RegExpValidator.getRegExp(i));
132
- }
133
- static getRegExp(reg) {
134
- if (!reg.startsWith("^")) {
135
- reg = "^" + reg;
136
- }
137
- if (!reg.endsWith("$")) {
138
- reg += "$";
139
- }
140
- return new RegExp(reg);
141
- }
142
- validate(value) {
143
- return this.validators.some(p => p.test(value));
144
- }
145
- }
146
- /**
147
- * Standardized way to allow string/regex validation within configuration
148
- *
149
- * If url is prefixed with `regex:` it is considered a regex
150
- *
151
- * @example
152
- * ```typescript
153
- * class MyServiceParameters extends ServiceParameters {
154
- * urls: string[];
155
- * }
156
- *
157
- * class MyService extends Service {
158
- * loadParameters(params:any) {
159
- * const parameters = new MyServiceParameters(params);
160
- * this.urlsValidator = new RegExpStringValidator(parameters.urls);
161
- * return parameters;
162
- * }
163
- * }
164
- * ```
165
- */
166
- export class RegExpStringValidator extends RegExpValidator {
167
- constructor(info) {
168
- info = Array.isArray(info) ? info : [info];
169
- super(info.filter(i => i.startsWith("regex:")).map(i => i.substring(6)));
170
- this.stringValidators = info.filter(i => !i.startsWith("regex:"));
171
- }
172
- /**
173
- * Add string validation
174
- * @param value
175
- * @returns
176
- */
177
- validate(value) {
178
- return this.stringValidators.find(p => p === value) !== undefined || super.validate(value);
179
- }
180
- }
181
- /**
182
- * Interface to specify the Service parameters
183
- */
184
- export class ServiceParameters {
185
- /**
186
- * Copy all parameters into the object by default
187
- *
188
- * @param params from webda.config.json
189
- */
190
- constructor(params) {
191
- Object.assign(this, params);
192
- }
124
+ export const Inject = createPropertyDecorator((context, parameterOrName, defaultValue, optional) => {
125
+ context.metadata["webda.inject"] ??= [];
126
+ context.metadata["webda.inject"].push(new Injector(context.name, (parameterOrName || context.name), typeof defaultValue === "boolean" ? undefined : defaultValue, typeof defaultValue === "boolean" ? defaultValue : optional));
127
+ });
128
+ /*
129
+ export function Inject(parameterOrName?: string, defaultValue?: string | boolean, optional?: boolean) {
130
+ return (target: Service, context: ClassFieldDecoratorContext): void => {
131
+ context.metadata["webda.inject"] ??= {};
132
+ context.metadata["webda.inject"][context.name] = { parameterOrName, defaultValue, optional };
133
+
134
+ /*
135
+ target.Injectors = target.Injectors || [];
136
+ if (typeof defaultValue === "boolean") {
137
+ target.Injectors.push(new Injector(propertyName, parameterOrName || propertyName, undefined, defaultValue));
138
+ } else {
139
+ target.Injectors.push(new Injector(propertyName, parameterOrName || propertyName, defaultValue, optional));
140
+ }
141
+ /
142
+ };
193
143
  }
144
+ */
194
145
  /**
195
146
  * Use this object for representing a service in the application
196
147
  * A Service is a singleton in the application, that is init after all others services are created
@@ -201,310 +152,344 @@ export class ServiceParameters {
201
152
  * @abstract
202
153
  * @class Service
203
154
  */
204
- class Service extends events.EventEmitter {
205
- /**
206
- *
207
- *
208
- * @class Service
209
- * @param {Webda} webda - The main instance of Webda
210
- * @param {String} name - The name of the service
211
- * @param {Object} params - The parameters block define in the configuration file
212
- */
213
- constructor(webda, name, params = {}) {
214
- super();
215
- this._initException = undefined;
216
- this.logger = webda ? webda.getLogger(this) : undefined;
217
- this._webda = webda;
218
- this._name = name;
219
- this.parameters = this.loadParameters(params);
220
- }
221
- /**
222
- * Load the parameters for a service
223
- */
224
- loadParameters(params) {
225
- return new ServiceParameters(params);
226
- }
227
- /**
228
- * Used to compute or derivate input parameter to attribute
229
- */
230
- computeParameters() {
231
- // Can be overriden by subclasses if needed
232
- }
233
- /**
234
- * Get the service parameters
235
- */
236
- getParameters() {
237
- return this.parameters;
238
- }
239
- /**
240
- * Return WebdaCore
241
- */
242
- getWebda() {
243
- return this._webda;
244
- }
245
- /**
246
- * Shutdown the current service if action need to be taken
247
- */
248
- async stop() {
249
- // Nothing to do
250
- }
251
- /**
252
- * Return service representation
253
- */
254
- toString() {
255
- return this.parameters.type + "[" + this._name + "]";
256
- }
257
- /**
258
- * Resolve parameters
259
- * Call initRoutes and initBeanRoutes
260
- */
261
- resolve() {
262
- this.initMetrics();
263
- // Inject dependencies
264
- Injector.resolveAll(this);
265
- // We wait for all services to be created before calling computeParameters
266
- this.computeParameters();
267
- this.initRoutes();
268
- this.initOperations();
269
- return this;
270
- }
271
- /**
272
- * Init the metrics
273
- */
274
- initMetrics() {
275
- this.metrics = {};
276
- }
277
- /**
278
- * Add service name label
279
- * @param type
280
- * @param configuration
281
- * @returns
282
- */
283
- getMetric(type, configuration) {
284
- configuration.labelNames ?? (configuration.labelNames = []);
285
- configuration.labelNames = [...configuration.labelNames, "service"];
286
- configuration.name = `${this.getName().toLowerCase()}_${configuration.name}`;
287
- return this.getWebda().getMetric(type, configuration);
288
- }
289
- /**
290
- * Return the events that an external system can subscribe to
291
- *
292
- * @returns
293
- */
294
- getClientEvents() {
295
- return [];
296
- }
297
- /**
298
- * Authorize a public event subscription
299
- * @param event
300
- * @param context
301
- */
302
- authorizeClientEvent(_event, _context) {
303
- return false;
304
- }
305
- /**
306
- * Return the full path url based on parameters
307
- *
308
- * @param url relative url to service
309
- * @param _methods in case we need filtering (like Store)
310
- * @returns absolute url or undefined if need to skip the Route
311
- */
312
- getUrl(url, _methods) {
313
- // If url is absolute
314
- if (url.startsWith("/")) {
315
- return url;
155
+ let Service = (() => {
156
+ let _classSuper = AbstractService;
157
+ let _instanceExtraInitializers = [];
158
+ let _stop_decorators;
159
+ let _resolve_decorators;
160
+ let _init_decorators;
161
+ return class Service extends _classSuper {
162
+ static {
163
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
164
+ _stop_decorators = [ServiceState({ start: "stopping", end: "stopped" })];
165
+ _resolve_decorators = [ServiceState({ start: "resolving", end: "resolved" })];
166
+ _init_decorators = [ServiceState({ start: "initializing", end: "running" })];
167
+ __esDecorate(this, null, _stop_decorators, { kind: "method", name: "stop", static: false, private: false, access: { has: obj => "stop" in obj, get: obj => obj.stop }, metadata: _metadata }, null, _instanceExtraInitializers);
168
+ __esDecorate(this, null, _resolve_decorators, { kind: "method", name: "resolve", static: false, private: false, access: { has: obj => "resolve" in obj, get: obj => obj.resolve }, metadata: _metadata }, null, _instanceExtraInitializers);
169
+ __esDecorate(this, null, _init_decorators, { kind: "method", name: "init", static: false, private: false, access: { has: obj => "init" in obj, get: obj => obj.init }, metadata: _metadata }, null, _instanceExtraInitializers);
170
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
171
+ }
172
+ /**
173
+ * Service parameters
174
+ */
175
+ static Parameters = ServiceParameters;
176
+ /**
177
+ * Set the Webda events here
178
+ */
179
+ [WEBDA_EVENTS] = __runInitializers(this, _instanceExtraInitializers);
180
+ /**
181
+ * Get the current state
182
+ * @returns the result
183
+ */
184
+ getState() {
185
+ return State.getCurrentState(this);
186
+ }
187
+ /**
188
+ * Logger with class context
189
+ */
190
+ logger;
191
+ /**
192
+ * Get metrics
193
+ */
194
+ metrics;
195
+ /**
196
+ *
197
+ *
198
+ * @class Service
199
+ * @param {Webda} webda - The main instance of Webda
200
+ * @param {String} name - The name of the service
201
+ * @param {Object} params - The parameters block define in the configuration file
202
+ */
203
+ constructor(name, params) {
204
+ super(name, params);
205
+ this.logger = useLogger(this);
206
+ }
207
+ /**
208
+ * Used to compute or derivate input parameter to attribute
209
+ * @deprecated
210
+ */
211
+ computeParameters() {
212
+ // Can be overriden by subclasses if needed
213
+ }
214
+ /**
215
+ * Get the service parameters
216
+ * @returns the result
217
+ */
218
+ getParameters() {
219
+ return this.parameters;
220
+ }
221
+ /**
222
+ * Shutdown the current service if action need to be taken
223
+ */
224
+ async stop() {
225
+ // Nothing to do
316
226
  }
317
- if (!this.parameters.url) {
318
- return undefined;
227
+ /**
228
+ * Return service representation
229
+ * @returns the result
230
+ */
231
+ toString() {
232
+ return this.parameters.type + "[" + this.name + "]";
319
233
  }
320
- if (url.startsWith(".")) {
321
- if (this.parameters.url.endsWith("/") && url.startsWith("./")) {
322
- return this.parameters.url + url.substring(2);
234
+ /**
235
+ * Resolve parameters and load metadata. `@Route`-declared routes are scanned
236
+ * and registered by `Router.discoverRoutes(services)` from `Core.init()`
237
+ * once every service has resolved — nothing to do per-service here.
238
+ * @returns the result
239
+ */
240
+ resolve() {
241
+ this.initMetrics();
242
+ // Inject dependencies
243
+ Injector.resolveAll(this);
244
+ // We wait for all services to be created before calling computeParameters
245
+ this.computeParameters();
246
+ this.loadCapabilities();
247
+ this.initOperations();
248
+ return this;
249
+ }
250
+ /**
251
+ * Load capabilities from webda.module.json metadata into {@link _compiledCapabilities}.
252
+ *
253
+ * Called during {@link resolve} after dependency injection. Reads the service's
254
+ * type name from parameters, looks it up in the application's module metadata
255
+ * (moddas or beans section), and populates `_compiledCapabilities` with an
256
+ * empty object for each declared capability name.
257
+ *
258
+ * Fails silently if the application is not available (e.g., in unit tests
259
+ * where services are instantiated without a full application context).
260
+ *
261
+ * @example
262
+ * ```typescript
263
+ * // If webda.module.json contains:
264
+ * // { "moddas": { "MyApp/HawkService": { "capabilities": ["request-filter", "cors-filter"] } } }
265
+ * // Then after resolve(), this.getCapabilities() returns:
266
+ * // { "request-filter": {}, "cors-filter": {} }
267
+ * ```
268
+ *
269
+ * @see getCapabilities
270
+ */
271
+ loadCapabilities() {
272
+ try {
273
+ const app = useApplication();
274
+ const modules = app.getModules();
275
+ const type = this.parameters.type;
276
+ const metadata = modules.moddas?.[type] || modules.beans?.[type];
277
+ if (metadata?.capabilities) {
278
+ this._compiledCapabilities = {};
279
+ for (const cap of metadata.capabilities) {
280
+ this._compiledCapabilities[cap] = {};
281
+ }
282
+ }
283
+ }
284
+ catch {
285
+ // Application may not be available in tests
323
286
  }
324
- return this.parameters.url + url.substring(1);
325
287
  }
326
- return url;
327
- }
328
- /**
329
- * If undefined is returned it cancel the operation registration
330
- * @param id
331
- * @returns
332
- */
333
- getOperationId(id) {
334
- return id;
335
- }
336
- /**
337
- * Add a route dynamicaly
338
- *
339
- * @param {String} url of the route can contains dynamic part like {uuid}
340
- * @param {Array[]} methods
341
- * @param {Function} executer Method to execute for this route
342
- */
343
- addRoute(url, methods, executer, openapi = {}, override = false) {
344
- const finalUrl = this.getUrl(url, methods);
345
- if (!finalUrl) {
346
- return;
347
- }
348
- this._webda.addRoute(finalUrl, {
349
- // Create bounded function to keep the context
350
- _method: executer.bind(this),
351
- executor: this._name,
352
- openapi: deepmerge(openapi, this.parameters.openapi || {}),
353
- methods,
354
- override
355
- });
356
- }
357
- /**
358
- * Return variables for replacement in openapi
359
- * @returns
360
- */
361
- getOpenApiReplacements() {
362
- return {};
363
- }
364
- /**
365
- * Init the routes
366
- */
367
- initRoutes() {
368
- // @ts-ignore
369
- const routes = this.constructor.routes || {};
370
- for (const j in routes) {
371
- this.log("TRACE", "Adding route", j, "for bean", this.getName());
372
- routes[j].forEach(route => {
373
- this.addRoute(j, route.methods, this[route.executor], route.openapi);
374
- });
288
+ /**
289
+ * Init the metrics
290
+ */
291
+ initMetrics() {
292
+ this.metrics = {};
375
293
  }
376
- }
377
- /**
378
- * Init the operations
379
- */
380
- initOperations() {
381
- // @ts-ignore
382
- const operations = this.constructor.operations || {};
383
- for (const j in operations) {
384
- const id = this.getOperationId(j);
385
- if (!id)
386
- continue;
387
- this.log("TRACE", "Adding operation", id, "for bean", this.getName());
388
- let name = this.getName();
389
- name = name.substring(0, 1).toUpperCase() + name.substring(1);
390
- this._webda.registerOperation(j.includes(".") ? j : `${name}.${j}`, {
391
- ...operations[j],
392
- service: this.getName(),
393
- input: `${this.getName()}.${operations[j].method}.input`,
394
- output: `${this.getName()}.${operations[j].method}.output`,
395
- id
294
+ /**
295
+ * Get a service by name
296
+ * @param name - the name to use
297
+ * @returns the result map
298
+ * @deprecated Use useService, might reconsider
299
+ */
300
+ getService(name) {
301
+ return useService(name);
302
+ }
303
+ /**
304
+ * Add service name label
305
+ * @param type - the type to look up
306
+ * @param configuration - the configuration
307
+ * @returns the result
308
+ */
309
+ getMetric(type, configuration) {
310
+ configuration.labelNames ??= [];
311
+ configuration.labelNames = [...configuration.labelNames, "service"];
312
+ configuration.name = `${this.getName().toLowerCase()}_${configuration.name}`;
313
+ return useMetric(type, configuration);
314
+ }
315
+ /**
316
+ * Return the events that an external system can subscribe to
317
+ *
318
+ * @returns the list of results
319
+ */
320
+ getClientEvents() {
321
+ return [];
322
+ }
323
+ /**
324
+ * Authorize a public event subscription
325
+ * @param event - the event name
326
+ * @param context - the execution context
327
+ * @param _event - the event name
328
+ * @param _context - the execution context
329
+ * @returns true if the condition is met
330
+ */
331
+ authorizeClientEvent(_event, _context) {
332
+ return false;
333
+ }
334
+ /**
335
+ * Return the full path url based on parameters
336
+ *
337
+ * @param url relative url to service
338
+ * @param _methods in case we need filtering (like Store)
339
+ * @returns absolute url or undefined if need to skip the Route
340
+ */
341
+ getUrl(url, _methods) {
342
+ const { url: ServiceUrl } = this.parameters;
343
+ // If url is absolute
344
+ if (url.startsWith("/")) {
345
+ return url;
346
+ }
347
+ if (!ServiceUrl) {
348
+ return undefined;
349
+ }
350
+ if (url.startsWith(".")) {
351
+ if (ServiceUrl.endsWith("/") && url.startsWith("./")) {
352
+ return ServiceUrl + url.substring(2);
353
+ }
354
+ return ServiceUrl + url.substring(1);
355
+ }
356
+ return url;
357
+ }
358
+ /**
359
+ * If undefined is returned it cancel the operation registration
360
+ * @param id - the identifier
361
+ * @returns the result
362
+ */
363
+ getOperationId(id) {
364
+ return id;
365
+ }
366
+ /**
367
+ * Add a route dynamicaly
368
+ *
369
+ * @param {String} url of the route can contains dynamic part like {uuid}
370
+ * @param {Array[]} methods - the HTTP methods
371
+ * @param {Function} executer Method to execute for this route
372
+ * @param openapi - the OpenAPI specification
373
+ * @param override - whether to override existing
374
+ */
375
+ addRoute(url, methods, executer, openapi = {}, override = false) {
376
+ const finalUrl = this.getUrl(url, methods);
377
+ if (!finalUrl) {
378
+ return;
379
+ }
380
+ const router = useDynamicService("Router");
381
+ if (!router) {
382
+ this.log("WARN", `No Router service available, skipping route ${finalUrl}`);
383
+ return;
384
+ }
385
+ router.addRouteToRouter(finalUrl, {
386
+ _method: executer.bind(this),
387
+ executor: this.getName(),
388
+ openapi: deepmerge(openapi, this.parameters.openapi || {}),
389
+ methods,
390
+ override
396
391
  });
397
392
  }
398
- }
399
- /**
400
- * Convert an object to JSON using the Webda json filter
401
- *
402
- * @class Service
403
- * @param {Object} object - The object to export
404
- * @return {String} The export of the strip object ( removed all attribute with _ )
405
- */
406
- toPublicJSON(object) {
407
- return this._webda.toPublicJSON(object);
408
- }
409
- /**
410
- * Prevent service to be serialized
411
- * @returns
412
- */
413
- toJSON() {
414
- return this._name;
415
- }
416
- /**
417
- * Will be called after all the Services are created
418
- *
419
- * @param config for the host so you can add your own route here
420
- * @abstract
421
- */
422
- async init() {
423
- // Can be overriden by subclasses if needed
424
- return this;
425
- }
426
- /**
427
- *
428
- * @param config new parameters for the service
429
- */
430
- async reinit(config) {
431
- this.parameters = this.loadParameters(config);
432
- this.computeParameters();
433
- return this.init();
434
- }
435
- /**
436
- * Emit the event with data and wait for Promise to finish if listener returned a Promise
437
- */
438
- emitSync(event, data) {
439
- return EventEmitterUtils.emitSync(this, event, data);
440
- }
441
- /**
442
- * Override to allow capturing long listeners
443
- * @override
444
- */
445
- emit(event, data) {
446
- return EventEmitterUtils.emit(this, event, data);
447
- }
448
- /**
449
- * Type the listener part
450
- * @param event
451
- * @param listener
452
- * @param queue
453
- * @returns
454
- */
455
- on(event, listener) {
456
- super.on(event, listener);
457
- return this;
458
- }
459
- /**
460
- * Listen to an event as on(...) would do except that it will be asynchronous
461
- * @param event
462
- * @param callback
463
- * @param queue Name of queue to use, can be undefined, queue name are used to define differents priorities
464
- */
465
- onAsync(event, listener, queue = undefined) {
466
- this._webda.getService("AsyncEvents").bindAsyncListener(this, event, listener, queue);
467
- }
468
- /**
469
- * Return a webda service
470
- * @param service name to retrieve
471
- */
472
- getService(service) {
473
- return this._webda.getService(service);
474
- }
475
- /**
476
- * Get service name
477
- */
478
- getName() {
479
- return this._name;
480
- }
481
- /**
482
- * Clean the service data, can only be used in test mode
483
- *
484
- * @abstract
485
- */
486
- __clean() {
487
- // @ts-ignore
488
- if (typeof global.it !== "function") {
489
- throw Error("Only for test purpose");
393
+ /**
394
+ * Return variables for replacement in openapi
395
+ * @returns the result
396
+ */
397
+ getOpenApiReplacements() {
398
+ return {};
490
399
  }
491
- return this.___cleanData();
492
- }
493
- /**
494
- * @private
495
- */
496
- ___cleanData() {
497
- return Promise.resolve();
498
- }
499
- /**
500
- *
501
- * @param level to log
502
- * @param args
503
- */
504
- log(level, ...args) {
505
- // Add the service name to avoid confusion
506
- this.logger.log(level, `[${this._name}]`, ...args);
507
- }
508
- }
400
+ /**
401
+ * Init the operations from @Operation decorators on this service
402
+ */
403
+ initOperations() {
404
+ // Read @Operation decorator metadata from Symbol.metadata
405
+ const metadata = getMetadata(this.constructor);
406
+ const operations = metadata?.["webda.operations"] || [];
407
+ if (operations.length === 0)
408
+ return;
409
+ let serviceName = this.getName();
410
+ serviceName = serviceName.substring(0, 1).toUpperCase() + serviceName.substring(1);
411
+ for (const op of operations) {
412
+ // The decorator stores context.name first, then spreads options which may override id
413
+ // We need the actual method name (context.name) for execution
414
+ const actualMethod = op._methodName;
415
+ const opName = op.id;
416
+ const opId = opName.includes(".")
417
+ ? opName
418
+ : `${serviceName}.${opName.substring(0, 1).toUpperCase() + opName.substring(1)}`;
419
+ if (!this.getOperationId(opId))
420
+ continue;
421
+ this.log("TRACE", "Adding operation", opId, "for service", this.getName());
422
+ registerOperation(opId, {
423
+ ...op,
424
+ service: this.getName(),
425
+ method: actualMethod,
426
+ input: op.input || `${this.getName()}.${actualMethod}.input`,
427
+ output: op.output || `${this.getName()}.${actualMethod}.output`,
428
+ id: opId
429
+ });
430
+ }
431
+ }
432
+ /**
433
+ * Prevent service to be serialized
434
+ * @returns the result
435
+ */
436
+ toJSON() {
437
+ return this.toString();
438
+ }
439
+ /**
440
+ * Will be called after all the Services are created
441
+ *
442
+ * @param config for the host so you can add your own route here
443
+ * @abstract
444
+ */
445
+ async init() {
446
+ // Can be overriden by subclasses if needed
447
+ return this;
448
+ }
449
+ /**
450
+ * Emit the event with data and wait for Promise to finish if listener returned a Promise
451
+ * @param event - the event name
452
+ * @param data - the data to process
453
+ */
454
+ async emit(event, data) {
455
+ await EventEmitterUtils.emit(this, event, data, (level, ...args) => this.log(level, ...args));
456
+ }
457
+ /**
458
+ * Get service name
459
+ * @returns the result string
460
+ */
461
+ getName() {
462
+ return this.name;
463
+ }
464
+ /**
465
+ * Clean the service data, can only be used in test mode
466
+ *
467
+ * @abstract
468
+ */
469
+ __clean() {
470
+ // @ts-ignore
471
+ if (typeof global.it !== "function") {
472
+ throw Error("Only for test purpose");
473
+ }
474
+ return this.___cleanData();
475
+ }
476
+ /**
477
+ * @private
478
+ * @returns the result
479
+ */
480
+ ___cleanData() {
481
+ return Promise.resolve();
482
+ }
483
+ /**
484
+ *
485
+ * @param level to log
486
+ * @param args - additional arguments
487
+ */
488
+ log(level, ...args) {
489
+ // Add the service name to avoid confusion
490
+ this.logger.log(level, `[${this.name}]`, ...args);
491
+ }
492
+ };
493
+ })();
509
494
  export { Service };
510
495
  //# sourceMappingURL=service.js.map