@haskou/value-objects 1.1.1 → 1.1.3

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 +9 -5
  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,270 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const src_1 = require("../../../src");
4
+ describe('TimestampInterval', () => {
5
+ let timestampInterval;
6
+ let startTimestamp;
7
+ let endTimestamp;
8
+ let primitives;
9
+ beforeEach(() => {
10
+ startTimestamp = new src_1.Timestamp(1721606400000);
11
+ endTimestamp = new src_1.Timestamp(1722124800000);
12
+ timestampInterval = new src_1.TimestampInterval(startTimestamp, endTimestamp);
13
+ primitives = {
14
+ start: startTimestamp.valueOf(),
15
+ end: endTimestamp.valueOf(),
16
+ };
17
+ });
18
+ describe('constructor', () => {
19
+ it('should create a TimestampInterval instance', () => {
20
+ expect(timestampInterval).toMatchObject({
21
+ start: startTimestamp,
22
+ end: endTimestamp,
23
+ });
24
+ });
25
+ it('should throw error if the start is after the end', () => {
26
+ expect(() => new src_1.TimestampInterval(endTimestamp, startTimestamp)).toThrow(src_1.InvalidTimestampIntervalError);
27
+ });
28
+ it('should not throw error if the start and end are equal', () => {
29
+ expect(() => new src_1.TimestampInterval(startTimestamp, startTimestamp)).not.toThrow(src_1.InvalidTimestampIntervalError);
30
+ });
31
+ });
32
+ describe('fromPrimitives', () => {
33
+ it('should create a TimestampInterval instance from primitives', () => {
34
+ const newTimestampInterval = src_1.TimestampInterval.fromPrimitives(primitives);
35
+ expect(newTimestampInterval).toEqual(timestampInterval);
36
+ });
37
+ });
38
+ describe('toPrimitives', () => {
39
+ it('should return the correct primitives', () => {
40
+ expect(timestampInterval.toPrimitives()).toEqual(primitives);
41
+ });
42
+ });
43
+ describe('getStart', () => {
44
+ it('should return the correct start timestamp', () => {
45
+ expect(timestampInterval.getStart()).toEqual(startTimestamp);
46
+ });
47
+ });
48
+ describe('getEnd', () => {
49
+ it('should return the correct end timestamp', () => {
50
+ expect(timestampInterval.getEnd()).toEqual(endTimestamp);
51
+ });
52
+ });
53
+ describe('getDuration', () => {
54
+ it('should return the correct duration', () => {
55
+ expect(timestampInterval.getDuration()).toEqual(src_1.Duration.fromMilliseconds(518400000));
56
+ });
57
+ describe('getDuration', () => {
58
+ it('should return duration 0 when the start and end are equal', () => {
59
+ const timestampInterval = new src_1.TimestampInterval(startTimestamp, startTimestamp);
60
+ expect(timestampInterval.getDuration()).toEqual(src_1.Duration.fromMilliseconds(0));
61
+ });
62
+ });
63
+ });
64
+ describe('getNumberOfDayOfWeeks', () => {
65
+ it('should return the number of day of weeks if the dayOfWeek is the same day as the starting day', () => {
66
+ const dayOfWeek = src_1.DayOfWeek.MONDAY;
67
+ const expectedCount = 1;
68
+ expect(timestampInterval.getTotalDaysOfWeek(dayOfWeek)).toEqual(expectedCount);
69
+ });
70
+ it('should return the number of day of weeks if the dayOfWeek is different than the starting day', () => {
71
+ const dayOfWeek = src_1.DayOfWeek.SATURDAY;
72
+ const expectedCount = 1;
73
+ expect(timestampInterval.getTotalDaysOfWeek(dayOfWeek)).toEqual(expectedCount);
74
+ });
75
+ it('should return the number of day of weeks if there are multiple day of weeks', () => {
76
+ const dayOfWeek = src_1.DayOfWeek.TUESDAY;
77
+ const expectedCount = 2;
78
+ timestampInterval = new src_1.TimestampInterval(startTimestamp, new src_1.Timestamp(1722384000000));
79
+ expect(timestampInterval.getTotalDaysOfWeek(dayOfWeek)).toEqual(expectedCount);
80
+ });
81
+ it('should return the only one day in one day interval', () => {
82
+ const dayOfWeek = src_1.DayOfWeek.WEDNESDAY;
83
+ const expectedCount = 1;
84
+ timestampInterval = new src_1.TimestampInterval(new src_1.Timestamp('2024-07-24T00:00:00.000z'), new src_1.Timestamp('2024-07-24T23:59:00.000z'));
85
+ expect(timestampInterval.getTotalDaysOfWeek(dayOfWeek)).toEqual(expectedCount);
86
+ });
87
+ });
88
+ it('should not return the next day in one day interval', () => {
89
+ const dayOfWeek = src_1.DayOfWeek.THURSDAY;
90
+ const expectedCount = 0;
91
+ timestampInterval = new src_1.TimestampInterval(new src_1.Timestamp('2024-07-24T00:00:00.000z'), new src_1.Timestamp('2024-07-24T23:59:00.000z'));
92
+ expect(timestampInterval.getTotalDaysOfWeek(dayOfWeek)).toEqual(expectedCount);
93
+ });
94
+ it('should not return the previous day in one day interval', () => {
95
+ const dayOfWeek = src_1.DayOfWeek.TUESDAY;
96
+ const expectedCount = 0;
97
+ timestampInterval = new src_1.TimestampInterval(new src_1.Timestamp('2024-07-24T00:00:00.000z'), new src_1.Timestamp('2024-07-24T23:59:00.000z'));
98
+ expect(timestampInterval.getTotalDaysOfWeek(dayOfWeek)).toEqual(expectedCount);
99
+ });
100
+ describe('modifyStart', () => {
101
+ it('should modify the start timestamp', () => {
102
+ const newStartTimestamp = new src_1.Timestamp(1721606400000);
103
+ timestampInterval.modifyStart(newStartTimestamp);
104
+ expect(timestampInterval).toMatchObject({
105
+ start: newStartTimestamp,
106
+ end: endTimestamp,
107
+ });
108
+ });
109
+ it('should throw error if the start is after the end', () => {
110
+ const newStartTimestamp = new src_1.Timestamp(1722124800000);
111
+ expect(() => timestampInterval.modifyStart(newStartTimestamp)).toThrow(src_1.InvalidTimestampIntervalError);
112
+ });
113
+ });
114
+ describe('modifyEnd', () => {
115
+ it('should modify the end timestamp', () => {
116
+ const newEndTimestamp = new src_1.Timestamp(1722124800000);
117
+ timestampInterval.modifyEnd(newEndTimestamp);
118
+ expect(timestampInterval).toMatchObject({
119
+ start: startTimestamp,
120
+ end: newEndTimestamp,
121
+ });
122
+ });
123
+ it('should throw error if the start is after the end', () => {
124
+ const newEndTimestamp = new src_1.Timestamp(1721606400000);
125
+ expect(() => timestampInterval.modifyEnd(newEndTimestamp)).toThrow(src_1.InvalidTimestampIntervalError);
126
+ });
127
+ });
128
+ describe('getDaysBetweenInterval', () => {
129
+ it('should return an array of dates in ISO format for the given interval', () => {
130
+ const start = new src_1.Timestamp('2024-11-18T00:00:00.000Z');
131
+ const end = new src_1.Timestamp('2024-11-22T00:00:00.000Z');
132
+ timestampInterval = new src_1.TimestampInterval(start, end);
133
+ const days = timestampInterval.getDaysBetweenInterval();
134
+ expect(days).toMatchObject([
135
+ {
136
+ year: 2024,
137
+ month: 11,
138
+ day: 18,
139
+ },
140
+ {
141
+ year: 2024,
142
+ month: 11,
143
+ day: 19,
144
+ },
145
+ {
146
+ year: 2024,
147
+ month: 11,
148
+ day: 20,
149
+ },
150
+ {
151
+ year: 2024,
152
+ month: 11,
153
+ day: 21,
154
+ },
155
+ {
156
+ year: 2024,
157
+ month: 11,
158
+ day: 22,
159
+ },
160
+ ]);
161
+ });
162
+ it('should return a single day if the start and end are the same', () => {
163
+ const start = new src_1.Timestamp('2024-11-19T00:00:00.000Z');
164
+ const end = new src_1.Timestamp('2024-11-19T00:00:00.000Z');
165
+ timestampInterval = new src_1.TimestampInterval(start, end);
166
+ const days = timestampInterval.getDaysBetweenInterval();
167
+ expect(days).toMatchObject([
168
+ {
169
+ year: 2024,
170
+ month: 11,
171
+ day: 19,
172
+ },
173
+ ]);
174
+ });
175
+ it('should not modify the original values', () => {
176
+ const primitiveStart = '2024-11-18T00:00:00.000Z';
177
+ const primitiveEnd = '2024-11-22T00:00:00.000Z';
178
+ const start = new src_1.Timestamp(primitiveStart);
179
+ const end = new src_1.Timestamp(primitiveEnd);
180
+ timestampInterval = new src_1.TimestampInterval(start, end);
181
+ const days = timestampInterval.getDaysBetweenInterval();
182
+ expect(days).toMatchObject([
183
+ {
184
+ year: 2024,
185
+ month: 11,
186
+ day: 18,
187
+ },
188
+ {
189
+ year: 2024,
190
+ month: 11,
191
+ day: 19,
192
+ },
193
+ {
194
+ year: 2024,
195
+ month: 11,
196
+ day: 20,
197
+ },
198
+ {
199
+ year: 2024,
200
+ month: 11,
201
+ day: 21,
202
+ },
203
+ {
204
+ year: 2024,
205
+ month: 11,
206
+ day: 22,
207
+ },
208
+ ]);
209
+ expect(timestampInterval).toMatchObject({
210
+ start: new src_1.Timestamp(primitiveStart),
211
+ end: new src_1.Timestamp(primitiveEnd),
212
+ });
213
+ });
214
+ });
215
+ describe('getOverlappingInterval', () => {
216
+ it('should return the overlapping interval when there is overlap', () => {
217
+ const interval = new src_1.TimestampInterval(new src_1.Timestamp(1721779200000), new src_1.Timestamp(1722307200000));
218
+ const result = timestampInterval.getOverlappingInterval(interval);
219
+ expect(result).toEqual(new src_1.TimestampInterval(new src_1.Timestamp(1721779200000), new src_1.Timestamp(1722124800000)));
220
+ });
221
+ it('should return the same overlapping interval when there is overlap if the variables are reversed', () => {
222
+ const interval = new src_1.TimestampInterval(new src_1.Timestamp(1721779200000), new src_1.Timestamp(1722307200000));
223
+ const result = interval.getOverlappingInterval(timestampInterval);
224
+ expect(result).toEqual(new src_1.TimestampInterval(new src_1.Timestamp(1721779200000), new src_1.Timestamp(1722124800000)));
225
+ });
226
+ it('should return null when there is no overlap', () => {
227
+ const interval = new src_1.TimestampInterval(new src_1.Timestamp(1722307200000), new src_1.Timestamp(1722912000000));
228
+ const result = timestampInterval.getOverlappingInterval(interval);
229
+ expect(result).toBeNull();
230
+ });
231
+ it('should return the full interval when one interval is fully contained within another', () => {
232
+ const interval = new src_1.TimestampInterval(new src_1.Timestamp(1721692800000), new src_1.Timestamp(1722048000000));
233
+ const result = timestampInterval.getOverlappingInterval(interval);
234
+ expect(result).toEqual(interval);
235
+ });
236
+ it('should handle identical intervals correctly', () => {
237
+ const interval = new src_1.TimestampInterval(new src_1.Timestamp(1721606400000), new src_1.Timestamp(1722124800000));
238
+ const result = timestampInterval.getOverlappingInterval(interval);
239
+ expect(result).toEqual(timestampInterval);
240
+ });
241
+ it('should handle intervals that touch but do not overlap', () => {
242
+ const interval = new src_1.TimestampInterval(new src_1.Timestamp(1722124800000), new src_1.Timestamp(1722307200000));
243
+ const result = timestampInterval.getOverlappingInterval(interval);
244
+ expect(result).toBeNull();
245
+ });
246
+ });
247
+ describe('includes', () => {
248
+ it('should return true if the timestamp is within the interval', () => {
249
+ const timestamp = new src_1.Timestamp(1721692800000);
250
+ expect(timestampInterval.includes(timestamp)).toBeTruthy();
251
+ });
252
+ it('should return false if the timestamp is before the interval', () => {
253
+ const timestamp = new src_1.Timestamp(1721606399999);
254
+ expect(timestampInterval.includes(timestamp)).toBeFalsy();
255
+ });
256
+ it('should return false if the timestamp is after the interval', () => {
257
+ const timestamp = new src_1.Timestamp(1722124800001);
258
+ expect(timestampInterval.includes(timestamp)).toBeFalsy();
259
+ });
260
+ it('should return true if the timestamp is the same as the start of the interval', () => {
261
+ const timestamp = new src_1.Timestamp(1721606400000);
262
+ expect(timestampInterval.includes(timestamp)).toBeTruthy();
263
+ });
264
+ it('should return true if the timestamp is the same as the end of the interval', () => {
265
+ const timestamp = new src_1.Timestamp(1722124800000);
266
+ expect(timestampInterval.includes(timestamp)).toBeTruthy();
267
+ });
268
+ });
269
+ });
270
+ //# sourceMappingURL=TimestampInterval.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimestampInterval.spec.js","sourceRoot":"","sources":["../../../../tests/value-objects/time/TimestampInterval.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Year.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Year.spec.d.ts","sourceRoot":"","sources":["../../../../tests/value-objects/time/Year.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const src_1 = require("../../../src");
4
+ describe('Year', () => {
5
+ describe('constructor', () => {
6
+ it('should return a NullValueObject when a Nullish is received', () => {
7
+ expect(() => new src_1.Year(undefined)).not.toThrow();
8
+ expect(src_1.NullObject.isNullObject(new src_1.Year(undefined))).toBeTrue();
9
+ expect(src_1.NullObject.isNullObject(new src_1.Year(null))).toBeTrue();
10
+ });
11
+ });
12
+ describe('isLeapYear', () => {
13
+ it('should return true for a leap year divisible by 4 but not by 100', () => {
14
+ const year = new src_1.Year(2024);
15
+ expect(year.isLeapYear()).toBe(true);
16
+ });
17
+ it('should return false for a non-leap year not divisible by 4', () => {
18
+ const year = new src_1.Year(2023);
19
+ expect(year.isLeapYear()).toBe(false);
20
+ });
21
+ it('should return false for a year divisible by 100 but not by 400', () => {
22
+ const year = new src_1.Year(1900);
23
+ expect(year.isLeapYear()).toBe(false);
24
+ });
25
+ it('should return true for a year divisible by 400', () => {
26
+ const year = new src_1.Year(2000);
27
+ expect(year.isLeapYear()).toBe(true);
28
+ });
29
+ });
30
+ describe('getNumberOfDays', () => {
31
+ it('should return 366 for a leap year', () => {
32
+ const year = new src_1.Year(2024);
33
+ expect(year.getNumberOfDays()).toBe(366);
34
+ });
35
+ it('should return 365 for a non-leap year', () => {
36
+ const year = new src_1.Year(2023);
37
+ expect(year.getNumberOfDays()).toBe(365);
38
+ });
39
+ });
40
+ });
41
+ //# sourceMappingURL=Year.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Year.spec.js","sourceRoot":"","sources":["../../../../tests/value-objects/time/Year.spec.ts"],"names":[],"mappings":";;AAAA,sCAAgD;AAEhD,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,UAAI,CAAC,SAA8B,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACrE,MAAM,CACJ,gBAAU,CAAC,YAAY,CAAC,IAAI,UAAI,CAAC,SAA8B,CAAC,CAAC,CAClE,CAAC,QAAQ,EAAE,CAAC;YACb,MAAM,CACJ,gBAAU,CAAC,YAAY,CAAC,IAAI,UAAI,CAAC,IAAyB,CAAC,CAAC,CAC7D,CAAC,QAAQ,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC1E,MAAM,IAAI,GAAG,IAAI,UAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,IAAI,GAAG,IAAI,UAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACxE,MAAM,IAAI,GAAG,IAAI,UAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,IAAI,GAAG,IAAI,UAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,IAAI,GAAG,IAAI,UAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,IAAI,GAAG,IAAI,UAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,11 @@
1
1
  {
2
2
  "name": "@haskou/value-objects",
3
- "version": "1.1.1",
4
- "main": "src/index.ts",
3
+ "version": "1.1.3",
4
+ "main": "dist/index.js",
5
+ "types": "dist/index.d.ts",
6
+ "files": [
7
+ "dist"
8
+ ],
5
9
  "license": "MIT",
6
10
  "publishConfig": {
7
11
  "access": "public"
@@ -21,9 +25,9 @@
21
25
  "test:unit": "jest --passWithNoTests --runInBand",
22
26
  "test:coverage": "NODE_ENV=test jest --collect-coverage",
23
27
  "build": "rm -rf dist/ && tsc",
24
- "publish:patch": "yarn lint && yarn test:coverage && yarn build && yarn version --patch && yarn publish && push",
25
- "publish:minor": "yarn lint && yarn test:coverage && yarn build && yarn version --minor && yarn publish && push",
26
- "publish:major": "yarn lint && yarn test:coverage && yarn build && yarn version --major && yarn publish && push"
28
+ "publish:patch": "yarn lint && yarn test:coverage && tsc --declaration --outDir dist && yarn version --patch && yarn publish && git push",
29
+ "publish:minor": "yarn lint && yarn test:coverage && tsc --declaration --outDir dist && yarn version --minor && yarn publish && git push",
30
+ "publish:major": "yarn lint && yarn test:coverage && tsc --declaration --outDir dist && yarn version --major && yarn publish && git push"
27
31
  },
28
32
  "devDependencies": {
29
33
  "@types/jest": "^30.0.0",
package/.editorconfig DELETED
@@ -1,15 +0,0 @@
1
- ################################################
2
- # ╔═╗╔╦╗╦╔╦╗╔═╗╦═╗┌─┐┌─┐┌┐┌┌─┐┬┌─┐
3
- # ║╣ ║║║ ║ ║ ║╠╦╝│ │ ││││├┤ ││ ┬
4
- # o╚═╝═╩╝╩ ╩ ╚═╝╩╚═└─┘└─┘┘└┘└ ┴└─┘
5
- ################################################
6
- root = true
7
-
8
- [*]
9
- indent_style = space
10
- indent_size = 2
11
- end_of_line = lf
12
- charset = utf-8
13
- trim_trailing_whitespace = true
14
- insert_final_newline = true
15
- max_line_length = 80
package/.eslintignore DELETED
@@ -1,3 +0,0 @@
1
- dist/
2
- node_modules/
3
- tests/
package/.eslintrc.json DELETED
@@ -1,218 +0,0 @@
1
- {
2
- "env": {
3
- "es2022": true,
4
- "node": true,
5
- "jest": true
6
- },
7
- "parser": "@typescript-eslint/parser",
8
- "plugins": [
9
- "@typescript-eslint",
10
- "prettier",
11
- "unused-imports",
12
- "sonarjs",
13
- "perfectionist"
14
- ],
15
- "extends": [
16
- "eslint:recommended",
17
- "plugin:@typescript-eslint/eslint-recommended",
18
- "plugin:@typescript-eslint/recommended",
19
- "plugin:prettier/recommended"
20
- ],
21
- "parserOptions": {
22
- "project": ["./tsconfig.json", "./tsconfig.jest.json"],
23
- "sourceType": "module"
24
- },
25
- "rules": {
26
- "lines-between-class-members": [
27
- "error",
28
- "always",
29
- {
30
- "exceptAfterSingleLine": true
31
- }
32
- ],
33
- "padding-line-between-statements": [
34
- "error",
35
- {
36
- "blankLine": "always",
37
- "prev": "import",
38
- "next": ["class", "export", "const", "let", "var"]
39
- },
40
- {
41
- "blankLine": "always",
42
- "prev": "*",
43
- "next": ["return", "if"]
44
- }
45
- ],
46
- "no-extra-boolean-cast": "error",
47
- "@typescript-eslint/no-non-null-assertion": "off",
48
- "@typescript-eslint/naming-convention": [
49
- "error",
50
- {
51
- "selector": ["variable", "function"],
52
- "format": ["camelCase", "PascalCase"],
53
- "leadingUnderscore": "allow"
54
- },
55
- {
56
- "selector": "interface",
57
- "format": ["PascalCase"],
58
- "custom": {
59
- "regex": "^[A-Z]",
60
- "match": true
61
- }
62
- }
63
- ],
64
- "no-unused-vars": "off",
65
- "unused-imports/no-unused-imports": "error",
66
- "unused-imports/no-unused-vars": [
67
- "warn",
68
- {
69
- "vars": "all",
70
- "varsIgnorePattern": "^_",
71
- "args": "after-used",
72
- "argsIgnorePattern": "^_"
73
- }
74
- ],
75
- "@typescript-eslint/no-use-before-define": "warn",
76
- "@typescript-eslint/no-inferrable-types": "off",
77
- "@typescript-eslint/no-this-alias": "warn",
78
- "@typescript-eslint/no-require-imports": "error",
79
- "@typescript-eslint/unbound-method": "off",
80
- "require-await": "off",
81
- "@typescript-eslint/require-await": "error",
82
- "@typescript-eslint/no-misused-promises": "off",
83
- "@typescript-eslint/no-floating-promises": "error",
84
- "@typescript-eslint/prefer-for-of": "error",
85
- "@typescript-eslint/member-delimiter-style": "off",
86
- "@typescript-eslint/no-unsafe-return": "error",
87
- "@typescript-eslint/no-unsafe-call": "warn",
88
- "@typescript-eslint/no-unsafe-argument": "warn",
89
- "max-classes-per-file": ["error", 1],
90
- "no-multiple-empty-lines": [
91
- 1,
92
- {
93
- "max": 1,
94
- "maxEOF": 0
95
- }
96
- ],
97
- "max-len": [
98
- "error",
99
- {
100
- "code": 80,
101
- "ignoreStrings": true,
102
- "ignoreRegExpLiterals": true,
103
- "ignoreTemplateLiterals": true
104
- }
105
- ],
106
- "@typescript-eslint/explicit-member-accessibility": [
107
- "error",
108
- {
109
- "ignoredMethodNames": ["constructor"],
110
- "accessibility": "explicit"
111
- }
112
- ],
113
- "new-parens": "error",
114
- "no-bitwise": "error",
115
- "no-caller": "error",
116
- "no-cond-assign": "error",
117
- "no-console": "warn",
118
- "no-debugger": "error",
119
- "no-empty": "error",
120
- "no-eval": "error",
121
- "no-fallthrough": "off",
122
- "no-invalid-this": "off",
123
- "no-new-wrappers": "error",
124
- "no-throw-literal": "error",
125
- "no-trailing-spaces": "error",
126
- "no-undef-init": "error",
127
- "no-unsafe-finally": "error",
128
- "no-unused-expressions": [
129
- "error",
130
- {
131
- "allowShortCircuit": true
132
- }
133
- ],
134
- "no-unused-labels": "error",
135
- "object-shorthand": "error",
136
- "one-var": ["error", "never"],
137
- "radix": "error",
138
- "spaced-comment": "error",
139
- "use-isnan": "error",
140
- "valid-typeof": "off",
141
- "complexity": ["error", 8],
142
- "@typescript-eslint/member-ordering": [
143
- "error",
144
- {
145
- "default": [
146
- "field",
147
- "static-field",
148
- "private-static-field",
149
- "public-static-field",
150
- "private-instance-field",
151
- "public-instance-field",
152
- "private-static-method",
153
- "public-static-method",
154
- "constructor",
155
- "private-method",
156
- "public-method"
157
- ]
158
- }
159
- ],
160
- "max-params": ["warn", 7],
161
- "max-nested-callbacks": ["warn", 2],
162
- "max-depth": ["warn", 3],
163
- "sonarjs/prefer-single-boolean-return": "error",
164
- "sonarjs/no-collapsible-if": "error",
165
- "sonarjs/no-duplicated-branches": "error",
166
- "sonarjs/no-identical-expressions": "warn",
167
- "sonarjs/no-nested-switch": "warn",
168
- "perfectionist/sort-objects": [
169
- "warn",
170
- {
171
- "type": "natural",
172
- "order": "asc"
173
- }
174
- ],
175
- "perfectionist/sort-imports": [
176
- "error",
177
- {
178
- "type": "natural",
179
- "order": "asc"
180
- }
181
- ],
182
- "sonarjs/cognitive-complexity": ["error", 10],
183
- "@typescript-eslint/explicit-module-boundary-types": [
184
- "error",
185
- {
186
- "allowedNames": ["toPrimitives"]
187
- }
188
- ],
189
- "no-param-reassign": [
190
- "warn",
191
- {
192
- "props": true
193
- }
194
- ],
195
- "no-restricted-imports": [
196
- "error",
197
- {
198
- "paths": [
199
- {
200
- "name": "../infrastructure",
201
- "message": "Domain layer cannot import infrastructure."
202
- }
203
- ]
204
- }
205
- ]
206
- },
207
- "overrides": [
208
- {
209
- "files": ["*.spec.ts"],
210
- "rules": {
211
- "no-unsafe-argument": "off",
212
- "max-statements": "off",
213
- "max-lines-per-function": "off",
214
- "max-nested-callbacks": ["warn", 4]
215
- }
216
- }
217
- ]
218
- }
package/.prettierrc.json DELETED
@@ -1,13 +0,0 @@
1
- {
2
- "tabWidth": 2,
3
- "useTabs": false,
4
- "printWidth": 80,
5
- "singleQuote": true,
6
- "trailingComma": "all",
7
- "bracketSpacing": true,
8
- "bracketSameLine": false,
9
- "jsxBracketSameLine": false,
10
- "semi": true,
11
- "arrowParens": "always",
12
- "endOfLine": "auto"
13
- }