@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
|
@@ -0,0 +1,492 @@
|
|
|
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 * as fs from "fs";
|
|
37
|
+
import { Application } from "./application.js";
|
|
38
|
+
import { SectionEnum } from "./iconfiguration.js";
|
|
39
|
+
import { FileUtils } from "@webda/utils";
|
|
40
|
+
import { getMachineId } from "../core/hooks.js";
|
|
41
|
+
import { join, resolve, relative, dirname } from "path";
|
|
42
|
+
import { ProcessCache } from "../cache/cache.js";
|
|
43
|
+
/**
|
|
44
|
+
* Empty git information
|
|
45
|
+
*/
|
|
46
|
+
export const EmptyGitInformation = {
|
|
47
|
+
branch: "",
|
|
48
|
+
commit: "",
|
|
49
|
+
short: "",
|
|
50
|
+
tag: "",
|
|
51
|
+
tags: [],
|
|
52
|
+
version: ""
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* An unpacked application load dynamically all webda.module.json
|
|
56
|
+
* And load also all the package description
|
|
57
|
+
*
|
|
58
|
+
* The normal Application is designed to load all this information from
|
|
59
|
+
* the cachedModule to avoid any unecessary action within a production environment
|
|
60
|
+
*/
|
|
61
|
+
let UnpackedApplication = (() => {
|
|
62
|
+
let _classSuper = Application;
|
|
63
|
+
let _staticExtraInitializers = [];
|
|
64
|
+
let _static_findModulesFiles_decorators;
|
|
65
|
+
return class UnpackedApplication extends _classSuper {
|
|
66
|
+
static {
|
|
67
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
68
|
+
_static_findModulesFiles_decorators = [ProcessCache()];
|
|
69
|
+
__esDecorate(this, null, _static_findModulesFiles_decorators, { kind: "method", name: "findModulesFiles", static: true, private: false, access: { has: obj => "findModulesFiles" in obj, get: obj => obj.findModulesFiles }, metadata: _metadata }, null, _staticExtraInitializers);
|
|
70
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
71
|
+
__runInitializers(this, _staticExtraInitializers);
|
|
72
|
+
}
|
|
73
|
+
/** Create a new UnpackedApplication
|
|
74
|
+
* @param file - file path or partial configuration
|
|
75
|
+
* @param logger - the logger instance
|
|
76
|
+
*/
|
|
77
|
+
constructor(file, logger) {
|
|
78
|
+
super(typeof file === "string"
|
|
79
|
+
? file
|
|
80
|
+
: {
|
|
81
|
+
version: 4,
|
|
82
|
+
application: {},
|
|
83
|
+
services: {},
|
|
84
|
+
parameters: {},
|
|
85
|
+
...file
|
|
86
|
+
}, logger);
|
|
87
|
+
if (typeof file !== "string") {
|
|
88
|
+
this.baseConfiguration = this.completeConfiguration(this.baseConfiguration);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Ensure default configuration after load
|
|
93
|
+
* @returns the result
|
|
94
|
+
*/
|
|
95
|
+
async load() {
|
|
96
|
+
await super.load();
|
|
97
|
+
// Ensuring default configuration after loadModule as we do auto-type guess and needs the Modda
|
|
98
|
+
// We only do it in UnpackedApplication as Application should be optimized for startup
|
|
99
|
+
// Application should have a webda.config.json optimized by the builder
|
|
100
|
+
// webda config > webda.config.json
|
|
101
|
+
this.ensureDefaultConfiguration(this.baseConfiguration);
|
|
102
|
+
return this;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Ensure default parameters are set on our application
|
|
106
|
+
* Creating the default services if they do not exist
|
|
107
|
+
*
|
|
108
|
+
* Might want to have only this in unpackaged application as Application should
|
|
109
|
+
* have a perfectly valid configuration
|
|
110
|
+
* @param configuration - the configuration
|
|
111
|
+
*/
|
|
112
|
+
ensureDefaultConfiguration(configuration) {
|
|
113
|
+
configuration.services ??= {};
|
|
114
|
+
configuration.parameters ??= {};
|
|
115
|
+
configuration.parameters.apiUrl ??= "http://localhost:18080";
|
|
116
|
+
configuration.parameters.metrics ??= {};
|
|
117
|
+
if (configuration.parameters.metrics) {
|
|
118
|
+
configuration.parameters.metrics.labels ??= {};
|
|
119
|
+
configuration.parameters.metrics.config ??= {};
|
|
120
|
+
configuration.parameters.metrics.prefix ??= "";
|
|
121
|
+
}
|
|
122
|
+
configuration.parameters.configurationService ??= "Configuration";
|
|
123
|
+
configuration.parameters.defaultStore ??= "Registry";
|
|
124
|
+
const autoRegistry = configuration.services["Registry"] === undefined;
|
|
125
|
+
configuration.services["Router"] ??= {
|
|
126
|
+
type: "Webda/Router"
|
|
127
|
+
};
|
|
128
|
+
// Registry by default
|
|
129
|
+
configuration.services["Registry"] ??= {
|
|
130
|
+
type: "Webda/MemoryStore",
|
|
131
|
+
persistence: {
|
|
132
|
+
path: ".registry",
|
|
133
|
+
key: getMachineId()
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
// CryptoService by default
|
|
137
|
+
configuration.services["CryptoService"] ??= {
|
|
138
|
+
type: "Webda/CryptoService",
|
|
139
|
+
autoRotate: autoRegistry ? 30 : undefined,
|
|
140
|
+
autoCreate: true
|
|
141
|
+
};
|
|
142
|
+
// By default use CookieSessionManager
|
|
143
|
+
// TODO Should not be added here as it is only for HTTP
|
|
144
|
+
configuration.services["SessionManager"] ??= {
|
|
145
|
+
type: "Webda/CookieSessionManager"
|
|
146
|
+
};
|
|
147
|
+
// Ensure type is set to default
|
|
148
|
+
for (const serviceName in configuration.services) {
|
|
149
|
+
if (configuration.services[serviceName].type !== undefined) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
if (this.moddas[this.completeNamespace(serviceName)]) {
|
|
153
|
+
configuration.services[serviceName].type = this.completeNamespace(serviceName);
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
if (!serviceName.includes("/") && this.moddas[`Webda/${serviceName}`]) {
|
|
157
|
+
configuration.services[serviceName].type = `Webda/${serviceName}`;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Load full configuration
|
|
163
|
+
*
|
|
164
|
+
* webda.config.json and complete the cachedModule
|
|
165
|
+
*
|
|
166
|
+
* @param file - the file path
|
|
167
|
+
* @returns the result
|
|
168
|
+
*/
|
|
169
|
+
async loadConfiguration(file) {
|
|
170
|
+
if (!file && this.baseConfiguration) {
|
|
171
|
+
this.baseConfiguration = this.completeConfiguration({ version: 4, ...this.baseConfiguration });
|
|
172
|
+
}
|
|
173
|
+
else if (!fs.existsSync(file)) {
|
|
174
|
+
this.baseConfiguration = this.completeConfiguration({ version: 4, parameters: {} });
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
this.baseConfiguration = this.completeConfiguration(FileUtils.load(file));
|
|
178
|
+
}
|
|
179
|
+
// If cachedModules is defined we do not recompute
|
|
180
|
+
if (!this.baseConfiguration.cachedModules) {
|
|
181
|
+
this.baseConfiguration.cachedModules = {
|
|
182
|
+
project: this.loadProjectInformation(),
|
|
183
|
+
beans: {},
|
|
184
|
+
deployers: {},
|
|
185
|
+
models: {},
|
|
186
|
+
schemas: {},
|
|
187
|
+
moddas: {}
|
|
188
|
+
};
|
|
189
|
+
this.log("DEBUG", "Merging modules into configuration");
|
|
190
|
+
await this.mergeModules(this.baseConfiguration);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Add Moddas, Models and Deployers definitions
|
|
195
|
+
* It also add the project metadata
|
|
196
|
+
*
|
|
197
|
+
* @param configuration - the configuration
|
|
198
|
+
* @returns the result
|
|
199
|
+
*/
|
|
200
|
+
completeConfiguration(configuration) {
|
|
201
|
+
// Only one level of includes is permitted
|
|
202
|
+
const imports = configuration.$import || [];
|
|
203
|
+
const effectiveImports = [];
|
|
204
|
+
for (const importFile of imports) {
|
|
205
|
+
if (!fs.existsSync(this.getPath(importFile))) {
|
|
206
|
+
this.log("WARN", `Cannot import configuration '${importFile}'`);
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
effectiveImports.push(importFile);
|
|
210
|
+
const includeConfiguration = FileUtils.load(this.getPath(importFile));
|
|
211
|
+
if (includeConfiguration.imports?.length) {
|
|
212
|
+
this.log("WARN", `Imported configuration '${importFile}' has nested imports that will be skipped`);
|
|
213
|
+
}
|
|
214
|
+
configuration = deepmerge(includeConfiguration, configuration);
|
|
215
|
+
}
|
|
216
|
+
configuration.$import = effectiveImports;
|
|
217
|
+
// Ensure default values
|
|
218
|
+
return configuration;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* @param _name - the name to use
|
|
222
|
+
* @param _version - the version string
|
|
223
|
+
* @returns empty git information
|
|
224
|
+
*/
|
|
225
|
+
getGitInformation(_name, _version) {
|
|
226
|
+
return {
|
|
227
|
+
branch: "",
|
|
228
|
+
commit: "",
|
|
229
|
+
short: "",
|
|
230
|
+
tag: "",
|
|
231
|
+
tags: [],
|
|
232
|
+
version: ""
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/** Upgrade a v3 configuration to v4 format */
|
|
236
|
+
upgradeConfigToV4() {
|
|
237
|
+
/*
|
|
238
|
+
// Move to router
|
|
239
|
+
|
|
240
|
+
trustedProxies
|
|
241
|
+
csrfOrigins
|
|
242
|
+
website
|
|
243
|
+
static
|
|
244
|
+
apiUrl
|
|
245
|
+
requestLimit
|
|
246
|
+
requestTimeout
|
|
247
|
+
defaultHeaders
|
|
248
|
+
|
|
249
|
+
// Move to Core
|
|
250
|
+
configurationService
|
|
251
|
+
defaultStore
|
|
252
|
+
ignoreBeans
|
|
253
|
+
|
|
254
|
+
// metrics??
|
|
255
|
+
*/
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Check package.json
|
|
259
|
+
* @returns the result
|
|
260
|
+
*/
|
|
261
|
+
loadProjectInformation() {
|
|
262
|
+
const info = {
|
|
263
|
+
deployment: {
|
|
264
|
+
name: ""
|
|
265
|
+
},
|
|
266
|
+
package: {
|
|
267
|
+
name: "",
|
|
268
|
+
version: ""
|
|
269
|
+
},
|
|
270
|
+
git: EmptyGitInformation,
|
|
271
|
+
webda: {}
|
|
272
|
+
};
|
|
273
|
+
let packageJson = join(this.applicationPath, "package.json");
|
|
274
|
+
if (fs.existsSync(packageJson)) {
|
|
275
|
+
info.package = FileUtils.load(packageJson);
|
|
276
|
+
}
|
|
277
|
+
info.git = this.getGitInformation(info.package?.name, info.package?.version);
|
|
278
|
+
info.webda = info.package.webda || {};
|
|
279
|
+
let parent = join(this.applicationPath, "..");
|
|
280
|
+
do {
|
|
281
|
+
packageJson = join(parent, "package.json");
|
|
282
|
+
if (fs.existsSync(packageJson)) {
|
|
283
|
+
const currentInfo = FileUtils.load(packageJson);
|
|
284
|
+
if (currentInfo.workspaces) {
|
|
285
|
+
this.log("DEBUG", "Application is running within a workspace");
|
|
286
|
+
// Replace any relative path by absolute one
|
|
287
|
+
for (const i in currentInfo.webda) {
|
|
288
|
+
if (currentInfo.webda[i].startsWith("./")) {
|
|
289
|
+
currentInfo.webda[i] = join(resolve(parent), currentInfo.webda[i].substr(2));
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
info.webda = deepmerge(currentInfo.webda || {}, info.webda);
|
|
293
|
+
info.webda.workspaces = {
|
|
294
|
+
packages: currentInfo.workspaces,
|
|
295
|
+
parent: currentInfo,
|
|
296
|
+
path: resolve(parent)
|
|
297
|
+
};
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
parent = resolve(join(parent, ".."));
|
|
302
|
+
} while (parent !== resolve(join(parent, "..")));
|
|
303
|
+
// Check modules
|
|
304
|
+
return info;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Search the node_modules structure for webda.module.json files
|
|
308
|
+
*
|
|
309
|
+
* @param path - the path
|
|
310
|
+
* @returns the result
|
|
311
|
+
*/
|
|
312
|
+
static async findModulesFiles(path) {
|
|
313
|
+
if (!path.endsWith("node_modules") || !fs.existsSync(path)) {
|
|
314
|
+
return [];
|
|
315
|
+
}
|
|
316
|
+
// Track visited directories (by realpath) to prevent infinite loops
|
|
317
|
+
// caused by pnpm's symlink structure where workspace packages
|
|
318
|
+
// reference each other through nested node_modules
|
|
319
|
+
const visited = new Set();
|
|
320
|
+
const scanNodeModules = async (nmPath) => {
|
|
321
|
+
const realNmPath = await fs.promises.realpath(nmPath).catch(() => nmPath);
|
|
322
|
+
if (visited.has(realNmPath)) {
|
|
323
|
+
return [];
|
|
324
|
+
}
|
|
325
|
+
visited.add(realNmPath);
|
|
326
|
+
if (!fs.existsSync(nmPath)) {
|
|
327
|
+
return [];
|
|
328
|
+
}
|
|
329
|
+
const files = new Set();
|
|
330
|
+
const checkFolder = async (filepath) => {
|
|
331
|
+
if (fs.existsSync(join(filepath, "webda.module.json"))) {
|
|
332
|
+
files.add(join(filepath, "webda.module.json"));
|
|
333
|
+
}
|
|
334
|
+
if (fs.existsSync(join(filepath, "node_modules"))) {
|
|
335
|
+
(await scanNodeModules(join(filepath, "node_modules"))).forEach(f => files.add(f));
|
|
336
|
+
}
|
|
337
|
+
};
|
|
338
|
+
const recursiveSearch = async (dirpath, depth = 0) => {
|
|
339
|
+
await Promise.all((await fs.promises.readdir(dirpath, { withFileTypes: true })).map(async (file) => {
|
|
340
|
+
if (file.name.startsWith(".")) {
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
const filepath = join(dirpath, file.name);
|
|
344
|
+
if (file.isDirectory() && file.name.startsWith("@") && depth === 0) {
|
|
345
|
+
// One recursion
|
|
346
|
+
await recursiveSearch(filepath, depth + 1);
|
|
347
|
+
}
|
|
348
|
+
else if (file.isDirectory()) {
|
|
349
|
+
await checkFolder(filepath);
|
|
350
|
+
}
|
|
351
|
+
else if (file.isSymbolicLink()) {
|
|
352
|
+
// We want to follow symbolic links w/o increasing depth
|
|
353
|
+
let realPath;
|
|
354
|
+
try {
|
|
355
|
+
// realpathSync will throw if the symlink is broken
|
|
356
|
+
realPath = await fs.promises.realpath(filepath);
|
|
357
|
+
}
|
|
358
|
+
catch (err) {
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
await checkFolder(realPath);
|
|
362
|
+
}
|
|
363
|
+
}));
|
|
364
|
+
};
|
|
365
|
+
await recursiveSearch(nmPath, 0);
|
|
366
|
+
return [...files];
|
|
367
|
+
};
|
|
368
|
+
return scanNodeModules(path);
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Load all imported modules and current module
|
|
372
|
+
* It will compile module
|
|
373
|
+
* Generate the current module file
|
|
374
|
+
* Load any imported webda.module.json
|
|
375
|
+
* @param module - the module to load
|
|
376
|
+
* @returns the list of results
|
|
377
|
+
*/
|
|
378
|
+
async findModules(module) {
|
|
379
|
+
const appPath = this.getPath();
|
|
380
|
+
// Modules should be cached on deploy
|
|
381
|
+
const files = [];
|
|
382
|
+
const currentModule = this.getPath("webda.module.json");
|
|
383
|
+
if (fs.existsSync(currentModule)) {
|
|
384
|
+
files.push(currentModule);
|
|
385
|
+
}
|
|
386
|
+
this.log("TRACE", "Searching for modules in", this.getPath("node_modules"));
|
|
387
|
+
files.push(...(await UnpackedApplication.findModulesFiles(this.getPath("node_modules"))));
|
|
388
|
+
// Search workspace for webda.module.json
|
|
389
|
+
if (module.project.webda.workspaces && module.project.webda.workspaces.path !== "") {
|
|
390
|
+
this.log("TRACE", "Searching for modules in", join(module.project.webda.workspaces.path, "node_modules"));
|
|
391
|
+
files.push(...(await UnpackedApplication.findModulesFiles(join(module.project.webda.workspaces.path, "node_modules"))));
|
|
392
|
+
}
|
|
393
|
+
// Ensure we are not adding many times the same modules
|
|
394
|
+
// App's own module always included, filterModule only applies to dependencies
|
|
395
|
+
const currentModuleReal = fs.existsSync(currentModule) ? fs.realpathSync(currentModule) : undefined;
|
|
396
|
+
const moduleInfo = Array.from(new Set(files.map(n => fs.realpathSync(n)))).filter(f => f === currentModuleReal || this.filterModule(f));
|
|
397
|
+
this.log("TRACE", "Found modules", moduleInfo, "for", appPath);
|
|
398
|
+
return moduleInfo;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Only allow local and core module and sample-app
|
|
402
|
+
* @param _filename - the filename
|
|
403
|
+
* @returns true if the condition is met
|
|
404
|
+
*/
|
|
405
|
+
filterModule(_filename) {
|
|
406
|
+
return true;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Load a webda.module.json file
|
|
410
|
+
* Resolve the linked file to current application
|
|
411
|
+
*
|
|
412
|
+
* @param moduleFile to load
|
|
413
|
+
* @returns the result
|
|
414
|
+
*/
|
|
415
|
+
loadWebdaModule(moduleFile) {
|
|
416
|
+
const module = FileUtils.load(moduleFile);
|
|
417
|
+
if (!module.$schema?.endsWith("/webda.module.v4.json")) {
|
|
418
|
+
this.log("WARN", `Module '${moduleFile}' is not a v4 format, skipping module`);
|
|
419
|
+
return {
|
|
420
|
+
models: {},
|
|
421
|
+
schemas: {},
|
|
422
|
+
beans: {},
|
|
423
|
+
deployers: {},
|
|
424
|
+
moddas: {},
|
|
425
|
+
project: undefined
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
Object.keys(SectionEnum)
|
|
429
|
+
.filter(k => Number.isNaN(+k))
|
|
430
|
+
.forEach(p => {
|
|
431
|
+
// Do not keep Beans from other modules
|
|
432
|
+
if (this.getPath("webda.module.json") !== moduleFile && SectionEnum[p] === "beans") {
|
|
433
|
+
delete module[SectionEnum[p]];
|
|
434
|
+
return;
|
|
435
|
+
}
|
|
436
|
+
for (const key in module[SectionEnum[p]]) {
|
|
437
|
+
const relBase = relative(this.getPath(), dirname(moduleFile));
|
|
438
|
+
module[SectionEnum[p]][key].Import = join(relBase, module[SectionEnum[p]][key].Import);
|
|
439
|
+
if (module[SectionEnum[p]][key].Configuration) {
|
|
440
|
+
module[SectionEnum[p]][key].Configuration = join(relBase, module[SectionEnum[p]][key].Configuration);
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
});
|
|
444
|
+
return module;
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Merge all modules into one cached module
|
|
448
|
+
*
|
|
449
|
+
* @param module - the module to load
|
|
450
|
+
* @param configuration - the configuration
|
|
451
|
+
* @returns the result
|
|
452
|
+
*/
|
|
453
|
+
async mergeModules(configuration) {
|
|
454
|
+
const module = configuration.cachedModules;
|
|
455
|
+
const appModule = this.getPath("webda.module.json");
|
|
456
|
+
const files = await this.findModules(module);
|
|
457
|
+
const value = files
|
|
458
|
+
.map(f => {
|
|
459
|
+
const currentModule = this.loadWebdaModule(f);
|
|
460
|
+
// We only take the Beans from current application
|
|
461
|
+
if (appModule !== f) {
|
|
462
|
+
this.log("DEBUG", `Load module without beans '${f}'`);
|
|
463
|
+
delete currentModule.beans;
|
|
464
|
+
}
|
|
465
|
+
else {
|
|
466
|
+
this.log("DEBUG", `Load module with beans '${f}'`);
|
|
467
|
+
}
|
|
468
|
+
return currentModule;
|
|
469
|
+
})
|
|
470
|
+
.reduce((prev, val) => {
|
|
471
|
+
return deepmerge(prev, val);
|
|
472
|
+
}, module);
|
|
473
|
+
Object.keys(SectionEnum)
|
|
474
|
+
.filter(k => Number.isNaN(+k))
|
|
475
|
+
.forEach(p => {
|
|
476
|
+
module[SectionEnum[p]] = value[SectionEnum[p]];
|
|
477
|
+
});
|
|
478
|
+
// Copying schemas, capabilities, and behaviors. `behaviors` lives outside
|
|
479
|
+
// SectionEnum because Behavior classes are intentionally not models /
|
|
480
|
+
// moddas / beans / deployers — but the merged value must still flow
|
|
481
|
+
// through to the runtime so DomainService.addBehaviorOperations sees them.
|
|
482
|
+
module.schemas = value.schemas;
|
|
483
|
+
module.capabilities = value.capabilities;
|
|
484
|
+
module.behaviors = value.behaviors;
|
|
485
|
+
this.log("DEBUG", "Merged modules", module);
|
|
486
|
+
await this.loadModule(module);
|
|
487
|
+
return module;
|
|
488
|
+
}
|
|
489
|
+
};
|
|
490
|
+
})();
|
|
491
|
+
export { UnpackedApplication };
|
|
492
|
+
//# sourceMappingURL=unpackedapplication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unpackedapplication.js","sourceRoot":"","sources":["../../src/application/unpackedapplication.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Core } from "../core/core.js";
|
|
2
|
+
import type { ServiceCommandInfo } from "../services/servicecommands.js";
|
|
3
|
+
/**
|
|
4
|
+
* Decide which Core lifecycle phase a CLI command should run at, based on the
|
|
5
|
+
* phases declared by every service that provides the command.
|
|
6
|
+
*
|
|
7
|
+
* Rule:
|
|
8
|
+
* - All declared phases `"resolved"` → run `Core.resolve()` only (no service.init()).
|
|
9
|
+
* - All `undefined` or `"initialized"` → run `Core.init()` (full initialization).
|
|
10
|
+
* - Mixed → throw with an error naming the command and conflicting phases.
|
|
11
|
+
* - Empty array → `"initialized"` (no providers = safest fallback).
|
|
12
|
+
*
|
|
13
|
+
* `undefined` in the input is treated as `"initialized"` (a service declaring no
|
|
14
|
+
* phase means "no opinion — use the default, full init").
|
|
15
|
+
* @param phases - per-provider phase declarations collected by `collectServiceCommands`.
|
|
16
|
+
* @param cmdName - name of the command, included in the mixed-phase error for diagnosability.
|
|
17
|
+
* @returns the lifecycle phase Core should run at for this command.
|
|
18
|
+
*/
|
|
19
|
+
export declare function selectPhase(phases: Array<"resolved" | "initialized" | undefined>, cmdName?: string): "resolved" | "initialized";
|
|
20
|
+
/**
|
|
21
|
+
* Boot a Core instance up to the phase required by the given command. Shared
|
|
22
|
+
* entry point for every cli.ts site that dispatches a `@Command`.
|
|
23
|
+
* @param core - a freshly-constructed `Core` instance (not yet resolved or initialized).
|
|
24
|
+
* @param cmdName - name of the command being dispatched.
|
|
25
|
+
* @param cmdInfo - merged command info from `collectServiceCommands`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function bootCoreForCommand(core: Core, cmdName: string, cmdInfo: ServiceCommandInfo): Promise<void>;
|
|
28
|
+
//# sourceMappingURL=cli-phase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-phase.d.ts","sourceRoot":"","sources":["../../src/bin/cli-phase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,KAAK,CAAC,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC,EACrD,OAAO,GAAE,MAAoB,GAC5B,UAAU,GAAG,aAAa,CAW5B;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAOf"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decide which Core lifecycle phase a CLI command should run at, based on the
|
|
3
|
+
* phases declared by every service that provides the command.
|
|
4
|
+
*
|
|
5
|
+
* Rule:
|
|
6
|
+
* - All declared phases `"resolved"` → run `Core.resolve()` only (no service.init()).
|
|
7
|
+
* - All `undefined` or `"initialized"` → run `Core.init()` (full initialization).
|
|
8
|
+
* - Mixed → throw with an error naming the command and conflicting phases.
|
|
9
|
+
* - Empty array → `"initialized"` (no providers = safest fallback).
|
|
10
|
+
*
|
|
11
|
+
* `undefined` in the input is treated as `"initialized"` (a service declaring no
|
|
12
|
+
* phase means "no opinion — use the default, full init").
|
|
13
|
+
* @param phases - per-provider phase declarations collected by `collectServiceCommands`.
|
|
14
|
+
* @param cmdName - name of the command, included in the mixed-phase error for diagnosability.
|
|
15
|
+
* @returns the lifecycle phase Core should run at for this command.
|
|
16
|
+
*/
|
|
17
|
+
export function selectPhase(phases, cmdName = "<unknown>") {
|
|
18
|
+
if (phases.length === 0)
|
|
19
|
+
return "initialized";
|
|
20
|
+
const normalized = phases.map(p => p ?? "initialized");
|
|
21
|
+
const unique = new Set(normalized);
|
|
22
|
+
if (unique.size === 1) {
|
|
23
|
+
return normalized[0];
|
|
24
|
+
}
|
|
25
|
+
throw new Error(`Command '${cmdName}' has inconsistent phases across services: ${[...unique].join(", ")}. ` +
|
|
26
|
+
`All services declaring a command must agree on phase.`);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Boot a Core instance up to the phase required by the given command. Shared
|
|
30
|
+
* entry point for every cli.ts site that dispatches a `@Command`.
|
|
31
|
+
* @param core - a freshly-constructed `Core` instance (not yet resolved or initialized).
|
|
32
|
+
* @param cmdName - name of the command being dispatched.
|
|
33
|
+
* @param cmdInfo - merged command info from `collectServiceCommands`.
|
|
34
|
+
*/
|
|
35
|
+
export async function bootCoreForCommand(core, cmdName, cmdInfo) {
|
|
36
|
+
const phase = selectPhase(cmdInfo.phases, cmdName);
|
|
37
|
+
if (phase === "resolved") {
|
|
38
|
+
await core.resolve();
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
await core.init();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=cli-phase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-phase.js","sourceRoot":"","sources":["../../src/bin/cli-phase.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CACzB,MAAqD,EACrD,OAAO,GAAW,WAAW;IAE7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,8CAA8C,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QACzF,uDAAuD,CAC1D,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAU,EACV,OAAe,EACf,OAA2B;IAE3B,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;AACH,CAAC"}
|