@webda/core 4.0.0-beta.2 → 4.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +252 -0
- package/lib/application/application.d.ts +468 -0
- package/lib/application/application.d.ts.map +1 -0
- package/lib/application/application.js +845 -0
- package/lib/application/application.js.map +1 -0
- package/lib/application/deployment.d.ts +93 -0
- package/lib/application/deployment.d.ts.map +1 -0
- package/lib/application/deployment.js +99 -0
- package/lib/application/deployment.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 +500 -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 +196 -0
- package/lib/bin/cli.d.ts.map +1 -0
- package/lib/bin/cli.js +934 -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 +182 -0
- package/lib/contexts/operationcontext.d.ts.map +1 -0
- package/lib/contexts/operationcontext.js +361 -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 +94 -0
- package/lib/core/hooks.d.ts.map +1 -0
- package/lib/core/hooks.js +97 -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/deployers/deployer.d.ts +157 -0
- package/lib/deployers/deployer.d.ts.map +1 -0
- package/lib/deployers/deployer.js +81 -0
- package/lib/deployers/deployer.js.map +1 -0
- package/lib/deployers/git.d.ts +27 -0
- package/lib/deployers/git.d.ts.map +1 -0
- package/lib/deployers/git.js +66 -0
- package/lib/deployers/git.js.map +1 -0
- package/lib/deployers/packager.d.ts +85 -0
- package/lib/deployers/packager.d.ts.map +1 -0
- package/lib/deployers/packager.js +259 -0
- package/lib/deployers/packager.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 +88 -54
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +88 -64
- 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 +67 -0
- package/lib/models/decorator.d.ts.map +1 -0
- package/lib/models/decorator.js +67 -0
- package/lib/models/decorator.js.map +1 -0
- package/lib/models/deployment.d.ts +2 -21
- package/lib/models/deployment.d.ts.map +1 -1
- package/lib/models/encrypted.model.d.ts +46 -0
- package/lib/models/encrypted.model.d.ts.map +1 -0
- package/lib/models/encrypted.model.js +87 -0
- package/lib/models/encrypted.model.js.map +1 -0
- package/lib/models/ident.model.d.ts +128 -0
- package/lib/models/ident.model.d.ts.map +1 -0
- package/lib/models/ident.model.js +207 -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 +113 -0
- package/lib/models/ownermodel.model.js.map +1 -0
- package/lib/models/password.model.d.ts +78 -0
- package/lib/models/password.model.d.ts.map +1 -0
- package/lib/models/password.model.js +171 -0
- package/lib/models/password.model.js.map +1 -0
- package/lib/models/refreshtoken.model.d.ts +30 -0
- package/lib/models/refreshtoken.model.d.ts.map +1 -0
- package/lib/models/refreshtoken.model.js +29 -0
- package/lib/models/refreshtoken.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 +124 -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 +164 -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 +432 -0
- package/lib/services/audit.model.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 +242 -0
- package/lib/services/domainservice.service.d.ts.map +1 -0
- package/lib/services/domainservice.service.js +676 -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 +202 -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/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 +171 -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/services/token.service.d.ts +95 -0
- package/lib/services/token.service.d.ts.map +1 -0
- package/lib/services/token.service.js +182 -0
- package/lib/services/token.service.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 +87 -0
- package/lib/session/manager.model.d.ts.map +1 -0
- package/lib/session/manager.model.js +212 -0
- package/lib/session/manager.model.js.map +1 -0
- package/lib/session/session.d.ts +100 -0
- package/lib/session/session.d.ts.map +1 -0
- package/lib/session/session.js +175 -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 +344 -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 +47 -0
- package/lib/templates/templates.d.ts.map +1 -0
- package/lib/templates/templates.js +101 -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/behavior-fixture.model.d.ts +30 -0
- package/lib/test/behavior-fixture.model.d.ts.map +1 -0
- package/lib/test/behavior-fixture.model.js +63 -0
- package/lib/test/behavior-fixture.model.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/legacyident.fixture.model.d.ts +98 -0
- package/lib/test/legacyident.fixture.model.d.ts.map +1 -0
- package/lib/test/legacyident.fixture.model.js +125 -0
- package/lib/test/legacyident.fixture.model.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 +102 -60
- package/test/cachedapp/webda.config.json +1 -5
- package/test/config-cached.json +3 -6
- package/test/config.json +3 -10
- package/test/my-cnf.json +9 -0
- package/webda.module.json +3755 -2496
- 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 +0 -361
- 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.d.ts +0 -226
- package/lib/services/oauth.d.ts.map +0 -1
- package/lib/services/oauth.js +0 -294
- package/lib/services/oauth.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
package/lib/services/service.js
CHANGED
|
@@ -1,15 +1,62 @@
|
|
|
1
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
2
|
+
var useValue = arguments.length > 2;
|
|
3
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
4
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
5
|
+
}
|
|
6
|
+
return useValue ? value : void 0;
|
|
7
|
+
};
|
|
8
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
9
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
10
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
11
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
12
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
13
|
+
var _, done = false;
|
|
14
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
15
|
+
var context = {};
|
|
16
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
17
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
18
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
19
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
20
|
+
if (kind === "accessor") {
|
|
21
|
+
if (result === void 0) continue;
|
|
22
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
23
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
24
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
25
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
26
|
+
}
|
|
27
|
+
else if (_ = accept(result)) {
|
|
28
|
+
if (kind === "field") initializers.unshift(_);
|
|
29
|
+
else descriptor[key] = _;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
33
|
+
done = true;
|
|
34
|
+
};
|
|
35
|
+
import { EventEmitterUtils } from "../events/asynceventemitter.js";
|
|
36
|
+
import { createPropertyDecorator } from "@webda/tsc-esm";
|
|
37
|
+
import { useMetric } from "../metrics/metrics.js";
|
|
38
|
+
import { ServiceParameters } from "./serviceparameters.js";
|
|
39
|
+
import { useDynamicService, useService } from "../core/hooks.js";
|
|
40
|
+
import { registerOperation } from "../core/operations.js";
|
|
1
41
|
import { deepmerge } from "deepmerge-ts";
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
42
|
+
import { useApplication } from "../application/hooks.js";
|
|
43
|
+
import { AbstractService } from "../core/icore.js";
|
|
44
|
+
import { useLogger } from "../loggers/hooks.js";
|
|
45
|
+
import { WEBDA_EVENTS } from "@webda/models";
|
|
46
|
+
import { State } from "@webda/utils";
|
|
47
|
+
import { ServiceState } from "./iservice.js";
|
|
48
|
+
import { getMetadata } from "@webda/decorators";
|
|
5
49
|
/**
|
|
6
50
|
* Represent a Inject annotation
|
|
7
51
|
*
|
|
8
52
|
* @see Inject
|
|
9
53
|
*/
|
|
10
54
|
class Injector {
|
|
55
|
+
parameter;
|
|
56
|
+
value;
|
|
57
|
+
property;
|
|
58
|
+
optional;
|
|
11
59
|
/**
|
|
12
|
-
*
|
|
13
60
|
* @param property annotated
|
|
14
61
|
* @param parameterOrName to inject from
|
|
15
62
|
* @param defaultValue in case of a parameter
|
|
@@ -41,7 +88,7 @@ class Injector {
|
|
|
41
88
|
if (this.parameter) {
|
|
42
89
|
name = service.getParameters()[this.parameter] || this.value;
|
|
43
90
|
}
|
|
44
|
-
service[this.property] =
|
|
91
|
+
service[this.property] = useService(name);
|
|
45
92
|
if (!service[this.property] && !this.optional) {
|
|
46
93
|
if (this.parameter) {
|
|
47
94
|
throw new Error(`Injector did not found bean '${name}'(parameter:${this.parameter}) for '${service.getName()}'`);
|
|
@@ -55,7 +102,9 @@ class Injector {
|
|
|
55
102
|
* @param service to inject to
|
|
56
103
|
*/
|
|
57
104
|
static resolveAll(service) {
|
|
58
|
-
(
|
|
105
|
+
getMetadata(service.constructor)?.["webda.inject"]?.forEach((injector) => {
|
|
106
|
+
injector.resolve(service);
|
|
107
|
+
});
|
|
59
108
|
}
|
|
60
109
|
}
|
|
61
110
|
/**
|
|
@@ -70,127 +119,29 @@ class Injector {
|
|
|
70
119
|
* @param parameterOrName of the service to inject
|
|
71
120
|
*
|
|
72
121
|
* Might consider to split into two annotations
|
|
122
|
+
* TODO @webda/compiler could get all interfaces and ancestors classes to find the correct service
|
|
73
123
|
*/
|
|
74
|
-
export
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
* @param output
|
|
94
|
-
*/
|
|
95
|
-
export function Operation(properties, route) {
|
|
96
|
-
return (target, executor) => {
|
|
97
|
-
var _a, _b, _c, _d, _e, _f;
|
|
98
|
-
(_a = target.constructor).operations ?? (_a.operations = {});
|
|
99
|
-
properties ?? (properties = {});
|
|
100
|
-
properties.id ?? (properties.id = executor.substring(0, 1).toUpperCase() + executor.substring(1));
|
|
101
|
-
const id = properties.id;
|
|
102
|
-
if (target.constructor.operations[id]) {
|
|
103
|
-
console.error("Operation already exists", id);
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
(_b = target.constructor.operations)[id] ?? (_b[id] = {
|
|
107
|
-
method: executor,
|
|
108
|
-
...properties
|
|
109
|
-
});
|
|
110
|
-
// If url is specified define the openapi
|
|
111
|
-
if (route) {
|
|
112
|
-
route.method ?? (route.method = "GET");
|
|
113
|
-
route.openapi ?? (route.openapi = {});
|
|
114
|
-
(_c = route.openapi)[_d = route.method.toLowerCase()] ?? (_c[_d] = {});
|
|
115
|
-
const def = route.openapi[route.method.toLowerCase()];
|
|
116
|
-
def.operationId = id;
|
|
117
|
-
def.schemas ?? (def.schemas = {});
|
|
118
|
-
(_e = def.schemas).input ?? (_e.input = properties.id.toLowerCase() + ".input");
|
|
119
|
-
(_f = def.schemas).output ?? (_f.output = properties.id.toLowerCase() + ".output");
|
|
120
|
-
Route(route.url, route.method, route.openapi)(target, executor);
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* A utility class that takes a array of string or string transformed into regex that includes
|
|
126
|
-
* a start line and end line
|
|
127
|
-
*/
|
|
128
|
-
export class RegExpValidator {
|
|
129
|
-
constructor(info) {
|
|
130
|
-
info = Array.isArray(info) ? info : [info];
|
|
131
|
-
this.validators = info.map(i => RegExpValidator.getRegExp(i));
|
|
132
|
-
}
|
|
133
|
-
static getRegExp(reg) {
|
|
134
|
-
if (!reg.startsWith("^")) {
|
|
135
|
-
reg = "^" + reg;
|
|
136
|
-
}
|
|
137
|
-
if (!reg.endsWith("$")) {
|
|
138
|
-
reg += "$";
|
|
139
|
-
}
|
|
140
|
-
return new RegExp(reg);
|
|
141
|
-
}
|
|
142
|
-
validate(value) {
|
|
143
|
-
return this.validators.some(p => p.test(value));
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Standardized way to allow string/regex validation within configuration
|
|
148
|
-
*
|
|
149
|
-
* If url is prefixed with `regex:` it is considered a regex
|
|
150
|
-
*
|
|
151
|
-
* @example
|
|
152
|
-
* ```typescript
|
|
153
|
-
* class MyServiceParameters extends ServiceParameters {
|
|
154
|
-
* urls: string[];
|
|
155
|
-
* }
|
|
156
|
-
*
|
|
157
|
-
* class MyService extends Service {
|
|
158
|
-
* loadParameters(params:any) {
|
|
159
|
-
* const parameters = new MyServiceParameters(params);
|
|
160
|
-
* this.urlsValidator = new RegExpStringValidator(parameters.urls);
|
|
161
|
-
* return parameters;
|
|
162
|
-
* }
|
|
163
|
-
* }
|
|
164
|
-
* ```
|
|
165
|
-
*/
|
|
166
|
-
export class RegExpStringValidator extends RegExpValidator {
|
|
167
|
-
constructor(info) {
|
|
168
|
-
info = Array.isArray(info) ? info : [info];
|
|
169
|
-
super(info.filter(i => i.startsWith("regex:")).map(i => i.substring(6)));
|
|
170
|
-
this.stringValidators = info.filter(i => !i.startsWith("regex:"));
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Add string validation
|
|
174
|
-
* @param value
|
|
175
|
-
* @returns
|
|
176
|
-
*/
|
|
177
|
-
validate(value) {
|
|
178
|
-
return this.stringValidators.find(p => p === value) !== undefined || super.validate(value);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Interface to specify the Service parameters
|
|
183
|
-
*/
|
|
184
|
-
export class ServiceParameters {
|
|
185
|
-
/**
|
|
186
|
-
* Copy all parameters into the object by default
|
|
187
|
-
*
|
|
188
|
-
* @param params from webda.config.json
|
|
189
|
-
*/
|
|
190
|
-
constructor(params) {
|
|
191
|
-
Object.assign(this, params);
|
|
192
|
-
}
|
|
124
|
+
export const Inject = createPropertyDecorator((context, parameterOrName, defaultValue, optional) => {
|
|
125
|
+
context.metadata["webda.inject"] ??= [];
|
|
126
|
+
context.metadata["webda.inject"].push(new Injector(context.name, (parameterOrName || context.name), typeof defaultValue === "boolean" ? undefined : defaultValue, typeof defaultValue === "boolean" ? defaultValue : optional));
|
|
127
|
+
});
|
|
128
|
+
/*
|
|
129
|
+
export function Inject(parameterOrName?: string, defaultValue?: string | boolean, optional?: boolean) {
|
|
130
|
+
return (target: Service, context: ClassFieldDecoratorContext): void => {
|
|
131
|
+
context.metadata["webda.inject"] ??= {};
|
|
132
|
+
context.metadata["webda.inject"][context.name] = { parameterOrName, defaultValue, optional };
|
|
133
|
+
|
|
134
|
+
/*
|
|
135
|
+
target.Injectors = target.Injectors || [];
|
|
136
|
+
if (typeof defaultValue === "boolean") {
|
|
137
|
+
target.Injectors.push(new Injector(propertyName, parameterOrName || propertyName, undefined, defaultValue));
|
|
138
|
+
} else {
|
|
139
|
+
target.Injectors.push(new Injector(propertyName, parameterOrName || propertyName, defaultValue, optional));
|
|
140
|
+
}
|
|
141
|
+
/
|
|
142
|
+
};
|
|
193
143
|
}
|
|
144
|
+
*/
|
|
194
145
|
/**
|
|
195
146
|
* Use this object for representing a service in the application
|
|
196
147
|
* A Service is a singleton in the application, that is init after all others services are created
|
|
@@ -201,310 +152,344 @@ export class ServiceParameters {
|
|
|
201
152
|
* @abstract
|
|
202
153
|
* @class Service
|
|
203
154
|
*/
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
this.metrics = {};
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Add service name label
|
|
279
|
-
* @param type
|
|
280
|
-
* @param configuration
|
|
281
|
-
* @returns
|
|
282
|
-
*/
|
|
283
|
-
getMetric(type, configuration) {
|
|
284
|
-
configuration.labelNames ?? (configuration.labelNames = []);
|
|
285
|
-
configuration.labelNames = [...configuration.labelNames, "service"];
|
|
286
|
-
configuration.name = `${this.getName().toLowerCase()}_${configuration.name}`;
|
|
287
|
-
return this.getWebda().getMetric(type, configuration);
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* Return the events that an external system can subscribe to
|
|
291
|
-
*
|
|
292
|
-
* @returns
|
|
293
|
-
*/
|
|
294
|
-
getClientEvents() {
|
|
295
|
-
return [];
|
|
296
|
-
}
|
|
297
|
-
/**
|
|
298
|
-
* Authorize a public event subscription
|
|
299
|
-
* @param event
|
|
300
|
-
* @param context
|
|
301
|
-
*/
|
|
302
|
-
authorizeClientEvent(_event, _context) {
|
|
303
|
-
return false;
|
|
304
|
-
}
|
|
305
|
-
/**
|
|
306
|
-
* Return the full path url based on parameters
|
|
307
|
-
*
|
|
308
|
-
* @param url relative url to service
|
|
309
|
-
* @param _methods in case we need filtering (like Store)
|
|
310
|
-
* @returns absolute url or undefined if need to skip the Route
|
|
311
|
-
*/
|
|
312
|
-
getUrl(url, _methods) {
|
|
313
|
-
// If url is absolute
|
|
314
|
-
if (url.startsWith("/")) {
|
|
315
|
-
return url;
|
|
155
|
+
let Service = (() => {
|
|
156
|
+
let _classSuper = AbstractService;
|
|
157
|
+
let _instanceExtraInitializers = [];
|
|
158
|
+
let _stop_decorators;
|
|
159
|
+
let _resolve_decorators;
|
|
160
|
+
let _init_decorators;
|
|
161
|
+
return class Service extends _classSuper {
|
|
162
|
+
static {
|
|
163
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
164
|
+
_stop_decorators = [ServiceState({ start: "stopping", end: "stopped" })];
|
|
165
|
+
_resolve_decorators = [ServiceState({ start: "resolving", end: "resolved" })];
|
|
166
|
+
_init_decorators = [ServiceState({ start: "initializing", end: "running" })];
|
|
167
|
+
__esDecorate(this, null, _stop_decorators, { kind: "method", name: "stop", static: false, private: false, access: { has: obj => "stop" in obj, get: obj => obj.stop }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
168
|
+
__esDecorate(this, null, _resolve_decorators, { kind: "method", name: "resolve", static: false, private: false, access: { has: obj => "resolve" in obj, get: obj => obj.resolve }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
169
|
+
__esDecorate(this, null, _init_decorators, { kind: "method", name: "init", static: false, private: false, access: { has: obj => "init" in obj, get: obj => obj.init }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
170
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Service parameters
|
|
174
|
+
*/
|
|
175
|
+
static Parameters = ServiceParameters;
|
|
176
|
+
/**
|
|
177
|
+
* Set the Webda events here
|
|
178
|
+
*/
|
|
179
|
+
[WEBDA_EVENTS] = __runInitializers(this, _instanceExtraInitializers);
|
|
180
|
+
/**
|
|
181
|
+
* Get the current state
|
|
182
|
+
* @returns the result
|
|
183
|
+
*/
|
|
184
|
+
getState() {
|
|
185
|
+
return State.getCurrentState(this);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Logger with class context
|
|
189
|
+
*/
|
|
190
|
+
logger;
|
|
191
|
+
/**
|
|
192
|
+
* Get metrics
|
|
193
|
+
*/
|
|
194
|
+
metrics;
|
|
195
|
+
/**
|
|
196
|
+
*
|
|
197
|
+
*
|
|
198
|
+
* @class Service
|
|
199
|
+
* @param {Webda} webda - The main instance of Webda
|
|
200
|
+
* @param {String} name - The name of the service
|
|
201
|
+
* @param {Object} params - The parameters block define in the configuration file
|
|
202
|
+
*/
|
|
203
|
+
constructor(name, params) {
|
|
204
|
+
super(name, params);
|
|
205
|
+
this.logger = useLogger(this);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Used to compute or derivate input parameter to attribute
|
|
209
|
+
* @deprecated
|
|
210
|
+
*/
|
|
211
|
+
computeParameters() {
|
|
212
|
+
// Can be overriden by subclasses if needed
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Get the service parameters
|
|
216
|
+
* @returns the result
|
|
217
|
+
*/
|
|
218
|
+
getParameters() {
|
|
219
|
+
return this.parameters;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Shutdown the current service if action need to be taken
|
|
223
|
+
*/
|
|
224
|
+
async stop() {
|
|
225
|
+
// Nothing to do
|
|
316
226
|
}
|
|
317
|
-
|
|
318
|
-
|
|
227
|
+
/**
|
|
228
|
+
* Return service representation
|
|
229
|
+
* @returns the result
|
|
230
|
+
*/
|
|
231
|
+
toString() {
|
|
232
|
+
return this.parameters.type + "[" + this.name + "]";
|
|
319
233
|
}
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
234
|
+
/**
|
|
235
|
+
* Resolve parameters and load metadata. `@Route`-declared routes are scanned
|
|
236
|
+
* and registered by `Router.discoverRoutes(services)` from `Core.init()`
|
|
237
|
+
* once every service has resolved — nothing to do per-service here.
|
|
238
|
+
* @returns the result
|
|
239
|
+
*/
|
|
240
|
+
resolve() {
|
|
241
|
+
this.initMetrics();
|
|
242
|
+
// Inject dependencies
|
|
243
|
+
Injector.resolveAll(this);
|
|
244
|
+
// We wait for all services to be created before calling computeParameters
|
|
245
|
+
this.computeParameters();
|
|
246
|
+
this.loadCapabilities();
|
|
247
|
+
this.initOperations();
|
|
248
|
+
return this;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Load capabilities from webda.module.json metadata into {@link _compiledCapabilities}.
|
|
252
|
+
*
|
|
253
|
+
* Called during {@link resolve} after dependency injection. Reads the service's
|
|
254
|
+
* type name from parameters, looks it up in the application's module metadata
|
|
255
|
+
* (moddas or beans section), and populates `_compiledCapabilities` with an
|
|
256
|
+
* empty object for each declared capability name.
|
|
257
|
+
*
|
|
258
|
+
* Fails silently if the application is not available (e.g., in unit tests
|
|
259
|
+
* where services are instantiated without a full application context).
|
|
260
|
+
*
|
|
261
|
+
* @example
|
|
262
|
+
* ```typescript
|
|
263
|
+
* // If webda.module.json contains:
|
|
264
|
+
* // { "moddas": { "MyApp/HawkService": { "capabilities": ["request-filter", "cors-filter"] } } }
|
|
265
|
+
* // Then after resolve(), this.getCapabilities() returns:
|
|
266
|
+
* // { "request-filter": {}, "cors-filter": {} }
|
|
267
|
+
* ```
|
|
268
|
+
*
|
|
269
|
+
* @see getCapabilities
|
|
270
|
+
*/
|
|
271
|
+
loadCapabilities() {
|
|
272
|
+
try {
|
|
273
|
+
const app = useApplication();
|
|
274
|
+
const modules = app.getModules();
|
|
275
|
+
const type = this.parameters.type;
|
|
276
|
+
const metadata = modules.moddas?.[type] || modules.beans?.[type];
|
|
277
|
+
if (metadata?.capabilities) {
|
|
278
|
+
this._compiledCapabilities = {};
|
|
279
|
+
for (const cap of metadata.capabilities) {
|
|
280
|
+
this._compiledCapabilities[cap] = {};
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
// Application may not be available in tests
|
|
323
286
|
}
|
|
324
|
-
return this.parameters.url + url.substring(1);
|
|
325
287
|
}
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
* @returns
|
|
332
|
-
*/
|
|
333
|
-
getOperationId(id) {
|
|
334
|
-
return id;
|
|
335
|
-
}
|
|
336
|
-
/**
|
|
337
|
-
* Add a route dynamicaly
|
|
338
|
-
*
|
|
339
|
-
* @param {String} url of the route can contains dynamic part like {uuid}
|
|
340
|
-
* @param {Array[]} methods
|
|
341
|
-
* @param {Function} executer Method to execute for this route
|
|
342
|
-
*/
|
|
343
|
-
addRoute(url, methods, executer, openapi = {}, override = false) {
|
|
344
|
-
const finalUrl = this.getUrl(url, methods);
|
|
345
|
-
if (!finalUrl) {
|
|
346
|
-
return;
|
|
347
|
-
}
|
|
348
|
-
this._webda.addRoute(finalUrl, {
|
|
349
|
-
// Create bounded function to keep the context
|
|
350
|
-
_method: executer.bind(this),
|
|
351
|
-
executor: this._name,
|
|
352
|
-
openapi: deepmerge(openapi, this.parameters.openapi || {}),
|
|
353
|
-
methods,
|
|
354
|
-
override
|
|
355
|
-
});
|
|
356
|
-
}
|
|
357
|
-
/**
|
|
358
|
-
* Return variables for replacement in openapi
|
|
359
|
-
* @returns
|
|
360
|
-
*/
|
|
361
|
-
getOpenApiReplacements() {
|
|
362
|
-
return {};
|
|
363
|
-
}
|
|
364
|
-
/**
|
|
365
|
-
* Init the routes
|
|
366
|
-
*/
|
|
367
|
-
initRoutes() {
|
|
368
|
-
// @ts-ignore
|
|
369
|
-
const routes = this.constructor.routes || {};
|
|
370
|
-
for (const j in routes) {
|
|
371
|
-
this.log("TRACE", "Adding route", j, "for bean", this.getName());
|
|
372
|
-
routes[j].forEach(route => {
|
|
373
|
-
this.addRoute(j, route.methods, this[route.executor], route.openapi);
|
|
374
|
-
});
|
|
288
|
+
/**
|
|
289
|
+
* Init the metrics
|
|
290
|
+
*/
|
|
291
|
+
initMetrics() {
|
|
292
|
+
this.metrics = {};
|
|
375
293
|
}
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
294
|
+
/**
|
|
295
|
+
* Get a service by name
|
|
296
|
+
* @param name - the name to use
|
|
297
|
+
* @returns the result map
|
|
298
|
+
* @deprecated Use useService, might reconsider
|
|
299
|
+
*/
|
|
300
|
+
getService(name) {
|
|
301
|
+
return useService(name);
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Add service name label
|
|
305
|
+
* @param type - the type to look up
|
|
306
|
+
* @param configuration - the configuration
|
|
307
|
+
* @returns the result
|
|
308
|
+
*/
|
|
309
|
+
getMetric(type, configuration) {
|
|
310
|
+
configuration.labelNames ??= [];
|
|
311
|
+
configuration.labelNames = [...configuration.labelNames, "service"];
|
|
312
|
+
configuration.name = `${this.getName().toLowerCase()}_${configuration.name}`;
|
|
313
|
+
return useMetric(type, configuration);
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Return the events that an external system can subscribe to
|
|
317
|
+
*
|
|
318
|
+
* @returns the list of results
|
|
319
|
+
*/
|
|
320
|
+
getClientEvents() {
|
|
321
|
+
return [];
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Authorize a public event subscription
|
|
325
|
+
* @param event - the event name
|
|
326
|
+
* @param context - the execution context
|
|
327
|
+
* @param _event - the event name
|
|
328
|
+
* @param _context - the execution context
|
|
329
|
+
* @returns true if the condition is met
|
|
330
|
+
*/
|
|
331
|
+
authorizeClientEvent(_event, _context) {
|
|
332
|
+
return false;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Return the full path url based on parameters
|
|
336
|
+
*
|
|
337
|
+
* @param url relative url to service
|
|
338
|
+
* @param _methods in case we need filtering (like Store)
|
|
339
|
+
* @returns absolute url or undefined if need to skip the Route
|
|
340
|
+
*/
|
|
341
|
+
getUrl(url, _methods) {
|
|
342
|
+
const { url: ServiceUrl } = this.parameters;
|
|
343
|
+
// If url is absolute
|
|
344
|
+
if (url.startsWith("/")) {
|
|
345
|
+
return url;
|
|
346
|
+
}
|
|
347
|
+
if (!ServiceUrl) {
|
|
348
|
+
return undefined;
|
|
349
|
+
}
|
|
350
|
+
if (url.startsWith(".")) {
|
|
351
|
+
if (ServiceUrl.endsWith("/") && url.startsWith("./")) {
|
|
352
|
+
return ServiceUrl + url.substring(2);
|
|
353
|
+
}
|
|
354
|
+
return ServiceUrl + url.substring(1);
|
|
355
|
+
}
|
|
356
|
+
return url;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* If undefined is returned it cancel the operation registration
|
|
360
|
+
* @param id - the identifier
|
|
361
|
+
* @returns the result
|
|
362
|
+
*/
|
|
363
|
+
getOperationId(id) {
|
|
364
|
+
return id;
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Add a route dynamicaly
|
|
368
|
+
*
|
|
369
|
+
* @param {String} url of the route can contains dynamic part like {uuid}
|
|
370
|
+
* @param {Array[]} methods - the HTTP methods
|
|
371
|
+
* @param {Function} executer Method to execute for this route
|
|
372
|
+
* @param openapi - the OpenAPI specification
|
|
373
|
+
* @param override - whether to override existing
|
|
374
|
+
*/
|
|
375
|
+
addRoute(url, methods, executer, openapi = {}, override = false) {
|
|
376
|
+
const finalUrl = this.getUrl(url, methods);
|
|
377
|
+
if (!finalUrl) {
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
const router = useDynamicService("Router");
|
|
381
|
+
if (!router) {
|
|
382
|
+
this.log("WARN", `No Router service available, skipping route ${finalUrl}`);
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
router.addRouteToRouter(finalUrl, {
|
|
386
|
+
_method: executer.bind(this),
|
|
387
|
+
executor: this.getName(),
|
|
388
|
+
openapi: deepmerge(openapi, this.parameters.openapi || {}),
|
|
389
|
+
methods,
|
|
390
|
+
override
|
|
396
391
|
});
|
|
397
392
|
}
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
* @return {String} The export of the strip object ( removed all attribute with _ )
|
|
405
|
-
*/
|
|
406
|
-
toPublicJSON(object) {
|
|
407
|
-
return this._webda.toPublicJSON(object);
|
|
408
|
-
}
|
|
409
|
-
/**
|
|
410
|
-
* Prevent service to be serialized
|
|
411
|
-
* @returns
|
|
412
|
-
*/
|
|
413
|
-
toJSON() {
|
|
414
|
-
return this._name;
|
|
415
|
-
}
|
|
416
|
-
/**
|
|
417
|
-
* Will be called after all the Services are created
|
|
418
|
-
*
|
|
419
|
-
* @param config for the host so you can add your own route here
|
|
420
|
-
* @abstract
|
|
421
|
-
*/
|
|
422
|
-
async init() {
|
|
423
|
-
// Can be overriden by subclasses if needed
|
|
424
|
-
return this;
|
|
425
|
-
}
|
|
426
|
-
/**
|
|
427
|
-
*
|
|
428
|
-
* @param config new parameters for the service
|
|
429
|
-
*/
|
|
430
|
-
async reinit(config) {
|
|
431
|
-
this.parameters = this.loadParameters(config);
|
|
432
|
-
this.computeParameters();
|
|
433
|
-
return this.init();
|
|
434
|
-
}
|
|
435
|
-
/**
|
|
436
|
-
* Emit the event with data and wait for Promise to finish if listener returned a Promise
|
|
437
|
-
*/
|
|
438
|
-
emitSync(event, data) {
|
|
439
|
-
return EventEmitterUtils.emitSync(this, event, data);
|
|
440
|
-
}
|
|
441
|
-
/**
|
|
442
|
-
* Override to allow capturing long listeners
|
|
443
|
-
* @override
|
|
444
|
-
*/
|
|
445
|
-
emit(event, data) {
|
|
446
|
-
return EventEmitterUtils.emit(this, event, data);
|
|
447
|
-
}
|
|
448
|
-
/**
|
|
449
|
-
* Type the listener part
|
|
450
|
-
* @param event
|
|
451
|
-
* @param listener
|
|
452
|
-
* @param queue
|
|
453
|
-
* @returns
|
|
454
|
-
*/
|
|
455
|
-
on(event, listener) {
|
|
456
|
-
super.on(event, listener);
|
|
457
|
-
return this;
|
|
458
|
-
}
|
|
459
|
-
/**
|
|
460
|
-
* Listen to an event as on(...) would do except that it will be asynchronous
|
|
461
|
-
* @param event
|
|
462
|
-
* @param callback
|
|
463
|
-
* @param queue Name of queue to use, can be undefined, queue name are used to define differents priorities
|
|
464
|
-
*/
|
|
465
|
-
onAsync(event, listener, queue = undefined) {
|
|
466
|
-
this._webda.getService("AsyncEvents").bindAsyncListener(this, event, listener, queue);
|
|
467
|
-
}
|
|
468
|
-
/**
|
|
469
|
-
* Return a webda service
|
|
470
|
-
* @param service name to retrieve
|
|
471
|
-
*/
|
|
472
|
-
getService(service) {
|
|
473
|
-
return this._webda.getService(service);
|
|
474
|
-
}
|
|
475
|
-
/**
|
|
476
|
-
* Get service name
|
|
477
|
-
*/
|
|
478
|
-
getName() {
|
|
479
|
-
return this._name;
|
|
480
|
-
}
|
|
481
|
-
/**
|
|
482
|
-
* Clean the service data, can only be used in test mode
|
|
483
|
-
*
|
|
484
|
-
* @abstract
|
|
485
|
-
*/
|
|
486
|
-
__clean() {
|
|
487
|
-
// @ts-ignore
|
|
488
|
-
if (typeof global.it !== "function") {
|
|
489
|
-
throw Error("Only for test purpose");
|
|
393
|
+
/**
|
|
394
|
+
* Return variables for replacement in openapi
|
|
395
|
+
* @returns the result
|
|
396
|
+
*/
|
|
397
|
+
getOpenApiReplacements() {
|
|
398
|
+
return {};
|
|
490
399
|
}
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
400
|
+
/**
|
|
401
|
+
* Init the operations from @Operation decorators on this service
|
|
402
|
+
*/
|
|
403
|
+
initOperations() {
|
|
404
|
+
// Read @Operation decorator metadata from Symbol.metadata
|
|
405
|
+
const metadata = getMetadata(this.constructor);
|
|
406
|
+
const operations = metadata?.["webda.operations"] || [];
|
|
407
|
+
if (operations.length === 0)
|
|
408
|
+
return;
|
|
409
|
+
let serviceName = this.getName();
|
|
410
|
+
serviceName = serviceName.substring(0, 1).toUpperCase() + serviceName.substring(1);
|
|
411
|
+
for (const op of operations) {
|
|
412
|
+
// The decorator stores context.name first, then spreads options which may override id
|
|
413
|
+
// We need the actual method name (context.name) for execution
|
|
414
|
+
const actualMethod = op._methodName;
|
|
415
|
+
const opName = op.id;
|
|
416
|
+
const opId = opName.includes(".")
|
|
417
|
+
? opName
|
|
418
|
+
: `${serviceName}.${opName.substring(0, 1).toUpperCase() + opName.substring(1)}`;
|
|
419
|
+
if (!this.getOperationId(opId))
|
|
420
|
+
continue;
|
|
421
|
+
this.log("TRACE", "Adding operation", opId, "for service", this.getName());
|
|
422
|
+
registerOperation(opId, {
|
|
423
|
+
...op,
|
|
424
|
+
service: this.getName(),
|
|
425
|
+
method: actualMethod,
|
|
426
|
+
input: op.input || `${this.getName()}.${actualMethod}.input`,
|
|
427
|
+
output: op.output || `${this.getName()}.${actualMethod}.output`,
|
|
428
|
+
id: opId
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Prevent service to be serialized
|
|
434
|
+
* @returns the result
|
|
435
|
+
*/
|
|
436
|
+
toJSON() {
|
|
437
|
+
return this.toString();
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Will be called after all the Services are created
|
|
441
|
+
*
|
|
442
|
+
* @param config for the host so you can add your own route here
|
|
443
|
+
* @abstract
|
|
444
|
+
*/
|
|
445
|
+
async init() {
|
|
446
|
+
// Can be overriden by subclasses if needed
|
|
447
|
+
return this;
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Emit the event with data and wait for Promise to finish if listener returned a Promise
|
|
451
|
+
* @param event - the event name
|
|
452
|
+
* @param data - the data to process
|
|
453
|
+
*/
|
|
454
|
+
async emit(event, data) {
|
|
455
|
+
await EventEmitterUtils.emit(this, event, data, (level, ...args) => this.log(level, ...args));
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Get service name
|
|
459
|
+
* @returns the result string
|
|
460
|
+
*/
|
|
461
|
+
getName() {
|
|
462
|
+
return this.name;
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* Clean the service data, can only be used in test mode
|
|
466
|
+
*
|
|
467
|
+
* @abstract
|
|
468
|
+
*/
|
|
469
|
+
__clean() {
|
|
470
|
+
// @ts-ignore
|
|
471
|
+
if (typeof global.it !== "function") {
|
|
472
|
+
throw Error("Only for test purpose");
|
|
473
|
+
}
|
|
474
|
+
return this.___cleanData();
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* @private
|
|
478
|
+
* @returns the result
|
|
479
|
+
*/
|
|
480
|
+
___cleanData() {
|
|
481
|
+
return Promise.resolve();
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
*
|
|
485
|
+
* @param level to log
|
|
486
|
+
* @param args - additional arguments
|
|
487
|
+
*/
|
|
488
|
+
log(level, ...args) {
|
|
489
|
+
// Add the service name to avoid confusion
|
|
490
|
+
this.logger.log(level, `[${this.name}]`, ...args);
|
|
491
|
+
}
|
|
492
|
+
};
|
|
493
|
+
})();
|
|
509
494
|
export { Service };
|
|
510
495
|
//# sourceMappingURL=service.js.map
|