@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/application.js
DELETED
|
@@ -1,741 +0,0 @@
|
|
|
1
|
-
import { WorkerOutput } from "@webda/workout";
|
|
2
|
-
import * as fs from "fs";
|
|
3
|
-
import * as path from "path";
|
|
4
|
-
import { CoreModel, WebdaError } from "./index.js";
|
|
5
|
-
import { getCommonJS } from "./utils/esm.js";
|
|
6
|
-
import { FileUtils } from "./utils/serializers.js";
|
|
7
|
-
const { __dirname } = getCommonJS(import.meta.url);
|
|
8
|
-
export var SectionEnum;
|
|
9
|
-
(function (SectionEnum) {
|
|
10
|
-
SectionEnum["Moddas"] = "moddas";
|
|
11
|
-
SectionEnum["Deployers"] = "deployers";
|
|
12
|
-
SectionEnum["Beans"] = "beans";
|
|
13
|
-
})(SectionEnum || (SectionEnum = {}));
|
|
14
|
-
/**
|
|
15
|
-
* Map a Webda Application
|
|
16
|
-
*
|
|
17
|
-
* It allows to:
|
|
18
|
-
* - Analyse imported modules
|
|
19
|
-
* - Scan code for Modda and generate the webda.config.json
|
|
20
|
-
* - Compile and Watch
|
|
21
|
-
* - Migrate from old configuration
|
|
22
|
-
* - List deployments
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* @category CoreFeatures
|
|
26
|
-
*/
|
|
27
|
-
export class Application {
|
|
28
|
-
/**
|
|
29
|
-
*
|
|
30
|
-
* @param {string} fileOrFolder to load Webda Application from
|
|
31
|
-
* @param {Logger} logger
|
|
32
|
-
*/
|
|
33
|
-
constructor(file, logger = undefined) {
|
|
34
|
-
/**
|
|
35
|
-
* Contains definitions of current application
|
|
36
|
-
*/
|
|
37
|
-
this.appModule = {
|
|
38
|
-
moddas: {},
|
|
39
|
-
models: {
|
|
40
|
-
list: {},
|
|
41
|
-
graph: {},
|
|
42
|
-
tree: {},
|
|
43
|
-
plurals: {},
|
|
44
|
-
shortIds: {},
|
|
45
|
-
reflections: {}
|
|
46
|
-
},
|
|
47
|
-
deployers: {}
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Contains already loaded modules
|
|
51
|
-
*/
|
|
52
|
-
this._loaded = [];
|
|
53
|
-
/**
|
|
54
|
-
* Deployers type registry
|
|
55
|
-
*/
|
|
56
|
-
this.deployers = {};
|
|
57
|
-
/**
|
|
58
|
-
* Moddas registry
|
|
59
|
-
*/
|
|
60
|
-
this.moddas = {};
|
|
61
|
-
/**
|
|
62
|
-
* Models type registry
|
|
63
|
-
*/
|
|
64
|
-
this.models = {};
|
|
65
|
-
/**
|
|
66
|
-
* Models graph
|
|
67
|
-
*/
|
|
68
|
-
this.graph = {};
|
|
69
|
-
/**
|
|
70
|
-
* Models specific plurals
|
|
71
|
-
*/
|
|
72
|
-
this.plurals = {};
|
|
73
|
-
/**
|
|
74
|
-
* Detect if running as workspace
|
|
75
|
-
*/
|
|
76
|
-
this.workspacesPath = "";
|
|
77
|
-
/**
|
|
78
|
-
* Direct parent of a model
|
|
79
|
-
*/
|
|
80
|
-
this.flatHierarchy = {};
|
|
81
|
-
this.logger = logger || new WorkerOutput();
|
|
82
|
-
this.initTime = Date.now();
|
|
83
|
-
if (!fs.existsSync(file)) {
|
|
84
|
-
throw new WebdaError.CodeError("NO_WEBDA_FOLDER", `Not a webda application folder or webda.config.jsonc or webda.config.json file: unexisting ${file}`);
|
|
85
|
-
}
|
|
86
|
-
if (fs.lstatSync(file).isDirectory()) {
|
|
87
|
-
file = path.join(file, "webda.config.jsonc");
|
|
88
|
-
if (!fs.existsSync(file)) {
|
|
89
|
-
file = file.substring(0, file.length - 1);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
this.configurationFile = file;
|
|
93
|
-
this.appPath = path.resolve(path.dirname(file));
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Import all required modules
|
|
97
|
-
*/
|
|
98
|
-
async load() {
|
|
99
|
-
this.loadConfiguration(this.configurationFile);
|
|
100
|
-
await this.loadModule(this.baseConfiguration.cachedModules);
|
|
101
|
-
// Flat the model tree
|
|
102
|
-
const addParent = (parent, tree) => {
|
|
103
|
-
for (let key in tree) {
|
|
104
|
-
this.flatHierarchy[key] = parent;
|
|
105
|
-
addParent(key, tree[key]);
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
addParent("Webda/CoreModel", this.baseConfiguration.cachedModules.models.tree);
|
|
109
|
-
return this;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Allow subclass to implement migration
|
|
113
|
-
*
|
|
114
|
-
* @param file
|
|
115
|
-
* @returns
|
|
116
|
-
*/
|
|
117
|
-
loadConfiguration(file) {
|
|
118
|
-
var _a, _b;
|
|
119
|
-
// Check if file is a file or folder
|
|
120
|
-
if (!fs.existsSync(file)) {
|
|
121
|
-
throw new WebdaError.CodeError("NO_WEBDA_FOLDER", `Not a webda application folder or webda.config.jsonc or webda.config.json file: ${file}`);
|
|
122
|
-
}
|
|
123
|
-
try {
|
|
124
|
-
this.baseConfiguration = FileUtils.load(file);
|
|
125
|
-
(_a = this.baseConfiguration).parameters ?? (_a.parameters = {});
|
|
126
|
-
(_b = this.baseConfiguration.parameters).defaultStore ?? (_b.defaultStore = "Registry");
|
|
127
|
-
if (this.baseConfiguration.version !== 3) {
|
|
128
|
-
this.log("ERROR", "Your configuration file should use version 3, see https://docs.webda.io/");
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
catch (err) {
|
|
132
|
-
throw new WebdaError.CodeError("INVALID_WEBDA_CONFIG", `Cannot parse JSON of: ${file}`);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
*
|
|
137
|
-
* @param proto Prototype to send
|
|
138
|
-
*/
|
|
139
|
-
getFullNameFromPrototype(proto) {
|
|
140
|
-
for (let section in SectionEnum) {
|
|
141
|
-
for (let i in this[SectionEnum[section]]) {
|
|
142
|
-
if (this[SectionEnum[section]][i] && this[SectionEnum[section]][i].prototype === proto) {
|
|
143
|
-
return i;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
// Manage CoreModel too
|
|
148
|
-
for (let i in this.models) {
|
|
149
|
-
if (this.models[i].prototype === proto) {
|
|
150
|
-
return i;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Get a schema from a type
|
|
156
|
-
*
|
|
157
|
-
* Schema should be precomputed in the default app
|
|
158
|
-
* @param type
|
|
159
|
-
* @returns
|
|
160
|
-
*/
|
|
161
|
-
getSchema(type) {
|
|
162
|
-
return this.baseConfiguration.cachedModules.schemas[type];
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Get schemas
|
|
166
|
-
* @returns
|
|
167
|
-
*/
|
|
168
|
-
getSchemas() {
|
|
169
|
-
return this.baseConfiguration.cachedModules.schemas;
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Check if a schema exists
|
|
173
|
-
* @param type
|
|
174
|
-
* @returns schema name if it exists
|
|
175
|
-
*/
|
|
176
|
-
hasSchema(type) {
|
|
177
|
-
return this.baseConfiguration.cachedModules.schemas[type] !== undefined;
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Get model graph
|
|
181
|
-
*/
|
|
182
|
-
getRelations(model) {
|
|
183
|
-
const name = typeof model === "string" ? this.completeNamespace(model) : this.getModelName(model);
|
|
184
|
-
// Get relations should not be case-sensitive until v4
|
|
185
|
-
const key = Object.keys(this.graph).find(k => k?.toLowerCase() === name?.toLowerCase());
|
|
186
|
-
return this.getGraph()[key] || {};
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Get the all graph
|
|
190
|
-
* @returns
|
|
191
|
-
*/
|
|
192
|
-
getGraph() {
|
|
193
|
-
return this.graph;
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Check if application has cached modules
|
|
197
|
-
*
|
|
198
|
-
* When deployed the application contains cachedModules in the `webda.config.json`
|
|
199
|
-
* It allows to avoid the search for `webda.module.json` inside node_modules and
|
|
200
|
-
* take the schema from the cached modules also
|
|
201
|
-
*/
|
|
202
|
-
isCached() {
|
|
203
|
-
return true;
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Retrieve specific webda conf from package.json
|
|
207
|
-
*
|
|
208
|
-
* In case of workspaces the object is combined
|
|
209
|
-
*/
|
|
210
|
-
getPackageWebda() {
|
|
211
|
-
return (this.baseConfiguration.cachedModules.project?.webda || {
|
|
212
|
-
namespace: "Webda"
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Retrieve content of package.json
|
|
217
|
-
*/
|
|
218
|
-
getPackageDescription() {
|
|
219
|
-
return this.baseConfiguration.cachedModules?.project?.package || {};
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Log information
|
|
223
|
-
*
|
|
224
|
-
* @param level to log for
|
|
225
|
-
* @param args anything to display same as console.log
|
|
226
|
-
*/
|
|
227
|
-
log(level, ...args) {
|
|
228
|
-
if (this.logger) {
|
|
229
|
-
this.logger.log(level, ...args);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Get current logger
|
|
234
|
-
*/
|
|
235
|
-
getWorkerOutput() {
|
|
236
|
-
return this.logger;
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Return the current app path
|
|
240
|
-
*
|
|
241
|
-
* @param subpath to append to
|
|
242
|
-
*/
|
|
243
|
-
getAppPath(subpath = undefined) {
|
|
244
|
-
if (subpath && subpath !== "") {
|
|
245
|
-
if (path.isAbsolute(subpath)) {
|
|
246
|
-
return subpath;
|
|
247
|
-
}
|
|
248
|
-
return path.join(this.appPath, subpath);
|
|
249
|
-
}
|
|
250
|
-
return this.appPath;
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Add a new service
|
|
254
|
-
*
|
|
255
|
-
* @param name
|
|
256
|
-
* @param service
|
|
257
|
-
*/
|
|
258
|
-
addService(name, service) {
|
|
259
|
-
this.log("TRACE", "Registering service", name);
|
|
260
|
-
this.moddas[name] = service;
|
|
261
|
-
return this;
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Register a new schema in the application
|
|
265
|
-
* @param name
|
|
266
|
-
* @param schema
|
|
267
|
-
*/
|
|
268
|
-
registerSchema(name, schema) {
|
|
269
|
-
if (this.hasSchema(name)) {
|
|
270
|
-
throw new Error(`Schema ${name} already registered`);
|
|
271
|
-
}
|
|
272
|
-
this.baseConfiguration.cachedModules.schemas[name] = schema;
|
|
273
|
-
}
|
|
274
|
-
/**
|
|
275
|
-
* Get plural of an Id
|
|
276
|
-
* @param name
|
|
277
|
-
* @returns
|
|
278
|
-
*/
|
|
279
|
-
getModelPlural(name) {
|
|
280
|
-
let value = this.plurals[name] || name.split("/").pop();
|
|
281
|
-
return value.endsWith("s") ? value : value + "s";
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
*
|
|
285
|
-
* @param section
|
|
286
|
-
* @param name
|
|
287
|
-
* @param caseSensitive
|
|
288
|
-
*/
|
|
289
|
-
hasWebdaObject(section, name, caseSensitive = false) {
|
|
290
|
-
let objectName = this.completeNamespace(name);
|
|
291
|
-
this.log("TRACE", `Search for ${section} ${objectName}`);
|
|
292
|
-
if (!this[section][objectName] && name.indexOf("/") === -1) {
|
|
293
|
-
objectName = `Webda/${name}`;
|
|
294
|
-
}
|
|
295
|
-
if (!this[section][objectName]) {
|
|
296
|
-
const caseInsensitive = Object.keys(this[section]).find(k => k.toLowerCase() === name.toLowerCase());
|
|
297
|
-
if (this[section][caseInsensitive] && !caseSensitive) {
|
|
298
|
-
// We found a case insensitive match
|
|
299
|
-
return true;
|
|
300
|
-
}
|
|
301
|
-
return false;
|
|
302
|
-
}
|
|
303
|
-
return true;
|
|
304
|
-
}
|
|
305
|
-
/**
|
|
306
|
-
*
|
|
307
|
-
* @param section
|
|
308
|
-
* @param name
|
|
309
|
-
* @returns
|
|
310
|
-
*/
|
|
311
|
-
getWebdaObject(section, name, caseSensitive = false) {
|
|
312
|
-
let objectName = this.completeNamespace(name);
|
|
313
|
-
this.log("TRACE", `Search for ${section} ${objectName}`);
|
|
314
|
-
if (!this[section][objectName] && name.indexOf("/") === -1) {
|
|
315
|
-
objectName = `Webda/${name}`;
|
|
316
|
-
}
|
|
317
|
-
if (!this[section][objectName]) {
|
|
318
|
-
const caseInsensitive = Object.keys(this[section]).find(k => k.toLowerCase() === name.toLowerCase());
|
|
319
|
-
if (this[section][caseInsensitive] && !caseSensitive) {
|
|
320
|
-
// We found a case insensitive match
|
|
321
|
-
this.log("DEBUG", `Found ${caseInsensitive} instead of ${name}, will be removed in 4.0`);
|
|
322
|
-
return this[section][caseInsensitive];
|
|
323
|
-
}
|
|
324
|
-
objectName = name !== objectName ? ` or ${objectName}` : "";
|
|
325
|
-
throw Error(`Undefined ${section.substring(0, section.length - 1)} ${name}${objectName} (${Object.keys(this[section]).join(", ")})`);
|
|
326
|
-
}
|
|
327
|
-
return this[section][objectName];
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Get a service based on name
|
|
331
|
-
*
|
|
332
|
-
* @param name
|
|
333
|
-
*/
|
|
334
|
-
getModda(name) {
|
|
335
|
-
return this.getWebdaObject("moddas", name);
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* Return all services of the application
|
|
339
|
-
*/
|
|
340
|
-
getModdas() {
|
|
341
|
-
return this.moddas;
|
|
342
|
-
}
|
|
343
|
-
/**
|
|
344
|
-
* Return all beans of the application
|
|
345
|
-
*/
|
|
346
|
-
getBeans() {
|
|
347
|
-
return this.baseConfiguration.cachedModules.beans;
|
|
348
|
-
}
|
|
349
|
-
/**
|
|
350
|
-
* Retrieve the model implementation
|
|
351
|
-
*
|
|
352
|
-
* @param name model to retrieve
|
|
353
|
-
*/
|
|
354
|
-
getModel(name) {
|
|
355
|
-
return this.getWebdaObject("models", this.completeNamespace(name));
|
|
356
|
-
}
|
|
357
|
-
/**
|
|
358
|
-
* Get all models definitions
|
|
359
|
-
*/
|
|
360
|
-
getModels() {
|
|
361
|
-
return this.models;
|
|
362
|
-
}
|
|
363
|
-
/**
|
|
364
|
-
* Return models that do not have parents
|
|
365
|
-
* @returns
|
|
366
|
-
*/
|
|
367
|
-
getRootModels() {
|
|
368
|
-
return Object.keys(this.graph).filter(key => !this.graph[key].parent && this.models[key]?.Expose);
|
|
369
|
-
}
|
|
370
|
-
/**
|
|
371
|
-
* Return models that do not have parents and are exposed
|
|
372
|
-
* Or specifically set as root via the Expose.root parameter
|
|
373
|
-
* @returns
|
|
374
|
-
*/
|
|
375
|
-
getRootExposedModels() {
|
|
376
|
-
const results = new Set(this.getRootModels().filter(k => this.getModel(k).Expose));
|
|
377
|
-
for (let model in this.models) {
|
|
378
|
-
if (this.models[model].Expose?.root) {
|
|
379
|
-
results.add(model);
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
return [...results];
|
|
383
|
-
}
|
|
384
|
-
/**
|
|
385
|
-
* Return the model name for a object
|
|
386
|
-
* @param object
|
|
387
|
-
*/
|
|
388
|
-
getModelFromInstance(object) {
|
|
389
|
-
return Object.keys(this.models).find(k => this.models[k] === object.constructor);
|
|
390
|
-
}
|
|
391
|
-
/**
|
|
392
|
-
* Return the model name for a object
|
|
393
|
-
* @param object
|
|
394
|
-
*/
|
|
395
|
-
getModelFromConstructor(model) {
|
|
396
|
-
return Object.keys(this.models).find(k => this.models[k] === model);
|
|
397
|
-
}
|
|
398
|
-
/**
|
|
399
|
-
* Get the model name from a model or a constructor
|
|
400
|
-
*
|
|
401
|
-
* @param model
|
|
402
|
-
* @returns longId for a model
|
|
403
|
-
*/
|
|
404
|
-
getModelName(model) {
|
|
405
|
-
// If __type is defined, use it
|
|
406
|
-
if (model.__type) {
|
|
407
|
-
return this.completeNamespace(model.__type);
|
|
408
|
-
}
|
|
409
|
-
if (model instanceof CoreModel) {
|
|
410
|
-
return this.getModelFromInstance(model);
|
|
411
|
-
}
|
|
412
|
-
return this.getModelFromConstructor(model);
|
|
413
|
-
}
|
|
414
|
-
/**
|
|
415
|
-
* Get the model hierarchy
|
|
416
|
-
* @param model
|
|
417
|
-
*/
|
|
418
|
-
getModelHierarchy(model) {
|
|
419
|
-
if (typeof model !== "string") {
|
|
420
|
-
model = this.getModelName(model);
|
|
421
|
-
}
|
|
422
|
-
else {
|
|
423
|
-
model = this.completeNamespace(model);
|
|
424
|
-
}
|
|
425
|
-
if (model === "Webda/CoreModel") {
|
|
426
|
-
return { ancestors: [], children: this.baseConfiguration?.cachedModules?.models?.tree };
|
|
427
|
-
}
|
|
428
|
-
let ancestors = [];
|
|
429
|
-
let modelInfo = model;
|
|
430
|
-
while ((this.flatHierarchy[modelInfo] || "Webda/CoreModel") !== "Webda/CoreModel") {
|
|
431
|
-
modelInfo = this.flatHierarchy[modelInfo];
|
|
432
|
-
ancestors.unshift(modelInfo);
|
|
433
|
-
}
|
|
434
|
-
let tree = this.baseConfiguration?.cachedModules?.models?.tree || {};
|
|
435
|
-
ancestors.forEach(ancestor => {
|
|
436
|
-
tree = tree[ancestor] || {};
|
|
437
|
-
});
|
|
438
|
-
ancestors.unshift(this.getShortId("Webda/CoreModel"));
|
|
439
|
-
ancestors.reverse();
|
|
440
|
-
return { ancestors: ancestors.map(i => this.getShortId(i)), children: tree[model] || {} };
|
|
441
|
-
}
|
|
442
|
-
/**
|
|
443
|
-
* Get all model types with the hierarchy
|
|
444
|
-
* @param model
|
|
445
|
-
* @returns
|
|
446
|
-
*/
|
|
447
|
-
getModelTypes(model) {
|
|
448
|
-
const hierarchy = this.getModelHierarchy(model);
|
|
449
|
-
const coreModel = this.getShortId("Webda/CoreModel");
|
|
450
|
-
return [model.__type, ...hierarchy.ancestors]
|
|
451
|
-
.map(i => (i.includes("/") ? this.getShortId(i) : i))
|
|
452
|
-
.filter(i => i !== coreModel);
|
|
453
|
-
}
|
|
454
|
-
/**
|
|
455
|
-
* Return all deployers
|
|
456
|
-
*/
|
|
457
|
-
getDeployers() {
|
|
458
|
-
return this.deployers;
|
|
459
|
-
}
|
|
460
|
-
/**
|
|
461
|
-
* Add a new model
|
|
462
|
-
*
|
|
463
|
-
* @param name
|
|
464
|
-
* @param model
|
|
465
|
-
*/
|
|
466
|
-
addModel(name, model, dynamic = true) {
|
|
467
|
-
this.log("TRACE", "Registering model", name);
|
|
468
|
-
this.models[name] = model;
|
|
469
|
-
if (dynamic && model) {
|
|
470
|
-
const superClass = Object.getPrototypeOf(model);
|
|
471
|
-
Object.values(this.getModels())
|
|
472
|
-
.filter(m => m === superClass)
|
|
473
|
-
.forEach(m => {
|
|
474
|
-
this.flatHierarchy[name] = this.getModelName(m);
|
|
475
|
-
this.getModelHierarchy(this.flatHierarchy[name]).children[name] = {};
|
|
476
|
-
});
|
|
477
|
-
}
|
|
478
|
-
return this;
|
|
479
|
-
}
|
|
480
|
-
/**
|
|
481
|
-
* Add a new deployer
|
|
482
|
-
*
|
|
483
|
-
* @param name
|
|
484
|
-
* @param model
|
|
485
|
-
*/
|
|
486
|
-
addDeployer(name, model) {
|
|
487
|
-
this.log("TRACE", "Registering deployer", name);
|
|
488
|
-
this.deployers[name] = model;
|
|
489
|
-
return this;
|
|
490
|
-
}
|
|
491
|
-
/**
|
|
492
|
-
* Return webda current version
|
|
493
|
-
*
|
|
494
|
-
* @returns package version
|
|
495
|
-
* @since 0.4.0
|
|
496
|
-
*/
|
|
497
|
-
getWebdaVersion() {
|
|
498
|
-
return JSON.parse(fs.readFileSync(__dirname + "/../package.json").toString()).version;
|
|
499
|
-
}
|
|
500
|
-
/**
|
|
501
|
-
* Retrieve Git Repository information
|
|
502
|
-
*
|
|
503
|
-
* {@link GitInformation} for more details on how the information is gathered
|
|
504
|
-
* @return the git information
|
|
505
|
-
*/
|
|
506
|
-
getGitInformation(_packageName, _version) {
|
|
507
|
-
return this.baseConfiguration.cachedModules.project?.git;
|
|
508
|
-
}
|
|
509
|
-
/**
|
|
510
|
-
* Allow variable inside of string
|
|
511
|
-
*
|
|
512
|
-
* @param templateString to copy
|
|
513
|
-
* @param replacements additional replacements to run
|
|
514
|
-
*/
|
|
515
|
-
stringParameter(templateString, replacements = {}) {
|
|
516
|
-
// Optimization if no parameter is found just skip the costy function
|
|
517
|
-
if (templateString.indexOf("${") < 0) {
|
|
518
|
-
return templateString;
|
|
519
|
-
}
|
|
520
|
-
let scan = templateString;
|
|
521
|
-
let index;
|
|
522
|
-
let i = 0;
|
|
523
|
-
while ((index = scan.indexOf("${")) >= 0) {
|
|
524
|
-
// Add escape sequence
|
|
525
|
-
if (index > 0 && scan.substring(index - 1, 1) === "\\") {
|
|
526
|
-
scan = scan.substring(scan.indexOf("}", index));
|
|
527
|
-
continue;
|
|
528
|
-
}
|
|
529
|
-
let next = scan.indexOf("}", index);
|
|
530
|
-
let variable = scan.substring(index + 2, next);
|
|
531
|
-
scan = scan.substring(next);
|
|
532
|
-
if (variable.match(/[|&;<>\\{]/)) {
|
|
533
|
-
throw new Error(`Variable cannot use every javascript features found ${variable}`);
|
|
534
|
-
}
|
|
535
|
-
if (i++ > 10) {
|
|
536
|
-
throw new Error("Too many variables");
|
|
537
|
-
}
|
|
538
|
-
}
|
|
539
|
-
return new Function("return `" + (" " + templateString).replace(/([^\\])\$\{([^}{]+)}/g, "$1${this.$2}").substring(1) + "`;").call({
|
|
540
|
-
...this.baseConfiguration.cachedModules.project,
|
|
541
|
-
now: this.initTime,
|
|
542
|
-
...replacements
|
|
543
|
-
});
|
|
544
|
-
}
|
|
545
|
-
/**
|
|
546
|
-
* Allow variable inside object strings
|
|
547
|
-
*
|
|
548
|
-
* Example
|
|
549
|
-
* ```js
|
|
550
|
-
* replaceVariables({
|
|
551
|
-
* myobj: "${test.replace}"
|
|
552
|
-
* }, {
|
|
553
|
-
* test: {
|
|
554
|
-
* replace: 'plop'
|
|
555
|
-
* }
|
|
556
|
-
* })
|
|
557
|
-
* ```
|
|
558
|
-
* will return
|
|
559
|
-
* ```
|
|
560
|
-
* {
|
|
561
|
-
* myobj: 'plop'
|
|
562
|
-
* }
|
|
563
|
-
* ```
|
|
564
|
-
*
|
|
565
|
-
* By default the replacements map contains
|
|
566
|
-
* ```
|
|
567
|
-
* {
|
|
568
|
-
* git: GitInformation,
|
|
569
|
-
* package: 'package.json content',
|
|
570
|
-
* deployment: string,
|
|
571
|
-
* now: number,
|
|
572
|
-
* ...replacements
|
|
573
|
-
* }
|
|
574
|
-
* ```
|
|
575
|
-
*
|
|
576
|
-
* See: {@link GitInformation}
|
|
577
|
-
*
|
|
578
|
-
* @param object a duplicated object with replacement done
|
|
579
|
-
* @param replacements additional replacements to run
|
|
580
|
-
*/
|
|
581
|
-
replaceVariables(object, replacements = {}) {
|
|
582
|
-
if (typeof object === "string") {
|
|
583
|
-
return this.stringParameter(object, replacements);
|
|
584
|
-
}
|
|
585
|
-
let app = this;
|
|
586
|
-
return JSON.parse(JSON.stringify(object, function (key, value) {
|
|
587
|
-
if (typeof this[key] === "string") {
|
|
588
|
-
return app.stringParameter(value, replacements);
|
|
589
|
-
}
|
|
590
|
-
return value;
|
|
591
|
-
}));
|
|
592
|
-
}
|
|
593
|
-
/**
|
|
594
|
-
* Get current deployment name
|
|
595
|
-
*/
|
|
596
|
-
getCurrentDeployment() {
|
|
597
|
-
return this.baseConfiguration.cachedModules.project.deployment.name;
|
|
598
|
-
}
|
|
599
|
-
/**
|
|
600
|
-
* Return all application modules merged as one
|
|
601
|
-
*
|
|
602
|
-
* Used when deployed
|
|
603
|
-
* @returns
|
|
604
|
-
*/
|
|
605
|
-
getModules() {
|
|
606
|
-
return this.baseConfiguration.cachedModules;
|
|
607
|
-
}
|
|
608
|
-
/**
|
|
609
|
-
* Get application configuration
|
|
610
|
-
* @returns
|
|
611
|
-
*/
|
|
612
|
-
getConfiguration(_deployment = undefined) {
|
|
613
|
-
return this.baseConfiguration;
|
|
614
|
-
}
|
|
615
|
-
/**
|
|
616
|
-
* Return current Configuration of the Application
|
|
617
|
-
*
|
|
618
|
-
* Same as calling
|
|
619
|
-
*
|
|
620
|
-
* ```js
|
|
621
|
-
* getConfiguration(this.currentDeployment);
|
|
622
|
-
* ```
|
|
623
|
-
*/
|
|
624
|
-
getCurrentConfiguration() {
|
|
625
|
-
return this.getConfiguration();
|
|
626
|
-
}
|
|
627
|
-
/**
|
|
628
|
-
* Import a file
|
|
629
|
-
*
|
|
630
|
-
* If the `default` is set take this or use old format
|
|
631
|
-
*
|
|
632
|
-
* @param info
|
|
633
|
-
*/
|
|
634
|
-
async importFile(info, withExport = true) {
|
|
635
|
-
if (info.startsWith(".")) {
|
|
636
|
-
info = this.getAppPath(info);
|
|
637
|
-
}
|
|
638
|
-
try {
|
|
639
|
-
this.log("TRACE", "Load file", info);
|
|
640
|
-
let [importFilename, importName = "default"] = info.split(":");
|
|
641
|
-
if (!importFilename.endsWith(".js")) {
|
|
642
|
-
importFilename += ".js";
|
|
643
|
-
}
|
|
644
|
-
const importedFile = await import(importFilename);
|
|
645
|
-
if (!withExport) {
|
|
646
|
-
return;
|
|
647
|
-
}
|
|
648
|
-
const importObject = importedFile[importName];
|
|
649
|
-
if (!importObject) {
|
|
650
|
-
this.log("WARN", `Module ${importFilename} does not have export named ${importName}`);
|
|
651
|
-
}
|
|
652
|
-
return importObject;
|
|
653
|
-
}
|
|
654
|
-
catch (err) {
|
|
655
|
-
this.log("WARN", "Cannot resolve require", info, err.message);
|
|
656
|
-
}
|
|
657
|
-
}
|
|
658
|
-
/**
|
|
659
|
-
* Load local module
|
|
660
|
-
*/
|
|
661
|
-
async loadLocalModule() {
|
|
662
|
-
let moduleFile = path.join(process.cwd(), "webda.module.json");
|
|
663
|
-
if (fs.existsSync(moduleFile)) {
|
|
664
|
-
await this.loadModule(FileUtils.load(moduleFile), process.cwd());
|
|
665
|
-
}
|
|
666
|
-
}
|
|
667
|
-
/**
|
|
668
|
-
* Load the module,
|
|
669
|
-
*
|
|
670
|
-
* @protected
|
|
671
|
-
* @ignore Useless for documentation
|
|
672
|
-
*/
|
|
673
|
-
async loadModule(module, parent = this.appPath) {
|
|
674
|
-
const info = { beans: {}, ...module };
|
|
675
|
-
const sectionLoader = async (section) => {
|
|
676
|
-
var _a;
|
|
677
|
-
for (let key in info[section]) {
|
|
678
|
-
(_a = this[section])[key] ?? (_a[key] = await this.importFile(path.join(parent, info[section][key])));
|
|
679
|
-
}
|
|
680
|
-
};
|
|
681
|
-
// Merging graph from different modules
|
|
682
|
-
Object.keys(module.models.graph || {}).forEach(k => {
|
|
683
|
-
this.graph[k] = module.models.graph[k];
|
|
684
|
-
});
|
|
685
|
-
// TODO Merging tree from different modules
|
|
686
|
-
await Promise.all([
|
|
687
|
-
sectionLoader("moddas"),
|
|
688
|
-
sectionLoader("deployers"),
|
|
689
|
-
// Load models
|
|
690
|
-
(async () => {
|
|
691
|
-
// Copy plurals
|
|
692
|
-
for (let key in info.models.plurals || {}) {
|
|
693
|
-
this.plurals[key] = info.models.plurals[key];
|
|
694
|
-
}
|
|
695
|
-
for (let key in info.models.list) {
|
|
696
|
-
this.addModel(key, await this.importFile(path.join(parent, info.models.list[key])), false);
|
|
697
|
-
}
|
|
698
|
-
})(),
|
|
699
|
-
...Object.keys(info.beans).map(f => {
|
|
700
|
-
this.baseConfiguration.cachedModules.beans[f] = info.beans[f];
|
|
701
|
-
return this.importFile(path.join(parent, info.beans[f]), false).catch(this.log.bind(this, "WARN"));
|
|
702
|
-
})
|
|
703
|
-
]);
|
|
704
|
-
}
|
|
705
|
-
/**
|
|
706
|
-
* Return the full name including namespace
|
|
707
|
-
*
|
|
708
|
-
* In Webda the ServiceType include namespace `Webda/Store` or `Webda/Test`
|
|
709
|
-
* This method will make sure the namespace is present, adding it if no '/'
|
|
710
|
-
* is found in the name
|
|
711
|
-
*
|
|
712
|
-
* @param name
|
|
713
|
-
*/
|
|
714
|
-
completeNamespace(name = "") {
|
|
715
|
-
// Do not add a namespace if already present
|
|
716
|
-
if (name.includes("/")) {
|
|
717
|
-
return name;
|
|
718
|
-
}
|
|
719
|
-
name = this.getShortId(name);
|
|
720
|
-
if (name.includes("/")) {
|
|
721
|
-
return name;
|
|
722
|
-
}
|
|
723
|
-
return `${this.getNamespace()}/${name}`;
|
|
724
|
-
}
|
|
725
|
-
/**
|
|
726
|
-
* Return current namespace
|
|
727
|
-
* @returns
|
|
728
|
-
*/
|
|
729
|
-
getNamespace() {
|
|
730
|
-
return this.baseConfiguration?.cachedModules?.project?.webda?.namespace || "Webda";
|
|
731
|
-
}
|
|
732
|
-
/**
|
|
733
|
-
* Get short id for a name
|
|
734
|
-
* @param name if name is shortId return longId else return shortId
|
|
735
|
-
* @returns
|
|
736
|
-
*/
|
|
737
|
-
getShortId(name) {
|
|
738
|
-
return this.baseConfiguration?.cachedModules?.models?.shortIds[name] || name;
|
|
739
|
-
}
|
|
740
|
-
}
|
|
741
|
-
//# sourceMappingURL=application.js.map
|