@haskou/value-objects 6.1.2 → 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/README.md +4 -0
  2. package/dist/index.cjs +1247 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +537 -0
  5. package/dist/index.d.cts.map +1 -0
  6. package/dist/index.d.mts +1 -0
  7. package/dist/index.mjs +2 -0
  8. package/package.json +21 -15
  9. package/dist/errors/BaseError.d.ts +0 -8
  10. package/dist/errors/BaseError.d.ts.map +0 -1
  11. package/dist/errors/BaseError.js +0 -22
  12. package/dist/errors/BaseError.js.map +0 -1
  13. package/dist/errors/DomainError.d.ts +0 -7
  14. package/dist/errors/DomainError.d.ts.map +0 -1
  15. package/dist/errors/DomainError.js +0 -15
  16. package/dist/errors/DomainError.js.map +0 -1
  17. package/dist/errors/InvalidColorError.d.ts +0 -5
  18. package/dist/errors/InvalidColorError.d.ts.map +0 -1
  19. package/dist/errors/InvalidColorError.js +0 -11
  20. package/dist/errors/InvalidColorError.js.map +0 -1
  21. package/dist/errors/InvalidDayError.d.ts +0 -5
  22. package/dist/errors/InvalidDayError.d.ts.map +0 -1
  23. package/dist/errors/InvalidDayError.js +0 -11
  24. package/dist/errors/InvalidDayError.js.map +0 -1
  25. package/dist/errors/InvalidDayFormatError.d.ts +0 -5
  26. package/dist/errors/InvalidDayFormatError.d.ts.map +0 -1
  27. package/dist/errors/InvalidDayFormatError.js +0 -11
  28. package/dist/errors/InvalidDayFormatError.js.map +0 -1
  29. package/dist/errors/InvalidEmailError.d.ts +0 -5
  30. package/dist/errors/InvalidEmailError.d.ts.map +0 -1
  31. package/dist/errors/InvalidEmailError.js +0 -11
  32. package/dist/errors/InvalidEmailError.js.map +0 -1
  33. package/dist/errors/InvalidFormatError.d.ts +0 -5
  34. package/dist/errors/InvalidFormatError.d.ts.map +0 -1
  35. package/dist/errors/InvalidFormatError.js +0 -11
  36. package/dist/errors/InvalidFormatError.js.map +0 -1
  37. package/dist/errors/InvalidHashError.d.ts +0 -5
  38. package/dist/errors/InvalidHashError.d.ts.map +0 -1
  39. package/dist/errors/InvalidHashError.js +0 -11
  40. package/dist/errors/InvalidHashError.js.map +0 -1
  41. package/dist/errors/InvalidHourError.d.ts +0 -5
  42. package/dist/errors/InvalidHourError.d.ts.map +0 -1
  43. package/dist/errors/InvalidHourError.js +0 -11
  44. package/dist/errors/InvalidHourError.js.map +0 -1
  45. package/dist/errors/InvalidIntegerError.d.ts +0 -5
  46. package/dist/errors/InvalidIntegerError.d.ts.map +0 -1
  47. package/dist/errors/InvalidIntegerError.js +0 -11
  48. package/dist/errors/InvalidIntegerError.js.map +0 -1
  49. package/dist/errors/InvalidLatitudeError.d.ts +0 -5
  50. package/dist/errors/InvalidLatitudeError.d.ts.map +0 -1
  51. package/dist/errors/InvalidLatitudeError.js +0 -11
  52. package/dist/errors/InvalidLatitudeError.js.map +0 -1
  53. package/dist/errors/InvalidLengthError.d.ts +0 -5
  54. package/dist/errors/InvalidLengthError.d.ts.map +0 -1
  55. package/dist/errors/InvalidLengthError.js +0 -11
  56. package/dist/errors/InvalidLengthError.js.map +0 -1
  57. package/dist/errors/InvalidLongitudeError.d.ts +0 -5
  58. package/dist/errors/InvalidLongitudeError.d.ts.map +0 -1
  59. package/dist/errors/InvalidLongitudeError.js +0 -11
  60. package/dist/errors/InvalidLongitudeError.js.map +0 -1
  61. package/dist/errors/InvalidMinutesError.d.ts +0 -5
  62. package/dist/errors/InvalidMinutesError.d.ts.map +0 -1
  63. package/dist/errors/InvalidMinutesError.js +0 -11
  64. package/dist/errors/InvalidMinutesError.js.map +0 -1
  65. package/dist/errors/InvalidNumberError.d.ts +0 -5
  66. package/dist/errors/InvalidNumberError.d.ts.map +0 -1
  67. package/dist/errors/InvalidNumberError.js +0 -11
  68. package/dist/errors/InvalidNumberError.js.map +0 -1
  69. package/dist/errors/InvalidPasswordError.d.ts +0 -5
  70. package/dist/errors/InvalidPasswordError.d.ts.map +0 -1
  71. package/dist/errors/InvalidPasswordError.js +0 -11
  72. package/dist/errors/InvalidPasswordError.js.map +0 -1
  73. package/dist/errors/InvalidPositiveNumberError.d.ts +0 -5
  74. package/dist/errors/InvalidPositiveNumberError.d.ts.map +0 -1
  75. package/dist/errors/InvalidPositiveNumberError.js +0 -11
  76. package/dist/errors/InvalidPositiveNumberError.js.map +0 -1
  77. package/dist/errors/InvalidStringLengthError.d.ts +0 -5
  78. package/dist/errors/InvalidStringLengthError.d.ts.map +0 -1
  79. package/dist/errors/InvalidStringLengthError.js +0 -11
  80. package/dist/errors/InvalidStringLengthError.js.map +0 -1
  81. package/dist/errors/InvalidTimestampIntervalError.d.ts +0 -6
  82. package/dist/errors/InvalidTimestampIntervalError.d.ts.map +0 -1
  83. package/dist/errors/InvalidTimestampIntervalError.js +0 -11
  84. package/dist/errors/InvalidTimestampIntervalError.js.map +0 -1
  85. package/dist/errors/NullObjectCreationDisabledError.d.ts +0 -5
  86. package/dist/errors/NullObjectCreationDisabledError.d.ts.map +0 -1
  87. package/dist/errors/NullObjectCreationDisabledError.js +0 -12
  88. package/dist/errors/NullObjectCreationDisabledError.js.map +0 -1
  89. package/dist/errors/NullObjectError.d.ts +0 -5
  90. package/dist/errors/NullObjectError.d.ts.map +0 -1
  91. package/dist/errors/NullObjectError.js +0 -12
  92. package/dist/errors/NullObjectError.js.map +0 -1
  93. package/dist/errors/ValueNotInEnumError.d.ts +0 -5
  94. package/dist/errors/ValueNotInEnumError.d.ts.map +0 -1
  95. package/dist/errors/ValueNotInEnumError.js +0 -11
  96. package/dist/errors/ValueNotInEnumError.js.map +0 -1
  97. package/dist/errors/index.d.ts +0 -24
  98. package/dist/errors/index.d.ts.map +0 -1
  99. package/dist/errors/index.js +0 -27
  100. package/dist/errors/index.js.map +0 -1
  101. package/dist/index.d.ts +0 -6
  102. package/dist/index.d.ts.map +0 -1
  103. package/dist/index.js +0 -9
  104. package/dist/index.js.map +0 -1
  105. package/dist/interfaces/PrimitiveOf.d.ts +0 -9
  106. package/dist/interfaces/PrimitiveOf.d.ts.map +0 -1
  107. package/dist/interfaces/PrimitiveOf.js +0 -3
  108. package/dist/interfaces/PrimitiveOf.js.map +0 -1
  109. package/dist/interfaces/index.d.ts +0 -2
  110. package/dist/interfaces/index.d.ts.map +0 -1
  111. package/dist/interfaces/index.js +0 -5
  112. package/dist/interfaces/index.js.map +0 -1
  113. package/dist/patterns/Assert.d.ts +0 -5
  114. package/dist/patterns/Assert.d.ts.map +0 -1
  115. package/dist/patterns/Assert.js +0 -11
  116. package/dist/patterns/Assert.js.map +0 -1
  117. package/dist/patterns/index.d.ts +0 -2
  118. package/dist/patterns/index.d.ts.map +0 -1
  119. package/dist/patterns/index.js +0 -5
  120. package/dist/patterns/index.js.map +0 -1
  121. package/dist/types/Nullish.d.ts +0 -2
  122. package/dist/types/Nullish.d.ts.map +0 -1
  123. package/dist/types/Nullish.js +0 -3
  124. package/dist/types/Nullish.js.map +0 -1
  125. package/dist/types/Primitive.d.ts +0 -2
  126. package/dist/types/Primitive.d.ts.map +0 -1
  127. package/dist/types/Primitive.js +0 -3
  128. package/dist/types/Primitive.js.map +0 -1
  129. package/dist/types/index.d.ts +0 -3
  130. package/dist/types/index.d.ts.map +0 -1
  131. package/dist/types/index.js +0 -6
  132. package/dist/types/index.js.map +0 -1
  133. package/dist/value-objects/Color.d.ts +0 -19
  134. package/dist/value-objects/Color.d.ts.map +0 -1
  135. package/dist/value-objects/Color.js +0 -40
  136. package/dist/value-objects/Color.js.map +0 -1
  137. package/dist/value-objects/Email.d.ts +0 -7
  138. package/dist/value-objects/Email.d.ts.map +0 -1
  139. package/dist/value-objects/Email.js +0 -22
  140. package/dist/value-objects/Email.js.map +0 -1
  141. package/dist/value-objects/Enum.d.ts +0 -9
  142. package/dist/value-objects/Enum.d.ts.map +0 -1
  143. package/dist/value-objects/Enum.js +0 -24
  144. package/dist/value-objects/Enum.js.map +0 -1
  145. package/dist/value-objects/Integer.d.ts +0 -6
  146. package/dist/value-objects/Integer.d.ts.map +0 -1
  147. package/dist/value-objects/Integer.js +0 -21
  148. package/dist/value-objects/Integer.js.map +0 -1
  149. package/dist/value-objects/NullObject.d.ts +0 -8
  150. package/dist/value-objects/NullObject.d.ts.map +0 -1
  151. package/dist/value-objects/NullObject.js +0 -43
  152. package/dist/value-objects/NullObject.js.map +0 -1
  153. package/dist/value-objects/NumberValueObject.d.ts +0 -15
  154. package/dist/value-objects/NumberValueObject.d.ts.map +0 -1
  155. package/dist/value-objects/NumberValueObject.js +0 -48
  156. package/dist/value-objects/NumberValueObject.js.map +0 -1
  157. package/dist/value-objects/Password.d.ts +0 -8
  158. package/dist/value-objects/Password.d.ts.map +0 -1
  159. package/dist/value-objects/Password.js +0 -28
  160. package/dist/value-objects/Password.js.map +0 -1
  161. package/dist/value-objects/PositiveNumber.d.ts +0 -6
  162. package/dist/value-objects/PositiveNumber.d.ts.map +0 -1
  163. package/dist/value-objects/PositiveNumber.js +0 -21
  164. package/dist/value-objects/PositiveNumber.js.map +0 -1
  165. package/dist/value-objects/StringValueObject.d.ts +0 -7
  166. package/dist/value-objects/StringValueObject.d.ts.map +0 -1
  167. package/dist/value-objects/StringValueObject.js +0 -24
  168. package/dist/value-objects/StringValueObject.js.map +0 -1
  169. package/dist/value-objects/UniqueObjectArray.d.ts +0 -15
  170. package/dist/value-objects/UniqueObjectArray.d.ts.map +0 -1
  171. package/dist/value-objects/UniqueObjectArray.js +0 -42
  172. package/dist/value-objects/UniqueObjectArray.js.map +0 -1
  173. package/dist/value-objects/ValueObject.d.ts +0 -16
  174. package/dist/value-objects/ValueObject.d.ts.map +0 -1
  175. package/dist/value-objects/ValueObject.js +0 -50
  176. package/dist/value-objects/ValueObject.js.map +0 -1
  177. package/dist/value-objects/coordinates/Coordinates.d.ts +0 -12
  178. package/dist/value-objects/coordinates/Coordinates.d.ts.map +0 -1
  179. package/dist/value-objects/coordinates/Coordinates.js +0 -28
  180. package/dist/value-objects/coordinates/Coordinates.js.map +0 -1
  181. package/dist/value-objects/coordinates/Latitude.d.ts +0 -8
  182. package/dist/value-objects/coordinates/Latitude.d.ts.map +0 -1
  183. package/dist/value-objects/coordinates/Latitude.js +0 -22
  184. package/dist/value-objects/coordinates/Latitude.js.map +0 -1
  185. package/dist/value-objects/coordinates/Longitude.d.ts +0 -8
  186. package/dist/value-objects/coordinates/Longitude.d.ts.map +0 -1
  187. package/dist/value-objects/coordinates/Longitude.js +0 -22
  188. package/dist/value-objects/coordinates/Longitude.js.map +0 -1
  189. package/dist/value-objects/coordinates/index.d.ts +0 -4
  190. package/dist/value-objects/coordinates/index.d.ts.map +0 -1
  191. package/dist/value-objects/coordinates/index.js +0 -7
  192. package/dist/value-objects/coordinates/index.js.map +0 -1
  193. package/dist/value-objects/hashes/Hash.d.ts +0 -7
  194. package/dist/value-objects/hashes/Hash.d.ts.map +0 -1
  195. package/dist/value-objects/hashes/Hash.js +0 -20
  196. package/dist/value-objects/hashes/Hash.js.map +0 -1
  197. package/dist/value-objects/hashes/MD5Hash.d.ts +0 -7
  198. package/dist/value-objects/hashes/MD5Hash.d.ts.map +0 -1
  199. package/dist/value-objects/hashes/MD5Hash.js +0 -21
  200. package/dist/value-objects/hashes/MD5Hash.js.map +0 -1
  201. package/dist/value-objects/hashes/SHA256Hash.d.ts +0 -8
  202. package/dist/value-objects/hashes/SHA256Hash.d.ts.map +0 -1
  203. package/dist/value-objects/hashes/SHA256Hash.js +0 -26
  204. package/dist/value-objects/hashes/SHA256Hash.js.map +0 -1
  205. package/dist/value-objects/hashes/SHA512Hash.d.ts +0 -8
  206. package/dist/value-objects/hashes/SHA512Hash.d.ts.map +0 -1
  207. package/dist/value-objects/hashes/SHA512Hash.js +0 -26
  208. package/dist/value-objects/hashes/SHA512Hash.js.map +0 -1
  209. package/dist/value-objects/hashes/index.d.ts +0 -5
  210. package/dist/value-objects/hashes/index.d.ts.map +0 -1
  211. package/dist/value-objects/hashes/index.js +0 -8
  212. package/dist/value-objects/hashes/index.js.map +0 -1
  213. package/dist/value-objects/ids/ShortId.d.ts +0 -11
  214. package/dist/value-objects/ids/ShortId.d.ts.map +0 -1
  215. package/dist/value-objects/ids/ShortId.js +0 -39
  216. package/dist/value-objects/ids/ShortId.js.map +0 -1
  217. package/dist/value-objects/ids/UUID.d.ts +0 -11
  218. package/dist/value-objects/ids/UUID.d.ts.map +0 -1
  219. package/dist/value-objects/ids/UUID.js +0 -30
  220. package/dist/value-objects/ids/UUID.js.map +0 -1
  221. package/dist/value-objects/ids/index.d.ts +0 -3
  222. package/dist/value-objects/ids/index.d.ts.map +0 -1
  223. package/dist/value-objects/ids/index.js +0 -6
  224. package/dist/value-objects/ids/index.js.map +0 -1
  225. package/dist/value-objects/index.d.ts +0 -17
  226. package/dist/value-objects/index.d.ts.map +0 -1
  227. package/dist/value-objects/index.js +0 -20
  228. package/dist/value-objects/index.js.map +0 -1
  229. package/dist/value-objects/media/Media.d.ts +0 -11
  230. package/dist/value-objects/media/Media.d.ts.map +0 -1
  231. package/dist/value-objects/media/Media.js +0 -38
  232. package/dist/value-objects/media/Media.js.map +0 -1
  233. package/dist/value-objects/media/index.d.ts +0 -2
  234. package/dist/value-objects/media/index.d.ts.map +0 -1
  235. package/dist/value-objects/media/index.js +0 -5
  236. package/dist/value-objects/media/index.js.map +0 -1
  237. package/dist/value-objects/time/CalendarDay.d.ts +0 -26
  238. package/dist/value-objects/time/CalendarDay.d.ts.map +0 -1
  239. package/dist/value-objects/time/CalendarDay.js +0 -88
  240. package/dist/value-objects/time/CalendarDay.js.map +0 -1
  241. package/dist/value-objects/time/Day.d.ts +0 -7
  242. package/dist/value-objects/time/Day.d.ts.map +0 -1
  243. package/dist/value-objects/time/Day.js +0 -18
  244. package/dist/value-objects/time/Day.js.map +0 -1
  245. package/dist/value-objects/time/DayOfWeek.d.ts +0 -34
  246. package/dist/value-objects/time/DayOfWeek.d.ts.map +0 -1
  247. package/dist/value-objects/time/DayOfWeek.js +0 -51
  248. package/dist/value-objects/time/DayOfWeek.js.map +0 -1
  249. package/dist/value-objects/time/Duration.d.ts +0 -23
  250. package/dist/value-objects/time/Duration.d.ts.map +0 -1
  251. package/dist/value-objects/time/Duration.js +0 -79
  252. package/dist/value-objects/time/Duration.js.map +0 -1
  253. package/dist/value-objects/time/Hour.d.ts +0 -18
  254. package/dist/value-objects/time/Hour.d.ts.map +0 -1
  255. package/dist/value-objects/time/Hour.js +0 -80
  256. package/dist/value-objects/time/Hour.js.map +0 -1
  257. package/dist/value-objects/time/Month.d.ts +0 -18
  258. package/dist/value-objects/time/Month.d.ts.map +0 -1
  259. package/dist/value-objects/time/Month.js +0 -41
  260. package/dist/value-objects/time/Month.js.map +0 -1
  261. package/dist/value-objects/time/MonthOfYear.d.ts +0 -17
  262. package/dist/value-objects/time/MonthOfYear.d.ts.map +0 -1
  263. package/dist/value-objects/time/MonthOfYear.js +0 -45
  264. package/dist/value-objects/time/MonthOfYear.js.map +0 -1
  265. package/dist/value-objects/time/Timestamp.d.ts +0 -53
  266. package/dist/value-objects/time/Timestamp.d.ts.map +0 -1
  267. package/dist/value-objects/time/Timestamp.js +0 -197
  268. package/dist/value-objects/time/Timestamp.js.map +0 -1
  269. package/dist/value-objects/time/TimestampInterval.d.ts +0 -24
  270. package/dist/value-objects/time/TimestampInterval.d.ts.map +0 -1
  271. package/dist/value-objects/time/TimestampInterval.js +0 -78
  272. package/dist/value-objects/time/TimestampInterval.js.map +0 -1
  273. package/dist/value-objects/time/Year.d.ts +0 -10
  274. package/dist/value-objects/time/Year.d.ts.map +0 -1
  275. package/dist/value-objects/time/Year.js +0 -26
  276. package/dist/value-objects/time/Year.js.map +0 -1
  277. package/dist/value-objects/time/index.d.ts +0 -11
  278. package/dist/value-objects/time/index.d.ts.map +0 -1
  279. package/dist/value-objects/time/index.js +0 -14
  280. package/dist/value-objects/time/index.js.map +0 -1
