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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (793) hide show
  1. package/README.md +252 -0
  2. package/lib/application/application.d.ts +468 -0
  3. package/lib/application/application.d.ts.map +1 -0
  4. package/lib/application/application.js +845 -0
  5. package/lib/application/application.js.map +1 -0
  6. package/lib/application/deployment.d.ts +93 -0
  7. package/lib/application/deployment.d.ts.map +1 -0
  8. package/lib/application/deployment.js +99 -0
  9. package/lib/application/deployment.js.map +1 -0
  10. package/lib/application/hooks.d.ts +34 -0
  11. package/lib/application/hooks.d.ts.map +1 -0
  12. package/lib/application/hooks.js +57 -0
  13. package/lib/application/hooks.js.map +1 -0
  14. package/lib/application/iapplication.d.ts +43 -0
  15. package/lib/application/iapplication.d.ts.map +1 -0
  16. package/lib/application/iapplication.js +2 -0
  17. package/lib/application/iapplication.js.map +1 -0
  18. package/lib/application/iconfiguration.d.ts +176 -0
  19. package/lib/application/iconfiguration.d.ts.map +1 -0
  20. package/lib/application/iconfiguration.js +8 -0
  21. package/lib/application/iconfiguration.js.map +1 -0
  22. package/lib/application/runner.d.ts +8 -0
  23. package/lib/application/runner.d.ts.map +1 -0
  24. package/lib/application/runner.js +26 -0
  25. package/lib/application/runner.js.map +1 -0
  26. package/lib/{unpackedapplication.d.ts → application/unpackedapplication.d.ts} +43 -23
  27. package/lib/application/unpackedapplication.d.ts.map +1 -0
  28. package/lib/application/unpackedapplication.js +500 -0
  29. package/lib/application/unpackedapplication.js.map +1 -0
  30. package/lib/bin/cli-phase.d.ts +28 -0
  31. package/lib/bin/cli-phase.d.ts.map +1 -0
  32. package/lib/bin/cli-phase.js +44 -0
  33. package/lib/bin/cli-phase.js.map +1 -0
  34. package/lib/bin/cli.d.ts +196 -0
  35. package/lib/bin/cli.d.ts.map +1 -0
  36. package/lib/bin/cli.js +934 -0
  37. package/lib/bin/cli.js.map +1 -0
  38. package/lib/bin/launcher.d.ts +3 -0
  39. package/lib/bin/launcher.d.ts.map +1 -0
  40. package/lib/bin/launcher.js +50 -0
  41. package/lib/bin/launcher.js.map +1 -0
  42. package/lib/cache/cache.d.ts +33 -0
  43. package/lib/cache/cache.d.ts.map +1 -0
  44. package/lib/cache/cache.js +8 -0
  45. package/lib/cache/cache.js.map +1 -0
  46. package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -58
  47. package/lib/configurations/configuration.service.d.ts.map +1 -0
  48. package/lib/configurations/configuration.service.js +248 -0
  49. package/lib/configurations/configuration.service.js.map +1 -0
  50. package/lib/configurations/fileconfiguration.service.d.ts +30 -0
  51. package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
  52. package/lib/configurations/fileconfiguration.service.js +65 -0
  53. package/lib/configurations/fileconfiguration.service.js.map +1 -0
  54. package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
  55. package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
  56. package/lib/configurations/kubernetesconfiguration.service.js +83 -0
  57. package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
  58. package/lib/contexts/execution.d.ts +33 -0
  59. package/lib/contexts/execution.d.ts.map +1 -0
  60. package/lib/contexts/execution.js +73 -0
  61. package/lib/contexts/execution.js.map +1 -0
  62. package/lib/contexts/globalcontext.d.ts +29 -0
  63. package/lib/contexts/globalcontext.d.ts.map +1 -0
  64. package/lib/contexts/globalcontext.js +38 -0
  65. package/lib/contexts/globalcontext.js.map +1 -0
  66. package/lib/{utils → contexts}/httpcontext.d.ts +44 -19
  67. package/lib/contexts/httpcontext.d.ts.map +1 -0
  68. package/lib/{utils → contexts}/httpcontext.js +95 -27
  69. package/lib/contexts/httpcontext.js.map +1 -0
  70. package/lib/contexts/icontext.d.ts +236 -0
  71. package/lib/contexts/icontext.d.ts.map +1 -0
  72. package/lib/contexts/icontext.js +230 -0
  73. package/lib/contexts/icontext.js.map +1 -0
  74. package/lib/contexts/operationcontext.d.ts +182 -0
  75. package/lib/contexts/operationcontext.d.ts.map +1 -0
  76. package/lib/contexts/operationcontext.js +361 -0
  77. package/lib/contexts/operationcontext.js.map +1 -0
  78. package/lib/contexts/simplecontext.d.ts +31 -0
  79. package/lib/contexts/simplecontext.d.ts.map +1 -0
  80. package/lib/contexts/simplecontext.js +45 -0
  81. package/lib/contexts/simplecontext.js.map +1 -0
  82. package/lib/contexts/webcontext.d.ts +218 -0
  83. package/lib/contexts/webcontext.d.ts.map +1 -0
  84. package/lib/contexts/webcontext.js +389 -0
  85. package/lib/contexts/webcontext.js.map +1 -0
  86. package/lib/core/authorizer.d.ts +23 -0
  87. package/lib/core/authorizer.d.ts.map +1 -0
  88. package/lib/core/authorizer.js +17 -0
  89. package/lib/core/authorizer.js.map +1 -0
  90. package/lib/core/core.d.ts +225 -0
  91. package/lib/core/core.d.ts.map +1 -0
  92. package/lib/core/core.js +576 -0
  93. package/lib/core/core.js.map +1 -0
  94. package/lib/core/hooks.d.ts +94 -0
  95. package/lib/core/hooks.d.ts.map +1 -0
  96. package/lib/core/hooks.js +97 -0
  97. package/lib/core/hooks.js.map +1 -0
  98. package/lib/core/icore.d.ts +249 -0
  99. package/lib/core/icore.d.ts.map +1 -0
  100. package/lib/core/icore.js +15 -0
  101. package/lib/core/icore.js.map +1 -0
  102. package/lib/core/instancestorage.d.ts +61 -0
  103. package/lib/core/instancestorage.d.ts.map +1 -0
  104. package/lib/core/instancestorage.js +75 -0
  105. package/lib/core/instancestorage.js.map +1 -0
  106. package/lib/core/operations.d.ts +181 -0
  107. package/lib/core/operations.d.ts.map +1 -0
  108. package/lib/core/operations.js +559 -0
  109. package/lib/core/operations.js.map +1 -0
  110. package/lib/deployers/deployer.d.ts +157 -0
  111. package/lib/deployers/deployer.d.ts.map +1 -0
  112. package/lib/deployers/deployer.js +81 -0
  113. package/lib/deployers/deployer.js.map +1 -0
  114. package/lib/deployers/git.d.ts +27 -0
  115. package/lib/deployers/git.d.ts.map +1 -0
  116. package/lib/deployers/git.js +66 -0
  117. package/lib/deployers/git.js.map +1 -0
  118. package/lib/deployers/packager.d.ts +85 -0
  119. package/lib/deployers/packager.d.ts.map +1 -0
  120. package/lib/deployers/packager.js +259 -0
  121. package/lib/deployers/packager.js.map +1 -0
  122. package/lib/errors/errors.d.ts +126 -0
  123. package/lib/errors/errors.d.ts.map +1 -0
  124. package/lib/errors/errors.js +165 -0
  125. package/lib/errors/errors.js.map +1 -0
  126. package/lib/events/asynceventemitter.d.ts +159 -0
  127. package/lib/events/asynceventemitter.d.ts.map +1 -0
  128. package/lib/events/asynceventemitter.js +152 -0
  129. package/lib/events/asynceventemitter.js.map +1 -0
  130. package/lib/events/events.d.ts +112 -0
  131. package/lib/events/events.d.ts.map +1 -0
  132. package/lib/events/events.js +45 -0
  133. package/lib/events/events.js.map +1 -0
  134. package/lib/index.d.ts +88 -54
  135. package/lib/index.d.ts.map +1 -1
  136. package/lib/index.js +88 -64
  137. package/lib/index.js.map +1 -1
  138. package/lib/loggers/console.service.d.ts +24 -0
  139. package/lib/loggers/console.service.d.ts.map +1 -0
  140. package/lib/loggers/console.service.js +30 -0
  141. package/lib/loggers/console.service.js.map +1 -0
  142. package/lib/loggers/file.service.d.ts +25 -0
  143. package/lib/loggers/file.service.d.ts.map +1 -0
  144. package/lib/loggers/file.service.js +33 -0
  145. package/lib/loggers/file.service.js.map +1 -0
  146. package/lib/loggers/hooks.d.ts +20 -0
  147. package/lib/loggers/hooks.d.ts.map +1 -0
  148. package/lib/loggers/hooks.js +40 -0
  149. package/lib/loggers/hooks.js.map +1 -0
  150. package/lib/loggers/ilogger.d.ts +76 -0
  151. package/lib/loggers/ilogger.d.ts.map +1 -0
  152. package/lib/loggers/ilogger.js +108 -0
  153. package/lib/loggers/ilogger.js.map +1 -0
  154. package/lib/loggers/logger.d.ts +13 -0
  155. package/lib/loggers/logger.d.ts.map +1 -0
  156. package/lib/loggers/logger.js +18 -0
  157. package/lib/loggers/logger.js.map +1 -0
  158. package/lib/loggers/memory.service.d.ts +18 -0
  159. package/lib/loggers/memory.service.d.ts.map +1 -0
  160. package/lib/loggers/memory.service.js +21 -0
  161. package/lib/loggers/memory.service.js.map +1 -0
  162. package/lib/loggers/params.d.ts +47 -0
  163. package/lib/loggers/params.d.ts.map +1 -0
  164. package/lib/loggers/params.js +56 -0
  165. package/lib/loggers/params.js.map +1 -0
  166. package/lib/metrics/metrics.d.ts +25 -0
  167. package/lib/metrics/metrics.d.ts.map +1 -0
  168. package/lib/metrics/metrics.js +51 -0
  169. package/lib/metrics/metrics.js.map +1 -0
  170. package/lib/models/aclmodel.d.ts +20 -76
  171. package/lib/models/aclmodel.d.ts.map +1 -1
  172. package/lib/models/aclmodel.js +27 -203
  173. package/lib/models/aclmodel.js.map +1 -1
  174. package/lib/models/coremodel.model.d.ts +5 -0
  175. package/lib/models/coremodel.model.d.ts.map +1 -0
  176. package/lib/models/coremodel.model.js +5 -0
  177. package/lib/models/coremodel.model.js.map +1 -0
  178. package/lib/models/decorator.d.ts +67 -0
  179. package/lib/models/decorator.d.ts.map +1 -0
  180. package/lib/models/decorator.js +67 -0
  181. package/lib/models/decorator.js.map +1 -0
  182. package/lib/models/deployment.d.ts +2 -21
  183. package/lib/models/deployment.d.ts.map +1 -1
  184. package/lib/models/encrypted.model.d.ts +46 -0
  185. package/lib/models/encrypted.model.d.ts.map +1 -0
  186. package/lib/models/encrypted.model.js +87 -0
  187. package/lib/models/encrypted.model.js.map +1 -0
  188. package/lib/models/ident.model.d.ts +128 -0
  189. package/lib/models/ident.model.d.ts.map +1 -0
  190. package/lib/models/ident.model.js +207 -0
  191. package/lib/models/ident.model.js.map +1 -0
  192. package/lib/models/ownermodel.model.d.ts +68 -0
  193. package/lib/models/ownermodel.model.d.ts.map +1 -0
  194. package/lib/models/ownermodel.model.js +113 -0
  195. package/lib/models/ownermodel.model.js.map +1 -0
  196. package/lib/models/password.model.d.ts +78 -0
  197. package/lib/models/password.model.d.ts.map +1 -0
  198. package/lib/models/password.model.js +171 -0
  199. package/lib/models/password.model.js.map +1 -0
  200. package/lib/models/refreshtoken.model.d.ts +30 -0
  201. package/lib/models/refreshtoken.model.d.ts.map +1 -0
  202. package/lib/models/refreshtoken.model.js +29 -0
  203. package/lib/models/refreshtoken.model.js.map +1 -0
  204. package/lib/models/registry.model.d.ts +76 -0
  205. package/lib/models/registry.model.d.ts.map +1 -0
  206. package/lib/models/registry.model.js +104 -0
  207. package/lib/models/registry.model.js.map +1 -0
  208. package/lib/models/rolemodel.model.d.ts +28 -0
  209. package/lib/models/rolemodel.model.d.ts.map +1 -0
  210. package/lib/models/{rolemodel.js → rolemodel.model.js} +23 -5
  211. package/lib/models/rolemodel.model.js.map +1 -0
  212. package/lib/models/simpleuser.model.d.ts +78 -0
  213. package/lib/models/simpleuser.model.d.ts.map +1 -0
  214. package/lib/models/simpleuser.model.js +124 -0
  215. package/lib/models/simpleuser.model.js.map +1 -0
  216. package/lib/models/types.d.ts +113 -0
  217. package/lib/models/types.d.ts.map +1 -0
  218. package/lib/models/types.js +2 -0
  219. package/lib/models/types.js.map +1 -0
  220. package/lib/models/user.model.d.ts +103 -0
  221. package/lib/models/user.model.d.ts.map +1 -0
  222. package/lib/models/user.model.js +164 -0
  223. package/lib/models/user.model.js.map +1 -0
  224. package/lib/queues/{memoryqueue.d.ts → memoryqueue.service.d.ts} +26 -13
  225. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  226. package/lib/queues/{memoryqueue.js → memoryqueue.service.js} +55 -31
  227. package/lib/queues/memoryqueue.service.js.map +1 -0
  228. package/lib/queues/pubsubservice.d.ts +8 -6
  229. package/lib/queues/pubsubservice.d.ts.map +1 -1
  230. package/lib/queues/pubsubservice.js +5 -4
  231. package/lib/queues/pubsubservice.js.map +1 -1
  232. package/lib/queues/queueservice.d.ts +9 -11
  233. package/lib/queues/queueservice.d.ts.map +1 -1
  234. package/lib/queues/queueservice.js +41 -13
  235. package/lib/queues/queueservice.js.map +1 -1
  236. package/lib/rest/hooks.d.ts +8 -0
  237. package/lib/rest/hooks.d.ts.map +1 -0
  238. package/lib/rest/hooks.js +10 -0
  239. package/lib/rest/hooks.js.map +1 -0
  240. package/lib/rest/irest.d.ts +212 -0
  241. package/lib/rest/irest.d.ts.map +1 -0
  242. package/lib/rest/irest.js +39 -0
  243. package/lib/rest/irest.js.map +1 -0
  244. package/lib/rest/originfilter.d.ts +38 -0
  245. package/lib/rest/originfilter.d.ts.map +1 -0
  246. package/lib/rest/originfilter.js +61 -0
  247. package/lib/rest/originfilter.js.map +1 -0
  248. package/lib/rest/restoperationstransport.service.d.ts +193 -0
  249. package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
  250. package/lib/rest/restoperationstransport.service.js +780 -0
  251. package/lib/rest/restoperationstransport.service.js.map +1 -0
  252. package/lib/rest/router.service.d.ts +244 -0
  253. package/lib/rest/router.service.d.ts.map +1 -0
  254. package/lib/rest/router.service.js +843 -0
  255. package/lib/rest/router.service.js.map +1 -0
  256. package/lib/schemas/hooks.d.ts +48 -0
  257. package/lib/schemas/hooks.d.ts.map +1 -0
  258. package/lib/schemas/hooks.js +152 -0
  259. package/lib/schemas/hooks.js.map +1 -0
  260. package/lib/services/audit.model.d.ts +208 -0
  261. package/lib/services/audit.model.d.ts.map +1 -0
  262. package/lib/services/audit.model.js +432 -0
  263. package/lib/services/audit.model.js.map +1 -0
  264. package/lib/services/binary.service.d.ts +808 -0
  265. package/lib/services/binary.service.d.ts.map +1 -0
  266. package/lib/services/binary.service.js +1365 -0
  267. package/lib/services/binary.service.js.map +1 -0
  268. package/lib/services/cloudbinary.d.ts +17 -12
  269. package/lib/services/cloudbinary.d.ts.map +1 -1
  270. package/lib/services/cloudbinary.js +23 -17
  271. package/lib/services/cloudbinary.js.map +1 -1
  272. package/lib/services/command.d.ts +118 -0
  273. package/lib/services/command.d.ts.map +1 -0
  274. package/lib/services/command.js +97 -0
  275. package/lib/services/command.js.map +1 -0
  276. package/lib/services/cron.service.d.ts +142 -0
  277. package/lib/services/cron.service.d.ts.map +1 -0
  278. package/lib/services/cron.service.js +291 -0
  279. package/lib/services/cron.service.js.map +1 -0
  280. package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +75 -141
  281. package/lib/services/cryptoservice.service.d.ts.map +1 -0
  282. package/lib/services/cryptoservice.service.js +527 -0
  283. package/lib/services/cryptoservice.service.js.map +1 -0
  284. package/lib/services/debugmailer.service.d.ts +49 -0
  285. package/lib/services/debugmailer.service.d.ts.map +1 -0
  286. package/lib/services/{debugmailer.js → debugmailer.service.js} +25 -10
  287. package/lib/services/debugmailer.service.js.map +1 -0
  288. package/lib/services/domainservice.service.d.ts +242 -0
  289. package/lib/services/domainservice.service.d.ts.map +1 -0
  290. package/lib/services/domainservice.service.js +676 -0
  291. package/lib/services/domainservice.service.js.map +1 -0
  292. package/lib/services/httpserver.service.d.ts +248 -0
  293. package/lib/services/httpserver.service.d.ts.map +1 -0
  294. package/lib/services/httpserver.service.js +673 -0
  295. package/lib/services/httpserver.service.js.map +1 -0
  296. package/lib/services/iauthentication.d.ts +202 -0
  297. package/lib/services/iauthentication.d.ts.map +1 -0
  298. package/lib/services/iauthentication.js +2 -0
  299. package/lib/services/iauthentication.js.map +1 -0
  300. package/lib/services/icryptoservice.d.ts +127 -0
  301. package/lib/services/icryptoservice.d.ts.map +1 -0
  302. package/lib/services/icryptoservice.js +68 -0
  303. package/lib/services/icryptoservice.js.map +1 -0
  304. package/lib/services/imailer.d.ts +17 -0
  305. package/lib/services/imailer.d.ts.map +1 -0
  306. package/lib/services/imailer.js +2 -0
  307. package/lib/services/imailer.js.map +1 -0
  308. package/lib/services/iservice.d.ts +104 -0
  309. package/lib/services/iservice.d.ts.map +1 -0
  310. package/lib/services/iservice.js +63 -0
  311. package/lib/services/iservice.js.map +1 -0
  312. package/lib/services/mailer.service.d.ts +220 -0
  313. package/lib/services/mailer.service.d.ts.map +1 -0
  314. package/lib/services/mailer.service.js +251 -0
  315. package/lib/services/mailer.service.js.map +1 -0
  316. package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -11
  317. package/lib/services/notificationservice.service.d.ts.map +1 -0
  318. package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
  319. package/lib/services/notificationservice.service.js.map +1 -0
  320. package/lib/services/operationstransport.d.ts +65 -0
  321. package/lib/services/operationstransport.d.ts.map +1 -0
  322. package/lib/services/operationstransport.js +103 -0
  323. package/lib/services/operationstransport.js.map +1 -0
  324. package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -12
  325. package/lib/services/prometheus.service.d.ts.map +1 -0
  326. package/lib/services/prometheus.service.js +203 -0
  327. package/lib/services/prometheus.service.js.map +1 -0
  328. package/lib/services/{resource.d.ts → resource.service.d.ts} +34 -15
  329. package/lib/services/resource.service.d.ts.map +1 -0
  330. package/lib/services/resource.service.js +301 -0
  331. package/lib/services/resource.service.js.map +1 -0
  332. package/lib/services/service.d.ts +87 -188
  333. package/lib/services/service.d.ts.map +1 -1
  334. package/lib/services/service.js +407 -422
  335. package/lib/services/service.js.map +1 -1
  336. package/lib/services/servicecommands.d.ts +99 -0
  337. package/lib/services/servicecommands.d.ts.map +1 -0
  338. package/lib/services/servicecommands.js +171 -0
  339. package/lib/services/servicecommands.js.map +1 -0
  340. package/lib/services/serviceparameters.d.ts +33 -0
  341. package/lib/services/serviceparameters.d.ts.map +1 -0
  342. package/lib/services/serviceparameters.js +79 -0
  343. package/lib/services/serviceparameters.js.map +1 -0
  344. package/lib/services/token.service.d.ts +95 -0
  345. package/lib/services/token.service.d.ts.map +1 -0
  346. package/lib/services/token.service.js +182 -0
  347. package/lib/services/token.service.js.map +1 -0
  348. package/lib/{utils → session}/cookie.d.ts +32 -19
  349. package/lib/session/cookie.d.ts.map +1 -0
  350. package/lib/{utils → session}/cookie.js +76 -23
  351. package/lib/session/cookie.js.map +1 -0
  352. package/lib/session/manager.model.d.ts +87 -0
  353. package/lib/session/manager.model.d.ts.map +1 -0
  354. package/lib/session/manager.model.js +212 -0
  355. package/lib/session/manager.model.js.map +1 -0
  356. package/lib/session/session.d.ts +100 -0
  357. package/lib/session/session.d.ts.map +1 -0
  358. package/lib/session/session.js +175 -0
  359. package/lib/session/session.js.map +1 -0
  360. package/lib/stores/istore.d.ts +99 -0
  361. package/lib/stores/istore.d.ts.map +1 -0
  362. package/lib/stores/istore.js +26 -0
  363. package/lib/stores/istore.js.map +1 -0
  364. package/lib/stores/memory.service.d.ts +114 -0
  365. package/lib/stores/memory.service.d.ts.map +1 -0
  366. package/lib/stores/memory.service.js +344 -0
  367. package/lib/stores/memory.service.js.map +1 -0
  368. package/lib/stores/store.d.ts +126 -626
  369. package/lib/stores/store.d.ts.map +1 -1
  370. package/lib/stores/store.js +257 -1117
  371. package/lib/stores/store.js.map +1 -1
  372. package/lib/templates/templates.d.ts +47 -0
  373. package/lib/templates/templates.d.ts.map +1 -0
  374. package/lib/templates/templates.js +101 -0
  375. package/lib/templates/templates.js.map +1 -0
  376. package/lib/test/application.d.ts +174 -0
  377. package/lib/test/application.d.ts.map +1 -0
  378. package/lib/test/application.js +288 -0
  379. package/lib/test/application.js.map +1 -0
  380. package/lib/test/asyncstorage.d.ts +16 -0
  381. package/lib/test/asyncstorage.d.ts.map +1 -0
  382. package/lib/test/asyncstorage.js +32 -0
  383. package/lib/test/asyncstorage.js.map +1 -0
  384. package/lib/test/behavior-fixture.model.d.ts +30 -0
  385. package/lib/test/behavior-fixture.model.d.ts.map +1 -0
  386. package/lib/test/behavior-fixture.model.js +63 -0
  387. package/lib/test/behavior-fixture.model.js.map +1 -0
  388. package/lib/test/core.d.ts +63 -0
  389. package/lib/test/core.d.ts.map +1 -0
  390. package/lib/test/core.js +190 -0
  391. package/lib/test/core.js.map +1 -0
  392. package/lib/test/index.d.ts +7 -0
  393. package/lib/test/index.d.ts.map +1 -0
  394. package/lib/test/index.js +8 -0
  395. package/lib/test/index.js.map +1 -0
  396. package/lib/test/internal.d.ts +34 -0
  397. package/lib/test/internal.d.ts.map +1 -0
  398. package/lib/test/internal.js +156 -0
  399. package/lib/test/internal.js.map +1 -0
  400. package/lib/test/legacyident.fixture.model.d.ts +98 -0
  401. package/lib/test/legacyident.fixture.model.d.ts.map +1 -0
  402. package/lib/test/legacyident.fixture.model.js +125 -0
  403. package/lib/test/legacyident.fixture.model.js.map +1 -0
  404. package/lib/test/objects.d.ts +318 -0
  405. package/lib/test/objects.d.ts.map +1 -0
  406. package/lib/test/objects.js +443 -0
  407. package/lib/test/objects.js.map +1 -0
  408. package/lib/utils/abstractdeployer.d.ts +4 -2
  409. package/lib/utils/abstractdeployer.d.ts.map +1 -1
  410. package/lib/utils/abstractdeployer.js +3 -0
  411. package/lib/utils/abstractdeployer.js.map +1 -1
  412. package/package.json +102 -60
  413. package/test/cachedapp/webda.config.json +1 -5
  414. package/test/config-cached.json +3 -6
  415. package/test/config.json +3 -10
  416. package/test/my-cnf.json +9 -0
  417. package/webda.module.json +3755 -2496
  418. package/lib/application.d.ts +0 -888
  419. package/lib/application.d.ts.map +0 -1
  420. package/lib/application.js +0 -768
  421. package/lib/application.js.map +0 -1
  422. package/lib/application.spec.d.ts +0 -2
  423. package/lib/application.spec.d.ts.map +0 -1
  424. package/lib/application.spec.js +0 -248
  425. package/lib/application.spec.js.map +0 -1
  426. package/lib/core.d.ts +0 -743
  427. package/lib/core.d.ts.map +0 -1
  428. package/lib/core.js +0 -1334
  429. package/lib/core.js.map +0 -1
  430. package/lib/core.spec.d.ts +0 -2
  431. package/lib/core.spec.d.ts.map +0 -1
  432. package/lib/core.spec.js +0 -790
  433. package/lib/core.spec.js.map +0 -1
  434. package/lib/errors.d.ts +0 -64
  435. package/lib/errors.d.ts.map +0 -1
  436. package/lib/errors.js +0 -97
  437. package/lib/errors.js.map +0 -1
  438. package/lib/errors.spec.d.ts +0 -2
  439. package/lib/errors.spec.d.ts.map +0 -1
  440. package/lib/errors.spec.js +0 -33
  441. package/lib/errors.spec.js.map +0 -1
  442. package/lib/models/aclmodel.spec.d.ts +0 -2
  443. package/lib/models/aclmodel.spec.d.ts.map +0 -1
  444. package/lib/models/aclmodel.spec.js +0 -187
  445. package/lib/models/aclmodel.spec.js.map +0 -1
  446. package/lib/models/coremodel.d.ts +0 -896
  447. package/lib/models/coremodel.d.ts.map +0 -1
  448. package/lib/models/coremodel.js +0 -1214
  449. package/lib/models/coremodel.js.map +0 -1
  450. package/lib/models/coremodel.spec.d.ts +0 -2
  451. package/lib/models/coremodel.spec.d.ts.map +0 -1
  452. package/lib/models/coremodel.spec.js +0 -464
  453. package/lib/models/coremodel.spec.js.map +0 -1
  454. package/lib/models/ident.d.ts +0 -68
  455. package/lib/models/ident.d.ts.map +0 -1
  456. package/lib/models/ident.js +0 -26
  457. package/lib/models/ident.js.map +0 -1
  458. package/lib/models/ident.spec.d.ts +0 -2
  459. package/lib/models/ident.spec.d.ts.map +0 -1
  460. package/lib/models/ident.spec.js +0 -24
  461. package/lib/models/ident.spec.js.map +0 -1
  462. package/lib/models/ownermodel.d.ts +0 -51
  463. package/lib/models/ownermodel.d.ts.map +0 -1
  464. package/lib/models/ownermodel.js +0 -65
  465. package/lib/models/ownermodel.js.map +0 -1
  466. package/lib/models/ownermodel.spec.d.ts +0 -2
  467. package/lib/models/ownermodel.spec.d.ts.map +0 -1
  468. package/lib/models/ownermodel.spec.js +0 -215
  469. package/lib/models/ownermodel.spec.js.map +0 -1
  470. package/lib/models/relations.d.ts +0 -182
  471. package/lib/models/relations.d.ts.map +0 -1
  472. package/lib/models/relations.js +0 -157
  473. package/lib/models/relations.js.map +0 -1
  474. package/lib/models/relations.spec.d.ts +0 -14
  475. package/lib/models/relations.spec.d.ts.map +0 -1
  476. package/lib/models/relations.spec.js +0 -217
  477. package/lib/models/relations.spec.js.map +0 -1
  478. package/lib/models/rolemodel.d.ts +0 -11
  479. package/lib/models/rolemodel.d.ts.map +0 -1
  480. package/lib/models/rolemodel.js.map +0 -1
  481. package/lib/models/rolemodel.spec.d.ts +0 -2
  482. package/lib/models/rolemodel.spec.d.ts.map +0 -1
  483. package/lib/models/rolemodel.spec.js +0 -90
  484. package/lib/models/rolemodel.spec.js.map +0 -1
  485. package/lib/models/simpleuser.d.ts +0 -47
  486. package/lib/models/simpleuser.d.ts.map +0 -1
  487. package/lib/models/simpleuser.js +0 -84
  488. package/lib/models/simpleuser.js.map +0 -1
  489. package/lib/models/test.d.ts +0 -11
  490. package/lib/models/test.d.ts.map +0 -1
  491. package/lib/models/test.js +0 -7
  492. package/lib/models/test.js.map +0 -1
  493. package/lib/models/user.d.ts +0 -67
  494. package/lib/models/user.d.ts.map +0 -1
  495. package/lib/models/user.js +0 -86
  496. package/lib/models/user.js.map +0 -1
  497. package/lib/models/user.spec.d.ts +0 -2
  498. package/lib/models/user.spec.d.ts.map +0 -1
  499. package/lib/models/user.spec.js +0 -89
  500. package/lib/models/user.spec.js.map +0 -1
  501. package/lib/queues/filequeue.d.ts +0 -59
  502. package/lib/queues/filequeue.d.ts.map +0 -1
  503. package/lib/queues/filequeue.js +0 -131
  504. package/lib/queues/filequeue.js.map +0 -1
  505. package/lib/queues/filequeue.spec.d.ts +0 -2
  506. package/lib/queues/filequeue.spec.d.ts.map +0 -1
  507. package/lib/queues/filequeue.spec.js +0 -84
  508. package/lib/queues/filequeue.spec.js.map +0 -1
  509. package/lib/queues/memoryqueue.d.ts.map +0 -1
  510. package/lib/queues/memoryqueue.js.map +0 -1
  511. package/lib/queues/memoryqueue.spec.d.ts +0 -2
  512. package/lib/queues/memoryqueue.spec.d.ts.map +0 -1
  513. package/lib/queues/memoryqueue.spec.js +0 -203
  514. package/lib/queues/memoryqueue.spec.js.map +0 -1
  515. package/lib/queues/queue.spec.d.ts +0 -6
  516. package/lib/queues/queue.spec.d.ts.map +0 -1
  517. package/lib/queues/queue.spec.js +0 -55
  518. package/lib/queues/queue.spec.js.map +0 -1
  519. package/lib/rest/restdomainservice.d.ts +0 -63
  520. package/lib/rest/restdomainservice.d.ts.map +0 -1
  521. package/lib/rest/restdomainservice.js +0 -687
  522. package/lib/rest/restdomainservice.js.map +0 -1
  523. package/lib/rest/restdomainservice.spec.d.ts +0 -2
  524. package/lib/rest/restdomainservice.spec.d.ts.map +0 -1
  525. package/lib/rest/restdomainservice.spec.js +0 -124
  526. package/lib/rest/restdomainservice.spec.js.map +0 -1
  527. package/lib/rest/router.d.ts +0 -174
  528. package/lib/rest/router.d.ts.map +0 -1
  529. package/lib/rest/router.js +0 -429
  530. package/lib/rest/router.js.map +0 -1
  531. package/lib/rest/router.spec.d.ts +0 -2
  532. package/lib/rest/router.spec.d.ts.map +0 -1
  533. package/lib/rest/router.spec.js +0 -255
  534. package/lib/rest/router.spec.js.map +0 -1
  535. package/lib/services/asyncevents.d.ts +0 -152
  536. package/lib/services/asyncevents.d.ts.map +0 -1
  537. package/lib/services/asyncevents.js +0 -217
  538. package/lib/services/asyncevents.js.map +0 -1
  539. package/lib/services/asyncevents.spec.d.ts +0 -2
  540. package/lib/services/asyncevents.spec.d.ts.map +0 -1
  541. package/lib/services/asyncevents.spec.js +0 -118
  542. package/lib/services/asyncevents.spec.js.map +0 -1
  543. package/lib/services/authentication.d.ts +0 -361
  544. package/lib/services/authentication.d.ts.map +0 -1
  545. package/lib/services/authentication.js +0 -773
  546. package/lib/services/authentication.js.map +0 -1
  547. package/lib/services/authentication.spec.d.ts +0 -2
  548. package/lib/services/authentication.spec.d.ts.map +0 -1
  549. package/lib/services/authentication.spec.js +0 -458
  550. package/lib/services/authentication.spec.js.map +0 -1
  551. package/lib/services/binary.d.ts +0 -477
  552. package/lib/services/binary.d.ts.map +0 -1
  553. package/lib/services/binary.js +0 -617
  554. package/lib/services/binary.js.map +0 -1
  555. package/lib/services/binary.spec.d.ts +0 -41
  556. package/lib/services/binary.spec.d.ts.map +0 -1
  557. package/lib/services/binary.spec.js +0 -151
  558. package/lib/services/binary.spec.js.map +0 -1
  559. package/lib/services/cloudbinary.spec.d.ts +0 -6
  560. package/lib/services/cloudbinary.spec.d.ts.map +0 -1
  561. package/lib/services/cloudbinary.spec.js +0 -66
  562. package/lib/services/cloudbinary.spec.js.map +0 -1
  563. package/lib/services/configuration.d.ts.map +0 -1
  564. package/lib/services/configuration.js +0 -193
  565. package/lib/services/configuration.js.map +0 -1
  566. package/lib/services/configuration.spec.d.ts +0 -2
  567. package/lib/services/configuration.spec.d.ts.map +0 -1
  568. package/lib/services/configuration.spec.js +0 -130
  569. package/lib/services/configuration.spec.js.map +0 -1
  570. package/lib/services/cron.d.ts +0 -74
  571. package/lib/services/cron.d.ts.map +0 -1
  572. package/lib/services/cron.js +0 -141
  573. package/lib/services/cron.js.map +0 -1
  574. package/lib/services/cron.spec.d.ts +0 -2
  575. package/lib/services/cron.spec.d.ts.map +0 -1
  576. package/lib/services/cron.spec.js +0 -76
  577. package/lib/services/cron.spec.js.map +0 -1
  578. package/lib/services/cryptoservice.d.ts.map +0 -1
  579. package/lib/services/cryptoservice.js +0 -433
  580. package/lib/services/cryptoservice.js.map +0 -1
  581. package/lib/services/cryptoservice.spec.d.ts +0 -2
  582. package/lib/services/cryptoservice.spec.d.ts.map +0 -1
  583. package/lib/services/cryptoservice.spec.js +0 -177
  584. package/lib/services/cryptoservice.spec.js.map +0 -1
  585. package/lib/services/debugmailer.d.ts +0 -36
  586. package/lib/services/debugmailer.d.ts.map +0 -1
  587. package/lib/services/debugmailer.js.map +0 -1
  588. package/lib/services/debugmailer.spec.d.ts +0 -2
  589. package/lib/services/debugmailer.spec.d.ts.map +0 -1
  590. package/lib/services/debugmailer.spec.js +0 -32
  591. package/lib/services/debugmailer.spec.js.map +0 -1
  592. package/lib/services/domainservice.d.ts +0 -272
  593. package/lib/services/domainservice.d.ts.map +0 -1
  594. package/lib/services/domainservice.js +0 -651
  595. package/lib/services/domainservice.js.map +0 -1
  596. package/lib/services/domainservice.spec.d.ts +0 -2
  597. package/lib/services/domainservice.spec.d.ts.map +0 -1
  598. package/lib/services/domainservice.spec.js +0 -592
  599. package/lib/services/domainservice.spec.js.map +0 -1
  600. package/lib/services/filebinary.d.ts +0 -136
  601. package/lib/services/filebinary.d.ts.map +0 -1
  602. package/lib/services/filebinary.js +0 -373
  603. package/lib/services/filebinary.js.map +0 -1
  604. package/lib/services/filebinary.spec.d.ts +0 -25
  605. package/lib/services/filebinary.spec.d.ts.map +0 -1
  606. package/lib/services/filebinary.spec.js +0 -428
  607. package/lib/services/filebinary.spec.js.map +0 -1
  608. package/lib/services/fileconfiguration.d.ts +0 -23
  609. package/lib/services/fileconfiguration.d.ts.map +0 -1
  610. package/lib/services/fileconfiguration.js +0 -48
  611. package/lib/services/fileconfiguration.js.map +0 -1
  612. package/lib/services/fileconfiguration.spec.d.ts +0 -2
  613. package/lib/services/fileconfiguration.spec.d.ts.map +0 -1
  614. package/lib/services/fileconfiguration.spec.js +0 -215
  615. package/lib/services/fileconfiguration.spec.js.map +0 -1
  616. package/lib/services/invitationservice.d.ts +0 -223
  617. package/lib/services/invitationservice.d.ts.map +0 -1
  618. package/lib/services/invitationservice.js +0 -529
  619. package/lib/services/invitationservice.js.map +0 -1
  620. package/lib/services/invitationservice.spec.d.ts +0 -2
  621. package/lib/services/invitationservice.spec.d.ts.map +0 -1
  622. package/lib/services/invitationservice.spec.js +0 -567
  623. package/lib/services/invitationservice.spec.js.map +0 -1
  624. package/lib/services/kubernetesconfiguration.d.ts +0 -27
  625. package/lib/services/kubernetesconfiguration.d.ts.map +0 -1
  626. package/lib/services/kubernetesconfiguration.js +0 -52
  627. package/lib/services/kubernetesconfiguration.js.map +0 -1
  628. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -2
  629. package/lib/services/kubernetesconfiguration.spec.d.ts.map +0 -1
  630. package/lib/services/kubernetesconfiguration.spec.js +0 -206
  631. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  632. package/lib/services/mailer.d.ts +0 -166
  633. package/lib/services/mailer.d.ts.map +0 -1
  634. package/lib/services/mailer.js +0 -176
  635. package/lib/services/mailer.js.map +0 -1
  636. package/lib/services/mailer.spec.d.ts +0 -2
  637. package/lib/services/mailer.spec.d.ts.map +0 -1
  638. package/lib/services/mailer.spec.js +0 -158
  639. package/lib/services/mailer.spec.js.map +0 -1
  640. package/lib/services/notificationservice.d.ts.map +0 -1
  641. package/lib/services/notificationservice.js.map +0 -1
  642. package/lib/services/notificationservice.spec.d.ts +0 -2
  643. package/lib/services/notificationservice.spec.d.ts.map +0 -1
  644. package/lib/services/notificationservice.spec.js +0 -83
  645. package/lib/services/notificationservice.spec.js.map +0 -1
  646. package/lib/services/oauth.d.ts +0 -226
  647. package/lib/services/oauth.d.ts.map +0 -1
  648. package/lib/services/oauth.js +0 -294
  649. package/lib/services/oauth.js.map +0 -1
  650. package/lib/services/oauth.spec.d.ts +0 -2
  651. package/lib/services/oauth.spec.d.ts.map +0 -1
  652. package/lib/services/oauth.spec.js +0 -208
  653. package/lib/services/oauth.spec.js.map +0 -1
  654. package/lib/services/prometheus.d.ts.map +0 -1
  655. package/lib/services/prometheus.js +0 -160
  656. package/lib/services/prometheus.js.map +0 -1
  657. package/lib/services/prometheus.spec.d.ts +0 -2
  658. package/lib/services/prometheus.spec.d.ts.map +0 -1
  659. package/lib/services/prometheus.spec.js +0 -76
  660. package/lib/services/prometheus.spec.js.map +0 -1
  661. package/lib/services/resource.d.ts.map +0 -1
  662. package/lib/services/resource.js +0 -170
  663. package/lib/services/resource.js.map +0 -1
  664. package/lib/services/resource.spec.d.ts +0 -2
  665. package/lib/services/resource.spec.d.ts.map +0 -1
  666. package/lib/services/resource.spec.js +0 -140
  667. package/lib/services/resource.spec.js.map +0 -1
  668. package/lib/services/service.spec.d.ts +0 -2
  669. package/lib/services/service.spec.d.ts.map +0 -1
  670. package/lib/services/service.spec.js +0 -286
  671. package/lib/services/service.spec.js.map +0 -1
  672. package/lib/stores/aggregator.d.ts +0 -48
  673. package/lib/stores/aggregator.d.ts.map +0 -1
  674. package/lib/stores/aggregator.js +0 -80
  675. package/lib/stores/aggregator.js.map +0 -1
  676. package/lib/stores/file.d.ts +0 -108
  677. package/lib/stores/file.d.ts.map +0 -1
  678. package/lib/stores/file.js +0 -188
  679. package/lib/stores/file.js.map +0 -1
  680. package/lib/stores/file.spec.d.ts +0 -13
  681. package/lib/stores/file.spec.d.ts.map +0 -1
  682. package/lib/stores/file.spec.js +0 -138
  683. package/lib/stores/file.spec.js.map +0 -1
  684. package/lib/stores/mapper.d.ts +0 -150
  685. package/lib/stores/mapper.d.ts.map +0 -1
  686. package/lib/stores/mapper.js +0 -293
  687. package/lib/stores/mapper.js.map +0 -1
  688. package/lib/stores/mapper.spec.d.ts +0 -2
  689. package/lib/stores/mapper.spec.d.ts.map +0 -1
  690. package/lib/stores/mapper.spec.js +0 -167
  691. package/lib/stores/mapper.spec.js.map +0 -1
  692. package/lib/stores/memory.d.ts +0 -152
  693. package/lib/stores/memory.d.ts.map +0 -1
  694. package/lib/stores/memory.js +0 -371
  695. package/lib/stores/memory.js.map +0 -1
  696. package/lib/stores/memory.spec.d.ts +0 -14
  697. package/lib/stores/memory.spec.d.ts.map +0 -1
  698. package/lib/stores/memory.spec.js +0 -263
  699. package/lib/stores/memory.spec.js.map +0 -1
  700. package/lib/stores/modelmapper.d.ts +0 -62
  701. package/lib/stores/modelmapper.d.ts.map +0 -1
  702. package/lib/stores/modelmapper.js +0 -197
  703. package/lib/stores/modelmapper.js.map +0 -1
  704. package/lib/stores/store.spec.d.ts +0 -57
  705. package/lib/stores/store.spec.d.ts.map +0 -1
  706. package/lib/stores/store.spec.js +0 -737
  707. package/lib/stores/store.spec.js.map +0 -1
  708. package/lib/test.d.ts +0 -265
  709. package/lib/test.d.ts.map +0 -1
  710. package/lib/test.js +0 -622
  711. package/lib/test.js.map +0 -1
  712. package/lib/unpackedapplication.d.ts.map +0 -1
  713. package/lib/unpackedapplication.js +0 -350
  714. package/lib/unpackedapplication.js.map +0 -1
  715. package/lib/utils/abstractdeployer.spec.d.ts +0 -2
  716. package/lib/utils/abstractdeployer.spec.d.ts.map +0 -1
  717. package/lib/utils/abstractdeployer.spec.js +0 -21
  718. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  719. package/lib/utils/case.d.ts +0 -8
  720. package/lib/utils/case.d.ts.map +0 -1
  721. package/lib/utils/case.js +0 -43
  722. package/lib/utils/case.js.map +0 -1
  723. package/lib/utils/case.spec.d.ts +0 -2
  724. package/lib/utils/case.spec.d.ts.map +0 -1
  725. package/lib/utils/case.spec.js +0 -50
  726. package/lib/utils/case.spec.js.map +0 -1
  727. package/lib/utils/context.d.ts +0 -482
  728. package/lib/utils/context.d.ts.map +0 -1
  729. package/lib/utils/context.js +0 -739
  730. package/lib/utils/context.js.map +0 -1
  731. package/lib/utils/context.spec.d.ts +0 -10
  732. package/lib/utils/context.spec.d.ts.map +0 -1
  733. package/lib/utils/context.spec.js +0 -383
  734. package/lib/utils/context.spec.js.map +0 -1
  735. package/lib/utils/cookie.d.ts.map +0 -1
  736. package/lib/utils/cookie.js.map +0 -1
  737. package/lib/utils/cookie.spec.d.ts +0 -2
  738. package/lib/utils/cookie.spec.d.ts.map +0 -1
  739. package/lib/utils/cookie.spec.js +0 -88
  740. package/lib/utils/cookie.spec.js.map +0 -1
  741. package/lib/utils/esm.d.ts +0 -14
  742. package/lib/utils/esm.d.ts.map +0 -1
  743. package/lib/utils/esm.js +0 -19
  744. package/lib/utils/esm.js.map +0 -1
  745. package/lib/utils/httpcontext.d.ts.map +0 -1
  746. package/lib/utils/httpcontext.js.map +0 -1
  747. package/lib/utils/httpcontext.spec.d.ts +0 -5
  748. package/lib/utils/httpcontext.spec.d.ts.map +0 -1
  749. package/lib/utils/httpcontext.spec.js +0 -77
  750. package/lib/utils/httpcontext.spec.js.map +0 -1
  751. package/lib/utils/logger.d.ts +0 -92
  752. package/lib/utils/logger.d.ts.map +0 -1
  753. package/lib/utils/logger.js +0 -121
  754. package/lib/utils/logger.js.map +0 -1
  755. package/lib/utils/logger.spec.d.ts +0 -2
  756. package/lib/utils/logger.spec.d.ts.map +0 -1
  757. package/lib/utils/logger.spec.js +0 -48
  758. package/lib/utils/logger.spec.js.map +0 -1
  759. package/lib/utils/serializers.d.ts +0 -162
  760. package/lib/utils/serializers.d.ts.map +0 -1
  761. package/lib/utils/serializers.js +0 -420
  762. package/lib/utils/serializers.js.map +0 -1
  763. package/lib/utils/serializers.spec.d.ts +0 -2
  764. package/lib/utils/serializers.spec.d.ts.map +0 -1
  765. package/lib/utils/serializers.spec.js +0 -311
  766. package/lib/utils/serializers.spec.js.map +0 -1
  767. package/lib/utils/session.d.ts +0 -123
  768. package/lib/utils/session.d.ts.map +0 -1
  769. package/lib/utils/session.js +0 -156
  770. package/lib/utils/session.js.map +0 -1
  771. package/lib/utils/session.spec.d.ts +0 -2
  772. package/lib/utils/session.spec.d.ts.map +0 -1
  773. package/lib/utils/session.spec.js +0 -81
  774. package/lib/utils/session.spec.js.map +0 -1
  775. package/lib/utils/throttler.d.ts +0 -99
  776. package/lib/utils/throttler.d.ts.map +0 -1
  777. package/lib/utils/throttler.js +0 -160
  778. package/lib/utils/throttler.js.map +0 -1
  779. package/lib/utils/throttler.spec.d.ts +0 -2
  780. package/lib/utils/throttler.spec.d.ts.map +0 -1
  781. package/lib/utils/throttler.spec.js +0 -53
  782. package/lib/utils/throttler.spec.js.map +0 -1
  783. package/lib/utils/waiter.d.ts +0 -94
  784. package/lib/utils/waiter.d.ts.map +0 -1
  785. package/lib/utils/waiter.js +0 -148
  786. package/lib/utils/waiter.js.map +0 -1
  787. package/lib/utils/waiter.spec.d.ts +0 -2
  788. package/lib/utils/waiter.spec.d.ts.map +0 -1
  789. package/lib/utils/waiter.spec.js +0 -98
  790. package/lib/utils/waiter.spec.js.map +0 -1
  791. package/test/jsonutils/mdocs.yaml +0 -56
  792. package/test/jsonutils/test.json +0 -3
  793. package/test/jsonutils/test.yml +0 -5
