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.
- package/README.md +2 -2
- package/dist/cjs/application.d.ts +23 -21
- package/dist/cjs/application.d.ts.map +1 -1
- package/dist/cjs/application.js +221 -76
- package/dist/cjs/application.js.map +1 -1
- package/dist/cjs/assets/asset-service.interface.d.ts +4 -17
- package/dist/cjs/assets/asset-service.interface.d.ts.map +1 -1
- package/dist/cjs/assets/asset.service.d.ts +7 -8
- package/dist/cjs/assets/asset.service.d.ts.map +1 -1
- package/dist/cjs/assets/asset.service.js +10 -6
- package/dist/cjs/assets/asset.service.js.map +1 -1
- package/dist/cjs/auth/2fa/methods/otp/otp-credentials.model.js +1 -1
- package/dist/cjs/auth/2fa/methods/otp/otp-credentials.model.js.map +1 -1
- package/dist/cjs/auth/2fa/methods/otp/otp.two-factor-method.d.ts +4 -3
- package/dist/cjs/auth/2fa/methods/otp/otp.two-factor-method.d.ts.map +1 -1
- package/dist/cjs/auth/2fa/methods/otp/otp.two-factor-method.js +6 -17
- package/dist/cjs/auth/2fa/methods/otp/otp.two-factor-method.js.map +1 -1
- package/dist/cjs/auth/2fa/methods/two-factor-method.interface.d.ts +6 -4
- package/dist/cjs/auth/2fa/methods/two-factor-method.interface.d.ts.map +1 -1
- package/dist/cjs/auth/2fa/methods/two-factor-method.interface.js +21 -0
- package/dist/cjs/auth/2fa/methods/two-factor-method.interface.js.map +1 -1
- package/dist/cjs/auth/2fa/two-factor-service.interface.d.ts +0 -4
- package/dist/cjs/auth/2fa/two-factor-service.interface.d.ts.map +1 -1
- package/dist/cjs/auth/2fa/two-factor.service.d.ts +7 -8
- package/dist/cjs/auth/2fa/two-factor.service.d.ts.map +1 -1
- package/dist/cjs/auth/2fa/two-factor.service.js +26 -10
- package/dist/cjs/auth/2fa/two-factor.service.js.map +1 -1
- package/dist/cjs/auth/auth-service.interface.d.ts +0 -4
- package/dist/cjs/auth/auth-service.interface.d.ts.map +1 -1
- package/dist/cjs/auth/auth.service.d.ts +9 -10
- package/dist/cjs/auth/auth.service.d.ts.map +1 -1
- package/dist/cjs/auth/auth.service.js +28 -13
- package/dist/cjs/auth/auth.service.js.map +1 -1
- package/dist/cjs/auth/models/password-reset-token.model.js +1 -1
- package/dist/cjs/auth/models/password-reset-token.model.js.map +1 -1
- package/dist/cjs/auth/strategies/auth-strategy.interface.d.ts +7 -4
- package/dist/cjs/auth/strategies/auth-strategy.interface.d.ts.map +1 -1
- package/dist/cjs/auth/strategies/auth-strategy.interface.js +28 -0
- package/dist/cjs/auth/strategies/auth-strategy.interface.js.map +1 -1
- package/dist/cjs/auth/strategies/jwt/jwt-auth.controller.d.ts +13 -0
- package/dist/cjs/auth/strategies/jwt/jwt-auth.controller.d.ts.map +1 -1
- package/dist/cjs/auth/strategies/jwt/jwt-auth.controller.js +1 -1
- package/dist/cjs/auth/strategies/jwt/jwt-auth.controller.js.map +1 -1
- package/dist/cjs/auth/strategies/jwt/jwt-credentials.model.js +1 -1
- package/dist/cjs/auth/strategies/jwt/jwt-credentials.model.js.map +1 -1
- package/dist/cjs/auth/strategies/jwt/jwt-refresh-token.model.js +1 -1
- package/dist/cjs/auth/strategies/jwt/jwt-refresh-token.model.js.map +1 -1
- package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.d.ts +15 -10
- package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.d.ts.map +1 -1
- package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.js +61 -52
- package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.js.map +1 -1
- package/dist/cjs/auth/user/user.service.d.ts.map +1 -1
- package/dist/cjs/auth/user/user.service.js +12 -2
- package/dist/cjs/auth/user/user.service.js.map +1 -1
- package/dist/cjs/backup/backup-entity.model.js +1 -1
- package/dist/cjs/backup/backup-entity.model.js.map +1 -1
- package/dist/cjs/backup/backup-resource-entity.model.js +1 -1
- package/dist/cjs/backup/backup-resource-entity.model.js.map +1 -1
- package/dist/cjs/backup/backup-service.interface.d.ts +0 -4
- package/dist/cjs/backup/backup-service.interface.d.ts.map +1 -1
- package/dist/cjs/backup/backup.service.d.ts +9 -3
- package/dist/cjs/backup/backup.service.d.ts.map +1 -1
- package/dist/cjs/backup/backup.service.js +37 -7
- package/dist/cjs/backup/backup.service.js.map +1 -1
- package/dist/cjs/backup/transports/fs.backup-transport.d.ts +3 -3
- package/dist/cjs/backup/transports/fs.backup-transport.d.ts.map +1 -1
- package/dist/cjs/backup/transports/fs.backup-transport.js.map +1 -1
- package/dist/cjs/change-sets/change-set-repository.d.ts +2 -2
- package/dist/cjs/change-sets/change-set-repository.d.ts.map +1 -1
- package/dist/cjs/change-sets/change-set-repository.js +8 -7
- package/dist/cjs/change-sets/change-set-repository.js.map +1 -1
- package/dist/cjs/cron/cron-job.model.d.ts +6 -1
- package/dist/cjs/cron/cron-job.model.d.ts.map +1 -1
- package/dist/cjs/cron/cron-job.model.js +7 -0
- package/dist/cjs/cron/cron-job.model.js.map +1 -1
- package/dist/cjs/cron/cron-service.interface.d.ts +0 -5
- package/dist/cjs/cron/cron-service.interface.d.ts.map +1 -1
- package/dist/cjs/cron/cron.service.d.ts +9 -9
- package/dist/cjs/cron/cron.service.d.ts.map +1 -1
- package/dist/cjs/cron/cron.service.js +31 -8
- package/dist/cjs/cron/cron.service.js.map +1 -1
- package/dist/cjs/data-source/data-source-service.interface.d.ts +3 -5
- package/dist/cjs/data-source/data-source-service.interface.d.ts.map +1 -1
- package/dist/cjs/data-source/data-source.service.d.ts +6 -3
- package/dist/cjs/data-source/data-source.service.d.ts.map +1 -1
- package/dist/cjs/data-source/data-source.service.js +39 -36
- package/dist/cjs/data-source/data-source.service.js.map +1 -1
- package/dist/cjs/data-source/data-sources/data-source.interface.d.ts +11 -0
- package/dist/cjs/data-source/data-sources/data-source.interface.d.ts.map +1 -1
- package/dist/cjs/data-source/data-sources/data-source.interface.js +28 -0
- package/dist/cjs/data-source/data-sources/data-source.interface.js.map +1 -1
- package/dist/cjs/data-source/data-sources/postgres-data-source.model.d.ts +4 -6
- package/dist/cjs/data-source/data-sources/postgres-data-source.model.d.ts.map +1 -1
- package/dist/cjs/data-source/data-sources/postgres-data-source.model.js +30 -8
- package/dist/cjs/data-source/data-sources/postgres-data-source.model.js.map +1 -1
- package/dist/cjs/data-source/decorators/data-source.decorator.d.ts.map +1 -1
- package/dist/cjs/data-source/decorators/data-source.decorator.js +0 -1
- package/dist/cjs/data-source/decorators/data-source.decorator.js.map +1 -1
- package/dist/cjs/data-source/repository.d.ts.map +1 -1
- package/dist/cjs/data-source/repository.js +0 -1
- package/dist/cjs/data-source/repository.js.map +1 -1
- package/dist/cjs/di/decorators/injectable.decorator.d.ts +15 -2
- package/dist/cjs/di/decorators/injectable.decorator.d.ts.map +1 -1
- package/dist/cjs/di/decorators/injectable.decorator.js +10 -4
- package/dist/cjs/di/decorators/injectable.decorator.js.map +1 -1
- package/dist/cjs/di/default/zibri-di-providers.default.d.ts.map +1 -1
- package/dist/cjs/di/default/zibri-di-providers.default.js +4 -6
- package/dist/cjs/di/default/zibri-di-providers.default.js.map +1 -1
- package/dist/cjs/di/default/zibri-di-tokens.default.d.ts +5 -6
- package/dist/cjs/di/default/zibri-di-tokens.default.d.ts.map +1 -1
- package/dist/cjs/di/default/zibri-di-tokens.default.js +2 -2
- package/dist/cjs/di/default/zibri-di-tokens.default.js.map +1 -1
- package/dist/cjs/di/di-container.d.ts +6 -1
- package/dist/cjs/di/di-container.d.ts.map +1 -1
- package/dist/cjs/di/di-container.js +34 -2
- package/dist/cjs/di/di-container.js.map +1 -1
- package/dist/cjs/di/errors/no-provider.error.d.ts.map +1 -1
- package/dist/cjs/di/errors/no-provider.error.js +2 -2
- package/dist/cjs/di/errors/no-provider.error.js.map +1 -1
- package/dist/cjs/di/get-all-registered-tokens.function.d.ts +7 -0
- package/dist/cjs/di/get-all-registered-tokens.function.d.ts.map +1 -0
- package/dist/cjs/di/get-all-registered-tokens.function.js +12 -0
- package/dist/cjs/di/get-all-registered-tokens.function.js.map +1 -0
- package/dist/cjs/di/models/di-provider.model.d.ts +3 -3
- package/dist/cjs/di/models/di-provider.model.d.ts.map +1 -1
- package/dist/cjs/di/register.function.d.ts +1 -1
- package/dist/cjs/di/register.function.js +2 -2
- package/dist/cjs/email/email-service.interface.d.ts +0 -5
- package/dist/cjs/email/email-service.interface.d.ts.map +1 -1
- package/dist/cjs/email/email.service.d.ts +9 -12
- package/dist/cjs/email/email.service.d.ts.map +1 -1
- package/dist/cjs/email/email.service.js +33 -14
- package/dist/cjs/email/email.service.js.map +1 -1
- package/dist/cjs/email/models/email-attachment.model.d.ts +2 -2
- package/dist/cjs/email/models/email-attachment.model.d.ts.map +1 -1
- package/dist/cjs/email/models/email-attachment.model.js.map +1 -1
- package/dist/cjs/email/send-queued-emails.cron-job.d.ts +3 -0
- package/dist/cjs/email/send-queued-emails.cron-job.d.ts.map +1 -1
- package/dist/cjs/email/send-queued-emails.cron-job.js +15 -5
- package/dist/cjs/email/send-queued-emails.cron-job.js.map +1 -1
- package/dist/cjs/entity/decorators/entity.decorator.d.ts +6 -2
- package/dist/cjs/entity/decorators/entity.decorator.d.ts.map +1 -1
- package/dist/cjs/entity/decorators/entity.decorator.js +5 -3
- package/dist/cjs/entity/decorators/entity.decorator.js.map +1 -1
- package/dist/cjs/entity/generation/generate-entity-files-for-provider.function.d.ts +2 -2
- package/dist/cjs/entity/generation/generate-entity-files-for-provider.function.d.ts.map +1 -1
- package/dist/cjs/entity/generation/generate-entity-files-for-provider.function.js.map +1 -1
- package/dist/cjs/entity/generation/generate-entity-files.function.js.map +1 -1
- package/dist/cjs/entity/generation/providers/open-api-file.provider.d.ts +3 -3
- package/dist/cjs/entity/generation/providers/open-api-file.provider.d.ts.map +1 -1
- package/dist/cjs/entity/generation/providers/open-api-file.provider.js.map +1 -1
- package/dist/cjs/error-handling/error-handler.js +1 -1
- package/dist/cjs/error-handling/error-handler.js.map +1 -1
- package/dist/cjs/error-handling/errors/http.error.d.ts +0 -5
- package/dist/cjs/error-handling/errors/http.error.d.ts.map +1 -1
- package/dist/cjs/error-handling/errors/http.error.js +1 -5
- package/dist/cjs/error-handling/errors/http.error.js.map +1 -1
- package/dist/cjs/error-handling/errors/missing-tokens.error.d.ts +8 -0
- package/dist/cjs/error-handling/errors/missing-tokens.error.d.ts.map +1 -0
- package/dist/cjs/error-handling/errors/missing-tokens.error.js +22 -0
- package/dist/cjs/error-handling/errors/missing-tokens.error.js.map +1 -0
- package/dist/cjs/global/after-app-init.interface.d.ts +26 -0
- package/dist/cjs/global/after-app-init.interface.d.ts.map +1 -0
- package/dist/cjs/global/after-app-init.interface.js +24 -0
- package/dist/cjs/global/after-app-init.interface.js.map +1 -0
- package/dist/cjs/global/after-app-shutdown.interface.d.ts +29 -0
- package/dist/cjs/global/after-app-shutdown.interface.d.ts.map +1 -0
- package/dist/cjs/global/after-app-shutdown.interface.js +24 -0
- package/dist/cjs/global/after-app-shutdown.interface.js.map +1 -0
- package/dist/cjs/global/app-state.enum.d.ts +11 -0
- package/dist/cjs/global/app-state.enum.d.ts.map +1 -0
- package/dist/cjs/global/app-state.enum.js +15 -0
- package/dist/cjs/global/app-state.enum.js.map +1 -0
- package/dist/cjs/global/before-app-init.interface.d.ts +22 -0
- package/dist/cjs/global/before-app-init.interface.d.ts.map +1 -0
- package/dist/cjs/global/before-app-init.interface.js +24 -0
- package/dist/cjs/global/before-app-init.interface.js.map +1 -0
- package/dist/cjs/global/before-app-shutdown.interface.d.ts +31 -0
- package/dist/cjs/global/before-app-shutdown.interface.d.ts.map +1 -0
- package/dist/cjs/global/before-app-shutdown.interface.js +24 -0
- package/dist/cjs/global/before-app-shutdown.interface.js.map +1 -0
- package/dist/cjs/global/global-registry.d.ts +21 -21
- package/dist/cjs/global/global-registry.d.ts.map +1 -1
- package/dist/cjs/global/global-registry.js +81 -55
- package/dist/cjs/global/global-registry.js.map +1 -1
- package/dist/cjs/global/on-app-init.interface.d.ts +16 -0
- package/dist/cjs/global/on-app-init.interface.d.ts.map +1 -0
- package/dist/cjs/global/on-app-init.interface.js +24 -0
- package/dist/cjs/global/on-app-init.interface.js.map +1 -0
- package/dist/cjs/global/on-app-shutdown.interface.d.ts +21 -0
- package/dist/cjs/global/on-app-shutdown.interface.d.ts.map +1 -0
- package/dist/cjs/global/on-app-shutdown.interface.js +24 -0
- package/dist/cjs/global/on-app-shutdown.interface.js.map +1 -0
- package/dist/cjs/global/on-app-start.interface.d.ts +16 -0
- package/dist/cjs/global/on-app-start.interface.d.ts.map +1 -0
- package/dist/cjs/global/on-app-start.interface.js +24 -0
- package/dist/cjs/global/on-app-start.interface.js.map +1 -0
- package/dist/cjs/handlebars/generate-handlebar-type-files.function.d.ts +5 -4
- package/dist/cjs/handlebars/generate-handlebar-type-files.function.d.ts.map +1 -1
- package/dist/cjs/handlebars/generate-handlebar-type-files.function.js +5 -3
- package/dist/cjs/handlebars/generate-handlebar-type-files.function.js.map +1 -1
- package/dist/cjs/handlebars/handlebar.utilities.d.ts +17 -1
- package/dist/cjs/handlebars/handlebar.utilities.d.ts.map +1 -1
- package/dist/cjs/handlebars/handlebar.utilities.js +23 -4
- package/dist/cjs/handlebars/handlebar.utilities.js.map +1 -1
- package/dist/cjs/http-client/http-client.d.ts.map +1 -1
- package/dist/cjs/http-client/http-client.error.d.ts +62 -0
- package/dist/cjs/http-client/http-client.error.d.ts.map +1 -0
- package/dist/cjs/http-client/http-client.error.js +48 -0
- package/dist/cjs/http-client/http-client.error.js.map +1 -0
- package/dist/cjs/http-client/http-client.js +57 -4
- package/dist/cjs/http-client/http-client.js.map +1 -1
- package/dist/cjs/index.d.ts +28 -7
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +30 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/logging/log-cleanup.cron-job.d.ts +4 -2
- package/dist/cjs/logging/log-cleanup.cron-job.d.ts.map +1 -1
- package/dist/cjs/logging/log-cleanup.cron-job.js +9 -7
- package/dist/cjs/logging/log-cleanup.cron-job.js.map +1 -1
- package/dist/cjs/logging/log.model.js +1 -1
- package/dist/cjs/logging/log.model.js.map +1 -1
- package/dist/cjs/logging/logger.d.ts +3 -2
- package/dist/cjs/logging/logger.d.ts.map +1 -1
- package/dist/cjs/logging/logger.interface.d.ts +0 -5
- package/dist/cjs/logging/logger.interface.d.ts.map +1 -1
- package/dist/cjs/logging/logger.js +4 -2
- package/dist/cjs/logging/logger.js.map +1 -1
- package/dist/cjs/logging/transport/log-to-email.function.d.ts +2 -1
- package/dist/cjs/logging/transport/log-to-email.function.d.ts.map +1 -1
- package/dist/cjs/logging/transport/log-to-email.function.js +3 -17
- package/dist/cjs/logging/transport/log-to-email.function.js.map +1 -1
- package/dist/cjs/logging/transport/logger-transport.model.d.ts +15 -0
- package/dist/cjs/logging/transport/logger-transport.model.d.ts.map +1 -1
- package/dist/cjs/logging/transport/logger-transport.model.js.map +1 -1
- package/dist/cjs/metrics/metrics-service.interface.d.ts +0 -5
- package/dist/cjs/metrics/metrics-service.interface.d.ts.map +1 -1
- package/dist/cjs/metrics/metrics.service.d.ts +6 -3
- package/dist/cjs/metrics/metrics.service.d.ts.map +1 -1
- package/dist/cjs/metrics/metrics.service.js +26 -7
- package/dist/cjs/metrics/metrics.service.js.map +1 -1
- package/dist/cjs/metrics/scrape-metrics.cron-job.d.ts +3 -2
- package/dist/cjs/metrics/scrape-metrics.cron-job.d.ts.map +1 -1
- package/dist/cjs/metrics/scrape-metrics.cron-job.js +9 -7
- package/dist/cjs/metrics/scrape-metrics.cron-job.js.map +1 -1
- package/dist/cjs/multithreading/services/multithreading-service.interface.d.ts +0 -8
- package/dist/cjs/multithreading/services/multithreading-service.interface.d.ts.map +1 -1
- package/dist/cjs/multithreading/services/multithreading.service.d.ts +7 -5
- package/dist/cjs/multithreading/services/multithreading.service.d.ts.map +1 -1
- package/dist/cjs/multithreading/services/multithreading.service.js +11 -9
- package/dist/cjs/multithreading/services/multithreading.service.js.map +1 -1
- package/dist/cjs/open-api/open-api-service.interface.d.ts +0 -4
- package/dist/cjs/open-api/open-api-service.interface.d.ts.map +1 -1
- package/dist/cjs/open-api/open-api.service.d.ts +10 -4
- package/dist/cjs/open-api/open-api.service.d.ts.map +1 -1
- package/dist/cjs/open-api/open-api.service.js +44 -19
- package/dist/cjs/open-api/open-api.service.js.map +1 -1
- package/dist/cjs/parsing/body-parser.interface.d.ts +0 -5
- package/dist/cjs/parsing/body-parser.interface.d.ts.map +1 -1
- package/dist/cjs/parsing/form-data/file-response.model.d.ts +2 -2
- package/dist/cjs/parsing/form-data/file-response.model.d.ts.map +1 -1
- package/dist/cjs/parsing/form-data/file-response.model.js.map +1 -1
- package/dist/cjs/parsing/form-data/file.model.d.ts +2 -2
- package/dist/cjs/parsing/form-data/file.model.d.ts.map +1 -1
- package/dist/cjs/parsing/form-data/file.model.js.map +1 -1
- package/dist/cjs/parsing/form-data/form-data-body-parser-cleanup.cron-job.d.ts +3 -0
- package/dist/cjs/parsing/form-data/form-data-body-parser-cleanup.cron-job.d.ts.map +1 -1
- package/dist/cjs/parsing/form-data/form-data-body-parser-cleanup.cron-job.js +17 -7
- package/dist/cjs/parsing/form-data/form-data-body-parser-cleanup.cron-job.js.map +1 -1
- package/dist/cjs/parsing/form-data/form-data.body-parser.d.ts +3 -2
- package/dist/cjs/parsing/form-data/form-data.body-parser.d.ts.map +1 -1
- package/dist/cjs/parsing/form-data/form-data.body-parser.js +1 -1
- package/dist/cjs/parsing/form-data/form-data.body-parser.js.map +1 -1
- package/dist/cjs/parsing/form-data/form-data.model.d.ts +3 -3
- package/dist/cjs/parsing/form-data/form-data.model.d.ts.map +1 -1
- package/dist/cjs/parsing/form-data/form-data.model.js.map +1 -1
- package/dist/cjs/parsing/parser.d.ts +4 -3
- package/dist/cjs/parsing/parser.d.ts.map +1 -1
- package/dist/cjs/parsing/parser.interface.d.ts +0 -5
- package/dist/cjs/parsing/parser.interface.d.ts.map +1 -1
- package/dist/cjs/parsing/parser.js +20 -4
- package/dist/cjs/parsing/parser.js.map +1 -1
- package/dist/cjs/plugin/invoicing/invoicing.plugin.d.ts +2 -1
- package/dist/cjs/plugin/invoicing/invoicing.plugin.d.ts.map +1 -1
- package/dist/cjs/plugin/invoicing/invoicing.plugin.js +10 -8
- package/dist/cjs/plugin/invoicing/invoicing.plugin.js.map +1 -1
- package/dist/cjs/plugin/invoicing/invoicing.tokens.d.ts +1 -1
- package/dist/cjs/plugin/invoicing/invoicing.tokens.d.ts.map +1 -1
- package/dist/cjs/plugin/invoicing/invoicing.tokens.js +2 -2
- package/dist/cjs/plugin/invoicing/invoicing.tokens.js.map +1 -1
- package/dist/cjs/plugin/invoicing/models/invoice.model.js +1 -1
- package/dist/cjs/plugin/invoicing/models/invoice.model.js.map +1 -1
- package/dist/cjs/plugin/invoicing/models/number-invoices.model.js +1 -1
- package/dist/cjs/plugin/invoicing/models/number-invoices.model.js.map +1 -1
- package/dist/cjs/plugin/invoicing/services/conformance/en16931/en16931-conformance.service.js +2 -2
- package/dist/cjs/plugin/invoicing/services/conformance/en16931/en16931-conformance.service.js.map +1 -1
- package/dist/cjs/plugin/invoicing/services/conformance/en16931/peppol-conformance.service.js +1 -1
- package/dist/cjs/plugin/invoicing/services/conformance/en16931/peppol-conformance.service.js.map +1 -1
- package/dist/cjs/plugin/invoicing/services/conformance/en16931/x-rechnung-conformance.service.js +1 -1
- package/dist/cjs/plugin/invoicing/services/conformance/en16931/x-rechnung-conformance.service.js.map +1 -1
- package/dist/cjs/plugin/invoicing/services/invoice-calc.service.d.ts.map +1 -1
- package/dist/cjs/plugin/invoicing/services/invoice-calc.service.js +12 -2
- package/dist/cjs/plugin/invoicing/services/invoice-calc.service.js.map +1 -1
- package/dist/cjs/plugin/invoicing/services/invoice-number.service.d.ts.map +1 -1
- package/dist/cjs/plugin/invoicing/services/invoice-number.service.js +4 -2
- package/dist/cjs/plugin/invoicing/services/invoice-number.service.js.map +1 -1
- package/dist/cjs/plugin/invoicing/services/invoice-pdf.service.d.ts.map +1 -1
- package/dist/cjs/plugin/invoicing/services/invoice-pdf.service.js +5 -3
- package/dist/cjs/plugin/invoicing/services/invoice-pdf.service.js.map +1 -1
- package/dist/cjs/plugin/mailing-list/mailing-list.controller.d.ts +26 -0
- package/dist/cjs/plugin/mailing-list/mailing-list.controller.d.ts.map +1 -0
- package/dist/cjs/plugin/mailing-list/mailing-list.controller.js +132 -0
- package/dist/cjs/plugin/mailing-list/mailing-list.controller.js.map +1 -0
- package/dist/cjs/plugin/mailing-list/mailing-list.plugin.d.ts +12 -0
- package/dist/cjs/plugin/mailing-list/mailing-list.plugin.d.ts.map +1 -0
- package/dist/cjs/plugin/mailing-list/mailing-list.plugin.js +37 -0
- package/dist/cjs/plugin/mailing-list/mailing-list.plugin.js.map +1 -0
- package/dist/cjs/plugin/mailing-list/mailing-list.tokens.d.ts +20 -0
- package/dist/cjs/plugin/mailing-list/mailing-list.tokens.d.ts.map +1 -0
- package/dist/cjs/plugin/mailing-list/mailing-list.tokens.js +22 -0
- package/dist/cjs/plugin/mailing-list/mailing-list.tokens.js.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-base-email-template.model.d.ts +35 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-base-email-template.model.d.ts.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-base-email-template.model.js +3 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-base-email-template.model.js.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-preferences-page-template.model.d.ts +26 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-preferences-page-template.model.d.ts.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-preferences-page-template.model.js +3 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-preferences-page-template.model.js.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-confirmation-email-template.model.d.ts +26 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-confirmation-email-template.model.d.ts.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-confirmation-email-template.model.js +3 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-confirmation-email-template.model.js.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-success-page-template.model.d.ts +26 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-success-page-template.model.d.ts.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-success-page-template.model.js +3 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-subscribe-success-page-template.model.js.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-subscriber.model.d.ts.map +1 -0
- package/dist/cjs/{email → plugin}/mailing-list/models/mailing-list-subscriber.model.js +1 -1
- package/dist/cjs/plugin/mailing-list/models/mailing-list-subscriber.model.js.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.d.ts.map +1 -0
- package/dist/cjs/{email → plugin}/mailing-list/models/mailing-list-subscription-confirmation-token.model.js +1 -1
- package/dist/cjs/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.js.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-unsubscribe-confirmation-page-template.model.d.ts +26 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-unsubscribe-confirmation-page-template.model.d.ts.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-unsubscribe-confirmation-page-template.model.js +3 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list-unsubscribe-confirmation-page-template.model.js.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/mailing-list.model.d.ts.map +1 -0
- package/dist/cjs/{email → plugin}/mailing-list/models/mailing-list.model.js +1 -1
- package/dist/cjs/plugin/mailing-list/models/mailing-list.model.js.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/update-mailing-list-preferences.model.d.ts.map +1 -0
- package/dist/cjs/plugin/mailing-list/models/update-mailing-list-preferences.model.js.map +1 -0
- package/dist/cjs/plugin/mailing-list/services/mailing-list-service.interface.d.ts +68 -0
- package/dist/cjs/plugin/mailing-list/services/mailing-list-service.interface.d.ts.map +1 -0
- package/dist/cjs/{email/mailing-list → plugin/mailing-list/services}/mailing-list-service.interface.js +2 -2
- package/dist/cjs/plugin/mailing-list/services/mailing-list-service.interface.js.map +1 -0
- package/dist/cjs/plugin/mailing-list/services/mailing-list.service.d.ts +36 -0
- package/dist/cjs/plugin/mailing-list/services/mailing-list.service.d.ts.map +1 -0
- package/dist/cjs/plugin/mailing-list/services/mailing-list.service.js +168 -0
- package/dist/cjs/plugin/mailing-list/services/mailing-list.service.js.map +1 -0
- package/dist/cjs/plugin/payment/models/payment-plugin-options-input.model.d.ts +2 -7
- package/dist/cjs/plugin/payment/models/payment-plugin-options-input.model.d.ts.map +1 -1
- package/dist/cjs/plugin/payment/models/payment-plugin-options.model.d.ts +2 -7
- package/dist/cjs/plugin/payment/models/payment-plugin-options.model.d.ts.map +1 -1
- package/dist/cjs/plugin/payment/models/payment.model.d.ts +4 -0
- package/dist/cjs/plugin/payment/models/payment.model.d.ts.map +1 -1
- package/dist/cjs/plugin/payment/models/payment.model.js +9 -1
- package/dist/cjs/plugin/payment/models/payment.model.js.map +1 -1
- package/dist/cjs/plugin/payment/payment.plugin.d.ts +2 -1
- package/dist/cjs/plugin/payment/payment.plugin.d.ts.map +1 -1
- package/dist/cjs/plugin/payment/payment.plugin.js +24 -10
- package/dist/cjs/plugin/payment/payment.plugin.js.map +1 -1
- package/dist/cjs/plugin/payment/payment.tokens.d.ts +17 -9
- package/dist/cjs/plugin/payment/payment.tokens.d.ts.map +1 -1
- package/dist/cjs/plugin/payment/payment.tokens.js +15 -3
- package/dist/cjs/plugin/payment/payment.tokens.js.map +1 -1
- package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.d.ts +9 -2
- package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.d.ts.map +1 -1
- package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.js +17 -1
- package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal-client.js.map +1 -1
- package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal.payment-provider.d.ts +20 -11
- package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal.payment-provider.d.ts.map +1 -1
- package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js +1 -7
- package/dist/cjs/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js.map +1 -1
- package/dist/cjs/plugin/payment/providers/payment-provider.interface.d.ts +49 -32
- package/dist/cjs/plugin/payment/providers/payment-provider.interface.d.ts.map +1 -1
- package/dist/cjs/plugin/payment/services/payment-service.interface.d.ts +6 -7
- package/dist/cjs/plugin/payment/services/payment-service.interface.d.ts.map +1 -1
- package/dist/cjs/plugin/payment/services/payment-service.types.d.ts +24 -44
- package/dist/cjs/plugin/payment/services/payment-service.types.d.ts.map +1 -1
- package/dist/cjs/plugin/payment/services/payment.service.d.ts +2 -6
- package/dist/cjs/plugin/payment/services/payment.service.d.ts.map +1 -1
- package/dist/cjs/plugin/payment/services/payment.service.js +8 -4
- package/dist/cjs/plugin/payment/services/payment.service.js.map +1 -1
- package/dist/cjs/plugin/plugin.model.d.ts +1 -1
- package/dist/cjs/preact/generate-client-scripts.function.d.ts +4 -8
- package/dist/cjs/preact/generate-client-scripts.function.d.ts.map +1 -1
- package/dist/cjs/preact/generate-client-scripts.function.js +6 -9
- package/dist/cjs/preact/generate-client-scripts.function.js.map +1 -1
- package/dist/cjs/preact/preact-email-component.model.d.ts +6 -0
- package/dist/cjs/preact/preact-email-component.model.d.ts.map +1 -0
- package/dist/cjs/preact/preact-email-component.model.js +3 -0
- package/dist/cjs/preact/preact-email-component.model.js.map +1 -0
- package/dist/cjs/preact/preact.utilities.d.ts +18 -4
- package/dist/cjs/preact/preact.utilities.d.ts.map +1 -1
- package/dist/cjs/preact/preact.utilities.js +41 -5
- package/dist/cjs/preact/preact.utilities.js.map +1 -1
- package/dist/cjs/preact/validate-email-templates.function.d.ts +5 -0
- package/dist/cjs/preact/validate-email-templates.function.d.ts.map +1 -0
- package/dist/cjs/preact/validate-email-templates.function.js +10 -0
- package/dist/cjs/preact/validate-email-templates.function.js.map +1 -0
- package/dist/cjs/routing/decorators/controller.decorator.d.ts +16 -1
- package/dist/cjs/routing/decorators/controller.decorator.d.ts.map +1 -1
- package/dist/cjs/routing/decorators/controller.decorator.js +7 -2
- package/dist/cjs/routing/decorators/controller.decorator.js.map +1 -1
- package/dist/cjs/routing/models/crud-controller.model.js.map +1 -1
- package/dist/cjs/routing/request.context.d.ts +1 -1
- package/dist/cjs/routing/request.context.d.ts.map +1 -1
- package/dist/cjs/routing/request.context.js +1 -4
- package/dist/cjs/routing/request.context.js.map +1 -1
- package/dist/cjs/routing/router.d.ts +12 -7
- package/dist/cjs/routing/router.d.ts.map +1 -1
- package/dist/cjs/routing/router.interface.d.ts +1 -10
- package/dist/cjs/routing/router.interface.d.ts.map +1 -1
- package/dist/cjs/routing/router.js +40 -20
- package/dist/cjs/routing/router.js.map +1 -1
- package/dist/cjs/utilities/fs.utilities.d.ts +20 -20
- package/dist/cjs/utilities/fs.utilities.d.ts.map +1 -1
- package/dist/cjs/utilities/fs.utilities.js.map +1 -1
- package/dist/cjs/utilities/metadata-injection-keys.enum.d.ts +3 -3
- package/dist/cjs/utilities/metadata-injection-keys.enum.d.ts.map +1 -1
- package/dist/cjs/utilities/metadata-injection-keys.enum.js +4 -3
- package/dist/cjs/utilities/metadata-injection-keys.enum.js.map +1 -1
- package/dist/cjs/utilities/metadata.utilities.d.ts +6 -5
- package/dist/cjs/utilities/metadata.utilities.d.ts.map +1 -1
- package/dist/cjs/utilities/metadata.utilities.js +16 -9
- package/dist/cjs/utilities/metadata.utilities.js.map +1 -1
- package/dist/cjs/utilities/promise.utilities.d.ts +7 -0
- package/dist/cjs/utilities/promise.utilities.d.ts.map +1 -1
- package/dist/cjs/utilities/promise.utilities.js +26 -0
- package/dist/cjs/utilities/promise.utilities.js.map +1 -1
- package/dist/cjs/utilities/validate-entities-registered.function.d.ts +3 -1
- package/dist/cjs/utilities/validate-entities-registered.function.d.ts.map +1 -1
- package/dist/cjs/utilities/validate-entities-registered.function.js +3 -3
- package/dist/cjs/utilities/validate-entities-registered.function.js.map +1 -1
- package/dist/cjs/utilities/validate-tokens-registered.function.d.ts +9 -0
- package/dist/cjs/utilities/validate-tokens-registered.function.d.ts.map +1 -0
- package/dist/cjs/utilities/validate-tokens-registered.function.js +27 -0
- package/dist/cjs/utilities/validate-tokens-registered.function.js.map +1 -0
- package/dist/cjs/validation/validation.service.d.ts.map +1 -1
- package/dist/cjs/validation/validation.service.js +6 -2
- package/dist/cjs/validation/validation.service.js.map +1 -1
- package/dist/cjs/websocket/decorators/websocket-controller.decorator.d.ts +8 -2
- package/dist/cjs/websocket/decorators/websocket-controller.decorator.d.ts.map +1 -1
- package/dist/cjs/websocket/decorators/websocket-controller.decorator.js +4 -2
- package/dist/cjs/websocket/decorators/websocket-controller.decorator.js.map +1 -1
- package/dist/cjs/websocket/services/websocket-service.interface.d.ts +0 -5
- package/dist/cjs/websocket/services/websocket-service.interface.d.ts.map +1 -1
- package/dist/cjs/websocket/services/websocket.service.d.ts +5 -2
- package/dist/cjs/websocket/services/websocket.service.d.ts.map +1 -1
- package/dist/cjs/websocket/services/websocket.service.js +9 -3
- package/dist/cjs/websocket/services/websocket.service.js.map +1 -1
- package/dist/esm/application.js +221 -76
- package/dist/esm/application.js.map +1 -1
- package/dist/esm/assets/asset.service.js +10 -6
- package/dist/esm/assets/asset.service.js.map +1 -1
- package/dist/esm/auth/2fa/methods/otp/otp-credentials.model.js +1 -1
- package/dist/esm/auth/2fa/methods/otp/otp-credentials.model.js.map +1 -1
- package/dist/esm/auth/2fa/methods/otp/otp.two-factor-method.js +7 -18
- package/dist/esm/auth/2fa/methods/otp/otp.two-factor-method.js.map +1 -1
- package/dist/esm/auth/2fa/methods/two-factor-method.interface.js +20 -1
- package/dist/esm/auth/2fa/methods/two-factor-method.interface.js.map +1 -1
- package/dist/esm/auth/2fa/two-factor.service.js +27 -10
- package/dist/esm/auth/2fa/two-factor.service.js.map +1 -1
- package/dist/esm/auth/auth.service.js +29 -13
- package/dist/esm/auth/auth.service.js.map +1 -1
- package/dist/esm/auth/models/password-reset-token.model.js +1 -1
- package/dist/esm/auth/models/password-reset-token.model.js.map +1 -1
- package/dist/esm/auth/strategies/auth-strategy.interface.js +27 -1
- package/dist/esm/auth/strategies/auth-strategy.interface.js.map +1 -1
- package/dist/esm/auth/strategies/jwt/jwt-auth.controller.js +1 -1
- package/dist/esm/auth/strategies/jwt/jwt-auth.controller.js.map +1 -1
- package/dist/esm/auth/strategies/jwt/jwt-credentials.model.js +1 -1
- package/dist/esm/auth/strategies/jwt/jwt-credentials.model.js.map +1 -1
- package/dist/esm/auth/strategies/jwt/jwt-refresh-token.model.js +1 -1
- package/dist/esm/auth/strategies/jwt/jwt-refresh-token.model.js.map +1 -1
- package/dist/esm/auth/strategies/jwt/jwt.auth-strategy.js +63 -53
- package/dist/esm/auth/strategies/jwt/jwt.auth-strategy.js.map +1 -1
- package/dist/esm/auth/user/user.service.js +13 -2
- package/dist/esm/auth/user/user.service.js.map +1 -1
- package/dist/esm/backup/backup-entity.model.js +1 -1
- package/dist/esm/backup/backup-entity.model.js.map +1 -1
- package/dist/esm/backup/backup-resource-entity.model.js +1 -1
- package/dist/esm/backup/backup-resource-entity.model.js.map +1 -1
- package/dist/esm/backup/backup.service.js +39 -8
- package/dist/esm/backup/backup.service.js.map +1 -1
- package/dist/esm/backup/transports/fs.backup-transport.js.map +1 -1
- package/dist/esm/change-sets/change-set-repository.js +8 -7
- package/dist/esm/change-sets/change-set-repository.js.map +1 -1
- package/dist/esm/cron/cron-job.model.js +7 -0
- package/dist/esm/cron/cron-job.model.js.map +1 -1
- package/dist/esm/cron/cron.service.js +32 -8
- package/dist/esm/cron/cron.service.js.map +1 -1
- package/dist/esm/data-source/data-source.service.js +40 -36
- package/dist/esm/data-source/data-source.service.js.map +1 -1
- package/dist/esm/data-source/data-sources/data-source.interface.js +27 -1
- package/dist/esm/data-source/data-sources/data-source.interface.js.map +1 -1
- package/dist/esm/data-source/data-sources/postgres-data-source.model.js +31 -8
- package/dist/esm/data-source/data-sources/postgres-data-source.model.js.map +1 -1
- package/dist/esm/data-source/decorators/data-source.decorator.js +0 -1
- package/dist/esm/data-source/decorators/data-source.decorator.js.map +1 -1
- package/dist/esm/data-source/repository.js +0 -1
- package/dist/esm/data-source/repository.js.map +1 -1
- package/dist/esm/di/decorators/injectable.decorator.js +10 -4
- package/dist/esm/di/decorators/injectable.decorator.js.map +1 -1
- package/dist/esm/di/default/zibri-di-providers.default.js +4 -6
- package/dist/esm/di/default/zibri-di-providers.default.js.map +1 -1
- package/dist/esm/di/default/zibri-di-tokens.default.js +2 -2
- package/dist/esm/di/default/zibri-di-tokens.default.js.map +1 -1
- package/dist/esm/di/di-container.js +34 -2
- package/dist/esm/di/di-container.js.map +1 -1
- package/dist/esm/di/errors/no-provider.error.js +2 -2
- package/dist/esm/di/errors/no-provider.error.js.map +1 -1
- package/dist/esm/di/get-all-registered-tokens.function.js +9 -0
- package/dist/esm/di/get-all-registered-tokens.function.js.map +1 -0
- package/dist/esm/di/register.function.js +2 -2
- package/dist/esm/email/email.service.js +35 -15
- package/dist/esm/email/email.service.js.map +1 -1
- package/dist/esm/email/models/email-attachment.model.js.map +1 -1
- package/dist/esm/email/send-queued-emails.cron-job.js +15 -5
- package/dist/esm/email/send-queued-emails.cron-job.js.map +1 -1
- package/dist/esm/entity/decorators/entity.decorator.js +5 -3
- package/dist/esm/entity/decorators/entity.decorator.js.map +1 -1
- package/dist/esm/entity/generation/generate-entity-files-for-provider.function.js.map +1 -1
- package/dist/esm/entity/generation/generate-entity-files.function.js.map +1 -1
- package/dist/esm/entity/generation/providers/open-api-file.provider.js.map +1 -1
- package/dist/esm/error-handling/error-handler.js +1 -1
- package/dist/esm/error-handling/error-handler.js.map +1 -1
- package/dist/esm/error-handling/errors/http.error.js +1 -5
- package/dist/esm/error-handling/errors/http.error.js.map +1 -1
- package/dist/esm/error-handling/errors/missing-tokens.error.js +18 -0
- package/dist/esm/error-handling/errors/missing-tokens.error.js.map +1 -0
- package/dist/esm/global/after-app-init.interface.js +21 -0
- package/dist/esm/global/after-app-init.interface.js.map +1 -0
- package/dist/esm/global/after-app-shutdown.interface.js +21 -0
- package/dist/esm/global/after-app-shutdown.interface.js.map +1 -0
- package/dist/esm/global/app-state.enum.js +12 -0
- package/dist/esm/global/app-state.enum.js.map +1 -0
- package/dist/esm/global/before-app-init.interface.js +21 -0
- package/dist/esm/global/before-app-init.interface.js.map +1 -0
- package/dist/esm/global/before-app-shutdown.interface.js +21 -0
- package/dist/esm/global/before-app-shutdown.interface.js.map +1 -0
- package/dist/esm/global/global-registry.js +64 -38
- package/dist/esm/global/global-registry.js.map +1 -1
- package/dist/esm/global/on-app-init.interface.js +21 -0
- package/dist/esm/global/on-app-init.interface.js.map +1 -0
- package/dist/esm/global/on-app-shutdown.interface.js +21 -0
- package/dist/esm/global/on-app-shutdown.interface.js.map +1 -0
- package/dist/esm/global/on-app-start.interface.js +21 -0
- package/dist/esm/global/on-app-start.interface.js.map +1 -0
- package/dist/esm/handlebars/generate-handlebar-type-files.function.js +5 -3
- package/dist/esm/handlebars/generate-handlebar-type-files.function.js.map +1 -1
- package/dist/esm/handlebars/handlebar.utilities.js +23 -4
- package/dist/esm/handlebars/handlebar.utilities.js.map +1 -1
- package/dist/esm/http-client/http-client.error.js +43 -0
- package/dist/esm/http-client/http-client.error.js.map +1 -0
- package/dist/esm/http-client/http-client.js +24 -1
- package/dist/esm/http-client/http-client.js.map +1 -1
- package/dist/esm/index.js +30 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/logging/log-cleanup.cron-job.js +10 -8
- package/dist/esm/logging/log-cleanup.cron-job.js.map +1 -1
- package/dist/esm/logging/log.model.js +1 -1
- package/dist/esm/logging/log.model.js.map +1 -1
- package/dist/esm/logging/logger.js +4 -2
- package/dist/esm/logging/logger.js.map +1 -1
- package/dist/esm/logging/transport/log-to-email.function.js +3 -17
- package/dist/esm/logging/transport/log-to-email.function.js.map +1 -1
- package/dist/esm/logging/transport/logger-transport.model.js.map +1 -1
- package/dist/esm/metrics/metrics.service.js +27 -7
- package/dist/esm/metrics/metrics.service.js.map +1 -1
- package/dist/esm/metrics/scrape-metrics.cron-job.js +9 -7
- package/dist/esm/metrics/scrape-metrics.cron-job.js.map +1 -1
- package/dist/esm/multithreading/services/multithreading.service.js +11 -9
- package/dist/esm/multithreading/services/multithreading.service.js.map +1 -1
- package/dist/esm/open-api/open-api.service.js +45 -19
- package/dist/esm/open-api/open-api.service.js.map +1 -1
- package/dist/esm/parsing/form-data/file-response.model.js.map +1 -1
- package/dist/esm/parsing/form-data/file.model.js.map +1 -1
- package/dist/esm/parsing/form-data/form-data-body-parser-cleanup.cron-job.js +17 -7
- package/dist/esm/parsing/form-data/form-data-body-parser-cleanup.cron-job.js.map +1 -1
- package/dist/esm/parsing/form-data/form-data.body-parser.js +1 -1
- package/dist/esm/parsing/form-data/form-data.body-parser.js.map +1 -1
- package/dist/esm/parsing/form-data/form-data.model.js.map +1 -1
- package/dist/esm/parsing/parser.js +21 -4
- package/dist/esm/parsing/parser.js.map +1 -1
- package/dist/esm/plugin/invoicing/invoicing.plugin.js +10 -8
- package/dist/esm/plugin/invoicing/invoicing.plugin.js.map +1 -1
- package/dist/esm/plugin/invoicing/invoicing.tokens.js +1 -1
- package/dist/esm/plugin/invoicing/invoicing.tokens.js.map +1 -1
- package/dist/esm/plugin/invoicing/models/invoice.model.js +1 -1
- package/dist/esm/plugin/invoicing/models/invoice.model.js.map +1 -1
- package/dist/esm/plugin/invoicing/models/number-invoices.model.js +1 -1
- package/dist/esm/plugin/invoicing/models/number-invoices.model.js.map +1 -1
- package/dist/esm/plugin/invoicing/services/conformance/en16931/en16931-conformance.service.js +3 -3
- package/dist/esm/plugin/invoicing/services/conformance/en16931/en16931-conformance.service.js.map +1 -1
- package/dist/esm/plugin/invoicing/services/conformance/en16931/peppol-conformance.service.js +1 -1
- package/dist/esm/plugin/invoicing/services/conformance/en16931/peppol-conformance.service.js.map +1 -1
- package/dist/esm/plugin/invoicing/services/conformance/en16931/x-rechnung-conformance.service.js +1 -1
- package/dist/esm/plugin/invoicing/services/conformance/en16931/x-rechnung-conformance.service.js.map +1 -1
- package/dist/esm/plugin/invoicing/services/invoice-calc.service.js +13 -2
- package/dist/esm/plugin/invoicing/services/invoice-calc.service.js.map +1 -1
- package/dist/esm/plugin/invoicing/services/invoice-number.service.js +4 -2
- package/dist/esm/plugin/invoicing/services/invoice-number.service.js.map +1 -1
- package/dist/esm/plugin/invoicing/services/invoice-pdf.service.js +6 -4
- package/dist/esm/plugin/invoicing/services/invoice-pdf.service.js.map +1 -1
- package/dist/esm/plugin/mailing-list/mailing-list.controller.js +129 -0
- package/dist/esm/plugin/mailing-list/mailing-list.controller.js.map +1 -0
- package/dist/esm/plugin/mailing-list/mailing-list.plugin.js +33 -0
- package/dist/esm/plugin/mailing-list/mailing-list.plugin.js.map +1 -0
- package/dist/esm/plugin/mailing-list/mailing-list.tokens.js +19 -0
- package/dist/esm/plugin/mailing-list/mailing-list.tokens.js.map +1 -0
- package/dist/esm/plugin/mailing-list/models/mailing-list-base-email-template.model.js +2 -0
- package/dist/esm/plugin/mailing-list/models/mailing-list-base-email-template.model.js.map +1 -0
- package/dist/esm/plugin/mailing-list/models/mailing-list-preferences-page-template.model.js +2 -0
- package/dist/esm/plugin/mailing-list/models/mailing-list-preferences-page-template.model.js.map +1 -0
- package/dist/esm/plugin/mailing-list/models/mailing-list-subscribe-confirmation-email-template.model.js +2 -0
- package/dist/esm/plugin/mailing-list/models/mailing-list-subscribe-confirmation-email-template.model.js.map +1 -0
- package/dist/esm/plugin/mailing-list/models/mailing-list-subscribe-success-page-template.model.js +2 -0
- package/dist/esm/plugin/mailing-list/models/mailing-list-subscribe-success-page-template.model.js.map +1 -0
- package/dist/esm/{email → plugin}/mailing-list/models/mailing-list-subscriber.model.js +1 -1
- package/dist/esm/plugin/mailing-list/models/mailing-list-subscriber.model.js.map +1 -0
- package/dist/esm/{email → plugin}/mailing-list/models/mailing-list-subscription-confirmation-token.model.js +1 -1
- package/dist/esm/plugin/mailing-list/models/mailing-list-subscription-confirmation-token.model.js.map +1 -0
- package/dist/esm/plugin/mailing-list/models/mailing-list-unsubscribe-confirmation-page-template.model.js +2 -0
- package/dist/esm/plugin/mailing-list/models/mailing-list-unsubscribe-confirmation-page-template.model.js.map +1 -0
- package/dist/esm/{email → plugin}/mailing-list/models/mailing-list.model.js +1 -1
- package/dist/esm/plugin/mailing-list/models/mailing-list.model.js.map +1 -0
- package/dist/esm/plugin/mailing-list/models/update-mailing-list-preferences.model.js.map +1 -0
- package/dist/esm/plugin/mailing-list/services/mailing-list-service.interface.js +8 -0
- package/dist/esm/plugin/mailing-list/services/mailing-list-service.interface.js.map +1 -0
- package/dist/esm/plugin/mailing-list/services/mailing-list.service.js +165 -0
- package/dist/esm/plugin/mailing-list/services/mailing-list.service.js.map +1 -0
- package/dist/esm/plugin/payment/models/payment.model.js +9 -1
- package/dist/esm/plugin/payment/models/payment.model.js.map +1 -1
- package/dist/esm/plugin/payment/payment.plugin.js +25 -11
- package/dist/esm/plugin/payment/payment.plugin.js.map +1 -1
- package/dist/esm/plugin/payment/payment.tokens.js +14 -2
- package/dist/esm/plugin/payment/payment.tokens.js.map +1 -1
- package/dist/esm/plugin/payment/providers/pay-pal/pay-pal-client.js +17 -1
- package/dist/esm/plugin/payment/providers/pay-pal/pay-pal-client.js.map +1 -1
- package/dist/esm/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js +1 -7
- package/dist/esm/plugin/payment/providers/pay-pal/pay-pal.payment-provider.js.map +1 -1
- package/dist/esm/plugin/payment/services/payment.service.js +9 -5
- package/dist/esm/plugin/payment/services/payment.service.js.map +1 -1
- package/dist/esm/preact/generate-client-scripts.function.js +6 -9
- package/dist/esm/preact/generate-client-scripts.function.js.map +1 -1
- package/dist/esm/preact/preact-email-component.model.js +2 -0
- package/dist/esm/preact/preact-email-component.model.js.map +1 -0
- package/dist/esm/preact/preact.utilities.js +41 -5
- package/dist/esm/preact/preact.utilities.js.map +1 -1
- package/dist/esm/preact/validate-email-templates.function.js +7 -0
- package/dist/esm/preact/validate-email-templates.function.js.map +1 -0
- package/dist/esm/routing/decorators/controller.decorator.js +7 -2
- package/dist/esm/routing/decorators/controller.decorator.js.map +1 -1
- package/dist/esm/routing/models/crud-controller.model.js.map +1 -1
- package/dist/esm/routing/request.context.js +1 -4
- package/dist/esm/routing/request.context.js.map +1 -1
- package/dist/esm/routing/router.js +41 -20
- package/dist/esm/routing/router.js.map +1 -1
- package/dist/esm/utilities/fs.utilities.js.map +1 -1
- package/dist/esm/utilities/metadata-injection-keys.enum.js +4 -3
- package/dist/esm/utilities/metadata-injection-keys.enum.js.map +1 -1
- package/dist/esm/utilities/metadata.utilities.js +16 -9
- package/dist/esm/utilities/metadata.utilities.js.map +1 -1
- package/dist/esm/utilities/promise.utilities.js +26 -0
- package/dist/esm/utilities/promise.utilities.js.map +1 -1
- package/dist/esm/utilities/validate-entities-registered.function.js +3 -3
- package/dist/esm/utilities/validate-entities-registered.function.js.map +1 -1
- package/dist/esm/utilities/validate-tokens-registered.function.js +24 -0
- package/dist/esm/utilities/validate-tokens-registered.function.js.map +1 -0
- package/dist/esm/validation/validation.service.js +7 -2
- package/dist/esm/validation/validation.service.js.map +1 -1
- package/dist/esm/websocket/decorators/websocket-controller.decorator.js +4 -2
- package/dist/esm/websocket/decorators/websocket-controller.decorator.js.map +1 -1
- package/dist/esm/websocket/services/websocket.service.js +9 -3
- package/dist/esm/websocket/services/websocket.service.js.map +1 -1
- package/package.json +3 -3
- package/src/__testing__/constants.ts +7 -3
- package/src/__testing__/mocks/assets/thread-job.worker.cjs +92 -0
- package/src/__testing__/mocks/entities/jwt-user.entity.ts +6 -0
- package/src/__testing__/mocks/entities/roles.enum.ts +4 -0
- package/src/__testing__/test-server/create-test-data-source.function.ts +67 -0
- package/src/__testing__/test-server/plugins.ts +3 -0
- package/src/__testing__/test-server/providers.ts +77 -0
- package/src/__testing__/test-server/start-test-server.function.ts +86 -0
- package/src/__testing__/test-server/user-repository.ts +34 -0
- package/src/application.ts +257 -103
- package/src/assets/asset-service.interface.ts +4 -18
- package/src/assets/asset-service.test.ts +3 -3
- package/src/assets/asset.service.ts +22 -15
- package/src/auth/2fa/methods/otp/otp-credentials.model.ts +1 -1
- package/src/auth/2fa/methods/otp/otp.two-factor-method.ts +4 -20
- package/src/auth/2fa/methods/two-factor-method.interface.ts +23 -4
- package/src/auth/2fa/two-factor-service.interface.ts +0 -4
- package/src/auth/2fa/two-factor.service.ts +13 -12
- package/src/auth/auth-service.interface.ts +0 -4
- package/src/auth/auth.service.ts +16 -18
- package/src/auth/models/password-reset-token.model.ts +1 -1
- package/src/auth/strategies/auth-strategy.interface.ts +31 -4
- package/src/auth/strategies/jwt/jwt-auth.controller.ts +17 -1
- package/src/auth/strategies/jwt/jwt-credentials.model.ts +1 -1
- package/src/auth/strategies/jwt/jwt-refresh-token.model.ts +1 -1
- package/src/auth/strategies/jwt/jwt.auth-strategy.ts +46 -62
- package/src/auth/user/user.service.ts +2 -0
- package/src/backup/backup-entity.model.ts +1 -1
- package/src/backup/backup-resource-entity.model.ts +1 -1
- package/src/backup/backup-service.interface.ts +0 -4
- package/src/backup/backup-service.test.ts +18 -32
- package/src/backup/backup.service.ts +28 -10
- package/src/backup/transports/fs.backup-transport.ts +9 -9
- package/src/change-sets/change-set-repository.ts +10 -9
- package/src/cron/cron-job.model.ts +9 -1
- package/src/cron/cron-service.interface.ts +0 -5
- package/src/cron/cron.service.ts +21 -12
- package/src/data-source/data-source-service.interface.ts +4 -6
- package/src/data-source/data-source.service.ts +27 -40
- package/src/data-source/data-sources/data-source.interface.ts +36 -0
- package/src/data-source/data-sources/postgres-data-source.model.ts +18 -8
- package/src/data-source/decorators/data-source.decorator.ts +1 -2
- package/src/data-source/migration/migration.test.ts +2 -2
- package/src/data-source/repository.ts +0 -1
- package/src/data-source/transaction/transaction.test.ts +13 -34
- package/src/di/decorators/injectable.decorator.ts +28 -5
- package/src/di/default/zibri-di-providers.default.ts +4 -6
- package/src/di/default/zibri-di-tokens.default.ts +6 -8
- package/src/di/di-container.ts +41 -2
- package/src/di/errors/no-provider.error.ts +4 -2
- package/src/di/get-all-registered-tokens.function.ts +10 -0
- package/src/di/models/di-provider.model.ts +3 -3
- package/src/di/register.function.ts +2 -2
- package/src/di/unregister.function.ts +2 -2
- package/src/email/email-service.interface.ts +0 -5
- package/src/email/email.service.ts +20 -15
- package/src/email/models/email-attachment.model.ts +2 -2
- package/src/email/send-queued-emails.cron-job.ts +10 -6
- package/src/entity/decorators/entity.decorator.ts +10 -4
- package/src/entity/generation/generate-entity-files-for-provider.function.ts +3 -3
- package/src/entity/generation/generate-entity-files.function.ts +5 -5
- package/src/entity/generation/providers/open-api-file.provider.ts +2 -2
- package/src/error-handling/error-handler.ts +1 -1
- package/src/error-handling/errors/http.error.ts +1 -5
- package/src/error-handling/errors/missing-tokens.error.ts +19 -0
- package/src/global/after-app-init.interface.ts +43 -0
- package/src/global/after-app-shutdown.interface.ts +46 -0
- package/src/global/app-state.enum.ts +10 -0
- package/src/global/before-app-init.interface.ts +39 -0
- package/src/global/before-app-shutdown.interface.ts +48 -0
- package/src/global/global-registry.ts +66 -39
- package/src/global/on-app-init.interface.ts +33 -0
- package/src/global/on-app-shutdown.interface.ts +38 -0
- package/src/global/on-app-start.interface.ts +33 -0
- package/src/handlebars/generate-handlebar-type-files.function.ts +12 -9
- package/src/handlebars/handlebar.utilities.ts +30 -6
- package/src/http-client/http-client.error.ts +94 -0
- package/src/http-client/http-client.ts +29 -2
- package/src/index.ts +33 -10
- package/src/logging/log-cleanup.cron-job.ts +5 -8
- package/src/logging/log.model.ts +1 -1
- package/src/logging/logger.interface.ts +0 -5
- package/src/logging/logger.ts +6 -3
- package/src/logging/transport/log-to-email.function.ts +11 -25
- package/src/logging/transport/logger-transport.model.ts +16 -0
- package/src/metrics/metrics-service.interface.ts +0 -5
- package/src/metrics/metrics.service.ts +12 -7
- package/src/metrics/scrape-metrics.cron-job.ts +6 -8
- package/src/multithreading/services/multithreading-service.interface.ts +1 -10
- package/src/multithreading/services/multithreading.service.test.ts +6 -3
- package/src/multithreading/services/multithreading.service.ts +12 -8
- package/src/open-api/open-api-service.interface.ts +0 -4
- package/src/open-api/open-api.service.ts +37 -28
- package/src/parsing/body-parser.interface.ts +0 -5
- package/src/parsing/form-data/file-response.model.ts +3 -3
- package/src/parsing/form-data/file.model.ts +2 -2
- package/src/parsing/form-data/form-data-body-parser-cleanup.cron-job.ts +14 -11
- package/src/parsing/form-data/form-data.body-parser.ts +10 -9
- package/src/parsing/form-data/form-data.model.ts +4 -4
- package/src/parsing/parser.interface.ts +1 -6
- package/src/parsing/parser.ts +10 -4
- package/src/plugin/invoicing/invoicing.plugin.ts +12 -9
- package/src/plugin/invoicing/invoicing.tokens.ts +1 -1
- package/src/plugin/invoicing/models/invoice.model.ts +1 -1
- package/src/plugin/invoicing/models/number-invoices.model.ts +1 -1
- package/src/plugin/invoicing/services/conformance/en16931/en16931-conformance.service.ts +3 -3
- package/src/plugin/invoicing/services/conformance/en16931/peppol-conformance.service.test.ts +23 -38
- package/src/plugin/invoicing/services/conformance/en16931/peppol-conformance.service.ts +1 -1
- package/src/plugin/invoicing/services/conformance/en16931/x-rechnung-conformance.service.test.ts +24 -39
- package/src/plugin/invoicing/services/conformance/en16931/x-rechnung-conformance.service.ts +1 -1
- package/src/plugin/invoicing/services/invoice-calc.service.ts +2 -0
- package/src/plugin/invoicing/services/invoice-number.service.test.ts +21 -42
- package/src/plugin/invoicing/services/invoice-number.service.ts +4 -2
- package/src/plugin/invoicing/services/invoice-pdf.service.test.ts +23 -51
- package/src/plugin/invoicing/services/invoice-pdf.service.ts +6 -4
- package/src/plugin/mailing-list/mailing-list.controller.ts +114 -0
- package/src/plugin/mailing-list/mailing-list.plugin.ts +37 -0
- package/src/plugin/mailing-list/mailing-list.tokens.ts +37 -0
- package/src/plugin/mailing-list/models/mailing-list-base-email-template.model.ts +36 -0
- package/src/plugin/mailing-list/models/mailing-list-preferences-page-template.model.ts +26 -0
- package/src/plugin/mailing-list/models/mailing-list-subscribe-confirmation-email-template.model.ts +26 -0
- package/src/plugin/mailing-list/models/mailing-list-subscribe-success-page-template.model.ts +26 -0
- package/src/{email → plugin}/mailing-list/models/mailing-list-subscriber.model.ts +1 -1
- package/src/{email → plugin}/mailing-list/models/mailing-list-subscription-confirmation-token.model.ts +1 -1
- package/src/plugin/mailing-list/models/mailing-list-unsubscribe-confirmation-page-template.model.ts +26 -0
- package/src/{email → plugin}/mailing-list/models/mailing-list.model.ts +1 -1
- package/src/plugin/mailing-list/services/mailing-list-service.interface.ts +75 -0
- package/src/plugin/mailing-list/services/mailing-list.service.ts +192 -0
- package/src/plugin/payment/models/payment-plugin-options-input.model.ts +2 -14
- package/src/plugin/payment/models/payment-plugin-options.model.ts +2 -14
- package/src/plugin/payment/models/payment.model.ts +6 -1
- package/src/plugin/payment/payment.plugin.ts +33 -13
- package/src/plugin/payment/payment.tokens.ts +18 -14
- package/src/plugin/payment/providers/pay-pal/pay-pal-client.ts +21 -3
- package/src/plugin/payment/providers/pay-pal/pay-pal.payment-provider.test.ts +280 -0
- package/src/plugin/payment/providers/pay-pal/pay-pal.payment-provider.ts +27 -13
- package/src/plugin/payment/providers/payment-provider.interface.ts +93 -41
- package/src/plugin/payment/services/payment-service.interface.ts +14 -14
- package/src/plugin/payment/services/payment-service.types.ts +33 -191
- package/src/plugin/payment/services/payment.service.ts +12 -18
- package/src/plugin/plugin.model.ts +1 -1
- package/src/preact/generate-client-scripts.function.ts +13 -15
- package/src/preact/preact-email-component.model.ts +6 -0
- package/src/preact/preact.utilities.ts +65 -12
- package/src/preact/validate-email-templates.function.ts +8 -0
- package/src/routing/decorators/controller.decorator.ts +22 -2
- package/src/routing/models/crud-controller.model.ts +1 -1
- package/src/routing/request.context.ts +2 -5
- package/src/routing/router.interface.ts +1 -14
- package/src/routing/router.ts +32 -28
- package/src/utilities/fs.utilities.ts +26 -26
- package/src/utilities/metadata-injection-keys.enum.ts +4 -3
- package/src/utilities/metadata.utilities.ts +21 -10
- package/src/utilities/promise.utilities.ts +34 -0
- package/src/utilities/validate-entities-registered.function.ts +4 -3
- package/src/utilities/validate-tokens-registered.function.ts +25 -0
- package/src/validation/validation.service.ts +4 -2
- package/src/websocket/decorators/websocket-controller.decorator.ts +10 -3
- package/src/websocket/services/websocket-service.interface.ts +0 -5
- package/src/websocket/services/websocket.service.ts +13 -4
- package/dist/cjs/email/mailing-list/mailing-list-service.interface.d.ts +0 -63
- package/dist/cjs/email/mailing-list/mailing-list-service.interface.d.ts.map +0 -1
- package/dist/cjs/email/mailing-list/mailing-list-service.interface.js.map +0 -1
- package/dist/cjs/email/mailing-list/mailing-list.service.d.ts +0 -36
- package/dist/cjs/email/mailing-list/mailing-list.service.d.ts.map +0 -1
- package/dist/cjs/email/mailing-list/mailing-list.service.js +0 -133
- package/dist/cjs/email/mailing-list/mailing-list.service.js.map +0 -1
- package/dist/cjs/email/mailing-list/models/mailing-list-subscriber.model.d.ts.map +0 -1
- package/dist/cjs/email/mailing-list/models/mailing-list-subscriber.model.js.map +0 -1
- package/dist/cjs/email/mailing-list/models/mailing-list-subscription-confirmation-token.model.d.ts.map +0 -1
- package/dist/cjs/email/mailing-list/models/mailing-list-subscription-confirmation-token.model.js.map +0 -1
- package/dist/cjs/email/mailing-list/models/mailing-list.model.d.ts.map +0 -1
- package/dist/cjs/email/mailing-list/models/mailing-list.model.js.map +0 -1
- package/dist/cjs/email/mailing-list/models/update-mailing-list-preferences.model.d.ts.map +0 -1
- package/dist/cjs/email/mailing-list/models/update-mailing-list-preferences.model.js.map +0 -1
- package/dist/cjs/handlebars/render-template.function.d.ts +0 -85
- package/dist/cjs/handlebars/render-template.function.d.ts.map +0 -1
- package/dist/cjs/handlebars/render-template.function.js +0 -44
- package/dist/cjs/handlebars/render-template.function.js.map +0 -1
- package/dist/esm/email/mailing-list/mailing-list-service.interface.js +0 -8
- package/dist/esm/email/mailing-list/mailing-list-service.interface.js.map +0 -1
- package/dist/esm/email/mailing-list/mailing-list.service.js +0 -129
- package/dist/esm/email/mailing-list/mailing-list.service.js.map +0 -1
- package/dist/esm/email/mailing-list/models/mailing-list-subscriber.model.js.map +0 -1
- package/dist/esm/email/mailing-list/models/mailing-list-subscription-confirmation-token.model.js.map +0 -1
- package/dist/esm/email/mailing-list/models/mailing-list.model.js.map +0 -1
- package/dist/esm/email/mailing-list/models/update-mailing-list-preferences.model.js.map +0 -1
- package/dist/esm/handlebars/render-template.function.js +0 -39
- package/dist/esm/handlebars/render-template.function.js.map +0 -1
- package/src/email/mailing-list/mailing-list-service.interface.ts +0 -72
- package/src/email/mailing-list/mailing-list.service.ts +0 -175
- package/src/handlebars/render-template.function.ts +0 -118
- /package/dist/cjs/{email → plugin}/mailing-list/models/mailing-list-subscriber.model.d.ts +0 -0
- /package/dist/cjs/{email → plugin}/mailing-list/models/mailing-list-subscription-confirmation-token.model.d.ts +0 -0
- /package/dist/cjs/{email → plugin}/mailing-list/models/mailing-list.model.d.ts +0 -0
- /package/dist/cjs/{email → plugin}/mailing-list/models/update-mailing-list-preferences.model.d.ts +0 -0
- /package/dist/cjs/{email → plugin}/mailing-list/models/update-mailing-list-preferences.model.js +0 -0
- /package/dist/esm/{email → plugin}/mailing-list/models/update-mailing-list-preferences.model.js +0 -0
- /package/src/{email → plugin}/mailing-list/models/update-mailing-list-preferences.model.ts +0 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ShutdownSignal, ZibriApplication } from '../application';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Runs just after the app shuts down.
|
|
5
|
+
* This is useful for things like the data source service,
|
|
6
|
+
* which should still be available at the OnAppShutdown hooks.
|
|
7
|
+
*
|
|
8
|
+
* In most cases you probably want to implement OnAppShutdown.
|
|
9
|
+
*/
|
|
10
|
+
export interface AfterAppShutdown {
|
|
11
|
+
/**
|
|
12
|
+
* Runs just after the app shuts down.
|
|
13
|
+
* This is useful for things like the data source service,
|
|
14
|
+
* which should still be available at the OnAppShutdown hooks.
|
|
15
|
+
*
|
|
16
|
+
* In most cases you probably want to implement OnAppShutdown.
|
|
17
|
+
*/
|
|
18
|
+
afterAppShutdown: (app: ZibriApplication, signal: ShutdownSignal | undefined) => void | Promise<void>,
|
|
19
|
+
/**
|
|
20
|
+
* The timeout for after which the graceful shutdown should fail.
|
|
21
|
+
* @default 30 seconds
|
|
22
|
+
*/
|
|
23
|
+
readonly shutdownTimeoutInMs?: number
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// eslint-disable-next-line jsdoc/require-returns
|
|
27
|
+
/**
|
|
28
|
+
* Checks if the given value implements the AfterAppShutdown interface.
|
|
29
|
+
* @param value - The value to check.
|
|
30
|
+
*/
|
|
31
|
+
export function implementsAfterAppShutdown(value: unknown): value is AfterAppShutdown {
|
|
32
|
+
if (typeof value !== 'object') {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
if (value == undefined) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
if (!('afterAppShutdown' in value)) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (typeof value.afterAppShutdown !== 'function') {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ZibriApplication } from '../application';
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line jsdoc/require-returns
|
|
4
|
+
/**
|
|
5
|
+
* Checks if the given value implements the BeforeAppInit interface.
|
|
6
|
+
* @param value - The value to check.
|
|
7
|
+
*/
|
|
8
|
+
export function implementsBeforeAppInit(value: unknown): value is BeforeAppInit {
|
|
9
|
+
if (typeof value !== 'object') {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
if (value == undefined) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
if (!('beforeAppInit' in value)) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (typeof value.beforeAppInit !== 'function') {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Runs just before the app initializes.
|
|
27
|
+
* This is useful for things like the data source service, which other services might rely on being available on initialization.
|
|
28
|
+
*
|
|
29
|
+
* In most cases you probably want to implement OnAppInit, as your service probably does not fall in that category.
|
|
30
|
+
*/
|
|
31
|
+
export interface BeforeAppInit {
|
|
32
|
+
/**
|
|
33
|
+
* Runs just before the app initializes.
|
|
34
|
+
* This is useful for things like the data source service, which other services might rely on being available on initialization.
|
|
35
|
+
*
|
|
36
|
+
* In most cases you probably want to implement OnAppInit, as your service probably does not fall in that category.
|
|
37
|
+
*/
|
|
38
|
+
beforeAppInit: (app: ZibriApplication) => void | Promise<void>
|
|
39
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ShutdownSignal, ZibriApplication } from '../application';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Runs just before the app shuts down.
|
|
5
|
+
* This is useful for things like the cron or websocket service,
|
|
6
|
+
* which creates new work that might rely on other services still being operational.
|
|
7
|
+
*
|
|
8
|
+
* In most cases you probably want to implement OnAppShutdown.
|
|
9
|
+
* Most relevant things like eg. The data source service are still operational there, as they implement the AfterAppShutdown interface.
|
|
10
|
+
*/
|
|
11
|
+
export interface BeforeAppShutdown {
|
|
12
|
+
/**
|
|
13
|
+
* Runs just before the app shuts down.
|
|
14
|
+
* This is useful for things like the cron or websocket service,
|
|
15
|
+
* which creates new work that might rely on other services still being operational.
|
|
16
|
+
*
|
|
17
|
+
* In most cases you probably want to implement OnAppShutdown.
|
|
18
|
+
* Most relevant things like eg. The data source service are still operational there, as they implement the AfterAppShutdown interface.
|
|
19
|
+
*/
|
|
20
|
+
beforeAppShutdown: (app: ZibriApplication, signal: ShutdownSignal | undefined) => void | Promise<void>,
|
|
21
|
+
/**
|
|
22
|
+
* The timeout for after which the graceful shutdown should fail.
|
|
23
|
+
* @default 30 seconds
|
|
24
|
+
*/
|
|
25
|
+
readonly shutdownTimeoutInMs?: number
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// eslint-disable-next-line jsdoc/require-returns
|
|
29
|
+
/**
|
|
30
|
+
* Checks if the given value implements the BeforeAppShutdown interface.
|
|
31
|
+
* @param value - The value to check.
|
|
32
|
+
*/
|
|
33
|
+
export function implementsBeforeAppShutdown(value: unknown): value is BeforeAppShutdown {
|
|
34
|
+
if (typeof value !== 'object') {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if (value == undefined) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
if (!('beforeAppShutdown' in value)) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (typeof value.beforeAppShutdown !== 'function') {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
import { ZibriApplicationOptions } from '../application-options.model';
|
|
2
|
+
import { AppState } from './app-state.enum';
|
|
2
3
|
import { UserRepositories } from '../auth/models/user-repositories.model';
|
|
3
4
|
import { BackupResourceInterface } from '../backup/backup-resource.interface';
|
|
4
|
-
import { DataSourceInterface } from '../data-source/data-sources/data-source.interface';
|
|
5
5
|
import { DiProvider } from '../di/models/di-provider.model';
|
|
6
6
|
import { BaseEntity } from '../entity/base-entity.model';
|
|
7
7
|
import { BodyParserInterface } from '../parsing/body-parser.interface';
|
|
8
8
|
import { Newable } from '../types/newable.type';
|
|
9
9
|
import { Version } from '../types/version.type';
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
* The possible state that the app can be in.
|
|
13
|
-
*/
|
|
14
|
-
export enum AppState {
|
|
15
|
-
OFFLINE = 'offline',
|
|
16
|
-
CREATED = 'created',
|
|
17
|
-
INITIALIZED = 'initialized',
|
|
18
|
-
RUNNING = 'running'
|
|
19
|
-
}
|
|
20
|
-
|
|
21
11
|
/**
|
|
22
12
|
* The data of the app.
|
|
23
13
|
*/
|
|
@@ -51,6 +41,10 @@ export abstract class GlobalRegistry {
|
|
|
51
41
|
* All injectables registered eg. Via \@Injectable.
|
|
52
42
|
*/
|
|
53
43
|
static readonly injectables: DiProvider<unknown>[] = [];
|
|
44
|
+
/**
|
|
45
|
+
* All injectables registered via \@Injectable but with the { register: 'onUse' } flag.
|
|
46
|
+
*/
|
|
47
|
+
static readonly lazyInjectables: DiProvider<unknown>[] = [];
|
|
54
48
|
/**
|
|
55
49
|
* All controllers registered with \@Controller.
|
|
56
50
|
*/
|
|
@@ -59,10 +53,6 @@ export abstract class GlobalRegistry {
|
|
|
59
53
|
* All websocket controllers registered with \@WebsocketController.
|
|
60
54
|
*/
|
|
61
55
|
static readonly websocketControllerClasses: Newable<unknown>[] = [];
|
|
62
|
-
/**
|
|
63
|
-
* All datasources registered with \@DataSource.
|
|
64
|
-
*/
|
|
65
|
-
static readonly dataSourceClasses: Newable<DataSourceInterface>[] = [];
|
|
66
56
|
/**
|
|
67
57
|
* All entities registered with \@Entity.
|
|
68
58
|
*/
|
|
@@ -90,45 +80,67 @@ export abstract class GlobalRegistry {
|
|
|
90
80
|
return;
|
|
91
81
|
}
|
|
92
82
|
case AppState.CREATED: {
|
|
93
|
-
throw new Error(
|
|
83
|
+
throw new Error(`The app has already been marked as "${AppState.CREATED}".`);
|
|
94
84
|
}
|
|
95
85
|
case AppState.INITIALIZED: {
|
|
96
|
-
throw new Error(
|
|
86
|
+
throw new Error(`The app has already been marked as "${AppState.INITIALIZED}".`);
|
|
97
87
|
}
|
|
98
|
-
case AppState.
|
|
99
|
-
throw new Error(
|
|
88
|
+
case AppState.STARTED: {
|
|
89
|
+
throw new Error(`The app has already been marked as "${AppState.STARTED}".`);
|
|
90
|
+
}
|
|
91
|
+
case AppState.SHUTTING_DOWN: {
|
|
92
|
+
throw new Error(`The app has already been marked as "${AppState.SHUTTING_DOWN}".`);
|
|
100
93
|
}
|
|
101
94
|
}
|
|
102
95
|
},
|
|
103
96
|
[AppState.INITIALIZED]: () => {
|
|
104
97
|
switch (this.appData.state) {
|
|
105
98
|
case AppState.OFFLINE: {
|
|
106
|
-
throw new Error(
|
|
99
|
+
throw new Error(`The app has not been marked as "${AppState.CREATED}" yet.`);
|
|
107
100
|
}
|
|
108
101
|
case AppState.CREATED: {
|
|
109
102
|
return;
|
|
110
103
|
}
|
|
111
104
|
case AppState.INITIALIZED: {
|
|
112
|
-
throw new Error(
|
|
105
|
+
throw new Error(`The app has already been marked as "${AppState.INITIALIZED}".`);
|
|
106
|
+
}
|
|
107
|
+
case AppState.STARTED: {
|
|
108
|
+
throw new Error(`The app has already been marked as "${AppState.STARTED}".`);
|
|
113
109
|
}
|
|
114
|
-
case AppState.
|
|
115
|
-
throw new Error(
|
|
110
|
+
case AppState.SHUTTING_DOWN: {
|
|
111
|
+
throw new Error(`The app has already been marked as "${AppState.SHUTTING_DOWN}".`);
|
|
116
112
|
}
|
|
117
113
|
}
|
|
118
114
|
},
|
|
119
|
-
[AppState.
|
|
115
|
+
[AppState.STARTED]: () => {
|
|
120
116
|
switch (this.appData.state) {
|
|
117
|
+
case AppState.CREATED:
|
|
121
118
|
case AppState.OFFLINE: {
|
|
122
|
-
throw new Error(
|
|
123
|
-
}
|
|
124
|
-
case AppState.CREATED: {
|
|
125
|
-
throw new Error('The app has not been marked as initialized yet.');
|
|
119
|
+
throw new Error(`The app has not been marked as "${AppState.INITIALIZED}" yet.`);
|
|
126
120
|
}
|
|
127
121
|
case AppState.INITIALIZED: {
|
|
128
122
|
return;
|
|
129
123
|
}
|
|
130
|
-
case AppState.
|
|
131
|
-
throw new Error(
|
|
124
|
+
case AppState.STARTED: {
|
|
125
|
+
throw new Error(`The app has already been marked as "${AppState.STARTED}".`);
|
|
126
|
+
}
|
|
127
|
+
case AppState.SHUTTING_DOWN: {
|
|
128
|
+
throw new Error(`The app has already been marked as "${AppState.SHUTTING_DOWN}".`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
[AppState.SHUTTING_DOWN]: () => {
|
|
133
|
+
switch (this.appData.state) {
|
|
134
|
+
case AppState.CREATED:
|
|
135
|
+
case AppState.INITIALIZED:
|
|
136
|
+
case AppState.STARTED: {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
case AppState.OFFLINE: {
|
|
140
|
+
throw new Error(`The app has not been marked as "${AppState.CREATED}" yet.`);
|
|
141
|
+
}
|
|
142
|
+
case AppState.SHUTTING_DOWN: {
|
|
143
|
+
throw new Error(`The app has already been marked as "${AppState.SHUTTING_DOWN}".`);
|
|
132
144
|
}
|
|
133
145
|
}
|
|
134
146
|
}
|
|
@@ -168,23 +180,30 @@ export abstract class GlobalRegistry {
|
|
|
168
180
|
}
|
|
169
181
|
|
|
170
182
|
/**
|
|
171
|
-
* Marks the app as
|
|
183
|
+
* Marks the app as started.
|
|
184
|
+
*/
|
|
185
|
+
static markAppAsStarted(): void {
|
|
186
|
+
this.changeAppState(AppState.STARTED);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Marks the app as shutting down.
|
|
172
191
|
*/
|
|
173
|
-
static
|
|
174
|
-
this.changeAppState(AppState.
|
|
192
|
+
static markAppAsShuttingDown(): void {
|
|
193
|
+
this.changeAppState(AppState.SHUTTING_DOWN);
|
|
175
194
|
}
|
|
176
195
|
|
|
177
196
|
/**
|
|
178
|
-
* Checks if the app
|
|
179
|
-
* @returns True when the app has the state of
|
|
197
|
+
* Checks if the app has been started.
|
|
198
|
+
* @returns True when the app has the state of AppState.STARTED, false otherwise.
|
|
180
199
|
*/
|
|
181
|
-
static
|
|
182
|
-
return this.appData.state === AppState.
|
|
200
|
+
static isAppStarted(): boolean {
|
|
201
|
+
return this.appData.state === AppState.STARTED;
|
|
183
202
|
}
|
|
184
203
|
|
|
185
204
|
/**
|
|
186
205
|
* Checks if the app is initialized.
|
|
187
|
-
* @returns True when the app has the state of
|
|
206
|
+
* @returns True when the app has the state of AppState.INITIALIZED, false otherwise.
|
|
188
207
|
*/
|
|
189
208
|
static isAppInitialized(): boolean {
|
|
190
209
|
return this.appData.state === AppState.INITIALIZED;
|
|
@@ -192,12 +211,20 @@ export abstract class GlobalRegistry {
|
|
|
192
211
|
|
|
193
212
|
/**
|
|
194
213
|
* Checks if the app is created.
|
|
195
|
-
* @returns True when the app has the state of
|
|
214
|
+
* @returns True when the app has the state of AppState.CREATED, false otherwise.
|
|
196
215
|
*/
|
|
197
216
|
static isAppCreated(): boolean {
|
|
198
217
|
return this.appData.state === AppState.CREATED;
|
|
199
218
|
}
|
|
200
219
|
|
|
220
|
+
/**
|
|
221
|
+
* Checks if the app is shutting down.
|
|
222
|
+
* @returns True when the app has the state of AppState.SHUTTING_DOWN, false otherwise.
|
|
223
|
+
*/
|
|
224
|
+
static isAppShuttingDown(): boolean {
|
|
225
|
+
return this.appData.state === AppState.SHUTTING_DOWN;
|
|
226
|
+
}
|
|
227
|
+
|
|
201
228
|
private static changeAppState(state: AppState): void {
|
|
202
229
|
this.validateAppStateChange[state]();
|
|
203
230
|
this.appData.state = state;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ZibriApplication } from '../application';
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line jsdoc/require-returns
|
|
4
|
+
/**
|
|
5
|
+
* Checks if the given value implements the OnAppInit interface.
|
|
6
|
+
* @param value - The value to check.
|
|
7
|
+
*/
|
|
8
|
+
export function implementsOnAppInit(value: unknown): value is OnAppInit {
|
|
9
|
+
if (typeof value !== 'object') {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
if (value == undefined) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
if (!('onAppInit' in value)) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (typeof value.onAppInit !== 'function') {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Runs when the app initializes.
|
|
27
|
+
*/
|
|
28
|
+
export interface OnAppInit {
|
|
29
|
+
/**
|
|
30
|
+
* Runs when the app initializes.
|
|
31
|
+
*/
|
|
32
|
+
onAppInit: (app: ZibriApplication) => void | Promise<void>
|
|
33
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ShutdownSignal, ZibriApplication } from '../application';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Runs when the app shuts down.
|
|
5
|
+
*/
|
|
6
|
+
export interface OnAppShutdown {
|
|
7
|
+
/**
|
|
8
|
+
* Runs when the app shuts down.
|
|
9
|
+
*/
|
|
10
|
+
onAppShutdown: (app: ZibriApplication, signal: ShutdownSignal | undefined) => void | Promise<void>,
|
|
11
|
+
/**
|
|
12
|
+
* The timeout for after which the graceful shutdown should fail.
|
|
13
|
+
* @default 30 seconds
|
|
14
|
+
*/
|
|
15
|
+
readonly shutdownTimeoutInMs?: number
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// eslint-disable-next-line jsdoc/require-returns
|
|
19
|
+
/**
|
|
20
|
+
* Checks if the given value implements the OnAppShutdown interface.
|
|
21
|
+
* @param value - The value to check.
|
|
22
|
+
*/
|
|
23
|
+
export function implementsOnAppShutdown(value: unknown): value is OnAppShutdown {
|
|
24
|
+
if (typeof value !== 'object') {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
if (value == undefined) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
if (!('onAppShutdown' in value)) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (typeof value.onAppShutdown !== 'function') {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ZibriApplication } from '../application';
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line jsdoc/require-returns
|
|
4
|
+
/**
|
|
5
|
+
* Checks if the given value implements the OnAppStart interface.
|
|
6
|
+
* @param value - The value to check.
|
|
7
|
+
*/
|
|
8
|
+
export function implementsOnAppStart(value: unknown): value is OnAppStart {
|
|
9
|
+
if (typeof value !== 'object') {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
if (value == undefined) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
if (!('onAppStart' in value)) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (typeof value.onAppStart !== 'function') {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Runs when the app starts.
|
|
27
|
+
*/
|
|
28
|
+
export interface OnAppStart {
|
|
29
|
+
/**
|
|
30
|
+
* Runs when the app starts.
|
|
31
|
+
*/
|
|
32
|
+
onAppStart: (app: ZibriApplication) => void | Promise<void>
|
|
33
|
+
}
|
|
@@ -2,7 +2,7 @@ import { AstProgram } from './ast.model';
|
|
|
2
2
|
import { HandlebarUtilities } from './handlebar.utilities';
|
|
3
3
|
import { resolveAllArrayKeys } from './resolve-all-array-keys.function';
|
|
4
4
|
import { resolveTree } from './resolve-tree.function';
|
|
5
|
-
import { FsUtilities,
|
|
5
|
+
import { FsUtilities, FsPath } from '../utilities/fs.utilities';
|
|
6
6
|
import { ObjectUtilities } from '../utilities/object.utilities';
|
|
7
7
|
|
|
8
8
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
@@ -10,11 +10,14 @@ export type PathTree = {
|
|
|
10
10
|
[key: string]: PathTree
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
+
const defaultGlobs: string[] = ['src/templates/**/*.hbs'];
|
|
14
|
+
|
|
13
15
|
/**
|
|
14
|
-
* Generate type files for handlebar files
|
|
16
|
+
* Generate type files for handlebar files, so that they expose a correctly typed "renderTemplate" function.
|
|
17
|
+
* @param glob - The glob(s) to find your handlebar files from.
|
|
15
18
|
*/
|
|
16
|
-
export async function generateHandlebarTypeFiles(): Promise<void> {
|
|
17
|
-
const templateFiles:
|
|
19
|
+
export async function generateHandlebarTypeFiles(glob: string | string[] = defaultGlobs): Promise<void> {
|
|
20
|
+
const templateFiles: FsPath[] = await FsUtilities.glob(glob);
|
|
18
21
|
|
|
19
22
|
for (const file of templateFiles) {
|
|
20
23
|
if (await canBeSkipped(file)) {
|
|
@@ -34,7 +37,7 @@ export async function generateHandlebarTypeFiles(): Promise<void> {
|
|
|
34
37
|
}
|
|
35
38
|
|
|
36
39
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
37
|
-
export async function generateHandlebarType(ast: AstProgram, file:
|
|
40
|
+
export async function generateHandlebarType(ast: AstProgram, file: FsPath): Promise<string[]> {
|
|
38
41
|
const arrayKeys: string[] = [...new Set(resolveAllArrayKeys(ast, undefined))];
|
|
39
42
|
const tree: PathTree = resolveTree(ast, arrayKeys);
|
|
40
43
|
const arrayKeysWithoutThis: string[] = arrayKeys.map(k => k.replaceAll('this.', ''));
|
|
@@ -42,7 +45,7 @@ export async function generateHandlebarType(ast: AstProgram, file: Path): Promis
|
|
|
42
45
|
}
|
|
43
46
|
|
|
44
47
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
45
|
-
async function generateTypeFile(tree: PathTree, arrayKeys: string[], file:
|
|
48
|
+
async function generateTypeFile(tree: PathTree, arrayKeys: string[], file: FsPath): Promise<string[]> {
|
|
46
49
|
const typeLines: string[] = generateInterfaceLines(tree, arrayKeys);
|
|
47
50
|
const type: string[] = typeLines.length
|
|
48
51
|
? [
|
|
@@ -64,7 +67,7 @@ async function generateTypeFile(tree: PathTree, arrayKeys: string[], file: Path)
|
|
|
64
67
|
.join('\n')
|
|
65
68
|
.replace('mailingListData:', 'mailingListData?:');
|
|
66
69
|
|
|
67
|
-
const outFile:
|
|
70
|
+
const outFile: FsPath = FsUtilities.getPath(FsUtilities.dirName(file), `${FsUtilities.baseName(file)}.ts`);
|
|
68
71
|
await FsUtilities.upsertFile(outFile, content);
|
|
69
72
|
|
|
70
73
|
return content.split('\n');
|
|
@@ -105,8 +108,8 @@ function generateInterfaceLines(
|
|
|
105
108
|
}
|
|
106
109
|
|
|
107
110
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
108
|
-
async function canBeSkipped(hbsFile:
|
|
109
|
-
const tsFile:
|
|
111
|
+
async function canBeSkipped(hbsFile: FsPath): Promise<boolean> {
|
|
112
|
+
const tsFile: FsPath = FsUtilities.getPath(`${hbsFile}.ts`);
|
|
110
113
|
|
|
111
114
|
if (!await FsUtilities.exists(tsFile)) {
|
|
112
115
|
return false;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import handlebars, { ParseOptions } from 'handlebars';
|
|
2
2
|
|
|
3
3
|
import { AstProgram } from './ast.model';
|
|
4
|
-
import {
|
|
5
|
-
import { inject } from '../di/inject.function';
|
|
6
|
-
import { FsUtilities, Path } from '../utilities/fs.utilities';
|
|
4
|
+
import { FsUtilities, FsPath } from '../utilities/fs.utilities';
|
|
7
5
|
import { MaskUtilities } from '../utilities/mask.utilities';
|
|
8
6
|
import { toCamelCase } from '../utilities/to-camel-case.function';
|
|
9
7
|
|
|
@@ -16,8 +14,9 @@ export abstract class HandlebarUtilities {
|
|
|
16
14
|
/**
|
|
17
15
|
* Initializes the handlebar utilities.
|
|
18
16
|
* @param H - The external handlebar object. Is needed so helpers can be registered both inside and outside of Zibri.
|
|
17
|
+
* @param componentsDir - The directory where components reside.
|
|
19
18
|
*/
|
|
20
|
-
static async init(H: typeof Handlebars): Promise<void> {
|
|
19
|
+
static async init(H: typeof Handlebars, componentsDir: string): Promise<void> {
|
|
21
20
|
this.H = H;
|
|
22
21
|
this.registerHelper('json', (context) => JSON.stringify(context));
|
|
23
22
|
this.registerHelper('concat', (...args: unknown[]) => {
|
|
@@ -44,8 +43,7 @@ export abstract class HandlebarUtilities {
|
|
|
44
43
|
return new handlebars.SafeString(MaskUtilities.mask(value));
|
|
45
44
|
});
|
|
46
45
|
|
|
47
|
-
const
|
|
48
|
-
const files: Path[] = await FsUtilities.glob(FsUtilities.getPath(componentsDir, '*.hbs'));
|
|
46
|
+
const files: FsPath[] = await FsUtilities.glob(FsUtilities.getPath(componentsDir, '*.hbs'));
|
|
49
47
|
for (const file of files) {
|
|
50
48
|
const src: string = await FsUtilities.readFile(file);
|
|
51
49
|
const base: string = FsUtilities.baseName(file).split('.hbs')[0];
|
|
@@ -67,6 +65,32 @@ export abstract class HandlebarUtilities {
|
|
|
67
65
|
return this.H.compile(input, options);
|
|
68
66
|
}
|
|
69
67
|
|
|
68
|
+
/**
|
|
69
|
+
* Renders the template at the given path with the given data.
|
|
70
|
+
* @param path - The path of the handlebars template file.
|
|
71
|
+
* @param data - The data to fill into the template.
|
|
72
|
+
* @returns The rendered html string.
|
|
73
|
+
*/
|
|
74
|
+
static async renderTemplate<T extends Record<string, unknown>>(path: `${FsPath}.hbs`, data: T): Promise<string> {
|
|
75
|
+
const source: string = await FsUtilities.readFile(path as FsPath);
|
|
76
|
+
return this.renderTemplateString(source, data);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Renders the given handlebars template string as html, using the provided data as variables.
|
|
81
|
+
* @param templateString - The handlebars template string.
|
|
82
|
+
* @param data - The data to use inside the template.
|
|
83
|
+
* @returns The rendered html content.
|
|
84
|
+
*/
|
|
85
|
+
static renderTemplateString<T extends Record<string, unknown>>(
|
|
86
|
+
templateString: string,
|
|
87
|
+
data: T
|
|
88
|
+
): string {
|
|
89
|
+
const template: HandlebarsTemplateDelegate<T> = this.render(templateString);
|
|
90
|
+
const html: string = template(data);
|
|
91
|
+
return html;
|
|
92
|
+
}
|
|
93
|
+
|
|
70
94
|
/**
|
|
71
95
|
* Parses the given handlebars string into an AST.
|
|
72
96
|
* @param input - The handlebars template in form of a string.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { HttpClientResponse } from './http-client-response.model';
|
|
2
|
+
import { HttpMethod } from '../http/http-method.enum';
|
|
3
|
+
import { OmitStrict } from '../types/omit-strict.type';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Data of the http request that was sent.
|
|
7
|
+
*/
|
|
8
|
+
export type HttpClientErrorRequestData = {
|
|
9
|
+
/**
|
|
10
|
+
* The request method.
|
|
11
|
+
*/
|
|
12
|
+
method: HttpMethod,
|
|
13
|
+
/**
|
|
14
|
+
* The body of the request.
|
|
15
|
+
*/
|
|
16
|
+
body: unknown,
|
|
17
|
+
/**
|
|
18
|
+
* The headers of the request.
|
|
19
|
+
*/
|
|
20
|
+
headers: Record<string, unknown>,
|
|
21
|
+
/**
|
|
22
|
+
* The full url of the request.
|
|
23
|
+
*/
|
|
24
|
+
url: string
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Data of the http response that was received.
|
|
29
|
+
*/
|
|
30
|
+
export type HttpClientErrorResponseData = OmitStrict<HttpClientResponse<unknown, Record<string, unknown>>, 'rawBody'>;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Options for creating a http client error.
|
|
34
|
+
*/
|
|
35
|
+
export type HttpClientErrorOptions = {
|
|
36
|
+
/**
|
|
37
|
+
* The data of the response, if one could be received.
|
|
38
|
+
*/
|
|
39
|
+
responseData: HttpClientErrorResponseData | undefined,
|
|
40
|
+
/**
|
|
41
|
+
* The data of the request, if one could be made.
|
|
42
|
+
*/
|
|
43
|
+
requestData: HttpClientErrorRequestData | undefined
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Error that is thrown when a request from the http client didn't work.
|
|
48
|
+
*/
|
|
49
|
+
export class HttpClientError extends Error {
|
|
50
|
+
/**
|
|
51
|
+
* The data of the response, if one could be received.
|
|
52
|
+
*/
|
|
53
|
+
readonly responseData?: HttpClientErrorResponseData;
|
|
54
|
+
/**
|
|
55
|
+
* The data of the request, if one could be made.
|
|
56
|
+
*/
|
|
57
|
+
readonly requestData?: HttpClientErrorRequestData;
|
|
58
|
+
|
|
59
|
+
constructor(message: string, data: HttpClientErrorOptions, options?: ErrorOptions | undefined) {
|
|
60
|
+
super(getErrorMessage(message, data), options);
|
|
61
|
+
this.name = 'HttpClientError';
|
|
62
|
+
this.responseData = data.responseData;
|
|
63
|
+
this.requestData = data.requestData;
|
|
64
|
+
|
|
65
|
+
Object.defineProperty(this, 'message', { enumerable: true });
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Check whether or not the given value is a http client error.
|
|
71
|
+
* @param value - The value to check.
|
|
72
|
+
* @returns True when the values name is 'HttpClientError', false otherwise.
|
|
73
|
+
*/
|
|
74
|
+
export function isHttpClientError(value: unknown): value is HttpClientError {
|
|
75
|
+
return typeof value === 'object' && value != undefined && 'name' in value && value.name === 'HttpClientError';
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
79
|
+
function getErrorMessage(message: string, data: HttpClientErrorOptions): string {
|
|
80
|
+
if (!data.responseData) {
|
|
81
|
+
if (data.requestData) {
|
|
82
|
+
return `No response received for ${data.requestData.method.toUpperCase()} ${data.requestData.url}:\n${message}`;
|
|
83
|
+
}
|
|
84
|
+
return `Could not send the request:\n${message}`;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (!data.requestData) {
|
|
88
|
+
return `Could not send the request:\n${message}`;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const fullUrl: string = `${data.requestData.method.toUpperCase()} ${data.requestData.url}`;
|
|
92
|
+
|
|
93
|
+
return `Request ${fullUrl} failed with ${data.responseData.status} ${data.responseData.statusText}`;
|
|
94
|
+
}
|