@webda/core 4.0.0-beta.1 → 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/application/unpackedapplication.d.ts +104 -0
- 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 -49
- 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 +45 -19
- package/lib/contexts/httpcontext.d.ts.map +1 -0
- package/lib/{utils → contexts}/httpcontext.js +102 -34
- 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 +84 -51
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +82 -59
- 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 +21 -77
- package/lib/models/aclmodel.d.ts.map +1 -0
- package/lib/models/aclmodel.js +27 -204
- 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 +2 -1
- package/lib/models/deployment.d.ts.map +1 -0
- 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.model.js +53 -0
- 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.service.d.ts +72 -0
- package/lib/queues/memoryqueue.service.d.ts.map +1 -0
- package/lib/queues/memoryqueue.service.js +136 -0
- package/lib/queues/memoryqueue.service.js.map +1 -0
- package/lib/queues/pubsubservice.d.ts +9 -6
- package/lib/queues/pubsubservice.d.ts.map +1 -0
- package/lib/queues/pubsubservice.js +5 -4
- package/lib/queues/pubsubservice.js.map +1 -1
- package/lib/queues/queueservice.d.ts +10 -11
- package/lib/queues/queueservice.d.ts.map +1 -0
- package/lib/queues/queueservice.js +48 -20
- 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 -58
- 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 +19 -13
- package/lib/services/cloudbinary.d.ts.map +1 -0
- package/lib/services/cloudbinary.js +24 -18
- 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} +77 -142
- 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.service.js +66 -0
- 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 -10
- 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 +58 -31
- package/lib/services/oauth.d.ts.map +1 -0
- package/lib/services/oauth.js +365 -251
- 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 -11
- 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.service.d.ts +121 -0
- 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 +88 -189
- package/lib/services/service.d.ts.map +1 -0
- package/lib/services/service.js +407 -432
- 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 -18
- 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 +127 -768
- package/lib/stores/store.d.ts.map +1 -0
- package/lib/stores/store.js +258 -1718
- 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 +5 -2
- package/lib/utils/abstractdeployer.d.ts.map +1 -0
- package/lib/utils/abstractdeployer.js +3 -0
- package/lib/utils/abstractdeployer.js.map +1 -1
- package/package.json +85 -56
- package/test/cachedapp/webda.config.json +1 -5
- package/test/config-cached.json +1 -5
- package/test/config.json +6 -99
- package/test/data/.env +1 -0
- package/test/my-cnf.json +9 -0
- package/webda.module.json +3462 -2231
- package/lib/application.d.ts +0 -876
- package/lib/application.js +0 -741
- package/lib/application.js.map +0 -1
- package/lib/application.spec.d.ts +0 -1
- package/lib/application.spec.js +0 -234
- package/lib/application.spec.js.map +0 -1
- package/lib/core.d.ts +0 -740
- package/lib/core.js +0 -1310
- package/lib/core.js.map +0 -1
- package/lib/core.spec.d.ts +0 -1
- package/lib/core.spec.js +0 -761
- package/lib/core.spec.js.map +0 -1
- package/lib/errors.d.ts +0 -65
- package/lib/errors.js +0 -113
- package/lib/errors.js.map +0 -1
- package/lib/errors.spec.d.ts +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 -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 -887
- package/lib/models/coremodel.js +0 -1208
- package/lib/models/coremodel.js.map +0 -1
- package/lib/models/coremodel.spec.d.ts +0 -1
- package/lib/models/coremodel.spec.js +0 -462
- package/lib/models/coremodel.spec.js.map +0 -1
- package/lib/models/ident.d.ts +0 -53
- package/lib/models/ident.js +0 -40
- package/lib/models/ident.js.map +0 -1
- package/lib/models/ident.spec.d.ts +0 -1
- package/lib/models/ident.spec.js +0 -43
- package/lib/models/ident.spec.js.map +0 -1
- package/lib/models/ownermodel.d.ts +0 -50
- package/lib/models/ownermodel.js +0 -65
- package/lib/models/ownermodel.js.map +0 -1
- package/lib/models/ownermodel.spec.d.ts +0 -1
- package/lib/models/ownermodel.spec.js +0 -191
- package/lib/models/ownermodel.spec.js.map +0 -1
- package/lib/models/relations.d.ts +0 -181
- package/lib/models/relations.js +0 -157
- package/lib/models/relations.js.map +0 -1
- package/lib/models/relations.spec.d.ts +0 -12
- package/lib/models/relations.spec.js +0 -224
- package/lib/models/relations.spec.js.map +0 -1
- package/lib/models/rolemodel.d.ts +0 -10
- package/lib/models/rolemodel.js +0 -35
- package/lib/models/rolemodel.js.map +0 -1
- package/lib/models/rolemodel.spec.d.ts +0 -1
- package/lib/models/rolemodel.spec.js +0 -86
- package/lib/models/rolemodel.spec.js.map +0 -1
- package/lib/models/user.d.ts +0 -100
- package/lib/models/user.js +0 -157
- package/lib/models/user.js.map +0 -1
- package/lib/models/user.spec.d.ts +0 -1
- package/lib/models/user.spec.js +0 -88
- package/lib/models/user.spec.js.map +0 -1
- package/lib/queues/filequeue.d.ts +0 -58
- package/lib/queues/filequeue.js +0 -131
- package/lib/queues/filequeue.js.map +0 -1
- package/lib/queues/filequeue.spec.d.ts +0 -1
- package/lib/queues/filequeue.spec.js +0 -78
- package/lib/queues/filequeue.spec.js.map +0 -1
- package/lib/queues/memoryqueue.d.ts +0 -45
- package/lib/queues/memoryqueue.js +0 -81
- package/lib/queues/memoryqueue.js.map +0 -1
- package/lib/queues/memoryqueue.spec.d.ts +0 -1
- package/lib/queues/memoryqueue.spec.js +0 -192
- package/lib/queues/memoryqueue.spec.js.map +0 -1
- package/lib/queues/queue.spec.d.ts +0 -5
- package/lib/queues/queue.spec.js +0 -55
- package/lib/queues/queue.spec.js.map +0 -1
- package/lib/router.d.ts +0 -172
- package/lib/router.js +0 -419
- package/lib/router.js.map +0 -1
- package/lib/router.spec.d.ts +0 -1
- package/lib/router.spec.js +0 -229
- package/lib/router.spec.js.map +0 -1
- package/lib/services/asyncevents.d.ts +0 -151
- package/lib/services/asyncevents.js +0 -217
- package/lib/services/asyncevents.js.map +0 -1
- package/lib/services/asyncevents.spec.d.ts +0 -1
- package/lib/services/asyncevents.spec.js +0 -118
- package/lib/services/asyncevents.spec.js.map +0 -1
- package/lib/services/authentication.js +0 -772
- package/lib/services/authentication.js.map +0 -1
- package/lib/services/authentication.spec.d.ts +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 -549
- package/lib/services/binary.js +0 -986
- package/lib/services/binary.js.map +0 -1
- package/lib/services/binary.spec.d.ts +0 -44
- package/lib/services/binary.spec.js +0 -438
- package/lib/services/binary.spec.js.map +0 -1
- package/lib/services/cloudbinary.spec.d.ts +0 -13
- package/lib/services/cloudbinary.spec.js +0 -192
- package/lib/services/cloudbinary.spec.js.map +0 -1
- package/lib/services/configuration.js +0 -178
- package/lib/services/configuration.js.map +0 -1
- package/lib/services/configuration.spec.d.ts +0 -1
- package/lib/services/configuration.spec.js +0 -87
- package/lib/services/configuration.spec.js.map +0 -1
- package/lib/services/cron.d.ts +0 -73
- package/lib/services/cron.js +0 -141
- package/lib/services/cron.js.map +0 -1
- package/lib/services/cron.spec.d.ts +0 -1
- package/lib/services/cron.spec.js +0 -76
- package/lib/services/cron.spec.js.map +0 -1
- package/lib/services/cryptoservice.js +0 -434
- package/lib/services/cryptoservice.js.map +0 -1
- package/lib/services/cryptoservice.spec.d.ts +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.js +0 -52
- package/lib/services/debugmailer.js.map +0 -1
- package/lib/services/debugmailer.spec.d.ts +0 -1
- package/lib/services/debugmailer.spec.js +0 -29
- package/lib/services/debugmailer.spec.js.map +0 -1
- package/lib/services/domainservice.d.ts +0 -152
- package/lib/services/domainservice.js +0 -881
- package/lib/services/domainservice.js.map +0 -1
- package/lib/services/domainservice.spec.d.ts +0 -1
- package/lib/services/domainservice.spec.js +0 -401
- package/lib/services/domainservice.spec.js.map +0 -1
- package/lib/services/filebinary.d.ts +0 -133
- package/lib/services/filebinary.js +0 -371
- package/lib/services/filebinary.js.map +0 -1
- package/lib/services/filebinary.spec.d.ts +0 -21
- package/lib/services/filebinary.spec.js +0 -415
- package/lib/services/filebinary.spec.js.map +0 -1
- package/lib/services/fileconfiguration.d.ts +0 -22
- package/lib/services/fileconfiguration.js +0 -48
- package/lib/services/fileconfiguration.js.map +0 -1
- package/lib/services/fileconfiguration.spec.d.ts +0 -1
- package/lib/services/fileconfiguration.spec.js +0 -177
- package/lib/services/fileconfiguration.spec.js.map +0 -1
- package/lib/services/invitationservice.d.ts +0 -222
- package/lib/services/invitationservice.js +0 -526
- package/lib/services/invitationservice.js.map +0 -1
- package/lib/services/invitationservice.spec.d.ts +0 -1
- package/lib/services/invitationservice.spec.js +0 -516
- package/lib/services/invitationservice.spec.js.map +0 -1
- package/lib/services/kubernetesconfiguration.d.ts +0 -26
- package/lib/services/kubernetesconfiguration.js +0 -54
- package/lib/services/kubernetesconfiguration.js.map +0 -1
- package/lib/services/kubernetesconfiguration.spec.d.ts +0 -1
- package/lib/services/kubernetesconfiguration.spec.js +0 -147
- package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
- package/lib/services/mailer.d.ts +0 -165
- package/lib/services/mailer.js +0 -176
- package/lib/services/mailer.js.map +0 -1
- package/lib/services/mailer.spec.d.ts +0 -1
- package/lib/services/mailer.spec.js +0 -144
- package/lib/services/mailer.spec.js.map +0 -1
- package/lib/services/notificationservice.js.map +0 -1
- package/lib/services/notificationservice.spec.d.ts +0 -1
- package/lib/services/notificationservice.spec.js +0 -78
- package/lib/services/notificationservice.spec.js.map +0 -1
- package/lib/services/oauth.spec.d.ts +0 -1
- package/lib/services/oauth.spec.js +0 -184
- package/lib/services/oauth.spec.js.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 -1
- package/lib/services/prometheus.spec.js +0 -57
- package/lib/services/prometheus.spec.js.map +0 -1
- package/lib/services/resource.d.ts +0 -87
- package/lib/services/resource.js +0 -156
- package/lib/services/resource.js.map +0 -1
- package/lib/services/resource.spec.d.ts +0 -1
- package/lib/services/resource.spec.js +0 -122
- package/lib/services/resource.spec.js.map +0 -1
- package/lib/services/service.spec.d.ts +0 -1
- package/lib/services/service.spec.js +0 -268
- package/lib/services/service.spec.js.map +0 -1
- package/lib/stores/aggregator.d.ts +0 -41
- package/lib/stores/aggregator.js +0 -80
- package/lib/stores/aggregator.js.map +0 -1
- package/lib/stores/aliasstore.d.ts +0 -108
- package/lib/stores/aliasstore.js +0 -168
- package/lib/stores/aliasstore.js.map +0 -1
- package/lib/stores/aliasstore.spec.d.ts +0 -11
- package/lib/stores/aliasstore.spec.js +0 -89
- package/lib/stores/aliasstore.spec.js.map +0 -1
- package/lib/stores/file.d.ts +0 -107
- package/lib/stores/file.js +0 -188
- package/lib/stores/file.js.map +0 -1
- package/lib/stores/file.spec.d.ts +0 -19
- package/lib/stores/file.spec.js +0 -232
- package/lib/stores/file.spec.js.map +0 -1
- package/lib/stores/mapper.d.ts +0 -149
- package/lib/stores/mapper.js +0 -293
- package/lib/stores/mapper.js.map +0 -1
- package/lib/stores/mapper.spec.d.ts +0 -1
- package/lib/stores/mapper.spec.js +0 -160
- package/lib/stores/mapper.spec.js.map +0 -1
- package/lib/stores/memory.d.ts +0 -151
- package/lib/stores/memory.js +0 -371
- package/lib/stores/memory.js.map +0 -1
- package/lib/stores/memory.spec.d.ts +0 -20
- package/lib/stores/memory.spec.js +0 -328
- package/lib/stores/memory.spec.js.map +0 -1
- package/lib/stores/modelmapper.d.ts +0 -61
- package/lib/stores/modelmapper.js +0 -199
- package/lib/stores/modelmapper.js.map +0 -1
- package/lib/stores/store.spec.d.ts +0 -65
- package/lib/stores/store.spec.js +0 -906
- package/lib/stores/store.spec.js.map +0 -1
- package/lib/test.d.ts +0 -162
- package/lib/test.js +0 -399
- package/lib/test.js.map +0 -1
- package/lib/unpackedapplication.d.ts +0 -76
- package/lib/unpackedapplication.js +0 -299
- package/lib/unpackedapplication.js.map +0 -1
- package/lib/utils/abstractdeployer.spec.d.ts +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 -7
- package/lib/utils/case.js +0 -43
- package/lib/utils/case.js.map +0 -1
- package/lib/utils/case.spec.d.ts +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 -462
- package/lib/utils/context.js +0 -732
- package/lib/utils/context.js.map +0 -1
- package/lib/utils/context.spec.d.ts +0 -9
- package/lib/utils/context.spec.js +0 -372
- package/lib/utils/context.spec.js.map +0 -1
- package/lib/utils/cookie.js.map +0 -1
- package/lib/utils/cookie.spec.d.ts +0 -1
- package/lib/utils/cookie.spec.js +0 -78
- package/lib/utils/cookie.spec.js.map +0 -1
- package/lib/utils/esm.d.ts +0 -13
- package/lib/utils/esm.js +0 -19
- package/lib/utils/esm.js.map +0 -1
- package/lib/utils/httpcontext.js.map +0 -1
- package/lib/utils/httpcontext.spec.d.ts +0 -4
- package/lib/utils/httpcontext.spec.js +0 -77
- package/lib/utils/httpcontext.spec.js.map +0 -1
- package/lib/utils/logger.d.ts +0 -91
- package/lib/utils/logger.js +0 -121
- package/lib/utils/logger.js.map +0 -1
- package/lib/utils/logger.spec.d.ts +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 -161
- package/lib/utils/serializers.js +0 -420
- package/lib/utils/serializers.js.map +0 -1
- package/lib/utils/serializers.spec.d.ts +0 -1
- package/lib/utils/serializers.spec.js +0 -313
- package/lib/utils/serializers.spec.js.map +0 -1
- package/lib/utils/session.d.ts +0 -126
- package/lib/utils/session.js +0 -166
- package/lib/utils/session.js.map +0 -1
- package/lib/utils/session.spec.d.ts +0 -1
- package/lib/utils/session.spec.js +0 -71
- package/lib/utils/session.spec.js.map +0 -1
- package/lib/utils/throttler.d.ts +0 -102
- package/lib/utils/throttler.js +0 -168
- package/lib/utils/throttler.js.map +0 -1
- package/lib/utils/throttler.spec.d.ts +0 -1
- package/lib/utils/throttler.spec.js +0 -55
- package/lib/utils/throttler.spec.js.map +0 -1
- package/lib/utils/waiter.d.ts +0 -93
- package/lib/utils/waiter.js +0 -148
- package/lib/utils/waiter.js.map +0 -1
- package/lib/utils/waiter.spec.d.ts +0 -1
- package/lib/utils/waiter.spec.js +0 -98
- package/lib/utils/waiter.spec.js.map +0 -1
- package/test/config-file-missing-file-no-default.json +0 -44
- package/test/config-file-missing-file.json +0 -55
- package/test/config-file-no-reload.json +0 -69
- package/test/config-file-reload.json +0 -68
- package/test/config-invitation.json +0 -63
- package/test/config-kube-reload.json +0 -68
- package/test/config-reload.json +0 -66
- package/test/config.old.json +0 -152
- package/test/jsonutils/mdocs.yaml +0 -56
- package/test/jsonutils/test.json +0 -3
- package/test/jsonutils/test.yml +0 -5
- package/test/moddas/annotatedservice.js +0 -23
- package/test/moddas/debugmailer.js +0 -13
- package/test/moddas/fakeservice.js +0 -4
- package/test/moddas/voidstore.js +0 -66
- package/test/models/ident.js +0 -36
- package/test/models/task.js +0 -42
package/lib/core/core.js
ADDED
|
@@ -0,0 +1,576 @@
|
|
|
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 { deepmerge } from "deepmerge-ts";
|
|
36
|
+
import { UnpackedApplication } from "../application/unpackedapplication.js";
|
|
37
|
+
import { BinaryService } from "../services/binary.service.js";
|
|
38
|
+
import { Model } from "@webda/models";
|
|
39
|
+
import * as WebdaError from "../errors/errors.js";
|
|
40
|
+
import { Store } from "../stores/store.js";
|
|
41
|
+
import { Logger } from "../loggers/ilogger.js";
|
|
42
|
+
import { getUuid, State } from "@webda/utils";
|
|
43
|
+
import { emitCoreEvent } from "../events/events.js";
|
|
44
|
+
import { useInstanceStorage } from "./instancestorage.js";
|
|
45
|
+
import { useApplication, useModel, useModelId } from "../application/hooks.js";
|
|
46
|
+
import { InstanceCache } from "../cache/cache.js";
|
|
47
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
48
|
+
import * as jsondiffpatch from "jsondiffpatch";
|
|
49
|
+
const CoreState = (options) => State(options);
|
|
50
|
+
const depsDetector = new AsyncLocalStorage();
|
|
51
|
+
/**
|
|
52
|
+
* This is the main class of the framework, it handles the routing, the services initialization and resolution
|
|
53
|
+
*
|
|
54
|
+
* @class Core
|
|
55
|
+
* @category CoreFeatures
|
|
56
|
+
*/
|
|
57
|
+
let Core = (() => {
|
|
58
|
+
let _instanceExtraInitializers = [];
|
|
59
|
+
let _getModelStoreCached_decorators;
|
|
60
|
+
let _getBinaryStoreCached_decorators;
|
|
61
|
+
let _resolve_decorators;
|
|
62
|
+
let _init_decorators;
|
|
63
|
+
let _stop_decorators;
|
|
64
|
+
return class Core {
|
|
65
|
+
static {
|
|
66
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
67
|
+
_getModelStoreCached_decorators = [InstanceCache()];
|
|
68
|
+
_getBinaryStoreCached_decorators = [InstanceCache()];
|
|
69
|
+
_resolve_decorators = [CoreState({ start: "resolving", end: "resolved" }), InstanceCache()];
|
|
70
|
+
_init_decorators = [CoreState({ start: "initializing", end: "ready" }), InstanceCache()];
|
|
71
|
+
_stop_decorators = [CoreState({ start: "stopping", end: "stopped" })];
|
|
72
|
+
__esDecorate(this, null, _getModelStoreCached_decorators, { kind: "method", name: "getModelStoreCached", static: false, private: false, access: { has: obj => "getModelStoreCached" in obj, get: obj => obj.getModelStoreCached }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
73
|
+
__esDecorate(this, null, _getBinaryStoreCached_decorators, { kind: "method", name: "getBinaryStoreCached", static: false, private: false, access: { has: obj => "getBinaryStoreCached" in obj, get: obj => obj.getBinaryStoreCached }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
74
|
+
__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);
|
|
75
|
+
__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);
|
|
76
|
+
__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);
|
|
77
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Webda Services
|
|
81
|
+
* @hidden
|
|
82
|
+
*/
|
|
83
|
+
services = (__runInitializers(this, _instanceExtraInitializers), {});
|
|
84
|
+
/**
|
|
85
|
+
* Modda for services
|
|
86
|
+
* @hidden
|
|
87
|
+
*/
|
|
88
|
+
moddas = {};
|
|
89
|
+
/**
|
|
90
|
+
* Application that generates this Core
|
|
91
|
+
*/
|
|
92
|
+
application;
|
|
93
|
+
/**
|
|
94
|
+
* Configuration loaded from webda.config.json
|
|
95
|
+
* @hidden
|
|
96
|
+
*/
|
|
97
|
+
configuration;
|
|
98
|
+
/**
|
|
99
|
+
* Console logger
|
|
100
|
+
* @hidden
|
|
101
|
+
*/
|
|
102
|
+
logger;
|
|
103
|
+
/**
|
|
104
|
+
* Store the instance id
|
|
105
|
+
*/
|
|
106
|
+
instanceId;
|
|
107
|
+
/**
|
|
108
|
+
* Contains all operations defined by services
|
|
109
|
+
*/
|
|
110
|
+
operations = {};
|
|
111
|
+
/**
|
|
112
|
+
* Order of services initialization
|
|
113
|
+
*/
|
|
114
|
+
initOrders = [];
|
|
115
|
+
/**
|
|
116
|
+
* Dependencies for each service
|
|
117
|
+
*/
|
|
118
|
+
dependencies = {};
|
|
119
|
+
/**
|
|
120
|
+
* Configuration service name
|
|
121
|
+
*/
|
|
122
|
+
configurationService;
|
|
123
|
+
applicationConfiguration;
|
|
124
|
+
/**
|
|
125
|
+
* Create a new Core
|
|
126
|
+
* @param application - the application instance
|
|
127
|
+
*/
|
|
128
|
+
constructor(application) {
|
|
129
|
+
useInstanceStorage().core = this;
|
|
130
|
+
this.logger = new Logger(application.getWorkerOutput(), { class: "@webda/core" });
|
|
131
|
+
this.application = application || new UnpackedApplication(".");
|
|
132
|
+
// Load the configuration and migrate
|
|
133
|
+
this.configuration = {};
|
|
134
|
+
this.applicationConfiguration = this.application.getConfiguration();
|
|
135
|
+
for (const [key, value] of Object.entries(this.applicationConfiguration.services)) {
|
|
136
|
+
try {
|
|
137
|
+
this.moddas[key] = this.application.getModda(value.type || key);
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
this.log("ERROR", `Cannot load modda ${value.type || key} for service ${key}`, err);
|
|
141
|
+
}
|
|
142
|
+
this.configuration[key] = Object.freeze((this.moddas[key]?.filterParameters || (p => p))({
|
|
143
|
+
...this.applicationConfiguration.parameters,
|
|
144
|
+
...value
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
if (this.applicationConfiguration.application?.configurationService &&
|
|
148
|
+
this.configuration[this.applicationConfiguration.application.configurationService]) {
|
|
149
|
+
this.configurationService = this.applicationConfiguration.application.configurationService;
|
|
150
|
+
// Freeze the configuration service parameters to avoid changes at runtime
|
|
151
|
+
Object.freeze(this.configuration[this.applicationConfiguration.application.configurationService]);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Get the configuration object
|
|
156
|
+
* @returns {Configuration} the result
|
|
157
|
+
*/
|
|
158
|
+
getConfiguration() {
|
|
159
|
+
return this.configuration;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Get the store assigned to this model
|
|
163
|
+
* @param model - the model to use
|
|
164
|
+
* @param modelOrConstructor - the model or its constructor
|
|
165
|
+
* @returns the result
|
|
166
|
+
*/
|
|
167
|
+
getModelStore(modelOrConstructor) {
|
|
168
|
+
let model;
|
|
169
|
+
if (typeof modelOrConstructor === "string") {
|
|
170
|
+
model = useModel(modelOrConstructor);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
model = (modelOrConstructor instanceof Model ? modelOrConstructor.constructor : modelOrConstructor);
|
|
174
|
+
}
|
|
175
|
+
if (!model) {
|
|
176
|
+
throw new WebdaError.CodeError("MODEL_NOT_FOUND", "Model not found");
|
|
177
|
+
}
|
|
178
|
+
return this.getModelStoreCached(model);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Get the model store for a specific model
|
|
182
|
+
* Leverage the Process cache
|
|
183
|
+
*
|
|
184
|
+
* @param model - the model to use
|
|
185
|
+
* @returns the result
|
|
186
|
+
*/
|
|
187
|
+
getModelStoreCached(model) {
|
|
188
|
+
// @ts-ignore
|
|
189
|
+
const stores = useApplication().getImplementations(Store);
|
|
190
|
+
let actualScore;
|
|
191
|
+
let actualStore = this.getService(this.applicationConfiguration?.application?.configurationService || "Registry");
|
|
192
|
+
for (const store in stores) {
|
|
193
|
+
const score = stores[store].handleModel(model);
|
|
194
|
+
// As 0 mean exact match we stop there
|
|
195
|
+
if (score === 0) {
|
|
196
|
+
return stores[store];
|
|
197
|
+
}
|
|
198
|
+
else if (score > 0 && (actualScore === undefined || actualScore > score)) {
|
|
199
|
+
actualScore = score;
|
|
200
|
+
actualStore = stores[store];
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return actualStore;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Get the service that manage a model
|
|
207
|
+
* @param modelOrConstructor - the model or its constructor
|
|
208
|
+
* @param attribute - the attribute name
|
|
209
|
+
* @returns the result
|
|
210
|
+
*/
|
|
211
|
+
getBinaryStore(modelOrConstructor, attribute) {
|
|
212
|
+
return this.getBinaryStoreCached(typeof modelOrConstructor === "string" ? modelOrConstructor : useModelId(modelOrConstructor), attribute);
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Find the best matching BinaryService for a given model and attribute, with caching
|
|
216
|
+
* @param model - the model to use
|
|
217
|
+
* @param attribute - the attribute name
|
|
218
|
+
* @returns the result
|
|
219
|
+
*/
|
|
220
|
+
getBinaryStoreCached(model, attribute) {
|
|
221
|
+
// Walk live service INSTANCES (not the modda-class registry). The previous
|
|
222
|
+
// path used `getImplementations(BinaryService)` which compares the
|
|
223
|
+
// BinaryService class against modda constructors via `instanceof` —
|
|
224
|
+
// always false for class-vs-class checks, so the lookup never matched
|
|
225
|
+
// any concrete service. Iterating live instances and checking each with
|
|
226
|
+
// `instanceof BinaryService` is the correct shape for a polymorphic
|
|
227
|
+
// service registry: it picks up FileBinary, S3Binary, GCPStorageService,
|
|
228
|
+
// etc. uniformly.
|
|
229
|
+
const services = this.getServices();
|
|
230
|
+
let actualScore = -1;
|
|
231
|
+
let actualService;
|
|
232
|
+
for (const name in services) {
|
|
233
|
+
const svc = services[name];
|
|
234
|
+
if (!(svc instanceof BinaryService))
|
|
235
|
+
continue;
|
|
236
|
+
const score = svc.handleBinary(model, attribute);
|
|
237
|
+
// 2 = explicit (model + attribute) — short-circuit.
|
|
238
|
+
if (score === 2) {
|
|
239
|
+
return svc;
|
|
240
|
+
}
|
|
241
|
+
// For partial matches (1 = model match w/ wildcard attribute, 0 =
|
|
242
|
+
// catch-all): pick the highest score. The original code used the
|
|
243
|
+
// wrong inequality (`actualScore > score`) which preferred lower
|
|
244
|
+
// specificity; flip it to keep the most specific match.
|
|
245
|
+
if (score >= 0 && (actualService === undefined || score > actualScore)) {
|
|
246
|
+
actualScore = score;
|
|
247
|
+
actualService = svc;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
if (!actualService) {
|
|
251
|
+
throw new Error("No binary store found for " + model + " " + attribute);
|
|
252
|
+
}
|
|
253
|
+
return actualService;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Return Core instance id
|
|
257
|
+
*
|
|
258
|
+
* It is a random generated string
|
|
259
|
+
* @returns the result string
|
|
260
|
+
*/
|
|
261
|
+
getInstanceId() {
|
|
262
|
+
this.instanceId ??= getUuid();
|
|
263
|
+
return this.instanceId;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Get absolute url with subpath
|
|
267
|
+
* @param subpath - the subpath to append
|
|
268
|
+
* @returns the result string
|
|
269
|
+
*/
|
|
270
|
+
getApiUrl(subpath = "") {
|
|
271
|
+
if (subpath.length > 0 && !subpath.startsWith("/")) {
|
|
272
|
+
subpath = "/" + subpath;
|
|
273
|
+
}
|
|
274
|
+
return this.configuration.parameters.apiUrl + subpath;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Init one service
|
|
278
|
+
* @param service - the service instance
|
|
279
|
+
*/
|
|
280
|
+
async initService(service) {
|
|
281
|
+
try {
|
|
282
|
+
this.log("TRACE", "Initializing service", service);
|
|
283
|
+
const start = Date.now();
|
|
284
|
+
await this.services[service].init();
|
|
285
|
+
const duration = Date.now() - start;
|
|
286
|
+
if (duration > 1000) {
|
|
287
|
+
this.log("WARN", `Service ${service} initialization took ${duration}ms`);
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
this.log("DEBUG", `Service ${service} initialized in ${duration}ms`);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
catch (err) {
|
|
294
|
+
this.log("ERROR", "Init service " + service + " failed: " + err.message);
|
|
295
|
+
this.log("TRACE", err.stack);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Resolve services and their dependencies WITHOUT calling service.init().
|
|
300
|
+
*
|
|
301
|
+
* After this completes:
|
|
302
|
+
* - All services declared in configuration are constructed.
|
|
303
|
+
* - Each service's `resolve()` has been called (via createService / bean registration).
|
|
304
|
+
* - `this.initOrders` is finalized (Store services first).
|
|
305
|
+
* - The configuration service (if any) has been fully initialized — it must run
|
|
306
|
+
* early so other services can read config during construction.
|
|
307
|
+
*
|
|
308
|
+
* No non-configuration service.init() calls — no DB/network I/O is performed.
|
|
309
|
+
* Build-time hooks (`@BuildCommand`) run after this phase.
|
|
310
|
+
*/
|
|
311
|
+
async resolve() {
|
|
312
|
+
// Create services
|
|
313
|
+
// First create the configuration service if defined
|
|
314
|
+
const initOrders = [];
|
|
315
|
+
if (this.configurationService) {
|
|
316
|
+
const service = this.createService(this.configurationService);
|
|
317
|
+
if (!service) {
|
|
318
|
+
throw new Error(`Cannot create configuration service ${this.configurationService}`);
|
|
319
|
+
}
|
|
320
|
+
// Will update the configuration
|
|
321
|
+
await service.bootstrap(this);
|
|
322
|
+
this.getService(this.configurationService);
|
|
323
|
+
initOrders.push(...this.initOrders);
|
|
324
|
+
if (!initOrders.includes(this.configurationService)) {
|
|
325
|
+
initOrders.push(this.configurationService);
|
|
326
|
+
}
|
|
327
|
+
this.initOrders = [];
|
|
328
|
+
// The configuration service's init() must run now — downstream service
|
|
329
|
+
// construction reads updated config values from it.
|
|
330
|
+
for (const service of initOrders) {
|
|
331
|
+
await this.initService(service);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
// Create all services defined in configuration
|
|
335
|
+
for (const service in this.configuration) {
|
|
336
|
+
this.getService(service);
|
|
337
|
+
}
|
|
338
|
+
// Auto-register application beans as services
|
|
339
|
+
this.registerBeans();
|
|
340
|
+
this.initOrders = this.initOrders.filter(s => !initOrders.includes(s) && this.services[s]);
|
|
341
|
+
// Ensure stores are initialized first
|
|
342
|
+
this.initOrders.sort((a, b) => {
|
|
343
|
+
if (this.services[a] instanceof Store && !(this.services[b] instanceof Store)) {
|
|
344
|
+
return -1;
|
|
345
|
+
}
|
|
346
|
+
else if (!(this.services[a] instanceof Store) && this.services[b] instanceof Store) {
|
|
347
|
+
return 1;
|
|
348
|
+
}
|
|
349
|
+
return 0;
|
|
350
|
+
});
|
|
351
|
+
this.log("DEBUG", "Services init order", [...initOrders, ...this.initOrders]);
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Init Webda
|
|
355
|
+
*
|
|
356
|
+
* It will resolve Services init method and autolink.
|
|
357
|
+
*
|
|
358
|
+
* Delegates to {@link resolve} for service creation + resolve, then calls
|
|
359
|
+
* `init()` on every remaining non-configuration service.
|
|
360
|
+
*/
|
|
361
|
+
async init() {
|
|
362
|
+
await this.resolve();
|
|
363
|
+
for (const service of this.initOrders) {
|
|
364
|
+
await this.initService(service);
|
|
365
|
+
}
|
|
366
|
+
await emitCoreEvent("Webda.Init.Services", this.services);
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Return webda current version
|
|
370
|
+
*
|
|
371
|
+
* @returns package version
|
|
372
|
+
* @since 0.4.0
|
|
373
|
+
*/
|
|
374
|
+
getVersion() {
|
|
375
|
+
return useApplication().getWebdaVersion();
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* To define the locales just add a locales: ['en-GB', 'fr-FR'] in your host global configuration
|
|
379
|
+
*
|
|
380
|
+
* @return The configured locales or "en-GB" if none are defined
|
|
381
|
+
* @returns the list of results
|
|
382
|
+
*/
|
|
383
|
+
getLocales() {
|
|
384
|
+
if (!this.configuration || !this.configuration.parameters.locales) {
|
|
385
|
+
return ["en-GB"];
|
|
386
|
+
}
|
|
387
|
+
return this.configuration.parameters.locales;
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Check for a service name and return the wanted singleton or undefined if none found
|
|
391
|
+
*
|
|
392
|
+
* @param {String} name The service name to retrieve
|
|
393
|
+
* @returns the result
|
|
394
|
+
*/
|
|
395
|
+
getService(name = "") {
|
|
396
|
+
depsDetector.getStore()?.add(name);
|
|
397
|
+
// If not defined yet, create it and add it to the init order
|
|
398
|
+
if (this.services[name] === undefined) {
|
|
399
|
+
this.dependencies[name] ??= new Set();
|
|
400
|
+
depsDetector.run(this.dependencies[name], () => {
|
|
401
|
+
this.services[name] = this.createService(name)?.resolve();
|
|
402
|
+
});
|
|
403
|
+
this.initOrders.push(name);
|
|
404
|
+
}
|
|
405
|
+
return this.services[name];
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Return a map of defined services
|
|
409
|
+
* @returns {{}} the map of services
|
|
410
|
+
*/
|
|
411
|
+
getServices() {
|
|
412
|
+
return this.services;
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Return if Webda is in debug mode
|
|
416
|
+
* @returns true if the condition is met
|
|
417
|
+
*/
|
|
418
|
+
isDebug() {
|
|
419
|
+
return false;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Log a message
|
|
423
|
+
* @param level - the log level
|
|
424
|
+
* @param args - additional arguments
|
|
425
|
+
*/
|
|
426
|
+
log(level, ...args) {
|
|
427
|
+
this.logger.log(level, ...args);
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Update the configuration with new values
|
|
431
|
+
* @param updates - the updates to apply
|
|
432
|
+
*/
|
|
433
|
+
updateConfiguration(updates) {
|
|
434
|
+
updates.services ??= {};
|
|
435
|
+
updates.parameters ??= {};
|
|
436
|
+
const configuration = this.applicationConfiguration;
|
|
437
|
+
const newConfiguration = {};
|
|
438
|
+
for (const key in updates.services) {
|
|
439
|
+
if (!this.configuration[key]) {
|
|
440
|
+
delete updates.services[key];
|
|
441
|
+
this.log("WARN", `Cannot update configuration for unknown service ${key}`);
|
|
442
|
+
continue;
|
|
443
|
+
}
|
|
444
|
+
if (updates.services[key].type && updates.services[key].type !== this.configuration[key].type) {
|
|
445
|
+
delete updates.services[key];
|
|
446
|
+
this.log("WARN", `Cannot update type for service ${key}`);
|
|
447
|
+
continue;
|
|
448
|
+
}
|
|
449
|
+
newConfiguration[key] = (this.moddas[key]?.filterParameters || (p => p))(deepmerge(configuration.parameters, updates.parameters, configuration[key], updates.services[key]));
|
|
450
|
+
}
|
|
451
|
+
for (const key in this.configuration) {
|
|
452
|
+
newConfiguration[key] = (this.moddas[key]?.filterParameters || (p => p))(deepmerge(configuration.parameters || {}, updates.parameters || {}, configuration.services[key] || {}, updates.services[key] || {}));
|
|
453
|
+
newConfiguration[key].type = this.configuration[key].type;
|
|
454
|
+
}
|
|
455
|
+
Object.freeze(newConfiguration);
|
|
456
|
+
const delta = jsondiffpatch.diff(this.configuration, newConfiguration);
|
|
457
|
+
if (!delta) {
|
|
458
|
+
this.log("DEBUG", "No configuration changes");
|
|
459
|
+
return;
|
|
460
|
+
}
|
|
461
|
+
emitCoreEvent("Webda.Configuration.Applying", { configuration: newConfiguration, delta });
|
|
462
|
+
for (const service in this.services) {
|
|
463
|
+
if (delta[service]) {
|
|
464
|
+
this.log("DEBUG", `Updating ${service} due to configuration change`);
|
|
465
|
+
this.services[service]?.parameters.load(newConfiguration[service]);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
// Update the configuration
|
|
469
|
+
this.configuration = newConfiguration;
|
|
470
|
+
emitCoreEvent("Webda.Configuration.Applied", { configuration: newConfiguration, delta });
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Create a specific service
|
|
474
|
+
* @param service - the service instance
|
|
475
|
+
* @returns the result
|
|
476
|
+
*/
|
|
477
|
+
createService(service) {
|
|
478
|
+
const serviceConstructor = this.moddas[service];
|
|
479
|
+
if (!serviceConstructor) {
|
|
480
|
+
this.log("ERROR", `Create service ${service}(${this.configuration[service]?.type}) failed: unknown type`);
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
483
|
+
try {
|
|
484
|
+
this.log("TRACE", "Constructing service", service);
|
|
485
|
+
const params = serviceConstructor.createConfiguration
|
|
486
|
+
? serviceConstructor.createConfiguration(this.configuration[service])
|
|
487
|
+
: this.configuration[service];
|
|
488
|
+
this.services[service] = new serviceConstructor(service, params);
|
|
489
|
+
}
|
|
490
|
+
catch (err) {
|
|
491
|
+
this.log("ERROR", "Cannot create service", service, err.message || err);
|
|
492
|
+
}
|
|
493
|
+
return this.services[service];
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Auto-register application beans as services if not already configured.
|
|
497
|
+
* Tests can disable by overriding getBeans() to return empty/undefined.
|
|
498
|
+
*/
|
|
499
|
+
registerBeans() {
|
|
500
|
+
const appBeans = this.application.beans || {};
|
|
501
|
+
if (Object.keys(appBeans).length === 0)
|
|
502
|
+
return;
|
|
503
|
+
for (const beanName in appBeans) {
|
|
504
|
+
// Skip if a service with this bean type is already configured
|
|
505
|
+
if (Object.values(this.applicationConfiguration.services).some((s) => s.type === beanName)) {
|
|
506
|
+
continue;
|
|
507
|
+
}
|
|
508
|
+
const serviceName = beanName.split("/").pop();
|
|
509
|
+
if (this.services[serviceName])
|
|
510
|
+
continue;
|
|
511
|
+
const beanClass = appBeans[beanName];
|
|
512
|
+
if (!beanClass)
|
|
513
|
+
continue;
|
|
514
|
+
this.moddas[serviceName] = beanClass;
|
|
515
|
+
this.moddas[beanName] = beanClass;
|
|
516
|
+
const filtered = (beanClass.filterParameters || (p => p))({
|
|
517
|
+
...this.applicationConfiguration.parameters
|
|
518
|
+
});
|
|
519
|
+
filtered.type = beanName;
|
|
520
|
+
this.configuration[serviceName] = Object.freeze(filtered);
|
|
521
|
+
this.getService(serviceName);
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Get application beans
|
|
526
|
+
* @returns the result
|
|
527
|
+
*/
|
|
528
|
+
getBeans() {
|
|
529
|
+
// @ts-ignore
|
|
530
|
+
return process.webdaBeans || {};
|
|
531
|
+
}
|
|
532
|
+
/**
|
|
533
|
+
* Stop all services
|
|
534
|
+
*/
|
|
535
|
+
async stop() {
|
|
536
|
+
const services = this.getServices();
|
|
537
|
+
await Promise.all([
|
|
538
|
+
// Stop all interuptables
|
|
539
|
+
...[...useInstanceStorage().interruptables.values()].map(i => i.cancel()),
|
|
540
|
+
// Stop all services
|
|
541
|
+
...Object.keys(services).map(async (s) => {
|
|
542
|
+
try {
|
|
543
|
+
await services[s]?.stop();
|
|
544
|
+
}
|
|
545
|
+
catch (err) {
|
|
546
|
+
this.log("ERROR", `Cannot stop service ${s}`, err);
|
|
547
|
+
}
|
|
548
|
+
})
|
|
549
|
+
]);
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* Allow serialization
|
|
553
|
+
* @returns the result
|
|
554
|
+
*/
|
|
555
|
+
toJSON() {
|
|
556
|
+
return {
|
|
557
|
+
configuration: this.configuration,
|
|
558
|
+
application: this.application
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
/**
|
|
562
|
+
* Deserialize a Core instance from a plain JSON object
|
|
563
|
+
* @param json - the JSON data
|
|
564
|
+
* @returns the result
|
|
565
|
+
*/
|
|
566
|
+
static deserialize(json) {
|
|
567
|
+
const core = new Core();
|
|
568
|
+
if (json.configuration) {
|
|
569
|
+
core.configuration = json.configuration;
|
|
570
|
+
}
|
|
571
|
+
return core;
|
|
572
|
+
}
|
|
573
|
+
};
|
|
574
|
+
})();
|
|
575
|
+
export { Core };
|
|
576
|
+
//# sourceMappingURL=core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/core/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { IStore } from "./icore.js";
|
|
2
|
+
import type { Model, ModelClass, Repository } from "@webda/models";
|
|
3
|
+
import type { CustomConstructor } from "@webda/tsc-esm";
|
|
4
|
+
import type { Service } from "../services/service.js";
|
|
5
|
+
import type CryptoService from "../services/cryptoservice.service.js";
|
|
6
|
+
import type { Store } from "../stores/store.js";
|
|
7
|
+
import type { ModelMetadata } from "@webda/compiler";
|
|
8
|
+
import type { Core } from "./core.js";
|
|
9
|
+
import type { SessionManager } from "../session/manager.model.js";
|
|
10
|
+
/**
|
|
11
|
+
* Get the current core
|
|
12
|
+
* @returns the current core
|
|
13
|
+
*/
|
|
14
|
+
export declare function useCore<T extends Core = Core>(): T;
|
|
15
|
+
/**
|
|
16
|
+
* Set the current core
|
|
17
|
+
* @param core - the Core instance
|
|
18
|
+
*/
|
|
19
|
+
export declare function setCore(core: Core): void;
|
|
20
|
+
/**
|
|
21
|
+
* Services Map
|
|
22
|
+
*/
|
|
23
|
+
export interface ServicesMap {
|
|
24
|
+
Registry: Store;
|
|
25
|
+
CryptoService: CryptoService;
|
|
26
|
+
SessionManager: SessionManager;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Represent a service name in webda
|
|
30
|
+
*
|
|
31
|
+
* Useful for referencing other services within the framework
|
|
32
|
+
* @serviceName
|
|
33
|
+
* @schemaInherits
|
|
34
|
+
*/
|
|
35
|
+
export type ServiceName = keyof ServicesMap;
|
|
36
|
+
/**
|
|
37
|
+
* Get a service by name
|
|
38
|
+
* @param name - the name to use
|
|
39
|
+
* @returns the result map
|
|
40
|
+
*/
|
|
41
|
+
export declare function useService<K extends keyof ServicesMap>(name: K): ServicesMap[K];
|
|
42
|
+
/**
|
|
43
|
+
* When you want to use a service that is not defined in the ServicesMap, you can use this function
|
|
44
|
+
* @param name - the name to use
|
|
45
|
+
* @returns the result
|
|
46
|
+
*/
|
|
47
|
+
export declare function useDynamicService<T = Service>(name: string): T;
|
|
48
|
+
/**
|
|
49
|
+
* Get the metadata for a model
|
|
50
|
+
* @param object - the target object
|
|
51
|
+
* @param name - the name to use
|
|
52
|
+
* @returns the result
|
|
53
|
+
*/
|
|
54
|
+
export declare function useModelMetadata(name: string | Model | ModelClass): ModelMetadata;
|
|
55
|
+
/**
|
|
56
|
+
* Use model store
|
|
57
|
+
* @param name - the name to use
|
|
58
|
+
* @returns the result
|
|
59
|
+
*/
|
|
60
|
+
export declare function useModelStore<T extends Model>(name: string | T | CustomConstructor<T>): IStore;
|
|
61
|
+
/**
|
|
62
|
+
* Get the repository for a model, typed as Repository
|
|
63
|
+
* @param name - the name to use
|
|
64
|
+
* @returns the result
|
|
65
|
+
*/
|
|
66
|
+
export declare function useModelRepository<T extends Model>(name: string | T | CustomConstructor<T>): Repository<ModelClass<T>>;
|
|
67
|
+
/**
|
|
68
|
+
* Get a machine id
|
|
69
|
+
* @returns the result
|
|
70
|
+
*/
|
|
71
|
+
export declare function getMachineId(): string;
|
|
72
|
+
//# sourceMappingURL=hooks.d.ts.map
|