@haskou/value-objects 6.1.1 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/README.md +4 -0
  2. package/dist/index.cjs +1244 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +538 -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 +18 -11
  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 -12
  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 -13
  218. package/dist/value-objects/ids/UUID.d.ts.map +0 -1
  219. package/dist/value-objects/ids/UUID.js +0 -48
  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
package/dist/index.cjs ADDED
@@ -0,0 +1,1244 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ let buffer = require("buffer");
3
+ let uuid = require("uuid");
4
+ //#region src/errors/BaseError.ts
5
+ var BaseError = class BaseError extends Error {
6
+ isBaseError = true;
7
+ static isBaseError(error) {
8
+ return !!error.isBaseError;
9
+ }
10
+ constructor(message, prototype = BaseError.prototype) {
11
+ super(message);
12
+ this.name = this.constructor.name;
13
+ Object.setPrototypeOf(this, prototype);
14
+ }
15
+ toString() {
16
+ return `[${this.name}]: ${this.message}`;
17
+ }
18
+ getStack() {
19
+ return this.stack || "";
20
+ }
21
+ };
22
+ //#endregion
23
+ //#region src/errors/DomainError.ts
24
+ var DomainError = class extends BaseError {
25
+ isDomainError = true;
26
+ static isDomainError(error) {
27
+ return !!error.isDomainError;
28
+ }
29
+ constructor(message) {
30
+ super(message, new.target.prototype);
31
+ }
32
+ };
33
+ //#endregion
34
+ //#region src/errors/InvalidColorError.ts
35
+ var InvalidColorError = class extends DomainError {
36
+ constructor(value) {
37
+ super(`Invalid color value: ${value}. Must be a valid hex color code.`);
38
+ }
39
+ };
40
+ //#endregion
41
+ //#region src/errors/InvalidDayError.ts
42
+ var InvalidDayError = class extends DomainError {
43
+ constructor(invalidDay) {
44
+ super(`Invalid day ${String(invalidDay)}`);
45
+ }
46
+ };
47
+ //#endregion
48
+ //#region src/errors/InvalidDayFormatError.ts
49
+ var InvalidDayFormatError = class extends DomainError {
50
+ constructor(invalidDate) {
51
+ super(`Invalid day ${invalidDate}. Expected YYYY-MM-DD. `);
52
+ }
53
+ };
54
+ //#endregion
55
+ //#region src/errors/InvalidHourError.ts
56
+ var InvalidHourError = class extends DomainError {
57
+ constructor() {
58
+ super(`Invalid hour`);
59
+ }
60
+ };
61
+ //#endregion
62
+ //#region src/errors/InvalidEmailError.ts
63
+ var InvalidEmailError = class extends DomainError {
64
+ constructor(value) {
65
+ super(`Invalid email format: ${value}`);
66
+ }
67
+ };
68
+ //#endregion
69
+ //#region src/errors/InvalidFormatError.ts
70
+ var InvalidFormatError = class extends DomainError {
71
+ constructor(value) {
72
+ super(`Invalid Format Error with value: '${value}'`);
73
+ }
74
+ };
75
+ //#endregion
76
+ //#region src/errors/InvalidHashError.ts
77
+ var InvalidHashError = class extends DomainError {
78
+ constructor(type, value) {
79
+ super(`Invalid ${type} hash: ${value}`);
80
+ }
81
+ };
82
+ //#endregion
83
+ //#region src/errors/InvalidIntegerError.ts
84
+ var InvalidIntegerError = class extends DomainError {
85
+ constructor(value) {
86
+ super(`Invalid integer value ${value}`);
87
+ }
88
+ };
89
+ //#endregion
90
+ //#region src/errors/InvalidLatitudeError.ts
91
+ var InvalidLatitudeError = class extends DomainError {
92
+ constructor(value) {
93
+ super(`Invalid latitude: ${value}. Must be between -90 and 90`);
94
+ }
95
+ };
96
+ //#endregion
97
+ //#region src/errors/InvalidLongitudeError.ts
98
+ var InvalidLongitudeError = class extends DomainError {
99
+ constructor(value) {
100
+ super(`Invalid longitude: ${value}. Must be between -180 and 180`);
101
+ }
102
+ };
103
+ //#endregion
104
+ //#region src/errors/InvalidMinutesError.ts
105
+ var InvalidMinutesError = class extends DomainError {
106
+ constructor() {
107
+ super(`Invalid minutes`);
108
+ }
109
+ };
110
+ //#endregion
111
+ //#region src/errors/InvalidNumberError.ts
112
+ var InvalidNumberError = class extends DomainError {
113
+ constructor(invalidNumber) {
114
+ super(`Invalid number ${String(invalidNumber)}`);
115
+ }
116
+ };
117
+ //#endregion
118
+ //#region src/errors/InvalidPasswordError.ts
119
+ var InvalidPasswordError = class extends DomainError {
120
+ constructor(minLength, maxLength) {
121
+ super(`Password must be between ${minLength} and ${maxLength} characters long and include at least one uppercase letter, one lowercase letter, one number and one symbol.`);
122
+ }
123
+ };
124
+ //#endregion
125
+ //#region src/errors/InvalidPositiveNumberError.ts
126
+ var InvalidPositiveNumberError = class extends DomainError {
127
+ constructor() {
128
+ super(`Value must be greater or equal than 0`);
129
+ }
130
+ };
131
+ //#endregion
132
+ //#region src/errors/InvalidStringLengthError.ts
133
+ var InvalidStringLengthError = class extends DomainError {
134
+ constructor(value, length) {
135
+ super(`String length '${value.length}' exceeds the expected length: '${length}'`);
136
+ }
137
+ };
138
+ //#endregion
139
+ //#region src/errors/InvalidTimestampIntervalError.ts
140
+ var InvalidTimestampIntervalError = class extends DomainError {
141
+ constructor(start, end) {
142
+ super(`Invalid TimestampInterval, start (${start.valueOf()}) must be before the end (${end.valueOf()})`);
143
+ }
144
+ };
145
+ //#endregion
146
+ //#region src/errors/InvalidLengthError.ts
147
+ var InvalidLengthError = class extends DomainError {
148
+ constructor(value, length) {
149
+ super(`Invalid Length Error with value: '${value}' expected length: '${length}'`);
150
+ }
151
+ };
152
+ //#endregion
153
+ //#region src/errors/NullObjectCreationDisabledError.ts
154
+ var NullObjectCreationDisabledError = class NullObjectCreationDisabledError extends DomainError {
155
+ constructor(valueObjectName) {
156
+ super(`[NullObjectCreationDisabledError]: ${valueObjectName} received null or undefined while automatic NullObject creation is disabled`);
157
+ Object.setPrototypeOf(this, NullObjectCreationDisabledError.prototype);
158
+ }
159
+ };
160
+ //#endregion
161
+ //#region src/errors/NullObjectError.ts
162
+ var NullObjectError = class NullObjectError extends DomainError {
163
+ constructor(message) {
164
+ super(`[NullObjectError]: ${message} is NullObject`);
165
+ Object.setPrototypeOf(this, NullObjectError.prototype);
166
+ }
167
+ };
168
+ //#endregion
169
+ //#region src/errors/ValueNotInEnumError.ts
170
+ var ValueNotInEnumError = class extends DomainError {
171
+ constructor(value, enumerate) {
172
+ super(`${Object.values(enumerate).join(",")} enum does not include value: ${value}`);
173
+ }
174
+ };
175
+ //#endregion
176
+ //#region src/patterns/Assert.ts
177
+ function assert(condition, error) {
178
+ if (condition) return;
179
+ throw typeof error === "string" ? new DomainError(error) : error;
180
+ }
181
+ //#endregion
182
+ //#region src/value-objects/NullObject.ts
183
+ var NullObject = class NullObject {
184
+ static setFakeProps(nullObject, klass) {
185
+ const visited = /* @__PURE__ */ new Set();
186
+ let proto = klass.prototype;
187
+ while (proto && proto !== Object.prototype) {
188
+ const props = Object.getOwnPropertyNames(proto);
189
+ for (const prop of props) {
190
+ if (prop === "constructor" || prop === "isNullObject" || prop === "valueOf" || visited.has(prop)) continue;
191
+ visited.add(prop);
192
+ nullObject[prop] = () => {
193
+ throw new NullObjectError(klass.name);
194
+ };
195
+ }
196
+ proto = Object.getPrototypeOf(proto);
197
+ }
198
+ Object.setPrototypeOf(nullObject, NullObject.prototype);
199
+ }
200
+ static new(klass) {
201
+ const nullObject = {
202
+ isNullObject: true,
203
+ valueOf: () => {}
204
+ };
205
+ NullObject.setFakeProps(nullObject, klass);
206
+ return nullObject;
207
+ }
208
+ static isNullObject(nullable) {
209
+ return !!nullable?.isNullObject;
210
+ }
211
+ };
212
+ //#endregion
213
+ //#region src/value-objects/ValueObject.ts
214
+ var ValueObject = class ValueObject {
215
+ static nullObjectCreationEnabled = true;
216
+ value;
217
+ static disableNullObjectCreation() {
218
+ ValueObject.nullObjectCreationEnabled = false;
219
+ }
220
+ static enableNullObjectCreation() {
221
+ ValueObject.nullObjectCreationEnabled = true;
222
+ }
223
+ constructor(value) {
224
+ if (this.isNullish(value)) {
225
+ if (ValueObject.nullObjectCreationEnabled === false) throw new NullObjectCreationDisabledError(new.target.name);
226
+ return NullObject.new(new.target);
227
+ }
228
+ this.value = value;
229
+ }
230
+ isNullish(value) {
231
+ return value === null || value === void 0;
232
+ }
233
+ clone(value) {
234
+ return new this.constructor(this.isNullish(value) ? this.value : value);
235
+ }
236
+ hasValue(other) {
237
+ const otherValue = other instanceof ValueObject ? other.valueOf() : other;
238
+ return this.value === otherValue;
239
+ }
240
+ isEqual(other) {
241
+ return other instanceof ValueObject && this.constructor === other.constructor && this.hasValue(other);
242
+ }
243
+ isNotEqual(other) {
244
+ return this.isEqual(other) === false;
245
+ }
246
+ valueOf() {
247
+ return this.value;
248
+ }
249
+ toString() {
250
+ return this.value.toString();
251
+ }
252
+ };
253
+ //#endregion
254
+ //#region src/value-objects/StringValueObject.ts
255
+ var StringValueObject = class extends ValueObject {
256
+ constructor(value, maxLength = 512) {
257
+ super(value?.valueOf());
258
+ if (NullObject.isNullObject(this)) return this;
259
+ this.ensureDoesNotExceedsMaxLength(maxLength);
260
+ }
261
+ ensureDoesNotExceedsMaxLength(maxLength) {
262
+ assert(this.value.length <= maxLength, new InvalidStringLengthError(this.value, maxLength));
263
+ }
264
+ isEmpty() {
265
+ return !this.value;
266
+ }
267
+ };
268
+ //#endregion
269
+ //#region src/value-objects/NumberValueObject.ts
270
+ var NumberValueObject = class extends ValueObject {
271
+ constructor(value) {
272
+ super(value?.valueOf());
273
+ if (NullObject.isNullObject(this)) return this;
274
+ assert(this.isValidNumber(this.value), new InvalidNumberError(this.value));
275
+ }
276
+ isValidNumber(value) {
277
+ return Number.isFinite(value.valueOf());
278
+ }
279
+ isZero() {
280
+ return this.value === 0;
281
+ }
282
+ isGreaterThan(other) {
283
+ return this.value > other.valueOf();
284
+ }
285
+ isGreaterOrEqualThan(other) {
286
+ return this.value >= other.valueOf();
287
+ }
288
+ isLessThan(other) {
289
+ return this.value < other.valueOf();
290
+ }
291
+ isLessOrEqualThan(other) {
292
+ return this.value <= other.valueOf();
293
+ }
294
+ add(other) {
295
+ return this.clone(this.value + other.valueOf());
296
+ }
297
+ subtract(other) {
298
+ return this.clone(this.value - other.valueOf());
299
+ }
300
+ multiply(other) {
301
+ return this.clone(this.value * other.valueOf());
302
+ }
303
+ divide(other) {
304
+ return this.clone(this.value / other.valueOf());
305
+ }
306
+ };
307
+ //#endregion
308
+ //#region src/value-objects/coordinates/Latitude.ts
309
+ var Latitude = class Latitude extends NumberValueObject {
310
+ static MIN_VALUE = new NumberValueObject(-90);
311
+ static MAX_VALUE = new NumberValueObject(90);
312
+ static isValid(value) {
313
+ const primitive = value.valueOf();
314
+ return Number.isFinite(primitive) && primitive >= this.MIN_VALUE.valueOf() && primitive <= this.MAX_VALUE.valueOf();
315
+ }
316
+ constructor(value) {
317
+ assert(Latitude.isValid(value), new InvalidLatitudeError(value.valueOf()));
318
+ super(value.valueOf());
319
+ }
320
+ };
321
+ //#endregion
322
+ //#region src/value-objects/coordinates/Longitude.ts
323
+ var Longitude = class Longitude extends NumberValueObject {
324
+ static MIN_VALUE = new NumberValueObject(-180);
325
+ static MAX_VALUE = new NumberValueObject(180);
326
+ static isValid(value) {
327
+ const primitive = value.valueOf();
328
+ return Number.isFinite(primitive) && primitive >= this.MIN_VALUE.valueOf() && primitive <= this.MAX_VALUE.valueOf();
329
+ }
330
+ constructor(value) {
331
+ assert(Longitude.isValid(value), new InvalidLongitudeError(value.valueOf()));
332
+ super(value.valueOf());
333
+ }
334
+ };
335
+ //#endregion
336
+ //#region src/value-objects/coordinates/Coordinates.ts
337
+ var Coordinates = class Coordinates extends StringValueObject {
338
+ latitude;
339
+ longitude;
340
+ static fromString(value) {
341
+ const latitude = parseFloat(value.split(",")[0]);
342
+ const longitude = parseFloat(value.split(",")[1]);
343
+ return new Coordinates(latitude, longitude);
344
+ }
345
+ constructor(latitude, longitude) {
346
+ super(latitude?.valueOf() + "," + longitude?.valueOf());
347
+ this.latitude = new Latitude(latitude.valueOf());
348
+ this.longitude = new Longitude(longitude.valueOf());
349
+ }
350
+ getLatitude() {
351
+ return this.latitude;
352
+ }
353
+ getLongitude() {
354
+ return this.longitude;
355
+ }
356
+ };
357
+ //#endregion
358
+ //#region src/value-objects/hashes/Hash.ts
359
+ var Hash = class extends ValueObject {
360
+ constructor(source) {
361
+ super(source?.valueOf());
362
+ if (NullObject.isNullObject(this)) return this;
363
+ }
364
+ toBase64() {
365
+ return new StringValueObject(buffer.Buffer.from(this.valueOf(), "hex").toString("base64"));
366
+ }
367
+ };
368
+ //#endregion
369
+ //#region src/value-objects/hashes/MD5Hash.ts
370
+ var MD5Hash = class MD5Hash extends Hash {
371
+ static isValid(hash) {
372
+ return !!hash.valueOf().match(/^[a-f0-9]{32}$/);
373
+ }
374
+ constructor(source) {
375
+ super(source?.valueOf());
376
+ if (NullObject.isNullObject(this)) return this;
377
+ assert(MD5Hash.isValid(this.valueOf()), new InvalidHashError("MD5", source.valueOf()));
378
+ }
379
+ };
380
+ //#endregion
381
+ //#region src/value-objects/hashes/SHA256Hash.ts
382
+ var SHA256Hash = class SHA256Hash extends ValueObject {
383
+ static isValid(hash) {
384
+ return !!hash.valueOf().match(/^[a-f0-9]{64}$/i);
385
+ }
386
+ constructor(source) {
387
+ super(source?.valueOf());
388
+ if (NullObject.isNullObject(this)) return this;
389
+ assert(SHA256Hash.isValid(this.valueOf()), new InvalidHashError("SHA256", source.valueOf()));
390
+ }
391
+ toBase64() {
392
+ return new StringValueObject(buffer.Buffer.from(this.valueOf(), "hex").toString("base64"));
393
+ }
394
+ };
395
+ //#endregion
396
+ //#region src/value-objects/hashes/SHA512Hash.ts
397
+ var SHA512Hash = class SHA512Hash extends ValueObject {
398
+ static isValid(hash) {
399
+ return !!hash.valueOf().match(/^[a-f0-9]{128}$/i);
400
+ }
401
+ constructor(source) {
402
+ super(source?.valueOf());
403
+ if (NullObject.isNullObject(this)) return this;
404
+ assert(SHA512Hash.isValid(this.valueOf()), new InvalidHashError("SHA512", source.valueOf()));
405
+ }
406
+ toBase64() {
407
+ return new StringValueObject(buffer.Buffer.from(this.valueOf(), "hex").toString("base64"));
408
+ }
409
+ };
410
+ //#endregion
411
+ //#region src/value-objects/ids/ShortId.ts
412
+ var ShortId = class ShortId extends ValueObject {
413
+ static LENGTH = 24;
414
+ static PATTERN = new RegExp(`[a-zA-Z0-9]{${this.LENGTH}}$`);
415
+ static generateObjectIdHex() {
416
+ const random = (0, uuid.parse)((0, uuid.v4)());
417
+ const bytes = buffer.Buffer.alloc(12);
418
+ bytes.writeUInt32BE(Math.floor(Date.now() / 1e3), 0);
419
+ bytes.set(random.subarray(0, 6), 4);
420
+ bytes.set(random.subarray(9, 11), 10);
421
+ return bytes.toString("hex");
422
+ }
423
+ static generate() {
424
+ return new ShortId(ShortId.generateObjectIdHex());
425
+ }
426
+ constructor(value) {
427
+ super(value?.valueOf());
428
+ if (NullObject.isNullObject(this)) return this;
429
+ this.ensureIsShortId(this.value);
430
+ }
431
+ ensureIsShortId(value) {
432
+ assert(value.length === ShortId.LENGTH, new InvalidLengthError(this.value, ShortId.LENGTH));
433
+ assert(ShortId.PATTERN.test(value), new InvalidFormatError(this.value));
434
+ }
435
+ };
436
+ //#endregion
437
+ //#region src/value-objects/ids/UUID.ts
438
+ var UUID = class UUID extends ValueObject {
439
+ static LENGTH = 36;
440
+ static PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
441
+ static SENTINEL_PATTERN = /^(?:00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;
442
+ static generate() {
443
+ return new UUID((0, uuid.v4)());
444
+ }
445
+ constructor(value) {
446
+ super(value?.valueOf());
447
+ if (NullObject.isNullObject(this)) return this;
448
+ this.ensureIsUUID(this.value);
449
+ }
450
+ ensureIsUUID(value) {
451
+ assert(value.length === UUID.LENGTH, new InvalidLengthError(this.value, UUID.LENGTH));
452
+ assert(UUID.PATTERN.test(value) || UUID.SENTINEL_PATTERN.test(value), new InvalidFormatError(this.value));
453
+ }
454
+ };
455
+ //#endregion
456
+ //#region src/value-objects/media/Media.ts
457
+ var Media = class Media extends ValueObject {
458
+ buffer;
459
+ constructor(value) {
460
+ super(value?.toString());
461
+ if (NullObject.isNullObject(this)) return this;
462
+ this.buffer = buffer.Buffer.isBuffer(value) ? buffer.Buffer.from(value) : void 0;
463
+ }
464
+ getBuffer() {
465
+ return this.buffer === void 0 ? buffer.Buffer.from(this.value) : buffer.Buffer.from(this.buffer);
466
+ }
467
+ getSize() {
468
+ return this.getBuffer().length;
469
+ }
470
+ getBase64() {
471
+ return this.getBuffer().toString("base64");
472
+ }
473
+ hasValue(other) {
474
+ if (other instanceof Media) return this.getBuffer().equals(other.getBuffer());
475
+ if (buffer.Buffer.isBuffer(other)) return this.getBuffer().equals(other);
476
+ return super.hasValue(other);
477
+ }
478
+ };
479
+ //#endregion
480
+ //#region src/value-objects/Integer.ts
481
+ var Integer = class extends NumberValueObject {
482
+ constructor(value) {
483
+ super(value?.valueOf());
484
+ if (NullObject.isNullObject(this)) return this;
485
+ this.ensureIsInteger();
486
+ }
487
+ ensureIsInteger() {
488
+ assert(this.value.valueOf() % 1 === 0, new InvalidIntegerError(this.value.valueOf()));
489
+ }
490
+ };
491
+ //#endregion
492
+ //#region src/value-objects/time/Day.ts
493
+ var Day = class extends Integer {
494
+ constructor(value) {
495
+ super(value.valueOf());
496
+ this.ensureIsValidDay();
497
+ }
498
+ ensureIsValidDay() {
499
+ assert(this.isGreaterOrEqualThan(1), new InvalidDayError(this.value));
500
+ assert(this.isLessOrEqualThan(31), new InvalidDayError(this.value));
501
+ }
502
+ };
503
+ //#endregion
504
+ //#region src/value-objects/Enum.ts
505
+ var Enum = class extends ValueObject {
506
+ value;
507
+ constructor(value) {
508
+ super(value);
509
+ this.value = value;
510
+ if (NullObject.isNullObject(this)) return this;
511
+ this.ensureIsValidValue();
512
+ }
513
+ ensureIsValidValue() {
514
+ assert(this.getValues().some((enumValue) => this.hasValue(enumValue)), new ValueNotInEnumError(this.valueOf(), this.getValues()));
515
+ }
516
+ };
517
+ //#endregion
518
+ //#region src/value-objects/time/DayOfWeek.ts
519
+ let EDaysOfWeek = /* @__PURE__ */ function(EDaysOfWeek) {
520
+ EDaysOfWeek["MONDAY"] = "monday";
521
+ EDaysOfWeek["TUESDAY"] = "tuesday";
522
+ EDaysOfWeek["WEDNESDAY"] = "wednesday";
523
+ EDaysOfWeek["THURSDAY"] = "thursday";
524
+ EDaysOfWeek["FRIDAY"] = "friday";
525
+ EDaysOfWeek["SATURDAY"] = "saturday";
526
+ EDaysOfWeek["SUNDAY"] = "sunday";
527
+ return EDaysOfWeek;
528
+ }({});
529
+ const timeStampDayToDaysMap = {
530
+ ["friday"]: 5,
531
+ ["monday"]: 1,
532
+ ["saturday"]: 6,
533
+ ["sunday"]: 0,
534
+ ["thursday"]: 4,
535
+ ["tuesday"]: 2,
536
+ ["wednesday"]: 3
537
+ };
538
+ var DayOfWeek = class DayOfWeek extends Enum {
539
+ static MONDAY = new DayOfWeek("monday");
540
+ static TUESDAY = new DayOfWeek("tuesday");
541
+ static WEDNESDAY = new DayOfWeek("wednesday");
542
+ static THURSDAY = new DayOfWeek("thursday");
543
+ static FRIDAY = new DayOfWeek("friday");
544
+ static SATURDAY = new DayOfWeek("saturday");
545
+ static SUNDAY = new DayOfWeek("sunday");
546
+ static fromNumber(day) {
547
+ const [eDay] = Object.entries(timeStampDayToDaysMap).find(([, value]) => value === day) || [];
548
+ assert(eDay, new InvalidDayError(eDay));
549
+ return new DayOfWeek(eDay);
550
+ }
551
+ static fromTimestamp(timestamp) {
552
+ const dayOfWeekNumber = timestamp.getDayOfWeek();
553
+ return DayOfWeek.fromNumber(dayOfWeekNumber);
554
+ }
555
+ getValues() {
556
+ return Object.values(EDaysOfWeek);
557
+ }
558
+ toNumber() {
559
+ return timeStampDayToDaysMap[this.value];
560
+ }
561
+ };
562
+ //#endregion
563
+ //#region src/value-objects/time/Month.ts
564
+ var MonthEnum = /* @__PURE__ */ function(MonthEnum) {
565
+ MonthEnum[MonthEnum["JANUARY"] = 1] = "JANUARY";
566
+ MonthEnum[MonthEnum["FEBRUARY"] = 2] = "FEBRUARY";
567
+ MonthEnum[MonthEnum["MARCH"] = 3] = "MARCH";
568
+ MonthEnum[MonthEnum["APRIL"] = 4] = "APRIL";
569
+ MonthEnum[MonthEnum["MAY"] = 5] = "MAY";
570
+ MonthEnum[MonthEnum["JUNE"] = 6] = "JUNE";
571
+ MonthEnum[MonthEnum["JULY"] = 7] = "JULY";
572
+ MonthEnum[MonthEnum["AUGUST"] = 8] = "AUGUST";
573
+ MonthEnum[MonthEnum["SEPTEMBER"] = 9] = "SEPTEMBER";
574
+ MonthEnum[MonthEnum["OCTOBER"] = 10] = "OCTOBER";
575
+ MonthEnum[MonthEnum["NOVEMBER"] = 11] = "NOVEMBER";
576
+ MonthEnum[MonthEnum["DECEMBER"] = 12] = "DECEMBER";
577
+ return MonthEnum;
578
+ }(MonthEnum || {});
579
+ var Month = class Month extends Enum {
580
+ static JANUARY = new Month(1);
581
+ static FEBRUARY = new Month(2);
582
+ static MARCH = new Month(3);
583
+ static APRIL = new Month(4);
584
+ static MAY = new Month(5);
585
+ static JUNE = new Month(6);
586
+ static JULY = new Month(7);
587
+ static AUGUST = new Month(8);
588
+ static SEPTEMBER = new Month(9);
589
+ static OCTOBER = new Month(10);
590
+ static NOVEMBER = new Month(11);
591
+ static DECEMBER = new Month(12);
592
+ getValues() {
593
+ return Object.values(MonthEnum);
594
+ }
595
+ getIndex() {
596
+ return Number(this.valueOf()) - 1;
597
+ }
598
+ };
599
+ //#endregion
600
+ //#region src/value-objects/time/Year.ts
601
+ var Year = class Year extends Integer {
602
+ static YEAR_DAYS = 365;
603
+ static LEAP_YEAR_DAYS = 366;
604
+ constructor(value) {
605
+ super(value?.valueOf());
606
+ if (NullObject.isNullObject(this)) return this;
607
+ }
608
+ isLeapYear() {
609
+ return this.getNumberOfDays() === Year.LEAP_YEAR_DAYS;
610
+ }
611
+ getNumberOfDays() {
612
+ return this.value % 4 === 0 && this.value % 100 !== 0 || this.value % 400 === 0 ? Year.LEAP_YEAR_DAYS : Year.YEAR_DAYS;
613
+ }
614
+ };
615
+ //#endregion
616
+ //#region src/value-objects/time/Timestamp.ts
617
+ var Timestamp = class Timestamp extends ValueObject {
618
+ static FACTORS = {
619
+ DAYS: 864e5,
620
+ HOURS: 36e5,
621
+ MINUTES: 6e4,
622
+ SECONDS: 1e3,
623
+ WEEKS: 6048e5
624
+ };
625
+ static valueMilliseconds(value) {
626
+ if (value instanceof Timestamp || value instanceof Date) return value.valueOf();
627
+ if (typeof value === "number") return value;
628
+ if (typeof value === "string") return new Date(value).valueOf();
629
+ return Date.now().valueOf();
630
+ }
631
+ static getLastDayOfUtcMonth(year, month) {
632
+ const normalizedYear = year + Math.floor(month / 12);
633
+ const normalizedMonth = (month % 12 + 12) % 12;
634
+ return [
635
+ 31,
636
+ new Year(normalizedYear).isLeapYear() ? 29 : 28,
637
+ 31,
638
+ 30,
639
+ 31,
640
+ 30,
641
+ 31,
642
+ 31,
643
+ 30,
644
+ 31,
645
+ 30,
646
+ 31
647
+ ][normalizedMonth];
648
+ }
649
+ static ensureCalendarDelta(value) {
650
+ assert(Number.isInteger(value), new InvalidIntegerError(value));
651
+ }
652
+ static createUtcCalendarValue(sourceValue, year, month, day) {
653
+ const integerValue = Math.floor(sourceValue);
654
+ const fractionalMilliseconds = sourceValue - integerValue;
655
+ const source = new Date(integerValue);
656
+ const target = /* @__PURE__ */ new Date(0);
657
+ target.setUTCFullYear(year, month, day);
658
+ target.setUTCHours(source.getUTCHours(), source.getUTCMinutes(), source.getUTCSeconds(), source.getUTCMilliseconds());
659
+ return target.valueOf() + fractionalMilliseconds;
660
+ }
661
+ static new(value) {
662
+ return new Timestamp(value);
663
+ }
664
+ static now() {
665
+ return new Timestamp();
666
+ }
667
+ static fromSeconds(seconds) {
668
+ return new Timestamp(seconds.valueOf() * Timestamp.FACTORS.SECONDS);
669
+ }
670
+ constructor(value) {
671
+ super(Timestamp.valueMilliseconds(value));
672
+ assert(Number.isFinite(new Date(this.value).valueOf()), new InvalidNumberError(this.value));
673
+ }
674
+ toExactHour() {
675
+ const date = new Date(this.valueOf());
676
+ date.setSeconds(0);
677
+ date.setMinutes(0);
678
+ date.setMilliseconds(0);
679
+ const value = Timestamp.new(date.getTime()).value;
680
+ return this.clone(value);
681
+ }
682
+ toMilliseconds() {
683
+ return this.value;
684
+ }
685
+ toSeconds() {
686
+ return Math.round(this.value / Timestamp.FACTORS.SECONDS);
687
+ }
688
+ toDate() {
689
+ return new Date(this.value);
690
+ }
691
+ toString() {
692
+ return `${this.valueOf()}`;
693
+ }
694
+ isBefore(other) {
695
+ return this.value < other.valueOf();
696
+ }
697
+ isAfter(other) {
698
+ return this.value > other.valueOf();
699
+ }
700
+ isBeforeOrEqual(other) {
701
+ return this.value <= other.valueOf();
702
+ }
703
+ isAfterOrEqual(other) {
704
+ return this.value >= other.valueOf();
705
+ }
706
+ addMilliseconds(milliseconds) {
707
+ const value = this.value + milliseconds.valueOf();
708
+ return this.clone(value);
709
+ }
710
+ addSeconds(seconds) {
711
+ const value = this.value + seconds.valueOf() * Timestamp.FACTORS.SECONDS;
712
+ return this.clone(value);
713
+ }
714
+ addMinutes(minutes) {
715
+ const value = this.value + minutes.valueOf() * Timestamp.FACTORS.MINUTES;
716
+ return this.clone(value);
717
+ }
718
+ addHours(hours) {
719
+ const value = this.value + hours.valueOf() * Timestamp.FACTORS.HOURS;
720
+ return this.clone(value);
721
+ }
722
+ addDays(days) {
723
+ const value = this.value + days.valueOf() * Timestamp.FACTORS.DAYS;
724
+ return this.clone(value);
725
+ }
726
+ addWeeks(weeks) {
727
+ const value = this.value + weeks.valueOf() * Timestamp.FACTORS.WEEKS;
728
+ return this.clone(value);
729
+ }
730
+ addMonths(months) {
731
+ const delta = months.valueOf();
732
+ Timestamp.ensureCalendarDelta(delta);
733
+ const source = new Date(Math.floor(this.value));
734
+ const totalMonths = source.getUTCFullYear() * 12 + source.getUTCMonth() + delta;
735
+ const targetYear = Math.floor(totalMonths / 12);
736
+ const targetMonth = totalMonths - targetYear * 12;
737
+ const targetDay = Math.min(source.getUTCDate(), Timestamp.getLastDayOfUtcMonth(targetYear, targetMonth));
738
+ return this.clone(Timestamp.createUtcCalendarValue(this.value, targetYear, targetMonth, targetDay));
739
+ }
740
+ addYears(years) {
741
+ const delta = years.valueOf();
742
+ Timestamp.ensureCalendarDelta(delta);
743
+ const source = new Date(Math.floor(this.value));
744
+ const targetYear = source.getUTCFullYear() + delta;
745
+ const targetMonth = source.getUTCMonth();
746
+ const targetDay = Math.min(source.getUTCDate(), Timestamp.getLastDayOfUtcMonth(targetYear, targetMonth));
747
+ return this.clone(Timestamp.createUtcCalendarValue(this.value, targetYear, targetMonth, targetDay));
748
+ }
749
+ addDuration(duration) {
750
+ const value = this.value + duration.valueOf();
751
+ return this.clone(value);
752
+ }
753
+ isSameDay(other) {
754
+ return this.getCalendarDay().isEqual(other.getCalendarDay());
755
+ }
756
+ isSameMonth(other) {
757
+ return this.getMonthOfYear().isEqual(other.getMonthOfYear());
758
+ }
759
+ isSameYear(other) {
760
+ return this.getYear().isEqual(other.getYear());
761
+ }
762
+ getCalendarDay() {
763
+ return new CalendarDay(this);
764
+ }
765
+ getDay() {
766
+ return new Day(this.toDate().getUTCDate());
767
+ }
768
+ getMonth() {
769
+ return new Month(this.toDate().getUTCMonth() + 1);
770
+ }
771
+ getYear() {
772
+ return new Year(this.toDate().getUTCFullYear());
773
+ }
774
+ getHours() {
775
+ return this.toDate().getUTCHours();
776
+ }
777
+ getMinutes() {
778
+ return this.toDate().getUTCMinutes();
779
+ }
780
+ getSeconds() {
781
+ return this.toDate().getUTCSeconds();
782
+ }
783
+ getMilliseconds() {
784
+ return this.toDate().getUTCMilliseconds();
785
+ }
786
+ getDayOfWeek() {
787
+ return this.toDate().getUTCDay();
788
+ }
789
+ getMonthOfYear() {
790
+ return new MonthOfYear(this.getMonth(), this.getYear());
791
+ }
792
+ };
793
+ //#endregion
794
+ //#region src/value-objects/PositiveNumber.ts
795
+ var PositiveNumber = class extends NumberValueObject {
796
+ constructor(value) {
797
+ super(value?.valueOf());
798
+ if (NullObject.isNullObject(this)) return this;
799
+ this.ensureIsPositive(this.value);
800
+ }
801
+ ensureIsPositive(value) {
802
+ assert(value >= 0, new InvalidPositiveNumberError());
803
+ }
804
+ };
805
+ //#endregion
806
+ //#region src/value-objects/time/Duration.ts
807
+ var Duration = class Duration extends NumberValueObject {
808
+ static MILLISECOND_FACTOR = 1e3;
809
+ static SECOND_UNITS = {
810
+ DAYS: 86400,
811
+ HOURS: 3600,
812
+ MINUTES: 60,
813
+ MONTHS: 2592e3,
814
+ SECONDS: 1,
815
+ WEEKS: 604800,
816
+ YEARS: 31536e3
817
+ };
818
+ static millisecondFactors = {
819
+ DAYS: new NumberValueObject(this.SECOND_UNITS.DAYS * this.MILLISECOND_FACTOR),
820
+ HOURS: new NumberValueObject(this.SECOND_UNITS.HOURS * this.MILLISECOND_FACTOR),
821
+ MINUTES: new NumberValueObject(this.SECOND_UNITS.MINUTES * this.MILLISECOND_FACTOR),
822
+ MONTHS: new NumberValueObject(this.SECOND_UNITS.MONTHS * this.MILLISECOND_FACTOR),
823
+ SECONDS: new NumberValueObject(this.SECOND_UNITS.SECONDS * this.MILLISECOND_FACTOR),
824
+ WEEKS: new NumberValueObject(this.SECOND_UNITS.WEEKS * this.MILLISECOND_FACTOR),
825
+ YEARS: new NumberValueObject(this.SECOND_UNITS.YEARS * this.MILLISECOND_FACTOR)
826
+ };
827
+ static fromDays(days) {
828
+ return new Duration(new NumberValueObject(days.valueOf()).multiply(this.millisecondFactors.DAYS));
829
+ }
830
+ static fromHours(hours) {
831
+ return new Duration(new NumberValueObject(hours.valueOf()).multiply(this.millisecondFactors.HOURS));
832
+ }
833
+ static fromMinutes(minutes) {
834
+ return new Duration(new NumberValueObject(minutes.valueOf()).multiply(this.millisecondFactors.MINUTES));
835
+ }
836
+ static fromSeconds(seconds) {
837
+ return new Duration(new NumberValueObject(seconds.valueOf()).multiply(this.millisecondFactors.SECONDS));
838
+ }
839
+ static fromMilliseconds(milliseconds) {
840
+ return new Duration(new NumberValueObject(milliseconds.valueOf()));
841
+ }
842
+ constructor(milliseconds) {
843
+ super(milliseconds.valueOf());
844
+ }
845
+ getTotalDays() {
846
+ return new Duration(this).divide(Duration.millisecondFactors.DAYS);
847
+ }
848
+ getTotalHours() {
849
+ return new Duration(this).divide(Duration.millisecondFactors.HOURS);
850
+ }
851
+ getTotalMinutes() {
852
+ return new Duration(this).divide(Duration.millisecondFactors.MINUTES);
853
+ }
854
+ getTotalSeconds() {
855
+ return new Duration(this).divide(Duration.millisecondFactors.SECONDS);
856
+ }
857
+ getTotalMilliseconds() {
858
+ return new NumberValueObject(this.valueOf());
859
+ }
860
+ getDays() {
861
+ return new NumberValueObject(Math.floor(new Duration(this).divide(Duration.millisecondFactors.DAYS).valueOf()));
862
+ }
863
+ getHours() {
864
+ return new NumberValueObject(Math.floor(new Duration(this).divide(Duration.millisecondFactors.HOURS).valueOf()) % 24);
865
+ }
866
+ getMinutes() {
867
+ return new NumberValueObject(Math.floor(new Duration(this).divide(Duration.millisecondFactors.MINUTES).valueOf()) % Duration.SECOND_UNITS.MINUTES);
868
+ }
869
+ getSeconds() {
870
+ return new NumberValueObject(Math.floor(new Duration(this).divide(Duration.millisecondFactors.SECONDS).valueOf()) % Duration.SECOND_UNITS.MINUTES);
871
+ }
872
+ getMilliseconds() {
873
+ return new NumberValueObject(Math.floor(new Duration(this).valueOf()) % Duration.MILLISECOND_FACTOR);
874
+ }
875
+ };
876
+ //#endregion
877
+ //#region src/value-objects/time/TimestampInterval.ts
878
+ var TimestampInterval = class TimestampInterval extends ValueObject {
879
+ start;
880
+ end;
881
+ static fromPrimitives(primitives) {
882
+ return new TimestampInterval(new Timestamp(primitives.start), new Timestamp(primitives.end));
883
+ }
884
+ constructor(start, end) {
885
+ super(`${start.valueOf()}-${end.valueOf()}`);
886
+ this.start = start;
887
+ this.end = end;
888
+ assert(start.isBeforeOrEqual(end), new InvalidTimestampIntervalError(start, end));
889
+ }
890
+ toPrimitives() {
891
+ return {
892
+ end: this.end.valueOf(),
893
+ start: this.start.valueOf()
894
+ };
895
+ }
896
+ getStart() {
897
+ return this.start;
898
+ }
899
+ getEnd() {
900
+ return this.end;
901
+ }
902
+ getDuration() {
903
+ return new Duration(new PositiveNumber(this.end.valueOf() - this.start.valueOf()));
904
+ }
905
+ getTotalDaysOfWeek(dayOfWeek) {
906
+ const daysToCheck = Math.trunc(this.getDuration().valueOf() / 864e5);
907
+ let count = 0;
908
+ for (let daysChecked = 0; daysChecked <= daysToCheck; daysChecked++) if (new Timestamp(this.start).addDays(daysChecked).getDayOfWeek() === dayOfWeek.toNumber()) count++;
909
+ return count;
910
+ }
911
+ getDaysBetweenInterval() {
912
+ const days = [];
913
+ let iteratorTimestamp = new Timestamp(this.getStart());
914
+ const endTimestamp = new Timestamp(this.getEnd());
915
+ while (iteratorTimestamp.isBeforeOrEqual(endTimestamp)) {
916
+ days.push(new CalendarDay(iteratorTimestamp));
917
+ iteratorTimestamp = iteratorTimestamp.addDays(1);
918
+ }
919
+ return days;
920
+ }
921
+ getOverlappingInterval(searchInterval) {
922
+ const start = this.start.isAfter(searchInterval.getStart()) ? this.start : searchInterval.getStart();
923
+ const end = this.end.isBefore(searchInterval.getEnd()) ? this.end : searchInterval.getEnd();
924
+ if (start.isAfterOrEqual(end)) return null;
925
+ return new TimestampInterval(start, end);
926
+ }
927
+ includes(timestamp) {
928
+ return timestamp.isAfterOrEqual(this.start) && timestamp.isBeforeOrEqual(this.end);
929
+ }
930
+ };
931
+ //#endregion
932
+ //#region src/value-objects/time/MonthOfYear.ts
933
+ var MonthOfYear = class MonthOfYear extends ValueObject {
934
+ month;
935
+ year;
936
+ static fromTimestamp(timestamp) {
937
+ return new MonthOfYear(timestamp.getMonth(), timestamp.getYear());
938
+ }
939
+ static fromString(value) {
940
+ const [year, month] = value.split("/").map(Number);
941
+ return new MonthOfYear(month, year);
942
+ }
943
+ constructor(month, year) {
944
+ super(year.valueOf().toString() + "/" + month.valueOf().toString().padStart(2, "0"));
945
+ this.month = new Month(month.valueOf());
946
+ this.year = new Year(year.valueOf());
947
+ }
948
+ getMonth() {
949
+ return new Month(this.month.valueOf());
950
+ }
951
+ getYear() {
952
+ return new Year(this.year);
953
+ }
954
+ getNumberOfDays() {
955
+ return new Date(this.year.valueOf(), this.month.valueOf(), 0).getDate();
956
+ }
957
+ getTimestampInterval() {
958
+ const firstMonthDay = "01";
959
+ const month = this.month.valueOf().toString().padStart(2, "0");
960
+ const lastDay = this.getNumberOfDays().toString();
961
+ return new TimestampInterval(new Timestamp(`${this.year}-${month}-${firstMonthDay}`), new Timestamp(`${this.year}-${month}-${lastDay}`));
962
+ }
963
+ };
964
+ //#endregion
965
+ //#region src/value-objects/time/CalendarDay.ts
966
+ var CalendarDay = class CalendarDay extends ValueObject {
967
+ year;
968
+ month;
969
+ day;
970
+ static ensureIsValidString(value) {
971
+ assert(value.match(/^\d{4}-\d{1,2}-\d{1,2}$/), new InvalidDayFormatError(value));
972
+ }
973
+ static generateStringValue(timestamp) {
974
+ const paddedMonth = timestamp.getMonth().toString().padStart(2, "0");
975
+ const paddedDay = timestamp.getDay().toString().padStart(2, "0");
976
+ return `${timestamp.getYear().toString()}-${paddedMonth}-${paddedDay}`;
977
+ }
978
+ static ensureIsValidDate(value) {
979
+ assert(Number.isFinite(value.valueOf()), new InvalidDayError(value));
980
+ }
981
+ static timestampFromString(value) {
982
+ CalendarDay.ensureIsValidString(value);
983
+ const [year, month, day] = value.split("-").map(Number);
984
+ const date = /* @__PURE__ */ new Date(0);
985
+ date.setUTCHours(0, 0, 0, 0);
986
+ date.setUTCFullYear(year, month - 1, day);
987
+ assert(date.getUTCFullYear() === year && date.getUTCMonth() === month - 1 && date.getUTCDate() === day, new InvalidDayError(value));
988
+ return new Timestamp(date);
989
+ }
990
+ static timestampFromValue(value) {
991
+ if (typeof value === "string") return CalendarDay.timestampFromString(value);
992
+ CalendarDay.ensureIsValidDate(value);
993
+ return new Timestamp(value);
994
+ }
995
+ constructor(value) {
996
+ let timestamp;
997
+ if (value !== void 0) timestamp = CalendarDay.timestampFromValue(value);
998
+ else timestamp = new Timestamp();
999
+ super(CalendarDay.generateStringValue(timestamp));
1000
+ this.year = timestamp.getYear().valueOf();
1001
+ this.month = timestamp.getMonth().getIndex() + 1;
1002
+ this.day = timestamp.getDay().valueOf();
1003
+ }
1004
+ isAfter(date) {
1005
+ return this.valueOf() > date.valueOf();
1006
+ }
1007
+ isBefore(date) {
1008
+ return this.valueOf() < date.valueOf();
1009
+ }
1010
+ getYear() {
1011
+ return this.year;
1012
+ }
1013
+ getMonth() {
1014
+ return new Month(this.month);
1015
+ }
1016
+ getMonthOfYear() {
1017
+ return new MonthOfYear(this.month, this.year);
1018
+ }
1019
+ getDay() {
1020
+ return new Day(this.day);
1021
+ }
1022
+ getDayOfWeek() {
1023
+ return DayOfWeek.fromNumber(this.toTimestamp().getDayOfWeek());
1024
+ }
1025
+ toTimestamp() {
1026
+ const date = /* @__PURE__ */ new Date(0);
1027
+ date.setUTCHours(0, 0, 0, 0);
1028
+ date.setUTCFullYear(this.year, this.month - 1, this.day);
1029
+ return new Timestamp(date);
1030
+ }
1031
+ };
1032
+ //#endregion
1033
+ //#region src/value-objects/time/Hour.ts
1034
+ var Hour = class Hour extends StringValueObject {
1035
+ minutes;
1036
+ hours;
1037
+ static addTrailZero(value) {
1038
+ return value < 10 ? `0${value}` : value.toString();
1039
+ }
1040
+ static normalizeMinutes(totalMinutes) {
1041
+ const minutesPerDay = 1440;
1042
+ return (totalMinutes % minutesPerDay + minutesPerDay) % minutesPerDay;
1043
+ }
1044
+ static parseFromNumber(value, minutes) {
1045
+ assert(Number.isInteger(value) && value >= 0 && value <= 23, new InvalidHourError());
1046
+ assert(Number.isInteger(minutes) && minutes >= 0 && minutes <= 59, new InvalidMinutesError());
1047
+ return [Hour.addTrailZero(value), Hour.addTrailZero(minutes)];
1048
+ }
1049
+ static parseFromString(value) {
1050
+ const parts = value.split(":");
1051
+ assert(parts.length === 2 && parts[1] !== "", new InvalidHourError());
1052
+ const [hours, minutes] = parts;
1053
+ assert(/^\d{1,2}$/.test(hours), new InvalidHourError());
1054
+ assert(/^\d{1,2}$/.test(minutes), new InvalidMinutesError());
1055
+ const parsedHours = Number(hours);
1056
+ const parsedMinutes = Number(minutes);
1057
+ assert(parsedHours >= 0 && parsedHours <= 23, new InvalidHourError());
1058
+ assert(parsedMinutes >= 0 && parsedMinutes <= 59, new InvalidMinutesError());
1059
+ return [Hour.addTrailZero(parsedHours), Hour.addTrailZero(parsedMinutes)];
1060
+ }
1061
+ constructor(value, minutes) {
1062
+ const [parsedHours, parsedMinutes] = typeof value === "number" && minutes !== void 0 ? Hour.parseFromNumber(value, minutes) : Hour.parseFromString(value);
1063
+ super(`${parsedHours}:${parsedMinutes}`);
1064
+ this.hours = parsedHours;
1065
+ this.minutes = parsedMinutes;
1066
+ }
1067
+ addMinutes(minutes) {
1068
+ const currentMinutes = Number(this.hours) * 60 + Number(this.minutes);
1069
+ const normalizedMinutes = Hour.normalizeMinutes(currentMinutes + minutes);
1070
+ const newHour = Math.floor(normalizedMinutes / 60);
1071
+ const newMinutes = normalizedMinutes % 60;
1072
+ return new Hour(newHour, newMinutes);
1073
+ }
1074
+ diffInMinutes(other) {
1075
+ let endHour = Number(other.hours);
1076
+ if (other.hours < this.hours || other.hours === this.hours && other.minutes < this.minutes) endHour += 24;
1077
+ return (endHour - Number(this.hours)) * 60 + (Number(other.minutes) - Number(this.minutes));
1078
+ }
1079
+ getMinutes() {
1080
+ return Number(this.minutes);
1081
+ }
1082
+ getHours() {
1083
+ return Number(this.hours);
1084
+ }
1085
+ isGreaterThan(hour) {
1086
+ if (this.hours === hour.hours) return Number(this.minutes) > Number(hour.minutes);
1087
+ return Number(this.hours) > Number(hour.hours);
1088
+ }
1089
+ isLessThan(hour) {
1090
+ if (this.hours === hour.hours) return Number(this.minutes) < Number(hour.minutes);
1091
+ return Number(this.hours) < Number(hour.hours);
1092
+ }
1093
+ };
1094
+ //#endregion
1095
+ //#region src/value-objects/Color.ts
1096
+ var Color = class Color extends StringValueObject {
1097
+ static RED = new Color("#FF0000");
1098
+ static GREEN = new Color("#00FF00");
1099
+ static BLUE = new Color("#0000FF");
1100
+ static BLACK = new Color("#000000");
1101
+ static WHITE = new Color("#FFFFFF");
1102
+ static YELLOW = new Color("#FFFF00");
1103
+ static CYAN = new Color("#00FFFF");
1104
+ static MAGENTA = new Color("#FF00FF");
1105
+ static ORANGE = new Color("#FFA500");
1106
+ static PURPLE = new Color("#800080");
1107
+ static PINK = new Color("#FFC0CB");
1108
+ static BROWN = new Color("#A52A2A");
1109
+ constructor(value) {
1110
+ super(value?.valueOf());
1111
+ if (NullObject.isNullObject(this)) return this;
1112
+ this.ensureIsValidColor();
1113
+ }
1114
+ ensureIsValidColor() {
1115
+ assert(/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(this.value), new InvalidColorError(this.value));
1116
+ }
1117
+ hasValue(other) {
1118
+ const otherValue = other instanceof ValueObject ? other.valueOf() : other;
1119
+ return typeof otherValue === "string" && this.value.toLowerCase() === otherValue.toLowerCase();
1120
+ }
1121
+ };
1122
+ //#endregion
1123
+ //#region src/value-objects/Email.ts
1124
+ var Email = class Email extends StringValueObject {
1125
+ static PATTERN = /^[\w+\-.!#$%&'*/=?^`{|}~]+@(?:[\w-]+\.)+(?:[a-z]{2,63}|xn--[a-z0-9](?:[a-z0-9-]{0,57}[a-z0-9])?)$/i;
1126
+ constructor(value) {
1127
+ super(value?.valueOf());
1128
+ if (NullObject.isNullObject(this)) return this;
1129
+ this.ensureIsValidEmail(this.value);
1130
+ }
1131
+ ensureIsValidEmail(value) {
1132
+ assert(Email.PATTERN.test(value), new InvalidEmailError(value));
1133
+ }
1134
+ };
1135
+ //#endregion
1136
+ //#region src/value-objects/Password.ts
1137
+ var Password = class Password extends StringValueObject {
1138
+ static MAX_LENGTH = 256;
1139
+ static MIN_LENGTH = 12;
1140
+ constructor(value) {
1141
+ super(value);
1142
+ if (NullObject.isNullObject(this)) return this;
1143
+ assert(this.isValidPassword(), new InvalidPasswordError(Password.MIN_LENGTH, Password.MAX_LENGTH));
1144
+ }
1145
+ isValidPassword() {
1146
+ return this.value.length >= Password.MIN_LENGTH && this.value.length <= Password.MAX_LENGTH && /[A-Z]/.test(this.value) && /[a-z]/.test(this.value) && /[0-9]/.test(this.value) && /[^A-Za-z0-9]/.test(this.value);
1147
+ }
1148
+ };
1149
+ //#endregion
1150
+ //#region src/value-objects/UniqueObjectArray.ts
1151
+ var UniqueObjectArray = class UniqueObjectArray {
1152
+ items = [];
1153
+ static fromArray(array) {
1154
+ const uniqueArray = new UniqueObjectArray();
1155
+ for (const item of array) uniqueArray.push(item);
1156
+ return uniqueArray;
1157
+ }
1158
+ includes(item) {
1159
+ return this.items.some((one) => one.isEqual(item));
1160
+ }
1161
+ push(item) {
1162
+ if (!this.includes(item)) {
1163
+ this.items.push(item);
1164
+ return true;
1165
+ }
1166
+ return false;
1167
+ }
1168
+ remove(item) {
1169
+ const index = this.items.findIndex((one) => one.isEqual(item));
1170
+ if (index !== -1) {
1171
+ this.items.splice(index, 1);
1172
+ return true;
1173
+ }
1174
+ return false;
1175
+ }
1176
+ [Symbol.iterator]() {
1177
+ return this.items[Symbol.iterator]();
1178
+ }
1179
+ length() {
1180
+ return this.items.length;
1181
+ }
1182
+ toArray() {
1183
+ return Array.from(this.items);
1184
+ }
1185
+ };
1186
+ //#endregion
1187
+ exports.BaseError = BaseError;
1188
+ exports.CalendarDay = CalendarDay;
1189
+ exports.Color = Color;
1190
+ exports.Coordinates = Coordinates;
1191
+ exports.Day = Day;
1192
+ exports.DayOfWeek = DayOfWeek;
1193
+ exports.DomainError = DomainError;
1194
+ exports.Duration = Duration;
1195
+ exports.EDaysOfWeek = EDaysOfWeek;
1196
+ exports.Email = Email;
1197
+ exports.Enum = Enum;
1198
+ exports.Hash = Hash;
1199
+ exports.Hour = Hour;
1200
+ exports.Integer = Integer;
1201
+ exports.InvalidColorError = InvalidColorError;
1202
+ exports.InvalidDayError = InvalidDayError;
1203
+ exports.InvalidDayFormatError = InvalidDayFormatError;
1204
+ exports.InvalidEmailError = InvalidEmailError;
1205
+ exports.InvalidFormatError = InvalidFormatError;
1206
+ exports.InvalidHashError = InvalidHashError;
1207
+ exports.InvalidHourError = InvalidHourError;
1208
+ exports.InvalidIntegerError = InvalidIntegerError;
1209
+ exports.InvalidLatitudeError = InvalidLatitudeError;
1210
+ exports.InvalidLengthError = InvalidLengthError;
1211
+ exports.InvalidLongitudeError = InvalidLongitudeError;
1212
+ exports.InvalidMinutesError = InvalidMinutesError;
1213
+ exports.InvalidNumberError = InvalidNumberError;
1214
+ exports.InvalidPasswordError = InvalidPasswordError;
1215
+ exports.InvalidPositiveNumberError = InvalidPositiveNumberError;
1216
+ exports.InvalidStringLengthError = InvalidStringLengthError;
1217
+ exports.InvalidTimestampIntervalError = InvalidTimestampIntervalError;
1218
+ exports.Latitude = Latitude;
1219
+ exports.Longitude = Longitude;
1220
+ exports.MD5Hash = MD5Hash;
1221
+ exports.Media = Media;
1222
+ exports.Month = Month;
1223
+ exports.MonthOfYear = MonthOfYear;
1224
+ exports.NullObject = NullObject;
1225
+ exports.NullObjectCreationDisabledError = NullObjectCreationDisabledError;
1226
+ exports.NullObjectError = NullObjectError;
1227
+ exports.NumberValueObject = NumberValueObject;
1228
+ exports.Password = Password;
1229
+ exports.PositiveNumber = PositiveNumber;
1230
+ exports.SHA256Hash = SHA256Hash;
1231
+ exports.SHA512Hash = SHA512Hash;
1232
+ exports.ShortId = ShortId;
1233
+ exports.StringValueObject = StringValueObject;
1234
+ exports.Timestamp = Timestamp;
1235
+ exports.TimestampInterval = TimestampInterval;
1236
+ exports.UUID = UUID;
1237
+ exports.UniqueObjectArray = UniqueObjectArray;
1238
+ exports.ValueNotInEnumError = ValueNotInEnumError;
1239
+ exports.ValueObject = ValueObject;
1240
+ exports.Year = Year;
1241
+ exports.assert = assert;
1242
+ exports.timeStampDayToDaysMap = timeStampDayToDaysMap;
1243
+
1244
+ //# sourceMappingURL=index.cjs.map