zibri 2.2.1 → 2.3.0

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 (887) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/application.d.ts +23 -21
  3. package/dist/cjs/application.d.ts.map +1 -1
  4. package/dist/cjs/application.js +221 -76
  5. package/dist/cjs/application.js.map +1 -1
  6. package/dist/cjs/assets/asset-service.interface.d.ts +4 -17
  7. package/dist/cjs/assets/asset-service.interface.d.ts.map +1 -1
  8. package/dist/cjs/assets/asset.service.d.ts +7 -8
  9. package/dist/cjs/assets/asset.service.d.ts.map +1 -1
  10. package/dist/cjs/assets/asset.service.js +10 -6
  11. package/dist/cjs/assets/asset.service.js.map +1 -1
  12. package/dist/cjs/auth/2fa/methods/otp/otp-credentials.model.js +1 -1
  13. package/dist/cjs/auth/2fa/methods/otp/otp-credentials.model.js.map +1 -1
  14. package/dist/cjs/auth/2fa/methods/otp/otp.two-factor-method.d.ts +4 -3
  15. package/dist/cjs/auth/2fa/methods/otp/otp.two-factor-method.d.ts.map +1 -1
  16. package/dist/cjs/auth/2fa/methods/otp/otp.two-factor-method.js +6 -17
  17. package/dist/cjs/auth/2fa/methods/otp/otp.two-factor-method.js.map +1 -1
  18. package/dist/cjs/auth/2fa/methods/two-factor-method.interface.d.ts +6 -4
  19. package/dist/cjs/auth/2fa/methods/two-factor-method.interface.d.ts.map +1 -1
  20. package/dist/cjs/auth/2fa/methods/two-factor-method.interface.js +21 -0
  21. package/dist/cjs/auth/2fa/methods/two-factor-method.interface.js.map +1 -1
  22. package/dist/cjs/auth/2fa/two-factor-service.interface.d.ts +0 -4
  23. package/dist/cjs/auth/2fa/two-factor-service.interface.d.ts.map +1 -1
  24. package/dist/cjs/auth/2fa/two-factor.service.d.ts +7 -8
  25. package/dist/cjs/auth/2fa/two-factor.service.d.ts.map +1 -1
  26. package/dist/cjs/auth/2fa/two-factor.service.js +26 -10
  27. package/dist/cjs/auth/2fa/two-factor.service.js.map +1 -1
  28. package/dist/cjs/auth/auth-service.interface.d.ts +0 -4
  29. package/dist/cjs/auth/auth-service.interface.d.ts.map +1 -1
  30. package/dist/cjs/auth/auth.service.d.ts +9 -10
  31. package/dist/cjs/auth/auth.service.d.ts.map +1 -1
  32. package/dist/cjs/auth/auth.service.js +28 -13
  33. package/dist/cjs/auth/auth.service.js.map +1 -1
  34. package/dist/cjs/auth/models/password-reset-token.model.js +1 -1
  35. package/dist/cjs/auth/models/password-reset-token.model.js.map +1 -1
  36. package/dist/cjs/auth/strategies/auth-strategy.interface.d.ts +7 -4
  37. package/dist/cjs/auth/strategies/auth-strategy.interface.d.ts.map +1 -1
  38. package/dist/cjs/auth/strategies/auth-strategy.interface.js +28 -0
  39. package/dist/cjs/auth/strategies/auth-strategy.interface.js.map +1 -1
  40. package/dist/cjs/auth/strategies/jwt/jwt-auth.controller.d.ts +13 -0
  41. package/dist/cjs/auth/strategies/jwt/jwt-auth.controller.d.ts.map +1 -1
  42. package/dist/cjs/auth/strategies/jwt/jwt-auth.controller.js +1 -1
  43. package/dist/cjs/auth/strategies/jwt/jwt-auth.controller.js.map +1 -1
  44. package/dist/cjs/auth/strategies/jwt/jwt-credentials.model.js +1 -1
  45. package/dist/cjs/auth/strategies/jwt/jwt-credentials.model.js.map +1 -1
  46. package/dist/cjs/auth/strategies/jwt/jwt-refresh-token.model.js +1 -1
  47. package/dist/cjs/auth/strategies/jwt/jwt-refresh-token.model.js.map +1 -1
  48. package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.d.ts +15 -10
  49. package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.d.ts.map +1 -1
  50. package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.js +61 -52
  51. package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.js.map +1 -1
  52. package/dist/cjs/auth/user/user.service.d.ts.map +1 -1
  53. package/dist/cjs/auth/user/user.service.js +12 -2
  54. package/dist/cjs/auth/user/user.service.js.map +1 -1
  55. package/dist/cjs/backup/backup-entity.model.js +1 -1
  56. package/dist/cjs/backup/backup-entity.model.js.map +1 -1
  57. package/dist/cjs/backup/backup-resource-entity.model.js +1 -1
  58. package/dist/cjs/backup/backup-resource-entity.model.js.map +1 -1
  59. package/dist/cjs/backup/backup-service.interface.d.ts +0 -4
  60. package/dist/cjs/backup/backup-service.interface.d.ts.map +1 -1
  61. package/dist/cjs/backup/backup.service.d.ts +9 -3
  62. package/dist/cjs/backup/backup.service.d.ts.map +1 -1
  63. package/dist/cjs/backup/backup.service.js +37 -7
  64. package/dist/cjs/backup/backup.service.js.map +1 -1
  65. package/dist/cjs/backup/transports/fs.backup-transport.d.ts +3 -3
  66. package/dist/cjs/backup/transports/fs.backup-transport.d.ts.map +1 -1
  67. package/dist/cjs/backup/transports/fs.backup-transport.js.map +1 -1
  68. package/dist/cjs/change-sets/change-set-repository.d.ts +2 -2
  69. package/dist/cjs/change-sets/change-set-repository.d.ts.map +1 -1
  70. package/dist/cjs/change-sets/change-set-repository.js +8 -7
  71. package/dist/cjs/change-sets/change-set-repository.js.map +1 -1
  72. package/dist/cjs/cron/cron-job.model.d.ts +6 -1
  73. package/dist/cjs/cron/cron-job.model.d.ts.map +1 -1
  74. package/dist/cjs/cron/cron-job.model.js +7 -0
  75. package/dist/cjs/cron/cron-job.model.js.map +1 -1
  76. package/dist/cjs/cron/cron-service.interface.d.ts +0 -5
  77. package/dist/cjs/cron/cron-service.interface.d.ts.map +1 -1
  78. package/dist/cjs/cron/cron.service.d.ts +9 -9
  79. package/dist/cjs/cron/cron.service.d.ts.map +1 -1
  80. package/dist/cjs/cron/cron.service.js +31 -8
  81. package/dist/cjs/cron/cron.service.js.map +1 -1
  82. package/dist/cjs/data-source/data-source-service.interface.d.ts +3 -5
  83. package/dist/cjs/data-source/data-source-service.interface.d.ts.map +1 -1
  84. package/dist/cjs/data-source/data-source.service.d.ts +6 -3
  85. package/dist/cjs/data-source/data-source.service.d.ts.map +1 -1
  86. package/dist/cjs/data-source/data-source.service.js +39 -36
  87. package/dist/cjs/data-source/data-source.service.js.map +1 -1
  88. package/dist/cjs/data-source/data-sources/data-source.interface.d.ts +11 -0
  89. package/dist/cjs/data-source/data-sources/data-source.interface.d.ts.map +1 -1
  90. package/dist/cjs/data-source/data-sources/data-source.interface.js +28 -0
  91. package/dist/cjs/data-source/data-sources/data-source.interface.js.map +1 -1
  92. package/dist/cjs/data-source/data-sources/postgres-data-source.model.d.ts +4 -6
  93. package/dist/cjs/data-source/data-sources/postgres-data-source.model.d.ts.map +1 -1
  94. package/dist/cjs/data-source/data-sources/postgres-data-source.model.js +30 -8
  95. package/dist/cjs/data-source/data-sources/postgres-data-source.model.js.map +1 -1
  96. package/dist/cjs/data-source/decorators/data-source.decorator.d.ts.map +1 -1
  97. package/dist/cjs/data-source/decorators/data-source.decorator.js +0 -1
  98. package/dist/cjs/data-source/decorators/data-source.decorator.js.map +1 -1
  99. package/dist/cjs/data-source/repository.d.ts.map +1 -1
  100. package/dist/cjs/data-source/repository.js +0 -1
  101. package/dist/cjs/data-source/repository.js.map +1 -1
  102. package/dist/cjs/di/decorators/injectable.decorator.d.ts +15 -2
  103. package/dist/cjs/di/decorators/injectable.decorator.d.ts.map +1 -1
  104. package/dist/cjs/di/decorators/injectable.decorator.js +10 -4
  105. package/dist/cjs/di/decorators/injectable.decorator.js.map +1 -1
  106. package/dist/cjs/di/default/zibri-di-providers.default.d.ts.map +1 -1
  107. package/dist/cjs/di/default/zibri-di-providers.default.js +4 -6
  108. package/dist/cjs/di/default/zibri-di-providers.default.js.map +1 -1
  109. package/dist/cjs/di/default/zibri-di-tokens.default.d.ts +5 -6
  110. package/dist/cjs/di/default/zibri-di-tokens.default.d.ts.map +1 -1
  111. package/dist/cjs/di/default/zibri-di-tokens.default.js +2 -2
  112. package/dist/cjs/di/default/zibri-di-tokens.default.js.map +1 -1
  113. package/dist/cjs/di/di-container.d.ts +6 -1
  114. package/dist/cjs/di/di-container.d.ts.map +1 -1
  115. package/dist/cjs/di/di-container.js +34 -2
  116. package/dist/cjs/di/di-container.js.map +1 -1
  117. package/dist/cjs/di/errors/no-provider.error.d.ts.map +1 -1
  118. package/dist/cjs/di/errors/no-provider.error.js +2 -2
  119. package/dist/cjs/di/errors/no-provider.error.js.map +1 -1
  120. package/dist/cjs/di/get-all-registered-tokens.function.d.ts +7 -0
  121. package/dist/cjs/di/get-all-registered-tokens.function.d.ts.map +1 -0
  122. package/dist/cjs/di/get-all-registered-tokens.function.js +12 -0
  123. package/dist/cjs/di/get-all-registered-tokens.function.js.map +1 -0
  124. package/dist/cjs/di/models/di-provider.model.d.ts +3 -3
  125. package/dist/cjs/di/models/di-provider.model.d.ts.map +1 -1
  126. package/dist/cjs/di/register.function.d.ts +1 -1
  127. package/dist/cjs/di/register.function.js +2 -2
  128. package/dist/cjs/email/email-service.interface.d.ts +0 -5
  129. package/dist/cjs/email/email-service.interface.d.ts.map +1 -1
  130. package/dist/cjs/email/email.service.d.ts +9 -12
  131. package/dist/cjs/email/email.service.d.ts.map +1 -1
  132. package/dist/cjs/email/email.service.js +33 -14
  133. package/dist/cjs/email/email.service.js.map +1 -1
  134. package/dist/cjs/email/models/email-attachment.model.d.ts +2 -2
  135. package/dist/cjs/email/models/email-attachment.model.d.ts.map +1 -1
  136. package/dist/cjs/email/models/email-attachment.model.js.map +1 -1
  137. package/dist/cjs/email/send-queued-emails.cron-job.d.ts +3 -0
  138. package/dist/cjs/email/send-queued-emails.cron-job.d.ts.map +1 -1
  139. package/dist/cjs/email/send-queued-emails.cron-job.js +15 -5
  140. package/dist/cjs/email/send-queued-emails.cron-job.js.map +1 -1
  141. package/dist/cjs/entity/decorators/entity.decorator.d.ts +6 -2
  142. package/dist/cjs/entity/decorators/entity.decorator.d.ts.map +1 -1
  143. package/dist/cjs/entity/decorators/entity.decorator.js +5 -3
  144. package/dist/cjs/entity/decorators/entity.decorator.js.map +1 -1
  145. package/dist/cjs/entity/generation/generate-entity-files-for-provider.function.d.ts +2 -2
  146. package/dist/cjs/entity/generation/generate-entity-files-for-provider.function.d.ts.map +1 -1
  147. package/dist/cjs/entity/generation/generate-entity-files-for-provider.function.js.map +1 -1
  148. package/dist/cjs/entity/generation/generate-entity-files.function.js.map +1 -1
  149. package/dist/cjs/entity/generation/providers/open-api-file.provider.d.ts +3 -3
  150. package/dist/cjs/entity/generation/providers/open-api-file.provider.d.ts.map +1 -1
  151. package/dist/cjs/entity/generation/providers/open-api-file.provider.js.map +1 -1
  152. package/dist/cjs/error-handling/error-handler.js +1 -1
  153. package/dist/cjs/error-handling/error-handler.js.map +1 -1
  154. package/dist/cjs/error-handling/errors/http.error.d.ts +0 -5
  155. package/dist/cjs/error-handling/errors/http.error.d.ts.map +1 -1
  156. package/dist/cjs/error-handling/errors/http.error.js +1 -5
  157. package/dist/cjs/error-handling/errors/http.error.js.map +1 -1
  158. package/dist/cjs/error-handling/errors/missing-tokens.error.d.ts +8 -0
  159. package/dist/cjs/error-handling/errors/missing-tokens.error.d.ts.map +1 -0
  160. package/dist/cjs/error-handling/errors/missing-tokens.error.js +22 -0
  161. package/dist/cjs/error-handling/errors/missing-tokens.error.js.map +1 -0
  162. package/dist/cjs/global/after-app-init.interface.d.ts +26 -0
  163. package/dist/cjs/global/after-app-init.interface.d.ts.map +1 -0
  164. package/dist/cjs/global/after-app-init.interface.js +24 -0
  165. package/dist/cjs/global/after-app-init.interface.js.map +1 -0
  166. package/dist/cjs/global/after-app-shutdown.interface.d.ts +29 -0
  167. package/dist/cjs/global/after-app-shutdown.interface.d.ts.map +1 -0
  168. package/dist/cjs/global/after-app-shutdown.interface.js +24 -0
  169. package/dist/cjs/global/after-app-shutdown.interface.js.map +1 -0
  170. package/dist/cjs/global/app-state.enum.d.ts +11 -0
  171. package/dist/cjs/global/app-state.enum.d.ts.map +1 -0
  172. package/dist/cjs/global/app-state.enum.js +15 -0
  173. package/dist/cjs/global/app-state.enum.js.map +1 -0
  174. package/dist/cjs/global/before-app-init.interface.d.ts +22 -0
  175. package/dist/cjs/global/before-app-init.interface.d.ts.map +1 -0
  176. package/dist/cjs/global/before-app-init.interface.js +24 -0
  177. package/dist/cjs/global/before-app-init.interface.js.map +1 -0
  178. package/dist/cjs/global/before-app-shutdown.interface.d.ts +31 -0
  179. package/dist/cjs/global/before-app-shutdown.interface.d.ts.map +1 -0
  180. package/dist/cjs/global/before-app-shutdown.interface.js +24 -0
  181. package/dist/cjs/global/before-app-shutdown.interface.js.map +1 -0
  182. package/dist/cjs/global/global-registry.d.ts +21 -21
  183. package/dist/cjs/global/global-registry.d.ts.map +1 -1
  184. package/dist/cjs/global/global-registry.js +81 -55
  185. package/dist/cjs/global/global-registry.js.map +1 -1
  186. package/dist/cjs/global/on-app-init.interface.d.ts +16 -0
  187. package/dist/cjs/global/on-app-init.interface.d.ts.map +1 -0
  188. package/dist/cjs/global/on-app-init.interface.js +24 -0
  189. package/dist/cjs/global/on-app-init.interface.js.map +1 -0
  190. package/dist/cjs/global/on-app-shutdown.interface.d.ts +21 -0
  191. package/dist/cjs/global/on-app-shutdown.interface.d.ts.map +1 -0
  192. package/dist/cjs/global/on-app-shutdown.interface.js +24 -0
  193. package/dist/cjs/global/on-app-shutdown.interface.js.map +1 -0
  194. package/dist/cjs/global/on-app-start.interface.d.ts +16 -0
  195. package/dist/cjs/global/on-app-start.interface.d.ts.map +1 -0
  196. package/dist/cjs/global/on-app-start.interface.js +24 -0
  197. package/dist/cjs/global/on-app-start.interface.js.map +1 -0
  198. package/dist/cjs/handlebars/generate-handlebar-type-files.function.d.ts +5 -4
  199. package/dist/cjs/handlebars/generate-handlebar-type-files.function.d.ts.map +1 -1
  200. package/dist/cjs/handlebars/generate-handlebar-type-files.function.js +5 -3
  201. package/dist/cjs/handlebars/generate-handlebar-type-files.function.js.map +1 -1
  202. package/dist/cjs/handlebars/handlebar.utilities.d.ts +17 -1
  203. package/dist/cjs/handlebars/handlebar.utilities.d.ts.map +1 -1
  204. package/dist/cjs/handlebars/handlebar.utilities.js +23 -4
  205. package/dist/cjs/handlebars/handlebar.utilities.js.map +1 -1
  206. package/dist/cjs/http-client/http-client.d.ts.map +1 -1
  207. package/dist/cjs/http-client/http-client.error.d.ts +62 -0
  208. package/dist/cjs/http-client/http-client.error.d.ts.map +1 -0
  209. package/dist/cjs/http-client/http-client.error.js +48 -0
  210. package/dist/cjs/http-client/http-client.error.js.map +1 -0
  211. package/dist/cjs/http-client/http-client.js +57 -4
  212. package/dist/cjs/http-client/http-client.js.map +1 -1
  213. package/dist/cjs/index.d.ts +28 -7
  214. package/dist/cjs/index.d.ts.map +1 -1
  215. package/dist/cjs/index.js +30 -8
  216. package/dist/cjs/index.js.map +1 -1
  217. package/dist/cjs/logging/log-cleanup.cron-job.d.ts +4 -2
  218. package/dist/cjs/logging/log-cleanup.cron-job.d.ts.map +1 -1
  219. package/dist/cjs/logging/log-cleanup.cron-job.js +9 -7
  220. package/dist/cjs/logging/log-cleanup.cron-job.js.map +1 -1
  221. package/dist/cjs/logging/log.model.js +1 -1
  222. package/dist/cjs/logging/log.model.js.map +1 -1
  223. package/dist/cjs/logging/logger.d.ts +3 -2
  224. package/dist/cjs/logging/logger.d.ts.map +1 -1
  225. package/dist/cjs/logging/logger.interface.d.ts +0 -5
  226. package/dist/cjs/logging/logger.interface.d.ts.map +1 -1
  227. package/dist/cjs/logging/logger.js +4 -2
  228. package/dist/cjs/logging/logger.js.map +1 -1
  229. package/dist/cjs/logging/transport/log-to-email.function.d.ts +2 -1
  230. package/dist/cjs/logging/transport/log-to-email.function.d.ts.map +1 -1
  231. package/dist/cjs/logging/transport/log-to-email.function.js +3 -17
  232. package/dist/cjs/logging/transport/log-to-email.function.js.map +1 -1
  233. package/dist/cjs/logging/transport/logger-transport.model.d.ts +15 -0
  234. package/dist/cjs/logging/transport/logger-transport.model.d.ts.map +1 -1
  235. package/dist/cjs/logging/transport/logger-transport.model.js.map +1 -1
  236. package/dist/cjs/metrics/metrics-service.interface.d.ts +0 -5
  237. package/dist/cjs/metrics/metrics-service.interface.d.ts.map +1 -1
  238. package/dist/cjs/metrics/metrics.service.d.ts +6 -3
  239. package/dist/cjs/metrics/metrics.service.d.ts.map +1 -1
  240. package/dist/cjs/metrics/metrics.service.js +26 -7
  241. package/dist/cjs/metrics/metrics.service.js.map +1 -1
  242. package/dist/cjs/metrics/scrape-metrics.cron-job.d.ts +3 -2
  243. package/dist/cjs/metrics/scrape-metrics.cron-job.d.ts.map +1 -1
  244. package/dist/cjs/metrics/scrape-metrics.cron-job.js +9 -7
  245. package/dist/cjs/metrics/scrape-metrics.cron-job.js.map +1 -1
  246. package/dist/cjs/multithreading/services/multithreading-service.interface.d.ts +0 -8
  247. package/dist/cjs/multithreading/services/multithreading-service.interface.d.ts.map +1 -1
  248. package/dist/cjs/multithreading/services/multithreading.service.d.ts +7 -5
  249. package/dist/cjs/multithreading/services/multithreading.service.d.ts.map +1 -1
  250. package/dist/cjs/multithreading/services/multithreading.service.js +11 -9
  251. package/dist/cjs/multithreading/services/multithreading.service.js.map +1 -1
  252. package/dist/cjs/open-api/open-api-service.interface.d.ts +0 -4
  253. package/dist/cjs/open-api/open-api-service.interface.d.ts.map +1 -1
  254. package/dist/cjs/open-api/open-api.service.d.ts +10 -4
  255. package/dist/cjs/open-api/open-api.service.d.ts.map +1 -1
  256. package/dist/cjs/open-api/open-api.service.js +44 -19
  257. package/dist/cjs/open-api/open-api.service.js.map +1 -1
  258. package/dist/cjs/parsing/body-parser.interface.d.ts +0 -5
  259. package/dist/cjs/parsing/body-parser.interface.d.ts.map +1 -1
  260. package/dist/cjs/parsing/form-data/file-response.model.d.ts +2 -2
  261. package/dist/cjs/parsing/form-data/file-response.model.d.ts.map +1 -1
  262. package/dist/cjs/parsing/form-data/file-response.model.js.map +1 -1
  263. package/dist/cjs/parsing/form-data/file.model.d.ts +2 -2
  264. package/dist/cjs/parsing/form-data/file.model.d.ts.map +1 -1
  265. package/dist/cjs/parsing/form-data/file.model.js.map +1 -1
  266. package/dist/cjs/parsing/form-data/form-data-body-parser-cleanup.cron-job.d.ts +3 -0
  267. package/dist/cjs/parsing/form-data/form-data-body-parser-cleanup.cron-job.d.ts.map +1 -1
  268. package/dist/cjs/parsing/form-data/form-data-body-parser-cleanup.cron-job.js +17 -7
  269. package/dist/cjs/parsing/form-data/form-data-body-parser-cleanup.cron-job.js.map +1 -1
  270. package/dist/cjs/parsing/form-data/form-data.body-parser.d.ts +3 -2
  271. package/dist/cjs/parsing/form-data/form-data.body-parser.d.ts.map +1 -1
  272. package/dist/cjs/parsing/form-data/form-data.body-parser.js +1 -1
  273. package/dist/cjs/parsing/form-data/form-data.body-parser.js.map +1 -1
  274. package/dist/cjs/parsing/form-data/form-data.model.d.ts +3 -3
  275. package/dist/cjs/parsing/form-data/form-data.model.d.ts.map +1 -1
  276. package/dist/cjs/parsing/form-data/form-data.model.js.map +1 -1
  277. package/dist/cjs/parsing/parser.d.ts +4 -3
  278. package/dist/cjs/parsing/parser.d.ts.map +1 -1
  279. package/dist/cjs/parsing/parser.interface.d.ts +0 -5
  280. package/dist/cjs/parsing/parser.interface.d.ts.map +1 -1
  281. package/dist/cjs/parsing/parser.js +20 -4
  282. package/dist/cjs/parsing/parser.js.map +1 -1
  283. package/dist/cjs/plugin/invoicing/invoicing.plugin.d.ts +2 -1
  284. package/dist/cjs/plugin/invoicing/invoicing.plugin.d.ts.map +1 -1
  285. package/dist/cjs/plugin/invoicing/invoicing.plugin.js +10 -8
  286. package/dist/cjs/plugin/invoicing/invoicing.plugin.js.map +1 -1
  287. package/dist/cjs/plugin/invoicing/invoicing.tokens.d.ts +1 -1
  288. package/dist/cjs/plugin/invoicing/invoicing.tokens.d.ts.map +1 -1
  289. package/dist/cjs/plugin/invoicing/invoicing.tokens.js +2 -2
  290. package/dist/cjs/plugin/invoicing/invoicing.tokens.js.map +1 -1
  291. package/dist/cjs/plugin/invoicing/models/invoice.model.js +1 -1
  292. package/dist/cjs/plugin/invoicing/models/invoice.model.js.map +1 -1
  293. package/dist/cjs/plugin/invoicing/models/number-invoices.model.js +1 -1
  294. package/dist/cjs/plugin/invoicing/models/number-invoices.model.js.map +1 -1
  295. package/dist/cjs/plugin/invoicing/services/conformance/en16931/en16931-conformance.service.js +2 -2
  296. package/dist/cjs/plugin/invoicing/services/conformance/en16931/en16931-conformance.service.js.map +1 -1
  297. package/dist/cjs/plugin/invoicing/services/conformance/en16931/peppol-conformance.service.js +1 -1
  298. package/dist/cjs/plugin/invoicing/services/conformance/en16931/peppol-conformance.service.js.map +1 -1
  299. package/dist/cjs/plugin/invoicing/services/conformance/en16931/x-rechnung-conformance.service.js +1 -1
  300. package/dist/cjs/plugin/invoicing/services/conformance/en16931/x-rechnung-conformance.service.js.map +1 -1
  301. package/dist/cjs/plugin/invoicing/services/invoice-calc.service.d.ts.map +1 -1
  302. package/dist/cjs/plugin/invoicing/services/invoice-calc.service.js +12 -2
  303. package/dist/cjs/plugin/invoicing/services/invoice-calc.service.js.map +1 -1
  304. package/dist/cjs/plugin/invoicing/services/invoice-number.service.d.ts.map +1 -1
  305. package/dist/cjs/plugin/invoicing/services/invoice-number.service.js +4 -2
  306. package/dist/cjs/plugin/invoicing/services/invoice-number.service.js.map +1 -1
  307. package/dist/cjs/plugin/invoicing/services/invoice-pdf.service.d.ts.map +1 -1
  308. package/dist/cjs/plugin/invoicing/services/invoice-pdf.service.js +5 -3
  309. package/dist/cjs/plugin/invoicing/services/invoice-pdf.service.js.map +1 -1
  310. package/dist/cjs/plugin/mailing-list/mailing-list.controller.d.ts +26 -0
  311. package/dist/cjs/plugin/mailing-list/mailing-list.controller.d.ts.map +1 -0
  312. package/dist/cjs/plugin/mailing-list/mailing-list.controller.js +132 -0
  313. package/dist/cjs/plugin/mailing-list/mailing-list.controller.js.map +1 -0
  314. package/dist/cjs/plugin/mailing-list/mailing-list.plugin.d.ts +12 -0
  315. package/dist/cjs/plugin/mailing-list/mailing-list.plugin.d.ts.map +1 -0
  316. package/dist/cjs/plugin/mailing-list/mailing-list.plugin.js +37 -0
  317. package/dist/cjs/plugin/mailing-list/mailing-list.plugin.js.map +1 -0
  318. package/dist/cjs/plugin/mailing-list/mailing-list.tokens.d.ts +20 -0
  319. package/dist/cjs/plugin/mailing-list/mailing-list.tokens.d.ts.map +1 -0
  320. package/dist/cjs/plugin/mailing-list/mailing-list.tokens.js +22 -0
  321. package/dist/cjs/plugin/mailing-list/mailing-list.tokens.js.map +1 -0
  322. package/dist/cjs/plugin/mailing-list/models/mailing-list-base-email-template.model.d.ts +35 -0
  323. package/dist/cjs/plugin/mailing-list/models/mailing-list-base-email-template.model.d.ts.map +1 -0
  324. package/dist/cjs/plugin/mailing-list/models/mailing-list-base-email-template.model.js +3 -0
  325. package/dist/cjs/plugin/mailing-list/models/mailing-list-base-email-template.model.js.map +1 -0
  326. package/dist/cjs/plugin/mailing-list/models/mailing-list-preferences-page-template.model.d.ts +26 -0
  327. package/dist/cjs/plugin/mailing-list/models/mailing-list-preferences-page-template.model.d.ts.map +1 -0
  328. package/dist/cjs/plugin/mailing-list/models/mailing-list-preferences-page-template.model.js +3 -0
  329. package/dist/cjs/plugin/mailing-list/models/mailing-list-preferences-page-template.model.js.map +1 -0
  330. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-confirmation-email-template.model.d.ts +26 -0
  331. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-confirmation-email-template.model.d.ts.map +1 -0
  332. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-confirmation-email-template.model.js +3 -0
  333. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-confirmation-email-template.model.js.map +1 -0
  334. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-success-page-template.model.d.ts +26 -0
  335. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-success-page-template.model.d.ts.map +1 -0
  336. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-success-page-template.model.js +3 -0
  337. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-success-page-template.model.js.map +1 -0
  338. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscriber.model.d.ts.map +1 -0
  339. package/dist/cjs/{email → plugin}/mailing-list/models/mailing-list-subscriber.model.js +1 -1
  340. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscriber.model.js.map +1 -0
  341. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.d.ts.map +1 -0
  342. package/dist/cjs/{email → plugin}/mailing-list/models/mailing-list-subscription-confirmation-token.model.js +1 -1
  343. package/dist/cjs/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.js.map +1 -0
  344. package/dist/cjs/plugin/mailing-list/models/mailing-list-unsubscribe-confirmation-page-template.model.d.ts +26 -0
  345. package/dist/cjs/plugin/mailing-list/models/mailing-list-unsubscribe-confirmation-page-template.model.d.ts.map +1 -0
  346. package/dist/cjs/plugin/mailing-list/models/mailing-list-unsubscribe-confirmation-page-template.model.js +3 -0
  347. package/dist/cjs/plugin/mailing-list/models/mailing-list-unsubscribe-confirmation-page-template.model.js.map +1 -0
  348. package/dist/cjs/plugin/mailing-list/models/mailing-list.model.d.ts.map +1 -0
  349. package/dist/cjs/{email → plugin}/mailing-list/models/mailing-list.model.js +1 -1
  350. package/dist/cjs/plugin/mailing-list/models/mailing-list.model.js.map +1 -0
  351. package/dist/cjs/plugin/mailing-list/models/update-mailing-list-preferences.model.d.ts.map +1 -0
  352. package/dist/cjs/plugin/mailing-list/models/update-mailing-list-preferences.model.js.map +1 -0
  353. package/dist/cjs/plugin/mailing-list/services/mailing-list-service.interface.d.ts +68 -0
  354. package/dist/cjs/plugin/mailing-list/services/mailing-list-service.interface.d.ts.map +1 -0
  355. package/dist/cjs/{email/mailing-list → plugin/mailing-list/services}/mailing-list-service.interface.js +2 -2
  356. package/dist/cjs/plugin/mailing-list/services/mailing-list-service.interface.js.map +1 -0
  357. package/dist/cjs/plugin/mailing-list/services/mailing-list.service.d.ts +36 -0
  358. package/dist/cjs/plugin/mailing-list/services/mailing-list.service.d.ts.map +1 -0
  359. package/dist/cjs/plugin/mailing-list/services/mailing-list.service.js +168 -0
  360. package/dist/cjs/plugin/mailing-list/services/mailing-list.service.js.map +1 -0
  361. package/dist/cjs/plugin/payment/models/payment-plugin-options-input.model.d.ts +2 -7
  362. package/dist/cjs/plugin/payment/models/payment-plugin-options-input.model.d.ts.map +1 -1
  363. package/dist/cjs/plugin/payment/models/payment-plugin-options.model.d.ts +2 -7
  364. package/dist/cjs/plugin/payment/models/payment-plugin-options.model.d.ts.map +1 -1
  365. package/dist/cjs/plugin/payment/models/payment.model.d.ts +4 -0
  366. package/dist/cjs/plugin/payment/models/payment.model.d.ts.map +1 -1
  367. package/dist/cjs/plugin/payment/models/payment.model.js +9 -1
  368. package/dist/cjs/plugin/payment/models/payment.model.js.map +1 -1
  369. package/dist/cjs/plugin/payment/payment.plugin.d.ts +2 -1
  370. package/dist/cjs/plugin/payment/payment.plugin.d.ts.map +1 -1
  371. package/dist/cjs/plugin/payment/payment.plugin.js +24 -10
  372. package/dist/cjs/plugin/payment/payment.plugin.js.map +1 -1
  373. package/dist/cjs/plugin/payment/payment.tokens.d.ts +17 -9
  374. package/dist/cjs/plugin/payment/payment.tokens.d.ts.map +1 -1
  375. package/dist/cjs/plugin/payment/payment.tokens.js +15 -3
  376. package/dist/cjs/plugin/payment/payment.tokens.js.map +1 -1
  377. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.d.ts +9 -2
  378. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.d.ts.map +1 -1
  379. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.js +17 -1
  380. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.js.map +1 -1
  381. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal.payment-provider.d.ts +20 -11
  382. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal.payment-provider.d.ts.map +1 -1
  383. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js +1 -7
  384. package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js.map +1 -1
  385. package/dist/cjs/plugin/payment/providers/payment-provider.interface.d.ts +49 -32
  386. package/dist/cjs/plugin/payment/providers/payment-provider.interface.d.ts.map +1 -1
  387. package/dist/cjs/plugin/payment/services/payment-service.interface.d.ts +6 -7
  388. package/dist/cjs/plugin/payment/services/payment-service.interface.d.ts.map +1 -1
  389. package/dist/cjs/plugin/payment/services/payment-service.types.d.ts +24 -44
  390. package/dist/cjs/plugin/payment/services/payment-service.types.d.ts.map +1 -1
  391. package/dist/cjs/plugin/payment/services/payment.service.d.ts +2 -6
  392. package/dist/cjs/plugin/payment/services/payment.service.d.ts.map +1 -1
  393. package/dist/cjs/plugin/payment/services/payment.service.js +8 -4
  394. package/dist/cjs/plugin/payment/services/payment.service.js.map +1 -1
  395. package/dist/cjs/plugin/plugin.model.d.ts +1 -1
  396. package/dist/cjs/preact/generate-client-scripts.function.d.ts +4 -8
  397. package/dist/cjs/preact/generate-client-scripts.function.d.ts.map +1 -1
  398. package/dist/cjs/preact/generate-client-scripts.function.js +6 -9
  399. package/dist/cjs/preact/generate-client-scripts.function.js.map +1 -1
  400. package/dist/cjs/preact/preact-email-component.model.d.ts +6 -0
  401. package/dist/cjs/preact/preact-email-component.model.d.ts.map +1 -0
  402. package/dist/cjs/preact/preact-email-component.model.js +3 -0
  403. package/dist/cjs/preact/preact-email-component.model.js.map +1 -0
  404. package/dist/cjs/preact/preact.utilities.d.ts +18 -4
  405. package/dist/cjs/preact/preact.utilities.d.ts.map +1 -1
  406. package/dist/cjs/preact/preact.utilities.js +41 -5
  407. package/dist/cjs/preact/preact.utilities.js.map +1 -1
  408. package/dist/cjs/preact/validate-email-templates.function.d.ts +5 -0
  409. package/dist/cjs/preact/validate-email-templates.function.d.ts.map +1 -0
  410. package/dist/cjs/preact/validate-email-templates.function.js +10 -0
  411. package/dist/cjs/preact/validate-email-templates.function.js.map +1 -0
  412. package/dist/cjs/routing/decorators/controller.decorator.d.ts +16 -1
  413. package/dist/cjs/routing/decorators/controller.decorator.d.ts.map +1 -1
  414. package/dist/cjs/routing/decorators/controller.decorator.js +7 -2
  415. package/dist/cjs/routing/decorators/controller.decorator.js.map +1 -1
  416. package/dist/cjs/routing/models/crud-controller.model.js.map +1 -1
  417. package/dist/cjs/routing/request.context.d.ts +1 -1
  418. package/dist/cjs/routing/request.context.d.ts.map +1 -1
  419. package/dist/cjs/routing/request.context.js +1 -4
  420. package/dist/cjs/routing/request.context.js.map +1 -1
  421. package/dist/cjs/routing/router.d.ts +12 -7
  422. package/dist/cjs/routing/router.d.ts.map +1 -1
  423. package/dist/cjs/routing/router.interface.d.ts +1 -10
  424. package/dist/cjs/routing/router.interface.d.ts.map +1 -1
  425. package/dist/cjs/routing/router.js +40 -20
  426. package/dist/cjs/routing/router.js.map +1 -1
  427. package/dist/cjs/utilities/fs.utilities.d.ts +20 -20
  428. package/dist/cjs/utilities/fs.utilities.d.ts.map +1 -1
  429. package/dist/cjs/utilities/fs.utilities.js.map +1 -1
  430. package/dist/cjs/utilities/metadata-injection-keys.enum.d.ts +3 -3
  431. package/dist/cjs/utilities/metadata-injection-keys.enum.d.ts.map +1 -1
  432. package/dist/cjs/utilities/metadata-injection-keys.enum.js +4 -3
  433. package/dist/cjs/utilities/metadata-injection-keys.enum.js.map +1 -1
  434. package/dist/cjs/utilities/metadata.utilities.d.ts +6 -5
  435. package/dist/cjs/utilities/metadata.utilities.d.ts.map +1 -1
  436. package/dist/cjs/utilities/metadata.utilities.js +16 -9
  437. package/dist/cjs/utilities/metadata.utilities.js.map +1 -1
  438. package/dist/cjs/utilities/promise.utilities.d.ts +7 -0
  439. package/dist/cjs/utilities/promise.utilities.d.ts.map +1 -1
  440. package/dist/cjs/utilities/promise.utilities.js +26 -0
  441. package/dist/cjs/utilities/promise.utilities.js.map +1 -1
  442. package/dist/cjs/utilities/validate-entities-registered.function.d.ts +3 -1
  443. package/dist/cjs/utilities/validate-entities-registered.function.d.ts.map +1 -1
  444. package/dist/cjs/utilities/validate-entities-registered.function.js +3 -3
  445. package/dist/cjs/utilities/validate-entities-registered.function.js.map +1 -1
  446. package/dist/cjs/utilities/validate-tokens-registered.function.d.ts +9 -0
  447. package/dist/cjs/utilities/validate-tokens-registered.function.d.ts.map +1 -0
  448. package/dist/cjs/utilities/validate-tokens-registered.function.js +27 -0
  449. package/dist/cjs/utilities/validate-tokens-registered.function.js.map +1 -0
  450. package/dist/cjs/validation/validation.service.d.ts.map +1 -1
  451. package/dist/cjs/validation/validation.service.js +6 -2
  452. package/dist/cjs/validation/validation.service.js.map +1 -1
  453. package/dist/cjs/websocket/decorators/websocket-controller.decorator.d.ts +8 -2
  454. package/dist/cjs/websocket/decorators/websocket-controller.decorator.d.ts.map +1 -1
  455. package/dist/cjs/websocket/decorators/websocket-controller.decorator.js +4 -2
  456. package/dist/cjs/websocket/decorators/websocket-controller.decorator.js.map +1 -1
  457. package/dist/cjs/websocket/services/websocket-service.interface.d.ts +0 -5
  458. package/dist/cjs/websocket/services/websocket-service.interface.d.ts.map +1 -1
  459. package/dist/cjs/websocket/services/websocket.service.d.ts +5 -2
  460. package/dist/cjs/websocket/services/websocket.service.d.ts.map +1 -1
  461. package/dist/cjs/websocket/services/websocket.service.js +9 -3
  462. package/dist/cjs/websocket/services/websocket.service.js.map +1 -1
  463. package/dist/esm/application.js +221 -76
  464. package/dist/esm/application.js.map +1 -1
  465. package/dist/esm/assets/asset.service.js +10 -6
  466. package/dist/esm/assets/asset.service.js.map +1 -1
  467. package/dist/esm/auth/2fa/methods/otp/otp-credentials.model.js +1 -1
  468. package/dist/esm/auth/2fa/methods/otp/otp-credentials.model.js.map +1 -1
  469. package/dist/esm/auth/2fa/methods/otp/otp.two-factor-method.js +7 -18
  470. package/dist/esm/auth/2fa/methods/otp/otp.two-factor-method.js.map +1 -1
  471. package/dist/esm/auth/2fa/methods/two-factor-method.interface.js +20 -1
  472. package/dist/esm/auth/2fa/methods/two-factor-method.interface.js.map +1 -1
  473. package/dist/esm/auth/2fa/two-factor.service.js +27 -10
  474. package/dist/esm/auth/2fa/two-factor.service.js.map +1 -1
  475. package/dist/esm/auth/auth.service.js +29 -13
  476. package/dist/esm/auth/auth.service.js.map +1 -1
  477. package/dist/esm/auth/models/password-reset-token.model.js +1 -1
  478. package/dist/esm/auth/models/password-reset-token.model.js.map +1 -1
  479. package/dist/esm/auth/strategies/auth-strategy.interface.js +27 -1
  480. package/dist/esm/auth/strategies/auth-strategy.interface.js.map +1 -1
  481. package/dist/esm/auth/strategies/jwt/jwt-auth.controller.js +1 -1
  482. package/dist/esm/auth/strategies/jwt/jwt-auth.controller.js.map +1 -1
  483. package/dist/esm/auth/strategies/jwt/jwt-credentials.model.js +1 -1
  484. package/dist/esm/auth/strategies/jwt/jwt-credentials.model.js.map +1 -1
  485. package/dist/esm/auth/strategies/jwt/jwt-refresh-token.model.js +1 -1
  486. package/dist/esm/auth/strategies/jwt/jwt-refresh-token.model.js.map +1 -1
  487. package/dist/esm/auth/strategies/jwt/jwt.auth-strategy.js +63 -53
  488. package/dist/esm/auth/strategies/jwt/jwt.auth-strategy.js.map +1 -1
  489. package/dist/esm/auth/user/user.service.js +13 -2
  490. package/dist/esm/auth/user/user.service.js.map +1 -1
  491. package/dist/esm/backup/backup-entity.model.js +1 -1
  492. package/dist/esm/backup/backup-entity.model.js.map +1 -1
  493. package/dist/esm/backup/backup-resource-entity.model.js +1 -1
  494. package/dist/esm/backup/backup-resource-entity.model.js.map +1 -1
  495. package/dist/esm/backup/backup.service.js +39 -8
  496. package/dist/esm/backup/backup.service.js.map +1 -1
  497. package/dist/esm/backup/transports/fs.backup-transport.js.map +1 -1
  498. package/dist/esm/change-sets/change-set-repository.js +8 -7
  499. package/dist/esm/change-sets/change-set-repository.js.map +1 -1
  500. package/dist/esm/cron/cron-job.model.js +7 -0
  501. package/dist/esm/cron/cron-job.model.js.map +1 -1
  502. package/dist/esm/cron/cron.service.js +32 -8
  503. package/dist/esm/cron/cron.service.js.map +1 -1
  504. package/dist/esm/data-source/data-source.service.js +40 -36
  505. package/dist/esm/data-source/data-source.service.js.map +1 -1
  506. package/dist/esm/data-source/data-sources/data-source.interface.js +27 -1
  507. package/dist/esm/data-source/data-sources/data-source.interface.js.map +1 -1
  508. package/dist/esm/data-source/data-sources/postgres-data-source.model.js +31 -8
  509. package/dist/esm/data-source/data-sources/postgres-data-source.model.js.map +1 -1
  510. package/dist/esm/data-source/decorators/data-source.decorator.js +0 -1
  511. package/dist/esm/data-source/decorators/data-source.decorator.js.map +1 -1
  512. package/dist/esm/data-source/repository.js +0 -1
  513. package/dist/esm/data-source/repository.js.map +1 -1
  514. package/dist/esm/di/decorators/injectable.decorator.js +10 -4
  515. package/dist/esm/di/decorators/injectable.decorator.js.map +1 -1
  516. package/dist/esm/di/default/zibri-di-providers.default.js +4 -6
  517. package/dist/esm/di/default/zibri-di-providers.default.js.map +1 -1
  518. package/dist/esm/di/default/zibri-di-tokens.default.js +2 -2
  519. package/dist/esm/di/default/zibri-di-tokens.default.js.map +1 -1
  520. package/dist/esm/di/di-container.js +34 -2
  521. package/dist/esm/di/di-container.js.map +1 -1
  522. package/dist/esm/di/errors/no-provider.error.js +2 -2
  523. package/dist/esm/di/errors/no-provider.error.js.map +1 -1
  524. package/dist/esm/di/get-all-registered-tokens.function.js +9 -0
  525. package/dist/esm/di/get-all-registered-tokens.function.js.map +1 -0
  526. package/dist/esm/di/register.function.js +2 -2
  527. package/dist/esm/email/email.service.js +35 -15
  528. package/dist/esm/email/email.service.js.map +1 -1
  529. package/dist/esm/email/models/email-attachment.model.js.map +1 -1
  530. package/dist/esm/email/send-queued-emails.cron-job.js +15 -5
  531. package/dist/esm/email/send-queued-emails.cron-job.js.map +1 -1
  532. package/dist/esm/entity/decorators/entity.decorator.js +5 -3
  533. package/dist/esm/entity/decorators/entity.decorator.js.map +1 -1
  534. package/dist/esm/entity/generation/generate-entity-files-for-provider.function.js.map +1 -1
  535. package/dist/esm/entity/generation/generate-entity-files.function.js.map +1 -1
  536. package/dist/esm/entity/generation/providers/open-api-file.provider.js.map +1 -1
  537. package/dist/esm/error-handling/error-handler.js +1 -1
  538. package/dist/esm/error-handling/error-handler.js.map +1 -1
  539. package/dist/esm/error-handling/errors/http.error.js +1 -5
  540. package/dist/esm/error-handling/errors/http.error.js.map +1 -1
  541. package/dist/esm/error-handling/errors/missing-tokens.error.js +18 -0
  542. package/dist/esm/error-handling/errors/missing-tokens.error.js.map +1 -0
  543. package/dist/esm/global/after-app-init.interface.js +21 -0
  544. package/dist/esm/global/after-app-init.interface.js.map +1 -0
  545. package/dist/esm/global/after-app-shutdown.interface.js +21 -0
  546. package/dist/esm/global/after-app-shutdown.interface.js.map +1 -0
  547. package/dist/esm/global/app-state.enum.js +12 -0
  548. package/dist/esm/global/app-state.enum.js.map +1 -0
  549. package/dist/esm/global/before-app-init.interface.js +21 -0
  550. package/dist/esm/global/before-app-init.interface.js.map +1 -0
  551. package/dist/esm/global/before-app-shutdown.interface.js +21 -0
  552. package/dist/esm/global/before-app-shutdown.interface.js.map +1 -0
  553. package/dist/esm/global/global-registry.js +64 -38
  554. package/dist/esm/global/global-registry.js.map +1 -1
  555. package/dist/esm/global/on-app-init.interface.js +21 -0
  556. package/dist/esm/global/on-app-init.interface.js.map +1 -0
  557. package/dist/esm/global/on-app-shutdown.interface.js +21 -0
  558. package/dist/esm/global/on-app-shutdown.interface.js.map +1 -0
  559. package/dist/esm/global/on-app-start.interface.js +21 -0
  560. package/dist/esm/global/on-app-start.interface.js.map +1 -0
  561. package/dist/esm/handlebars/generate-handlebar-type-files.function.js +5 -3
  562. package/dist/esm/handlebars/generate-handlebar-type-files.function.js.map +1 -1
  563. package/dist/esm/handlebars/handlebar.utilities.js +23 -4
  564. package/dist/esm/handlebars/handlebar.utilities.js.map +1 -1
  565. package/dist/esm/http-client/http-client.error.js +43 -0
  566. package/dist/esm/http-client/http-client.error.js.map +1 -0
  567. package/dist/esm/http-client/http-client.js +24 -1
  568. package/dist/esm/http-client/http-client.js.map +1 -1
  569. package/dist/esm/index.js +30 -8
  570. package/dist/esm/index.js.map +1 -1
  571. package/dist/esm/logging/log-cleanup.cron-job.js +10 -8
  572. package/dist/esm/logging/log-cleanup.cron-job.js.map +1 -1
  573. package/dist/esm/logging/log.model.js +1 -1
  574. package/dist/esm/logging/log.model.js.map +1 -1
  575. package/dist/esm/logging/logger.js +4 -2
  576. package/dist/esm/logging/logger.js.map +1 -1
  577. package/dist/esm/logging/transport/log-to-email.function.js +3 -17
  578. package/dist/esm/logging/transport/log-to-email.function.js.map +1 -1
  579. package/dist/esm/logging/transport/logger-transport.model.js.map +1 -1
  580. package/dist/esm/metrics/metrics.service.js +27 -7
  581. package/dist/esm/metrics/metrics.service.js.map +1 -1
  582. package/dist/esm/metrics/scrape-metrics.cron-job.js +9 -7
  583. package/dist/esm/metrics/scrape-metrics.cron-job.js.map +1 -1
  584. package/dist/esm/multithreading/services/multithreading.service.js +11 -9
  585. package/dist/esm/multithreading/services/multithreading.service.js.map +1 -1
  586. package/dist/esm/open-api/open-api.service.js +45 -19
  587. package/dist/esm/open-api/open-api.service.js.map +1 -1
  588. package/dist/esm/parsing/form-data/file-response.model.js.map +1 -1
  589. package/dist/esm/parsing/form-data/file.model.js.map +1 -1
  590. package/dist/esm/parsing/form-data/form-data-body-parser-cleanup.cron-job.js +17 -7
  591. package/dist/esm/parsing/form-data/form-data-body-parser-cleanup.cron-job.js.map +1 -1
  592. package/dist/esm/parsing/form-data/form-data.body-parser.js +1 -1
  593. package/dist/esm/parsing/form-data/form-data.body-parser.js.map +1 -1
  594. package/dist/esm/parsing/form-data/form-data.model.js.map +1 -1
  595. package/dist/esm/parsing/parser.js +21 -4
  596. package/dist/esm/parsing/parser.js.map +1 -1
  597. package/dist/esm/plugin/invoicing/invoicing.plugin.js +10 -8
  598. package/dist/esm/plugin/invoicing/invoicing.plugin.js.map +1 -1
  599. package/dist/esm/plugin/invoicing/invoicing.tokens.js +1 -1
  600. package/dist/esm/plugin/invoicing/invoicing.tokens.js.map +1 -1
  601. package/dist/esm/plugin/invoicing/models/invoice.model.js +1 -1
  602. package/dist/esm/plugin/invoicing/models/invoice.model.js.map +1 -1
  603. package/dist/esm/plugin/invoicing/models/number-invoices.model.js +1 -1
  604. package/dist/esm/plugin/invoicing/models/number-invoices.model.js.map +1 -1
  605. package/dist/esm/plugin/invoicing/services/conformance/en16931/en16931-conformance.service.js +3 -3
  606. package/dist/esm/plugin/invoicing/services/conformance/en16931/en16931-conformance.service.js.map +1 -1
  607. package/dist/esm/plugin/invoicing/services/conformance/en16931/peppol-conformance.service.js +1 -1
  608. package/dist/esm/plugin/invoicing/services/conformance/en16931/peppol-conformance.service.js.map +1 -1
  609. package/dist/esm/plugin/invoicing/services/conformance/en16931/x-rechnung-conformance.service.js +1 -1
  610. package/dist/esm/plugin/invoicing/services/conformance/en16931/x-rechnung-conformance.service.js.map +1 -1
  611. package/dist/esm/plugin/invoicing/services/invoice-calc.service.js +13 -2
  612. package/dist/esm/plugin/invoicing/services/invoice-calc.service.js.map +1 -1
  613. package/dist/esm/plugin/invoicing/services/invoice-number.service.js +4 -2
  614. package/dist/esm/plugin/invoicing/services/invoice-number.service.js.map +1 -1
  615. package/dist/esm/plugin/invoicing/services/invoice-pdf.service.js +6 -4
  616. package/dist/esm/plugin/invoicing/services/invoice-pdf.service.js.map +1 -1
  617. package/dist/esm/plugin/mailing-list/mailing-list.controller.js +129 -0
  618. package/dist/esm/plugin/mailing-list/mailing-list.controller.js.map +1 -0
  619. package/dist/esm/plugin/mailing-list/mailing-list.plugin.js +33 -0
  620. package/dist/esm/plugin/mailing-list/mailing-list.plugin.js.map +1 -0
  621. package/dist/esm/plugin/mailing-list/mailing-list.tokens.js +19 -0
  622. package/dist/esm/plugin/mailing-list/mailing-list.tokens.js.map +1 -0
  623. package/dist/esm/plugin/mailing-list/models/mailing-list-base-email-template.model.js +2 -0
  624. package/dist/esm/plugin/mailing-list/models/mailing-list-base-email-template.model.js.map +1 -0
  625. package/dist/esm/plugin/mailing-list/models/mailing-list-preferences-page-template.model.js +2 -0
  626. package/dist/esm/plugin/mailing-list/models/mailing-list-preferences-page-template.model.js.map +1 -0
  627. package/dist/esm/plugin/mailing-list/models/mailing-list-subscribe-confirmation-email-template.model.js +2 -0
  628. package/dist/esm/plugin/mailing-list/models/mailing-list-subscribe-confirmation-email-template.model.js.map +1 -0
  629. package/dist/esm/plugin/mailing-list/models/mailing-list-subscribe-success-page-template.model.js +2 -0
  630. package/dist/esm/plugin/mailing-list/models/mailing-list-subscribe-success-page-template.model.js.map +1 -0
  631. package/dist/esm/{email → plugin}/mailing-list/models/mailing-list-subscriber.model.js +1 -1
  632. package/dist/esm/plugin/mailing-list/models/mailing-list-subscriber.model.js.map +1 -0
  633. package/dist/esm/{email → plugin}/mailing-list/models/mailing-list-subscription-confirmation-token.model.js +1 -1
  634. package/dist/esm/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.js.map +1 -0
  635. package/dist/esm/plugin/mailing-list/models/mailing-list-unsubscribe-confirmation-page-template.model.js +2 -0
  636. package/dist/esm/plugin/mailing-list/models/mailing-list-unsubscribe-confirmation-page-template.model.js.map +1 -0
  637. package/dist/esm/{email → plugin}/mailing-list/models/mailing-list.model.js +1 -1
  638. package/dist/esm/plugin/mailing-list/models/mailing-list.model.js.map +1 -0
  639. package/dist/esm/plugin/mailing-list/models/update-mailing-list-preferences.model.js.map +1 -0
  640. package/dist/esm/plugin/mailing-list/services/mailing-list-service.interface.js +8 -0
  641. package/dist/esm/plugin/mailing-list/services/mailing-list-service.interface.js.map +1 -0
  642. package/dist/esm/plugin/mailing-list/services/mailing-list.service.js +165 -0
  643. package/dist/esm/plugin/mailing-list/services/mailing-list.service.js.map +1 -0
  644. package/dist/esm/plugin/payment/models/payment.model.js +9 -1
  645. package/dist/esm/plugin/payment/models/payment.model.js.map +1 -1
  646. package/dist/esm/plugin/payment/payment.plugin.js +25 -11
  647. package/dist/esm/plugin/payment/payment.plugin.js.map +1 -1
  648. package/dist/esm/plugin/payment/payment.tokens.js +14 -2
  649. package/dist/esm/plugin/payment/payment.tokens.js.map +1 -1
  650. package/dist/esm/plugin/payment/providers/pay-pal/pay-pal-client.js +17 -1
  651. package/dist/esm/plugin/payment/providers/pay-pal/pay-pal-client.js.map +1 -1
  652. package/dist/esm/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js +1 -7
  653. package/dist/esm/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js.map +1 -1
  654. package/dist/esm/plugin/payment/services/payment.service.js +9 -5
  655. package/dist/esm/plugin/payment/services/payment.service.js.map +1 -1
  656. package/dist/esm/preact/generate-client-scripts.function.js +6 -9
  657. package/dist/esm/preact/generate-client-scripts.function.js.map +1 -1
  658. package/dist/esm/preact/preact-email-component.model.js +2 -0
  659. package/dist/esm/preact/preact-email-component.model.js.map +1 -0
  660. package/dist/esm/preact/preact.utilities.js +41 -5
  661. package/dist/esm/preact/preact.utilities.js.map +1 -1
  662. package/dist/esm/preact/validate-email-templates.function.js +7 -0
  663. package/dist/esm/preact/validate-email-templates.function.js.map +1 -0
  664. package/dist/esm/routing/decorators/controller.decorator.js +7 -2
  665. package/dist/esm/routing/decorators/controller.decorator.js.map +1 -1
  666. package/dist/esm/routing/models/crud-controller.model.js.map +1 -1
  667. package/dist/esm/routing/request.context.js +1 -4
  668. package/dist/esm/routing/request.context.js.map +1 -1
  669. package/dist/esm/routing/router.js +41 -20
  670. package/dist/esm/routing/router.js.map +1 -1
  671. package/dist/esm/utilities/fs.utilities.js.map +1 -1
  672. package/dist/esm/utilities/metadata-injection-keys.enum.js +4 -3
  673. package/dist/esm/utilities/metadata-injection-keys.enum.js.map +1 -1
  674. package/dist/esm/utilities/metadata.utilities.js +16 -9
  675. package/dist/esm/utilities/metadata.utilities.js.map +1 -1
  676. package/dist/esm/utilities/promise.utilities.js +26 -0
  677. package/dist/esm/utilities/promise.utilities.js.map +1 -1
  678. package/dist/esm/utilities/validate-entities-registered.function.js +3 -3
  679. package/dist/esm/utilities/validate-entities-registered.function.js.map +1 -1
  680. package/dist/esm/utilities/validate-tokens-registered.function.js +24 -0
  681. package/dist/esm/utilities/validate-tokens-registered.function.js.map +1 -0
  682. package/dist/esm/validation/validation.service.js +7 -2
  683. package/dist/esm/validation/validation.service.js.map +1 -1
  684. package/dist/esm/websocket/decorators/websocket-controller.decorator.js +4 -2
  685. package/dist/esm/websocket/decorators/websocket-controller.decorator.js.map +1 -1
  686. package/dist/esm/websocket/services/websocket.service.js +9 -3
  687. package/dist/esm/websocket/services/websocket.service.js.map +1 -1
  688. package/package.json +3 -3
  689. package/src/__testing__/constants.ts +7 -3
  690. package/src/__testing__/mocks/assets/thread-job.worker.cjs +92 -0
  691. package/src/__testing__/mocks/entities/jwt-user.entity.ts +6 -0
  692. package/src/__testing__/mocks/entities/roles.enum.ts +4 -0
  693. package/src/__testing__/test-server/create-test-data-source.function.ts +67 -0
  694. package/src/__testing__/test-server/plugins.ts +3 -0
  695. package/src/__testing__/test-server/providers.ts +77 -0
  696. package/src/__testing__/test-server/start-test-server.function.ts +86 -0
  697. package/src/__testing__/test-server/user-repository.ts +34 -0
  698. package/src/application.ts +257 -103
  699. package/src/assets/asset-service.interface.ts +4 -18
  700. package/src/assets/asset-service.test.ts +3 -3
  701. package/src/assets/asset.service.ts +22 -15
  702. package/src/auth/2fa/methods/otp/otp-credentials.model.ts +1 -1
  703. package/src/auth/2fa/methods/otp/otp.two-factor-method.ts +4 -20
  704. package/src/auth/2fa/methods/two-factor-method.interface.ts +23 -4
  705. package/src/auth/2fa/two-factor-service.interface.ts +0 -4
  706. package/src/auth/2fa/two-factor.service.ts +13 -12
  707. package/src/auth/auth-service.interface.ts +0 -4
  708. package/src/auth/auth.service.ts +16 -18
  709. package/src/auth/models/password-reset-token.model.ts +1 -1
  710. package/src/auth/strategies/auth-strategy.interface.ts +31 -4
  711. package/src/auth/strategies/jwt/jwt-auth.controller.ts +17 -1
  712. package/src/auth/strategies/jwt/jwt-credentials.model.ts +1 -1
  713. package/src/auth/strategies/jwt/jwt-refresh-token.model.ts +1 -1
  714. package/src/auth/strategies/jwt/jwt.auth-strategy.ts +46 -62
  715. package/src/auth/user/user.service.ts +2 -0
  716. package/src/backup/backup-entity.model.ts +1 -1
  717. package/src/backup/backup-resource-entity.model.ts +1 -1
  718. package/src/backup/backup-service.interface.ts +0 -4
  719. package/src/backup/backup-service.test.ts +18 -32
  720. package/src/backup/backup.service.ts +28 -10
  721. package/src/backup/transports/fs.backup-transport.ts +9 -9
  722. package/src/change-sets/change-set-repository.ts +10 -9
  723. package/src/cron/cron-job.model.ts +9 -1
  724. package/src/cron/cron-service.interface.ts +0 -5
  725. package/src/cron/cron.service.ts +21 -12
  726. package/src/data-source/data-source-service.interface.ts +4 -6
  727. package/src/data-source/data-source.service.ts +27 -40
  728. package/src/data-source/data-sources/data-source.interface.ts +36 -0
  729. package/src/data-source/data-sources/postgres-data-source.model.ts +18 -8
  730. package/src/data-source/decorators/data-source.decorator.ts +1 -2
  731. package/src/data-source/migration/migration.test.ts +2 -2
  732. package/src/data-source/repository.ts +0 -1
  733. package/src/data-source/transaction/transaction.test.ts +13 -34
  734. package/src/di/decorators/injectable.decorator.ts +28 -5
  735. package/src/di/default/zibri-di-providers.default.ts +4 -6
  736. package/src/di/default/zibri-di-tokens.default.ts +6 -8
  737. package/src/di/di-container.ts +41 -2
  738. package/src/di/errors/no-provider.error.ts +4 -2
  739. package/src/di/get-all-registered-tokens.function.ts +10 -0
  740. package/src/di/models/di-provider.model.ts +3 -3
  741. package/src/di/register.function.ts +2 -2
  742. package/src/di/unregister.function.ts +2 -2
  743. package/src/email/email-service.interface.ts +0 -5
  744. package/src/email/email.service.ts +20 -15
  745. package/src/email/models/email-attachment.model.ts +2 -2
  746. package/src/email/send-queued-emails.cron-job.ts +10 -6
  747. package/src/entity/decorators/entity.decorator.ts +10 -4
  748. package/src/entity/generation/generate-entity-files-for-provider.function.ts +3 -3
  749. package/src/entity/generation/generate-entity-files.function.ts +5 -5
  750. package/src/entity/generation/providers/open-api-file.provider.ts +2 -2
  751. package/src/error-handling/error-handler.ts +1 -1
  752. package/src/error-handling/errors/http.error.ts +1 -5
  753. package/src/error-handling/errors/missing-tokens.error.ts +19 -0
  754. package/src/global/after-app-init.interface.ts +43 -0
  755. package/src/global/after-app-shutdown.interface.ts +46 -0
  756. package/src/global/app-state.enum.ts +10 -0
  757. package/src/global/before-app-init.interface.ts +39 -0
  758. package/src/global/before-app-shutdown.interface.ts +48 -0
  759. package/src/global/global-registry.ts +66 -39
  760. package/src/global/on-app-init.interface.ts +33 -0
  761. package/src/global/on-app-shutdown.interface.ts +38 -0
  762. package/src/global/on-app-start.interface.ts +33 -0
  763. package/src/handlebars/generate-handlebar-type-files.function.ts +12 -9
  764. package/src/handlebars/handlebar.utilities.ts +30 -6
  765. package/src/http-client/http-client.error.ts +94 -0
  766. package/src/http-client/http-client.ts +29 -2
  767. package/src/index.ts +33 -10
  768. package/src/logging/log-cleanup.cron-job.ts +5 -8
  769. package/src/logging/log.model.ts +1 -1
  770. package/src/logging/logger.interface.ts +0 -5
  771. package/src/logging/logger.ts +6 -3
  772. package/src/logging/transport/log-to-email.function.ts +11 -25
  773. package/src/logging/transport/logger-transport.model.ts +16 -0
  774. package/src/metrics/metrics-service.interface.ts +0 -5
  775. package/src/metrics/metrics.service.ts +12 -7
  776. package/src/metrics/scrape-metrics.cron-job.ts +6 -8
  777. package/src/multithreading/services/multithreading-service.interface.ts +1 -10
  778. package/src/multithreading/services/multithreading.service.test.ts +6 -3
  779. package/src/multithreading/services/multithreading.service.ts +12 -8
  780. package/src/open-api/open-api-service.interface.ts +0 -4
  781. package/src/open-api/open-api.service.ts +37 -28
  782. package/src/parsing/body-parser.interface.ts +0 -5
  783. package/src/parsing/form-data/file-response.model.ts +3 -3
  784. package/src/parsing/form-data/file.model.ts +2 -2
  785. package/src/parsing/form-data/form-data-body-parser-cleanup.cron-job.ts +14 -11
  786. package/src/parsing/form-data/form-data.body-parser.ts +10 -9
  787. package/src/parsing/form-data/form-data.model.ts +4 -4
  788. package/src/parsing/parser.interface.ts +1 -6
  789. package/src/parsing/parser.ts +10 -4
  790. package/src/plugin/invoicing/invoicing.plugin.ts +12 -9
  791. package/src/plugin/invoicing/invoicing.tokens.ts +1 -1
  792. package/src/plugin/invoicing/models/invoice.model.ts +1 -1
  793. package/src/plugin/invoicing/models/number-invoices.model.ts +1 -1
  794. package/src/plugin/invoicing/services/conformance/en16931/en16931-conformance.service.ts +3 -3
  795. package/src/plugin/invoicing/services/conformance/en16931/peppol-conformance.service.test.ts +23 -38
  796. package/src/plugin/invoicing/services/conformance/en16931/peppol-conformance.service.ts +1 -1
  797. package/src/plugin/invoicing/services/conformance/en16931/x-rechnung-conformance.service.test.ts +24 -39
  798. package/src/plugin/invoicing/services/conformance/en16931/x-rechnung-conformance.service.ts +1 -1
  799. package/src/plugin/invoicing/services/invoice-calc.service.ts +2 -0
  800. package/src/plugin/invoicing/services/invoice-number.service.test.ts +21 -42
  801. package/src/plugin/invoicing/services/invoice-number.service.ts +4 -2
  802. package/src/plugin/invoicing/services/invoice-pdf.service.test.ts +23 -51
  803. package/src/plugin/invoicing/services/invoice-pdf.service.ts +6 -4
  804. package/src/plugin/mailing-list/mailing-list.controller.ts +114 -0
  805. package/src/plugin/mailing-list/mailing-list.plugin.ts +37 -0
  806. package/src/plugin/mailing-list/mailing-list.tokens.ts +37 -0
  807. package/src/plugin/mailing-list/models/mailing-list-base-email-template.model.ts +36 -0
  808. package/src/plugin/mailing-list/models/mailing-list-preferences-page-template.model.ts +26 -0
  809. package/src/plugin/mailing-list/models/mailing-list-subscribe-confirmation-email-template.model.ts +26 -0
  810. package/src/plugin/mailing-list/models/mailing-list-subscribe-success-page-template.model.ts +26 -0
  811. package/src/{email → plugin}/mailing-list/models/mailing-list-subscriber.model.ts +1 -1
  812. package/src/{email → plugin}/mailing-list/models/mailing-list-subscription-confirmation-token.model.ts +1 -1
  813. package/src/plugin/mailing-list/models/mailing-list-unsubscribe-confirmation-page-template.model.ts +26 -0
  814. package/src/{email → plugin}/mailing-list/models/mailing-list.model.ts +1 -1
  815. package/src/plugin/mailing-list/services/mailing-list-service.interface.ts +75 -0
  816. package/src/plugin/mailing-list/services/mailing-list.service.ts +192 -0
  817. package/src/plugin/payment/models/payment-plugin-options-input.model.ts +2 -14
  818. package/src/plugin/payment/models/payment-plugin-options.model.ts +2 -14
  819. package/src/plugin/payment/models/payment.model.ts +6 -1
  820. package/src/plugin/payment/payment.plugin.ts +33 -13
  821. package/src/plugin/payment/payment.tokens.ts +18 -14
  822. package/src/plugin/payment/providers/pay-pal/pay-pal-client.ts +21 -3
  823. package/src/plugin/payment/providers/pay-pal/pay-pal.payment-provider.test.ts +280 -0
  824. package/src/plugin/payment/providers/pay-pal/pay-pal.payment-provider.ts +27 -13
  825. package/src/plugin/payment/providers/payment-provider.interface.ts +93 -41
  826. package/src/plugin/payment/services/payment-service.interface.ts +14 -14
  827. package/src/plugin/payment/services/payment-service.types.ts +33 -191
  828. package/src/plugin/payment/services/payment.service.ts +12 -18
  829. package/src/plugin/plugin.model.ts +1 -1
  830. package/src/preact/generate-client-scripts.function.ts +13 -15
  831. package/src/preact/preact-email-component.model.ts +6 -0
  832. package/src/preact/preact.utilities.ts +65 -12
  833. package/src/preact/validate-email-templates.function.ts +8 -0
  834. package/src/routing/decorators/controller.decorator.ts +22 -2
  835. package/src/routing/models/crud-controller.model.ts +1 -1
  836. package/src/routing/request.context.ts +2 -5
  837. package/src/routing/router.interface.ts +1 -14
  838. package/src/routing/router.ts +32 -28
  839. package/src/utilities/fs.utilities.ts +26 -26
  840. package/src/utilities/metadata-injection-keys.enum.ts +4 -3
  841. package/src/utilities/metadata.utilities.ts +21 -10
  842. package/src/utilities/promise.utilities.ts +34 -0
  843. package/src/utilities/validate-entities-registered.function.ts +4 -3
  844. package/src/utilities/validate-tokens-registered.function.ts +25 -0
  845. package/src/validation/validation.service.ts +4 -2
  846. package/src/websocket/decorators/websocket-controller.decorator.ts +10 -3
  847. package/src/websocket/services/websocket-service.interface.ts +0 -5
  848. package/src/websocket/services/websocket.service.ts +13 -4
  849. package/dist/cjs/email/mailing-list/mailing-list-service.interface.d.ts +0 -63
  850. package/dist/cjs/email/mailing-list/mailing-list-service.interface.d.ts.map +0 -1
  851. package/dist/cjs/email/mailing-list/mailing-list-service.interface.js.map +0 -1
  852. package/dist/cjs/email/mailing-list/mailing-list.service.d.ts +0 -36
  853. package/dist/cjs/email/mailing-list/mailing-list.service.d.ts.map +0 -1
  854. package/dist/cjs/email/mailing-list/mailing-list.service.js +0 -133
  855. package/dist/cjs/email/mailing-list/mailing-list.service.js.map +0 -1
  856. package/dist/cjs/email/mailing-list/models/mailing-list-subscriber.model.d.ts.map +0 -1
  857. package/dist/cjs/email/mailing-list/models/mailing-list-subscriber.model.js.map +0 -1
  858. package/dist/cjs/email/mailing-list/models/mailing-list-subscription-confirmation-token.model.d.ts.map +0 -1
  859. package/dist/cjs/email/mailing-list/models/mailing-list-subscription-confirmation-token.model.js.map +0 -1
  860. package/dist/cjs/email/mailing-list/models/mailing-list.model.d.ts.map +0 -1
  861. package/dist/cjs/email/mailing-list/models/mailing-list.model.js.map +0 -1
  862. package/dist/cjs/email/mailing-list/models/update-mailing-list-preferences.model.d.ts.map +0 -1
  863. package/dist/cjs/email/mailing-list/models/update-mailing-list-preferences.model.js.map +0 -1
  864. package/dist/cjs/handlebars/render-template.function.d.ts +0 -85
  865. package/dist/cjs/handlebars/render-template.function.d.ts.map +0 -1
  866. package/dist/cjs/handlebars/render-template.function.js +0 -44
  867. package/dist/cjs/handlebars/render-template.function.js.map +0 -1
  868. package/dist/esm/email/mailing-list/mailing-list-service.interface.js +0 -8
  869. package/dist/esm/email/mailing-list/mailing-list-service.interface.js.map +0 -1
  870. package/dist/esm/email/mailing-list/mailing-list.service.js +0 -129
  871. package/dist/esm/email/mailing-list/mailing-list.service.js.map +0 -1
  872. package/dist/esm/email/mailing-list/models/mailing-list-subscriber.model.js.map +0 -1
  873. package/dist/esm/email/mailing-list/models/mailing-list-subscription-confirmation-token.model.js.map +0 -1
  874. package/dist/esm/email/mailing-list/models/mailing-list.model.js.map +0 -1
  875. package/dist/esm/email/mailing-list/models/update-mailing-list-preferences.model.js.map +0 -1
  876. package/dist/esm/handlebars/render-template.function.js +0 -39
  877. package/dist/esm/handlebars/render-template.function.js.map +0 -1
  878. package/src/email/mailing-list/mailing-list-service.interface.ts +0 -72
  879. package/src/email/mailing-list/mailing-list.service.ts +0 -175
  880. package/src/handlebars/render-template.function.ts +0 -118
  881. /package/dist/cjs/{email → plugin}/mailing-list/models/mailing-list-subscriber.model.d.ts +0 -0
  882. /package/dist/cjs/{email → plugin}/mailing-list/models/mailing-list-subscription-confirmation-token.model.d.ts +0 -0
  883. /package/dist/cjs/{email → plugin}/mailing-list/models/mailing-list.model.d.ts +0 -0
  884. /package/dist/cjs/{email → plugin}/mailing-list/models/update-mailing-list-preferences.model.d.ts +0 -0
  885. /package/dist/cjs/{email → plugin}/mailing-list/models/update-mailing-list-preferences.model.js +0 -0
  886. /package/dist/esm/{email → plugin}/mailing-list/models/update-mailing-list-preferences.model.js +0 -0
  887. /package/src/{email → plugin}/mailing-list/models/update-mailing-list-preferences.model.ts +0 -0
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  Zibri is an opiniated typescript backend framework based on express. It's heavily inspired by frameworks like [LoopBack](https://loopback.io/doc/en/lb4/index.html) and [Nest](https://docs.nestjs.com/).
11
11
 
