@elsikora/nestjs-crud-automator 1.8.0-dev.2 → 1.9.0-dev.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/README.md +253 -290
- package/dist/cjs/class/api/index.d.ts +1 -1
- package/dist/cjs/class/api/service-base.class.d.ts +2 -3
- package/dist/cjs/class/api/service-base.class.js.map +1 -1
- package/dist/cjs/class/index.d.ts +4 -3
- package/dist/cjs/class/metadata-storage.class.d.ts +2 -2
- package/dist/cjs/class/metadata-storage.class.js +1 -0
- package/dist/cjs/class/metadata-storage.class.js.map +1 -1
- package/dist/cjs/class/utility/dto/property/factory/boolean.class.d.ts +4 -3
- package/dist/cjs/class/utility/dto/property/factory/boolean.class.js.map +1 -1
- package/dist/cjs/class/utility/dto/property/factory/date.class.d.ts +4 -3
- package/dist/cjs/class/utility/dto/property/factory/date.class.js.map +1 -1
- package/dist/cjs/class/utility/dto/property/factory/enum.class.d.ts +4 -3
- package/dist/cjs/class/utility/dto/property/factory/enum.class.js.map +1 -1
- package/dist/cjs/class/utility/dto/property/factory/index.d.ts +8 -6
- package/dist/cjs/class/utility/dto/property/factory/number.class.d.ts +5 -4
- package/dist/cjs/class/utility/dto/property/factory/number.class.js +1 -3
- package/dist/cjs/class/utility/dto/property/factory/number.class.js.map +1 -1
- package/dist/cjs/class/utility/dto/property/factory/object.class.d.ts +6 -4
- package/dist/cjs/class/utility/dto/property/factory/object.class.js +2 -1
- package/dist/cjs/class/utility/dto/property/factory/object.class.js.map +1 -1
- package/dist/cjs/class/utility/dto/property/factory/relation.class.d.ts +5 -4
- package/dist/cjs/class/utility/dto/property/factory/relation.class.js +0 -3
- package/dist/cjs/class/utility/dto/property/factory/relation.class.js.map +1 -1
- package/dist/cjs/class/utility/dto/property/factory/string.class.d.ts +4 -3
- package/dist/cjs/class/utility/dto/property/factory/string.class.js.map +1 -1
- package/dist/cjs/class/utility/dto/property/factory/uuid.class.d.ts +4 -3
- package/dist/cjs/class/utility/dto/property/factory/uuid.class.js.map +1 -1
- package/dist/cjs/class/utility/dto/strategy/body.class.d.ts +3 -3
- package/dist/cjs/class/utility/dto/strategy/body.class.js +1 -4
- package/dist/cjs/class/utility/dto/strategy/body.class.js.map +1 -1
- package/dist/cjs/class/utility/dto/strategy/index.d.ts +4 -4
- package/dist/cjs/class/utility/dto/strategy/query.class.d.ts +3 -3
- package/dist/cjs/class/utility/dto/strategy/query.class.js +0 -3
- package/dist/cjs/class/utility/dto/strategy/query.class.js.map +1 -1
- package/dist/cjs/class/utility/dto/strategy/request.class.d.ts +3 -3
- package/dist/cjs/class/utility/dto/strategy/request.class.js +0 -3
- package/dist/cjs/class/utility/dto/strategy/request.class.js.map +1 -1
- package/dist/cjs/class/utility/dto/strategy/response.class.d.ts +3 -3
- package/dist/cjs/class/utility/dto/strategy/response.class.js +0 -3
- package/dist/cjs/class/utility/dto/strategy/response.class.js.map +1 -1
- package/dist/cjs/constant/decorator/api/function.constant.d.ts +1 -1
- package/dist/cjs/constant/decorator/api/function.constant.js +0 -15
- package/dist/cjs/constant/decorator/api/function.constant.js.map +1 -1
- package/dist/cjs/constant/decorator/api/index.d.ts +3 -3
- package/dist/cjs/constant/dto/index.d.ts +3 -3
- package/dist/cjs/constant/dto/list.constant.d.ts +1 -2
- package/dist/cjs/constant/dto/list.constant.js +1 -3
- package/dist/cjs/constant/dto/list.constant.js.map +1 -1
- package/dist/cjs/constant/factory/dto/get-list-query.constant.d.ts +1 -0
- package/dist/cjs/constant/factory/dto/get-list-query.constant.js +2 -0
- package/dist/cjs/constant/factory/dto/get-list-query.constant.js.map +1 -1
- package/dist/cjs/constant/factory/dto/index.d.ts +1 -1
- package/dist/cjs/constant/index.d.ts +8 -6
- package/dist/cjs/constant/interface/api/index.d.ts +2 -2
- package/dist/cjs/constant/interface/api/property/index.d.ts +2 -2
- package/dist/cjs/constant/utility/dto/constant.d.ts +3 -2
- package/dist/cjs/constant/utility/dto/constant.js +6 -10
- package/dist/cjs/constant/utility/dto/constant.js.map +1 -1
- package/dist/cjs/constant/utility/dto/index.d.ts +2 -0
- package/dist/cjs/constant/validator/has-paired-custom-suffixes-fields.constant.d.ts +5 -0
- package/dist/cjs/constant/validator/has-paired-custom-suffixes-fields.constant.js +89 -0
- package/dist/cjs/constant/validator/has-paired-custom-suffixes-fields.constant.js.map +1 -0
- package/dist/cjs/constant/validator/index.d.ts +1 -0
- package/dist/cjs/decorator/api/controller.decorator.d.ts +3 -2
- package/dist/cjs/decorator/api/controller.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/create.decorator.d.ts +7 -1
- package/dist/cjs/decorator/api/function/create.decorator.js +12 -16
- package/dist/cjs/decorator/api/function/create.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/decorator.d.ts +10 -3
- package/dist/cjs/decorator/api/function/decorator.js +7 -3
- package/dist/cjs/decorator/api/function/decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/delete.decorator.d.ts +7 -1
- package/dist/cjs/decorator/api/function/delete.decorator.js +12 -16
- package/dist/cjs/decorator/api/function/delete.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/get-list.decorator.d.ts +8 -2
- package/dist/cjs/decorator/api/function/get-list.decorator.js +12 -16
- package/dist/cjs/decorator/api/function/get-list.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/get-many.decorator.d.ts +7 -1
- package/dist/cjs/decorator/api/function/get-many.decorator.js +13 -16
- package/dist/cjs/decorator/api/function/get-many.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/get.decorator.d.ts +7 -1
- package/dist/cjs/decorator/api/function/get.decorator.js +13 -16
- package/dist/cjs/decorator/api/function/get.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/index.d.ts +7 -7
- package/dist/cjs/decorator/api/function/update.decorator.d.ts +7 -1
- package/dist/cjs/decorator/api/function/update.decorator.js +12 -16
- package/dist/cjs/decorator/api/function/update.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/index.d.ts +5 -5
- package/dist/cjs/decorator/api/method.decorator.d.ts +8 -1
- package/dist/cjs/decorator/api/method.decorator.js +9 -6
- package/dist/cjs/decorator/api/method.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/boolean.decorator.d.ts +52 -1
- package/dist/cjs/decorator/api/property/boolean.decorator.js +99 -7
- package/dist/cjs/decorator/api/property/boolean.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/copy.decorator.d.ts +16 -0
- package/dist/cjs/decorator/api/property/copy.decorator.js +49 -0
- package/dist/cjs/decorator/api/property/copy.decorator.js.map +1 -0
- package/dist/cjs/decorator/api/property/date.decorator.d.ts +56 -1
- package/dist/cjs/decorator/api/property/date.decorator.js +132 -7
- package/dist/cjs/decorator/api/property/date.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/describe.decorator.d.ts +82 -1
- package/dist/cjs/decorator/api/property/describe.decorator.js +81 -16
- package/dist/cjs/decorator/api/property/describe.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/enum.decorator.d.ts +75 -1
- package/dist/cjs/decorator/api/property/enum.decorator.js +112 -0
- package/dist/cjs/decorator/api/property/enum.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/index.d.ts +9 -7
- package/dist/cjs/decorator/api/property/number.decorator.d.ts +67 -1
- package/dist/cjs/decorator/api/property/number.decorator.js +152 -12
- package/dist/cjs/decorator/api/property/number.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/object.decorator.d.ts +27 -1
- package/dist/cjs/decorator/api/property/object.decorator.js +145 -3
- package/dist/cjs/decorator/api/property/object.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/string.decorator.d.ts +68 -1
- package/dist/cjs/decorator/api/property/string.decorator.js +131 -14
- package/dist/cjs/decorator/api/property/string.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/uuid.decorator.d.ts +42 -1
- package/dist/cjs/decorator/api/property/uuid.decorator.js +92 -7
- package/dist/cjs/decorator/api/property/uuid.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/service.decorator.d.ts +8 -2
- package/dist/cjs/decorator/api/service.decorator.js +10 -6
- package/dist/cjs/decorator/api/service.decorator.js.map +1 -1
- package/dist/cjs/enum/decorator/api/controller/index.d.ts +2 -2
- package/dist/cjs/enum/decorator/api/function/index.d.ts +1 -1
- package/dist/cjs/enum/decorator/api/index.d.ts +7 -7
- package/dist/cjs/enum/decorator/api/property/date/index.d.ts +2 -2
- package/dist/cjs/enum/decorator/api/property/index.d.ts +5 -5
- package/dist/cjs/enum/index.d.ts +6 -4
- package/dist/cjs/enum/utility/index.d.ts +1 -1
- package/dist/cjs/enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.d.ts +5 -0
- package/dist/cjs/enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.js +9 -0
- package/dist/cjs/enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.js.map +1 -0
- package/dist/cjs/enum/validator/index.d.ts +2 -0
- package/dist/cjs/enum/validator/must-match-one-of-schemas-error-type.enum.d.ts +6 -0
- package/dist/cjs/enum/validator/must-match-one-of-schemas-error-type.enum.js +10 -0
- package/dist/cjs/enum/validator/must-match-one-of-schemas-error-type.enum.js.map +1 -0
- package/dist/cjs/factory/api/controller.factory.d.ts +4 -3
- package/dist/cjs/factory/api/controller.factory.js +11 -15
- package/dist/cjs/factory/api/controller.factory.js.map +1 -1
- package/dist/cjs/factory/api/index.d.ts +1 -1
- package/dist/cjs/index.d.ts +10 -10
- package/dist/cjs/index.js +132 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interceptor/index.d.ts +1 -1
- package/dist/cjs/interface/api-authentication-request.interface.d.ts +1 -1
- package/dist/cjs/interface/api-request-validator.interface.d.ts +3 -2
- package/dist/cjs/interface/class/dto/index.d.ts +1 -1
- package/dist/cjs/interface/class/dto/strategy.interface.d.ts +2 -2
- package/dist/cjs/interface/class/index.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/controller/base.interface.d.ts +1 -1
- package/dist/cjs/interface/decorator/api/controller/index.d.ts +3 -3
- package/dist/cjs/interface/decorator/api/controller/properties/route/authentication.interface.d.ts +1 -1
- package/dist/cjs/interface/decorator/api/controller/properties/route/auto-dto-config.interface.d.ts +1 -1
- package/dist/cjs/interface/decorator/api/controller/properties/route/base-request.interface.d.ts +3 -3
- package/dist/cjs/interface/decorator/api/controller/properties/route/base-response.interface.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/controller/properties/route/base.interface.d.ts +2 -4
- package/dist/cjs/interface/decorator/api/controller/properties/route/index.d.ts +7 -7
- package/dist/cjs/interface/decorator/api/controller/properties/route/with-auto-dto.interface.d.ts +2 -3
- package/dist/cjs/interface/decorator/api/controller/properties/route/with-dto.interface.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/controller/properties.interface.d.ts +3 -3
- package/dist/cjs/interface/decorator/api/function/create-executor-properties.interface.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/function/delete-executor-properties.interface.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/function/get-executor-properties.interface.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/function/get-list-executor-properties.interface.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/function/get-many-executor-properties.interface.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/function/index.d.ts +7 -7
- package/dist/cjs/interface/decorator/api/function/properties.interface.d.ts +1 -1
- package/dist/cjs/interface/decorator/api/function/update-executor-properties.interface.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/index.d.ts +5 -5
- package/dist/cjs/interface/decorator/api/method/index.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/method/properties.interface.d.ts +2 -4
- package/dist/cjs/interface/dto-generate-factory.interface.d.ts +5 -4
- package/dist/cjs/interface/entity/index.d.ts +2 -2
- package/dist/cjs/interface/entity/interface.d.ts +2 -2
- package/dist/cjs/interface/index.d.ts +10 -8
- package/dist/cjs/interface/utility/api/controller/index.d.ts +1 -1
- package/dist/cjs/interface/utility/error-string-properties.interface.d.ts +1 -1
- package/dist/cjs/interface/utility/get-entity-columns-properties.interface.d.ts +1 -1
- package/dist/cjs/interface/utility/index.d.ts +3 -2
- package/dist/cjs/interface/validator/index.d.ts +1 -0
- package/dist/cjs/interface/validator/must-match-one-of-schemas-discriminator-config.interface.d.ts +6 -0
- package/dist/cjs/type/api-request-transformer.type.d.ts +3 -3
- package/dist/cjs/type/class/controller/index.d.ts +1 -1
- package/dist/cjs/type/class/controller/method.type.d.ts +2 -2
- package/dist/cjs/type/class/index.d.ts +3 -3
- package/dist/cjs/type/class/metadata.type.d.ts +1 -1
- package/dist/cjs/type/decorator/api/controller/constructor.type.d.ts +1 -1
- package/dist/cjs/type/decorator/api/controller/get-list-query.type.d.ts +2 -2
- package/dist/cjs/type/decorator/api/controller/index.d.ts +5 -5
- package/dist/cjs/type/decorator/api/controller/properties/route/base-request-relations.type.d.ts +1 -1
- package/dist/cjs/type/decorator/api/controller/properties/route/base-request-transformers.type.d.ts +2 -2
- package/dist/cjs/type/decorator/api/controller/properties/route/base-response-transformers.type.d.ts +2 -2
- package/dist/cjs/type/decorator/api/controller/properties/route/index.d.ts +3 -3
- package/dist/cjs/type/decorator/api/controller/properties-route.type.d.ts +2 -2
- package/dist/cjs/type/decorator/api/controller/transformer-config.type.d.ts +2 -2
- package/dist/cjs/type/decorator/api/filter/extracted-allowed-types.type.d.ts +1 -1
- package/dist/cjs/type/decorator/api/filter/index.d.ts +4 -4
- package/dist/cjs/type/decorator/api/filter/order-by.type.d.ts +1 -1
- package/dist/cjs/type/decorator/api/function/index.d.ts +9 -9
- package/dist/cjs/type/decorator/api/function/properties.type.d.ts +1 -1
- package/dist/cjs/type/decorator/api/property/base/array/index.d.ts +2 -2
- package/dist/cjs/type/decorator/api/property/base/index.d.ts +4 -4
- package/dist/cjs/type/decorator/api/property/base/properties.type.d.ts +2 -4
- package/dist/cjs/type/decorator/api/property/date-properties.type.d.ts +2 -2
- package/dist/cjs/type/decorator/api/property/describe/array/index.d.ts +2 -2
- package/dist/cjs/type/decorator/api/property/describe/base-properties.type.d.ts +1 -1
- package/dist/cjs/type/decorator/api/property/describe/boolean-properties.type.d.ts +3 -3
- package/dist/cjs/type/decorator/api/property/describe/date-properties.type.d.ts +3 -3
- package/dist/cjs/type/decorator/api/property/describe/dto/body-properties.type.d.ts +2 -2
- package/dist/cjs/type/decorator/api/property/describe/dto/index.d.ts +6 -5
- package/dist/cjs/type/decorator/api/property/describe/dto/properties.type.d.ts +1 -1
- package/dist/cjs/type/decorator/api/property/describe/dto/query/index.d.ts +2 -2
- package/dist/cjs/type/decorator/api/property/describe/dto/query/properties.type.d.ts +2 -3
- package/dist/cjs/type/decorator/api/property/describe/dto/request-properties.type.d.ts +2 -2
- package/dist/cjs/type/decorator/api/property/describe/dto/response-properties.type.d.ts +2 -2
- package/dist/cjs/type/decorator/api/property/describe/enum-properties.type.d.ts +3 -3
- package/dist/cjs/type/decorator/api/property/describe/index.d.ts +14 -13
- package/dist/cjs/type/decorator/api/property/describe/number-properties.type.d.ts +4 -4
- package/dist/cjs/type/decorator/api/property/describe/object/dynamic-with-discriminator-properties.type.d.ts +15 -0
- package/dist/cjs/type/decorator/api/property/describe/object/index.d.ts +4 -0
- package/dist/cjs/type/decorator/api/property/describe/object/properties.type.d.ts +4 -0
- package/dist/cjs/type/decorator/api/property/describe/object/with-discriminator-properties.type.d.ts +14 -0
- package/dist/cjs/type/decorator/api/property/describe/{object-properties.type.d.ts → object/without-discriminator-properties.type.d.ts} +4 -4
- package/dist/cjs/type/decorator/api/property/describe/properties/base-dto-properties.type.d.ts +1 -1
- package/dist/cjs/type/decorator/api/property/describe/properties/base-properties.type.d.ts +2 -2
- package/dist/cjs/type/decorator/api/property/describe/properties/index.d.ts +2 -2
- package/dist/cjs/type/decorator/api/property/describe/properties.type.d.ts +8 -8
- package/dist/cjs/type/decorator/api/property/describe/relation-properties.type.d.ts +2 -2
- package/dist/cjs/type/decorator/api/property/describe/string-properties.type.d.ts +4 -4
- package/dist/cjs/type/decorator/api/property/describe/uuid-properties.type.d.ts +3 -3
- package/dist/cjs/type/decorator/api/property/enum-properties.type.d.ts +1 -1
- package/dist/cjs/type/decorator/api/property/index.d.ts +8 -6
- package/dist/cjs/type/decorator/api/property/number-properties.type.d.ts +3 -3
- package/dist/cjs/type/decorator/api/property/object/dynamic-with-discriminator-properties.type.d.ts +16 -0
- package/dist/cjs/type/decorator/api/property/object/index.d.ts +4 -0
- package/dist/cjs/type/decorator/api/property/object/properties.type.d.ts +4 -0
- package/dist/cjs/type/decorator/api/property/object/with-discriminator-properties.type.d.ts +15 -0
- package/dist/cjs/type/decorator/api/property/{object-properties.type.d.ts → object/without-discriminator-properties.type.d.ts} +4 -2
- package/dist/cjs/type/decorator/api/property/string-properties.type.d.ts +2 -2
- package/dist/cjs/type/decorator/api/property/uuid-properties.type.d.ts +1 -1
- package/dist/cjs/type/decorator/api/service/index.d.ts +2 -2
- package/dist/cjs/type/decorator/api/service/keys.type.d.ts +1 -1
- package/dist/cjs/type/factory/api/controller/index.d.ts +4 -4
- package/dist/cjs/type/factory/api/controller/method-map.type.d.ts +4 -3
- package/dist/cjs/type/factory/api/controller/method-name-map.type.d.ts +2 -2
- package/dist/cjs/type/factory/api/controller/method-name.type.d.ts +3 -3
- package/dist/cjs/type/factory/api/controller/target-methods.type.d.ts +4 -4
- package/dist/cjs/type/index.d.ts +10 -5
- package/dist/cjs/type/utility/api/controller/transform-data/data.type.d.ts +1 -1
- package/dist/cjs/type/utility/api/controller/transform-data/index.d.ts +3 -3
- package/dist/cjs/type/utility/api/controller/transform-data/is-validation-properties.type.d.ts +2 -2
- package/dist/cjs/type/utility/api/controller/transform-data/object-to-transform.type.d.ts +2 -2
- package/dist/cjs/type/utility/date-range-keys.type.d.ts +1 -1
- package/dist/cjs/type/utility/dto/generate-allowed-combination.type.d.ts +1 -1
- package/dist/cjs/type/utility/dto/generate-is-allowed-combination.type.d.ts +2 -2
- package/dist/cjs/type/utility/dto/index.d.ts +2 -2
- package/dist/cjs/type/utility/filter-keys.type.d.ts +1 -1
- package/dist/cjs/type/utility/index.d.ts +7 -7
- package/dist/cjs/type/validator/has-paired-custom-suffixes-fields/index.d.ts +2 -0
- package/dist/cjs/type/validator/has-paired-custom-suffixes-fields/operation-config.type.d.ts +7 -0
- package/dist/cjs/type/validator/has-paired-custom-suffixes-fields/validation-context.type.d.ts +5 -0
- package/dist/cjs/utility/api/controller/apply-decorators.utility.d.ts +18 -3
- package/dist/cjs/utility/api/controller/apply-decorators.utility.js +15 -4
- package/dist/cjs/utility/api/controller/apply-decorators.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/apply-metadata.utility.d.ts +17 -3
- package/dist/cjs/utility/api/controller/apply-metadata.utility.js +21 -12
- package/dist/cjs/utility/api/controller/apply-metadata.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/get-list/index.d.ts +2 -2
- package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.d.ts +10 -1
- package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.js +9 -3
- package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/get-list/transform-operation.utility.d.ts +8 -1
- package/dist/cjs/utility/api/controller/get-list/transform-operation.utility.js +8 -1
- package/dist/cjs/utility/api/controller/get-list/transform-operation.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/get-method-name.utility.d.ts +7 -1
- package/dist/cjs/utility/api/controller/get-method-name.utility.js +6 -0
- package/dist/cjs/utility/api/controller/get-method-name.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/get-primary-column.utility.d.ts +10 -1
- package/dist/cjs/utility/api/controller/get-primary-column.utility.js +8 -0
- package/dist/cjs/utility/api/controller/get-primary-column.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/handle-request-relations.utility.d.ts +17 -2
- package/dist/cjs/utility/api/controller/handle-request-relations.utility.js +15 -5
- package/dist/cjs/utility/api/controller/handle-request-relations.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/index.d.ts +10 -9
- package/dist/cjs/utility/api/controller/transform-data.utility.d.ts +15 -3
- package/dist/cjs/utility/api/controller/transform-data.utility.js +52 -3
- package/dist/cjs/utility/api/controller/transform-data.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/validate-request.utility.d.ts +12 -2
- package/dist/cjs/utility/api/controller/validate-request.utility.js +9 -0
- package/dist/cjs/utility/api/controller/validate-request.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/write-dto-swagger.utility.d.ts +17 -3
- package/dist/cjs/utility/api/controller/write-dto-swagger.utility.js +20 -11
- package/dist/cjs/utility/api/controller/write-dto-swagger.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/write-method.utility.d.ts +16 -2
- package/dist/cjs/utility/api/controller/write-method.utility.js +14 -1
- package/dist/cjs/utility/api/controller/write-method.utility.js.map +1 -1
- package/dist/cjs/utility/api/filter-order-by-from-entity.utility.d.ts +16 -3
- package/dist/cjs/utility/api/filter-order-by-from-entity.utility.js +14 -1
- package/dist/cjs/utility/api/filter-order-by-from-entity.utility.js.map +1 -1
- package/dist/cjs/utility/api/index.d.ts +2 -2
- package/dist/cjs/utility/camel-case-string.utility.d.ts +5 -0
- package/dist/cjs/utility/camel-case-string.utility.js +5 -0
- package/dist/cjs/utility/camel-case-string.utility.js.map +1 -1
- package/dist/cjs/utility/capitalize-string.utility.d.ts +5 -0
- package/dist/cjs/utility/capitalize-string.utility.js +5 -0
- package/dist/cjs/utility/capitalize-string.utility.js.map +1 -1
- package/dist/cjs/utility/dto/analize.utility.d.ts +7 -1
- package/dist/cjs/utility/dto/analize.utility.js +6 -16
- package/dist/cjs/utility/dto/analize.utility.js.map +1 -1
- package/dist/cjs/utility/dto/build-decorator.utility.d.ts +19 -4
- package/dist/cjs/utility/dto/build-decorator.utility.js +17 -5
- package/dist/cjs/utility/dto/build-decorator.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate-decorator.utility.d.ts +19 -4
- package/dist/cjs/utility/dto/generate-decorator.utility.js +16 -2
- package/dist/cjs/utility/dto/generate-decorator.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate-dynamic.utility.d.ts +21 -0
- package/dist/cjs/utility/dto/generate-dynamic.utility.js +94 -0
- package/dist/cjs/utility/dto/generate-dynamic.utility.js.map +1 -0
- package/dist/cjs/utility/dto/generate-exception.utility.d.ts +7 -0
- package/dist/cjs/utility/dto/generate-exception.utility.js +8 -5
- package/dist/cjs/utility/dto/generate-exception.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate-filter-decorator.utility.d.ts +11 -2
- package/dist/cjs/utility/dto/generate-filter-decorator.utility.js +9 -3
- package/dist/cjs/utility/dto/generate-filter-decorator.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate-get-list-response.utility.d.ts +9 -0
- package/dist/cjs/utility/dto/generate-get-list-response.utility.js +25 -19
- package/dist/cjs/utility/dto/generate-get-list-response.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate-relation-response.utility.d.ts +12 -2
- package/dist/cjs/utility/dto/generate-relation-response.utility.js +10 -0
- package/dist/cjs/utility/dto/generate-relation-response.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate.utility.d.ts +17 -2
- package/dist/cjs/utility/dto/generate.utility.js +39 -11
- package/dist/cjs/utility/dto/generate.utility.js.map +1 -1
- package/dist/cjs/utility/dto/get-decorator-config.utility.d.ts +15 -2
- package/dist/cjs/utility/dto/get-decorator-config.utility.js +13 -0
- package/dist/cjs/utility/dto/get-decorator-config.utility.js.map +1 -1
- package/dist/cjs/utility/dto/get-get-list-query-base-class.utility.d.ts +13 -2
- package/dist/cjs/utility/dto/get-get-list-query-base-class.utility.js +16 -11
- package/dist/cjs/utility/dto/get-get-list-query-base-class.utility.js.map +1 -1
- package/dist/cjs/utility/dto/handle-date-property.utility.d.ts +9 -1
- package/dist/cjs/utility/dto/handle-date-property.utility.js +8 -3
- package/dist/cjs/utility/dto/handle-date-property.utility.js.map +1 -1
- package/dist/cjs/utility/dto/index.d.ts +16 -12
- package/dist/cjs/utility/dto/is-property-exposed-for-guard.utility.d.ts +10 -2
- package/dist/cjs/utility/dto/is-property-exposed-for-guard.utility.js +8 -0
- package/dist/cjs/utility/dto/is-property-exposed-for-guard.utility.js.map +1 -1
- package/dist/cjs/utility/dto/is-property-should-be-marked.utility.d.ts +12 -2
- package/dist/cjs/utility/dto/is-property-should-be-marked.utility.js +10 -3
- package/dist/cjs/utility/dto/is-property-should-be-marked.utility.js.map +1 -1
- package/dist/cjs/utility/dto/is-should-be-generated.utility.d.ts +11 -1
- package/dist/cjs/utility/dto/is-should-be-generated.utility.js +10 -3
- package/dist/cjs/utility/dto/is-should-be-generated.utility.js.map +1 -1
- package/dist/cjs/utility/dto/validate-property-config.utility.d.ts +1 -1
- package/dist/cjs/utility/error-exception.utility.d.ts +5 -0
- package/dist/cjs/utility/error-exception.utility.js +5 -0
- package/dist/cjs/utility/error-exception.utility.js.map +1 -1
- package/dist/cjs/utility/error-string.utility.d.ts +8 -1
- package/dist/cjs/utility/error-string.utility.js +6 -0
- package/dist/cjs/utility/error-string.utility.js.map +1 -1
- package/dist/cjs/utility/generate-entity-information.utility.d.ts +8 -1
- package/dist/cjs/utility/generate-entity-information.utility.js +7 -17
- package/dist/cjs/utility/generate-entity-information.utility.js.map +1 -1
- package/dist/cjs/utility/get-entity-columns.utility.d.ts +7 -1
- package/dist/cjs/utility/get-entity-columns.utility.js +6 -0
- package/dist/cjs/utility/get-entity-columns.utility.js.map +1 -1
- package/dist/cjs/utility/index.d.ts +10 -10
- package/dist/cjs/utility/is-error-of-type.utility.d.ts +7 -1
- package/dist/cjs/utility/is-error-of-type.utility.js +7 -16
- package/dist/cjs/utility/is-error-of-type.utility.js.map +1 -1
- package/dist/cjs/utility/logger.utility.d.ts +4 -0
- package/dist/cjs/utility/logger.utility.js +4 -0
- package/dist/cjs/utility/logger.utility.js.map +1 -1
- package/dist/cjs/validator/all-or-none-of-listed-properties.validator.d.ts +1 -1
- package/dist/cjs/validator/all-or-none-of-listed-properties.validator.js +3 -3
- package/dist/cjs/validator/all-or-none-of-listed-properties.validator.js.map +1 -1
- package/dist/cjs/validator/has-at-least-one-and-only-one-of-listed-properties.validator.d.ts +1 -1
- package/dist/cjs/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js +3 -3
- package/dist/cjs/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js.map +1 -1
- package/dist/cjs/validator/has-at-least-one-of-listed-properties.validator.d.ts +1 -1
- package/dist/cjs/validator/has-at-least-one-of-listed-properties.validator.js +3 -3
- package/dist/cjs/validator/has-at-least-one-of-listed-properties.validator.js.map +1 -1
- package/dist/cjs/validator/has-at-least-one-property.validator.d.ts +1 -1
- package/dist/cjs/validator/has-at-least-one-property.validator.js +3 -3
- package/dist/cjs/validator/has-at-least-one-property.validator.js.map +1 -1
- package/dist/cjs/validator/has-paired-custom-suffixes-fields.validator.d.ts +12 -1
- package/dist/cjs/validator/has-paired-custom-suffixes-fields.validator.js +25 -95
- package/dist/cjs/validator/has-paired-custom-suffixes-fields.validator.js.map +1 -1
- package/dist/cjs/validator/index.d.ts +8 -6
- package/dist/cjs/validator/is-regular-expression.validator.d.ts +6 -1
- package/dist/cjs/validator/is-regular-expression.validator.js +8 -3
- package/dist/cjs/validator/is-regular-expression.validator.js.map +1 -1
- package/dist/cjs/validator/must-match-one-of-schemas.validator.d.ts +36 -0
- package/dist/cjs/validator/must-match-one-of-schemas.validator.js +190 -0
- package/dist/cjs/validator/must-match-one-of-schemas.validator.js.map +1 -0
- package/dist/cjs/validator/only-one-of-listed-properties.validator.d.ts +1 -1
- package/dist/cjs/validator/only-one-of-listed-properties.validator.js +3 -3
- package/dist/cjs/validator/only-one-of-listed-properties.validator.js.map +1 -1
- package/dist/esm/class/api/index.d.ts +1 -1
- package/dist/esm/class/api/service-base.class.d.ts +2 -3
- package/dist/esm/class/api/service-base.class.js.map +1 -0
- package/dist/esm/class/index.d.ts +4 -3
- package/dist/esm/class/metadata-storage.class.d.ts +2 -2
- package/dist/esm/{src/class → class}/metadata-storage.class.js +1 -0
- package/dist/esm/class/metadata-storage.class.js.map +1 -0
- package/dist/esm/class/utility/dto/property/factory/boolean.class.d.ts +4 -3
- package/dist/esm/class/utility/dto/property/factory/boolean.class.js.map +1 -0
- package/dist/esm/class/utility/dto/property/factory/date.class.d.ts +4 -3
- package/dist/esm/class/utility/dto/property/factory/date.class.js.map +1 -0
- package/dist/esm/class/utility/dto/property/factory/enum.class.d.ts +4 -3
- package/dist/esm/class/utility/dto/property/factory/enum.class.js.map +1 -0
- package/dist/esm/class/utility/dto/property/factory/index.d.ts +8 -6
- package/dist/esm/class/utility/dto/property/factory/number.class.d.ts +5 -4
- package/dist/esm/{src/class → class}/utility/dto/property/factory/number.class.js +1 -3
- package/dist/esm/class/utility/dto/property/factory/number.class.js.map +1 -0
- package/dist/esm/class/utility/dto/property/factory/object.class.d.ts +6 -4
- package/dist/esm/{src/class → class}/utility/dto/property/factory/object.class.js +2 -1
- package/dist/esm/class/utility/dto/property/factory/object.class.js.map +1 -0
- package/dist/esm/class/utility/dto/property/factory/relation.class.d.ts +5 -4
- package/dist/esm/{src/class → class}/utility/dto/property/factory/relation.class.js +0 -3
- package/dist/esm/class/utility/dto/property/factory/relation.class.js.map +1 -0
- package/dist/esm/class/utility/dto/property/factory/string.class.d.ts +4 -3
- package/dist/esm/class/utility/dto/property/factory/string.class.js.map +1 -0
- package/dist/esm/class/utility/dto/property/factory/uuid.class.d.ts +4 -3
- package/dist/esm/class/utility/dto/property/factory/uuid.class.js.map +1 -0
- package/dist/esm/class/utility/dto/strategy/body.class.d.ts +3 -3
- package/dist/esm/{src/class → class}/utility/dto/strategy/body.class.js +1 -4
- package/dist/esm/class/utility/dto/strategy/body.class.js.map +1 -0
- package/dist/esm/class/utility/dto/strategy/index.d.ts +4 -4
- package/dist/esm/class/utility/dto/strategy/query.class.d.ts +3 -3
- package/dist/esm/{src/class → class}/utility/dto/strategy/query.class.js +0 -3
- package/dist/esm/class/utility/dto/strategy/query.class.js.map +1 -0
- package/dist/esm/class/utility/dto/strategy/request.class.d.ts +3 -3
- package/dist/esm/{src/class → class}/utility/dto/strategy/request.class.js +0 -3
- package/dist/esm/class/utility/dto/strategy/request.class.js.map +1 -0
- package/dist/esm/class/utility/dto/strategy/response.class.d.ts +3 -3
- package/dist/esm/{src/class → class}/utility/dto/strategy/response.class.js +0 -3
- package/dist/esm/class/utility/dto/strategy/response.class.js.map +1 -0
- package/dist/esm/constant/date.constant.js.map +1 -0
- package/dist/esm/constant/decorator/api/controller.constant.js.map +1 -0
- package/dist/esm/constant/decorator/api/function.constant.d.ts +1 -1
- package/dist/esm/constant/decorator/api/function.constant.js +9 -0
- package/dist/esm/constant/decorator/api/function.constant.js.map +1 -0
- package/dist/esm/constant/decorator/api/index.d.ts +3 -3
- package/dist/esm/constant/decorator/api/property-describe.constant.js.map +1 -0
- package/dist/esm/constant/dto/exception.constant.js.map +1 -0
- package/dist/esm/constant/dto/index.d.ts +3 -3
- package/dist/esm/constant/dto/list.constant.d.ts +1 -2
- package/dist/esm/{src/constant → constant}/dto/list.constant.js +1 -1
- package/dist/esm/constant/dto/list.constant.js.map +1 -0
- package/dist/esm/constant/dto/transformer-value.constant.js.map +1 -0
- package/dist/esm/constant/factory/dto/get-list-query.constant.d.ts +1 -0
- package/dist/esm/{src/constant → constant}/factory/dto/get-list-query.constant.js +2 -0
- package/dist/esm/constant/factory/dto/get-list-query.constant.js.map +1 -0
- package/dist/esm/constant/factory/dto/index.d.ts +1 -1
- package/dist/esm/constant/index.d.ts +8 -6
- package/dist/esm/constant/interface/api/filter.constant.js.map +1 -0
- package/dist/esm/constant/interface/api/index.d.ts +2 -2
- package/dist/esm/constant/interface/api/property/index.d.ts +2 -2
- package/dist/esm/constant/interface/api/property/string.constant.js.map +1 -0
- package/dist/esm/constant/interface/api/property/wallet.constant.js.map +1 -0
- package/dist/esm/constant/number.constant.js.map +1 -0
- package/dist/esm/constant/utility/dto/constant.d.ts +3 -2
- package/dist/esm/{src/constant → constant}/utility/dto/constant.js +6 -10
- package/dist/esm/constant/utility/dto/constant.js.map +1 -0
- package/dist/esm/constant/utility/dto/generate.constant.js.map +1 -0
- package/dist/esm/constant/utility/dto/index.d.ts +2 -0
- package/dist/esm/constant/validator/has-paired-custom-suffixes-fields.constant.d.ts +5 -0
- package/dist/esm/constant/validator/has-paired-custom-suffixes-fields.constant.js +87 -0
- package/dist/esm/constant/validator/has-paired-custom-suffixes-fields.constant.js.map +1 -0
- package/dist/esm/constant/validator/index.d.ts +1 -0
- package/dist/esm/decorator/api/controller.decorator.d.ts +3 -2
- package/dist/esm/decorator/api/controller.decorator.js.map +1 -0
- package/dist/esm/decorator/api/function/create.decorator.d.ts +7 -1
- package/dist/esm/{src/decorator → decorator}/api/function/create.decorator.js +12 -16
- package/dist/esm/decorator/api/function/create.decorator.js.map +1 -0
- package/dist/esm/decorator/api/function/decorator.d.ts +10 -3
- package/dist/esm/{src/decorator → decorator}/api/function/decorator.js +7 -3
- package/dist/esm/decorator/api/function/decorator.js.map +1 -0
- package/dist/esm/decorator/api/function/delete.decorator.d.ts +7 -1
- package/dist/esm/{src/decorator → decorator}/api/function/delete.decorator.js +12 -16
- package/dist/esm/decorator/api/function/delete.decorator.js.map +1 -0
- package/dist/esm/decorator/api/function/get-list.decorator.d.ts +8 -2
- package/dist/esm/{src/decorator → decorator}/api/function/get-list.decorator.js +12 -16
- package/dist/esm/decorator/api/function/get-list.decorator.js.map +1 -0
- package/dist/esm/decorator/api/function/get-many.decorator.d.ts +7 -1
- package/dist/esm/{src/decorator → decorator}/api/function/get-many.decorator.js +13 -16
- package/dist/esm/decorator/api/function/get-many.decorator.js.map +1 -0
- package/dist/esm/decorator/api/function/get.decorator.d.ts +7 -1
- package/dist/esm/{src/decorator → decorator}/api/function/get.decorator.js +13 -16
- package/dist/esm/decorator/api/function/get.decorator.js.map +1 -0
- package/dist/esm/decorator/api/function/index.d.ts +7 -7
- package/dist/esm/decorator/api/function/update.decorator.d.ts +7 -1
- package/dist/esm/{src/decorator → decorator}/api/function/update.decorator.js +12 -16
- package/dist/esm/decorator/api/function/update.decorator.js.map +1 -0
- package/dist/esm/decorator/api/index.d.ts +5 -5
- package/dist/esm/decorator/api/method.decorator.d.ts +8 -1
- package/dist/esm/{src/decorator → decorator}/api/method.decorator.js +9 -6
- package/dist/esm/decorator/api/method.decorator.js.map +1 -0
- package/dist/esm/decorator/api/property/boolean.decorator.d.ts +52 -1
- package/dist/esm/{src/decorator → decorator}/api/property/boolean.decorator.js +99 -7
- package/dist/esm/decorator/api/property/boolean.decorator.js.map +1 -0
- package/dist/esm/decorator/api/property/copy.decorator.d.ts +16 -0
- package/dist/esm/decorator/api/property/copy.decorator.js +47 -0
- package/dist/esm/decorator/api/property/copy.decorator.js.map +1 -0
- package/dist/esm/decorator/api/property/date.decorator.d.ts +56 -1
- package/dist/esm/{src/decorator → decorator}/api/property/date.decorator.js +132 -7
- package/dist/esm/decorator/api/property/date.decorator.js.map +1 -0
- package/dist/esm/decorator/api/property/describe.decorator.d.ts +82 -1
- package/dist/esm/decorator/api/property/describe.decorator.js +94 -0
- package/dist/esm/decorator/api/property/describe.decorator.js.map +1 -0
- package/dist/esm/decorator/api/property/enum.decorator.d.ts +75 -1
- package/dist/esm/{src/decorator → decorator}/api/property/enum.decorator.js +112 -0
- package/dist/esm/decorator/api/property/enum.decorator.js.map +1 -0
- package/dist/esm/decorator/api/property/index.d.ts +9 -7
- package/dist/esm/decorator/api/property/number.decorator.d.ts +67 -1
- package/dist/esm/{src/decorator → decorator}/api/property/number.decorator.js +152 -12
- package/dist/esm/decorator/api/property/number.decorator.js.map +1 -0
- package/dist/esm/decorator/api/property/object.decorator.d.ts +27 -1
- package/dist/esm/decorator/api/property/object.decorator.js +246 -0
- package/dist/esm/decorator/api/property/object.decorator.js.map +1 -0
- package/dist/esm/decorator/api/property/string.decorator.d.ts +68 -1
- package/dist/esm/{src/decorator → decorator}/api/property/string.decorator.js +132 -15
- package/dist/esm/decorator/api/property/string.decorator.js.map +1 -0
- package/dist/esm/decorator/api/property/uuid.decorator.d.ts +42 -1
- package/dist/esm/{src/decorator → decorator}/api/property/uuid.decorator.js +92 -7
- package/dist/esm/decorator/api/property/uuid.decorator.js.map +1 -0
- package/dist/esm/decorator/api/service.decorator.d.ts +8 -2
- package/dist/esm/{src/decorator → decorator}/api/service.decorator.js +10 -6
- package/dist/esm/decorator/api/service.decorator.js.map +1 -0
- package/dist/esm/enum/decorator/api/action.enum.js.map +1 -0
- package/dist/esm/enum/decorator/api/authentication-type.enum.js.map +1 -0
- package/dist/esm/enum/decorator/api/controller/index.d.ts +2 -2
- package/dist/esm/enum/decorator/api/controller/load-relations-strategy.enum.js.map +1 -0
- package/dist/esm/enum/decorator/api/controller/request-transformer-type.enum.js.map +1 -0
- package/dist/esm/enum/decorator/api/dto-type.enum.js.map +1 -0
- package/dist/esm/enum/decorator/api/function/index.d.ts +1 -1
- package/dist/esm/enum/decorator/api/function/type.enum.js.map +1 -0
- package/dist/esm/enum/decorator/api/index.d.ts +7 -7
- package/dist/esm/enum/decorator/api/property/data-type.enum.js.map +1 -0
- package/dist/esm/enum/decorator/api/property/date/identifier.enum.js.map +1 -0
- package/dist/esm/enum/decorator/api/property/date/index.d.ts +2 -2
- package/dist/esm/enum/decorator/api/property/date/type.enum.js.map +1 -0
- package/dist/esm/enum/decorator/api/property/desribe-type.enum.js.map +1 -0
- package/dist/esm/enum/decorator/api/property/index.d.ts +5 -5
- package/dist/esm/enum/decorator/api/property/number-type.enum.js.map +1 -0
- package/dist/esm/enum/decorator/api/property/string-type.enum.js.map +1 -0
- package/dist/esm/enum/decorator/api/route-type.enum.js.map +1 -0
- package/dist/esm/enum/exception.enum.js.map +1 -0
- package/dist/esm/enum/filter-operation.enum.js.map +1 -0
- package/dist/esm/enum/filter-order-direction.enum.js.map +1 -0
- package/dist/esm/enum/index.d.ts +6 -4
- package/dist/esm/enum/utility/error-string-action.enum.js.map +1 -0
- package/dist/esm/enum/utility/index.d.ts +1 -1
- package/dist/esm/enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.d.ts +5 -0
- package/dist/esm/enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.js +9 -0
- package/dist/esm/enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.js.map +1 -0
- package/dist/esm/enum/validator/index.d.ts +2 -0
- package/dist/esm/enum/validator/must-match-one-of-schemas-error-type.enum.d.ts +6 -0
- package/dist/esm/enum/validator/must-match-one-of-schemas-error-type.enum.js +10 -0
- package/dist/esm/enum/validator/must-match-one-of-schemas-error-type.enum.js.map +1 -0
- package/dist/esm/factory/api/controller.factory.d.ts +4 -3
- package/dist/esm/{src/factory → factory}/api/controller.factory.js +12 -16
- package/dist/esm/factory/api/controller.factory.js.map +1 -0
- package/dist/esm/factory/api/index.d.ts +1 -1
- package/dist/esm/index.d.ts +10 -10
- package/dist/esm/{src/index.js → index.js} +31 -0
- package/dist/esm/{src/index.js.map → index.js.map} +1 -1
- package/dist/esm/{src/interceptor → interceptor}/correlation-id-response-body.interceptor.js +1 -1
- package/dist/esm/interceptor/correlation-id-response-body.interceptor.js.map +1 -0
- package/dist/esm/interceptor/index.d.ts +1 -1
- package/dist/esm/interface/api-authentication-request.interface.d.ts +1 -1
- package/dist/esm/interface/api-request-validator.interface.d.ts +3 -2
- package/dist/esm/interface/class/dto/index.d.ts +1 -1
- package/dist/esm/interface/class/dto/strategy.interface.d.ts +2 -2
- package/dist/esm/interface/class/index.d.ts +2 -2
- package/dist/esm/interface/decorator/api/controller/base.interface.d.ts +1 -1
- package/dist/esm/interface/decorator/api/controller/index.d.ts +3 -3
- package/dist/esm/interface/decorator/api/controller/properties/route/authentication.interface.d.ts +1 -1
- package/dist/esm/interface/decorator/api/controller/properties/route/auto-dto-config.interface.d.ts +1 -1
- package/dist/esm/interface/decorator/api/controller/properties/route/base-request.interface.d.ts +3 -3
- package/dist/esm/interface/decorator/api/controller/properties/route/base-response.interface.d.ts +2 -2
- package/dist/esm/interface/decorator/api/controller/properties/route/base.interface.d.ts +2 -4
- package/dist/esm/interface/decorator/api/controller/properties/route/index.d.ts +7 -7
- package/dist/esm/interface/decorator/api/controller/properties/route/with-auto-dto.interface.d.ts +2 -3
- package/dist/esm/interface/decorator/api/controller/properties/route/with-dto.interface.d.ts +2 -2
- package/dist/esm/interface/decorator/api/controller/properties.interface.d.ts +3 -3
- package/dist/esm/interface/decorator/api/function/create-executor-properties.interface.d.ts +2 -2
- package/dist/esm/interface/decorator/api/function/delete-executor-properties.interface.d.ts +2 -2
- package/dist/esm/interface/decorator/api/function/get-executor-properties.interface.d.ts +2 -2
- package/dist/esm/interface/decorator/api/function/get-list-executor-properties.interface.d.ts +2 -2
- package/dist/esm/interface/decorator/api/function/get-many-executor-properties.interface.d.ts +2 -2
- package/dist/esm/interface/decorator/api/function/index.d.ts +7 -7
- package/dist/esm/interface/decorator/api/function/properties.interface.d.ts +1 -1
- package/dist/esm/interface/decorator/api/function/update-executor-properties.interface.d.ts +2 -2
- package/dist/esm/interface/decorator/api/index.d.ts +5 -5
- package/dist/esm/interface/decorator/api/method/index.d.ts +2 -2
- package/dist/esm/interface/decorator/api/method/properties.interface.d.ts +2 -4
- package/dist/esm/interface/dto-generate-factory.interface.d.ts +5 -4
- package/dist/esm/interface/entity/index.d.ts +2 -2
- package/dist/esm/interface/entity/interface.d.ts +2 -2
- package/dist/esm/interface/index.d.ts +10 -8
- package/dist/esm/interface/utility/api/controller/index.d.ts +1 -1
- package/dist/esm/interface/utility/error-string-properties.interface.d.ts +1 -1
- package/dist/esm/interface/utility/get-entity-columns-properties.interface.d.ts +1 -1
- package/dist/esm/interface/utility/index.d.ts +3 -2
- package/dist/esm/interface/validator/index.d.ts +1 -0
- package/dist/esm/interface/validator/must-match-one-of-schemas-discriminator-config.interface.d.ts +6 -0
- package/dist/esm/type/api-request-transformer.type.d.ts +3 -3
- package/dist/esm/type/class/controller/index.d.ts +1 -1
- package/dist/esm/type/class/controller/method.type.d.ts +2 -2
- package/dist/esm/type/class/index.d.ts +3 -3
- package/dist/esm/type/class/metadata.type.d.ts +1 -1
- package/dist/esm/type/decorator/api/controller/constructor.type.d.ts +1 -1
- package/dist/esm/type/decorator/api/controller/get-list-query.type.d.ts +2 -2
- package/dist/esm/type/decorator/api/controller/index.d.ts +5 -5
- package/dist/esm/type/decorator/api/controller/properties/route/base-request-relations.type.d.ts +1 -1
- package/dist/esm/type/decorator/api/controller/properties/route/base-request-transformers.type.d.ts +2 -2
- package/dist/esm/type/decorator/api/controller/properties/route/base-response-transformers.type.d.ts +2 -2
- package/dist/esm/type/decorator/api/controller/properties/route/index.d.ts +3 -3
- package/dist/esm/type/decorator/api/controller/properties-route.type.d.ts +2 -2
- package/dist/esm/type/decorator/api/controller/transformer-config.type.d.ts +2 -2
- package/dist/esm/type/decorator/api/filter/extracted-allowed-types.type.d.ts +1 -1
- package/dist/esm/type/decorator/api/filter/index.d.ts +4 -4
- package/dist/esm/type/decorator/api/filter/order-by.type.d.ts +1 -1
- package/dist/esm/type/decorator/api/function/index.d.ts +9 -9
- package/dist/esm/type/decorator/api/function/properties.type.d.ts +1 -1
- package/dist/esm/type/decorator/api/property/base/array/index.d.ts +2 -2
- package/dist/esm/type/decorator/api/property/base/index.d.ts +4 -4
- package/dist/esm/type/decorator/api/property/base/properties.type.d.ts +2 -4
- package/dist/esm/type/decorator/api/property/date-properties.type.d.ts +2 -2
- package/dist/esm/type/decorator/api/property/describe/array/index.d.ts +2 -2
- package/dist/esm/type/decorator/api/property/describe/base-properties.type.d.ts +1 -1
- package/dist/esm/type/decorator/api/property/describe/boolean-properties.type.d.ts +3 -3
- package/dist/esm/type/decorator/api/property/describe/date-properties.type.d.ts +3 -3
- package/dist/esm/type/decorator/api/property/describe/dto/body-properties.type.d.ts +2 -2
- package/dist/esm/type/decorator/api/property/describe/dto/index.d.ts +6 -5
- package/dist/esm/type/decorator/api/property/describe/dto/properties.type.d.ts +1 -1
- package/dist/esm/type/decorator/api/property/describe/dto/query/index.d.ts +2 -2
- package/dist/esm/type/decorator/api/property/describe/dto/query/properties.type.d.ts +2 -3
- package/dist/esm/type/decorator/api/property/describe/dto/request-properties.type.d.ts +2 -2
- package/dist/esm/type/decorator/api/property/describe/dto/response-properties.type.d.ts +2 -2
- package/dist/esm/type/decorator/api/property/describe/enum-properties.type.d.ts +3 -3
- package/dist/esm/type/decorator/api/property/describe/index.d.ts +14 -13
- package/dist/esm/type/decorator/api/property/describe/number-properties.type.d.ts +4 -4
- package/dist/esm/type/decorator/api/property/describe/object/dynamic-with-discriminator-properties.type.d.ts +15 -0
- package/dist/esm/type/decorator/api/property/describe/object/index.d.ts +4 -0
- package/dist/esm/type/decorator/api/property/describe/object/properties.type.d.ts +4 -0
- package/dist/esm/type/decorator/api/property/describe/object/with-discriminator-properties.type.d.ts +14 -0
- package/dist/esm/type/decorator/api/property/describe/{object-properties.type.d.ts → object/without-discriminator-properties.type.d.ts} +4 -4
- package/dist/esm/type/decorator/api/property/describe/properties/base-dto-properties.type.d.ts +1 -1
- package/dist/esm/type/decorator/api/property/describe/properties/base-properties.type.d.ts +2 -2
- package/dist/esm/type/decorator/api/property/describe/properties/index.d.ts +2 -2
- package/dist/esm/type/decorator/api/property/describe/properties.type.d.ts +8 -8
- package/dist/esm/type/decorator/api/property/describe/relation-properties.type.d.ts +2 -2
- package/dist/esm/type/decorator/api/property/describe/string-properties.type.d.ts +4 -4
- package/dist/esm/type/decorator/api/property/describe/uuid-properties.type.d.ts +3 -3
- package/dist/esm/type/decorator/api/property/enum-properties.type.d.ts +1 -1
- package/dist/esm/type/decorator/api/property/index.d.ts +8 -6
- package/dist/esm/type/decorator/api/property/number-properties.type.d.ts +3 -3
- package/dist/esm/type/decorator/api/property/object/dynamic-with-discriminator-properties.type.d.ts +16 -0
- package/dist/esm/type/decorator/api/property/object/index.d.ts +4 -0
- package/dist/esm/type/decorator/api/property/object/properties.type.d.ts +4 -0
- package/dist/esm/type/decorator/api/property/object/with-discriminator-properties.type.d.ts +15 -0
- package/dist/esm/type/decorator/api/property/{object-properties.type.d.ts → object/without-discriminator-properties.type.d.ts} +4 -2
- package/dist/esm/type/decorator/api/property/string-properties.type.d.ts +2 -2
- package/dist/esm/type/decorator/api/property/uuid-properties.type.d.ts +1 -1
- package/dist/esm/type/decorator/api/service/index.d.ts +2 -2
- package/dist/esm/type/decorator/api/service/keys.type.d.ts +1 -1
- package/dist/esm/type/factory/api/controller/index.d.ts +4 -4
- package/dist/esm/type/factory/api/controller/method-map.type.d.ts +4 -3
- package/dist/esm/type/factory/api/controller/method-name-map.type.d.ts +2 -2
- package/dist/esm/type/factory/api/controller/method-name.type.d.ts +3 -3
- package/dist/esm/type/factory/api/controller/target-methods.type.d.ts +4 -4
- package/dist/esm/type/index.d.ts +10 -5
- package/dist/esm/type/utility/api/controller/transform-data/data.type.d.ts +1 -1
- package/dist/esm/type/utility/api/controller/transform-data/index.d.ts +3 -3
- package/dist/esm/type/utility/api/controller/transform-data/is-validation-properties.type.d.ts +2 -2
- package/dist/esm/type/utility/api/controller/transform-data/object-to-transform.type.d.ts +2 -2
- package/dist/esm/type/utility/date-range-keys.type.d.ts +1 -1
- package/dist/esm/type/utility/dto/generate-allowed-combination.type.d.ts +1 -1
- package/dist/esm/type/utility/dto/generate-is-allowed-combination.type.d.ts +2 -2
- package/dist/esm/type/utility/dto/index.d.ts +2 -2
- package/dist/esm/type/utility/filter-keys.type.d.ts +1 -1
- package/dist/esm/type/utility/index.d.ts +7 -7
- package/dist/esm/type/validator/has-paired-custom-suffixes-fields/index.d.ts +2 -0
- package/dist/esm/type/validator/has-paired-custom-suffixes-fields/operation-config.type.d.ts +7 -0
- package/dist/esm/type/validator/has-paired-custom-suffixes-fields/validation-context.type.d.ts +5 -0
- package/dist/esm/utility/api/controller/apply-decorators.utility.d.ts +18 -3
- package/dist/esm/{src/utility → utility}/api/controller/apply-decorators.utility.js +15 -4
- package/dist/esm/utility/api/controller/apply-decorators.utility.js.map +1 -0
- package/dist/esm/utility/api/controller/apply-metadata.utility.d.ts +17 -3
- package/dist/esm/{src/utility → utility}/api/controller/apply-metadata.utility.js +22 -13
- package/dist/esm/utility/api/controller/apply-metadata.utility.js.map +1 -0
- package/dist/esm/utility/api/controller/get-list/index.d.ts +2 -2
- package/dist/esm/utility/api/controller/get-list/transform-filter.utility.d.ts +10 -1
- package/dist/esm/{src/utility → utility}/api/controller/get-list/transform-filter.utility.js +9 -3
- package/dist/esm/utility/api/controller/get-list/transform-filter.utility.js.map +1 -0
- package/dist/esm/utility/api/controller/get-list/transform-operation.utility.d.ts +8 -1
- package/dist/esm/{src/utility → utility}/api/controller/get-list/transform-operation.utility.js +8 -1
- package/dist/esm/utility/api/controller/get-list/transform-operation.utility.js.map +1 -0
- package/dist/esm/utility/api/controller/get-method-name.utility.d.ts +7 -1
- package/dist/esm/{src/utility → utility}/api/controller/get-method-name.utility.js +6 -0
- package/dist/esm/utility/api/controller/get-method-name.utility.js.map +1 -0
- package/dist/esm/utility/api/controller/get-primary-column.utility.d.ts +10 -1
- package/dist/esm/utility/api/controller/get-primary-column.utility.js +21 -0
- package/dist/esm/utility/api/controller/get-primary-column.utility.js.map +1 -0
- package/dist/esm/utility/api/controller/handle-request-relations.utility.d.ts +17 -2
- package/dist/esm/{src/utility → utility}/api/controller/handle-request-relations.utility.js +15 -5
- package/dist/esm/utility/api/controller/handle-request-relations.utility.js.map +1 -0
- package/dist/esm/utility/api/controller/index.d.ts +10 -9
- package/dist/esm/utility/api/controller/transform-data.utility.d.ts +15 -3
- package/dist/esm/{src/utility → utility}/api/controller/transform-data.utility.js +52 -3
- package/dist/esm/utility/api/controller/transform-data.utility.js.map +1 -0
- package/dist/esm/utility/api/controller/validate-request.utility.d.ts +12 -2
- package/dist/esm/{src/utility → utility}/api/controller/validate-request.utility.js +9 -0
- package/dist/esm/utility/api/controller/validate-request.utility.js.map +1 -0
- package/dist/esm/utility/api/controller/write-dto-swagger.utility.d.ts +17 -3
- package/dist/esm/{src/utility → utility}/api/controller/write-dto-swagger.utility.js +21 -12
- package/dist/esm/utility/api/controller/write-dto-swagger.utility.js.map +1 -0
- package/dist/esm/utility/api/controller/write-method.utility.d.ts +16 -2
- package/dist/esm/utility/api/controller/write-method.utility.js +31 -0
- package/dist/esm/utility/api/controller/write-method.utility.js.map +1 -0
- package/dist/esm/utility/api/filter-order-by-from-entity.utility.d.ts +16 -3
- package/dist/esm/{src/utility → utility}/api/filter-order-by-from-entity.utility.js +14 -1
- package/dist/esm/utility/api/filter-order-by-from-entity.utility.js.map +1 -0
- package/dist/esm/utility/api/index.d.ts +2 -2
- package/dist/esm/utility/camel-case-string.utility.d.ts +5 -0
- package/dist/esm/{src/utility → utility}/camel-case-string.utility.js +5 -0
- package/dist/esm/utility/camel-case-string.utility.js.map +1 -0
- package/dist/esm/utility/capitalize-string.utility.d.ts +5 -0
- package/dist/esm/{src/utility → utility}/capitalize-string.utility.js +5 -0
- package/dist/esm/utility/capitalize-string.utility.js.map +1 -0
- package/dist/esm/utility/dto/analize.utility.d.ts +7 -1
- package/dist/esm/utility/dto/analize.utility.js +15 -0
- package/dist/esm/utility/dto/analize.utility.js.map +1 -0
- package/dist/esm/utility/dto/build-decorator.utility.d.ts +19 -4
- package/dist/esm/{src/utility → utility}/dto/build-decorator.utility.js +17 -5
- package/dist/esm/utility/dto/build-decorator.utility.js.map +1 -0
- package/dist/esm/utility/dto/generate-decorator.utility.d.ts +19 -4
- package/dist/esm/utility/dto/generate-decorator.utility.js +27 -0
- package/dist/esm/utility/dto/generate-decorator.utility.js.map +1 -0
- package/dist/esm/utility/dto/generate-dynamic.utility.d.ts +21 -0
- package/dist/esm/utility/dto/generate-dynamic.utility.js +92 -0
- package/dist/esm/utility/dto/generate-dynamic.utility.js.map +1 -0
- package/dist/esm/utility/dto/generate-exception.utility.d.ts +7 -0
- package/dist/esm/{src/utility → utility}/dto/generate-exception.utility.js +9 -6
- package/dist/esm/utility/dto/generate-exception.utility.js.map +1 -0
- package/dist/esm/utility/dto/generate-filter-decorator.utility.d.ts +11 -2
- package/dist/esm/{src/utility → utility}/dto/generate-filter-decorator.utility.js +9 -3
- package/dist/esm/utility/dto/generate-filter-decorator.utility.js.map +1 -0
- package/dist/esm/utility/dto/generate-get-list-response.utility.d.ts +9 -0
- package/dist/esm/{src/utility → utility}/dto/generate-get-list-response.utility.js +12 -6
- package/dist/esm/utility/dto/generate-get-list-response.utility.js.map +1 -0
- package/dist/esm/utility/dto/generate-relation-response.utility.d.ts +12 -2
- package/dist/esm/{src/utility → utility}/dto/generate-relation-response.utility.js +11 -1
- package/dist/esm/utility/dto/generate-relation-response.utility.js.map +1 -0
- package/dist/esm/utility/dto/generate.utility.d.ts +17 -2
- package/dist/esm/{src/utility → utility}/dto/generate.utility.js +39 -11
- package/dist/esm/utility/dto/generate.utility.js.map +1 -0
- package/dist/esm/utility/dto/get-decorator-config.utility.d.ts +15 -2
- package/dist/esm/{src/utility → utility}/dto/get-decorator-config.utility.js +13 -0
- package/dist/esm/utility/dto/get-decorator-config.utility.js.map +1 -0
- package/dist/esm/utility/dto/get-get-list-query-base-class.utility.d.ts +13 -2
- package/dist/esm/{src/utility → utility}/dto/get-get-list-query-base-class.utility.js +17 -12
- package/dist/esm/utility/dto/get-get-list-query-base-class.utility.js.map +1 -0
- package/dist/esm/utility/dto/handle-date-property.utility.d.ts +9 -1
- package/dist/esm/{src/utility → utility}/dto/handle-date-property.utility.js +8 -3
- package/dist/esm/utility/dto/handle-date-property.utility.js.map +1 -0
- package/dist/esm/utility/dto/index.d.ts +16 -12
- package/dist/esm/utility/dto/is-property-exposed-for-guard.utility.d.ts +10 -2
- package/dist/esm/{src/utility → utility}/dto/is-property-exposed-for-guard.utility.js +8 -0
- package/dist/esm/utility/dto/is-property-exposed-for-guard.utility.js.map +1 -0
- package/dist/esm/utility/dto/is-property-should-be-marked.utility.d.ts +12 -2
- package/dist/esm/{src/utility → utility}/dto/is-property-should-be-marked.utility.js +10 -3
- package/dist/esm/utility/dto/is-property-should-be-marked.utility.js.map +1 -0
- package/dist/esm/utility/dto/is-should-be-generated.utility.d.ts +11 -1
- package/dist/esm/{src/utility → utility}/dto/is-should-be-generated.utility.js +10 -3
- package/dist/esm/utility/dto/is-should-be-generated.utility.js.map +1 -0
- package/dist/esm/utility/dto/validate-property-config.utility.d.ts +1 -1
- package/dist/esm/utility/dto/validate-property-config.utility.js.map +1 -0
- package/dist/esm/utility/error-exception.utility.d.ts +5 -0
- package/dist/esm/{src/utility → utility}/error-exception.utility.js +5 -0
- package/dist/esm/utility/error-exception.utility.js.map +1 -0
- package/dist/esm/utility/error-string.utility.d.ts +8 -1
- package/dist/esm/utility/error-string.utility.js +12 -0
- package/dist/esm/utility/error-string.utility.js.map +1 -0
- package/dist/esm/utility/generate-entity-information.utility.d.ts +8 -1
- package/dist/esm/{src/utility → utility}/generate-entity-information.utility.js +7 -17
- package/dist/esm/utility/generate-entity-information.utility.js.map +1 -0
- package/dist/esm/utility/get-entity-columns.utility.d.ts +7 -1
- package/dist/esm/{src/utility → utility}/get-entity-columns.utility.js +6 -0
- package/dist/esm/utility/get-entity-columns.utility.js.map +1 -0
- package/dist/esm/utility/index.d.ts +10 -10
- package/dist/esm/utility/is-error-of-type.utility.d.ts +7 -1
- package/dist/esm/{src/utility → utility}/is-error-of-type.utility.js +7 -16
- package/dist/esm/utility/is-error-of-type.utility.js.map +1 -0
- package/dist/esm/utility/logger.utility.d.ts +4 -0
- package/dist/esm/{src/utility → utility}/logger.utility.js +5 -1
- package/dist/esm/utility/logger.utility.js.map +1 -0
- package/dist/esm/validator/all-or-none-of-listed-properties.validator.d.ts +1 -1
- package/dist/esm/{src/validator → validator}/all-or-none-of-listed-properties.validator.js +5 -5
- package/dist/esm/validator/all-or-none-of-listed-properties.validator.js.map +1 -0
- package/dist/esm/validator/has-at-least-one-and-only-one-of-listed-properties.validator.d.ts +1 -1
- package/dist/esm/{src/validator → validator}/has-at-least-one-and-only-one-of-listed-properties.validator.js +5 -5
- package/dist/esm/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js.map +1 -0
- package/dist/esm/validator/has-at-least-one-of-listed-properties.validator.d.ts +1 -1
- package/dist/esm/{src/validator → validator}/has-at-least-one-of-listed-properties.validator.js +5 -5
- package/dist/esm/validator/has-at-least-one-of-listed-properties.validator.js.map +1 -0
- package/dist/esm/validator/has-at-least-one-property.validator.d.ts +1 -1
- package/dist/esm/{src/validator → validator}/has-at-least-one-property.validator.js +5 -5
- package/dist/esm/validator/has-at-least-one-property.validator.js.map +1 -0
- package/dist/esm/validator/has-paired-custom-suffixes-fields.validator.d.ts +12 -1
- package/dist/esm/{src/validator → validator}/has-paired-custom-suffixes-fields.validator.js +27 -97
- package/dist/esm/validator/has-paired-custom-suffixes-fields.validator.js.map +1 -0
- package/dist/esm/validator/index.d.ts +8 -6
- package/dist/esm/validator/is-regular-expression.validator.d.ts +6 -1
- package/dist/esm/validator/is-regular-expression.validator.js +30 -0
- package/dist/esm/validator/is-regular-expression.validator.js.map +1 -0
- package/dist/esm/validator/must-match-one-of-schemas.validator.d.ts +36 -0
- package/dist/esm/validator/must-match-one-of-schemas.validator.js +188 -0
- package/dist/esm/validator/must-match-one-of-schemas.validator.js.map +1 -0
- package/dist/esm/validator/only-one-of-listed-properties.validator.d.ts +1 -1
- package/dist/esm/{src/validator → validator}/only-one-of-listed-properties.validator.js +5 -5
- package/dist/esm/validator/only-one-of-listed-properties.validator.js.map +1 -0
- package/package.json +4 -2
- package/dist/cjs/class/utility/dto/index.d.ts +0 -2
- package/dist/cjs/class/utility/dto/property/index.d.ts +0 -1
- package/dist/cjs/class/utility/index.d.ts +0 -1
- package/dist/cjs/constant/decorator/index.d.ts +0 -1
- package/dist/cjs/constant/factory/index.d.ts +0 -1
- package/dist/cjs/constant/interface/index.d.ts +0 -1
- package/dist/cjs/decorator/index.d.ts +0 -1
- package/dist/cjs/enum/decorator/index.d.ts +0 -1
- package/dist/cjs/factory/index.d.ts +0 -1
- package/dist/cjs/interface/decorator/api/controller/properties/index.d.ts +0 -1
- package/dist/cjs/interface/decorator/index.d.ts +0 -1
- package/dist/cjs/interface/utility/api/index.d.ts +0 -1
- package/dist/cjs/type/decorator/api/controller/properties/index.d.ts +0 -1
- package/dist/cjs/type/decorator/api/index.d.ts +0 -5
- package/dist/cjs/type/decorator/index.d.ts +0 -1
- package/dist/cjs/type/factory/api/index.d.ts +0 -1
- package/dist/cjs/type/factory/index.d.ts +0 -1
- package/dist/cjs/type/utility/api/controller/index.d.ts +0 -1
- package/dist/cjs/type/utility/api/index.d.ts +0 -1
- package/dist/esm/class/utility/dto/index.d.ts +0 -2
- package/dist/esm/class/utility/dto/property/index.d.ts +0 -1
- package/dist/esm/class/utility/index.d.ts +0 -1
- package/dist/esm/constant/decorator/index.d.ts +0 -1
- package/dist/esm/constant/factory/index.d.ts +0 -1
- package/dist/esm/constant/interface/index.d.ts +0 -1
- package/dist/esm/decorator/index.d.ts +0 -1
- package/dist/esm/enum/decorator/index.d.ts +0 -1
- package/dist/esm/factory/index.d.ts +0 -1
- package/dist/esm/interface/decorator/api/controller/properties/index.d.ts +0 -1
- package/dist/esm/interface/decorator/index.d.ts +0 -1
- package/dist/esm/interface/utility/api/index.d.ts +0 -1
- package/dist/esm/src/class/api/service-base.class.js.map +0 -1
- package/dist/esm/src/class/metadata-storage.class.js.map +0 -1
- package/dist/esm/src/class/utility/dto/property/factory/boolean.class.js.map +0 -1
- package/dist/esm/src/class/utility/dto/property/factory/date.class.js.map +0 -1
- package/dist/esm/src/class/utility/dto/property/factory/enum.class.js.map +0 -1
- package/dist/esm/src/class/utility/dto/property/factory/number.class.js.map +0 -1
- package/dist/esm/src/class/utility/dto/property/factory/object.class.js.map +0 -1
- package/dist/esm/src/class/utility/dto/property/factory/relation.class.js.map +0 -1
- package/dist/esm/src/class/utility/dto/property/factory/string.class.js.map +0 -1
- package/dist/esm/src/class/utility/dto/property/factory/uuid.class.js.map +0 -1
- package/dist/esm/src/class/utility/dto/strategy/body.class.js.map +0 -1
- package/dist/esm/src/class/utility/dto/strategy/query.class.js.map +0 -1
- package/dist/esm/src/class/utility/dto/strategy/request.class.js.map +0 -1
- package/dist/esm/src/class/utility/dto/strategy/response.class.js.map +0 -1
- package/dist/esm/src/constant/date.constant.js.map +0 -1
- package/dist/esm/src/constant/decorator/api/controller.constant.js.map +0 -1
- package/dist/esm/src/constant/decorator/api/function.constant.js +0 -24
- package/dist/esm/src/constant/decorator/api/function.constant.js.map +0 -1
- package/dist/esm/src/constant/decorator/api/property-describe.constant.js.map +0 -1
- package/dist/esm/src/constant/dto/exception.constant.js.map +0 -1
- package/dist/esm/src/constant/dto/list.constant.js.map +0 -1
- package/dist/esm/src/constant/dto/transformer-value.constant.js.map +0 -1
- package/dist/esm/src/constant/factory/dto/get-list-query.constant.js.map +0 -1
- package/dist/esm/src/constant/interface/api/filter.constant.js.map +0 -1
- package/dist/esm/src/constant/interface/api/property/string.constant.js.map +0 -1
- package/dist/esm/src/constant/interface/api/property/wallet.constant.js.map +0 -1
- package/dist/esm/src/constant/number.constant.js.map +0 -1
- package/dist/esm/src/constant/utility/dto/constant.js.map +0 -1
- package/dist/esm/src/constant/utility/dto/generate.constant.js.map +0 -1
- package/dist/esm/src/decorator/api/controller.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/function/create.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/function/decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/function/delete.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/function/get-list.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/function/get-many.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/function/get.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/function/update.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/method.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/property/boolean.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/property/date.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/property/describe.decorator.js +0 -29
- package/dist/esm/src/decorator/api/property/describe.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/property/enum.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/property/number.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/property/object.decorator.js +0 -104
- package/dist/esm/src/decorator/api/property/object.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/property/string.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/property/uuid.decorator.js.map +0 -1
- package/dist/esm/src/decorator/api/service.decorator.js.map +0 -1
- package/dist/esm/src/enum/decorator/api/action.enum.js.map +0 -1
- package/dist/esm/src/enum/decorator/api/authentication-type.enum.js.map +0 -1
- package/dist/esm/src/enum/decorator/api/controller/load-relations-strategy.enum.js.map +0 -1
- package/dist/esm/src/enum/decorator/api/controller/request-transformer-type.enum.js.map +0 -1
- package/dist/esm/src/enum/decorator/api/dto-type.enum.js.map +0 -1
- package/dist/esm/src/enum/decorator/api/function/type.enum.js.map +0 -1
- package/dist/esm/src/enum/decorator/api/property/data-type.enum.js.map +0 -1
- package/dist/esm/src/enum/decorator/api/property/date/identifier.enum.js.map +0 -1
- package/dist/esm/src/enum/decorator/api/property/date/type.enum.js.map +0 -1
- package/dist/esm/src/enum/decorator/api/property/desribe-type.enum.js.map +0 -1
- package/dist/esm/src/enum/decorator/api/property/number-type.enum.js.map +0 -1
- package/dist/esm/src/enum/decorator/api/property/string-type.enum.js.map +0 -1
- package/dist/esm/src/enum/decorator/api/route-type.enum.js.map +0 -1
- package/dist/esm/src/enum/exception.enum.js.map +0 -1
- package/dist/esm/src/enum/filter-operation.enum.js.map +0 -1
- package/dist/esm/src/enum/filter-order-direction.enum.js.map +0 -1
- package/dist/esm/src/enum/utility/error-string-action.enum.js.map +0 -1
- package/dist/esm/src/factory/api/controller.factory.js.map +0 -1
- package/dist/esm/src/interceptor/correlation-id-response-body.interceptor.js.map +0 -1
- package/dist/esm/src/utility/api/controller/apply-decorators.utility.js.map +0 -1
- package/dist/esm/src/utility/api/controller/apply-metadata.utility.js.map +0 -1
- package/dist/esm/src/utility/api/controller/get-list/transform-filter.utility.js.map +0 -1
- package/dist/esm/src/utility/api/controller/get-list/transform-operation.utility.js.map +0 -1
- package/dist/esm/src/utility/api/controller/get-method-name.utility.js.map +0 -1
- package/dist/esm/src/utility/api/controller/get-primary-column.utility.js +0 -13
- package/dist/esm/src/utility/api/controller/get-primary-column.utility.js.map +0 -1
- package/dist/esm/src/utility/api/controller/handle-request-relations.utility.js.map +0 -1
- package/dist/esm/src/utility/api/controller/transform-data.utility.js.map +0 -1
- package/dist/esm/src/utility/api/controller/validate-request.utility.js.map +0 -1
- package/dist/esm/src/utility/api/controller/write-dto-swagger.utility.js.map +0 -1
- package/dist/esm/src/utility/api/controller/write-method.utility.js +0 -18
- package/dist/esm/src/utility/api/controller/write-method.utility.js.map +0 -1
- package/dist/esm/src/utility/api/filter-order-by-from-entity.utility.js.map +0 -1
- package/dist/esm/src/utility/camel-case-string.utility.js.map +0 -1
- package/dist/esm/src/utility/capitalize-string.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/analize.utility.js +0 -25
- package/dist/esm/src/utility/dto/analize.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/build-decorator.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/generate-decorator.utility.js +0 -13
- package/dist/esm/src/utility/dto/generate-decorator.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/generate-exception.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/generate-filter-decorator.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/generate-get-list-response.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/generate-relation-response.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/generate.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/get-decorator-config.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/get-get-list-query-base-class.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/handle-date-property.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/is-property-exposed-for-guard.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/is-property-should-be-marked.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/is-should-be-generated.utility.js.map +0 -1
- package/dist/esm/src/utility/dto/validate-property-config.utility.js.map +0 -1
- package/dist/esm/src/utility/error-exception.utility.js.map +0 -1
- package/dist/esm/src/utility/error-string.utility.js +0 -6
- package/dist/esm/src/utility/error-string.utility.js.map +0 -1
- package/dist/esm/src/utility/generate-entity-information.utility.js.map +0 -1
- package/dist/esm/src/utility/get-entity-columns.utility.js.map +0 -1
- package/dist/esm/src/utility/is-error-of-type.utility.js.map +0 -1
- package/dist/esm/src/utility/logger.utility.js.map +0 -1
- package/dist/esm/src/validator/all-or-none-of-listed-properties.validator.js.map +0 -1
- package/dist/esm/src/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js.map +0 -1
- package/dist/esm/src/validator/has-at-least-one-of-listed-properties.validator.js.map +0 -1
- package/dist/esm/src/validator/has-at-least-one-property.validator.js.map +0 -1
- package/dist/esm/src/validator/has-paired-custom-suffixes-fields.validator.js.map +0 -1
- package/dist/esm/src/validator/is-regular-expression.validator.js +0 -25
- package/dist/esm/src/validator/is-regular-expression.validator.js.map +0 -1
- package/dist/esm/src/validator/only-one-of-listed-properties.validator.js.map +0 -1
- package/dist/esm/type/decorator/api/controller/properties/index.d.ts +0 -1
- package/dist/esm/type/decorator/api/index.d.ts +0 -5
- package/dist/esm/type/decorator/index.d.ts +0 -1
- package/dist/esm/type/factory/api/index.d.ts +0 -1
- package/dist/esm/type/factory/index.d.ts +0 -1
- package/dist/esm/type/utility/api/controller/index.d.ts +0 -1
- package/dist/esm/type/utility/api/index.d.ts +0 -1
- /package/dist/esm/{src/class → class}/api/service-base.class.js +0 -0
- /package/dist/esm/{src/class → class}/utility/dto/property/factory/boolean.class.js +0 -0
- /package/dist/esm/{src/class → class}/utility/dto/property/factory/date.class.js +0 -0
- /package/dist/esm/{src/class → class}/utility/dto/property/factory/enum.class.js +0 -0
- /package/dist/esm/{src/class → class}/utility/dto/property/factory/string.class.js +0 -0
- /package/dist/esm/{src/class → class}/utility/dto/property/factory/uuid.class.js +0 -0
- /package/dist/esm/{src/constant → constant}/date.constant.js +0 -0
- /package/dist/esm/{src/constant → constant}/decorator/api/controller.constant.js +0 -0
- /package/dist/esm/{src/constant → constant}/decorator/api/property-describe.constant.js +0 -0
- /package/dist/esm/{src/constant → constant}/dto/exception.constant.js +0 -0
- /package/dist/esm/{src/constant → constant}/dto/transformer-value.constant.js +0 -0
- /package/dist/esm/{src/constant → constant}/interface/api/filter.constant.js +0 -0
- /package/dist/esm/{src/constant → constant}/interface/api/property/string.constant.js +0 -0
- /package/dist/esm/{src/constant → constant}/interface/api/property/wallet.constant.js +0 -0
- /package/dist/esm/{src/constant → constant}/number.constant.js +0 -0
- /package/dist/esm/{src/constant → constant}/utility/dto/generate.constant.js +0 -0
- /package/dist/esm/{src/decorator → decorator}/api/controller.decorator.js +0 -0
- /package/dist/esm/{src/enum → enum}/decorator/api/action.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/decorator/api/authentication-type.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/decorator/api/controller/load-relations-strategy.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/decorator/api/controller/request-transformer-type.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/decorator/api/dto-type.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/decorator/api/function/type.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/decorator/api/property/data-type.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/decorator/api/property/date/identifier.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/decorator/api/property/date/type.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/decorator/api/property/desribe-type.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/decorator/api/property/number-type.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/decorator/api/property/string-type.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/decorator/api/route-type.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/exception.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/filter-operation.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/filter-order-direction.enum.js +0 -0
- /package/dist/esm/{src/enum → enum}/utility/error-string-action.enum.js +0 -0
- /package/dist/esm/{src/utility → utility}/dto/validate-property-config.utility.js +0 -0
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
import { applyDecorators } from '@nestjs/common';
|
|
2
|
-
import { ApiProperty, ApiResponseProperty } from '@nestjs/swagger';
|
|
3
|
-
import { Expose, Exclude, Type, Transform } from 'class-transformer';
|
|
4
|
-
import { isInt, IsOptional, IsArray, ArrayMinSize, ArrayMaxSize, ArrayNotEmpty, IsInt, IsNumber, IsDivisibleBy, Min, Max } from 'class-validator';
|
|
5
|
-
import random from 'lodash/random';
|
|
6
|
-
import '../../../constant/decorator/api/function.constant.js';
|
|
7
1
|
import { NUMBER_CONSTANT } from '../../../constant/number.constant.js';
|
|
8
2
|
import '../../../enum/decorator/api/action.enum.js';
|
|
9
3
|
import '../../../enum/decorator/api/authentication-type.enum.js';
|
|
@@ -18,10 +12,78 @@ import '../../../enum/decorator/api/property/desribe-type.enum.js';
|
|
|
18
12
|
import { EApiPropertyNumberType } from '../../../enum/decorator/api/property/number-type.enum.js';
|
|
19
13
|
import '../../../enum/decorator/api/property/string-type.enum.js';
|
|
20
14
|
import '../../../enum/decorator/api/route-type.enum.js';
|
|
21
|
-
import '
|
|
22
|
-
import '
|
|
23
|
-
import '
|
|
15
|
+
import { applyDecorators } from '@nestjs/common';
|
|
16
|
+
import { ApiProperty, ApiResponseProperty } from '@nestjs/swagger';
|
|
17
|
+
import { Expose, Exclude, Type, Transform } from 'class-transformer';
|
|
18
|
+
import { isInt, IsOptional, IsArray, ArrayMinSize, ArrayMaxSize, ArrayNotEmpty, IsInt, IsNumber, IsDivisibleBy, Min, Max } from 'class-validator';
|
|
19
|
+
import random from 'lodash/random';
|
|
24
20
|
|
|
21
|
+
/**
|
|
22
|
+
* Creates a decorator that applies NestJS Swagger and class-validator/class-transformer decorators
|
|
23
|
+
* for number properties in DTOs.
|
|
24
|
+
*
|
|
25
|
+
* This decorator handles number properties with support for:
|
|
26
|
+
* - Integer and double/float formats
|
|
27
|
+
* - Single numbers or arrays of numbers
|
|
28
|
+
* - Response/Request specific decorators
|
|
29
|
+
* - Min/max value constraints
|
|
30
|
+
* - Multiple-of validation
|
|
31
|
+
* - Automatic transformation from string to number
|
|
32
|
+
* - Range validation
|
|
33
|
+
*
|
|
34
|
+
* The decorator can automatically generate an example value within the specified range
|
|
35
|
+
* if one is not provided, and applies appropriate validation rules based on the configuration.
|
|
36
|
+
* @param {TApiPropertyNumberProperties} properties - Configuration options for the number property
|
|
37
|
+
* @returns {Function} A decorator function that can be applied to a class property
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* // Simple integer property
|
|
41
|
+
* class ProductDto {
|
|
42
|
+
* @ApiPropertyNumber({
|
|
43
|
+
* entity: { name: 'Product' },
|
|
44
|
+
* description: 'quantity',
|
|
45
|
+
* format: EApiPropertyNumberType.INTEGER,
|
|
46
|
+
* isRequired: true,
|
|
47
|
+
* minimum: 1,
|
|
48
|
+
* maximum: 100,
|
|
49
|
+
* exampleValue: 10
|
|
50
|
+
* })
|
|
51
|
+
* quantity: number;
|
|
52
|
+
* }
|
|
53
|
+
*
|
|
54
|
+
* // Float property with multiple-of validation
|
|
55
|
+
* class PriceDto {
|
|
56
|
+
* @ApiPropertyNumber({
|
|
57
|
+
* entity: { name: 'Price' },
|
|
58
|
+
* description: 'amount',
|
|
59
|
+
* format: EApiPropertyNumberType.DOUBLE,
|
|
60
|
+
* isRequired: true,
|
|
61
|
+
* minimum: 0.01,
|
|
62
|
+
* maximum: 999999.99,
|
|
63
|
+
* multipleOf: 0.01,
|
|
64
|
+
* exampleValue: 29.99
|
|
65
|
+
* })
|
|
66
|
+
* amount: number;
|
|
67
|
+
* }
|
|
68
|
+
*
|
|
69
|
+
* // Array of numbers
|
|
70
|
+
* class PointsDto {
|
|
71
|
+
* @ApiPropertyNumber({
|
|
72
|
+
* entity: { name: 'Coordinate' },
|
|
73
|
+
* description: 'values',
|
|
74
|
+
* format: EApiPropertyNumberType.INTEGER,
|
|
75
|
+
* isArray: true,
|
|
76
|
+
* minItems: 2,
|
|
77
|
+
* maxItems: 3,
|
|
78
|
+
* isUniqueItems: true,
|
|
79
|
+
* minimum: -180,
|
|
80
|
+
* maximum: 180,
|
|
81
|
+
* exampleValue: [45, 90, 135]
|
|
82
|
+
* })
|
|
83
|
+
* coordinates: number[];
|
|
84
|
+
* }
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
25
87
|
function ApiPropertyNumber(properties) {
|
|
26
88
|
if (properties.exampleValue === undefined) {
|
|
27
89
|
properties.exampleValue = random(properties.minimum, properties.maximum);
|
|
@@ -31,6 +93,14 @@ function ApiPropertyNumber(properties) {
|
|
|
31
93
|
const decorators = buildDecorators(properties, apiPropertyOptions);
|
|
32
94
|
return applyDecorators(...decorators);
|
|
33
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Builds the API property options object from the provided property configuration.
|
|
98
|
+
* Sets up number-specific properties including format, min/max values, example value,
|
|
99
|
+
* and multiple-of constraint.
|
|
100
|
+
* @param {TApiPropertyNumberProperties} properties - The property configuration
|
|
101
|
+
* @returns {ApiPropertyOptions} The Swagger API property options object
|
|
102
|
+
* @private
|
|
103
|
+
*/
|
|
34
104
|
function buildApiPropertyOptions(properties) {
|
|
35
105
|
const apiPropertyOptions = {
|
|
36
106
|
description: `${String(properties.entity.name)} ${properties.description ?? ""}`,
|
|
@@ -52,16 +122,32 @@ function buildApiPropertyOptions(properties) {
|
|
|
52
122
|
}
|
|
53
123
|
apiPropertyOptions.minimum = properties.minimum;
|
|
54
124
|
apiPropertyOptions.maximum = properties.maximum;
|
|
55
|
-
if ((properties.isResponse === false || properties.isResponse === undefined) && properties.multipleOf
|
|
125
|
+
if ((properties.isResponse === false || properties.isResponse === undefined) && properties.multipleOf != undefined) {
|
|
56
126
|
apiPropertyOptions.multipleOf = properties.multipleOf;
|
|
57
127
|
}
|
|
58
128
|
return apiPropertyOptions;
|
|
59
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Builds all the necessary decorators for the number property based on the configuration.
|
|
132
|
+
* Combines API property decorators, response decorators, request decorators, format decorators,
|
|
133
|
+
* transform decorators, and number validation decorators.
|
|
134
|
+
* @param {TApiPropertyNumberProperties} properties - The property configuration
|
|
135
|
+
* @param {ApiPropertyOptions} apiPropertyOptions - The Swagger API property options
|
|
136
|
+
* @returns {Array<PropertyDecorator>} An array of decorators to apply to the property
|
|
137
|
+
* @private
|
|
138
|
+
*/
|
|
60
139
|
function buildDecorators(properties, apiPropertyOptions) {
|
|
61
140
|
const decorators = [ApiProperty(apiPropertyOptions)];
|
|
62
141
|
decorators.push(...buildResponseDecorators(properties), ...buildRequestDecorators(properties), ...buildFormatDecorators(properties), ...buildTransformDecorators(properties), ...buildNumberValidationDecorators(properties));
|
|
63
142
|
return decorators;
|
|
64
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Builds decorators for number format validation based on the specified format type.
|
|
146
|
+
* Handles integer and double/float formats with appropriate validators.
|
|
147
|
+
* @param {TApiPropertyNumberProperties} properties - The property configuration
|
|
148
|
+
* @returns {Array<PropertyDecorator>} An array of format-specific validation decorators
|
|
149
|
+
* @private
|
|
150
|
+
*/
|
|
65
151
|
function buildFormatDecorators(properties) {
|
|
66
152
|
const decorators = [];
|
|
67
153
|
const isArray = properties.isArray ?? false;
|
|
@@ -85,15 +171,29 @@ function buildFormatDecorators(properties) {
|
|
|
85
171
|
}
|
|
86
172
|
return decorators;
|
|
87
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Builds decorators for number-specific validation including multiple-of constraint,
|
|
176
|
+
* minimum value, and maximum value validation.
|
|
177
|
+
* @param {TApiPropertyNumberProperties} properties - The property configuration
|
|
178
|
+
* @returns {Array<PropertyDecorator>} An array of number validation decorators
|
|
179
|
+
* @private
|
|
180
|
+
*/
|
|
88
181
|
function buildNumberValidationDecorators(properties) {
|
|
89
182
|
const decorators = [];
|
|
90
183
|
const isArray = properties.isArray ?? false;
|
|
91
|
-
if ((properties.isResponse === false || properties.isResponse === undefined) && properties.multipleOf
|
|
184
|
+
if ((properties.isResponse === false || properties.isResponse === undefined) && properties.multipleOf != undefined) {
|
|
92
185
|
// eslint-disable-next-line @elsikora/typescript/naming-convention
|
|
93
186
|
decorators.push(IsDivisibleBy(properties.multipleOf, { each: isArray }), Min(properties.minimum, { each: isArray }), Max(properties.maximum, { each: isArray }));
|
|
94
187
|
}
|
|
95
188
|
return decorators;
|
|
96
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Builds decorators for request validation including optional status,
|
|
192
|
+
* array validation, and size constraints for number properties.
|
|
193
|
+
* @param {TApiPropertyNumberProperties} properties - The property configuration
|
|
194
|
+
* @returns {Array<PropertyDecorator>} An array of request validation decorators
|
|
195
|
+
* @private
|
|
196
|
+
*/
|
|
97
197
|
function buildRequestDecorators(properties) {
|
|
98
198
|
const decorators = [];
|
|
99
199
|
if (properties.isResponse === false || properties.isResponse === undefined) {
|
|
@@ -109,6 +209,13 @@ function buildRequestDecorators(properties) {
|
|
|
109
209
|
}
|
|
110
210
|
return decorators;
|
|
111
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Builds decorators for response serialization including API response property,
|
|
214
|
+
* expose, and exclude decorators for number properties.
|
|
215
|
+
* @param {TApiPropertyNumberProperties} properties - The property configuration
|
|
216
|
+
* @returns {Array<PropertyDecorator>} An array of response serialization decorators
|
|
217
|
+
* @private
|
|
218
|
+
*/
|
|
112
219
|
function buildResponseDecorators(properties) {
|
|
113
220
|
const decorators = [];
|
|
114
221
|
if (properties.isResponse) {
|
|
@@ -122,6 +229,13 @@ function buildResponseDecorators(properties) {
|
|
|
122
229
|
}
|
|
123
230
|
return decorators;
|
|
124
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* Builds decorators for type transformation from string to number.
|
|
234
|
+
* Handles both single values and arrays with appropriate transformers.
|
|
235
|
+
* @param {TApiPropertyNumberProperties} properties - The property configuration
|
|
236
|
+
* @returns {Array<PropertyDecorator>} An array of type transformation decorators
|
|
237
|
+
* @private
|
|
238
|
+
*/
|
|
125
239
|
function buildTransformDecorators(properties) {
|
|
126
240
|
const decorators = [];
|
|
127
241
|
if (!properties.isResponse) {
|
|
@@ -134,6 +248,13 @@ function buildTransformDecorators(properties) {
|
|
|
134
248
|
}
|
|
135
249
|
return decorators;
|
|
136
250
|
}
|
|
251
|
+
/**
|
|
252
|
+
* Determines the appropriate Swagger format for the number property.
|
|
253
|
+
* Maps integer types to int32/int64 based on value range, and handles double format.
|
|
254
|
+
* @param {TApiPropertyNumberProperties} properties - The property configuration
|
|
255
|
+
* @returns {string} The Swagger format string
|
|
256
|
+
* @private
|
|
257
|
+
*/
|
|
137
258
|
function getFormat(properties) {
|
|
138
259
|
switch (properties.format) {
|
|
139
260
|
case EApiPropertyNumberType.DOUBLE: {
|
|
@@ -147,6 +268,13 @@ function getFormat(properties) {
|
|
|
147
268
|
}
|
|
148
269
|
}
|
|
149
270
|
}
|
|
271
|
+
/**
|
|
272
|
+
* Determines the appropriate Swagger data type for the number property.
|
|
273
|
+
* Maps formatter types to the corresponding API property data types.
|
|
274
|
+
* @param {TApiPropertyNumberProperties} properties - The property configuration
|
|
275
|
+
* @returns {EApiPropertyDataType.INTEGER | EApiPropertyDataType.NUMBER} The Swagger data type
|
|
276
|
+
* @private
|
|
277
|
+
*/
|
|
150
278
|
function getType(properties) {
|
|
151
279
|
switch (properties.format) {
|
|
152
280
|
case EApiPropertyNumberType.DOUBLE: {
|
|
@@ -157,12 +285,24 @@ function getType(properties) {
|
|
|
157
285
|
}
|
|
158
286
|
}
|
|
159
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* Validates the configuration options for the API property number.
|
|
290
|
+
* Performs extensive validation including:
|
|
291
|
+
* - Min/max values consistency
|
|
292
|
+
* - Multiple-of constraints and example value compatibility
|
|
293
|
+
* - Example values within min/max range
|
|
294
|
+
* - Array options consistency (min/max items, unique items)
|
|
295
|
+
* @param {TApiPropertyNumberProperties} properties - The property configuration to validate
|
|
296
|
+
* @returns {void}
|
|
297
|
+
* @throws {Error} If the configuration is invalid with detailed error messages
|
|
298
|
+
* @private
|
|
299
|
+
*/
|
|
160
300
|
function validateOptions(properties) {
|
|
161
301
|
const errors = [];
|
|
162
302
|
if (properties.minimum > properties.maximum) {
|
|
163
303
|
errors.push("'minimum' is greater than maximum");
|
|
164
304
|
}
|
|
165
|
-
if (properties.multipleOf
|
|
305
|
+
if (properties.multipleOf != undefined) {
|
|
166
306
|
if (Array.isArray(properties.exampleValue)) {
|
|
167
307
|
for (const example of properties.exampleValue) {
|
|
168
308
|
if (!isInt(example / properties.multipleOf)) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number.decorator.js","sources":["../../../../../../src/decorator/api/property/number.decorator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,28 @@
|
|
|
1
|
-
import type { TApiPropertyObjectProperties } from
|
|
1
|
+
import type { TApiPropertyObjectProperties } from '../../../type/decorator/api/property/index';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a decorator that applies NestJS Swagger and class-validator/class-transformer decorators
|
|
4
|
+
* for object properties in DTOs.
|
|
5
|
+
*
|
|
6
|
+
* This decorator handles complex object properties with support for:
|
|
7
|
+
* - Single type objects
|
|
8
|
+
* - Polymorphic objects (with discriminator)
|
|
9
|
+
* - Arrays of objects
|
|
10
|
+
* - Response/Request specific decorators
|
|
11
|
+
* - Validation rules
|
|
12
|
+
* - Transformation rules
|
|
13
|
+
* @param {TApiPropertyObjectProperties} options - Configuration options for the object property
|
|
14
|
+
* @returns {Function} A decorator function that can be applied to a class property
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* class UserDto {
|
|
18
|
+
* @ApiPropertyObject({
|
|
19
|
+
* entity: { name: 'Address' },
|
|
20
|
+
* type: AddressDto,
|
|
21
|
+
* isRequired: true,
|
|
22
|
+
* shouldValidateNested: true
|
|
23
|
+
* })
|
|
24
|
+
* address: AddressDto;
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
2
28
|
export declare function ApiPropertyObject(options: TApiPropertyObjectProperties): <Y>(target: object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { applyDecorators } from '@nestjs/common';
|
|
2
|
+
import { getSchemaPath, ApiProperty, ApiResponseProperty } from '@nestjs/swagger';
|
|
3
|
+
import { MustMatchOneOfSchemasValidator } from '../../../validator/must-match-one-of-schemas.validator.js';
|
|
4
|
+
import { Expose, Exclude, Type } from 'class-transformer';
|
|
5
|
+
import { IsOptional, IsArray, ArrayMinSize, ArrayMaxSize, ArrayNotEmpty, ValidateNested } from 'class-validator';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Creates a decorator that applies NestJS Swagger and class-validator/class-transformer decorators
|
|
9
|
+
* for object properties in DTOs.
|
|
10
|
+
*
|
|
11
|
+
* This decorator handles complex object properties with support for:
|
|
12
|
+
* - Single type objects
|
|
13
|
+
* - Polymorphic objects (with discriminator)
|
|
14
|
+
* - Arrays of objects
|
|
15
|
+
* - Response/Request specific decorators
|
|
16
|
+
* - Validation rules
|
|
17
|
+
* - Transformation rules
|
|
18
|
+
* @param {TApiPropertyObjectProperties} options - Configuration options for the object property
|
|
19
|
+
* @returns {Function} A decorator function that can be applied to a class property
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* class UserDto {
|
|
23
|
+
* @ApiPropertyObject({
|
|
24
|
+
* entity: { name: 'Address' },
|
|
25
|
+
* type: AddressDto,
|
|
26
|
+
* isRequired: true,
|
|
27
|
+
* shouldValidateNested: true
|
|
28
|
+
* })
|
|
29
|
+
* address: AddressDto;
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
function ApiPropertyObject(options) {
|
|
34
|
+
validateOptions(options);
|
|
35
|
+
const apiPropertyOptions = buildApiPropertyOptions(options);
|
|
36
|
+
const decorators = buildDecorators(options, apiPropertyOptions);
|
|
37
|
+
return applyDecorators(...decorators);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Builds the API property options object from the provided property configuration.
|
|
41
|
+
* Handles different scenarios including single type, multiple types, dynamically generated types, and arrays.
|
|
42
|
+
* @param {TApiPropertyObjectProperties} properties - The property configuration
|
|
43
|
+
* @returns {ApiPropertyOptions} The Swagger API property options object
|
|
44
|
+
* @private
|
|
45
|
+
*/
|
|
46
|
+
function buildApiPropertyOptions(properties) {
|
|
47
|
+
const apiPropertyOptions = {
|
|
48
|
+
description: `${String(properties.entity.name)} ${properties.description ?? ""}`,
|
|
49
|
+
// eslint-disable-next-line @elsikora/typescript/naming-convention
|
|
50
|
+
nullable: properties.isNullable,
|
|
51
|
+
};
|
|
52
|
+
if (Array.isArray(properties.type)) {
|
|
53
|
+
// eslint-disable-next-line @elsikora/typescript/no-unsafe-function-type
|
|
54
|
+
apiPropertyOptions.oneOf = properties.type.map((type) => {
|
|
55
|
+
return { $ref: getSchemaPath(type) };
|
|
56
|
+
});
|
|
57
|
+
if (properties.discriminator) {
|
|
58
|
+
apiPropertyOptions.discriminator = {
|
|
59
|
+
// eslint-disable-next-line @elsikora/typescript/no-unsafe-function-type
|
|
60
|
+
mapping: Object.fromEntries(Object.keys(properties.discriminator.mapping).map((key) => [key, getSchemaPath(properties.discriminator?.mapping[key])])),
|
|
61
|
+
propertyName: properties.discriminator.propertyName,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
// eslint-disable-next-line @elsikora/typescript/no-unsafe-assignment
|
|
65
|
+
apiPropertyOptions.type = "object";
|
|
66
|
+
}
|
|
67
|
+
else if ("isDynamicallyGenerated" in properties && properties.isDynamicallyGenerated) {
|
|
68
|
+
// eslint-disable-next-line @elsikora/typescript/no-unsafe-function-type
|
|
69
|
+
apiPropertyOptions.oneOf = Object.entries(properties.generatedDTOs).map(([_key, value]) => {
|
|
70
|
+
return { $ref: getSchemaPath(value) };
|
|
71
|
+
});
|
|
72
|
+
if (properties.discriminator) {
|
|
73
|
+
apiPropertyOptions.discriminator = {
|
|
74
|
+
// eslint-disable-next-line @elsikora/typescript/no-unsafe-function-type
|
|
75
|
+
mapping: Object.fromEntries(Object.keys(properties.discriminator.mapping).map((key) => [key, getSchemaPath(properties.generatedDTOs[key])])),
|
|
76
|
+
propertyName: properties.discriminator.propertyName,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// eslint-disable-next-line @elsikora/typescript/no-unsafe-assignment
|
|
80
|
+
apiPropertyOptions.type = "object";
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
apiPropertyOptions.type = properties.type;
|
|
84
|
+
}
|
|
85
|
+
apiPropertyOptions.required = properties.isResponse === false || properties.isResponse === undefined ? properties.isRequired : false;
|
|
86
|
+
if (properties.additionalProperties) {
|
|
87
|
+
apiPropertyOptions.additionalProperties = properties.additionalProperties;
|
|
88
|
+
}
|
|
89
|
+
if (properties.isArray) {
|
|
90
|
+
apiPropertyOptions.isArray = true;
|
|
91
|
+
apiPropertyOptions.minItems = properties.minItems;
|
|
92
|
+
apiPropertyOptions.maxItems = properties.maxItems;
|
|
93
|
+
apiPropertyOptions.uniqueItems = properties.isUniqueItems;
|
|
94
|
+
apiPropertyOptions.description = `Array of ${String(properties.entity.name)} ${properties.description ?? ""}`;
|
|
95
|
+
}
|
|
96
|
+
return apiPropertyOptions;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Builds all the necessary decorators for the property based on the configuration.
|
|
100
|
+
* Combines API property decorators, response decorators, request decorators, transform decorators,
|
|
101
|
+
* and validation decorators.
|
|
102
|
+
* @param {TApiPropertyObjectProperties} properties - The property configuration
|
|
103
|
+
* @param {ApiPropertyOptions} apiPropertyOptions - The Swagger API property options
|
|
104
|
+
* @returns {Array<PropertyDecorator>} An array of decorators to apply to the property
|
|
105
|
+
* @private
|
|
106
|
+
*/
|
|
107
|
+
function buildDecorators(properties, apiPropertyOptions) {
|
|
108
|
+
const decorators = [ApiProperty(apiPropertyOptions)];
|
|
109
|
+
decorators.push(...buildResponseDecorators(properties), ...buildRequestDecorators(properties), ...buildTransformDecorators(properties), ...buildObjectValidationDecorators(properties));
|
|
110
|
+
return decorators;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Builds decorators for validation of nested objects.
|
|
114
|
+
* @param {TApiPropertyObjectProperties} properties - The property configuration
|
|
115
|
+
* @returns {Array<PropertyDecorator>} An array of object validation decorators
|
|
116
|
+
* @private
|
|
117
|
+
*/
|
|
118
|
+
function buildObjectValidationDecorators(properties) {
|
|
119
|
+
const decorators = [];
|
|
120
|
+
const isArray = properties.isArray ?? false;
|
|
121
|
+
if (!properties.isResponse && properties.shouldValidateNested) {
|
|
122
|
+
// eslint-disable-next-line @elsikora/typescript/naming-convention
|
|
123
|
+
decorators.push(ValidateNested({ each: isArray }));
|
|
124
|
+
}
|
|
125
|
+
return decorators;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Builds decorators for request validation including optional status,
|
|
129
|
+
* array validation, and size constraints.
|
|
130
|
+
* @param {TApiPropertyObjectProperties} properties - The property configuration
|
|
131
|
+
* @returns {Array<PropertyDecorator>} An array of request validation decorators
|
|
132
|
+
* @private
|
|
133
|
+
*/
|
|
134
|
+
function buildRequestDecorators(properties) {
|
|
135
|
+
const decorators = [];
|
|
136
|
+
if (properties.isResponse === false || properties.isResponse === undefined) {
|
|
137
|
+
if (!properties.isRequired) {
|
|
138
|
+
decorators.push(IsOptional());
|
|
139
|
+
}
|
|
140
|
+
if (properties.isArray === true) {
|
|
141
|
+
decorators.push(IsArray(), ArrayMinSize(properties.minItems), ArrayMaxSize(properties.maxItems));
|
|
142
|
+
if (properties.minItems > 0) {
|
|
143
|
+
decorators.push(ArrayNotEmpty());
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return decorators;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Builds decorators for response serialization including API response property,
|
|
151
|
+
* expose, and exclude decorators.
|
|
152
|
+
* @param {TApiPropertyObjectProperties} properties - The property configuration
|
|
153
|
+
* @returns {Array<PropertyDecorator>} An array of response serialization decorators
|
|
154
|
+
* @private
|
|
155
|
+
*/
|
|
156
|
+
function buildResponseDecorators(properties) {
|
|
157
|
+
const decorators = [];
|
|
158
|
+
if (properties.isResponse) {
|
|
159
|
+
decorators.push(ApiResponseProperty());
|
|
160
|
+
if (properties.isExpose === undefined || properties.isExpose) {
|
|
161
|
+
decorators.push(Expose());
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
decorators.push(Exclude());
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return decorators;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Builds decorators for type transformation including handling of discriminator-based
|
|
171
|
+
* polymorphic objects.
|
|
172
|
+
* @param {TApiPropertyObjectProperties} properties - The property configuration
|
|
173
|
+
* @returns {Array<PropertyDecorator>} An array of type transformation decorators
|
|
174
|
+
* @private
|
|
175
|
+
*/
|
|
176
|
+
function buildTransformDecorators(properties) {
|
|
177
|
+
const decorators = [];
|
|
178
|
+
if (Array.isArray(properties.type) && properties.discriminator) {
|
|
179
|
+
decorators.push(MustMatchOneOfSchemasValidator({
|
|
180
|
+
discriminator: properties.discriminator,
|
|
181
|
+
schemas: properties.type,
|
|
182
|
+
}), Type(() => Object, {
|
|
183
|
+
discriminator: {
|
|
184
|
+
property: properties.discriminator.propertyName,
|
|
185
|
+
subTypes: Object.entries(properties.discriminator.mapping).map(([key, value]) => {
|
|
186
|
+
return { name: key, value };
|
|
187
|
+
}),
|
|
188
|
+
},
|
|
189
|
+
// eslint-disable-next-line @elsikora/typescript/naming-convention
|
|
190
|
+
keepDiscriminatorProperty: properties.discriminator.shouldKeepDiscriminatorProperty,
|
|
191
|
+
}));
|
|
192
|
+
}
|
|
193
|
+
else if ("isDynamicallyGenerated" in properties && properties.isDynamicallyGenerated) {
|
|
194
|
+
decorators.push(MustMatchOneOfSchemasValidator({
|
|
195
|
+
discriminator: properties.discriminator,
|
|
196
|
+
schemas: properties.generatedDTOs,
|
|
197
|
+
}), Type(() => Object, {
|
|
198
|
+
discriminator: {
|
|
199
|
+
property: properties.discriminator.propertyName,
|
|
200
|
+
subTypes: Object.entries(properties.discriminator.mapping).map(([key, value]) => {
|
|
201
|
+
return { name: key, value: properties.generatedDTOs[value] };
|
|
202
|
+
}),
|
|
203
|
+
},
|
|
204
|
+
// eslint-disable-next-line @elsikora/typescript/naming-convention
|
|
205
|
+
keepDiscriminatorProperty: properties.discriminator.shouldKeepDiscriminatorProperty,
|
|
206
|
+
}));
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
decorators.push(Type(() => properties.type));
|
|
210
|
+
}
|
|
211
|
+
return decorators;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Validates the configuration options for the API property object.
|
|
215
|
+
* Throws an error if the configuration is invalid.
|
|
216
|
+
* @param {TApiPropertyObjectProperties} properties - The property configuration to validate
|
|
217
|
+
* @returns {void}
|
|
218
|
+
* @throws {Error} If the configuration is invalid
|
|
219
|
+
* @private
|
|
220
|
+
*/
|
|
221
|
+
function validateOptions(properties) {
|
|
222
|
+
const errors = [];
|
|
223
|
+
if (properties.isArray && !properties.shouldValidateNested && !properties.isResponse) {
|
|
224
|
+
errors.push("Array property must be 'shouldValidateNested'");
|
|
225
|
+
}
|
|
226
|
+
if (properties.isArray === true) {
|
|
227
|
+
if (properties.minItems > properties.maxItems) {
|
|
228
|
+
errors.push("'minItems' is greater than 'maxItems'");
|
|
229
|
+
}
|
|
230
|
+
if (properties.minItems < 0) {
|
|
231
|
+
errors.push("'minItems' is less than 0");
|
|
232
|
+
}
|
|
233
|
+
if (properties.maxItems < 0) {
|
|
234
|
+
errors.push("'maxItems' is less than 0");
|
|
235
|
+
}
|
|
236
|
+
if (properties.isUniqueItems && properties.maxItems <= 1) {
|
|
237
|
+
errors.push("'uniqueItems' is true but 'maxItems' is less than or equal to 1");
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
if (errors.length > 0) {
|
|
241
|
+
throw new Error(`ApiPropertyObject error: ${errors.join("\n")}`);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
export { ApiPropertyObject };
|
|
246
|
+
//# sourceMappingURL=object.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.decorator.js","sources":["../../../../../../src/decorator/api/property/object.decorator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,69 @@
|
|
|
1
|
-
import type { TApiPropertyStringProperties } from
|
|
1
|
+
import type { TApiPropertyStringProperties } from '../../../type/decorator/api/property/index';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a decorator that applies NestJS Swagger and class-validator/class-transformer decorators
|
|
4
|
+
* for string properties in DTOs.
|
|
5
|
+
*
|
|
6
|
+
* This decorator handles string properties with support for:
|
|
7
|
+
* - Various string formats (email, URL, UUID, IP, date, etc.)
|
|
8
|
+
* - Single strings or arrays of strings
|
|
9
|
+
* - Response/Request specific decorators
|
|
10
|
+
* - Pattern validation with regex
|
|
11
|
+
* - Length validation
|
|
12
|
+
* - Case sensitivity options (uppercase, lowercase)
|
|
13
|
+
* - Transformation rules
|
|
14
|
+
*
|
|
15
|
+
* The decorator applies appropriate validation rules based on the format and configuration.
|
|
16
|
+
* @param {TApiPropertyStringProperties} properties - Configuration options for the string property
|
|
17
|
+
* @returns {Function} A decorator function that can be applied to a class property
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* // Simple string property
|
|
21
|
+
* class UserDto {
|
|
22
|
+
* @ApiPropertyString({
|
|
23
|
+
* entity: { name: 'User' },
|
|
24
|
+
* description: 'name',
|
|
25
|
+
* format: EApiPropertyStringType.STRING,
|
|
26
|
+
* isRequired: true,
|
|
27
|
+
* minLength: 2,
|
|
28
|
+
* maxLength: 100,
|
|
29
|
+
* pattern: '/^[a-zA-Z ]+$/',
|
|
30
|
+
* exampleValue: 'John Doe'
|
|
31
|
+
* })
|
|
32
|
+
* name: string;
|
|
33
|
+
* }
|
|
34
|
+
*
|
|
35
|
+
* // Email format
|
|
36
|
+
* class ContactDto {
|
|
37
|
+
* @ApiPropertyString({
|
|
38
|
+
* entity: { name: 'Contact' },
|
|
39
|
+
* description: 'email address',
|
|
40
|
+
* format: EApiPropertyStringType.EMAIL,
|
|
41
|
+
* isRequired: true,
|
|
42
|
+
* minLength: 5,
|
|
43
|
+
* maxLength: 255,
|
|
44
|
+
* pattern: '/^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$/',
|
|
45
|
+
* exampleValue: 'user@example.com'
|
|
46
|
+
* })
|
|
47
|
+
* email: string;
|
|
48
|
+
* }
|
|
49
|
+
*
|
|
50
|
+
* // Array of URLs
|
|
51
|
+
* class WebsitesDto {
|
|
52
|
+
* @ApiPropertyString({
|
|
53
|
+
* entity: { name: 'Website' },
|
|
54
|
+
* description: 'links',
|
|
55
|
+
* format: EApiPropertyStringType.URL,
|
|
56
|
+
* isArray: true,
|
|
57
|
+
* minItems: 1,
|
|
58
|
+
* maxItems: 5,
|
|
59
|
+
* isUniqueItems: true,
|
|
60
|
+
* minLength: 10,
|
|
61
|
+
* maxLength: 2000,
|
|
62
|
+
* pattern: '/^https?:\\/\\/[\\w\\-]+(\\.[\\w\\-]+)+[/#?]?.*$/',
|
|
63
|
+
* exampleValue: ['https://example.com', 'https://another-example.org']
|
|
64
|
+
* })
|
|
65
|
+
* websites: string[];
|
|
66
|
+
* }
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
2
69
|
export declare function ApiPropertyString(properties: TApiPropertyStringProperties): <Y>(target: object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|