@sisques-labs/nestjs-kit 0.1.0
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 +770 -0
- package/dist/index.d.ts +93 -0
- package/dist/index.js +110 -0
- package/dist/index.js.map +1 -0
- package/dist/shared/application/commands/base/base-command.handler.d.ts +6 -0
- package/dist/shared/application/commands/base/base-command.handler.js +14 -0
- package/dist/shared/application/commands/base/base-command.handler.js.map +1 -0
- package/dist/shared/application/commands/interfaces/base-command-handler.interface.d.ts +3 -0
- package/dist/shared/application/commands/interfaces/base-command-handler.interface.js +3 -0
- package/dist/shared/application/commands/interfaces/base-command-handler.interface.js.map +1 -0
- package/dist/shared/application/commands/update/base-update/base-update.command-handler.d.ts +9 -0
- package/dist/shared/application/commands/update/base-update/base-update.command-handler.js +25 -0
- package/dist/shared/application/commands/update/base-update/base-update.command-handler.js.map +1 -0
- package/dist/shared/application/dtos/commands/field-changed/base-field-changed-command.dto.d.ts +5 -0
- package/dist/shared/application/dtos/commands/field-changed/base-field-changed-command.dto.js +3 -0
- package/dist/shared/application/dtos/commands/field-changed/base-field-changed-command.dto.js.map +1 -0
- package/dist/shared/application/services/base-service/base-service.interface.d.ts +3 -0
- package/dist/shared/application/services/base-service/base-service.interface.js +3 -0
- package/dist/shared/application/services/base-service/base-service.interface.js.map +1 -0
- package/dist/shared/domain/aggregates/base-aggregate/base.aggregate.d.ts +9 -0
- package/dist/shared/domain/aggregates/base-aggregate/base.aggregate.js +19 -0
- package/dist/shared/domain/aggregates/base-aggregate/base.aggregate.js.map +1 -0
- package/dist/shared/domain/entities/criteria.d.ts +21 -0
- package/dist/shared/domain/entities/criteria.js +12 -0
- package/dist/shared/domain/entities/criteria.js.map +1 -0
- package/dist/shared/domain/entities/paginated-result.entity.d.ts +8 -0
- package/dist/shared/domain/entities/paginated-result.entity.js +16 -0
- package/dist/shared/domain/entities/paginated-result.entity.js.map +1 -0
- package/dist/shared/domain/enums/filter-operator.enum.d.ts +10 -0
- package/dist/shared/domain/enums/filter-operator.enum.js +15 -0
- package/dist/shared/domain/enums/filter-operator.enum.js.map +1 -0
- package/dist/shared/domain/enums/length-unit/length-unit.enum.d.ts +7 -0
- package/dist/shared/domain/enums/length-unit/length-unit.enum.js +12 -0
- package/dist/shared/domain/enums/length-unit/length-unit.enum.js.map +1 -0
- package/dist/shared/domain/enums/sort-direction.enum.d.ts +4 -0
- package/dist/shared/domain/enums/sort-direction.enum.js +9 -0
- package/dist/shared/domain/enums/sort-direction.enum.js.map +1 -0
- package/dist/shared/domain/enums/user-context/user/user-role/user-role.enum.d.ts +4 -0
- package/dist/shared/domain/enums/user-context/user/user-role/user-role.enum.js +9 -0
- package/dist/shared/domain/enums/user-context/user/user-role/user-role.enum.js.map +1 -0
- package/dist/shared/domain/enums/user-context/user/user-status/user-status.enum.d.ts +5 -0
- package/dist/shared/domain/enums/user-context/user/user-status/user-status.enum.js +10 -0
- package/dist/shared/domain/enums/user-context/user/user-status/user-status.enum.js.map +1 -0
- package/dist/shared/domain/events/base-event.interface.d.ts +13 -0
- package/dist/shared/domain/events/base-event.interface.js +21 -0
- package/dist/shared/domain/events/base-event.interface.js.map +1 -0
- package/dist/shared/domain/exceptions/base.exception.d.ts +6 -0
- package/dist/shared/domain/exceptions/base.exception.js +23 -0
- package/dist/shared/domain/exceptions/base.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-boolean/invalid-boolean.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-boolean/invalid-boolean.exception.js +12 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-boolean/invalid-boolean.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-color/invalid-color.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-color/invalid-color.exception.js +11 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-color/invalid-color.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-dimensions/invalid-dimensions.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-dimensions/invalid-dimensions.exception.js +11 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-dimensions/invalid-dimensions.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-email/invalid-email.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-email/invalid-email.exception.js +11 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-email/invalid-email.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-enum-value/invalid-enum-value.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-enum-value/invalid-enum-value.exception.js +11 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-enum-value/invalid-enum-value.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-hex/invalid-hex.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-hex/invalid-hex.exception.js +11 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-hex/invalid-hex.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-ip/invalid-ip.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-ip/invalid-ip.exception.js +11 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-ip/invalid-ip.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-json/invalid-json.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-json/invalid-json.exception.js +11 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-json/invalid-json.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-locale/invalid-locale.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-locale/invalid-locale.exception.js +12 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-locale/invalid-locale.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-number/invalid-number.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-number/invalid-number.exception.js +11 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-number/invalid-number.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-numeric-range/invalid-numeric-range.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-numeric-range/invalid-numeric-range.exception.js +11 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-numeric-range/invalid-numeric-range.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-password/invalid-password.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-password/invalid-password.exception.js +11 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-password/invalid-password.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-phone/invalid-phone.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-phone/invalid-phone.exception.js +11 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-phone/invalid-phone.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-string/invalid-string.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-string/invalid-string.exception.js +11 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-string/invalid-string.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-timezone/invalid-timezone.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-timezone/invalid-timezone.exception.js +12 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-timezone/invalid-timezone.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-url/invalid-url.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-url/invalid-url.exception.js +11 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-url/invalid-url.exception.js.map +1 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-uuid/invalid-uuid.exception.d.ts +4 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-uuid/invalid-uuid.exception.js +11 -0
- package/dist/shared/domain/exceptions/value-objects/invalid-uuid/invalid-uuid.exception.js.map +1 -0
- package/dist/shared/domain/interfaces/base-aggregate-dto.interface.d.ts +5 -0
- package/dist/shared/domain/interfaces/base-aggregate-dto.interface.js +3 -0
- package/dist/shared/domain/interfaces/base-aggregate-dto.interface.js.map +1 -0
- package/dist/shared/domain/interfaces/base-view-model-dto.interface.d.ts +5 -0
- package/dist/shared/domain/interfaces/base-view-model-dto.interface.js +3 -0
- package/dist/shared/domain/interfaces/base-view-model-dto.interface.js.map +1 -0
- package/dist/shared/domain/interfaces/event-metadata.interface.d.ts +7 -0
- package/dist/shared/domain/interfaces/event-metadata.interface.js +3 -0
- package/dist/shared/domain/interfaces/event-metadata.interface.js.map +1 -0
- package/dist/shared/domain/interfaces/events/base-event-data.interface.d.ts +4 -0
- package/dist/shared/domain/interfaces/events/base-event-data.interface.js +3 -0
- package/dist/shared/domain/interfaces/events/base-event-data.interface.js.map +1 -0
- package/dist/shared/domain/interfaces/factories/read-factory.interface.d.ts +5 -0
- package/dist/shared/domain/interfaces/factories/read-factory.interface.js +3 -0
- package/dist/shared/domain/interfaces/factories/read-factory.interface.js.map +1 -0
- package/dist/shared/domain/interfaces/factories/write-factory.interface.d.ts +4 -0
- package/dist/shared/domain/interfaces/factories/write-factory.interface.js +3 -0
- package/dist/shared/domain/interfaces/factories/write-factory.interface.js.map +1 -0
- package/dist/shared/domain/interfaces/numeric-range.interface.d.ts +4 -0
- package/dist/shared/domain/interfaces/numeric-range.interface.js +3 -0
- package/dist/shared/domain/interfaces/numeric-range.interface.js.map +1 -0
- package/dist/shared/domain/interfaces/repository/base-read-repository.interface.d.ts +8 -0
- package/dist/shared/domain/interfaces/repository/base-read-repository.interface.js +3 -0
- package/dist/shared/domain/interfaces/repository/base-read-repository.interface.js.map +1 -0
- package/dist/shared/domain/interfaces/repository/base-write-repository.interface.d.ts +5 -0
- package/dist/shared/domain/interfaces/repository/base-write-repository.interface.js +3 -0
- package/dist/shared/domain/interfaces/repository/base-write-repository.interface.js.map +1 -0
- package/dist/shared/domain/interfaces/updated-field.interface.d.ts +5 -0
- package/dist/shared/domain/interfaces/updated-field.interface.js +3 -0
- package/dist/shared/domain/interfaces/updated-field.interface.js.map +1 -0
- package/dist/shared/domain/primitives/base-primitives/base.primitives.d.ts +4 -0
- package/dist/shared/domain/primitives/base-primitives/base.primitives.js +3 -0
- package/dist/shared/domain/primitives/base-primitives/base.primitives.js.map +1 -0
- package/dist/shared/domain/value-objects/base/value-object.base.d.ts +11 -0
- package/dist/shared/domain/value-objects/base/value-object.base.js +40 -0
- package/dist/shared/domain/value-objects/base/value-object.base.js.map +1 -0
- package/dist/shared/domain/value-objects/boolean/boolean.vo.d.ts +26 -0
- package/dist/shared/domain/value-objects/boolean/boolean.vo.js +102 -0
- package/dist/shared/domain/value-objects/boolean/boolean.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/color/color.vo.d.ts +21 -0
- package/dist/shared/domain/value-objects/color/color.vo.js +127 -0
- package/dist/shared/domain/value-objects/color/color.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/date/date.vo.d.ts +9 -0
- package/dist/shared/domain/value-objects/date/date.vo.js +23 -0
- package/dist/shared/domain/value-objects/date/date.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/dimensions/dimensions.vo.d.ts +68 -0
- package/dist/shared/domain/value-objects/dimensions/dimensions.vo.js +182 -0
- package/dist/shared/domain/value-objects/dimensions/dimensions.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/email/email.vo.d.ts +12 -0
- package/dist/shared/domain/value-objects/email/email.vo.js +48 -0
- package/dist/shared/domain/value-objects/email/email.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/enum/enum.vo.d.ts +35 -0
- package/dist/shared/domain/value-objects/enum/enum.vo.js +137 -0
- package/dist/shared/domain/value-objects/enum/enum.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/hex/hex.vo.d.ts +11 -0
- package/dist/shared/domain/value-objects/hex/hex.vo.js +38 -0
- package/dist/shared/domain/value-objects/hex/hex.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/ip/ip.vo.d.ts +19 -0
- package/dist/shared/domain/value-objects/ip/ip.vo.js +90 -0
- package/dist/shared/domain/value-objects/ip/ip.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/json/json.vo.d.ts +43 -0
- package/dist/shared/domain/value-objects/json/json.vo.js +224 -0
- package/dist/shared/domain/value-objects/json/json.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/length-unit/length-unit.vo.d.ts +5 -0
- package/dist/shared/domain/value-objects/length-unit/length-unit.vo.js +12 -0
- package/dist/shared/domain/value-objects/length-unit/length-unit.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/locale/locale.vo.d.ts +27 -0
- package/dist/shared/domain/value-objects/locale/locale.vo.js +292 -0
- package/dist/shared/domain/value-objects/locale/locale.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/number/number.vo.d.ts +23 -0
- package/dist/shared/domain/value-objects/number/number.vo.js +77 -0
- package/dist/shared/domain/value-objects/number/number.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/numeric-range/numeric-range.vo.d.ts +13 -0
- package/dist/shared/domain/value-objects/numeric-range/numeric-range.vo.js +35 -0
- package/dist/shared/domain/value-objects/numeric-range/numeric-range.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/password/password.vo.d.ts +14 -0
- package/dist/shared/domain/value-objects/password/password.vo.js +90 -0
- package/dist/shared/domain/value-objects/password/password.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/phone/phone.vo.d.ts +13 -0
- package/dist/shared/domain/value-objects/phone/phone.vo.js +56 -0
- package/dist/shared/domain/value-objects/phone/phone.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/phone-code/phone-code.vo.d.ts +25 -0
- package/dist/shared/domain/value-objects/phone-code/phone-code.vo.js +344 -0
- package/dist/shared/domain/value-objects/phone-code/phone-code.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/slug/slug.vo.d.ts +25 -0
- package/dist/shared/domain/value-objects/slug/slug.vo.js +87 -0
- package/dist/shared/domain/value-objects/slug/slug.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/string/string.vo.d.ts +38 -0
- package/dist/shared/domain/value-objects/string/string.vo.js +146 -0
- package/dist/shared/domain/value-objects/string/string.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/timezone/timezone.vo.d.ts +23 -0
- package/dist/shared/domain/value-objects/timezone/timezone.vo.js +116 -0
- package/dist/shared/domain/value-objects/timezone/timezone.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/url/url.vo.d.ts +9 -0
- package/dist/shared/domain/value-objects/url/url.vo.js +31 -0
- package/dist/shared/domain/value-objects/url/url.vo.js.map +1 -0
- package/dist/shared/domain/value-objects/uuid/uuid.vo.d.ts +13 -0
- package/dist/shared/domain/value-objects/uuid/uuid.vo.js +49 -0
- package/dist/shared/domain/value-objects/uuid/uuid.vo.js.map +1 -0
- package/dist/shared/domain/view-models/base-view-model/base-view-model.d.ts +14 -0
- package/dist/shared/domain/view-models/base-view-model/base-view-model.js +24 -0
- package/dist/shared/domain/view-models/base-view-model/base-view-model.js.map +1 -0
- package/dist/shared/infrastructure/database/base-database.repository.d.ts +11 -0
- package/dist/shared/infrastructure/database/base-database.repository.js +14 -0
- package/dist/shared/infrastructure/database/base-database.repository.js.map +1 -0
- package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository.d.ts +9 -0
- package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository.js +78 -0
- package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository.js.map +1 -0
- package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-master/base-mongo-master.repository.d.ts +6 -0
- package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-master/base-mongo-master.repository.js +12 -0
- package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-master/base-mongo-master.repository.js.map +1 -0
- package/dist/shared/infrastructure/database/mongodb/dtos/base-mongo.dto.d.ts +5 -0
- package/dist/shared/infrastructure/database/mongodb/dtos/base-mongo.dto.js +3 -0
- package/dist/shared/infrastructure/database/mongodb/dtos/base-mongo.dto.js.map +1 -0
- package/dist/shared/infrastructure/database/mongodb/mongodb.module.d.ts +2 -0
- package/dist/shared/infrastructure/database/mongodb/mongodb.module.js +23 -0
- package/dist/shared/infrastructure/database/mongodb/mongodb.module.js.map +1 -0
- package/dist/shared/infrastructure/database/mongodb/services/mongo-master/mongo-master.service.d.ts +14 -0
- package/dist/shared/infrastructure/database/mongodb/services/mongo-master/mongo-master.service.js +57 -0
- package/dist/shared/infrastructure/database/mongodb/services/mongo-master/mongo-master.service.js.map +1 -0
- package/dist/shared/infrastructure/database/typeorm/base-typeorm/base-typeorm-master/base-typeorm-master.repository.d.ts +9 -0
- package/dist/shared/infrastructure/database/typeorm/base-typeorm/base-typeorm-master/base-typeorm-master.repository.js +18 -0
- package/dist/shared/infrastructure/database/typeorm/base-typeorm/base-typeorm-master/base-typeorm-master.repository.js.map +1 -0
- package/dist/shared/infrastructure/database/typeorm/data-source.d.ts +4 -0
- package/dist/shared/infrastructure/database/typeorm/data-source.js +33 -0
- package/dist/shared/infrastructure/database/typeorm/data-source.js.map +1 -0
- package/dist/shared/infrastructure/database/typeorm/dtos/base-typeorm.dto.d.ts +4 -0
- package/dist/shared/infrastructure/database/typeorm/dtos/base-typeorm.dto.js +3 -0
- package/dist/shared/infrastructure/database/typeorm/dtos/base-typeorm.dto.js.map +1 -0
- package/dist/shared/infrastructure/database/typeorm/entities/base-typeorm.entity.d.ts +6 -0
- package/dist/shared/infrastructure/database/typeorm/entities/base-typeorm.entity.js +36 -0
- package/dist/shared/infrastructure/database/typeorm/entities/base-typeorm.entity.js.map +1 -0
- package/dist/shared/infrastructure/database/typeorm/services/typeorm-master/typeorm-master.service.d.ts +9 -0
- package/dist/shared/infrastructure/database/typeorm/services/typeorm-master/typeorm-master.service.js +42 -0
- package/dist/shared/infrastructure/database/typeorm/services/typeorm-master/typeorm-master.service.js.map +1 -0
- package/dist/shared/infrastructure/database/typeorm/typeorm-module-options.factory.d.ts +3 -0
- package/dist/shared/infrastructure/database/typeorm/typeorm-module-options.factory.js +32 -0
- package/dist/shared/infrastructure/database/typeorm/typeorm-module-options.factory.js.map +1 -0
- package/dist/shared/infrastructure/database/typeorm/typeorm.module.d.ts +2 -0
- package/dist/shared/infrastructure/database/typeorm/typeorm.module.js +34 -0
- package/dist/shared/infrastructure/database/typeorm/typeorm.module.js.map +1 -0
- package/dist/shared/infrastructure/logging/factories/create-shared-winston-logger-options.d.ts +6 -0
- package/dist/shared/infrastructure/logging/factories/create-shared-winston-logger-options.js +92 -0
- package/dist/shared/infrastructure/logging/factories/create-shared-winston-logger-options.js.map +1 -0
- package/dist/shared/infrastructure/logging/formats/shared-winston.formats.d.ts +3 -0
- package/dist/shared/infrastructure/logging/formats/shared-winston.formats.js +30 -0
- package/dist/shared/infrastructure/logging/formats/shared-winston.formats.js.map +1 -0
- package/dist/shared/infrastructure/logging/interfaces/shared-winston-logger-factory-options.interface.d.ts +21 -0
- package/dist/shared/infrastructure/logging/interfaces/shared-winston-logger-factory-options.interface.js +3 -0
- package/dist/shared/infrastructure/logging/interfaces/shared-winston-logger-factory-options.interface.js.map +1 -0
- package/dist/shared/shared.module.d.ts +3 -0
- package/dist/shared/shared.module.js +51 -0
- package/dist/shared/shared.module.js.map +1 -0
- package/dist/shared/transport/graphql/dtos/requests/base-filter/base-filter.input.d.ts +6 -0
- package/dist/shared/transport/graphql/dtos/requests/base-filter/base-filter.input.js +40 -0
- package/dist/shared/transport/graphql/dtos/requests/base-filter/base-filter.input.js.map +1 -0
- package/dist/shared/transport/graphql/dtos/requests/base-find-by-criteria/base-find-by-criteria.input.d.ts +8 -0
- package/dist/shared/transport/graphql/dtos/requests/base-find-by-criteria/base-find-by-criteria.input.js +56 -0
- package/dist/shared/transport/graphql/dtos/requests/base-find-by-criteria/base-find-by-criteria.input.js.map +1 -0
- package/dist/shared/transport/graphql/dtos/requests/base-pagination/base-pagination.input.d.ts +4 -0
- package/dist/shared/transport/graphql/dtos/requests/base-pagination/base-pagination.input.js +33 -0
- package/dist/shared/transport/graphql/dtos/requests/base-pagination/base-pagination.input.js.map +1 -0
- package/dist/shared/transport/graphql/dtos/requests/base-sort/base-sort.input.d.ts +5 -0
- package/dist/shared/transport/graphql/dtos/requests/base-sort/base-sort.input.js +34 -0
- package/dist/shared/transport/graphql/dtos/requests/base-sort/base-sort.input.js.map +1 -0
- package/dist/shared/transport/graphql/dtos/requests/numeric-range/numeric-range.input.d.ts +4 -0
- package/dist/shared/transport/graphql/dtos/requests/numeric-range/numeric-range.input.js +31 -0
- package/dist/shared/transport/graphql/dtos/requests/numeric-range/numeric-range.input.js.map +1 -0
- package/dist/shared/transport/graphql/dtos/responses/base-paginated-result/base-paginated-result.dto.d.ts +6 -0
- package/dist/shared/transport/graphql/dtos/responses/base-paginated-result/base-paginated-result.dto.js +36 -0
- package/dist/shared/transport/graphql/dtos/responses/base-paginated-result/base-paginated-result.dto.js.map +1 -0
- package/dist/shared/transport/graphql/dtos/responses/numeric-range/numeric-range.dto.d.ts +4 -0
- package/dist/shared/transport/graphql/dtos/responses/numeric-range/numeric-range.dto.js +31 -0
- package/dist/shared/transport/graphql/dtos/responses/numeric-range/numeric-range.dto.js.map +1 -0
- package/dist/shared/transport/graphql/dtos/responses/success-response/success-response.dto.d.ts +5 -0
- package/dist/shared/transport/graphql/dtos/responses/success-response/success-response.dto.js +32 -0
- package/dist/shared/transport/graphql/dtos/responses/success-response/success-response.dto.js.map +1 -0
- package/dist/shared/transport/graphql/dtos/success-response-array.dto.d.ts +5 -0
- package/dist/shared/transport/graphql/dtos/success-response-array.dto.js +32 -0
- package/dist/shared/transport/graphql/dtos/success-response-array.dto.js.map +1 -0
- package/dist/shared/transport/graphql/enums/shared-registered-enums.graphql.d.ts +1 -0
- package/dist/shared/transport/graphql/enums/shared-registered-enums.graphql.js +15 -0
- package/dist/shared/transport/graphql/enums/shared-registered-enums.graphql.js.map +1 -0
- package/dist/shared/transport/graphql/mappers/mutation-response/mutation-response.mapper.d.ts +6 -0
- package/dist/shared/transport/graphql/mappers/mutation-response/mutation-response.mapper.js +31 -0
- package/dist/shared/transport/graphql/mappers/mutation-response/mutation-response.mapper.js.map +1 -0
- package/dist/shared/transport/graphql/plugins/complexity.plugin.d.ts +4 -0
- package/dist/shared/transport/graphql/plugins/complexity.plugin.js +40 -0
- package/dist/shared/transport/graphql/plugins/complexity.plugin.js.map +1 -0
- package/dist/shared/transport/graphql/registered-enums/registered-enums.graphql.d.ts +1 -0
- package/dist/shared/transport/graphql/registered-enums/registered-enums.graphql.js +33 -0
- package/dist/shared/transport/graphql/registered-enums/registered-enums.graphql.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +152 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NumberValueObject = void 0;
|
|
4
|
+
const invalid_number_exception_1 = require("../../exceptions/value-objects/invalid-number/invalid-number.exception");
|
|
5
|
+
const value_object_base_1 = require("../base/value-object.base");
|
|
6
|
+
class NumberValueObject extends value_object_base_1.ValueObject {
|
|
7
|
+
constructor(value, options = {}) {
|
|
8
|
+
super();
|
|
9
|
+
this.options = options;
|
|
10
|
+
this._value = this.parseValue(value);
|
|
11
|
+
this.validate();
|
|
12
|
+
}
|
|
13
|
+
get value() {
|
|
14
|
+
return this._value;
|
|
15
|
+
}
|
|
16
|
+
equals(other) {
|
|
17
|
+
return this._value === other._value;
|
|
18
|
+
}
|
|
19
|
+
isInRange(min, max) {
|
|
20
|
+
return this._value >= min && this._value <= max;
|
|
21
|
+
}
|
|
22
|
+
isPositive() {
|
|
23
|
+
return this._value > 0;
|
|
24
|
+
}
|
|
25
|
+
isNegative() {
|
|
26
|
+
return this._value < 0;
|
|
27
|
+
}
|
|
28
|
+
isZero() {
|
|
29
|
+
return this._value === 0;
|
|
30
|
+
}
|
|
31
|
+
round(precision = 2) {
|
|
32
|
+
return (Math.round(this._value * Math.pow(10, precision)) /
|
|
33
|
+
Math.pow(10, precision));
|
|
34
|
+
}
|
|
35
|
+
parseValue(value) {
|
|
36
|
+
if (typeof value === 'string') {
|
|
37
|
+
const parsed = parseFloat(value);
|
|
38
|
+
if (isNaN(parsed)) {
|
|
39
|
+
throw new invalid_number_exception_1.InvalidNumberException('Invalid number format');
|
|
40
|
+
}
|
|
41
|
+
return parsed;
|
|
42
|
+
}
|
|
43
|
+
return value;
|
|
44
|
+
}
|
|
45
|
+
validate() {
|
|
46
|
+
this.checkIsFinite();
|
|
47
|
+
this.checkRange();
|
|
48
|
+
this.checkDecimals();
|
|
49
|
+
}
|
|
50
|
+
checkIsFinite() {
|
|
51
|
+
if (!isFinite(this._value)) {
|
|
52
|
+
throw new invalid_number_exception_1.InvalidNumberException('Number must be finite');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
checkRange() {
|
|
56
|
+
if (this.options.min !== undefined && this._value < this.options.min) {
|
|
57
|
+
throw new invalid_number_exception_1.InvalidNumberException(`Number must be at least ${this.options.min}`);
|
|
58
|
+
}
|
|
59
|
+
if (this.options.max !== undefined && this._value > this.options.max) {
|
|
60
|
+
throw new invalid_number_exception_1.InvalidNumberException(`Number must be at most ${this.options.max}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
checkDecimals() {
|
|
64
|
+
if (this.options.allowDecimals === false &&
|
|
65
|
+
!Number.isInteger(this._value)) {
|
|
66
|
+
throw new invalid_number_exception_1.InvalidNumberException('Number must be an integer');
|
|
67
|
+
}
|
|
68
|
+
if (this.options.precision !== undefined) {
|
|
69
|
+
const decimalPlaces = (this._value.toString().split('.')[1] || '').length;
|
|
70
|
+
if (decimalPlaces > this.options.precision) {
|
|
71
|
+
throw new invalid_number_exception_1.InvalidNumberException(`Number cannot have more than ${this.options.precision} decimal places`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.NumberValueObject = NumberValueObject;
|
|
77
|
+
//# sourceMappingURL=number.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number.vo.js","sourceRoot":"","sources":["../../../../../src/shared/domain/value-objects/number/number.vo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { INumericRange } from '@/shared/domain/interfaces/numeric-range.interface';
|
|
2
|
+
import { ValueObject } from '@/shared/domain/value-objects/base/value-object.base';
|
|
3
|
+
export declare class NumericRangeValueObject extends ValueObject<INumericRange> {
|
|
4
|
+
protected readonly _min: number;
|
|
5
|
+
protected readonly _max: number;
|
|
6
|
+
constructor(range: INumericRange);
|
|
7
|
+
get min(): number;
|
|
8
|
+
get max(): number;
|
|
9
|
+
get value(): INumericRange;
|
|
10
|
+
toPrimitives(): INumericRange;
|
|
11
|
+
equals(other: NumericRangeValueObject): boolean;
|
|
12
|
+
protected validate(): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NumericRangeValueObject = void 0;
|
|
4
|
+
const invalid_numeric_range_exception_1 = require("../../exceptions/value-objects/invalid-numeric-range/invalid-numeric-range.exception");
|
|
5
|
+
const value_object_base_1 = require("../base/value-object.base");
|
|
6
|
+
class NumericRangeValueObject extends value_object_base_1.ValueObject {
|
|
7
|
+
constructor(range) {
|
|
8
|
+
super();
|
|
9
|
+
this._min = range.min;
|
|
10
|
+
this._max = range.max;
|
|
11
|
+
this.validate();
|
|
12
|
+
}
|
|
13
|
+
get min() {
|
|
14
|
+
return this._min;
|
|
15
|
+
}
|
|
16
|
+
get max() {
|
|
17
|
+
return this._max;
|
|
18
|
+
}
|
|
19
|
+
get value() {
|
|
20
|
+
return { min: this._min, max: this._max };
|
|
21
|
+
}
|
|
22
|
+
toPrimitives() {
|
|
23
|
+
return { min: this._min, max: this._max };
|
|
24
|
+
}
|
|
25
|
+
equals(other) {
|
|
26
|
+
return this._min === other._min && this._max === other._max;
|
|
27
|
+
}
|
|
28
|
+
validate() {
|
|
29
|
+
if (this._min > this._max) {
|
|
30
|
+
throw new invalid_numeric_range_exception_1.InvalidNumericRangeException(this._min, this._max);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.NumericRangeValueObject = NumericRangeValueObject;
|
|
35
|
+
//# sourceMappingURL=numeric-range.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numeric-range.vo.js","sourceRoot":"","sources":["../../../../../src/shared/domain/value-objects/numeric-range/numeric-range.vo.ts"],"names":[],"mappings":";;;AAAA,0IAA8I;AAE9I,iEAAmF;AAyBnF,MAAa,uBAAwB,SAAQ,+BAA0B;IAmBrE,YAAY,KAAoB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAKD,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAKD,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAKD,IAAW,KAAK;QACd,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IAKM,YAAY;QACjB,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IASM,MAAM,CAAC,KAA8B;QAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;IAC9D,CAAC;IAQS,QAAQ;QAChB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,MAAM,IAAI,8DAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF;AA5ED,0DA4EC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ValueObject } from '@/shared/domain/value-objects/base/value-object.base';
|
|
2
|
+
export declare class PasswordValueObject extends ValueObject<string> {
|
|
3
|
+
private readonly _value;
|
|
4
|
+
constructor(value: string);
|
|
5
|
+
get value(): string;
|
|
6
|
+
equals(other: PasswordValueObject): boolean;
|
|
7
|
+
getStrengthScore(): number;
|
|
8
|
+
getStrengthLevel(): 'weak' | 'medium' | 'strong' | 'very-strong';
|
|
9
|
+
meetsRequirements(): boolean;
|
|
10
|
+
protected validate(): void;
|
|
11
|
+
private checkIsEmpty;
|
|
12
|
+
private checkMinimumLength;
|
|
13
|
+
private checkCommonPasswords;
|
|
14
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PasswordValueObject = void 0;
|
|
4
|
+
const invalid_password_exception_1 = require("../../exceptions/value-objects/invalid-password/invalid-password.exception");
|
|
5
|
+
const value_object_base_1 = require("../base/value-object.base");
|
|
6
|
+
class PasswordValueObject extends value_object_base_1.ValueObject {
|
|
7
|
+
constructor(value) {
|
|
8
|
+
super();
|
|
9
|
+
this._value = value;
|
|
10
|
+
this.validate();
|
|
11
|
+
}
|
|
12
|
+
get value() {
|
|
13
|
+
return this._value;
|
|
14
|
+
}
|
|
15
|
+
equals(other) {
|
|
16
|
+
return this._value === other._value;
|
|
17
|
+
}
|
|
18
|
+
getStrengthScore() {
|
|
19
|
+
let score = 0;
|
|
20
|
+
if (this._value.length >= 8)
|
|
21
|
+
score += 20;
|
|
22
|
+
if (this._value.length >= 12)
|
|
23
|
+
score += 10;
|
|
24
|
+
if (this._value.length >= 16)
|
|
25
|
+
score += 10;
|
|
26
|
+
if (/[a-z]/.test(this._value))
|
|
27
|
+
score += 10;
|
|
28
|
+
if (/[A-Z]/.test(this._value))
|
|
29
|
+
score += 10;
|
|
30
|
+
if (/[0-9]/.test(this._value))
|
|
31
|
+
score += 10;
|
|
32
|
+
if (/[^a-zA-Z0-9]/.test(this._value))
|
|
33
|
+
score += 20;
|
|
34
|
+
if (/(.)\1{2,}/.test(this._value))
|
|
35
|
+
score -= 10;
|
|
36
|
+
if (/123|abc|qwe/i.test(this._value))
|
|
37
|
+
score -= 10;
|
|
38
|
+
return Math.max(0, Math.min(100, score));
|
|
39
|
+
}
|
|
40
|
+
getStrengthLevel() {
|
|
41
|
+
const score = this.getStrengthScore();
|
|
42
|
+
if (score < 30)
|
|
43
|
+
return 'weak';
|
|
44
|
+
if (score < 60)
|
|
45
|
+
return 'medium';
|
|
46
|
+
if (score < 80)
|
|
47
|
+
return 'strong';
|
|
48
|
+
return 'very-strong';
|
|
49
|
+
}
|
|
50
|
+
meetsRequirements() {
|
|
51
|
+
return (this._value.length >= 8 &&
|
|
52
|
+
/[a-z]/.test(this._value) &&
|
|
53
|
+
/[A-Z]/.test(this._value) &&
|
|
54
|
+
/[0-9]/.test(this._value));
|
|
55
|
+
}
|
|
56
|
+
validate() {
|
|
57
|
+
this.checkIsEmpty();
|
|
58
|
+
this.checkMinimumLength();
|
|
59
|
+
this.checkCommonPasswords();
|
|
60
|
+
}
|
|
61
|
+
checkIsEmpty() {
|
|
62
|
+
if (!this._value || this._value.trim() === '') {
|
|
63
|
+
throw new invalid_password_exception_1.InvalidPasswordException('Password cannot be empty');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
checkMinimumLength() {
|
|
67
|
+
if (this._value.length < 8) {
|
|
68
|
+
throw new invalid_password_exception_1.InvalidPasswordException('Password must be at least 8 characters long');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
checkCommonPasswords() {
|
|
72
|
+
const commonPasswords = [
|
|
73
|
+
'password',
|
|
74
|
+
'123456',
|
|
75
|
+
'123456789',
|
|
76
|
+
'qwerty',
|
|
77
|
+
'abc123',
|
|
78
|
+
'password123',
|
|
79
|
+
'admin',
|
|
80
|
+
'letmein',
|
|
81
|
+
'welcome',
|
|
82
|
+
'monkey',
|
|
83
|
+
];
|
|
84
|
+
if (commonPasswords.includes(this._value.toLowerCase())) {
|
|
85
|
+
throw new invalid_password_exception_1.InvalidPasswordException('Password is too common, please choose a stronger password');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.PasswordValueObject = PasswordValueObject;
|
|
90
|
+
//# sourceMappingURL=password.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password.vo.js","sourceRoot":"","sources":["../../../../../src/shared/domain/value-objects/password/password.vo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ValueObject } from '@/shared/domain/value-objects/base/value-object.base';
|
|
2
|
+
export declare class PhoneValueObject extends ValueObject<string> {
|
|
3
|
+
private readonly _value;
|
|
4
|
+
constructor(value: string);
|
|
5
|
+
get value(): string;
|
|
6
|
+
getCountryCode(): string | null;
|
|
7
|
+
getNationalNumber(): string;
|
|
8
|
+
toE164(): string;
|
|
9
|
+
protected validate(): void;
|
|
10
|
+
private checkIsEmpty;
|
|
11
|
+
private checkIsValidPhone;
|
|
12
|
+
private normalize;
|
|
13
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PhoneValueObject = void 0;
|
|
4
|
+
const invalid_phone_exception_1 = require("../../exceptions/value-objects/invalid-phone/invalid-phone.exception");
|
|
5
|
+
const value_object_base_1 = require("../base/value-object.base");
|
|
6
|
+
class PhoneValueObject extends value_object_base_1.ValueObject {
|
|
7
|
+
constructor(value) {
|
|
8
|
+
super();
|
|
9
|
+
this._value = this.normalize(value ?? '');
|
|
10
|
+
this.validate();
|
|
11
|
+
}
|
|
12
|
+
get value() {
|
|
13
|
+
return this._value;
|
|
14
|
+
}
|
|
15
|
+
getCountryCode() {
|
|
16
|
+
const match = this._value.match(/^\+(\d{1,4})/);
|
|
17
|
+
return match ? match[1] : null;
|
|
18
|
+
}
|
|
19
|
+
getNationalNumber() {
|
|
20
|
+
const countryCode = this.getCountryCode();
|
|
21
|
+
if (countryCode) {
|
|
22
|
+
return this._value.replace(`+${countryCode}`, '');
|
|
23
|
+
}
|
|
24
|
+
return this._value;
|
|
25
|
+
}
|
|
26
|
+
toE164() {
|
|
27
|
+
return this._value.startsWith('+') ? this._value : `+${this._value}`;
|
|
28
|
+
}
|
|
29
|
+
validate() {
|
|
30
|
+
this.checkIsEmpty();
|
|
31
|
+
this.checkIsValidPhone();
|
|
32
|
+
}
|
|
33
|
+
checkIsEmpty() {
|
|
34
|
+
if (!this._value || this._value.trim() === '') {
|
|
35
|
+
throw new invalid_phone_exception_1.InvalidPhoneException('Phone number cannot be empty');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
checkIsValidPhone() {
|
|
39
|
+
const internationalPattern = /^\+[1-9]\d{1,14}$/;
|
|
40
|
+
if (!internationalPattern.test(this._value)) {
|
|
41
|
+
throw new invalid_phone_exception_1.InvalidPhoneException('Invalid phone number format');
|
|
42
|
+
}
|
|
43
|
+
if (this._value.length < 8 || this._value.length > 16) {
|
|
44
|
+
throw new invalid_phone_exception_1.InvalidPhoneException('Phone number must be between 7 and 15 digits');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
normalize(value) {
|
|
48
|
+
let normalized = value.replace(/[^\d+]/g, '');
|
|
49
|
+
if (!normalized.startsWith('+')) {
|
|
50
|
+
normalized = '+' + normalized;
|
|
51
|
+
}
|
|
52
|
+
return normalized;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.PhoneValueObject = PhoneValueObject;
|
|
56
|
+
//# sourceMappingURL=phone.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone.vo.js","sourceRoot":"","sources":["../../../../../src/shared/domain/value-objects/phone/phone.vo.ts"],"names":[],"mappings":";;;AAAA,kHAAuH;AACvH,iEAAmF;AASnF,MAAa,gBAAiB,SAAQ,+BAAmB;IAGvD,YAAY,KAAa;QACvB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAMM,cAAc;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IAMM,iBAAiB;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAMM,MAAM;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;IACvE,CAAC;IAES,QAAQ;QAChB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,+CAAqB,CAAC,8BAA8B,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,iBAAiB;QAEvB,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;QAEjD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,+CAAqB,CAAC,6BAA6B,CAAC,CAAC;QACjE,CAAC;QAGD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACtD,MAAM,IAAI,+CAAqB,CAC7B,8CAA8C,CAC/C,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,KAAa;QAE7B,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAG9C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,UAAU,GAAG,GAAG,GAAG,UAAU,CAAC;QAChC,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AAhFD,4CAgFC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { StringValueObject } from '@/shared/domain/value-objects/string/string.vo';
|
|
2
|
+
export declare class PhoneCodeValueObject extends StringValueObject {
|
|
3
|
+
private static readonly PHONE_CODE_PATTERN;
|
|
4
|
+
private static readonly MIN_LENGTH;
|
|
5
|
+
private static readonly MAX_LENGTH;
|
|
6
|
+
private static readonly COMMON_PHONE_CODES;
|
|
7
|
+
constructor(value: string, options?: {
|
|
8
|
+
allowEmpty?: boolean;
|
|
9
|
+
validateExistence?: boolean;
|
|
10
|
+
});
|
|
11
|
+
static fromString(code: string, options?: {
|
|
12
|
+
allowEmpty?: boolean;
|
|
13
|
+
validateExistence?: boolean;
|
|
14
|
+
}): PhoneCodeValueObject;
|
|
15
|
+
static normalizePhoneCode(code: string): string;
|
|
16
|
+
exists(): boolean;
|
|
17
|
+
getNumericCode(): string;
|
|
18
|
+
getFullCode(): string;
|
|
19
|
+
isValidFormat(): boolean;
|
|
20
|
+
isNorthAmerican(): boolean;
|
|
21
|
+
isEuropean(): boolean;
|
|
22
|
+
getRegionName(): string | null;
|
|
23
|
+
private validateExistence;
|
|
24
|
+
equals(other: PhoneCodeValueObject): boolean;
|
|
25
|
+
}
|