12
- What differentiates it from such frameworks can be found in our [goals section](#goals).
12
+ What differentiates it from such frameworks can be found in our [goals section](#-goals).
13
13
 
14
14
  # 📑 Documentation
15
15
  The official documentation of Zibri can be found under [https://service-soft.github.io/zibri](https://service-soft.github.io/zibri)
@@ -54,7 +54,7 @@ With Zibri you can rely on a strong foundation of battle tested libraries that h
54
54
  - express as the server
55
55
  - typeorm for handling everything database related
56
56
  - nodemailer for sending emails
57
- - handlebars for templating
57
+ - handlebars and preact for templating
58
58
  - busboy for file uploads (the foundation of multer)
59
59
  - socket.io for websockets
60
60
  - node-cron for cron jobs
@@ -3,9 +3,13 @@ import { RequestHandler } from 'express';
3
3
  import { ZibriApplicationOptions } from './application-options.model';
4
4
  import { GlobalErrorHandler } from './error-handling/error-handler.model';
5
5
  import { Route } from './routing/controller-route-configuration.model';
6
- import { RouterInterface } from './routing/router.interface';
7
6
  import { OmitStrict } from './types/omit-strict.type';
8
7
  type FullZibriApplicationOptions = Required<OmitStrict<ZibriApplicationOptions, 'plugins'>>;
8
+ declare const SHUTDOWN_SIGNALS: readonly ["SIGTERM", "SIGINT", "SIGHUP"];
9
+ /**
10
+ * A os signal that triggers the shutdown of a Zibri application.
11
+ */
12
+ export type ShutdownSignal = typeof SHUTDOWN_SIGNALS[number];
9
13
  /**
10
14
  * A Zibri application.
11
15
  */
@@ -15,29 +19,12 @@ export declare class ZibriApplication {
15
19
  * The internal express app.
16
20
  */
17
21
  private readonly express;
22
+ private readonly signalHandlers;
18
23
  /**
19
24
  * The underlying http server.
20
25
  */
21
26
  readonly server: Server;
22
- private _router;
23
- /**
24
- * The router used by the application.
25
- */
26
- get router(): RouterInterface;
27
- private logger;
28
- private metricsService;
29
- private assetService;
30
- private openApiService;
31
- private parser;
32
- private dataSourceService;
33
- private authService;
34
- private twoFactorService;
35
- private cronService;
36
- private multithreadingService;
37
- private websocketService;
38
- private emailService;
39
- private backupService;
40
- private mailingListService?;
27
+ private get logger();
41
28
  /**
42
29
  * The options of which the application was build.
43
30
  */
@@ -51,15 +38,30 @@ export declare class ZibriApplication {
51
38
  /**
52
39
  * Initializes the app.
53
40
  * @param H - The global handlebars instance, needed to provide some helpers used in templating.
41
+ * @param handlebarComponentsDir - Directory where handlebars components reside. Defaults to assetService.assetsPath/templates/components.
54
42
  */
55
- init(H: typeof Handlebars): Promise<void>;
43
+ init(H: typeof Handlebars, handlebarComponentsDir?: string): Promise<void>;
56
44
  /**
57
45
  * Starts on the given port.
58
46
  * @param port - The port to start on.
59
47
  * @throws When the app has already been started.
60
48
  */
61
49
  start(port: number): Promise<void>;
50
+ /**
51
+ * Gracefully shuts down the application.
52
+ * @param signal - The signal that shuts down the application. Can be left empty if manually called.
53
+ */
54
+ shutdown(signal?: ShutdownSignal): Promise<void>;
55
+ private beforeAppInit;
56
+ private onAppInit;
57
+ private afterAppInit;
58
+ private afterAppShutdown;
59
+ private onAppShutdown;
60
+ private beforeAppShutdown;
61
+ private shutdownHttpServer;
62
+ private validateInjectables;
62
63
  private createFullOptions;
64
+ private logDefaults;
63
65
  }
64
66
  export {};
65
67
  //# sourceMappingURL=application.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AActE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAW1E,OAAO,EAAE,KAAK,EAAE,MAAM,gDAAgD,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAKtD,KAAK,2BAA2B,GAAG,QAAQ,CAAC,UAAU,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC,CAAC;AAE5F;;GAEG;AACH,qBAAa,gBAAgB;IAwCb,OAAO,CAAC,QAAQ,CAAC,eAAe;IAvC5C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAEP;IAEjB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAA8B;IAErD,OAAO,CAAC,OAAO,CAAmB;IAElC;;OAEG;IACH,IAAI,MAAM,IAAI,eAAe,CAE5B;IACD,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,qBAAqB,CAAkC;IAC/D,OAAO,CAAC,gBAAgB,CAAsD;IAC9E,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,kBAAkB,CAAC,CAA8B;IACzD;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;gBAEjB,eAAe,EAAE,uBAAuB;IAMrE,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAElC,GAAG,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI;IAE3C,GAAG,CAAC,GAAG,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI;IAExC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI;IAErD,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI;IAOlD;;;OAGG;IACG,IAAI,CAAC,CAAC,EAAE,OAAO,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAuF/C;;;;OAIG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAexC,OAAO,CAAC,iBAAiB;CA+B5B"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAYtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAgB1E,OAAO,EAAE,KAAK,EAAE,MAAM,gDAAgD,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAMtD,KAAK,2BAA2B,GAAG,QAAQ,CAAC,UAAU,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC,CAAC;AAG5F,QAAA,MAAM,gBAAgB,0CAA2C,CAAC;AAIlE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAE7D;;GAEG;AACH,qBAAa,gBAAgB;IAwBb,OAAO,CAAC,QAAQ,CAAC,eAAe;IAvB5C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAEP;IAEjB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0E;IAEzG;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAA8B;IAErD,OAAO,KAAK,MAAM,GAEjB;IAED;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;gBAEjB,eAAe,EAAE,uBAAuB;IAarE,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAElC,GAAG,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI;IAE3C,GAAG,CAAC,GAAG,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI;IAExC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI;IAErD,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI;IAOlD;;;;OAIG;IACG,IAAI,CACN,CAAC,EAAE,OAAO,UAAU,EACpB,sBAAsB,GAAE,MAAyG,GAClI,OAAO,CAAC,IAAI,CAAC;IAkChB;;;;OAIG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBxC;;;OAGG;IACG,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;YAmCxC,aAAa;YAmBb,SAAS;YAMT,YAAY;YAMZ,gBAAgB;YAiBhB,aAAa;YAiBb,iBAAiB;YAiBjB,kBAAkB;IAiBhC,OAAO,CAAC,mBAAmB;IAmC3B,OAAO,CAAC,iBAAiB;YAgCX,WAAW;CAoB5B"}
@@ -8,15 +8,35 @@ const node_http_1 = require("node:http");
8
8
  const cors_1 = __importDefault(require("cors"));
9
9
  const express_1 = __importDefault(require("express"));
10
10
  const otp_two_factor_method_1 = require("./auth/2fa/methods/otp/otp.two-factor-method");
11
+ const two_factor_method_interface_1 = require("./auth/2fa/methods/two-factor-method.interface");
12
+ const auth_strategy_interface_1 = require("./auth/strategies/auth-strategy.interface");
11
13
  const jwt_auth_strategy_1 = require("./auth/strategies/jwt/jwt.auth-strategy");
14
+ const cron_job_model_1 = require("./cron/cron-job.model");
15
+ const data_source_interface_1 = require("./data-source/data-sources/data-source.interface");
12
16
  const zibri_di_tokens_default_1 = require("./di/default/zibri-di-tokens.default");
17
+ const get_all_registered_tokens_function_1 = require("./di/get-all-registered-tokens.function");
13
18
  const inject_function_1 = require("./di/inject.function");
14
19
  const register_function_1 = require("./di/register.function");
15
20
  const unmatched_route_error_1 = require("./error-handling/errors/unmatched-route.error");
21
+ const after_app_init_interface_1 = require("./global/after-app-init.interface");
22
+ const after_app_shutdown_interface_1 = require("./global/after-app-shutdown.interface");
23
+ const app_state_enum_1 = require("./global/app-state.enum");
24
+ const before_app_init_interface_1 = require("./global/before-app-init.interface");
25
+ const before_app_shutdown_interface_1 = require("./global/before-app-shutdown.interface");
16
26
  const global_registry_1 = require("./global/global-registry");
27
+ const on_app_init_interface_1 = require("./global/on-app-init.interface");
28
+ const on_app_shutdown_interface_1 = require("./global/on-app-shutdown.interface");
29
+ const on_app_start_interface_1 = require("./global/on-app-start.interface");
17
30
  const handlebar_utilities_1 = require("./handlebars/handlebar.utilities");
18
31
  const form_data_body_parser_1 = require("./parsing/form-data/form-data.body-parser");
19
32
  const json_body_parser_1 = require("./parsing/json/json.body-parser");
33
+ const plugin_model_1 = require("./plugin/plugin.model");
34
+ const fs_utilities_1 = require("./utilities/fs.utilities");
35
+ const ms_1 = require("./utilities/ms");
36
+ const promise_utilities_1 = require("./utilities/promise.utilities");
37
+ // eslint-disable-next-line typescript/typedef
38
+ const SHUTDOWN_SIGNALS = ['SIGTERM', 'SIGINT', 'SIGHUP'];
39
+ const DEFAULT_SHUTDOWN_TIMEOUT_IN_MS = ms_1.Ms.SECOND * 30;
20
40
  /**
21
41
  * A Zibri application.
22
42
  */
@@ -28,32 +48,14 @@ class ZibriApplication {
28
48
  express = (0, express_1.default)()
29
49
  .disable('x-powered-by')
30
50
  .use((0, cors_1.default)());
51
+ signalHandlers = new Map();
31
52
  /**
32
53
  * The underlying http server.
33
54
  */
34
55
  server = (0, node_http_1.createServer)(this.express);
35
- _router;
36
- // eslint-disable-next-line jsdoc/require-returns
37
- /**
38
- * The router used by the application.
39
- */
40
- get router() {
41
- return this._router;
42
- }
43
- logger;
44
- metricsService;
45
- assetService;
46
- openApiService;
47
- parser;
48
- dataSourceService;
49
- authService;
50
- twoFactorService;
51
- cronService;
52
- multithreadingService;
53
- websocketService;
54
- emailService;
55
- backupService;
56
- mailingListService;
56
+ get logger() {
57
+ return (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.LOGGER);
58
+ }
57
59
  /**
58
60
  * The options of which the application was build.
59
61
  */
@@ -61,6 +63,11 @@ class ZibriApplication {
61
63
  constructor(providedOptions) {
62
64
  this.providedOptions = providedOptions;
63
65
  this.options = this.createFullOptions();
66
+ for (const signal of SHUTDOWN_SIGNALS) {
67
+ const handler = () => void this.shutdown(signal);
68
+ this.signalHandlers.set(signal, handler);
69
+ process.on(signal, handler);
70
+ }
64
71
  global_registry_1.GlobalRegistry.markAppAsCreated();
65
72
  }
66
73
  // eslint-disable-next-line jsdoc/require-jsdoc, typescript/no-explicit-any
@@ -71,67 +78,27 @@ class ZibriApplication {
71
78
  /**
72
79
  * Initializes the app.
73
80
  * @param H - The global handlebars instance, needed to provide some helpers used in templating.
81
+ * @param handlebarComponentsDir - Directory where handlebars components reside. Defaults to assetService.assetsPath/templates/components.
74
82
  */
75
- async init(H) {
76
- await handlebar_utilities_1.HandlebarUtilities.init(H);
83
+ async init(H, handlebarComponentsDir = fs_utilities_1.FsUtilities.getPath((0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.ASSET_SERVICE).assetsPath, 'templates', 'components')) {
84
+ await handlebar_utilities_1.HandlebarUtilities.init(H, handlebarComponentsDir);
77
85
  global_registry_1.GlobalRegistry.setAppData(this.options);
78
86
  for (const provider of this.options.providers) {
79
87
  (0, register_function_1.register)(provider);
80
88
  }
81
- this.logger = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.LOGGER);
82
- await this.logger.attachTo(this);
83
- this.metricsService = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.METRICS_SERVICE);
84
- await this.metricsService.attachTo(this);
85
- if (!this.providedOptions.authStrategies) {
86
- await this.logger.info('No auth strategies provided, defaults to:');
87
- for (const strategy of this.options.authStrategies) {
88
- await this.logger.info(` - ${strategy.name}`);
89
- }
90
- }
91
- if (!this.providedOptions.twoFactorMethods) {
92
- await this.logger.info('No two factor methods provided, defaults to:');
93
- for (const strategy of this.options.twoFactorMethods) {
94
- await this.logger.info(` - ${strategy.name}`);
95
- }
96
- }
97
- if (!this.providedOptions.bodyParsers) {
98
- await this.logger.info('No body parsers provided, defaults to:');
99
- for (const bodyParser of this.options.bodyParsers) {
100
- await this.logger.info(` - ${bodyParser.name}`);
101
- }
102
- }
103
- this.dataSourceService = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.DATA_SOURCE_SERVICE);
104
- await this.dataSourceService.init();
105
- this.twoFactorService = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.TWO_FACTOR_SERVICE);
106
- await this.twoFactorService.init(this.options.twoFactorMethods);
107
- this.authService = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.AUTH_SERVICE);
108
- await this.authService.init(this.options.authStrategies);
109
- this.parser = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.PARSER);
110
- await this.parser.attachTo(this);
111
- this._router = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.ROUTER);
112
- await this._router.init(this);
113
- this.assetService = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.ASSET_SERVICE);
114
- await this.assetService.attachTo(this);
115
- this.emailService = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.EMAIL_SERVICE);
116
- this.emailService.attachTo(this);
117
- this.mailingListService = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.MAILING_LIST_SERVICE);
118
- this.mailingListService?.attachTo(this);
119
- this.openApiService = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.OPEN_API_SERVICE);
120
- await this.openApiService.attachTo(this);
89
+ await this.logDefaults();
90
+ const tokens = (0, get_all_registered_tokens_function_1.getAllRegisteredTokens)();
91
+ await this.beforeAppInit(tokens);
92
+ const injectables = tokens.map(t => (0, inject_function_1.inject)(t));
93
+ this.validateInjectables(injectables);
94
+ await this.onAppInit(injectables);
95
+ await this.afterAppInit(injectables);
121
96
  for (const controller of this.options.controllers) {
122
97
  (0, inject_function_1.inject)(controller);
123
98
  }
