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
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import { BaseRepositoryOptions } from './base-repository-options.model';
|
|
2
|
+
import { FindAllOptions } from './find-all-options.model';
|
|
2
3
|
import { BaseEntity } from '../../../entity/base-entity.model';
|
|
3
|
-
import { Where } from '../where/where-filter.model';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Options for counting entities.
|
|
7
7
|
*/
|
|
8
8
|
export type CountOptions<T extends BaseEntity> = BaseRepositoryOptions
|
|
9
|
-
&
|
|
10
|
-
/**
|
|
11
|
-
* The where filter to count the options by.
|
|
12
|
-
*/
|
|
13
|
-
where?: Where<T>
|
|
14
|
-
};
|
|
9
|
+
& Pick<FindAllOptions<T>, 'where'>;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BaseEntity } from '../../../entity/base-entity.model';
|
|
3
|
-
import { OmitStrict } from '../../../types/omit-strict.type';
|
|
1
|
+
import { BaseRepositoryOptions } from './base-repository-options.model';
|
|
4
2
|
|
|
5
3
|
/**
|
|
6
4
|
* Options for deleting multiple entities.
|
|
7
5
|
*/
|
|
8
|
-
export type DeleteAllOptions
|
|
6
|
+
export type DeleteAllOptions = BaseRepositoryOptions;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FindManyOptions } from 'typeorm';
|
|
1
|
+
import { FindManyOptions, FindOptionsRelations } from 'typeorm';
|
|
2
2
|
|
|
3
3
|
import { BaseRepositoryOptions } from './base-repository-options.model';
|
|
4
4
|
import { BaseEntity } from '../../../entity/base-entity.model';
|
|
@@ -17,5 +17,5 @@ export type FindAllOptions<T extends BaseEntity> = BaseRepositoryOptions
|
|
|
17
17
|
/**
|
|
18
18
|
* The relations to include in the found entities.
|
|
19
19
|
*/
|
|
20
|
-
relations?: (keyof T)[]
|
|
20
|
+
relations?: FindOptionsRelations<T> | (keyof T)[]
|
|
21
21
|
};
|
|
@@ -5,9 +5,4 @@ import { OmitStrict } from '../../../types/omit-strict.type';
|
|
|
5
5
|
/**
|
|
6
6
|
* Options for finding a single entity by its id.
|
|
7
7
|
*/
|
|
8
|
-
export type FindByIdOptions<T extends BaseEntity> = OmitStrict<FindOneOptions<T>, 'where'
|
|
9
|
-
/**
|
|
10
|
-
* The relations to include in the found entity.
|
|
11
|
-
*/
|
|
12
|
-
relations?: (keyof T)[]
|
|
13
|
-
};
|
|
8
|
+
export type FindByIdOptions<T extends BaseEntity> = OmitStrict<FindOneOptions<T>, 'where'>;
|
|
@@ -1,18 +1,9 @@
|
|
|
1
1
|
import { BaseRepositoryOptions } from './base-repository-options.model';
|
|
2
|
+
import { FindAllOptions } from './find-all-options.model';
|
|
2
3
|
import { BaseEntity } from '../../../entity/base-entity.model';
|
|
3
|
-
import { Where } from '../where/where-filter.model';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Options for finding a single entity.
|
|
7
7
|
*/
|
|
8
8
|
export type FindOneOptions<T extends BaseEntity> = BaseRepositoryOptions
|
|
9
|
-
&
|
|
10
|
-
/**
|
|
11
|
-
* The where filter to find the entity by.
|
|
12
|
-
*/
|
|
13
|
-
where?: Where<T>,
|
|
14
|
-
/**
|
|
15
|
-
* The relations to include in the found entity.
|
|
16
|
-
*/
|
|
17
|
-
relations?: (keyof T)[]
|
|
18
|
-
};
|
|
9
|
+
& Pick<FindAllOptions<T>, 'where' | 'relations'>;
|
|
@@ -4,9 +4,6 @@ import { BaseRepositoryOptions } from './base-repository-options.model';
|
|
|
4
4
|
* Options for updating multiple entities at once.
|
|
5
5
|
*/
|
|
6
6
|
export type UpdateAllOptions = BaseRepositoryOptions & {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* @default false.
|
|
10
|
-
*/
|
|
11
|
-
allowId?: boolean
|
|
7
|
+
// should never be allowed, as that would cause typeorm's manager.save method to create new entities instead of updating the existing ones.
|
|
8
|
+
// allowId?: boolean
|
|
12
9
|
};
|
|
@@ -4,9 +4,6 @@ import { BaseRepositoryOptions } from './base-repository-options.model';
|
|
|
4
4
|
* Options for updating an entity by its id.
|
|
5
5
|
*/
|
|
6
6
|
export type UpdateByIdOptions = BaseRepositoryOptions & {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* @default false.
|
|
10
|
-
*/
|
|
11
|
-
allowId?: boolean
|
|
7
|
+
// should never be allowed, as that would cause typeorm's manager.save method to create a new entity instead of updating the existing one.
|
|
8
|
+
// allowId?: boolean
|
|
12
9
|
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
import { Where, WhereFilterProperty } from './where-filter.model';
|
|
1
2
|
|
|
2
3
|
/**
|
|
3
4
|
* A filter for an array where property.
|
|
4
5
|
*/
|
|
5
|
-
export type ArrayWhereFilter<ItemType> = null | {
|
|
6
|
+
export type ArrayWhereFilter<ItemType> = null | ItemType[] | {
|
|
6
7
|
/**
|
|
7
|
-
* The property needs to
|
|
8
|
+
* The property needs to be not this value.
|
|
8
9
|
*/
|
|
9
|
-
|
|
10
|
-
} | {
|
|
10
|
+
not?: null | ItemType[],
|
|
11
11
|
/**
|
|
12
12
|
* The property needs to include the value.
|
|
13
13
|
*/
|
|
@@ -15,5 +15,147 @@ export type ArrayWhereFilter<ItemType> = null | {
|
|
|
15
15
|
/**
|
|
16
16
|
* The properties items needs to be included in the value.
|
|
17
17
|
*/
|
|
18
|
-
isIncludedIn?: ItemType[]
|
|
18
|
+
isIncludedIn?: ItemType[],
|
|
19
|
+
/**
|
|
20
|
+
* The length that this array needs to have.
|
|
21
|
+
*/
|
|
22
|
+
length?: number,
|
|
23
|
+
/**
|
|
24
|
+
* The length of this array needs to be greater than the provided value.
|
|
25
|
+
*/
|
|
26
|
+
lengthGreaterThan?: number,
|
|
27
|
+
/**
|
|
28
|
+
* The length of this array needs to be greater than or equal to the provided value.
|
|
29
|
+
*/
|
|
30
|
+
lengthGreaterThanEquals?: number,
|
|
31
|
+
/**
|
|
32
|
+
* The length of this array needs to be lesser than the provided value.
|
|
33
|
+
*/
|
|
34
|
+
lengthLesserThan?: number,
|
|
35
|
+
/**
|
|
36
|
+
* The length of this array needs to be lesser than or equal to the provided value.
|
|
37
|
+
*/
|
|
38
|
+
lengthLesserThanEquals?: number,
|
|
39
|
+
/**
|
|
40
|
+
* A where condition that at least one of the items inside this array needs to match.
|
|
41
|
+
*/
|
|
42
|
+
where?: never
|
|
43
|
+
}
|
|
44
|
+
| {
|
|
45
|
+
/**
|
|
46
|
+
* The property needs to be not this value.
|
|
47
|
+
*/
|
|
48
|
+
not?: never,
|
|
49
|
+
/**
|
|
50
|
+
* The property needs to include the value.
|
|
51
|
+
*/
|
|
52
|
+
includes?: never,
|
|
53
|
+
/**
|
|
54
|
+
* The properties items needs to be included in the value.
|
|
55
|
+
*/
|
|
56
|
+
isIncludedIn?: never,
|
|
57
|
+
/**
|
|
58
|
+
* The length that this array needs to have.
|
|
59
|
+
*/
|
|
60
|
+
length?: number,
|
|
61
|
+
/**
|
|
62
|
+
* The length of this array needs to be greater than the provided value.
|
|
63
|
+
*/
|
|
64
|
+
lengthGreaterThan?: number,
|
|
65
|
+
/**
|
|
66
|
+
* The length of this array needs to be greater than or equal to the provided value.
|
|
67
|
+
*/
|
|
68
|
+
lengthGreaterThanEquals?: number,
|
|
69
|
+
/**
|
|
70
|
+
* The length of this array needs to be lesser than the provided value.
|
|
71
|
+
*/
|
|
72
|
+
lengthLesserThan?: number,
|
|
73
|
+
/**
|
|
74
|
+
* The length of this array needs to be lesser than or equal to the provided value.
|
|
75
|
+
*/
|
|
76
|
+
lengthLesserThanEquals?: number,
|
|
77
|
+
/**
|
|
78
|
+
* A where condition that at least one of the items inside this array needs to match.
|
|
79
|
+
*/
|
|
80
|
+
where: WhereFilterProperty<ItemType> | WhereFilterProperty<ItemType>[]
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* A filter for an array of object items where property.
|
|
85
|
+
*/
|
|
86
|
+
export type ObjectArrayWhereFilter<ItemType extends object> = null | ItemType[] | {
|
|
87
|
+
/**
|
|
88
|
+
* The property needs to be not this value.
|
|
89
|
+
*/
|
|
90
|
+
not?: null | ItemType[],
|
|
91
|
+
/**
|
|
92
|
+
* The property needs to include the value.
|
|
93
|
+
*/
|
|
94
|
+
includes?: ItemType[],
|
|
95
|
+
/**
|
|
96
|
+
* The properties items needs to be included in the value.
|
|
97
|
+
*/
|
|
98
|
+
isIncludedIn?: ItemType[],
|
|
99
|
+
/**
|
|
100
|
+
* The length that this array needs to have.
|
|
101
|
+
*/
|
|
102
|
+
length?: number,
|
|
103
|
+
/**
|
|
104
|
+
* The length of this array needs to be greater than the provided value.
|
|
105
|
+
*/
|
|
106
|
+
lengthGreaterThan?: number,
|
|
107
|
+
/**
|
|
108
|
+
* The length of this array needs to be greater than or equal to the provided value.
|
|
109
|
+
*/
|
|
110
|
+
lengthGreaterThanEquals?: number,
|
|
111
|
+
/**
|
|
112
|
+
* The length of this array needs to be lesser than the provided value.
|
|
113
|
+
*/
|
|
114
|
+
lengthLesserThan?: number,
|
|
115
|
+
/**
|
|
116
|
+
* The length of this array needs to be lesser than or equal to the provided value.
|
|
117
|
+
*/
|
|
118
|
+
lengthLesserThanEquals?: number,
|
|
119
|
+
/**
|
|
120
|
+
* A where condition that at least one of the items inside this array needs to match.
|
|
121
|
+
*/
|
|
122
|
+
where?: never
|
|
123
|
+
}
|
|
124
|
+
| {
|
|
125
|
+
/**
|
|
126
|
+
* The property needs to be not this value.
|
|
127
|
+
*/
|
|
128
|
+
not?: never,
|
|
129
|
+
/**
|
|
130
|
+
* The property needs to include the value.
|
|
131
|
+
*/
|
|
132
|
+
includes?: never,
|
|
133
|
+
/**
|
|
134
|
+
* The properties items needs to be included in the value.
|
|
135
|
+
*/
|
|
136
|
+
isIncludedIn?: never,
|
|
137
|
+
/**
|
|
138
|
+
* The length that this array needs to have.
|
|
139
|
+
*/
|
|
140
|
+
length?: number,
|
|
141
|
+
/**
|
|
142
|
+
* The length of this array needs to be greater than the provided value.
|
|
143
|
+
*/
|
|
144
|
+
lengthGreaterThan?: number,
|
|
145
|
+
/**
|
|
146
|
+
* The length of this array needs to be greater than or equal to the provided value.
|
|
147
|
+
*/
|
|
148
|
+
lengthGreaterThanEquals?: number,
|
|
149
|
+
/**
|
|
150
|
+
* The length of this array needs to be lesser than the provided value.
|
|
151
|
+
*/
|
|
152
|
+
lengthLesserThan?: number,
|
|
153
|
+
/**
|
|
154
|
+
* The length of this array needs to be lesser than or equal to the provided value.
|
|
155
|
+
*/
|
|
156
|
+
lengthLesserThanEquals?: number,
|
|
157
|
+
/**
|
|
158
|
+
* A where condition that at least one of the items inside this array needs to match.
|
|
159
|
+
*/
|
|
160
|
+
where: Where<ItemType>
|
|
19
161
|
};
|
|
@@ -1,4 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The base where filter object.
|
|
3
|
+
*/
|
|
4
|
+
export type BaseWhereFilterObject<T> = {
|
|
5
|
+
/**
|
|
6
|
+
* The property needs to be not this value.
|
|
7
|
+
*/
|
|
8
|
+
not?: T | null,
|
|
9
|
+
/**
|
|
10
|
+
* The property needs to be one of the values in the array.
|
|
11
|
+
*/
|
|
12
|
+
oneOf?: (T | null)[],
|
|
13
|
+
/**
|
|
14
|
+
* The property needs to be NOT one of the values in the array.
|
|
15
|
+
*/
|
|
16
|
+
notOneOf?: (T | null)[]
|
|
17
|
+
};
|
|
18
|
+
|
|
1
19
|
/**
|
|
2
20
|
* A base where filter, shared by all property types.
|
|
3
21
|
*/
|
|
4
|
-
export type BaseWhereFilter<T
|
|
22
|
+
export type BaseWhereFilter<T, FilterObject extends BaseWhereFilterObject<T>> = T | null | FilterObject;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import { BaseWhereFilter } from './base-where-filter.model';
|
|
1
|
+
import { BaseWhereFilter, BaseWhereFilterObject } from './base-where-filter.model';
|
|
2
|
+
import { ExcludeStrict } from '../../../types/exclude-strict.type';
|
|
3
|
+
import { OmitStrict } from '../../../types/omit-strict.type';
|
|
2
4
|
|
|
3
5
|
/**
|
|
4
6
|
* A filter for a boolean where property.
|
|
5
7
|
*/
|
|
6
|
-
export type BooleanWhereFilter =
|
|
8
|
+
export type BooleanWhereFilter = ExcludeStrict<
|
|
9
|
+
BaseWhereFilter<boolean, BaseWhereFilterObject<boolean>>,
|
|
10
|
+
BaseWhereFilterObject<boolean>
|
|
11
|
+
> | Required<OmitStrict<BaseWhereFilterObject<boolean>, 'oneOf' | 'notOneOf'>>;
|
|
@@ -1,21 +1,9 @@
|
|
|
1
|
-
import { BaseWhereFilter } from './base-where-filter.model';
|
|
1
|
+
import { BaseWhereFilter, BaseWhereFilterObject } from './base-where-filter.model';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* The date where filter object.
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* The property needs to be not this value.
|
|
9
|
-
*/
|
|
10
|
-
not?: Date,
|
|
11
|
-
/**
|
|
12
|
-
* The property needs to be one of the values in the array.
|
|
13
|
-
*/
|
|
14
|
-
oneOf?: Date[],
|
|
15
|
-
/**
|
|
16
|
-
* The property needs to be NOT one of the values in the array.
|
|
17
|
-
*/
|
|
18
|
-
notOneOf?: Date[],
|
|
6
|
+
type DateFilterWhereObject = BaseWhereFilterObject<Date> & {
|
|
19
7
|
/**
|
|
20
8
|
* The property needs to be after the value.
|
|
21
9
|
*/
|
|
@@ -24,4 +12,9 @@ export type DateWhereFilter = BaseWhereFilter<Date> | {
|
|
|
24
12
|
* The property needs to be before the value.
|
|
25
13
|
*/
|
|
26
14
|
before?: Date
|
|
27
|
-
};
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* A filter for a date where property.
|
|
19
|
+
*/
|
|
20
|
+
export type DateWhereFilter = BaseWhereFilter<Date, DateFilterWhereObject>;
|
|
@@ -1,21 +1,9 @@
|
|
|
1
|
-
import { BaseWhereFilter } from './base-where-filter.model';
|
|
1
|
+
import { BaseWhereFilter, BaseWhereFilterObject } from './base-where-filter.model';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* The number where filter object.
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* The property needs to be not this value.
|
|
9
|
-
*/
|
|
10
|
-
not?: T,
|
|
11
|
-
/**
|
|
12
|
-
* The property needs to be one of the values in the array.
|
|
13
|
-
*/
|
|
14
|
-
oneOf?: T[],
|
|
15
|
-
/**
|
|
16
|
-
* The property needs to be NOT one of the values in the array.
|
|
17
|
-
*/
|
|
18
|
-
notOneOf?: T[],
|
|
6
|
+
type NumberWhereFilterObject<T extends number | bigint> = BaseWhereFilterObject<T> & {
|
|
19
7
|
/**
|
|
20
8
|
* The property needs to be greater than the provided value.
|
|
21
9
|
*/
|
|
@@ -32,4 +20,9 @@ export type NumberWhereFilter<T extends number | bigint> = BaseWhereFilter<T> |
|
|
|
32
20
|
* The property needs to be lesser than or equal to the provided value.
|
|
33
21
|
*/
|
|
34
22
|
lesserThanEquals?: T
|
|
35
|
-
};
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* A filter for a number where property.
|
|
27
|
+
*/
|
|
28
|
+
export type NumberWhereFilter<T extends number | bigint> = BaseWhereFilter<T, NumberWhereFilterObject<T>>;
|
|
@@ -3,10 +3,69 @@ import { Where } from './where-filter.model';
|
|
|
3
3
|
/**
|
|
4
4
|
* A filter for a object where property.
|
|
5
5
|
*/
|
|
6
|
-
export type ObjectWhereFilter<T extends Object> =
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
export type ObjectWhereFilter<T extends Object> = {
|
|
7
|
+
/**
|
|
8
|
+
* The property needs to equal the value.
|
|
9
|
+
*/
|
|
10
|
+
is: T | null,
|
|
11
|
+
/**
|
|
12
|
+
* A where condition that the property needs to match.
|
|
13
|
+
*/
|
|
14
|
+
where?: never,
|
|
15
|
+
/**
|
|
16
|
+
* The property needs to be not this value.
|
|
17
|
+
*/
|
|
18
|
+
not?: never,
|
|
19
|
+
/**
|
|
20
|
+
* The property should be one of the provided values.
|
|
21
|
+
*/
|
|
22
|
+
oneOf?: never,
|
|
23
|
+
/**
|
|
24
|
+
* The property should NOT be one of the provided values.
|
|
25
|
+
*/
|
|
26
|
+
notOneOf?: never
|
|
27
|
+
}
|
|
28
|
+
| {
|
|
29
|
+
/**
|
|
30
|
+
* The property needs to equal the value.
|
|
31
|
+
*/
|
|
32
|
+
is?: never,
|
|
33
|
+
/**
|
|
34
|
+
* A where condition that the property needs to match.
|
|
35
|
+
*/
|
|
36
|
+
where: Where<T>,
|
|
37
|
+
/**
|
|
38
|
+
* The property needs to be not this value.
|
|
39
|
+
*/
|
|
40
|
+
not?: never,
|
|
41
|
+
/**
|
|
42
|
+
* The property should be one of the provided values.
|
|
43
|
+
*/
|
|
44
|
+
oneOf?: never,
|
|
45
|
+
/**
|
|
46
|
+
* The property should NOT be one of the provided values.
|
|
47
|
+
*/
|
|
48
|
+
notOneOf?: never
|
|
49
|
+
}
|
|
50
|
+
| {
|
|
51
|
+
/**
|
|
52
|
+
* The property needs to equal the value.
|
|
53
|
+
*/
|
|
54
|
+
is?: never,
|
|
55
|
+
/**
|
|
56
|
+
* A where condition that the property needs to match.
|
|
57
|
+
*/
|
|
58
|
+
where?: never,
|
|
59
|
+
/**
|
|
60
|
+
* The property needs to be not this value.
|
|
61
|
+
*/
|
|
62
|
+
not?: T | null,
|
|
63
|
+
/**
|
|
64
|
+
* The property should be one of the provided values.
|
|
65
|
+
*/
|
|
66
|
+
oneOf?: (T | null)[],
|
|
67
|
+
/**
|
|
68
|
+
* The property should NOT be one of the provided values.
|
|
69
|
+
*/
|
|
70
|
+
notOneOf?: (T | null)[]
|
|
71
|
+
};
|
|
@@ -1,21 +1,9 @@
|
|
|
1
|
-
import { BaseWhereFilter } from './base-where-filter.model';
|
|
1
|
+
import { BaseWhereFilter, BaseWhereFilterObject } from './base-where-filter.model';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* The string where filter object.
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* The property needs to be not this value.
|
|
9
|
-
*/
|
|
10
|
-
not?: string,
|
|
11
|
-
/**
|
|
12
|
-
* The property needs to be one of the values in the array.
|
|
13
|
-
*/
|
|
14
|
-
oneOf?: string[],
|
|
15
|
-
/**
|
|
16
|
-
* The property needs to be NOT one of the values in the array.
|
|
17
|
-
*/
|
|
18
|
-
notOneOf?: string[],
|
|
6
|
+
type StringWhereFilterObject = BaseWhereFilterObject<string> & {
|
|
19
7
|
/**
|
|
20
8
|
* The property needs to be like the provided string.
|
|
21
9
|
* @example '%.com'
|
|
@@ -26,4 +14,9 @@ export type StringWhereFilter = BaseWhereFilter<string> | {
|
|
|
26
14
|
* @example '%.cOm'
|
|
27
15
|
*/
|
|
28
16
|
iLike?: string
|
|
29
|
-
};
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A filter for a string where property.
|
|
21
|
+
*/
|
|
22
|
+
export type StringWhereFilter = BaseWhereFilter<string, StringWhereFilterObject>;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
|
|
2
|
+
import { ArrayWhereFilter, ObjectArrayWhereFilter } from './array-where-filter.model';
|
|
3
|
+
import { BooleanWhereFilter } from './boolean-where-filter.model';
|
|
4
|
+
import { DateWhereFilter } from './date-where-filter.model';
|
|
5
|
+
import { NumberWhereFilter } from './number-where-filter.model';
|
|
6
|
+
import { ObjectWhereFilter } from './object-where-filter.model';
|
|
7
|
+
import { StringWhereFilter } from './string-where-filter.model';
|
|
8
|
+
import { ExcludeStrict } from '../../../types/exclude-strict.type';
|
|
9
|
+
import { ObjectUtilities } from '../../../utilities/object.utilities';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Where filter keys of object properties.
|
|
13
|
+
*/
|
|
14
|
+
type ObjectWhereFilterKeys = keyof ObjectWhereFilter<object>;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Where filter keys of array properties.
|
|
18
|
+
*/
|
|
19
|
+
type ArrayWhereFilterKeys = keyof ExcludeStrict<ArrayWhereFilter<object>, null | object[]>;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Where filter keys of object array properties.
|
|
23
|
+
*/
|
|
24
|
+
type ObjectArrayWhereFilterKeys = keyof ExcludeStrict<ObjectArrayWhereFilter<object>, null | object[]>;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Where filter keys of boolean properties.
|
|
28
|
+
*/
|
|
29
|
+
type BooleanWhereFilterKeys = keyof BooleanWhereFilter;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Where filter keys of date properties.
|
|
33
|
+
*/
|
|
34
|
+
type DateWhereFilterKeys = keyof ExcludeStrict<DateWhereFilter, null | Date>;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Where filter keys of number properties.
|
|
38
|
+
*/
|
|
39
|
+
type NumberWhereFilterKeys = keyof ExcludeStrict<NumberWhereFilter<number | bigint>, null | (number | bigint)>;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Where filter keys of string properties.
|
|
43
|
+
*/
|
|
44
|
+
type StringWhereFilterKeys = keyof ExcludeStrict<StringWhereFilter, null | string>;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* All where filter keys.
|
|
48
|
+
*/
|
|
49
|
+
export type WhereFilterKeys = ArrayWhereFilterKeys
|
|
50
|
+
| ObjectArrayWhereFilterKeys
|
|
51
|
+
| BooleanWhereFilterKeys
|
|
52
|
+
| DateWhereFilterKeys
|
|
53
|
+
| NumberWhereFilterKeys
|
|
54
|
+
| ObjectWhereFilterKeys
|
|
55
|
+
| StringWhereFilterKeys;
|
|
56
|
+
|
|
57
|
+
const whereFilterKeysRecord: Record<WhereFilterKeys, WhereFilterKeys> = {
|
|
58
|
+
not: 'not',
|
|
59
|
+
like: 'like',
|
|
60
|
+
oneOf: 'oneOf',
|
|
61
|
+
notOneOf: 'notOneOf',
|
|
62
|
+
after: 'after',
|
|
63
|
+
before: 'before',
|
|
64
|
+
greaterThan: 'greaterThan',
|
|
65
|
+
greaterThanEquals: 'greaterThanEquals',
|
|
66
|
+
lesserThan: 'lesserThan',
|
|
67
|
+
lesserThanEquals: 'lesserThanEquals',
|
|
68
|
+
iLike: 'iLike',
|
|
69
|
+
is: 'is',
|
|
70
|
+
where: 'where',
|
|
71
|
+
includes: 'includes',
|
|
72
|
+
isIncludedIn: 'isIncludedIn',
|
|
73
|
+
length: 'length',
|
|
74
|
+
lengthGreaterThan: 'lengthGreaterThan',
|
|
75
|
+
lengthLesserThanEquals: 'lengthLesserThanEquals',
|
|
76
|
+
lengthGreaterThanEquals: 'lengthGreaterThanEquals',
|
|
77
|
+
lengthLesserThan: 'lengthLesserThan'
|
|
78
|
+
};
|
|
79
|
+
const whereFilterKeySet: Set<WhereFilterKeys> = new Set<WhereFilterKeys>(ObjectUtilities.values(whereFilterKeysRecord));
|
|
80
|
+
|
|
81
|
+
// eslint-disable-next-line jsdoc/require-returns
|
|
82
|
+
/**
|
|
83
|
+
* Checks if the given key is a where filter key.
|
|
84
|
+
* @param key - The key to check.
|
|
85
|
+
*/
|
|
86
|
+
export function isWhereFilterKey(key: unknown): key is WhereFilterKeys {
|
|
87
|
+
return whereFilterKeySet.has(key as WhereFilterKeys);
|
|
88
|
+
}
|
|
@@ -1,12 +1,35 @@
|
|
|
1
1
|
/* eslint-disable unicorn/no-null */
|
|
2
|
-
import { describe, expect, it } from '@jest/globals';
|
|
3
|
-
import { EqualOperator, FindOptionsWhere, FindOperator, Equal,
|
|
2
|
+
import { afterAll, beforeAll, describe, expect, it } from '@jest/globals';
|
|
3
|
+
import { EqualOperator, FindOptionsWhere, FindOperator, Equal, FindOptionsWhere as ToFindOptionsWhere } from 'typeorm';
|
|
4
4
|
|
|
5
|
-
import {
|
|
6
|
-
import { Where } from './where-filter.model';
|
|
5
|
+
import { Where, WhereFilter } from './where-filter.model';
|
|
7
6
|
import { Address } from '../../../__testing__/mocks/entities/address.model';
|
|
8
7
|
import { User } from '../../../__testing__/mocks/entities/user.entity';
|
|
9
|
-
import {
|
|
8
|
+
import { createTestDataSource } from '../../../__testing__/test-server/create-test-data-source.function';
|
|
9
|
+
import { StartedTestServer, startTestServer } from '../../../__testing__/test-server/start-test-server.function';
|
|
10
|
+
import { inject } from '../../../di/inject.function';
|
|
11
|
+
import { Newable } from '../../../types/newable.type';
|
|
12
|
+
import { DataSource } from '../../decorators/data-source.decorator';
|
|
13
|
+
|
|
14
|
+
@DataSource()
|
|
15
|
+
class DbDataSource extends createTestDataSource() {}
|
|
16
|
+
|
|
17
|
+
function whereFilterToFindOptionsWhere<T extends object>(
|
|
18
|
+
filter: Where<T>,
|
|
19
|
+
entityClass: Newable<T>
|
|
20
|
+
): Where<T> extends WhereFilter<T>[] ? ToFindOptionsWhere<T>[] : ToFindOptionsWhere<T> {
|
|
21
|
+
return inject(DbDataSource).whereFilterToFindOptionsWhere(filter, entityClass);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
let server: StartedTestServer;
|
|
25
|
+
|
|
26
|
+
beforeAll(async () => {
|
|
27
|
+
server = await startTestServer({ dataSources: [DbDataSource] });
|
|
28
|
+
}, 15000);
|
|
29
|
+
|
|
30
|
+
afterAll(async () => {
|
|
31
|
+
await server.shutdown();
|
|
32
|
+
});
|
|
10
33
|
|
|
11
34
|
describe('whereFilterToFindOptionsWhere - primitive filters', () => {
|
|
12
35
|
it('string equality', () => {
|
|
@@ -80,16 +103,15 @@ describe('whereFilterToFindOptionsWhere - date filters', () => {
|
|
|
80
103
|
});
|
|
81
104
|
|
|
82
105
|
describe('whereFilterToFindOptionsWhere - object filters', () => {
|
|
83
|
-
it('nested where on json fields yields Raw operator', () => {
|
|
106
|
+
it('nested where on json fields yields Raw operator with inline SQL', () => {
|
|
84
107
|
const filter: Where<User> = { address: { where: { street: 'Main St' } } };
|
|
85
108
|
const result: FindOptionsWhere<User> = whereFilterToFindOptionsWhere(filter, User);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
expect(JsonUtilities.stringify(result)).toEqual(JsonUtilities.stringify(expectedResult));
|
|
109
|
+
|
|
110
|
+
expect(result.address).toBeInstanceOf(FindOperator);
|
|
111
|
+
const raw: FindOperator<Address> = result.address as FindOperator<Address>;
|
|
112
|
+
|
|
113
|
+
const sql: string | undefined = raw.getSql?.('"TestAlias"."address"');
|
|
114
|
+
expect(sql).toEqual('("TestAlias"."address"->>\'street\') = \'Main St\'');
|
|
93
115
|
});
|
|
94
116
|
it('nested where on relation fields yields nested filter', () => {
|
|
95
117
|
const filter: Where<User> = { company: { where: { id: '42' } } };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ArrayWhereFilter } from './array-where-filter.model';
|
|
1
|
+
import { ArrayWhereFilter, ObjectArrayWhereFilter } from './array-where-filter.model';
|
|
2
2
|
import { BooleanWhereFilter } from './boolean-where-filter.model';
|
|
3
3
|
import { DateWhereFilter } from './date-where-filter.model';
|
|
4
4
|
import { NumberWhereFilter } from './number-where-filter.model';
|
|
@@ -28,9 +28,12 @@ export type WhereFilterProperty<T> = T extends bigint
|
|
|
28
28
|
? NumberWhereFilter<number>
|
|
29
29
|
: T extends boolean
|
|
30
30
|
? BooleanWhereFilter
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
: T extends (infer ItemType)[]
|
|
32
|
+
? ItemType extends Date
|
|
33
|
+
? ArrayWhereFilter<ItemType>
|
|
34
|
+
: ItemType extends object
|
|
35
|
+
? ObjectArrayWhereFilter<ItemType>
|
|
36
|
+
: ArrayWhereFilter<ItemType>
|
|
34
37
|
: T extends Date
|
|
35
38
|
? DateWhereFilter
|
|
36
39
|
: T extends object
|