@webda/core 4.0.0-beta.1 → 4.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +252 -0
- package/lib/application/application.d.ts +437 -0
- package/lib/application/application.d.ts.map +1 -0
- package/lib/application/application.js +792 -0
- package/lib/application/application.js.map +1 -0
- package/lib/application/hooks.d.ts +34 -0
- package/lib/application/hooks.d.ts.map +1 -0
- package/lib/application/hooks.js +57 -0
- package/lib/application/hooks.js.map +1 -0
- package/lib/application/iapplication.d.ts +43 -0
- package/lib/application/iapplication.d.ts.map +1 -0
- package/lib/application/iapplication.js +2 -0
- package/lib/application/iapplication.js.map +1 -0
- package/lib/application/iconfiguration.d.ts +176 -0
- package/lib/application/iconfiguration.d.ts.map +1 -0
- package/lib/application/iconfiguration.js +8 -0
- package/lib/application/iconfiguration.js.map +1 -0
- package/lib/application/runner.d.ts +8 -0
- package/lib/application/runner.d.ts.map +1 -0
- package/lib/application/runner.js +26 -0
- package/lib/application/runner.js.map +1 -0
- package/lib/application/unpackedapplication.d.ts +104 -0
- package/lib/application/unpackedapplication.d.ts.map +1 -0
- package/lib/application/unpackedapplication.js +492 -0
- package/lib/application/unpackedapplication.js.map +1 -0
- package/lib/bin/cli-phase.d.ts +28 -0
- package/lib/bin/cli-phase.d.ts.map +1 -0
- package/lib/bin/cli-phase.js +44 -0
- package/lib/bin/cli-phase.js.map +1 -0
- package/lib/bin/cli.d.ts +161 -0
- package/lib/bin/cli.d.ts.map +1 -0
- package/lib/bin/cli.js +828 -0
- package/lib/bin/cli.js.map +1 -0
- package/lib/bin/launcher.d.ts +3 -0
- package/lib/bin/launcher.d.ts.map +1 -0
- package/lib/bin/launcher.js +50 -0
- package/lib/bin/launcher.js.map +1 -0
- package/lib/cache/cache.d.ts +33 -0
- package/lib/cache/cache.d.ts.map +1 -0
- package/lib/cache/cache.js +8 -0
- package/lib/cache/cache.js.map +1 -0
- package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -49
- package/lib/configurations/configuration.service.d.ts.map +1 -0
- package/lib/configurations/configuration.service.js +248 -0
- package/lib/configurations/configuration.service.js.map +1 -0
- package/lib/configurations/fileconfiguration.service.d.ts +30 -0
- package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
- package/lib/configurations/fileconfiguration.service.js +65 -0
- package/lib/configurations/fileconfiguration.service.js.map +1 -0
- package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
- package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
- package/lib/configurations/kubernetesconfiguration.service.js +83 -0
- package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
- package/lib/contexts/execution.d.ts +33 -0
- package/lib/contexts/execution.d.ts.map +1 -0
- package/lib/contexts/execution.js +73 -0
- package/lib/contexts/execution.js.map +1 -0
- package/lib/contexts/globalcontext.d.ts +29 -0
- package/lib/contexts/globalcontext.d.ts.map +1 -0
- package/lib/contexts/globalcontext.js +38 -0
- package/lib/contexts/globalcontext.js.map +1 -0
- package/lib/{utils → contexts}/httpcontext.d.ts +45 -19
- package/lib/contexts/httpcontext.d.ts.map +1 -0
- package/lib/{utils → contexts}/httpcontext.js +102 -34
- package/lib/contexts/httpcontext.js.map +1 -0
- package/lib/contexts/icontext.d.ts +236 -0
- package/lib/contexts/icontext.d.ts.map +1 -0
- package/lib/contexts/icontext.js +230 -0
- package/lib/contexts/icontext.js.map +1 -0
- package/lib/contexts/operationcontext.d.ts +179 -0
- package/lib/contexts/operationcontext.d.ts.map +1 -0
- package/lib/contexts/operationcontext.js +358 -0
- package/lib/contexts/operationcontext.js.map +1 -0
- package/lib/contexts/simplecontext.d.ts +31 -0
- package/lib/contexts/simplecontext.d.ts.map +1 -0
- package/lib/contexts/simplecontext.js +45 -0
- package/lib/contexts/simplecontext.js.map +1 -0
- package/lib/contexts/webcontext.d.ts +218 -0
- package/lib/contexts/webcontext.d.ts.map +1 -0
- package/lib/contexts/webcontext.js +389 -0
- package/lib/contexts/webcontext.js.map +1 -0
- package/lib/core/authorizer.d.ts +23 -0
- package/lib/core/authorizer.d.ts.map +1 -0
- package/lib/core/authorizer.js +17 -0
- package/lib/core/authorizer.js.map +1 -0
- package/lib/core/core.d.ts +225 -0
- package/lib/core/core.d.ts.map +1 -0
- package/lib/core/core.js +576 -0
- package/lib/core/core.js.map +1 -0
- package/lib/core/hooks.d.ts +72 -0
- package/lib/core/hooks.d.ts.map +1 -0
- package/lib/core/hooks.js +73 -0
- package/lib/core/hooks.js.map +1 -0
- package/lib/core/icore.d.ts +249 -0
- package/lib/core/icore.d.ts.map +1 -0
- package/lib/core/icore.js +15 -0
- package/lib/core/icore.js.map +1 -0
- package/lib/core/instancestorage.d.ts +61 -0
- package/lib/core/instancestorage.d.ts.map +1 -0
- package/lib/core/instancestorage.js +75 -0
- package/lib/core/instancestorage.js.map +1 -0
- package/lib/core/operations.d.ts +181 -0
- package/lib/core/operations.d.ts.map +1 -0
- package/lib/core/operations.js +559 -0
- package/lib/core/operations.js.map +1 -0
- package/lib/errors/errors.d.ts +126 -0
- package/lib/errors/errors.d.ts.map +1 -0
- package/lib/errors/errors.js +165 -0
- package/lib/errors/errors.js.map +1 -0
- package/lib/events/asynceventemitter.d.ts +159 -0
- package/lib/events/asynceventemitter.d.ts.map +1 -0
- package/lib/events/asynceventemitter.js +152 -0
- package/lib/events/asynceventemitter.js.map +1 -0
- package/lib/events/events.d.ts +112 -0
- package/lib/events/events.d.ts.map +1 -0
- package/lib/events/events.js +45 -0
- package/lib/events/events.js.map +1 -0
- package/lib/index.d.ts +84 -51
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +82 -59
- package/lib/index.js.map +1 -1
- package/lib/loggers/console.service.d.ts +24 -0
- package/lib/loggers/console.service.d.ts.map +1 -0
- package/lib/loggers/console.service.js +30 -0
- package/lib/loggers/console.service.js.map +1 -0
- package/lib/loggers/file.service.d.ts +25 -0
- package/lib/loggers/file.service.d.ts.map +1 -0
- package/lib/loggers/file.service.js +33 -0
- package/lib/loggers/file.service.js.map +1 -0
- package/lib/loggers/hooks.d.ts +20 -0
- package/lib/loggers/hooks.d.ts.map +1 -0
- package/lib/loggers/hooks.js +40 -0
- package/lib/loggers/hooks.js.map +1 -0
- package/lib/loggers/ilogger.d.ts +76 -0
- package/lib/loggers/ilogger.d.ts.map +1 -0
- package/lib/loggers/ilogger.js +108 -0
- package/lib/loggers/ilogger.js.map +1 -0
- package/lib/loggers/logger.d.ts +13 -0
- package/lib/loggers/logger.d.ts.map +1 -0
- package/lib/loggers/logger.js +18 -0
- package/lib/loggers/logger.js.map +1 -0
- package/lib/loggers/memory.service.d.ts +18 -0
- package/lib/loggers/memory.service.d.ts.map +1 -0
- package/lib/loggers/memory.service.js +21 -0
- package/lib/loggers/memory.service.js.map +1 -0
- package/lib/loggers/params.d.ts +47 -0
- package/lib/loggers/params.d.ts.map +1 -0
- package/lib/loggers/params.js +56 -0
- package/lib/loggers/params.js.map +1 -0
- package/lib/metrics/metrics.d.ts +25 -0
- package/lib/metrics/metrics.d.ts.map +1 -0
- package/lib/metrics/metrics.js +51 -0
- package/lib/metrics/metrics.js.map +1 -0
- package/lib/models/aclmodel.d.ts +21 -77
- package/lib/models/aclmodel.d.ts.map +1 -0
- package/lib/models/aclmodel.js +27 -204
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/coremodel.model.d.ts +5 -0
- package/lib/models/coremodel.model.d.ts.map +1 -0
- package/lib/models/coremodel.model.js +5 -0
- package/lib/models/coremodel.model.js.map +1 -0
- package/lib/models/decorator.d.ts +63 -0
- package/lib/models/decorator.d.ts.map +1 -0
- package/lib/models/decorator.js +63 -0
- package/lib/models/decorator.js.map +1 -0
- package/lib/models/deployment.d.ts +2 -1
- package/lib/models/deployment.d.ts.map +1 -0
- package/lib/models/ident.model.d.ts +89 -0
- package/lib/models/ident.model.d.ts.map +1 -0
- package/lib/models/ident.model.js +115 -0
- package/lib/models/ident.model.js.map +1 -0
- package/lib/models/ownermodel.model.d.ts +68 -0
- package/lib/models/ownermodel.model.d.ts.map +1 -0
- package/lib/models/ownermodel.model.js +112 -0
- package/lib/models/ownermodel.model.js.map +1 -0
- package/lib/models/registry.model.d.ts +76 -0
- package/lib/models/registry.model.d.ts.map +1 -0
- package/lib/models/registry.model.js +104 -0
- package/lib/models/registry.model.js.map +1 -0
- package/lib/models/rolemodel.model.d.ts +28 -0
- package/lib/models/rolemodel.model.d.ts.map +1 -0
- package/lib/models/rolemodel.model.js +53 -0
- package/lib/models/rolemodel.model.js.map +1 -0
- package/lib/models/simpleuser.model.d.ts +78 -0
- package/lib/models/simpleuser.model.d.ts.map +1 -0
- package/lib/models/simpleuser.model.js +123 -0
- package/lib/models/simpleuser.model.js.map +1 -0
- package/lib/models/types.d.ts +113 -0
- package/lib/models/types.d.ts.map +1 -0
- package/lib/models/types.js +2 -0
- package/lib/models/types.js.map +1 -0
- package/lib/models/user.model.d.ts +103 -0
- package/lib/models/user.model.d.ts.map +1 -0
- package/lib/models/user.model.js +125 -0
- package/lib/models/user.model.js.map +1 -0
- package/lib/queues/memoryqueue.service.d.ts +72 -0
- package/lib/queues/memoryqueue.service.d.ts.map +1 -0
- package/lib/queues/memoryqueue.service.js +136 -0
- package/lib/queues/memoryqueue.service.js.map +1 -0
- package/lib/queues/pubsubservice.d.ts +9 -6
- package/lib/queues/pubsubservice.d.ts.map +1 -0
- package/lib/queues/pubsubservice.js +5 -4
- package/lib/queues/pubsubservice.js.map +1 -1
- package/lib/queues/queueservice.d.ts +10 -11
- package/lib/queues/queueservice.d.ts.map +1 -0
- package/lib/queues/queueservice.js +48 -20
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/rest/hooks.d.ts +8 -0
- package/lib/rest/hooks.d.ts.map +1 -0
- package/lib/rest/hooks.js +10 -0
- package/lib/rest/hooks.js.map +1 -0
- package/lib/rest/irest.d.ts +212 -0
- package/lib/rest/irest.d.ts.map +1 -0
- package/lib/rest/irest.js +39 -0
- package/lib/rest/irest.js.map +1 -0
- package/lib/rest/originfilter.d.ts +38 -0
- package/lib/rest/originfilter.d.ts.map +1 -0
- package/lib/rest/originfilter.js +61 -0
- package/lib/rest/originfilter.js.map +1 -0
- package/lib/rest/restoperationstransport.service.d.ts +193 -0
- package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
- package/lib/rest/restoperationstransport.service.js +780 -0
- package/lib/rest/restoperationstransport.service.js.map +1 -0
- package/lib/rest/router.service.d.ts +244 -0
- package/lib/rest/router.service.d.ts.map +1 -0
- package/lib/rest/router.service.js +843 -0
- package/lib/rest/router.service.js.map +1 -0
- package/lib/schemas/hooks.d.ts +48 -0
- package/lib/schemas/hooks.d.ts.map +1 -0
- package/lib/schemas/hooks.js +152 -0
- package/lib/schemas/hooks.js.map +1 -0
- package/lib/services/audit.model.d.ts +208 -0
- package/lib/services/audit.model.d.ts.map +1 -0
- package/lib/services/audit.model.js +431 -0
- package/lib/services/audit.model.js.map +1 -0
- package/lib/services/{authentication.d.ts → authentication.service.d.ts} +140 -58
- package/lib/services/authentication.service.d.ts.map +1 -0
- package/lib/services/authentication.service.js +932 -0
- package/lib/services/authentication.service.js.map +1 -0
- package/lib/services/binary.service.d.ts +808 -0
- package/lib/services/binary.service.d.ts.map +1 -0
- package/lib/services/binary.service.js +1365 -0
- package/lib/services/binary.service.js.map +1 -0
- package/lib/services/cloudbinary.d.ts +19 -13
- package/lib/services/cloudbinary.d.ts.map +1 -0
- package/lib/services/cloudbinary.js +24 -18
- package/lib/services/cloudbinary.js.map +1 -1
- package/lib/services/command.d.ts +118 -0
- package/lib/services/command.d.ts.map +1 -0
- package/lib/services/command.js +97 -0
- package/lib/services/command.js.map +1 -0
- package/lib/services/cron.service.d.ts +142 -0
- package/lib/services/cron.service.d.ts.map +1 -0
- package/lib/services/cron.service.js +291 -0
- package/lib/services/cron.service.js.map +1 -0
- package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +77 -142
- package/lib/services/cryptoservice.service.d.ts.map +1 -0
- package/lib/services/cryptoservice.service.js +527 -0
- package/lib/services/cryptoservice.service.js.map +1 -0
- package/lib/services/debugmailer.service.d.ts +49 -0
- package/lib/services/debugmailer.service.d.ts.map +1 -0
- package/lib/services/debugmailer.service.js +66 -0
- package/lib/services/debugmailer.service.js.map +1 -0
- package/lib/services/domainservice.service.d.ts +203 -0
- package/lib/services/domainservice.service.d.ts.map +1 -0
- package/lib/services/domainservice.service.js +600 -0
- package/lib/services/domainservice.service.js.map +1 -0
- package/lib/services/httpserver.service.d.ts +248 -0
- package/lib/services/httpserver.service.d.ts.map +1 -0
- package/lib/services/httpserver.service.js +673 -0
- package/lib/services/httpserver.service.js.map +1 -0
- package/lib/services/iauthentication.d.ts +9 -0
- package/lib/services/iauthentication.d.ts.map +1 -0
- package/lib/services/iauthentication.js +2 -0
- package/lib/services/iauthentication.js.map +1 -0
- package/lib/services/icryptoservice.d.ts +127 -0
- package/lib/services/icryptoservice.d.ts.map +1 -0
- package/lib/services/icryptoservice.js +68 -0
- package/lib/services/icryptoservice.js.map +1 -0
- package/lib/services/imailer.d.ts +17 -0
- package/lib/services/imailer.d.ts.map +1 -0
- package/lib/services/imailer.js +2 -0
- package/lib/services/imailer.js.map +1 -0
- package/lib/services/iservice.d.ts +104 -0
- package/lib/services/iservice.d.ts.map +1 -0
- package/lib/services/iservice.js +63 -0
- package/lib/services/iservice.js.map +1 -0
- package/lib/services/mailer.service.d.ts +220 -0
- package/lib/services/mailer.service.d.ts.map +1 -0
- package/lib/services/mailer.service.js +251 -0
- package/lib/services/mailer.service.js.map +1 -0
- package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -10
- package/lib/services/notificationservice.service.d.ts.map +1 -0
- package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
- package/lib/services/notificationservice.service.js.map +1 -0
- package/lib/services/oauth.d.ts +58 -31
- package/lib/services/oauth.d.ts.map +1 -0
- package/lib/services/oauth.js +365 -251
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/operationstransport.d.ts +65 -0
- package/lib/services/operationstransport.d.ts.map +1 -0
- package/lib/services/operationstransport.js +103 -0
- package/lib/services/operationstransport.js.map +1 -0
- package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -11
- package/lib/services/prometheus.service.d.ts.map +1 -0
- package/lib/services/prometheus.service.js +203 -0
- package/lib/services/prometheus.service.js.map +1 -0
- package/lib/services/resource.service.d.ts +121 -0
- package/lib/services/resource.service.d.ts.map +1 -0
- package/lib/services/resource.service.js +301 -0
- package/lib/services/resource.service.js.map +1 -0
- package/lib/services/service.d.ts +88 -189
- package/lib/services/service.d.ts.map +1 -0
- package/lib/services/service.js +407 -432
- package/lib/services/service.js.map +1 -1
- package/lib/services/servicecommands.d.ts +99 -0
- package/lib/services/servicecommands.d.ts.map +1 -0
- package/lib/services/servicecommands.js +165 -0
- package/lib/services/servicecommands.js.map +1 -0
- package/lib/services/serviceparameters.d.ts +33 -0
- package/lib/services/serviceparameters.d.ts.map +1 -0
- package/lib/services/serviceparameters.js +79 -0
- package/lib/services/serviceparameters.js.map +1 -0
- package/lib/{utils → session}/cookie.d.ts +32 -18
- package/lib/session/cookie.d.ts.map +1 -0
- package/lib/{utils → session}/cookie.js +76 -23
- package/lib/session/cookie.js.map +1 -0
- package/lib/session/manager.model.d.ts +71 -0
- package/lib/session/manager.model.d.ts.map +1 -0
- package/lib/session/manager.model.js +155 -0
- package/lib/session/manager.model.js.map +1 -0
- package/lib/session/session.d.ts +57 -0
- package/lib/session/session.d.ts.map +1 -0
- package/lib/session/session.js +126 -0
- package/lib/session/session.js.map +1 -0
- package/lib/stores/istore.d.ts +99 -0
- package/lib/stores/istore.d.ts.map +1 -0
- package/lib/stores/istore.js +26 -0
- package/lib/stores/istore.js.map +1 -0
- package/lib/stores/memory.service.d.ts +114 -0
- package/lib/stores/memory.service.d.ts.map +1 -0
- package/lib/stores/memory.service.js +343 -0
- package/lib/stores/memory.service.js.map +1 -0
- package/lib/stores/store.d.ts +127 -768
- package/lib/stores/store.d.ts.map +1 -0
- package/lib/stores/store.js +258 -1718
- package/lib/stores/store.js.map +1 -1
- package/lib/templates/templates.d.ts +39 -0
- package/lib/templates/templates.d.ts.map +1 -0
- package/lib/templates/templates.js +92 -0
- package/lib/templates/templates.js.map +1 -0
- package/lib/test/application.d.ts +174 -0
- package/lib/test/application.d.ts.map +1 -0
- package/lib/test/application.js +288 -0
- package/lib/test/application.js.map +1 -0
- package/lib/test/asyncstorage.d.ts +16 -0
- package/lib/test/asyncstorage.d.ts.map +1 -0
- package/lib/test/asyncstorage.js +32 -0
- package/lib/test/asyncstorage.js.map +1 -0
- package/lib/test/core.d.ts +63 -0
- package/lib/test/core.d.ts.map +1 -0
- package/lib/test/core.js +190 -0
- package/lib/test/core.js.map +1 -0
- package/lib/test/index.d.ts +7 -0
- package/lib/test/index.d.ts.map +1 -0
- package/lib/test/index.js +8 -0
- package/lib/test/index.js.map +1 -0
- package/lib/test/internal.d.ts +34 -0
- package/lib/test/internal.d.ts.map +1 -0
- package/lib/test/internal.js +156 -0
- package/lib/test/internal.js.map +1 -0
- package/lib/test/objects.d.ts +318 -0
- package/lib/test/objects.d.ts.map +1 -0
- package/lib/test/objects.js +443 -0
- package/lib/test/objects.js.map +1 -0
- package/lib/utils/abstractdeployer.d.ts +5 -2
- package/lib/utils/abstractdeployer.d.ts.map +1 -0
- package/lib/utils/abstractdeployer.js +3 -0
- package/lib/utils/abstractdeployer.js.map +1 -1
- package/package.json +85 -56
- package/test/cachedapp/webda.config.json +1 -5
- package/test/config-cached.json +1 -5
- package/test/config.json +6 -99
- package/test/data/.env +1 -0
- package/test/my-cnf.json +9 -0
- package/webda.module.json +3462 -2231
- package/lib/application.d.ts +0 -876
- package/lib/application.js +0 -741
- package/lib/application.js.map +0 -1
- package/lib/application.spec.d.ts +0 -1
- package/lib/application.spec.js +0 -234
- package/lib/application.spec.js.map +0 -1
- package/lib/core.d.ts +0 -740
- package/lib/core.js +0 -1310
- package/lib/core.js.map +0 -1
- package/lib/core.spec.d.ts +0 -1
- package/lib/core.spec.js +0 -761
- package/lib/core.spec.js.map +0 -1
- package/lib/errors.d.ts +0 -65
- package/lib/errors.js +0 -113
- package/lib/errors.js.map +0 -1
- package/lib/errors.spec.d.ts +0 -1
- package/lib/errors.spec.js +0 -33
- package/lib/errors.spec.js.map +0 -1
- package/lib/models/aclmodel.spec.d.ts +0 -1
- package/lib/models/aclmodel.spec.js +0 -187
- package/lib/models/aclmodel.spec.js.map +0 -1
- package/lib/models/coremodel.d.ts +0 -887
- package/lib/models/coremodel.js +0 -1208
- package/lib/models/coremodel.js.map +0 -1
- package/lib/models/coremodel.spec.d.ts +0 -1
- package/lib/models/coremodel.spec.js +0 -462
- package/lib/models/coremodel.spec.js.map +0 -1
- package/lib/models/ident.d.ts +0 -53
- package/lib/models/ident.js +0 -40
- package/lib/models/ident.js.map +0 -1
- package/lib/models/ident.spec.d.ts +0 -1
- package/lib/models/ident.spec.js +0 -43
- package/lib/models/ident.spec.js.map +0 -1
- package/lib/models/ownermodel.d.ts +0 -50
- package/lib/models/ownermodel.js +0 -65
- package/lib/models/ownermodel.js.map +0 -1
- package/lib/models/ownermodel.spec.d.ts +0 -1
- package/lib/models/ownermodel.spec.js +0 -191
- package/lib/models/ownermodel.spec.js.map +0 -1
- package/lib/models/relations.d.ts +0 -181
- package/lib/models/relations.js +0 -157
- package/lib/models/relations.js.map +0 -1
- package/lib/models/relations.spec.d.ts +0 -12
- package/lib/models/relations.spec.js +0 -224
- package/lib/models/relations.spec.js.map +0 -1
- package/lib/models/rolemodel.d.ts +0 -10
- package/lib/models/rolemodel.js +0 -35
- package/lib/models/rolemodel.js.map +0 -1
- package/lib/models/rolemodel.spec.d.ts +0 -1
- package/lib/models/rolemodel.spec.js +0 -86
- package/lib/models/rolemodel.spec.js.map +0 -1
- package/lib/models/user.d.ts +0 -100
- package/lib/models/user.js +0 -157
- package/lib/models/user.js.map +0 -1
- package/lib/models/user.spec.d.ts +0 -1
- package/lib/models/user.spec.js +0 -88
- package/lib/models/user.spec.js.map +0 -1
- package/lib/queues/filequeue.d.ts +0 -58
- package/lib/queues/filequeue.js +0 -131
- package/lib/queues/filequeue.js.map +0 -1
- package/lib/queues/filequeue.spec.d.ts +0 -1
- package/lib/queues/filequeue.spec.js +0 -78
- package/lib/queues/filequeue.spec.js.map +0 -1
- package/lib/queues/memoryqueue.d.ts +0 -45
- package/lib/queues/memoryqueue.js +0 -81
- package/lib/queues/memoryqueue.js.map +0 -1
- package/lib/queues/memoryqueue.spec.d.ts +0 -1
- package/lib/queues/memoryqueue.spec.js +0 -192
- package/lib/queues/memoryqueue.spec.js.map +0 -1
- package/lib/queues/queue.spec.d.ts +0 -5
- package/lib/queues/queue.spec.js +0 -55
- package/lib/queues/queue.spec.js.map +0 -1
- package/lib/router.d.ts +0 -172
- package/lib/router.js +0 -419
- package/lib/router.js.map +0 -1
- package/lib/router.spec.d.ts +0 -1
- package/lib/router.spec.js +0 -229
- package/lib/router.spec.js.map +0 -1
- package/lib/services/asyncevents.d.ts +0 -151
- package/lib/services/asyncevents.js +0 -217
- package/lib/services/asyncevents.js.map +0 -1
- package/lib/services/asyncevents.spec.d.ts +0 -1
- package/lib/services/asyncevents.spec.js +0 -118
- package/lib/services/asyncevents.spec.js.map +0 -1
- package/lib/services/authentication.js +0 -772
- package/lib/services/authentication.js.map +0 -1
- package/lib/services/authentication.spec.d.ts +0 -1
- package/lib/services/authentication.spec.js +0 -458
- package/lib/services/authentication.spec.js.map +0 -1
- package/lib/services/binary.d.ts +0 -549
- package/lib/services/binary.js +0 -986
- package/lib/services/binary.js.map +0 -1
- package/lib/services/binary.spec.d.ts +0 -44
- package/lib/services/binary.spec.js +0 -438
- package/lib/services/binary.spec.js.map +0 -1
- package/lib/services/cloudbinary.spec.d.ts +0 -13
- package/lib/services/cloudbinary.spec.js +0 -192
- package/lib/services/cloudbinary.spec.js.map +0 -1
- package/lib/services/configuration.js +0 -178
- package/lib/services/configuration.js.map +0 -1
- package/lib/services/configuration.spec.d.ts +0 -1
- package/lib/services/configuration.spec.js +0 -87
- package/lib/services/configuration.spec.js.map +0 -1
- package/lib/services/cron.d.ts +0 -73
- package/lib/services/cron.js +0 -141
- package/lib/services/cron.js.map +0 -1
- package/lib/services/cron.spec.d.ts +0 -1
- package/lib/services/cron.spec.js +0 -76
- package/lib/services/cron.spec.js.map +0 -1
- package/lib/services/cryptoservice.js +0 -434
- package/lib/services/cryptoservice.js.map +0 -1
- package/lib/services/cryptoservice.spec.d.ts +0 -1
- package/lib/services/cryptoservice.spec.js +0 -177
- package/lib/services/cryptoservice.spec.js.map +0 -1
- package/lib/services/debugmailer.d.ts +0 -36
- package/lib/services/debugmailer.js +0 -52
- package/lib/services/debugmailer.js.map +0 -1
- package/lib/services/debugmailer.spec.d.ts +0 -1
- package/lib/services/debugmailer.spec.js +0 -29
- package/lib/services/debugmailer.spec.js.map +0 -1
- package/lib/services/domainservice.d.ts +0 -152
- package/lib/services/domainservice.js +0 -881
- package/lib/services/domainservice.js.map +0 -1
- package/lib/services/domainservice.spec.d.ts +0 -1
- package/lib/services/domainservice.spec.js +0 -401
- package/lib/services/domainservice.spec.js.map +0 -1
- package/lib/services/filebinary.d.ts +0 -133
- package/lib/services/filebinary.js +0 -371
- package/lib/services/filebinary.js.map +0 -1
- package/lib/services/filebinary.spec.d.ts +0 -21
- package/lib/services/filebinary.spec.js +0 -415
- package/lib/services/filebinary.spec.js.map +0 -1
- package/lib/services/fileconfiguration.d.ts +0 -22
- package/lib/services/fileconfiguration.js +0 -48
- package/lib/services/fileconfiguration.js.map +0 -1
- package/lib/services/fileconfiguration.spec.d.ts +0 -1
- package/lib/services/fileconfiguration.spec.js +0 -177
- package/lib/services/fileconfiguration.spec.js.map +0 -1
- package/lib/services/invitationservice.d.ts +0 -222
- package/lib/services/invitationservice.js +0 -526
- package/lib/services/invitationservice.js.map +0 -1
- package/lib/services/invitationservice.spec.d.ts +0 -1
- package/lib/services/invitationservice.spec.js +0 -516
- package/lib/services/invitationservice.spec.js.map +0 -1
- package/lib/services/kubernetesconfiguration.d.ts +0 -26
- package/lib/services/kubernetesconfiguration.js +0 -54
- package/lib/services/kubernetesconfiguration.js.map +0 -1
- package/lib/services/kubernetesconfiguration.spec.d.ts +0 -1
- package/lib/services/kubernetesconfiguration.spec.js +0 -147
- package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
- package/lib/services/mailer.d.ts +0 -165
- package/lib/services/mailer.js +0 -176
- package/lib/services/mailer.js.map +0 -1
- package/lib/services/mailer.spec.d.ts +0 -1
- package/lib/services/mailer.spec.js +0 -144
- package/lib/services/mailer.spec.js.map +0 -1
- package/lib/services/notificationservice.js.map +0 -1
- package/lib/services/notificationservice.spec.d.ts +0 -1
- package/lib/services/notificationservice.spec.js +0 -78
- package/lib/services/notificationservice.spec.js.map +0 -1
- package/lib/services/oauth.spec.d.ts +0 -1
- package/lib/services/oauth.spec.js +0 -184
- package/lib/services/oauth.spec.js.map +0 -1
- package/lib/services/prometheus.js +0 -160
- package/lib/services/prometheus.js.map +0 -1
- package/lib/services/prometheus.spec.d.ts +0 -1
- package/lib/services/prometheus.spec.js +0 -57
- package/lib/services/prometheus.spec.js.map +0 -1
- package/lib/services/resource.d.ts +0 -87
- package/lib/services/resource.js +0 -156
- package/lib/services/resource.js.map +0 -1
- package/lib/services/resource.spec.d.ts +0 -1
- package/lib/services/resource.spec.js +0 -122
- package/lib/services/resource.spec.js.map +0 -1
- package/lib/services/service.spec.d.ts +0 -1
- package/lib/services/service.spec.js +0 -268
- package/lib/services/service.spec.js.map +0 -1
- package/lib/stores/aggregator.d.ts +0 -41
- package/lib/stores/aggregator.js +0 -80
- package/lib/stores/aggregator.js.map +0 -1
- package/lib/stores/aliasstore.d.ts +0 -108
- package/lib/stores/aliasstore.js +0 -168
- package/lib/stores/aliasstore.js.map +0 -1
- package/lib/stores/aliasstore.spec.d.ts +0 -11
- package/lib/stores/aliasstore.spec.js +0 -89
- package/lib/stores/aliasstore.spec.js.map +0 -1
- package/lib/stores/file.d.ts +0 -107
- package/lib/stores/file.js +0 -188
- package/lib/stores/file.js.map +0 -1
- package/lib/stores/file.spec.d.ts +0 -19
- package/lib/stores/file.spec.js +0 -232
- package/lib/stores/file.spec.js.map +0 -1
- package/lib/stores/mapper.d.ts +0 -149
- package/lib/stores/mapper.js +0 -293
- package/lib/stores/mapper.js.map +0 -1
- package/lib/stores/mapper.spec.d.ts +0 -1
- package/lib/stores/mapper.spec.js +0 -160
- package/lib/stores/mapper.spec.js.map +0 -1
- package/lib/stores/memory.d.ts +0 -151
- package/lib/stores/memory.js +0 -371
- package/lib/stores/memory.js.map +0 -1
- package/lib/stores/memory.spec.d.ts +0 -20
- package/lib/stores/memory.spec.js +0 -328
- package/lib/stores/memory.spec.js.map +0 -1
- package/lib/stores/modelmapper.d.ts +0 -61
- package/lib/stores/modelmapper.js +0 -199
- package/lib/stores/modelmapper.js.map +0 -1
- package/lib/stores/store.spec.d.ts +0 -65
- package/lib/stores/store.spec.js +0 -906
- package/lib/stores/store.spec.js.map +0 -1
- package/lib/test.d.ts +0 -162
- package/lib/test.js +0 -399
- package/lib/test.js.map +0 -1
- package/lib/unpackedapplication.d.ts +0 -76
- package/lib/unpackedapplication.js +0 -299
- package/lib/unpackedapplication.js.map +0 -1
- package/lib/utils/abstractdeployer.spec.d.ts +0 -1
- package/lib/utils/abstractdeployer.spec.js +0 -21
- package/lib/utils/abstractdeployer.spec.js.map +0 -1
- package/lib/utils/case.d.ts +0 -7
- package/lib/utils/case.js +0 -43
- package/lib/utils/case.js.map +0 -1
- package/lib/utils/case.spec.d.ts +0 -1
- package/lib/utils/case.spec.js +0 -50
- package/lib/utils/case.spec.js.map +0 -1
- package/lib/utils/context.d.ts +0 -462
- package/lib/utils/context.js +0 -732
- package/lib/utils/context.js.map +0 -1
- package/lib/utils/context.spec.d.ts +0 -9
- package/lib/utils/context.spec.js +0 -372
- package/lib/utils/context.spec.js.map +0 -1
- package/lib/utils/cookie.js.map +0 -1
- package/lib/utils/cookie.spec.d.ts +0 -1
- package/lib/utils/cookie.spec.js +0 -78
- package/lib/utils/cookie.spec.js.map +0 -1
- package/lib/utils/esm.d.ts +0 -13
- package/lib/utils/esm.js +0 -19
- package/lib/utils/esm.js.map +0 -1
- package/lib/utils/httpcontext.js.map +0 -1
- package/lib/utils/httpcontext.spec.d.ts +0 -4
- package/lib/utils/httpcontext.spec.js +0 -77
- package/lib/utils/httpcontext.spec.js.map +0 -1
- package/lib/utils/logger.d.ts +0 -91
- package/lib/utils/logger.js +0 -121
- package/lib/utils/logger.js.map +0 -1
- package/lib/utils/logger.spec.d.ts +0 -1
- package/lib/utils/logger.spec.js +0 -48
- package/lib/utils/logger.spec.js.map +0 -1
- package/lib/utils/serializers.d.ts +0 -161
- package/lib/utils/serializers.js +0 -420
- package/lib/utils/serializers.js.map +0 -1
- package/lib/utils/serializers.spec.d.ts +0 -1
- package/lib/utils/serializers.spec.js +0 -313
- package/lib/utils/serializers.spec.js.map +0 -1
- package/lib/utils/session.d.ts +0 -126
- package/lib/utils/session.js +0 -166
- package/lib/utils/session.js.map +0 -1
- package/lib/utils/session.spec.d.ts +0 -1
- package/lib/utils/session.spec.js +0 -71
- package/lib/utils/session.spec.js.map +0 -1
- package/lib/utils/throttler.d.ts +0 -102
- package/lib/utils/throttler.js +0 -168
- package/lib/utils/throttler.js.map +0 -1
- package/lib/utils/throttler.spec.d.ts +0 -1
- package/lib/utils/throttler.spec.js +0 -55
- package/lib/utils/throttler.spec.js.map +0 -1
- package/lib/utils/waiter.d.ts +0 -93
- package/lib/utils/waiter.js +0 -148
- package/lib/utils/waiter.js.map +0 -1
- package/lib/utils/waiter.spec.d.ts +0 -1
- package/lib/utils/waiter.spec.js +0 -98
- package/lib/utils/waiter.spec.js.map +0 -1
- package/test/config-file-missing-file-no-default.json +0 -44
- package/test/config-file-missing-file.json +0 -55
- package/test/config-file-no-reload.json +0 -69
- package/test/config-file-reload.json +0 -68
- package/test/config-invitation.json +0 -63
- package/test/config-kube-reload.json +0 -68
- package/test/config-reload.json +0 -66
- package/test/config.old.json +0 -152
- package/test/jsonutils/mdocs.yaml +0 -56
- package/test/jsonutils/test.json +0 -3
- package/test/jsonutils/test.yml +0 -5
- package/test/moddas/annotatedservice.js +0 -23
- package/test/moddas/debugmailer.js +0 -13
- package/test/moddas/fakeservice.js +0 -4
- package/test/moddas/voidstore.js +0 -66
- package/test/models/ident.js +0 -36
- package/test/models/task.js +0 -42
|
@@ -0,0 +1,808 @@
|
|
|
1
|
+
import { Readable } from "stream";
|
|
2
|
+
import * as WebdaError from "../errors/errors.js";
|
|
3
|
+
import { Service } from "./service.js";
|
|
4
|
+
import { ServiceParameters } from "./serviceparameters.js";
|
|
5
|
+
import { Counter } from "../metrics/metrics.js";
|
|
6
|
+
import { IOperationContext } from "../contexts/icontext.js";
|
|
7
|
+
import { IStore } from "../core/icore.js";
|
|
8
|
+
import { MappingService } from "../stores/istore.js";
|
|
9
|
+
import { type Model, type Storable, WEBDA_STORAGE } from "@webda/models";
|
|
10
|
+
/**
|
|
11
|
+
* Represent basic EventBinary
|
|
12
|
+
*/
|
|
13
|
+
export interface EventBinary {
|
|
14
|
+
object: BinaryFileInfo;
|
|
15
|
+
service: BinaryService;
|
|
16
|
+
}
|
|
17
|
+
export interface EventBinaryUploadSuccess<T extends Storable = Storable> extends EventBinary {
|
|
18
|
+
target: T;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Sent before metadata are updated to allow alteration of the modification
|
|
22
|
+
*/
|
|
23
|
+
export interface EventBinaryMetadataUpdate<T extends Storable = Storable> extends EventBinaryUploadSuccess<T> {
|
|
24
|
+
target: T;
|
|
25
|
+
metadata: BinaryMetadata;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Emitted if binary does not exist
|
|
29
|
+
*/
|
|
30
|
+
export declare class BinaryNotFoundError extends WebdaError.CodeError {
|
|
31
|
+
/** Create a new BinaryNotFoundError
|
|
32
|
+
* @param hash - the binary hash
|
|
33
|
+
* @param storeName - the binary service name
|
|
34
|
+
*/
|
|
35
|
+
constructor(hash: string, storeName: string);
|
|
36
|
+
}
|
|
37
|
+
export interface BinaryFileInfo<T extends object = {}> {
|
|
38
|
+
/**
|
|
39
|
+
* Hash of the binary
|
|
40
|
+
*/
|
|
41
|
+
hash?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Will be computed by the service
|
|
44
|
+
*
|
|
45
|
+
* hash of the content prefixed by 'WEBDA'
|
|
46
|
+
*/
|
|
47
|
+
challenge?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Size of the file
|
|
50
|
+
*/
|
|
51
|
+
size: number;
|
|
52
|
+
/**
|
|
53
|
+
* Name of the file
|
|
54
|
+
*/
|
|
55
|
+
name: string;
|
|
56
|
+
/**
|
|
57
|
+
* Mimetype
|
|
58
|
+
*/
|
|
59
|
+
mimetype: string;
|
|
60
|
+
/**
|
|
61
|
+
* Metadatas stored along with the binary
|
|
62
|
+
*/
|
|
63
|
+
metadata?: T;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Represent files attached to a model
|
|
67
|
+
*/
|
|
68
|
+
export type BinaryFiles<T extends object = {}> = BinaryFileInfo<T>[];
|
|
69
|
+
/**
|
|
70
|
+
* Represent a file to store
|
|
71
|
+
* @WebdaSchema
|
|
72
|
+
*/
|
|
73
|
+
export declare abstract class BinaryFile<T extends object = {}> implements BinaryFileInfo<T> {
|
|
74
|
+
/**
|
|
75
|
+
* Current name
|
|
76
|
+
*/
|
|
77
|
+
name: string;
|
|
78
|
+
/**
|
|
79
|
+
* Original name
|
|
80
|
+
*/
|
|
81
|
+
originalname?: string;
|
|
82
|
+
/**
|
|
83
|
+
* Size of the binary
|
|
84
|
+
*/
|
|
85
|
+
size: number;
|
|
86
|
+
/**
|
|
87
|
+
* Mimetype of the binary
|
|
88
|
+
*/
|
|
89
|
+
mimetype: string;
|
|
90
|
+
/**
|
|
91
|
+
* Will be computed by the service
|
|
92
|
+
*
|
|
93
|
+
* hash of the content prefixed by 'WEBDA'
|
|
94
|
+
*/
|
|
95
|
+
challenge?: string;
|
|
96
|
+
/**
|
|
97
|
+
* Will be computed by the service
|
|
98
|
+
*
|
|
99
|
+
* hash of the content
|
|
100
|
+
*/
|
|
101
|
+
hash?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Metadatas stored along with the binary
|
|
104
|
+
*/
|
|
105
|
+
metadata?: T;
|
|
106
|
+
/** Create a new BinaryFile
|
|
107
|
+
* @param info - the binary file information
|
|
108
|
+
*/
|
|
109
|
+
constructor(info: BinaryFileInfo<T>);
|
|
110
|
+
/**
|
|
111
|
+
* Set the information
|
|
112
|
+
* @param info - the information object
|
|
113
|
+
*/
|
|
114
|
+
set(info: BinaryFileInfo<T>): void;
|
|
115
|
+
/**
|
|
116
|
+
* Retrieve a plain BinaryFileInfo object
|
|
117
|
+
* @returns the result
|
|
118
|
+
*/
|
|
119
|
+
toBinaryFileInfo(): BinaryFileInfo<T>;
|
|
120
|
+
abstract get(): Promise<Readable>;
|
|
121
|
+
/**
|
|
122
|
+
* Create hashes
|
|
123
|
+
* @param buffer - the buffer
|
|
124
|
+
* @returns the result
|
|
125
|
+
*/
|
|
126
|
+
getHashes(): Promise<{
|
|
127
|
+
hash: string;
|
|
128
|
+
challenge: string;
|
|
129
|
+
}>;
|
|
130
|
+
}
|
|
131
|
+
/** BinaryFile backed by a local filesystem path */
|
|
132
|
+
export declare class LocalBinaryFile extends BinaryFile {
|
|
133
|
+
/**
|
|
134
|
+
* Path on the hard drive
|
|
135
|
+
*/
|
|
136
|
+
path: string;
|
|
137
|
+
/** Create a new LocalBinaryFile
|
|
138
|
+
* @param filePath - path to the local file
|
|
139
|
+
*/
|
|
140
|
+
constructor(filePath: string);
|
|
141
|
+
/**
|
|
142
|
+
* @override
|
|
143
|
+
*/
|
|
144
|
+
get(): Promise<Readable>;
|
|
145
|
+
}
|
|
146
|
+
/** BinaryFile backed by an in-memory Buffer */
|
|
147
|
+
export declare class MemoryBinaryFile extends BinaryFile {
|
|
148
|
+
/**
|
|
149
|
+
* Content
|
|
150
|
+
*/
|
|
151
|
+
buffer: Buffer;
|
|
152
|
+
/** Create a new MemoryBinaryFile
|
|
153
|
+
* @param buffer - the binary content
|
|
154
|
+
* @param info - optional file information
|
|
155
|
+
*/
|
|
156
|
+
constructor(buffer: Buffer | string, info?: Partial<BinaryFileInfo>);
|
|
157
|
+
/**
|
|
158
|
+
* @override
|
|
159
|
+
*/
|
|
160
|
+
get(): Promise<Readable>;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Define the metadata for a Binary
|
|
164
|
+
*/
|
|
165
|
+
export type BinaryMetadata = any;
|
|
166
|
+
/**
|
|
167
|
+
* This is a map used to retrieve binary
|
|
168
|
+
*
|
|
169
|
+
* @class BinaryMap
|
|
170
|
+
*/
|
|
171
|
+
export declare class BinaryMap<T extends object = {}> extends BinaryFile<T> {
|
|
172
|
+
/**
|
|
173
|
+
* Link to the binary store
|
|
174
|
+
*/
|
|
175
|
+
[WEBDA_STORAGE]: {
|
|
176
|
+
service: BinaryService;
|
|
177
|
+
};
|
|
178
|
+
/** Create a new BinaryMap
|
|
179
|
+
* @param service - the binary service
|
|
180
|
+
* @param obj - the binary file information
|
|
181
|
+
*/
|
|
182
|
+
constructor(service: BinaryService, obj: BinaryFileInfo<T>);
|
|
183
|
+
/**
|
|
184
|
+
* Get the binary data
|
|
185
|
+
*
|
|
186
|
+
* @returns the result
|
|
187
|
+
*/
|
|
188
|
+
get(): Promise<Readable>;
|
|
189
|
+
/**
|
|
190
|
+
* Get into a buffer
|
|
191
|
+
* @returns the result
|
|
192
|
+
*/
|
|
193
|
+
getAsBuffer(): Promise<Buffer>;
|
|
194
|
+
/**
|
|
195
|
+
* Download the binary to a path
|
|
196
|
+
*
|
|
197
|
+
* Shortcut to call {@link Binary.downloadTo} with current object
|
|
198
|
+
*
|
|
199
|
+
* @param filename - the filename
|
|
200
|
+
* @returns the result
|
|
201
|
+
*/
|
|
202
|
+
downloadTo(filename: string): Promise<void>;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* One Binary instance — single-cardinality binary attribute on a CoreModel.
|
|
206
|
+
*
|
|
207
|
+
* Tagged as a Behavior so the compiler picks it up via the same path as every
|
|
208
|
+
* other `@WebdaBehavior` class. Its `@Action`-decorated methods are exposed
|
|
209
|
+
* as model-scoped operations (`<Model>.<Attribute>.<Action>`) and routed by
|
|
210
|
+
* `RESTOperationsTransport.exposeBehaviorRoutes`.
|
|
211
|
+
*
|
|
212
|
+
* Constructor takes no required arguments because the transformer-emitted
|
|
213
|
+
* `__hydrateBehaviors` calls `new Binary()` with zero args before stamping
|
|
214
|
+
* the parent reference into `WEBDA_STORAGE["__parent__"]`. Legacy 2-arg
|
|
215
|
+
* usage (`new Binary(attribute, model)`) is still supported for direct
|
|
216
|
+
* callers and tests; when present, the constructor eagerly resolves the
|
|
217
|
+
* service and copies the existing model attribute value so callers can call
|
|
218
|
+
* `isEmpty()` and `hash`/`size` immediately.
|
|
219
|
+
*
|
|
220
|
+
* @readOnly
|
|
221
|
+
* @WebdaBehavior Webda/Binary
|
|
222
|
+
*/
|
|
223
|
+
export declare class Binary<T extends object = {}> extends BinaryMap<T> {
|
|
224
|
+
/** Create a new Binary.
|
|
225
|
+
*
|
|
226
|
+
* Callable with no arguments (the Behavior-hydration path the transformer
|
|
227
|
+
* emits) or with the legacy `(attribute, model)` pair for direct
|
|
228
|
+
* instantiation in tests / non-hydrated code.
|
|
229
|
+
* @param attribute - the model attribute name (legacy form)
|
|
230
|
+
* @param model - the parent model (legacy form)
|
|
231
|
+
*/
|
|
232
|
+
constructor(attribute?: string, model?: Model);
|
|
233
|
+
/**
|
|
234
|
+
* Resolve the BinaryService lazily via the Behavior parent reference.
|
|
235
|
+
*
|
|
236
|
+
* The transformer-emitted `__hydrateBehaviors` writes
|
|
237
|
+
* `WEBDA_STORAGE["__parent__"]` after construction, and the per-Behavior
|
|
238
|
+
* `parent` getter (also emitted by the transformer) surfaces it as
|
|
239
|
+
* `this.parent`. We resolve the service on first call and cache it on the
|
|
240
|
+
* storage slot so subsequent calls don't re-walk the binary registry.
|
|
241
|
+
*
|
|
242
|
+
* @returns the BinaryService that owns this Binary's parent attribute
|
|
243
|
+
*/
|
|
244
|
+
protected getService(): BinaryService;
|
|
245
|
+
/**
|
|
246
|
+
* Read the Behavior parent reference. The transformer-emitted `parent`
|
|
247
|
+
* getter on `@WebdaBehavior` classes returns the same slot, but Binary
|
|
248
|
+
* may also be used in code paths where the transformer hasn't run (e.g.
|
|
249
|
+
* unit tests that hand-roll instances), so we read the slot directly.
|
|
250
|
+
*
|
|
251
|
+
* @returns the parent reference or undefined
|
|
252
|
+
*/
|
|
253
|
+
protected getParent(): {
|
|
254
|
+
instance: Storable;
|
|
255
|
+
attribute: string;
|
|
256
|
+
} | undefined;
|
|
257
|
+
/**
|
|
258
|
+
* isEmpty
|
|
259
|
+
* @returns the result
|
|
260
|
+
*/
|
|
261
|
+
isEmpty(): any;
|
|
262
|
+
/**
|
|
263
|
+
* Ensure empty is set correctly.
|
|
264
|
+
*
|
|
265
|
+
* `BinaryFile`'s constructor calls `this.set(info)` before subclass class-field
|
|
266
|
+
* initializers run, so `this[WEBDA_STORAGE]` is still `undefined` the first
|
|
267
|
+
* time we get here when constructing a fresh `new Binary()` (the no-args
|
|
268
|
+
* path used by the transformer's `__hydrateBehaviors`). Initialize the
|
|
269
|
+
* slot lazily on the first set call to keep that boot path crash-free —
|
|
270
|
+
* the class-field initializer on `BinaryMap` will then OVERWRITE this on
|
|
271
|
+
* its way back from super, but that's fine because it preserves the
|
|
272
|
+
* shape `{ service?, empty?, ... }` and we've passed through `set` only
|
|
273
|
+
* once at this point.
|
|
274
|
+
*
|
|
275
|
+
* @param info - the information object
|
|
276
|
+
*/
|
|
277
|
+
set(info: BinaryFileInfo<T>): void;
|
|
278
|
+
/**
|
|
279
|
+
* Replace the binary by uploading a new file. Direct programmatic use
|
|
280
|
+
* (non-HTTP). Equivalent to the `attach(...)` HTTP action minus the
|
|
281
|
+
* context handling.
|
|
282
|
+
* @param file - the binary file to upload
|
|
283
|
+
* @returns the result
|
|
284
|
+
*/
|
|
285
|
+
upload(file: BinaryFile<T>): Promise<void>;
|
|
286
|
+
/**
|
|
287
|
+
* Delete this binary from storage and clear local state.
|
|
288
|
+
*
|
|
289
|
+
* Exposed as a Behavior `@Action` (DELETE on `{uuid}/<attribute>/{hash}`).
|
|
290
|
+
* The URL `{hash}` must match the current binary's hash; this guards
|
|
291
|
+
* against accidental deletes when the client raced a metadata update.
|
|
292
|
+
*
|
|
293
|
+
* Migrated from `DomainService.binaryAction` (action="delete",
|
|
294
|
+
* single-cardinality branch).
|
|
295
|
+
* @param hash - the URL-supplied hash; must match `this.hash`
|
|
296
|
+
*/
|
|
297
|
+
delete(hash: string): Promise<void>;
|
|
298
|
+
/**
|
|
299
|
+
* Direct (multipart / raw) upload from an HTTP request.
|
|
300
|
+
*
|
|
301
|
+
* `POST /<plural>/{uuid}/<attribute>` — accepts the binary content as the
|
|
302
|
+
* request body, hashes it, stores it on the BinaryService, and updates
|
|
303
|
+
* this Binary's metadata. Returns early if the new content's hash matches
|
|
304
|
+
* what we already hold (idempotent on duplicate uploads).
|
|
305
|
+
*
|
|
306
|
+
* Migrated from `DomainService.binaryPut`; the parent-loading step is
|
|
307
|
+
* unnecessary here because the Behavior is already attached to its parent
|
|
308
|
+
* by `__hydrateBehaviors`.
|
|
309
|
+
*/
|
|
310
|
+
attach(): Promise<void>;
|
|
311
|
+
/**
|
|
312
|
+
* Challenge-based upload handshake.
|
|
313
|
+
*
|
|
314
|
+
* `PUT /<plural>/{uuid}/<attribute>` — the client sends `{ hash, challenge,
|
|
315
|
+
* size?, name?, mimetype?, metadata? }`; we ask the BinaryService for a
|
|
316
|
+
* pre-signed upload URL (or a "done" flag if dedup matched) and return it.
|
|
317
|
+
*
|
|
318
|
+
* Migrated from `DomainService.binaryChallenge`.
|
|
319
|
+
* @param body - the challenge body forwarded by `resolveArguments`; falls
|
|
320
|
+
* back to `context.getInput()` when undefined.
|
|
321
|
+
* @returns `{ url?, method?, headers?, done, md5 }`
|
|
322
|
+
*/
|
|
323
|
+
attachChallenge(body?: BinaryFileInfo & {
|
|
324
|
+
hash: string;
|
|
325
|
+
challenge: string;
|
|
326
|
+
}): Promise<any>;
|
|
327
|
+
/**
|
|
328
|
+
* Stream the binary to the response, or 302-redirect to a signed URL.
|
|
329
|
+
*
|
|
330
|
+
* `GET /<plural>/{uuid}/<attribute>` — if the underlying BinaryService
|
|
331
|
+
* supports redirect URLs (e.g. S3) we 302 to the signed URL; otherwise we
|
|
332
|
+
* pipe the bytes directly through the response.
|
|
333
|
+
*
|
|
334
|
+
* Named `download` (not `get`) so the parent `BinaryMap.get(): Readable`
|
|
335
|
+
* accessor isn't shadowed — Behavior @Action methods can't change the
|
|
336
|
+
* parent type's contract, and a plain `get()` overload that returns
|
|
337
|
+
* `void` would break callers that consume the Readable.
|
|
338
|
+
*
|
|
339
|
+
* Migrated from `DomainService.binaryGet` (single-cardinality branch).
|
|
340
|
+
*/
|
|
341
|
+
download(): Promise<void>;
|
|
342
|
+
/**
|
|
343
|
+
* Return a JSON `{ Location, Map }` describing where to fetch the binary.
|
|
344
|
+
*
|
|
345
|
+
* `GET /<plural>/{uuid}/<attribute>/url` — variant of `download()` that
|
|
346
|
+
* returns the URL as JSON instead of redirecting. Used by clients that
|
|
347
|
+
* want to discover the URL without following the redirect.
|
|
348
|
+
*
|
|
349
|
+
* Migrated from `DomainService.binaryGet`'s `returnUrl` branch.
|
|
350
|
+
* @returns `{ Location, Map }`
|
|
351
|
+
*/
|
|
352
|
+
downloadUrl(): Promise<{
|
|
353
|
+
Location: string | undefined;
|
|
354
|
+
Map: BinaryMap<T>;
|
|
355
|
+
}>;
|
|
356
|
+
/**
|
|
357
|
+
* Update the metadata sidecar attached to this binary.
|
|
358
|
+
*
|
|
359
|
+
* `PUT /<plural>/{uuid}/<attribute>/{hash}` — verifies the URL `{hash}`
|
|
360
|
+
* matches the current binary, applies the new metadata, and persists via
|
|
361
|
+
* `parent.instance.patch(...)`. Metadata payload is capped at 4 KB to
|
|
362
|
+
* mirror the existing `DomainService.binaryAction` rule.
|
|
363
|
+
*
|
|
364
|
+
* Migrated from `DomainService.binaryAction` (action="metadata" branch).
|
|
365
|
+
* @param hash - the URL-supplied hash; must match `this.hash`
|
|
366
|
+
* @param metadata - the new metadata blob (≤ 4 KB JSON)
|
|
367
|
+
*/
|
|
368
|
+
setMetadata(hash: string, metadata: T): Promise<void>;
|
|
369
|
+
/**
|
|
370
|
+
* Return undefined at runtime if no hash; the type annotation deliberately
|
|
371
|
+
* narrows to the populated shape so the schema generator follows
|
|
372
|
+
* `BinaryFileInfo<T>` for the Output/Stored schemas.
|
|
373
|
+
* @returns the result
|
|
374
|
+
*/
|
|
375
|
+
toJSON(): BinaryFileInfo<T>;
|
|
376
|
+
get parent(): any;
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Define a Binary map stored in a Binaries collection
|
|
380
|
+
*/
|
|
381
|
+
export declare class BinariesItem<T extends object = {}> extends BinaryMap<T> {
|
|
382
|
+
[WEBDA_STORAGE]: {
|
|
383
|
+
service: BinaryService;
|
|
384
|
+
parent: BinariesImpl<T>;
|
|
385
|
+
};
|
|
386
|
+
/** Create a new BinariesItem
|
|
387
|
+
* @param parent - the parent binaries collection
|
|
388
|
+
* @param info - the binary file information
|
|
389
|
+
*/
|
|
390
|
+
constructor(parent: BinariesImpl<T>, info: BinaryFileInfo<T>);
|
|
391
|
+
/**
|
|
392
|
+
* Replace the binary
|
|
393
|
+
* @param id - the identifier
|
|
394
|
+
* @param ctx - the operation context
|
|
395
|
+
* @param file - the file path
|
|
396
|
+
* @returns the result
|
|
397
|
+
*/
|
|
398
|
+
upload(file: BinaryFile<T>): Promise<void>;
|
|
399
|
+
/**
|
|
400
|
+
* Delete the binary, if you need to replace just use upload
|
|
401
|
+
* @returns the result
|
|
402
|
+
*/
|
|
403
|
+
delete(): Promise<void>;
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Define a collection of Binary — many-cardinality binary attribute.
|
|
407
|
+
*
|
|
408
|
+
* Tagged as a Behavior so its `@Action` methods register as
|
|
409
|
+
* `<Model>.<Attribute>.<Action>` operations alongside Single-Binary ones.
|
|
410
|
+
* Inherits from `Array<BinariesItem<T>>` so it preserves array semantics
|
|
411
|
+
* (iteration, indexed access, JSON.stringify-as-array). The transformer
|
|
412
|
+
* detects this Array-subclass shape and emits a push-based hydration
|
|
413
|
+
* coercion — see `behaviors.ts:createHydrationBlock`.
|
|
414
|
+
*
|
|
415
|
+
* @readOnly
|
|
416
|
+
* @WebdaBehavior Webda/BinariesImpl
|
|
417
|
+
*/
|
|
418
|
+
export declare class BinariesImpl<T extends object = {}> extends Array<BinariesItem<T>> {
|
|
419
|
+
protected [WEBDA_STORAGE]: {
|
|
420
|
+
service?: BinaryService;
|
|
421
|
+
[key: string]: any;
|
|
422
|
+
};
|
|
423
|
+
/**
|
|
424
|
+
* Bind this collection to a model and attribute, populating from existing binary data.
|
|
425
|
+
*
|
|
426
|
+
* Legacy entry-point used by code that constructs a `BinariesImpl()`
|
|
427
|
+
* directly (tests, manual instantiation). The Behavior-hydration path the
|
|
428
|
+
* transformer emits writes `WEBDA_STORAGE["__parent__"]` instead and
|
|
429
|
+
* never calls `assign`.
|
|
430
|
+
*
|
|
431
|
+
* @param model - the model to use
|
|
432
|
+
* @param attribute - the attribute name
|
|
433
|
+
* @returns this for chaining
|
|
434
|
+
*/
|
|
435
|
+
assign(model: Model, attribute: string): this;
|
|
436
|
+
/**
|
|
437
|
+
* Resolve the BinaryService lazily via the Behavior parent reference.
|
|
438
|
+
*
|
|
439
|
+
* Mirrors `Binary.getService()`. The transformer-emitted parent slot
|
|
440
|
+
* (`WEBDA_STORAGE["__parent__"]`) is the source of truth.
|
|
441
|
+
*
|
|
442
|
+
* @returns the BinaryService for this collection's parent attribute
|
|
443
|
+
*/
|
|
444
|
+
protected getService(): BinaryService;
|
|
445
|
+
/**
|
|
446
|
+
* Read the Behavior parent reference. Mirrors `Binary.getParent()`.
|
|
447
|
+
* @returns the parent reference or undefined
|
|
448
|
+
*/
|
|
449
|
+
protected getParent(): {
|
|
450
|
+
instance: Storable;
|
|
451
|
+
attribute: string;
|
|
452
|
+
} | undefined;
|
|
453
|
+
/** @throws Readonly collection */
|
|
454
|
+
pop(): BinariesItem<T>;
|
|
455
|
+
/** @throws Readonly collection */
|
|
456
|
+
slice(): BinariesItem<T>[];
|
|
457
|
+
/** @throws Readonly collection */
|
|
458
|
+
unshift(): number;
|
|
459
|
+
/** @throws Readonly collection */
|
|
460
|
+
shift(): BinariesItem<T>;
|
|
461
|
+
/**
|
|
462
|
+
* Add binary items, wrapping plain objects in BinariesItem
|
|
463
|
+
* @param args - additional arguments
|
|
464
|
+
* @returns the result number
|
|
465
|
+
*/
|
|
466
|
+
push(...args: any[]): number;
|
|
467
|
+
/**
|
|
468
|
+
* Upload a file to this model. Direct programmatic API (non-HTTP).
|
|
469
|
+
* @param file - the file path
|
|
470
|
+
* @param replace - whether to replace existing
|
|
471
|
+
*/
|
|
472
|
+
upload(file: BinaryFile<T>, replace?: BinariesItem<T>): Promise<void>;
|
|
473
|
+
/**
|
|
474
|
+
* Delete an item by reference or index. Direct programmatic API (non-HTTP).
|
|
475
|
+
* @param item - the item to delete
|
|
476
|
+
*/
|
|
477
|
+
delete(item: BinariesItem<T>): Promise<void>;
|
|
478
|
+
/**
|
|
479
|
+
* Direct (multipart / raw) upload from an HTTP request. Pushes a new item
|
|
480
|
+
* onto the collection.
|
|
481
|
+
*
|
|
482
|
+
* `POST /<plural>/{uuid}/<attribute>` — same shape as `Binary.attach` but
|
|
483
|
+
* pushes the new file rather than replacing the existing one.
|
|
484
|
+
* Migrated from `DomainService.binaryPut` (MANY-cardinality branch).
|
|
485
|
+
*/
|
|
486
|
+
attach(): Promise<void>;
|
|
487
|
+
/**
|
|
488
|
+
* Challenge-based upload handshake for the next item.
|
|
489
|
+
*
|
|
490
|
+
* `PUT /<plural>/{uuid}/<attribute>` — request a pre-signed upload URL
|
|
491
|
+
* for a new item identified by `{ hash, challenge, ... }`. Returns the
|
|
492
|
+
* URL or a `done` flag if dedup matched.
|
|
493
|
+
*
|
|
494
|
+
* Migrated from `DomainService.binaryChallenge` (MANY-cardinality branch).
|
|
495
|
+
* @param body - the challenge body; falls back to `context.getInput()`
|
|
496
|
+
* @returns `{ url?, method?, headers?, done, md5 }`
|
|
497
|
+
*/
|
|
498
|
+
attachChallenge(body?: BinaryFileInfo & {
|
|
499
|
+
hash: string;
|
|
500
|
+
challenge: string;
|
|
501
|
+
}): Promise<any>;
|
|
502
|
+
/**
|
|
503
|
+
* Stream a single item to the response, or 302-redirect to a signed URL.
|
|
504
|
+
*
|
|
505
|
+
* `GET /<plural>/{uuid}/<attribute>/{index}` — locates the item by `index`
|
|
506
|
+
* and behaves like `Binary.get` for that single entry.
|
|
507
|
+
*
|
|
508
|
+
* Migrated from `DomainService.binaryGet` (MANY-cardinality branch).
|
|
509
|
+
* @param index - the item position in the collection
|
|
510
|
+
*/
|
|
511
|
+
get(index: number): Promise<void>;
|
|
512
|
+
/**
|
|
513
|
+
* Return a `{ Location, Map }` JSON for a single item.
|
|
514
|
+
*
|
|
515
|
+
* `GET /<plural>/{uuid}/<attribute>/{index}/url` — variant of `get` that
|
|
516
|
+
* returns the URL as JSON instead of redirecting / streaming.
|
|
517
|
+
*
|
|
518
|
+
* Migrated from `DomainService.binaryGet`'s `returnUrl` branch
|
|
519
|
+
* (MANY-cardinality).
|
|
520
|
+
* @param index - the item position in the collection
|
|
521
|
+
* @returns `{ Location, Map }`
|
|
522
|
+
*/
|
|
523
|
+
getUrl(index: number): Promise<{
|
|
524
|
+
Location: string | undefined;
|
|
525
|
+
Map: BinaryMap<T>;
|
|
526
|
+
}>;
|
|
527
|
+
/**
|
|
528
|
+
* Delete a single item by `(index, hash)`.
|
|
529
|
+
*
|
|
530
|
+
* `DELETE /<plural>/{uuid}/<attribute>/{index}/{hash}` — the URL `{hash}`
|
|
531
|
+
* must match the item at `{index}`. Removes from storage and from the
|
|
532
|
+
* in-memory collection.
|
|
533
|
+
*
|
|
534
|
+
* Migrated from `DomainService.binaryAction` (action="delete",
|
|
535
|
+
* MANY-cardinality branch).
|
|
536
|
+
* @param index - the item position
|
|
537
|
+
* @param hash - the URL-supplied hash; must match `this[index].hash`
|
|
538
|
+
*/
|
|
539
|
+
deleteAt(index: number, hash: string): Promise<void>;
|
|
540
|
+
/**
|
|
541
|
+
* Update the metadata sidecar of a single item.
|
|
542
|
+
*
|
|
543
|
+
* `PUT /<plural>/{uuid}/<attribute>/{index}/{hash}` — verifies the hash,
|
|
544
|
+
* applies the new metadata, and persists via `parent.instance.patch(...)`.
|
|
545
|
+
* Metadata payload capped at 4 KB.
|
|
546
|
+
*
|
|
547
|
+
* Migrated from `DomainService.binaryAction` (action="metadata",
|
|
548
|
+
* MANY-cardinality branch).
|
|
549
|
+
* @param index - the item position
|
|
550
|
+
* @param hash - the URL-supplied hash; must match `this[index].hash`
|
|
551
|
+
* @param metadata - the new metadata blob (≤ 4 KB JSON)
|
|
552
|
+
*/
|
|
553
|
+
setMetadata(index: number, hash: string, metadata?: T): Promise<void>;
|
|
554
|
+
/**
|
|
555
|
+
* Native array serialization. The transformer adds a Behavior-style
|
|
556
|
+
* `toJSON` to every Behavior class unless the author defines one;
|
|
557
|
+
* we override it explicitly so JSON.stringify produces a plain array of
|
|
558
|
+
* items rather than an object keyed by indices.
|
|
559
|
+
* @returns the result array
|
|
560
|
+
*/
|
|
561
|
+
toJSON(): BinariesItem<T>[];
|
|
562
|
+
get parent(): any;
|
|
563
|
+
}
|
|
564
|
+
/**
|
|
565
|
+
* Type-level alias for `BinariesImpl<T>`.
|
|
566
|
+
*
|
|
567
|
+
* Models declare `photos: Binaries<...>` rather than the more verbose
|
|
568
|
+
* `photos: BinariesImpl<...>`; the compiler resolves this alias to the
|
|
569
|
+
* `BinariesImpl` class declaration, picks up the `@WebdaBehavior` JSDoc
|
|
570
|
+
* tag there, and registers the attribute as a Behavior. The runtime
|
|
571
|
+
* shape (push/splice/index access plus `attach`, `attachChallenge`, `get`,
|
|
572
|
+
* `getUrl`, `deleteAt`, `setMetadata`, `upload`) comes from
|
|
573
|
+
* `BinariesImpl` directly.
|
|
574
|
+
*/
|
|
575
|
+
export type Binaries<T extends object = {}> = BinariesImpl<T>;
|
|
576
|
+
/** Parameters for BinaryService, defining model mappings and max upload size */
|
|
577
|
+
export declare class BinaryParameters extends ServiceParameters {
|
|
578
|
+
/**
|
|
579
|
+
* max file size
|
|
580
|
+
*/
|
|
581
|
+
protected _maxFileSize: number;
|
|
582
|
+
/**
|
|
583
|
+
* Define the map of models
|
|
584
|
+
* * indicates all models
|
|
585
|
+
*
|
|
586
|
+
* key is a Store name
|
|
587
|
+
* the string[] represent all valids attributes to store files in * indicates all attributes
|
|
588
|
+
*/
|
|
589
|
+
models: {
|
|
590
|
+
[key: string]: string[];
|
|
591
|
+
};
|
|
592
|
+
/**
|
|
593
|
+
* Define the maximum filesize to accept as direct upload
|
|
594
|
+
*
|
|
595
|
+
* @default 10 MB
|
|
596
|
+
*/
|
|
597
|
+
set maxFileSize(value: number | string);
|
|
598
|
+
/**
|
|
599
|
+
* Get the max file size in bytes
|
|
600
|
+
* @returns the result number
|
|
601
|
+
*/
|
|
602
|
+
get maxFileSize(): number;
|
|
603
|
+
/**
|
|
604
|
+
* Load parameters with defaults for model mappings and max file size
|
|
605
|
+
* @param params - the service parameters
|
|
606
|
+
* @returns this for chaining
|
|
607
|
+
*/
|
|
608
|
+
load(params?: any): this;
|
|
609
|
+
}
|
|
610
|
+
export type BinaryEvents = {
|
|
611
|
+
/**
|
|
612
|
+
* Emitted when someone download a binary
|
|
613
|
+
*/
|
|
614
|
+
"Binary.Get": EventBinary;
|
|
615
|
+
"Binary.UploadSuccess": EventBinaryUploadSuccess;
|
|
616
|
+
"Binary.MetadataUpdate": EventBinaryMetadataUpdate;
|
|
617
|
+
"Binary.MetadataUpdated": EventBinaryUploadSuccess;
|
|
618
|
+
"Binary.Create": EventBinaryUploadSuccess;
|
|
619
|
+
"Binary.Delete": EventBinary;
|
|
620
|
+
};
|
|
621
|
+
/**
|
|
622
|
+
* Define a BinaryModel with infinite field for binary map
|
|
623
|
+
*/
|
|
624
|
+
export type CoreModelWithBinary<T = {
|
|
625
|
+
[key: string]: BinaryMap[] | BinaryMap;
|
|
626
|
+
}> = Model & T;
|
|
627
|
+
/**
|
|
628
|
+
* This is an abstract service to represent a storage of files
|
|
629
|
+
* The binary allow you to expose this service as HTTP
|
|
630
|
+
*
|
|
631
|
+
* It supports two modes:
|
|
632
|
+
* - attached to a CoreModel (attach, detach, reattach)
|
|
633
|
+
* - pure storage with no managed id (read, write, delete)
|
|
634
|
+
*
|
|
635
|
+
* As we have deduplication builtin you can get some stats
|
|
636
|
+
* - getUsageCount(hash)
|
|
637
|
+
* - getUsageCountForRaw()
|
|
638
|
+
* - getUsageCountForMap()
|
|
639
|
+
*
|
|
640
|
+
* The Binary storage should store only once a binary and reference every object that are used by this binary, so it can be cleaned.
|
|
641
|
+
*
|
|
642
|
+
*
|
|
643
|
+
* @see FileBinary
|
|
644
|
+
* @see S3Binary
|
|
645
|
+
*
|
|
646
|
+
* @exports
|
|
647
|
+
* @abstract
|
|
648
|
+
* @WebdaModda Binary
|
|
649
|
+
*/
|
|
650
|
+
export declare abstract class BinaryService<T extends BinaryParameters = BinaryParameters, E extends BinaryEvents = BinaryEvents> extends Service<T, E> implements MappingService<BinaryMap> {
|
|
651
|
+
_lowercaseMaps: any;
|
|
652
|
+
metrics: {
|
|
653
|
+
upload: Counter;
|
|
654
|
+
download: Counter;
|
|
655
|
+
delete: Counter;
|
|
656
|
+
metadataUpdate: Counter;
|
|
657
|
+
};
|
|
658
|
+
/**
|
|
659
|
+
* @override
|
|
660
|
+
*/
|
|
661
|
+
initMetrics(): void;
|
|
662
|
+
/**
|
|
663
|
+
* Get a UrlFromObject
|
|
664
|
+
*
|
|
665
|
+
* @param binaryMap - the binary map definition
|
|
666
|
+
* @param _context - the execution context
|
|
667
|
+
* @param _expires - the expiration time
|
|
668
|
+
* @returns the result
|
|
669
|
+
*/
|
|
670
|
+
getRedirectUrlFromObject(binaryMap: BinaryMap, _context: IOperationContext, _expires?: number): Promise<null | string>;
|
|
671
|
+
/**
|
|
672
|
+
* Define if binary is managed by the store
|
|
673
|
+
* @param modelName - the model name
|
|
674
|
+
* @param attribute - the attribute name
|
|
675
|
+
* @returns -1 if not managed, 0 if managed but by default, 1 if managed and in the map, 2 if explicit with attribute and model
|
|
676
|
+
*/
|
|
677
|
+
handleBinary(modelName: string, attribute: string): -1 | 0 | 1 | 2;
|
|
678
|
+
/**
|
|
679
|
+
* When you store a binary to be able to retrieve it you need to store the information into another object
|
|
680
|
+
*
|
|
681
|
+
* If you have a User object define like this : User = {'name': 'Remi', 'uuid': 'Loopingz'}
|
|
682
|
+
* You will call the `store(userStore, 'Loopingz', 'images', filedata, {'type':'profile'})`
|
|
683
|
+
* After a successful call the object will look like
|
|
684
|
+
* ```
|
|
685
|
+
* User = {
|
|
686
|
+
* 'name': 'Remi',
|
|
687
|
+
* 'uuid': 'Loopingz',
|
|
688
|
+
* 'images': [
|
|
689
|
+
* {'type':'profile','hash':'a12545...','size':1245,'mime':'application/octet'}
|
|
690
|
+
* ]
|
|
691
|
+
* }
|
|
692
|
+
* ```
|
|
693
|
+
*
|
|
694
|
+
*
|
|
695
|
+
* @param {CoreModel} object The object uuid to get from the store
|
|
696
|
+
* @param {String} property The object property to add the file to
|
|
697
|
+
* @param {Object} file The file by itself
|
|
698
|
+
* @param {Object} metadata to add to the binary object
|
|
699
|
+
* @emits 'binaryCreate'
|
|
700
|
+
*/
|
|
701
|
+
abstract store(object: Storable, property: string, file: BinaryFile, metadata?: BinaryMetadata): Promise<void>;
|
|
702
|
+
/**
|
|
703
|
+
* The store can retrieve how many time a binary has been used
|
|
704
|
+
*/
|
|
705
|
+
abstract getUsageCount(hash: string): Promise<number>;
|
|
706
|
+
/**
|
|
707
|
+
* Delete a binary
|
|
708
|
+
*
|
|
709
|
+
* @param {CoreModel} object The object uuid to get from the store
|
|
710
|
+
* @param {String} property The object property to add the file to
|
|
711
|
+
* @param {Number} index The index of the file to change in the property
|
|
712
|
+
* @emits 'binaryDelete'
|
|
713
|
+
*/
|
|
714
|
+
abstract delete(object: Storable, property: string, index?: number): Promise<void>;
|
|
715
|
+
/**
|
|
716
|
+
* Get a binary
|
|
717
|
+
*
|
|
718
|
+
* @param {Object} info The reference stored in your target object
|
|
719
|
+
* @emits 'binaryGet'
|
|
720
|
+
* @returns the result
|
|
721
|
+
*/
|
|
722
|
+
get(info: BinaryMap): Promise<Readable>;
|
|
723
|
+
/**
|
|
724
|
+
* Download a binary to a file
|
|
725
|
+
*
|
|
726
|
+
* @param {Object} info The reference stored in your target object
|
|
727
|
+
* @param {String} filepath to save the binary to
|
|
728
|
+
* @param filename - the filename
|
|
729
|
+
*/
|
|
730
|
+
downloadTo(info: BinaryMap, filename: any): Promise<void>;
|
|
731
|
+
abstract _get(info: BinaryMap): Promise<Readable>;
|
|
732
|
+
/**
|
|
733
|
+
* Based on the raw Map init a BinaryMap
|
|
734
|
+
* @param obj - the target object
|
|
735
|
+
* @returns the result map
|
|
736
|
+
*/
|
|
737
|
+
newModel(obj: any): BinaryMap;
|
|
738
|
+
/**
|
|
739
|
+
* Read a stream to a buffer
|
|
740
|
+
*
|
|
741
|
+
* @param stream - the stream
|
|
742
|
+
* @returns the result
|
|
743
|
+
*/
|
|
744
|
+
static streamToBuffer(stream: Readable): Promise<Buffer>;
|
|
745
|
+
/**
|
|
746
|
+
* Check if a map is defined
|
|
747
|
+
*
|
|
748
|
+
* @param name - the name to use
|
|
749
|
+
* @param property - the property name
|
|
750
|
+
* @param object - the target object
|
|
751
|
+
*/
|
|
752
|
+
protected checkMap(object: Model, property: string): void;
|
|
753
|
+
/**
|
|
754
|
+
* Ensure events are sent correctly after an upload and update the BinaryFileInfo in targetted object
|
|
755
|
+
* @param object - the target object
|
|
756
|
+
* @param property - the property name
|
|
757
|
+
* @param fileInfo - the file information
|
|
758
|
+
*/
|
|
759
|
+
uploadSuccess(object: CoreModelWithBinary, property: string, fileInfo: BinaryFileInfo | {
|
|
760
|
+
toBinaryFileInfo: () => BinaryFileInfo;
|
|
761
|
+
}): Promise<void>;
|
|
762
|
+
/**
|
|
763
|
+
* Cascade delete the object
|
|
764
|
+
*
|
|
765
|
+
* @param info of the map
|
|
766
|
+
* @param uuid of the object
|
|
767
|
+
*/
|
|
768
|
+
abstract cascadeDelete(info: BinaryMap, uuid: string): Promise<void>;
|
|
769
|
+
/**
|
|
770
|
+
*
|
|
771
|
+
* @param targetStore - the target store
|
|
772
|
+
* @param object - the target object
|
|
773
|
+
* @param property - the property name
|
|
774
|
+
* @param index - the index
|
|
775
|
+
* @returns the result
|
|
776
|
+
*/
|
|
777
|
+
deleteSuccess(object: CoreModelWithBinary, property: string, index?: number): Promise<void>;
|
|
778
|
+
/**
|
|
779
|
+
* Get file either from multipart post or raw
|
|
780
|
+
* @param req - the request
|
|
781
|
+
* @returns the result
|
|
782
|
+
*/
|
|
783
|
+
getFile(req: IOperationContext): Promise<BinaryFile>;
|
|
784
|
+
/**
|
|
785
|
+
* Return the name of the service for OpenAPI
|
|
786
|
+
* @returns the result string
|
|
787
|
+
*/
|
|
788
|
+
protected getOperationName(): string;
|
|
789
|
+
/**
|
|
790
|
+
* Based on the request parameter verify it match a known mapping
|
|
791
|
+
* @param ctx - the operation context
|
|
792
|
+
* @returns the result
|
|
793
|
+
*/
|
|
794
|
+
protected verifyMapAndStore(ctx: IOperationContext): IStore;
|
|
795
|
+
/**
|
|
796
|
+
* By default no challenge is managed so throws 404
|
|
797
|
+
*
|
|
798
|
+
* @param args - additional arguments
|
|
799
|
+
*/
|
|
800
|
+
putRedirectUrl(...args: any): Promise<{
|
|
801
|
+
url: string;
|
|
802
|
+
method?: string;
|
|
803
|
+
headers?: {
|
|
804
|
+
[key: string]: string;
|
|
805
|
+
};
|
|
806
|
+
}>;
|
|
807
|
+
}
|
|
808
|
+
//# sourceMappingURL=binary.service.d.ts.map
|