@haskou/value-objects 1.1.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (464) hide show
  1. package/dist/src/errors/BaseError.d.ts +8 -0
  2. package/dist/src/errors/BaseError.d.ts.map +1 -0
  3. package/dist/src/errors/BaseError.js +22 -0
  4. package/dist/src/errors/BaseError.js.map +1 -0
  5. package/dist/src/errors/DomainError.d.ts +7 -0
  6. package/dist/src/errors/DomainError.d.ts.map +1 -0
  7. package/dist/src/errors/DomainError.js +15 -0
  8. package/dist/src/errors/DomainError.js.map +1 -0
  9. package/dist/src/errors/InvalidColorError.d.ts +5 -0
  10. package/dist/src/errors/InvalidColorError.d.ts.map +1 -0
  11. package/dist/src/errors/InvalidColorError.js +11 -0
  12. package/dist/src/errors/InvalidColorError.js.map +1 -0
  13. package/dist/src/errors/InvalidDayError.d.ts +5 -0
  14. package/dist/src/errors/InvalidDayError.d.ts.map +1 -0
  15. package/dist/src/errors/InvalidDayError.js +11 -0
  16. package/dist/src/errors/InvalidDayError.js.map +1 -0
  17. package/dist/src/errors/InvalidDayFormatError.d.ts +5 -0
  18. package/dist/src/errors/InvalidDayFormatError.d.ts.map +1 -0
  19. package/dist/src/errors/InvalidDayFormatError.js +11 -0
  20. package/dist/src/errors/InvalidDayFormatError.js.map +1 -0
  21. package/dist/src/errors/InvalidEmailError.d.ts +5 -0
  22. package/dist/src/errors/InvalidEmailError.d.ts.map +1 -0
  23. package/dist/src/errors/InvalidEmailError.js +11 -0
  24. package/dist/src/errors/InvalidEmailError.js.map +1 -0
  25. package/dist/src/errors/InvalidFormatError.d.ts +5 -0
  26. package/dist/src/errors/InvalidFormatError.d.ts.map +1 -0
  27. package/dist/src/errors/InvalidFormatError.js +11 -0
  28. package/dist/src/errors/InvalidFormatError.js.map +1 -0
  29. package/dist/src/errors/InvalidHashError.d.ts +5 -0
  30. package/dist/src/errors/InvalidHashError.d.ts.map +1 -0
  31. package/dist/src/errors/InvalidHashError.js +11 -0
  32. package/dist/src/errors/InvalidHashError.js.map +1 -0
  33. package/dist/src/errors/InvalidHourError.d.ts +5 -0
  34. package/dist/src/errors/InvalidHourError.d.ts.map +1 -0
  35. package/dist/src/errors/InvalidHourError.js +11 -0
  36. package/dist/src/errors/InvalidHourError.js.map +1 -0
  37. package/dist/src/errors/InvalidIntegerError.d.ts +5 -0
  38. package/dist/src/errors/InvalidIntegerError.d.ts.map +1 -0
  39. package/dist/src/errors/InvalidIntegerError.js +11 -0
  40. package/dist/src/errors/InvalidIntegerError.js.map +1 -0
  41. package/dist/src/errors/InvalidLatitudeError.d.ts +5 -0
  42. package/dist/src/errors/InvalidLatitudeError.d.ts.map +1 -0
  43. package/dist/src/errors/InvalidLatitudeError.js +11 -0
  44. package/dist/src/errors/InvalidLatitudeError.js.map +1 -0
  45. package/dist/src/errors/InvalidLengthError.d.ts +5 -0
  46. package/dist/src/errors/InvalidLengthError.d.ts.map +1 -0
  47. package/dist/src/errors/InvalidLengthError.js +11 -0
  48. package/dist/src/errors/InvalidLengthError.js.map +1 -0
  49. package/dist/src/errors/InvalidLongitudeError.d.ts +5 -0
  50. package/dist/src/errors/InvalidLongitudeError.d.ts.map +1 -0
  51. package/dist/src/errors/InvalidLongitudeError.js +11 -0
  52. package/dist/src/errors/InvalidLongitudeError.js.map +1 -0
  53. package/dist/src/errors/InvalidMinutesError.d.ts +5 -0
  54. package/dist/src/errors/InvalidMinutesError.d.ts.map +1 -0
  55. package/dist/src/errors/InvalidMinutesError.js +11 -0
  56. package/dist/src/errors/InvalidMinutesError.js.map +1 -0
  57. package/dist/src/errors/InvalidNumberError.d.ts +5 -0
  58. package/dist/src/errors/InvalidNumberError.d.ts.map +1 -0
  59. package/dist/src/errors/InvalidNumberError.js +11 -0
  60. package/dist/src/errors/InvalidNumberError.js.map +1 -0
  61. package/dist/src/errors/InvalidPositiveNumberError.d.ts +5 -0
  62. package/dist/src/errors/InvalidPositiveNumberError.d.ts.map +1 -0
  63. package/dist/src/errors/InvalidPositiveNumberError.js +11 -0
  64. package/dist/src/errors/InvalidPositiveNumberError.js.map +1 -0
  65. package/dist/src/errors/InvalidStringLengthError.d.ts +5 -0
  66. package/dist/src/errors/InvalidStringLengthError.d.ts.map +1 -0
  67. package/dist/src/errors/InvalidStringLengthError.js +11 -0
  68. package/dist/src/errors/InvalidStringLengthError.js.map +1 -0
  69. package/dist/src/errors/InvalidTimestampIntervalError.d.ts +6 -0
  70. package/dist/src/errors/InvalidTimestampIntervalError.d.ts.map +1 -0
  71. package/dist/src/errors/InvalidTimestampIntervalError.js +11 -0
  72. package/dist/src/errors/InvalidTimestampIntervalError.js.map +1 -0
  73. package/dist/src/errors/InvalidValueError.d.ts +5 -0
  74. package/dist/src/errors/InvalidValueError.d.ts.map +1 -0
  75. package/dist/src/errors/InvalidValueError.js +11 -0
  76. package/dist/src/errors/InvalidValueError.js.map +1 -0
  77. package/dist/src/errors/NullObjectError.d.ts +5 -0
  78. package/dist/src/errors/NullObjectError.d.ts.map +1 -0
  79. package/dist/src/errors/NullObjectError.js +12 -0
  80. package/dist/src/errors/NullObjectError.js.map +1 -0
  81. package/dist/src/errors/ValueNotInEnumError.d.ts +5 -0
  82. package/dist/src/errors/ValueNotInEnumError.d.ts.map +1 -0
  83. package/dist/src/errors/ValueNotInEnumError.js +11 -0
  84. package/dist/src/errors/ValueNotInEnumError.js.map +1 -0
  85. package/{src/errors/index.ts → dist/src/errors/index.d.ts} +1 -0
  86. package/dist/src/errors/index.d.ts.map +1 -0
  87. package/dist/src/errors/index.js +24 -0
  88. package/dist/src/errors/index.js.map +1 -0
  89. package/{src/index.ts → dist/src/index.d.ts} +1 -0
  90. package/dist/src/index.d.ts.map +1 -0
  91. package/dist/src/index.js +9 -0
  92. package/dist/src/index.js.map +1 -0
  93. package/dist/src/interfaces/PrimitiveOf.d.ts +5 -0
  94. package/dist/src/interfaces/PrimitiveOf.d.ts.map +1 -0
  95. package/dist/src/interfaces/PrimitiveOf.js +3 -0
  96. package/dist/src/interfaces/PrimitiveOf.js.map +1 -0
  97. package/dist/src/interfaces/index.d.ts +2 -0
  98. package/dist/src/interfaces/index.d.ts.map +1 -0
  99. package/dist/src/interfaces/index.js +5 -0
  100. package/dist/src/interfaces/index.js.map +1 -0
  101. package/dist/src/patterns/Assert.d.ts +5 -0
  102. package/dist/src/patterns/Assert.d.ts.map +1 -0
  103. package/dist/src/patterns/Assert.js +11 -0
  104. package/dist/src/patterns/Assert.js.map +1 -0
  105. package/dist/src/patterns/index.d.ts +2 -0
  106. package/dist/src/patterns/index.d.ts.map +1 -0
  107. package/dist/src/patterns/index.js +5 -0
  108. package/dist/src/patterns/index.js.map +1 -0
  109. package/{src/types/Nullish.ts → dist/src/types/Nullish.d.ts} +1 -0
  110. package/dist/src/types/Nullish.d.ts.map +1 -0
  111. package/dist/src/types/Nullish.js +3 -0
  112. package/dist/src/types/Nullish.js.map +1 -0
  113. package/{src/types/Primitive.ts → dist/src/types/Primitive.d.ts} +1 -0
  114. package/dist/src/types/Primitive.d.ts.map +1 -0
  115. package/dist/src/types/Primitive.js +3 -0
  116. package/dist/src/types/Primitive.js.map +1 -0
  117. package/{src/types/index.ts → dist/src/types/index.d.ts} +1 -0
  118. package/dist/src/types/index.d.ts.map +1 -0
  119. package/dist/src/types/index.js +6 -0
  120. package/dist/src/types/index.js.map +1 -0
  121. package/dist/src/value-objects/Color.d.ts +19 -0
  122. package/dist/src/value-objects/Color.d.ts.map +1 -0
  123. package/dist/src/value-objects/Color.js +37 -0
  124. package/dist/src/value-objects/Color.js.map +1 -0
  125. package/dist/src/value-objects/Email.d.ts +6 -0
  126. package/dist/src/value-objects/Email.d.ts.map +1 -0
  127. package/dist/src/value-objects/Email.js +21 -0
  128. package/dist/src/value-objects/Email.js.map +1 -0
  129. package/dist/src/value-objects/Enum.d.ts +9 -0
  130. package/dist/src/value-objects/Enum.d.ts.map +1 -0
  131. package/dist/src/value-objects/Enum.js +24 -0
  132. package/dist/src/value-objects/Enum.js.map +1 -0
  133. package/dist/src/value-objects/Integer.d.ts +6 -0
  134. package/dist/src/value-objects/Integer.d.ts.map +1 -0
  135. package/dist/src/value-objects/Integer.js +21 -0
  136. package/dist/src/value-objects/Integer.js.map +1 -0
  137. package/dist/src/value-objects/NullObject.d.ts +8 -0
  138. package/dist/src/value-objects/NullObject.d.ts.map +1 -0
  139. package/dist/src/value-objects/NullObject.js +43 -0
  140. package/dist/src/value-objects/NullObject.js.map +1 -0
  141. package/dist/src/value-objects/NumberValueObject.d.ts +15 -0
  142. package/dist/src/value-objects/NumberValueObject.d.ts.map +1 -0
  143. package/dist/src/value-objects/NumberValueObject.js +48 -0
  144. package/dist/src/value-objects/NumberValueObject.js.map +1 -0
  145. package/dist/src/value-objects/PositiveNumber.d.ts +6 -0
  146. package/dist/src/value-objects/PositiveNumber.d.ts.map +1 -0
  147. package/dist/src/value-objects/PositiveNumber.js +21 -0
  148. package/dist/src/value-objects/PositiveNumber.js.map +1 -0
  149. package/dist/src/value-objects/StringValueObject.d.ts +7 -0
  150. package/dist/src/value-objects/StringValueObject.d.ts.map +1 -0
  151. package/dist/src/value-objects/StringValueObject.js +24 -0
  152. package/dist/src/value-objects/StringValueObject.js.map +1 -0
  153. package/dist/src/value-objects/ValueObject.d.ts +12 -0
  154. package/dist/src/value-objects/ValueObject.d.ts.map +1 -0
  155. package/dist/src/value-objects/ValueObject.js +33 -0
  156. package/dist/src/value-objects/ValueObject.js.map +1 -0
  157. package/dist/src/value-objects/coordinates/Coordinates.d.ts +12 -0
  158. package/dist/src/value-objects/coordinates/Coordinates.d.ts.map +1 -0
  159. package/dist/src/value-objects/coordinates/Coordinates.js +28 -0
  160. package/dist/src/value-objects/coordinates/Coordinates.js.map +1 -0
  161. package/dist/src/value-objects/coordinates/Latitude.d.ts +8 -0
  162. package/dist/src/value-objects/coordinates/Latitude.d.ts.map +1 -0
  163. package/dist/src/value-objects/coordinates/Latitude.js +21 -0
  164. package/dist/src/value-objects/coordinates/Latitude.js.map +1 -0
  165. package/dist/src/value-objects/coordinates/Longitude.d.ts +8 -0
  166. package/dist/src/value-objects/coordinates/Longitude.d.ts.map +1 -0
  167. package/dist/src/value-objects/coordinates/Longitude.js +21 -0
  168. package/dist/src/value-objects/coordinates/Longitude.js.map +1 -0
  169. package/{src/value-objects/coordinates/index.ts → dist/src/value-objects/coordinates/index.d.ts} +1 -0
  170. package/dist/src/value-objects/coordinates/index.d.ts.map +1 -0
  171. package/dist/src/value-objects/coordinates/index.js +7 -0
  172. package/dist/src/value-objects/coordinates/index.js.map +1 -0
  173. package/dist/src/value-objects/hashes/Hash.d.ts +7 -0
  174. package/dist/src/value-objects/hashes/Hash.d.ts.map +1 -0
  175. package/dist/src/value-objects/hashes/Hash.js +19 -0
  176. package/dist/src/value-objects/hashes/Hash.js.map +1 -0
  177. package/dist/src/value-objects/hashes/MD5Hash.d.ts +8 -0
  178. package/dist/src/value-objects/hashes/MD5Hash.d.ts.map +1 -0
  179. package/dist/src/value-objects/hashes/MD5Hash.js +26 -0
  180. package/dist/src/value-objects/hashes/MD5Hash.js.map +1 -0
  181. package/dist/src/value-objects/hashes/SHA256Hash.d.ts +9 -0
  182. package/dist/src/value-objects/hashes/SHA256Hash.d.ts.map +1 -0
  183. package/dist/src/value-objects/hashes/SHA256Hash.js +29 -0
  184. package/dist/src/value-objects/hashes/SHA256Hash.js.map +1 -0
  185. package/dist/src/value-objects/hashes/SHA512Hash.d.ts +9 -0
  186. package/dist/src/value-objects/hashes/SHA512Hash.d.ts.map +1 -0
  187. package/dist/src/value-objects/hashes/SHA512Hash.js +29 -0
  188. package/dist/src/value-objects/hashes/SHA512Hash.js.map +1 -0
  189. package/{src/value-objects/hashes/index.ts → dist/src/value-objects/hashes/index.d.ts} +1 -0
  190. package/dist/src/value-objects/hashes/index.d.ts.map +1 -0
  191. package/dist/src/value-objects/hashes/index.js +8 -0
  192. package/dist/src/value-objects/hashes/index.js.map +1 -0
  193. package/dist/src/value-objects/ids/ShortId.d.ts +10 -0
  194. package/dist/src/value-objects/ids/ShortId.d.ts.map +1 -0
  195. package/dist/src/value-objects/ids/ShortId.js +30 -0
  196. package/dist/src/value-objects/ids/ShortId.js.map +1 -0
  197. package/dist/src/value-objects/ids/UUID.d.ts +10 -0
  198. package/dist/src/value-objects/ids/UUID.d.ts.map +1 -0
  199. package/dist/src/value-objects/ids/UUID.js +29 -0
  200. package/dist/src/value-objects/ids/UUID.js.map +1 -0
  201. package/{src/value-objects/ids/index.ts → dist/src/value-objects/ids/index.d.ts} +1 -0
  202. package/dist/src/value-objects/ids/index.d.ts.map +1 -0
  203. package/dist/src/value-objects/ids/index.js +6 -0
  204. package/dist/src/value-objects/ids/index.js.map +1 -0
  205. package/{src/value-objects/index.ts → dist/src/value-objects/index.d.ts} +1 -0
  206. package/dist/src/value-objects/index.d.ts.map +1 -0
  207. package/dist/src/value-objects/index.js +16 -0
  208. package/dist/src/value-objects/index.js.map +1 -0
  209. package/dist/src/value-objects/time/CalendarDay.d.ts +25 -0
  210. package/dist/src/value-objects/time/CalendarDay.d.ts.map +1 -0
  211. package/dist/src/value-objects/time/CalendarDay.js +74 -0
  212. package/dist/src/value-objects/time/CalendarDay.js.map +1 -0
  213. package/dist/src/value-objects/time/Day.d.ts +7 -0
  214. package/dist/src/value-objects/time/Day.d.ts.map +1 -0
  215. package/dist/src/value-objects/time/Day.js +18 -0
  216. package/dist/src/value-objects/time/Day.js.map +1 -0
  217. package/dist/src/value-objects/time/DayOfWeek.d.ts +34 -0
  218. package/dist/src/value-objects/time/DayOfWeek.d.ts.map +1 -0
  219. package/dist/src/value-objects/time/DayOfWeek.js +52 -0
  220. package/dist/src/value-objects/time/DayOfWeek.js.map +1 -0
  221. package/dist/src/value-objects/time/Duration.d.ts +23 -0
  222. package/dist/src/value-objects/time/Duration.d.ts.map +1 -0
  223. package/dist/src/value-objects/time/Duration.js +79 -0
  224. package/dist/src/value-objects/time/Duration.js.map +1 -0
  225. package/dist/src/value-objects/time/Hour.d.ts +15 -0
  226. package/dist/src/value-objects/time/Hour.d.ts.map +1 -0
  227. package/dist/src/value-objects/time/Hour.js +81 -0
  228. package/dist/src/value-objects/time/Hour.js.map +1 -0
  229. package/dist/src/value-objects/time/Month.d.ts +18 -0
  230. package/dist/src/value-objects/time/Month.d.ts.map +1 -0
  231. package/dist/src/value-objects/time/Month.js +41 -0
  232. package/dist/src/value-objects/time/Month.js.map +1 -0
  233. package/dist/src/value-objects/time/MonthOfYear.d.ts +17 -0
  234. package/dist/src/value-objects/time/MonthOfYear.d.ts.map +1 -0
  235. package/dist/src/value-objects/time/MonthOfYear.js +45 -0
  236. package/dist/src/value-objects/time/MonthOfYear.js.map +1 -0
  237. package/dist/src/value-objects/time/Timestamp.d.ts +51 -0
  238. package/dist/src/value-objects/time/Timestamp.d.ts.map +1 -0
  239. package/dist/src/value-objects/time/Timestamp.js +156 -0
  240. package/dist/src/value-objects/time/Timestamp.js.map +1 -0
  241. package/dist/src/value-objects/time/TimestampInterval.d.ts +26 -0
  242. package/dist/src/value-objects/time/TimestampInterval.d.ts.map +1 -0
  243. package/dist/src/value-objects/time/TimestampInterval.js +88 -0
  244. package/dist/src/value-objects/time/TimestampInterval.js.map +1 -0
  245. package/dist/src/value-objects/time/Year.d.ts +10 -0
  246. package/dist/src/value-objects/time/Year.d.ts.map +1 -0
  247. package/dist/src/value-objects/time/Year.js +26 -0
  248. package/dist/src/value-objects/time/Year.js.map +1 -0
  249. package/{src/value-objects/time/index.ts → dist/src/value-objects/time/index.d.ts} +1 -0
  250. package/dist/src/value-objects/time/index.d.ts.map +1 -0
  251. package/dist/src/value-objects/time/index.js +14 -0
  252. package/dist/src/value-objects/time/index.js.map +1 -0
  253. package/dist/tests/errors/BaseError.spec.d.ts +2 -0
  254. package/dist/tests/errors/BaseError.spec.d.ts.map +1 -0
  255. package/dist/tests/errors/BaseError.spec.js +54 -0
  256. package/dist/tests/errors/BaseError.spec.js.map +1 -0
  257. package/dist/tests/errors/DomainError.spec.d.ts +2 -0
  258. package/dist/tests/errors/DomainError.spec.d.ts.map +1 -0
  259. package/dist/tests/errors/DomainError.spec.js +47 -0
  260. package/dist/tests/errors/DomainError.spec.js.map +1 -0
  261. package/dist/tests/patterns/Assert.spec.d.ts +2 -0
  262. package/dist/tests/patterns/Assert.spec.d.ts.map +1 -0
  263. package/dist/tests/patterns/Assert.spec.js +27 -0
  264. package/dist/tests/patterns/Assert.spec.js.map +1 -0
  265. package/dist/tests/setup.jest.d.ts +2 -0
  266. package/dist/tests/setup.jest.d.ts.map +1 -0
  267. package/dist/tests/setup.jest.js +6 -0
  268. package/dist/tests/setup.jest.js.map +1 -0
  269. package/dist/tests/value-objects/Color.spec.d.ts +2 -0
  270. package/dist/tests/value-objects/Color.spec.d.ts.map +1 -0
  271. package/dist/tests/value-objects/Color.spec.js +171 -0
  272. package/dist/tests/value-objects/Color.spec.js.map +1 -0
  273. package/dist/tests/value-objects/Email.spec.d.ts +2 -0
  274. package/dist/tests/value-objects/Email.spec.d.ts.map +1 -0
  275. package/dist/tests/value-objects/Email.spec.js +117 -0
  276. package/dist/tests/value-objects/Email.spec.js.map +1 -0
  277. package/dist/tests/value-objects/Enum.spec.d.ts +2 -0
  278. package/dist/tests/value-objects/Enum.spec.d.ts.map +1 -0
  279. package/dist/tests/value-objects/Enum.spec.js +233 -0
  280. package/dist/tests/value-objects/Enum.spec.js.map +1 -0
  281. package/dist/tests/value-objects/Integer.spec.d.ts +2 -0
  282. package/dist/tests/value-objects/Integer.spec.d.ts.map +1 -0
  283. package/dist/tests/value-objects/Integer.spec.js +31 -0
  284. package/dist/tests/value-objects/Integer.spec.js.map +1 -0
  285. package/dist/tests/value-objects/NullObject.spec.d.ts +2 -0
  286. package/dist/tests/value-objects/NullObject.spec.d.ts.map +1 -0
  287. package/dist/tests/value-objects/NullObject.spec.js +48 -0
  288. package/dist/tests/value-objects/NullObject.spec.js.map +1 -0
  289. package/dist/tests/value-objects/NumberValueObject.spec.d.ts +2 -0
  290. package/dist/tests/value-objects/NumberValueObject.spec.d.ts.map +1 -0
  291. package/dist/tests/value-objects/NumberValueObject.spec.js +333 -0
  292. package/dist/tests/value-objects/NumberValueObject.spec.js.map +1 -0
  293. package/dist/tests/value-objects/PositiveNumber.spec.d.ts +2 -0
  294. package/dist/tests/value-objects/PositiveNumber.spec.d.ts.map +1 -0
  295. package/dist/tests/value-objects/PositiveNumber.spec.js +209 -0
  296. package/dist/tests/value-objects/PositiveNumber.spec.js.map +1 -0
  297. package/dist/tests/value-objects/StringValueObject.spec.d.ts +2 -0
  298. package/dist/tests/value-objects/StringValueObject.spec.d.ts.map +1 -0
  299. package/dist/tests/value-objects/StringValueObject.spec.js +104 -0
  300. package/dist/tests/value-objects/StringValueObject.spec.js.map +1 -0
  301. package/dist/tests/value-objects/coordinates/Coordinates.spec.d.ts +2 -0
  302. package/dist/tests/value-objects/coordinates/Coordinates.spec.d.ts.map +1 -0
  303. package/dist/tests/value-objects/coordinates/Coordinates.spec.js +76 -0
  304. package/dist/tests/value-objects/coordinates/Coordinates.spec.js.map +1 -0
  305. package/dist/tests/value-objects/coordinates/Latitude.spec.d.ts +2 -0
  306. package/dist/tests/value-objects/coordinates/Latitude.spec.d.ts.map +1 -0
  307. package/dist/tests/value-objects/coordinates/Latitude.spec.js +23 -0
  308. package/dist/tests/value-objects/coordinates/Latitude.spec.js.map +1 -0
  309. package/dist/tests/value-objects/coordinates/Longitude.spec.d.ts +2 -0
  310. package/dist/tests/value-objects/coordinates/Longitude.spec.d.ts.map +1 -0
  311. package/dist/tests/value-objects/coordinates/Longitude.spec.js +23 -0
  312. package/dist/tests/value-objects/coordinates/Longitude.spec.js.map +1 -0
  313. package/dist/tests/value-objects/hashes/Hashes.spec.d.ts +2 -0
  314. package/dist/tests/value-objects/hashes/Hashes.spec.d.ts.map +1 -0
  315. package/dist/tests/value-objects/hashes/Hashes.spec.js +107 -0
  316. package/dist/tests/value-objects/hashes/Hashes.spec.js.map +1 -0
  317. package/dist/tests/value-objects/hashes/MD5Hash.spec.d.ts +2 -0
  318. package/dist/tests/value-objects/hashes/MD5Hash.spec.d.ts.map +1 -0
  319. package/dist/tests/value-objects/hashes/MD5Hash.spec.js +147 -0
  320. package/dist/tests/value-objects/hashes/MD5Hash.spec.js.map +1 -0
  321. package/dist/tests/value-objects/hashes/SHA256Hash.spec.d.ts +2 -0
  322. package/dist/tests/value-objects/hashes/SHA256Hash.spec.d.ts.map +1 -0
  323. package/dist/tests/value-objects/hashes/SHA256Hash.spec.js +147 -0
  324. package/dist/tests/value-objects/hashes/SHA256Hash.spec.js.map +1 -0
  325. package/dist/tests/value-objects/hashes/SHA512Hash.spec.d.ts +2 -0
  326. package/dist/tests/value-objects/hashes/SHA512Hash.spec.d.ts.map +1 -0
  327. package/dist/tests/value-objects/hashes/SHA512Hash.spec.js +147 -0
  328. package/dist/tests/value-objects/hashes/SHA512Hash.spec.js.map +1 -0
  329. package/dist/tests/value-objects/ids/ShortId.spec.d.ts +2 -0
  330. package/dist/tests/value-objects/ids/ShortId.spec.d.ts.map +1 -0
  331. package/dist/tests/value-objects/ids/ShortId.spec.js +30 -0
  332. package/dist/tests/value-objects/ids/ShortId.spec.js.map +1 -0
  333. package/dist/tests/value-objects/ids/UUID.spec.d.ts +2 -0
  334. package/dist/tests/value-objects/ids/UUID.spec.d.ts.map +1 -0
  335. package/dist/tests/value-objects/ids/UUID.spec.js +30 -0
  336. package/dist/tests/value-objects/ids/UUID.spec.js.map +1 -0
  337. package/dist/tests/value-objects/time/CalendarDay.spec.d.ts +2 -0
  338. package/dist/tests/value-objects/time/CalendarDay.spec.d.ts.map +1 -0
  339. package/dist/tests/value-objects/time/CalendarDay.spec.js +149 -0
  340. package/dist/tests/value-objects/time/CalendarDay.spec.js.map +1 -0
  341. package/dist/tests/value-objects/time/Day.spec.d.ts +2 -0
  342. package/dist/tests/value-objects/time/Day.spec.d.ts.map +1 -0
  343. package/dist/tests/value-objects/time/Day.spec.js +28 -0
  344. package/dist/tests/value-objects/time/Day.spec.js.map +1 -0
  345. package/dist/tests/value-objects/time/DayOfWeek.spec.d.ts +2 -0
  346. package/dist/tests/value-objects/time/DayOfWeek.spec.d.ts.map +1 -0
  347. package/dist/tests/value-objects/time/DayOfWeek.spec.js +44 -0
  348. package/dist/tests/value-objects/time/DayOfWeek.spec.js.map +1 -0
  349. package/dist/tests/value-objects/time/Duration.spec.d.ts +2 -0
  350. package/dist/tests/value-objects/time/Duration.spec.d.ts.map +1 -0
  351. package/dist/tests/value-objects/time/Duration.spec.js +255 -0
  352. package/dist/tests/value-objects/time/Duration.spec.js.map +1 -0
  353. package/dist/tests/value-objects/time/Hour.spec.d.ts +2 -0
  354. package/dist/tests/value-objects/time/Hour.spec.d.ts.map +1 -0
  355. package/dist/tests/value-objects/time/Hour.spec.js +168 -0
  356. package/dist/tests/value-objects/time/Hour.spec.js.map +1 -0
  357. package/dist/tests/value-objects/time/MonthOfYear.spec.d.ts +2 -0
  358. package/dist/tests/value-objects/time/MonthOfYear.spec.d.ts.map +1 -0
  359. package/dist/tests/value-objects/time/MonthOfYear.spec.js +93 -0
  360. package/dist/tests/value-objects/time/MonthOfYear.spec.js.map +1 -0
  361. package/dist/tests/value-objects/time/Timestamp.spec.d.ts +2 -0
  362. package/dist/tests/value-objects/time/Timestamp.spec.d.ts.map +1 -0
  363. package/dist/tests/value-objects/time/Timestamp.spec.js +391 -0
  364. package/dist/tests/value-objects/time/Timestamp.spec.js.map +1 -0
  365. package/dist/tests/value-objects/time/TimestampInterval.spec.d.ts +2 -0
  366. package/dist/tests/value-objects/time/TimestampInterval.spec.d.ts.map +1 -0
  367. package/dist/tests/value-objects/time/TimestampInterval.spec.js +270 -0
  368. package/dist/tests/value-objects/time/TimestampInterval.spec.js.map +1 -0
  369. package/dist/tests/value-objects/time/Year.spec.d.ts +2 -0
  370. package/dist/tests/value-objects/time/Year.spec.d.ts.map +1 -0
  371. package/dist/tests/value-objects/time/Year.spec.js +41 -0
  372. package/dist/tests/value-objects/time/Year.spec.js.map +1 -0
  373. package/package.json +6 -2
  374. package/.editorconfig +0 -15
  375. package/.eslintignore +0 -3
  376. package/.eslintrc.json +0 -218
  377. package/.prettierrc.json +0 -13
  378. package/TECHNICAL_DOCUMENTATION.md +0 -1257
  379. package/jest.config.ts +0 -30
  380. package/src/errors/BaseError.ts +0 -20
  381. package/src/errors/DomainError.ts +0 -12
  382. package/src/errors/InvalidColorError.ts +0 -7
  383. package/src/errors/InvalidDayError.ts +0 -7
  384. package/src/errors/InvalidDayFormatError.ts +0 -7
  385. package/src/errors/InvalidEmailError.ts +0 -7
  386. package/src/errors/InvalidFormatError.ts +0 -7
  387. package/src/errors/InvalidHashError.ts +0 -7
  388. package/src/errors/InvalidHourError.ts +0 -7
  389. package/src/errors/InvalidIntegerError.ts +0 -7
  390. package/src/errors/InvalidLatitudeError.ts +0 -7
  391. package/src/errors/InvalidLengthError.ts +0 -9
  392. package/src/errors/InvalidLongitudeError.ts +0 -7
  393. package/src/errors/InvalidMinutesError.ts +0 -7
  394. package/src/errors/InvalidNumberError.ts +0 -7
  395. package/src/errors/InvalidPositiveNumberError.ts +0 -7
  396. package/src/errors/InvalidStringLengthError.ts +0 -9
  397. package/src/errors/InvalidTimestampIntervalError.ts +0 -10
  398. package/src/errors/InvalidValueError.ts +0 -7
  399. package/src/errors/NullObjectError.ts +0 -8
  400. package/src/errors/ValueNotInEnumError.ts +0 -9
  401. package/src/interfaces/PrimitiveOf.ts +0 -5
  402. package/src/interfaces/index.ts +0 -1
  403. package/src/patterns/Assert.ts +0 -15
  404. package/src/patterns/index.ts +0 -1
  405. package/src/value-objects/Color.ts +0 -39
  406. package/src/value-objects/Email.ts +0 -23
  407. package/src/value-objects/Enum.ts +0 -31
  408. package/src/value-objects/Integer.ts +0 -22
  409. package/src/value-objects/NullObject.ts +0 -60
  410. package/src/value-objects/NumberValueObject.ts +0 -56
  411. package/src/value-objects/PositiveNumber.ts +0 -20
  412. package/src/value-objects/StringValueObject.ts +0 -27
  413. package/src/value-objects/ValueObject.ts +0 -39
  414. package/src/value-objects/coordinates/Coordinates.ts +0 -30
  415. package/src/value-objects/coordinates/Latitude.ts +0 -22
  416. package/src/value-objects/coordinates/Longitude.ts +0 -25
  417. package/src/value-objects/hashes/Hash.ts +0 -19
  418. package/src/value-objects/hashes/MD5Hash.ts +0 -32
  419. package/src/value-objects/hashes/SHA256Hash.ts +0 -38
  420. package/src/value-objects/hashes/SHA512Hash.ts +0 -38
  421. package/src/value-objects/ids/ShortId.ts +0 -34
  422. package/src/value-objects/ids/UUID.ts +0 -34
  423. package/src/value-objects/time/CalendarDay.ts +0 -91
  424. package/src/value-objects/time/Day.ts +0 -17
  425. package/src/value-objects/time/DayOfWeek.ts +0 -60
  426. package/src/value-objects/time/Duration.ts +0 -142
  427. package/src/value-objects/time/Hour.ts +0 -105
  428. package/src/value-objects/time/Month.ts +0 -39
  429. package/src/value-objects/time/MonthOfYear.ts +0 -52
  430. package/src/value-objects/time/Timestamp.ts +0 -208
  431. package/src/value-objects/time/TimestampInterval.ts +0 -122
  432. package/src/value-objects/time/Year.ts +0 -27
  433. package/tests/errors/BaseError.spec.ts +0 -63
  434. package/tests/errors/DomainError.spec.ts +0 -52
  435. package/tests/patterns/Assert.spec.ts +0 -29
  436. package/tests/setup.jest.ts +0 -2
  437. package/tests/value-objects/Color.spec.ts +0 -214
  438. package/tests/value-objects/Email.spec.ts +0 -141
  439. package/tests/value-objects/Enum.spec.ts +0 -293
  440. package/tests/value-objects/Integer.spec.ts +0 -38
  441. package/tests/value-objects/NullObject.spec.ts +0 -55
  442. package/tests/value-objects/NumberValueObject.spec.ts +0 -446
  443. package/tests/value-objects/PositiveNumber.spec.ts +0 -274
  444. package/tests/value-objects/StringValueObject.spec.ts +0 -135
  445. package/tests/value-objects/coordinates/Coordinates.spec.ts +0 -90
  446. package/tests/value-objects/coordinates/Latitude.spec.ts +0 -24
  447. package/tests/value-objects/coordinates/Longitude.spec.ts +0 -24
  448. package/tests/value-objects/hashes/Hashes.spec.ts +0 -139
  449. package/tests/value-objects/hashes/MD5Hash.spec.ts +0 -187
  450. package/tests/value-objects/hashes/SHA256Hash.spec.ts +0 -220
  451. package/tests/value-objects/hashes/SHA512Hash.spec.ts +0 -220
  452. package/tests/value-objects/ids/ShortId.spec.ts +0 -34
  453. package/tests/value-objects/ids/UUID.spec.ts +0 -37
  454. package/tests/value-objects/time/CalendarDay.spec.ts +0 -182
  455. package/tests/value-objects/time/Day.spec.ts +0 -29
  456. package/tests/value-objects/time/DayOfWeek.spec.ts +0 -71
  457. package/tests/value-objects/time/Duration.spec.ts +0 -278
  458. package/tests/value-objects/time/Hour.spec.ts +0 -197
  459. package/tests/value-objects/time/MonthOfYear.spec.ts +0 -111
  460. package/tests/value-objects/time/Timestamp.spec.ts +0 -497
  461. package/tests/value-objects/time/TimestampInterval.spec.ts +0 -383
  462. package/tests/value-objects/time/Year.spec.ts +0 -48
  463. package/tsconfig.jest.json +0 -33
  464. package/tsconfig.json +0 -42
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const crypto_1 = require("crypto");
4
+ const src_1 = require("../../../src");
5
+ function computeSHA256(input) {
6
+ return (0, crypto_1.createHash)('sha256').update(input).digest('hex');
7
+ }
8
+ describe('SHA256Hash', () => {
9
+ describe('constructor', () => {
10
+ it('should return a NullValueObject when a Nullish is received', () => {
11
+ expect(() => new src_1.SHA256Hash(undefined)).not.toThrow();
12
+ expect(src_1.NullObject.isNullObject(new src_1.SHA256Hash(undefined))).toBeTrue();
13
+ });
14
+ const validSHA256Hashes = [
15
+ '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824', // SHA256 of 'hello'
16
+ '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', // SHA256 of 'test'
17
+ '5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8', // SHA256 of 'password'
18
+ 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', // SHA256 of empty string
19
+ '8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918', // SHA256 of 'admin'
20
+ ];
21
+ it.each(validSHA256Hashes)('should create an SHA256Hash instance for valid SHA256 hash strings', (hash) => {
22
+ expect(() => new src_1.SHA256Hash(hash)).not.toThrow();
23
+ expect(new src_1.SHA256Hash(hash).toString()).toBe(hash);
24
+ });
25
+ const invalidSHA256Hashes = [
26
+ 'invalid-hash',
27
+ '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b982', // 63 chars
28
+ '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b98245', // 65 chars
29
+ 'gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg', // 64 chars but invalid hex
30
+ '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b982g', // 64 chars with non-hex
31
+ '',
32
+ 'a'.repeat(63),
33
+ 'a'.repeat(65),
34
+ ];
35
+ it.each(invalidSHA256Hashes)('should throw InvalidHashError for invalid SHA256 hash strings', (hash) => {
36
+ expect(() => new src_1.SHA256Hash(hash)).toThrow(src_1.InvalidHashError);
37
+ });
38
+ it('should accept another StringValueObject', () => {
39
+ const hashString = new src_1.StringValueObject('2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824');
40
+ const hash = new src_1.SHA256Hash(hashString);
41
+ expect(hash.toString()).toBe('2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824');
42
+ });
43
+ it('should validate hash format when constructed from StringValueObject', () => {
44
+ const invalidHashString = new src_1.StringValueObject('invalid-hash');
45
+ expect(() => new src_1.SHA256Hash(invalidHashString)).toThrow(src_1.InvalidHashError);
46
+ });
47
+ });
48
+ describe('static methods', () => {
49
+ describe('isValid', () => {
50
+ it('should return true for valid SHA256 hashes', () => {
51
+ const validHash = '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824';
52
+ expect(src_1.SHA256Hash.isValid(validHash)).toBeTrue();
53
+ expect(src_1.SHA256Hash.isValid(new src_1.StringValueObject(validHash))).toBeTrue();
54
+ });
55
+ it('should return false for invalid SHA256 hashes', () => {
56
+ expect(src_1.SHA256Hash.isValid('invalid')).toBeFalse();
57
+ expect(src_1.SHA256Hash.isValid('123')).toBeFalse();
58
+ expect(src_1.SHA256Hash.isValid('g'.repeat(64))).toBeFalse();
59
+ });
60
+ });
61
+ describe('from', () => {
62
+ it('should compute SHA256 hash from string', () => {
63
+ const input = 'hello';
64
+ const expected = computeSHA256(input);
65
+ const hash = src_1.SHA256Hash.from(input);
66
+ expect(hash.valueOf()).toBe(expected);
67
+ });
68
+ it('should compute SHA256 hash from Buffer', () => {
69
+ const input = Buffer.from('hello');
70
+ const expected = computeSHA256(input);
71
+ const hash = src_1.SHA256Hash.from(input);
72
+ expect(hash.valueOf()).toBe(expected);
73
+ });
74
+ it('should compute SHA256 hash from StringValueObject', () => {
75
+ const input = new src_1.StringValueObject('hello');
76
+ const expected = computeSHA256(input.valueOf());
77
+ const hash = src_1.SHA256Hash.from(input);
78
+ expect(hash.valueOf()).toBe(expected);
79
+ });
80
+ });
81
+ });
82
+ describe('inheritance and ValueObject behavior', () => {
83
+ it('should inherit from ValueObject', () => {
84
+ const hash = new src_1.SHA256Hash('2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824');
85
+ expect(hash).toBeInstanceOf(src_1.SHA256Hash);
86
+ expect(hash.valueOf).toBeDefined();
87
+ expect(hash.isEqual).toBeDefined();
88
+ expect(hash.toString).toBeDefined();
89
+ });
90
+ it('should implement valueOf() method correctly', () => {
91
+ const hashValue = '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08';
92
+ const hash = new src_1.SHA256Hash(hashValue);
93
+ expect(hash.valueOf()).toBe(hashValue);
94
+ });
95
+ it('should implement toString() method correctly', () => {
96
+ const hashValue = '5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8';
97
+ const hash = new src_1.SHA256Hash(hashValue);
98
+ expect(hash.toString()).toBe(hashValue);
99
+ });
100
+ it('should implement isEqual() method correctly', () => {
101
+ const hashValue = '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824';
102
+ const hash1 = new src_1.SHA256Hash(hashValue);
103
+ const hash2 = new src_1.SHA256Hash(hashValue);
104
+ const hash3 = new src_1.SHA256Hash('9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08');
105
+ expect(hash1.isEqual(hash2)).toBeTrue();
106
+ expect(hash1.isEqual(hash3)).toBeFalse();
107
+ expect(hash1.isEqual(hashValue)).toBeTrue();
108
+ expect(hash1.isEqual('9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08')).toBeFalse();
109
+ });
110
+ it('should compare with string values using isEqual', () => {
111
+ const hash = new src_1.SHA256Hash('2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824');
112
+ expect(hash.isEqual('2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824')).toBeTrue();
113
+ expect(hash.isEqual('9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08')).toBeFalse();
114
+ });
115
+ it('should implement clone() method correctly inherited from ValueObject', () => {
116
+ const originalValue = '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824';
117
+ const original = new src_1.SHA256Hash(originalValue);
118
+ const cloned = original.clone();
119
+ expect(cloned).toBeInstanceOf(src_1.SHA256Hash);
120
+ expect(cloned.valueOf()).toBe(originalValue);
121
+ expect(cloned.toString()).toBe(originalValue);
122
+ expect(cloned.isEqual(original)).toBeTrue();
123
+ expect(cloned).not.toBe(original); // Different instances
124
+ });
125
+ it('should maintain hash validation in cloned instances', () => {
126
+ const original = new src_1.SHA256Hash('2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824');
127
+ const cloned = original.clone();
128
+ expect(cloned).toBeInstanceOf(src_1.SHA256Hash);
129
+ expect(cloned.valueOf()).toBe('2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824');
130
+ // Cloned instance should still be a valid hash
131
+ expect(() => cloned.toString()).not.toThrow();
132
+ expect(cloned.toString()).toBe('2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824');
133
+ });
134
+ });
135
+ describe('instance methods', () => {
136
+ describe('toBase64', () => {
137
+ it('should convert hash to base64 correctly', () => {
138
+ const hashValue = '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824';
139
+ const hash = new src_1.SHA256Hash(hashValue);
140
+ const base64 = hash.toBase64();
141
+ expect(base64).toBeInstanceOf(src_1.StringValueObject);
142
+ expect(base64.valueOf()).toBe(Buffer.from(hashValue, 'hex').toString('base64'));
143
+ });
144
+ });
145
+ });
146
+ });
147
+ //# sourceMappingURL=SHA256Hash.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SHA256Hash.spec.js","sourceRoot":"","sources":["../../../../tests/value-objects/hashes/SHA256Hash.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SHA512Hash.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SHA512Hash.spec.d.ts","sourceRoot":"","sources":["../../../../tests/value-objects/hashes/SHA512Hash.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const crypto_1 = require("crypto");
4
+ const src_1 = require("../../../src");
5
+ function computeSHA512(input) {
6
+ return (0, crypto_1.createHash)('sha512').update(input).digest('hex');
7
+ }
8
+ describe('SHA512Hash', () => {
9
+ describe('constructor', () => {
10
+ it('should return a NullValueObject when a Nullish is received', () => {
11
+ expect(() => new src_1.SHA512Hash(undefined)).not.toThrow();
12
+ expect(src_1.NullObject.isNullObject(new src_1.SHA512Hash(undefined))).toBeTrue();
13
+ });
14
+ const validSHA512Hashes = [
15
+ '9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043', // SHA512 of 'hello'
16
+ 'ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff', // SHA512 of 'test'
17
+ 'b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86', // SHA512 of 'password'
18
+ 'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e', // SHA512 of empty string
19
+ 'c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec', // SHA512 of 'admin'
20
+ ];
21
+ it.each(validSHA512Hashes)('should create an SHA512Hash instance for valid SHA512 hash strings', (hash) => {
22
+ expect(() => new src_1.SHA512Hash(hash)).not.toThrow();
23
+ expect(new src_1.SHA512Hash(hash).toString()).toBe(hash);
24
+ });
25
+ const invalidSHA512Hashes = [
26
+ 'invalid-hash',
27
+ '9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca7232', // 127 chars
28
+ '9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca723234', // 129 chars
29
+ 'g'.repeat(128), // 128 chars but invalid hex
30
+ '9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca7232g', // 128 chars with non-hex
31
+ '',
32
+ 'a'.repeat(127),
33
+ 'a'.repeat(129),
34
+ ];
35
+ it.each(invalidSHA512Hashes)('should throw InvalidHashError for invalid SHA512 hash strings', (hash) => {
36
+ expect(() => new src_1.SHA512Hash(hash)).toThrow(src_1.InvalidHashError);
37
+ });
38
+ it('should accept another StringValueObject', () => {
39
+ const hashString = new src_1.StringValueObject('9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043');
40
+ const hash = new src_1.SHA512Hash(hashString);
41
+ expect(hash.toString()).toBe('9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043');
42
+ });
43
+ it('should validate hash format when constructed from StringValueObject', () => {
44
+ const invalidHashString = new src_1.StringValueObject('invalid-hash');
45
+ expect(() => new src_1.SHA512Hash(invalidHashString)).toThrow(src_1.InvalidHashError);
46
+ });
47
+ });
48
+ describe('static methods', () => {
49
+ describe('isValid', () => {
50
+ it('should return true for valid SHA512 hashes', () => {
51
+ const validHash = '9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043';
52
+ expect(src_1.SHA512Hash.isValid(validHash)).toBeTrue();
53
+ expect(src_1.SHA512Hash.isValid(new src_1.StringValueObject(validHash))).toBeTrue();
54
+ });
55
+ it('should return false for invalid SHA512 hashes', () => {
56
+ expect(src_1.SHA512Hash.isValid('invalid')).toBeFalse();
57
+ expect(src_1.SHA512Hash.isValid('123')).toBeFalse();
58
+ expect(src_1.SHA512Hash.isValid('g'.repeat(128))).toBeFalse();
59
+ });
60
+ });
61
+ describe('from', () => {
62
+ it('should compute SHA512 hash from string', () => {
63
+ const input = 'hello';
64
+ const expected = computeSHA512(input);
65
+ const hash = src_1.SHA512Hash.from(input);
66
+ expect(hash.valueOf()).toBe(expected);
67
+ });
68
+ it('should compute SHA512 hash from Buffer', () => {
69
+ const input = Buffer.from('hello');
70
+ const expected = computeSHA512(input);
71
+ const hash = src_1.SHA512Hash.from(input);
72
+ expect(hash.valueOf()).toBe(expected);
73
+ });
74
+ it('should compute SHA512 hash from StringValueObject', () => {
75
+ const input = new src_1.StringValueObject('hello');
76
+ const expected = computeSHA512(input.valueOf());
77
+ const hash = src_1.SHA512Hash.from(input);
78
+ expect(hash.valueOf()).toBe(expected);
79
+ });
80
+ });
81
+ });
82
+ describe('inheritance and ValueObject behavior', () => {
83
+ it('should inherit from ValueObject', () => {
84
+ const hash = new src_1.SHA512Hash('9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043');
85
+ expect(hash).toBeInstanceOf(src_1.SHA512Hash);
86
+ expect(hash.valueOf).toBeDefined();
87
+ expect(hash.isEqual).toBeDefined();
88
+ expect(hash.toString).toBeDefined();
89
+ });
90
+ it('should implement valueOf() method correctly', () => {
91
+ const hashValue = 'ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff';
92
+ const hash = new src_1.SHA512Hash(hashValue);
93
+ expect(hash.valueOf()).toBe(hashValue);
94
+ });
95
+ it('should implement toString() method correctly', () => {
96
+ const hashValue = 'b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86';
97
+ const hash = new src_1.SHA512Hash(hashValue);
98
+ expect(hash.toString()).toBe(hashValue);
99
+ });
100
+ it('should implement isEqual() method correctly', () => {
101
+ const hashValue = '9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043';
102
+ const hash1 = new src_1.SHA512Hash(hashValue);
103
+ const hash2 = new src_1.SHA512Hash(hashValue);
104
+ const hash3 = new src_1.SHA512Hash('ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff');
105
+ expect(hash1.isEqual(hash2)).toBeTrue();
106
+ expect(hash1.isEqual(hash3)).toBeFalse();
107
+ expect(hash1.isEqual(hashValue)).toBeTrue();
108
+ expect(hash1.isEqual('ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff')).toBeFalse();
109
+ });
110
+ it('should compare with string values using isEqual', () => {
111
+ const hash = new src_1.SHA512Hash('9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043');
112
+ expect(hash.isEqual('9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043')).toBeTrue();
113
+ expect(hash.isEqual('ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff')).toBeFalse();
114
+ });
115
+ it('should implement clone() method correctly inherited from ValueObject', () => {
116
+ const originalValue = '9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043';
117
+ const original = new src_1.SHA512Hash(originalValue);
118
+ const cloned = original.clone();
119
+ expect(cloned).toBeInstanceOf(src_1.SHA512Hash);
120
+ expect(cloned.valueOf()).toBe(originalValue);
121
+ expect(cloned.toString()).toBe(originalValue);
122
+ expect(cloned.isEqual(original)).toBeTrue();
123
+ expect(cloned).not.toBe(original); // Different instances
124
+ });
125
+ it('should maintain hash validation in cloned instances', () => {
126
+ const original = new src_1.SHA512Hash('9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043');
127
+ const cloned = original.clone();
128
+ expect(cloned).toBeInstanceOf(src_1.SHA512Hash);
129
+ expect(cloned.valueOf()).toBe('9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043');
130
+ // Cloned instance should still be a valid hash
131
+ expect(() => cloned.toString()).not.toThrow();
132
+ expect(cloned.toString()).toBe('9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043');
133
+ });
134
+ });
135
+ describe('instance methods', () => {
136
+ describe('toBase64', () => {
137
+ it('should convert hash to base64 correctly', () => {
138
+ const hashValue = '9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043';
139
+ const hash = new src_1.SHA512Hash(hashValue);
140
+ const base64 = hash.toBase64();
141
+ expect(base64).toBeInstanceOf(src_1.StringValueObject);
142
+ expect(base64.valueOf()).toBe(Buffer.from(hashValue, 'hex').toString('base64'));
143
+ });
144
+ });
145
+ });
146
+ });
147
+ //# sourceMappingURL=SHA512Hash.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SHA512Hash.spec.js","sourceRoot":"","sources":["../../../../tests/value-objects/hashes/SHA512Hash.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ShortId.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShortId.spec.d.ts","sourceRoot":"","sources":["../../../../tests/value-objects/ids/ShortId.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const InvalidFormatError_1 = require("../../../src/errors/InvalidFormatError");
4
+ const InvalidLengthError_1 = require("../../../src/errors/InvalidLengthError");
5
+ const ShortId_1 = require("../../../src/value-objects/ids/ShortId");
6
+ describe('ShortId', () => {
7
+ describe('generate', () => {
8
+ it('should generate a valid ShortId', () => {
9
+ const id = ShortId_1.ShortId.generate();
10
+ expect(id).toBeInstanceOf(ShortId_1.ShortId);
11
+ expect(id.toString()).toHaveLength(24);
12
+ });
13
+ });
14
+ describe('constructor', () => {
15
+ it('should throw invalid length error when constructor receives a empty string', () => {
16
+ expect(() => new ShortId_1.ShortId('')).toThrow(InvalidLengthError_1.InvalidLengthError);
17
+ });
18
+ it('should throw invalid format when value is not a valid id', () => {
19
+ expect(() => new ShortId_1.ShortId('123')).toThrow(InvalidLengthError_1.InvalidLengthError);
20
+ });
21
+ it("should be a valid id when it's 24 length string", () => {
22
+ expect(() => new ShortId_1.ShortId('12345678901234567890abcd')).not.toThrow();
23
+ expect(new ShortId_1.ShortId('12345678901234567890abcd')).toBeInstanceOf(ShortId_1.ShortId);
24
+ });
25
+ it("should be invalid id when it's 24 length but invalid characters", () => {
26
+ expect(() => new ShortId_1.ShortId('123456789@123456789#abcd')).toThrow(InvalidFormatError_1.InvalidFormatError);
27
+ });
28
+ });
29
+ });
30
+ //# sourceMappingURL=ShortId.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShortId.spec.js","sourceRoot":"","sources":["../../../../tests/value-objects/ids/ShortId.spec.ts"],"names":[],"mappings":";;AAAA,+EAA4E;AAC5E,+EAA4E;AAE5E,oEAAiE;AAEjE,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,EAAE,GAAG,iBAAO,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,iBAAO,CAAC,CAAC;YACnC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;YACpF,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,iBAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,uCAAkB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,iBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,uCAAkB,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,iBAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACpE,MAAM,CAAC,IAAI,iBAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,cAAc,CAAC,iBAAO,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,iBAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAC3D,uCAAkB,CACnB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=UUID.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UUID.spec.d.ts","sourceRoot":"","sources":["../../../../tests/value-objects/ids/UUID.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const InvalidFormatError_1 = require("../../../src/errors/InvalidFormatError");
4
+ const InvalidLengthError_1 = require("../../../src/errors/InvalidLengthError");
5
+ const UUID_1 = require("../../../src/value-objects/ids/UUID");
6
+ describe('UUID', () => {
7
+ describe('generate', () => {
8
+ it('should generate a valid LongId', () => {
9
+ const id = UUID_1.UUID.generate();
10
+ expect(id).toBeInstanceOf(UUID_1.UUID);
11
+ expect(id.toString()).toHaveLength(36);
12
+ });
13
+ });
14
+ describe('constructor', () => {
15
+ it('should throw invalid length error when constructor receives a empty string', () => {
16
+ expect(() => new UUID_1.UUID('')).toThrow(InvalidLengthError_1.InvalidLengthError);
17
+ });
18
+ it('should throw invalid format when value is not a valid id', () => {
19
+ expect(() => new UUID_1.UUID('123')).toThrow(InvalidLengthError_1.InvalidLengthError);
20
+ });
21
+ it("should be a valid id when it's 36 length string", () => {
22
+ expect(() => new UUID_1.UUID('8ab0b0f7-7324-4637-bc6b-109326f081c0')).not.toThrow();
23
+ expect(new UUID_1.UUID('8ab0b0f7-7324-4637-bc6b-109326f081c0')).toBeInstanceOf(UUID_1.UUID);
24
+ });
25
+ it("should be invalid id when it's 36 length but invalid characters", () => {
26
+ expect(() => new UUID_1.UUID('8ab0b0f7-7324#5637-bc6b-109326f081c0')).toThrow(InvalidFormatError_1.InvalidFormatError);
27
+ });
28
+ });
29
+ });
30
+ //# sourceMappingURL=UUID.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UUID.spec.js","sourceRoot":"","sources":["../../../../tests/value-objects/ids/UUID.spec.ts"],"names":[],"mappings":";;AAAA,+EAA4E;AAC5E,+EAA4E;AAC5E,8DAA2D;AAE3D,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,EAAE,GAAG,WAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,WAAI,CAAC,CAAC;YAChC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;YACpF,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,WAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,uCAAkB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,WAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,uCAAkB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,CACJ,GAAG,EAAE,CAAC,IAAI,WAAI,CAAC,sCAAsC,CAAC,CACvD,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,WAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC,cAAc,CACrE,WAAI,CACL,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,WAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC,OAAO,CACpE,uCAAkB,CACnB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CalendarDay.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarDay.spec.d.ts","sourceRoot":"","sources":["../../../../tests/value-objects/time/CalendarDay.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const src_1 = require("../../../src");
4
+ /* eslint-disable @typescript-eslint/no-unsafe-call */
5
+ describe('CalendarDay', () => {
6
+ describe('constructor', () => {
7
+ it('should create a CalendarDay ', () => {
8
+ const now = new src_1.Timestamp();
9
+ const day = new src_1.CalendarDay();
10
+ expect(day).toMatchObject({
11
+ year: now.getYear().valueOf(),
12
+ month: now.getMonth().valueOf(),
13
+ day: now.getDay().valueOf(),
14
+ });
15
+ });
16
+ it('should create a day instance with a valid date string', () => {
17
+ const day = new src_1.CalendarDay('2022-01-01');
18
+ expect(day).toMatchObject({
19
+ year: 2022,
20
+ month: 1,
21
+ day: 1,
22
+ });
23
+ });
24
+ it('should create a day instance with a valid Timestamp', () => {
25
+ const day = new src_1.CalendarDay(new src_1.Timestamp('2022-01-01'));
26
+ expect(day).toMatchObject({
27
+ year: 2022,
28
+ month: 1,
29
+ day: 1,
30
+ });
31
+ });
32
+ it('should create a day instance with a valid Date', () => {
33
+ const day = new src_1.CalendarDay(new Date('2022-01-01'));
34
+ expect(day).toMatchObject({
35
+ year: 2022,
36
+ month: 1,
37
+ day: 1,
38
+ });
39
+ });
40
+ it('should create a day instance with a valid number', () => {
41
+ const day = new src_1.CalendarDay(1640995200000);
42
+ expect(day).toMatchObject({
43
+ year: 2022,
44
+ month: 1,
45
+ day: 1,
46
+ });
47
+ });
48
+ it('should throw InvalidDateFormatError when provided with an invalid date string', () => {
49
+ expect(() => new src_1.CalendarDay('2022-01-001')).toThrow(src_1.InvalidDayFormatError);
50
+ });
51
+ it('should throw InvalidDateFormatError when provided with an invalid date string', () => {
52
+ expect(() => new src_1.CalendarDay('2022-01')).toThrow(src_1.InvalidDayFormatError);
53
+ });
54
+ it('should throw InvalidDateFormatError when provided with an invalid date', () => {
55
+ expect(() => new src_1.CalendarDay(new Date(NaN))).toThrow(src_1.InvalidDayError);
56
+ });
57
+ });
58
+ describe('valueOf', () => {
59
+ it('should return the date value as a string', () => {
60
+ const day = new src_1.CalendarDay('2022-01-01');
61
+ expect(day.valueOf()).toBe('2022-01-01');
62
+ });
63
+ });
64
+ describe('isEqual', () => {
65
+ it('should return true when two days have the same value', () => {
66
+ const day1 = new src_1.CalendarDay('2022-01-01');
67
+ const day2 = new src_1.CalendarDay('2022-01-01');
68
+ expect(day1.isEqual(day2)).toBe(true);
69
+ });
70
+ it('should return false when two days have different values', () => {
71
+ const day1 = new src_1.CalendarDay('2022-01-01');
72
+ const day2 = new src_1.CalendarDay('2022-01-02');
73
+ expect(day1.isEqual(day2)).toBe(false);
74
+ });
75
+ });
76
+ describe('isAfter', () => {
77
+ it('should return true when the current day is after the provided day', () => {
78
+ const day1 = new src_1.CalendarDay('2022-01-02');
79
+ const day2 = new src_1.CalendarDay('2022-01-01');
80
+ expect(day1.isAfter(day2)).toBe(true);
81
+ });
82
+ it('should return false when the current day is not after the provided day', () => {
83
+ const day1 = new src_1.CalendarDay('2022-01-01');
84
+ const day2 = new src_1.CalendarDay('2022-01-02');
85
+ expect(day1.isAfter(day2)).toBe(false);
86
+ });
87
+ });
88
+ describe('isBefore', () => {
89
+ it('should return true when the current day is before the provided day', () => {
90
+ const day1 = new src_1.CalendarDay('2022-01-01');
91
+ const day2 = new src_1.CalendarDay('2022-01-02');
92
+ expect(day1.isBefore(day2)).toBe(true);
93
+ });
94
+ it('should return false when the current day is not before the provided day', () => {
95
+ const day1 = new src_1.CalendarDay('2022-01-02');
96
+ const day2 = new src_1.CalendarDay('2022-01-01');
97
+ expect(day1.isBefore(day2)).toBe(false);
98
+ });
99
+ });
100
+ describe('getYear', () => {
101
+ it('should return the year of the day', () => {
102
+ const day = new src_1.CalendarDay('2022-01-02');
103
+ expect(day.getYear()).toBe(2022);
104
+ });
105
+ });
106
+ describe('getMonth', () => {
107
+ it('should return the Month of the day', () => {
108
+ const day = new src_1.CalendarDay('2022-01-02');
109
+ expect(day.getMonth()).toStrictEqual(src_1.Month.JANUARY);
110
+ });
111
+ });
112
+ describe('getDay', () => {
113
+ it('should return the year of the day', () => {
114
+ const day = new src_1.CalendarDay('2022-01-02');
115
+ expect(day.getDay()).toStrictEqual(new src_1.Day(2));
116
+ });
117
+ });
118
+ describe('getDayOfWeek', () => {
119
+ it('should return the correct DayOfWeek for a given date', () => {
120
+ expect(new src_1.CalendarDay('2025-01-05').getDayOfWeek()).toEqual(src_1.DayOfWeek.SUNDAY);
121
+ expect(new src_1.CalendarDay('2025-01-31').getDayOfWeek()).toEqual(src_1.DayOfWeek.FRIDAY);
122
+ expect(new src_1.CalendarDay('2025-02-28').getDayOfWeek()).toEqual(src_1.DayOfWeek.FRIDAY);
123
+ expect(new src_1.CalendarDay('2024-12-31').getDayOfWeek()).toEqual(src_1.DayOfWeek.TUESDAY);
124
+ });
125
+ describe('toTimestamp', () => {
126
+ it('should return the correct Timestamp instance', () => {
127
+ const timestamp = new src_1.Timestamp('2022-01-01');
128
+ const day = new src_1.CalendarDay(timestamp);
129
+ expect(day.toTimestamp()).toStrictEqual(timestamp);
130
+ });
131
+ it('should return a Timestamp instance matching the date value', () => {
132
+ const day = new src_1.CalendarDay('2022-01-01');
133
+ const timestamp = day.toTimestamp();
134
+ expect(timestamp.valueOf()).toBe(new src_1.Timestamp('2022-01-01').valueOf());
135
+ });
136
+ });
137
+ describe('getMonthOfYear', () => {
138
+ it('should return a MonthOfYear instance with the correct month and year', () => {
139
+ const day = new src_1.CalendarDay('2022-01-02');
140
+ const month = day.getMonthOfYear();
141
+ expect(month).toMatchObject({
142
+ month: src_1.Month.JANUARY,
143
+ year: new src_1.Year(2022),
144
+ });
145
+ });
146
+ });
147
+ });
148
+ });
149
+ //# sourceMappingURL=CalendarDay.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarDay.spec.js","sourceRoot":"","sources":["../../../../tests/value-objects/time/CalendarDay.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Day.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Day.spec.d.ts","sourceRoot":"","sources":["../../../../tests/value-objects/time/Day.spec.ts"],"names":[],"mappings":""}