taon 21.0.18 → 21.0.28
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 +11 -2
- package/browser/fesm2022/taon-browser.mjs +1167 -1011
- package/browser/fesm2022/taon-browser.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/browser/types/taon-browser.d.ts +7 -3
- package/browser-prod/README.md +24 -0
- package/browser-prod/fesm2022/taon-browser.mjs +8367 -0
- package/browser-prod/fesm2022/taon-browser.mjs.map +1 -0
- package/browser-prod/types/taon-browser.d.ts +2178 -0
- package/lib/base-classes/base-context.js +4 -0
- package/lib/base-classes/base-context.js.map +1 -1
- package/lib/build-info._auto-generated_.d.ts +5 -1
- package/lib/build-info._auto-generated_.js +6 -2
- package/lib/build-info._auto-generated_.js.map +1 -1
- package/lib/decorators/classes/middleware-decorator.d.ts +1 -0
- package/lib/decorators/classes/middleware-decorator.js +1 -0
- package/lib/decorators/classes/middleware-decorator.js.map +1 -1
- package/lib/decorators/classes/subscriber-decorator.d.ts +1 -1
- package/lib/decorators/classes/subscriber-decorator.js.map +1 -1
- package/lib/env/env.angular-node-app.d.ts +30 -28
- package/lib/env/env.angular-node-app.js +32 -30
- package/lib/env/env.angular-node-app.js.map +1 -1
- package/lib/env/env.docs-webapp.d.ts +30 -28
- package/lib/env/env.docs-webapp.js +32 -30
- package/lib/env/env.docs-webapp.js.map +1 -1
- package/lib/env/env.electron-app.d.ts +30 -28
- package/lib/env/env.electron-app.js +32 -30
- package/lib/env/env.electron-app.js.map +1 -1
- package/lib/env/env.mobile-app.d.ts +30 -28
- package/lib/env/env.mobile-app.js +32 -30
- package/lib/env/env.mobile-app.js.map +1 -1
- package/lib/env/env.npm-lib-and-cli-tool.d.ts +30 -28
- package/lib/env/env.npm-lib-and-cli-tool.js +32 -30
- package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -1
- package/lib/env/env.vscode-plugin.d.ts +30 -28
- package/lib/env/env.vscode-plugin.js +32 -30
- package/lib/env/env.vscode-plugin.js.map +1 -1
- package/lib/formly/type-from-entity.js +9 -9
- package/lib/formly/type-from-entity.js.map +1 -1
- package/lib/global-state/taon-global-state/index.d.ts +6 -0
- package/lib/global-state/taon-global-state/index.js +23 -0
- package/lib/global-state/taon-global-state/index.js.map +1 -0
- package/lib/global-state/taon-global-state/taon-global-state-api.service.d.ts +7 -0
- package/lib/global-state/taon-global-state/taon-global-state.abstract.context.d.ts +19 -0
- package/lib/global-state/taon-global-state/taon-global-state.abstract.context.js +23 -0
- package/lib/global-state/taon-global-state/taon-global-state.abstract.context.js.map +1 -0
- package/lib/global-state/taon-global-state/taon-global-state.constants.d.ts +2 -0
- package/lib/global-state/taon-global-state/taon-global-state.constants.js +11 -0
- package/lib/global-state/taon-global-state/taon-global-state.constants.js.map +1 -0
- package/lib/global-state/taon-global-state/taon-global-state.controller.d.ts +11 -0
- package/lib/global-state/taon-global-state/taon-global-state.controller.js +62 -0
- package/lib/global-state/taon-global-state/taon-global-state.controller.js.map +1 -0
- package/lib/global-state/taon-global-state/taon-global-state.entity.d.ts +7 -0
- package/lib/global-state/taon-global-state/taon-global-state.entity.js +64 -0
- package/lib/global-state/taon-global-state/taon-global-state.entity.js.map +1 -0
- package/lib/global-state/taon-global-state/taon-global-state.middleware.d.ts +3 -0
- package/lib/global-state/taon-global-state/taon-global-state.middleware.js +22 -0
- package/lib/global-state/taon-global-state/taon-global-state.middleware.js.map +1 -0
- package/lib/global-state/taon-global-state/taon-global-state.models.d.ts +28 -0
- package/lib/global-state/taon-global-state/taon-global-state.models.js +48 -0
- package/lib/global-state/taon-global-state/taon-global-state.models.js.map +1 -0
- package/lib/global-state/taon-global-state/taon-global-state.provider.d.ts +3 -0
- package/lib/global-state/taon-global-state/taon-global-state.provider.js +22 -0
- package/lib/global-state/taon-global-state/taon-global-state.provider.js.map +1 -0
- package/lib/global-state/taon-global-state/taon-global-state.repository.d.ts +9 -0
- package/lib/global-state/taon-global-state/taon-global-state.repository.js +53 -0
- package/lib/global-state/taon-global-state/taon-global-state.repository.js.map +1 -0
- package/lib/global-state/taon-global-state/taon-global-state.subscriber.d.ts +7 -0
- package/lib/global-state/taon-global-state/taon-global-state.subscriber.js +29 -0
- package/lib/global-state/taon-global-state/taon-global-state.subscriber.js.map +1 -0
- package/lib/global-state/taon-global-state/taon-global-state.utils.d.ts +4 -0
- package/lib/global-state/taon-global-state/taon-global-state.utils.js +16 -0
- package/lib/global-state/taon-global-state/taon-global-state.utils.js.map +1 -0
- package/lib/global-state/taon-transaction-registry/index.d.ts +11 -0
- package/lib/global-state/taon-transaction-registry/index.js +28 -0
- package/lib/global-state/taon-transaction-registry/index.js.map +1 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry-api.service.d.ts +7 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.abstract.context.d.ts +19 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.abstract.context.js +25 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.abstract.context.js.map +1 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.constants.d.ts +2 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.constants.js +9 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.constants.js.map +1 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.controller.d.ts +9 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.controller.js +52 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.controller.js.map +1 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.entity.d.ts +12 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.entity.js +77 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.entity.js.map +1 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.middleware.d.ts +3 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.middleware.js +22 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.middleware.js.map +1 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.models.d.ts +6 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.models.js +11 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.models.js.map +1 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.provider.d.ts +3 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.provider.js +22 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.provider.js.map +1 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.repository.d.ts +9 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.repository.js +38 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.repository.js.map +1 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.subscriber.d.ts +7 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.subscriber.js +29 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.subscriber.js.map +1 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.utils.d.ts +4 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.utils.js +11 -0
- package/lib/global-state/taon-transaction-registry/taon-transaction-registry.utils.js.map +1 -0
- package/lib/orm/columns.d.ts +5 -1
- package/lib/orm/columns.js +12 -2
- package/lib/orm/columns.js.map +1 -1
- package/lib/ui/index.js +2 -2
- package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
- package/lib-prod/base-classes/base-abstract-entity.d.ts +7 -0
- package/lib-prod/base-classes/base-abstract-entity.js +42 -0
- package/lib-prod/base-classes/base-abstract-entity.js.map +1 -0
- package/lib-prod/base-classes/base-angular-service.d.ts +27 -0
- package/lib-prod/base-classes/base-angular-service.js +89 -0
- package/lib-prod/base-classes/base-angular-service.js.map +1 -0
- package/lib-prod/base-classes/base-class.d.ts +15 -0
- package/lib-prod/base-classes/base-class.js +40 -0
- package/lib-prod/base-classes/base-class.js.map +1 -0
- package/lib-prod/base-classes/base-context.d.ts +20 -0
- package/lib-prod/base-classes/base-context.js +23 -0
- package/lib-prod/base-classes/base-context.js.map +1 -0
- package/lib-prod/base-classes/base-controller.d.ts +83 -0
- package/lib-prod/base-classes/base-controller.js +173 -0
- package/lib-prod/base-classes/base-controller.js.map +1 -0
- package/lib-prod/base-classes/base-crud-controller.d.ts +28 -0
- package/lib-prod/base-classes/base-crud-controller.js +319 -0
- package/lib-prod/base-classes/base-crud-controller.js.map +1 -0
- package/lib-prod/base-classes/base-custom-repository.d.ts +3 -0
- package/lib-prod/base-classes/base-custom-repository.js +19 -0
- package/lib-prod/base-classes/base-custom-repository.js.map +1 -0
- package/lib-prod/base-classes/base-electron-service.d.ts +0 -0
- package/lib-prod/base-classes/base-electron-service.js +50 -0
- package/lib-prod/base-classes/base-electron-service.js.map +1 -0
- package/lib-prod/base-classes/base-entity.d.ts +16 -0
- package/lib-prod/base-classes/base-entity.js +32 -0
- package/lib-prod/base-classes/base-entity.js.map +1 -0
- package/lib-prod/base-classes/base-file-upload.middleware.d.ts +14 -0
- package/lib-prod/base-classes/base-file-upload.middleware.js +85 -0
- package/lib-prod/base-classes/base-file-upload.middleware.js.map +1 -0
- package/lib-prod/base-classes/base-injector.d.ts +67 -0
- package/lib-prod/base-classes/base-injector.js +198 -0
- package/lib-prod/base-classes/base-injector.js.map +1 -0
- package/lib-prod/base-classes/base-middleware.d.ts +38 -0
- package/lib-prod/base-classes/base-middleware.js +14 -0
- package/lib-prod/base-classes/base-middleware.js.map +1 -0
- package/lib-prod/base-classes/base-migration.d.ts +11 -0
- package/lib-prod/base-classes/base-migration.js +25 -0
- package/lib-prod/base-classes/base-migration.js.map +1 -0
- package/lib-prod/base-classes/base-provider.d.ts +8 -0
- package/lib-prod/base-classes/base-provider.js +13 -0
- package/lib-prod/base-classes/base-provider.js.map +1 -0
- package/lib-prod/base-classes/base-repository.d.ts +272 -0
- package/lib-prod/base-classes/base-repository.js +634 -0
- package/lib-prod/base-classes/base-repository.js.map +1 -0
- package/lib-prod/base-classes/base-subscriber-for-entity.d.ts +81 -0
- package/lib-prod/base-classes/base-subscriber-for-entity.js +155 -0
- package/lib-prod/base-classes/base-subscriber-for-entity.js.map +1 -0
- package/lib-prod/base-classes/base.d.ts +1 -0
- package/lib-prod/base-classes/base.js +20 -0
- package/lib-prod/base-classes/base.js.map +1 -0
- package/lib-prod/build-info._auto-generated_.d.ts +24 -0
- package/lib-prod/build-info._auto-generated_.js +30 -0
- package/lib-prod/build-info._auto-generated_.js.map +1 -0
- package/lib-prod/config/controller-config.d.ts +21 -0
- package/lib-prod/config/controller-config.js +34 -0
- package/lib-prod/config/controller-config.js.map +1 -0
- package/lib-prod/config/controller-options.d.ts +16 -0
- package/lib-prod/config/controller-options.js +8 -0
- package/lib-prod/config/controller-options.js.map +1 -0
- package/lib-prod/config/method-config.d.ts +39 -0
- package/lib-prod/config/method-config.js +12 -0
- package/lib-prod/config/method-config.js.map +1 -0
- package/lib-prod/config/param-config.d.ts +8 -0
- package/lib-prod/config/param-config.js +8 -0
- package/lib-prod/config/param-config.js.map +1 -0
- package/lib-prod/constants.d.ts +9 -0
- package/lib-prod/constants.js +32 -0
- package/lib-prod/constants.js.map +1 -0
- package/lib-prod/context-db-migrations.d.ts +17 -0
- package/lib-prod/context-db-migrations.js +349 -0
- package/lib-prod/context-db-migrations.js.map +1 -0
- package/lib-prod/create-context.d.ts +78 -0
- package/lib-prod/create-context.js +223 -0
- package/lib-prod/create-context.js.map +1 -0
- package/lib-prod/decorators/classes/controller-decorator.d.ts +5 -0
- package/lib-prod/decorators/classes/controller-decorator.js +21 -0
- package/lib-prod/decorators/classes/controller-decorator.js.map +1 -0
- package/lib-prod/decorators/classes/entity-decorator.d.ts +19 -0
- package/lib-prod/decorators/classes/entity-decorator.js +43 -0
- package/lib-prod/decorators/classes/entity-decorator.js.map +1 -0
- package/lib-prod/decorators/classes/middleware-decorator.d.ts +8 -0
- package/lib-prod/decorators/classes/middleware-decorator.js +22 -0
- package/lib-prod/decorators/classes/middleware-decorator.js.map +1 -0
- package/lib-prod/decorators/classes/migration-decorator.d.ts +7 -0
- package/lib-prod/decorators/classes/migration-decorator.js +21 -0
- package/lib-prod/decorators/classes/migration-decorator.js.map +1 -0
- package/lib-prod/decorators/classes/provider-decorator.d.ts +7 -0
- package/lib-prod/decorators/classes/provider-decorator.js +21 -0
- package/lib-prod/decorators/classes/provider-decorator.js.map +1 -0
- package/lib-prod/decorators/classes/repository-decorator.d.ts +7 -0
- package/lib-prod/decorators/classes/repository-decorator.js +21 -0
- package/lib-prod/decorators/classes/repository-decorator.js.map +1 -0
- package/lib-prod/decorators/classes/subscriber-decorator.d.ts +8 -0
- package/lib-prod/decorators/classes/subscriber-decorator.js +22 -0
- package/lib-prod/decorators/classes/subscriber-decorator.js.map +1 -0
- package/lib-prod/decorators/decorator-abstract-opt.d.ts +3 -0
- package/lib-prod/decorators/decorator-abstract-opt.js +7 -0
- package/lib-prod/decorators/decorator-abstract-opt.js.map +1 -0
- package/lib-prod/decorators/http/http-decorators.d.ts +2 -0
- package/lib-prod/decorators/http/http-decorators.js +24 -0
- package/lib-prod/decorators/http/http-decorators.js.map +1 -0
- package/lib-prod/decorators/http/http-methods-decorators.d.ts +70 -0
- package/lib-prod/decorators/http/http-methods-decorators.js +112 -0
- package/lib-prod/decorators/http/http-methods-decorators.js.map +1 -0
- package/lib-prod/decorators/http/http-params-decorators.d.ts +8 -0
- package/lib-prod/decorators/http/http-params-decorators.js +50 -0
- package/lib-prod/decorators/http/http-params-decorators.js.map +1 -0
- package/lib-prod/dependency-injection/di-container.d.ts +5 -0
- package/lib-prod/dependency-injection/di-container.js +35 -0
- package/lib-prod/dependency-injection/di-container.js.map +1 -0
- package/lib-prod/endpoint-context-storage.d.ts +11 -0
- package/lib-prod/endpoint-context-storage.js +38 -0
- package/lib-prod/endpoint-context-storage.js.map +1 -0
- package/lib-prod/endpoint-context.d.ts +196 -0
- package/lib-prod/endpoint-context.js +2416 -0
- package/lib-prod/endpoint-context.js.map +1 -0
- package/lib-prod/entity-process.d.ts +39 -0
- package/lib-prod/entity-process.js +242 -0
- package/lib-prod/entity-process.js.map +1 -0
- package/lib-prod/env/env.angular-node-app.d.ts +64 -0
- package/lib-prod/env/env.angular-node-app.js +71 -0
- package/lib-prod/env/env.angular-node-app.js.map +1 -0
- package/lib-prod/env/env.docs-webapp.d.ts +64 -0
- package/lib-prod/env/env.docs-webapp.js +71 -0
- package/lib-prod/env/env.docs-webapp.js.map +1 -0
- package/lib-prod/env/env.electron-app.d.ts +64 -0
- package/lib-prod/env/env.electron-app.js +71 -0
- package/lib-prod/env/env.electron-app.js.map +1 -0
- package/lib-prod/env/env.mobile-app.d.ts +64 -0
- package/lib-prod/env/env.mobile-app.js +71 -0
- package/lib-prod/env/env.mobile-app.js.map +1 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +64 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js +71 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +1 -0
- package/lib-prod/env/env.vscode-plugin.d.ts +64 -0
- package/lib-prod/env/env.vscode-plugin.js +71 -0
- package/lib-prod/env/env.vscode-plugin.js.map +1 -0
- package/lib-prod/env/index.d.ts +6 -0
- package/lib-prod/env/index.js +23 -0
- package/lib-prod/env/index.js.map +1 -0
- package/lib-prod/express-types.d.ts +1 -0
- package/lib-prod/express-types.js +3 -0
- package/lib-prod/express-types.js.map +1 -0
- package/lib-prod/formly/formly.models.d.ts +1 -0
- package/lib-prod/formly/formly.models.js +3 -0
- package/lib-prod/formly/formly.models.js.map +1 -0
- package/lib-prod/formly/fromly.d.ts +16 -0
- package/lib-prod/formly/fromly.js +209 -0
- package/lib-prod/formly/fromly.js.map +1 -0
- package/lib-prod/formly/type-from-entity.d.ts +20 -0
- package/lib-prod/formly/type-from-entity.js +60 -0
- package/lib-prod/formly/type-from-entity.js.map +1 -0
- package/lib-prod/get-response-value.d.ts +6 -0
- package/lib-prod/get-response-value.js +27 -0
- package/lib-prod/get-response-value.js.map +1 -0
- package/lib-prod/global-state/taon-global-state/index.d.ts +5 -0
- package/lib-prod/global-state/taon-global-state/index.js +23 -0
- package/lib-prod/global-state/taon-global-state/index.js.map +1 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.abstract.context.d.ts +19 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.abstract.context.js +23 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.abstract.context.js.map +1 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.constants.d.ts +2 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.constants.js +11 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.constants.js.map +1 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.controller.d.ts +11 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.controller.js +62 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.controller.js.map +1 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.entity.d.ts +7 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.entity.js +64 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.entity.js.map +1 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.middleware.d.ts +3 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.middleware.js +22 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.middleware.js.map +1 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.models.d.ts +28 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.models.js +48 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.models.js.map +1 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.provider.d.ts +3 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.provider.js +22 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.provider.js.map +1 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.repository.d.ts +9 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.repository.js +53 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.repository.js.map +1 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.subscriber.d.ts +7 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.subscriber.js +29 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.subscriber.js.map +1 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.utils.d.ts +4 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.utils.js +16 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.utils.js.map +1 -0
- package/lib-prod/global-state/taon-transaction-registry/index.d.ts +10 -0
- package/lib-prod/global-state/taon-transaction-registry/index.js +28 -0
- package/lib-prod/global-state/taon-transaction-registry/index.js.map +1 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.abstract.context.d.ts +19 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.abstract.context.js +25 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.abstract.context.js.map +1 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.constants.d.ts +2 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.constants.js +9 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.constants.js.map +1 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.controller.d.ts +9 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.controller.js +52 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.controller.js.map +1 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.entity.d.ts +12 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.entity.js +77 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.entity.js.map +1 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.middleware.d.ts +3 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.middleware.js +22 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.middleware.js.map +1 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.models.d.ts +6 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.models.js +11 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.models.js.map +1 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.provider.d.ts +3 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.provider.js +22 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.provider.js.map +1 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.repository.d.ts +9 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.repository.js +38 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.repository.js.map +1 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.subscriber.d.ts +7 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.subscriber.js +29 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.subscriber.js.map +1 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.utils.d.ts +4 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.utils.js +11 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.utils.js.map +1 -0
- package/lib-prod/helpers/class-helpers.d.ts +24 -0
- package/lib-prod/helpers/class-helpers.js +233 -0
- package/lib-prod/helpers/class-helpers.js.map +1 -0
- package/lib-prod/helpers/clone-obj.d.ts +1 -0
- package/lib-prod/helpers/clone-obj.js +22 -0
- package/lib-prod/helpers/clone-obj.js.map +1 -0
- package/lib-prod/helpers/taon-helpers.d.ts +18 -0
- package/lib-prod/helpers/taon-helpers.js +152 -0
- package/lib-prod/helpers/taon-helpers.js.map +1 -0
- package/lib-prod/index._auto-generated_.d.ts +0 -0
- package/lib-prod/index._auto-generated_.js +6 -0
- package/lib-prod/index._auto-generated_.js.map +1 -0
- package/lib-prod/index.d.ts +234 -0
- package/lib-prod/index.js +272 -0
- package/lib-prod/index.js.map +1 -0
- package/lib-prod/inject.d.ts +4 -0
- package/lib-prod/inject.js +94 -0
- package/lib-prod/inject.js.map +1 -0
- package/lib-prod/models.d.ts +260 -0
- package/lib-prod/models.js +125 -0
- package/lib-prod/models.js.map +1 -0
- package/lib-prod/orm/columns.d.ts +32 -0
- package/lib-prod/orm/columns.js +112 -0
- package/lib-prod/orm/columns.js.map +1 -0
- package/lib-prod/orm/index.d.ts +1 -0
- package/lib-prod/orm/index.js +73 -0
- package/lib-prod/orm/index.js.map +1 -0
- package/lib-prod/realtime/realtime-client.d.ts +41 -0
- package/lib-prod/realtime/realtime-client.js +204 -0
- package/lib-prod/realtime/realtime-client.js.map +1 -0
- package/lib-prod/realtime/realtime-core.d.ts +40 -0
- package/lib-prod/realtime/realtime-core.js +106 -0
- package/lib-prod/realtime/realtime-core.js.map +1 -0
- package/lib-prod/realtime/realtime-server.d.ts +43 -0
- package/lib-prod/realtime/realtime-server.js +243 -0
- package/lib-prod/realtime/realtime-server.js.map +1 -0
- package/lib-prod/realtime/realtime-strategy/index.d.ts +4 -0
- package/lib-prod/realtime/realtime-strategy/index.js +21 -0
- package/lib-prod/realtime/realtime-strategy/index.js.map +1 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +80 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-ipc.js +297 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-ipc.js.map +1 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-mock.d.ts +14 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-mock.js +303 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-mock.js.map +1 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +16 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-socket-io.js +33 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-socket-io.js.map +1 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy.d.ts +11 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy.js +17 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy.js.map +1 -0
- package/lib-prod/realtime/realtime-subs-manager.d.ts +14 -0
- package/lib-prod/realtime/realtime-subs-manager.js +94 -0
- package/lib-prod/realtime/realtime-subs-manager.js.map +1 -0
- package/lib-prod/realtime/realtime.models.d.ts +27 -0
- package/lib-prod/realtime/realtime.models.js +3 -0
- package/lib-prod/realtime/realtime.models.js.map +1 -0
- package/lib-prod/symbols.d.ts +65 -0
- package/lib-prod/symbols.js +110 -0
- package/lib-prod/symbols.js.map +1 -0
- package/lib-prod/ui/index.d.ts +1 -0
- package/lib-prod/ui/index.js +5 -0
- package/lib-prod/ui/index.js.map +1 -0
- package/lib-prod/ui/taon-admin-mode-configuration/index.d.ts +1 -0
- package/lib-prod/ui/taon-admin-mode-configuration/index.js +5 -0
- package/lib-prod/ui/taon-admin-mode-configuration/index.js.map +1 -0
- package/lib-prod/validators.d.ts +7 -0
- package/lib-prod/validators.js +85 -0
- package/lib-prod/validators.js.map +1 -0
- package/package.json +22 -6
- package/websql/fesm2022/taon-websql.mjs +1387 -1141
- package/websql/fesm2022/taon-websql.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/websql/types/taon-websql.d.ts +7 -3
- package/websql-prod/README.md +24 -0
- package/websql-prod/fesm2022/taon-websql.mjs +8198 -0
- package/websql-prod/fesm2022/taon-websql.mjs.map +1 -0
- package/websql-prod/types/taon-websql.d.ts +2187 -0
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ContextDbMigrations = void 0;
|
|
4
|
+
//#region imports
|
|
5
|
+
const lib_prod_1 = require("tnp-core/lib-prod");
|
|
6
|
+
const models_1 = require("./models");
|
|
7
|
+
const class_helpers_1 = require("./helpers/class-helpers");
|
|
8
|
+
const lib_prod_2 = require("taon-typeorm/lib-prod");
|
|
9
|
+
class ContextDbMigrations {
|
|
10
|
+
ctx;
|
|
11
|
+
//#region fields
|
|
12
|
+
//#region fields / migration table name
|
|
13
|
+
DEFAULT_MIGRATION_TABLE_NAME = 'TAON_MIGRATION_META';
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region fields / migration statuses
|
|
16
|
+
MIGRATION_STATUS_COMPLETED = 'completed';
|
|
17
|
+
MIGRATION_STATUS_PENDING = 'pending';
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region fields / migration table schema
|
|
20
|
+
table = new lib_prod_2.Table({
|
|
21
|
+
name: this.DEFAULT_MIGRATION_TABLE_NAME,
|
|
22
|
+
columns: [
|
|
23
|
+
{
|
|
24
|
+
name: 'id',
|
|
25
|
+
type: 'integer',
|
|
26
|
+
isPrimary: true, // Mark it as the primary key
|
|
27
|
+
isGenerated: true, // Enable auto-generation
|
|
28
|
+
generationStrategy: 'increment', // Use auto-increment strategy
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'name',
|
|
32
|
+
type: 'varchar',
|
|
33
|
+
length: '255',
|
|
34
|
+
isUnique: true, // Ensure the name is unique
|
|
35
|
+
isNullable: false, // Ensure this field is required
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
// context is a part of name
|
|
39
|
+
name: 'context',
|
|
40
|
+
type: 'varchar',
|
|
41
|
+
length: '255',
|
|
42
|
+
isNullable: false, // Optional context for migrations (e.g., tenant or module name)
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'applied_at',
|
|
46
|
+
type: 'timestamp',
|
|
47
|
+
default: 'CURRENT_TIMESTAMP', // Automatically set the timestamp
|
|
48
|
+
isNullable: true,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: 'status',
|
|
52
|
+
type: 'varchar',
|
|
53
|
+
length: '50',
|
|
54
|
+
default: `'${this.MIGRATION_STATUS_COMPLETED}'`,
|
|
55
|
+
isNullable: false,
|
|
56
|
+
},
|
|
57
|
+
// { // TODO not needed for now
|
|
58
|
+
// name: 'checksum',
|
|
59
|
+
// type: 'varchar',
|
|
60
|
+
// length: '64',
|
|
61
|
+
// isNullable: true, // Optional field to store a hash/checksum of migration file
|
|
62
|
+
// },
|
|
63
|
+
],
|
|
64
|
+
});
|
|
65
|
+
//#endregion
|
|
66
|
+
//#endregion
|
|
67
|
+
//#region constructor
|
|
68
|
+
constructor(ctx) {
|
|
69
|
+
this.ctx = ctx;
|
|
70
|
+
}
|
|
71
|
+
//#endregion
|
|
72
|
+
//#region methods & getters / make sure migration table exists
|
|
73
|
+
async ensureMigrationTableExists() {
|
|
74
|
+
//#region @websqlFunc
|
|
75
|
+
if (this.ctx.isRemoteHost || !this.ctx.connection) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const queryRunner = this.ctx.connection.createQueryRunner();
|
|
79
|
+
await queryRunner.connect();
|
|
80
|
+
await queryRunner.startTransaction();
|
|
81
|
+
// Check if the table already exists
|
|
82
|
+
const hasTable = await queryRunner.hasTable(this.DEFAULT_MIGRATION_TABLE_NAME);
|
|
83
|
+
if (hasTable) {
|
|
84
|
+
this.ctx.logMigrations &&
|
|
85
|
+
console.log(`Table ${this.DEFAULT_MIGRATION_TABLE_NAME} already exists.`);
|
|
86
|
+
await queryRunner.commitTransaction();
|
|
87
|
+
await queryRunner.release();
|
|
88
|
+
return; // Exit early if the table exists
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
await queryRunner.createTable(this.table);
|
|
92
|
+
await queryRunner.createIndex(this.DEFAULT_MIGRATION_TABLE_NAME, new lib_prod_2.TableIndex({
|
|
93
|
+
name: 'IDX_NAME',
|
|
94
|
+
columnNames: ['name'],
|
|
95
|
+
}));
|
|
96
|
+
await queryRunner.commitTransaction();
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
this.ctx.logMigrations &&
|
|
100
|
+
console.error(`Transaction failed [ensureMigrationTableExists]` + `, rolling back:`, error);
|
|
101
|
+
await queryRunner.rollbackTransaction();
|
|
102
|
+
}
|
|
103
|
+
finally {
|
|
104
|
+
await queryRunner.release();
|
|
105
|
+
}
|
|
106
|
+
//#endregion
|
|
107
|
+
}
|
|
108
|
+
//#endregion
|
|
109
|
+
//#region methods & getters / revert migration to timestamp
|
|
110
|
+
async logSelectALl(name, queryRunner) {
|
|
111
|
+
console.log(name, (await queryRunner.query(`SELECT * FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} WHERE context = $1`, [this.ctx.contextName])).map(m => m.name));
|
|
112
|
+
}
|
|
113
|
+
async revertMigrationToTimestamp(timestamp) {
|
|
114
|
+
//#region @websqlFunc
|
|
115
|
+
if (this.ctx.isRemoteHost || !this.ctx.connection) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (!lib_prod_1.UtilsMigrations.isValidTimestamp(timestamp)) {
|
|
119
|
+
lib_prod_1.Helpers.throw(`Invalid timestamp provided for migration revert: ${timestamp}`);
|
|
120
|
+
}
|
|
121
|
+
// Get all migration class functions and reverse the order
|
|
122
|
+
const migrationsClassFns = this.ctx
|
|
123
|
+
.getClassFunByArr(models_1.Models.ClassType.MIGRATION)
|
|
124
|
+
.reverse();
|
|
125
|
+
// Filter migrations that need to be reverted
|
|
126
|
+
const migrationClassesInstancesToRevert = migrationsClassFns
|
|
127
|
+
.map(classFn => {
|
|
128
|
+
const timestampFromClassName = Number(lib_prod_1.UtilsMigrations.getTimestampFromClassName(class_helpers_1.ClassHelpers.getName(classFn)));
|
|
129
|
+
if (timestampFromClassName <= timestamp) {
|
|
130
|
+
// this.ctx.logMigrations &&
|
|
131
|
+
// console.log(
|
|
132
|
+
// `Stopping migration filter at: ${ClassHelpers.getName(classFn)} ` +
|
|
133
|
+
// `with timestamp ${timestampFromClassName}`,
|
|
134
|
+
// );
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
return this.ctx.getInstanceBy(classFn);
|
|
138
|
+
})
|
|
139
|
+
.filter(f => !!f)
|
|
140
|
+
.map(f => f)
|
|
141
|
+
.filter(migrationInstance => migrationInstance.isReadyToRun());
|
|
142
|
+
const queryRunner = this.ctx.connection.createQueryRunner();
|
|
143
|
+
await queryRunner.connect();
|
|
144
|
+
try {
|
|
145
|
+
await queryRunner.startTransaction();
|
|
146
|
+
// Fetch applied migrations from the database
|
|
147
|
+
const appliedMigrationsForContext = await queryRunner.query(`SELECT name FROM ${this.DEFAULT_MIGRATION_TABLE_NAME}
|
|
148
|
+
WHERE status = $1 AND context = $2`, [this.MIGRATION_STATUS_COMPLETED, this.ctx.contextName]);
|
|
149
|
+
const appliedMigrationsForContextNames = appliedMigrationsForContext.map(m => m.name);
|
|
150
|
+
// console.log({ appliedMigrationsForContextNames });
|
|
151
|
+
for (const migrationClassInstance of migrationClassesInstancesToRevert) {
|
|
152
|
+
const migrationName = class_helpers_1.ClassHelpers.getName(migrationClassInstance);
|
|
153
|
+
if (!appliedMigrationsForContextNames.includes(migrationName)) {
|
|
154
|
+
this.ctx.logMigrations &&
|
|
155
|
+
console.warn(`Skipping migration not marked as applied: ${migrationName}`);
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
this.ctx.logMigrations &&
|
|
159
|
+
console.log(`Reverting migration: ${migrationName} , context: ${this.ctx.contextName}`);
|
|
160
|
+
await migrationClassInstance.down(queryRunner);
|
|
161
|
+
// Remove the reverted migration from the tracking table
|
|
162
|
+
await queryRunner.query(`DELETE FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} WHERE name = $1`, [migrationName]);
|
|
163
|
+
}
|
|
164
|
+
await queryRunner.commitTransaction();
|
|
165
|
+
this.ctx.logMigrations &&
|
|
166
|
+
console.log(`Migrations successfully reverted ` +
|
|
167
|
+
`to the specified timestamp ${timestamp} .`);
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
this.ctx.logMigrations &&
|
|
171
|
+
console.error('Transaction failed, rolling back:', error);
|
|
172
|
+
await queryRunner.rollbackTransaction();
|
|
173
|
+
}
|
|
174
|
+
finally {
|
|
175
|
+
await queryRunner.release();
|
|
176
|
+
}
|
|
177
|
+
//#endregion
|
|
178
|
+
}
|
|
179
|
+
//#endregion
|
|
180
|
+
//#region methods & getters / clear migration table
|
|
181
|
+
async clearMigrationTable() {
|
|
182
|
+
//#region @websqlFunc
|
|
183
|
+
if (this.ctx.isRemoteHost || !this.ctx.connection) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
const queryRunner = this.ctx.connection.createQueryRunner();
|
|
187
|
+
await queryRunner.connect();
|
|
188
|
+
await queryRunner.startTransaction();
|
|
189
|
+
try {
|
|
190
|
+
await queryRunner.clearTable(this.DEFAULT_MIGRATION_TABLE_NAME);
|
|
191
|
+
await queryRunner.commitTransaction();
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
this.ctx.logMigrations &&
|
|
195
|
+
console.error('Transaction failed, rolling back:', error);
|
|
196
|
+
await queryRunner.rollbackTransaction();
|
|
197
|
+
}
|
|
198
|
+
finally {
|
|
199
|
+
await queryRunner.release();
|
|
200
|
+
}
|
|
201
|
+
//#endregion
|
|
202
|
+
}
|
|
203
|
+
//#endregion
|
|
204
|
+
//#region methods & getters / mark all migrations as applied
|
|
205
|
+
async markAllMigrationsAsApplied() {
|
|
206
|
+
//#region @websqlFunc
|
|
207
|
+
if (this.ctx.isRemoteHost || !this.ctx.connection) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
const migrationsClassFns = this.ctx.getClassFunByArr(models_1.Models.ClassType.MIGRATION);
|
|
211
|
+
const migrationClassesInstances = migrationsClassFns
|
|
212
|
+
.map(classFn => this.ctx.getInstanceBy(classFn))
|
|
213
|
+
.map(f => f)
|
|
214
|
+
.filter(migrationInstance => migrationInstance.isReadyToRun());
|
|
215
|
+
const queryRunner = this.ctx.connection.createQueryRunner();
|
|
216
|
+
await queryRunner.connect();
|
|
217
|
+
try {
|
|
218
|
+
await queryRunner.startTransaction();
|
|
219
|
+
// Fetch already applied migrations from the database
|
|
220
|
+
const allMigrationsInDb = await queryRunner.query(`SELECT name FROM ${this.DEFAULT_MIGRATION_TABLE_NAME}`);
|
|
221
|
+
const allMigrationInDBNames = allMigrationsInDb.map(m => m.name);
|
|
222
|
+
for (const instance of migrationClassesInstances) {
|
|
223
|
+
const migrationName = class_helpers_1.ClassHelpers.getName(instance);
|
|
224
|
+
if (allMigrationInDBNames.includes(migrationName)) {
|
|
225
|
+
this.ctx.logMigrations &&
|
|
226
|
+
console.log(`Skipping already applied migration: ${migrationName}`);
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
this.ctx.logMigrations &&
|
|
230
|
+
console.log(`Marking migration as applied: ${migrationName}`);
|
|
231
|
+
// Insert migration as 'complete' without running
|
|
232
|
+
await queryRunner.query(`INSERT INTO ${this.DEFAULT_MIGRATION_TABLE_NAME} (name, status, context, applied_at) ` +
|
|
233
|
+
`VALUES ($1, $2, $3, CURRENT_TIMESTAMP)`, [
|
|
234
|
+
migrationName,
|
|
235
|
+
this.MIGRATION_STATUS_COMPLETED,
|
|
236
|
+
instance.ctx.contextName,
|
|
237
|
+
]);
|
|
238
|
+
}
|
|
239
|
+
// update all pending migrations to completed
|
|
240
|
+
await queryRunner.query(`UPDATE ${this.DEFAULT_MIGRATION_TABLE_NAME}
|
|
241
|
+
SET status = $1, applied_at = CURRENT_TIMESTAMP
|
|
242
|
+
WHERE status = $2`, [this.MIGRATION_STATUS_COMPLETED, this.MIGRATION_STATUS_PENDING]);
|
|
243
|
+
await queryRunner.commitTransaction();
|
|
244
|
+
this.ctx.logMigrations &&
|
|
245
|
+
console.log('All migrations marked as applied.');
|
|
246
|
+
}
|
|
247
|
+
catch (error) {
|
|
248
|
+
this.ctx.logMigrations &&
|
|
249
|
+
console.error('Failed to mark all migrations as applied, rolling back:', error);
|
|
250
|
+
await queryRunner.rollbackTransaction();
|
|
251
|
+
}
|
|
252
|
+
finally {
|
|
253
|
+
await queryRunner.release();
|
|
254
|
+
}
|
|
255
|
+
//#endregion
|
|
256
|
+
}
|
|
257
|
+
//#endregion
|
|
258
|
+
//#region methods & getters / run all migrations
|
|
259
|
+
async runAllNotCompletedMigrations() {
|
|
260
|
+
//#region @websqlFunc
|
|
261
|
+
if (this.ctx.isRemoteHost || !this.ctx.connection) {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
const migrationsClassFns = this.ctx.getClassFunByArr(models_1.Models.ClassType.MIGRATION);
|
|
265
|
+
// console.log({
|
|
266
|
+
// migrationClassesALl: migrationsClassFns.map(f => ClassHelpers.getName(f)),
|
|
267
|
+
// });
|
|
268
|
+
const migrationClassesInstances = migrationsClassFns
|
|
269
|
+
.map(classFn => this.ctx.getInstanceBy(classFn))
|
|
270
|
+
.map(f => f)
|
|
271
|
+
.filter(migrationInstance => migrationInstance.isReadyToRun());
|
|
272
|
+
// console.log({
|
|
273
|
+
// migrationClassesInstances: migrationsClassFns.map(f =>
|
|
274
|
+
// ClassHelpers.getName(f),
|
|
275
|
+
// ),
|
|
276
|
+
// });
|
|
277
|
+
const queryRunner = this.ctx.connection.createQueryRunner();
|
|
278
|
+
await queryRunner.connect();
|
|
279
|
+
try {
|
|
280
|
+
await queryRunner.startTransaction();
|
|
281
|
+
// Check if the migrations table exists
|
|
282
|
+
// TODO: Implement check for migrations table existence here
|
|
283
|
+
// Fetch applied migrations from the database
|
|
284
|
+
const appliedMigrationsForContext = await queryRunner.query(`SELECT name, status FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} ` +
|
|
285
|
+
`WHERE context = $1`, [this.ctx.contextName]);
|
|
286
|
+
//#region check and update pending migrations
|
|
287
|
+
const pendingMigrationsForContext = appliedMigrationsForContext.filter(m => m.status === this.MIGRATION_STATUS_PENDING);
|
|
288
|
+
// Run pending migrations first
|
|
289
|
+
for (const pendingContextMigration of pendingMigrationsForContext) {
|
|
290
|
+
const migrationInstance = migrationClassesInstances.find(instance => class_helpers_1.ClassHelpers.getName(instance) === pendingContextMigration.name);
|
|
291
|
+
if (!migrationInstance) {
|
|
292
|
+
this.ctx.logMigrations &&
|
|
293
|
+
console.warn(`Pending migration ${pendingContextMigration.name} not found in loaded migrations.`);
|
|
294
|
+
continue;
|
|
295
|
+
}
|
|
296
|
+
this.ctx.logMigrations &&
|
|
297
|
+
console.log(`Completing pending migration: ${pendingContextMigration.name}`);
|
|
298
|
+
await migrationInstance.up(queryRunner);
|
|
299
|
+
// Update migration status to 'complete'
|
|
300
|
+
await queryRunner.query(`UPDATE ${this.DEFAULT_MIGRATION_TABLE_NAME}
|
|
301
|
+
SET status = $1, applied_at = CURRENT_TIMESTAMP
|
|
302
|
+
WHERE name = $2`, [this.MIGRATION_STATUS_COMPLETED, pendingContextMigration.name]);
|
|
303
|
+
}
|
|
304
|
+
//#endregion
|
|
305
|
+
//#region run new migrations
|
|
306
|
+
for (const instance of migrationClassesInstances) {
|
|
307
|
+
const migrationName = class_helpers_1.ClassHelpers.getName(instance);
|
|
308
|
+
if (appliedMigrationsForContext.some(m => m.name === migrationName)) {
|
|
309
|
+
this.ctx.logMigrations &&
|
|
310
|
+
console.log(`Skipping already applied migration: ${migrationName}`);
|
|
311
|
+
continue;
|
|
312
|
+
}
|
|
313
|
+
this.ctx.logMigrations &&
|
|
314
|
+
console.log(`Applying new migration: ${migrationName}`);
|
|
315
|
+
// Insert migration as 'pending' before execution
|
|
316
|
+
await queryRunner.query(`INSERT INTO ${this.DEFAULT_MIGRATION_TABLE_NAME} (name, status, context, applied_at) ` +
|
|
317
|
+
`VALUES ($1, $2, $3, NULL)`, [migrationName, this.MIGRATION_STATUS_PENDING, this.ctx.contextName]);
|
|
318
|
+
try {
|
|
319
|
+
// Apply migration
|
|
320
|
+
await instance.up(queryRunner);
|
|
321
|
+
// Update migration to 'complete' after successful execution
|
|
322
|
+
await queryRunner.query(`UPDATE ${this.DEFAULT_MIGRATION_TABLE_NAME} ` +
|
|
323
|
+
`SET status = '${this.MIGRATION_STATUS_COMPLETED}', applied_at = CURRENT_TIMESTAMP ` +
|
|
324
|
+
`WHERE name = $1`, [migrationName]);
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
this.ctx.logMigrations &&
|
|
328
|
+
console.error(`Failed to apply migration: ${migrationName}`, error);
|
|
329
|
+
// Rollback pending migration entry
|
|
330
|
+
await queryRunner.query(`DELETE FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} WHERE name = $1`, [migrationName]);
|
|
331
|
+
throw error; // Rethrow to ensure the transaction is rolled back
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
//#endregion
|
|
335
|
+
await queryRunner.commitTransaction();
|
|
336
|
+
}
|
|
337
|
+
catch (error) {
|
|
338
|
+
this.ctx.logMigrations &&
|
|
339
|
+
console.error('Transaction failed, rolling back:', error);
|
|
340
|
+
await queryRunner.rollbackTransaction();
|
|
341
|
+
}
|
|
342
|
+
finally {
|
|
343
|
+
await queryRunner.release();
|
|
344
|
+
}
|
|
345
|
+
//#endregion
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
exports.ContextDbMigrations = ContextDbMigrations;
|
|
349
|
+
//# sourceMappingURL=context-db-migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-db-migrations.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { EndpointContext } from './endpoint-context';
|
|
2
|
+
import { Models } from './models';
|
|
3
|
+
/**
|
|
4
|
+
* @returns function that returns context function.
|
|
5
|
+
* Context function can be used to dynamically
|
|
6
|
+
* create context with specific configuration.
|
|
7
|
+
*/
|
|
8
|
+
export declare const createContextTemplate: <CTX extends Record<string, object>, CTRL extends Record<string, new (...args: any[]) => any>, ENTITY extends Record<string, new (...args: any[]) => any>, REPO extends Record<string, new (...args: any[]) => any>, PROVIDER extends Record<string, new (...args: any[]) => any>, SUBSCRIBER extends Record<string, new (...args: any[]) => any>, MIGRATION extends Record<string, new (...args: any[]) => any>, MIDDLEWARE extends Record<string, new (...args: any[]) => any>>(configFn: (env: any) => Models.ContextOptions<CTX, CTRL, ENTITY, REPO, PROVIDER, SUBSCRIBER, MIGRATION, MIDDLEWARE>) => () => {
|
|
9
|
+
readonly contextName: string;
|
|
10
|
+
readonly appId: string;
|
|
11
|
+
cloneAsRemote: (cloneOpt?: {
|
|
12
|
+
overrideRemoteHost?: string;
|
|
13
|
+
}) => /*elided*/ any;
|
|
14
|
+
cloneAsNormal: (cloneOpt?: {
|
|
15
|
+
overrideHost?: string;
|
|
16
|
+
}) => /*elided*/ any;
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated
|
|
19
|
+
* - get reference to internal context
|
|
20
|
+
*/
|
|
21
|
+
__ref(): Promise<EndpointContext>;
|
|
22
|
+
/**
|
|
23
|
+
* only for internal use
|
|
24
|
+
* @deprecated
|
|
25
|
+
*/
|
|
26
|
+
readonly __refSync: EndpointContext;
|
|
27
|
+
getClassInstance<T>(ctor: new (...args: any[]) => T): T;
|
|
28
|
+
getClass<T>(ctor: new (...args: any[]) => T): new (...args: any[]) => T;
|
|
29
|
+
/**
|
|
30
|
+
* - create controller instances for context
|
|
31
|
+
* - init database (if enable) + migation scripts
|
|
32
|
+
*/
|
|
33
|
+
initialize: (overrideOptions?: Models.TaonInitializeParams) => Promise<EndpointContext>;
|
|
34
|
+
/**
|
|
35
|
+
* realtime communication with server
|
|
36
|
+
* TCP(upgrade) socket.io (or ipc) based.
|
|
37
|
+
*/
|
|
38
|
+
readonly realtime: {
|
|
39
|
+
readonly client: import(".").RealtimeClient;
|
|
40
|
+
readonly server: import(".").RealtimeServer;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
export declare const createContext: <CTX extends Record<string, object>, CTRL extends Record<string, new (...args: any[]) => any>, ENTITY extends Record<string, new (...args: any[]) => any>, REPO extends Record<string, new (...args: any[]) => any>, PROVIDER extends Record<string, new (...args: any[]) => any>, SUBSCRIBER extends Record<string, new (...args: any[]) => any>, MIGRATION extends Record<string, new (...args: any[]) => any>, MIDDLEWARES extends Record<string, new (...args: any[]) => any>>(configFn: (env: any) => Models.ContextOptions<CTX, CTRL, ENTITY, REPO, PROVIDER, SUBSCRIBER, MIGRATION, MIDDLEWARES>) => {
|
|
44
|
+
readonly contextName: string;
|
|
45
|
+
readonly appId: string;
|
|
46
|
+
cloneAsRemote: (cloneOpt?: {
|
|
47
|
+
overrideRemoteHost?: string;
|
|
48
|
+
}) => /*elided*/ any;
|
|
49
|
+
cloneAsNormal: (cloneOpt?: {
|
|
50
|
+
overrideHost?: string;
|
|
51
|
+
}) => /*elided*/ any;
|
|
52
|
+
/**
|
|
53
|
+
* @deprecated
|
|
54
|
+
* - get reference to internal context
|
|
55
|
+
*/
|
|
56
|
+
__ref(): Promise<EndpointContext>;
|
|
57
|
+
/**
|
|
58
|
+
* only for internal use
|
|
59
|
+
* @deprecated
|
|
60
|
+
*/
|
|
61
|
+
readonly __refSync: EndpointContext;
|
|
62
|
+
getClassInstance<T>(ctor: new (...args: any[]) => T): T;
|
|
63
|
+
getClass<T>(ctor: new (...args: any[]) => T): new (...args: any[]) => T;
|
|
64
|
+
/**
|
|
65
|
+
* - create controller instances for context
|
|
66
|
+
* - init database (if enable) + migation scripts
|
|
67
|
+
*/
|
|
68
|
+
initialize: (overrideOptions?: Models.TaonInitializeParams) => Promise<EndpointContext>;
|
|
69
|
+
/**
|
|
70
|
+
* realtime communication with server
|
|
71
|
+
* TCP(upgrade) socket.io (or ipc) based.
|
|
72
|
+
*/
|
|
73
|
+
readonly realtime: {
|
|
74
|
+
readonly client: import(".").RealtimeClient;
|
|
75
|
+
readonly server: import(".").RealtimeServer;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
export type TaonContext = ReturnType<typeof createContext>;
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createContext = exports.createContextTemplate = void 0;
|
|
4
|
+
//#region imports
|
|
5
|
+
const lib_prod_1 = require("tnp-core/lib-prod");
|
|
6
|
+
const endpoint_context_1 = require("./endpoint-context");
|
|
7
|
+
/* */
|
|
8
|
+
const endpoint_context_storage_1 = require("./endpoint-context-storage");
|
|
9
|
+
//#endregion
|
|
10
|
+
/**
|
|
11
|
+
* @returns function that returns context function.
|
|
12
|
+
* Context function can be used to dynamically
|
|
13
|
+
* create context with specific configuration.
|
|
14
|
+
*/
|
|
15
|
+
const createContextTemplate = (configFn) => {
|
|
16
|
+
return () => {
|
|
17
|
+
return (0, exports.createContext)(configFn);
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
exports.createContextTemplate = createContextTemplate;
|
|
21
|
+
/**
|
|
22
|
+
* REQURIED PROPERTY:
|
|
23
|
+
* - contextName
|
|
24
|
+
*/
|
|
25
|
+
const createContextFn = (configFn, cloneOptions) => {
|
|
26
|
+
cloneOptions = cloneOptions || {};
|
|
27
|
+
let config = configFn({});
|
|
28
|
+
// console.log(
|
|
29
|
+
// `
|
|
30
|
+
// [Taon] Creating context ${config.contextName}...`,
|
|
31
|
+
// {config},
|
|
32
|
+
// );
|
|
33
|
+
const endpointContextRef = new endpoint_context_1.EndpointContext(config, configFn, cloneOptions);
|
|
34
|
+
const res = {
|
|
35
|
+
//#region contexts
|
|
36
|
+
get contextName() {
|
|
37
|
+
return config.contextName;
|
|
38
|
+
},
|
|
39
|
+
//#endregion
|
|
40
|
+
get appId() {
|
|
41
|
+
return config.appId;
|
|
42
|
+
},
|
|
43
|
+
cloneAsRemote: (cloneOpt) => {
|
|
44
|
+
cloneOpt = cloneOpt || {};
|
|
45
|
+
const opt = {
|
|
46
|
+
...cloneOpt,
|
|
47
|
+
sourceContext: endpointContextRef,
|
|
48
|
+
useAsRemoteContext: true,
|
|
49
|
+
};
|
|
50
|
+
return createContextFn(configFn, opt);
|
|
51
|
+
},
|
|
52
|
+
cloneAsNormal: (cloneOpt) => {
|
|
53
|
+
cloneOpt = cloneOpt || {};
|
|
54
|
+
const opt = {
|
|
55
|
+
...cloneOpt,
|
|
56
|
+
sourceContext: endpointContextRef,
|
|
57
|
+
useAsRemoteContext: false,
|
|
58
|
+
};
|
|
59
|
+
return createContextFn(configFn, opt);
|
|
60
|
+
},
|
|
61
|
+
//#region context
|
|
62
|
+
/**
|
|
63
|
+
* @deprecated
|
|
64
|
+
* - get reference to internal context
|
|
65
|
+
*/
|
|
66
|
+
async __ref() {
|
|
67
|
+
if (!endpointContextRef.inited) {
|
|
68
|
+
await endpointContextRef.init({
|
|
69
|
+
initFromRecrusiveContextResovle: true,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return endpointContextRef;
|
|
73
|
+
},
|
|
74
|
+
/**
|
|
75
|
+
* only for internal use
|
|
76
|
+
* @deprecated
|
|
77
|
+
*/
|
|
78
|
+
get __refSync() {
|
|
79
|
+
return endpointContextRef;
|
|
80
|
+
},
|
|
81
|
+
getClassInstance(ctor) {
|
|
82
|
+
return endpointContextRef.getInstanceBy(ctor);
|
|
83
|
+
},
|
|
84
|
+
getClass(ctor) {
|
|
85
|
+
const classFun = endpointContextRef.getClassFunByClass(ctor);
|
|
86
|
+
return classFun;
|
|
87
|
+
//#region old
|
|
88
|
+
// TODO hmmmm for now context for controller inside api service
|
|
89
|
+
// const allContexts = Object.values(classFun[Symbols.orignalClassClonesObj] || {}).map(classFn => {
|
|
90
|
+
// return {
|
|
91
|
+
// ctx: classFn[Symbols.ctxInClassOrClassObj] as EndpointContext,
|
|
92
|
+
// classFn,
|
|
93
|
+
// }
|
|
94
|
+
// })
|
|
95
|
+
// const activeContext = allContexts.find(c => c.ctx.inited);
|
|
96
|
+
// debugger
|
|
97
|
+
// console.log('activeContext', activeContext.ctx.contextName);
|
|
98
|
+
// return activeContext.ctx.getClassFunByClass(ctor) as any;
|
|
99
|
+
//#endregion
|
|
100
|
+
},
|
|
101
|
+
//#endregion
|
|
102
|
+
//#region initialize
|
|
103
|
+
/**
|
|
104
|
+
* - create controller instances for context
|
|
105
|
+
* - init database (if enable) + migation scripts
|
|
106
|
+
*/
|
|
107
|
+
initialize: async (overrideOptions) => {
|
|
108
|
+
return await new Promise(async (resolve, reject) => {
|
|
109
|
+
//#region init in set timeout
|
|
110
|
+
setTimeout(async () => {
|
|
111
|
+
if (lib_prod_1.UtilsOs.isRunningInDocker()) {
|
|
112
|
+
const activeContext = config?.activeContext || null;
|
|
113
|
+
if (lib_prod_1._.isString(activeContext) &&
|
|
114
|
+
activeContext !== '' &&
|
|
115
|
+
activeContext !== config?.contextName) {
|
|
116
|
+
console.warn(`[taon] Context ${endpointContextRef.contextName} is not active context, skipping initialization.`);
|
|
117
|
+
resolve(endpointContextRef);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
await endpointContextRef.init({
|
|
122
|
+
...overrideOptions,
|
|
123
|
+
});
|
|
124
|
+
if (config.abstract) {
|
|
125
|
+
throw new Error(`Abstract context can not be initialized`);
|
|
126
|
+
}
|
|
127
|
+
await endpointContextRef.initEntities();
|
|
128
|
+
await endpointContextRef.initSubscribers();
|
|
129
|
+
await endpointContextRef.initDatabaseConnection();
|
|
130
|
+
await endpointContextRef.dbMigrations.ensureMigrationTableExists();
|
|
131
|
+
// console.log(
|
|
132
|
+
// 'connection subscribers',
|
|
133
|
+
// endpointContextRef?.connection?.subscribers,
|
|
134
|
+
// );
|
|
135
|
+
// debugger;
|
|
136
|
+
await endpointContextRef.initControllers();
|
|
137
|
+
await endpointContextRef.startServer();
|
|
138
|
+
//#region @websql
|
|
139
|
+
endpointContextRef.writeActiveRoutes();
|
|
140
|
+
//#endregion
|
|
141
|
+
await endpointContextRef.initClasses();
|
|
142
|
+
if (endpointContextRef.databaseConfig) {
|
|
143
|
+
//#region handle websql reload data
|
|
144
|
+
/* */
|
|
145
|
+
/* */
|
|
146
|
+
/* */
|
|
147
|
+
/* */
|
|
148
|
+
/* */
|
|
149
|
+
/* */
|
|
150
|
+
/* */
|
|
151
|
+
/* */
|
|
152
|
+
/* */
|
|
153
|
+
/* */
|
|
154
|
+
/* */
|
|
155
|
+
/* */
|
|
156
|
+
/* */
|
|
157
|
+
/* */
|
|
158
|
+
/* */
|
|
159
|
+
/* */
|
|
160
|
+
/* */
|
|
161
|
+
//#endregion
|
|
162
|
+
//#region TODO this may be usefull but for now
|
|
163
|
+
// 2 separate contexts are fine
|
|
164
|
+
// const shouldStartRemoteHost = endpointContextRef.mode !== 'remote-backend(tcp+udp)';
|
|
165
|
+
// if(shouldStartRemoteHost) {
|
|
166
|
+
// const endpointContextRemoteHostRef = new EndpointContext(config, configFn);
|
|
167
|
+
// await endpointContextRemoteHostRef.init({
|
|
168
|
+
// overrideRemoteHost: endpointContextRef.host,
|
|
169
|
+
// overrideHost: null,
|
|
170
|
+
// });
|
|
171
|
+
// endpointContextRemoteHostRef.initMetadata();
|
|
172
|
+
// endpointContextRef.__contextForControllerInstanceAccess = endpointContextRemoteHostRef;
|
|
173
|
+
// }
|
|
174
|
+
//#endregion
|
|
175
|
+
//#region run migrations tasks
|
|
176
|
+
if (endpointContextRef.onlyMigrationRun) {
|
|
177
|
+
endpointContextRef.logMigrations &&
|
|
178
|
+
lib_prod_1.Helpers.log(`[taon] Running only migrations (context=${endpointContextRef.contextName}).`);
|
|
179
|
+
await endpointContextRef.dbMigrations.runAllNotCompletedMigrations();
|
|
180
|
+
}
|
|
181
|
+
else if (endpointContextRef.onlyMigrationRevertToTimestamp) {
|
|
182
|
+
endpointContextRef.logMigrations &&
|
|
183
|
+
lib_prod_1.Helpers.log(`[taon] Reverting migrations to timestamp ${endpointContextRef.onlyMigrationRevertToTimestamp} (context=${endpointContextRef.contextName}).`);
|
|
184
|
+
await endpointContextRef.dbMigrations.revertMigrationToTimestamp(endpointContextRef.onlyMigrationRevertToTimestamp);
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
endpointContextRef.logMigrations &&
|
|
188
|
+
lib_prod_1.Helpers.log(`[taon] Running all not applied migrations (context=${endpointContextRef.contextName}).`);
|
|
189
|
+
await endpointContextRef.dbMigrations.runAllNotCompletedMigrations();
|
|
190
|
+
}
|
|
191
|
+
//#endregion
|
|
192
|
+
}
|
|
193
|
+
endpoint_context_storage_1.ContextsEndpointStorage.Instance.set(endpointContextRef);
|
|
194
|
+
resolve(endpointContextRef);
|
|
195
|
+
});
|
|
196
|
+
//#endregion
|
|
197
|
+
});
|
|
198
|
+
},
|
|
199
|
+
/**
|
|
200
|
+
* realtime communication with server
|
|
201
|
+
* TCP(upgrade) socket.io (or ipc) based.
|
|
202
|
+
*/
|
|
203
|
+
get realtime() {
|
|
204
|
+
return {
|
|
205
|
+
get client() {
|
|
206
|
+
return endpointContextRef.realtimeClient;
|
|
207
|
+
},
|
|
208
|
+
get server() {
|
|
209
|
+
return endpointContextRef.realtimeServer;
|
|
210
|
+
},
|
|
211
|
+
};
|
|
212
|
+
},
|
|
213
|
+
};
|
|
214
|
+
return res;
|
|
215
|
+
};
|
|
216
|
+
//#endregion
|
|
217
|
+
const createContext = (configFn) => {
|
|
218
|
+
return createContextFn(configFn, { useAsRemoteContext: false });
|
|
219
|
+
};
|
|
220
|
+
exports.createContext = createContext;
|
|
221
|
+
// const AA = createContext(() => ({ contextName: 'aa' }));
|
|
222
|
+
// const BB = AA.cloneAsRemoteContext();
|
|
223
|
+
//# sourceMappingURL=create-context.js.map
|