@webda/core 4.0.0-beta.2 → 4.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +252 -0
- package/lib/application/application.d.ts +437 -0
- package/lib/application/application.d.ts.map +1 -0
- package/lib/application/application.js +792 -0
- package/lib/application/application.js.map +1 -0
- package/lib/application/hooks.d.ts +34 -0
- package/lib/application/hooks.d.ts.map +1 -0
- package/lib/application/hooks.js +57 -0
- package/lib/application/hooks.js.map +1 -0
- package/lib/application/iapplication.d.ts +43 -0
- package/lib/application/iapplication.d.ts.map +1 -0
- package/lib/application/iapplication.js +2 -0
- package/lib/application/iapplication.js.map +1 -0
- package/lib/application/iconfiguration.d.ts +176 -0
- package/lib/application/iconfiguration.d.ts.map +1 -0
- package/lib/application/iconfiguration.js +8 -0
- package/lib/application/iconfiguration.js.map +1 -0
- package/lib/application/runner.d.ts +8 -0
- package/lib/application/runner.d.ts.map +1 -0
- package/lib/application/runner.js +26 -0
- package/lib/application/runner.js.map +1 -0
- package/lib/{unpackedapplication.d.ts → application/unpackedapplication.d.ts} +43 -23
- package/lib/application/unpackedapplication.d.ts.map +1 -0
- package/lib/application/unpackedapplication.js +492 -0
- package/lib/application/unpackedapplication.js.map +1 -0
- package/lib/bin/cli-phase.d.ts +28 -0
- package/lib/bin/cli-phase.d.ts.map +1 -0
- package/lib/bin/cli-phase.js +44 -0
- package/lib/bin/cli-phase.js.map +1 -0
- package/lib/bin/cli.d.ts +161 -0
- package/lib/bin/cli.d.ts.map +1 -0
- package/lib/bin/cli.js +828 -0
- package/lib/bin/cli.js.map +1 -0
- package/lib/bin/launcher.d.ts +3 -0
- package/lib/bin/launcher.d.ts.map +1 -0
- package/lib/bin/launcher.js +50 -0
- package/lib/bin/launcher.js.map +1 -0
- package/lib/cache/cache.d.ts +33 -0
- package/lib/cache/cache.d.ts.map +1 -0
- package/lib/cache/cache.js +8 -0
- package/lib/cache/cache.js.map +1 -0
- package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -58
- package/lib/configurations/configuration.service.d.ts.map +1 -0
- package/lib/configurations/configuration.service.js +248 -0
- package/lib/configurations/configuration.service.js.map +1 -0
- package/lib/configurations/fileconfiguration.service.d.ts +30 -0
- package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
- package/lib/configurations/fileconfiguration.service.js +65 -0
- package/lib/configurations/fileconfiguration.service.js.map +1 -0
- package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
- package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
- package/lib/configurations/kubernetesconfiguration.service.js +83 -0
- package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
- package/lib/contexts/execution.d.ts +33 -0
- package/lib/contexts/execution.d.ts.map +1 -0
- package/lib/contexts/execution.js +73 -0
- package/lib/contexts/execution.js.map +1 -0
- package/lib/contexts/globalcontext.d.ts +29 -0
- package/lib/contexts/globalcontext.d.ts.map +1 -0
- package/lib/contexts/globalcontext.js +38 -0
- package/lib/contexts/globalcontext.js.map +1 -0
- package/lib/{utils → contexts}/httpcontext.d.ts +44 -19
- package/lib/contexts/httpcontext.d.ts.map +1 -0
- package/lib/{utils → contexts}/httpcontext.js +95 -27
- package/lib/contexts/httpcontext.js.map +1 -0
- package/lib/contexts/icontext.d.ts +236 -0
- package/lib/contexts/icontext.d.ts.map +1 -0
- package/lib/contexts/icontext.js +230 -0
- package/lib/contexts/icontext.js.map +1 -0
- package/lib/contexts/operationcontext.d.ts +179 -0
- package/lib/contexts/operationcontext.d.ts.map +1 -0
- package/lib/contexts/operationcontext.js +358 -0
- package/lib/contexts/operationcontext.js.map +1 -0
- package/lib/contexts/simplecontext.d.ts +31 -0
- package/lib/contexts/simplecontext.d.ts.map +1 -0
- package/lib/contexts/simplecontext.js +45 -0
- package/lib/contexts/simplecontext.js.map +1 -0
- package/lib/contexts/webcontext.d.ts +218 -0
- package/lib/contexts/webcontext.d.ts.map +1 -0
- package/lib/contexts/webcontext.js +389 -0
- package/lib/contexts/webcontext.js.map +1 -0
- package/lib/core/authorizer.d.ts +23 -0
- package/lib/core/authorizer.d.ts.map +1 -0
- package/lib/core/authorizer.js +17 -0
- package/lib/core/authorizer.js.map +1 -0
- package/lib/core/core.d.ts +225 -0
- package/lib/core/core.d.ts.map +1 -0
- package/lib/core/core.js +576 -0
- package/lib/core/core.js.map +1 -0
- package/lib/core/hooks.d.ts +72 -0
- package/lib/core/hooks.d.ts.map +1 -0
- package/lib/core/hooks.js +73 -0
- package/lib/core/hooks.js.map +1 -0
- package/lib/core/icore.d.ts +249 -0
- package/lib/core/icore.d.ts.map +1 -0
- package/lib/core/icore.js +15 -0
- package/lib/core/icore.js.map +1 -0
- package/lib/core/instancestorage.d.ts +61 -0
- package/lib/core/instancestorage.d.ts.map +1 -0
- package/lib/core/instancestorage.js +75 -0
- package/lib/core/instancestorage.js.map +1 -0
- package/lib/core/operations.d.ts +181 -0
- package/lib/core/operations.d.ts.map +1 -0
- package/lib/core/operations.js +559 -0
- package/lib/core/operations.js.map +1 -0
- package/lib/errors/errors.d.ts +126 -0
- package/lib/errors/errors.d.ts.map +1 -0
- package/lib/errors/errors.js +165 -0
- package/lib/errors/errors.js.map +1 -0
- package/lib/events/asynceventemitter.d.ts +159 -0
- package/lib/events/asynceventemitter.d.ts.map +1 -0
- package/lib/events/asynceventemitter.js +152 -0
- package/lib/events/asynceventemitter.js.map +1 -0
- package/lib/events/events.d.ts +112 -0
- package/lib/events/events.d.ts.map +1 -0
- package/lib/events/events.js +45 -0
- package/lib/events/events.js.map +1 -0
- package/lib/index.d.ts +82 -53
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +81 -62
- package/lib/index.js.map +1 -1
- package/lib/loggers/console.service.d.ts +24 -0
- package/lib/loggers/console.service.d.ts.map +1 -0
- package/lib/loggers/console.service.js +30 -0
- package/lib/loggers/console.service.js.map +1 -0
- package/lib/loggers/file.service.d.ts +25 -0
- package/lib/loggers/file.service.d.ts.map +1 -0
- package/lib/loggers/file.service.js +33 -0
- package/lib/loggers/file.service.js.map +1 -0
- package/lib/loggers/hooks.d.ts +20 -0
- package/lib/loggers/hooks.d.ts.map +1 -0
- package/lib/loggers/hooks.js +40 -0
- package/lib/loggers/hooks.js.map +1 -0
- package/lib/loggers/ilogger.d.ts +76 -0
- package/lib/loggers/ilogger.d.ts.map +1 -0
- package/lib/loggers/ilogger.js +108 -0
- package/lib/loggers/ilogger.js.map +1 -0
- package/lib/loggers/logger.d.ts +13 -0
- package/lib/loggers/logger.d.ts.map +1 -0
- package/lib/loggers/logger.js +18 -0
- package/lib/loggers/logger.js.map +1 -0
- package/lib/loggers/memory.service.d.ts +18 -0
- package/lib/loggers/memory.service.d.ts.map +1 -0
- package/lib/loggers/memory.service.js +21 -0
- package/lib/loggers/memory.service.js.map +1 -0
- package/lib/loggers/params.d.ts +47 -0
- package/lib/loggers/params.d.ts.map +1 -0
- package/lib/loggers/params.js +56 -0
- package/lib/loggers/params.js.map +1 -0
- package/lib/metrics/metrics.d.ts +25 -0
- package/lib/metrics/metrics.d.ts.map +1 -0
- package/lib/metrics/metrics.js +51 -0
- package/lib/metrics/metrics.js.map +1 -0
- package/lib/models/aclmodel.d.ts +20 -76
- package/lib/models/aclmodel.d.ts.map +1 -1
- package/lib/models/aclmodel.js +27 -203
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/coremodel.model.d.ts +5 -0
- package/lib/models/coremodel.model.d.ts.map +1 -0
- package/lib/models/coremodel.model.js +5 -0
- package/lib/models/coremodel.model.js.map +1 -0
- package/lib/models/decorator.d.ts +63 -0
- package/lib/models/decorator.d.ts.map +1 -0
- package/lib/models/decorator.js +63 -0
- package/lib/models/decorator.js.map +1 -0
- package/lib/models/deployment.d.ts +1 -1
- package/lib/models/deployment.d.ts.map +1 -1
- package/lib/models/ident.model.d.ts +89 -0
- package/lib/models/ident.model.d.ts.map +1 -0
- package/lib/models/ident.model.js +115 -0
- package/lib/models/ident.model.js.map +1 -0
- package/lib/models/ownermodel.model.d.ts +68 -0
- package/lib/models/ownermodel.model.d.ts.map +1 -0
- package/lib/models/ownermodel.model.js +112 -0
- package/lib/models/ownermodel.model.js.map +1 -0
- package/lib/models/registry.model.d.ts +76 -0
- package/lib/models/registry.model.d.ts.map +1 -0
- package/lib/models/registry.model.js +104 -0
- package/lib/models/registry.model.js.map +1 -0
- package/lib/models/rolemodel.model.d.ts +28 -0
- package/lib/models/rolemodel.model.d.ts.map +1 -0
- package/lib/models/{rolemodel.js → rolemodel.model.js} +23 -5
- package/lib/models/rolemodel.model.js.map +1 -0
- package/lib/models/simpleuser.model.d.ts +78 -0
- package/lib/models/simpleuser.model.d.ts.map +1 -0
- package/lib/models/simpleuser.model.js +123 -0
- package/lib/models/simpleuser.model.js.map +1 -0
- package/lib/models/types.d.ts +113 -0
- package/lib/models/types.d.ts.map +1 -0
- package/lib/models/types.js +2 -0
- package/lib/models/types.js.map +1 -0
- package/lib/models/user.model.d.ts +103 -0
- package/lib/models/user.model.d.ts.map +1 -0
- package/lib/models/user.model.js +125 -0
- package/lib/models/user.model.js.map +1 -0
- package/lib/queues/{memoryqueue.d.ts → memoryqueue.service.d.ts} +26 -13
- package/lib/queues/memoryqueue.service.d.ts.map +1 -0
- package/lib/queues/{memoryqueue.js → memoryqueue.service.js} +55 -31
- package/lib/queues/memoryqueue.service.js.map +1 -0
- package/lib/queues/pubsubservice.d.ts +8 -6
- package/lib/queues/pubsubservice.d.ts.map +1 -1
- package/lib/queues/pubsubservice.js +5 -4
- package/lib/queues/pubsubservice.js.map +1 -1
- package/lib/queues/queueservice.d.ts +9 -11
- package/lib/queues/queueservice.d.ts.map +1 -1
- package/lib/queues/queueservice.js +41 -13
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/rest/hooks.d.ts +8 -0
- package/lib/rest/hooks.d.ts.map +1 -0
- package/lib/rest/hooks.js +10 -0
- package/lib/rest/hooks.js.map +1 -0
- package/lib/rest/irest.d.ts +212 -0
- package/lib/rest/irest.d.ts.map +1 -0
- package/lib/rest/irest.js +39 -0
- package/lib/rest/irest.js.map +1 -0
- package/lib/rest/originfilter.d.ts +38 -0
- package/lib/rest/originfilter.d.ts.map +1 -0
- package/lib/rest/originfilter.js +61 -0
- package/lib/rest/originfilter.js.map +1 -0
- package/lib/rest/restoperationstransport.service.d.ts +193 -0
- package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
- package/lib/rest/restoperationstransport.service.js +780 -0
- package/lib/rest/restoperationstransport.service.js.map +1 -0
- package/lib/rest/router.service.d.ts +244 -0
- package/lib/rest/router.service.d.ts.map +1 -0
- package/lib/rest/router.service.js +843 -0
- package/lib/rest/router.service.js.map +1 -0
- package/lib/schemas/hooks.d.ts +48 -0
- package/lib/schemas/hooks.d.ts.map +1 -0
- package/lib/schemas/hooks.js +152 -0
- package/lib/schemas/hooks.js.map +1 -0
- package/lib/services/audit.model.d.ts +208 -0
- package/lib/services/audit.model.d.ts.map +1 -0
- package/lib/services/audit.model.js +431 -0
- package/lib/services/audit.model.js.map +1 -0
- package/lib/services/{authentication.d.ts → authentication.service.d.ts} +140 -59
- package/lib/services/authentication.service.d.ts.map +1 -0
- package/lib/services/authentication.service.js +932 -0
- package/lib/services/authentication.service.js.map +1 -0
- package/lib/services/binary.service.d.ts +808 -0
- package/lib/services/binary.service.d.ts.map +1 -0
- package/lib/services/binary.service.js +1365 -0
- package/lib/services/binary.service.js.map +1 -0
- package/lib/services/cloudbinary.d.ts +17 -12
- package/lib/services/cloudbinary.d.ts.map +1 -1
- package/lib/services/cloudbinary.js +23 -17
- package/lib/services/cloudbinary.js.map +1 -1
- package/lib/services/command.d.ts +118 -0
- package/lib/services/command.d.ts.map +1 -0
- package/lib/services/command.js +97 -0
- package/lib/services/command.js.map +1 -0
- package/lib/services/cron.service.d.ts +142 -0
- package/lib/services/cron.service.d.ts.map +1 -0
- package/lib/services/cron.service.js +291 -0
- package/lib/services/cron.service.js.map +1 -0
- package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +75 -141
- package/lib/services/cryptoservice.service.d.ts.map +1 -0
- package/lib/services/cryptoservice.service.js +527 -0
- package/lib/services/cryptoservice.service.js.map +1 -0
- package/lib/services/debugmailer.service.d.ts +49 -0
- package/lib/services/debugmailer.service.d.ts.map +1 -0
- package/lib/services/{debugmailer.js → debugmailer.service.js} +25 -10
- package/lib/services/debugmailer.service.js.map +1 -0
- package/lib/services/domainservice.service.d.ts +203 -0
- package/lib/services/domainservice.service.d.ts.map +1 -0
- package/lib/services/domainservice.service.js +600 -0
- package/lib/services/domainservice.service.js.map +1 -0
- package/lib/services/httpserver.service.d.ts +248 -0
- package/lib/services/httpserver.service.d.ts.map +1 -0
- package/lib/services/httpserver.service.js +673 -0
- package/lib/services/httpserver.service.js.map +1 -0
- package/lib/services/iauthentication.d.ts +9 -0
- package/lib/services/iauthentication.d.ts.map +1 -0
- package/lib/services/iauthentication.js +2 -0
- package/lib/services/iauthentication.js.map +1 -0
- package/lib/services/icryptoservice.d.ts +127 -0
- package/lib/services/icryptoservice.d.ts.map +1 -0
- package/lib/services/icryptoservice.js +68 -0
- package/lib/services/icryptoservice.js.map +1 -0
- package/lib/services/imailer.d.ts +17 -0
- package/lib/services/imailer.d.ts.map +1 -0
- package/lib/services/imailer.js +2 -0
- package/lib/services/imailer.js.map +1 -0
- package/lib/services/iservice.d.ts +104 -0
- package/lib/services/iservice.d.ts.map +1 -0
- package/lib/services/iservice.js +63 -0
- package/lib/services/iservice.js.map +1 -0
- package/lib/services/mailer.service.d.ts +220 -0
- package/lib/services/mailer.service.d.ts.map +1 -0
- package/lib/services/mailer.service.js +251 -0
- package/lib/services/mailer.service.js.map +1 -0
- package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -11
- package/lib/services/notificationservice.service.d.ts.map +1 -0
- package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
- package/lib/services/notificationservice.service.js.map +1 -0
- package/lib/services/oauth.d.ts +52 -28
- package/lib/services/oauth.d.ts.map +1 -1
- package/lib/services/oauth.js +365 -254
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/operationstransport.d.ts +65 -0
- package/lib/services/operationstransport.d.ts.map +1 -0
- package/lib/services/operationstransport.js +103 -0
- package/lib/services/operationstransport.js.map +1 -0
- package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -12
- package/lib/services/prometheus.service.d.ts.map +1 -0
- package/lib/services/prometheus.service.js +203 -0
- package/lib/services/prometheus.service.js.map +1 -0
- package/lib/services/{resource.d.ts → resource.service.d.ts} +34 -15
- package/lib/services/resource.service.d.ts.map +1 -0
- package/lib/services/resource.service.js +301 -0
- package/lib/services/resource.service.js.map +1 -0
- package/lib/services/service.d.ts +87 -188
- package/lib/services/service.d.ts.map +1 -1
- package/lib/services/service.js +407 -422
- package/lib/services/service.js.map +1 -1
- package/lib/services/servicecommands.d.ts +99 -0
- package/lib/services/servicecommands.d.ts.map +1 -0
- package/lib/services/servicecommands.js +165 -0
- package/lib/services/servicecommands.js.map +1 -0
- package/lib/services/serviceparameters.d.ts +33 -0
- package/lib/services/serviceparameters.d.ts.map +1 -0
- package/lib/services/serviceparameters.js +79 -0
- package/lib/services/serviceparameters.js.map +1 -0
- package/lib/{utils → session}/cookie.d.ts +32 -19
- package/lib/session/cookie.d.ts.map +1 -0
- package/lib/{utils → session}/cookie.js +76 -23
- package/lib/session/cookie.js.map +1 -0
- package/lib/session/manager.model.d.ts +71 -0
- package/lib/session/manager.model.d.ts.map +1 -0
- package/lib/session/manager.model.js +155 -0
- package/lib/session/manager.model.js.map +1 -0
- package/lib/session/session.d.ts +57 -0
- package/lib/session/session.d.ts.map +1 -0
- package/lib/session/session.js +126 -0
- package/lib/session/session.js.map +1 -0
- package/lib/stores/istore.d.ts +99 -0
- package/lib/stores/istore.d.ts.map +1 -0
- package/lib/stores/istore.js +26 -0
- package/lib/stores/istore.js.map +1 -0
- package/lib/stores/memory.service.d.ts +114 -0
- package/lib/stores/memory.service.d.ts.map +1 -0
- package/lib/stores/memory.service.js +343 -0
- package/lib/stores/memory.service.js.map +1 -0
- package/lib/stores/store.d.ts +126 -626
- package/lib/stores/store.d.ts.map +1 -1
- package/lib/stores/store.js +257 -1117
- package/lib/stores/store.js.map +1 -1
- package/lib/templates/templates.d.ts +39 -0
- package/lib/templates/templates.d.ts.map +1 -0
- package/lib/templates/templates.js +92 -0
- package/lib/templates/templates.js.map +1 -0
- package/lib/test/application.d.ts +174 -0
- package/lib/test/application.d.ts.map +1 -0
- package/lib/test/application.js +288 -0
- package/lib/test/application.js.map +1 -0
- package/lib/test/asyncstorage.d.ts +16 -0
- package/lib/test/asyncstorage.d.ts.map +1 -0
- package/lib/test/asyncstorage.js +32 -0
- package/lib/test/asyncstorage.js.map +1 -0
- package/lib/test/core.d.ts +63 -0
- package/lib/test/core.d.ts.map +1 -0
- package/lib/test/core.js +190 -0
- package/lib/test/core.js.map +1 -0
- package/lib/test/index.d.ts +7 -0
- package/lib/test/index.d.ts.map +1 -0
- package/lib/test/index.js +8 -0
- package/lib/test/index.js.map +1 -0
- package/lib/test/internal.d.ts +34 -0
- package/lib/test/internal.d.ts.map +1 -0
- package/lib/test/internal.js +156 -0
- package/lib/test/internal.js.map +1 -0
- package/lib/test/objects.d.ts +318 -0
- package/lib/test/objects.d.ts.map +1 -0
- package/lib/test/objects.js +443 -0
- package/lib/test/objects.js.map +1 -0
- package/lib/utils/abstractdeployer.d.ts +4 -2
- package/lib/utils/abstractdeployer.d.ts.map +1 -1
- package/lib/utils/abstractdeployer.js +3 -0
- package/lib/utils/abstractdeployer.js.map +1 -1
- package/package.json +85 -60
- package/test/cachedapp/webda.config.json +1 -5
- package/test/config-cached.json +1 -5
- package/test/config.json +0 -9
- package/test/my-cnf.json +9 -0
- package/webda.module.json +3463 -2482
- package/lib/application.d.ts +0 -888
- package/lib/application.d.ts.map +0 -1
- package/lib/application.js +0 -768
- package/lib/application.js.map +0 -1
- package/lib/application.spec.d.ts +0 -2
- package/lib/application.spec.d.ts.map +0 -1
- package/lib/application.spec.js +0 -248
- package/lib/application.spec.js.map +0 -1
- package/lib/core.d.ts +0 -743
- package/lib/core.d.ts.map +0 -1
- package/lib/core.js +0 -1334
- package/lib/core.js.map +0 -1
- package/lib/core.spec.d.ts +0 -2
- package/lib/core.spec.d.ts.map +0 -1
- package/lib/core.spec.js +0 -790
- package/lib/core.spec.js.map +0 -1
- package/lib/errors.d.ts +0 -64
- package/lib/errors.d.ts.map +0 -1
- package/lib/errors.js +0 -97
- package/lib/errors.js.map +0 -1
- package/lib/errors.spec.d.ts +0 -2
- package/lib/errors.spec.d.ts.map +0 -1
- package/lib/errors.spec.js +0 -33
- package/lib/errors.spec.js.map +0 -1
- package/lib/models/aclmodel.spec.d.ts +0 -2
- package/lib/models/aclmodel.spec.d.ts.map +0 -1
- package/lib/models/aclmodel.spec.js +0 -187
- package/lib/models/aclmodel.spec.js.map +0 -1
- package/lib/models/coremodel.d.ts +0 -896
- package/lib/models/coremodel.d.ts.map +0 -1
- package/lib/models/coremodel.js +0 -1214
- package/lib/models/coremodel.js.map +0 -1
- package/lib/models/coremodel.spec.d.ts +0 -2
- package/lib/models/coremodel.spec.d.ts.map +0 -1
- package/lib/models/coremodel.spec.js +0 -464
- package/lib/models/coremodel.spec.js.map +0 -1
- package/lib/models/ident.d.ts +0 -68
- package/lib/models/ident.d.ts.map +0 -1
- package/lib/models/ident.js +0 -26
- package/lib/models/ident.js.map +0 -1
- package/lib/models/ident.spec.d.ts +0 -2
- package/lib/models/ident.spec.d.ts.map +0 -1
- package/lib/models/ident.spec.js +0 -24
- package/lib/models/ident.spec.js.map +0 -1
- package/lib/models/ownermodel.d.ts +0 -51
- package/lib/models/ownermodel.d.ts.map +0 -1
- package/lib/models/ownermodel.js +0 -65
- package/lib/models/ownermodel.js.map +0 -1
- package/lib/models/ownermodel.spec.d.ts +0 -2
- package/lib/models/ownermodel.spec.d.ts.map +0 -1
- package/lib/models/ownermodel.spec.js +0 -215
- package/lib/models/ownermodel.spec.js.map +0 -1
- package/lib/models/relations.d.ts +0 -182
- package/lib/models/relations.d.ts.map +0 -1
- package/lib/models/relations.js +0 -157
- package/lib/models/relations.js.map +0 -1
- package/lib/models/relations.spec.d.ts +0 -14
- package/lib/models/relations.spec.d.ts.map +0 -1
- package/lib/models/relations.spec.js +0 -217
- package/lib/models/relations.spec.js.map +0 -1
- package/lib/models/rolemodel.d.ts +0 -11
- package/lib/models/rolemodel.d.ts.map +0 -1
- package/lib/models/rolemodel.js.map +0 -1
- package/lib/models/rolemodel.spec.d.ts +0 -2
- package/lib/models/rolemodel.spec.d.ts.map +0 -1
- package/lib/models/rolemodel.spec.js +0 -90
- package/lib/models/rolemodel.spec.js.map +0 -1
- package/lib/models/simpleuser.d.ts +0 -47
- package/lib/models/simpleuser.d.ts.map +0 -1
- package/lib/models/simpleuser.js +0 -84
- package/lib/models/simpleuser.js.map +0 -1
- package/lib/models/test.d.ts +0 -11
- package/lib/models/test.d.ts.map +0 -1
- package/lib/models/test.js +0 -7
- package/lib/models/test.js.map +0 -1
- package/lib/models/user.d.ts +0 -67
- package/lib/models/user.d.ts.map +0 -1
- package/lib/models/user.js +0 -86
- package/lib/models/user.js.map +0 -1
- package/lib/models/user.spec.d.ts +0 -2
- package/lib/models/user.spec.d.ts.map +0 -1
- package/lib/models/user.spec.js +0 -89
- package/lib/models/user.spec.js.map +0 -1
- package/lib/queues/filequeue.d.ts +0 -59
- package/lib/queues/filequeue.d.ts.map +0 -1
- package/lib/queues/filequeue.js +0 -131
- package/lib/queues/filequeue.js.map +0 -1
- package/lib/queues/filequeue.spec.d.ts +0 -2
- package/lib/queues/filequeue.spec.d.ts.map +0 -1
- package/lib/queues/filequeue.spec.js +0 -84
- package/lib/queues/filequeue.spec.js.map +0 -1
- package/lib/queues/memoryqueue.d.ts.map +0 -1
- package/lib/queues/memoryqueue.js.map +0 -1
- package/lib/queues/memoryqueue.spec.d.ts +0 -2
- package/lib/queues/memoryqueue.spec.d.ts.map +0 -1
- package/lib/queues/memoryqueue.spec.js +0 -203
- package/lib/queues/memoryqueue.spec.js.map +0 -1
- package/lib/queues/queue.spec.d.ts +0 -6
- package/lib/queues/queue.spec.d.ts.map +0 -1
- package/lib/queues/queue.spec.js +0 -55
- package/lib/queues/queue.spec.js.map +0 -1
- package/lib/rest/restdomainservice.d.ts +0 -63
- package/lib/rest/restdomainservice.d.ts.map +0 -1
- package/lib/rest/restdomainservice.js +0 -687
- package/lib/rest/restdomainservice.js.map +0 -1
- package/lib/rest/restdomainservice.spec.d.ts +0 -2
- package/lib/rest/restdomainservice.spec.d.ts.map +0 -1
- package/lib/rest/restdomainservice.spec.js +0 -124
- package/lib/rest/restdomainservice.spec.js.map +0 -1
- package/lib/rest/router.d.ts +0 -174
- package/lib/rest/router.d.ts.map +0 -1
- package/lib/rest/router.js +0 -429
- package/lib/rest/router.js.map +0 -1
- package/lib/rest/router.spec.d.ts +0 -2
- package/lib/rest/router.spec.d.ts.map +0 -1
- package/lib/rest/router.spec.js +0 -255
- package/lib/rest/router.spec.js.map +0 -1
- package/lib/services/asyncevents.d.ts +0 -152
- package/lib/services/asyncevents.d.ts.map +0 -1
- package/lib/services/asyncevents.js +0 -217
- package/lib/services/asyncevents.js.map +0 -1
- package/lib/services/asyncevents.spec.d.ts +0 -2
- package/lib/services/asyncevents.spec.d.ts.map +0 -1
- package/lib/services/asyncevents.spec.js +0 -118
- package/lib/services/asyncevents.spec.js.map +0 -1
- package/lib/services/authentication.d.ts.map +0 -1
- package/lib/services/authentication.js +0 -773
- package/lib/services/authentication.js.map +0 -1
- package/lib/services/authentication.spec.d.ts +0 -2
- package/lib/services/authentication.spec.d.ts.map +0 -1
- package/lib/services/authentication.spec.js +0 -458
- package/lib/services/authentication.spec.js.map +0 -1
- package/lib/services/binary.d.ts +0 -477
- package/lib/services/binary.d.ts.map +0 -1
- package/lib/services/binary.js +0 -617
- package/lib/services/binary.js.map +0 -1
- package/lib/services/binary.spec.d.ts +0 -41
- package/lib/services/binary.spec.d.ts.map +0 -1
- package/lib/services/binary.spec.js +0 -151
- package/lib/services/binary.spec.js.map +0 -1
- package/lib/services/cloudbinary.spec.d.ts +0 -6
- package/lib/services/cloudbinary.spec.d.ts.map +0 -1
- package/lib/services/cloudbinary.spec.js +0 -66
- package/lib/services/cloudbinary.spec.js.map +0 -1
- package/lib/services/configuration.d.ts.map +0 -1
- package/lib/services/configuration.js +0 -193
- package/lib/services/configuration.js.map +0 -1
- package/lib/services/configuration.spec.d.ts +0 -2
- package/lib/services/configuration.spec.d.ts.map +0 -1
- package/lib/services/configuration.spec.js +0 -130
- package/lib/services/configuration.spec.js.map +0 -1
- package/lib/services/cron.d.ts +0 -74
- package/lib/services/cron.d.ts.map +0 -1
- package/lib/services/cron.js +0 -141
- package/lib/services/cron.js.map +0 -1
- package/lib/services/cron.spec.d.ts +0 -2
- package/lib/services/cron.spec.d.ts.map +0 -1
- package/lib/services/cron.spec.js +0 -76
- package/lib/services/cron.spec.js.map +0 -1
- package/lib/services/cryptoservice.d.ts.map +0 -1
- package/lib/services/cryptoservice.js +0 -433
- package/lib/services/cryptoservice.js.map +0 -1
- package/lib/services/cryptoservice.spec.d.ts +0 -2
- package/lib/services/cryptoservice.spec.d.ts.map +0 -1
- package/lib/services/cryptoservice.spec.js +0 -177
- package/lib/services/cryptoservice.spec.js.map +0 -1
- package/lib/services/debugmailer.d.ts +0 -36
- package/lib/services/debugmailer.d.ts.map +0 -1
- package/lib/services/debugmailer.js.map +0 -1
- package/lib/services/debugmailer.spec.d.ts +0 -2
- package/lib/services/debugmailer.spec.d.ts.map +0 -1
- package/lib/services/debugmailer.spec.js +0 -32
- package/lib/services/debugmailer.spec.js.map +0 -1
- package/lib/services/domainservice.d.ts +0 -272
- package/lib/services/domainservice.d.ts.map +0 -1
- package/lib/services/domainservice.js +0 -651
- package/lib/services/domainservice.js.map +0 -1
- package/lib/services/domainservice.spec.d.ts +0 -2
- package/lib/services/domainservice.spec.d.ts.map +0 -1
- package/lib/services/domainservice.spec.js +0 -592
- package/lib/services/domainservice.spec.js.map +0 -1
- package/lib/services/filebinary.d.ts +0 -136
- package/lib/services/filebinary.d.ts.map +0 -1
- package/lib/services/filebinary.js +0 -373
- package/lib/services/filebinary.js.map +0 -1
- package/lib/services/filebinary.spec.d.ts +0 -25
- package/lib/services/filebinary.spec.d.ts.map +0 -1
- package/lib/services/filebinary.spec.js +0 -428
- package/lib/services/filebinary.spec.js.map +0 -1
- package/lib/services/fileconfiguration.d.ts +0 -23
- package/lib/services/fileconfiguration.d.ts.map +0 -1
- package/lib/services/fileconfiguration.js +0 -48
- package/lib/services/fileconfiguration.js.map +0 -1
- package/lib/services/fileconfiguration.spec.d.ts +0 -2
- package/lib/services/fileconfiguration.spec.d.ts.map +0 -1
- package/lib/services/fileconfiguration.spec.js +0 -215
- package/lib/services/fileconfiguration.spec.js.map +0 -1
- package/lib/services/invitationservice.d.ts +0 -223
- package/lib/services/invitationservice.d.ts.map +0 -1
- package/lib/services/invitationservice.js +0 -529
- package/lib/services/invitationservice.js.map +0 -1
- package/lib/services/invitationservice.spec.d.ts +0 -2
- package/lib/services/invitationservice.spec.d.ts.map +0 -1
- package/lib/services/invitationservice.spec.js +0 -567
- package/lib/services/invitationservice.spec.js.map +0 -1
- package/lib/services/kubernetesconfiguration.d.ts +0 -27
- package/lib/services/kubernetesconfiguration.d.ts.map +0 -1
- package/lib/services/kubernetesconfiguration.js +0 -52
- package/lib/services/kubernetesconfiguration.js.map +0 -1
- package/lib/services/kubernetesconfiguration.spec.d.ts +0 -2
- package/lib/services/kubernetesconfiguration.spec.d.ts.map +0 -1
- package/lib/services/kubernetesconfiguration.spec.js +0 -206
- package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
- package/lib/services/mailer.d.ts +0 -166
- package/lib/services/mailer.d.ts.map +0 -1
- package/lib/services/mailer.js +0 -176
- package/lib/services/mailer.js.map +0 -1
- package/lib/services/mailer.spec.d.ts +0 -2
- package/lib/services/mailer.spec.d.ts.map +0 -1
- package/lib/services/mailer.spec.js +0 -158
- package/lib/services/mailer.spec.js.map +0 -1
- package/lib/services/notificationservice.d.ts.map +0 -1
- package/lib/services/notificationservice.js.map +0 -1
- package/lib/services/notificationservice.spec.d.ts +0 -2
- package/lib/services/notificationservice.spec.d.ts.map +0 -1
- package/lib/services/notificationservice.spec.js +0 -83
- package/lib/services/notificationservice.spec.js.map +0 -1
- package/lib/services/oauth.spec.d.ts +0 -2
- package/lib/services/oauth.spec.d.ts.map +0 -1
- package/lib/services/oauth.spec.js +0 -208
- package/lib/services/oauth.spec.js.map +0 -1
- package/lib/services/prometheus.d.ts.map +0 -1
- package/lib/services/prometheus.js +0 -160
- package/lib/services/prometheus.js.map +0 -1
- package/lib/services/prometheus.spec.d.ts +0 -2
- package/lib/services/prometheus.spec.d.ts.map +0 -1
- package/lib/services/prometheus.spec.js +0 -76
- package/lib/services/prometheus.spec.js.map +0 -1
- package/lib/services/resource.d.ts.map +0 -1
- package/lib/services/resource.js +0 -170
- package/lib/services/resource.js.map +0 -1
- package/lib/services/resource.spec.d.ts +0 -2
- package/lib/services/resource.spec.d.ts.map +0 -1
- package/lib/services/resource.spec.js +0 -140
- package/lib/services/resource.spec.js.map +0 -1
- package/lib/services/service.spec.d.ts +0 -2
- package/lib/services/service.spec.d.ts.map +0 -1
- package/lib/services/service.spec.js +0 -286
- package/lib/services/service.spec.js.map +0 -1
- package/lib/stores/aggregator.d.ts +0 -48
- package/lib/stores/aggregator.d.ts.map +0 -1
- package/lib/stores/aggregator.js +0 -80
- package/lib/stores/aggregator.js.map +0 -1
- package/lib/stores/file.d.ts +0 -108
- package/lib/stores/file.d.ts.map +0 -1
- package/lib/stores/file.js +0 -188
- package/lib/stores/file.js.map +0 -1
- package/lib/stores/file.spec.d.ts +0 -13
- package/lib/stores/file.spec.d.ts.map +0 -1
- package/lib/stores/file.spec.js +0 -138
- package/lib/stores/file.spec.js.map +0 -1
- package/lib/stores/mapper.d.ts +0 -150
- package/lib/stores/mapper.d.ts.map +0 -1
- package/lib/stores/mapper.js +0 -293
- package/lib/stores/mapper.js.map +0 -1
- package/lib/stores/mapper.spec.d.ts +0 -2
- package/lib/stores/mapper.spec.d.ts.map +0 -1
- package/lib/stores/mapper.spec.js +0 -167
- package/lib/stores/mapper.spec.js.map +0 -1
- package/lib/stores/memory.d.ts +0 -152
- package/lib/stores/memory.d.ts.map +0 -1
- package/lib/stores/memory.js +0 -371
- package/lib/stores/memory.js.map +0 -1
- package/lib/stores/memory.spec.d.ts +0 -14
- package/lib/stores/memory.spec.d.ts.map +0 -1
- package/lib/stores/memory.spec.js +0 -263
- package/lib/stores/memory.spec.js.map +0 -1
- package/lib/stores/modelmapper.d.ts +0 -62
- package/lib/stores/modelmapper.d.ts.map +0 -1
- package/lib/stores/modelmapper.js +0 -197
- package/lib/stores/modelmapper.js.map +0 -1
- package/lib/stores/store.spec.d.ts +0 -57
- package/lib/stores/store.spec.d.ts.map +0 -1
- package/lib/stores/store.spec.js +0 -737
- package/lib/stores/store.spec.js.map +0 -1
- package/lib/test.d.ts +0 -265
- package/lib/test.d.ts.map +0 -1
- package/lib/test.js +0 -622
- package/lib/test.js.map +0 -1
- package/lib/unpackedapplication.d.ts.map +0 -1
- package/lib/unpackedapplication.js +0 -350
- package/lib/unpackedapplication.js.map +0 -1
- package/lib/utils/abstractdeployer.spec.d.ts +0 -2
- package/lib/utils/abstractdeployer.spec.d.ts.map +0 -1
- package/lib/utils/abstractdeployer.spec.js +0 -21
- package/lib/utils/abstractdeployer.spec.js.map +0 -1
- package/lib/utils/case.d.ts +0 -8
- package/lib/utils/case.d.ts.map +0 -1
- package/lib/utils/case.js +0 -43
- package/lib/utils/case.js.map +0 -1
- package/lib/utils/case.spec.d.ts +0 -2
- package/lib/utils/case.spec.d.ts.map +0 -1
- package/lib/utils/case.spec.js +0 -50
- package/lib/utils/case.spec.js.map +0 -1
- package/lib/utils/context.d.ts +0 -482
- package/lib/utils/context.d.ts.map +0 -1
- package/lib/utils/context.js +0 -739
- package/lib/utils/context.js.map +0 -1
- package/lib/utils/context.spec.d.ts +0 -10
- package/lib/utils/context.spec.d.ts.map +0 -1
- package/lib/utils/context.spec.js +0 -383
- package/lib/utils/context.spec.js.map +0 -1
- package/lib/utils/cookie.d.ts.map +0 -1
- package/lib/utils/cookie.js.map +0 -1
- package/lib/utils/cookie.spec.d.ts +0 -2
- package/lib/utils/cookie.spec.d.ts.map +0 -1
- package/lib/utils/cookie.spec.js +0 -88
- package/lib/utils/cookie.spec.js.map +0 -1
- package/lib/utils/esm.d.ts +0 -14
- package/lib/utils/esm.d.ts.map +0 -1
- package/lib/utils/esm.js +0 -19
- package/lib/utils/esm.js.map +0 -1
- package/lib/utils/httpcontext.d.ts.map +0 -1
- package/lib/utils/httpcontext.js.map +0 -1
- package/lib/utils/httpcontext.spec.d.ts +0 -5
- package/lib/utils/httpcontext.spec.d.ts.map +0 -1
- package/lib/utils/httpcontext.spec.js +0 -77
- package/lib/utils/httpcontext.spec.js.map +0 -1
- package/lib/utils/logger.d.ts +0 -92
- package/lib/utils/logger.d.ts.map +0 -1
- package/lib/utils/logger.js +0 -121
- package/lib/utils/logger.js.map +0 -1
- package/lib/utils/logger.spec.d.ts +0 -2
- package/lib/utils/logger.spec.d.ts.map +0 -1
- package/lib/utils/logger.spec.js +0 -48
- package/lib/utils/logger.spec.js.map +0 -1
- package/lib/utils/serializers.d.ts +0 -162
- package/lib/utils/serializers.d.ts.map +0 -1
- package/lib/utils/serializers.js +0 -420
- package/lib/utils/serializers.js.map +0 -1
- package/lib/utils/serializers.spec.d.ts +0 -2
- package/lib/utils/serializers.spec.d.ts.map +0 -1
- package/lib/utils/serializers.spec.js +0 -311
- package/lib/utils/serializers.spec.js.map +0 -1
- package/lib/utils/session.d.ts +0 -123
- package/lib/utils/session.d.ts.map +0 -1
- package/lib/utils/session.js +0 -156
- package/lib/utils/session.js.map +0 -1
- package/lib/utils/session.spec.d.ts +0 -2
- package/lib/utils/session.spec.d.ts.map +0 -1
- package/lib/utils/session.spec.js +0 -81
- package/lib/utils/session.spec.js.map +0 -1
- package/lib/utils/throttler.d.ts +0 -99
- package/lib/utils/throttler.d.ts.map +0 -1
- package/lib/utils/throttler.js +0 -160
- package/lib/utils/throttler.js.map +0 -1
- package/lib/utils/throttler.spec.d.ts +0 -2
- package/lib/utils/throttler.spec.d.ts.map +0 -1
- package/lib/utils/throttler.spec.js +0 -53
- package/lib/utils/throttler.spec.js.map +0 -1
- package/lib/utils/waiter.d.ts +0 -94
- package/lib/utils/waiter.d.ts.map +0 -1
- package/lib/utils/waiter.js +0 -148
- package/lib/utils/waiter.js.map +0 -1
- package/lib/utils/waiter.spec.d.ts +0 -2
- package/lib/utils/waiter.spec.d.ts.map +0 -1
- package/lib/utils/waiter.spec.js +0 -98
- package/lib/utils/waiter.spec.js.map +0 -1
- package/test/jsonutils/mdocs.yaml +0 -56
- package/test/jsonutils/test.json +0 -3
- package/test/jsonutils/test.yml +0 -5
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import * as nodemailer from "nodemailer";
|
|
2
|
+
import { NotificationService } from "./notificationservice.service.js";
|
|
3
|
+
import { Service } from "./service.js";
|
|
4
|
+
import { Counter } from "../metrics/metrics.js";
|
|
5
|
+
import type { User } from "../models/user.model.js";
|
|
6
|
+
import type { Ident } from "../models/ident.model.js";
|
|
7
|
+
import { ServiceParameters } from "../services/serviceparameters.js";
|
|
8
|
+
import { ServicePartialParameters } from "./iservice.js";
|
|
9
|
+
/**
|
|
10
|
+
* Interface for an email template that can render subject, html and text
|
|
11
|
+
*/
|
|
12
|
+
interface IEmailTemplate {
|
|
13
|
+
/**
|
|
14
|
+
* Render all template variants (subject, html, text) for the given file
|
|
15
|
+
*
|
|
16
|
+
* @param file - Template file name to render
|
|
17
|
+
* @param options - Template variables for rendering
|
|
18
|
+
* @returns Rendered result with subject, html and text properties
|
|
19
|
+
*/
|
|
20
|
+
renderAll(file: string, options: any): any;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Map of template names to their email template instances
|
|
24
|
+
*/
|
|
25
|
+
interface TemplatesMap {
|
|
26
|
+
[key: string]: IEmailTemplate;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Represent a mailer service
|
|
30
|
+
*/
|
|
31
|
+
export interface MailerService extends NotificationService {
|
|
32
|
+
/**
|
|
33
|
+
* Send an email
|
|
34
|
+
*
|
|
35
|
+
* @param options - Options to pass to the sendMail option of the nodemailer module
|
|
36
|
+
* @param callback - Callback to pass to sendMail
|
|
37
|
+
* @returns Promise resolving when the email is sent
|
|
38
|
+
*/
|
|
39
|
+
send(options: MailerSendOptions, callback: () => void): Promise<any>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Options for sending an email, extending nodemailer's SendMailOptions
|
|
43
|
+
* with template support
|
|
44
|
+
*/
|
|
45
|
+
interface MailerSendOptions extends nodemailer.SendMailOptions {
|
|
46
|
+
/**
|
|
47
|
+
* Sender of the email
|
|
48
|
+
*
|
|
49
|
+
* @default parameters.sender
|
|
50
|
+
*/
|
|
51
|
+
from?: nodemailer.SendMailOptions["from"];
|
|
52
|
+
/**
|
|
53
|
+
* Template to use
|
|
54
|
+
*/
|
|
55
|
+
template?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Replacements for the template
|
|
58
|
+
*/
|
|
59
|
+
replacements?: Record<string, any>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Parameters for the Mailer service configuration
|
|
63
|
+
*
|
|
64
|
+
* Configures the email transport, templates directory and template engine
|
|
65
|
+
*/
|
|
66
|
+
export declare class MailerParameters extends ServiceParameters {
|
|
67
|
+
/**
|
|
68
|
+
* Specify which folder contains templates
|
|
69
|
+
*
|
|
70
|
+
* @default "templates"
|
|
71
|
+
*/
|
|
72
|
+
templates?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Template engine to use
|
|
75
|
+
*
|
|
76
|
+
* @default "mustache"
|
|
77
|
+
*/
|
|
78
|
+
templatesEngine?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Define the default sender
|
|
81
|
+
*/
|
|
82
|
+
sender: string;
|
|
83
|
+
/**
|
|
84
|
+
* @see https://www.npmjs.com/package/email-templates
|
|
85
|
+
*/
|
|
86
|
+
emailTemplateOptions?: any;
|
|
87
|
+
/**
|
|
88
|
+
* Define the type of transport to use
|
|
89
|
+
*/
|
|
90
|
+
transport?: string;
|
|
91
|
+
/**
|
|
92
|
+
* SES AWS Bean if transport === "ses"
|
|
93
|
+
*/
|
|
94
|
+
SES?: any;
|
|
95
|
+
/**
|
|
96
|
+
* Load and apply defaults to the mailer parameters
|
|
97
|
+
*
|
|
98
|
+
* Sets default templates directory to "./templates/", engine to "mustache",
|
|
99
|
+
* and configures juice resource options for CSS inlining
|
|
100
|
+
*
|
|
101
|
+
* @param params - Raw parameters to load
|
|
102
|
+
* @returns this instance with defaults applied
|
|
103
|
+
*/
|
|
104
|
+
load(params?: any): this;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Abstract base class for mailer implementations
|
|
108
|
+
*
|
|
109
|
+
* Provides metrics tracking (sent/errors counters) and notification handling.
|
|
110
|
+
* Subclasses must implement {@link send} and {@link hasNotification}.
|
|
111
|
+
*
|
|
112
|
+
* @typeParam T - Service parameters type
|
|
113
|
+
*/
|
|
114
|
+
export declare abstract class AbstractMailer<T extends ServiceParameters = ServiceParameters> extends Service<T> implements MailerService {
|
|
115
|
+
/**
|
|
116
|
+
* Mailer metrics for tracking sent emails and errors
|
|
117
|
+
*/
|
|
118
|
+
metrics: {
|
|
119
|
+
sent: Counter;
|
|
120
|
+
errors: Counter;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* @override
|
|
124
|
+
*/
|
|
125
|
+
initMetrics(): void;
|
|
126
|
+
/**
|
|
127
|
+
* @inheritdoc
|
|
128
|
+
*/
|
|
129
|
+
abstract send(options: MailerSendOptions, callback?: () => void): Promise<any>;
|
|
130
|
+
/**
|
|
131
|
+
* @inheritdoc
|
|
132
|
+
*/
|
|
133
|
+
abstract hasNotification(notification: string): any;
|
|
134
|
+
/**
|
|
135
|
+
* Check if notifications can be delivered to a user via email
|
|
136
|
+
*
|
|
137
|
+
* @param user - User or Ident to check for email availability
|
|
138
|
+
* @returns true if the user has an email address
|
|
139
|
+
*/
|
|
140
|
+
handleNotificationFor(user: User | Ident): Promise<boolean>;
|
|
141
|
+
/**
|
|
142
|
+
* Send a notification email to a user
|
|
143
|
+
*
|
|
144
|
+
* Resolves the user's email, increments the sent metric, and delegates
|
|
145
|
+
* to {@link send}. Increments the error metric on failure.
|
|
146
|
+
*
|
|
147
|
+
* @param user - User or Ident to send the notification to
|
|
148
|
+
* @param notification - Template name for the notification
|
|
149
|
+
* @param replacements - Template variables for rendering
|
|
150
|
+
* @throws Error if the user has no valid email address
|
|
151
|
+
* @override
|
|
152
|
+
*/
|
|
153
|
+
sendNotification(user: User | Ident, notification: string, replacements: any): Promise<void>;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* A basic Mailer based on the nodemailer module
|
|
157
|
+
*
|
|
158
|
+
* Inside config it is the nodemailer module option for the method createTransport ( https://nodemailer.com/ )
|
|
159
|
+
*
|
|
160
|
+
* Only ses transport module is installed by default
|
|
161
|
+
*
|
|
162
|
+
* Parameters
|
|
163
|
+
* config: { ... }
|
|
164
|
+
* @category CoreServices
|
|
165
|
+
* @WebdaModda
|
|
166
|
+
*/
|
|
167
|
+
declare class Mailer<T extends MailerParameters = MailerParameters> extends AbstractMailer<T> {
|
|
168
|
+
/** Nodemailer transport instance used to send emails */
|
|
169
|
+
_transporter: any;
|
|
170
|
+
/** Cache of loaded email template instances by name */
|
|
171
|
+
_templates: TemplatesMap;
|
|
172
|
+
/**
|
|
173
|
+
* Load and instantiate mailer parameters with defaults
|
|
174
|
+
*
|
|
175
|
+
* @param params - Raw service parameters
|
|
176
|
+
* @returns Loaded MailerParameters instance
|
|
177
|
+
* @ignore
|
|
178
|
+
*/
|
|
179
|
+
loadParameters(params: ServicePartialParameters<T>): T;
|
|
180
|
+
/**
|
|
181
|
+
* Initialize the nodemailer transport from the service parameters
|
|
182
|
+
*
|
|
183
|
+
* @returns this instance after transport creation
|
|
184
|
+
* @override
|
|
185
|
+
*/
|
|
186
|
+
init(): Promise<this>;
|
|
187
|
+
/**
|
|
188
|
+
* Get or create a cached email template instance by name
|
|
189
|
+
*
|
|
190
|
+
* Lazily creates and caches an Email template using the configured
|
|
191
|
+
* templates directory and engine. Logs a warning if the template does not exist.
|
|
192
|
+
*
|
|
193
|
+
* @param name - Template name (must correspond to a directory in the templates folder)
|
|
194
|
+
* @returns The email template instance, or undefined if the template does not exist
|
|
195
|
+
*/
|
|
196
|
+
_getTemplate(name: string): IEmailTemplate;
|
|
197
|
+
/**
|
|
198
|
+
* Check if an email template exists on the filesystem
|
|
199
|
+
*
|
|
200
|
+
* @param name - Template name to check
|
|
201
|
+
* @returns true if the template directory exists
|
|
202
|
+
*/
|
|
203
|
+
hasNotification(name: string): boolean;
|
|
204
|
+
/**
|
|
205
|
+
* Send an email using the configured nodemailer transport
|
|
206
|
+
*
|
|
207
|
+
* If a template is specified in options, it will be rendered with the
|
|
208
|
+
* provided replacements before sending. A `now` Date variable is
|
|
209
|
+
* automatically added to replacements. Falls back to `parameters.sender`
|
|
210
|
+
* if no `from` is provided.
|
|
211
|
+
*
|
|
212
|
+
* @param options - Mail options including optional template and replacements
|
|
213
|
+
* @param callback - Optional callback passed to nodemailer's sendMail
|
|
214
|
+
* @returns Promise resolving with the nodemailer send result
|
|
215
|
+
* @throws Error if no transporter is configured or the template is unknown
|
|
216
|
+
*/
|
|
217
|
+
send(options: MailerSendOptions, callback?: any): Promise<any>;
|
|
218
|
+
}
|
|
219
|
+
export { Mailer, type TemplatesMap, type IEmailTemplate };
|
|
220
|
+
//# sourceMappingURL=mailer.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailer.service.d.ts","sourceRoot":"","sources":["../../src/services/mailer.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import Email from "email-templates";
|
|
2
|
+
import * as fs from "fs";
|
|
3
|
+
import * as nodemailer from "nodemailer";
|
|
4
|
+
import * as path from "path";
|
|
5
|
+
import { Service } from "./service.js";
|
|
6
|
+
import { Counter } from "../metrics/metrics.js";
|
|
7
|
+
import { ServiceParameters } from "../services/serviceparameters.js";
|
|
8
|
+
/**
|
|
9
|
+
* Parameters for the Mailer service configuration
|
|
10
|
+
*
|
|
11
|
+
* Configures the email transport, templates directory and template engine
|
|
12
|
+
*/
|
|
13
|
+
export class MailerParameters extends ServiceParameters {
|
|
14
|
+
/**
|
|
15
|
+
* Specify which folder contains templates
|
|
16
|
+
*
|
|
17
|
+
* @default "templates"
|
|
18
|
+
*/
|
|
19
|
+
templates;
|
|
20
|
+
/**
|
|
21
|
+
* Template engine to use
|
|
22
|
+
*
|
|
23
|
+
* @default "mustache"
|
|
24
|
+
*/
|
|
25
|
+
templatesEngine;
|
|
26
|
+
/**
|
|
27
|
+
* Define the default sender
|
|
28
|
+
*/
|
|
29
|
+
sender;
|
|
30
|
+
/**
|
|
31
|
+
* @see https://www.npmjs.com/package/email-templates
|
|
32
|
+
*/
|
|
33
|
+
emailTemplateOptions;
|
|
34
|
+
/**
|
|
35
|
+
* Define the type of transport to use
|
|
36
|
+
*/
|
|
37
|
+
transport;
|
|
38
|
+
/**
|
|
39
|
+
* SES AWS Bean if transport === "ses"
|
|
40
|
+
*/
|
|
41
|
+
SES;
|
|
42
|
+
/**
|
|
43
|
+
* Load and apply defaults to the mailer parameters
|
|
44
|
+
*
|
|
45
|
+
* Sets default templates directory to "./templates/", engine to "mustache",
|
|
46
|
+
* and configures juice resource options for CSS inlining
|
|
47
|
+
*
|
|
48
|
+
* @param params - Raw parameters to load
|
|
49
|
+
* @returns this instance with defaults applied
|
|
50
|
+
*/
|
|
51
|
+
load(params = {}) {
|
|
52
|
+
super.load(params);
|
|
53
|
+
this.templates ??= "./templates";
|
|
54
|
+
if (!this.templates.endsWith("/")) {
|
|
55
|
+
this.templates += "/";
|
|
56
|
+
}
|
|
57
|
+
this.templatesEngine ??= "mustache";
|
|
58
|
+
this.emailTemplateOptions ??= {};
|
|
59
|
+
this.emailTemplateOptions.juiceResources ??= {};
|
|
60
|
+
this.emailTemplateOptions.juiceResources.webResources ??= {};
|
|
61
|
+
this.emailTemplateOptions.juiceResources.webResources.relativeTo ??= path.resolve(this.templates);
|
|
62
|
+
return this;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Abstract base class for mailer implementations
|
|
67
|
+
*
|
|
68
|
+
* Provides metrics tracking (sent/errors counters) and notification handling.
|
|
69
|
+
* Subclasses must implement {@link send} and {@link hasNotification}.
|
|
70
|
+
*
|
|
71
|
+
* @typeParam T - Service parameters type
|
|
72
|
+
*/
|
|
73
|
+
export class AbstractMailer extends Service {
|
|
74
|
+
/**
|
|
75
|
+
* @override
|
|
76
|
+
*/
|
|
77
|
+
initMetrics() {
|
|
78
|
+
super.initMetrics();
|
|
79
|
+
this.metrics.sent = this.getMetric(Counter, {
|
|
80
|
+
name: "mailer_sent",
|
|
81
|
+
help: "Number of emails sent"
|
|
82
|
+
});
|
|
83
|
+
this.metrics.errors ??= this.getMetric(Counter, {
|
|
84
|
+
name: "mailer_errors",
|
|
85
|
+
help: "Number of emails in error"
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Check if notifications can be delivered to a user via email
|
|
90
|
+
*
|
|
91
|
+
* @param user - User or Ident to check for email availability
|
|
92
|
+
* @returns true if the user has an email address
|
|
93
|
+
*/
|
|
94
|
+
async handleNotificationFor(user) {
|
|
95
|
+
return user.getEmail() !== undefined;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Send a notification email to a user
|
|
99
|
+
*
|
|
100
|
+
* Resolves the user's email, increments the sent metric, and delegates
|
|
101
|
+
* to {@link send}. Increments the error metric on failure.
|
|
102
|
+
*
|
|
103
|
+
* @param user - User or Ident to send the notification to
|
|
104
|
+
* @param notification - Template name for the notification
|
|
105
|
+
* @param replacements - Template variables for rendering
|
|
106
|
+
* @throws Error if the user has no valid email address
|
|
107
|
+
* @override
|
|
108
|
+
*/
|
|
109
|
+
async sendNotification(user, notification, replacements) {
|
|
110
|
+
const email = user.getEmail();
|
|
111
|
+
if (!email) {
|
|
112
|
+
throw new Error(`Cannot find a valid email for ${user}`);
|
|
113
|
+
}
|
|
114
|
+
this.metrics.sent.inc();
|
|
115
|
+
try {
|
|
116
|
+
await this.send({
|
|
117
|
+
template: notification,
|
|
118
|
+
replacements: {
|
|
119
|
+
...replacements
|
|
120
|
+
},
|
|
121
|
+
to: email
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
this.metrics.errors.inc();
|
|
126
|
+
throw err;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* A basic Mailer based on the nodemailer module
|
|
132
|
+
*
|
|
133
|
+
* Inside config it is the nodemailer module option for the method createTransport ( https://nodemailer.com/ )
|
|
134
|
+
*
|
|
135
|
+
* Only ses transport module is installed by default
|
|
136
|
+
*
|
|
137
|
+
* Parameters
|
|
138
|
+
* config: { ... }
|
|
139
|
+
* @category CoreServices
|
|
140
|
+
* @WebdaModda
|
|
141
|
+
*/
|
|
142
|
+
class Mailer extends AbstractMailer {
|
|
143
|
+
/** Nodemailer transport instance used to send emails */
|
|
144
|
+
_transporter;
|
|
145
|
+
/** Cache of loaded email template instances by name */
|
|
146
|
+
_templates = {};
|
|
147
|
+
/**
|
|
148
|
+
* Load and instantiate mailer parameters with defaults
|
|
149
|
+
*
|
|
150
|
+
* @param params - Raw service parameters
|
|
151
|
+
* @returns Loaded MailerParameters instance
|
|
152
|
+
* @ignore
|
|
153
|
+
*/
|
|
154
|
+
loadParameters(params) {
|
|
155
|
+
return new MailerParameters().load(params);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Initialize the nodemailer transport from the service parameters
|
|
159
|
+
*
|
|
160
|
+
* @returns this instance after transport creation
|
|
161
|
+
* @override
|
|
162
|
+
*/
|
|
163
|
+
async init() {
|
|
164
|
+
this._transporter = nodemailer.createTransport(this.parameters);
|
|
165
|
+
return this;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Get or create a cached email template instance by name
|
|
169
|
+
*
|
|
170
|
+
* Lazily creates and caches an Email template using the configured
|
|
171
|
+
* templates directory and engine. Logs a warning if the template does not exist.
|
|
172
|
+
*
|
|
173
|
+
* @param name - Template name (must correspond to a directory in the templates folder)
|
|
174
|
+
* @returns The email template instance, or undefined if the template does not exist
|
|
175
|
+
*/
|
|
176
|
+
_getTemplate(name) {
|
|
177
|
+
if (!this._templates[name]) {
|
|
178
|
+
if (!this.hasNotification(name)) {
|
|
179
|
+
this.log("WARN", "No template found for", name);
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
this._templates[name] = new Email({
|
|
183
|
+
...this.parameters.emailTemplateOptions,
|
|
184
|
+
views: {
|
|
185
|
+
root: this.parameters.templates,
|
|
186
|
+
options: {
|
|
187
|
+
extension: this.parameters.templatesEngine
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
return this._templates[name];
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Check if an email template exists on the filesystem
|
|
196
|
+
*
|
|
197
|
+
* @param name - Template name to check
|
|
198
|
+
* @returns true if the template directory exists
|
|
199
|
+
*/
|
|
200
|
+
hasNotification(name) {
|
|
201
|
+
// Load template
|
|
202
|
+
return fs.existsSync(this.parameters.templates + name);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Send an email using the configured nodemailer transport
|
|
206
|
+
*
|
|
207
|
+
* If a template is specified in options, it will be rendered with the
|
|
208
|
+
* provided replacements before sending. A `now` Date variable is
|
|
209
|
+
* automatically added to replacements. Falls back to `parameters.sender`
|
|
210
|
+
* if no `from` is provided.
|
|
211
|
+
*
|
|
212
|
+
* @param options - Mail options including optional template and replacements
|
|
213
|
+
* @param callback - Optional callback passed to nodemailer's sendMail
|
|
214
|
+
* @returns Promise resolving with the nodemailer send result
|
|
215
|
+
* @throws Error if no transporter is configured or the template is unknown
|
|
216
|
+
*/
|
|
217
|
+
async send(options, callback = undefined) {
|
|
218
|
+
if (this._transporter === undefined) {
|
|
219
|
+
this.log("ERROR", "Cannot send email as no transporter is defined");
|
|
220
|
+
return Promise.reject("Cannot send email as no transporter is defined");
|
|
221
|
+
}
|
|
222
|
+
if (!options.from) {
|
|
223
|
+
options.from = this.parameters.sender;
|
|
224
|
+
}
|
|
225
|
+
if (options.template) {
|
|
226
|
+
if (!options.replacements) {
|
|
227
|
+
options.replacements = {};
|
|
228
|
+
}
|
|
229
|
+
options.replacements.now = new Date();
|
|
230
|
+
const template = this._getTemplate(options.template);
|
|
231
|
+
if (template) {
|
|
232
|
+
const result = await template.renderAll(options.template, options.replacements);
|
|
233
|
+
if (result.subject) {
|
|
234
|
+
options.subject = result.subject;
|
|
235
|
+
}
|
|
236
|
+
if (result.html) {
|
|
237
|
+
options.html = result.html;
|
|
238
|
+
}
|
|
239
|
+
if (result.text) {
|
|
240
|
+
options.text = result.text;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
throw Error("Unknown mail template");
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return this._transporter.sendMail(options, callback);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
export { Mailer };
|
|
251
|
+
//# sourceMappingURL=mailer.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailer.service.js","sourceRoot":"","sources":["../../src/services/mailer.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { ServiceName } from "../core/hooks.js";
|
|
2
|
+
import { AbstractService } from "../core/icore.js";
|
|
3
|
+
import type { Ident } from "../models/ident.model.js";
|
|
4
|
+
import type { User } from "../models/user.model.js";
|
|
5
|
+
import { ServiceParameters } from "../services/serviceparameters.js";
|
|
6
|
+
import { Service } from "./service.js";
|
|
4
7
|
/**
|
|
5
8
|
* Define a service that can notify a user based on his info
|
|
6
9
|
* It can use email or SMS or any other media
|
|
7
10
|
*/
|
|
8
|
-
export interface NotificationService {
|
|
11
|
+
export interface NotificationService extends AbstractService {
|
|
9
12
|
/**
|
|
10
13
|
* Check if this type of notification is available
|
|
11
14
|
*/
|
|
@@ -33,7 +36,7 @@ export declare class MultiNotificationParameters extends ServiceParameters {
|
|
|
33
36
|
* When multiple is `false` the first available NotificationService will
|
|
34
37
|
* be used, otherwise every available NotificationService will be used
|
|
35
38
|
*/
|
|
36
|
-
senders:
|
|
39
|
+
senders: ServiceName[];
|
|
37
40
|
/**
|
|
38
41
|
* Define if it sends one or several notification per user
|
|
39
42
|
* @default false
|
|
@@ -42,7 +45,7 @@ export declare class MultiNotificationParameters extends ServiceParameters {
|
|
|
42
45
|
/**
|
|
43
46
|
* @override
|
|
44
47
|
*/
|
|
45
|
-
|
|
48
|
+
load(params?: any): this;
|
|
46
49
|
}
|
|
47
50
|
/**
|
|
48
51
|
* Allow an aggregation of Notification to send via multiple media
|
|
@@ -52,10 +55,6 @@ export declare class MultiNotificationParameters extends ServiceParameters {
|
|
|
52
55
|
*/
|
|
53
56
|
export default class MultiNotificationService<T extends MultiNotificationParameters = MultiNotificationParameters> extends Service<T> implements NotificationService {
|
|
54
57
|
senders: NotificationService[];
|
|
55
|
-
/**
|
|
56
|
-
* @override
|
|
57
|
-
*/
|
|
58
|
-
loadParameters(params: any): MultiNotificationParameters;
|
|
59
58
|
/**
|
|
60
59
|
* @override
|
|
61
60
|
*/
|
|
@@ -74,4 +73,4 @@ export default class MultiNotificationService<T extends MultiNotificationParamet
|
|
|
74
73
|
hasNotification(notification: string): Promise<boolean>;
|
|
75
74
|
}
|
|
76
75
|
export { MultiNotificationService };
|
|
77
|
-
//# sourceMappingURL=notificationservice.d.ts.map
|
|
76
|
+
//# sourceMappingURL=notificationservice.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notificationservice.service.d.ts","sourceRoot":"","sources":["../../src/services/notificationservice.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiC,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD;;;OAGG;IACH,qBAAqB,CAAC,WAAW,EAAE,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9F;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,iBAAiB;IAChE;;;;;OAKG;IACH,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,MAAM,GAAE,GAAQ,GAAG,IAAI,CAK3B;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAwB,CAAC,CAAC,SAAS,2BAA2B,GAAG,2BAA2B,CAC/G,SAAQ,OAAO,CAAC,CAAC,CACjB,YAAW,mBAAmB;IAE9B,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAE/B;;OAEG;IACH,OAAO,IAAI,IAAI,CAWd;IAED;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBjG;IAED;;OAEG;IACG,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAEhE;IAED;;OAEG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5D;CACF;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -1,14 +1,30 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useDynamicService } from "../core/hooks.js";
|
|
2
|
+
import { ServiceParameters } from "../services/serviceparameters.js";
|
|
3
|
+
import { Service } from "./service.js";
|
|
2
4
|
/**
|
|
3
5
|
* Parameters for multi notification service
|
|
4
6
|
*/
|
|
5
7
|
export class MultiNotificationParameters extends ServiceParameters {
|
|
8
|
+
/**
|
|
9
|
+
* Notification service that will send
|
|
10
|
+
* The order of the array is important if multiple is false
|
|
11
|
+
* When multiple is `false` the first available NotificationService will
|
|
12
|
+
* be used, otherwise every available NotificationService will be used
|
|
13
|
+
*/
|
|
14
|
+
senders;
|
|
15
|
+
/**
|
|
16
|
+
* Define if it sends one or several notification per user
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
multiple;
|
|
6
20
|
/**
|
|
7
21
|
* @override
|
|
8
22
|
*/
|
|
9
|
-
|
|
10
|
-
super(params);
|
|
11
|
-
this.senders
|
|
23
|
+
load(params = {}) {
|
|
24
|
+
super.load(params);
|
|
25
|
+
this.senders ??= [];
|
|
26
|
+
this.multiple ??= false;
|
|
27
|
+
return this;
|
|
12
28
|
}
|
|
13
29
|
}
|
|
14
30
|
/**
|
|
@@ -18,19 +34,15 @@ export class MultiNotificationParameters extends ServiceParameters {
|
|
|
18
34
|
* @WebdaModda
|
|
19
35
|
*/
|
|
20
36
|
export default class MultiNotificationService extends Service {
|
|
21
|
-
|
|
22
|
-
* @override
|
|
23
|
-
*/
|
|
24
|
-
loadParameters(params) {
|
|
25
|
-
return new MultiNotificationParameters(params);
|
|
26
|
-
}
|
|
37
|
+
senders;
|
|
27
38
|
/**
|
|
28
39
|
* @override
|
|
29
40
|
*/
|
|
30
41
|
resolve() {
|
|
31
42
|
super.resolve();
|
|
43
|
+
console.log("resolve", this.parameters.senders);
|
|
32
44
|
this.senders = this.parameters.senders.map(s => {
|
|
33
|
-
const service =
|
|
45
|
+
const service = useDynamicService(s);
|
|
34
46
|
if (!service) {
|
|
35
47
|
throw new Error(`Unknown service '${s}'`);
|
|
36
48
|
}
|
|
@@ -69,4 +81,4 @@ export default class MultiNotificationService extends Service {
|
|
|
69
81
|
}
|
|
70
82
|
}
|
|
71
83
|
export { MultiNotificationService };
|
|
72
|
-
//# sourceMappingURL=notificationservice.js.map
|
|
84
|
+
//# sourceMappingURL=notificationservice.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notificationservice.service.js","sourceRoot":"","sources":["../../src/services/notificationservice.service.ts"],"names":[],"mappings":"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"}
|