@webda/core 4.0.0-beta.1 → 4.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +252 -0
- package/lib/application/application.d.ts +437 -0
- package/lib/application/application.d.ts.map +1 -0
- package/lib/application/application.js +792 -0
- package/lib/application/application.js.map +1 -0
- package/lib/application/hooks.d.ts +34 -0
- package/lib/application/hooks.d.ts.map +1 -0
- package/lib/application/hooks.js +57 -0
- package/lib/application/hooks.js.map +1 -0
- package/lib/application/iapplication.d.ts +43 -0
- package/lib/application/iapplication.d.ts.map +1 -0
- package/lib/application/iapplication.js +2 -0
- package/lib/application/iapplication.js.map +1 -0
- package/lib/application/iconfiguration.d.ts +176 -0
- package/lib/application/iconfiguration.d.ts.map +1 -0
- package/lib/application/iconfiguration.js +8 -0
- package/lib/application/iconfiguration.js.map +1 -0
- package/lib/application/runner.d.ts +8 -0
- package/lib/application/runner.d.ts.map +1 -0
- package/lib/application/runner.js +26 -0
- package/lib/application/runner.js.map +1 -0
- package/lib/application/unpackedapplication.d.ts +104 -0
- package/lib/application/unpackedapplication.d.ts.map +1 -0
- package/lib/application/unpackedapplication.js +492 -0
- package/lib/application/unpackedapplication.js.map +1 -0
- package/lib/bin/cli-phase.d.ts +28 -0
- package/lib/bin/cli-phase.d.ts.map +1 -0
- package/lib/bin/cli-phase.js +44 -0
- package/lib/bin/cli-phase.js.map +1 -0
- package/lib/bin/cli.d.ts +161 -0
- package/lib/bin/cli.d.ts.map +1 -0
- package/lib/bin/cli.js +828 -0
- package/lib/bin/cli.js.map +1 -0
- package/lib/bin/launcher.d.ts +3 -0
- package/lib/bin/launcher.d.ts.map +1 -0
- package/lib/bin/launcher.js +50 -0
- package/lib/bin/launcher.js.map +1 -0
- package/lib/cache/cache.d.ts +33 -0
- package/lib/cache/cache.d.ts.map +1 -0
- package/lib/cache/cache.js +8 -0
- package/lib/cache/cache.js.map +1 -0
- package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -49
- package/lib/configurations/configuration.service.d.ts.map +1 -0
- package/lib/configurations/configuration.service.js +248 -0
- package/lib/configurations/configuration.service.js.map +1 -0
- package/lib/configurations/fileconfiguration.service.d.ts +30 -0
- package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
- package/lib/configurations/fileconfiguration.service.js +65 -0
- package/lib/configurations/fileconfiguration.service.js.map +1 -0
- package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
- package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
- package/lib/configurations/kubernetesconfiguration.service.js +83 -0
- package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
- package/lib/contexts/execution.d.ts +33 -0
- package/lib/contexts/execution.d.ts.map +1 -0
- package/lib/contexts/execution.js +73 -0
- package/lib/contexts/execution.js.map +1 -0
- package/lib/contexts/globalcontext.d.ts +29 -0
- package/lib/contexts/globalcontext.d.ts.map +1 -0
- package/lib/contexts/globalcontext.js +38 -0
- package/lib/contexts/globalcontext.js.map +1 -0
- package/lib/{utils → contexts}/httpcontext.d.ts +45 -19
- package/lib/contexts/httpcontext.d.ts.map +1 -0
- package/lib/{utils → contexts}/httpcontext.js +102 -34
- package/lib/contexts/httpcontext.js.map +1 -0
- package/lib/contexts/icontext.d.ts +236 -0
- package/lib/contexts/icontext.d.ts.map +1 -0
- package/lib/contexts/icontext.js +230 -0
- package/lib/contexts/icontext.js.map +1 -0
- package/lib/contexts/operationcontext.d.ts +179 -0
- package/lib/contexts/operationcontext.d.ts.map +1 -0
- package/lib/contexts/operationcontext.js +358 -0
- package/lib/contexts/operationcontext.js.map +1 -0
- package/lib/contexts/simplecontext.d.ts +31 -0
- package/lib/contexts/simplecontext.d.ts.map +1 -0
- package/lib/contexts/simplecontext.js +45 -0
- package/lib/contexts/simplecontext.js.map +1 -0
- package/lib/contexts/webcontext.d.ts +218 -0
- package/lib/contexts/webcontext.d.ts.map +1 -0
- package/lib/contexts/webcontext.js +389 -0
- package/lib/contexts/webcontext.js.map +1 -0
- package/lib/core/authorizer.d.ts +23 -0
- package/lib/core/authorizer.d.ts.map +1 -0
- package/lib/core/authorizer.js +17 -0
- package/lib/core/authorizer.js.map +1 -0
- package/lib/core/core.d.ts +225 -0
- package/lib/core/core.d.ts.map +1 -0
- package/lib/core/core.js +576 -0
- package/lib/core/core.js.map +1 -0
- package/lib/core/hooks.d.ts +72 -0
- package/lib/core/hooks.d.ts.map +1 -0
- package/lib/core/hooks.js +73 -0
- package/lib/core/hooks.js.map +1 -0
- package/lib/core/icore.d.ts +249 -0
- package/lib/core/icore.d.ts.map +1 -0
- package/lib/core/icore.js +15 -0
- package/lib/core/icore.js.map +1 -0
- package/lib/core/instancestorage.d.ts +61 -0
- package/lib/core/instancestorage.d.ts.map +1 -0
- package/lib/core/instancestorage.js +75 -0
- package/lib/core/instancestorage.js.map +1 -0
- package/lib/core/operations.d.ts +181 -0
- package/lib/core/operations.d.ts.map +1 -0
- package/lib/core/operations.js +559 -0
- package/lib/core/operations.js.map +1 -0
- package/lib/errors/errors.d.ts +126 -0
- package/lib/errors/errors.d.ts.map +1 -0
- package/lib/errors/errors.js +165 -0
- package/lib/errors/errors.js.map +1 -0
- package/lib/events/asynceventemitter.d.ts +159 -0
- package/lib/events/asynceventemitter.d.ts.map +1 -0
- package/lib/events/asynceventemitter.js +152 -0
- package/lib/events/asynceventemitter.js.map +1 -0
- package/lib/events/events.d.ts +112 -0
- package/lib/events/events.d.ts.map +1 -0
- package/lib/events/events.js +45 -0
- package/lib/events/events.js.map +1 -0
- package/lib/index.d.ts +84 -51
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +82 -59
- package/lib/index.js.map +1 -1
- package/lib/loggers/console.service.d.ts +24 -0
- package/lib/loggers/console.service.d.ts.map +1 -0
- package/lib/loggers/console.service.js +30 -0
- package/lib/loggers/console.service.js.map +1 -0
- package/lib/loggers/file.service.d.ts +25 -0
- package/lib/loggers/file.service.d.ts.map +1 -0
- package/lib/loggers/file.service.js +33 -0
- package/lib/loggers/file.service.js.map +1 -0
- package/lib/loggers/hooks.d.ts +20 -0
- package/lib/loggers/hooks.d.ts.map +1 -0
- package/lib/loggers/hooks.js +40 -0
- package/lib/loggers/hooks.js.map +1 -0
- package/lib/loggers/ilogger.d.ts +76 -0
- package/lib/loggers/ilogger.d.ts.map +1 -0
- package/lib/loggers/ilogger.js +108 -0
- package/lib/loggers/ilogger.js.map +1 -0
- package/lib/loggers/logger.d.ts +13 -0
- package/lib/loggers/logger.d.ts.map +1 -0
- package/lib/loggers/logger.js +18 -0
- package/lib/loggers/logger.js.map +1 -0
- package/lib/loggers/memory.service.d.ts +18 -0
- package/lib/loggers/memory.service.d.ts.map +1 -0
- package/lib/loggers/memory.service.js +21 -0
- package/lib/loggers/memory.service.js.map +1 -0
- package/lib/loggers/params.d.ts +47 -0
- package/lib/loggers/params.d.ts.map +1 -0
- package/lib/loggers/params.js +56 -0
- package/lib/loggers/params.js.map +1 -0
- package/lib/metrics/metrics.d.ts +25 -0
- package/lib/metrics/metrics.d.ts.map +1 -0
- package/lib/metrics/metrics.js +51 -0
- package/lib/metrics/metrics.js.map +1 -0
- package/lib/models/aclmodel.d.ts +21 -77
- package/lib/models/aclmodel.d.ts.map +1 -0
- package/lib/models/aclmodel.js +27 -204
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/coremodel.model.d.ts +5 -0
- package/lib/models/coremodel.model.d.ts.map +1 -0
- package/lib/models/coremodel.model.js +5 -0
- package/lib/models/coremodel.model.js.map +1 -0
- package/lib/models/decorator.d.ts +63 -0
- package/lib/models/decorator.d.ts.map +1 -0
- package/lib/models/decorator.js +63 -0
- package/lib/models/decorator.js.map +1 -0
- package/lib/models/deployment.d.ts +2 -1
- package/lib/models/deployment.d.ts.map +1 -0
- package/lib/models/ident.model.d.ts +89 -0
- package/lib/models/ident.model.d.ts.map +1 -0
- package/lib/models/ident.model.js +115 -0
- package/lib/models/ident.model.js.map +1 -0
- package/lib/models/ownermodel.model.d.ts +68 -0
- package/lib/models/ownermodel.model.d.ts.map +1 -0
- package/lib/models/ownermodel.model.js +112 -0
- package/lib/models/ownermodel.model.js.map +1 -0
- package/lib/models/registry.model.d.ts +76 -0
- package/lib/models/registry.model.d.ts.map +1 -0
- package/lib/models/registry.model.js +104 -0
- package/lib/models/registry.model.js.map +1 -0
- package/lib/models/rolemodel.model.d.ts +28 -0
- package/lib/models/rolemodel.model.d.ts.map +1 -0
- package/lib/models/rolemodel.model.js +53 -0
- package/lib/models/rolemodel.model.js.map +1 -0
- package/lib/models/simpleuser.model.d.ts +78 -0
- package/lib/models/simpleuser.model.d.ts.map +1 -0
- package/lib/models/simpleuser.model.js +123 -0
- package/lib/models/simpleuser.model.js.map +1 -0
- package/lib/models/types.d.ts +113 -0
- package/lib/models/types.d.ts.map +1 -0
- package/lib/models/types.js +2 -0
- package/lib/models/types.js.map +1 -0
- package/lib/models/user.model.d.ts +103 -0
- package/lib/models/user.model.d.ts.map +1 -0
- package/lib/models/user.model.js +125 -0
- package/lib/models/user.model.js.map +1 -0
- package/lib/queues/memoryqueue.service.d.ts +72 -0
- package/lib/queues/memoryqueue.service.d.ts.map +1 -0
- package/lib/queues/memoryqueue.service.js +136 -0
- package/lib/queues/memoryqueue.service.js.map +1 -0
- package/lib/queues/pubsubservice.d.ts +9 -6
- package/lib/queues/pubsubservice.d.ts.map +1 -0
- package/lib/queues/pubsubservice.js +5 -4
- package/lib/queues/pubsubservice.js.map +1 -1
- package/lib/queues/queueservice.d.ts +10 -11
- package/lib/queues/queueservice.d.ts.map +1 -0
- package/lib/queues/queueservice.js +48 -20
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/rest/hooks.d.ts +8 -0
- package/lib/rest/hooks.d.ts.map +1 -0
- package/lib/rest/hooks.js +10 -0
- package/lib/rest/hooks.js.map +1 -0
- package/lib/rest/irest.d.ts +212 -0
- package/lib/rest/irest.d.ts.map +1 -0
- package/lib/rest/irest.js +39 -0
- package/lib/rest/irest.js.map +1 -0
- package/lib/rest/originfilter.d.ts +38 -0
- package/lib/rest/originfilter.d.ts.map +1 -0
- package/lib/rest/originfilter.js +61 -0
- package/lib/rest/originfilter.js.map +1 -0
- package/lib/rest/restoperationstransport.service.d.ts +193 -0
- package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
- package/lib/rest/restoperationstransport.service.js +780 -0
- package/lib/rest/restoperationstransport.service.js.map +1 -0
- package/lib/rest/router.service.d.ts +244 -0
- package/lib/rest/router.service.d.ts.map +1 -0
- package/lib/rest/router.service.js +843 -0
- package/lib/rest/router.service.js.map +1 -0
- package/lib/schemas/hooks.d.ts +48 -0
- package/lib/schemas/hooks.d.ts.map +1 -0
- package/lib/schemas/hooks.js +152 -0
- package/lib/schemas/hooks.js.map +1 -0
- package/lib/services/audit.model.d.ts +208 -0
- package/lib/services/audit.model.d.ts.map +1 -0
- package/lib/services/audit.model.js +431 -0
- package/lib/services/audit.model.js.map +1 -0
- package/lib/services/{authentication.d.ts → authentication.service.d.ts} +140 -58
- package/lib/services/authentication.service.d.ts.map +1 -0
- package/lib/services/authentication.service.js +932 -0
- package/lib/services/authentication.service.js.map +1 -0
- package/lib/services/binary.service.d.ts +808 -0
- package/lib/services/binary.service.d.ts.map +1 -0
- package/lib/services/binary.service.js +1365 -0
- package/lib/services/binary.service.js.map +1 -0
- package/lib/services/cloudbinary.d.ts +19 -13
- package/lib/services/cloudbinary.d.ts.map +1 -0
- package/lib/services/cloudbinary.js +24 -18
- package/lib/services/cloudbinary.js.map +1 -1
- package/lib/services/command.d.ts +118 -0
- package/lib/services/command.d.ts.map +1 -0
- package/lib/services/command.js +97 -0
- package/lib/services/command.js.map +1 -0
- package/lib/services/cron.service.d.ts +142 -0
- package/lib/services/cron.service.d.ts.map +1 -0
- package/lib/services/cron.service.js +291 -0
- package/lib/services/cron.service.js.map +1 -0
- package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +77 -142
- package/lib/services/cryptoservice.service.d.ts.map +1 -0
- package/lib/services/cryptoservice.service.js +527 -0
- package/lib/services/cryptoservice.service.js.map +1 -0
- package/lib/services/debugmailer.service.d.ts +49 -0
- package/lib/services/debugmailer.service.d.ts.map +1 -0
- package/lib/services/debugmailer.service.js +66 -0
- package/lib/services/debugmailer.service.js.map +1 -0
- package/lib/services/domainservice.service.d.ts +203 -0
- package/lib/services/domainservice.service.d.ts.map +1 -0
- package/lib/services/domainservice.service.js +600 -0
- package/lib/services/domainservice.service.js.map +1 -0
- package/lib/services/httpserver.service.d.ts +248 -0
- package/lib/services/httpserver.service.d.ts.map +1 -0
- package/lib/services/httpserver.service.js +673 -0
- package/lib/services/httpserver.service.js.map +1 -0
- package/lib/services/iauthentication.d.ts +9 -0
- package/lib/services/iauthentication.d.ts.map +1 -0
- package/lib/services/iauthentication.js +2 -0
- package/lib/services/iauthentication.js.map +1 -0
- package/lib/services/icryptoservice.d.ts +127 -0
- package/lib/services/icryptoservice.d.ts.map +1 -0
- package/lib/services/icryptoservice.js +68 -0
- package/lib/services/icryptoservice.js.map +1 -0
- package/lib/services/imailer.d.ts +17 -0
- package/lib/services/imailer.d.ts.map +1 -0
- package/lib/services/imailer.js +2 -0
- package/lib/services/imailer.js.map +1 -0
- package/lib/services/iservice.d.ts +104 -0
- package/lib/services/iservice.d.ts.map +1 -0
- package/lib/services/iservice.js +63 -0
- package/lib/services/iservice.js.map +1 -0
- package/lib/services/mailer.service.d.ts +220 -0
- package/lib/services/mailer.service.d.ts.map +1 -0
- package/lib/services/mailer.service.js +251 -0
- package/lib/services/mailer.service.js.map +1 -0
- package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -10
- package/lib/services/notificationservice.service.d.ts.map +1 -0
- package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
- package/lib/services/notificationservice.service.js.map +1 -0
- package/lib/services/oauth.d.ts +58 -31
- package/lib/services/oauth.d.ts.map +1 -0
- package/lib/services/oauth.js +365 -251
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/operationstransport.d.ts +65 -0
- package/lib/services/operationstransport.d.ts.map +1 -0
- package/lib/services/operationstransport.js +103 -0
- package/lib/services/operationstransport.js.map +1 -0
- package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -11
- package/lib/services/prometheus.service.d.ts.map +1 -0
- package/lib/services/prometheus.service.js +203 -0
- package/lib/services/prometheus.service.js.map +1 -0
- package/lib/services/resource.service.d.ts +121 -0
- package/lib/services/resource.service.d.ts.map +1 -0
- package/lib/services/resource.service.js +301 -0
- package/lib/services/resource.service.js.map +1 -0
- package/lib/services/service.d.ts +88 -189
- package/lib/services/service.d.ts.map +1 -0
- package/lib/services/service.js +407 -432
- package/lib/services/service.js.map +1 -1
- package/lib/services/servicecommands.d.ts +99 -0
- package/lib/services/servicecommands.d.ts.map +1 -0
- package/lib/services/servicecommands.js +165 -0
- package/lib/services/servicecommands.js.map +1 -0
- package/lib/services/serviceparameters.d.ts +33 -0
- package/lib/services/serviceparameters.d.ts.map +1 -0
- package/lib/services/serviceparameters.js +79 -0
- package/lib/services/serviceparameters.js.map +1 -0
- package/lib/{utils → session}/cookie.d.ts +32 -18
- package/lib/session/cookie.d.ts.map +1 -0
- package/lib/{utils → session}/cookie.js +76 -23
- package/lib/session/cookie.js.map +1 -0
- package/lib/session/manager.model.d.ts +71 -0
- package/lib/session/manager.model.d.ts.map +1 -0
- package/lib/session/manager.model.js +155 -0
- package/lib/session/manager.model.js.map +1 -0
- package/lib/session/session.d.ts +57 -0
- package/lib/session/session.d.ts.map +1 -0
- package/lib/session/session.js +126 -0
- package/lib/session/session.js.map +1 -0
- package/lib/stores/istore.d.ts +99 -0
- package/lib/stores/istore.d.ts.map +1 -0
- package/lib/stores/istore.js +26 -0
- package/lib/stores/istore.js.map +1 -0
- package/lib/stores/memory.service.d.ts +114 -0
- package/lib/stores/memory.service.d.ts.map +1 -0
- package/lib/stores/memory.service.js +343 -0
- package/lib/stores/memory.service.js.map +1 -0
- package/lib/stores/store.d.ts +127 -768
- package/lib/stores/store.d.ts.map +1 -0
- package/lib/stores/store.js +258 -1718
- package/lib/stores/store.js.map +1 -1
- package/lib/templates/templates.d.ts +39 -0
- package/lib/templates/templates.d.ts.map +1 -0
- package/lib/templates/templates.js +92 -0
- package/lib/templates/templates.js.map +1 -0
- package/lib/test/application.d.ts +174 -0
- package/lib/test/application.d.ts.map +1 -0
- package/lib/test/application.js +288 -0
- package/lib/test/application.js.map +1 -0
- package/lib/test/asyncstorage.d.ts +16 -0
- package/lib/test/asyncstorage.d.ts.map +1 -0
- package/lib/test/asyncstorage.js +32 -0
- package/lib/test/asyncstorage.js.map +1 -0
- package/lib/test/core.d.ts +63 -0
- package/lib/test/core.d.ts.map +1 -0
- package/lib/test/core.js +190 -0
- package/lib/test/core.js.map +1 -0
- package/lib/test/index.d.ts +7 -0
- package/lib/test/index.d.ts.map +1 -0
- package/lib/test/index.js +8 -0
- package/lib/test/index.js.map +1 -0
- package/lib/test/internal.d.ts +34 -0
- package/lib/test/internal.d.ts.map +1 -0
- package/lib/test/internal.js +156 -0
- package/lib/test/internal.js.map +1 -0
- package/lib/test/objects.d.ts +318 -0
- package/lib/test/objects.d.ts.map +1 -0
- package/lib/test/objects.js +443 -0
- package/lib/test/objects.js.map +1 -0
- package/lib/utils/abstractdeployer.d.ts +5 -2
- package/lib/utils/abstractdeployer.d.ts.map +1 -0
- package/lib/utils/abstractdeployer.js +3 -0
- package/lib/utils/abstractdeployer.js.map +1 -1
- package/package.json +85 -56
- package/test/cachedapp/webda.config.json +1 -5
- package/test/config-cached.json +1 -5
- package/test/config.json +6 -99
- package/test/data/.env +1 -0
- package/test/my-cnf.json +9 -0
- package/webda.module.json +3462 -2231
- package/lib/application.d.ts +0 -876
- package/lib/application.js +0 -741
- package/lib/application.js.map +0 -1
- package/lib/application.spec.d.ts +0 -1
- package/lib/application.spec.js +0 -234
- package/lib/application.spec.js.map +0 -1
- package/lib/core.d.ts +0 -740
- package/lib/core.js +0 -1310
- package/lib/core.js.map +0 -1
- package/lib/core.spec.d.ts +0 -1
- package/lib/core.spec.js +0 -761
- package/lib/core.spec.js.map +0 -1
- package/lib/errors.d.ts +0 -65
- package/lib/errors.js +0 -113
- package/lib/errors.js.map +0 -1
- package/lib/errors.spec.d.ts +0 -1
- package/lib/errors.spec.js +0 -33
- package/lib/errors.spec.js.map +0 -1
- package/lib/models/aclmodel.spec.d.ts +0 -1
- package/lib/models/aclmodel.spec.js +0 -187
- package/lib/models/aclmodel.spec.js.map +0 -1
- package/lib/models/coremodel.d.ts +0 -887
- package/lib/models/coremodel.js +0 -1208
- package/lib/models/coremodel.js.map +0 -1
- package/lib/models/coremodel.spec.d.ts +0 -1
- package/lib/models/coremodel.spec.js +0 -462
- package/lib/models/coremodel.spec.js.map +0 -1
- package/lib/models/ident.d.ts +0 -53
- package/lib/models/ident.js +0 -40
- package/lib/models/ident.js.map +0 -1
- package/lib/models/ident.spec.d.ts +0 -1
- package/lib/models/ident.spec.js +0 -43
- package/lib/models/ident.spec.js.map +0 -1
- package/lib/models/ownermodel.d.ts +0 -50
- package/lib/models/ownermodel.js +0 -65
- package/lib/models/ownermodel.js.map +0 -1
- package/lib/models/ownermodel.spec.d.ts +0 -1
- package/lib/models/ownermodel.spec.js +0 -191
- package/lib/models/ownermodel.spec.js.map +0 -1
- package/lib/models/relations.d.ts +0 -181
- package/lib/models/relations.js +0 -157
- package/lib/models/relations.js.map +0 -1
- package/lib/models/relations.spec.d.ts +0 -12
- package/lib/models/relations.spec.js +0 -224
- package/lib/models/relations.spec.js.map +0 -1
- package/lib/models/rolemodel.d.ts +0 -10
- package/lib/models/rolemodel.js +0 -35
- package/lib/models/rolemodel.js.map +0 -1
- package/lib/models/rolemodel.spec.d.ts +0 -1
- package/lib/models/rolemodel.spec.js +0 -86
- package/lib/models/rolemodel.spec.js.map +0 -1
- package/lib/models/user.d.ts +0 -100
- package/lib/models/user.js +0 -157
- package/lib/models/user.js.map +0 -1
- package/lib/models/user.spec.d.ts +0 -1
- package/lib/models/user.spec.js +0 -88
- package/lib/models/user.spec.js.map +0 -1
- package/lib/queues/filequeue.d.ts +0 -58
- package/lib/queues/filequeue.js +0 -131
- package/lib/queues/filequeue.js.map +0 -1
- package/lib/queues/filequeue.spec.d.ts +0 -1
- package/lib/queues/filequeue.spec.js +0 -78
- package/lib/queues/filequeue.spec.js.map +0 -1
- package/lib/queues/memoryqueue.d.ts +0 -45
- package/lib/queues/memoryqueue.js +0 -81
- package/lib/queues/memoryqueue.js.map +0 -1
- package/lib/queues/memoryqueue.spec.d.ts +0 -1
- package/lib/queues/memoryqueue.spec.js +0 -192
- package/lib/queues/memoryqueue.spec.js.map +0 -1
- package/lib/queues/queue.spec.d.ts +0 -5
- package/lib/queues/queue.spec.js +0 -55
- package/lib/queues/queue.spec.js.map +0 -1
- package/lib/router.d.ts +0 -172
- package/lib/router.js +0 -419
- package/lib/router.js.map +0 -1
- package/lib/router.spec.d.ts +0 -1
- package/lib/router.spec.js +0 -229
- package/lib/router.spec.js.map +0 -1
- package/lib/services/asyncevents.d.ts +0 -151
- package/lib/services/asyncevents.js +0 -217
- package/lib/services/asyncevents.js.map +0 -1
- package/lib/services/asyncevents.spec.d.ts +0 -1
- package/lib/services/asyncevents.spec.js +0 -118
- package/lib/services/asyncevents.spec.js.map +0 -1
- package/lib/services/authentication.js +0 -772
- package/lib/services/authentication.js.map +0 -1
- package/lib/services/authentication.spec.d.ts +0 -1
- package/lib/services/authentication.spec.js +0 -458
- package/lib/services/authentication.spec.js.map +0 -1
- package/lib/services/binary.d.ts +0 -549
- package/lib/services/binary.js +0 -986
- package/lib/services/binary.js.map +0 -1
- package/lib/services/binary.spec.d.ts +0 -44
- package/lib/services/binary.spec.js +0 -438
- package/lib/services/binary.spec.js.map +0 -1
- package/lib/services/cloudbinary.spec.d.ts +0 -13
- package/lib/services/cloudbinary.spec.js +0 -192
- package/lib/services/cloudbinary.spec.js.map +0 -1
- package/lib/services/configuration.js +0 -178
- package/lib/services/configuration.js.map +0 -1
- package/lib/services/configuration.spec.d.ts +0 -1
- package/lib/services/configuration.spec.js +0 -87
- package/lib/services/configuration.spec.js.map +0 -1
- package/lib/services/cron.d.ts +0 -73
- package/lib/services/cron.js +0 -141
- package/lib/services/cron.js.map +0 -1
- package/lib/services/cron.spec.d.ts +0 -1
- package/lib/services/cron.spec.js +0 -76
- package/lib/services/cron.spec.js.map +0 -1
- package/lib/services/cryptoservice.js +0 -434
- package/lib/services/cryptoservice.js.map +0 -1
- package/lib/services/cryptoservice.spec.d.ts +0 -1
- package/lib/services/cryptoservice.spec.js +0 -177
- package/lib/services/cryptoservice.spec.js.map +0 -1
- package/lib/services/debugmailer.d.ts +0 -36
- package/lib/services/debugmailer.js +0 -52
- package/lib/services/debugmailer.js.map +0 -1
- package/lib/services/debugmailer.spec.d.ts +0 -1
- package/lib/services/debugmailer.spec.js +0 -29
- package/lib/services/debugmailer.spec.js.map +0 -1
- package/lib/services/domainservice.d.ts +0 -152
- package/lib/services/domainservice.js +0 -881
- package/lib/services/domainservice.js.map +0 -1
- package/lib/services/domainservice.spec.d.ts +0 -1
- package/lib/services/domainservice.spec.js +0 -401
- package/lib/services/domainservice.spec.js.map +0 -1
- package/lib/services/filebinary.d.ts +0 -133
- package/lib/services/filebinary.js +0 -371
- package/lib/services/filebinary.js.map +0 -1
- package/lib/services/filebinary.spec.d.ts +0 -21
- package/lib/services/filebinary.spec.js +0 -415
- package/lib/services/filebinary.spec.js.map +0 -1
- package/lib/services/fileconfiguration.d.ts +0 -22
- package/lib/services/fileconfiguration.js +0 -48
- package/lib/services/fileconfiguration.js.map +0 -1
- package/lib/services/fileconfiguration.spec.d.ts +0 -1
- package/lib/services/fileconfiguration.spec.js +0 -177
- package/lib/services/fileconfiguration.spec.js.map +0 -1
- package/lib/services/invitationservice.d.ts +0 -222
- package/lib/services/invitationservice.js +0 -526
- package/lib/services/invitationservice.js.map +0 -1
- package/lib/services/invitationservice.spec.d.ts +0 -1
- package/lib/services/invitationservice.spec.js +0 -516
- package/lib/services/invitationservice.spec.js.map +0 -1
- package/lib/services/kubernetesconfiguration.d.ts +0 -26
- package/lib/services/kubernetesconfiguration.js +0 -54
- package/lib/services/kubernetesconfiguration.js.map +0 -1
- package/lib/services/kubernetesconfiguration.spec.d.ts +0 -1
- package/lib/services/kubernetesconfiguration.spec.js +0 -147
- package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
- package/lib/services/mailer.d.ts +0 -165
- package/lib/services/mailer.js +0 -176
- package/lib/services/mailer.js.map +0 -1
- package/lib/services/mailer.spec.d.ts +0 -1
- package/lib/services/mailer.spec.js +0 -144
- package/lib/services/mailer.spec.js.map +0 -1
- package/lib/services/notificationservice.js.map +0 -1
- package/lib/services/notificationservice.spec.d.ts +0 -1
- package/lib/services/notificationservice.spec.js +0 -78
- package/lib/services/notificationservice.spec.js.map +0 -1
- package/lib/services/oauth.spec.d.ts +0 -1
- package/lib/services/oauth.spec.js +0 -184
- package/lib/services/oauth.spec.js.map +0 -1
- package/lib/services/prometheus.js +0 -160
- package/lib/services/prometheus.js.map +0 -1
- package/lib/services/prometheus.spec.d.ts +0 -1
- package/lib/services/prometheus.spec.js +0 -57
- package/lib/services/prometheus.spec.js.map +0 -1
- package/lib/services/resource.d.ts +0 -87
- package/lib/services/resource.js +0 -156
- package/lib/services/resource.js.map +0 -1
- package/lib/services/resource.spec.d.ts +0 -1
- package/lib/services/resource.spec.js +0 -122
- package/lib/services/resource.spec.js.map +0 -1
- package/lib/services/service.spec.d.ts +0 -1
- package/lib/services/service.spec.js +0 -268
- package/lib/services/service.spec.js.map +0 -1
- package/lib/stores/aggregator.d.ts +0 -41
- package/lib/stores/aggregator.js +0 -80
- package/lib/stores/aggregator.js.map +0 -1
- package/lib/stores/aliasstore.d.ts +0 -108
- package/lib/stores/aliasstore.js +0 -168
- package/lib/stores/aliasstore.js.map +0 -1
- package/lib/stores/aliasstore.spec.d.ts +0 -11
- package/lib/stores/aliasstore.spec.js +0 -89
- package/lib/stores/aliasstore.spec.js.map +0 -1
- package/lib/stores/file.d.ts +0 -107
- package/lib/stores/file.js +0 -188
- package/lib/stores/file.js.map +0 -1
- package/lib/stores/file.spec.d.ts +0 -19
- package/lib/stores/file.spec.js +0 -232
- package/lib/stores/file.spec.js.map +0 -1
- package/lib/stores/mapper.d.ts +0 -149
- package/lib/stores/mapper.js +0 -293
- package/lib/stores/mapper.js.map +0 -1
- package/lib/stores/mapper.spec.d.ts +0 -1
- package/lib/stores/mapper.spec.js +0 -160
- package/lib/stores/mapper.spec.js.map +0 -1
- package/lib/stores/memory.d.ts +0 -151
- package/lib/stores/memory.js +0 -371
- package/lib/stores/memory.js.map +0 -1
- package/lib/stores/memory.spec.d.ts +0 -20
- package/lib/stores/memory.spec.js +0 -328
- package/lib/stores/memory.spec.js.map +0 -1
- package/lib/stores/modelmapper.d.ts +0 -61
- package/lib/stores/modelmapper.js +0 -199
- package/lib/stores/modelmapper.js.map +0 -1
- package/lib/stores/store.spec.d.ts +0 -65
- package/lib/stores/store.spec.js +0 -906
- package/lib/stores/store.spec.js.map +0 -1
- package/lib/test.d.ts +0 -162
- package/lib/test.js +0 -399
- package/lib/test.js.map +0 -1
- package/lib/unpackedapplication.d.ts +0 -76
- package/lib/unpackedapplication.js +0 -299
- package/lib/unpackedapplication.js.map +0 -1
- package/lib/utils/abstractdeployer.spec.d.ts +0 -1
- package/lib/utils/abstractdeployer.spec.js +0 -21
- package/lib/utils/abstractdeployer.spec.js.map +0 -1
- package/lib/utils/case.d.ts +0 -7
- package/lib/utils/case.js +0 -43
- package/lib/utils/case.js.map +0 -1
- package/lib/utils/case.spec.d.ts +0 -1
- package/lib/utils/case.spec.js +0 -50
- package/lib/utils/case.spec.js.map +0 -1
- package/lib/utils/context.d.ts +0 -462
- package/lib/utils/context.js +0 -732
- package/lib/utils/context.js.map +0 -1
- package/lib/utils/context.spec.d.ts +0 -9
- package/lib/utils/context.spec.js +0 -372
- package/lib/utils/context.spec.js.map +0 -1
- package/lib/utils/cookie.js.map +0 -1
- package/lib/utils/cookie.spec.d.ts +0 -1
- package/lib/utils/cookie.spec.js +0 -78
- package/lib/utils/cookie.spec.js.map +0 -1
- package/lib/utils/esm.d.ts +0 -13
- package/lib/utils/esm.js +0 -19
- package/lib/utils/esm.js.map +0 -1
- package/lib/utils/httpcontext.js.map +0 -1
- package/lib/utils/httpcontext.spec.d.ts +0 -4
- package/lib/utils/httpcontext.spec.js +0 -77
- package/lib/utils/httpcontext.spec.js.map +0 -1
- package/lib/utils/logger.d.ts +0 -91
- package/lib/utils/logger.js +0 -121
- package/lib/utils/logger.js.map +0 -1
- package/lib/utils/logger.spec.d.ts +0 -1
- package/lib/utils/logger.spec.js +0 -48
- package/lib/utils/logger.spec.js.map +0 -1
- package/lib/utils/serializers.d.ts +0 -161
- package/lib/utils/serializers.js +0 -420
- package/lib/utils/serializers.js.map +0 -1
- package/lib/utils/serializers.spec.d.ts +0 -1
- package/lib/utils/serializers.spec.js +0 -313
- package/lib/utils/serializers.spec.js.map +0 -1
- package/lib/utils/session.d.ts +0 -126
- package/lib/utils/session.js +0 -166
- package/lib/utils/session.js.map +0 -1
- package/lib/utils/session.spec.d.ts +0 -1
- package/lib/utils/session.spec.js +0 -71
- package/lib/utils/session.spec.js.map +0 -1
- package/lib/utils/throttler.d.ts +0 -102
- package/lib/utils/throttler.js +0 -168
- package/lib/utils/throttler.js.map +0 -1
- package/lib/utils/throttler.spec.d.ts +0 -1
- package/lib/utils/throttler.spec.js +0 -55
- package/lib/utils/throttler.spec.js.map +0 -1
- package/lib/utils/waiter.d.ts +0 -93
- package/lib/utils/waiter.js +0 -148
- package/lib/utils/waiter.js.map +0 -1
- package/lib/utils/waiter.spec.d.ts +0 -1
- package/lib/utils/waiter.spec.js +0 -98
- package/lib/utils/waiter.spec.js.map +0 -1
- package/test/config-file-missing-file-no-default.json +0 -44
- package/test/config-file-missing-file.json +0 -55
- package/test/config-file-no-reload.json +0 -69
- package/test/config-file-reload.json +0 -68
- package/test/config-invitation.json +0 -63
- package/test/config-kube-reload.json +0 -68
- package/test/config-reload.json +0 -66
- package/test/config.old.json +0 -152
- package/test/jsonutils/mdocs.yaml +0 -56
- package/test/jsonutils/test.json +0 -3
- package/test/jsonutils/test.yml +0 -5
- package/test/moddas/annotatedservice.js +0 -23
- package/test/moddas/debugmailer.js +0 -13
- package/test/moddas/fakeservice.js +0 -4
- package/test/moddas/voidstore.js +0 -66
- package/test/models/ident.js +0 -36
- package/test/models/task.js +0 -42
package/lib/utils/context.js
DELETED
|
@@ -1,732 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import acceptLanguage from "accept-language";
|
|
8
|
-
import { EventEmitter } from "events";
|
|
9
|
-
import sanitize from "sanitize-html";
|
|
10
|
-
import { Readable } from "stream";
|
|
11
|
-
import { WritableStreamBuffer } from "stream-buffers";
|
|
12
|
-
import { NotEnumerable } from "../models/coremodel.js";
|
|
13
|
-
import { Session } from "../utils/session.js";
|
|
14
|
-
import { JSONUtils } from "./serializers.js";
|
|
15
|
-
/**
|
|
16
|
-
* @category CoreFeatures
|
|
17
|
-
*/
|
|
18
|
-
class Cookie {
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* OperationContext is used when call to an operation
|
|
22
|
-
*
|
|
23
|
-
* @param T type of input for this context
|
|
24
|
-
* @param U type of output for this context
|
|
25
|
-
*/
|
|
26
|
-
export class OperationContext extends EventEmitter {
|
|
27
|
-
/**
|
|
28
|
-
* @ignore
|
|
29
|
-
* Used by Webda framework to set the body, session and output stream if known
|
|
30
|
-
*/
|
|
31
|
-
constructor(webda, stream = undefined) {
|
|
32
|
-
super();
|
|
33
|
-
this.extensions = {};
|
|
34
|
-
this._webda = webda;
|
|
35
|
-
this._promises = [];
|
|
36
|
-
this._body = undefined;
|
|
37
|
-
this._stream = stream;
|
|
38
|
-
if (stream === undefined) {
|
|
39
|
-
this.createStream();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Get an extension of the context
|
|
44
|
-
* @param name of the extension
|
|
45
|
-
* @returns extension object
|
|
46
|
-
*/
|
|
47
|
-
getExtension(name) {
|
|
48
|
-
return this.extensions[name];
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* For easier compatibility with WebContext
|
|
52
|
-
* On OperationContext this call is simply ignored
|
|
53
|
-
*/
|
|
54
|
-
setHeader(_name, _value) {
|
|
55
|
-
// Do nothing
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* For easier compatibility with WebContext
|
|
59
|
-
* On OperationContext this call is simply ignored
|
|
60
|
-
*/
|
|
61
|
-
writeHead(_code, _headers) {
|
|
62
|
-
// Do nothing
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
*
|
|
66
|
-
* @param name to add
|
|
67
|
-
* @param extension object to store
|
|
68
|
-
*/
|
|
69
|
-
setExtension(name, extension) {
|
|
70
|
-
this.extensions[name] = extension;
|
|
71
|
-
return this;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Return the webda
|
|
75
|
-
*/
|
|
76
|
-
getWebda() {
|
|
77
|
-
return this._webda;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Register a promise with the context
|
|
81
|
-
* @param promise
|
|
82
|
-
*/
|
|
83
|
-
addAsyncRequest(promise) {
|
|
84
|
-
this._promises.push(promise);
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Get output as string, if a OutputStream is provided it will returned null
|
|
88
|
-
* @returns
|
|
89
|
-
*/
|
|
90
|
-
getOutput() {
|
|
91
|
-
if (this._stream instanceof WritableStreamBuffer && this._stream.size()) {
|
|
92
|
-
return this._stream.getContents().toString();
|
|
93
|
-
}
|
|
94
|
-
return this._body;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Get current http context
|
|
98
|
-
*/
|
|
99
|
-
getHttpContext() {
|
|
100
|
-
return this.getExtension("http");
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Ensure the whole execution is finished
|
|
104
|
-
*/
|
|
105
|
-
async end() {
|
|
106
|
-
this.emit("end");
|
|
107
|
-
await Promise.all(this._promises);
|
|
108
|
-
this.emit("close");
|
|
109
|
-
}
|
|
110
|
-
async getInput(sanitizedOptions = {
|
|
111
|
-
allowedTags: [],
|
|
112
|
-
allowedAttributes: {}
|
|
113
|
-
}) {
|
|
114
|
-
if (this._sanitized && !sanitizedOptions.raw) {
|
|
115
|
-
return this._sanitized;
|
|
116
|
-
}
|
|
117
|
-
let recursiveSanitize = (obj, options = undefined, path = "") => {
|
|
118
|
-
if (typeof obj === "string") {
|
|
119
|
-
return sanitize(obj, options);
|
|
120
|
-
}
|
|
121
|
-
if (obj !== null && typeof obj === "object") {
|
|
122
|
-
Object.keys(obj).forEach(key => {
|
|
123
|
-
obj[key] =
|
|
124
|
-
Array.isArray(sanitizedOptions.raw) && sanitizedOptions.raw.includes(path + key)
|
|
125
|
-
? obj[key]
|
|
126
|
-
: recursiveSanitize(obj[key], options, path + key + ".");
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
return obj;
|
|
130
|
-
};
|
|
131
|
-
try {
|
|
132
|
-
let data = await this.getRawInputAsString(this.getWebda().getGlobalParams().requestLimit, this.getWebda().getGlobalParams().requestTimeout);
|
|
133
|
-
if (sanitizedOptions.raw === true) {
|
|
134
|
-
return JSON.parse(data || sanitizedOptions.defaultValue);
|
|
135
|
-
}
|
|
136
|
-
if (!data || data.length === 0) {
|
|
137
|
-
this._sanitized = sanitizedOptions.defaultValue;
|
|
138
|
-
return this._sanitized;
|
|
139
|
-
}
|
|
140
|
-
this._sanitized = recursiveSanitize(JSON.parse(data), sanitizedOptions);
|
|
141
|
-
}
|
|
142
|
-
catch (err) {
|
|
143
|
-
this.log("ERROR", err, `Body: '${await this.getRawInputAsString()}'`);
|
|
144
|
-
this._sanitized = sanitizedOptions.defaultValue;
|
|
145
|
-
}
|
|
146
|
-
return this._sanitized;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* By default empty
|
|
150
|
-
* @returns
|
|
151
|
-
*/
|
|
152
|
-
async getRawInputAsString(limit = 1024 * 1024 * 10, timeout = 60000, encoding) {
|
|
153
|
-
return (await this.getRawInput(limit, timeout)).toString(encoding);
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* @override
|
|
157
|
-
*/
|
|
158
|
-
async getRawInput(_limit = 1024 * 1024 * 10, _timeout = 60000) {
|
|
159
|
-
return Buffer.from("");
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* @override
|
|
163
|
-
*/
|
|
164
|
-
getRawStream() {
|
|
165
|
-
return undefined;
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Get the HTTP stream to output raw data
|
|
169
|
-
* @returns {*}
|
|
170
|
-
*/
|
|
171
|
-
getOutputStream() {
|
|
172
|
-
return this._stream;
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Get linked session
|
|
176
|
-
* @returns
|
|
177
|
-
*/
|
|
178
|
-
getSession() {
|
|
179
|
-
return this.session;
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Remove sanitized body
|
|
183
|
-
*/
|
|
184
|
-
reinit() {
|
|
185
|
-
this._sanitized = undefined;
|
|
186
|
-
if (!this._stream || this._stream instanceof WritableStreamBuffer) {
|
|
187
|
-
this.createStream();
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Create a buffer stream
|
|
192
|
-
*/
|
|
193
|
-
createStream() {
|
|
194
|
-
this._stream = new WritableStreamBuffer({
|
|
195
|
-
initialSize: 100 * 1024,
|
|
196
|
-
incrementAmount: 100 * 1024
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Proxy for simplification
|
|
201
|
-
* @param level
|
|
202
|
-
* @param args
|
|
203
|
-
*/
|
|
204
|
-
log(level, ...args) {
|
|
205
|
-
this._webda.log(level, ...args);
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Create a new session
|
|
209
|
-
* @returns
|
|
210
|
-
*/
|
|
211
|
-
async newSession() {
|
|
212
|
-
this.session = await this._webda.getService("SessionManager").newSession(this);
|
|
213
|
-
return this.session;
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Remove everything that was about to be sent
|
|
217
|
-
*/
|
|
218
|
-
resetResponse() {
|
|
219
|
-
this._body = undefined;
|
|
220
|
-
if (this._stream instanceof WritableStreamBuffer) {
|
|
221
|
-
this.createStream();
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Write data to the client
|
|
226
|
-
*
|
|
227
|
-
* @param output If it is an object it will be serialized with toPublicJSON, if it is a String it will be appended to the result, if it is a buffer it will replace the result
|
|
228
|
-
* @param ...args any arguments to pass to the toPublicJSON method
|
|
229
|
-
*/
|
|
230
|
-
write(output, _encoding, _cb) {
|
|
231
|
-
if (!output) {
|
|
232
|
-
return false;
|
|
233
|
-
}
|
|
234
|
-
if (typeof output === "object" && !(output instanceof Buffer)) {
|
|
235
|
-
this._body = JSONUtils.stringify(output, undefined, 0, true);
|
|
236
|
-
}
|
|
237
|
-
else if (typeof output == "string") {
|
|
238
|
-
if (this._body == undefined) {
|
|
239
|
-
this._body = "";
|
|
240
|
-
}
|
|
241
|
-
this._body += output;
|
|
242
|
-
}
|
|
243
|
-
else {
|
|
244
|
-
this._body = output.toString();
|
|
245
|
-
}
|
|
246
|
-
return true;
|
|
247
|
-
}
|
|
248
|
-
async init() {
|
|
249
|
-
return this;
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* Get the current user from session
|
|
253
|
-
*/
|
|
254
|
-
async getCurrentUser(refresh = false) {
|
|
255
|
-
if (!this.getCurrentUserId()) {
|
|
256
|
-
return undefined;
|
|
257
|
-
}
|
|
258
|
-
// Caching the answer
|
|
259
|
-
if (!this.user || refresh) {
|
|
260
|
-
this.user = await this._webda.getApplication().getModel("User").ref(this.getCurrentUserId()).get(this);
|
|
261
|
-
}
|
|
262
|
-
return this.user;
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Get the current user id from session
|
|
266
|
-
*/
|
|
267
|
-
getCurrentUserId() {
|
|
268
|
-
return undefined;
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* Global context is the default Context
|
|
272
|
-
*
|
|
273
|
-
* Whenever a request is internal to the system
|
|
274
|
-
* or not linked to a user request
|
|
275
|
-
* @returns
|
|
276
|
-
*/
|
|
277
|
-
isGlobal() {
|
|
278
|
-
return false;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
__decorate([
|
|
282
|
-
NotEnumerable
|
|
283
|
-
], OperationContext.prototype, "_webda", void 0);
|
|
284
|
-
__decorate([
|
|
285
|
-
NotEnumerable
|
|
286
|
-
], OperationContext.prototype, "_promises", void 0);
|
|
287
|
-
__decorate([
|
|
288
|
-
NotEnumerable
|
|
289
|
-
], OperationContext.prototype, "_stream", void 0);
|
|
290
|
-
export class GlobalContext extends OperationContext {
|
|
291
|
-
constructor(webda) {
|
|
292
|
-
super(webda);
|
|
293
|
-
this.session = new Session();
|
|
294
|
-
this.session.login("system", "system");
|
|
295
|
-
// Disable logout
|
|
296
|
-
this.session.logout = () => { };
|
|
297
|
-
}
|
|
298
|
-
/**
|
|
299
|
-
* @override
|
|
300
|
-
*/
|
|
301
|
-
isGlobal() {
|
|
302
|
-
return true;
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
/**
|
|
306
|
-
* Simple Operation Context with custom input
|
|
307
|
-
*/
|
|
308
|
-
export class SimpleOperationContext extends OperationContext {
|
|
309
|
-
constructor(webda) {
|
|
310
|
-
super(webda);
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* Create another context from an existing one
|
|
314
|
-
* @param context
|
|
315
|
-
* @returns
|
|
316
|
-
*/
|
|
317
|
-
static async fromContext(context) {
|
|
318
|
-
const ctx = new SimpleOperationContext(context.getWebda());
|
|
319
|
-
ctx.setSession(context.getSession());
|
|
320
|
-
ctx.setInput(Buffer.from(JSONUtils.stringify(await context.getInput())));
|
|
321
|
-
return ctx;
|
|
322
|
-
}
|
|
323
|
-
/**
|
|
324
|
-
* Set the input
|
|
325
|
-
*/
|
|
326
|
-
setInput(input) {
|
|
327
|
-
this.input = input;
|
|
328
|
-
return this;
|
|
329
|
-
}
|
|
330
|
-
/**
|
|
331
|
-
* Set the session
|
|
332
|
-
* @param session
|
|
333
|
-
* @returns
|
|
334
|
-
*/
|
|
335
|
-
setSession(session) {
|
|
336
|
-
this.session = session;
|
|
337
|
-
return this;
|
|
338
|
-
}
|
|
339
|
-
/**
|
|
340
|
-
* @override
|
|
341
|
-
*/
|
|
342
|
-
async getRawInput(limit = 1024 * 1024 * 10, _timeout = 60000) {
|
|
343
|
-
return this.input.slice(0, limit);
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
/**
|
|
347
|
-
* This represent in fact a WebContext
|
|
348
|
-
* In 3.0 an abstract version of Context will replace this (closer to OperationContext)
|
|
349
|
-
* @category CoreFeatures
|
|
350
|
-
*
|
|
351
|
-
*/
|
|
352
|
-
export class WebContext extends OperationContext {
|
|
353
|
-
/**
|
|
354
|
-
* Set current http context
|
|
355
|
-
* @param httpContext current http context
|
|
356
|
-
*/
|
|
357
|
-
setHttpContext(httpContext) {
|
|
358
|
-
this.extensions["http"] = httpContext;
|
|
359
|
-
this.reinit();
|
|
360
|
-
}
|
|
361
|
-
/**
|
|
362
|
-
* @override
|
|
363
|
-
*/
|
|
364
|
-
async getRawInputAsString(limit = 1024 * 1024 * 10, timeout = 60000, encoding) {
|
|
365
|
-
return this.getHttpContext().getRawBodyAsString(limit, timeout, encoding);
|
|
366
|
-
}
|
|
367
|
-
/**
|
|
368
|
-
* @override
|
|
369
|
-
*/
|
|
370
|
-
async getRawInput(limit = 1024 * 1024 * 10, timeout = 60000) {
|
|
371
|
-
return this.getHttpContext().getRawBody(limit, timeout);
|
|
372
|
-
}
|
|
373
|
-
/**
|
|
374
|
-
* @override
|
|
375
|
-
*/
|
|
376
|
-
getRawStream() {
|
|
377
|
-
return this.getHttpContext().getRawStream();
|
|
378
|
-
}
|
|
379
|
-
/**
|
|
380
|
-
* Get output headers
|
|
381
|
-
*/
|
|
382
|
-
getResponseHeaders() {
|
|
383
|
-
return this._outputHeaders;
|
|
384
|
-
}
|
|
385
|
-
getRequestParameters() {
|
|
386
|
-
return this.parameters;
|
|
387
|
-
}
|
|
388
|
-
parameter(name) {
|
|
389
|
-
return this.getParameters()[name];
|
|
390
|
-
}
|
|
391
|
-
getParameters() {
|
|
392
|
-
return this.parameters;
|
|
393
|
-
}
|
|
394
|
-
processParameters() {
|
|
395
|
-
this.parameters = Object.assign({}, this._serviceParams);
|
|
396
|
-
this.parameters = Object.assign(this.parameters, this._pathParams);
|
|
397
|
-
}
|
|
398
|
-
getServiceParameters() {
|
|
399
|
-
return this._serviceParams;
|
|
400
|
-
}
|
|
401
|
-
getPathParameters() {
|
|
402
|
-
return this._pathParams;
|
|
403
|
-
}
|
|
404
|
-
setServiceParameters(params) {
|
|
405
|
-
this._serviceParams = params;
|
|
406
|
-
this.processParameters();
|
|
407
|
-
}
|
|
408
|
-
setPathParameters(params) {
|
|
409
|
-
this._pathParams = params;
|
|
410
|
-
this.processParameters();
|
|
411
|
-
}
|
|
412
|
-
/**
|
|
413
|
-
* Remove everything that was about to be sent
|
|
414
|
-
*/
|
|
415
|
-
resetResponse() {
|
|
416
|
-
this._outputHeaders = {};
|
|
417
|
-
super.resetResponse();
|
|
418
|
-
}
|
|
419
|
-
/**
|
|
420
|
-
* Write data to the client
|
|
421
|
-
*
|
|
422
|
-
* @param output If it is an object it will be serializeb with toPublicJSON, if it is a String it will be appended to the result, if it is a buffer it will replace the result
|
|
423
|
-
* @param ...args any arguments to pass to the toPublicJSON method
|
|
424
|
-
*/
|
|
425
|
-
// @ts-ignore
|
|
426
|
-
write(output, encoding, cb) {
|
|
427
|
-
if (this.statusCode === 204) {
|
|
428
|
-
this.statusCode = 200;
|
|
429
|
-
}
|
|
430
|
-
if (typeof output === "object" && !(output instanceof Buffer) && !this.hasFlushedHeaders()) {
|
|
431
|
-
this.setHeader("Content-type", "application/json");
|
|
432
|
-
}
|
|
433
|
-
return super.write(output, encoding, cb);
|
|
434
|
-
}
|
|
435
|
-
/**
|
|
436
|
-
* Set a header value
|
|
437
|
-
*
|
|
438
|
-
* @param {String} header name
|
|
439
|
-
* @param {String} value
|
|
440
|
-
*/
|
|
441
|
-
setHeader(header, value) {
|
|
442
|
-
if (this.headersFlushed) {
|
|
443
|
-
throw new Error("Headers have been sent already");
|
|
444
|
-
}
|
|
445
|
-
if (value) {
|
|
446
|
-
this._outputHeaders[header] = value;
|
|
447
|
-
}
|
|
448
|
-
else if (this._outputHeaders[header]) {
|
|
449
|
-
delete this._outputHeaders[header];
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
/**
|
|
453
|
-
* Write the http return code and some headers
|
|
454
|
-
* Those headers are not flushed yet so can still be overwritten
|
|
455
|
-
*
|
|
456
|
-
* @param {Number} statusCode to return to the client
|
|
457
|
-
* @param {Object} headers to add to the response
|
|
458
|
-
*/
|
|
459
|
-
writeHead(statusCode, headers = undefined) {
|
|
460
|
-
this._outputHeaders = { ...this._outputHeaders, ...headers };
|
|
461
|
-
// Ensure undefined values are removed
|
|
462
|
-
Object.keys(this._outputHeaders)
|
|
463
|
-
.filter(h => this._outputHeaders[h] === undefined)
|
|
464
|
-
.forEach(h => delete this._outputHeaders[h]);
|
|
465
|
-
if (statusCode !== undefined) {
|
|
466
|
-
this.statusCode = statusCode;
|
|
467
|
-
}
|
|
468
|
-
return this;
|
|
469
|
-
}
|
|
470
|
-
/**
|
|
471
|
-
*
|
|
472
|
-
* @returns
|
|
473
|
-
*/
|
|
474
|
-
getResponseCode() {
|
|
475
|
-
return this.statusCode || 200;
|
|
476
|
-
}
|
|
477
|
-
/**
|
|
478
|
-
* Redirect to another url
|
|
479
|
-
* @param url
|
|
480
|
-
*/
|
|
481
|
-
redirect(url) {
|
|
482
|
-
this.writeHead(302, { Location: url });
|
|
483
|
-
}
|
|
484
|
-
/**
|
|
485
|
-
* For compatibility reason
|
|
486
|
-
*/
|
|
487
|
-
cookie(param, value, options = undefined) {
|
|
488
|
-
/** @ignore */
|
|
489
|
-
if (this._cookie === undefined) {
|
|
490
|
-
this._cookie = new Map();
|
|
491
|
-
}
|
|
492
|
-
this._cookie[param] = { name: param, value, options };
|
|
493
|
-
}
|
|
494
|
-
getResponseCookies() {
|
|
495
|
-
return this._cookie;
|
|
496
|
-
}
|
|
497
|
-
isEnded() {
|
|
498
|
-
return this._ended;
|
|
499
|
-
}
|
|
500
|
-
/******************************
|
|
501
|
-
*
|
|
502
|
-
* Express Compatibiliy method
|
|
503
|
-
*
|
|
504
|
-
******************************/
|
|
505
|
-
/**
|
|
506
|
-
* Express response allow statusCode to be defined this way
|
|
507
|
-
* @param code to return
|
|
508
|
-
*/
|
|
509
|
-
status(code) {
|
|
510
|
-
this.statusCode = code;
|
|
511
|
-
return this;
|
|
512
|
-
}
|
|
513
|
-
/**
|
|
514
|
-
* Express response allow answer to be sent this way
|
|
515
|
-
* @param code to return
|
|
516
|
-
*/
|
|
517
|
-
json(obj) {
|
|
518
|
-
this.write(obj);
|
|
519
|
-
return this;
|
|
520
|
-
}
|
|
521
|
-
/**
|
|
522
|
-
* Return the response size
|
|
523
|
-
* @returns
|
|
524
|
-
*/
|
|
525
|
-
getResponseSize() {
|
|
526
|
-
return this._body ? Buffer.byteLength(this._body, "utf8") : undefined;
|
|
527
|
-
}
|
|
528
|
-
/**
|
|
529
|
-
* Flush the request
|
|
530
|
-
*
|
|
531
|
-
* @emits 'finish' event
|
|
532
|
-
* @throws Error if the request was already ended
|
|
533
|
-
*/
|
|
534
|
-
async end() {
|
|
535
|
-
/** @ignore */
|
|
536
|
-
if (this._ended) {
|
|
537
|
-
return this._ended;
|
|
538
|
-
}
|
|
539
|
-
this._ended = (async () => {
|
|
540
|
-
this.emit("end");
|
|
541
|
-
if (this.getExtension("http")) {
|
|
542
|
-
await this._webda.getService("SessionManager").save(this, this.session);
|
|
543
|
-
}
|
|
544
|
-
await Promise.all(this._promises);
|
|
545
|
-
if (this._stream instanceof WritableStreamBuffer && this._stream.size()) {
|
|
546
|
-
this._body = this._stream.getContents().toString();
|
|
547
|
-
this.statusCode = this.statusCode < 300 ? 200 : this.statusCode;
|
|
548
|
-
}
|
|
549
|
-
if (!this.headersFlushed) {
|
|
550
|
-
this._webda.flushHeaders(this);
|
|
551
|
-
}
|
|
552
|
-
this._webda.flush(this);
|
|
553
|
-
this.emit("close");
|
|
554
|
-
})();
|
|
555
|
-
return this._ended;
|
|
556
|
-
}
|
|
557
|
-
/**
|
|
558
|
-
* Alias to keep compatibility with WebContext
|
|
559
|
-
* @param sanitizedOptions
|
|
560
|
-
* @returns
|
|
561
|
-
*/
|
|
562
|
-
async getRequestBody(sanitizedOptions = {
|
|
563
|
-
allowedTags: [],
|
|
564
|
-
allowedAttributes: {}
|
|
565
|
-
}) {
|
|
566
|
-
return this.getInput(sanitizedOptions);
|
|
567
|
-
}
|
|
568
|
-
/**
|
|
569
|
-
* Get request body
|
|
570
|
-
* @returns
|
|
571
|
-
*/
|
|
572
|
-
getResponseBody() {
|
|
573
|
-
if (!this._body && this._stream instanceof WritableStreamBuffer) {
|
|
574
|
-
return this._stream.getContents();
|
|
575
|
-
}
|
|
576
|
-
return this._body;
|
|
577
|
-
}
|
|
578
|
-
/**
|
|
579
|
-
* Retrieve a http.IncomingMessage valid from Context
|
|
580
|
-
*
|
|
581
|
-
* Need more testing
|
|
582
|
-
* @returns
|
|
583
|
-
*/
|
|
584
|
-
getRequest() {
|
|
585
|
-
const stream = Readable.from([JSON.stringify(this.getRequestBody())]);
|
|
586
|
-
return {
|
|
587
|
-
httpVersionMajor: 1,
|
|
588
|
-
httpVersionMinor: 0,
|
|
589
|
-
headers: this.headers,
|
|
590
|
-
httpVersion: "1.0",
|
|
591
|
-
method: this.getHttpContext().getMethod(),
|
|
592
|
-
rawHeaders: [], // TODO Regenerate headers based on the map
|
|
593
|
-
rawTrailers: [],
|
|
594
|
-
setTimeout: (msec, callback) => {
|
|
595
|
-
setTimeout(callback, msec);
|
|
596
|
-
},
|
|
597
|
-
socket: undefined,
|
|
598
|
-
statusCode: 200,
|
|
599
|
-
trailers: {},
|
|
600
|
-
url: this.getHttpContext().getUrl(),
|
|
601
|
-
connection: undefined,
|
|
602
|
-
...stream
|
|
603
|
-
};
|
|
604
|
-
}
|
|
605
|
-
/**
|
|
606
|
-
* Get a service from webda
|
|
607
|
-
*
|
|
608
|
-
* @see Webda
|
|
609
|
-
* @param {String} name of the service
|
|
610
|
-
*/
|
|
611
|
-
getService(name) {
|
|
612
|
-
return this._webda.getService(name);
|
|
613
|
-
}
|
|
614
|
-
/**
|
|
615
|
-
* Get the HTTP stream to output raw data
|
|
616
|
-
* @returns {*}
|
|
617
|
-
*/
|
|
618
|
-
getStream() {
|
|
619
|
-
return this.getOutputStream();
|
|
620
|
-
}
|
|
621
|
-
/**
|
|
622
|
-
* Get the current user id from session
|
|
623
|
-
*/
|
|
624
|
-
getCurrentUserId() {
|
|
625
|
-
if (this.session) {
|
|
626
|
-
return this.session.userId;
|
|
627
|
-
}
|
|
628
|
-
return undefined;
|
|
629
|
-
}
|
|
630
|
-
/**
|
|
631
|
-
* Return the service handling the request
|
|
632
|
-
*/
|
|
633
|
-
getExecutor() {
|
|
634
|
-
return this._executor;
|
|
635
|
-
}
|
|
636
|
-
/**
|
|
637
|
-
* Execute the target route
|
|
638
|
-
*/
|
|
639
|
-
async execute() {
|
|
640
|
-
return this._route._method(this);
|
|
641
|
-
}
|
|
642
|
-
/**
|
|
643
|
-
* Get the request locale if found
|
|
644
|
-
*/
|
|
645
|
-
getLocale() {
|
|
646
|
-
let locales = this._webda.getLocales();
|
|
647
|
-
acceptLanguage.languages(locales);
|
|
648
|
-
let header = this.getHttpContext().getUniqueHeader("accept-language");
|
|
649
|
-
if (header) {
|
|
650
|
-
return acceptLanguage.get(header);
|
|
651
|
-
}
|
|
652
|
-
return locales[0];
|
|
653
|
-
}
|
|
654
|
-
/**
|
|
655
|
-
* @ignore
|
|
656
|
-
* Used by Webda framework to set the current route
|
|
657
|
-
*/
|
|
658
|
-
setRoute(route) {
|
|
659
|
-
this._route = route;
|
|
660
|
-
this.parameters = { ...route.params, ...this.parameters };
|
|
661
|
-
}
|
|
662
|
-
getRoute() {
|
|
663
|
-
return this._route;
|
|
664
|
-
}
|
|
665
|
-
/**
|
|
666
|
-
* @param executor {object} Set the current executor for this context
|
|
667
|
-
*/
|
|
668
|
-
setExecutor(executor) {
|
|
669
|
-
this._executor = executor;
|
|
670
|
-
}
|
|
671
|
-
/**
|
|
672
|
-
* @ignore
|
|
673
|
-
* Used for compatibility with express module
|
|
674
|
-
*/
|
|
675
|
-
logIn() {
|
|
676
|
-
// Empty for compatibility
|
|
677
|
-
}
|
|
678
|
-
/**
|
|
679
|
-
* Return true if Headers got flushed already
|
|
680
|
-
* @returns
|
|
681
|
-
*/
|
|
682
|
-
hasFlushedHeaders() {
|
|
683
|
-
return this.headersFlushed;
|
|
684
|
-
}
|
|
685
|
-
/**
|
|
686
|
-
* Set flushed header status
|
|
687
|
-
* @param status
|
|
688
|
-
*/
|
|
689
|
-
setFlushedHeaders(status = true) {
|
|
690
|
-
this.headersFlushed = status;
|
|
691
|
-
}
|
|
692
|
-
/**
|
|
693
|
-
* @ignore
|
|
694
|
-
* Used by Webda framework to set the body, session and output stream if known
|
|
695
|
-
*/
|
|
696
|
-
constructor(webda, httpContext, stream = undefined) {
|
|
697
|
-
super(webda, stream);
|
|
698
|
-
this._ended = undefined;
|
|
699
|
-
this.parameters = undefined;
|
|
700
|
-
this._pathParams = {};
|
|
701
|
-
this._serviceParams = {};
|
|
702
|
-
this.setHttpContext(httpContext);
|
|
703
|
-
this._outputHeaders = webda.getGlobalParams().defaultHeaders || {
|
|
704
|
-
// Gotta Cache ‘em all: bending the rules of web cache exploitation
|
|
705
|
-
// https://defcon.org/html/defcon-32/dc-32-speakers.html
|
|
706
|
-
"Cache-Control": "private"
|
|
707
|
-
};
|
|
708
|
-
this.headersFlushed = false;
|
|
709
|
-
this.statusCode = 204;
|
|
710
|
-
this.parameters = {};
|
|
711
|
-
this.headers = new Map();
|
|
712
|
-
this.processParameters();
|
|
713
|
-
}
|
|
714
|
-
async init(force = false) {
|
|
715
|
-
if (this._init && !force) {
|
|
716
|
-
return this._init;
|
|
717
|
-
}
|
|
718
|
-
this._stream.on("pipe", () => {
|
|
719
|
-
this._webda.flushHeaders(this);
|
|
720
|
-
this.headersFlushed = true;
|
|
721
|
-
});
|
|
722
|
-
if (this.getExtension("http")) {
|
|
723
|
-
this.session = (await this._webda.getService("SessionManager").load(this)).getProxy();
|
|
724
|
-
}
|
|
725
|
-
this._init = super.init();
|
|
726
|
-
return this._init;
|
|
727
|
-
}
|
|
728
|
-
emitError(err) {
|
|
729
|
-
this.emit("error", err);
|
|
730
|
-
}
|
|
731
|
-
}
|
|
732
|
-
//# sourceMappingURL=context.js.map
|