@haskou/value-objects 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/errors/BaseError.d.ts +8 -0
- package/dist/src/errors/BaseError.d.ts.map +1 -0
- package/dist/src/errors/BaseError.js +22 -0
- package/dist/src/errors/BaseError.js.map +1 -0
- package/dist/src/errors/DomainError.d.ts +7 -0
- package/dist/src/errors/DomainError.d.ts.map +1 -0
- package/dist/src/errors/DomainError.js +15 -0
- package/dist/src/errors/DomainError.js.map +1 -0
- package/dist/src/errors/InvalidColorError.d.ts +5 -0
- package/dist/src/errors/InvalidColorError.d.ts.map +1 -0
- package/dist/src/errors/InvalidColorError.js +11 -0
- package/dist/src/errors/InvalidColorError.js.map +1 -0
- package/dist/src/errors/InvalidDayError.d.ts +5 -0
- package/dist/src/errors/InvalidDayError.d.ts.map +1 -0
- package/dist/src/errors/InvalidDayError.js +11 -0
- package/dist/src/errors/InvalidDayError.js.map +1 -0
- package/dist/src/errors/InvalidDayFormatError.d.ts +5 -0
- package/dist/src/errors/InvalidDayFormatError.d.ts.map +1 -0
- package/dist/src/errors/InvalidDayFormatError.js +11 -0
- package/dist/src/errors/InvalidDayFormatError.js.map +1 -0
- package/dist/src/errors/InvalidEmailError.d.ts +5 -0
- package/dist/src/errors/InvalidEmailError.d.ts.map +1 -0
- package/dist/src/errors/InvalidEmailError.js +11 -0
- package/dist/src/errors/InvalidEmailError.js.map +1 -0
- package/dist/src/errors/InvalidFormatError.d.ts +5 -0
- package/dist/src/errors/InvalidFormatError.d.ts.map +1 -0
- package/dist/src/errors/InvalidFormatError.js +11 -0
- package/dist/src/errors/InvalidFormatError.js.map +1 -0
- package/dist/src/errors/InvalidHashError.d.ts +5 -0
- package/dist/src/errors/InvalidHashError.d.ts.map +1 -0
- package/dist/src/errors/InvalidHashError.js +11 -0
- package/dist/src/errors/InvalidHashError.js.map +1 -0
- package/dist/src/errors/InvalidHourError.d.ts +5 -0
- package/dist/src/errors/InvalidHourError.d.ts.map +1 -0
- package/dist/src/errors/InvalidHourError.js +11 -0
- package/dist/src/errors/InvalidHourError.js.map +1 -0
- package/dist/src/errors/InvalidIntegerError.d.ts +5 -0
- package/dist/src/errors/InvalidIntegerError.d.ts.map +1 -0
- package/dist/src/errors/InvalidIntegerError.js +11 -0
- package/dist/src/errors/InvalidIntegerError.js.map +1 -0
- package/dist/src/errors/InvalidLatitudeError.d.ts +5 -0
- package/dist/src/errors/InvalidLatitudeError.d.ts.map +1 -0
- package/dist/src/errors/InvalidLatitudeError.js +11 -0
- package/dist/src/errors/InvalidLatitudeError.js.map +1 -0
- package/dist/src/errors/InvalidLengthError.d.ts +5 -0
- package/dist/src/errors/InvalidLengthError.d.ts.map +1 -0
- package/dist/src/errors/InvalidLengthError.js +11 -0
- package/dist/src/errors/InvalidLengthError.js.map +1 -0
- package/dist/src/errors/InvalidLongitudeError.d.ts +5 -0
- package/dist/src/errors/InvalidLongitudeError.d.ts.map +1 -0
- package/dist/src/errors/InvalidLongitudeError.js +11 -0
- package/dist/src/errors/InvalidLongitudeError.js.map +1 -0
- package/dist/src/errors/InvalidMinutesError.d.ts +5 -0
- package/dist/src/errors/InvalidMinutesError.d.ts.map +1 -0
- package/dist/src/errors/InvalidMinutesError.js +11 -0
- package/dist/src/errors/InvalidMinutesError.js.map +1 -0
- package/dist/src/errors/InvalidNumberError.d.ts +5 -0
- package/dist/src/errors/InvalidNumberError.d.ts.map +1 -0
- package/dist/src/errors/InvalidNumberError.js +11 -0
- package/dist/src/errors/InvalidNumberError.js.map +1 -0
- package/dist/src/errors/InvalidPositiveNumberError.d.ts +5 -0
- package/dist/src/errors/InvalidPositiveNumberError.d.ts.map +1 -0
- package/dist/src/errors/InvalidPositiveNumberError.js +11 -0
- package/dist/src/errors/InvalidPositiveNumberError.js.map +1 -0
- package/dist/src/errors/InvalidStringLengthError.d.ts +5 -0
- package/dist/src/errors/InvalidStringLengthError.d.ts.map +1 -0
- package/dist/src/errors/InvalidStringLengthError.js +11 -0
- package/dist/src/errors/InvalidStringLengthError.js.map +1 -0
- package/dist/src/errors/InvalidTimestampIntervalError.d.ts +6 -0
- package/dist/src/errors/InvalidTimestampIntervalError.d.ts.map +1 -0
- package/dist/src/errors/InvalidTimestampIntervalError.js +11 -0
- package/dist/src/errors/InvalidTimestampIntervalError.js.map +1 -0
- package/dist/src/errors/InvalidValueError.d.ts +5 -0
- package/dist/src/errors/InvalidValueError.d.ts.map +1 -0
- package/dist/src/errors/InvalidValueError.js +11 -0
- package/dist/src/errors/InvalidValueError.js.map +1 -0
- package/dist/src/errors/NullObjectError.d.ts +5 -0
- package/dist/src/errors/NullObjectError.d.ts.map +1 -0
- package/dist/src/errors/NullObjectError.js +12 -0
- package/dist/src/errors/NullObjectError.js.map +1 -0
- package/dist/src/errors/ValueNotInEnumError.d.ts +5 -0
- package/dist/src/errors/ValueNotInEnumError.d.ts.map +1 -0
- package/dist/src/errors/ValueNotInEnumError.js +11 -0
- package/dist/src/errors/ValueNotInEnumError.js.map +1 -0
- package/{src/errors/index.ts → dist/src/errors/index.d.ts} +1 -0
- package/dist/src/errors/index.d.ts.map +1 -0
- package/dist/src/errors/index.js +24 -0
- package/dist/src/errors/index.js.map +1 -0
- package/{src/index.ts → dist/src/index.d.ts} +1 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +9 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/interfaces/PrimitiveOf.d.ts +5 -0
- package/dist/src/interfaces/PrimitiveOf.d.ts.map +1 -0
- package/dist/src/interfaces/PrimitiveOf.js +3 -0
- package/dist/src/interfaces/PrimitiveOf.js.map +1 -0
- package/dist/src/interfaces/index.d.ts +2 -0
- package/dist/src/interfaces/index.d.ts.map +1 -0
- package/dist/src/interfaces/index.js +5 -0
- package/dist/src/interfaces/index.js.map +1 -0
- package/dist/src/patterns/Assert.d.ts +5 -0
- package/dist/src/patterns/Assert.d.ts.map +1 -0
- package/dist/src/patterns/Assert.js +11 -0
- package/dist/src/patterns/Assert.js.map +1 -0
- package/dist/src/patterns/index.d.ts +2 -0
- package/dist/src/patterns/index.d.ts.map +1 -0
- package/dist/src/patterns/index.js +5 -0
- package/dist/src/patterns/index.js.map +1 -0
- package/{src/types/Nullish.ts → dist/src/types/Nullish.d.ts} +1 -0
- package/dist/src/types/Nullish.d.ts.map +1 -0
- package/dist/src/types/Nullish.js +3 -0
- package/dist/src/types/Nullish.js.map +1 -0
- package/{src/types/Primitive.ts → dist/src/types/Primitive.d.ts} +1 -0
- package/dist/src/types/Primitive.d.ts.map +1 -0
- package/dist/src/types/Primitive.js +3 -0
- package/dist/src/types/Primitive.js.map +1 -0
- package/{src/types/index.ts → dist/src/types/index.d.ts} +1 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +6 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/value-objects/Color.d.ts +19 -0
- package/dist/src/value-objects/Color.d.ts.map +1 -0
- package/dist/src/value-objects/Color.js +37 -0
- package/dist/src/value-objects/Color.js.map +1 -0
- package/dist/src/value-objects/Email.d.ts +6 -0
- package/dist/src/value-objects/Email.d.ts.map +1 -0
- package/dist/src/value-objects/Email.js +21 -0
- package/dist/src/value-objects/Email.js.map +1 -0
- package/dist/src/value-objects/Enum.d.ts +9 -0
- package/dist/src/value-objects/Enum.d.ts.map +1 -0
- package/dist/src/value-objects/Enum.js +24 -0
- package/dist/src/value-objects/Enum.js.map +1 -0
- package/dist/src/value-objects/Integer.d.ts +6 -0
- package/dist/src/value-objects/Integer.d.ts.map +1 -0
- package/dist/src/value-objects/Integer.js +21 -0
- package/dist/src/value-objects/Integer.js.map +1 -0
- package/dist/src/value-objects/NullObject.d.ts +8 -0
- package/dist/src/value-objects/NullObject.d.ts.map +1 -0
- package/dist/src/value-objects/NullObject.js +43 -0
- package/dist/src/value-objects/NullObject.js.map +1 -0
- package/dist/src/value-objects/NumberValueObject.d.ts +15 -0
- package/dist/src/value-objects/NumberValueObject.d.ts.map +1 -0
- package/dist/src/value-objects/NumberValueObject.js +48 -0
- package/dist/src/value-objects/NumberValueObject.js.map +1 -0
- package/dist/src/value-objects/PositiveNumber.d.ts +6 -0
- package/dist/src/value-objects/PositiveNumber.d.ts.map +1 -0
- package/dist/src/value-objects/PositiveNumber.js +21 -0
- package/dist/src/value-objects/PositiveNumber.js.map +1 -0
- package/dist/src/value-objects/StringValueObject.d.ts +7 -0
- package/dist/src/value-objects/StringValueObject.d.ts.map +1 -0
- package/dist/src/value-objects/StringValueObject.js +24 -0
- package/dist/src/value-objects/StringValueObject.js.map +1 -0
- package/dist/src/value-objects/ValueObject.d.ts +12 -0
- package/dist/src/value-objects/ValueObject.d.ts.map +1 -0
- package/dist/src/value-objects/ValueObject.js +33 -0
- package/dist/src/value-objects/ValueObject.js.map +1 -0
- package/dist/src/value-objects/coordinates/Coordinates.d.ts +12 -0
- package/dist/src/value-objects/coordinates/Coordinates.d.ts.map +1 -0
- package/dist/src/value-objects/coordinates/Coordinates.js +28 -0
- package/dist/src/value-objects/coordinates/Coordinates.js.map +1 -0
- package/dist/src/value-objects/coordinates/Latitude.d.ts +8 -0
- package/dist/src/value-objects/coordinates/Latitude.d.ts.map +1 -0
- package/dist/src/value-objects/coordinates/Latitude.js +21 -0
- package/dist/src/value-objects/coordinates/Latitude.js.map +1 -0
- package/dist/src/value-objects/coordinates/Longitude.d.ts +8 -0
- package/dist/src/value-objects/coordinates/Longitude.d.ts.map +1 -0
- package/dist/src/value-objects/coordinates/Longitude.js +21 -0
- package/dist/src/value-objects/coordinates/Longitude.js.map +1 -0
- package/{src/value-objects/coordinates/index.ts → dist/src/value-objects/coordinates/index.d.ts} +1 -0
- package/dist/src/value-objects/coordinates/index.d.ts.map +1 -0
- package/dist/src/value-objects/coordinates/index.js +7 -0
- package/dist/src/value-objects/coordinates/index.js.map +1 -0
- package/dist/src/value-objects/hashes/Hash.d.ts +7 -0
- package/dist/src/value-objects/hashes/Hash.d.ts.map +1 -0
- package/dist/src/value-objects/hashes/Hash.js +19 -0
- package/dist/src/value-objects/hashes/Hash.js.map +1 -0
- package/dist/src/value-objects/hashes/MD5Hash.d.ts +8 -0
- package/dist/src/value-objects/hashes/MD5Hash.d.ts.map +1 -0
- package/dist/src/value-objects/hashes/MD5Hash.js +26 -0
- package/dist/src/value-objects/hashes/MD5Hash.js.map +1 -0
- package/dist/src/value-objects/hashes/SHA256Hash.d.ts +9 -0
- package/dist/src/value-objects/hashes/SHA256Hash.d.ts.map +1 -0
- package/dist/src/value-objects/hashes/SHA256Hash.js +29 -0
- package/dist/src/value-objects/hashes/SHA256Hash.js.map +1 -0
- package/dist/src/value-objects/hashes/SHA512Hash.d.ts +9 -0
- package/dist/src/value-objects/hashes/SHA512Hash.d.ts.map +1 -0
- package/dist/src/value-objects/hashes/SHA512Hash.js +29 -0
- package/dist/src/value-objects/hashes/SHA512Hash.js.map +1 -0
- package/{src/value-objects/hashes/index.ts → dist/src/value-objects/hashes/index.d.ts} +1 -0
- package/dist/src/value-objects/hashes/index.d.ts.map +1 -0
- package/dist/src/value-objects/hashes/index.js +8 -0
- package/dist/src/value-objects/hashes/index.js.map +1 -0
- package/dist/src/value-objects/ids/ShortId.d.ts +10 -0
- package/dist/src/value-objects/ids/ShortId.d.ts.map +1 -0
- package/dist/src/value-objects/ids/ShortId.js +30 -0
- package/dist/src/value-objects/ids/ShortId.js.map +1 -0
- package/dist/src/value-objects/ids/UUID.d.ts +10 -0
- package/dist/src/value-objects/ids/UUID.d.ts.map +1 -0
- package/dist/src/value-objects/ids/UUID.js +29 -0
- package/dist/src/value-objects/ids/UUID.js.map +1 -0
- package/dist/src/value-objects/ids/index.d.ts +3 -0
- package/dist/src/value-objects/ids/index.d.ts.map +1 -0
- package/dist/src/value-objects/ids/index.js +6 -0
- package/dist/src/value-objects/ids/index.js.map +1 -0
- package/{src/value-objects/index.ts → dist/src/value-objects/index.d.ts} +2 -0
- package/dist/src/value-objects/index.d.ts.map +1 -0
- package/dist/src/value-objects/index.js +16 -0
- package/dist/src/value-objects/index.js.map +1 -0
- package/dist/src/value-objects/time/CalendarDay.d.ts +25 -0
- package/dist/src/value-objects/time/CalendarDay.d.ts.map +1 -0
- package/dist/src/value-objects/time/CalendarDay.js +74 -0
- package/dist/src/value-objects/time/CalendarDay.js.map +1 -0
- package/dist/src/value-objects/time/Day.d.ts +7 -0
- package/dist/src/value-objects/time/Day.d.ts.map +1 -0
- package/dist/src/value-objects/time/Day.js +18 -0
- package/dist/src/value-objects/time/Day.js.map +1 -0
- package/dist/src/value-objects/time/DayOfWeek.d.ts +34 -0
- package/dist/src/value-objects/time/DayOfWeek.d.ts.map +1 -0
- package/dist/src/value-objects/time/DayOfWeek.js +52 -0
- package/dist/src/value-objects/time/DayOfWeek.js.map +1 -0
- package/dist/src/value-objects/time/Duration.d.ts +23 -0
- package/dist/src/value-objects/time/Duration.d.ts.map +1 -0
- package/dist/src/value-objects/time/Duration.js +79 -0
- package/dist/src/value-objects/time/Duration.js.map +1 -0
- package/dist/src/value-objects/time/Hour.d.ts +15 -0
- package/dist/src/value-objects/time/Hour.d.ts.map +1 -0
- package/dist/src/value-objects/time/Hour.js +81 -0
- package/dist/src/value-objects/time/Hour.js.map +1 -0
- package/dist/src/value-objects/time/Month.d.ts +18 -0
- package/dist/src/value-objects/time/Month.d.ts.map +1 -0
- package/dist/src/value-objects/time/Month.js +41 -0
- package/dist/src/value-objects/time/Month.js.map +1 -0
- package/dist/src/value-objects/time/MonthOfYear.d.ts +17 -0
- package/dist/src/value-objects/time/MonthOfYear.d.ts.map +1 -0
- package/dist/src/value-objects/time/MonthOfYear.js +45 -0
- package/dist/src/value-objects/time/MonthOfYear.js.map +1 -0
- package/dist/src/value-objects/time/Timestamp.d.ts +51 -0
- package/dist/src/value-objects/time/Timestamp.d.ts.map +1 -0
- package/dist/src/value-objects/time/Timestamp.js +156 -0
- package/dist/src/value-objects/time/Timestamp.js.map +1 -0
- package/dist/src/value-objects/time/TimestampInterval.d.ts +26 -0
- package/dist/src/value-objects/time/TimestampInterval.d.ts.map +1 -0
- package/dist/src/value-objects/time/TimestampInterval.js +88 -0
- package/dist/src/value-objects/time/TimestampInterval.js.map +1 -0
- package/dist/src/value-objects/time/Year.d.ts +10 -0
- package/dist/src/value-objects/time/Year.d.ts.map +1 -0
- package/dist/src/value-objects/time/Year.js +26 -0
- package/dist/src/value-objects/time/Year.js.map +1 -0
- package/{src/value-objects/time/index.ts → dist/src/value-objects/time/index.d.ts} +1 -0
- package/dist/src/value-objects/time/index.d.ts.map +1 -0
- package/dist/src/value-objects/time/index.js +14 -0
- package/dist/src/value-objects/time/index.js.map +1 -0
- package/dist/tests/errors/BaseError.spec.d.ts +2 -0
- package/dist/tests/errors/BaseError.spec.d.ts.map +1 -0
- package/dist/tests/errors/BaseError.spec.js +54 -0
- package/dist/tests/errors/BaseError.spec.js.map +1 -0
- package/dist/tests/errors/DomainError.spec.d.ts +2 -0
- package/dist/tests/errors/DomainError.spec.d.ts.map +1 -0
- package/dist/tests/errors/DomainError.spec.js +47 -0
- package/dist/tests/errors/DomainError.spec.js.map +1 -0
- package/dist/tests/patterns/Assert.spec.d.ts +2 -0
- package/dist/tests/patterns/Assert.spec.d.ts.map +1 -0
- package/dist/tests/patterns/Assert.spec.js +27 -0
- package/dist/tests/patterns/Assert.spec.js.map +1 -0
- package/dist/tests/setup.jest.d.ts +2 -0
- package/dist/tests/setup.jest.d.ts.map +1 -0
- package/dist/tests/setup.jest.js +6 -0
- package/dist/tests/setup.jest.js.map +1 -0
- package/dist/tests/value-objects/Color.spec.d.ts +2 -0
- package/dist/tests/value-objects/Color.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/Color.spec.js +171 -0
- package/dist/tests/value-objects/Color.spec.js.map +1 -0
- package/dist/tests/value-objects/Email.spec.d.ts +2 -0
- package/dist/tests/value-objects/Email.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/Email.spec.js +117 -0
- package/dist/tests/value-objects/Email.spec.js.map +1 -0
- package/dist/tests/value-objects/Enum.spec.d.ts +2 -0
- package/dist/tests/value-objects/Enum.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/Enum.spec.js +233 -0
- package/dist/tests/value-objects/Enum.spec.js.map +1 -0
- package/dist/tests/value-objects/Integer.spec.d.ts +2 -0
- package/dist/tests/value-objects/Integer.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/Integer.spec.js +31 -0
- package/dist/tests/value-objects/Integer.spec.js.map +1 -0
- package/dist/tests/value-objects/NullObject.spec.d.ts +2 -0
- package/dist/tests/value-objects/NullObject.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/NullObject.spec.js +48 -0
- package/dist/tests/value-objects/NullObject.spec.js.map +1 -0
- package/dist/tests/value-objects/NumberValueObject.spec.d.ts +2 -0
- package/dist/tests/value-objects/NumberValueObject.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/NumberValueObject.spec.js +333 -0
- package/dist/tests/value-objects/NumberValueObject.spec.js.map +1 -0
- package/dist/tests/value-objects/PositiveNumber.spec.d.ts +2 -0
- package/dist/tests/value-objects/PositiveNumber.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/PositiveNumber.spec.js +209 -0
- package/dist/tests/value-objects/PositiveNumber.spec.js.map +1 -0
- package/dist/tests/value-objects/StringValueObject.spec.d.ts +2 -0
- package/dist/tests/value-objects/StringValueObject.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/StringValueObject.spec.js +104 -0
- package/dist/tests/value-objects/StringValueObject.spec.js.map +1 -0
- package/dist/tests/value-objects/coordinates/Coordinates.spec.d.ts +2 -0
- package/dist/tests/value-objects/coordinates/Coordinates.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/coordinates/Coordinates.spec.js +76 -0
- package/dist/tests/value-objects/coordinates/Coordinates.spec.js.map +1 -0
- package/dist/tests/value-objects/coordinates/Latitude.spec.d.ts +2 -0
- package/dist/tests/value-objects/coordinates/Latitude.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/coordinates/Latitude.spec.js +23 -0
- package/dist/tests/value-objects/coordinates/Latitude.spec.js.map +1 -0
- package/dist/tests/value-objects/coordinates/Longitude.spec.d.ts +2 -0
- package/dist/tests/value-objects/coordinates/Longitude.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/coordinates/Longitude.spec.js +23 -0
- package/dist/tests/value-objects/coordinates/Longitude.spec.js.map +1 -0
- package/dist/tests/value-objects/hashes/Hashes.spec.d.ts +2 -0
- package/dist/tests/value-objects/hashes/Hashes.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/hashes/Hashes.spec.js +107 -0
- package/dist/tests/value-objects/hashes/Hashes.spec.js.map +1 -0
- package/dist/tests/value-objects/hashes/MD5Hash.spec.d.ts +2 -0
- package/dist/tests/value-objects/hashes/MD5Hash.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/hashes/MD5Hash.spec.js +147 -0
- package/dist/tests/value-objects/hashes/MD5Hash.spec.js.map +1 -0
- package/dist/tests/value-objects/hashes/SHA256Hash.spec.d.ts +2 -0
- package/dist/tests/value-objects/hashes/SHA256Hash.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/hashes/SHA256Hash.spec.js +147 -0
- package/dist/tests/value-objects/hashes/SHA256Hash.spec.js.map +1 -0
- package/dist/tests/value-objects/hashes/SHA512Hash.spec.d.ts +2 -0
- package/dist/tests/value-objects/hashes/SHA512Hash.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/hashes/SHA512Hash.spec.js +147 -0
- package/dist/tests/value-objects/hashes/SHA512Hash.spec.js.map +1 -0
- package/dist/tests/value-objects/ids/ShortId.spec.d.ts +2 -0
- package/dist/tests/value-objects/ids/ShortId.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/ids/ShortId.spec.js +30 -0
- package/dist/tests/value-objects/ids/ShortId.spec.js.map +1 -0
- package/dist/tests/value-objects/ids/UUID.spec.d.ts +2 -0
- package/dist/tests/value-objects/ids/UUID.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/ids/UUID.spec.js +30 -0
- package/dist/tests/value-objects/ids/UUID.spec.js.map +1 -0
- package/dist/tests/value-objects/time/CalendarDay.spec.d.ts +2 -0
- package/dist/tests/value-objects/time/CalendarDay.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/time/CalendarDay.spec.js +149 -0
- package/dist/tests/value-objects/time/CalendarDay.spec.js.map +1 -0
- package/dist/tests/value-objects/time/Day.spec.d.ts +2 -0
- package/dist/tests/value-objects/time/Day.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/time/Day.spec.js +28 -0
- package/dist/tests/value-objects/time/Day.spec.js.map +1 -0
- package/dist/tests/value-objects/time/DayOfWeek.spec.d.ts +2 -0
- package/dist/tests/value-objects/time/DayOfWeek.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/time/DayOfWeek.spec.js +44 -0
- package/dist/tests/value-objects/time/DayOfWeek.spec.js.map +1 -0
- package/dist/tests/value-objects/time/Duration.spec.d.ts +2 -0
- package/dist/tests/value-objects/time/Duration.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/time/Duration.spec.js +255 -0
- package/dist/tests/value-objects/time/Duration.spec.js.map +1 -0
- package/dist/tests/value-objects/time/Hour.spec.d.ts +2 -0
- package/dist/tests/value-objects/time/Hour.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/time/Hour.spec.js +168 -0
- package/dist/tests/value-objects/time/Hour.spec.js.map +1 -0
- package/dist/tests/value-objects/time/MonthOfYear.spec.d.ts +2 -0
- package/dist/tests/value-objects/time/MonthOfYear.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/time/MonthOfYear.spec.js +93 -0
- package/dist/tests/value-objects/time/MonthOfYear.spec.js.map +1 -0
- package/dist/tests/value-objects/time/Timestamp.spec.d.ts +2 -0
- package/dist/tests/value-objects/time/Timestamp.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/time/Timestamp.spec.js +391 -0
- package/dist/tests/value-objects/time/Timestamp.spec.js.map +1 -0
- package/dist/tests/value-objects/time/TimestampInterval.spec.d.ts +2 -0
- package/dist/tests/value-objects/time/TimestampInterval.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/time/TimestampInterval.spec.js +270 -0
- package/dist/tests/value-objects/time/TimestampInterval.spec.js.map +1 -0
- package/dist/tests/value-objects/time/Year.spec.d.ts +2 -0
- package/dist/tests/value-objects/time/Year.spec.d.ts.map +1 -0
- package/dist/tests/value-objects/time/Year.spec.js +41 -0
- package/dist/tests/value-objects/time/Year.spec.js.map +1 -0
- package/package.json +6 -2
- package/.editorconfig +0 -15
- package/.eslintignore +0 -3
- package/.eslintrc.json +0 -218
- package/.prettierrc.json +0 -13
- package/TECHNICAL_DOCUMENTATION.md +0 -1257
- package/jest.config.ts +0 -30
- package/src/errors/BaseError.ts +0 -20
- package/src/errors/DomainError.ts +0 -12
- package/src/errors/InvalidColorError.ts +0 -7
- package/src/errors/InvalidDayError.ts +0 -7
- package/src/errors/InvalidDayFormatError.ts +0 -7
- package/src/errors/InvalidEmailError.ts +0 -7
- package/src/errors/InvalidFormatError.ts +0 -7
- package/src/errors/InvalidHashError.ts +0 -7
- package/src/errors/InvalidHourError.ts +0 -7
- package/src/errors/InvalidIntegerError.ts +0 -7
- package/src/errors/InvalidLatitudeError.ts +0 -7
- package/src/errors/InvalidLengthError.ts +0 -9
- package/src/errors/InvalidLongitudeError.ts +0 -7
- package/src/errors/InvalidMinutesError.ts +0 -7
- package/src/errors/InvalidNumberError.ts +0 -7
- package/src/errors/InvalidPositiveNumberError.ts +0 -7
- package/src/errors/InvalidStringLengthError.ts +0 -9
- package/src/errors/InvalidTimestampIntervalError.ts +0 -10
- package/src/errors/InvalidValueError.ts +0 -7
- package/src/errors/NullObjectError.ts +0 -8
- package/src/errors/ValueNotInEnumError.ts +0 -9
- package/src/interfaces/PrimitiveOf.ts +0 -5
- package/src/interfaces/index.ts +0 -1
- package/src/patterns/Assert.ts +0 -15
- package/src/patterns/index.ts +0 -1
- package/src/value-objects/Color.ts +0 -39
- package/src/value-objects/Email.ts +0 -23
- package/src/value-objects/Enum.ts +0 -31
- package/src/value-objects/Integer.ts +0 -22
- package/src/value-objects/NullObject.ts +0 -60
- package/src/value-objects/NumberValueObject.ts +0 -56
- package/src/value-objects/PositiveNumber.ts +0 -20
- package/src/value-objects/StringValueObject.ts +0 -27
- package/src/value-objects/ValueObject.ts +0 -39
- package/src/value-objects/coordinates/Coordinates.ts +0 -30
- package/src/value-objects/coordinates/Latitude.ts +0 -22
- package/src/value-objects/coordinates/Longitude.ts +0 -25
- package/src/value-objects/hashes/Hash.ts +0 -19
- package/src/value-objects/hashes/MD5Hash.ts +0 -32
- package/src/value-objects/hashes/SHA256Hash.ts +0 -38
- package/src/value-objects/hashes/SHA512Hash.ts +0 -38
- package/src/value-objects/ids/ShortId.ts +0 -34
- package/src/value-objects/ids/UUID.ts +0 -34
- package/src/value-objects/time/CalendarDay.ts +0 -91
- package/src/value-objects/time/Day.ts +0 -17
- package/src/value-objects/time/DayOfWeek.ts +0 -60
- package/src/value-objects/time/Duration.ts +0 -142
- package/src/value-objects/time/Hour.ts +0 -105
- package/src/value-objects/time/Month.ts +0 -39
- package/src/value-objects/time/MonthOfYear.ts +0 -52
- package/src/value-objects/time/Timestamp.ts +0 -208
- package/src/value-objects/time/TimestampInterval.ts +0 -122
- package/src/value-objects/time/Year.ts +0 -27
- package/tests/errors/BaseError.spec.ts +0 -63
- package/tests/errors/DomainError.spec.ts +0 -52
- package/tests/patterns/Assert.spec.ts +0 -29
- package/tests/setup.jest.ts +0 -2
- package/tests/value-objects/Color.spec.ts +0 -214
- package/tests/value-objects/Email.spec.ts +0 -141
- package/tests/value-objects/Enum.spec.ts +0 -293
- package/tests/value-objects/Integer.spec.ts +0 -38
- package/tests/value-objects/NullObject.spec.ts +0 -55
- package/tests/value-objects/NumberValueObject.spec.ts +0 -446
- package/tests/value-objects/PositiveNumber.spec.ts +0 -274
- package/tests/value-objects/StringValueObject.spec.ts +0 -135
- package/tests/value-objects/coordinates/Coordinates.spec.ts +0 -90
- package/tests/value-objects/coordinates/Latitude.spec.ts +0 -24
- package/tests/value-objects/coordinates/Longitude.spec.ts +0 -24
- package/tests/value-objects/hashes/Hashes.spec.ts +0 -139
- package/tests/value-objects/hashes/MD5Hash.spec.ts +0 -187
- package/tests/value-objects/hashes/SHA256Hash.spec.ts +0 -220
- package/tests/value-objects/hashes/SHA512Hash.spec.ts +0 -220
- package/tests/value-objects/ids/ShortId.spec.ts +0 -34
- package/tests/value-objects/ids/UUID.spec.ts +0 -37
- package/tests/value-objects/time/CalendarDay.spec.ts +0 -182
- package/tests/value-objects/time/Day.spec.ts +0 -29
- package/tests/value-objects/time/DayOfWeek.spec.ts +0 -71
- package/tests/value-objects/time/Duration.spec.ts +0 -278
- package/tests/value-objects/time/Hour.spec.ts +0 -197
- package/tests/value-objects/time/MonthOfYear.spec.ts +0 -111
- package/tests/value-objects/time/Timestamp.spec.ts +0 -497
- package/tests/value-objects/time/TimestampInterval.spec.ts +0 -383
- package/tests/value-objects/time/Year.spec.ts +0 -48
- package/tsconfig.jest.json +0 -33
- package/tsconfig.json +0 -42
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { InvalidLongitudeError } from '../../errors/InvalidLongitudeError';
|
|
2
|
-
import { assert } from '../../patterns/Assert';
|
|
3
|
-
import { NumberValueObject } from '../NumberValueObject';
|
|
4
|
-
|
|
5
|
-
export class Longitude extends NumberValueObject {
|
|
6
|
-
private static MIN_VALUE = new NumberValueObject(-180);
|
|
7
|
-
private static MAX_VALUE = new NumberValueObject(180);
|
|
8
|
-
|
|
9
|
-
private static isValid(value: number | NumberValueObject): boolean {
|
|
10
|
-
const numberValue = new NumberValueObject(value.valueOf());
|
|
11
|
-
|
|
12
|
-
return (
|
|
13
|
-
numberValue.isGreaterOrEqualThan(this.MIN_VALUE) &&
|
|
14
|
-
numberValue.isLessOrEqualThan(this.MAX_VALUE)
|
|
15
|
-
);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
constructor(value: number | NumberValueObject) {
|
|
19
|
-
super(value.valueOf());
|
|
20
|
-
assert(
|
|
21
|
-
Longitude.isValid(value),
|
|
22
|
-
new InvalidLongitudeError(value.valueOf()),
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { NullObject } from '../NullObject';
|
|
2
|
-
import { StringValueObject } from '../StringValueObject';
|
|
3
|
-
import { ValueObject } from '../ValueObject';
|
|
4
|
-
|
|
5
|
-
export abstract class Hash extends ValueObject<string> {
|
|
6
|
-
constructor(source: string | StringValueObject) {
|
|
7
|
-
super(source?.valueOf());
|
|
8
|
-
|
|
9
|
-
if (NullObject.isNullObject(this)) {
|
|
10
|
-
return this;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
public toBase64(): StringValueObject {
|
|
15
|
-
return new StringValueObject(
|
|
16
|
-
Buffer.from(this.valueOf(), 'hex').toString('base64'),
|
|
17
|
-
);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import crypto from 'node:crypto';
|
|
2
|
-
|
|
3
|
-
import { InvalidHashError } from '../../errors/InvalidHashError';
|
|
4
|
-
import { assert } from '../../patterns';
|
|
5
|
-
import { NullObject } from '../NullObject';
|
|
6
|
-
import { StringValueObject } from '../StringValueObject';
|
|
7
|
-
import { Hash } from './Hash';
|
|
8
|
-
|
|
9
|
-
export class MD5Hash extends Hash {
|
|
10
|
-
public static isValid(hash: string | StringValueObject): boolean {
|
|
11
|
-
return !!hash.valueOf().match(/^[a-f0-9]{32}$/);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
public static from(buffer: Buffer | string | StringValueObject): MD5Hash {
|
|
15
|
-
return new MD5Hash(
|
|
16
|
-
crypto.createHash('md5').update(buffer.valueOf()).digest('hex'),
|
|
17
|
-
);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
constructor(source: string | StringValueObject) {
|
|
21
|
-
super(source?.valueOf());
|
|
22
|
-
|
|
23
|
-
if (NullObject.isNullObject(this)) {
|
|
24
|
-
return this;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
assert(
|
|
28
|
-
MD5Hash.isValid(this.valueOf()),
|
|
29
|
-
new InvalidHashError('MD5', source.valueOf()),
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { createHash } from 'crypto';
|
|
2
|
-
|
|
3
|
-
import { InvalidHashError } from '../../errors/InvalidHashError';
|
|
4
|
-
import { assert } from '../../patterns';
|
|
5
|
-
import { NullObject } from '../NullObject';
|
|
6
|
-
import { StringValueObject } from '../StringValueObject';
|
|
7
|
-
import { ValueObject } from '../ValueObject';
|
|
8
|
-
|
|
9
|
-
export class SHA256Hash extends ValueObject<string> {
|
|
10
|
-
public static isValid(hash: string | StringValueObject): boolean {
|
|
11
|
-
return !!hash.valueOf().match(/^[a-f0-9]{64}$/i);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
public static from(buffer: Buffer | string | StringValueObject): SHA256Hash {
|
|
15
|
-
return new SHA256Hash(
|
|
16
|
-
createHash('sha256').update(buffer.valueOf()).digest('hex'),
|
|
17
|
-
);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
constructor(source: string | StringValueObject) {
|
|
21
|
-
super(source?.valueOf());
|
|
22
|
-
|
|
23
|
-
if (NullObject.isNullObject(this)) {
|
|
24
|
-
return this;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
assert(
|
|
28
|
-
SHA256Hash.isValid(this.valueOf()),
|
|
29
|
-
new InvalidHashError('SHA256', source.valueOf()),
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
public toBase64(): StringValueObject {
|
|
34
|
-
return new StringValueObject(
|
|
35
|
-
Buffer.from(this.valueOf(), 'hex').toString('base64'),
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { createHash } from 'crypto';
|
|
2
|
-
|
|
3
|
-
import { InvalidHashError } from '../../errors/InvalidHashError';
|
|
4
|
-
import { assert } from '../../patterns';
|
|
5
|
-
import { NullObject } from '../NullObject';
|
|
6
|
-
import { StringValueObject } from '../StringValueObject';
|
|
7
|
-
import { ValueObject } from '../ValueObject';
|
|
8
|
-
|
|
9
|
-
export class SHA512Hash extends ValueObject<string> {
|
|
10
|
-
public static isValid(hash: string | StringValueObject): boolean {
|
|
11
|
-
return !!hash.valueOf().match(/^[a-f0-9]{128}$/i);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
public static from(buffer: Buffer | string | StringValueObject): SHA512Hash {
|
|
15
|
-
return new SHA512Hash(
|
|
16
|
-
createHash('sha512').update(buffer.valueOf()).digest('hex'),
|
|
17
|
-
);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
constructor(source: string | StringValueObject) {
|
|
21
|
-
super(source?.valueOf());
|
|
22
|
-
|
|
23
|
-
if (NullObject.isNullObject(this)) {
|
|
24
|
-
return this;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
assert(
|
|
28
|
-
SHA512Hash.isValid(this.valueOf()),
|
|
29
|
-
new InvalidHashError('SHA512', source.valueOf()),
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
public toBase64(): StringValueObject {
|
|
34
|
-
return new StringValueObject(
|
|
35
|
-
Buffer.from(this.valueOf(), 'hex').toString('base64'),
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import ObjectId from 'bson-objectid';
|
|
2
|
-
|
|
3
|
-
import { InvalidFormatError } from '../../errors/InvalidFormatError';
|
|
4
|
-
import { InvalidLengthError } from '../../errors/InvalidLengthError';
|
|
5
|
-
import { assert } from '../../patterns';
|
|
6
|
-
import { NullObject } from '../NullObject';
|
|
7
|
-
import { StringValueObject } from '../StringValueObject';
|
|
8
|
-
import { ValueObject } from '../ValueObject';
|
|
9
|
-
|
|
10
|
-
export class ShortId extends ValueObject<string> {
|
|
11
|
-
private static readonly LENGTH = 24;
|
|
12
|
-
private static readonly PATTERN = new RegExp(`[a-zA-Z0-9]{${this.LENGTH}}$`);
|
|
13
|
-
|
|
14
|
-
public static generate(): ShortId {
|
|
15
|
-
return new ShortId(ObjectId().toHexString());
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
constructor(value: string | StringValueObject) {
|
|
19
|
-
super(value?.valueOf());
|
|
20
|
-
|
|
21
|
-
if (NullObject.isNullObject(this)) {
|
|
22
|
-
return this;
|
|
23
|
-
}
|
|
24
|
-
this.ensureIsShortId(this.value);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
private ensureIsShortId(value: string): void {
|
|
28
|
-
assert(
|
|
29
|
-
value.length === ShortId.LENGTH,
|
|
30
|
-
new InvalidLengthError(this.value, ShortId.LENGTH),
|
|
31
|
-
);
|
|
32
|
-
assert(ShortId.PATTERN.test(value), new InvalidFormatError(this.value));
|
|
33
|
-
}
|
|
34
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { v4 } from 'uuid';
|
|
2
|
-
|
|
3
|
-
import { InvalidFormatError } from '../../errors/InvalidFormatError';
|
|
4
|
-
import { InvalidLengthError } from '../../errors/InvalidLengthError';
|
|
5
|
-
import { assert } from '../../patterns';
|
|
6
|
-
import { NullObject } from '../NullObject';
|
|
7
|
-
import { StringValueObject } from '../StringValueObject';
|
|
8
|
-
import { ValueObject } from '../ValueObject';
|
|
9
|
-
|
|
10
|
-
export class UUID extends ValueObject<string> {
|
|
11
|
-
private static readonly LENGTH = 36;
|
|
12
|
-
private static readonly PATTERN = new RegExp(`^[a-z0-9-]{${this.LENGTH}}$`);
|
|
13
|
-
|
|
14
|
-
public static generate(): UUID {
|
|
15
|
-
return new UUID(v4());
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
constructor(value: string | StringValueObject) {
|
|
19
|
-
super(value?.valueOf());
|
|
20
|
-
|
|
21
|
-
if (NullObject.isNullObject(this)) {
|
|
22
|
-
return this;
|
|
23
|
-
}
|
|
24
|
-
this.ensureIsUUID(this.value);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
private ensureIsUUID(value: string): void {
|
|
28
|
-
assert(
|
|
29
|
-
value.length === UUID.LENGTH,
|
|
30
|
-
new InvalidLengthError(this.value, UUID.LENGTH),
|
|
31
|
-
);
|
|
32
|
-
assert(UUID.PATTERN.test(value), new InvalidFormatError(this.value));
|
|
33
|
-
}
|
|
34
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { InvalidDayError } from '../../errors/InvalidDayError';
|
|
2
|
-
import { InvalidDayFormatError } from '../../errors/InvalidDayFormatError';
|
|
3
|
-
import { assert } from '../../patterns/Assert';
|
|
4
|
-
import { ValueObject } from '../ValueObject';
|
|
5
|
-
import { Day } from './Day';
|
|
6
|
-
import { DayOfWeek } from './DayOfWeek';
|
|
7
|
-
import { Month } from './Month';
|
|
8
|
-
import { MonthOfYear } from './MonthOfYear';
|
|
9
|
-
import { Timestamp } from './Timestamp';
|
|
10
|
-
|
|
11
|
-
export class CalendarDay extends ValueObject<string> {
|
|
12
|
-
private readonly year: number;
|
|
13
|
-
private readonly month: number;
|
|
14
|
-
private readonly day: number;
|
|
15
|
-
|
|
16
|
-
private static ensureIsValidValue(
|
|
17
|
-
value: string | Date | number | Timestamp,
|
|
18
|
-
): void {
|
|
19
|
-
if (typeof value == 'string') {
|
|
20
|
-
this.ensureIsValidString(value);
|
|
21
|
-
}
|
|
22
|
-
this.ensureIsValidDate(new Date(value.valueOf()));
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
private static ensureIsValidString(value: string): void {
|
|
26
|
-
assert(
|
|
27
|
-
value.match(/^\d{4}-\d{1,2}-\d{1,2}$/),
|
|
28
|
-
new InvalidDayFormatError(value),
|
|
29
|
-
);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
private static generateStringValue(timestamp: Timestamp): string {
|
|
33
|
-
const paddedMonth = timestamp.getMonth().toString().padStart(2, '0');
|
|
34
|
-
const paddedDay = timestamp.getDay().toString().padStart(2, '0');
|
|
35
|
-
|
|
36
|
-
return `${timestamp.getYear().toString()}-${paddedMonth}-${paddedDay}`;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
private static ensureIsValidDate(value: Date | number | Timestamp): void {
|
|
40
|
-
assert(!isNaN(value.valueOf()), new InvalidDayError(value));
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
constructor(value?: string | Date | number | Timestamp) {
|
|
44
|
-
let timestamp: Timestamp;
|
|
45
|
-
|
|
46
|
-
if (value) {
|
|
47
|
-
CalendarDay.ensureIsValidValue(value);
|
|
48
|
-
timestamp = new Timestamp(value);
|
|
49
|
-
} else {
|
|
50
|
-
timestamp = new Timestamp();
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
super(CalendarDay.generateStringValue(timestamp));
|
|
54
|
-
|
|
55
|
-
this.year = timestamp.getYear().valueOf();
|
|
56
|
-
this.month = timestamp.getMonth().getIndex() + 1;
|
|
57
|
-
this.day = timestamp.getDay().valueOf();
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
public isAfter(date: CalendarDay): boolean {
|
|
61
|
-
return this.valueOf() > date.valueOf();
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
public isBefore(date: CalendarDay): boolean {
|
|
65
|
-
return this.valueOf() < date.valueOf();
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
public getYear(): number {
|
|
69
|
-
return this.year;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
public getMonth(): Month {
|
|
73
|
-
return new Month(this.month);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
public getMonthOfYear(): MonthOfYear {
|
|
77
|
-
return new MonthOfYear(this.month, this.year);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
public getDay(): Day {
|
|
81
|
-
return new Day(this.day);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
public getDayOfWeek(): DayOfWeek {
|
|
85
|
-
return DayOfWeek.fromNumber(this.toTimestamp().getDayOfWeek());
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
public toTimestamp(): Timestamp {
|
|
89
|
-
return new Timestamp(Date.UTC(this.year, this.month - 1, this.day));
|
|
90
|
-
}
|
|
91
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { InvalidDayError } from '../../errors/InvalidDayError';
|
|
2
|
-
import { assert } from '../../patterns/Assert';
|
|
3
|
-
import { Integer } from '../Integer';
|
|
4
|
-
import { NumberValueObject } from '../NumberValueObject';
|
|
5
|
-
|
|
6
|
-
export class Day extends Integer {
|
|
7
|
-
constructor(value: number | NumberValueObject) {
|
|
8
|
-
super(value.valueOf());
|
|
9
|
-
|
|
10
|
-
this.ensureIsValidDay();
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
private ensureIsValidDay(): void {
|
|
14
|
-
assert(this.isGreaterOrEqualThan(1), new InvalidDayError(this.value));
|
|
15
|
-
assert(this.isLessOrEqualThan(31), new InvalidDayError(this.value));
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { InvalidDayError } from '../../errors/InvalidDayError';
|
|
2
|
-
import { Enum } from '../Enum';
|
|
3
|
-
import { Timestamp } from './Timestamp';
|
|
4
|
-
|
|
5
|
-
export enum EDaysOfWeek {
|
|
6
|
-
MONDAY = 'monday',
|
|
7
|
-
TUESDAY = 'tuesday',
|
|
8
|
-
WEDNESDAY = 'wednesday',
|
|
9
|
-
THURSDAY = 'thursday',
|
|
10
|
-
FRIDAY = 'friday',
|
|
11
|
-
SATURDAY = 'saturday',
|
|
12
|
-
SUNDAY = 'sunday',
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export const timeStampDayToDaysMap = {
|
|
16
|
-
[EDaysOfWeek.FRIDAY]: 5,
|
|
17
|
-
[EDaysOfWeek.MONDAY]: 1,
|
|
18
|
-
[EDaysOfWeek.SATURDAY]: 6,
|
|
19
|
-
[EDaysOfWeek.SUNDAY]: 0,
|
|
20
|
-
[EDaysOfWeek.THURSDAY]: 4,
|
|
21
|
-
[EDaysOfWeek.TUESDAY]: 2,
|
|
22
|
-
[EDaysOfWeek.WEDNESDAY]: 3,
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export class DayOfWeek extends Enum {
|
|
26
|
-
public static MONDAY = new DayOfWeek(EDaysOfWeek.MONDAY);
|
|
27
|
-
public static TUESDAY = new DayOfWeek(EDaysOfWeek.TUESDAY);
|
|
28
|
-
public static WEDNESDAY = new DayOfWeek(EDaysOfWeek.WEDNESDAY);
|
|
29
|
-
public static THURSDAY = new DayOfWeek(EDaysOfWeek.THURSDAY);
|
|
30
|
-
public static FRIDAY = new DayOfWeek(EDaysOfWeek.FRIDAY);
|
|
31
|
-
public static SATURDAY = new DayOfWeek(EDaysOfWeek.SATURDAY);
|
|
32
|
-
public static SUNDAY = new DayOfWeek(EDaysOfWeek.SUNDAY);
|
|
33
|
-
|
|
34
|
-
public static fromNumber(day: number): DayOfWeek {
|
|
35
|
-
const [eDay] =
|
|
36
|
-
Object.entries(timeStampDayToDaysMap).find(
|
|
37
|
-
([, value]) => value === day,
|
|
38
|
-
) || [];
|
|
39
|
-
|
|
40
|
-
if (!eDay) {
|
|
41
|
-
throw new InvalidDayError(eDay);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return new DayOfWeek(eDay);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
public static fromTimestamp(timestamp: Timestamp): DayOfWeek {
|
|
48
|
-
const dayOfWeekNumber = timestamp.getDayOfWeek();
|
|
49
|
-
|
|
50
|
-
return DayOfWeek.fromNumber(dayOfWeekNumber);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
public getValues(): string[] {
|
|
54
|
-
return Object.values(EDaysOfWeek);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
public toNumber(): number {
|
|
58
|
-
return timeStampDayToDaysMap[this.value as EDaysOfWeek];
|
|
59
|
-
}
|
|
60
|
-
}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { NumberValueObject } from '../NumberValueObject';
|
|
2
|
-
|
|
3
|
-
export class Duration extends NumberValueObject {
|
|
4
|
-
private static readonly MILLISECOND_FACTOR = 1000;
|
|
5
|
-
private static readonly SECOND_UNITS = {
|
|
6
|
-
DAYS: 24 * 60 * 60,
|
|
7
|
-
HOURS: 60 * 60,
|
|
8
|
-
MINUTES: 60,
|
|
9
|
-
MONTHS: 30 * 24 * 60 * 60,
|
|
10
|
-
SECONDS: 1,
|
|
11
|
-
WEEKS: 7 * 24 * 60 * 60,
|
|
12
|
-
YEARS: 365 * 24 * 60 * 60,
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
private static readonly millisecondFactors = {
|
|
16
|
-
DAYS: new NumberValueObject(
|
|
17
|
-
this.SECOND_UNITS.DAYS * this.MILLISECOND_FACTOR,
|
|
18
|
-
),
|
|
19
|
-
HOURS: new NumberValueObject(
|
|
20
|
-
this.SECOND_UNITS.HOURS * this.MILLISECOND_FACTOR,
|
|
21
|
-
),
|
|
22
|
-
MINUTES: new NumberValueObject(
|
|
23
|
-
this.SECOND_UNITS.MINUTES * this.MILLISECOND_FACTOR,
|
|
24
|
-
),
|
|
25
|
-
MONTHS: new NumberValueObject(
|
|
26
|
-
this.SECOND_UNITS.MONTHS * this.MILLISECOND_FACTOR,
|
|
27
|
-
),
|
|
28
|
-
SECONDS: new NumberValueObject(
|
|
29
|
-
this.SECOND_UNITS.SECONDS * this.MILLISECOND_FACTOR,
|
|
30
|
-
),
|
|
31
|
-
WEEKS: new NumberValueObject(
|
|
32
|
-
this.SECOND_UNITS.WEEKS * this.MILLISECOND_FACTOR,
|
|
33
|
-
),
|
|
34
|
-
YEARS: new NumberValueObject(
|
|
35
|
-
this.SECOND_UNITS.YEARS * this.MILLISECOND_FACTOR,
|
|
36
|
-
),
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
public static fromDays(days: number | NumberValueObject): Duration {
|
|
40
|
-
return new Duration(
|
|
41
|
-
new NumberValueObject(days.valueOf()).multiply(
|
|
42
|
-
this.millisecondFactors.DAYS,
|
|
43
|
-
),
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
public static fromHours(hours: number | NumberValueObject): Duration {
|
|
48
|
-
return new Duration(
|
|
49
|
-
new NumberValueObject(hours.valueOf()).multiply(
|
|
50
|
-
this.millisecondFactors.HOURS,
|
|
51
|
-
),
|
|
52
|
-
);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
public static fromMinutes(minutes: number | NumberValueObject): Duration {
|
|
56
|
-
return new Duration(
|
|
57
|
-
new NumberValueObject(minutes.valueOf()).multiply(
|
|
58
|
-
this.millisecondFactors.MINUTES,
|
|
59
|
-
),
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
public static fromSeconds(seconds: number | NumberValueObject): Duration {
|
|
64
|
-
return new Duration(
|
|
65
|
-
new NumberValueObject(seconds.valueOf()).multiply(
|
|
66
|
-
this.millisecondFactors.SECONDS,
|
|
67
|
-
),
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
public static fromMilliseconds(
|
|
72
|
-
milliseconds: number | NumberValueObject,
|
|
73
|
-
): Duration {
|
|
74
|
-
return new Duration(new NumberValueObject(milliseconds.valueOf()));
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
constructor(milliseconds: NumberValueObject | Duration) {
|
|
78
|
-
super(milliseconds.valueOf());
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
public getTotalDays(): NumberValueObject {
|
|
82
|
-
return new Duration(this).divide(Duration.millisecondFactors.DAYS);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
public getTotalHours(): NumberValueObject {
|
|
86
|
-
return new Duration(this).divide(Duration.millisecondFactors.HOURS);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
public getTotalMinutes(): NumberValueObject {
|
|
90
|
-
return new Duration(this).divide(Duration.millisecondFactors.MINUTES);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
public getTotalSeconds(): NumberValueObject {
|
|
94
|
-
return new Duration(this).divide(Duration.millisecondFactors.SECONDS);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
public getTotalMilliseconds(): NumberValueObject {
|
|
98
|
-
return new NumberValueObject(this.valueOf());
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
public getDays(): NumberValueObject {
|
|
102
|
-
return new NumberValueObject(
|
|
103
|
-
Math.floor(
|
|
104
|
-
new Duration(this).divide(Duration.millisecondFactors.DAYS).valueOf(),
|
|
105
|
-
) % Duration.SECOND_UNITS.DAYS,
|
|
106
|
-
);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
public getHours(): NumberValueObject {
|
|
110
|
-
return new NumberValueObject(
|
|
111
|
-
Math.floor(
|
|
112
|
-
new Duration(this).divide(Duration.millisecondFactors.HOURS).valueOf(),
|
|
113
|
-
) % Duration.SECOND_UNITS.HOURS,
|
|
114
|
-
);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
public getMinutes(): NumberValueObject {
|
|
118
|
-
return new NumberValueObject(
|
|
119
|
-
Math.floor(
|
|
120
|
-
new Duration(this)
|
|
121
|
-
.divide(Duration.millisecondFactors.MINUTES)
|
|
122
|
-
.valueOf(),
|
|
123
|
-
) % Duration.SECOND_UNITS.MINUTES,
|
|
124
|
-
);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
public getSeconds(): NumberValueObject {
|
|
128
|
-
return new NumberValueObject(
|
|
129
|
-
Math.floor(
|
|
130
|
-
new Duration(this)
|
|
131
|
-
.divide(Duration.millisecondFactors.SECONDS)
|
|
132
|
-
.valueOf(),
|
|
133
|
-
) % Duration.SECOND_UNITS.MINUTES,
|
|
134
|
-
);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
public getMilliseconds(): NumberValueObject {
|
|
138
|
-
return new NumberValueObject(
|
|
139
|
-
Math.floor(new Duration(this).valueOf()) % Duration.MILLISECOND_FACTOR,
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { InvalidHourError } from '../../errors/InvalidHourError';
|
|
2
|
-
import { InvalidMinutesError } from '../../errors/InvalidMinutesError';
|
|
3
|
-
import { assert } from '../../patterns/Assert';
|
|
4
|
-
import { StringValueObject } from '../StringValueObject';
|
|
5
|
-
|
|
6
|
-
export class Hour extends StringValueObject {
|
|
7
|
-
private readonly minutes: string;
|
|
8
|
-
private readonly hours: string;
|
|
9
|
-
private static addTrailZero(value: string): string {
|
|
10
|
-
return Number(value) < 10 ? `0${Number(value)}` : value;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
constructor(value: string);
|
|
14
|
-
constructor(value: number, minutes?: number);
|
|
15
|
-
constructor(value: string | number, minutes?: number) {
|
|
16
|
-
let parsedHours: string;
|
|
17
|
-
let parsedMinutes: string;
|
|
18
|
-
|
|
19
|
-
if (typeof value === 'number' && minutes !== undefined) {
|
|
20
|
-
assert(Number(value) >= 0 && Number(value) <= 23, new InvalidHourError());
|
|
21
|
-
assert(
|
|
22
|
-
Number(minutes) >= 0 && Number(minutes) <= 59,
|
|
23
|
-
new InvalidMinutesError(),
|
|
24
|
-
);
|
|
25
|
-
|
|
26
|
-
parsedHours = Hour.addTrailZero(value.toString());
|
|
27
|
-
parsedMinutes = Hour.addTrailZero(minutes.toString());
|
|
28
|
-
} else {
|
|
29
|
-
assert(typeof value === 'string', new InvalidHourError());
|
|
30
|
-
assert((value as string).includes(':'), new InvalidHourError());
|
|
31
|
-
const [hours, minutes] = (value as string).split(':');
|
|
32
|
-
|
|
33
|
-
assert(Number(hours) >= 0 && Number(hours) <= 23, new InvalidHourError());
|
|
34
|
-
assert(
|
|
35
|
-
Number(minutes) >= 0 && Number(minutes) <= 59,
|
|
36
|
-
new InvalidMinutesError(),
|
|
37
|
-
);
|
|
38
|
-
parsedHours = Hour.addTrailZero(hours);
|
|
39
|
-
parsedMinutes = Hour.addTrailZero(minutes);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
super(`${parsedHours}:${parsedMinutes}`);
|
|
43
|
-
this.hours = parsedHours;
|
|
44
|
-
this.minutes = parsedMinutes;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
public addMinutes(minutes: number): Hour {
|
|
48
|
-
const totalMinutes = Number(this.minutes) + minutes;
|
|
49
|
-
let newHour = Number(this.hours) + Math.floor(totalMinutes / 60);
|
|
50
|
-
let newMinutes = totalMinutes % 60;
|
|
51
|
-
|
|
52
|
-
if (newHour > 23) {
|
|
53
|
-
newHour = newHour - 24;
|
|
54
|
-
} else if (newHour < 0) {
|
|
55
|
-
newHour = 24 + newHour;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
if (newMinutes < 0) {
|
|
59
|
-
newMinutes = 60 + newMinutes;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return new Hour(`${newHour}:${newMinutes}`);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
public diffInMinutes(other: Hour): number {
|
|
66
|
-
let endHour = Number(other.hours);
|
|
67
|
-
|
|
68
|
-
if (
|
|
69
|
-
other.hours < this.hours ||
|
|
70
|
-
(other.hours === this.hours && other.minutes < this.minutes)
|
|
71
|
-
) {
|
|
72
|
-
endHour += 24;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const totalMinutes =
|
|
76
|
-
(endHour - Number(this.hours)) * 60 +
|
|
77
|
-
(Number(other.minutes) - Number(this.minutes));
|
|
78
|
-
|
|
79
|
-
return totalMinutes;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
public getMinutes(): number {
|
|
83
|
-
return Number(this.minutes);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
public getHours(): number {
|
|
87
|
-
return Number(this.hours);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
public isGreaterThan(hour: Hour): boolean {
|
|
91
|
-
if (this.hours === hour.hours) {
|
|
92
|
-
return Number(this.minutes) > Number(hour.minutes);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return Number(this.hours) > Number(hour.hours);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
public isLessThan(hour: Hour): boolean {
|
|
99
|
-
if (this.hours === hour.hours) {
|
|
100
|
-
return Number(this.minutes) < Number(hour.minutes);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return Number(this.hours) < Number(hour.hours);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { Enum } from '../Enum';
|
|
2
|
-
|
|
3
|
-
enum MonthEnum {
|
|
4
|
-
JANUARY = 1,
|
|
5
|
-
FEBRUARY = 2,
|
|
6
|
-
MARCH = 3,
|
|
7
|
-
APRIL = 4,
|
|
8
|
-
MAY = 5,
|
|
9
|
-
JUNE = 6,
|
|
10
|
-
JULY = 7,
|
|
11
|
-
AUGUST = 8,
|
|
12
|
-
SEPTEMBER = 9,
|
|
13
|
-
OCTOBER = 10,
|
|
14
|
-
NOVEMBER = 11,
|
|
15
|
-
DECEMBER = 12,
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export class Month extends Enum<number> {
|
|
19
|
-
public static readonly JANUARY = new Month(MonthEnum.JANUARY);
|
|
20
|
-
public static readonly FEBRUARY = new Month(MonthEnum.FEBRUARY);
|
|
21
|
-
public static readonly MARCH = new Month(MonthEnum.MARCH);
|
|
22
|
-
public static readonly APRIL = new Month(MonthEnum.APRIL);
|
|
23
|
-
public static readonly MAY = new Month(MonthEnum.MAY);
|
|
24
|
-
public static readonly JUNE = new Month(MonthEnum.JUNE);
|
|
25
|
-
public static readonly JULY = new Month(MonthEnum.JULY);
|
|
26
|
-
public static readonly AUGUST = new Month(MonthEnum.AUGUST);
|
|
27
|
-
public static readonly SEPTEMBER = new Month(MonthEnum.SEPTEMBER);
|
|
28
|
-
public static readonly OCTOBER = new Month(MonthEnum.OCTOBER);
|
|
29
|
-
public static readonly NOVEMBER = new Month(MonthEnum.NOVEMBER);
|
|
30
|
-
public static readonly DECEMBER = new Month(MonthEnum.DECEMBER);
|
|
31
|
-
|
|
32
|
-
public getValues(): number[] {
|
|
33
|
-
return Object.values(MonthEnum) as number[];
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
public getIndex(): number {
|
|
37
|
-
return Number(this.valueOf()) - 1;
|
|
38
|
-
}
|
|
39
|
-
}
|