@@ -0,0 +1,220 @@
1
+ import * as nodemailer from "nodemailer";
2
+ import { NotificationService } from "./notificationservice.service.js";
3
+ import { Service } from "./service.js";
4
+ import { Counter } from "../metrics/metrics.js";
5
+ import type { User } from "../models/user.model.js";
6
+ import type { Ident } from "../models/ident.model.js";
7
+ import { ServiceParameters } from "../services/serviceparameters.js";
8
+ import { ServicePartialParameters } from "./iservice.js";
9
+ /**
10
+ * Interface for an email template that can render subject, html and text
11
+ */
12
+ interface IEmailTemplate {
13
+ /**
14
+ * Render all template variants (subject, html, text) for the given file
15
+ *
16
+ * @param file - Template file name to render
17
+ * @param options - Template variables for rendering
18
+ * @returns Rendered result with subject, html and text properties
19
+ */
20
+ renderAll(file: string, options: any): any;
21
+ }
22
+ /**
23
+ * Map of template names to their email template instances
24
+ */
25
+ interface TemplatesMap {
26
+ [key: string]: IEmailTemplate;
27
+ }
28
+ /**
29
+ * Represent a mailer service
30
+ */
31
+ export interface MailerService extends NotificationService {
32
+ /**
33
+ * Send an email
34
+ *
35
+ * @param options - Options to pass to the sendMail option of the nodemailer module
36
+ * @param callback - Callback to pass to sendMail
37
+ * @returns Promise resolving when the email is sent
38
+ */
39
+ send(options: MailerSendOptions, callback: () => void): Promise<any>;
40
+ }
41
+ /**
42
+ * Options for sending an email, extending nodemailer's SendMailOptions
43
+ * with template support
44
+ */
45
+ interface MailerSendOptions extends nodemailer.SendMailOptions {
46
+ /**
47
+ * Sender of the email
48
+ *
49
+ * @default parameters.sender
50
+ */
51
+ from?: nodemailer.SendMailOptions["from"];
52
+ /**
53
+ * Template to use
54
+ */
55
+ template?: string;
56
+ /**
57
+ * Replacements for the template
58
+ */
59
+ replacements?: Record<string, any>;
60
+ }
61
+ /**
62
+ * Parameters for the Mailer service configuration
63
+ *
64
+ * Configures the email transport, templates directory and template engine
65
+ */
66
+ export declare class MailerParameters extends ServiceParameters {
67
+ /**
68
+ * Specify which folder contains templates
69
+ *
70
+ * @default "templates"
71
+ */
72
+ templates?: string;
73
+ /**
74
+ * Template engine to use
75
+ *
76
+ * @default "mustache"
77
+ */
78
+ templatesEngine?: string;
79
+ /**
80
+ * Define the default sender
81
+ */
82
+ sender: string;
83
+ /**
84
+ * @see https://www.npmjs.com/package/email-templates
85
+ */
86
+ emailTemplateOptions?: any;
87
+ /**
88
+ * Define the type of transport to use
89
+ */
90
+ transport?: string;
91
+ /**
92
+ * SES AWS Bean if transport === "ses"
93
+ */
94
+ SES?: any;
95
+ /**
96
+ * Load and apply defaults to the mailer parameters
97
+ *
98
+ * Sets default templates directory to "./templates/", engine to "mustache",
99
+ * and configures juice resource options for CSS inlining
100
+ *
101
+ * @param params - Raw parameters to load
102
+ * @returns this instance with defaults applied
103
+ */
104
+ load(params?: any): this;
105
+ }
106
+ /**
107
+ * Abstract base class for mailer implementations
108
+ *
109
+ * Provides metrics tracking (sent/errors counters) and notification handling.
110
+ * Subclasses must implement {@link send} and {@link hasNotification}.
111
+ *
112
+ * @typeParam T - Service parameters type
113
+ */
114
+ export declare abstract class AbstractMailer<T extends ServiceParameters = ServiceParameters> extends Service<T> implements MailerService {
115
+ /**
116
+ * Mailer metrics for tracking sent emails and errors
117
+ */
118
+ metrics: {
119
+ sent: Counter;
120
+ errors: Counter;
121
+ };
122
+ /**
123
+ * @override
124
+ */
125
+ initMetrics(): void;
126
+ /**
127
+ * @inheritdoc
128
+ */
129
+ abstract send(options: MailerSendOptions, callback?: () => void): Promise<any>;
130
+ /**
131
+ * @inheritdoc
132
+ */
133
+ abstract hasNotification(notification: string): any;
134
+ /**
135
+ * Check if notifications can be delivered to a user via email
136
+ *
137
+ * @param user - User or Ident to check for email availability
138
+ * @returns true if the user has an email address
139
+ */
140
+ handleNotificationFor(user: User | Ident): Promise<boolean>;
141
+ /**
142
+ * Send a notification email to a user
143
+ *
144
+ * Resolves the user's email, increments the sent metric, and delegates
145
+ * to {@link send}. Increments the error metric on failure.
146
+ *
147
+ * @param user - User or Ident to send the notification to
148
+ * @param notification - Template name for the notification
149
+ * @param replacements - Template variables for rendering
150
+ * @throws Error if the user has no valid email address
151
+ * @override
152
+ */
153
+ sendNotification(user: User | Ident, notification: string, replacements: any): Promise<void>;
154
+ }
155
+ /**
156
+ * A basic Mailer based on the nodemailer module
157
+ *
158
+ * Inside config it is the nodemailer module option for the method createTransport ( https://nodemailer.com/ )
159
+ *
160
+ * Only ses transport module is installed by default
161
+ *
162
+ * Parameters
163
+ * config: { ... }
164
+ * @category CoreServices
165
+ * @WebdaModda
166
+ */
167
+ declare class Mailer<T extends MailerParameters = MailerParameters> extends AbstractMailer<T> {
168
+ /** Nodemailer transport instance used to send emails */
169
+ _transporter: any;
170
+ /** Cache of loaded email template instances by name */
171
+ _templates: TemplatesMap;
172
+ /**
173
+ * Load and instantiate mailer parameters with defaults
174
+ *
175
+ * @param params - Raw service parameters
176
+ * @returns Loaded MailerParameters instance
177
+ * @ignore
178
+ */
179
+ loadParameters(params: ServicePartialParameters<T>): T;
180
+ /**
181
+ * Initialize the nodemailer transport from the service parameters
182
+ *
183
+ * @returns this instance after transport creation
184
+ * @override
185
+ */
186
+ init(): Promise<this>;
187
+ /**
188
+ * Get or create a cached email template instance by name
189
+ *
190
+ * Lazily creates and caches an Email template using the configured
191
+ * templates directory and engine. Logs a warning if the template does not exist.
192
+ *
193
+ * @param name - Template name (must correspond to a directory in the templates folder)
194
+ * @returns The email template instance, or undefined if the template does not exist
195
+ */
196
+ _getTemplate(name: string): IEmailTemplate;
197
+ /**
198
+ * Check if an email template exists on the filesystem
199
+ *
200
+ * @param name - Template name to check
201
+ * @returns true if the template directory exists
202
+ */
203
+ hasNotification(name: string): boolean;
204
+ /**
205
+ * Send an email using the configured nodemailer transport
206
+ *
207
+ * If a template is specified in options, it will be rendered with the
208
+ * provided replacements before sending. A `now` Date variable is
209
+ * automatically added to replacements. Falls back to `parameters.sender`
210
+ * if no `from` is provided.
211
+ *
212
+ * @param options - Mail options including optional template and replacements
213
+ * @param callback - Optional callback passed to nodemailer's sendMail
214
+ * @returns Promise resolving with the nodemailer send result
215
+ * @throws Error if no transporter is configured or the template is unknown
216
+ */
217
+ send(options: MailerSendOptions, callback?: any): Promise<any>;
218
+ }
219
+ export { Mailer, type TemplatesMap, type IEmailTemplate };
220
+ //# sourceMappingURL=mailer.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailer.service.d.ts","sourceRoot":"","sources":["../../src/services/mailer.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,251 @@
1
+ import Email from "email-templates";
2
+ import * as fs from "fs";
3
+ import * as nodemailer from "nodemailer";
4
+ import * as path from "path";
5
+ import { Service } from "./service.js";
6
+ import { Counter } from "../metrics/metrics.js";
7
+ import { ServiceParameters } from "../services/serviceparameters.js";
8
+ /**
9
+ * Parameters for the Mailer service configuration
10
+ *
11
+ * Configures the email transport, templates directory and template engine
12
+ */
13
+ export class MailerParameters extends ServiceParameters {
14
+ /**
15
+ * Specify which folder contains templates
16
+ *
17
+ * @default "templates"
18
+ */
19
+ templates;
20
+ /**
21
+ * Template engine to use
22
+ *
23
+ * @default "mustache"
24
+ */
25
+ templatesEngine;
26
+ /**
27
+ * Define the default sender
28
+ */
29
+ sender;
30
+ /**
31
+ * @see https://www.npmjs.com/package/email-templates
32
+ */
33
+ emailTemplateOptions;
34
+ /**
35
+ * Define the type of transport to use
36
+ */
37
+ transport;
38
+ /**
39
+ * SES AWS Bean if transport === "ses"
40
+ */
41
+ SES;
42
+ /**
43
+ * Load and apply defaults to the mailer parameters
44
+ *
45
+ * Sets default templates directory to "./templates/", engine to "mustache",
46
+ * and configures juice resource options for CSS inlining
47
+ *
48
+ * @param params - Raw parameters to load
49
+ * @returns this instance with defaults applied
50
+ */
51
+ load(params = {}) {
52
+ super.load(params);
53
+ this.templates ??= "./templates";
54
+ if (!this.templates.endsWith("/")) {
55
+ this.templates += "/";
56
+ }
57
+ this.templatesEngine ??= "mustache";
58
+ this.emailTemplateOptions ??= {};
59
+ this.emailTemplateOptions.juiceResources ??= {};
60
+ this.emailTemplateOptions.juiceResources.webResources ??= {};
61
+ this.emailTemplateOptions.juiceResources.webResources.relativeTo ??= path.resolve(this.templates);
62
+ return this;
63
+ }
64
+ }
65
+ /**
66
+ * Abstract base class for mailer implementations
67
+ *
68
+ * Provides metrics tracking (sent/errors counters) and notification handling.
69
+ * Subclasses must implement {@link send} and {@link hasNotification}.
70
+ *
71
+ * @typeParam T - Service parameters type
72
+ */
73
+ export class AbstractMailer extends Service {
74
+ /**
75
+ * @override
76
+ */
77
+ initMetrics() {
78
+ super.initMetrics();
79
+ this.metrics.sent = this.getMetric(Counter, {
80
+ name: "mailer_sent",
81
+ help: "Number of emails sent"
82
+ });
83
+ this.metrics.errors ??= this.getMetric(Counter, {
84
+ name: "mailer_errors",
85
+ help: "Number of emails in error"
86
+ });
87
+ }
88
+ /**
89
+ * Check if notifications can be delivered to a user via email
90
+ *
91
+ * @param user - User or Ident to check for email availability
92
+ * @returns true if the user has an email address
93
+ */
94
+ async handleNotificationFor(user) {
95
+ return user.getEmail() !== undefined;
96
+ }
97
+ /**
98
+ * Send a notification email to a user
99
+ *
100
+ * Resolves the user's email, increments the sent metric, and delegates
101
+ * to {@link send}. Increments the error metric on failure.
102
+ *
103
+ * @param user - User or Ident to send the notification to
104
+ * @param notification - Template name for the notification
105
+ * @param replacements - Template variables for rendering
106
+ * @throws Error if the user has no valid email address
107
+ * @override
108
+ */
109
+ async sendNotification(user, notification, replacements) {
110
+ const email = user.getEmail();
111
+ if (!email) {
112
+ throw new Error(`Cannot find a valid email for ${user}`);
113
+ }
114
+ this.metrics.sent.inc();
115
+ try {
116
+ await this.send({
117
+ template: notification,
118
+ replacements: {
119
+ ...replacements
120
+ },
121
+ to: email
122
+ });
123
+ }
124
+ catch (err) {
125
+ this.metrics.errors.inc();
126
+ throw err;
127
+ }
128
+ }
129
+ }
130
+ /**
131
+ * A basic Mailer based on the nodemailer module
132
+ *
133
+ * Inside config it is the nodemailer module option for the method createTransport ( https://nodemailer.com/ )
134
+ *
135
+ * Only ses transport module is installed by default
136
+ *
137
+ * Parameters
138
+ * config: { ... }
139
+ * @category CoreServices
140
+ * @WebdaModda
141
+ */
142
+ class Mailer extends AbstractMailer {
143
+ /** Nodemailer transport instance used to send emails */
144
+ _transporter;
145
+ /** Cache of loaded email template instances by name */
146
+ _templates = {};
147
+ /**
148
+ * Load and instantiate mailer parameters with defaults
149
+ *
150
+ * @param params - Raw service parameters
151
+ * @returns Loaded MailerParameters instance
152
+ * @ignore
153
+ */
154
+ loadParameters(params) {
155
+ return new MailerParameters().load(params);
156
+ }
157
+ /**
158
+ * Initialize the nodemailer transport from the service parameters
159
+ *
160
+ * @returns this instance after transport creation
161
+ * @override
162
+ */
163
+ async init() {
164
+ this._transporter = nodemailer.createTransport(this.parameters);
165
+ return this;
166
+ }
167
+ /**
168
+ * Get or create a cached email template instance by name
169
+ *
170
+ * Lazily creates and caches an Email template using the configured
171
+ * templates directory and engine. Logs a warning if the template does not exist.
172
+ *
173
+ * @param name - Template name (must correspond to a directory in the templates folder)
174
+ * @returns The email template instance, or undefined if the template does not exist
175
+ */
176
+ _getTemplate(name) {
177
+ if (!this._templates[name]) {
178
+ if (!this.hasNotification(name)) {
179
+ this.log("WARN", "No template found for", name);
180
+ return;
181
+ }
182
+ this._templates[name] = new Email({
183
+ ...this.parameters.emailTemplateOptions,
184
+ views: {
185
+ root: this.parameters.templates,
186
+ options: {
187
+ extension: this.parameters.templatesEngine
188
+ }
189
+ }
190
+ });
191
+ }
192
+ return this._templates[name];
193
+ }
194
+ /**
195
+ * Check if an email template exists on the filesystem
196
+ *
197
+ * @param name - Template name to check
198
+ * @returns true if the template directory exists
199
+ */
200
+ hasNotification(name) {
201
+ // Load template
202
+ return fs.existsSync(this.parameters.templates + name);
203
+ }
204
+ /**
205
+ * Send an email using the configured nodemailer transport
206
+ *
207
+ * If a template is specified in options, it will be rendered with the
208
+ * provided replacements before sending. A `now` Date variable is
209
+ * automatically added to replacements. Falls back to `parameters.sender`
210
+ * if no `from` is provided.
211
+ *
212
+ * @param options - Mail options including optional template and replacements
213
+ * @param callback - Optional callback passed to nodemailer's sendMail
214
+ * @returns Promise resolving with the nodemailer send result
215
+ * @throws Error if no transporter is configured or the template is unknown
216
+ */
217
+ async send(options, callback = undefined) {
218
+ if (this._transporter === undefined) {
219
+ this.log("ERROR", "Cannot send email as no transporter is defined");
220
+ return Promise.reject("Cannot send email as no transporter is defined");
221
+ }
222
+ if (!options.from) {
223
+ options.from = this.parameters.sender;
224
+ }
225
+ if (options.template) {
226
+ if (!options.replacements) {
227
+ options.replacements = {};
228
+ }
229
+ options.replacements.now = new Date();
230
+ const template = this._getTemplate(options.template);
231
+ if (template) {
232
+ const result = await template.renderAll(options.template, options.replacements);
233
+ if (result.subject) {
234
+ options.subject = result.subject;
235
+ }
236
+ if (result.html) {
237
+ options.html = result.html;
238
+ }
239
+ if (result.text) {
240
+ options.text = result.text;
241
+ }
242
+ }
243
+ else {
244
+ throw Error("Unknown mail template");
245
+ }
246
+ }
247
+ return this._transporter.sendMail(options, callback);
248
+ }
249
+ }
250
+ export { Mailer };
251
+ //# sourceMappingURL=mailer.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailer.service.js","sourceRoot":"","sources":["../../src/services/mailer.service.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
- import { Ident } from "../models/ident.js";
2
- import { User } from "../models/user.js";
3
- import { Service, ServiceParameters } from "./service.js";
1
+ import { ServiceName } from "../core/hooks.js";
2
+ import { AbstractService } from "../core/icore.js";
3
+ import type { Ident } from "../models/ident.model.js";
4
+ import type { User } from "../models/user.model.js";
5
+ import { ServiceParameters } from "../services/serviceparameters.js";
6
+ import { Service } from "./service.js";
4
7
  /**
5
8
  * Define a service that can notify a user based on his info
6
9
  * It can use email or SMS or any other media
7
10
  */
