@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
@@ -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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"}