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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (756) hide show
  1. package/README.md +252 -0
  2. package/lib/application/application.d.ts +437 -0
  3. package/lib/application/application.d.ts.map +1 -0
  4. package/lib/application/application.js +792 -0
  5. package/lib/application/application.js.map +1 -0
  6. package/lib/application/hooks.d.ts +34 -0
  7. package/lib/application/hooks.d.ts.map +1 -0
  8. package/lib/application/hooks.js +57 -0
  9. package/lib/application/hooks.js.map +1 -0
  10. package/lib/application/iapplication.d.ts +43 -0
  11. package/lib/application/iapplication.d.ts.map +1 -0
  12. package/lib/application/iapplication.js +2 -0
  13. package/lib/application/iapplication.js.map +1 -0
  14. package/lib/application/iconfiguration.d.ts +176 -0
  15. package/lib/application/iconfiguration.d.ts.map +1 -0
  16. package/lib/application/iconfiguration.js +8 -0
  17. package/lib/application/iconfiguration.js.map +1 -0
  18. package/lib/application/runner.d.ts +8 -0
  19. package/lib/application/runner.d.ts.map +1 -0
  20. package/lib/application/runner.js +26 -0
  21. package/lib/application/runner.js.map +1 -0
  22. package/lib/{unpackedapplication.d.ts → application/unpackedapplication.d.ts} +43 -23
  23. package/lib/application/unpackedapplication.d.ts.map +1 -0
  24. package/lib/application/unpackedapplication.js +492 -0
  25. package/lib/application/unpackedapplication.js.map +1 -0
  26. package/lib/bin/cli-phase.d.ts +28 -0
  27. package/lib/bin/cli-phase.d.ts.map +1 -0
  28. package/lib/bin/cli-phase.js +44 -0
  29. package/lib/bin/cli-phase.js.map +1 -0
  30. package/lib/bin/cli.d.ts +161 -0
  31. package/lib/bin/cli.d.ts.map +1 -0
  32. package/lib/bin/cli.js +828 -0
  33. package/lib/bin/cli.js.map +1 -0
  34. package/lib/bin/launcher.d.ts +3 -0
  35. package/lib/bin/launcher.d.ts.map +1 -0
  36. package/lib/bin/launcher.js +50 -0
  37. package/lib/bin/launcher.js.map +1 -0
  38. package/lib/cache/cache.d.ts +33 -0
  39. package/lib/cache/cache.d.ts.map +1 -0
  40. package/lib/cache/cache.js +8 -0
  41. package/lib/cache/cache.js.map +1 -0
  42. package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -58
  43. package/lib/configurations/configuration.service.d.ts.map +1 -0
  44. package/lib/configurations/configuration.service.js +248 -0
  45. package/lib/configurations/configuration.service.js.map +1 -0
  46. package/lib/configurations/fileconfiguration.service.d.ts +30 -0
  47. package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
  48. package/lib/configurations/fileconfiguration.service.js +65 -0
  49. package/lib/configurations/fileconfiguration.service.js.map +1 -0
  50. package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
  51. package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
  52. package/lib/configurations/kubernetesconfiguration.service.js +83 -0
  53. package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
  54. package/lib/contexts/execution.d.ts +33 -0
  55. package/lib/contexts/execution.d.ts.map +1 -0
  56. package/lib/contexts/execution.js +73 -0
  57. package/lib/contexts/execution.js.map +1 -0
  58. package/lib/contexts/globalcontext.d.ts +29 -0
  59. package/lib/contexts/globalcontext.d.ts.map +1 -0
  60. package/lib/contexts/globalcontext.js +38 -0
  61. package/lib/contexts/globalcontext.js.map +1 -0
  62. package/lib/{utils → contexts}/httpcontext.d.ts +44 -19
  63. package/lib/contexts/httpcontext.d.ts.map +1 -0
  64. package/lib/{utils → contexts}/httpcontext.js +95 -27
  65. package/lib/contexts/httpcontext.js.map +1 -0
  66. package/lib/contexts/icontext.d.ts +236 -0
  67. package/lib/contexts/icontext.d.ts.map +1 -0
  68. package/lib/contexts/icontext.js +230 -0
  69. package/lib/contexts/icontext.js.map +1 -0
  70. package/lib/contexts/operationcontext.d.ts +179 -0
  71. package/lib/contexts/operationcontext.d.ts.map +1 -0
  72. package/lib/contexts/operationcontext.js +358 -0
  73. package/lib/contexts/operationcontext.js.map +1 -0
  74. package/lib/contexts/simplecontext.d.ts +31 -0
  75. package/lib/contexts/simplecontext.d.ts.map +1 -0
  76. package/lib/contexts/simplecontext.js +45 -0
  77. package/lib/contexts/simplecontext.js.map +1 -0
  78. package/lib/contexts/webcontext.d.ts +218 -0
  79. package/lib/contexts/webcontext.d.ts.map +1 -0
  80. package/lib/contexts/webcontext.js +389 -0
  81. package/lib/contexts/webcontext.js.map +1 -0
  82. package/lib/core/authorizer.d.ts +23 -0
  83. package/lib/core/authorizer.d.ts.map +1 -0
  84. package/lib/core/authorizer.js +17 -0
  85. package/lib/core/authorizer.js.map +1 -0
  86. package/lib/core/core.d.ts +225 -0
  87. package/lib/core/core.d.ts.map +1 -0
  88. package/lib/core/core.js +576 -0
  89. package/lib/core/core.js.map +1 -0
  90. package/lib/core/hooks.d.ts +72 -0
  91. package/lib/core/hooks.d.ts.map +1 -0
  92. package/lib/core/hooks.js +73 -0
  93. package/lib/core/hooks.js.map +1 -0
  94. package/lib/core/icore.d.ts +249 -0
  95. package/lib/core/icore.d.ts.map +1 -0
  96. package/lib/core/icore.js +15 -0
  97. package/lib/core/icore.js.map +1 -0
  98. package/lib/core/instancestorage.d.ts +61 -0
  99. package/lib/core/instancestorage.d.ts.map +1 -0
  100. package/lib/core/instancestorage.js +75 -0
  101. package/lib/core/instancestorage.js.map +1 -0
  102. package/lib/core/operations.d.ts +181 -0
  103. package/lib/core/operations.d.ts.map +1 -0
  104. package/lib/core/operations.js +559 -0
  105. package/lib/core/operations.js.map +1 -0
  106. package/lib/errors/errors.d.ts +126 -0
  107. package/lib/errors/errors.d.ts.map +1 -0
  108. package/lib/errors/errors.js +165 -0
  109. package/lib/errors/errors.js.map +1 -0
  110. package/lib/events/asynceventemitter.d.ts +159 -0
  111. package/lib/events/asynceventemitter.d.ts.map +1 -0
  112. package/lib/events/asynceventemitter.js +152 -0
  113. package/lib/events/asynceventemitter.js.map +1 -0
  114. package/lib/events/events.d.ts +112 -0
  115. package/lib/events/events.d.ts.map +1 -0
  116. package/lib/events/events.js +45 -0
  117. package/lib/events/events.js.map +1 -0
  118. package/lib/index.d.ts +82 -53
  119. package/lib/index.d.ts.map +1 -1
  120. package/lib/index.js +81 -62
  121. package/lib/index.js.map +1 -1
  122. package/lib/loggers/console.service.d.ts +24 -0
  123. package/lib/loggers/console.service.d.ts.map +1 -0
  124. package/lib/loggers/console.service.js +30 -0
  125. package/lib/loggers/console.service.js.map +1 -0
  126. package/lib/loggers/file.service.d.ts +25 -0
  127. package/lib/loggers/file.service.d.ts.map +1 -0
  128. package/lib/loggers/file.service.js +33 -0
  129. package/lib/loggers/file.service.js.map +1 -0
  130. package/lib/loggers/hooks.d.ts +20 -0
  131. package/lib/loggers/hooks.d.ts.map +1 -0
  132. package/lib/loggers/hooks.js +40 -0
  133. package/lib/loggers/hooks.js.map +1 -0
  134. package/lib/loggers/ilogger.d.ts +76 -0
  135. package/lib/loggers/ilogger.d.ts.map +1 -0
  136. package/lib/loggers/ilogger.js +108 -0
  137. package/lib/loggers/ilogger.js.map +1 -0
  138. package/lib/loggers/logger.d.ts +13 -0
  139. package/lib/loggers/logger.d.ts.map +1 -0
  140. package/lib/loggers/logger.js +18 -0
  141. package/lib/loggers/logger.js.map +1 -0
  142. package/lib/loggers/memory.service.d.ts +18 -0
  143. package/lib/loggers/memory.service.d.ts.map +1 -0
  144. package/lib/loggers/memory.service.js +21 -0
  145. package/lib/loggers/memory.service.js.map +1 -0
  146. package/lib/loggers/params.d.ts +47 -0
  147. package/lib/loggers/params.d.ts.map +1 -0
  148. package/lib/loggers/params.js +56 -0
  149. package/lib/loggers/params.js.map +1 -0
  150. package/lib/metrics/metrics.d.ts +25 -0
  151. package/lib/metrics/metrics.d.ts.map +1 -0
  152. package/lib/metrics/metrics.js +51 -0
  153. package/lib/metrics/metrics.js.map +1 -0
  154. package/lib/models/aclmodel.d.ts +20 -76
  155. package/lib/models/aclmodel.d.ts.map +1 -1
  156. package/lib/models/aclmodel.js +27 -203
  157. package/lib/models/aclmodel.js.map +1 -1
  158. package/lib/models/coremodel.model.d.ts +5 -0
  159. package/lib/models/coremodel.model.d.ts.map +1 -0
  160. package/lib/models/coremodel.model.js +5 -0
  161. package/lib/models/coremodel.model.js.map +1 -0
  162. package/lib/models/decorator.d.ts +63 -0
  163. package/lib/models/decorator.d.ts.map +1 -0
  164. package/lib/models/decorator.js +63 -0
  165. package/lib/models/decorator.js.map +1 -0
  166. package/lib/models/deployment.d.ts +1 -1
  167. package/lib/models/deployment.d.ts.map +1 -1
  168. package/lib/models/ident.model.d.ts +89 -0
  169. package/lib/models/ident.model.d.ts.map +1 -0
  170. package/lib/models/ident.model.js +115 -0
  171. package/lib/models/ident.model.js.map +1 -0
  172. package/lib/models/ownermodel.model.d.ts +68 -0
  173. package/lib/models/ownermodel.model.d.ts.map +1 -0
  174. package/lib/models/ownermodel.model.js +112 -0
  175. package/lib/models/ownermodel.model.js.map +1 -0
  176. package/lib/models/registry.model.d.ts +76 -0
  177. package/lib/models/registry.model.d.ts.map +1 -0
  178. package/lib/models/registry.model.js +104 -0
  179. package/lib/models/registry.model.js.map +1 -0
  180. package/lib/models/rolemodel.model.d.ts +28 -0
  181. package/lib/models/rolemodel.model.d.ts.map +1 -0
  182. package/lib/models/{rolemodel.js → rolemodel.model.js} +23 -5
  183. package/lib/models/rolemodel.model.js.map +1 -0
  184. package/lib/models/simpleuser.model.d.ts +78 -0
  185. package/lib/models/simpleuser.model.d.ts.map +1 -0
  186. package/lib/models/simpleuser.model.js +123 -0
  187. package/lib/models/simpleuser.model.js.map +1 -0
  188. package/lib/models/types.d.ts +113 -0
  189. package/lib/models/types.d.ts.map +1 -0
  190. package/lib/models/types.js +2 -0
  191. package/lib/models/types.js.map +1 -0
  192. package/lib/models/user.model.d.ts +103 -0
  193. package/lib/models/user.model.d.ts.map +1 -0
  194. package/lib/models/user.model.js +125 -0
  195. package/lib/models/user.model.js.map +1 -0
  196. package/lib/queues/{memoryqueue.d.ts → memoryqueue.service.d.ts} +26 -13
  197. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  198. package/lib/queues/{memoryqueue.js → memoryqueue.service.js} +55 -31
  199. package/lib/queues/memoryqueue.service.js.map +1 -0
  200. package/lib/queues/pubsubservice.d.ts +8 -6
  201. package/lib/queues/pubsubservice.d.ts.map +1 -1
  202. package/lib/queues/pubsubservice.js +5 -4
  203. package/lib/queues/pubsubservice.js.map +1 -1
  204. package/lib/queues/queueservice.d.ts +9 -11
  205. package/lib/queues/queueservice.d.ts.map +1 -1
  206. package/lib/queues/queueservice.js +41 -13
  207. package/lib/queues/queueservice.js.map +1 -1
  208. package/lib/rest/hooks.d.ts +8 -0
  209. package/lib/rest/hooks.d.ts.map +1 -0
  210. package/lib/rest/hooks.js +10 -0
  211. package/lib/rest/hooks.js.map +1 -0
  212. package/lib/rest/irest.d.ts +212 -0
  213. package/lib/rest/irest.d.ts.map +1 -0
  214. package/lib/rest/irest.js +39 -0
  215. package/lib/rest/irest.js.map +1 -0
  216. package/lib/rest/originfilter.d.ts +38 -0
  217. package/lib/rest/originfilter.d.ts.map +1 -0
  218. package/lib/rest/originfilter.js +61 -0
  219. package/lib/rest/originfilter.js.map +1 -0
  220. package/lib/rest/restoperationstransport.service.d.ts +193 -0
  221. package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
  222. package/lib/rest/restoperationstransport.service.js +780 -0
  223. package/lib/rest/restoperationstransport.service.js.map +1 -0
  224. package/lib/rest/router.service.d.ts +244 -0
  225. package/lib/rest/router.service.d.ts.map +1 -0
  226. package/lib/rest/router.service.js +843 -0
  227. package/lib/rest/router.service.js.map +1 -0
  228. package/lib/schemas/hooks.d.ts +48 -0
  229. package/lib/schemas/hooks.d.ts.map +1 -0
  230. package/lib/schemas/hooks.js +152 -0
  231. package/lib/schemas/hooks.js.map +1 -0
  232. package/lib/services/audit.model.d.ts +208 -0
  233. package/lib/services/audit.model.d.ts.map +1 -0
  234. package/lib/services/audit.model.js +431 -0
  235. package/lib/services/audit.model.js.map +1 -0
  236. package/lib/services/{authentication.d.ts → authentication.service.d.ts} +140 -59
  237. package/lib/services/authentication.service.d.ts.map +1 -0
  238. package/lib/services/authentication.service.js +932 -0
  239. package/lib/services/authentication.service.js.map +1 -0
  240. package/lib/services/binary.service.d.ts +808 -0
  241. package/lib/services/binary.service.d.ts.map +1 -0
  242. package/lib/services/binary.service.js +1365 -0
  243. package/lib/services/binary.service.js.map +1 -0
  244. package/lib/services/cloudbinary.d.ts +17 -12
  245. package/lib/services/cloudbinary.d.ts.map +1 -1
  246. package/lib/services/cloudbinary.js +23 -17
  247. package/lib/services/cloudbinary.js.map +1 -1
  248. package/lib/services/command.d.ts +118 -0
  249. package/lib/services/command.d.ts.map +1 -0
  250. package/lib/services/command.js +97 -0
  251. package/lib/services/command.js.map +1 -0
  252. package/lib/services/cron.service.d.ts +142 -0
  253. package/lib/services/cron.service.d.ts.map +1 -0
  254. package/lib/services/cron.service.js +291 -0
  255. package/lib/services/cron.service.js.map +1 -0
  256. package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +75 -141
  257. package/lib/services/cryptoservice.service.d.ts.map +1 -0
  258. package/lib/services/cryptoservice.service.js +527 -0
  259. package/lib/services/cryptoservice.service.js.map +1 -0
  260. package/lib/services/debugmailer.service.d.ts +49 -0
  261. package/lib/services/debugmailer.service.d.ts.map +1 -0
  262. package/lib/services/{debugmailer.js → debugmailer.service.js} +25 -10
  263. package/lib/services/debugmailer.service.js.map +1 -0
  264. package/lib/services/domainservice.service.d.ts +203 -0
  265. package/lib/services/domainservice.service.d.ts.map +1 -0
  266. package/lib/services/domainservice.service.js +600 -0
  267. package/lib/services/domainservice.service.js.map +1 -0
  268. package/lib/services/httpserver.service.d.ts +248 -0
  269. package/lib/services/httpserver.service.d.ts.map +1 -0
  270. package/lib/services/httpserver.service.js +673 -0
  271. package/lib/services/httpserver.service.js.map +1 -0
  272. package/lib/services/iauthentication.d.ts +9 -0
  273. package/lib/services/iauthentication.d.ts.map +1 -0
  274. package/lib/services/iauthentication.js +2 -0
  275. package/lib/services/iauthentication.js.map +1 -0
  276. package/lib/services/icryptoservice.d.ts +127 -0
  277. package/lib/services/icryptoservice.d.ts.map +1 -0
  278. package/lib/services/icryptoservice.js +68 -0
  279. package/lib/services/icryptoservice.js.map +1 -0
  280. package/lib/services/imailer.d.ts +17 -0
  281. package/lib/services/imailer.d.ts.map +1 -0
  282. package/lib/services/imailer.js +2 -0
  283. package/lib/services/imailer.js.map +1 -0
  284. package/lib/services/iservice.d.ts +104 -0
  285. package/lib/services/iservice.d.ts.map +1 -0
  286. package/lib/services/iservice.js +63 -0
  287. package/lib/services/iservice.js.map +1 -0
  288. package/lib/services/mailer.service.d.ts +220 -0
  289. package/lib/services/mailer.service.d.ts.map +1 -0
  290. package/lib/services/mailer.service.js +251 -0
  291. package/lib/services/mailer.service.js.map +1 -0
  292. package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -11
  293. package/lib/services/notificationservice.service.d.ts.map +1 -0
  294. package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
  295. package/lib/services/notificationservice.service.js.map +1 -0
  296. package/lib/services/oauth.d.ts +52 -28
  297. package/lib/services/oauth.d.ts.map +1 -1
  298. package/lib/services/oauth.js +365 -254
  299. package/lib/services/oauth.js.map +1 -1
  300. package/lib/services/operationstransport.d.ts +65 -0
  301. package/lib/services/operationstransport.d.ts.map +1 -0
  302. package/lib/services/operationstransport.js +103 -0
  303. package/lib/services/operationstransport.js.map +1 -0
  304. package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -12
  305. package/lib/services/prometheus.service.d.ts.map +1 -0
  306. package/lib/services/prometheus.service.js +203 -0
  307. package/lib/services/prometheus.service.js.map +1 -0
  308. package/lib/services/{resource.d.ts → resource.service.d.ts} +34 -15
  309. package/lib/services/resource.service.d.ts.map +1 -0
  310. package/lib/services/resource.service.js +301 -0
  311. package/lib/services/resource.service.js.map +1 -0
  312. package/lib/services/service.d.ts +87 -188
  313. package/lib/services/service.d.ts.map +1 -1
  314. package/lib/services/service.js +407 -422
  315. package/lib/services/service.js.map +1 -1
  316. package/lib/services/servicecommands.d.ts +99 -0
  317. package/lib/services/servicecommands.d.ts.map +1 -0
  318. package/lib/services/servicecommands.js +165 -0
  319. package/lib/services/servicecommands.js.map +1 -0
  320. package/lib/services/serviceparameters.d.ts +33 -0
  321. package/lib/services/serviceparameters.d.ts.map +1 -0
  322. package/lib/services/serviceparameters.js +79 -0
  323. package/lib/services/serviceparameters.js.map +1 -0
  324. package/lib/{utils → session}/cookie.d.ts +32 -19
  325. package/lib/session/cookie.d.ts.map +1 -0
  326. package/lib/{utils → session}/cookie.js +76 -23
  327. package/lib/session/cookie.js.map +1 -0
  328. package/lib/session/manager.model.d.ts +71 -0
  329. package/lib/session/manager.model.d.ts.map +1 -0
  330. package/lib/session/manager.model.js +155 -0
  331. package/lib/session/manager.model.js.map +1 -0
  332. package/lib/session/session.d.ts +57 -0
  333. package/lib/session/session.d.ts.map +1 -0
  334. package/lib/session/session.js +126 -0
  335. package/lib/session/session.js.map +1 -0
  336. package/lib/stores/istore.d.ts +99 -0
  337. package/lib/stores/istore.d.ts.map +1 -0
  338. package/lib/stores/istore.js +26 -0
  339. package/lib/stores/istore.js.map +1 -0
  340. package/lib/stores/memory.service.d.ts +114 -0
  341. package/lib/stores/memory.service.d.ts.map +1 -0
  342. package/lib/stores/memory.service.js +343 -0
  343. package/lib/stores/memory.service.js.map +1 -0
  344. package/lib/stores/store.d.ts +126 -626
  345. package/lib/stores/store.d.ts.map +1 -1
  346. package/lib/stores/store.js +257 -1117
  347. package/lib/stores/store.js.map +1 -1
  348. package/lib/templates/templates.d.ts +39 -0
  349. package/lib/templates/templates.d.ts.map +1 -0
  350. package/lib/templates/templates.js +92 -0
  351. package/lib/templates/templates.js.map +1 -0
  352. package/lib/test/application.d.ts +174 -0
  353. package/lib/test/application.d.ts.map +1 -0
  354. package/lib/test/application.js +288 -0
  355. package/lib/test/application.js.map +1 -0
  356. package/lib/test/asyncstorage.d.ts +16 -0
  357. package/lib/test/asyncstorage.d.ts.map +1 -0
  358. package/lib/test/asyncstorage.js +32 -0
  359. package/lib/test/asyncstorage.js.map +1 -0
  360. package/lib/test/core.d.ts +63 -0
  361. package/lib/test/core.d.ts.map +1 -0
  362. package/lib/test/core.js +190 -0
  363. package/lib/test/core.js.map +1 -0
  364. package/lib/test/index.d.ts +7 -0
  365. package/lib/test/index.d.ts.map +1 -0
  366. package/lib/test/index.js +8 -0
  367. package/lib/test/index.js.map +1 -0
  368. package/lib/test/internal.d.ts +34 -0
  369. package/lib/test/internal.d.ts.map +1 -0
  370. package/lib/test/internal.js +156 -0
  371. package/lib/test/internal.js.map +1 -0
  372. package/lib/test/objects.d.ts +318 -0
  373. package/lib/test/objects.d.ts.map +1 -0
  374. package/lib/test/objects.js +443 -0
  375. package/lib/test/objects.js.map +1 -0
  376. package/lib/utils/abstractdeployer.d.ts +4 -2
  377. package/lib/utils/abstractdeployer.d.ts.map +1 -1
  378. package/lib/utils/abstractdeployer.js +3 -0
  379. package/lib/utils/abstractdeployer.js.map +1 -1
  380. package/package.json +85 -60
  381. package/test/cachedapp/webda.config.json +1 -5
  382. package/test/config-cached.json +1 -5
  383. package/test/config.json +0 -9
  384. package/test/my-cnf.json +9 -0
  385. package/webda.module.json +3463 -2482
  386. package/lib/application.d.ts +0 -888
  387. package/lib/application.d.ts.map +0 -1
  388. package/lib/application.js +0 -768
  389. package/lib/application.js.map +0 -1
  390. package/lib/application.spec.d.ts +0 -2
  391. package/lib/application.spec.d.ts.map +0 -1
  392. package/lib/application.spec.js +0 -248
  393. package/lib/application.spec.js.map +0 -1
  394. package/lib/core.d.ts +0 -743
  395. package/lib/core.d.ts.map +0 -1
  396. package/lib/core.js +0 -1334
  397. package/lib/core.js.map +0 -1
  398. package/lib/core.spec.d.ts +0 -2
  399. package/lib/core.spec.d.ts.map +0 -1
  400. package/lib/core.spec.js +0 -790
  401. package/lib/core.spec.js.map +0 -1
  402. package/lib/errors.d.ts +0 -64
  403. package/lib/errors.d.ts.map +0 -1
  404. package/lib/errors.js +0 -97
  405. package/lib/errors.js.map +0 -1
  406. package/lib/errors.spec.d.ts +0 -2
  407. package/lib/errors.spec.d.ts.map +0 -1
  408. package/lib/errors.spec.js +0 -33
  409. package/lib/errors.spec.js.map +0 -1
  410. package/lib/models/aclmodel.spec.d.ts +0 -2
  411. package/lib/models/aclmodel.spec.d.ts.map +0 -1
  412. package/lib/models/aclmodel.spec.js +0 -187
  413. package/lib/models/aclmodel.spec.js.map +0 -1
  414. package/lib/models/coremodel.d.ts +0 -896
  415. package/lib/models/coremodel.d.ts.map +0 -1
  416. package/lib/models/coremodel.js +0 -1214
  417. package/lib/models/coremodel.js.map +0 -1
  418. package/lib/models/coremodel.spec.d.ts +0 -2
  419. package/lib/models/coremodel.spec.d.ts.map +0 -1
  420. package/lib/models/coremodel.spec.js +0 -464
  421. package/lib/models/coremodel.spec.js.map +0 -1
  422. package/lib/models/ident.d.ts +0 -68
  423. package/lib/models/ident.d.ts.map +0 -1
  424. package/lib/models/ident.js +0 -26
  425. package/lib/models/ident.js.map +0 -1
  426. package/lib/models/ident.spec.d.ts +0 -2
  427. package/lib/models/ident.spec.d.ts.map +0 -1
  428. package/lib/models/ident.spec.js +0 -24
  429. package/lib/models/ident.spec.js.map +0 -1
  430. package/lib/models/ownermodel.d.ts +0 -51
  431. package/lib/models/ownermodel.d.ts.map +0 -1
  432. package/lib/models/ownermodel.js +0 -65
  433. package/lib/models/ownermodel.js.map +0 -1
  434. package/lib/models/ownermodel.spec.d.ts +0 -2
  435. package/lib/models/ownermodel.spec.d.ts.map +0 -1
  436. package/lib/models/ownermodel.spec.js +0 -215
  437. package/lib/models/ownermodel.spec.js.map +0 -1
  438. package/lib/models/relations.d.ts +0 -182
  439. package/lib/models/relations.d.ts.map +0 -1
  440. package/lib/models/relations.js +0 -157
  441. package/lib/models/relations.js.map +0 -1
  442. package/lib/models/relations.spec.d.ts +0 -14
  443. package/lib/models/relations.spec.d.ts.map +0 -1
  444. package/lib/models/relations.spec.js +0 -217
  445. package/lib/models/relations.spec.js.map +0 -1
  446. package/lib/models/rolemodel.d.ts +0 -11
  447. package/lib/models/rolemodel.d.ts.map +0 -1
  448. package/lib/models/rolemodel.js.map +0 -1
  449. package/lib/models/rolemodel.spec.d.ts +0 -2
  450. package/lib/models/rolemodel.spec.d.ts.map +0 -1
  451. package/lib/models/rolemodel.spec.js +0 -90
  452. package/lib/models/rolemodel.spec.js.map +0 -1
  453. package/lib/models/simpleuser.d.ts +0 -47
  454. package/lib/models/simpleuser.d.ts.map +0 -1
  455. package/lib/models/simpleuser.js +0 -84
  456. package/lib/models/simpleuser.js.map +0 -1
  457. package/lib/models/test.d.ts +0 -11
  458. package/lib/models/test.d.ts.map +0 -1
  459. package/lib/models/test.js +0 -7
  460. package/lib/models/test.js.map +0 -1
  461. package/lib/models/user.d.ts +0 -67
  462. package/lib/models/user.d.ts.map +0 -1
  463. package/lib/models/user.js +0 -86
  464. package/lib/models/user.js.map +0 -1
  465. package/lib/models/user.spec.d.ts +0 -2
  466. package/lib/models/user.spec.d.ts.map +0 -1
  467. package/lib/models/user.spec.js +0 -89
  468. package/lib/models/user.spec.js.map +0 -1
  469. package/lib/queues/filequeue.d.ts +0 -59
  470. package/lib/queues/filequeue.d.ts.map +0 -1
  471. package/lib/queues/filequeue.js +0 -131
  472. package/lib/queues/filequeue.js.map +0 -1
  473. package/lib/queues/filequeue.spec.d.ts +0 -2
  474. package/lib/queues/filequeue.spec.d.ts.map +0 -1
  475. package/lib/queues/filequeue.spec.js +0 -84
  476. package/lib/queues/filequeue.spec.js.map +0 -1
  477. package/lib/queues/memoryqueue.d.ts.map +0 -1
  478. package/lib/queues/memoryqueue.js.map +0 -1
  479. package/lib/queues/memoryqueue.spec.d.ts +0 -2
  480. package/lib/queues/memoryqueue.spec.d.ts.map +0 -1
  481. package/lib/queues/memoryqueue.spec.js +0 -203
  482. package/lib/queues/memoryqueue.spec.js.map +0 -1
  483. package/lib/queues/queue.spec.d.ts +0 -6
  484. package/lib/queues/queue.spec.d.ts.map +0 -1
  485. package/lib/queues/queue.spec.js +0 -55
  486. package/lib/queues/queue.spec.js.map +0 -1
  487. package/lib/rest/restdomainservice.d.ts +0 -63
  488. package/lib/rest/restdomainservice.d.ts.map +0 -1
  489. package/lib/rest/restdomainservice.js +0 -687
  490. package/lib/rest/restdomainservice.js.map +0 -1
  491. package/lib/rest/restdomainservice.spec.d.ts +0 -2
  492. package/lib/rest/restdomainservice.spec.d.ts.map +0 -1
  493. package/lib/rest/restdomainservice.spec.js +0 -124
  494. package/lib/rest/restdomainservice.spec.js.map +0 -1
  495. package/lib/rest/router.d.ts +0 -174
  496. package/lib/rest/router.d.ts.map +0 -1
  497. package/lib/rest/router.js +0 -429
  498. package/lib/rest/router.js.map +0 -1
  499. package/lib/rest/router.spec.d.ts +0 -2
  500. package/lib/rest/router.spec.d.ts.map +0 -1
  501. package/lib/rest/router.spec.js +0 -255
  502. package/lib/rest/router.spec.js.map +0 -1
  503. package/lib/services/asyncevents.d.ts +0 -152
  504. package/lib/services/asyncevents.d.ts.map +0 -1
  505. package/lib/services/asyncevents.js +0 -217
  506. package/lib/services/asyncevents.js.map +0 -1
  507. package/lib/services/asyncevents.spec.d.ts +0 -2
  508. package/lib/services/asyncevents.spec.d.ts.map +0 -1
  509. package/lib/services/asyncevents.spec.js +0 -118
  510. package/lib/services/asyncevents.spec.js.map +0 -1
  511. package/lib/services/authentication.d.ts.map +0 -1
  512. package/lib/services/authentication.js +0 -773
  513. package/lib/services/authentication.js.map +0 -1
  514. package/lib/services/authentication.spec.d.ts +0 -2
  515. package/lib/services/authentication.spec.d.ts.map +0 -1
  516. package/lib/services/authentication.spec.js +0 -458
  517. package/lib/services/authentication.spec.js.map +0 -1
  518. package/lib/services/binary.d.ts +0 -477
  519. package/lib/services/binary.d.ts.map +0 -1
  520. package/lib/services/binary.js +0 -617
  521. package/lib/services/binary.js.map +0 -1
  522. package/lib/services/binary.spec.d.ts +0 -41
  523. package/lib/services/binary.spec.d.ts.map +0 -1
  524. package/lib/services/binary.spec.js +0 -151
  525. package/lib/services/binary.spec.js.map +0 -1
  526. package/lib/services/cloudbinary.spec.d.ts +0 -6
  527. package/lib/services/cloudbinary.spec.d.ts.map +0 -1
  528. package/lib/services/cloudbinary.spec.js +0 -66
  529. package/lib/services/cloudbinary.spec.js.map +0 -1
  530. package/lib/services/configuration.d.ts.map +0 -1
  531. package/lib/services/configuration.js +0 -193
  532. package/lib/services/configuration.js.map +0 -1
  533. package/lib/services/configuration.spec.d.ts +0 -2
  534. package/lib/services/configuration.spec.d.ts.map +0 -1
  535. package/lib/services/configuration.spec.js +0 -130
  536. package/lib/services/configuration.spec.js.map +0 -1
  537. package/lib/services/cron.d.ts +0 -74
  538. package/lib/services/cron.d.ts.map +0 -1
  539. package/lib/services/cron.js +0 -141
  540. package/lib/services/cron.js.map +0 -1
  541. package/lib/services/cron.spec.d.ts +0 -2
  542. package/lib/services/cron.spec.d.ts.map +0 -1
  543. package/lib/services/cron.spec.js +0 -76
  544. package/lib/services/cron.spec.js.map +0 -1
  545. package/lib/services/cryptoservice.d.ts.map +0 -1
  546. package/lib/services/cryptoservice.js +0 -433
  547. package/lib/services/cryptoservice.js.map +0 -1
  548. package/lib/services/cryptoservice.spec.d.ts +0 -2
  549. package/lib/services/cryptoservice.spec.d.ts.map +0 -1
  550. package/lib/services/cryptoservice.spec.js +0 -177
  551. package/lib/services/cryptoservice.spec.js.map +0 -1
  552. package/lib/services/debugmailer.d.ts +0 -36
  553. package/lib/services/debugmailer.d.ts.map +0 -1
  554. package/lib/services/debugmailer.js.map +0 -1
  555. package/lib/services/debugmailer.spec.d.ts +0 -2
  556. package/lib/services/debugmailer.spec.d.ts.map +0 -1
  557. package/lib/services/debugmailer.spec.js +0 -32
  558. package/lib/services/debugmailer.spec.js.map +0 -1
  559. package/lib/services/domainservice.d.ts +0 -272
  560. package/lib/services/domainservice.d.ts.map +0 -1
  561. package/lib/services/domainservice.js +0 -651
  562. package/lib/services/domainservice.js.map +0 -1
  563. package/lib/services/domainservice.spec.d.ts +0 -2
  564. package/lib/services/domainservice.spec.d.ts.map +0 -1
  565. package/lib/services/domainservice.spec.js +0 -592
  566. package/lib/services/domainservice.spec.js.map +0 -1
  567. package/lib/services/filebinary.d.ts +0 -136
  568. package/lib/services/filebinary.d.ts.map +0 -1
  569. package/lib/services/filebinary.js +0 -373
  570. package/lib/services/filebinary.js.map +0 -1
  571. package/lib/services/filebinary.spec.d.ts +0 -25
  572. package/lib/services/filebinary.spec.d.ts.map +0 -1
  573. package/lib/services/filebinary.spec.js +0 -428
  574. package/lib/services/filebinary.spec.js.map +0 -1
  575. package/lib/services/fileconfiguration.d.ts +0 -23
  576. package/lib/services/fileconfiguration.d.ts.map +0 -1
  577. package/lib/services/fileconfiguration.js +0 -48
  578. package/lib/services/fileconfiguration.js.map +0 -1
  579. package/lib/services/fileconfiguration.spec.d.ts +0 -2
  580. package/lib/services/fileconfiguration.spec.d.ts.map +0 -1
  581. package/lib/services/fileconfiguration.spec.js +0 -215
  582. package/lib/services/fileconfiguration.spec.js.map +0 -1
  583. package/lib/services/invitationservice.d.ts +0 -223
  584. package/lib/services/invitationservice.d.ts.map +0 -1
  585. package/lib/services/invitationservice.js +0 -529
  586. package/lib/services/invitationservice.js.map +0 -1
  587. package/lib/services/invitationservice.spec.d.ts +0 -2
  588. package/lib/services/invitationservice.spec.d.ts.map +0 -1
  589. package/lib/services/invitationservice.spec.js +0 -567
  590. package/lib/services/invitationservice.spec.js.map +0 -1
  591. package/lib/services/kubernetesconfiguration.d.ts +0 -27
  592. package/lib/services/kubernetesconfiguration.d.ts.map +0 -1
  593. package/lib/services/kubernetesconfiguration.js +0 -52
  594. package/lib/services/kubernetesconfiguration.js.map +0 -1
  595. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -2
  596. package/lib/services/kubernetesconfiguration.spec.d.ts.map +0 -1
  597. package/lib/services/kubernetesconfiguration.spec.js +0 -206
  598. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  599. package/lib/services/mailer.d.ts +0 -166
  600. package/lib/services/mailer.d.ts.map +0 -1
  601. package/lib/services/mailer.js +0 -176
  602. package/lib/services/mailer.js.map +0 -1
  603. package/lib/services/mailer.spec.d.ts +0 -2
  604. package/lib/services/mailer.spec.d.ts.map +0 -1
  605. package/lib/services/mailer.spec.js +0 -158
  606. package/lib/services/mailer.spec.js.map +0 -1
  607. package/lib/services/notificationservice.d.ts.map +0 -1
  608. package/lib/services/notificationservice.js.map +0 -1
  609. package/lib/services/notificationservice.spec.d.ts +0 -2
  610. package/lib/services/notificationservice.spec.d.ts.map +0 -1
  611. package/lib/services/notificationservice.spec.js +0 -83
  612. package/lib/services/notificationservice.spec.js.map +0 -1
  613. package/lib/services/oauth.spec.d.ts +0 -2
  614. package/lib/services/oauth.spec.d.ts.map +0 -1
  615. package/lib/services/oauth.spec.js +0 -208
  616. package/lib/services/oauth.spec.js.map +0 -1
  617. package/lib/services/prometheus.d.ts.map +0 -1
  618. package/lib/services/prometheus.js +0 -160
  619. package/lib/services/prometheus.js.map +0 -1
  620. package/lib/services/prometheus.spec.d.ts +0 -2
  621. package/lib/services/prometheus.spec.d.ts.map +0 -1
  622. package/lib/services/prometheus.spec.js +0 -76
  623. package/lib/services/prometheus.spec.js.map +0 -1
  624. package/lib/services/resource.d.ts.map +0 -1
  625. package/lib/services/resource.js +0 -170
  626. package/lib/services/resource.js.map +0 -1
  627. package/lib/services/resource.spec.d.ts +0 -2
  628. package/lib/services/resource.spec.d.ts.map +0 -1
  629. package/lib/services/resource.spec.js +0 -140
  630. package/lib/services/resource.spec.js.map +0 -1
  631. package/lib/services/service.spec.d.ts +0 -2
  632. package/lib/services/service.spec.d.ts.map +0 -1
  633. package/lib/services/service.spec.js +0 -286
  634. package/lib/services/service.spec.js.map +0 -1
  635. package/lib/stores/aggregator.d.ts +0 -48
  636. package/lib/stores/aggregator.d.ts.map +0 -1
  637. package/lib/stores/aggregator.js +0 -80
  638. package/lib/stores/aggregator.js.map +0 -1
  639. package/lib/stores/file.d.ts +0 -108
  640. package/lib/stores/file.d.ts.map +0 -1
  641. package/lib/stores/file.js +0 -188
  642. package/lib/stores/file.js.map +0 -1
  643. package/lib/stores/file.spec.d.ts +0 -13
  644. package/lib/stores/file.spec.d.ts.map +0 -1
  645. package/lib/stores/file.spec.js +0 -138
  646. package/lib/stores/file.spec.js.map +0 -1
  647. package/lib/stores/mapper.d.ts +0 -150
  648. package/lib/stores/mapper.d.ts.map +0 -1
  649. package/lib/stores/mapper.js +0 -293
  650. package/lib/stores/mapper.js.map +0 -1
  651. package/lib/stores/mapper.spec.d.ts +0 -2
  652. package/lib/stores/mapper.spec.d.ts.map +0 -1
  653. package/lib/stores/mapper.spec.js +0 -167
  654. package/lib/stores/mapper.spec.js.map +0 -1
  655. package/lib/stores/memory.d.ts +0 -152
  656. package/lib/stores/memory.d.ts.map +0 -1
  657. package/lib/stores/memory.js +0 -371
  658. package/lib/stores/memory.js.map +0 -1
  659. package/lib/stores/memory.spec.d.ts +0 -14
  660. package/lib/stores/memory.spec.d.ts.map +0 -1
  661. package/lib/stores/memory.spec.js +0 -263
  662. package/lib/stores/memory.spec.js.map +0 -1
  663. package/lib/stores/modelmapper.d.ts +0 -62
  664. package/lib/stores/modelmapper.d.ts.map +0 -1
  665. package/lib/stores/modelmapper.js +0 -197
  666. package/lib/stores/modelmapper.js.map +0 -1
  667. package/lib/stores/store.spec.d.ts +0 -57
  668. package/lib/stores/store.spec.d.ts.map +0 -1
  669. package/lib/stores/store.spec.js +0 -737
  670. package/lib/stores/store.spec.js.map +0 -1
  671. package/lib/test.d.ts +0 -265
  672. package/lib/test.d.ts.map +0 -1
  673. package/lib/test.js +0 -622
  674. package/lib/test.js.map +0 -1
  675. package/lib/unpackedapplication.d.ts.map +0 -1
  676. package/lib/unpackedapplication.js +0 -350
  677. package/lib/unpackedapplication.js.map +0 -1
  678. package/lib/utils/abstractdeployer.spec.d.ts +0 -2
  679. package/lib/utils/abstractdeployer.spec.d.ts.map +0 -1
  680. package/lib/utils/abstractdeployer.spec.js +0 -21
  681. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  682. package/lib/utils/case.d.ts +0 -8
  683. package/lib/utils/case.d.ts.map +0 -1
  684. package/lib/utils/case.js +0 -43
  685. package/lib/utils/case.js.map +0 -1
  686. package/lib/utils/case.spec.d.ts +0 -2
  687. package/lib/utils/case.spec.d.ts.map +0 -1
  688. package/lib/utils/case.spec.js +0 -50
  689. package/lib/utils/case.spec.js.map +0 -1
  690. package/lib/utils/context.d.ts +0 -482
  691. package/lib/utils/context.d.ts.map +0 -1
  692. package/lib/utils/context.js +0 -739
  693. package/lib/utils/context.js.map +0 -1
  694. package/lib/utils/context.spec.d.ts +0 -10
  695. package/lib/utils/context.spec.d.ts.map +0 -1
  696. package/lib/utils/context.spec.js +0 -383
  697. package/lib/utils/context.spec.js.map +0 -1
  698. package/lib/utils/cookie.d.ts.map +0 -1
  699. package/lib/utils/cookie.js.map +0 -1
  700. package/lib/utils/cookie.spec.d.ts +0 -2
  701. package/lib/utils/cookie.spec.d.ts.map +0 -1
  702. package/lib/utils/cookie.spec.js +0 -88
  703. package/lib/utils/cookie.spec.js.map +0 -1
  704. package/lib/utils/esm.d.ts +0 -14
  705. package/lib/utils/esm.d.ts.map +0 -1
  706. package/lib/utils/esm.js +0 -19
  707. package/lib/utils/esm.js.map +0 -1
  708. package/lib/utils/httpcontext.d.ts.map +0 -1
  709. package/lib/utils/httpcontext.js.map +0 -1
  710. package/lib/utils/httpcontext.spec.d.ts +0 -5
  711. package/lib/utils/httpcontext.spec.d.ts.map +0 -1
  712. package/lib/utils/httpcontext.spec.js +0 -77
  713. package/lib/utils/httpcontext.spec.js.map +0 -1
  714. package/lib/utils/logger.d.ts +0 -92
  715. package/lib/utils/logger.d.ts.map +0 -1
  716. package/lib/utils/logger.js +0 -121
  717. package/lib/utils/logger.js.map +0 -1
  718. package/lib/utils/logger.spec.d.ts +0 -2
  719. package/lib/utils/logger.spec.d.ts.map +0 -1
  720. package/lib/utils/logger.spec.js +0 -48
  721. package/lib/utils/logger.spec.js.map +0 -1
  722. package/lib/utils/serializers.d.ts +0 -162
  723. package/lib/utils/serializers.d.ts.map +0 -1
  724. package/lib/utils/serializers.js +0 -420
  725. package/lib/utils/serializers.js.map +0 -1
  726. package/lib/utils/serializers.spec.d.ts +0 -2
  727. package/lib/utils/serializers.spec.d.ts.map +0 -1
  728. package/lib/utils/serializers.spec.js +0 -311
  729. package/lib/utils/serializers.spec.js.map +0 -1
  730. package/lib/utils/session.d.ts +0 -123
  731. package/lib/utils/session.d.ts.map +0 -1
  732. package/lib/utils/session.js +0 -156
  733. package/lib/utils/session.js.map +0 -1
  734. package/lib/utils/session.spec.d.ts +0 -2
  735. package/lib/utils/session.spec.d.ts.map +0 -1
  736. package/lib/utils/session.spec.js +0 -81
  737. package/lib/utils/session.spec.js.map +0 -1
  738. package/lib/utils/throttler.d.ts +0 -99
  739. package/lib/utils/throttler.d.ts.map +0 -1
  740. package/lib/utils/throttler.js +0 -160
  741. package/lib/utils/throttler.js.map +0 -1
  742. package/lib/utils/throttler.spec.d.ts +0 -2
  743. package/lib/utils/throttler.spec.d.ts.map +0 -1
  744. package/lib/utils/throttler.spec.js +0 -53
  745. package/lib/utils/throttler.spec.js.map +0 -1
  746. package/lib/utils/waiter.d.ts +0 -94
  747. package/lib/utils/waiter.d.ts.map +0 -1
  748. package/lib/utils/waiter.js +0 -148
  749. package/lib/utils/waiter.js.map +0 -1
  750. package/lib/utils/waiter.spec.d.ts +0 -2
  751. package/lib/utils/waiter.spec.d.ts.map +0 -1
  752. package/lib/utils/waiter.spec.js +0 -98
  753. package/lib/utils/waiter.spec.js.map +0 -1
  754. package/test/jsonutils/mdocs.yaml +0 -56
  755. package/test/jsonutils/test.json +0 -3
  756. package/test/jsonutils/test.yml +0 -5
@@ -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