@webda/core 4.0.0-beta.2 → 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/{unpackedapplication.d.ts → application/unpackedapplication.d.ts} +43 -23
- 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 -58
- package/lib/configurations/configuration.service.d.ts.map +1 -0
- package/lib/configurations/configuration.service.js +248 -0
- package/lib/configurations/configuration.service.js.map +1 -0
- package/lib/configurations/fileconfiguration.service.d.ts +30 -0
- package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
- package/lib/configurations/fileconfiguration.service.js +65 -0
- package/lib/configurations/fileconfiguration.service.js.map +1 -0
- package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
- package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
- package/lib/configurations/kubernetesconfiguration.service.js +83 -0
- package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
- package/lib/contexts/execution.d.ts +33 -0
- package/lib/contexts/execution.d.ts.map +1 -0
- package/lib/contexts/execution.js +73 -0
- package/lib/contexts/execution.js.map +1 -0
- package/lib/contexts/globalcontext.d.ts +29 -0
- package/lib/contexts/globalcontext.d.ts.map +1 -0
- package/lib/contexts/globalcontext.js +38 -0
- package/lib/contexts/globalcontext.js.map +1 -0
- package/lib/{utils → contexts}/httpcontext.d.ts +44 -19
- package/lib/contexts/httpcontext.d.ts.map +1 -0
- package/lib/{utils → contexts}/httpcontext.js +95 -27
- package/lib/contexts/httpcontext.js.map +1 -0
- package/lib/contexts/icontext.d.ts +236 -0
- package/lib/contexts/icontext.d.ts.map +1 -0
- package/lib/contexts/icontext.js +230 -0
- package/lib/contexts/icontext.js.map +1 -0
- package/lib/contexts/operationcontext.d.ts +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 +82 -53
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +81 -62
- package/lib/index.js.map +1 -1
- package/lib/loggers/console.service.d.ts +24 -0
- package/lib/loggers/console.service.d.ts.map +1 -0
- package/lib/loggers/console.service.js +30 -0
- package/lib/loggers/console.service.js.map +1 -0
- package/lib/loggers/file.service.d.ts +25 -0
- package/lib/loggers/file.service.d.ts.map +1 -0
- package/lib/loggers/file.service.js +33 -0
- package/lib/loggers/file.service.js.map +1 -0
- package/lib/loggers/hooks.d.ts +20 -0
- package/lib/loggers/hooks.d.ts.map +1 -0
- package/lib/loggers/hooks.js +40 -0
- package/lib/loggers/hooks.js.map +1 -0
- package/lib/loggers/ilogger.d.ts +76 -0
- package/lib/loggers/ilogger.d.ts.map +1 -0
- package/lib/loggers/ilogger.js +108 -0
- package/lib/loggers/ilogger.js.map +1 -0
- package/lib/loggers/logger.d.ts +13 -0
- package/lib/loggers/logger.d.ts.map +1 -0
- package/lib/loggers/logger.js +18 -0
- package/lib/loggers/logger.js.map +1 -0
- package/lib/loggers/memory.service.d.ts +18 -0
- package/lib/loggers/memory.service.d.ts.map +1 -0
- package/lib/loggers/memory.service.js +21 -0
- package/lib/loggers/memory.service.js.map +1 -0
- package/lib/loggers/params.d.ts +47 -0
- package/lib/loggers/params.d.ts.map +1 -0
- package/lib/loggers/params.js +56 -0
- package/lib/loggers/params.js.map +1 -0
- package/lib/metrics/metrics.d.ts +25 -0
- package/lib/metrics/metrics.d.ts.map +1 -0
- package/lib/metrics/metrics.js +51 -0
- package/lib/metrics/metrics.js.map +1 -0
- package/lib/models/aclmodel.d.ts +20 -76
- package/lib/models/aclmodel.d.ts.map +1 -1
- package/lib/models/aclmodel.js +27 -203
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/coremodel.model.d.ts +5 -0
- package/lib/models/coremodel.model.d.ts.map +1 -0
- package/lib/models/coremodel.model.js +5 -0
- package/lib/models/coremodel.model.js.map +1 -0
- package/lib/models/decorator.d.ts +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 +1 -1
- package/lib/models/deployment.d.ts.map +1 -1
- 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.js → rolemodel.model.js} +23 -5
- package/lib/models/rolemodel.model.js.map +1 -0
- package/lib/models/simpleuser.model.d.ts +78 -0
- package/lib/models/simpleuser.model.d.ts.map +1 -0
- package/lib/models/simpleuser.model.js +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.d.ts → memoryqueue.service.d.ts} +26 -13
- package/lib/queues/memoryqueue.service.d.ts.map +1 -0
- package/lib/queues/{memoryqueue.js → memoryqueue.service.js} +55 -31
- package/lib/queues/memoryqueue.service.js.map +1 -0
- package/lib/queues/pubsubservice.d.ts +8 -6
- package/lib/queues/pubsubservice.d.ts.map +1 -1
- package/lib/queues/pubsubservice.js +5 -4
- package/lib/queues/pubsubservice.js.map +1 -1
- package/lib/queues/queueservice.d.ts +9 -11
- package/lib/queues/queueservice.d.ts.map +1 -1
- package/lib/queues/queueservice.js +41 -13
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/rest/hooks.d.ts +8 -0
- package/lib/rest/hooks.d.ts.map +1 -0
- package/lib/rest/hooks.js +10 -0
- package/lib/rest/hooks.js.map +1 -0
- package/lib/rest/irest.d.ts +212 -0
- package/lib/rest/irest.d.ts.map +1 -0
- package/lib/rest/irest.js +39 -0
- package/lib/rest/irest.js.map +1 -0
- package/lib/rest/originfilter.d.ts +38 -0
- package/lib/rest/originfilter.d.ts.map +1 -0
- package/lib/rest/originfilter.js +61 -0
- package/lib/rest/originfilter.js.map +1 -0
- package/lib/rest/restoperationstransport.service.d.ts +193 -0
- package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
- package/lib/rest/restoperationstransport.service.js +780 -0
- package/lib/rest/restoperationstransport.service.js.map +1 -0
- package/lib/rest/router.service.d.ts +244 -0
- package/lib/rest/router.service.d.ts.map +1 -0
- package/lib/rest/router.service.js +843 -0
- package/lib/rest/router.service.js.map +1 -0
- package/lib/schemas/hooks.d.ts +48 -0
- package/lib/schemas/hooks.d.ts.map +1 -0
- package/lib/schemas/hooks.js +152 -0
- package/lib/schemas/hooks.js.map +1 -0
- package/lib/services/audit.model.d.ts +208 -0
- package/lib/services/audit.model.d.ts.map +1 -0
- package/lib/services/audit.model.js +431 -0
- package/lib/services/audit.model.js.map +1 -0
- package/lib/services/{authentication.d.ts → authentication.service.d.ts} +140 -59
- 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 +17 -12
- package/lib/services/cloudbinary.d.ts.map +1 -1
- package/lib/services/cloudbinary.js +23 -17
- package/lib/services/cloudbinary.js.map +1 -1
- package/lib/services/command.d.ts +118 -0
- package/lib/services/command.d.ts.map +1 -0
- package/lib/services/command.js +97 -0
- package/lib/services/command.js.map +1 -0
- package/lib/services/cron.service.d.ts +142 -0
- package/lib/services/cron.service.d.ts.map +1 -0
- package/lib/services/cron.service.js +291 -0
- package/lib/services/cron.service.js.map +1 -0
- package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +75 -141
- package/lib/services/cryptoservice.service.d.ts.map +1 -0
- package/lib/services/cryptoservice.service.js +527 -0
- package/lib/services/cryptoservice.service.js.map +1 -0
- package/lib/services/debugmailer.service.d.ts +49 -0
- package/lib/services/debugmailer.service.d.ts.map +1 -0
- package/lib/services/{debugmailer.js → debugmailer.service.js} +25 -10
- package/lib/services/debugmailer.service.js.map +1 -0
- package/lib/services/domainservice.service.d.ts +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 -11
- package/lib/services/notificationservice.service.d.ts.map +1 -0
- package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
- package/lib/services/notificationservice.service.js.map +1 -0
- package/lib/services/oauth.d.ts +52 -28
- package/lib/services/oauth.d.ts.map +1 -1
- package/lib/services/oauth.js +365 -254
- 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 -12
- package/lib/services/prometheus.service.d.ts.map +1 -0
- package/lib/services/prometheus.service.js +203 -0
- package/lib/services/prometheus.service.js.map +1 -0
- package/lib/services/{resource.d.ts → resource.service.d.ts} +34 -15
- package/lib/services/resource.service.d.ts.map +1 -0
- package/lib/services/resource.service.js +301 -0
- package/lib/services/resource.service.js.map +1 -0
- package/lib/services/service.d.ts +87 -188
- package/lib/services/service.d.ts.map +1 -1
- package/lib/services/service.js +407 -422
- package/lib/services/service.js.map +1 -1
- package/lib/services/servicecommands.d.ts +99 -0
- package/lib/services/servicecommands.d.ts.map +1 -0
- package/lib/services/servicecommands.js +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 -19
- package/lib/session/cookie.d.ts.map +1 -0
- package/lib/{utils → session}/cookie.js +76 -23
- package/lib/session/cookie.js.map +1 -0
- package/lib/session/manager.model.d.ts +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 +126 -626
- package/lib/stores/store.d.ts.map +1 -1
- package/lib/stores/store.js +257 -1117
- package/lib/stores/store.js.map +1 -1
- package/lib/templates/templates.d.ts +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 +4 -2
- package/lib/utils/abstractdeployer.d.ts.map +1 -1
- package/lib/utils/abstractdeployer.js +3 -0
- package/lib/utils/abstractdeployer.js.map +1 -1
- package/package.json +85 -60
- package/test/cachedapp/webda.config.json +1 -5
- package/test/config-cached.json +1 -5
- package/test/config.json +0 -9
- package/test/my-cnf.json +9 -0
- package/webda.module.json +3463 -2482
- package/lib/application.d.ts +0 -888
- package/lib/application.d.ts.map +0 -1
- package/lib/application.js +0 -768
- package/lib/application.js.map +0 -1
- package/lib/application.spec.d.ts +0 -2
- package/lib/application.spec.d.ts.map +0 -1
- package/lib/application.spec.js +0 -248
- package/lib/application.spec.js.map +0 -1
- package/lib/core.d.ts +0 -743
- package/lib/core.d.ts.map +0 -1
- package/lib/core.js +0 -1334
- package/lib/core.js.map +0 -1
- package/lib/core.spec.d.ts +0 -2
- package/lib/core.spec.d.ts.map +0 -1
- package/lib/core.spec.js +0 -790
- package/lib/core.spec.js.map +0 -1
- package/lib/errors.d.ts +0 -64
- package/lib/errors.d.ts.map +0 -1
- package/lib/errors.js +0 -97
- package/lib/errors.js.map +0 -1
- package/lib/errors.spec.d.ts +0 -2
- package/lib/errors.spec.d.ts.map +0 -1
- package/lib/errors.spec.js +0 -33
- package/lib/errors.spec.js.map +0 -1
- package/lib/models/aclmodel.spec.d.ts +0 -2
- package/lib/models/aclmodel.spec.d.ts.map +0 -1
- package/lib/models/aclmodel.spec.js +0 -187
- package/lib/models/aclmodel.spec.js.map +0 -1
- package/lib/models/coremodel.d.ts +0 -896
- package/lib/models/coremodel.d.ts.map +0 -1
- package/lib/models/coremodel.js +0 -1214
- package/lib/models/coremodel.js.map +0 -1
- package/lib/models/coremodel.spec.d.ts +0 -2
- package/lib/models/coremodel.spec.d.ts.map +0 -1
- package/lib/models/coremodel.spec.js +0 -464
- package/lib/models/coremodel.spec.js.map +0 -1
- package/lib/models/ident.d.ts +0 -68
- package/lib/models/ident.d.ts.map +0 -1
- package/lib/models/ident.js +0 -26
- package/lib/models/ident.js.map +0 -1
- package/lib/models/ident.spec.d.ts +0 -2
- package/lib/models/ident.spec.d.ts.map +0 -1
- package/lib/models/ident.spec.js +0 -24
- package/lib/models/ident.spec.js.map +0 -1
- package/lib/models/ownermodel.d.ts +0 -51
- package/lib/models/ownermodel.d.ts.map +0 -1
- package/lib/models/ownermodel.js +0 -65
- package/lib/models/ownermodel.js.map +0 -1
- package/lib/models/ownermodel.spec.d.ts +0 -2
- package/lib/models/ownermodel.spec.d.ts.map +0 -1
- package/lib/models/ownermodel.spec.js +0 -215
- package/lib/models/ownermodel.spec.js.map +0 -1
- package/lib/models/relations.d.ts +0 -182
- package/lib/models/relations.d.ts.map +0 -1
- package/lib/models/relations.js +0 -157
- package/lib/models/relations.js.map +0 -1
- package/lib/models/relations.spec.d.ts +0 -14
- package/lib/models/relations.spec.d.ts.map +0 -1
- package/lib/models/relations.spec.js +0 -217
- package/lib/models/relations.spec.js.map +0 -1
- package/lib/models/rolemodel.d.ts +0 -11
- package/lib/models/rolemodel.d.ts.map +0 -1
- package/lib/models/rolemodel.js.map +0 -1
- package/lib/models/rolemodel.spec.d.ts +0 -2
- package/lib/models/rolemodel.spec.d.ts.map +0 -1
- package/lib/models/rolemodel.spec.js +0 -90
- package/lib/models/rolemodel.spec.js.map +0 -1
- package/lib/models/simpleuser.d.ts +0 -47
- package/lib/models/simpleuser.d.ts.map +0 -1
- package/lib/models/simpleuser.js +0 -84
- package/lib/models/simpleuser.js.map +0 -1
- package/lib/models/test.d.ts +0 -11
- package/lib/models/test.d.ts.map +0 -1
- package/lib/models/test.js +0 -7
- package/lib/models/test.js.map +0 -1
- package/lib/models/user.d.ts +0 -67
- package/lib/models/user.d.ts.map +0 -1
- package/lib/models/user.js +0 -86
- package/lib/models/user.js.map +0 -1
- package/lib/models/user.spec.d.ts +0 -2
- package/lib/models/user.spec.d.ts.map +0 -1
- package/lib/models/user.spec.js +0 -89
- package/lib/models/user.spec.js.map +0 -1
- package/lib/queues/filequeue.d.ts +0 -59
- package/lib/queues/filequeue.d.ts.map +0 -1
- package/lib/queues/filequeue.js +0 -131
- package/lib/queues/filequeue.js.map +0 -1
- package/lib/queues/filequeue.spec.d.ts +0 -2
- package/lib/queues/filequeue.spec.d.ts.map +0 -1
- package/lib/queues/filequeue.spec.js +0 -84
- package/lib/queues/filequeue.spec.js.map +0 -1
- package/lib/queues/memoryqueue.d.ts.map +0 -1
- package/lib/queues/memoryqueue.js.map +0 -1
- package/lib/queues/memoryqueue.spec.d.ts +0 -2
- package/lib/queues/memoryqueue.spec.d.ts.map +0 -1
- package/lib/queues/memoryqueue.spec.js +0 -203
- package/lib/queues/memoryqueue.spec.js.map +0 -1
- package/lib/queues/queue.spec.d.ts +0 -6
- package/lib/queues/queue.spec.d.ts.map +0 -1
- package/lib/queues/queue.spec.js +0 -55
- package/lib/queues/queue.spec.js.map +0 -1
- package/lib/rest/restdomainservice.d.ts +0 -63
- package/lib/rest/restdomainservice.d.ts.map +0 -1
- package/lib/rest/restdomainservice.js +0 -687
- package/lib/rest/restdomainservice.js.map +0 -1
- package/lib/rest/restdomainservice.spec.d.ts +0 -2
- package/lib/rest/restdomainservice.spec.d.ts.map +0 -1
- package/lib/rest/restdomainservice.spec.js +0 -124
- package/lib/rest/restdomainservice.spec.js.map +0 -1
- package/lib/rest/router.d.ts +0 -174
- package/lib/rest/router.d.ts.map +0 -1
- package/lib/rest/router.js +0 -429
- package/lib/rest/router.js.map +0 -1
- package/lib/rest/router.spec.d.ts +0 -2
- package/lib/rest/router.spec.d.ts.map +0 -1
- package/lib/rest/router.spec.js +0 -255
- package/lib/rest/router.spec.js.map +0 -1
- package/lib/services/asyncevents.d.ts +0 -152
- package/lib/services/asyncevents.d.ts.map +0 -1
- package/lib/services/asyncevents.js +0 -217
- package/lib/services/asyncevents.js.map +0 -1
- package/lib/services/asyncevents.spec.d.ts +0 -2
- package/lib/services/asyncevents.spec.d.ts.map +0 -1
- package/lib/services/asyncevents.spec.js +0 -118
- package/lib/services/asyncevents.spec.js.map +0 -1
- package/lib/services/authentication.d.ts.map +0 -1
- package/lib/services/authentication.js +0 -773
- package/lib/services/authentication.js.map +0 -1
- package/lib/services/authentication.spec.d.ts +0 -2
- package/lib/services/authentication.spec.d.ts.map +0 -1
- package/lib/services/authentication.spec.js +0 -458
- package/lib/services/authentication.spec.js.map +0 -1
- package/lib/services/binary.d.ts +0 -477
- package/lib/services/binary.d.ts.map +0 -1
- package/lib/services/binary.js +0 -617
- package/lib/services/binary.js.map +0 -1
- package/lib/services/binary.spec.d.ts +0 -41
- package/lib/services/binary.spec.d.ts.map +0 -1
- package/lib/services/binary.spec.js +0 -151
- package/lib/services/binary.spec.js.map +0 -1
- package/lib/services/cloudbinary.spec.d.ts +0 -6
- package/lib/services/cloudbinary.spec.d.ts.map +0 -1
- package/lib/services/cloudbinary.spec.js +0 -66
- package/lib/services/cloudbinary.spec.js.map +0 -1
- package/lib/services/configuration.d.ts.map +0 -1
- package/lib/services/configuration.js +0 -193
- package/lib/services/configuration.js.map +0 -1
- package/lib/services/configuration.spec.d.ts +0 -2
- package/lib/services/configuration.spec.d.ts.map +0 -1
- package/lib/services/configuration.spec.js +0 -130
- package/lib/services/configuration.spec.js.map +0 -1
- package/lib/services/cron.d.ts +0 -74
- package/lib/services/cron.d.ts.map +0 -1
- package/lib/services/cron.js +0 -141
- package/lib/services/cron.js.map +0 -1
- package/lib/services/cron.spec.d.ts +0 -2
- package/lib/services/cron.spec.d.ts.map +0 -1
- package/lib/services/cron.spec.js +0 -76
- package/lib/services/cron.spec.js.map +0 -1
- package/lib/services/cryptoservice.d.ts.map +0 -1
- package/lib/services/cryptoservice.js +0 -433
- package/lib/services/cryptoservice.js.map +0 -1
- package/lib/services/cryptoservice.spec.d.ts +0 -2
- package/lib/services/cryptoservice.spec.d.ts.map +0 -1
- package/lib/services/cryptoservice.spec.js +0 -177
- package/lib/services/cryptoservice.spec.js.map +0 -1
- package/lib/services/debugmailer.d.ts +0 -36
- package/lib/services/debugmailer.d.ts.map +0 -1
- package/lib/services/debugmailer.js.map +0 -1
- package/lib/services/debugmailer.spec.d.ts +0 -2
- package/lib/services/debugmailer.spec.d.ts.map +0 -1
- package/lib/services/debugmailer.spec.js +0 -32
- package/lib/services/debugmailer.spec.js.map +0 -1
- package/lib/services/domainservice.d.ts +0 -272
- package/lib/services/domainservice.d.ts.map +0 -1
- package/lib/services/domainservice.js +0 -651
- package/lib/services/domainservice.js.map +0 -1
- package/lib/services/domainservice.spec.d.ts +0 -2
- package/lib/services/domainservice.spec.d.ts.map +0 -1
- package/lib/services/domainservice.spec.js +0 -592
- package/lib/services/domainservice.spec.js.map +0 -1
- package/lib/services/filebinary.d.ts +0 -136
- package/lib/services/filebinary.d.ts.map +0 -1
- package/lib/services/filebinary.js +0 -373
- package/lib/services/filebinary.js.map +0 -1
- package/lib/services/filebinary.spec.d.ts +0 -25
- package/lib/services/filebinary.spec.d.ts.map +0 -1
- package/lib/services/filebinary.spec.js +0 -428
- package/lib/services/filebinary.spec.js.map +0 -1
- package/lib/services/fileconfiguration.d.ts +0 -23
- package/lib/services/fileconfiguration.d.ts.map +0 -1
- package/lib/services/fileconfiguration.js +0 -48
- package/lib/services/fileconfiguration.js.map +0 -1
- package/lib/services/fileconfiguration.spec.d.ts +0 -2
- package/lib/services/fileconfiguration.spec.d.ts.map +0 -1
- package/lib/services/fileconfiguration.spec.js +0 -215
- package/lib/services/fileconfiguration.spec.js.map +0 -1
- package/lib/services/invitationservice.d.ts +0 -223
- package/lib/services/invitationservice.d.ts.map +0 -1
- package/lib/services/invitationservice.js +0 -529
- package/lib/services/invitationservice.js.map +0 -1
- package/lib/services/invitationservice.spec.d.ts +0 -2
- package/lib/services/invitationservice.spec.d.ts.map +0 -1
- package/lib/services/invitationservice.spec.js +0 -567
- package/lib/services/invitationservice.spec.js.map +0 -1
- package/lib/services/kubernetesconfiguration.d.ts +0 -27
- package/lib/services/kubernetesconfiguration.d.ts.map +0 -1
- package/lib/services/kubernetesconfiguration.js +0 -52
- package/lib/services/kubernetesconfiguration.js.map +0 -1
- package/lib/services/kubernetesconfiguration.spec.d.ts +0 -2
- package/lib/services/kubernetesconfiguration.spec.d.ts.map +0 -1
- package/lib/services/kubernetesconfiguration.spec.js +0 -206
- package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
- package/lib/services/mailer.d.ts +0 -166
- package/lib/services/mailer.d.ts.map +0 -1
- package/lib/services/mailer.js +0 -176
- package/lib/services/mailer.js.map +0 -1
- package/lib/services/mailer.spec.d.ts +0 -2
- package/lib/services/mailer.spec.d.ts.map +0 -1
- package/lib/services/mailer.spec.js +0 -158
- package/lib/services/mailer.spec.js.map +0 -1
- package/lib/services/notificationservice.d.ts.map +0 -1
- package/lib/services/notificationservice.js.map +0 -1
- package/lib/services/notificationservice.spec.d.ts +0 -2
- package/lib/services/notificationservice.spec.d.ts.map +0 -1
- package/lib/services/notificationservice.spec.js +0 -83
- package/lib/services/notificationservice.spec.js.map +0 -1
- package/lib/services/oauth.spec.d.ts +0 -2
- package/lib/services/oauth.spec.d.ts.map +0 -1
- package/lib/services/oauth.spec.js +0 -208
- package/lib/services/oauth.spec.js.map +0 -1
- package/lib/services/prometheus.d.ts.map +0 -1
- package/lib/services/prometheus.js +0 -160
- package/lib/services/prometheus.js.map +0 -1
- package/lib/services/prometheus.spec.d.ts +0 -2
- package/lib/services/prometheus.spec.d.ts.map +0 -1
- package/lib/services/prometheus.spec.js +0 -76
- package/lib/services/prometheus.spec.js.map +0 -1
- package/lib/services/resource.d.ts.map +0 -1
- package/lib/services/resource.js +0 -170
- package/lib/services/resource.js.map +0 -1
- package/lib/services/resource.spec.d.ts +0 -2
- package/lib/services/resource.spec.d.ts.map +0 -1
- package/lib/services/resource.spec.js +0 -140
- package/lib/services/resource.spec.js.map +0 -1
- package/lib/services/service.spec.d.ts +0 -2
- package/lib/services/service.spec.d.ts.map +0 -1
- package/lib/services/service.spec.js +0 -286
- package/lib/services/service.spec.js.map +0 -1
- package/lib/stores/aggregator.d.ts +0 -48
- package/lib/stores/aggregator.d.ts.map +0 -1
- package/lib/stores/aggregator.js +0 -80
- package/lib/stores/aggregator.js.map +0 -1
- package/lib/stores/file.d.ts +0 -108
- package/lib/stores/file.d.ts.map +0 -1
- package/lib/stores/file.js +0 -188
- package/lib/stores/file.js.map +0 -1
- package/lib/stores/file.spec.d.ts +0 -13
- package/lib/stores/file.spec.d.ts.map +0 -1
- package/lib/stores/file.spec.js +0 -138
- package/lib/stores/file.spec.js.map +0 -1
- package/lib/stores/mapper.d.ts +0 -150
- package/lib/stores/mapper.d.ts.map +0 -1
- package/lib/stores/mapper.js +0 -293
- package/lib/stores/mapper.js.map +0 -1
- package/lib/stores/mapper.spec.d.ts +0 -2
- package/lib/stores/mapper.spec.d.ts.map +0 -1
- package/lib/stores/mapper.spec.js +0 -167
- package/lib/stores/mapper.spec.js.map +0 -1
- package/lib/stores/memory.d.ts +0 -152
- package/lib/stores/memory.d.ts.map +0 -1
- package/lib/stores/memory.js +0 -371
- package/lib/stores/memory.js.map +0 -1
- package/lib/stores/memory.spec.d.ts +0 -14
- package/lib/stores/memory.spec.d.ts.map +0 -1
- package/lib/stores/memory.spec.js +0 -263
- package/lib/stores/memory.spec.js.map +0 -1
- package/lib/stores/modelmapper.d.ts +0 -62
- package/lib/stores/modelmapper.d.ts.map +0 -1
- package/lib/stores/modelmapper.js +0 -197
- package/lib/stores/modelmapper.js.map +0 -1
- package/lib/stores/store.spec.d.ts +0 -57
- package/lib/stores/store.spec.d.ts.map +0 -1
- package/lib/stores/store.spec.js +0 -737
- package/lib/stores/store.spec.js.map +0 -1
- package/lib/test.d.ts +0 -265
- package/lib/test.d.ts.map +0 -1
- package/lib/test.js +0 -622
- package/lib/test.js.map +0 -1
- package/lib/unpackedapplication.d.ts.map +0 -1
- package/lib/unpackedapplication.js +0 -350
- package/lib/unpackedapplication.js.map +0 -1
- package/lib/utils/abstractdeployer.spec.d.ts +0 -2
- package/lib/utils/abstractdeployer.spec.d.ts.map +0 -1
- package/lib/utils/abstractdeployer.spec.js +0 -21
- package/lib/utils/abstractdeployer.spec.js.map +0 -1
- package/lib/utils/case.d.ts +0 -8
- package/lib/utils/case.d.ts.map +0 -1
- package/lib/utils/case.js +0 -43
- package/lib/utils/case.js.map +0 -1
- package/lib/utils/case.spec.d.ts +0 -2
- package/lib/utils/case.spec.d.ts.map +0 -1
- package/lib/utils/case.spec.js +0 -50
- package/lib/utils/case.spec.js.map +0 -1
- package/lib/utils/context.d.ts +0 -482
- package/lib/utils/context.d.ts.map +0 -1
- package/lib/utils/context.js +0 -739
- package/lib/utils/context.js.map +0 -1
- package/lib/utils/context.spec.d.ts +0 -10
- package/lib/utils/context.spec.d.ts.map +0 -1
- package/lib/utils/context.spec.js +0 -383
- package/lib/utils/context.spec.js.map +0 -1
- package/lib/utils/cookie.d.ts.map +0 -1
- package/lib/utils/cookie.js.map +0 -1
- package/lib/utils/cookie.spec.d.ts +0 -2
- package/lib/utils/cookie.spec.d.ts.map +0 -1
- package/lib/utils/cookie.spec.js +0 -88
- package/lib/utils/cookie.spec.js.map +0 -1
- package/lib/utils/esm.d.ts +0 -14
- package/lib/utils/esm.d.ts.map +0 -1
- package/lib/utils/esm.js +0 -19
- package/lib/utils/esm.js.map +0 -1
- package/lib/utils/httpcontext.d.ts.map +0 -1
- package/lib/utils/httpcontext.js.map +0 -1
- package/lib/utils/httpcontext.spec.d.ts +0 -5
- package/lib/utils/httpcontext.spec.d.ts.map +0 -1
- package/lib/utils/httpcontext.spec.js +0 -77
- package/lib/utils/httpcontext.spec.js.map +0 -1
- package/lib/utils/logger.d.ts +0 -92
- package/lib/utils/logger.d.ts.map +0 -1
- package/lib/utils/logger.js +0 -121
- package/lib/utils/logger.js.map +0 -1
- package/lib/utils/logger.spec.d.ts +0 -2
- package/lib/utils/logger.spec.d.ts.map +0 -1
- package/lib/utils/logger.spec.js +0 -48
- package/lib/utils/logger.spec.js.map +0 -1
- package/lib/utils/serializers.d.ts +0 -162
- package/lib/utils/serializers.d.ts.map +0 -1
- package/lib/utils/serializers.js +0 -420
- package/lib/utils/serializers.js.map +0 -1
- package/lib/utils/serializers.spec.d.ts +0 -2
- package/lib/utils/serializers.spec.d.ts.map +0 -1
- package/lib/utils/serializers.spec.js +0 -311
- package/lib/utils/serializers.spec.js.map +0 -1
- package/lib/utils/session.d.ts +0 -123
- package/lib/utils/session.d.ts.map +0 -1
- package/lib/utils/session.js +0 -156
- package/lib/utils/session.js.map +0 -1
- package/lib/utils/session.spec.d.ts +0 -2
- package/lib/utils/session.spec.d.ts.map +0 -1
- package/lib/utils/session.spec.js +0 -81
- package/lib/utils/session.spec.js.map +0 -1
- package/lib/utils/throttler.d.ts +0 -99
- package/lib/utils/throttler.d.ts.map +0 -1
- package/lib/utils/throttler.js +0 -160
- package/lib/utils/throttler.js.map +0 -1
- package/lib/utils/throttler.spec.d.ts +0 -2
- package/lib/utils/throttler.spec.d.ts.map +0 -1
- package/lib/utils/throttler.spec.js +0 -53
- package/lib/utils/throttler.spec.js.map +0 -1
- package/lib/utils/waiter.d.ts +0 -94
- package/lib/utils/waiter.d.ts.map +0 -1
- package/lib/utils/waiter.js +0 -148
- package/lib/utils/waiter.js.map +0 -1
- package/lib/utils/waiter.spec.d.ts +0 -2
- package/lib/utils/waiter.spec.d.ts.map +0 -1
- package/lib/utils/waiter.spec.js +0 -98
- package/lib/utils/waiter.spec.js.map +0 -1
- package/test/jsonutils/mdocs.yaml +0 -56
- package/test/jsonutils/test.json +0 -3
- package/test/jsonutils/test.yml +0 -5
package/lib/models/coremodel.js
DELETED
|
@@ -1,1214 +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 { EventEmitter } from "events";
|
|
8
|
-
import util from "util";
|
|
9
|
-
import { Core, EventEmitterUtils } from "../core.js";
|
|
10
|
-
import * as WebdaError from "../errors.js";
|
|
11
|
-
import { BinariesImpl, Binary } from "../services/binary.js";
|
|
12
|
-
import * as WebdaQL from "@webda/ql";
|
|
13
|
-
import { Throttler } from "../utils/throttler.js";
|
|
14
|
-
import { ModelLinksArray, ModelLinksSimpleArray, ModelMapLoaderImplementation, createModelLinksMap } from "./relations.js";
|
|
15
|
-
/**
|
|
16
|
-
* Expose the model through API or GraphQL if it exists
|
|
17
|
-
* The model will be exposed using its class name + 's'
|
|
18
|
-
* If you need to have a specific plural, use the annotation WebdaPlural
|
|
19
|
-
* to define the plural name
|
|
20
|
-
*
|
|
21
|
-
* @returns
|
|
22
|
-
*/
|
|
23
|
-
export function Expose(params = {}) {
|
|
24
|
-
return (target) => {
|
|
25
|
-
params.restrict ?? (params.restrict = {});
|
|
26
|
-
target.Expose = params;
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
*
|
|
31
|
-
*/
|
|
32
|
-
export class CoreModelQuery {
|
|
33
|
-
constructor(type, model, attribute) {
|
|
34
|
-
this.attribute = attribute;
|
|
35
|
-
this.type = type;
|
|
36
|
-
this.model = model;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Retrieve target model definition
|
|
40
|
-
* @returns
|
|
41
|
-
*/
|
|
42
|
-
getTargetModel() {
|
|
43
|
-
this.targetModel ?? (this.targetModel = Core.get().getModel(this.type));
|
|
44
|
-
return this.targetModel;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Query the object
|
|
48
|
-
* @param query
|
|
49
|
-
* @returns
|
|
50
|
-
*/
|
|
51
|
-
query(query, context) {
|
|
52
|
-
return this.getTargetModel().query(this.completeQuery(query), true, context);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Complete the query with condition
|
|
56
|
-
* @param query
|
|
57
|
-
* @returns
|
|
58
|
-
*/
|
|
59
|
-
completeQuery(query) {
|
|
60
|
-
return WebdaQL.PrependCondition(query, `${this.attribute} = '${this.model.getUuid()}'`);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
*
|
|
64
|
-
* @param callback
|
|
65
|
-
* @param context
|
|
66
|
-
*/
|
|
67
|
-
async forEach(callback, query, context, parallelism = 3) {
|
|
68
|
-
const throttler = new Throttler();
|
|
69
|
-
throttler.setConcurrency(parallelism);
|
|
70
|
-
for await (const model of this.iterate(query, context)) {
|
|
71
|
-
throttler.execute(() => callback(model));
|
|
72
|
-
}
|
|
73
|
-
return throttler.wait();
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Iterate through all
|
|
77
|
-
* @param context
|
|
78
|
-
* @returns
|
|
79
|
-
*/
|
|
80
|
-
iterate(query, context) {
|
|
81
|
-
return Core.get().getModelStore(this.getTargetModel()).iterate(this.completeQuery(query), context);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Get all the objects
|
|
85
|
-
* @returns
|
|
86
|
-
*/
|
|
87
|
-
async getAll(context) {
|
|
88
|
-
const res = [];
|
|
89
|
-
for await (const item of this.iterate(this.completeQuery(), context)) {
|
|
90
|
-
res.push(item);
|
|
91
|
-
}
|
|
92
|
-
return res;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
__decorate([
|
|
96
|
-
NotEnumerable
|
|
97
|
-
], CoreModelQuery.prototype, "type", void 0);
|
|
98
|
-
__decorate([
|
|
99
|
-
NotEnumerable
|
|
100
|
-
], CoreModelQuery.prototype, "model", void 0);
|
|
101
|
-
__decorate([
|
|
102
|
-
NotEnumerable
|
|
103
|
-
], CoreModelQuery.prototype, "attribute", void 0);
|
|
104
|
-
__decorate([
|
|
105
|
-
NotEnumerable
|
|
106
|
-
], CoreModelQuery.prototype, "targetModel", void 0);
|
|
107
|
-
/**
|
|
108
|
-
* Make a property hidden from json and schema
|
|
109
|
-
*
|
|
110
|
-
* This property will not be saved in the store
|
|
111
|
-
* Nor it will be exposed in the API
|
|
112
|
-
*
|
|
113
|
-
* @param target
|
|
114
|
-
* @param propertyKey
|
|
115
|
-
*/
|
|
116
|
-
export function NotEnumerable(target, propertyKey) {
|
|
117
|
-
Object.defineProperty(target, propertyKey, {
|
|
118
|
-
set(value) {
|
|
119
|
-
Object.defineProperty(this, propertyKey, {
|
|
120
|
-
value,
|
|
121
|
-
writable: true,
|
|
122
|
-
configurable: true
|
|
123
|
-
});
|
|
124
|
-
},
|
|
125
|
-
configurable: true
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
const ActionsAnnotated = new Map();
|
|
129
|
-
/**
|
|
130
|
-
* Define an object method as an action
|
|
131
|
-
* @param target
|
|
132
|
-
* @param propertyKey
|
|
133
|
-
*/
|
|
134
|
-
export function Action(options = {}) {
|
|
135
|
-
return (target, propertyKey) => {
|
|
136
|
-
let custom = target;
|
|
137
|
-
const global = typeof target === "function";
|
|
138
|
-
if (!global) {
|
|
139
|
-
custom = target.constructor;
|
|
140
|
-
}
|
|
141
|
-
if (!ActionsAnnotated.has(custom)) {
|
|
142
|
-
ActionsAnnotated.set(custom, {});
|
|
143
|
-
}
|
|
144
|
-
const actions = ActionsAnnotated.get(custom);
|
|
145
|
-
actions[options.name || propertyKey] = {
|
|
146
|
-
...options,
|
|
147
|
-
global,
|
|
148
|
-
method: propertyKey
|
|
149
|
-
};
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
export class ModelRef {
|
|
153
|
-
constructor(uuid, model, parent) {
|
|
154
|
-
this.uuid = uuid;
|
|
155
|
-
this.model = model;
|
|
156
|
-
this.uuid = uuid === "" ? undefined : model.completeUid(uuid);
|
|
157
|
-
this.store = Core.get().getModelStore(model);
|
|
158
|
-
}
|
|
159
|
-
async get(context) {
|
|
160
|
-
return (await this.store.get(this.uuid))?.setContext(context || this.parent?.getContext());
|
|
161
|
-
}
|
|
162
|
-
set(id) {
|
|
163
|
-
this.uuid = id instanceof CoreModel ? id.getUuid() : id;
|
|
164
|
-
this.parent?.__dirty.add(Object.keys(this.parent).find(k => this.parent[k] === this));
|
|
165
|
-
}
|
|
166
|
-
toString() {
|
|
167
|
-
return this.uuid;
|
|
168
|
-
}
|
|
169
|
-
toJSON() {
|
|
170
|
-
return this.uuid;
|
|
171
|
-
}
|
|
172
|
-
getUuid() {
|
|
173
|
-
return this.uuid;
|
|
174
|
-
}
|
|
175
|
-
async deleteItemFromCollection(prop, index, itemWriteCondition, itemWriteConditionField) {
|
|
176
|
-
const updateDate = await this.store.deleteItemFromCollection(this.uuid, prop, index, itemWriteCondition, itemWriteConditionField);
|
|
177
|
-
await this.model.emitSync("Store.PartialUpdated", {
|
|
178
|
-
object_id: this.uuid,
|
|
179
|
-
store: this.store,
|
|
180
|
-
updateDate,
|
|
181
|
-
partial_update: {
|
|
182
|
-
deleteItem: {
|
|
183
|
-
property: prop,
|
|
184
|
-
index: index
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
return this;
|
|
189
|
-
}
|
|
190
|
-
async upsertItemToCollection(prop, item, index, itemWriteCondition, itemWriteConditionField) {
|
|
191
|
-
const updateDate = await this.store.upsertItemToCollection(this.uuid, prop, item, index, itemWriteCondition, itemWriteConditionField);
|
|
192
|
-
await this.model.emitSync("Store.PartialUpdated", {
|
|
193
|
-
object_id: this.uuid,
|
|
194
|
-
store: this.store,
|
|
195
|
-
updateDate,
|
|
196
|
-
partial_update: {
|
|
197
|
-
addItem: {
|
|
198
|
-
value: item,
|
|
199
|
-
property: prop,
|
|
200
|
-
index: index
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
return this;
|
|
205
|
-
}
|
|
206
|
-
exists() {
|
|
207
|
-
return this.store.exists(this.uuid);
|
|
208
|
-
}
|
|
209
|
-
delete() {
|
|
210
|
-
return this.store.delete(this.uuid);
|
|
211
|
-
}
|
|
212
|
-
conditionalPatch(updates, conditionField, condition) {
|
|
213
|
-
return this.store.conditionalPatch(this.uuid, updates, conditionField, condition);
|
|
214
|
-
}
|
|
215
|
-
patch(updates) {
|
|
216
|
-
return this.store.conditionalPatch(this.uuid, updates, null, undefined);
|
|
217
|
-
}
|
|
218
|
-
async setAttribute(attribute, value) {
|
|
219
|
-
await this.store.setAttribute(this.uuid, attribute, value);
|
|
220
|
-
return this;
|
|
221
|
-
}
|
|
222
|
-
async removeAttribute(attribute, itemWriteCondition, itemWriteConditionField) {
|
|
223
|
-
await this.store.removeAttribute(this.uuid, attribute, itemWriteCondition, itemWriteConditionField);
|
|
224
|
-
await this.model?.emitSync("Store.PartialUpdated", {
|
|
225
|
-
object_id: this.uuid,
|
|
226
|
-
store: this.store,
|
|
227
|
-
partial_update: {
|
|
228
|
-
deleteAttribute: attribute
|
|
229
|
-
}
|
|
230
|
-
});
|
|
231
|
-
return this;
|
|
232
|
-
}
|
|
233
|
-
async incrementAttributes(info) {
|
|
234
|
-
const updateDate = await this.store.incrementAttributes(this.uuid, info);
|
|
235
|
-
await this.model.emitSync("Store.PartialUpdated", {
|
|
236
|
-
object_id: this.uuid,
|
|
237
|
-
store: this.store,
|
|
238
|
-
updateDate,
|
|
239
|
-
partial_update: {
|
|
240
|
-
increments: info
|
|
241
|
-
}
|
|
242
|
-
});
|
|
243
|
-
return this;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
__decorate([
|
|
247
|
-
NotEnumerable
|
|
248
|
-
], ModelRef.prototype, "store", void 0);
|
|
249
|
-
__decorate([
|
|
250
|
-
NotEnumerable
|
|
251
|
-
], ModelRef.prototype, "model", void 0);
|
|
252
|
-
__decorate([
|
|
253
|
-
NotEnumerable
|
|
254
|
-
], ModelRef.prototype, "parent", void 0);
|
|
255
|
-
export class ModelRefWithCreate extends ModelRef {
|
|
256
|
-
/**
|
|
257
|
-
* Allow to create a model
|
|
258
|
-
* @param defaultValue
|
|
259
|
-
* @param context
|
|
260
|
-
* @param withSave
|
|
261
|
-
* @returns
|
|
262
|
-
*/
|
|
263
|
-
async create(defaultValue, context, withSave = true) {
|
|
264
|
-
const result = new this.model().setContext(context).load(defaultValue, true).setUuid(this.uuid);
|
|
265
|
-
if (withSave) {
|
|
266
|
-
await result.save();
|
|
267
|
-
}
|
|
268
|
-
return result;
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* Load a model from the known store
|
|
272
|
-
*
|
|
273
|
-
* @param this the class from which the static is called
|
|
274
|
-
* @param id of the object to load
|
|
275
|
-
* @param defaultValue if object not found return a default object
|
|
276
|
-
* @param context to set on the object
|
|
277
|
-
* @returns
|
|
278
|
-
*/
|
|
279
|
-
async getOrCreate(defaultValue, context, withSave = true) {
|
|
280
|
-
return (await this.get()) || this.create(defaultValue, context, withSave);
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
export class ModelRefCustom extends ModelRef {
|
|
284
|
-
constructor(uuid, model, data, parent) {
|
|
285
|
-
super(uuid, model, parent);
|
|
286
|
-
this.uuid = uuid;
|
|
287
|
-
Object.assign(this, data);
|
|
288
|
-
}
|
|
289
|
-
toJSON() {
|
|
290
|
-
return this;
|
|
291
|
-
}
|
|
292
|
-
getUuid() {
|
|
293
|
-
return this.uuid;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
export const Emitters = new WeakMap();
|
|
297
|
-
/**
|
|
298
|
-
* Basic Object in Webda
|
|
299
|
-
*
|
|
300
|
-
* It is used to define a data stored
|
|
301
|
-
* Any variable starting with _ can only be set by the server
|
|
302
|
-
* Any variable starting with __ won't be exported outside of the server
|
|
303
|
-
*
|
|
304
|
-
* @class
|
|
305
|
-
* @WebdaModel
|
|
306
|
-
*/
|
|
307
|
-
class CoreModel {
|
|
308
|
-
constructor() {
|
|
309
|
-
this.__dirty = new Set();
|
|
310
|
-
this.__class = new.target;
|
|
311
|
-
// Get the store automatically now
|
|
312
|
-
this.__store = Core.get()?.getModelStore(new.target);
|
|
313
|
-
// Get the type automatically now
|
|
314
|
-
this.__type = Core.get()?.getApplication().getShortId(Core.get()?.getApplication().getModelFromInstance(this));
|
|
315
|
-
}
|
|
316
|
-
/**
|
|
317
|
-
* Listen to events on the model
|
|
318
|
-
* @param event
|
|
319
|
-
* @param listener
|
|
320
|
-
* @param async
|
|
321
|
-
*/
|
|
322
|
-
static on(event, listener, async = false) {
|
|
323
|
-
if (!Emitters.has(this)) {
|
|
324
|
-
Emitters.set(this, new EventEmitter());
|
|
325
|
-
}
|
|
326
|
-
// TODO Manage async
|
|
327
|
-
if (async) {
|
|
328
|
-
Core.get()
|
|
329
|
-
.getService("AsyncEvents")
|
|
330
|
-
.bindAsyncListener(this, event, listener);
|
|
331
|
-
}
|
|
332
|
-
else {
|
|
333
|
-
Emitters.get(this).on(event, listener);
|
|
334
|
-
}
|
|
335
|
-
return this;
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* Emit an event for this class
|
|
339
|
-
* @param this
|
|
340
|
-
* @param event
|
|
341
|
-
* @param evt
|
|
342
|
-
*/
|
|
343
|
-
static emit(event, evt) {
|
|
344
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
345
|
-
let clazz = this;
|
|
346
|
-
// @ts-ignore
|
|
347
|
-
while (clazz) {
|
|
348
|
-
// Emit for all parent class
|
|
349
|
-
if (Emitters.has(clazz)) {
|
|
350
|
-
EventEmitterUtils.emit(Emitters.get(clazz), event, evt);
|
|
351
|
-
}
|
|
352
|
-
// @ts-ignore
|
|
353
|
-
if (clazz === CoreModel) {
|
|
354
|
-
break;
|
|
355
|
-
}
|
|
356
|
-
clazz = Object.getPrototypeOf(clazz);
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
/**
|
|
360
|
-
* Emit an event for this class and wait for all listeners to finish
|
|
361
|
-
* @param this
|
|
362
|
-
* @param event
|
|
363
|
-
* @param evt
|
|
364
|
-
*/
|
|
365
|
-
static async emitSync(event, evt) {
|
|
366
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
367
|
-
let clazz = this;
|
|
368
|
-
const p = [];
|
|
369
|
-
// @ts-ignore
|
|
370
|
-
while (clazz) {
|
|
371
|
-
// Emit for all parent class
|
|
372
|
-
if (Emitters.has(clazz)) {
|
|
373
|
-
p.push(EventEmitterUtils.emitSync(Emitters.get(clazz), event, evt));
|
|
374
|
-
}
|
|
375
|
-
// @ts-ignore
|
|
376
|
-
if (clazz === CoreModel) {
|
|
377
|
-
break;
|
|
378
|
-
}
|
|
379
|
-
clazz = Object.getPrototypeOf(clazz);
|
|
380
|
-
}
|
|
381
|
-
await Promise.all(p);
|
|
382
|
-
}
|
|
383
|
-
/**
|
|
384
|
-
* Listen to events on the model asynchronously
|
|
385
|
-
* @param event
|
|
386
|
-
* @param listener
|
|
387
|
-
*/
|
|
388
|
-
static onAsync(event, listener, queue) {
|
|
389
|
-
return this.on(event, listener, true);
|
|
390
|
-
}
|
|
391
|
-
/**
|
|
392
|
-
*
|
|
393
|
-
* @param event
|
|
394
|
-
* @param listener
|
|
395
|
-
* @returns
|
|
396
|
-
*/
|
|
397
|
-
static addListener(event, listener) {
|
|
398
|
-
return this.on(event, listener);
|
|
399
|
-
}
|
|
400
|
-
static emitter(method, ...args) {
|
|
401
|
-
if (!Emitters.has(this)) {
|
|
402
|
-
Emitters.set(this, new EventEmitter());
|
|
403
|
-
}
|
|
404
|
-
// @ts-ignore
|
|
405
|
-
return Emitters.get(this)[method](...args);
|
|
406
|
-
}
|
|
407
|
-
static removeListener(...args) {
|
|
408
|
-
return this.emitter("removeListener", ...args);
|
|
409
|
-
}
|
|
410
|
-
static off(...args) {
|
|
411
|
-
return this.emitter("off", ...args);
|
|
412
|
-
}
|
|
413
|
-
static once(...args) {
|
|
414
|
-
return this.emitter("once", ...args);
|
|
415
|
-
}
|
|
416
|
-
static removeAllListeners(...args) {
|
|
417
|
-
return this.emitter("removeAllListeners", ...args);
|
|
418
|
-
}
|
|
419
|
-
static setMaxListeners(...args) {
|
|
420
|
-
return this.emitter("setMaxListeners", ...args);
|
|
421
|
-
}
|
|
422
|
-
static getMaxListeners(...args) {
|
|
423
|
-
return this.emitter("getMaxListeners", ...args);
|
|
424
|
-
}
|
|
425
|
-
static listeners(...args) {
|
|
426
|
-
return this.emitter("listeners", ...args);
|
|
427
|
-
}
|
|
428
|
-
static rawListeners(...args) {
|
|
429
|
-
return this.emitter("rawListeners", ...args);
|
|
430
|
-
}
|
|
431
|
-
static listenerCount(...args) {
|
|
432
|
-
return this.emitter("listenerCount", ...args);
|
|
433
|
-
}
|
|
434
|
-
static prependListener(...args) {
|
|
435
|
-
return this.emitter("prependListener", ...args);
|
|
436
|
-
}
|
|
437
|
-
static prependOnceListener(...args) {
|
|
438
|
-
return this.emitter("prependOnceListener", ...args);
|
|
439
|
-
}
|
|
440
|
-
static eventNames(...args) {
|
|
441
|
-
return this.emitter("eventNames", ...args);
|
|
442
|
-
}
|
|
443
|
-
/**
|
|
444
|
-
*
|
|
445
|
-
* @returns
|
|
446
|
-
*/
|
|
447
|
-
static getRelations() {
|
|
448
|
-
return Core.get()?.getApplication().getRelations(this);
|
|
449
|
-
}
|
|
450
|
-
/**
|
|
451
|
-
* Do not declare any public events by default
|
|
452
|
-
* @returns
|
|
453
|
-
*/
|
|
454
|
-
static getClientEvents() {
|
|
455
|
-
return [];
|
|
456
|
-
}
|
|
457
|
-
/**
|
|
458
|
-
* Does not allow any event by default
|
|
459
|
-
* @param _event
|
|
460
|
-
* @param _context
|
|
461
|
-
* @returns
|
|
462
|
-
*/
|
|
463
|
-
static authorizeClientEvent(_event, _context, _model) {
|
|
464
|
-
return false;
|
|
465
|
-
}
|
|
466
|
-
/**
|
|
467
|
-
* Get Store for this model
|
|
468
|
-
* @param this
|
|
469
|
-
* @returns
|
|
470
|
-
*/
|
|
471
|
-
static store() {
|
|
472
|
-
if (!Core.get()) {
|
|
473
|
-
throw new Error("Webda not initialized");
|
|
474
|
-
}
|
|
475
|
-
return Core.get().getModelStore(this);
|
|
476
|
-
}
|
|
477
|
-
/**
|
|
478
|
-
* Complete the uid with prefix if any
|
|
479
|
-
*
|
|
480
|
-
* Useful when object are stored with a prefix for full uuid
|
|
481
|
-
* @param uid
|
|
482
|
-
* @returns
|
|
483
|
-
*/
|
|
484
|
-
static completeUid(uid) {
|
|
485
|
-
return uid;
|
|
486
|
-
}
|
|
487
|
-
/**
|
|
488
|
-
* Return the known schema
|
|
489
|
-
* @returns
|
|
490
|
-
*/
|
|
491
|
-
static getSchema() {
|
|
492
|
-
const app = Core.get()?.getApplication();
|
|
493
|
-
return app?.getSchema(app.getModelFromConstructor(this));
|
|
494
|
-
}
|
|
495
|
-
/**
|
|
496
|
-
* Get a reference to a model
|
|
497
|
-
* @param this
|
|
498
|
-
* @param uid
|
|
499
|
-
* @returns
|
|
500
|
-
*/
|
|
501
|
-
static ref(uid) {
|
|
502
|
-
return new ModelRefWithCreate(uid, this);
|
|
503
|
-
}
|
|
504
|
-
/**
|
|
505
|
-
* Get a reference to a model
|
|
506
|
-
* @param this
|
|
507
|
-
* @param uid
|
|
508
|
-
* @returns
|
|
509
|
-
*/
|
|
510
|
-
static create(data) {
|
|
511
|
-
return new this().load(data, true).save();
|
|
512
|
-
}
|
|
513
|
-
/**
|
|
514
|
-
* Get identifier for this model
|
|
515
|
-
* @returns
|
|
516
|
-
*/
|
|
517
|
-
static getIdentifier(short = true) {
|
|
518
|
-
const res = Core.get().getApplication().getModelName(this);
|
|
519
|
-
if (short) {
|
|
520
|
-
return Core.get().getApplication().getShortId(res);
|
|
521
|
-
}
|
|
522
|
-
else {
|
|
523
|
-
return res;
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
/**
|
|
527
|
-
* By default allow a field
|
|
528
|
-
* @returns
|
|
529
|
-
*/
|
|
530
|
-
isDeleted() {
|
|
531
|
-
return this.__deleted;
|
|
532
|
-
}
|
|
533
|
-
/**
|
|
534
|
-
* Get the model hierarchy
|
|
535
|
-
*
|
|
536
|
-
* Ancestors will contain every model it inherits from
|
|
537
|
-
* Children will contain every model that inherits from this model in a tree structure
|
|
538
|
-
*/
|
|
539
|
-
static getHierarchy() {
|
|
540
|
-
return Core.get().getApplication().getModelHierarchy(this);
|
|
541
|
-
}
|
|
542
|
-
/**
|
|
543
|
-
* Unflat an object
|
|
544
|
-
* @param data
|
|
545
|
-
* @param split
|
|
546
|
-
* @returns
|
|
547
|
-
*/
|
|
548
|
-
static unflat(data, split = "#") {
|
|
549
|
-
const res = {};
|
|
550
|
-
for (const i in data) {
|
|
551
|
-
const attrs = i.split(split);
|
|
552
|
-
let attr = attrs.shift();
|
|
553
|
-
let cur = res;
|
|
554
|
-
while (attr) {
|
|
555
|
-
if (attrs.length) {
|
|
556
|
-
cur[attr] ?? (cur[attr] = {});
|
|
557
|
-
cur = cur[attr];
|
|
558
|
-
}
|
|
559
|
-
else {
|
|
560
|
-
cur[attr] = data[i];
|
|
561
|
-
}
|
|
562
|
-
attr = attrs.shift();
|
|
563
|
-
}
|
|
564
|
-
}
|
|
565
|
-
return res;
|
|
566
|
-
}
|
|
567
|
-
/**
|
|
568
|
-
* Create subobject for a model
|
|
569
|
-
*
|
|
570
|
-
* Useful for counters
|
|
571
|
-
*
|
|
572
|
-
* @param split
|
|
573
|
-
* @returns
|
|
574
|
-
*/
|
|
575
|
-
unflat(split = "#") {
|
|
576
|
-
return CoreModel.unflat(this, split);
|
|
577
|
-
}
|
|
578
|
-
/**
|
|
579
|
-
* Flat an object into another
|
|
580
|
-
*
|
|
581
|
-
* {
|
|
582
|
-
* a: {
|
|
583
|
-
* b: 1
|
|
584
|
-
* },
|
|
585
|
-
* c: 1
|
|
586
|
-
* }
|
|
587
|
-
*
|
|
588
|
-
* become
|
|
589
|
-
*
|
|
590
|
-
* {
|
|
591
|
-
* "a#b": 1
|
|
592
|
-
* "c": 1
|
|
593
|
-
* }
|
|
594
|
-
*
|
|
595
|
-
* @param target
|
|
596
|
-
* @param data
|
|
597
|
-
* @param split
|
|
598
|
-
* @param prefix
|
|
599
|
-
*/
|
|
600
|
-
static flat(target, data, split = "#", prefix = "") {
|
|
601
|
-
for (const i in data) {
|
|
602
|
-
if (typeof data[i] === "object") {
|
|
603
|
-
CoreModel.flat(target, data[i], split, i + split);
|
|
604
|
-
}
|
|
605
|
-
else {
|
|
606
|
-
target[prefix + i] = data[i];
|
|
607
|
-
}
|
|
608
|
-
}
|
|
609
|
-
}
|
|
610
|
-
/**
|
|
611
|
-
* Complete the query with __type/__types
|
|
612
|
-
* @param query
|
|
613
|
-
* @param includeSubclass
|
|
614
|
-
* @returns
|
|
615
|
-
*/
|
|
616
|
-
static completeQuery(query, includeSubclass = true) {
|
|
617
|
-
if (!query.includes("__type")) {
|
|
618
|
-
let condition;
|
|
619
|
-
const app = Core.get().getApplication();
|
|
620
|
-
const name = app.getShortId(app.getModelName(this));
|
|
621
|
-
if (includeSubclass) {
|
|
622
|
-
condition = `__types CONTAINS "${name}"`;
|
|
623
|
-
}
|
|
624
|
-
else {
|
|
625
|
-
condition = `__type = "${name}"`;
|
|
626
|
-
}
|
|
627
|
-
return WebdaQL.PrependCondition(query, condition);
|
|
628
|
-
}
|
|
629
|
-
return query;
|
|
630
|
-
}
|
|
631
|
-
/**
|
|
632
|
-
* Iterate through the model
|
|
633
|
-
*
|
|
634
|
-
* How to use a iterator is:
|
|
635
|
-
*
|
|
636
|
-
* ```
|
|
637
|
-
* for await (const model of CoreModel.iterate()) {
|
|
638
|
-
* // Do something with my model
|
|
639
|
-
* }
|
|
640
|
-
* ```
|
|
641
|
-
*
|
|
642
|
-
* @param this
|
|
643
|
-
* @param query
|
|
644
|
-
* @param includeSubclass
|
|
645
|
-
* @param context
|
|
646
|
-
* @returns
|
|
647
|
-
*/
|
|
648
|
-
static iterate(query = "", includeSubclass = true, context) {
|
|
649
|
-
// @ts-ignore
|
|
650
|
-
return this.store().iterate(this.completeQuery(query, includeSubclass), context);
|
|
651
|
-
}
|
|
652
|
-
/**
|
|
653
|
-
* Query for models
|
|
654
|
-
* @param this
|
|
655
|
-
* @param id
|
|
656
|
-
* @returns
|
|
657
|
-
*/
|
|
658
|
-
static async query(query = "", includeSubclass = true, context) {
|
|
659
|
-
// @ts-ignore
|
|
660
|
-
return this.store().query(this.completeQuery(query, includeSubclass), context);
|
|
661
|
-
}
|
|
662
|
-
/**
|
|
663
|
-
* Return a proxy to the object to detect if dirty
|
|
664
|
-
* @returns
|
|
665
|
-
*/
|
|
666
|
-
getProxy() {
|
|
667
|
-
const subProxier = prop => {
|
|
668
|
-
return {
|
|
669
|
-
set: (target, p, value) => {
|
|
670
|
-
this.__dirty.add(prop);
|
|
671
|
-
target[p] = value;
|
|
672
|
-
return true;
|
|
673
|
-
},
|
|
674
|
-
get: (target, p) => {
|
|
675
|
-
if (Array.isArray(target[p]) || target[p] instanceof Object) {
|
|
676
|
-
return new Proxy(target[p], subProxier(prop));
|
|
677
|
-
}
|
|
678
|
-
return target[p];
|
|
679
|
-
},
|
|
680
|
-
deleteProperty: (t, property) => {
|
|
681
|
-
delete t[property];
|
|
682
|
-
this.__dirty.add(prop);
|
|
683
|
-
return true;
|
|
684
|
-
}
|
|
685
|
-
};
|
|
686
|
-
};
|
|
687
|
-
const proxier = {
|
|
688
|
-
deleteProperty: (t, property) => {
|
|
689
|
-
delete t[property];
|
|
690
|
-
this.__dirty.add(property);
|
|
691
|
-
return true;
|
|
692
|
-
},
|
|
693
|
-
set: (target, p, value) => {
|
|
694
|
-
if (p !== "__dirty") {
|
|
695
|
-
target.__dirty.add(p);
|
|
696
|
-
}
|
|
697
|
-
target[p] = value;
|
|
698
|
-
return true;
|
|
699
|
-
},
|
|
700
|
-
get: (target, p) => {
|
|
701
|
-
if (typeof p === "string" && p.startsWith("__")) {
|
|
702
|
-
return target[p];
|
|
703
|
-
}
|
|
704
|
-
if (Array.isArray(target[p]) || target[p] instanceof Object) {
|
|
705
|
-
return new Proxy(target[p], subProxier(p));
|
|
706
|
-
}
|
|
707
|
-
return target[p];
|
|
708
|
-
}
|
|
709
|
-
};
|
|
710
|
-
return new Proxy(this, proxier);
|
|
711
|
-
}
|
|
712
|
-
/**
|
|
713
|
-
* Return true if needs a save
|
|
714
|
-
* @returns
|
|
715
|
-
*/
|
|
716
|
-
isDirty() {
|
|
717
|
-
return this.__dirty.size > 0;
|
|
718
|
-
}
|
|
719
|
-
/**
|
|
720
|
-
*
|
|
721
|
-
* @returns the uuid of the object
|
|
722
|
-
*/
|
|
723
|
-
getUuid() {
|
|
724
|
-
// @ts-ignore
|
|
725
|
-
return this[this.__class.getUuidField()];
|
|
726
|
-
}
|
|
727
|
-
/**
|
|
728
|
-
*
|
|
729
|
-
* @param uuid
|
|
730
|
-
* @param target
|
|
731
|
-
*/
|
|
732
|
-
setUuid(uuid, target = this) {
|
|
733
|
-
target[this.__class.getUuidField()] = uuid;
|
|
734
|
-
return target;
|
|
735
|
-
}
|
|
736
|
-
/**
|
|
737
|
-
* Get actions callable on an object
|
|
738
|
-
*
|
|
739
|
-
* This will expose them by the Store with /storeUrl/{uuid}/{action}
|
|
740
|
-
*/
|
|
741
|
-
static getActions() {
|
|
742
|
-
const actions = [];
|
|
743
|
-
// Explore all parent classes to collect all known actions
|
|
744
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
745
|
-
let clazz = this;
|
|
746
|
-
// @ts-ignore
|
|
747
|
-
while (clazz !== CoreModel) {
|
|
748
|
-
if (ActionsAnnotated.has(clazz)) {
|
|
749
|
-
actions.push(ActionsAnnotated.get(clazz));
|
|
750
|
-
}
|
|
751
|
-
clazz = Object.getPrototypeOf(clazz);
|
|
752
|
-
}
|
|
753
|
-
// Reduce right to give priority to the last class:
|
|
754
|
-
return actions.reduceRight((v, c) => ({ ...v, ...c }), {});
|
|
755
|
-
}
|
|
756
|
-
/**
|
|
757
|
-
* Return the expressable query for permission
|
|
758
|
-
*
|
|
759
|
-
* @param context of the query
|
|
760
|
-
* @returns
|
|
761
|
-
*/
|
|
762
|
-
static getPermissionQuery(_ctx) {
|
|
763
|
-
return null;
|
|
764
|
-
}
|
|
765
|
-
async checkAct(context, action) {
|
|
766
|
-
const msg = await this.canAct(context, action);
|
|
767
|
-
if (msg !== true) {
|
|
768
|
-
throw new WebdaError.Forbidden(msg === false ? "No permission" : msg);
|
|
769
|
-
}
|
|
770
|
-
}
|
|
771
|
-
/**
|
|
772
|
-
* By default nothing is permitted on a CoreModel
|
|
773
|
-
* @returns
|
|
774
|
-
*/
|
|
775
|
-
async canAct(_context, _action) {
|
|
776
|
-
return "This model does not support any action: override canAct";
|
|
777
|
-
}
|
|
778
|
-
/**
|
|
779
|
-
* Get the UUID property
|
|
780
|
-
*/
|
|
781
|
-
static getUuidField() {
|
|
782
|
-
return "uuid";
|
|
783
|
-
}
|
|
784
|
-
/**
|
|
785
|
-
* Create an object
|
|
786
|
-
* @returns
|
|
787
|
-
*/
|
|
788
|
-
static factory(object, context) {
|
|
789
|
-
return object instanceof this ? object : new this().setContext(context).load(object, context === undefined);
|
|
790
|
-
}
|
|
791
|
-
/**
|
|
792
|
-
* Detect what looks like a CoreModel but can be from different version
|
|
793
|
-
* @param object
|
|
794
|
-
* @returns
|
|
795
|
-
*/
|
|
796
|
-
static instanceOf(object) {
|
|
797
|
-
return (typeof object.toStoredJSON === "function" && object.__class && object.__class.factory && object.__class.instanceOf);
|
|
798
|
-
}
|
|
799
|
-
/**
|
|
800
|
-
* Return a unique reference within the application to the object
|
|
801
|
-
*
|
|
802
|
-
* It contains the Store containing it
|
|
803
|
-
* @returns
|
|
804
|
-
*/
|
|
805
|
-
getFullUuid() {
|
|
806
|
-
return `${this.__type.replace(/\//, "-")}$${this.getUuid()}`;
|
|
807
|
-
}
|
|
808
|
-
/**
|
|
809
|
-
* Get an object from the full uuid
|
|
810
|
-
* @param core
|
|
811
|
-
* @param fullUuid
|
|
812
|
-
* @param partials
|
|
813
|
-
* @returns
|
|
814
|
-
*/
|
|
815
|
-
static async fromFullUuid(fullUuid, core = Core.get(), partials) {
|
|
816
|
-
const [model, uuid] = fullUuid.split("$");
|
|
817
|
-
const modelObject = core.getApplication().getModel(model.replace("-", "/"));
|
|
818
|
-
if (partials) {
|
|
819
|
-
return new modelObject().load(partials, true).setUuid(uuid);
|
|
820
|
-
}
|
|
821
|
-
return new modelObject().setUuid(uuid).get();
|
|
822
|
-
}
|
|
823
|
-
/**
|
|
824
|
-
* Allow to define custom permission per attribute
|
|
825
|
-
*
|
|
826
|
-
* This method allows you to do permission based attribute
|
|
827
|
-
* But also a mask destructive attribute
|
|
828
|
-
*
|
|
829
|
-
* @param key
|
|
830
|
-
* @param value
|
|
831
|
-
* @param mode
|
|
832
|
-
* @param context
|
|
833
|
-
* @returns updated value
|
|
834
|
-
*/
|
|
835
|
-
attributePermission(key, value, mode, context) {
|
|
836
|
-
if (mode === "WRITE") {
|
|
837
|
-
return key.startsWith("_") ? undefined : value;
|
|
838
|
-
}
|
|
839
|
-
else {
|
|
840
|
-
return !key.startsWith("__") ? value : undefined;
|
|
841
|
-
}
|
|
842
|
-
}
|
|
843
|
-
/**
|
|
844
|
-
* Load an object from RAW
|
|
845
|
-
*
|
|
846
|
-
* @param raw data
|
|
847
|
-
* @param secure if false will ignore any _ variable
|
|
848
|
-
*/
|
|
849
|
-
load(raw, secure = false, relations = true) {
|
|
850
|
-
// Object assign with filter
|
|
851
|
-
for (const prop in raw) {
|
|
852
|
-
let val = raw[prop];
|
|
853
|
-
if (!secure) {
|
|
854
|
-
val = this.attributePermission(prop, raw[prop], "WRITE");
|
|
855
|
-
if (val === undefined) {
|
|
856
|
-
continue;
|
|
857
|
-
}
|
|
858
|
-
}
|
|
859
|
-
// @ts-ignore
|
|
860
|
-
this[prop] = val;
|
|
861
|
-
}
|
|
862
|
-
if (this._creationDate) {
|
|
863
|
-
this._creationDate = new Date(this._creationDate);
|
|
864
|
-
}
|
|
865
|
-
if (this._lastUpdate) {
|
|
866
|
-
this._lastUpdate = new Date(this._lastUpdate);
|
|
867
|
-
}
|
|
868
|
-
if (!this.getUuid()) {
|
|
869
|
-
this.setUuid(this.generateUid(raw));
|
|
870
|
-
}
|
|
871
|
-
if (relations) {
|
|
872
|
-
this.handleRelations();
|
|
873
|
-
}
|
|
874
|
-
return this;
|
|
875
|
-
}
|
|
876
|
-
/**
|
|
877
|
-
* Patch every attribute that is based on a relation
|
|
878
|
-
* to add all the helpers
|
|
879
|
-
*/
|
|
880
|
-
handleRelations() {
|
|
881
|
-
var _a, _b;
|
|
882
|
-
const rel = Core.get()
|
|
883
|
-
?.getApplication()
|
|
884
|
-
?.getRelations(this) || {};
|
|
885
|
-
for (const link of rel.links || []) {
|
|
886
|
-
const model = Core.get().getModel(link.model);
|
|
887
|
-
if (link.type === "LINK") {
|
|
888
|
-
this[_a = link.attribute] ?? (this[_a] = "");
|
|
889
|
-
if (typeof this[link.attribute] === "string") {
|
|
890
|
-
this[link.attribute] = new ModelRef(this[link.attribute], model, this);
|
|
891
|
-
}
|
|
892
|
-
}
|
|
893
|
-
else if (link.type === "LINKS_ARRAY") {
|
|
894
|
-
this[link.attribute] = new ModelLinksArray(model, this[link.attribute], this);
|
|
895
|
-
}
|
|
896
|
-
else if (link.type === "LINKS_SIMPLE_ARRAY") {
|
|
897
|
-
this[link.attribute] = new ModelLinksSimpleArray(model, this[link.attribute], this);
|
|
898
|
-
}
|
|
899
|
-
else if (link.type === "LINKS_MAP") {
|
|
900
|
-
this[link.attribute] = createModelLinksMap(model, this[link.attribute], this);
|
|
901
|
-
}
|
|
902
|
-
}
|
|
903
|
-
for (const link of rel.maps || []) {
|
|
904
|
-
this[link.attribute] = (this[link.attribute] || []).map(el => new ModelMapLoaderImplementation(Core.get().getModel(link.model), el, this));
|
|
905
|
-
}
|
|
906
|
-
for (const query of rel.queries || []) {
|
|
907
|
-
this[query.attribute] = new CoreModelQuery(query.model, this, query.targetAttribute);
|
|
908
|
-
}
|
|
909
|
-
if (rel.parent) {
|
|
910
|
-
this[_b = rel.parent.attribute] ?? (this[_b] = "");
|
|
911
|
-
if (typeof this[rel.parent.attribute] === "string") {
|
|
912
|
-
this[rel.parent.attribute] = new ModelRef(this[rel.parent.attribute], Core.get().getModel(rel.parent.model), this);
|
|
913
|
-
}
|
|
914
|
-
}
|
|
915
|
-
for (const binary of rel.binaries || []) {
|
|
916
|
-
if (binary.cardinality === "ONE") {
|
|
917
|
-
this[binary.attribute] = new Binary(binary.attribute, this);
|
|
918
|
-
}
|
|
919
|
-
else {
|
|
920
|
-
this[binary.attribute] = new BinariesImpl().assign(this, binary.attribute);
|
|
921
|
-
}
|
|
922
|
-
}
|
|
923
|
-
}
|
|
924
|
-
/**
|
|
925
|
-
* Context of the request
|
|
926
|
-
*/
|
|
927
|
-
setContext(ctx) {
|
|
928
|
-
this.__ctx = ctx;
|
|
929
|
-
return this;
|
|
930
|
-
}
|
|
931
|
-
/**
|
|
932
|
-
* Get object context
|
|
933
|
-
*
|
|
934
|
-
* Global object does not belong to a request
|
|
935
|
-
*/
|
|
936
|
-
getContext() {
|
|
937
|
-
return this.__ctx || Core.get().getGlobalContext();
|
|
938
|
-
}
|
|
939
|
-
/**
|
|
940
|
-
* Return the object registered store
|
|
941
|
-
*/
|
|
942
|
-
getStore() {
|
|
943
|
-
return this.__store;
|
|
944
|
-
}
|
|
945
|
-
/**
|
|
946
|
-
* Get the object
|
|
947
|
-
* @returns
|
|
948
|
-
*/
|
|
949
|
-
async get() {
|
|
950
|
-
return this.refresh();
|
|
951
|
-
}
|
|
952
|
-
/**
|
|
953
|
-
* Get the object again
|
|
954
|
-
*
|
|
955
|
-
* @throws Error if the object is not coming from a store
|
|
956
|
-
*/
|
|
957
|
-
async refresh() {
|
|
958
|
-
const obj = await this.__store.get(this.getUuid());
|
|
959
|
-
if (obj) {
|
|
960
|
-
Object.assign(this, obj);
|
|
961
|
-
for (const i in this) {
|
|
962
|
-
// @ts-ignore
|
|
963
|
-
if (obj[i] !== this[i]) {
|
|
964
|
-
delete this[i];
|
|
965
|
-
}
|
|
966
|
-
}
|
|
967
|
-
this.handleRelations();
|
|
968
|
-
}
|
|
969
|
-
return this;
|
|
970
|
-
}
|
|
971
|
-
/**
|
|
972
|
-
* Delete this object
|
|
973
|
-
*
|
|
974
|
-
* @throws Error if the object is not coming from a store
|
|
975
|
-
*/
|
|
976
|
-
async delete() {
|
|
977
|
-
return this.__store.delete(this);
|
|
978
|
-
}
|
|
979
|
-
/**
|
|
980
|
-
* Patch current object with this update
|
|
981
|
-
* @param obj
|
|
982
|
-
* @param conditionField if null no condition used otherwise fallback to lastUpdate
|
|
983
|
-
* @param conditionValue
|
|
984
|
-
*/
|
|
985
|
-
async patch(obj, conditionField, conditionValue) {
|
|
986
|
-
await this.__store.patch({ [this.__class.getUuidField()]: this.getUuid(), ...obj }, true, conditionField, conditionValue);
|
|
987
|
-
Object.assign(this, obj);
|
|
988
|
-
}
|
|
989
|
-
/**
|
|
990
|
-
* Save this object
|
|
991
|
-
*
|
|
992
|
-
* @throws Error if the object is not coming from a store
|
|
993
|
-
*/
|
|
994
|
-
async save(full, ...args) {
|
|
995
|
-
// If proxy is not used and not field specified call save
|
|
996
|
-
if ((!util.types.isProxy(this) && full === undefined) || full === true) {
|
|
997
|
-
if (!this._creationDate || !this._lastUpdate) {
|
|
998
|
-
await this.__store.create(this, this.getContext());
|
|
999
|
-
}
|
|
1000
|
-
else {
|
|
1001
|
-
await this.__store.update(this);
|
|
1002
|
-
}
|
|
1003
|
-
return this;
|
|
1004
|
-
}
|
|
1005
|
-
const patch = {
|
|
1006
|
-
[this.__class.getUuidField()]: this.getUuid()
|
|
1007
|
-
};
|
|
1008
|
-
if (typeof full === "string") {
|
|
1009
|
-
[full, ...args].forEach(k => {
|
|
1010
|
-
patch[k] = this[k];
|
|
1011
|
-
});
|
|
1012
|
-
}
|
|
1013
|
-
else {
|
|
1014
|
-
for (const entry of this.__dirty.entries()) {
|
|
1015
|
-
patch[entry[0]] = this[entry[0]];
|
|
1016
|
-
}
|
|
1017
|
-
}
|
|
1018
|
-
await this.__store.patch(patch);
|
|
1019
|
-
this.__dirty.clear();
|
|
1020
|
-
return this;
|
|
1021
|
-
}
|
|
1022
|
-
/**
|
|
1023
|
-
* Validate objet modification
|
|
1024
|
-
*
|
|
1025
|
-
* @param ctx
|
|
1026
|
-
* @param updates
|
|
1027
|
-
*/
|
|
1028
|
-
async validate(ctx, updates, ignoreRequired = false) {
|
|
1029
|
-
ctx.getWebda().validateSchema(this, updates, ignoreRequired);
|
|
1030
|
-
return true;
|
|
1031
|
-
}
|
|
1032
|
-
/**
|
|
1033
|
-
* Generate uuid for the object
|
|
1034
|
-
*
|
|
1035
|
-
* @param object
|
|
1036
|
-
* @returns
|
|
1037
|
-
*/
|
|
1038
|
-
generateUid(_object = undefined) {
|
|
1039
|
-
return Core.get().getUuid();
|
|
1040
|
-
}
|
|
1041
|
-
/**
|
|
1042
|
-
* Return the object to be serialized without the __store
|
|
1043
|
-
*
|
|
1044
|
-
* @param stringify
|
|
1045
|
-
* @returns
|
|
1046
|
-
*/
|
|
1047
|
-
toStoredJSON(stringify = false) {
|
|
1048
|
-
const obj = this._toJSON(true);
|
|
1049
|
-
if (stringify) {
|
|
1050
|
-
return JSON.stringify(obj);
|
|
1051
|
-
}
|
|
1052
|
-
return obj;
|
|
1053
|
-
}
|
|
1054
|
-
/**
|
|
1055
|
-
* Get a pre typed service
|
|
1056
|
-
*
|
|
1057
|
-
* @param service to retrieve
|
|
1058
|
-
* WARNING: Only object attached to a store can retrieve service
|
|
1059
|
-
*/
|
|
1060
|
-
getService(service) {
|
|
1061
|
-
return this.__store.getService(service);
|
|
1062
|
-
}
|
|
1063
|
-
/**
|
|
1064
|
-
* Remove the specific attributes if not secure
|
|
1065
|
-
*
|
|
1066
|
-
*
|
|
1067
|
-
*
|
|
1068
|
-
* @param secure serialize server fields also
|
|
1069
|
-
* @returns filtered object to be serialized
|
|
1070
|
-
*/
|
|
1071
|
-
_toJSON(secure) {
|
|
1072
|
-
const obj = {};
|
|
1073
|
-
for (const i in this) {
|
|
1074
|
-
let value = this[i];
|
|
1075
|
-
if (!secure) {
|
|
1076
|
-
value = this.attributePermission(i, value, "READ");
|
|
1077
|
-
}
|
|
1078
|
-
if (value === undefined)
|
|
1079
|
-
continue;
|
|
1080
|
-
if (value instanceof ModelRef) {
|
|
1081
|
-
obj[i] = value.toString();
|
|
1082
|
-
}
|
|
1083
|
-
else if (value instanceof Binary) {
|
|
1084
|
-
obj[i] = value.toJSON();
|
|
1085
|
-
}
|
|
1086
|
-
else {
|
|
1087
|
-
obj[i] = value;
|
|
1088
|
-
}
|
|
1089
|
-
}
|
|
1090
|
-
return obj;
|
|
1091
|
-
}
|
|
1092
|
-
/**
|
|
1093
|
-
* Return the object without sensitive attributes
|
|
1094
|
-
*
|
|
1095
|
-
* @returns Object to serialize
|
|
1096
|
-
*/
|
|
1097
|
-
toJSON() {
|
|
1098
|
-
return this._toJSON(false);
|
|
1099
|
-
}
|
|
1100
|
-
/**
|
|
1101
|
-
* Called when object is about to be deleted
|
|
1102
|
-
*/
|
|
1103
|
-
async _onDelete() {
|
|
1104
|
-
// Empty to be overriden
|
|
1105
|
-
}
|
|
1106
|
-
/**
|
|
1107
|
-
* Called when object has been deleted
|
|
1108
|
-
*/
|
|
1109
|
-
async _onDeleted() {
|
|
1110
|
-
// Empty to be overriden
|
|
1111
|
-
}
|
|
1112
|
-
/**
|
|
1113
|
-
* Called when object is retrieved
|
|
1114
|
-
*/
|
|
1115
|
-
async _onGet() {
|
|
1116
|
-
// Empty to be overriden
|
|
1117
|
-
}
|
|
1118
|
-
/**
|
|
1119
|
-
* Called when object is about to be saved
|
|
1120
|
-
*/
|
|
1121
|
-
async _onSave() {
|
|
1122
|
-
// Empty to be overriden
|
|
1123
|
-
}
|
|
1124
|
-
/**
|
|
1125
|
-
* Called when object is saved
|
|
1126
|
-
*/
|
|
1127
|
-
async _onSaved() {
|
|
1128
|
-
// Empty to be overriden
|
|
1129
|
-
}
|
|
1130
|
-
/**
|
|
1131
|
-
* Called when object is about to be updates
|
|
1132
|
-
*
|
|
1133
|
-
* @param updates to be send
|
|
1134
|
-
*/
|
|
1135
|
-
async _onUpdate(_updates) {
|
|
1136
|
-
// Empty to be overriden
|
|
1137
|
-
}
|
|
1138
|
-
/**
|
|
1139
|
-
* Called when object is updated
|
|
1140
|
-
*/
|
|
1141
|
-
async _onUpdated() {
|
|
1142
|
-
// Empty to be overriden
|
|
1143
|
-
}
|
|
1144
|
-
/**
|
|
1145
|
-
* Set attribute on the object and database
|
|
1146
|
-
* @param property
|
|
1147
|
-
* @param value
|
|
1148
|
-
*/
|
|
1149
|
-
async setAttribute(property, value) {
|
|
1150
|
-
await this.getRef().setAttribute(property, value);
|
|
1151
|
-
this[property] = value;
|
|
1152
|
-
}
|
|
1153
|
-
/**
|
|
1154
|
-
* Remove attribute from both the object and db
|
|
1155
|
-
* @param property
|
|
1156
|
-
*/
|
|
1157
|
-
async removeAttribute(property) {
|
|
1158
|
-
await this.getRef().removeAttribute(property);
|
|
1159
|
-
delete this[property];
|
|
1160
|
-
}
|
|
1161
|
-
/**
|
|
1162
|
-
* Increment an attribute both in store and object
|
|
1163
|
-
* @param property
|
|
1164
|
-
* @param value
|
|
1165
|
-
*/
|
|
1166
|
-
async incrementAttribute(property, value) {
|
|
1167
|
-
return this.incrementAttributes([{ property, value }]);
|
|
1168
|
-
}
|
|
1169
|
-
/**
|
|
1170
|
-
* Return a model ref
|
|
1171
|
-
* @returns
|
|
1172
|
-
*/
|
|
1173
|
-
getRef() {
|
|
1174
|
-
return new ModelRef(this.getUuid(), this.__class);
|
|
1175
|
-
}
|
|
1176
|
-
/**
|
|
1177
|
-
* Increment a attributes both in store and object
|
|
1178
|
-
* @param info
|
|
1179
|
-
*/
|
|
1180
|
-
async incrementAttributes(info) {
|
|
1181
|
-
var _a;
|
|
1182
|
-
await this.getRef().incrementAttributes(info);
|
|
1183
|
-
for (const inc of info) {
|
|
1184
|
-
this[_a = inc.property] ?? (this[_a] = 0);
|
|
1185
|
-
this[inc.property] += inc.value;
|
|
1186
|
-
}
|
|
1187
|
-
}
|
|
1188
|
-
}
|
|
1189
|
-
__decorate([
|
|
1190
|
-
NotEnumerable
|
|
1191
|
-
], CoreModel.prototype, "__class", void 0);
|
|
1192
|
-
__decorate([
|
|
1193
|
-
NotEnumerable
|
|
1194
|
-
], CoreModel.prototype, "__ctx", void 0);
|
|
1195
|
-
__decorate([
|
|
1196
|
-
NotEnumerable
|
|
1197
|
-
], CoreModel.prototype, "__store", void 0);
|
|
1198
|
-
__decorate([
|
|
1199
|
-
NotEnumerable
|
|
1200
|
-
], CoreModel.prototype, "__dirty", void 0);
|
|
1201
|
-
/**
|
|
1202
|
-
* CoreModel with a uuid
|
|
1203
|
-
*/
|
|
1204
|
-
class UuidModel extends CoreModel {
|
|
1205
|
-
/**
|
|
1206
|
-
* @override
|
|
1207
|
-
*/
|
|
1208
|
-
validate(ctx, updates, ignoreRequired) {
|
|
1209
|
-
updates.uuid ?? (updates.uuid = this.generateUid());
|
|
1210
|
-
return super.validate(ctx, updates, ignoreRequired);
|
|
1211
|
-
}
|
|
1212
|
-
}
|
|
1213
|
-
export { CoreModel, UuidModel };
|
|
1214
|
-
//# sourceMappingURL=coremodel.js.map
|