8
- export interface NotificationService {
11
+ export interface NotificationService extends AbstractService {
9
12
  /**
10
13
  * Check if this type of notification is available
11
14
  */
@@ -33,7 +36,7 @@ export declare class MultiNotificationParameters extends ServiceParameters {
33
36
  * When multiple is `false` the first available NotificationService will
34
37
  * be used, otherwise every available NotificationService will be used
35
38
  */
36
- senders: string[];
39
+ senders: ServiceName[];
37
40
  /**
38
41
  * Define if it sends one or several notification per user
39
42
  * @default false
@@ -42,7 +45,7 @@ export declare class MultiNotificationParameters extends ServiceParameters {
42
45
  /**
43
46
  * @override
44
47
  */
45
- constructor(params: any);
48
+ load(params?: any): this;
46
49
  }
47
50
  /**
48
51
  * Allow an aggregation of Notification to send via multiple media
@@ -52,10 +55,6 @@ export declare class MultiNotificationParameters extends ServiceParameters {
52
55
  */
53
56
  export default class MultiNotificationService<T extends MultiNotificationParameters = MultiNotificationParameters> extends Service<T> implements NotificationService {
54
57
  senders: NotificationService[];
55
- /**
56
- * @override
57
- */
58
- loadParameters(params: any): MultiNotificationParameters;
59
58
  /**
60
59
  * @override
61
60
  */
@@ -74,4 +73,4 @@ export default class MultiNotificationService<T extends MultiNotificationParamet
74
73
  hasNotification(notification: string): Promise<boolean>;
75
74
  }
76
75
  export { MultiNotificationService };
77
- //# sourceMappingURL=notificationservice.d.ts.map
76
+ //# sourceMappingURL=notificationservice.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notificationservice.service.d.ts","sourceRoot":"","sources":["../../src/services/notificationservice.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiC,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD;;;OAGG;IACH,qBAAqB,CAAC,WAAW,EAAE,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9F;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,iBAAiB;IAChE;;;;;OAKG;IACH,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,MAAM,GAAE,GAAQ,GAAG,IAAI,CAK3B;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAwB,CAAC,CAAC,SAAS,2BAA2B,GAAG,2BAA2B,CAC/G,SAAQ,OAAO,CAAC,CAAC,CACjB,YAAW,mBAAmB;IAE9B,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAE/B;;OAEG;IACH,OAAO,IAAI,IAAI,CAWd;IAED;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBjG;IAED;;OAEG;IACG,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAEhE;IAED;;OAEG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5D;CACF;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,14 +1,30 @@
1
- import { Service, ServiceParameters } from "./service.js";
1
+ import { useDynamicService } from "../core/hooks.js";
2
+ import { ServiceParameters } from "../services/serviceparameters.js";
3
+ import { Service } from "./service.js";
2
4
  /**
3
5
  * Parameters for multi notification service
4
6
  */
5
7
  export class MultiNotificationParameters extends ServiceParameters {
8
+ /**
9
+ * Notification service that will send
10
+ * The order of the array is important if multiple is false
11
+ * When multiple is `false` the first available NotificationService will
12
+ * be used, otherwise every available NotificationService will be used
13
+ */
14
+ senders;
15
+ /**
16
+ * Define if it sends one or several notification per user
17
+ * @default false
18
+ */
19
+ multiple;
6
20
  /**
7
21
  * @override
8
22
  */
9
- constructor(params) {
10
- super(params);
11
- this.senders ?? (this.senders = []);
23
+ load(params = {}) {
24
+ super.load(params);
25
+ this.senders ??= [];
26
+ this.multiple ??= false;
27
+ return this;
12
28
  }
13
29
  }
14
30
  /**
@@ -18,19 +34,15 @@ export class MultiNotificationParameters extends ServiceParameters {
18
34
  * @WebdaModda
19
35
  */
20
36
  export default class MultiNotificationService extends Service {
21
- /**
22
- * @override
23
- */
24
- loadParameters(params) {
25
- return new MultiNotificationParameters(params);
26
- }
37
+ senders;
27
38
  /**
28
39
  * @override
29
40
  */
30
41
  resolve() {
31
42
  super.resolve();
43
+ console.log("resolve", this.parameters.senders);
32
44
  this.senders = this.parameters.senders.map(s => {
33
- const service = this.getService(s);
45
+ const service = useDynamicService(s);
34
46
  if (!service) {
35
47
  throw new Error(`Unknown service '${s}'`);
36
48
  }
@@ -69,4 +81,4 @@ export default class MultiNotificationService extends Service {
69
81
  }
70
82
  }
71
83
  export { MultiNotificationService };
72
- //# sourceMappingURL=notificationservice.js.map
84
+ //# sourceMappingURL=notificationservice.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notificationservice.service.js","sourceRoot":"","sources":["../../src/services/notificationservice.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { Service } from "./service.js";
2
+ import { ServiceParameters } from "./serviceparameters.js";
3
+ import { OperationDefinition } from "../core/icore.js";
4
+ /**
5
+ * Parameters for transports that selectively expose operations based on include/exclude patterns
6
+ */
7
+ export declare class OperationsTransportParameters extends ServiceParameters {
8
+ /**
9
+ * List of operations to include/exclude
10
+ * Supports wildcards and negation: ["*", "!User.Delete"]
11
+ * @default ["*"]
12
+ */
13
+ operations?: string[];
14
+ /**
15
+ * Parsed exclude list
16
+ * @SchemaIgnore
17
+ */
18
+ private excludedOperations;
19
+ /**
20
+ * Load parameters and parse the include/exclude lists
21
+ * @param params - the service parameters
22
+ * @returns this for chaining
23
+ */
24
+ load(params?: any): this;
25
+ /**
26
+ * Check if an operation matches a pattern (supports trailing wildcard)
27
+ * @param operationId - the operation identifier
28
+ * @param pattern - the pattern to match against
29
+ * @returns true if the operation matches the pattern
30
+ */
31
+ private matchesPattern;
32
+ /**
33
+ * Check if an operation is included by this transport
34
+ * @param operationId - the operation identifier
35
+ * @returns true if the operation is included
36
+ */
37
+ isIncluded(operationId: string): boolean;
38
+ }
39
+ /**
40
+ * Abstract base class for transports that expose operations via a specific protocol (REST, GraphQL, gRPC, etc.).
41
+ * Reads from the operation registry during init() and calls exposeOperation() for each visible operation.
42
+ */
43
+ export declare abstract class OperationsTransport<T extends OperationsTransportParameters = OperationsTransportParameters> extends Service<T> {
44
+ /**
45
+ * Get all registered operations, filtered by this transport's include/exclude config
46
+ * @returns filtered map of operation id to definition
47
+ */
48
+ getOperations(): Record<string, OperationDefinition>;
49
+ /**
50
+ * Initialize the transport by exposing all non-hidden operations
51
+ * @returns this for chaining
52
+ */
53
+ init(): Promise<this>;
54
+ /**
55
+ * Walk the filtered operations and call exposeOperation for each non-hidden one
56
+ */
57
+ protected initTransport(): void;
58
+ /**
59
+ * Expose a single operation via the transport's protocol
60
+ * @param operationId - the operation identifier
61
+ * @param definition - the operation definition
62
+ */
63
+ abstract exposeOperation(operationId: string, definition: OperationDefinition): void;
64
+ }
65
+ //# sourceMappingURL=operationstransport.d.ts.map