@webda/core 4.0.0-beta.2 → 4.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +252 -0
- package/lib/application/application.d.ts +468 -0
- package/lib/application/application.d.ts.map +1 -0
- package/lib/application/application.js +845 -0
- package/lib/application/application.js.map +1 -0
- package/lib/application/deployment.d.ts +93 -0
- package/lib/application/deployment.d.ts.map +1 -0
- package/lib/application/deployment.js +99 -0
- package/lib/application/deployment.js.map +1 -0
- package/lib/application/hooks.d.ts +34 -0
- package/lib/application/hooks.d.ts.map +1 -0
- package/lib/application/hooks.js +57 -0
- package/lib/application/hooks.js.map +1 -0
- package/lib/application/iapplication.d.ts +43 -0
- package/lib/application/iapplication.d.ts.map +1 -0
- package/lib/application/iapplication.js +2 -0
- package/lib/application/iapplication.js.map +1 -0
- package/lib/application/iconfiguration.d.ts +176 -0
- package/lib/application/iconfiguration.d.ts.map +1 -0
- package/lib/application/iconfiguration.js +8 -0
- package/lib/application/iconfiguration.js.map +1 -0
- package/lib/application/runner.d.ts +8 -0
- package/lib/application/runner.d.ts.map +1 -0
- package/lib/application/runner.js +26 -0
- package/lib/application/runner.js.map +1 -0
- package/lib/{unpackedapplication.d.ts → application/unpackedapplication.d.ts} +43 -23
- package/lib/application/unpackedapplication.d.ts.map +1 -0
- package/lib/application/unpackedapplication.js +500 -0
- package/lib/application/unpackedapplication.js.map +1 -0
- package/lib/bin/cli-phase.d.ts +28 -0
- package/lib/bin/cli-phase.d.ts.map +1 -0
- package/lib/bin/cli-phase.js +44 -0
- package/lib/bin/cli-phase.js.map +1 -0
- package/lib/bin/cli.d.ts +196 -0
- package/lib/bin/cli.d.ts.map +1 -0
- package/lib/bin/cli.js +934 -0
- package/lib/bin/cli.js.map +1 -0
- package/lib/bin/launcher.d.ts +3 -0
- package/lib/bin/launcher.d.ts.map +1 -0
- package/lib/bin/launcher.js +50 -0
- package/lib/bin/launcher.js.map +1 -0
- package/lib/cache/cache.d.ts +33 -0
- package/lib/cache/cache.d.ts.map +1 -0
- package/lib/cache/cache.js +8 -0
- package/lib/cache/cache.js.map +1 -0
- package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -58
- package/lib/configurations/configuration.service.d.ts.map +1 -0
- package/lib/configurations/configuration.service.js +248 -0
- package/lib/configurations/configuration.service.js.map +1 -0
- package/lib/configurations/fileconfiguration.service.d.ts +30 -0
- package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
- package/lib/configurations/fileconfiguration.service.js +65 -0
- package/lib/configurations/fileconfiguration.service.js.map +1 -0
- package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
- package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
- package/lib/configurations/kubernetesconfiguration.service.js +83 -0
- package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
- package/lib/contexts/execution.d.ts +33 -0
- package/lib/contexts/execution.d.ts.map +1 -0
- package/lib/contexts/execution.js +73 -0
- package/lib/contexts/execution.js.map +1 -0
- package/lib/contexts/globalcontext.d.ts +29 -0
- package/lib/contexts/globalcontext.d.ts.map +1 -0
- package/lib/contexts/globalcontext.js +38 -0
- package/lib/contexts/globalcontext.js.map +1 -0
- package/lib/{utils → contexts}/httpcontext.d.ts +44 -19
- package/lib/contexts/httpcontext.d.ts.map +1 -0
- package/lib/{utils → contexts}/httpcontext.js +95 -27
- package/lib/contexts/httpcontext.js.map +1 -0
- package/lib/contexts/icontext.d.ts +236 -0
- package/lib/contexts/icontext.d.ts.map +1 -0
- package/lib/contexts/icontext.js +230 -0
- package/lib/contexts/icontext.js.map +1 -0
- package/lib/contexts/operationcontext.d.ts +182 -0
- package/lib/contexts/operationcontext.d.ts.map +1 -0
- package/lib/contexts/operationcontext.js +361 -0
- package/lib/contexts/operationcontext.js.map +1 -0
- package/lib/contexts/simplecontext.d.ts +31 -0
- package/lib/contexts/simplecontext.d.ts.map +1 -0
- package/lib/contexts/simplecontext.js +45 -0
- package/lib/contexts/simplecontext.js.map +1 -0
- package/lib/contexts/webcontext.d.ts +218 -0
- package/lib/contexts/webcontext.d.ts.map +1 -0
- package/lib/contexts/webcontext.js +389 -0
- package/lib/contexts/webcontext.js.map +1 -0
- package/lib/core/authorizer.d.ts +23 -0
- package/lib/core/authorizer.d.ts.map +1 -0
- package/lib/core/authorizer.js +17 -0
- package/lib/core/authorizer.js.map +1 -0
- package/lib/core/core.d.ts +225 -0
- package/lib/core/core.d.ts.map +1 -0
- package/lib/core/core.js +576 -0
- package/lib/core/core.js.map +1 -0
- package/lib/core/hooks.d.ts +94 -0
- package/lib/core/hooks.d.ts.map +1 -0
- package/lib/core/hooks.js +97 -0
- package/lib/core/hooks.js.map +1 -0
- package/lib/core/icore.d.ts +249 -0
- package/lib/core/icore.d.ts.map +1 -0
- package/lib/core/icore.js +15 -0
- package/lib/core/icore.js.map +1 -0
- package/lib/core/instancestorage.d.ts +61 -0
- package/lib/core/instancestorage.d.ts.map +1 -0
- package/lib/core/instancestorage.js +75 -0
- package/lib/core/instancestorage.js.map +1 -0
- package/lib/core/operations.d.ts +181 -0
- package/lib/core/operations.d.ts.map +1 -0
- package/lib/core/operations.js +559 -0
- package/lib/core/operations.js.map +1 -0
- package/lib/deployers/deployer.d.ts +157 -0
- package/lib/deployers/deployer.d.ts.map +1 -0
- package/lib/deployers/deployer.js +81 -0
- package/lib/deployers/deployer.js.map +1 -0
- package/lib/deployers/git.d.ts +27 -0
- package/lib/deployers/git.d.ts.map +1 -0
- package/lib/deployers/git.js +66 -0
- package/lib/deployers/git.js.map +1 -0
- package/lib/deployers/packager.d.ts +85 -0
- package/lib/deployers/packager.d.ts.map +1 -0
- package/lib/deployers/packager.js +259 -0
- package/lib/deployers/packager.js.map +1 -0
- package/lib/errors/errors.d.ts +126 -0
- package/lib/errors/errors.d.ts.map +1 -0
- package/lib/errors/errors.js +165 -0
- package/lib/errors/errors.js.map +1 -0
- package/lib/events/asynceventemitter.d.ts +159 -0
- package/lib/events/asynceventemitter.d.ts.map +1 -0
- package/lib/events/asynceventemitter.js +152 -0
- package/lib/events/asynceventemitter.js.map +1 -0
- package/lib/events/events.d.ts +112 -0
- package/lib/events/events.d.ts.map +1 -0
- package/lib/events/events.js +45 -0
- package/lib/events/events.js.map +1 -0
- package/lib/index.d.ts +88 -54
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +88 -64
- package/lib/index.js.map +1 -1
- package/lib/loggers/console.service.d.ts +24 -0
- package/lib/loggers/console.service.d.ts.map +1 -0
- package/lib/loggers/console.service.js +30 -0
- package/lib/loggers/console.service.js.map +1 -0
- package/lib/loggers/file.service.d.ts +25 -0
- package/lib/loggers/file.service.d.ts.map +1 -0
- package/lib/loggers/file.service.js +33 -0
- package/lib/loggers/file.service.js.map +1 -0
- package/lib/loggers/hooks.d.ts +20 -0
- package/lib/loggers/hooks.d.ts.map +1 -0
- package/lib/loggers/hooks.js +40 -0
- package/lib/loggers/hooks.js.map +1 -0
- package/lib/loggers/ilogger.d.ts +76 -0
- package/lib/loggers/ilogger.d.ts.map +1 -0
- package/lib/loggers/ilogger.js +108 -0
- package/lib/loggers/ilogger.js.map +1 -0
- package/lib/loggers/logger.d.ts +13 -0
- package/lib/loggers/logger.d.ts.map +1 -0
- package/lib/loggers/logger.js +18 -0
- package/lib/loggers/logger.js.map +1 -0
- package/lib/loggers/memory.service.d.ts +18 -0
- package/lib/loggers/memory.service.d.ts.map +1 -0
- package/lib/loggers/memory.service.js +21 -0
- package/lib/loggers/memory.service.js.map +1 -0
- package/lib/loggers/params.d.ts +47 -0
- package/lib/loggers/params.d.ts.map +1 -0
- package/lib/loggers/params.js +56 -0
- package/lib/loggers/params.js.map +1 -0
- package/lib/metrics/metrics.d.ts +25 -0
- package/lib/metrics/metrics.d.ts.map +1 -0
- package/lib/metrics/metrics.js +51 -0
- package/lib/metrics/metrics.js.map +1 -0
- package/lib/models/aclmodel.d.ts +20 -76
- package/lib/models/aclmodel.d.ts.map +1 -1
- package/lib/models/aclmodel.js +27 -203
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/coremodel.model.d.ts +5 -0
- package/lib/models/coremodel.model.d.ts.map +1 -0
- package/lib/models/coremodel.model.js +5 -0
- package/lib/models/coremodel.model.js.map +1 -0
- package/lib/models/decorator.d.ts +67 -0
- package/lib/models/decorator.d.ts.map +1 -0
- package/lib/models/decorator.js +67 -0
- package/lib/models/decorator.js.map +1 -0
- package/lib/models/deployment.d.ts +2 -21
- package/lib/models/deployment.d.ts.map +1 -1
- package/lib/models/encrypted.model.d.ts +46 -0
- package/lib/models/encrypted.model.d.ts.map +1 -0
- package/lib/models/encrypted.model.js +87 -0
- package/lib/models/encrypted.model.js.map +1 -0
- package/lib/models/ident.model.d.ts +128 -0
- package/lib/models/ident.model.d.ts.map +1 -0
- package/lib/models/ident.model.js +207 -0
- package/lib/models/ident.model.js.map +1 -0
- package/lib/models/ownermodel.model.d.ts +68 -0
- package/lib/models/ownermodel.model.d.ts.map +1 -0
- package/lib/models/ownermodel.model.js +113 -0
- package/lib/models/ownermodel.model.js.map +1 -0
- package/lib/models/password.model.d.ts +78 -0
- package/lib/models/password.model.d.ts.map +1 -0
- package/lib/models/password.model.js +171 -0
- package/lib/models/password.model.js.map +1 -0
- package/lib/models/refreshtoken.model.d.ts +30 -0
- package/lib/models/refreshtoken.model.d.ts.map +1 -0
- package/lib/models/refreshtoken.model.js +29 -0
- package/lib/models/refreshtoken.model.js.map +1 -0
- package/lib/models/registry.model.d.ts +76 -0
- package/lib/models/registry.model.d.ts.map +1 -0
- package/lib/models/registry.model.js +104 -0
- package/lib/models/registry.model.js.map +1 -0
- package/lib/models/rolemodel.model.d.ts +28 -0
- package/lib/models/rolemodel.model.d.ts.map +1 -0
- package/lib/models/{rolemodel.js → rolemodel.model.js} +23 -5
- package/lib/models/rolemodel.model.js.map +1 -0
- package/lib/models/simpleuser.model.d.ts +78 -0
- package/lib/models/simpleuser.model.d.ts.map +1 -0
- package/lib/models/simpleuser.model.js +124 -0
- package/lib/models/simpleuser.model.js.map +1 -0
- package/lib/models/types.d.ts +113 -0
- package/lib/models/types.d.ts.map +1 -0
- package/lib/models/types.js +2 -0
- package/lib/models/types.js.map +1 -0
- package/lib/models/user.model.d.ts +103 -0
- package/lib/models/user.model.d.ts.map +1 -0
- package/lib/models/user.model.js +164 -0
- package/lib/models/user.model.js.map +1 -0
- package/lib/queues/{memoryqueue.d.ts → memoryqueue.service.d.ts} +26 -13
- package/lib/queues/memoryqueue.service.d.ts.map +1 -0
- package/lib/queues/{memoryqueue.js → memoryqueue.service.js} +55 -31
- package/lib/queues/memoryqueue.service.js.map +1 -0
- package/lib/queues/pubsubservice.d.ts +8 -6
- package/lib/queues/pubsubservice.d.ts.map +1 -1
- package/lib/queues/pubsubservice.js +5 -4
- package/lib/queues/pubsubservice.js.map +1 -1
- package/lib/queues/queueservice.d.ts +9 -11
- package/lib/queues/queueservice.d.ts.map +1 -1
- package/lib/queues/queueservice.js +41 -13
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/rest/hooks.d.ts +8 -0
- package/lib/rest/hooks.d.ts.map +1 -0
- package/lib/rest/hooks.js +10 -0
- package/lib/rest/hooks.js.map +1 -0
- package/lib/rest/irest.d.ts +212 -0
- package/lib/rest/irest.d.ts.map +1 -0
- package/lib/rest/irest.js +39 -0
- package/lib/rest/irest.js.map +1 -0
- package/lib/rest/originfilter.d.ts +38 -0
- package/lib/rest/originfilter.d.ts.map +1 -0
- package/lib/rest/originfilter.js +61 -0
- package/lib/rest/originfilter.js.map +1 -0
- package/lib/rest/restoperationstransport.service.d.ts +193 -0
- package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
- package/lib/rest/restoperationstransport.service.js +780 -0
- package/lib/rest/restoperationstransport.service.js.map +1 -0
- package/lib/rest/router.service.d.ts +244 -0
- package/lib/rest/router.service.d.ts.map +1 -0
- package/lib/rest/router.service.js +843 -0
- package/lib/rest/router.service.js.map +1 -0
- package/lib/schemas/hooks.d.ts +48 -0
- package/lib/schemas/hooks.d.ts.map +1 -0
- package/lib/schemas/hooks.js +152 -0
- package/lib/schemas/hooks.js.map +1 -0
- package/lib/services/audit.model.d.ts +208 -0
- package/lib/services/audit.model.d.ts.map +1 -0
- package/lib/services/audit.model.js +432 -0
- package/lib/services/audit.model.js.map +1 -0
- package/lib/services/binary.service.d.ts +808 -0
- package/lib/services/binary.service.d.ts.map +1 -0
- package/lib/services/binary.service.js +1365 -0
- package/lib/services/binary.service.js.map +1 -0
- package/lib/services/cloudbinary.d.ts +17 -12
- package/lib/services/cloudbinary.d.ts.map +1 -1
- package/lib/services/cloudbinary.js +23 -17
- package/lib/services/cloudbinary.js.map +1 -1
- package/lib/services/command.d.ts +118 -0
- package/lib/services/command.d.ts.map +1 -0
- package/lib/services/command.js +97 -0
- package/lib/services/command.js.map +1 -0
- package/lib/services/cron.service.d.ts +142 -0
- package/lib/services/cron.service.d.ts.map +1 -0
- package/lib/services/cron.service.js +291 -0
- package/lib/services/cron.service.js.map +1 -0
- package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +75 -141
- package/lib/services/cryptoservice.service.d.ts.map +1 -0
- package/lib/services/cryptoservice.service.js +527 -0
- package/lib/services/cryptoservice.service.js.map +1 -0
- package/lib/services/debugmailer.service.d.ts +49 -0
- package/lib/services/debugmailer.service.d.ts.map +1 -0
- package/lib/services/{debugmailer.js → debugmailer.service.js} +25 -10
- package/lib/services/debugmailer.service.js.map +1 -0
- package/lib/services/domainservice.service.d.ts +242 -0
- package/lib/services/domainservice.service.d.ts.map +1 -0
- package/lib/services/domainservice.service.js +676 -0
- package/lib/services/domainservice.service.js.map +1 -0
- package/lib/services/httpserver.service.d.ts +248 -0
- package/lib/services/httpserver.service.d.ts.map +1 -0
- package/lib/services/httpserver.service.js +673 -0
- package/lib/services/httpserver.service.js.map +1 -0
- package/lib/services/iauthentication.d.ts +202 -0
- package/lib/services/iauthentication.d.ts.map +1 -0
- package/lib/services/iauthentication.js +2 -0
- package/lib/services/iauthentication.js.map +1 -0
- package/lib/services/icryptoservice.d.ts +127 -0
- package/lib/services/icryptoservice.d.ts.map +1 -0
- package/lib/services/icryptoservice.js +68 -0
- package/lib/services/icryptoservice.js.map +1 -0
- package/lib/services/imailer.d.ts +17 -0
- package/lib/services/imailer.d.ts.map +1 -0
- package/lib/services/imailer.js +2 -0
- package/lib/services/imailer.js.map +1 -0
- package/lib/services/iservice.d.ts +104 -0
- package/lib/services/iservice.d.ts.map +1 -0
- package/lib/services/iservice.js +63 -0
- package/lib/services/iservice.js.map +1 -0
- package/lib/services/mailer.service.d.ts +220 -0
- package/lib/services/mailer.service.d.ts.map +1 -0
- package/lib/services/mailer.service.js +251 -0
- package/lib/services/mailer.service.js.map +1 -0
- package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -11
- package/lib/services/notificationservice.service.d.ts.map +1 -0
- package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
- package/lib/services/notificationservice.service.js.map +1 -0
- package/lib/services/operationstransport.d.ts +65 -0
- package/lib/services/operationstransport.d.ts.map +1 -0
- package/lib/services/operationstransport.js +103 -0
- package/lib/services/operationstransport.js.map +1 -0
- package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -12
- package/lib/services/prometheus.service.d.ts.map +1 -0
- package/lib/services/prometheus.service.js +203 -0
- package/lib/services/prometheus.service.js.map +1 -0
- package/lib/services/{resource.d.ts → resource.service.d.ts} +34 -15
- package/lib/services/resource.service.d.ts.map +1 -0
- package/lib/services/resource.service.js +301 -0
- package/lib/services/resource.service.js.map +1 -0
- package/lib/services/service.d.ts +87 -188
- package/lib/services/service.d.ts.map +1 -1
- package/lib/services/service.js +407 -422
- package/lib/services/service.js.map +1 -1
- package/lib/services/servicecommands.d.ts +99 -0
- package/lib/services/servicecommands.d.ts.map +1 -0
- package/lib/services/servicecommands.js +171 -0
- package/lib/services/servicecommands.js.map +1 -0
- package/lib/services/serviceparameters.d.ts +33 -0
- package/lib/services/serviceparameters.d.ts.map +1 -0
- package/lib/services/serviceparameters.js +79 -0
- package/lib/services/serviceparameters.js.map +1 -0
- package/lib/services/token.service.d.ts +95 -0
- package/lib/services/token.service.d.ts.map +1 -0
- package/lib/services/token.service.js +182 -0
- package/lib/services/token.service.js.map +1 -0
- package/lib/{utils → session}/cookie.d.ts +32 -19
- package/lib/session/cookie.d.ts.map +1 -0
- package/lib/{utils → session}/cookie.js +76 -23
- package/lib/session/cookie.js.map +1 -0
- package/lib/session/manager.model.d.ts +87 -0
- package/lib/session/manager.model.d.ts.map +1 -0
- package/lib/session/manager.model.js +212 -0
- package/lib/session/manager.model.js.map +1 -0
- package/lib/session/session.d.ts +100 -0
- package/lib/session/session.d.ts.map +1 -0
- package/lib/session/session.js +175 -0
- package/lib/session/session.js.map +1 -0
- package/lib/stores/istore.d.ts +99 -0
- package/lib/stores/istore.d.ts.map +1 -0
- package/lib/stores/istore.js +26 -0
- package/lib/stores/istore.js.map +1 -0
- package/lib/stores/memory.service.d.ts +114 -0
- package/lib/stores/memory.service.d.ts.map +1 -0
- package/lib/stores/memory.service.js +344 -0
- package/lib/stores/memory.service.js.map +1 -0
- package/lib/stores/store.d.ts +126 -626
- package/lib/stores/store.d.ts.map +1 -1
- package/lib/stores/store.js +257 -1117
- package/lib/stores/store.js.map +1 -1
- package/lib/templates/templates.d.ts +47 -0
- package/lib/templates/templates.d.ts.map +1 -0
- package/lib/templates/templates.js +101 -0
- package/lib/templates/templates.js.map +1 -0
- package/lib/test/application.d.ts +174 -0
- package/lib/test/application.d.ts.map +1 -0
- package/lib/test/application.js +288 -0
- package/lib/test/application.js.map +1 -0
- package/lib/test/asyncstorage.d.ts +16 -0
- package/lib/test/asyncstorage.d.ts.map +1 -0
- package/lib/test/asyncstorage.js +32 -0
- package/lib/test/asyncstorage.js.map +1 -0
- package/lib/test/behavior-fixture.model.d.ts +30 -0
- package/lib/test/behavior-fixture.model.d.ts.map +1 -0
- package/lib/test/behavior-fixture.model.js +63 -0
- package/lib/test/behavior-fixture.model.js.map +1 -0
- package/lib/test/core.d.ts +63 -0
- package/lib/test/core.d.ts.map +1 -0
- package/lib/test/core.js +190 -0
- package/lib/test/core.js.map +1 -0
- package/lib/test/index.d.ts +7 -0
- package/lib/test/index.d.ts.map +1 -0
- package/lib/test/index.js +8 -0
- package/lib/test/index.js.map +1 -0
- package/lib/test/internal.d.ts +34 -0
- package/lib/test/internal.d.ts.map +1 -0
- package/lib/test/internal.js +156 -0
- package/lib/test/internal.js.map +1 -0
- package/lib/test/legacyident.fixture.model.d.ts +98 -0
- package/lib/test/legacyident.fixture.model.d.ts.map +1 -0
- package/lib/test/legacyident.fixture.model.js +125 -0
- package/lib/test/legacyident.fixture.model.js.map +1 -0
- package/lib/test/objects.d.ts +318 -0
- package/lib/test/objects.d.ts.map +1 -0
- package/lib/test/objects.js +443 -0
- package/lib/test/objects.js.map +1 -0
- package/lib/utils/abstractdeployer.d.ts +4 -2
- package/lib/utils/abstractdeployer.d.ts.map +1 -1
- package/lib/utils/abstractdeployer.js +3 -0
- package/lib/utils/abstractdeployer.js.map +1 -1
- package/package.json +102 -60
- package/test/cachedapp/webda.config.json +1 -5
- package/test/config-cached.json +3 -6
- package/test/config.json +3 -10
- package/test/my-cnf.json +9 -0
- package/webda.module.json +3755 -2496
- package/lib/application.d.ts +0 -888
- package/lib/application.d.ts.map +0 -1
- package/lib/application.js +0 -768
- package/lib/application.js.map +0 -1
- package/lib/application.spec.d.ts +0 -2
- package/lib/application.spec.d.ts.map +0 -1
- package/lib/application.spec.js +0 -248
- package/lib/application.spec.js.map +0 -1
- package/lib/core.d.ts +0 -743
- package/lib/core.d.ts.map +0 -1
- package/lib/core.js +0 -1334
- package/lib/core.js.map +0 -1
- package/lib/core.spec.d.ts +0 -2
- package/lib/core.spec.d.ts.map +0 -1
- package/lib/core.spec.js +0 -790
- package/lib/core.spec.js.map +0 -1
- package/lib/errors.d.ts +0 -64
- package/lib/errors.d.ts.map +0 -1
- package/lib/errors.js +0 -97
- package/lib/errors.js.map +0 -1
- package/lib/errors.spec.d.ts +0 -2
- package/lib/errors.spec.d.ts.map +0 -1
- package/lib/errors.spec.js +0 -33
- package/lib/errors.spec.js.map +0 -1
- package/lib/models/aclmodel.spec.d.ts +0 -2
- package/lib/models/aclmodel.spec.d.ts.map +0 -1
- package/lib/models/aclmodel.spec.js +0 -187
- package/lib/models/aclmodel.spec.js.map +0 -1
- package/lib/models/coremodel.d.ts +0 -896
- package/lib/models/coremodel.d.ts.map +0 -1
- package/lib/models/coremodel.js +0 -1214
- package/lib/models/coremodel.js.map +0 -1
- package/lib/models/coremodel.spec.d.ts +0 -2
- package/lib/models/coremodel.spec.d.ts.map +0 -1
- package/lib/models/coremodel.spec.js +0 -464
- package/lib/models/coremodel.spec.js.map +0 -1
- package/lib/models/ident.d.ts +0 -68
- package/lib/models/ident.d.ts.map +0 -1
- package/lib/models/ident.js +0 -26
- package/lib/models/ident.js.map +0 -1
- package/lib/models/ident.spec.d.ts +0 -2
- package/lib/models/ident.spec.d.ts.map +0 -1
- package/lib/models/ident.spec.js +0 -24
- package/lib/models/ident.spec.js.map +0 -1
- package/lib/models/ownermodel.d.ts +0 -51
- package/lib/models/ownermodel.d.ts.map +0 -1
- package/lib/models/ownermodel.js +0 -65
- package/lib/models/ownermodel.js.map +0 -1
- package/lib/models/ownermodel.spec.d.ts +0 -2
- package/lib/models/ownermodel.spec.d.ts.map +0 -1
- package/lib/models/ownermodel.spec.js +0 -215
- package/lib/models/ownermodel.spec.js.map +0 -1
- package/lib/models/relations.d.ts +0 -182
- package/lib/models/relations.d.ts.map +0 -1
- package/lib/models/relations.js +0 -157
- package/lib/models/relations.js.map +0 -1
- package/lib/models/relations.spec.d.ts +0 -14
- package/lib/models/relations.spec.d.ts.map +0 -1
- package/lib/models/relations.spec.js +0 -217
- package/lib/models/relations.spec.js.map +0 -1
- package/lib/models/rolemodel.d.ts +0 -11
- package/lib/models/rolemodel.d.ts.map +0 -1
- package/lib/models/rolemodel.js.map +0 -1
- package/lib/models/rolemodel.spec.d.ts +0 -2
- package/lib/models/rolemodel.spec.d.ts.map +0 -1
- package/lib/models/rolemodel.spec.js +0 -90
- package/lib/models/rolemodel.spec.js.map +0 -1
- package/lib/models/simpleuser.d.ts +0 -47
- package/lib/models/simpleuser.d.ts.map +0 -1
- package/lib/models/simpleuser.js +0 -84
- package/lib/models/simpleuser.js.map +0 -1
- package/lib/models/test.d.ts +0 -11
- package/lib/models/test.d.ts.map +0 -1
- package/lib/models/test.js +0 -7
- package/lib/models/test.js.map +0 -1
- package/lib/models/user.d.ts +0 -67
- package/lib/models/user.d.ts.map +0 -1
- package/lib/models/user.js +0 -86
- package/lib/models/user.js.map +0 -1
- package/lib/models/user.spec.d.ts +0 -2
- package/lib/models/user.spec.d.ts.map +0 -1
- package/lib/models/user.spec.js +0 -89
- package/lib/models/user.spec.js.map +0 -1
- package/lib/queues/filequeue.d.ts +0 -59
- package/lib/queues/filequeue.d.ts.map +0 -1
- package/lib/queues/filequeue.js +0 -131
- package/lib/queues/filequeue.js.map +0 -1
- package/lib/queues/filequeue.spec.d.ts +0 -2
- package/lib/queues/filequeue.spec.d.ts.map +0 -1
- package/lib/queues/filequeue.spec.js +0 -84
- package/lib/queues/filequeue.spec.js.map +0 -1
- package/lib/queues/memoryqueue.d.ts.map +0 -1
- package/lib/queues/memoryqueue.js.map +0 -1
- package/lib/queues/memoryqueue.spec.d.ts +0 -2
- package/lib/queues/memoryqueue.spec.d.ts.map +0 -1
- package/lib/queues/memoryqueue.spec.js +0 -203
- package/lib/queues/memoryqueue.spec.js.map +0 -1
- package/lib/queues/queue.spec.d.ts +0 -6
- package/lib/queues/queue.spec.d.ts.map +0 -1
- package/lib/queues/queue.spec.js +0 -55
- package/lib/queues/queue.spec.js.map +0 -1
- package/lib/rest/restdomainservice.d.ts +0 -63
- package/lib/rest/restdomainservice.d.ts.map +0 -1
- package/lib/rest/restdomainservice.js +0 -687
- package/lib/rest/restdomainservice.js.map +0 -1
- package/lib/rest/restdomainservice.spec.d.ts +0 -2
- package/lib/rest/restdomainservice.spec.d.ts.map +0 -1
- package/lib/rest/restdomainservice.spec.js +0 -124
- package/lib/rest/restdomainservice.spec.js.map +0 -1
- package/lib/rest/router.d.ts +0 -174
- package/lib/rest/router.d.ts.map +0 -1
- package/lib/rest/router.js +0 -429
- package/lib/rest/router.js.map +0 -1
- package/lib/rest/router.spec.d.ts +0 -2
- package/lib/rest/router.spec.d.ts.map +0 -1
- package/lib/rest/router.spec.js +0 -255
- package/lib/rest/router.spec.js.map +0 -1
- package/lib/services/asyncevents.d.ts +0 -152
- package/lib/services/asyncevents.d.ts.map +0 -1
- package/lib/services/asyncevents.js +0 -217
- package/lib/services/asyncevents.js.map +0 -1
- package/lib/services/asyncevents.spec.d.ts +0 -2
- package/lib/services/asyncevents.spec.d.ts.map +0 -1
- package/lib/services/asyncevents.spec.js +0 -118
- package/lib/services/asyncevents.spec.js.map +0 -1
- package/lib/services/authentication.d.ts +0 -361
- package/lib/services/authentication.d.ts.map +0 -1
- package/lib/services/authentication.js +0 -773
- package/lib/services/authentication.js.map +0 -1
- package/lib/services/authentication.spec.d.ts +0 -2
- package/lib/services/authentication.spec.d.ts.map +0 -1
- package/lib/services/authentication.spec.js +0 -458
- package/lib/services/authentication.spec.js.map +0 -1
- package/lib/services/binary.d.ts +0 -477
- package/lib/services/binary.d.ts.map +0 -1
- package/lib/services/binary.js +0 -617
- package/lib/services/binary.js.map +0 -1
- package/lib/services/binary.spec.d.ts +0 -41
- package/lib/services/binary.spec.d.ts.map +0 -1
- package/lib/services/binary.spec.js +0 -151
- package/lib/services/binary.spec.js.map +0 -1
- package/lib/services/cloudbinary.spec.d.ts +0 -6
- package/lib/services/cloudbinary.spec.d.ts.map +0 -1
- package/lib/services/cloudbinary.spec.js +0 -66
- package/lib/services/cloudbinary.spec.js.map +0 -1
- package/lib/services/configuration.d.ts.map +0 -1
- package/lib/services/configuration.js +0 -193
- package/lib/services/configuration.js.map +0 -1
- package/lib/services/configuration.spec.d.ts +0 -2
- package/lib/services/configuration.spec.d.ts.map +0 -1
- package/lib/services/configuration.spec.js +0 -130
- package/lib/services/configuration.spec.js.map +0 -1
- package/lib/services/cron.d.ts +0 -74
- package/lib/services/cron.d.ts.map +0 -1
- package/lib/services/cron.js +0 -141
- package/lib/services/cron.js.map +0 -1
- package/lib/services/cron.spec.d.ts +0 -2
- package/lib/services/cron.spec.d.ts.map +0 -1
- package/lib/services/cron.spec.js +0 -76
- package/lib/services/cron.spec.js.map +0 -1
- package/lib/services/cryptoservice.d.ts.map +0 -1
- package/lib/services/cryptoservice.js +0 -433
- package/lib/services/cryptoservice.js.map +0 -1
- package/lib/services/cryptoservice.spec.d.ts +0 -2
- package/lib/services/cryptoservice.spec.d.ts.map +0 -1
- package/lib/services/cryptoservice.spec.js +0 -177
- package/lib/services/cryptoservice.spec.js.map +0 -1
- package/lib/services/debugmailer.d.ts +0 -36
- package/lib/services/debugmailer.d.ts.map +0 -1
- package/lib/services/debugmailer.js.map +0 -1
- package/lib/services/debugmailer.spec.d.ts +0 -2
- package/lib/services/debugmailer.spec.d.ts.map +0 -1
- package/lib/services/debugmailer.spec.js +0 -32
- package/lib/services/debugmailer.spec.js.map +0 -1
- package/lib/services/domainservice.d.ts +0 -272
- package/lib/services/domainservice.d.ts.map +0 -1
- package/lib/services/domainservice.js +0 -651
- package/lib/services/domainservice.js.map +0 -1
- package/lib/services/domainservice.spec.d.ts +0 -2
- package/lib/services/domainservice.spec.d.ts.map +0 -1
- package/lib/services/domainservice.spec.js +0 -592
- package/lib/services/domainservice.spec.js.map +0 -1
- package/lib/services/filebinary.d.ts +0 -136
- package/lib/services/filebinary.d.ts.map +0 -1
- package/lib/services/filebinary.js +0 -373
- package/lib/services/filebinary.js.map +0 -1
- package/lib/services/filebinary.spec.d.ts +0 -25
- package/lib/services/filebinary.spec.d.ts.map +0 -1
- package/lib/services/filebinary.spec.js +0 -428
- package/lib/services/filebinary.spec.js.map +0 -1
- package/lib/services/fileconfiguration.d.ts +0 -23
- package/lib/services/fileconfiguration.d.ts.map +0 -1
- package/lib/services/fileconfiguration.js +0 -48
- package/lib/services/fileconfiguration.js.map +0 -1
- package/lib/services/fileconfiguration.spec.d.ts +0 -2
- package/lib/services/fileconfiguration.spec.d.ts.map +0 -1
- package/lib/services/fileconfiguration.spec.js +0 -215
- package/lib/services/fileconfiguration.spec.js.map +0 -1
- package/lib/services/invitationservice.d.ts +0 -223
- package/lib/services/invitationservice.d.ts.map +0 -1
- package/lib/services/invitationservice.js +0 -529
- package/lib/services/invitationservice.js.map +0 -1
- package/lib/services/invitationservice.spec.d.ts +0 -2
- package/lib/services/invitationservice.spec.d.ts.map +0 -1
- package/lib/services/invitationservice.spec.js +0 -567
- package/lib/services/invitationservice.spec.js.map +0 -1
- package/lib/services/kubernetesconfiguration.d.ts +0 -27
- package/lib/services/kubernetesconfiguration.d.ts.map +0 -1
- package/lib/services/kubernetesconfiguration.js +0 -52
- package/lib/services/kubernetesconfiguration.js.map +0 -1
- package/lib/services/kubernetesconfiguration.spec.d.ts +0 -2
- package/lib/services/kubernetesconfiguration.spec.d.ts.map +0 -1
- package/lib/services/kubernetesconfiguration.spec.js +0 -206
- package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
- package/lib/services/mailer.d.ts +0 -166
- package/lib/services/mailer.d.ts.map +0 -1
- package/lib/services/mailer.js +0 -176
- package/lib/services/mailer.js.map +0 -1
- package/lib/services/mailer.spec.d.ts +0 -2
- package/lib/services/mailer.spec.d.ts.map +0 -1
- package/lib/services/mailer.spec.js +0 -158
- package/lib/services/mailer.spec.js.map +0 -1
- package/lib/services/notificationservice.d.ts.map +0 -1
- package/lib/services/notificationservice.js.map +0 -1
- package/lib/services/notificationservice.spec.d.ts +0 -2
- package/lib/services/notificationservice.spec.d.ts.map +0 -1
- package/lib/services/notificationservice.spec.js +0 -83
- package/lib/services/notificationservice.spec.js.map +0 -1
- package/lib/services/oauth.d.ts +0 -226
- package/lib/services/oauth.d.ts.map +0 -1
- package/lib/services/oauth.js +0 -294
- package/lib/services/oauth.js.map +0 -1
- package/lib/services/oauth.spec.d.ts +0 -2
- package/lib/services/oauth.spec.d.ts.map +0 -1
- package/lib/services/oauth.spec.js +0 -208
- package/lib/services/oauth.spec.js.map +0 -1
- package/lib/services/prometheus.d.ts.map +0 -1
- package/lib/services/prometheus.js +0 -160
- package/lib/services/prometheus.js.map +0 -1
- package/lib/services/prometheus.spec.d.ts +0 -2
- package/lib/services/prometheus.spec.d.ts.map +0 -1
- package/lib/services/prometheus.spec.js +0 -76
- package/lib/services/prometheus.spec.js.map +0 -1
- package/lib/services/resource.d.ts.map +0 -1
- package/lib/services/resource.js +0 -170
- package/lib/services/resource.js.map +0 -1
- package/lib/services/resource.spec.d.ts +0 -2
- package/lib/services/resource.spec.d.ts.map +0 -1
- package/lib/services/resource.spec.js +0 -140
- package/lib/services/resource.spec.js.map +0 -1
- package/lib/services/service.spec.d.ts +0 -2
- package/lib/services/service.spec.d.ts.map +0 -1
- package/lib/services/service.spec.js +0 -286
- package/lib/services/service.spec.js.map +0 -1
- package/lib/stores/aggregator.d.ts +0 -48
- package/lib/stores/aggregator.d.ts.map +0 -1
- package/lib/stores/aggregator.js +0 -80
- package/lib/stores/aggregator.js.map +0 -1
- package/lib/stores/file.d.ts +0 -108
- package/lib/stores/file.d.ts.map +0 -1
- package/lib/stores/file.js +0 -188
- package/lib/stores/file.js.map +0 -1
- package/lib/stores/file.spec.d.ts +0 -13
- package/lib/stores/file.spec.d.ts.map +0 -1
- package/lib/stores/file.spec.js +0 -138
- package/lib/stores/file.spec.js.map +0 -1
- package/lib/stores/mapper.d.ts +0 -150
- package/lib/stores/mapper.d.ts.map +0 -1
- package/lib/stores/mapper.js +0 -293
- package/lib/stores/mapper.js.map +0 -1
- package/lib/stores/mapper.spec.d.ts +0 -2
- package/lib/stores/mapper.spec.d.ts.map +0 -1
- package/lib/stores/mapper.spec.js +0 -167
- package/lib/stores/mapper.spec.js.map +0 -1
- package/lib/stores/memory.d.ts +0 -152
- package/lib/stores/memory.d.ts.map +0 -1
- package/lib/stores/memory.js +0 -371
- package/lib/stores/memory.js.map +0 -1
- package/lib/stores/memory.spec.d.ts +0 -14
- package/lib/stores/memory.spec.d.ts.map +0 -1
- package/lib/stores/memory.spec.js +0 -263
- package/lib/stores/memory.spec.js.map +0 -1
- package/lib/stores/modelmapper.d.ts +0 -62
- package/lib/stores/modelmapper.d.ts.map +0 -1
- package/lib/stores/modelmapper.js +0 -197
- package/lib/stores/modelmapper.js.map +0 -1
- package/lib/stores/store.spec.d.ts +0 -57
- package/lib/stores/store.spec.d.ts.map +0 -1
- package/lib/stores/store.spec.js +0 -737
- package/lib/stores/store.spec.js.map +0 -1
- package/lib/test.d.ts +0 -265
- package/lib/test.d.ts.map +0 -1
- package/lib/test.js +0 -622
- package/lib/test.js.map +0 -1
- package/lib/unpackedapplication.d.ts.map +0 -1
- package/lib/unpackedapplication.js +0 -350
- package/lib/unpackedapplication.js.map +0 -1
- package/lib/utils/abstractdeployer.spec.d.ts +0 -2
- package/lib/utils/abstractdeployer.spec.d.ts.map +0 -1
- package/lib/utils/abstractdeployer.spec.js +0 -21
- package/lib/utils/abstractdeployer.spec.js.map +0 -1
- package/lib/utils/case.d.ts +0 -8
- package/lib/utils/case.d.ts.map +0 -1
- package/lib/utils/case.js +0 -43
- package/lib/utils/case.js.map +0 -1
- package/lib/utils/case.spec.d.ts +0 -2
- package/lib/utils/case.spec.d.ts.map +0 -1
- package/lib/utils/case.spec.js +0 -50
- package/lib/utils/case.spec.js.map +0 -1
- package/lib/utils/context.d.ts +0 -482
- package/lib/utils/context.d.ts.map +0 -1
- package/lib/utils/context.js +0 -739
- package/lib/utils/context.js.map +0 -1
- package/lib/utils/context.spec.d.ts +0 -10
- package/lib/utils/context.spec.d.ts.map +0 -1
- package/lib/utils/context.spec.js +0 -383
- package/lib/utils/context.spec.js.map +0 -1
- package/lib/utils/cookie.d.ts.map +0 -1
- package/lib/utils/cookie.js.map +0 -1
- package/lib/utils/cookie.spec.d.ts +0 -2
- package/lib/utils/cookie.spec.d.ts.map +0 -1
- package/lib/utils/cookie.spec.js +0 -88
- package/lib/utils/cookie.spec.js.map +0 -1
- package/lib/utils/esm.d.ts +0 -14
- package/lib/utils/esm.d.ts.map +0 -1
- package/lib/utils/esm.js +0 -19
- package/lib/utils/esm.js.map +0 -1
- package/lib/utils/httpcontext.d.ts.map +0 -1
- package/lib/utils/httpcontext.js.map +0 -1
- package/lib/utils/httpcontext.spec.d.ts +0 -5
- package/lib/utils/httpcontext.spec.d.ts.map +0 -1
- package/lib/utils/httpcontext.spec.js +0 -77
- package/lib/utils/httpcontext.spec.js.map +0 -1
- package/lib/utils/logger.d.ts +0 -92
- package/lib/utils/logger.d.ts.map +0 -1
- package/lib/utils/logger.js +0 -121
- package/lib/utils/logger.js.map +0 -1
- package/lib/utils/logger.spec.d.ts +0 -2
- package/lib/utils/logger.spec.d.ts.map +0 -1
- package/lib/utils/logger.spec.js +0 -48
- package/lib/utils/logger.spec.js.map +0 -1
- package/lib/utils/serializers.d.ts +0 -162
- package/lib/utils/serializers.d.ts.map +0 -1
- package/lib/utils/serializers.js +0 -420
- package/lib/utils/serializers.js.map +0 -1
- package/lib/utils/serializers.spec.d.ts +0 -2
- package/lib/utils/serializers.spec.d.ts.map +0 -1
- package/lib/utils/serializers.spec.js +0 -311
- package/lib/utils/serializers.spec.js.map +0 -1
- package/lib/utils/session.d.ts +0 -123
- package/lib/utils/session.d.ts.map +0 -1
- package/lib/utils/session.js +0 -156
- package/lib/utils/session.js.map +0 -1
- package/lib/utils/session.spec.d.ts +0 -2
- package/lib/utils/session.spec.d.ts.map +0 -1
- package/lib/utils/session.spec.js +0 -81
- package/lib/utils/session.spec.js.map +0 -1
- package/lib/utils/throttler.d.ts +0 -99
- package/lib/utils/throttler.d.ts.map +0 -1
- package/lib/utils/throttler.js +0 -160
- package/lib/utils/throttler.js.map +0 -1
- package/lib/utils/throttler.spec.d.ts +0 -2
- package/lib/utils/throttler.spec.d.ts.map +0 -1
- package/lib/utils/throttler.spec.js +0 -53
- package/lib/utils/throttler.spec.js.map +0 -1
- package/lib/utils/waiter.d.ts +0 -94
- package/lib/utils/waiter.d.ts.map +0 -1
- package/lib/utils/waiter.js +0 -148
- package/lib/utils/waiter.js.map +0 -1
- package/lib/utils/waiter.spec.d.ts +0 -2
- package/lib/utils/waiter.spec.d.ts.map +0 -1
- package/lib/utils/waiter.spec.js +0 -98
- package/lib/utils/waiter.spec.js.map +0 -1
- package/test/jsonutils/mdocs.yaml +0 -56
- package/test/jsonutils/test.json +0 -3
- package/test/jsonutils/test.yml +0 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/rest/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,iBAAiB,CAAS,QAAQ,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import type { JSONSchema7 } from "json-schema";
|
|
2
|
+
import type { OpenAPIV3 } from "openapi-types";
|
|
3
|
+
import { HttpMethodType } from "../contexts/httpcontext.js";
|
|
4
|
+
import { DeepPartial } from "@webda/tsc-esm";
|
|
5
|
+
import { IWebContext } from "../contexts/icontext.js";
|
|
6
|
+
import type { Repository } from "@webda/models";
|
|
7
|
+
/**
|
|
8
|
+
* Define overridable OpenAPI description
|
|
9
|
+
*/
|
|
10
|
+
export interface OpenAPIWebdaDefinition extends DeepPartial<OpenAPIV3.PathItemObject> {
|
|
11
|
+
/**
|
|
12
|
+
* Do not output for this specific Route
|
|
13
|
+
*
|
|
14
|
+
* It can still be output with --include-hidden, as it is needed to declare
|
|
15
|
+
* the route in API Gateway or any other internal documentation
|
|
16
|
+
*/
|
|
17
|
+
hidden?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* If defined will link to the model schema instead of a generic Object
|
|
20
|
+
*/
|
|
21
|
+
model?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Tags defined for all methods
|
|
24
|
+
*/
|
|
25
|
+
tags?: string[];
|
|
26
|
+
post?: OpenApiWebdaOperation;
|
|
27
|
+
put?: OpenApiWebdaOperation;
|
|
28
|
+
patch?: OpenApiWebdaOperation;
|
|
29
|
+
get?: OpenApiWebdaOperation;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Bind a class method to an HTTP route at the service's base URL.
|
|
33
|
+
*
|
|
34
|
+
* **Prefer `@Operation`.** Operations plug into REST, GraphQL, and gRPC with
|
|
35
|
+
* a single declaration and give you request/response schema generation for
|
|
36
|
+
* free. `@Route` is the escape hatch for endpoints that don't fit the
|
|
37
|
+
* operation model (static assets, JWKS, Accept-based content negotiation,
|
|
38
|
+
* server-sent events, manual streaming, etc.) — anything where you need raw
|
|
39
|
+
* access to `WebContext` and the operation abstraction would get in the way.
|
|
40
|
+
*
|
|
41
|
+
* Routes are read by `Router.discoverRoutes()` after service init and
|
|
42
|
+
* registered on the router with the same semantics as a manual
|
|
43
|
+
* `this.addRoute(...)` call. `route` is resolved relative to the service's
|
|
44
|
+
* `url` parameter when it starts with `.` (`".", "./me", "./email/{email}"`).
|
|
45
|
+
*
|
|
46
|
+
* @param route - URL pattern, e.g. `"."`, `"./me"`, `"./{id}/children"`
|
|
47
|
+
* @param methods - HTTP verb or list; defaults to `["GET"]`
|
|
48
|
+
* @param openapi - OpenAPI `PathItemObject` fragment for this method
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* class JwksService extends Service {
|
|
53
|
+
* // Raw route — JWKS content-type isn't a natural fit for @Operation
|
|
54
|
+
* @Route(".", ["GET"], { get: { operationId: "getJWKS" } })
|
|
55
|
+
* async serveJWKS(ctx: OperationContext) { … }
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare const Route: {
|
|
60
|
+
(value: any, context: ClassMethodDecoratorContext<any, any>): any;
|
|
61
|
+
(route: string, methods?: HttpMethodType[] | HttpMethodType, openapi?: OpenAPIWebdaDefinition): (value: any, context: ClassMethodDecoratorContext<any, any>) => any;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Operation object with optional schemas
|
|
65
|
+
*/
|
|
66
|
+
export interface OpenApiWebdaOperation extends DeepPartial<OpenAPIV3.OperationObject> {
|
|
67
|
+
schemas?: {
|
|
68
|
+
input?: JSONSchema7 | string;
|
|
69
|
+
output?: JSONSchema7 | string;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Route Information default information
|
|
74
|
+
*/
|
|
75
|
+
export interface RouteInfo {
|
|
76
|
+
model?: Repository;
|
|
77
|
+
/**
|
|
78
|
+
* HTTP Method to expose
|
|
79
|
+
*/
|
|
80
|
+
methods: HttpMethodType[];
|
|
81
|
+
/**
|
|
82
|
+
* Executor name
|
|
83
|
+
*/
|
|
84
|
+
executor: string;
|
|
85
|
+
/**
|
|
86
|
+
* Method name on the executor
|
|
87
|
+
*/
|
|
88
|
+
_method?: string | Function;
|
|
89
|
+
/**
|
|
90
|
+
* OpenAPI definition
|
|
91
|
+
*/
|
|
92
|
+
openapi?: OpenAPIWebdaDefinition;
|
|
93
|
+
/**
|
|
94
|
+
* URI Template parser
|
|
95
|
+
*/
|
|
96
|
+
_uriTemplateParse?: {
|
|
97
|
+
fromUri: (uri: string, options?: {
|
|
98
|
+
strict: boolean;
|
|
99
|
+
}) => any;
|
|
100
|
+
varNames: any;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Query parameters to extract
|
|
104
|
+
*/
|
|
105
|
+
_queryParams?: {
|
|
106
|
+
name: string;
|
|
107
|
+
required: boolean;
|
|
108
|
+
}[];
|
|
109
|
+
/**
|
|
110
|
+
* Catch all parameter
|
|
111
|
+
*/
|
|
112
|
+
_queryCatchAll?: string;
|
|
113
|
+
/**
|
|
114
|
+
* Hash
|
|
115
|
+
*/
|
|
116
|
+
hash?: string;
|
|
117
|
+
/**
|
|
118
|
+
* Intend to override existing
|
|
119
|
+
*/
|
|
120
|
+
override?: boolean;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* RequestFilter allows a service to control incoming requests.
|
|
124
|
+
*
|
|
125
|
+
* Services implementing this interface can accept or reject HTTP requests
|
|
126
|
+
* based on authentication, authorization, or other criteria. If at least one
|
|
127
|
+
* registered filter returns `true`, the request proceeds.
|
|
128
|
+
*
|
|
129
|
+
* The compiler detects this interface via the `@WebdaCapability` tag and
|
|
130
|
+
* automatically registers implementing services with the Router during
|
|
131
|
+
* framework initialization.
|
|
132
|
+
*
|
|
133
|
+
* @WebdaCapability request-filter
|
|
134
|
+
*
|
|
135
|
+
* @typeParam T - The context type, defaults to {@link IWebContext}
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```typescript
|
|
139
|
+
* class ApiKeyFilter extends Service implements RequestFilter {
|
|
140
|
+
* async checkRequest(context: IWebContext, type: "AUTH"): Promise<boolean> {
|
|
141
|
+
* return context.getHttpContext().getHeader("x-api-key") === this.parameters.apiKey;
|
|
142
|
+
* }
|
|
143
|
+
* }
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
export interface RequestFilter<T extends IWebContext = IWebContext> {
|
|
147
|
+
/**
|
|
148
|
+
* Check whether a request should be allowed through.
|
|
149
|
+
*
|
|
150
|
+
* Called for authentication/authorization checks on every incoming request.
|
|
151
|
+
*
|
|
152
|
+
* @param context - The current request context
|
|
153
|
+
* @param type - Always `"AUTH"` for request filters
|
|
154
|
+
* @returns `true` to allow the request, `false` to reject it
|
|
155
|
+
*/
|
|
156
|
+
checkRequest(context: T, type: "AUTH"): Promise<boolean>;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* CORSFilter allows a service to control Cross-Origin Resource Sharing requests.
|
|
160
|
+
*
|
|
161
|
+
* Similar to {@link RequestFilter} but specifically for CORS validation.
|
|
162
|
+
* CORS filters are **not applied in devMode**, allowing unrestricted
|
|
163
|
+
* cross-origin requests during development.
|
|
164
|
+
*
|
|
165
|
+
* @WebdaCapability cors-filter
|
|
166
|
+
*
|
|
167
|
+
* @typeParam T - The context type, defaults to {@link IWebContext}
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```typescript
|
|
171
|
+
* class OriginFilter extends Service implements CORSFilter {
|
|
172
|
+
* async checkRequest(context: IWebContext, type: "CORS"): Promise<boolean> {
|
|
173
|
+
* const origin = context.getHttpContext().getHeader("origin");
|
|
174
|
+
* return this.parameters.allowedOrigins.includes(origin);
|
|
175
|
+
* }
|
|
176
|
+
* }
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
179
|
+
export interface CORSFilter<T extends IWebContext = IWebContext> {
|
|
180
|
+
/**
|
|
181
|
+
* Check whether a CORS request should be allowed.
|
|
182
|
+
*
|
|
183
|
+
* Called for cross-origin validation. CORS filters are **not applied
|
|
184
|
+
* in devMode**, allowing unrestricted cross-origin requests during development.
|
|
185
|
+
*
|
|
186
|
+
* @param context - The current request context
|
|
187
|
+
* @param type - Always `"CORS"` for CORS filters
|
|
188
|
+
* @returns `true` to allow the request, `false` to reject it
|
|
189
|
+
*/
|
|
190
|
+
checkRequest(context: T, type: "CORS"): Promise<boolean>;
|
|
191
|
+
}
|
|
192
|
+
export interface IRouter {
|
|
193
|
+
/**
|
|
194
|
+
* Add to context information and executor based on the http context
|
|
195
|
+
*/
|
|
196
|
+
exportOpenAPI(arg0: boolean): any;
|
|
197
|
+
registerModelUrl(arg0: any, prefix: string): unknown;
|
|
198
|
+
registerRequestFilter(filter: RequestFilter): any;
|
|
199
|
+
registerCORSFilter(filter: CORSFilter): any;
|
|
200
|
+
execute(context: IWebContext): Promise<void>;
|
|
201
|
+
/**
|
|
202
|
+
* Auto-discover services with request-filter and cors-filter capabilities
|
|
203
|
+
*/
|
|
204
|
+
discoverFilters(services: Iterable<{
|
|
205
|
+
getCapabilities(): Record<string, any>;
|
|
206
|
+
}>): void;
|
|
207
|
+
/**
|
|
208
|
+
* Auto-discover routes declared via `@Route` on each service and register them
|
|
209
|
+
*/
|
|
210
|
+
discoverRoutes(services: Iterable<any>): void;
|
|
211
|
+
}
|
|
212
|
+
//# sourceMappingURL=irest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"irest.d.ts","sourceRoot":"","sources":["../../src/rest/irest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createMethodDecorator } from "@webda/tsc-esm";
|
|
2
|
+
/**
|
|
3
|
+
* Bind a class method to an HTTP route at the service's base URL.
|
|
4
|
+
*
|
|
5
|
+
* **Prefer `@Operation`.** Operations plug into REST, GraphQL, and gRPC with
|
|
6
|
+
* a single declaration and give you request/response schema generation for
|
|
7
|
+
* free. `@Route` is the escape hatch for endpoints that don't fit the
|
|
8
|
+
* operation model (static assets, JWKS, Accept-based content negotiation,
|
|
9
|
+
* server-sent events, manual streaming, etc.) — anything where you need raw
|
|
10
|
+
* access to `WebContext` and the operation abstraction would get in the way.
|
|
11
|
+
*
|
|
12
|
+
* Routes are read by `Router.discoverRoutes()` after service init and
|
|
13
|
+
* registered on the router with the same semantics as a manual
|
|
14
|
+
* `this.addRoute(...)` call. `route` is resolved relative to the service's
|
|
15
|
+
* `url` parameter when it starts with `.` (`".", "./me", "./email/{email}"`).
|
|
16
|
+
*
|
|
17
|
+
* @param route - URL pattern, e.g. `"."`, `"./me"`, `"./{id}/children"`
|
|
18
|
+
* @param methods - HTTP verb or list; defaults to `["GET"]`
|
|
19
|
+
* @param openapi - OpenAPI `PathItemObject` fragment for this method
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* class JwksService extends Service {
|
|
24
|
+
* // Raw route — JWKS content-type isn't a natural fit for @Operation
|
|
25
|
+
* @Route(".", ["GET"], { get: { operationId: "getJWKS" } })
|
|
26
|
+
* async serveJWKS(ctx: OperationContext) { … }
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export const Route = createMethodDecorator((_value, context, route, methods = ["GET"], openapi = {}) => {
|
|
31
|
+
context.metadata["webda.route"] ??= {};
|
|
32
|
+
context.metadata["webda.route"][route] ??= [];
|
|
33
|
+
context.metadata["webda.route"][route].push({
|
|
34
|
+
methods: Array.isArray(methods) ? methods : [methods],
|
|
35
|
+
executor: context.name,
|
|
36
|
+
openapi
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=irest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"irest.js","sourceRoot":"","sources":["../../src/rest/irest.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAe,MAAM,gBAAgB,CAAC;AA6BpE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,qBAAqB,CACxC,CACE,MAAW,EACX,OAAoC,EACpC,KAAa,EACb,OAAO,GAAsC,CAAC,KAAK,CAAC,EACpD,OAAO,GAA2B,EAAE,EACpC,EAAE;IACF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;QAC1C,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACrD,QAAQ,EAAE,OAAO,CAAC,IAAI;QACtB,OAAO;KACR,CAAC,CAAC;AACL,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { IWebContext } from "../contexts/icontext.js";
|
|
2
|
+
import { RegExpValidator } from "@webda/utils";
|
|
3
|
+
import { RequestFilter } from "./irest.js";
|
|
4
|
+
/**
|
|
5
|
+
* Filter request based on their origin
|
|
6
|
+
*
|
|
7
|
+
* @category CoreFeatures
|
|
8
|
+
*/
|
|
9
|
+
export declare class OriginFilter implements RequestFilter<IWebContext> {
|
|
10
|
+
regexs: RegExpValidator;
|
|
11
|
+
/** Create a new OriginFilter
|
|
12
|
+
* @param origins - allowed origin patterns
|
|
13
|
+
*/
|
|
14
|
+
constructor(origins: string[]);
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* @param context - the execution context
|
|
18
|
+
* @returns true if the condition is met
|
|
19
|
+
*/
|
|
20
|
+
checkRequest(context: IWebContext): Promise<boolean>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Authorize requests based on the website
|
|
24
|
+
*/
|
|
25
|
+
export declare class WebsiteOriginFilter implements RequestFilter<IWebContext> {
|
|
26
|
+
websites: string[];
|
|
27
|
+
/** Create a new WebsiteOriginFilter
|
|
28
|
+
* @param website - allowed website URL or array of URLs
|
|
29
|
+
*/
|
|
30
|
+
constructor(website: any);
|
|
31
|
+
/**
|
|
32
|
+
* Verify that the request origin or host is in the allowed websites list
|
|
33
|
+
* @param context - the execution context
|
|
34
|
+
* @returns true if the condition is met
|
|
35
|
+
*/
|
|
36
|
+
checkRequest(context: IWebContext): Promise<boolean>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=originfilter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"originfilter.d.ts","sourceRoot":"","sources":["../../src/rest/originfilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;GAIG;AACH,qBAAa,YAAa,YAAW,aAAa,CAAC,WAAW,CAAC;IAC7D,MAAM,EAAE,eAAe,CAAC;IACxB;;OAEG;IACH,YAAY,OAAO,EAAE,MAAM,EAAE,EAE5B;IACD;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAGzD;CACF;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,aAAa,CAAC,WAAW,CAAC;IACpE,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB;;OAEG;IACH,YAAY,OAAO,EAAE,GAAG,EAUvB;IAED;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAUzD;CACF"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { RegExpValidator } from "@webda/utils";
|
|
2
|
+
/**
|
|
3
|
+
* Filter request based on their origin
|
|
4
|
+
*
|
|
5
|
+
* @category CoreFeatures
|
|
6
|
+
*/
|
|
7
|
+
export class OriginFilter {
|
|
8
|
+
regexs;
|
|
9
|
+
/** Create a new OriginFilter
|
|
10
|
+
* @param origins - allowed origin patterns
|
|
11
|
+
*/
|
|
12
|
+
constructor(origins) {
|
|
13
|
+
this.regexs = new RegExpValidator(origins);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* @param context - the execution context
|
|
18
|
+
* @returns true if the condition is met
|
|
19
|
+
*/
|
|
20
|
+
async checkRequest(context) {
|
|
21
|
+
const httpContext = context.getHttpContext();
|
|
22
|
+
return this.regexs.validate(httpContext.hostname) || this.regexs.validate(httpContext.origin);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Authorize requests based on the website
|
|
27
|
+
*/
|
|
28
|
+
export class WebsiteOriginFilter {
|
|
29
|
+
websites = [];
|
|
30
|
+
/** Create a new WebsiteOriginFilter
|
|
31
|
+
* @param website - allowed website URL or array of URLs
|
|
32
|
+
*/
|
|
33
|
+
constructor(website) {
|
|
34
|
+
if (!Array.isArray(website)) {
|
|
35
|
+
if (typeof website === "object") {
|
|
36
|
+
this.websites.push(website.url);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.websites.push(website);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.websites = [...website];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Verify that the request origin or host is in the allowed websites list
|
|
48
|
+
* @param context - the execution context
|
|
49
|
+
* @returns true if the condition is met
|
|
50
|
+
*/
|
|
51
|
+
async checkRequest(context) {
|
|
52
|
+
const httpContext = context.getHttpContext();
|
|
53
|
+
if (this.websites.indexOf(httpContext.origin) >= 0 ||
|
|
54
|
+
this.websites.indexOf(httpContext.host) >= 0 ||
|
|
55
|
+
this.websites.indexOf("*") >= 0) {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=originfilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"originfilter.js","sourceRoot":"","sources":["../../src/rest/originfilter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACvB,MAAM,CAAkB;IACxB;;OAEG;IACH,YAAY,OAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,OAAoB;QACrC,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAChG,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAC9B,QAAQ,GAAa,EAAE,CAAC;IACxB;;OAEG;IACH,YAAY,OAAY;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,OAAoB;QACrC,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAC7C,IACE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAC/B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { TransformCaseType } from "@webda/utils";
|
|
2
|
+
import { OperationsTransport, OperationsTransportParameters } from "../services/operationstransport.js";
|
|
3
|
+
import { OperationDefinition } from "../core/icore.js";
|
|
4
|
+
import { WebContext } from "../contexts/webcontext.js";
|
|
5
|
+
import type { ModelClass } from "@webda/models";
|
|
6
|
+
import type { ModelAction } from "../models/types.js";
|
|
7
|
+
import type { ModelGraphBehaviorDefinition, ModelMetadata } from "@webda/compiler";
|
|
8
|
+
/**
|
|
9
|
+
* Parameters for RESTOperationsTransport
|
|
10
|
+
*/
|
|
11
|
+
export declare class RESTOperationsTransportParameters extends OperationsTransportParameters {
|
|
12
|
+
/**
|
|
13
|
+
* Expose the OpenAPI
|
|
14
|
+
*
|
|
15
|
+
* @default true if debug false otherwise
|
|
16
|
+
*/
|
|
17
|
+
exposeOpenAPI?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Swagger version to use
|
|
20
|
+
*
|
|
21
|
+
* https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.19.5/swagger-ui.css
|
|
22
|
+
* https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.19.5/swagger-ui-bundle.js
|
|
23
|
+
* https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.19.5/swagger-ui-standalone-preset.js
|
|
24
|
+
*
|
|
25
|
+
* TODO Add renovatebot regex
|
|
26
|
+
*/
|
|
27
|
+
swaggerVersion: string;
|
|
28
|
+
/**
|
|
29
|
+
* Base URL for the REST API
|
|
30
|
+
*/
|
|
31
|
+
url: string;
|
|
32
|
+
/**
|
|
33
|
+
* Transform the name of the model to be used in the URL
|
|
34
|
+
*
|
|
35
|
+
* @see https://blog.boot.dev/clean-code/casings-in-coding/
|
|
36
|
+
* @default camelCase
|
|
37
|
+
*/
|
|
38
|
+
nameTransformer?: TransformCaseType;
|
|
39
|
+
/**
|
|
40
|
+
* Method used for query objects
|
|
41
|
+
*
|
|
42
|
+
* @default "PUT"
|
|
43
|
+
*/
|
|
44
|
+
queryMethod?: "PUT" | "GET";
|
|
45
|
+
/**
|
|
46
|
+
* Load parameters with defaults
|
|
47
|
+
* @param params - the service parameters
|
|
48
|
+
* @returns this for chaining
|
|
49
|
+
*/
|
|
50
|
+
load(params?: any): this;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* REST transport that exposes model operations as RESTful HTTP routes.
|
|
54
|
+
*
|
|
55
|
+
* Instead of iterating operations flat, it walks the model tree
|
|
56
|
+
* (parent/child relationships) to build nested URL prefixes like
|
|
57
|
+
* `/companies/{pid.0}/users/{uuid}`.
|
|
58
|
+
*
|
|
59
|
+
* @WebdaModda
|
|
60
|
+
*/
|
|
61
|
+
export declare class RESTOperationsTransport<T extends RESTOperationsTransportParameters = RESTOperationsTransportParameters> extends OperationsTransport<T> {
|
|
62
|
+
/**
|
|
63
|
+
* OpenAPI cache
|
|
64
|
+
*/
|
|
65
|
+
openapiContent: string;
|
|
66
|
+
/**
|
|
67
|
+
* Transform name using configured casing
|
|
68
|
+
* @param name - the name to transform
|
|
69
|
+
* @returns the transformed name
|
|
70
|
+
*/
|
|
71
|
+
transformName(name: string): string;
|
|
72
|
+
/**
|
|
73
|
+
* Resolve the service - set up OpenAPI route if configured
|
|
74
|
+
* @returns this for chaining
|
|
75
|
+
*/
|
|
76
|
+
resolve(): this;
|
|
77
|
+
/**
|
|
78
|
+
* Override initTransport to walk the model tree instead of flat iteration.
|
|
79
|
+
* For each model, we look up its operations and register REST routes.
|
|
80
|
+
*/
|
|
81
|
+
protected initTransport(): void;
|
|
82
|
+
/**
|
|
83
|
+
* Expose service/bean operations that have rest hints but aren't tied to model CRUD.
|
|
84
|
+
* These are operations registered by Service.initOperations() from @Operation decorators.
|
|
85
|
+
* @param operations - the filtered operations map
|
|
86
|
+
*/
|
|
87
|
+
protected exposeServiceOperations(operations: Record<string, OperationDefinition>): void;
|
|
88
|
+
/**
|
|
89
|
+
* Recursively walk a model and its children, registering routes at each level
|
|
90
|
+
* @param model - the model class
|
|
91
|
+
* @param metadata - model metadata
|
|
92
|
+
* @param operations - filtered operations map
|
|
93
|
+
* @param basePrefix - URL prefix from parent context
|
|
94
|
+
* @param depth - nesting depth for parent id parameters
|
|
95
|
+
*/
|
|
96
|
+
protected walkModel(model: ModelClass, metadata: ModelMetadata, operations: Record<string, OperationDefinition>, basePrefix: string, depth: number): void;
|
|
97
|
+
/**
|
|
98
|
+
* Register query route for a model
|
|
99
|
+
* @param prefix - the URL prefix for this model
|
|
100
|
+
* @param plural - the pluralized model name
|
|
101
|
+
* @param shortId - the short model identifier
|
|
102
|
+
* @param identifier - the full model identifier
|
|
103
|
+
* @param depth - nesting depth for parent id parameters
|
|
104
|
+
* @param injectAttribute - parent attribute to inject in queries
|
|
105
|
+
* @param operations - the filtered operations map
|
|
106
|
+
*/
|
|
107
|
+
protected exposeQueryRoute(prefix: string, plural: string, shortId: string, identifier: string, depth: number, injectAttribute: string | undefined, operations: Record<string, OperationDefinition>): void;
|
|
108
|
+
/**
|
|
109
|
+
* Register create route for a model
|
|
110
|
+
* @param prefix - the URL prefix for this model
|
|
111
|
+
* @param shortId - the short model identifier
|
|
112
|
+
* @param identifier - the full model identifier
|
|
113
|
+
* @param depth - nesting depth for parent id parameters
|
|
114
|
+
* @param injectAttribute - parent attribute to inject on create
|
|
115
|
+
* @param operations - the filtered operations map
|
|
116
|
+
*/
|
|
117
|
+
protected exposeCreateRoute(prefix: string, shortId: string, identifier: string, depth: number, injectAttribute: string | undefined, operations: Record<string, OperationDefinition>): void;
|
|
118
|
+
/**
|
|
119
|
+
* Register delete route for a model
|
|
120
|
+
* @param prefix - the URL prefix for this model
|
|
121
|
+
* @param shortId - the short model identifier
|
|
122
|
+
* @param identifier - the full model identifier
|
|
123
|
+
* @param operations - the filtered operations map
|
|
124
|
+
*/
|
|
125
|
+
protected exposeDeleteRoute(prefix: string, shortId: string, identifier: string, operations: Record<string, OperationDefinition>): void;
|
|
126
|
+
/**
|
|
127
|
+
* Register update (PUT) and patch (PATCH) routes for a model
|
|
128
|
+
* @param prefix - the URL prefix for this model
|
|
129
|
+
* @param shortId - the short model identifier
|
|
130
|
+
* @param identifier - the full model identifier
|
|
131
|
+
* @param operations - the filtered operations map
|
|
132
|
+
*/
|
|
133
|
+
protected exposeUpdateRoute(prefix: string, shortId: string, identifier: string, operations: Record<string, OperationDefinition>): void;
|
|
134
|
+
/**
|
|
135
|
+
* Register get route for a model
|
|
136
|
+
* @param prefix - the URL prefix for this model
|
|
137
|
+
* @param shortId - the short model identifier
|
|
138
|
+
* @param identifier - the full model identifier
|
|
139
|
+
* @param operations - the filtered operations map
|
|
140
|
+
*/
|
|
141
|
+
protected exposeGetRoute(prefix: string, shortId: string, identifier: string, operations: Record<string, OperationDefinition>): void;
|
|
142
|
+
/**
|
|
143
|
+
* Register action route for a model
|
|
144
|
+
* @param prefix - the URL prefix for this model
|
|
145
|
+
* @param shortId - the short model identifier
|
|
146
|
+
* @param identifier - the full model identifier
|
|
147
|
+
* @param actionName - the name of the action
|
|
148
|
+
* @param action - the action definition
|
|
149
|
+
* @param depth - nesting depth for parent id parameters
|
|
150
|
+
* @param injectAttribute - parent attribute to inject
|
|
151
|
+
*/
|
|
152
|
+
protected exposeActionRoute(prefix: string, shortId: string, identifier: string, actionName: string, action: ModelAction, depth: number, injectAttribute: string | undefined): void;
|
|
153
|
+
/**
|
|
154
|
+
* Register routes for every `@Action` on every Behavior attribute of a
|
|
155
|
+
* model. The default URL pattern is `{prefix}/{uuid}/{attribute}.{action}`
|
|
156
|
+
* (PUT) — the dot disambiguates Behavior calls from nested-resource routing.
|
|
157
|
+
*
|
|
158
|
+
* Authors can override the route via `@Action({ rest: { route, method } })`.
|
|
159
|
+
* `addBehaviorOperations` resolves that hint and writes the final
|
|
160
|
+
* `rest.method`/`rest.path` on the registered operation; this method just
|
|
161
|
+
* mirrors what's there, falling back to the dot-notation default if no
|
|
162
|
+
* hint was set.
|
|
163
|
+
*
|
|
164
|
+
* Each route dispatches the registered behavior operation
|
|
165
|
+
* (`{ShortId}.{AttributeCap}.{ActionCap}`). The dispatcher itself
|
|
166
|
+
* (`modelBehaviorAction`) handles model load, `canAct` gating, and method
|
|
167
|
+
* invocation — this method only wires the HTTP surface.
|
|
168
|
+
*
|
|
169
|
+
* Schema decoration on the OpenAPI doc is best-effort — we lean on
|
|
170
|
+
* `hasSchema()` (the AJV registry) to decide whether to emit
|
|
171
|
+
* `requestBody` / `responses` `$ref`s.
|
|
172
|
+
*
|
|
173
|
+
* @param prefix - the URL prefix for this model (e.g. `/api/users`)
|
|
174
|
+
* @param shortId - the short model identifier (e.g. `User`)
|
|
175
|
+
* @param identifier - the full model identifier (e.g. `MyApp/User`) — accepted
|
|
176
|
+
* for symmetry with `walkModel`'s caller signature even though we don't currently use it
|
|
177
|
+
* @param name - the model display name used in OpenAPI tags
|
|
178
|
+
* @param behavior - the Behavior attribute relation to expose
|
|
179
|
+
*/
|
|
180
|
+
protected exposeBehaviorRoutes(prefix: string, shortId: string, identifier: string, name: string, behavior: ModelGraphBehaviorDefinition): void;
|
|
181
|
+
/**
|
|
182
|
+
* No-op: route exposure is handled entirely by initTransport's tree walk
|
|
183
|
+
* @param _operationId - the operation identifier (unused)
|
|
184
|
+
* @param _definition - the operation definition (unused)
|
|
185
|
+
*/
|
|
186
|
+
exposeOperation(_operationId: string, _definition: OperationDefinition): void;
|
|
187
|
+
/**
|
|
188
|
+
* Serve the openapi with the swagger-ui
|
|
189
|
+
* @param ctx - the web context
|
|
190
|
+
*/
|
|
191
|
+
openapi(ctx: WebContext): Promise<void>;
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=restoperationstransport.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restoperationstransport.service.d.ts","sourceRoot":"","sources":["../../src/rest/restoperationstransport.service.ts"],"names":[],"mappings":"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"}
|