124
99
  for (const websocketController of this.options.websocketControllers) {
125
100
  (0, inject_function_1.inject)(websocketController);
126
101
  }
127
- this.cronService = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.CRON_SERVICE);
128
- await this.cronService.init(this.options.cronJobs);
129
- this.multithreadingService = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.MULTITHREADING_SERVICE);
130
- await this.multithreadingService.init();
131
- this.websocketService = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.WEBSOCKET_SERVICE);
132
- await this.websocketService.attachTo(this);
133
- this.backupService = (0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.BACKUP_SERVICE);
134
- await this.backupService.init();
135
102
  for (const plugin of this.providedOptions.plugins ?? []) {
136
103
  await plugin.validate(this);
137
104
  }
@@ -143,19 +110,177 @@ class ZibriApplication {
143
110
  * @throws When the app has already been started.
144
111
  */
145
112
  async start(port) {
146
- if (global_registry_1.GlobalRegistry.isAppRunning()) {
113
+ if (global_registry_1.GlobalRegistry.isAppStarted()) {
147
114
  // We need this check in addition to the one in the registry.
148
- // Because we would otherwise have a wrong state when we call markAppAsRunning
115
+ // Because we would otherwise have a wrong state when we call markAppAsStarted
149
116
  // and then this.app.listen fails.
150
117
  throw new Error('The application has already been started');
151
118
  }
152
- await this.router.attachTo(this);
119
+ const injectables = (0, get_all_registered_tokens_function_1.getAllRegisteredTokens)().map(t => (0, inject_function_1.inject)(t));
120
+ for (const element of injectables.filter(i => (0, on_app_start_interface_1.implementsOnAppStart)(i))) {
121
+ await element.onAppStart(this);
122
+ }
153
123
  this.use((req, _, next) => next(new unmatched_route_error_1.UnmatchedRouteError(req.originalUrl)));
154
124
  this.use((0, inject_function_1.inject)(zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.GLOBAL_ERROR_HANDLER));
155
125
  this.server.listen(port);
156
- global_registry_1.GlobalRegistry.markAppAsRunning();
126
+ global_registry_1.GlobalRegistry.markAppAsStarted();
157
127
  await this.logger.info(`${this.options.name} is running on port ${port}`);
158
128
  }
129
+ /**
130
+ * Gracefully shuts down the application.
131
+ * @param signal - The signal that shuts down the application. Can be left empty if manually called.
132
+ */
133
+ async shutdown(signal) {
134
+ switch (global_registry_1.GlobalRegistry.getAppData('state')) {
135
+ case app_state_enum_1.AppState.OFFLINE:
136
+ case app_state_enum_1.AppState.SHUTTING_DOWN: {
137
+ // is already offline or shutting down, nothing to do here
138
+ return;
139
+ }
140
+ case app_state_enum_1.AppState.CREATED: {
141
+ // nothing has been initialized yet, can simply quit without handling shutdown hooks
142
+ await this.logger.info('shutting down...');
143
+ global_registry_1.GlobalRegistry.markAppAsShuttingDown();
144
+ for (const [signal, handler] of this.signalHandlers) {
145
+ process.off(signal, handler);
146
+ }
147
+ process.exit(0);
148
+ }
149
+ case app_state_enum_1.AppState.INITIALIZED:
150
+ case app_state_enum_1.AppState.STARTED: {
151
+ await this.logger.info('shutting down...');
152
+ global_registry_1.GlobalRegistry.markAppAsShuttingDown();
153
+ for (const [signal, handler] of this.signalHandlers) {
154
+ process.off(signal, handler);
155
+ }
156
+ await this.shutdownHttpServer();
157
+ const injectables = (0, get_all_registered_tokens_function_1.getAllRegisteredTokens)().map(t => (0, inject_function_1.inject)(t));
158
+ await this.beforeAppShutdown(injectables, signal);
159
+ await this.onAppShutdown(injectables, signal);
160
+ await this.afterAppShutdown(injectables, signal);
161
+ process.exit(0);
162
+ }
163
+ }
164
+ }
165
+ async beforeAppInit(tokens) {
166
+ const sortedTokens = tokens.sort((a, b) => {
167
+ if ('key' in a && a.key === zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.DATA_SOURCE_SERVICE.key) {
168
+ return -1;
169
+ }
170
+ if ('key' in b && b.key === zibri_di_tokens_default_1.ZIBRI_DI_TOKENS.DATA_SOURCE_SERVICE.key) {
171
+ return 1;
172
+ }
173
+ return 0;
174
+ });
175
+ for (const token of sortedTokens) {
176
+ const injectable = (0, inject_function_1.inject)(token);
177
+ if ((0, before_app_init_interface_1.implementsBeforeAppInit)(injectable)) {
178
+ await injectable.beforeAppInit(this);
179
+ }
180
+ }
181
+ }
182
+ async onAppInit(injectables) {
183
+ for (const element of injectables.filter(i => (0, on_app_init_interface_1.implementsOnAppInit)(i))) {
184
+ await element.onAppInit(this);
185
+ }
186
+ }
187
+ async afterAppInit(injectables) {
188
+ for (const element of injectables.filter(i => (0, after_app_init_interface_1.implementsAfterAppInit)(i))) {
189
+ await element.afterAppInit(this);
190
+ }
191
+ }
192
+ async afterAppShutdown(injectables, signal) {
193
+ const elements = injectables.filter(i => (0, after_app_shutdown_interface_1.implementsAfterAppShutdown)(i));
194
+ await Promise.all(elements.map(async (e) => {
195
+ try {
196
+ const timeoutInMs = e.shutdownTimeoutInMs ?? DEFAULT_SHUTDOWN_TIMEOUT_IN_MS;
197
+ await promise_utilities_1.PromiseUtilities.withTimeout(e.afterAppShutdown(this, signal), timeoutInMs);
198
+ }
199
+ catch (error) {
200
+ await this.logger.error(error instanceof Error
201
+ ? error
202
+ : new Error(`Error running afterAppShutdown for "${e.constructor.name}":`, { cause: error }));
203
+ }
204
+ }));
205
+ }
206
+ async onAppShutdown(injectables, signal) {
207
+ const elements = injectables.filter(i => (0, on_app_shutdown_interface_1.implementsOnAppShutdown)(i));
208
+ await Promise.all(elements.map(async (e) => {
209
+ try {
210
+ const timeoutInMs = e.shutdownTimeoutInMs ?? DEFAULT_SHUTDOWN_TIMEOUT_IN_MS;
211
+ await promise_utilities_1.PromiseUtilities.withTimeout(e.onAppShutdown(this, signal), timeoutInMs);
212
+ }
213
+ catch (error) {
214
+ await this.logger.error(error instanceof Error
215
+ ? error
216
+ : new Error(`Error running onAppShutdown for "${e.constructor.name}":`, { cause: error }));
217
+ }
218
+ }));
219
+ }
220
+ async beforeAppShutdown(injectables, signal) {
221
+ const elements = injectables.filter(i => (0, before_app_shutdown_interface_1.implementsBeforeAppShutdown)(i));
222
+ await Promise.all(elements.map(async (e) => {
223
+ try {
224
+ const timeoutInMs = e.shutdownTimeoutInMs ?? DEFAULT_SHUTDOWN_TIMEOUT_IN_MS;
225
+ await promise_utilities_1.PromiseUtilities.withTimeout(e.beforeAppShutdown(this, signal), timeoutInMs);
226
+ }
227
+ catch (error) {
228
+ await this.logger.error(error instanceof Error
229
+ ? error
230
+ : new Error(`Error running beforeAppShutdown for "${e.constructor.name}":`, { cause: error }));
231
+ }
232
+ }));
233
+ }
234
+ async shutdownHttpServer() {
235
+ if (!this.server.listening) {
236
+ return;
237
+ }
238
+ return new Promise((resolve, reject) => {
239
+ // eslint-disable-next-line promise/prefer-await-to-callbacks
240
+ this.server.close(err => {
241
+ if (err) {
242
+ reject(err);
243
+ }
244
+ else {
245
+ resolve();
246
+ }
247
+ });
248
+ });
249
+ }
250
+ validateInjectables(injectables) {
251
+ for (const element of injectables) {
252
+ if (element instanceof plugin_model_1.ZibriPlugin) {
253
+ throw new Error([
254
+ `Invalid class marked with @Injectable: ${element.constructor.name}`,
255
+ 'Plugins interfere with the injection system, making them injectable is forbidden.'
256
+ ].join('\n'));
257
+ }
258
+ if (element instanceof cron_job_model_1.CronJob) {
259
+ throw new Error([
260
+ `Invalid class marked with @Injectable: ${element.constructor.name}`,
261
+ 'Cron jobs should be registered by the cron service.'
262
+ ].join('\n'));
263
+ }
264
+ if ((0, two_factor_method_interface_1.isTwoFactorMethod)(element)) {
265
+ throw new Error([
266
+ `Invalid class marked with @Injectable: ${element.constructor.name}`,
267
+ 'Two factor methods should be registered by the two factor service.'
268
+ ].join('\n'));
269
+ }
270
+ if ((0, auth_strategy_interface_1.isAuthStrategy)(element)) {
271
+ throw new Error([
272
+ `Invalid class marked with @Injectable: ${element.constructor.name}`,
273
+ 'Auth strategies should be registered by the auth service.'
274
+ ].join('\n'));
275
+ }
276
+ if ((0, data_source_interface_1.isDataSource)(element) && !this.options.dataSources.find(ds => ds.name === element.constructor.name)) {
277
+ throw new Error([
278
+ `Invalid class marked with @DataSource: ${element.constructor.name}`,
279
+ 'The data source has not been included in the application options.'
280
+ ].join('\n'));
281
+ }
282
+ }
283
+ }
159
284
  createFullOptions() {
160
285
  const res = {
161
286
  dataSources: [],
@@ -185,6 +310,26 @@ class ZibriApplication {
185
310
  }
186
311
  return res;
187
312
  }
313
+ async logDefaults() {
314
+ if (!this.providedOptions.authStrategies) {
315
+ await this.logger.info('No auth strategies provided, defaults to:');
316
+ for (const strategy of this.options.authStrategies) {
317
+ await this.logger.info(` - ${strategy.name}`);
318
+ }
319
+ }
320
+ if (!this.providedOptions.twoFactorMethods) {
321
+ await this.logger.info('No two factor methods provided, defaults to:');
322
+ for (const strategy of this.options.twoFactorMethods) {
323
+ await this.logger.info(` - ${strategy.name}`);
324
+ }
325
+ }
326
+ if (!this.providedOptions.bodyParsers) {
327
+ await this.logger.info('No body parsers provided, defaults to:');
328
+ for (const bodyParser of this.options.bodyParsers) {
329
+ await this.logger.info(` - ${bodyParser.name}`);
330
+ }
331
+ }
332
+ }
188
333
  }
189
334
  exports.ZibriApplication = ZibriApplication;
190
335
  //# sourceMappingURL=application.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/application.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
- import { ZibriApplication } from '../application';
2
1
  import { TreeNode } from './asset.service';
3
2
  import { Route } from '../routing/controller-route-configuration.model';
4
- import { Path } from '../utilities/fs.utilities';
3
+ import { FsPath } from '../utilities/fs.utilities';
5
4
  /**
6
5
  * Interface for an asset service.
7
6
  */
@@ -9,31 +8,19 @@ export interface AssetServiceInterface {
9
8
  /**
10
9
  * The path of the assets.
11
10
  */
12
- readonly assetsPath: Path;
11
+ readonly assetsPath: FsPath;
13
12
  /**
14
13
  * The path of the assets which are also publicly registered on the online file explorer.
15
14
  */
16
- readonly publicAssetsPath: Path;
17
- /**
18
- * The path of the email templates.
19
- */
20
- readonly emailTemplatePath: Path;
21
- /**
22
- * The path of the page templates.
23
- */
24
- readonly pageTemplatePath: Path;
15
+ readonly publicAssetsPath: FsPath;
25
16
  /**
26
17
  * The path of the component templates.
27
18
  */
28
- readonly componentTemplatePath: Path;
19
+ readonly componentTemplatePath: FsPath;
29
20
  /**
30
21
  * The route under which the file explorer with the public assets is registered.
31
22
  */
32
23
  readonly assetsRoute: Route;
33
- /**
34
- * Attaches the service to the application.
35
- */
36
- attachTo: (app: ZibriApplication, ...params: any[]) => void | Promise<void>;
37
24
  /**
38
25
  * Builds a file tree.
39
26
  */
@@ -1 +1 @@
1
- {"version":3,"file":"asset-service.interface.d.ts","sourceRoot":"","sources":["../../../src/assets/asset-service.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,iDAAiD,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC;IACjC;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,IAAI,CAAC;IACrC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;IAC5B;;OAEG;IAEH,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E;;OAEG;IACH,aAAa,EAAE,MAAM,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;CACxD"}
1
+ {"version":3,"file":"asset-service.interface.d.ts","sourceRoot":"","sources":["../../../src/assets/asset-service.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,iDAAiD,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;IAC5B;;OAEG;IACH,aAAa,EAAE,MAAM,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;CACxD"}
@@ -1,8 +1,9 @@
1
1
  import { AssetServiceInterface } from './asset-service.interface';
2
2
  import { ZibriApplication } from '../application';
3
+ import { OnAppInit } from '../global/on-app-init.interface';
3
4
  import { type LoggerInterface } from '../logging/logger.interface';
4
5
  import { Route } from '../routing/controller-route-configuration.model';
5
- import { Path } from '../utilities/fs.utilities';
6
+ import { FsPath } from '../utilities/fs.utilities';
6
7
  type FileNode = {
7
8
  type: 'file';
8
9
  name: string;
@@ -17,16 +18,14 @@ export type TreeNode = FileNode | DirectoryNode;
17
18
  /**
18
19
  * Default asset service implementation of Zibri.
19
20
  */
20
- export declare class AssetService implements AssetServiceInterface {
21
+ export declare class AssetService implements AssetServiceInterface, OnAppInit {
21
22
  private readonly logger;
22
- readonly assetsPath: Path;
23
- readonly publicAssetsPath: Path;
24
- readonly pageTemplatePath: Path;
25
- readonly emailTemplatePath: Path;
26
- readonly componentTemplatePath: Path;
23
+ readonly assetsPath: FsPath;
24
+ readonly publicAssetsPath: FsPath;
25
+ readonly componentTemplatePath: FsPath;
27
26
  readonly assetsRoute: Route;
28
27
  constructor(logger: LoggerInterface);
29
- attachTo(app: ZibriApplication): Promise<void>;
28
+ onAppInit(app: ZibriApplication): Promise<void>;
30
29
  buildFileTree(): Promise<TreeNode[]>;
31
30
  private mapToTree;
32
31
  private walk;
@@ -1 +1 @@
1
- {"version":3,"file":"asset.service.d.ts","sourceRoot":"","sources":["../../../src/assets/asset.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIlD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,KAAK,EAAE,MAAM,iDAAiD,CAAC;AACxE,OAAO,EAAe,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAI9D,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAG9D,KAAK,aAAa,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAC;AAG/E,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;AAQhD;;GAEG;AACH,qBAAa,YAAa,YAAW,qBAAqB;IAgBlD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAd3B,QAAQ,CAAC,UAAU,EAAE,IAAI,CAA4C;IAErE,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAkD;IAEjF,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAA8D;IAE7F,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAA+D;IAE/F,QAAQ,CAAC,qBAAqB,EAAE,IAAI,CAAmE;IAEvG,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAa;gBAInB,MAAM,EAAE,eAAe;IAItC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9C,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAkC1C,OAAO,CAAC,SAAS;YAmBH,IAAI;CAmBrB"}
1
+ {"version":3,"file":"asset.service.d.ts","sourceRoot":"","sources":["../../../src/assets/asset.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAKlD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,KAAK,EAAE,MAAM,iDAAiD,CAAC;AACxE,OAAO,EAAe,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAIhE,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAG9D,KAAK,aAAa,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAC;AAG/E,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;AAQhD;;GAEG;AACH,qBACa,YAAa,YAAW,qBAAqB,EAAE,SAAS;IAY7D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAV3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAA4C;IAEvE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAkD;IAEnF,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAmE;IAEzG,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAa;gBAInB,MAAM,EAAE,eAAe;IAItC,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB/C,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAkC1C,OAAO,CAAC,SAAS;YAmBH,IAAI;CAmBrB"}