@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/README.md
ADDED
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
# @webda/core module
|
|
2
|
+
|
|
3
|
+
This module is part of Webda Application Framework that allows you to quickly develop applications with all modern prerequisites: Security, Extensibility, GraphQL, REST, CloudNative [https://webda.io](https://webda.io)
|
|
4
|
+
|
|
5
|
+
<img src="https://webda.io/images/webda.svg" width="128" />
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
[](https://gitter.im/loopingz/webda?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
|
10
|
+
[](https://codecov.io/gh/loopingz/webda.io)
|
|
11
|
+
[](https://sonarcloud.io/summary/new_code?id=loopingz_webda.io)
|
|
12
|
+

|
|
13
|
+
|
|
14
|
+
<!-- README_HEADER -->
|
|
15
|
+
|
|
16
|
+
The runtime engine of the [webda.io](https://webda.io) framework. It manages the full lifecycle of a Webda application: loading configuration, instantiating services, routing HTTP requests, managing sessions, and providing cross-cutting concerns like logging, metrics, and caching.
|
|
17
|
+
|
|
18
|
+
## Architecture
|
|
19
|
+
|
|
20
|
+

|
|
21
|
+
|
|
22
|
+
The framework is organized into six layers:
|
|
23
|
+
|
|
24
|
+
### Application Layer
|
|
25
|
+
|
|
26
|
+
Responsible for discovering modules, loading configuration, and bootstrapping the runtime.
|
|
27
|
+
|
|
28
|
+
- **Application** -- Scans the project, parses `webda.config.json`, discovers installed Moddas (service types) and Models, and caches everything for fast startup.
|
|
29
|
+
- **UnpackedApplication** -- Development-oriented variant that auto-discovers `webda.module.json` files and creates default services (Router, Registry, CryptoService, SessionManager) when missing.
|
|
30
|
+
- **Configuration** -- Defines the `UnpackedConfiguration` schema (version 4) with service definitions, global parameters, and application settings.
|
|
31
|
+
- **Runner** -- Orchestrates startup: creates Core from Application, initializes all services, and registers SIGINT for graceful shutdown.
|
|
32
|
+
- **Application Hooks** -- `useApplication()`, `useModel()`, `useModelId()`, `useParameters()` for accessing application state from anywhere in the call stack.
|
|
33
|
+
|
|
34
|
+
### Core Runtime
|
|
35
|
+
|
|
36
|
+
The central orchestrator that manages the service lifecycle and dependency graph.
|
|
37
|
+
|
|
38
|
+
- **Core** -- Creates and initializes services with dependency tracking, maps Models to Stores and BinaryServices, manages the operation registry. Lifecycle: `initial` -> `loading` -> `initializing` -> `ready` -> `stopping` -> `stopped`.
|
|
39
|
+
- **InstanceStorage** -- `AsyncLocalStorage`-based context that holds the current Core, Application, Router, and request context. Enables the hooks pattern without passing references through every function call.
|
|
40
|
+
- **Core Hooks** -- `useCore()`, `useService()`, `useDynamicService()`, `useModelStore()`, `useModelRepository()`, `getMachineId()`.
|
|
41
|
+
- **Events** -- Async event system with lifecycle events: `Webda.Init`, `Webda.Request`, `Webda.Result`, `Webda.404`, `Webda.OperationSuccess`, `Webda.Configuration.Applied`, etc.
|
|
42
|
+
- **Errors** -- Typed HTTP errors: `Unauthorized` (401), `Forbidden` (403), `NotFound` (404), `BadRequest` (400), `Conflict` (409), `TooManyRequests` (429), `Redirect` (302), and more.
|
|
43
|
+
|
|
44
|
+
### Services Layer
|
|
45
|
+
|
|
46
|
+
All application logic lives in services. Every service extends `Service` which provides logging, metrics, dependency injection, and event emission.
|
|
47
|
+
|
|
48
|
+
- **Service** -- Base class for all application services. Provides `@Inject` decorator for DI, `@Route` for HTTP endpoints, logger per instance, metrics support, and lifecycle hooks (`init()`, `resolve()`, `stop()`).
|
|
49
|
+
- **ServiceParameters** -- Base configuration class with change watching support. Services declare their config shape by extending this class.
|
|
50
|
+
- **CryptoService** -- Encryption, JWT signing/verification, key management with rotation support. Pluggable encrypters.
|
|
51
|
+
- **BinaryService** -- Abstract file/binary storage with metadata, integrity challenges, and model-attribute mapping.
|
|
52
|
+
- **ConfigurationService** -- Dynamic configuration with hot-reload from external sources (files, Kubernetes ConfigMaps, other services).
|
|
53
|
+
|
|
54
|
+
### Data Layer
|
|
55
|
+
|
|
56
|
+
Persistent storage abstraction with query support.
|
|
57
|
+
|
|
58
|
+
- **Store** -- Abstract storage with CRUD, query (via WebdaQL), conditional updates, and event emission (`Created`, `Updated`, `Deleted`). Automatically maps to Models via scoring.
|
|
59
|
+
- **MemoryStore** -- In-memory implementation with optional file persistence. Used as the default Registry.
|
|
60
|
+
- **Registry** -- Key-value store for framework internals (crypto keys, service state). Backed by any Store implementation.
|
|
61
|
+
|
|
62
|
+
### HTTP / Request Layer
|
|
63
|
+
|
|
64
|
+
Handles incoming HTTP requests and manages user sessions.
|
|
65
|
+
|
|
66
|
+
- **Router** -- Routes HTTP requests to service methods, manages OpenAPI spec generation, request/CORS filters, and model REST endpoints.
|
|
67
|
+
- **OperationContext** -- Typed request/response context with generic `<Input, Parameters, Output>`. Provides session access, parameter parsing, header management, and streaming.
|
|
68
|
+
- **SessionManager** -- Abstract session load/save. Default implementation uses JWT tokens in secure cookies with optional backend storage.
|
|
69
|
+
|
|
70
|
+
### Cross-Cutting Concerns
|
|
71
|
+
|
|
72
|
+
Shared infrastructure available to all services.
|
|
73
|
+
|
|
74
|
+
- **Logger** -- Structured logging with per-service context. Backed by `@webda/workout`.
|
|
75
|
+
- **Metrics** -- Prometheus integration via `prom-client`. `useMetric()` creates Counters, Gauges, and Histograms with automatic service labels.
|
|
76
|
+
- **Cache** -- Decorator-based caching at four scopes: `@ProcessCache()` (global), `@InstanceCache()` (per Core), `@SessionCache()` (per user), `@ContextCache()` (per request).
|
|
77
|
+
- **Queue** -- Message queue consumer pattern with configurable parallelism, retry backoff, and metrics. Extend for SQS, AMQP, etc.
|
|
78
|
+
- **Models** -- Model registry with built-in types: `CoreModel`, `User`, `Ident`, `ACLModel`, `OwnerModel`, `RegistryEntry`.
|
|
79
|
+
- **Execution Context** -- `AsyncLocalStorage`-based context for `useContext()`, `useCurrentUser()`, `runAsSystem()`, `runWithContext()`.
|
|
80
|
+
|
|
81
|
+
## Request Flow
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
HTTP Request
|
|
85
|
+
|
|
|
86
|
+
v
|
|
87
|
+
HttpContext (parse headers, cookies, body)
|
|
88
|
+
|
|
|
89
|
+
v
|
|
90
|
+
OperationContext / WebContext (typed I/O)
|
|
91
|
+
|
|
|
92
|
+
v
|
|
93
|
+
SessionManager.load() (JWT from cookie)
|
|
94
|
+
|
|
|
95
|
+
v
|
|
96
|
+
Router.execute() (match route, run filters)
|
|
97
|
+
|
|
|
98
|
+
v
|
|
99
|
+
Service method (business logic)
|
|
100
|
+
|
|
|
101
|
+
v
|
|
102
|
+
SessionManager.save() (persist if dirty)
|
|
103
|
+
|
|
|
104
|
+
v
|
|
105
|
+
HTTP Response
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Hooks API
|
|
109
|
+
|
|
110
|
+
The hooks pattern provides access to framework singletons from any point in the call stack, powered by `AsyncLocalStorage`:
|
|
111
|
+
|
|
112
|
+
| Hook | Returns | Use case |
|
|
113
|
+
|------|---------|----------|
|
|
114
|
+
| `useCore()` | `Core` | Access the runtime engine |
|
|
115
|
+
| `useApplication()` | `Application` | Access project metadata and configuration |
|
|
116
|
+
| `useService(name)` | Typed service | Get a named service (`"Registry"`, `"CryptoService"`, etc.) |
|
|
117
|
+
| `useDynamicService(name)` | `Service` | Get a service by arbitrary name |
|
|
118
|
+
| `useModel(name)` | `ModelDefinition` | Get a model class with metadata |
|
|
119
|
+
| `useModelId(object)` | `string` | Get the model identifier for an instance |
|
|
120
|
+
| `useModelStore(name)` | `IStore` | Get the store assigned to a model |
|
|
121
|
+
| `useModelRepository(name)` | `Repository` | Get the repository for a model |
|
|
122
|
+
| `useContext()` | `Context` | Get the current request context |
|
|
123
|
+
| `useCurrentUser()` | `User` | Get the authenticated user |
|
|
124
|
+
| `useCurrentUserId()` | `string` | Get the user ID or `"system"` |
|
|
125
|
+
| `useLogger(class)` | `Logger` | Get a logger with class context |
|
|
126
|
+
| `useMetric(type, config)` | Counter/Gauge/Histogram | Create a prometheus metric |
|
|
127
|
+
| `useParameters()` | `Configuration["parameters"]` | Get global configuration parameters |
|
|
128
|
+
| `getMachineId()` | `string` | Get a stable machine identifier |
|
|
129
|
+
|
|
130
|
+
## Dependency Injection
|
|
131
|
+
|
|
132
|
+
Services declare dependencies with the `@Inject` decorator:
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
import { Service, Inject } from "@webda/core";
|
|
136
|
+
|
|
137
|
+
class MyService extends Service {
|
|
138
|
+
// Inject by service name
|
|
139
|
+
@Inject("CryptoService")
|
|
140
|
+
crypto: CryptoService;
|
|
141
|
+
|
|
142
|
+
// Inject from a parameter value
|
|
143
|
+
@Inject("params:storeName", "Registry")
|
|
144
|
+
store: Store;
|
|
145
|
+
|
|
146
|
+
// Optional injection
|
|
147
|
+
@Inject("NotificationService", undefined, true)
|
|
148
|
+
notifications?: NotificationService;
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Configuration
|
|
153
|
+
|
|
154
|
+
Applications are configured via `webda.config.json` (version 4):
|
|
155
|
+
|
|
156
|
+
```json
|
|
157
|
+
{
|
|
158
|
+
"version": 4,
|
|
159
|
+
"parameters": {
|
|
160
|
+
"routePrefix": "/api",
|
|
161
|
+
"metrics": { "prefix": "myapp_" }
|
|
162
|
+
},
|
|
163
|
+
"services": {
|
|
164
|
+
"MyStore": {
|
|
165
|
+
"type": "MemoryStore",
|
|
166
|
+
"model": "MyApp/MyModel"
|
|
167
|
+
},
|
|
168
|
+
"MyService": {
|
|
169
|
+
"type": "MyApp/MyService",
|
|
170
|
+
"storeName": "MyStore"
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Events
|
|
177
|
+
|
|
178
|
+
Services emit typed async events. Subscribe with `on()`:
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
// Core lifecycle events
|
|
182
|
+
useCoreEvents("Webda.Init", () => { /* framework ready */ });
|
|
183
|
+
useCoreEvents("Webda.Request", ({ context }) => { /* new request */ });
|
|
184
|
+
|
|
185
|
+
// Store events
|
|
186
|
+
myStore.on("Store.Created", ({ object }) => { /* model created */ });
|
|
187
|
+
myStore.on("Store.Updated", ({ object }) => { /* model updated */ });
|
|
188
|
+
myStore.on("Store.Deleted", ({ object }) => { /* model deleted */ });
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Error Handling
|
|
192
|
+
|
|
193
|
+
Throw typed HTTP errors from services:
|
|
194
|
+
|
|
195
|
+
```typescript
|
|
196
|
+
import * as WebdaError from "@webda/core";
|
|
197
|
+
|
|
198
|
+
throw new WebdaError.NotFound("User not found");
|
|
199
|
+
throw new WebdaError.Forbidden("Insufficient permissions");
|
|
200
|
+
throw new WebdaError.BadRequest("Invalid input", "VALIDATION_ERROR");
|
|
201
|
+
throw new WebdaError.Redirect("https://example.com/new-location");
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## Ecosystem
|
|
205
|
+
|
|
206
|
+
`@webda/core` is the foundation. The full framework includes:
|
|
207
|
+
|
|
208
|
+
| Package | Purpose |
|
|
209
|
+
|---------|---------|
|
|
210
|
+
| `@webda/models` | Model base classes, relations, repositories |
|
|
211
|
+
| `@webda/compiler` | TypeScript compiler with schema generation |
|
|
212
|
+
| `@webda/tsc-esm` | ESM-aware TypeScript compiler, decorators |
|
|
213
|
+
| `@webda/utils` | Utilities (debounce, dirty tracking, state machines) |
|
|
214
|
+
| `@webda/workout` | Logging infrastructure |
|
|
215
|
+
| `@webda/test` | Multi-framework test decorators (vitest, jest, mocha, bun) |
|
|
216
|
+
| `@webda/ql` | WebdaQL query language |
|
|
217
|
+
| `@webda/cloudevents` | CloudEvents filtering |
|
|
218
|
+
| `@webda/cache` | Caching decorators |
|
|
219
|
+
| `@webda/serialize` | Serialization framework |
|
|
220
|
+
| `@webda/content-mapper` | JSON Schema generator |
|
|
221
|
+
|
|
222
|
+
## Deep-dive sub-pages
|
|
223
|
+
|
|
224
|
+
- [Architecture](../../docs/pages/Modules/core/Architecture.md) — 6-layer overview with diagram
|
|
225
|
+
- [Service Lifecycle](../../docs/pages/Modules/core/Lifecycle.md) — resolve → init → run → stop
|
|
226
|
+
- [Services](../../docs/pages/Modules/core/Services.md) — `Service`, `@Bean`, `@Inject`, `ServiceParameters`
|
|
227
|
+
- [Stores](../../docs/pages/Modules/core/Stores.md) — Store contract, query interface, events
|
|
228
|
+
- [Context](../../docs/pages/Modules/core/Context.md) — `WebContext`, sessions, request lifecycle
|
|
229
|
+
- [Routing](../../docs/pages/Modules/core/Routing.md) — `@Route`, `@Operation`, REST auto-generation
|
|
230
|
+
- [Events](../../docs/pages/Modules/core/Events.md) — `Core.on`, store events, `@On` decorator
|
|
231
|
+
- [Errors](../../docs/pages/Modules/core/Errors.md) — WebdaError hierarchy and HTTP status mapping
|
|
232
|
+
- [Logging](../../docs/pages/Modules/core/Logging.md) — `useLog` + `@webda/workout` integration
|
|
233
|
+
- [CLI](../../docs/pages/Modules/core/CLI.md) — `webda` runtime commands
|
|
234
|
+
|
|
235
|
+
<!-- README_FOOTER -->
|
|
236
|
+
## Sponsors
|
|
237
|
+
|
|
238
|
+
<!--
|
|
239
|
+
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor](mailto:sponsor@webda.io)
|
|
240
|
+
-->
|
|
241
|
+
|
|
242
|
+
Arize AI is a machine learning observability and model monitoring platform. It helps you visualize, monitor, and explain your machine learning models. [Learn more](https://arize.com)
|
|
243
|
+
|
|
244
|
+
[<img src="https://arize.com/hubfs/arize/brand/arize-logomark-1.png" width="200">](https://arize.com)
|
|
245
|
+
|
|
246
|
+
Loopingz is a software development company that provides consulting and development services. [Learn more](https://loopingz.com)
|
|
247
|
+
|
|
248
|
+
[<img src="https://loopingz.com/images/logo.png" width="200">](https://loopingz.com)
|
|
249
|
+
|
|
250
|
+
Tellae is an innovative consulting firm specialized in cities transportation issues. We provide our clients, both public and private, with solutions to support your strategic and operational decisions. [Learn more](https://tellae.fr)
|
|
251
|
+
|
|
252
|
+
[<img src="https://tellae.fr/" width="200">](https://tellae.fr)
|
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
import { WorkerLogLevel, WorkerOutput } from "@webda/workout";
|
|
2
|
+
import type { CachedModule, Configuration, GitInformation, PackageDescriptor, ProjectInformation, Section, UnpackedConfiguration, WebdaModule, WebdaPackageDescriptor } from "./iconfiguration.js";
|
|
3
|
+
import type { Modda } from "../services/iservice.js";
|
|
4
|
+
import type { ModelDefinition } from "../models/types.js";
|
|
5
|
+
import { ServiceParameters } from "../services/serviceparameters.js";
|
|
6
|
+
import { type Model, type ModelClass, type Storable } from "@webda/models";
|
|
7
|
+
import { JSONSchema7 } from "json-schema";
|
|
8
|
+
import type { Service } from "../services/service.js";
|
|
9
|
+
import { ModelMetadata } from "@webda/compiler";
|
|
10
|
+
import type { BehaviorMetadata } from "@webda/compiler";
|
|
11
|
+
/**
|
|
12
|
+
* Install `filterParameters` and `createConfiguration` on a modda or bean class
|
|
13
|
+
*
|
|
14
|
+
* Both are bound to `target`: a subclass that is not registered itself would otherwise inherit them and
|
|
15
|
+
* have its own parameters filtered out by the parent schema. Such a subclass gets the parent configuration
|
|
16
|
+
* class without filtering.
|
|
17
|
+
* @param target - the modda or bean class
|
|
18
|
+
* @param configurationClass - the parameters class to instantiate
|
|
19
|
+
* @param schema - the parameters JSON schema, used to filter the parameters
|
|
20
|
+
*/
|
|
21
|
+
export declare function installConfigurationFactories(target: any, configurationClass?: new () => ServiceParameters, schema?: JSONSchema7): void;
|
|
22
|
+
export type ApplicationState = "initial" | "loading" | "ready";
|
|
23
|
+
/**
|
|
24
|
+
* Map a Webda Application
|
|
25
|
+
*
|
|
26
|
+
* It allows to:
|
|
27
|
+
* - Analyse imported modules
|
|
28
|
+
* - Scan code for Modda and generate the webda.config.json
|
|
29
|
+
* - Compile and Watch
|
|
30
|
+
* - Migrate from old configuration
|
|
31
|
+
* - List deployments
|
|
32
|
+
*
|
|
33
|
+
*
|
|
34
|
+
* @category CoreFeatures
|
|
35
|
+
*/
|
|
36
|
+
export declare class Application {
|
|
37
|
+
/**
|
|
38
|
+
* Get Application root path
|
|
39
|
+
*/
|
|
40
|
+
readonly applicationPath: string;
|
|
41
|
+
/**
|
|
42
|
+
* Base configuration loaded from webda.config.json
|
|
43
|
+
*/
|
|
44
|
+
protected baseConfiguration: Configuration;
|
|
45
|
+
/**
|
|
46
|
+
* Current deployment
|
|
47
|
+
*/
|
|
48
|
+
protected currentDeployment: string;
|
|
49
|
+
/**
|
|
50
|
+
* Contains definitions of current application
|
|
51
|
+
*/
|
|
52
|
+
protected appModule: WebdaModule;
|
|
53
|
+
/**
|
|
54
|
+
* Deployers type registry
|
|
55
|
+
*/
|
|
56
|
+
protected deployers: {
|
|
57
|
+
[key: string]: any;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Moddas registry
|
|
61
|
+
*/
|
|
62
|
+
protected moddas: {
|
|
63
|
+
[key: string]: Modda;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Models type registry
|
|
67
|
+
*/
|
|
68
|
+
protected models: {
|
|
69
|
+
[key: string]: ModelDefinition;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Beans registry
|
|
73
|
+
*/
|
|
74
|
+
protected beans: {
|
|
75
|
+
[key: string]: Modda;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Behaviors registry
|
|
79
|
+
*
|
|
80
|
+
* Populated by `loadModule` from the top-level `behaviors` map of every
|
|
81
|
+
* loaded `webda.module.json`. Each entry holds the metadata blob emitted by
|
|
82
|
+
* the compiler so downstream consumers (DomainService, REST transport, etc.)
|
|
83
|
+
* can introspect the Behavior's declared actions and shape.
|
|
84
|
+
*
|
|
85
|
+
* The Behavior class itself is NOT loaded at runtime: the per-model
|
|
86
|
+
* `__hydrateBehaviors` method emitted at compile time by
|
|
87
|
+
* `@webda/content-mapper` holds a static import to the class, so the runtime
|
|
88
|
+
* never needs to look it up by identifier.
|
|
89
|
+
*/
|
|
90
|
+
protected behaviors: {
|
|
91
|
+
[key: string]: {
|
|
92
|
+
metadata: BehaviorMetadata;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Class Logger
|
|
97
|
+
*/
|
|
98
|
+
protected logger: WorkerOutput;
|
|
99
|
+
/**
|
|
100
|
+
* Detect if running as workspace
|
|
101
|
+
*/
|
|
102
|
+
protected workspacesPath: string;
|
|
103
|
+
/**
|
|
104
|
+
* Configuration file
|
|
105
|
+
*/
|
|
106
|
+
readonly configurationFile: string;
|
|
107
|
+
/**
|
|
108
|
+
* Current deployment file
|
|
109
|
+
*/
|
|
110
|
+
deploymentFile: string;
|
|
111
|
+
/**
|
|
112
|
+
* Create a new Application
|
|
113
|
+
* @param file - file path or unpacked configuration to load from
|
|
114
|
+
* @param logger - the logger instance
|
|
115
|
+
*/
|
|
116
|
+
constructor(file: string | UnpackedConfiguration, logger?: WorkerOutput);
|
|
117
|
+
/**
|
|
118
|
+
* Run the application
|
|
119
|
+
* @returns the result
|
|
120
|
+
*/
|
|
121
|
+
run(): Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* Pluggable runner — set by runner.ts to avoid circular dependency with Core.
|
|
124
|
+
* @internal
|
|
125
|
+
*/
|
|
126
|
+
static _runner: (app: Application) => Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Import all required modules
|
|
129
|
+
* @returns the result
|
|
130
|
+
*/
|
|
131
|
+
load(): Promise<this>;
|
|
132
|
+
/**
|
|
133
|
+
* Allow subclass to implement migration
|
|
134
|
+
*
|
|
135
|
+
* @param file - the file path
|
|
136
|
+
* @returns the result
|
|
137
|
+
*/
|
|
138
|
+
loadConfiguration(file: string): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Get a schema from a type
|
|
141
|
+
*
|
|
142
|
+
* Schema should be precomputed in the default app
|
|
143
|
+
* @param type - the type to look up
|
|
144
|
+
* @returns the result
|
|
145
|
+
*/
|
|
146
|
+
getSchema(type: string): JSONSchema7;
|
|
147
|
+
/**
|
|
148
|
+
* Get schemas
|
|
149
|
+
* @returns the result
|
|
150
|
+
*/
|
|
151
|
+
getSchemas(): {
|
|
152
|
+
[key: string]: JSONSchema7;
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Check if application has cached modules
|
|
156
|
+
*
|
|
157
|
+
* When deployed the application contains cachedModules in the `webda.config.json`
|
|
158
|
+
* It allows to avoid the search for `webda.module.json` inside node_modules and
|
|
159
|
+
* take the schema from the cached modules also
|
|
160
|
+
* @returns true if the condition is met
|
|
161
|
+
*/
|
|
162
|
+
isCached(): boolean;
|
|
163
|
+
/**
|
|
164
|
+
* Retrieve specific webda conf from package.json
|
|
165
|
+
*
|
|
166
|
+
* In case of workspaces the object is combined
|
|
167
|
+
* @returns the result
|
|
168
|
+
*/
|
|
169
|
+
getPackageWebda(): WebdaPackageDescriptor;
|
|
170
|
+
/**
|
|
171
|
+
* Retrieve content of package.json
|
|
172
|
+
* @returns the result
|
|
173
|
+
*/
|
|
174
|
+
getPackageDescription(): PackageDescriptor;
|
|
175
|
+
/**
|
|
176
|
+
* Log information
|
|
177
|
+
*
|
|
178
|
+
* @param level to log for
|
|
179
|
+
* @param args anything to display same as console.log
|
|
180
|
+
*/
|
|
181
|
+
log(level: WorkerLogLevel, ...args: any[]): void;
|
|
182
|
+
/**
|
|
183
|
+
* Get current logger
|
|
184
|
+
* @returns the result
|
|
185
|
+
*/
|
|
186
|
+
getWorkerOutput(): WorkerOutput;
|
|
187
|
+
/**
|
|
188
|
+
* Return the current app path
|
|
189
|
+
*
|
|
190
|
+
* @param subpath to append to
|
|
191
|
+
* @returns the result string
|
|
192
|
+
*/
|
|
193
|
+
getPath(subpath?: string): string;
|
|
194
|
+
/**
|
|
195
|
+
* Add a new service
|
|
196
|
+
*
|
|
197
|
+
* @param name - the name to use
|
|
198
|
+
* @param service - the service instance
|
|
199
|
+
* @returns this for chaining
|
|
200
|
+
*/
|
|
201
|
+
addModda(name: string, service: Modda): this;
|
|
202
|
+
/**
|
|
203
|
+
*
|
|
204
|
+
* @param section - the section name
|
|
205
|
+
* @param name - the name to use
|
|
206
|
+
* @param caseSensitive - whether matching is case sensitive
|
|
207
|
+
* @returns true if the condition is met
|
|
208
|
+
*/
|
|
209
|
+
hasWebdaObject(section: Section, name: string): boolean;
|
|
210
|
+
/**
|
|
211
|
+
* Return true if `model` is the one that wins when consumers look up the
|
|
212
|
+
* short name in the current namespace. Used by transports (REST, GraphQL,
|
|
213
|
+
* gRPC) so only one model gets exposed at a given URL / type when the app
|
|
214
|
+
* overrides a framework-provided class — e.g. WebdaSample/User shadowing
|
|
215
|
+
* Webda/User at `/users`.
|
|
216
|
+
*
|
|
217
|
+
* A model is "final" when either:
|
|
218
|
+
* - it is the one resolved by `completeNamespace(shortName)`, or
|
|
219
|
+
* - no other model exists with the same short name in the current namespace.
|
|
220
|
+
* @param model - the fully-qualified model identifier (e.g. "Webda/User")
|
|
221
|
+
* @returns true when `model` should be treated as the canonical version
|
|
222
|
+
*/
|
|
223
|
+
isFinalModel(model: string): boolean;
|
|
224
|
+
/**
|
|
225
|
+
*
|
|
226
|
+
* @param section - the section name
|
|
227
|
+
* @param name - the name to use
|
|
228
|
+
* @returns the result
|
|
229
|
+
*/
|
|
230
|
+
getWebdaObject(section: Section, name: string): any;
|
|
231
|
+
/**
|
|
232
|
+
* Get a service based on name
|
|
233
|
+
*
|
|
234
|
+
* @param name - the name to use
|
|
235
|
+
* @returns the result
|
|
236
|
+
*/
|
|
237
|
+
getModda(name: string): Modda;
|
|
238
|
+
/**
|
|
239
|
+
* Return all services of the application
|
|
240
|
+
* @returns the result
|
|
241
|
+
*/
|
|
242
|
+
getModdas(): {
|
|
243
|
+
[key: string]: Modda;
|
|
244
|
+
};
|
|
245
|
+
/**
|
|
246
|
+
* Retrieve the model implementation
|
|
247
|
+
*
|
|
248
|
+
* @param name model to retrieve
|
|
249
|
+
* @returns the result
|
|
250
|
+
*/
|
|
251
|
+
getModel<T extends Model = Model>(name: string): ModelDefinition<T>;
|
|
252
|
+
/**
|
|
253
|
+
* Get all models definitions
|
|
254
|
+
* @returns the result
|
|
255
|
+
*/
|
|
256
|
+
getModels(): {
|
|
257
|
+
[key: string]: ModelDefinition<any>;
|
|
258
|
+
};
|
|
259
|
+
/**
|
|
260
|
+
* Return the metadata blob (Identifier, Actions, etc.) for a Behavior
|
|
261
|
+
* loaded from `webda.module.json`.
|
|
262
|
+
*
|
|
263
|
+
* @param identifier - fully qualified Behavior id (e.g. `Webda/MFA`)
|
|
264
|
+
* @returns the metadata, or undefined if no Behavior with that id is registered
|
|
265
|
+
*/
|
|
266
|
+
getBehaviorMetadata(identifier: string): BehaviorMetadata | undefined;
|
|
267
|
+
/**
|
|
268
|
+
* Return all loaded Behaviors keyed by identifier.
|
|
269
|
+
*
|
|
270
|
+
* Each entry exposes the original metadata blob emitted by the compiler.
|
|
271
|
+
* @returns the result
|
|
272
|
+
*/
|
|
273
|
+
getBehaviors(): {
|
|
274
|
+
[key: string]: {
|
|
275
|
+
metadata: BehaviorMetadata;
|
|
276
|
+
};
|
|
277
|
+
};
|
|
278
|
+
/**
|
|
279
|
+
* Return the model name for a object
|
|
280
|
+
* @param object - the target object
|
|
281
|
+
* @returns the result
|
|
282
|
+
*/
|
|
283
|
+
getModelFromInstance(object: Storable): string | undefined;
|
|
284
|
+
/**
|
|
285
|
+
* Return the model name for a object
|
|
286
|
+
* @param object - the target object
|
|
287
|
+
* @param model - the model to use
|
|
288
|
+
* @returns the result
|
|
289
|
+
*/
|
|
290
|
+
getModelFromConstructor(model: ModelClass): string | undefined;
|
|
291
|
+
/**
|
|
292
|
+
* Get the model name from a model or a constructor
|
|
293
|
+
*
|
|
294
|
+
* @param model - the model to use
|
|
295
|
+
* @paramn full if true always include the namespace, default is false e.g Webda/
|
|
296
|
+
* @returns longId for a model
|
|
297
|
+
*/
|
|
298
|
+
getModelId(model: ModelClass | Storable): string | undefined;
|
|
299
|
+
/**
|
|
300
|
+
* Return all deployers
|
|
301
|
+
* @returns the result
|
|
302
|
+
*/
|
|
303
|
+
getDeployers(): {
|
|
304
|
+
[key: string]: Modda;
|
|
305
|
+
};
|
|
306
|
+
/**
|
|
307
|
+
* Add a new model
|
|
308
|
+
*
|
|
309
|
+
* @param name - the name to use
|
|
310
|
+
* @param model - the model to use
|
|
311
|
+
* @param dynamic class is dynamic so recompute the hierarchy
|
|
312
|
+
* @param metadata - the model metadata
|
|
313
|
+
* @returns this for chaining
|
|
314
|
+
*/
|
|
315
|
+
addModel(name: string, model: any, metadata?: ModelMetadata): this;
|
|
316
|
+
/**
|
|
317
|
+
*
|
|
318
|
+
* @param this - the constructor
|
|
319
|
+
* @param json - the JSON data
|
|
320
|
+
* @returns the result
|
|
321
|
+
*/
|
|
322
|
+
static deserialize<T extends Application>(this: new (...args: any[]) => T, json: any): T;
|
|
323
|
+
/**
|
|
324
|
+
* Serialize the application state to a plain object
|
|
325
|
+
* @returns the result
|
|
326
|
+
*/
|
|
327
|
+
toJSON(): {
|
|
328
|
+
baseConfiguration: Configuration;
|
|
329
|
+
currentDeployment: string;
|
|
330
|
+
appModule: WebdaModule;
|
|
331
|
+
};
|
|
332
|
+
/**
|
|
333
|
+
* Return webda current version
|
|
334
|
+
*
|
|
335
|
+
* @returns package version
|
|
336
|
+
* @since 0.4.0
|
|
337
|
+
*/
|
|
338
|
+
getWebdaVersion(): string;
|
|
339
|
+
/**
|
|
340
|
+
* Retrieve Git Repository information
|
|
341
|
+
*
|
|
342
|
+
* {@link GitInformation} for more details on how the information is gathered
|
|
343
|
+
* @return the git information
|
|
344
|
+
* @param _packageName - the package name
|
|
345
|
+
* @param _version - the version string
|
|
346
|
+
* @returns the result
|
|
347
|
+
*/
|
|
348
|
+
getGitInformation(_packageName?: string, _version?: string): GitInformation;
|
|
349
|
+
/**
|
|
350
|
+
* Retrieve the project information
|
|
351
|
+
* @returns the result
|
|
352
|
+
*/
|
|
353
|
+
getProjectInfo(): ProjectInformation | undefined;
|
|
354
|
+
/**
|
|
355
|
+
* Get current deployment name
|
|
356
|
+
* @returns the result string
|
|
357
|
+
*/
|
|
358
|
+
getCurrentDeployment(): string;
|
|
359
|
+
/**
|
|
360
|
+
* Return all application modules merged as one
|
|
361
|
+
*
|
|
362
|
+
* Used when deployed
|
|
363
|
+
* @returns the result
|
|
364
|
+
*/
|
|
365
|
+
getModules(): CachedModule;
|
|
366
|
+
/**
|
|
367
|
+
* Get application configuration
|
|
368
|
+
* @param _deployment - the deployment name
|
|
369
|
+
* @returns the result
|
|
370
|
+
*/
|
|
371
|
+
getConfiguration(_deployment?: string): Configuration;
|
|
372
|
+
/**
|
|
373
|
+
* Return current Configuration of the Application
|
|
374
|
+
*
|
|
375
|
+
* Same as calling
|
|
376
|
+
*
|
|
377
|
+
* ```js
|
|
378
|
+
* getConfiguration(this.currentDeployment);
|
|
379
|
+
* ```
|
|
380
|
+
* @returns the result
|
|
381
|
+
*/
|
|
382
|
+
getCurrentConfiguration(): Configuration;
|
|
383
|
+
/**
|
|
384
|
+
* Import a file
|
|
385
|
+
*
|
|
386
|
+
* If the `default` is set take this or use old format
|
|
387
|
+
*
|
|
388
|
+
* @param info - the information object
|
|
389
|
+
* @param withExport - whether to include exports
|
|
390
|
+
* @returns the result
|
|
391
|
+
*/
|
|
392
|
+
protected importFile(info: string, withExport?: boolean): Promise<any>;
|
|
393
|
+
/**
|
|
394
|
+
* Load local module
|
|
395
|
+
*/
|
|
396
|
+
loadLocalModule(): Promise<void>;
|
|
397
|
+
/**
|
|
398
|
+
* Get implementations of a class
|
|
399
|
+
* @param object - the target object
|
|
400
|
+
* @returns the result
|
|
401
|
+
*/
|
|
402
|
+
getImplementations<T extends Service>(object: T): {
|
|
403
|
+
[key: string]: Modda<T>;
|
|
404
|
+
};
|
|
405
|
+
/**
|
|
406
|
+
* Load the module,
|
|
407
|
+
*
|
|
408
|
+
* @protected
|
|
409
|
+
* @ignore Useless for documentation
|
|
410
|
+
*/
|
|
411
|
+
loadModule(module: WebdaModule, parent?: string): Promise<void>;
|
|
412
|
+
/**
|
|
413
|
+
* Set object Metadata
|
|
414
|
+
* Need to be done after all models are loaded to resolve Ancestors and Subclasses
|
|
415
|
+
* @param info - the information object
|
|
416
|
+
*/
|
|
417
|
+
protected setModelMetadata(info: {
|
|
418
|
+
[key: string]: ModelMetadata;
|
|
419
|
+
}): void;
|
|
420
|
+
/**
|
|
421
|
+
* Return the full name including namespace
|
|
422
|
+
*
|
|
423
|
+
* In Webda the ServiceType include namespace `Webda/Store` or `Webda/Test`
|
|
424
|
+
* This method will make sure the namespace is present, adding it if no '/'
|
|
425
|
+
* is found in the name
|
|
426
|
+
*
|
|
427
|
+
* @param name - the name to use
|
|
428
|
+
* @returns the result string
|
|
429
|
+
*/
|
|
430
|
+
completeNamespace(name?: string): string;
|
|
431
|
+
/**
|
|
432
|
+
* Return current namespace
|
|
433
|
+
* @returns the result string
|
|
434
|
+
*/
|
|
435
|
+
getNamespace(): string;
|
|
436
|
+
}
|
|
437
|
+
//# sourceMappingURL=application.d.ts.map
|