@haskou/value-objects 1.1.1 → 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/{src/value-objects/ids/index.ts → dist/src/value-objects/ids/index.d.ts} +1 -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} +1 -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,52 +0,0 @@
|
|
|
1
|
-
import { ValueObject } from '../ValueObject';
|
|
2
|
-
import { Month } from './Month';
|
|
3
|
-
import { Timestamp } from './Timestamp';
|
|
4
|
-
import { TimestampInterval } from './TimestampInterval';
|
|
5
|
-
import { Year } from './Year';
|
|
6
|
-
|
|
7
|
-
export class MonthOfYear extends ValueObject<string> {
|
|
8
|
-
private readonly month: Month;
|
|
9
|
-
private readonly year: Year;
|
|
10
|
-
|
|
11
|
-
public static fromTimestamp(timestamp: Timestamp): MonthOfYear {
|
|
12
|
-
return new MonthOfYear(timestamp.getMonth(), timestamp.getYear());
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
public static fromString(value: string): MonthOfYear {
|
|
16
|
-
const [year, month] = value.split('/').map(Number);
|
|
17
|
-
|
|
18
|
-
return new MonthOfYear(month, year);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
constructor(month: number | Month, year: number | Year) {
|
|
22
|
-
super(
|
|
23
|
-
year.valueOf().toString() +
|
|
24
|
-
'/' +
|
|
25
|
-
month.valueOf().toString().padStart(2, '0'),
|
|
26
|
-
);
|
|
27
|
-
this.month = new Month(month.valueOf());
|
|
28
|
-
this.year = new Year(year.valueOf());
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
public getMonth(): Month {
|
|
32
|
-
return new Month(this.month.valueOf());
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
public getYear(): Year {
|
|
36
|
-
return new Year(this.year);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
public getNumberOfDays(): number {
|
|
40
|
-
return new Date(this.year.valueOf(), this.month.valueOf(), 0).getDate();
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
public getTimestampInterval(): TimestampInterval {
|
|
44
|
-
const firstMonthDay = '01';
|
|
45
|
-
const month = this.month.valueOf().toString().padStart(2, '0');
|
|
46
|
-
const lastDay = this.getNumberOfDays().toString();
|
|
47
|
-
const startDate = new Timestamp(`${this.year}-${month}-${firstMonthDay}`);
|
|
48
|
-
const endDate = new Timestamp(`${this.year}-${month}-${lastDay}`);
|
|
49
|
-
|
|
50
|
-
return new TimestampInterval(startDate, endDate);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
import { NumberValueObject } from '../NumberValueObject';
|
|
2
|
-
import { ValueObject } from '../ValueObject';
|
|
3
|
-
import { CalendarDay } from './CalendarDay';
|
|
4
|
-
import { Day } from './Day';
|
|
5
|
-
import { Duration } from './Duration';
|
|
6
|
-
import { Month } from './Month';
|
|
7
|
-
import { MonthOfYear } from './MonthOfYear';
|
|
8
|
-
import { Year } from './Year';
|
|
9
|
-
|
|
10
|
-
type TimestampValue = number | Date | Timestamp | string;
|
|
11
|
-
|
|
12
|
-
export class Timestamp extends ValueObject<number> {
|
|
13
|
-
private static readonly FACTORS = {
|
|
14
|
-
DAYS: 24 * 60 * 60 * 1000,
|
|
15
|
-
HOURS: 60 * 60 * 1000,
|
|
16
|
-
MINUTES: 60 * 1000,
|
|
17
|
-
MONTHS: 30 * 24 * 60 * 60 * 1000,
|
|
18
|
-
SECONDS: 1000,
|
|
19
|
-
WEEKS: 7 * 24 * 60 * 60 * 1000,
|
|
20
|
-
YEARS: 365 * 24 * 60 * 60 * 1000,
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
private static valueMilliseconds(value?: TimestampValue): number {
|
|
24
|
-
if (value instanceof Timestamp || value instanceof Date) {
|
|
25
|
-
return value.valueOf();
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (typeof value === 'number') {
|
|
29
|
-
return value;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (typeof value === 'string') {
|
|
33
|
-
return new Date(value).valueOf();
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return Date.now().valueOf();
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
public static new(value: TimestampValue): Timestamp {
|
|
40
|
-
return new Timestamp(value);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
public static now(): Timestamp {
|
|
44
|
-
return new Timestamp();
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
public static fromSeconds(seconds: number | NumberValueObject): Timestamp {
|
|
48
|
-
return new Timestamp(seconds.valueOf() * Timestamp.FACTORS.SECONDS);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
public constructor(value?: TimestampValue) {
|
|
52
|
-
super(Timestamp.valueMilliseconds(value));
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
public toExactHour(): Timestamp {
|
|
56
|
-
const date = new Date(this.valueOf());
|
|
57
|
-
|
|
58
|
-
date.setSeconds(0);
|
|
59
|
-
date.setMinutes(0);
|
|
60
|
-
date.setMilliseconds(0);
|
|
61
|
-
|
|
62
|
-
const value = Timestamp.new(date.getTime()).value;
|
|
63
|
-
|
|
64
|
-
return this.clone(value);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
public toMilliseconds(): number {
|
|
68
|
-
return this.value;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
public toSeconds(): number {
|
|
72
|
-
return Math.round(this.value / Timestamp.FACTORS.SECONDS);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
public toDate(): Date {
|
|
76
|
-
return new Date(this.value);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
public toString(): string {
|
|
80
|
-
return `${this.valueOf()}`;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
public isEqual(other: Timestamp): boolean {
|
|
84
|
-
return this.value === other.valueOf();
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
public isBefore(other: Timestamp): boolean {
|
|
88
|
-
return this.value < other.valueOf();
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
public isAfter(other: Timestamp): boolean {
|
|
92
|
-
return this.value > other.valueOf();
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
public isBeforeOrEqual(other: Timestamp): boolean {
|
|
96
|
-
return this.value <= other.valueOf();
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
public isAfterOrEqual(other: Timestamp): boolean {
|
|
100
|
-
return this.value >= other.valueOf();
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
public addMilliseconds(milliseconds: number | NumberValueObject): Timestamp {
|
|
104
|
-
const value = this.value + milliseconds.valueOf();
|
|
105
|
-
|
|
106
|
-
return this.clone(value);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
public addSeconds(seconds: number | NumberValueObject): Timestamp {
|
|
110
|
-
const value = this.value + seconds.valueOf() * Timestamp.FACTORS.SECONDS;
|
|
111
|
-
|
|
112
|
-
return this.clone(value);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
public addMinutes(minutes: number | NumberValueObject): Timestamp {
|
|
116
|
-
const value = this.value + minutes.valueOf() * Timestamp.FACTORS.MINUTES;
|
|
117
|
-
|
|
118
|
-
return this.clone(value);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
public addHours(hours: number | NumberValueObject): Timestamp {
|
|
122
|
-
const value = this.value + hours.valueOf() * Timestamp.FACTORS.HOURS;
|
|
123
|
-
|
|
124
|
-
return this.clone(value);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
public addDays(days: number | NumberValueObject): Timestamp {
|
|
128
|
-
const value = this.value + days.valueOf() * Timestamp.FACTORS.DAYS;
|
|
129
|
-
|
|
130
|
-
return this.clone(value);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
public addWeeks(weeks: number | NumberValueObject): Timestamp {
|
|
134
|
-
const value = this.value + weeks.valueOf() * Timestamp.FACTORS.WEEKS;
|
|
135
|
-
|
|
136
|
-
return this.clone(value);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
public addMonths(months: number | NumberValueObject): Timestamp {
|
|
140
|
-
const value = this.value + months.valueOf() * Timestamp.FACTORS.MONTHS;
|
|
141
|
-
|
|
142
|
-
return this.clone(value);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
public addYears(years: number | NumberValueObject): Timestamp {
|
|
146
|
-
const value = this.value + years.valueOf() * Timestamp.FACTORS.YEARS;
|
|
147
|
-
|
|
148
|
-
return this.clone(value);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
public addDuration(duration: Duration): Timestamp {
|
|
152
|
-
const value = this.value + duration.valueOf();
|
|
153
|
-
|
|
154
|
-
return this.clone(value);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
public isSameDay(other: Timestamp): boolean {
|
|
158
|
-
return this.getCalendarDay().isEqual(other.getCalendarDay());
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
public isSameMonth(other: Timestamp): boolean {
|
|
162
|
-
return this.getMonthOfYear().isEqual(other.getMonthOfYear());
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
public isSameYear(other: Timestamp): boolean {
|
|
166
|
-
return this.getYear().isEqual(other.getYear());
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
public getCalendarDay(): CalendarDay {
|
|
170
|
-
return new CalendarDay(this);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
public getDay(): Day {
|
|
174
|
-
return new Day(this.toDate().getUTCDate());
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
public getMonth(): Month {
|
|
178
|
-
return new Month(this.toDate().getUTCMonth() + 1);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
public getYear(): Year {
|
|
182
|
-
return new Year(this.toDate().getUTCFullYear());
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
public getHours(): number {
|
|
186
|
-
return this.toDate().getUTCHours();
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
public getMinutes(): number {
|
|
190
|
-
return this.toDate().getUTCMinutes();
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
public getSeconds(): number {
|
|
194
|
-
return this.toDate().getUTCSeconds();
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
public getMilliseconds(): number {
|
|
198
|
-
return this.toDate().getUTCMilliseconds();
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
public getDayOfWeek(): number {
|
|
202
|
-
return this.toDate().getUTCDay();
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
public getMonthOfYear(): MonthOfYear {
|
|
206
|
-
return new MonthOfYear(this.getMonth(), this.getYear());
|
|
207
|
-
}
|
|
208
|
-
}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { InvalidTimestampIntervalError } from '../../errors/InvalidTimestampIntervalError';
|
|
2
|
-
import { PrimitiveOf } from '../../interfaces/PrimitiveOf';
|
|
3
|
-
import { assert } from '../../patterns/Assert';
|
|
4
|
-
import { PositiveNumber } from '../PositiveNumber';
|
|
5
|
-
import { ValueObject } from '../ValueObject';
|
|
6
|
-
import { CalendarDay } from './CalendarDay';
|
|
7
|
-
import { DayOfWeek } from './DayOfWeek';
|
|
8
|
-
import { Duration } from './Duration';
|
|
9
|
-
import { Timestamp } from './Timestamp';
|
|
10
|
-
|
|
11
|
-
export class TimestampInterval extends ValueObject<string> {
|
|
12
|
-
public static fromPrimitives(
|
|
13
|
-
primitives: PrimitiveOf<TimestampInterval>,
|
|
14
|
-
): TimestampInterval {
|
|
15
|
-
return new TimestampInterval(
|
|
16
|
-
new Timestamp(primitives.start),
|
|
17
|
-
new Timestamp(primitives.end),
|
|
18
|
-
);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
constructor(
|
|
22
|
-
private start: Timestamp,
|
|
23
|
-
private end: Timestamp,
|
|
24
|
-
) {
|
|
25
|
-
super(`${start.valueOf()}-${end.valueOf()}`);
|
|
26
|
-
|
|
27
|
-
assert(
|
|
28
|
-
start.isBeforeOrEqual(end),
|
|
29
|
-
new InvalidTimestampIntervalError(start, end),
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
public toPrimitives() {
|
|
34
|
-
return {
|
|
35
|
-
end: this.end.valueOf(),
|
|
36
|
-
start: this.start.valueOf(),
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
public getStart(): Timestamp {
|
|
41
|
-
return this.start;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
public getEnd(): Timestamp {
|
|
45
|
-
return this.end;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
public getDuration(): Duration {
|
|
49
|
-
return new Duration(
|
|
50
|
-
new PositiveNumber(this.end.valueOf() - this.start.valueOf()),
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
public getTotalDaysOfWeek(dayOfWeek: DayOfWeek): number {
|
|
55
|
-
const oneDayInMilliseconds = 24 * 60 * 60 * 1000;
|
|
56
|
-
const daysToCheck: number = Math.trunc(
|
|
57
|
-
this.getDuration().valueOf() / oneDayInMilliseconds,
|
|
58
|
-
);
|
|
59
|
-
|
|
60
|
-
let count = 0;
|
|
61
|
-
|
|
62
|
-
for (let daysChecked = 0; daysChecked <= daysToCheck; daysChecked++) {
|
|
63
|
-
const iteratorDay = new Timestamp(this.start).addDays(daysChecked);
|
|
64
|
-
|
|
65
|
-
if (iteratorDay.getDayOfWeek() === dayOfWeek.toNumber()) {
|
|
66
|
-
count++;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return count;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
public modifyStart(start: Timestamp): void {
|
|
74
|
-
const end = this.end;
|
|
75
|
-
assert(start.isBefore(end), new InvalidTimestampIntervalError(start, end));
|
|
76
|
-
this.start = start;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
public modifyEnd(end: Timestamp): void {
|
|
80
|
-
const start = this.start;
|
|
81
|
-
assert(start.isBefore(end), new InvalidTimestampIntervalError(start, end));
|
|
82
|
-
this.end = end;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
public getDaysBetweenInterval(): CalendarDay[] {
|
|
86
|
-
const days: CalendarDay[] = [];
|
|
87
|
-
|
|
88
|
-
let iteratorTimestamp = new Timestamp(this.getStart());
|
|
89
|
-
const endTimestamp = new Timestamp(this.getEnd());
|
|
90
|
-
|
|
91
|
-
while (iteratorTimestamp.isBeforeOrEqual(endTimestamp)) {
|
|
92
|
-
days.push(new CalendarDay(iteratorTimestamp));
|
|
93
|
-
iteratorTimestamp = iteratorTimestamp.addDays(1);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
return days;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
public getOverlappingInterval(
|
|
100
|
-
searchInterval: TimestampInterval,
|
|
101
|
-
): TimestampInterval | null {
|
|
102
|
-
const start = this.start.isAfter(searchInterval.getStart())
|
|
103
|
-
? this.start
|
|
104
|
-
: searchInterval.getStart();
|
|
105
|
-
const end = this.end.isBefore(searchInterval.getEnd())
|
|
106
|
-
? this.end
|
|
107
|
-
: searchInterval.getEnd();
|
|
108
|
-
|
|
109
|
-
if (start.isAfterOrEqual(end)) {
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return new TimestampInterval(start, end);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
public includes(timestamp: Timestamp): boolean {
|
|
117
|
-
return (
|
|
118
|
-
timestamp.isAfterOrEqual(this.start) &&
|
|
119
|
-
timestamp.isBeforeOrEqual(this.end)
|
|
120
|
-
);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Integer } from '../Integer';
|
|
2
|
-
import { NullObject } from '../NullObject';
|
|
3
|
-
import { NumberValueObject } from '../NumberValueObject';
|
|
4
|
-
|
|
5
|
-
export class Year extends Integer {
|
|
6
|
-
private static readonly YEAR_DAYS = 365;
|
|
7
|
-
private static readonly LEAP_YEAR_DAYS = 366;
|
|
8
|
-
|
|
9
|
-
constructor(value: number | NumberValueObject) {
|
|
10
|
-
super(value?.valueOf());
|
|
11
|
-
|
|
12
|
-
if (NullObject.isNullObject(this)) {
|
|
13
|
-
return this;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
public isLeapYear(): boolean {
|
|
18
|
-
return this.getNumberOfDays() === Year.LEAP_YEAR_DAYS;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
public getNumberOfDays(): number {
|
|
22
|
-
return (this.value % 4 === 0 && this.value % 100 !== 0) ||
|
|
23
|
-
this.value % 400 === 0
|
|
24
|
-
? Year.LEAP_YEAR_DAYS
|
|
25
|
-
: Year.YEAR_DAYS;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { BaseError } from '../../src/errors/BaseError';
|
|
2
|
-
|
|
3
|
-
describe('BaseError', () => {
|
|
4
|
-
describe('constructor', () => {
|
|
5
|
-
it('should be valid instance', () => {
|
|
6
|
-
const error = new BaseError('this is an error');
|
|
7
|
-
expect(error).toBeInstanceOf(BaseError);
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
it('should be valid when value is a string', () => {
|
|
11
|
-
expect(new BaseError('this is an error').toString()).toInclude(
|
|
12
|
-
'this is an error',
|
|
13
|
-
);
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
describe('isBaseError', () => {
|
|
18
|
-
class TestBaseError extends BaseError {
|
|
19
|
-
constructor() {
|
|
20
|
-
super('test error');
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
it('should be true when error is a BaseError', () => {
|
|
25
|
-
const error = new BaseError('this is an error');
|
|
26
|
-
expect(BaseError.isBaseError(error)).toBeTrue();
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it('should be false when error is not a BaseError', () => {
|
|
30
|
-
const error = new Error('this is an error');
|
|
31
|
-
expect(BaseError.isBaseError(error)).toBeFalse();
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
it('should be false when error param is not an error', () => {
|
|
35
|
-
expect(BaseError.isBaseError('')).toBeFalse();
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it('should be true when error is a TestBaseError', () => {
|
|
39
|
-
const error = new TestBaseError();
|
|
40
|
-
expect(BaseError.isBaseError(error)).toBeTrue();
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
describe('toString', () => {
|
|
45
|
-
it('should return the error message', () => {
|
|
46
|
-
const error = new BaseError('this is an error');
|
|
47
|
-
expect(error.toString()).toInclude('this is an error');
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
describe('getStack', () => {
|
|
52
|
-
it('should return the error stack', () => {
|
|
53
|
-
const error = new BaseError('this is an error');
|
|
54
|
-
expect(error.getStack()).toInclude('this is an error');
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
it('should return empty stack', () => {
|
|
58
|
-
const error = new BaseError('this is an error');
|
|
59
|
-
delete error.stack;
|
|
60
|
-
expect(error.getStack()).toBeEmpty();
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
});
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-unused-expressions */
|
|
2
|
-
import { DomainError } from '../../src/errors/DomainError';
|
|
3
|
-
|
|
4
|
-
describe('DomainError', () => {
|
|
5
|
-
describe('constructor', () => {
|
|
6
|
-
it('should be valid instance', () => {
|
|
7
|
-
const error = new DomainError('this is an error');
|
|
8
|
-
expect(error).toBeInstanceOf(DomainError);
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
describe('isDomainError', () => {
|
|
13
|
-
class TestDomainError extends DomainError {
|
|
14
|
-
constructor() {
|
|
15
|
-
super('test error');
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
it('should be true when error is a DomainError', () => {
|
|
20
|
-
const error = new DomainError('this is an error');
|
|
21
|
-
expect(DomainError.isDomainError(error)).toBeTrue();
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
it('should be false when error is not a DomainError', () => {
|
|
25
|
-
const error = new Error('this is an error');
|
|
26
|
-
expect(DomainError.isDomainError(error)).toBeFalse();
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it('should be false when error param is not an error', () => {
|
|
30
|
-
expect(DomainError.isDomainError('')).toBeFalse();
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
it('should be true when error is a TestDomainError', () => {
|
|
34
|
-
const error = new TestDomainError();
|
|
35
|
-
expect(DomainError.isDomainError(error)).toBeTrue();
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
describe('toString', () => {
|
|
40
|
-
it('should return the error message', () => {
|
|
41
|
-
const error = new DomainError('this is an error');
|
|
42
|
-
expect(error.toString()).toInclude('this is an error');
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
describe('getStack', () => {
|
|
47
|
-
it('should return the error stack', () => {
|
|
48
|
-
const error = new DomainError('this is an error');
|
|
49
|
-
expect(error.getStack()).toInclude('this is an error');
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
});
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { assert, DomainError } from '../../src';
|
|
2
|
-
|
|
3
|
-
describe('Assert', () => {
|
|
4
|
-
it('should throw an error if the condition is false', () => {
|
|
5
|
-
expect(() => {
|
|
6
|
-
assert(false, 'Error');
|
|
7
|
-
}).toThrow('Error');
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
it('should not throw an error if the condition is true', () => {
|
|
11
|
-
expect(() => {
|
|
12
|
-
assert(true, 'Error');
|
|
13
|
-
}).not.toThrow();
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
it('should throw an error if the condition is false and the error is a function', () => {
|
|
17
|
-
expect(() => {
|
|
18
|
-
assert(false, new Error('Error'));
|
|
19
|
-
}).toThrow('Error');
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
it('should throw a domain error if the condition is false and the error is a string', () => {
|
|
23
|
-
expect(() => assert(false, 'Error')).toThrow(DomainError);
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
it('should throw if the condition is not a boolean', () => {
|
|
27
|
-
expect(() => assert(1, 'Error')).not.toThrow();
|
|
28
|
-
});
|
|
29
|
-
});
|
package/tests/setup.jest.ts
DELETED