@@ -1,18 +0,0 @@
1
- import { StringValueObject } from '../StringValueObject';
2
- export declare class Hour extends StringValueObject {
3
- private readonly minutes;
4
- private readonly hours;
5
- private static addTrailZero;
6
- private static normalizeMinutes;
7
- private static parseFromNumber;
8
- private static parseFromString;
9
- constructor(value: string);
10
- constructor(value: number, minutes?: number);
11
- addMinutes(minutes: number): Hour;
12
- diffInMinutes(other: Hour): number;
13
- getMinutes(): number;
14
- getHours(): number;
15
- isGreaterThan(hour: Hour): boolean;
16
- isLessThan(hour: Hour): boolean;
17
- }
18
- //# sourceMappingURL=Hour.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Hour.d.ts","sourceRoot":"","sources":["../../../src/value-objects/time/Hour.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,IAAK,SAAQ,iBAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B,OAAO,CAAC,MAAM,CAAC,YAAY;IAI3B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAM/B,OAAO,CAAC,MAAM,CAAC,eAAe;IAa9B,OAAO,CAAC,MAAM,CAAC,eAAe;gBAsBlB,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAYpC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASjC,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM;IAiBlC,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,MAAM;IAIlB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAQlC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;CAOvC"}
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Hour = void 0;
4
- const InvalidHourError_1 = require("../../errors/InvalidHourError");
5
- const InvalidMinutesError_1 = require("../../errors/InvalidMinutesError");
6
- const Assert_1 = require("../../patterns/Assert");
7
- const StringValueObject_1 = require("../StringValueObject");
8
- class Hour extends StringValueObject_1.StringValueObject {
9
- minutes;
10
- hours;
11
- static addTrailZero(value) {
12
- return value < 10 ? `0${value}` : value.toString();
13
- }
14
- static normalizeMinutes(totalMinutes) {
15
- const minutesPerDay = 24 * 60;
16
- return ((totalMinutes % minutesPerDay) + minutesPerDay) % minutesPerDay;
17
- }
18
- static parseFromNumber(value, minutes) {
19
- (0, Assert_1.assert)(Number.isInteger(value) && value >= 0 && value <= 23, new InvalidHourError_1.InvalidHourError());
20
- (0, Assert_1.assert)(Number.isInteger(minutes) && minutes >= 0 && minutes <= 59, new InvalidMinutesError_1.InvalidMinutesError());
21
- return [Hour.addTrailZero(value), Hour.addTrailZero(minutes)];
22
- }
23
- static parseFromString(value) {
24
- const parts = value.split(':');
25
- (0, Assert_1.assert)(parts.length === 2 && parts[1] !== '', new InvalidHourError_1.InvalidHourError());
26
- const [hours, minutes] = parts;
27
- (0, Assert_1.assert)(/^\d{1,2}$/.test(hours), new InvalidHourError_1.InvalidHourError());
28
- (0, Assert_1.assert)(/^\d{1,2}$/.test(minutes), new InvalidMinutesError_1.InvalidMinutesError());
29
- const parsedHours = Number(hours);
30
- const parsedMinutes = Number(minutes);
31
- (0, Assert_1.assert)(parsedHours >= 0 && parsedHours <= 23, new InvalidHourError_1.InvalidHourError());
32
- (0, Assert_1.assert)(parsedMinutes >= 0 && parsedMinutes <= 59, new InvalidMinutesError_1.InvalidMinutesError());
33
- return [Hour.addTrailZero(parsedHours), Hour.addTrailZero(parsedMinutes)];
34
- }
35
- constructor(value, minutes) {
36
- const [parsedHours, parsedMinutes] = typeof value === 'number' && minutes !== undefined
37
- ? Hour.parseFromNumber(value, minutes)
38
- : Hour.parseFromString(value);
39
- super(`${parsedHours}:${parsedMinutes}`);
40
- this.hours = parsedHours;
41
- this.minutes = parsedMinutes;
42
- }
43
- addMinutes(minutes) {
44
- const currentMinutes = Number(this.hours) * 60 + Number(this.minutes);
45
- const normalizedMinutes = Hour.normalizeMinutes(currentMinutes + minutes);
46
- const newHour = Math.floor(normalizedMinutes / 60);
47
- const newMinutes = normalizedMinutes % 60;
48
- return new Hour(newHour, newMinutes);
49
- }
50
- diffInMinutes(other) {
51
- let endHour = Number(other.hours);
52
- if (other.hours < this.hours ||
53
- (other.hours === this.hours && other.minutes < this.minutes)) {
54
- endHour += 24;
55
- }
56
- const totalMinutes = (endHour - Number(this.hours)) * 60 +
57
- (Number(other.minutes) - Number(this.minutes));
58
- return totalMinutes;
59
- }
60
- getMinutes() {
61
- return Number(this.minutes);
62
- }
63
- getHours() {
64
- return Number(this.hours);
65
- }
66
- isGreaterThan(hour) {
67
- if (this.hours === hour.hours) {
68
- return Number(this.minutes) > Number(hour.minutes);
69
- }
70
- return Number(this.hours) > Number(hour.hours);
71
- }
72
- isLessThan(hour) {
73
- if (this.hours === hour.hours) {
74
- return Number(this.minutes) < Number(hour.minutes);
75
- }
76
- return Number(this.hours) < Number(hour.hours);
77
- }
78
- }
79
- exports.Hour = Hour;
80
- //# sourceMappingURL=Hour.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Hour.js","sourceRoot":"","sources":["../../../src/value-objects/time/Hour.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { Enum } from '../Enum';
2
- export declare class Month extends Enum<number> {
3
- static readonly JANUARY: Month;
4
- static readonly FEBRUARY: Month;
5
- static readonly MARCH: Month;
6
- static readonly APRIL: Month;
7
- static readonly MAY: Month;
8
- static readonly JUNE: Month;
9
- static readonly JULY: Month;
10
- static readonly AUGUST: Month;
11
- static readonly SEPTEMBER: Month;
12
- static readonly OCTOBER: Month;
13
- static readonly NOVEMBER: Month;
14
- static readonly DECEMBER: Month;
15
- getValues(): number[];
16
- getIndex(): number;
17
- }
18
- //# sourceMappingURL=Month.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Month.d.ts","sourceRoot":"","sources":["../../../src/value-objects/time/Month.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAiB/B,qBAAa,KAAM,SAAQ,IAAI,CAAC,MAAM,CAAC;IACrC,gBAAuB,OAAO,QAAgC;IAC9D,gBAAuB,QAAQ,QAAiC;IAChE,gBAAuB,KAAK,QAA8B;IAC1D,gBAAuB,KAAK,QAA8B;IAC1D,gBAAuB,GAAG,QAA4B;IACtD,gBAAuB,IAAI,QAA6B;IACxD,gBAAuB,IAAI,QAA6B;IACxD,gBAAuB,MAAM,QAA+B;IAC5D,gBAAuB,SAAS,QAAkC;IAClE,gBAAuB,OAAO,QAAgC;IAC9D,gBAAuB,QAAQ,QAAiC;IAChE,gBAAuB,QAAQ,QAAiC;IAEzD,SAAS,IAAI,MAAM,EAAE;IAIrB,QAAQ,IAAI,MAAM;CAG1B"}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Month = void 0;
4
- const Enum_1 = require("../Enum");
5
- var MonthEnum;
6
- (function (MonthEnum) {
7
- MonthEnum[MonthEnum["JANUARY"] = 1] = "JANUARY";
8
- MonthEnum[MonthEnum["FEBRUARY"] = 2] = "FEBRUARY";
9
- MonthEnum[MonthEnum["MARCH"] = 3] = "MARCH";
10
- MonthEnum[MonthEnum["APRIL"] = 4] = "APRIL";
11
- MonthEnum[MonthEnum["MAY"] = 5] = "MAY";
12
- MonthEnum[MonthEnum["JUNE"] = 6] = "JUNE";
13
- MonthEnum[MonthEnum["JULY"] = 7] = "JULY";
14
- MonthEnum[MonthEnum["AUGUST"] = 8] = "AUGUST";
15
- MonthEnum[MonthEnum["SEPTEMBER"] = 9] = "SEPTEMBER";
16
- MonthEnum[MonthEnum["OCTOBER"] = 10] = "OCTOBER";
17
- MonthEnum[MonthEnum["NOVEMBER"] = 11] = "NOVEMBER";
18
- MonthEnum[MonthEnum["DECEMBER"] = 12] = "DECEMBER";
19
- })(MonthEnum || (MonthEnum = {}));
20
- class Month extends Enum_1.Enum {
21
- static JANUARY = new Month(MonthEnum.JANUARY);
22
- static FEBRUARY = new Month(MonthEnum.FEBRUARY);
23
- static MARCH = new Month(MonthEnum.MARCH);
24
- static APRIL = new Month(MonthEnum.APRIL);
25
- static MAY = new Month(MonthEnum.MAY);
26
- static JUNE = new Month(MonthEnum.JUNE);
27
- static JULY = new Month(MonthEnum.JULY);
28
- static AUGUST = new Month(MonthEnum.AUGUST);
29
- static SEPTEMBER = new Month(MonthEnum.SEPTEMBER);
30
- static OCTOBER = new Month(MonthEnum.OCTOBER);
31
- static NOVEMBER = new Month(MonthEnum.NOVEMBER);
32
- static DECEMBER = new Month(MonthEnum.DECEMBER);
33
- getValues() {
34
- return Object.values(MonthEnum);
35
- }
36
- getIndex() {
37
- return Number(this.valueOf()) - 1;
38
- }
39
- }
40
- exports.Month = Month;
41
- //# sourceMappingURL=Month.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Month.js","sourceRoot":"","sources":["../../../src/value-objects/time/Month.ts"],"names":[],"mappings":";;;AAAA,kCAA+B;AAE/B,IAAK,SAaJ;AAbD,WAAK,SAAS;IACZ,+CAAW,CAAA;IACX,iDAAY,CAAA;IACZ,2CAAS,CAAA;IACT,2CAAS,CAAA;IACT,uCAAO,CAAA;IACP,yCAAQ,CAAA;IACR,yCAAQ,CAAA;IACR,6CAAU,CAAA;IACV,mDAAa,CAAA;IACb,gDAAY,CAAA;IACZ,kDAAa,CAAA;IACb,kDAAa,CAAA;AACf,CAAC,EAbI,SAAS,KAAT,SAAS,QAab;AAED,MAAa,KAAM,SAAQ,WAAY;IAC9B,MAAM,CAAU,OAAO,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,CAAU,QAAQ,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,CAAU,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,CAAU,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,CAAU,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,CAAU,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAU,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAU,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,CAAU,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3D,MAAM,CAAU,OAAO,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,CAAU,QAAQ,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,CAAU,QAAQ,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEzD,SAAS;QACd,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAa,CAAC;IAC9C,CAAC;IAEM,QAAQ;QACb,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;;AApBH,sBAqBC"}
@@ -1,17 +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
- export declare class MonthOfYear extends ValueObject<string> {
7
- private readonly month;
8
- private readonly year;
9
- static fromTimestamp(timestamp: Timestamp): MonthOfYear;
10
- static fromString(value: string): MonthOfYear;
11
- constructor(month: number | Month, year: number | Year);
12
- getMonth(): Month;
13
- getYear(): Year;
14
- getNumberOfDays(): number;
15
- getTimestampInterval(): TimestampInterval;
16
- }
17
- //# sourceMappingURL=MonthOfYear.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MonthOfYear.d.ts","sourceRoot":"","sources":["../../../src/value-objects/time/MonthOfYear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,WAAY,SAAQ,WAAW,CAAC,MAAM,CAAC;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;WAEd,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW;WAIhD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;gBAMxC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAU/C,QAAQ,IAAI,KAAK;IAIjB,OAAO,IAAI,IAAI;IAIf,eAAe,IAAI,MAAM;IAIzB,oBAAoB,IAAI,iBAAiB;CASjD"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MonthOfYear = void 0;
4
- const ValueObject_1 = require("../ValueObject");
5
- const Month_1 = require("./Month");
6
- const Timestamp_1 = require("./Timestamp");
7
- const TimestampInterval_1 = require("./TimestampInterval");
8
- const Year_1 = require("./Year");
9
- class MonthOfYear extends ValueObject_1.ValueObject {
10
- month;
11
- year;
12
- static fromTimestamp(timestamp) {
13
- return new MonthOfYear(timestamp.getMonth(), timestamp.getYear());
14
- }
15
- static fromString(value) {
16
- const [year, month] = value.split('/').map(Number);
17
- return new MonthOfYear(month, year);
18
- }
19
- constructor(month, year) {
20
- super(year.valueOf().toString() +
21
- '/' +
22
- month.valueOf().toString().padStart(2, '0'));
23
- this.month = new Month_1.Month(month.valueOf());
24
- this.year = new Year_1.Year(year.valueOf());
25
- }
26
- getMonth() {
27
- return new Month_1.Month(this.month.valueOf());
28
- }
29
- getYear() {
30
- return new Year_1.Year(this.year);
31
- }
32
- getNumberOfDays() {
33
- return new Date(this.year.valueOf(), this.month.valueOf(), 0).getDate();
34
- }
35
- getTimestampInterval() {
36
- const firstMonthDay = '01';
37
- const month = this.month.valueOf().toString().padStart(2, '0');
38
- const lastDay = this.getNumberOfDays().toString();
39
- const startDate = new Timestamp_1.Timestamp(`${this.year}-${month}-${firstMonthDay}`);
40
- const endDate = new Timestamp_1.Timestamp(`${this.year}-${month}-${lastDay}`);
41
- return new TimestampInterval_1.TimestampInterval(startDate, endDate);
42
- }
43
- }
44
- exports.MonthOfYear = MonthOfYear;
45
- //# sourceMappingURL=MonthOfYear.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MonthOfYear.js","sourceRoot":"","sources":["../../../src/value-objects/time/MonthOfYear.ts"],"names":[],"mappings":";;;AAAA,gDAA6C;AAC7C,mCAAgC;AAChC,2CAAwC;AACxC,2DAAwD;AACxD,iCAA8B;AAE9B,MAAa,WAAY,SAAQ,yBAAmB;IACjC,KAAK,CAAQ;IACb,IAAI,CAAO;IAErB,MAAM,CAAC,aAAa,CAAC,SAAoB;QAC9C,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,KAAa;QACpC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEnD,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,YAAY,KAAqB,EAAE,IAAmB;QACpD,KAAK,CACH,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACvB,GAAG;YACH,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAC9C,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,aAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,WAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1E,CAAC;IAEM,oBAAoB;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,IAAI,qBAAS,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC;QAElE,OAAO,IAAI,qCAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CACF;AA7CD,kCA6CC"}
@@ -1,53 +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
- type TimestampValue = number | Date | Timestamp | string;
10
- export declare class Timestamp extends ValueObject<number> {
11
- private static readonly FACTORS;
12
- private static valueMilliseconds;
13
- private static getLastDayOfUtcMonth;
14
- private static ensureCalendarDelta;
15
- private static createUtcCalendarValue;
16
- static new(value: TimestampValue): Timestamp;
17
- static now(): Timestamp;
18
- static fromSeconds(seconds: number | NumberValueObject): Timestamp;
19
- constructor(value?: TimestampValue);
20
- toExactHour(): Timestamp;
21
- toMilliseconds(): number;
22
- toSeconds(): number;
23
- toDate(): Date;
24
- toString(): string;
25
- isBefore(other: Timestamp): boolean;
26
- isAfter(other: Timestamp): boolean;
27
- isBeforeOrEqual(other: Timestamp): boolean;
28
- isAfterOrEqual(other: Timestamp): boolean;
29
- addMilliseconds(milliseconds: number | NumberValueObject): Timestamp;
30
- addSeconds(seconds: number | NumberValueObject): Timestamp;
31
- addMinutes(minutes: number | NumberValueObject): Timestamp;
32
- addHours(hours: number | NumberValueObject): Timestamp;
33
- addDays(days: number | NumberValueObject): Timestamp;
34
- addWeeks(weeks: number | NumberValueObject): Timestamp;
35
- addMonths(months: number | NumberValueObject): Timestamp;
36
- addYears(years: number | NumberValueObject): Timestamp;
37
- addDuration(duration: Duration): Timestamp;
38
- isSameDay(other: Timestamp): boolean;
39
- isSameMonth(other: Timestamp): boolean;
40
- isSameYear(other: Timestamp): boolean;
41
- getCalendarDay(): CalendarDay;
42
- getDay(): Day;
43
- getMonth(): Month;
44
- getYear(): Year;
45
- getHours(): number;
46
- getMinutes(): number;
47
- getSeconds(): number;
48
- getMilliseconds(): number;
49
- getDayOfWeek(): number;
50
- getMonthOfYear(): MonthOfYear;
51
- }
52
- export {};
53
- //# sourceMappingURL=Timestamp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Timestamp.d.ts","sourceRoot":"","sources":["../../../src/value-objects/time/Timestamp.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,KAAK,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzD,qBAAa,SAAU,SAAQ,WAAW,CAAC,MAAM,CAAC;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAM7B;IAEF,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAgBhC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAqBnC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAIlC,OAAO,CAAC,MAAM,CAAC,sBAAsB;WAsBvB,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS;WAIrC,GAAG,IAAI,SAAS;WAIhB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;gBAItD,KAAK,CAAC,EAAE,cAAc;IASlC,WAAW,IAAI,SAAS;IAYxB,cAAc,IAAI,MAAM;IAIxB,SAAS,IAAI,MAAM;IAInB,MAAM,IAAI,IAAI;IAId,QAAQ,IAAI,MAAM;IAIlB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAInC,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIlC,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAI1C,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIzC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMpE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAM1D,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAM1D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMtD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMpD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAMtD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAwBxD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAsBtD,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS;IAM1C,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIpC,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAItC,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIrC,cAAc,IAAI,WAAW;IAI7B,MAAM,IAAI,GAAG;IAIb,QAAQ,IAAI,KAAK;IAIjB,OAAO,IAAI,IAAI;IAIf,QAAQ,IAAI,MAAM;IAIlB,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,MAAM;IAIpB,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,MAAM;IAItB,cAAc,IAAI,WAAW;CAGrC"}
@@ -1,197 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Timestamp = void 0;
4
- const InvalidIntegerError_1 = require("../../errors/InvalidIntegerError");
5
- const InvalidNumberError_1 = require("../../errors/InvalidNumberError");
6
- const Assert_1 = require("../../patterns/Assert");
7
- const ValueObject_1 = require("../ValueObject");
8
- const CalendarDay_1 = require("./CalendarDay");
9
- const Day_1 = require("./Day");
10
- const Month_1 = require("./Month");
11
- const MonthOfYear_1 = require("./MonthOfYear");
12
- const Year_1 = require("./Year");
13
- class Timestamp extends ValueObject_1.ValueObject {
14
- static FACTORS = {
15
- DAYS: 24 * 60 * 60 * 1000,
16
- HOURS: 60 * 60 * 1000,
17
- MINUTES: 60 * 1000,
18
- SECONDS: 1000,
19
- WEEKS: 7 * 24 * 60 * 60 * 1000,
20
- };
21
- static valueMilliseconds(value) {
22
- if (value instanceof Timestamp || value instanceof Date) {
23
- return value.valueOf();
24
- }
25
- if (typeof value === 'number') {
26
- return value;
27
- }
28
- if (typeof value === 'string') {
29
- return new Date(value).valueOf();
30
- }
31
- return Date.now().valueOf();
32
- }
33
- static getLastDayOfUtcMonth(year, month) {
34
- const normalizedYear = year + Math.floor(month / 12);
35
- const normalizedMonth = ((month % 12) + 12) % 12;
36
- const days = [
37
- 31,
38
- new Year_1.Year(normalizedYear).isLeapYear() ? 29 : 28,
39
- 31,
40
- 30,
41
- 31,
42
- 30,
43
- 31,
44
- 31,
45
- 30,
46
- 31,
47
- 30,
48
- 31,
49
- ];
50
- return days[normalizedMonth];
51
- }
52
- static ensureCalendarDelta(value) {
53
- (0, Assert_1.assert)(Number.isInteger(value), new InvalidIntegerError_1.InvalidIntegerError(value));
54
- }
55
- static createUtcCalendarValue(sourceValue, year, month, day) {
56
- const integerValue = Math.floor(sourceValue);
57
- const fractionalMilliseconds = sourceValue - integerValue;
58
- const source = new Date(integerValue);
59
- const target = new Date(0);
60
- target.setUTCFullYear(year, month, day);
61
- target.setUTCHours(source.getUTCHours(), source.getUTCMinutes(), source.getUTCSeconds(), source.getUTCMilliseconds());
62
- return target.valueOf() + fractionalMilliseconds;
63
- }
64
- static new(value) {
65
- return new Timestamp(value);
66
- }
67
- static now() {
68
- return new Timestamp();
69
- }
70
- static fromSeconds(seconds) {
71
- return new Timestamp(seconds.valueOf() * Timestamp.FACTORS.SECONDS);
72
- }
73
- constructor(value) {
74
- super(Timestamp.valueMilliseconds(value));
75
- (0, Assert_1.assert)(Number.isFinite(new Date(this.value).valueOf()), new InvalidNumberError_1.InvalidNumberError(this.value));
76
- }
77
- toExactHour() {
78
- const date = new Date(this.valueOf());
79
- date.setSeconds(0);
80
- date.setMinutes(0);
81
- date.setMilliseconds(0);
82
- const value = Timestamp.new(date.getTime()).value;
83
- return this.clone(value);
84
- }
85
- toMilliseconds() {
86
- return this.value;
87
- }
88
- toSeconds() {
89
- return Math.round(this.value / Timestamp.FACTORS.SECONDS);
90
- }
91
- toDate() {
92
- return new Date(this.value);
93
- }
94
- toString() {
95
- return `${this.valueOf()}`;
96
- }
97
- isBefore(other) {
98
- return this.value < other.valueOf();
99
- }
100
- isAfter(other) {
101
- return this.value > other.valueOf();
102
- }
103
- isBeforeOrEqual(other) {
104
- return this.value <= other.valueOf();
105
- }
106
- isAfterOrEqual(other) {
107
- return this.value >= other.valueOf();
108
- }
109
- addMilliseconds(milliseconds) {
110
- const value = this.value + milliseconds.valueOf();
111
- return this.clone(value);
112
- }
113
- addSeconds(seconds) {
114
- const value = this.value + seconds.valueOf() * Timestamp.FACTORS.SECONDS;
115
- return this.clone(value);
116
- }
117
- addMinutes(minutes) {
118
- const value = this.value + minutes.valueOf() * Timestamp.FACTORS.MINUTES;
119
- return this.clone(value);
120
- }
121
- addHours(hours) {
122
- const value = this.value + hours.valueOf() * Timestamp.FACTORS.HOURS;
123
- return this.clone(value);
124
- }
125
- addDays(days) {
126
- const value = this.value + days.valueOf() * Timestamp.FACTORS.DAYS;
127
- return this.clone(value);
128
- }
129
- addWeeks(weeks) {
130
- const value = this.value + weeks.valueOf() * Timestamp.FACTORS.WEEKS;
131
- return this.clone(value);
132
- }
133
- addMonths(months) {
134
- const delta = months.valueOf();
135
- Timestamp.ensureCalendarDelta(delta);
136
- const source = new Date(Math.floor(this.value));
137
- const totalMonths = source.getUTCFullYear() * 12 + source.getUTCMonth() + delta;
138
- const targetYear = Math.floor(totalMonths / 12);
139
- const targetMonth = totalMonths - targetYear * 12;
140
- const targetDay = Math.min(source.getUTCDate(), Timestamp.getLastDayOfUtcMonth(targetYear, targetMonth));
141
- return this.clone(Timestamp.createUtcCalendarValue(this.value, targetYear, targetMonth, targetDay));
142
- }
143
- addYears(years) {
144
- const delta = years.valueOf();
145
- Timestamp.ensureCalendarDelta(delta);
146
- const source = new Date(Math.floor(this.value));
147
- const targetYear = source.getUTCFullYear() + delta;
148
- const targetMonth = source.getUTCMonth();
149
- const targetDay = Math.min(source.getUTCDate(), Timestamp.getLastDayOfUtcMonth(targetYear, targetMonth));
150
- return this.clone(Timestamp.createUtcCalendarValue(this.value, targetYear, targetMonth, targetDay));
151
- }
152
- addDuration(duration) {
153
- const value = this.value + duration.valueOf();
154
- return this.clone(value);
155
- }
156
- isSameDay(other) {
157
- return this.getCalendarDay().isEqual(other.getCalendarDay());
158
- }
159
- isSameMonth(other) {
160
- return this.getMonthOfYear().isEqual(other.getMonthOfYear());
161
- }
162
- isSameYear(other) {
163
- return this.getYear().isEqual(other.getYear());
164
- }
165
- getCalendarDay() {
166
- return new CalendarDay_1.CalendarDay(this);
167
- }
168
- getDay() {
169
- return new Day_1.Day(this.toDate().getUTCDate());
170
- }
171
- getMonth() {
172
- return new Month_1.Month(this.toDate().getUTCMonth() + 1);
173
- }
174
- getYear() {
175
- return new Year_1.Year(this.toDate().getUTCFullYear());
176
- }
177
- getHours() {
178
- return this.toDate().getUTCHours();
179
- }
180
- getMinutes() {
181
- return this.toDate().getUTCMinutes();
182
- }
183
- getSeconds() {
184
- return this.toDate().getUTCSeconds();
185
- }
186
- getMilliseconds() {
187
- return this.toDate().getUTCMilliseconds();
188
- }
189
- getDayOfWeek() {
190
- return this.toDate().getUTCDay();
191
- }
192
- getMonthOfYear() {
193
- return new MonthOfYear_1.MonthOfYear(this.getMonth(), this.getYear());
194
- }
195
- }
196
- exports.Timestamp = Timestamp;
197
- //# sourceMappingURL=Timestamp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Timestamp.js","sourceRoot":"","sources":["../../../src/value-objects/time/Timestamp.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { PrimitiveOf } from '../../interfaces/PrimitiveOf';
2
- import { ValueObject } from '../ValueObject';
3
- import { CalendarDay } from './CalendarDay';
4
- import { DayOfWeek } from './DayOfWeek';
5
- import { Duration } from './Duration';
6
- import { Timestamp } from './Timestamp';
7
- export declare class TimestampInterval extends ValueObject<string> {
8
- private readonly start;
9
- private readonly end;
10
- static fromPrimitives(primitives: PrimitiveOf<TimestampInterval>): TimestampInterval;
11
- constructor(start: Timestamp, end: Timestamp);
12
- toPrimitives(): {
13
- end: number;
14
- start: number;
15
- };
16
- getStart(): Timestamp;
17
- getEnd(): Timestamp;
18
- getDuration(): Duration;
19
- getTotalDaysOfWeek(dayOfWeek: DayOfWeek): number;
20
- getDaysBetweenInterval(): CalendarDay[];
21
- getOverlappingInterval(searchInterval: TimestampInterval): TimestampInterval | null;
22
- includes(timestamp: Timestamp): boolean;
23
- }
24
- //# sourceMappingURL=TimestampInterval.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimestampInterval.d.ts","sourceRoot":"","sources":["../../../src/value-objects/time/TimestampInterval.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,MAAM,CAAC;IAWtD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;WAXR,cAAc,CAC1B,UAAU,EAAE,WAAW,CAAC,iBAAiB,CAAC,GACzC,iBAAiB;gBAQD,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,SAAS;IAU1B,YAAY;;;;IAOZ,QAAQ,IAAI,SAAS;IAIrB,MAAM,IAAI,SAAS;IAInB,WAAW,IAAI,QAAQ;IAMvB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAmBhD,sBAAsB,IAAI,WAAW,EAAE;IAcvC,sBAAsB,CAC3B,cAAc,EAAE,iBAAiB,GAChC,iBAAiB,GAAG,IAAI;IAepB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;CAM/C"}
@@ -1,78 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TimestampInterval = void 0;
4
- const InvalidTimestampIntervalError_1 = require("../../errors/InvalidTimestampIntervalError");
5
- const Assert_1 = require("../../patterns/Assert");
6
- const PositiveNumber_1 = require("../PositiveNumber");
7
- const ValueObject_1 = require("../ValueObject");
8
- const CalendarDay_1 = require("./CalendarDay");
9
- const Duration_1 = require("./Duration");
10
- const Timestamp_1 = require("./Timestamp");
11
- class TimestampInterval extends ValueObject_1.ValueObject {
12
- start;
13
- end;
14
- static fromPrimitives(primitives) {
15
- return new TimestampInterval(new Timestamp_1.Timestamp(primitives.start), new Timestamp_1.Timestamp(primitives.end));
16
- }
17
- constructor(start, end) {
18
- super(`${start.valueOf()}-${end.valueOf()}`);
19
- this.start = start;
20
- this.end = end;
21
- (0, Assert_1.assert)(start.isBeforeOrEqual(end), new InvalidTimestampIntervalError_1.InvalidTimestampIntervalError(start, end));
22
- }
23
- toPrimitives() {
24
- return {
25
- end: this.end.valueOf(),
26
- start: this.start.valueOf(),
27
- };
28
- }
29
- getStart() {
30
- return this.start;
31
- }
32
- getEnd() {
33
- return this.end;
34
- }
35
- getDuration() {
36
- return new Duration_1.Duration(new PositiveNumber_1.PositiveNumber(this.end.valueOf() - this.start.valueOf()));
37
- }
38
- getTotalDaysOfWeek(dayOfWeek) {
39
- const oneDayInMilliseconds = 24 * 60 * 60 * 1000;
40
- const daysToCheck = Math.trunc(this.getDuration().valueOf() / oneDayInMilliseconds);
41
- let count = 0;
42
- for (let daysChecked = 0; daysChecked <= daysToCheck; daysChecked++) {
43
- const iteratorDay = new Timestamp_1.Timestamp(this.start).addDays(daysChecked);
44
- if (iteratorDay.getDayOfWeek() === dayOfWeek.toNumber()) {
45
- count++;
46
- }
47
- }
48
- return count;
49
- }
50
- getDaysBetweenInterval() {
51
- const days = [];
52
- let iteratorTimestamp = new Timestamp_1.Timestamp(this.getStart());
53
- const endTimestamp = new Timestamp_1.Timestamp(this.getEnd());
54
- while (iteratorTimestamp.isBeforeOrEqual(endTimestamp)) {
55
- days.push(new CalendarDay_1.CalendarDay(iteratorTimestamp));
56
- iteratorTimestamp = iteratorTimestamp.addDays(1);
57
- }
58
- return days;
59
- }
60
- getOverlappingInterval(searchInterval) {
61
- const start = this.start.isAfter(searchInterval.getStart())
62
- ? this.start
63
- : searchInterval.getStart();
64
- const end = this.end.isBefore(searchInterval.getEnd())
65
- ? this.end
66
- : searchInterval.getEnd();
67
- if (start.isAfterOrEqual(end)) {
68
- return null;
69
- }
70
- return new TimestampInterval(start, end);
71
- }
72
- includes(timestamp) {
73
- return (timestamp.isAfterOrEqual(this.start) &&
74
- timestamp.isBeforeOrEqual(this.end));
75
- }
76
- }
77
- exports.TimestampInterval = TimestampInterval;
78
- //# sourceMappingURL=TimestampInterval.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimestampInterval.js","sourceRoot":"","sources":["../../../src/value-objects/time/TimestampInterval.ts"],"names":[],"mappings":"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"}