zibri 2.4.0 → 2.4.1
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/dist/cjs/application.d.ts.map +1 -1
- package/dist/cjs/application.js +8 -2
- package/dist/cjs/application.js.map +1 -1
- package/dist/cjs/auth/encryption/encryption-key.model.d.ts +5 -1
- package/dist/cjs/auth/encryption/encryption-key.model.d.ts.map +1 -1
- package/dist/cjs/auth/encryption/encryption-key.model.js +9 -1
- package/dist/cjs/auth/encryption/encryption-key.model.js.map +1 -1
- package/dist/cjs/auth/strategies/cookie/cookie-auth.auth-strategy.d.ts.map +1 -1
- package/dist/cjs/auth/strategies/cookie/cookie-auth.auth-strategy.js.map +1 -1
- package/dist/cjs/auth/strategies/jwt/jwt-credentials.model.d.ts +5 -1
- package/dist/cjs/auth/strategies/jwt/jwt-credentials.model.d.ts.map +1 -1
- package/dist/cjs/auth/strategies/jwt/jwt-credentials.model.js +9 -1
- package/dist/cjs/auth/strategies/jwt/jwt-credentials.model.js.map +1 -1
- package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.d.ts.map +1 -1
- package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.js +2 -1
- package/dist/cjs/auth/strategies/jwt/jwt.auth-strategy.js.map +1 -1
- package/dist/cjs/backup/backup-resource-entity.model.d.ts +5 -1
- package/dist/cjs/backup/backup-resource-entity.model.d.ts.map +1 -1
- package/dist/cjs/backup/backup-resource-entity.model.js +9 -1
- package/dist/cjs/backup/backup-resource-entity.model.js.map +1 -1
- package/dist/cjs/backup/backup.service.js +2 -2
- package/dist/cjs/backup/backup.service.js.map +1 -1
- package/dist/cjs/caching/cache/base-cache.model.js.map +1 -1
- package/dist/cjs/caching/cache/multi-tier.cache.js.map +1 -1
- package/dist/cjs/caching/cache/read-aside/read-aside.cache.js.map +1 -1
- package/dist/cjs/caching/cache/read-aside/write-around-read-aside.cache.js.map +1 -1
- package/dist/cjs/caching/cache/read-aside/write-behind-read-aside.cache.js.map +1 -1
- package/dist/cjs/caching/cache/read-aside/write-invalidate-read-aside-args-only.cache.js.map +1 -1
- package/dist/cjs/caching/cache/read-aside/write-invalidate-read-aside-with-result.cache.js.map +1 -1
- package/dist/cjs/caching/cache/read-aside/write-through-read-aside.cache.js.map +1 -1
- package/dist/cjs/caching/cache/read-through/read-through.cache.js.map +1 -1
- package/dist/cjs/caching/cache/read-through/write-around-read-through.cache.js.map +1 -1
- package/dist/cjs/caching/cache/read-through/write-behind-read-through.cache.js.map +1 -1
- package/dist/cjs/caching/cache/read-through/write-invalidate-read-through-args-only.cache.js.map +1 -1
- package/dist/cjs/caching/cache/read-through/write-invalidate-read-through-with-result.cache.js.map +1 -1
- package/dist/cjs/caching/cache/read-through/write-through-read-through.cache.js.map +1 -1
- package/dist/cjs/change-sets/change-set-repository.d.ts +5 -3
- package/dist/cjs/change-sets/change-set-repository.d.ts.map +1 -1
- package/dist/cjs/change-sets/change-set-repository.js +16 -16
- package/dist/cjs/change-sets/change-set-repository.js.map +1 -1
- package/dist/cjs/change-sets/models/change-set-entity.model.d.ts +2 -2
- package/dist/cjs/change-sets/models/change-set-entity.model.d.ts.map +1 -1
- package/dist/cjs/change-sets/models/change-set-entity.model.js +29 -1
- package/dist/cjs/change-sets/models/change-set-entity.model.js.map +1 -1
- package/dist/cjs/change-sets/models/change-set.model.js +1 -1
- package/dist/cjs/change-sets/models/change-set.model.js.map +1 -1
- package/dist/cjs/change-sets/models/change.model.d.ts +5 -1
- package/dist/cjs/change-sets/models/change.model.d.ts.map +1 -1
- package/dist/cjs/change-sets/models/change.model.js +9 -1
- package/dist/cjs/change-sets/models/change.model.js.map +1 -1
- package/dist/cjs/change-sets/models/soft-delete-entity.model.d.ts +2 -2
- package/dist/cjs/change-sets/models/soft-delete-entity.model.d.ts.map +1 -1
- package/dist/cjs/change-sets/models/soft-delete-entity.model.js +26 -0
- package/dist/cjs/change-sets/models/soft-delete-entity.model.js.map +1 -1
- package/dist/cjs/change-sets/soft-delete-repository.d.ts +6 -5
- package/dist/cjs/change-sets/soft-delete-repository.d.ts.map +1 -1
- package/dist/cjs/change-sets/soft-delete-repository.js +22 -6
- package/dist/cjs/change-sets/soft-delete-repository.js.map +1 -1
- package/dist/cjs/context/als.utilities.d.ts +3 -3
- package/dist/cjs/context/als.utilities.d.ts.map +1 -1
- package/dist/cjs/context/als.utilities.js.map +1 -1
- package/dist/cjs/context/cache/cache.context.d.ts +27 -0
- package/dist/cjs/context/cache/cache.context.d.ts.map +1 -0
- package/dist/cjs/context/cache/cache.context.js +61 -0
- package/dist/cjs/context/cache/cache.context.js.map +1 -0
- package/dist/cjs/data-source/data-sources/data-source-initialization.error.d.ts +7 -0
- package/dist/cjs/data-source/data-sources/data-source-initialization.error.d.ts.map +1 -0
- package/dist/cjs/data-source/data-sources/data-source-initialization.error.js +14 -0
- package/dist/cjs/data-source/data-sources/data-source-initialization.error.js.map +1 -0
- package/dist/cjs/data-source/data-sources/data-source.interface.d.ts +9 -1
- package/dist/cjs/data-source/data-sources/data-source.interface.d.ts.map +1 -1
- package/dist/cjs/data-source/data-sources/data-source.interface.js.map +1 -1
- package/dist/cjs/data-source/data-sources/postgres-typeorm-data-source.model.d.ts +44 -0
- package/dist/cjs/data-source/data-sources/postgres-typeorm-data-source.model.d.ts.map +1 -0
- package/dist/cjs/data-source/data-sources/postgres-typeorm-data-source.model.js +289 -0
- package/dist/cjs/data-source/data-sources/postgres-typeorm-data-source.model.js.map +1 -0
- package/dist/cjs/data-source/data-sources/sql-data-source.interface.d.ts +32 -0
- package/dist/cjs/data-source/data-sources/sql-data-source.interface.d.ts.map +1 -0
- package/dist/cjs/{entity/models/one-to-one-property-metadata.model.js → data-source/data-sources/sql-data-source.interface.js} +1 -1
- package/dist/cjs/data-source/data-sources/sql-data-source.interface.js.map +1 -0
- package/dist/cjs/data-source/data-sources/typeorm-base-data-source.model.d.ts +156 -0
- package/dist/cjs/data-source/data-sources/typeorm-base-data-source.model.d.ts.map +1 -0
- package/dist/cjs/data-source/data-sources/typeorm-base-data-source.model.js +378 -0
- package/dist/cjs/data-source/data-sources/typeorm-base-data-source.model.js.map +1 -0
- package/dist/cjs/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.d.ts +25 -0
- package/dist/cjs/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.d.ts.map +1 -0
- package/dist/cjs/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.js +353 -0
- package/dist/cjs/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.js.map +1 -0
- package/dist/cjs/data-source/data-sources/where-converter/typeorm-where-filter.converter.d.ts +70 -0
- package/dist/cjs/data-source/data-sources/where-converter/typeorm-where-filter.converter.d.ts.map +1 -0
- package/dist/cjs/data-source/data-sources/where-converter/typeorm-where-filter.converter.js +248 -0
- package/dist/cjs/data-source/data-sources/where-converter/typeorm-where-filter.converter.js.map +1 -0
- package/dist/cjs/data-source/models/options/count-options.model.d.ts +2 -7
- package/dist/cjs/data-source/models/options/count-options.model.d.ts.map +1 -1
- package/dist/cjs/data-source/models/options/delete-all-options.model.d.ts +2 -4
- package/dist/cjs/data-source/models/options/delete-all-options.model.d.ts.map +1 -1
- package/dist/cjs/data-source/models/options/find-all-options.model.d.ts +2 -2
- package/dist/cjs/data-source/models/options/find-all-options.model.d.ts.map +1 -1
- package/dist/cjs/data-source/models/options/find-by-id-options.model.d.ts +1 -6
- package/dist/cjs/data-source/models/options/find-by-id-options.model.d.ts.map +1 -1
- package/dist/cjs/data-source/models/options/find-one-options.model.d.ts +2 -11
- package/dist/cjs/data-source/models/options/find-one-options.model.d.ts.map +1 -1
- package/dist/cjs/data-source/models/options/update-all-options.model.d.ts +1 -7
- package/dist/cjs/data-source/models/options/update-all-options.model.d.ts.map +1 -1
- package/dist/cjs/data-source/models/options/update-by-id-options.model.d.ts +1 -7
- package/dist/cjs/data-source/models/options/update-by-id-options.model.d.ts.map +1 -1
- package/dist/cjs/data-source/models/where/array-where-filter.model.d.ts +142 -3
- package/dist/cjs/data-source/models/where/array-where-filter.model.d.ts.map +1 -1
- package/dist/cjs/data-source/models/where/base-where-filter.model.d.ts +18 -1
- package/dist/cjs/data-source/models/where/base-where-filter.model.d.ts.map +1 -1
- package/dist/cjs/data-source/models/where/boolean-where-filter.model.d.ts +4 -2
- package/dist/cjs/data-source/models/where/boolean-where-filter.model.d.ts.map +1 -1
- package/dist/cjs/data-source/models/where/date-where-filter.model.d.ts +8 -15
- package/dist/cjs/data-source/models/where/date-where-filter.model.d.ts.map +1 -1
- package/dist/cjs/data-source/models/where/number-where-filter.model.d.ts +8 -15
- package/dist/cjs/data-source/models/where/number-where-filter.model.d.ts.map +1 -1
- package/dist/cjs/data-source/models/where/object-where-filter.model.d.ts +52 -7
- package/dist/cjs/data-source/models/where/object-where-filter.model.d.ts.map +1 -1
- package/dist/cjs/data-source/models/where/string-where-filter.model.d.ts +8 -15
- package/dist/cjs/data-source/models/where/string-where-filter.model.d.ts.map +1 -1
- package/dist/cjs/data-source/models/where/where-filter-keys.model.d.ts +46 -0
- package/dist/cjs/data-source/models/where/where-filter-keys.model.d.ts.map +1 -0
- package/dist/cjs/data-source/models/where/where-filter-keys.model.js +36 -0
- package/dist/cjs/data-source/models/where/where-filter-keys.model.js.map +1 -0
- package/dist/cjs/data-source/models/where/where-filter.model.d.ts +2 -2
- package/dist/cjs/data-source/models/where/where-filter.model.d.ts.map +1 -1
- package/dist/cjs/data-source/query-failed.error.js +27 -1
- package/dist/cjs/data-source/query-failed.error.js.map +1 -1
- package/dist/cjs/data-source/repository.d.ts +8 -3
- package/dist/cjs/data-source/repository.d.ts.map +1 -1
- package/dist/cjs/data-source/repository.js +42 -16
- package/dist/cjs/data-source/repository.js.map +1 -1
- package/dist/cjs/di/decorators/inject-repository.decorator.d.ts +2 -2
- package/dist/cjs/di/decorators/inject-repository.decorator.d.ts.map +1 -1
- package/dist/cjs/di/decorators/inject-repository.decorator.js.map +1 -1
- package/dist/cjs/di/default/zibri-di-tokens.default.d.ts +2 -2
- package/dist/cjs/di/default/zibri-di-tokens.default.d.ts.map +1 -1
- package/dist/cjs/di/default/zibri-di-tokens.default.js.map +1 -1
- package/dist/cjs/email/email.service.d.ts +2 -2
- package/dist/cjs/email/email.service.d.ts.map +1 -1
- package/dist/cjs/email/email.service.js +4 -6
- package/dist/cjs/email/email.service.js.map +1 -1
- package/dist/cjs/email/models/email.model.js +1 -1
- package/dist/cjs/email/models/email.model.js.map +1 -1
- package/dist/cjs/entity/decorators/entity.decorator.d.ts +28 -1
- package/dist/cjs/entity/decorators/entity.decorator.d.ts.map +1 -1
- package/dist/cjs/entity/decorators/entity.decorator.js +6 -3
- package/dist/cjs/entity/decorators/entity.decorator.js.map +1 -1
- package/dist/cjs/entity/decorators/property.decorator.d.ts +5 -8
- package/dist/cjs/entity/decorators/property.decorator.d.ts.map +1 -1
- package/dist/cjs/entity/decorators/property.decorator.js +34 -20
- package/dist/cjs/entity/decorators/property.decorator.js.map +1 -1
- package/dist/cjs/entity/entity-metadata-missing.error.d.ts +9 -0
- package/dist/cjs/entity/entity-metadata-missing.error.d.ts.map +1 -0
- package/dist/cjs/entity/entity-metadata-missing.error.js +17 -0
- package/dist/cjs/entity/entity-metadata-missing.error.js.map +1 -0
- package/dist/cjs/entity/models/base-relation-metadata.model.d.ts +1 -1
- package/dist/cjs/entity/models/belongs-to-one-property-metadata.model.d.ts +28 -0
- package/dist/cjs/entity/models/belongs-to-one-property-metadata.model.d.ts.map +1 -0
- package/dist/cjs/entity/models/belongs-to-one-property-metadata.model.js +3 -0
- package/dist/cjs/entity/models/belongs-to-one-property-metadata.model.js.map +1 -0
- package/dist/cjs/entity/models/has-one-property-metadata.model.d.ts +18 -0
- package/dist/cjs/entity/models/has-one-property-metadata.model.d.ts.map +1 -0
- package/dist/{esm/entity/models/one-to-one-property-metadata.model.js → cjs/entity/models/has-one-property-metadata.model.js} +1 -1
- package/dist/cjs/entity/models/has-one-property-metadata.model.js.map +1 -0
- package/dist/cjs/entity/models/many-to-many-property-metadata.model.d.ts +3 -3
- package/dist/cjs/entity/models/many-to-many-property-metadata.model.d.ts.map +1 -1
- package/dist/cjs/entity/models/many-to-one-property-metadata.model.d.ts +11 -1
- package/dist/cjs/entity/models/many-to-one-property-metadata.model.d.ts.map +1 -1
- package/dist/cjs/entity/models/relation.enum.d.ts +2 -1
- package/dist/cjs/entity/models/relation.enum.d.ts.map +1 -1
- package/dist/cjs/entity/models/relation.enum.js +2 -1
- package/dist/cjs/entity/models/relation.enum.js.map +1 -1
- package/dist/cjs/entity/partial-class.model.js +1 -1
- package/dist/cjs/entity/partial-class.model.js.map +1 -1
- package/dist/cjs/event/event-cleanup.cron-job.d.ts.map +1 -1
- package/dist/cjs/event/event-cleanup.cron-job.js +4 -6
- package/dist/cjs/event/event-cleanup.cron-job.js.map +1 -1
- package/dist/cjs/event/event-subscriber-run.model.d.ts +6 -8
- package/dist/cjs/event/event-subscriber-run.model.d.ts.map +1 -1
- package/dist/cjs/event/event-subscriber-run.model.js +10 -17
- package/dist/cjs/event/event-subscriber-run.model.js.map +1 -1
- package/dist/cjs/event/event.model.js +1 -1
- package/dist/cjs/event/event.model.js.map +1 -1
- package/dist/cjs/event/event.service.d.ts.map +1 -1
- package/dist/cjs/event/event.service.js +6 -3
- package/dist/cjs/event/event.service.js.map +1 -1
- package/dist/cjs/global/model-registry/default-descriptor.d.ts.map +1 -1
- package/dist/cjs/global/model-registry/default-descriptor.js +2 -1
- package/dist/cjs/global/model-registry/default-descriptor.js.map +1 -1
- package/dist/cjs/global/model-registry/encryption-descriptor.d.ts.map +1 -1
- package/dist/cjs/global/model-registry/encryption-descriptor.js +2 -1
- package/dist/cjs/global/model-registry/encryption-descriptor.js.map +1 -1
- package/dist/cjs/global/model-registry/exclude-descriptor.d.ts.map +1 -1
- package/dist/cjs/global/model-registry/exclude-descriptor.js +2 -1
- package/dist/cjs/global/model-registry/exclude-descriptor.js.map +1 -1
- package/dist/cjs/global/model-registry/hash-descriptor.d.ts.map +1 -1
- package/dist/cjs/global/model-registry/hash-descriptor.js +2 -1
- package/dist/cjs/global/model-registry/hash-descriptor.js.map +1 -1
- package/dist/cjs/index.d.ts +12 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +12 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/logging/log-context.model.d.ts +2 -27
- package/dist/cjs/logging/log-context.model.d.ts.map +1 -1
- package/dist/cjs/logging/log-context.model.js +3 -49
- package/dist/cjs/logging/log-context.model.js.map +1 -1
- package/dist/cjs/open-api/open-api.service.d.ts.map +1 -1
- package/dist/cjs/open-api/open-api.service.js +20 -11
- package/dist/cjs/open-api/open-api.service.js.map +1 -1
- package/dist/cjs/parsing/form-data/form-data.body-parser.d.ts.map +1 -1
- package/dist/cjs/parsing/form-data/form-data.body-parser.js +2 -1
- package/dist/cjs/parsing/form-data/form-data.body-parser.js.map +1 -1
- package/dist/cjs/parsing/functions/parse-boolean.function.d.ts.map +1 -1
- package/dist/cjs/parsing/functions/parse-boolean.function.js.map +1 -1
- package/dist/cjs/parsing/functions/parse-object.function.d.ts.map +1 -1
- package/dist/cjs/parsing/functions/parse-object.function.js +2 -1
- package/dist/cjs/parsing/functions/parse-object.function.js.map +1 -1
- package/dist/cjs/parsing/parser.d.ts.map +1 -1
- package/dist/cjs/parsing/parser.js +2 -1
- package/dist/cjs/parsing/parser.js.map +1 -1
- package/dist/cjs/routing/decorators/body.decorator.js +2 -1
- package/dist/cjs/routing/decorators/body.decorator.js.map +1 -1
- package/dist/cjs/routing/resolve-route-params.function.js +1 -1
- package/dist/cjs/routing/resolve-route-params.function.js.map +1 -1
- package/dist/cjs/routing/router.d.ts.map +1 -1
- package/dist/cjs/routing/router.js +38 -2
- package/dist/cjs/routing/router.js.map +1 -1
- package/dist/cjs/utilities/metadata-injection-keys.enum.d.ts +1 -0
- package/dist/cjs/utilities/metadata-injection-keys.enum.d.ts.map +1 -1
- package/dist/cjs/utilities/metadata-injection-keys.enum.js +1 -0
- package/dist/cjs/utilities/metadata-injection-keys.enum.js.map +1 -1
- package/dist/cjs/utilities/typeorm.utilities.d.ts +39 -0
- package/dist/cjs/utilities/typeorm.utilities.d.ts.map +1 -0
- package/dist/cjs/utilities/typeorm.utilities.js +47 -0
- package/dist/cjs/utilities/typeorm.utilities.js.map +1 -0
- package/dist/cjs/validation/validation-problem.model.d.ts.map +1 -1
- package/dist/cjs/validation/validation-problem.model.js +4 -7
- package/dist/cjs/validation/validation-problem.model.js.map +1 -1
- package/dist/cjs/validation/validation.service.d.ts.map +1 -1
- package/dist/cjs/validation/validation.service.js +6 -4
- package/dist/cjs/validation/validation.service.js.map +1 -1
- package/dist/cjs/websocket/models/websocket-message.model.js +1 -1
- package/dist/cjs/websocket/models/websocket-message.model.js.map +1 -1
- package/dist/cjs/websocket/models/websocket-request.model.d.ts +5 -11
- package/dist/cjs/websocket/models/websocket-request.model.d.ts.map +1 -1
- package/dist/cjs/websocket/models/websocket-request.model.js.map +1 -1
- package/dist/cjs/websocket/services/websocket.service.d.ts.map +1 -1
- package/dist/cjs/websocket/services/websocket.service.js +1 -2
- package/dist/cjs/websocket/services/websocket.service.js.map +1 -1
- package/dist/esm/application.js +8 -2
- package/dist/esm/application.js.map +1 -1
- package/dist/esm/auth/encryption/encryption-key.model.js +9 -1
- package/dist/esm/auth/encryption/encryption-key.model.js.map +1 -1
- package/dist/esm/auth/strategies/cookie/cookie-auth.auth-strategy.js.map +1 -1
- package/dist/esm/auth/strategies/jwt/jwt-credentials.model.js +9 -1
- package/dist/esm/auth/strategies/jwt/jwt-credentials.model.js.map +1 -1
- package/dist/esm/auth/strategies/jwt/jwt.auth-strategy.js +2 -1
- package/dist/esm/auth/strategies/jwt/jwt.auth-strategy.js.map +1 -1
- package/dist/esm/backup/backup-resource-entity.model.js +9 -1
- package/dist/esm/backup/backup-resource-entity.model.js.map +1 -1
- package/dist/esm/backup/backup.service.js +2 -2
- package/dist/esm/backup/backup.service.js.map +1 -1
- package/dist/esm/caching/cache/base-cache.model.js.map +1 -1
- package/dist/esm/caching/cache/multi-tier.cache.js.map +1 -1
- package/dist/esm/caching/cache/read-aside/read-aside.cache.js.map +1 -1
- package/dist/esm/caching/cache/read-aside/write-around-read-aside.cache.js.map +1 -1
- package/dist/esm/caching/cache/read-aside/write-behind-read-aside.cache.js.map +1 -1
- package/dist/esm/caching/cache/read-aside/write-invalidate-read-aside-args-only.cache.js.map +1 -1
- package/dist/esm/caching/cache/read-aside/write-invalidate-read-aside-with-result.cache.js.map +1 -1
- package/dist/esm/caching/cache/read-aside/write-through-read-aside.cache.js.map +1 -1
- package/dist/esm/caching/cache/read-through/read-through.cache.js.map +1 -1
- package/dist/esm/caching/cache/read-through/write-around-read-through.cache.js.map +1 -1
- package/dist/esm/caching/cache/read-through/write-behind-read-through.cache.js.map +1 -1
- package/dist/esm/caching/cache/read-through/write-invalidate-read-through-args-only.cache.js.map +1 -1
- package/dist/esm/caching/cache/read-through/write-invalidate-read-through-with-result.cache.js.map +1 -1
- package/dist/esm/caching/cache/read-through/write-through-read-through.cache.js.map +1 -1
- package/dist/esm/change-sets/change-set-repository.js +16 -16
- package/dist/esm/change-sets/change-set-repository.js.map +1 -1
- package/dist/esm/change-sets/models/change-set-entity.model.js +29 -1
- package/dist/esm/change-sets/models/change-set-entity.model.js.map +1 -1
- package/dist/esm/change-sets/models/change-set.model.js +1 -1
- package/dist/esm/change-sets/models/change-set.model.js.map +1 -1
- package/dist/esm/change-sets/models/change.model.js +9 -1
- package/dist/esm/change-sets/models/change.model.js.map +1 -1
- package/dist/esm/change-sets/models/soft-delete-entity.model.js +26 -0
- package/dist/esm/change-sets/models/soft-delete-entity.model.js.map +1 -1
- package/dist/esm/change-sets/soft-delete-repository.js +22 -6
- package/dist/esm/change-sets/soft-delete-repository.js.map +1 -1
- package/dist/esm/context/als.utilities.js.map +1 -1
- package/dist/esm/context/cache/cache.context.js +61 -0
- package/dist/esm/context/cache/cache.context.js.map +1 -0
- package/dist/esm/data-source/data-sources/data-source-initialization.error.js +14 -0
- package/dist/esm/data-source/data-sources/data-source-initialization.error.js.map +1 -0
- package/dist/esm/data-source/data-sources/data-source.interface.js.map +1 -1
- package/dist/esm/data-source/data-sources/postgres-typeorm-data-source.model.js +289 -0
- package/dist/esm/data-source/data-sources/postgres-typeorm-data-source.model.js.map +1 -0
- package/dist/esm/data-source/data-sources/sql-data-source.interface.js +3 -0
- package/dist/esm/data-source/data-sources/sql-data-source.interface.js.map +1 -0
- package/dist/esm/data-source/data-sources/typeorm-base-data-source.model.js +378 -0
- package/dist/esm/data-source/data-sources/typeorm-base-data-source.model.js.map +1 -0
- package/dist/esm/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.js +353 -0
- package/dist/esm/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.js.map +1 -0
- package/dist/esm/data-source/data-sources/where-converter/typeorm-where-filter.converter.js +248 -0
- package/dist/esm/data-source/data-sources/where-converter/typeorm-where-filter.converter.js.map +1 -0
- package/dist/esm/data-source/models/where/where-filter-keys.model.js +36 -0
- package/dist/esm/data-source/models/where/where-filter-keys.model.js.map +1 -0
- package/dist/esm/data-source/query-failed.error.js +27 -1
- package/dist/esm/data-source/query-failed.error.js.map +1 -1
- package/dist/esm/data-source/repository.js +42 -16
- package/dist/esm/data-source/repository.js.map +1 -1
- package/dist/esm/di/decorators/inject-repository.decorator.js.map +1 -1
- package/dist/esm/di/default/zibri-di-tokens.default.js.map +1 -1
- package/dist/esm/email/email.service.js +4 -6
- package/dist/esm/email/email.service.js.map +1 -1
- package/dist/esm/email/models/email.model.js +1 -1
- package/dist/esm/email/models/email.model.js.map +1 -1
- package/dist/esm/entity/decorators/entity.decorator.js +6 -3
- package/dist/esm/entity/decorators/entity.decorator.js.map +1 -1
- package/dist/esm/entity/decorators/property.decorator.js +34 -20
- package/dist/esm/entity/decorators/property.decorator.js.map +1 -1
- package/dist/esm/entity/entity-metadata-missing.error.js +17 -0
- package/dist/esm/entity/entity-metadata-missing.error.js.map +1 -0
- package/dist/esm/entity/models/belongs-to-one-property-metadata.model.js +3 -0
- package/dist/esm/entity/models/belongs-to-one-property-metadata.model.js.map +1 -0
- package/dist/esm/entity/models/has-one-property-metadata.model.js +3 -0
- package/dist/esm/entity/models/has-one-property-metadata.model.js.map +1 -0
- package/dist/esm/entity/models/relation.enum.js +2 -1
- package/dist/esm/entity/models/relation.enum.js.map +1 -1
- package/dist/esm/entity/partial-class.model.js +1 -1
- package/dist/esm/entity/partial-class.model.js.map +1 -1
- package/dist/esm/event/event-cleanup.cron-job.js +4 -6
- package/dist/esm/event/event-cleanup.cron-job.js.map +1 -1
- package/dist/esm/event/event-subscriber-run.model.js +10 -17
- package/dist/esm/event/event-subscriber-run.model.js.map +1 -1
- package/dist/esm/event/event.model.js +1 -1
- package/dist/esm/event/event.model.js.map +1 -1
- package/dist/esm/event/event.service.js +6 -3
- package/dist/esm/event/event.service.js.map +1 -1
- package/dist/esm/global/model-registry/default-descriptor.js +2 -1
- package/dist/esm/global/model-registry/default-descriptor.js.map +1 -1
- package/dist/esm/global/model-registry/encryption-descriptor.js +2 -1
- package/dist/esm/global/model-registry/encryption-descriptor.js.map +1 -1
- package/dist/esm/global/model-registry/exclude-descriptor.js +2 -1
- package/dist/esm/global/model-registry/exclude-descriptor.js.map +1 -1
- package/dist/esm/global/model-registry/hash-descriptor.js +2 -1
- package/dist/esm/global/model-registry/hash-descriptor.js.map +1 -1
- package/dist/esm/index.js +12 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/logging/log-context.model.js +3 -49
- package/dist/esm/logging/log-context.model.js.map +1 -1
- package/dist/esm/open-api/open-api.service.js +20 -11
- package/dist/esm/open-api/open-api.service.js.map +1 -1
- package/dist/esm/parsing/form-data/form-data.body-parser.js +2 -1
- package/dist/esm/parsing/form-data/form-data.body-parser.js.map +1 -1
- package/dist/esm/parsing/functions/parse-boolean.function.js.map +1 -1
- package/dist/esm/parsing/functions/parse-object.function.js +2 -1
- package/dist/esm/parsing/functions/parse-object.function.js.map +1 -1
- package/dist/esm/parsing/parser.js +2 -1
- package/dist/esm/parsing/parser.js.map +1 -1
- package/dist/esm/routing/decorators/body.decorator.js +2 -1
- package/dist/esm/routing/decorators/body.decorator.js.map +1 -1
- package/dist/esm/routing/resolve-route-params.function.js +1 -1
- package/dist/esm/routing/resolve-route-params.function.js.map +1 -1
- package/dist/esm/routing/router.js +38 -2
- package/dist/esm/routing/router.js.map +1 -1
- package/dist/esm/utilities/metadata-injection-keys.enum.js +1 -0
- package/dist/esm/utilities/metadata-injection-keys.enum.js.map +1 -1
- package/dist/esm/utilities/typeorm.utilities.js +47 -0
- package/dist/esm/utilities/typeorm.utilities.js.map +1 -0
- package/dist/esm/validation/validation-problem.model.js +4 -7
- package/dist/esm/validation/validation-problem.model.js.map +1 -1
- package/dist/esm/validation/validation.service.js +6 -4
- package/dist/esm/validation/validation.service.js.map +1 -1
- package/dist/esm/websocket/models/websocket-message.model.js +1 -1
- package/dist/esm/websocket/models/websocket-message.model.js.map +1 -1
- package/dist/esm/websocket/models/websocket-request.model.js.map +1 -1
- package/dist/esm/websocket/services/websocket.service.js +1 -2
- package/dist/esm/websocket/services/websocket.service.js.map +1 -1
- package/package.json +9 -9
- package/src/__testing__/mocks/entities/child.entity.ts +4 -1
- package/src/__testing__/mocks/entities/company.entity.ts +5 -2
- package/src/__testing__/mocks/entities/profile.entity.ts +5 -2
- package/src/__testing__/mocks/entities/role.entity.ts +1 -1
- package/src/__testing__/mocks/entities/user.entity.ts +1 -1
- package/src/__testing__/test-server/create-test-data-source.function.ts +5 -5
- package/src/__testing__/test-server/start-test-server.function.ts +8 -6
- package/src/__testing__/test-server/user-repository.ts +4 -3
- package/src/application.ts +8 -2
- package/src/auth/2fa/two-factor.service.test.ts +151 -0
- package/src/auth/auth.service.test.ts +381 -0
- package/src/auth/encryption/encryption-key.model.ts +7 -2
- package/src/auth/strategies/cookie/cookie-auth.auth-strategy.ts +3 -2
- package/src/auth/strategies/jwt/jwt-credentials.model.ts +7 -1
- package/src/auth/strategies/jwt/jwt.auth-strategy.ts +5 -3
- package/src/backup/backup-resource-entity.model.ts +7 -2
- package/src/backup/backup-service.test.ts +1 -1
- package/src/backup/backup.service.ts +1 -1
- package/src/caching/cache/base-cache.model.ts +3 -3
- package/src/caching/cache/multi-tier.cache.ts +3 -3
- package/src/caching/cache/read-aside/read-aside.cache.ts +2 -2
- package/src/caching/cache/read-aside/write-around-read-aside.cache.ts +2 -2
- package/src/caching/cache/read-aside/write-behind-read-aside.cache.ts +2 -2
- package/src/caching/cache/read-aside/write-invalidate-read-aside-args-only.cache.ts +2 -2
- package/src/caching/cache/read-aside/write-invalidate-read-aside-with-result.cache.ts +2 -2
- package/src/caching/cache/read-aside/write-through-read-aside.cache.ts +2 -2
- package/src/caching/cache/read-through/read-through.cache.ts +2 -2
- package/src/caching/cache/read-through/write-around-read-through.cache.ts +2 -2
- package/src/caching/cache/read-through/write-behind-read-through.cache.ts +2 -2
- package/src/caching/cache/read-through/write-invalidate-read-through-args-only.cache.ts +2 -2
- package/src/caching/cache/read-through/write-invalidate-read-through-with-result.cache.ts +2 -2
- package/src/caching/cache/read-through/write-through-read-through.cache.ts +2 -2
- package/src/change-sets/change-set-repository.test.ts +317 -0
- package/src/change-sets/change-set-repository.ts +17 -17
- package/src/change-sets/models/change-set-entity.model.ts +6 -4
- package/src/change-sets/models/change-set.model.ts +1 -1
- package/src/change-sets/models/change.model.ts +7 -2
- package/src/change-sets/models/soft-delete-entity.model.ts +5 -3
- package/src/change-sets/soft-delete-repository.test.ts +326 -0
- package/src/change-sets/soft-delete-repository.ts +29 -10
- package/src/context/als.utilities.ts +5 -5
- package/src/context/cache/cache.context.ts +33 -0
- package/src/cron/cron.test.ts +421 -0
- package/src/data-source/array-where-filter.test.ts +332 -0
- package/src/data-source/data-sources/data-source-initialization.error.ts +9 -0
- package/src/data-source/data-sources/data-source.interface.ts +14 -1
- package/src/data-source/data-sources/postgres-typeorm-data-source.model.ts +330 -0
- package/src/data-source/data-sources/sql-data-source.interface.ts +35 -0
- package/src/data-source/data-sources/typeorm-base-data-source.model.ts +544 -0
- package/src/data-source/data-sources/where-converter/postgres-typeorm-where-filter.converter.ts +451 -0
- package/src/data-source/data-sources/where-converter/typeorm-where-filter.converter.ts +376 -0
- package/src/data-source/exclude-property.test.ts +4 -1
- package/src/data-source/hooks/hooks.test.ts +268 -0
- package/src/data-source/migration/migration.test.ts +4 -3
- package/src/data-source/models/options/count-options.model.ts +2 -7
- package/src/data-source/models/options/delete-all-options.model.ts +2 -4
- package/src/data-source/models/options/find-all-options.model.ts +2 -2
- package/src/data-source/models/options/find-by-id-options.model.ts +1 -6
- package/src/data-source/models/options/find-one-options.model.ts +2 -11
- package/src/data-source/models/options/update-all-options.model.ts +2 -5
- package/src/data-source/models/options/update-by-id-options.model.ts +2 -5
- package/src/data-source/models/where/array-where-filter.model.ts +147 -5
- package/src/data-source/models/where/base-where-filter.model.ts +19 -1
- package/src/data-source/models/where/boolean-where-filter.model.ts +7 -2
- package/src/data-source/models/where/date-where-filter.model.ts +9 -16
- package/src/data-source/models/where/number-where-filter.model.ts +9 -16
- package/src/data-source/models/where/object-where-filter.model.ts +66 -7
- package/src/data-source/models/where/string-where-filter.model.ts +9 -16
- package/src/data-source/models/where/where-filter-keys.model.ts +88 -0
- package/src/data-source/models/where/where-filter-to-find-options-where-function.test.ts +35 -13
- package/src/data-source/models/where/where-filter.model.ts +7 -4
- package/src/data-source/nested-where-filter.test.ts +344 -0
- package/src/data-source/query-failed.error.ts +38 -1
- package/src/data-source/repository-relation-pitfalls.test.ts +232 -0
- package/src/data-source/repository.test.ts +274 -37
- package/src/data-source/repository.ts +50 -16
- package/src/data-source/transaction/transaction.test.ts +1 -1
- package/src/data-source/where-filter.test.ts +479 -0
- package/src/di/decorators/inject-repository.decorator.ts +3 -2
- package/src/di/default/zibri-di-tokens.default.ts +2 -2
- package/src/email/email.service.test.ts +382 -0
- package/src/email/email.service.ts +4 -5
- package/src/email/models/email.model.ts +1 -1
- package/src/entity/decorators/entity.decorator.ts +44 -5
- package/src/entity/decorators/property.decorator.ts +54 -36
- package/src/entity/entity-metadata-missing.error.ts +15 -0
- package/src/entity/models/base-relation-metadata.model.ts +1 -1
- package/src/entity/models/belongs-to-one-property-metadata.model.ts +34 -0
- package/src/entity/models/has-one-property-metadata.model.ts +20 -0
- package/src/entity/models/many-to-many-property-metadata.model.ts +3 -3
- package/src/entity/models/many-to-one-property-metadata.model.ts +17 -3
- package/src/entity/models/relation.enum.ts +2 -1
- package/src/entity/partial-class.model.ts +1 -1
- package/src/event/event-cleanup.cron-job.ts +4 -6
- package/src/event/event-subscriber-run.model.ts +8 -9
- package/src/event/event.model.ts +1 -1
- package/src/event/event.service.ts +6 -3
- package/src/global/model-registry/default-descriptor.ts +2 -1
- package/src/global/model-registry/encryption-descriptor.ts +2 -1
- package/src/global/model-registry/exclude-descriptor.ts +2 -1
- package/src/global/model-registry/hash-descriptor.ts +2 -1
- package/src/index.ts +15 -3
- package/src/logging/log-context.model.ts +3 -34
- package/src/open-api/open-api.service.ts +32 -13
- package/src/parsing/form-data/form-data.body-parser.ts +2 -1
- package/src/parsing/functions/parse-boolean.function.ts +0 -1
- package/src/parsing/functions/parse-object.function.ts +2 -1
- package/src/parsing/parser.ts +2 -1
- package/src/routing/decorators/body.decorator.ts +2 -1
- package/src/routing/resolve-route-params.function.ts +1 -1
- package/src/routing/router.ts +41 -7
- package/src/utilities/metadata-injection-keys.enum.ts +1 -0
- package/src/utilities/typeorm.utilities.ts +75 -0
- package/src/validation/validation-problem.model.ts +7 -9
- package/src/validation/validation.service.ts +6 -4
- package/src/websocket/models/websocket-message.model.ts +1 -1
- package/src/websocket/models/websocket-request.model.ts +17 -9
- package/src/websocket/services/websocket.service.ts +1 -2
- package/dist/cjs/data-source/data-sources/postgres-data-source.model.d.ts +0 -129
- package/dist/cjs/data-source/data-sources/postgres-data-source.model.d.ts.map +0 -1
- package/dist/cjs/data-source/data-sources/postgres-data-source.model.js +0 -534
- package/dist/cjs/data-source/data-sources/postgres-data-source.model.js.map +0 -1
- package/dist/cjs/data-source/models/where/where-filter-to-find-options-where.function.d.ts +0 -11
- package/dist/cjs/data-source/models/where/where-filter-to-find-options-where.function.d.ts.map +0 -1
- package/dist/cjs/data-source/models/where/where-filter-to-find-options-where.function.js +0 -229
- package/dist/cjs/data-source/models/where/where-filter-to-find-options-where.function.js.map +0 -1
- package/dist/cjs/entity/models/one-to-one-property-metadata.model.d.ts +0 -30
- package/dist/cjs/entity/models/one-to-one-property-metadata.model.d.ts.map +0 -1
- package/dist/cjs/entity/models/one-to-one-property-metadata.model.js.map +0 -1
- package/dist/esm/data-source/data-sources/postgres-data-source.model.js +0 -534
- package/dist/esm/data-source/data-sources/postgres-data-source.model.js.map +0 -1
- package/dist/esm/data-source/models/where/where-filter-to-find-options-where.function.js +0 -229
- package/dist/esm/data-source/models/where/where-filter-to-find-options-where.function.js.map +0 -1
- package/dist/esm/entity/models/one-to-one-property-metadata.model.js.map +0 -1
- package/src/data-source/data-sources/postgres-data-source.model.ts +0 -675
- package/src/data-source/models/where/where-filter-to-find-options-where.function.ts +0 -307
- package/src/entity/models/one-to-one-property-metadata.model.ts +0 -35
|
@@ -14,10 +14,11 @@ import { ZIBRI_DI_TOKENS } from '../di/default/zibri-di-tokens.default';
|
|
|
14
14
|
import { inject } from '../di/inject.function';
|
|
15
15
|
import { BaseEntity } from '../entity/base-entity.model';
|
|
16
16
|
import { PropertyMetadata } from '../entity/decorators/property.decorator';
|
|
17
|
+
import { BelongsToOnePropertyMetadata } from '../entity/models/belongs-to-one-property-metadata.model';
|
|
18
|
+
import { HasOnePropertyMetadata } from '../entity/models/has-one-property-metadata.model';
|
|
17
19
|
import { ManyToManyPropertyMetadata } from '../entity/models/many-to-many-property-metadata.model';
|
|
18
20
|
import { ManyToOnePropertyMetadata } from '../entity/models/many-to-one-property-metadata.model';
|
|
19
21
|
import { OneToManyPropertyMetadata } from '../entity/models/one-to-many-property-metadata.model';
|
|
20
|
-
import { OneToOnePropertyMetadata } from '../entity/models/one-to-one-property-metadata.model';
|
|
21
22
|
import { Relation } from '../entity/models/relation.enum';
|
|
22
23
|
import { OmitClass } from '../entity/omit-class.model';
|
|
23
24
|
import { GlobalRegistry } from '../global/global-registry';
|
|
@@ -449,7 +450,7 @@ export class OpenApiService implements OpenApiServiceInterface, OnAppInit {
|
|
|
449
450
|
return undefined;
|
|
450
451
|
}
|
|
451
452
|
const propMeta: Record<string, PropertyMetadata> = MetadataUtilities.getModelProperties(response.cls);
|
|
452
|
-
const schema: OpenApiSchemaObject = this.buildOpenApiSchemaForProperties(propMeta, response.cls, 'response');
|
|
453
|
+
const schema: OpenApiSchemaObject = this.buildOpenApiSchemaForProperties(propMeta, response.cls, 'response', new Set());
|
|
453
454
|
|
|
454
455
|
if (response.isArray === true) {
|
|
455
456
|
return { [MimeType.JSON]: { schema: { type: 'array', items: schema } } };
|
|
@@ -491,7 +492,7 @@ export class OpenApiService implements OpenApiServiceInterface, OnAppInit {
|
|
|
491
492
|
continue;
|
|
492
493
|
}
|
|
493
494
|
const propMeta: Record<string, PropertyMetadata> = MetadataUtilities.getModelProperties(response.cls);
|
|
494
|
-
const schema: OpenApiSchemaObject = this.buildOpenApiSchemaForProperties(propMeta, response.cls, 'response');
|
|
495
|
+
const schema: OpenApiSchemaObject = this.buildOpenApiSchemaForProperties(propMeta, response.cls, 'response', new Set());
|
|
495
496
|
if (response.isArray === true) {
|
|
496
497
|
schemas.push({ type: 'array', items: schema });
|
|
497
498
|
continue;
|
|
@@ -544,7 +545,7 @@ export class OpenApiService implements OpenApiServiceInterface, OnAppInit {
|
|
|
544
545
|
return undefined;
|
|
545
546
|
}
|
|
546
547
|
const propMeta: Record<string, PropertyMetadata> = MetadataUtilities.getModelProperties(metadata.modelClass);
|
|
547
|
-
const schema: OpenApiSchemaObject = this.buildOpenApiSchemaForProperties(propMeta, metadata.modelClass, 'request');
|
|
548
|
+
const schema: OpenApiSchemaObject = this.buildOpenApiSchemaForProperties(propMeta, metadata.modelClass, 'request', new Set());
|
|
548
549
|
return {
|
|
549
550
|
required: typeof metadata.required === 'boolean' ? metadata.required : undefined,
|
|
550
551
|
description: metadata.description,
|
|
@@ -556,8 +557,17 @@ export class OpenApiService implements OpenApiServiceInterface, OnAppInit {
|
|
|
556
557
|
private buildOpenApiSchemaForProperties(
|
|
557
558
|
propMeta: Record<string, PropertyMetadata>,
|
|
558
559
|
entity: Newable<unknown>,
|
|
559
|
-
context: 'request' | 'response'
|
|
560
|
+
context: 'request' | 'response',
|
|
561
|
+
visited: Set<Newable<unknown>>
|
|
560
562
|
): OpenApiSchemaObject {
|
|
563
|
+
// ---- cycle guard ----
|
|
564
|
+
if (visited.has(entity)) {
|
|
565
|
+
// Return a stub schema (or a ref if you later extract components).
|
|
566
|
+
// Returning an empty object is safe, but a description helps debugging.
|
|
567
|
+
return { type: 'object', description: 'Circular reference omitted' };
|
|
568
|
+
}
|
|
569
|
+
visited.add(entity);
|
|
570
|
+
|
|
561
571
|
const properties: Record<string, OpenApiSchemaObject> = {};
|
|
562
572
|
const required: string[] = [];
|
|
563
573
|
|
|
@@ -613,17 +623,18 @@ export class OpenApiService implements OpenApiServiceInterface, OnAppInit {
|
|
|
613
623
|
case 'object': {
|
|
614
624
|
const objectPropMeta: Record<string, PropertyMetadata> = MetadataUtilities.getModelProperties(meta.cls());
|
|
615
625
|
properties[key] = {
|
|
616
|
-
...this.buildOpenApiSchemaForProperties(objectPropMeta, entity, context),
|
|
626
|
+
...this.buildOpenApiSchemaForProperties(objectPropMeta, entity, context, visited),
|
|
617
627
|
description: meta.description
|
|
618
628
|
};
|
|
619
629
|
continue;
|
|
620
630
|
}
|
|
621
|
-
case Relation.
|
|
631
|
+
case Relation.HAS_ONE:
|
|
632
|
+
case Relation.BELONGS_TO_ONE:
|
|
622
633
|
case Relation.MANY_TO_ONE: {
|
|
623
634
|
const targetClass: Newable<BaseEntity> = this.getTargetClassForRelation(meta, entity);
|
|
624
635
|
const objectPropMeta: Record<string, PropertyMetadata> = MetadataUtilities.getModelProperties(targetClass);
|
|
625
636
|
properties[key] = {
|
|
626
|
-
...this.buildOpenApiSchemaForProperties(objectPropMeta, entity, context),
|
|
637
|
+
...this.buildOpenApiSchemaForProperties(objectPropMeta, entity, context, visited),
|
|
627
638
|
description: meta.description
|
|
628
639
|
};
|
|
629
640
|
continue;
|
|
@@ -645,7 +656,8 @@ export class OpenApiService implements OpenApiServiceInterface, OnAppInit {
|
|
|
645
656
|
}
|
|
646
657
|
},
|
|
647
658
|
entity,
|
|
648
|
-
context
|
|
659
|
+
context,
|
|
660
|
+
visited
|
|
649
661
|
);
|
|
650
662
|
properties[key] = {
|
|
651
663
|
type: 'array',
|
|
@@ -658,7 +670,12 @@ export class OpenApiService implements OpenApiServiceInterface, OnAppInit {
|
|
|
658
670
|
if (meta.items.type === 'object') {
|
|
659
671
|
entity = meta.items.cls();
|
|
660
672
|
}
|
|
661
|
-
const items: OpenApiSchemaObject = this.buildOpenApiSchemaForProperties(
|
|
673
|
+
const items: OpenApiSchemaObject = this.buildOpenApiSchemaForProperties(
|
|
674
|
+
{ items: meta.items },
|
|
675
|
+
entity,
|
|
676
|
+
context,
|
|
677
|
+
visited
|
|
678
|
+
);
|
|
662
679
|
properties[key] = {
|
|
663
680
|
type: 'array',
|
|
664
681
|
description: meta.description,
|
|
@@ -692,7 +709,8 @@ export class OpenApiService implements OpenApiServiceInterface, OnAppInit {
|
|
|
692
709
|
meta: OneToManyPropertyMetadata<BaseEntity>
|
|
693
710
|
| ManyToManyPropertyMetadata<BaseEntity>
|
|
694
711
|
| ManyToOnePropertyMetadata<BaseEntity>
|
|
695
|
-
|
|
|
712
|
+
| BelongsToOnePropertyMetadata<BaseEntity>
|
|
713
|
+
| HasOnePropertyMetadata<BaseEntity>,
|
|
696
714
|
entity: Newable<unknown>
|
|
697
715
|
): Newable<BaseEntity> {
|
|
698
716
|
const fullTargetClass: Newable<BaseEntity> = meta.target();
|
|
@@ -702,7 +720,8 @@ export class OpenApiService implements OpenApiServiceInterface, OnAppInit {
|
|
|
702
720
|
for (const key in properties) {
|
|
703
721
|
const property: PropertyMetadata = properties[key];
|
|
704
722
|
if (
|
|
705
|
-
property.type !== Relation.
|
|
723
|
+
property.type !== Relation.BELONGS_TO_ONE
|
|
724
|
+
&& property.type !== Relation.HAS_ONE
|
|
706
725
|
&& property.type !== Relation.ONE_TO_MANY
|
|
707
726
|
&& property.type !== Relation.MANY_TO_ONE
|
|
708
727
|
&& property.type !== Relation.MANY_TO_MANY
|
|
@@ -771,7 +790,7 @@ export class OpenApiService implements OpenApiServiceInterface, OnAppInit {
|
|
|
771
790
|
const propMeta: Record<string, PropertyMetadata> = MetadataUtilities.getModelProperties(meta.cls());
|
|
772
791
|
return {
|
|
773
792
|
description: meta.description,
|
|
774
|
-
...this.buildOpenApiSchemaForProperties(propMeta, meta.cls(), 'request')
|
|
793
|
+
...this.buildOpenApiSchemaForProperties(propMeta, meta.cls(), 'request', new Set())
|
|
775
794
|
};
|
|
776
795
|
}
|
|
777
796
|
case 'array': {
|
|
@@ -172,7 +172,8 @@ export class FormDataBodyParser implements BodyParserInterface, OnAppInit {
|
|
|
172
172
|
res[key] = parseDate(value);
|
|
173
173
|
break;
|
|
174
174
|
}
|
|
175
|
-
case Relation.
|
|
175
|
+
case Relation.HAS_ONE:
|
|
176
|
+
case Relation.BELONGS_TO_ONE:
|
|
176
177
|
case Relation.ONE_TO_MANY:
|
|
177
178
|
case Relation.MANY_TO_ONE:
|
|
178
179
|
case Relation.MANY_TO_MANY:
|
|
@@ -62,7 +62,8 @@ export function parseObject(
|
|
|
62
62
|
res[propertyKey] = parseArray(res[propertyKey], m);
|
|
63
63
|
break;
|
|
64
64
|
}
|
|
65
|
-
case Relation.
|
|
65
|
+
case Relation.HAS_ONE:
|
|
66
|
+
case Relation.BELONGS_TO_ONE:
|
|
66
67
|
case Relation.ONE_TO_MANY:
|
|
67
68
|
case Relation.MANY_TO_ONE:
|
|
68
69
|
case Relation.MANY_TO_MANY:
|
package/src/parsing/parser.ts
CHANGED
|
@@ -100,7 +100,8 @@ export class Parser implements ParserInterface, OnAppInit {
|
|
|
100
100
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
101
101
|
parseQueryParam(req: HttpRequest | WebsocketRequest, metadata: QueryParamMetadata): unknown {
|
|
102
102
|
const rawValue: string | undefined = req.query?.[metadata.name];
|
|
103
|
-
|
|
103
|
+
const res: unknown = this.queryParamParseFunctions[metadata.type](rawValue, metadata);
|
|
104
|
+
return res;
|
|
104
105
|
}
|
|
105
106
|
|
|
106
107
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
@@ -135,7 +135,8 @@ function resolveMaxSize(bytes: BigNumber, properties: Record<string, PropertyMet
|
|
|
135
135
|
bytes = bytes.plus(resolveMaxSize(bytes, objectProperties));
|
|
136
136
|
break;
|
|
137
137
|
}
|
|
138
|
-
case Relation.
|
|
138
|
+
case Relation.HAS_ONE:
|
|
139
|
+
case Relation.BELONGS_TO_ONE:
|
|
139
140
|
case Relation.ONE_TO_MANY:
|
|
140
141
|
case Relation.MANY_TO_ONE:
|
|
141
142
|
case Relation.MANY_TO_MANY:
|
|
@@ -88,7 +88,7 @@ async function parseRouteParams(
|
|
|
88
88
|
for (const [indexStr, metadata] of ObjectUtilities.entries(headerParams)) {
|
|
89
89
|
const idx: number = Number(indexStr);
|
|
90
90
|
context.request.headers[metadata.name as KnownHeader] = parser.parseHeaderParam(context.request, metadata) as string | undefined;
|
|
91
|
-
params[idx] =
|
|
91
|
+
params[idx] = context.request.headers[metadata.name as KnownHeader];
|
|
92
92
|
}
|
|
93
93
|
resolvedParamCount += ObjectUtilities.keys(headerParams).length;
|
|
94
94
|
|
package/src/routing/router.ts
CHANGED
|
@@ -228,11 +228,26 @@ export class Router implements RouterInterface, OnAppInit, OnAppStart {
|
|
|
228
228
|
QueryMetaObject extends Record<string, QueryParamMetadata>,
|
|
229
229
|
HeaderMetaObject extends Record<string, HeaderParamMetadata>
|
|
230
230
|
>(route: RouteConfiguration<BodyMetaObject, PathMetaObject, QueryMetaObject, HeaderMetaObject>): RequestHandler {
|
|
231
|
-
const handler: RequestHandler = (async (
|
|
232
|
-
request
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
231
|
+
const handler: RequestHandler = (async (request: HttpRequest, res, next) => {
|
|
232
|
+
Object.defineProperty(request, 'params', {
|
|
233
|
+
value: { ...request.params },
|
|
234
|
+
writable: true,
|
|
235
|
+
configurable: true,
|
|
236
|
+
enumerable: true
|
|
237
|
+
});
|
|
238
|
+
Object.defineProperty(request, 'query', {
|
|
239
|
+
value: { ...request.query },
|
|
240
|
+
writable: true,
|
|
241
|
+
configurable: true,
|
|
242
|
+
enumerable: true
|
|
243
|
+
});
|
|
244
|
+
Object.defineProperty(request, 'headers', {
|
|
245
|
+
value: { ...request.headers },
|
|
246
|
+
writable: true,
|
|
247
|
+
configurable: true,
|
|
248
|
+
enumerable: true
|
|
249
|
+
});
|
|
250
|
+
|
|
236
251
|
const context: HttpRequestContext = new HttpRequestContext(request, res, undefined, undefined);
|
|
237
252
|
await AlsUtilities.runWithHttpRequestContext(context, async () => {
|
|
238
253
|
try {
|
|
@@ -289,9 +304,28 @@ export class Router implements RouterInterface, OnAppInit, OnAppStart {
|
|
|
289
304
|
if (!responses.length) {
|
|
290
305
|
await this.logger.warn(`No responses defined on route ${controllerClass.name}.${route.controllerMethod}`);
|
|
291
306
|
}
|
|
292
|
-
const handler: RequestHandler = (async (
|
|
307
|
+
const handler: RequestHandler = (async (request: HttpRequest, res, next) => {
|
|
308
|
+
Object.defineProperty(request, 'params', {
|
|
309
|
+
value: { ...request.params },
|
|
310
|
+
writable: true,
|
|
311
|
+
configurable: true,
|
|
312
|
+
enumerable: true
|
|
313
|
+
});
|
|
314
|
+
Object.defineProperty(request, 'query', {
|
|
315
|
+
value: { ...request.query },
|
|
316
|
+
writable: true,
|
|
317
|
+
configurable: true,
|
|
318
|
+
enumerable: true
|
|
319
|
+
});
|
|
320
|
+
Object.defineProperty(request, 'headers', {
|
|
321
|
+
value: { ...request.headers },
|
|
322
|
+
writable: true,
|
|
323
|
+
configurable: true,
|
|
324
|
+
enumerable: true
|
|
325
|
+
});
|
|
326
|
+
|
|
293
327
|
const context: HttpRequestContext = new HttpRequestContext(
|
|
294
|
-
|
|
328
|
+
request,
|
|
295
329
|
res,
|
|
296
330
|
controllerClass,
|
|
297
331
|
route.controllerMethod
|
|
@@ -5,6 +5,7 @@ export enum MetadataInjectionKeys {
|
|
|
5
5
|
FILE_LOCATION = 'file:location',
|
|
6
6
|
// eslint-disable-next-line cspell/spellchecker
|
|
7
7
|
PARAM_TYPES = 'design:paramtypes',
|
|
8
|
+
TYPE = 'design:type',
|
|
8
9
|
DI_TOKEN = 'di:token',
|
|
9
10
|
DI_INJECT_PARAM_TOKENS = 'di:inject_param_tokens',
|
|
10
11
|
DI_INJECT_PARAM_OPTIONS = 'di:inject_param_options',
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { DataSource, EntityTarget, EntityMetadata as TOEntityMetadata } from 'typeorm';
|
|
2
|
+
import { ColumnMetadata } from 'typeorm/metadata/ColumnMetadata.js';
|
|
3
|
+
|
|
4
|
+
import { ColumnType } from '../data-source/models/column-type.model';
|
|
5
|
+
import { Transaction } from '../data-source/transaction/transaction.model';
|
|
6
|
+
import { BaseEntity } from '../entity/base-entity.model';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Utilities for dealing with typeorm.
|
|
10
|
+
*/
|
|
11
|
+
export abstract class TypeOrmUtilities {
|
|
12
|
+
/**
|
|
13
|
+
* Gets the metadata for a typeorm column.
|
|
14
|
+
* @param target - The entity.
|
|
15
|
+
* @param propertyName - The name of the property to get the column metadata for.
|
|
16
|
+
* @param transaction - The transaction to use to get the column metadata.
|
|
17
|
+
* @returns The typeorm column metadata.
|
|
18
|
+
* @throws When the provided propertyName could not be found as a column.
|
|
19
|
+
*/
|
|
20
|
+
static getColumnMetadata<T extends BaseEntity>(
|
|
21
|
+
target: EntityTarget<T>,
|
|
22
|
+
propertyName: keyof T | string & {},
|
|
23
|
+
transaction: Transaction
|
|
24
|
+
): ColumnMetadata {
|
|
25
|
+
const metadata: TOEntityMetadata = this.getEntityMetadata(target, transaction);
|
|
26
|
+
const column: ColumnMetadata | undefined = metadata.columns.find(
|
|
27
|
+
(col) => col.propertyName === propertyName
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
if (!column) {
|
|
31
|
+
throw new Error(
|
|
32
|
+
`Column ${propertyName.toString()} not found in model`
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return column;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Gets the typeorm metadata for a given entity.
|
|
41
|
+
* @param target - The target entity.
|
|
42
|
+
* @param transaction - The transaction to run this command with.
|
|
43
|
+
* @returns The typeorm metadata.
|
|
44
|
+
*/
|
|
45
|
+
static getEntityMetadata<T extends BaseEntity>(target: EntityTarget<T>, transaction: Transaction): TOEntityMetadata {
|
|
46
|
+
return transaction.queryRunner.connection.getMetadata(target);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// eslint-disable-next-line jsdoc/require-param
|
|
50
|
+
/**
|
|
51
|
+
* Normalizes the type of the given column using the provided dataSource.
|
|
52
|
+
* @returns The normalized column type as a string.
|
|
53
|
+
* @throws When no dataSource has been provided.
|
|
54
|
+
*/
|
|
55
|
+
static normalizeColumnType(
|
|
56
|
+
dataSource: DataSource | undefined,
|
|
57
|
+
column: {
|
|
58
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
59
|
+
type?: ColumnType | string & {},
|
|
60
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
61
|
+
length?: number | string,
|
|
62
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
63
|
+
precision?: number | null,
|
|
64
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
65
|
+
scale?: number,
|
|
66
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
67
|
+
isArray?: boolean
|
|
68
|
+
}
|
|
69
|
+
): string {
|
|
70
|
+
if (!dataSource) {
|
|
71
|
+
throw new Error('The data source needs to be initialized before it can be used.');
|
|
72
|
+
}
|
|
73
|
+
return dataSource.driver.normalizeType(column);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { BaseEntity } from '../entity/base-entity.model';
|
|
2
2
|
import { RelationMetadata } from '../entity/decorators/property.decorator';
|
|
3
|
+
import { BelongsToOnePropertyMetadata } from '../entity/models/belongs-to-one-property-metadata.model';
|
|
3
4
|
import { FileSize } from '../entity/models/file-property-metadata.model';
|
|
5
|
+
import { HasOnePropertyMetadata } from '../entity/models/has-one-property-metadata.model';
|
|
4
6
|
import { ManyToManyPropertyMetadata } from '../entity/models/many-to-many-property-metadata.model';
|
|
5
7
|
import { ManyToOnePropertyMetadata } from '../entity/models/many-to-one-property-metadata.model';
|
|
6
8
|
import { OneToManyPropertyMetadata } from '../entity/models/one-to-many-property-metadata.model';
|
|
7
|
-
import { OneToOnePropertyMetadata } from '../entity/models/one-to-one-property-metadata.model';
|
|
8
9
|
import { Relation } from '../entity/models/relation.enum';
|
|
9
10
|
import { MimeType } from '../http/mime-type.enum';
|
|
10
11
|
|
|
@@ -82,15 +83,12 @@ export class RelationsNotAllowedValidationProblem implements ValidationProblem {
|
|
|
82
83
|
|
|
83
84
|
private getExample(metadata: RelationMetadata<BaseEntity>, relationKey: string): string {
|
|
84
85
|
switch (metadata.type) {
|
|
85
|
-
case Relation.MANY_TO_ONE:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
case Relation.ONE_TO_MANY: {
|
|
89
|
-
return this.getArrayExample(metadata, relationKey);
|
|
90
|
-
}
|
|
91
|
-
case Relation.ONE_TO_ONE: {
|
|
86
|
+
case Relation.MANY_TO_ONE:
|
|
87
|
+
case Relation.HAS_ONE:
|
|
88
|
+
case Relation.BELONGS_TO_ONE: {
|
|
92
89
|
return this.getObjectExample(metadata, relationKey);
|
|
93
90
|
}
|
|
91
|
+
case Relation.ONE_TO_MANY:
|
|
94
92
|
case Relation.MANY_TO_MANY: {
|
|
95
93
|
return this.getArrayExample(metadata, relationKey);
|
|
96
94
|
}
|
|
@@ -110,7 +108,7 @@ export class RelationsNotAllowedValidationProblem implements ValidationProblem {
|
|
|
110
108
|
}
|
|
111
109
|
|
|
112
110
|
private getObjectExample(
|
|
113
|
-
metadata:
|
|
111
|
+
metadata: BelongsToOnePropertyMetadata<BaseEntity> | HasOnePropertyMetadata<BaseEntity> | ManyToOnePropertyMetadata<BaseEntity>,
|
|
114
112
|
relationKey: string
|
|
115
113
|
): string {
|
|
116
114
|
return [
|
|
@@ -10,6 +10,7 @@ import { Injectable } from '../di/decorators/injectable.decorator';
|
|
|
10
10
|
import { ZIBRI_DI_TOKENS } from '../di/default/zibri-di-tokens.default';
|
|
11
11
|
import { inject } from '../di/inject.function';
|
|
12
12
|
import { PropertyMetadata, Property, RelationMetadata } from '../entity/decorators/property.decorator';
|
|
13
|
+
import { Relation } from '../entity/models/relation.enum';
|
|
13
14
|
import { ValidationError } from '../error-handling/errors/validation.error';
|
|
14
15
|
import { MimeType } from '../http/mime-type.enum';
|
|
15
16
|
import { FormData } from '../parsing/form-data/form-data.model';
|
|
@@ -224,10 +225,11 @@ export class ValidationService implements ValidationServiceInterface {
|
|
|
224
225
|
const fullKey: string = parentKey ? `${parentKey}.${key}` : key;
|
|
225
226
|
|
|
226
227
|
if (
|
|
227
|
-
metadata.type ===
|
|
228
|
-
|| metadata.type ===
|
|
229
|
-
|| metadata.type ===
|
|
230
|
-
|| metadata.type ===
|
|
228
|
+
metadata.type === Relation.MANY_TO_ONE
|
|
229
|
+
|| metadata.type === Relation.ONE_TO_MANY
|
|
230
|
+
|| metadata.type === Relation.HAS_ONE
|
|
231
|
+
|| metadata.type === Relation.BELONGS_TO_ONE
|
|
232
|
+
|| metadata.type === Relation.MANY_TO_MANY
|
|
231
233
|
) {
|
|
232
234
|
return [new RelationsNotAllowedValidationProblem(fullKey, metadata, key)];
|
|
233
235
|
}
|
|
@@ -21,7 +21,7 @@ export enum WebsocketRecipientType {
|
|
|
21
21
|
/**
|
|
22
22
|
* Definition of a message sent via websocket connection.
|
|
23
23
|
*/
|
|
24
|
-
@Entity()
|
|
24
|
+
@Entity({ defaultOrder: { seq: 'ASC' } })
|
|
25
25
|
export class WebsocketMessage extends BaseEntity {
|
|
26
26
|
/**
|
|
27
27
|
* The date at which the message was created.
|
|
@@ -4,37 +4,45 @@ import { HttpRequest } from '../../http/http-request.model';
|
|
|
4
4
|
import { KnownHeader } from '../../http/known-header.enum';
|
|
5
5
|
|
|
6
6
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
7
|
-
class QueryObject implements Record<string,
|
|
8
|
-
[key: string]:
|
|
7
|
+
class QueryObject implements Record<string, unknown> {
|
|
8
|
+
[key: string]: unknown
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
12
12
|
class ParamsObject extends QueryObject {}
|
|
13
13
|
|
|
14
14
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
15
|
-
class HeadersObject implements Partial<Record<KnownHeader,
|
|
16
|
-
[key: string]:
|
|
15
|
+
class HeadersObject implements Partial<Record<KnownHeader, unknown>> {
|
|
16
|
+
[key: string]: unknown
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* A websocket request sent from a client.
|
|
21
21
|
*/
|
|
22
|
-
export class WebsocketRequest
|
|
22
|
+
export class WebsocketRequest<
|
|
23
|
+
T = unknown,
|
|
24
|
+
PathParamsObject extends Record<string, unknown> = Record<string, string | undefined>,
|
|
25
|
+
QueryParamsObject extends Record<string, unknown> = Record<string, string | undefined>,
|
|
26
|
+
HeaderParamsObject extends Record<string, unknown> = Partial<Record<KnownHeader, string | undefined>>
|
|
27
|
+
> implements Partial<Pick<
|
|
28
|
+
HttpRequest<T, PathParamsObject, QueryParamsObject, HeaderParamsObject>,
|
|
29
|
+
'headers' | 'body' | 'query' | 'params'>
|
|
30
|
+
> {
|
|
23
31
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
24
32
|
@Property.object({ cls: () => QueryObject, required: false, allowAdditionalProperties: true })
|
|
25
|
-
query:
|
|
33
|
+
query: QueryParamsObject | undefined;
|
|
26
34
|
|
|
27
35
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
28
36
|
@Property.object({ cls: () => HeadersObject, allowAdditionalProperties: true })
|
|
29
|
-
headers!:
|
|
37
|
+
headers!: HeaderParamsObject;
|
|
30
38
|
|
|
31
39
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
32
40
|
@Property.object({ cls: () => ParamsObject, required: false, allowAdditionalProperties: true })
|
|
33
|
-
params:
|
|
41
|
+
params: PathParamsObject | undefined;
|
|
34
42
|
|
|
35
43
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
36
44
|
@Property.unknown({ required: false })
|
|
37
|
-
body:
|
|
45
|
+
body: T | undefined;
|
|
38
46
|
}
|
|
39
47
|
|
|
40
48
|
/**
|
|
@@ -256,8 +256,7 @@ export class WebsocketService implements WebsocketServiceInterface<SocketIOWebso
|
|
|
256
256
|
}
|
|
257
257
|
|
|
258
258
|
const messages: WebsocketMessage[] = await this.messageRepository.findAll({
|
|
259
|
-
where: whereFilters
|
|
260
|
-
order: { seq: 'ASC' }
|
|
259
|
+
where: whereFilters
|
|
261
260
|
});
|
|
262
261
|
|
|
263
262
|
for (const m of messages) {
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { Readable } from 'node:stream';
|
|
2
|
-
import { DataSource as TODataSource, EntityMetadata as TOEntityMetadata, EntitySchema, EntitySchemaColumnOptions, QueryRunner, EntitySchemaRelationOptions, TableColumnOptions, EntityTarget } from 'typeorm';
|
|
3
|
-
import { PostgresConnectionOptions } from 'typeorm/driver/postgres/PostgresConnectionOptions.js';
|
|
4
|
-
import { ColumnMetadata } from 'typeorm/metadata/ColumnMetadata.js';
|
|
5
|
-
import { DataSourceInterface, IsolationLevel } from './data-source.interface';
|
|
6
|
-
import { BaseEntity } from '../../entity/base-entity.model';
|
|
7
|
-
import { PropertyMetadata, PropertyMetadataInput, RelationMetadata } from '../../entity/decorators/property.decorator';
|
|
8
|
-
import { FilePropertyMetadata } from '../../entity/models/file-property-metadata.model';
|
|
9
|
-
import { type LoggerInterface } from '../../logging/logger.interface';
|
|
10
|
-
import { ExcludeStrict } from '../../types/exclude-strict.type';
|
|
11
|
-
import { Newable } from '../../types/newable.type';
|
|
12
|
-
import { OmitStrict } from '../../types/omit-strict.type';
|
|
13
|
-
import { Migration } from '../migration/migration.model';
|
|
14
|
-
import { ColumnType } from '../models/column-type.model';
|
|
15
|
-
import { Repository } from '../repository';
|
|
16
|
-
import { Transaction } from '../transaction/transaction.model';
|
|
17
|
-
type ToColumnMappableTypes = ExcludeStrict<PropertyMetadata, RelationMetadata<BaseEntity>>['type'];
|
|
18
|
-
/**
|
|
19
|
-
* Postgres-specific connection options.
|
|
20
|
-
*/
|
|
21
|
-
export type PostgresOptions = OmitStrict<PostgresConnectionOptions, 'entities' | 'type'>;
|
|
22
|
-
/**
|
|
23
|
-
* A base postgres data source definition.
|
|
24
|
-
*/
|
|
25
|
-
export declare abstract class PostgresDataSource implements DataSourceInterface {
|
|
26
|
-
private readonly logger;
|
|
27
|
-
/**
|
|
28
|
-
* Mapping from a Zibri property type to a typeorm column type.
|
|
29
|
-
*/
|
|
30
|
-
protected readonly columnTypeMappingOverride: Partial<Record<ToColumnMappableTypes, ColumnType>>;
|
|
31
|
-
private get columnTypeMapping();
|
|
32
|
-
abstract readonly options: PostgresOptions;
|
|
33
|
-
abstract readonly entities: Newable<BaseEntity>[];
|
|
34
|
-
/**
|
|
35
|
-
* The optional root password.
|
|
36
|
-
*/
|
|
37
|
-
readonly rootPw: string | undefined;
|
|
38
|
-
/**
|
|
39
|
-
* The optional root username.
|
|
40
|
-
*/
|
|
41
|
-
readonly rootUsername: string | undefined;
|
|
42
|
-
readonly migrations: Newable<Migration>[];
|
|
43
|
-
/**
|
|
44
|
-
* The internal typeorm data source.
|
|
45
|
-
*/
|
|
46
|
-
protected ds?: TODataSource;
|
|
47
|
-
constructor(logger: LoggerInterface);
|
|
48
|
-
createBackupData(): Readable;
|
|
49
|
-
restoreBackup(backupData: Readable): Promise<void>;
|
|
50
|
-
init(): Promise<void>;
|
|
51
|
-
shutDown(): Promise<void>;
|
|
52
|
-
/**
|
|
53
|
-
* Gets entity schemas for the entities of this data source.
|
|
54
|
-
* @returns Typeorm entity schemas.
|
|
55
|
-
*/
|
|
56
|
-
protected getEntitySchemas(): EntitySchema[];
|
|
57
|
-
/**
|
|
58
|
-
* Creates a typeorm entity schema for a single entity.
|
|
59
|
-
* @param cls - The entity class to create the schema for.
|
|
60
|
-
* @returns A typeorm entity schema.
|
|
61
|
-
* @throws When the provided entity was configured incorrectly.
|
|
62
|
-
*/
|
|
63
|
-
protected createSchemaForEntity(cls: Newable<BaseEntity>): EntitySchema;
|
|
64
|
-
/**
|
|
65
|
-
* Transforms the given relation metadata to typeorm relation options.
|
|
66
|
-
* @param metadata - The relation metadata to transform.
|
|
67
|
-
* @returns Typeorm relation options.
|
|
68
|
-
*/
|
|
69
|
-
protected propertyToRelationOptions<T extends BaseEntity>(metadata: RelationMetadata<T>): EntitySchemaRelationOptions;
|
|
70
|
-
private hasCascadeFlag;
|
|
71
|
-
/**
|
|
72
|
-
* Transforms the given property metadata to typeorm column options.
|
|
73
|
-
* @param metadata - The property metadata to transform.
|
|
74
|
-
* @returns Typeorm column options.
|
|
75
|
-
* @throws When the metadata is incorrect.
|
|
76
|
-
*/
|
|
77
|
-
protected propertyToColumnOptions(metadata: ExcludeStrict<PropertyMetadata, RelationMetadata<BaseEntity>>): EntitySchemaColumnOptions;
|
|
78
|
-
getRepository<T extends BaseEntity>(cls: Newable<T>): Repository<T>;
|
|
79
|
-
startTransaction(isolationLevel?: IsolationLevel): Promise<Transaction>;
|
|
80
|
-
/**
|
|
81
|
-
* Creates a query runner.
|
|
82
|
-
* @returns A query runner.
|
|
83
|
-
* @throws When the data source has not been initialized yet.
|
|
84
|
-
*/
|
|
85
|
-
createQueryRunner(): QueryRunner;
|
|
86
|
-
runMigrations(): Promise<void>;
|
|
87
|
-
addPropertyToEntity<T extends BaseEntity>(entity: Newable<T>, key: keyof T, transaction: Transaction): Promise<void>;
|
|
88
|
-
changePropertyOfEntity<T extends BaseEntity>(entity: Newable<T>, oldColumn: keyof T | string & {}, newColumn: PropertyMetadataInput & {
|
|
89
|
-
/**
|
|
90
|
-
* The name of the new column.
|
|
91
|
-
*/
|
|
92
|
-
name?: keyof T;
|
|
93
|
-
/**
|
|
94
|
-
* The type of the new column.
|
|
95
|
-
*/
|
|
96
|
-
type: ExcludeStrict<PropertyMetadata, RelationMetadata<BaseEntity> | FilePropertyMetadata>['type'];
|
|
97
|
-
}, transaction: Transaction): Promise<void>;
|
|
98
|
-
/**
|
|
99
|
-
* Gets the typeorm metadata for a given entity.
|
|
100
|
-
* @param target - The target entity.
|
|
101
|
-
* @param transaction - The transaction to run this command with.
|
|
102
|
-
* @returns The typeorm metadata.
|
|
103
|
-
*/
|
|
104
|
-
protected getEntityMetadata<T extends BaseEntity>(target: EntityTarget<T>, transaction: Transaction): TOEntityMetadata;
|
|
105
|
-
/**
|
|
106
|
-
* Gets the metadata for a typeorm column.
|
|
107
|
-
* @param target - The entity.
|
|
108
|
-
* @param propertyName - The name of the property to get the column metadata for.
|
|
109
|
-
* @param transaction - The transaction to use to get the column metadata.
|
|
110
|
-
* @returns The typeorm column metadata.
|
|
111
|
-
* @throws When the provided propertyName could not be found as a column.
|
|
112
|
-
*/
|
|
113
|
-
protected getColumnMetadata<T extends BaseEntity>(target: EntityTarget<T>, propertyName: keyof T | string & {}, transaction: Transaction): ColumnMetadata;
|
|
114
|
-
/**
|
|
115
|
-
* Creates a table for migrations if it does not exist already.
|
|
116
|
-
*/
|
|
117
|
-
protected createMigrationTableIfNotExists(): Promise<void>;
|
|
118
|
-
/**
|
|
119
|
-
* Transforms the property on the given entity class to typeorm column options.
|
|
120
|
-
* @param entity - The entity class which property should be transformed.
|
|
121
|
-
* @param property - The key of the actual property that should be transformed.
|
|
122
|
-
* @returns Typeorm column options.
|
|
123
|
-
* @throws When no data source has been provided or no column metadata could be found.
|
|
124
|
-
*/
|
|
125
|
-
protected propertyToTableColumnOptions<T extends BaseEntity>(entity: Newable<T>, property: keyof T): TableColumnOptions;
|
|
126
|
-
private normalizeColumnType;
|
|
127
|
-
}
|
|
128
|
-
export {};
|
|
129
|
-
//# sourceMappingURL=postgres-data-source.model.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-data-source.model.d.ts","sourceRoot":"","sources":["../../../../src/data-source/data-sources/postgres-data-source.model.ts"],"names":[],"mappings":"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"}
|