@haskou/value-objects 1.1.0 → 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/dist/src/value-objects/ids/index.d.ts +3 -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} +2 -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,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CalendarDay = void 0;
4
+ const InvalidDayError_1 = require("../../errors/InvalidDayError");
5
+ const InvalidDayFormatError_1 = require("../../errors/InvalidDayFormatError");
6
+ const Assert_1 = require("../../patterns/Assert");
7
+ const ValueObject_1 = require("../ValueObject");
8
+ const Day_1 = require("./Day");
9
+ const DayOfWeek_1 = require("./DayOfWeek");
10
+ const Month_1 = require("./Month");
11
+ const MonthOfYear_1 = require("./MonthOfYear");
12
+ const Timestamp_1 = require("./Timestamp");
13
+ class CalendarDay extends ValueObject_1.ValueObject {
14
+ year;
15
+ month;
16
+ day;
17
+ static ensureIsValidValue(value) {
18
+ if (typeof value == 'string') {
19
+ this.ensureIsValidString(value);
20
+ }
21
+ this.ensureIsValidDate(new Date(value.valueOf()));
22
+ }
23
+ static ensureIsValidString(value) {
24
+ (0, Assert_1.assert)(value.match(/^\d{4}-\d{1,2}-\d{1,2}$/), new InvalidDayFormatError_1.InvalidDayFormatError(value));
25
+ }
26
+ static generateStringValue(timestamp) {
27
+ const paddedMonth = timestamp.getMonth().toString().padStart(2, '0');
28
+ const paddedDay = timestamp.getDay().toString().padStart(2, '0');
29
+ return `${timestamp.getYear().toString()}-${paddedMonth}-${paddedDay}`;
30
+ }
31
+ static ensureIsValidDate(value) {
32
+ (0, Assert_1.assert)(!isNaN(value.valueOf()), new InvalidDayError_1.InvalidDayError(value));
33
+ }
34
+ constructor(value) {
35
+ let timestamp;
36
+ if (value) {
37
+ CalendarDay.ensureIsValidValue(value);
38
+ timestamp = new Timestamp_1.Timestamp(value);
39
+ }
40
+ else {
41
+ timestamp = new Timestamp_1.Timestamp();
42
+ }
43
+ super(CalendarDay.generateStringValue(timestamp));
44
+ this.year = timestamp.getYear().valueOf();
45
+ this.month = timestamp.getMonth().getIndex() + 1;
46
+ this.day = timestamp.getDay().valueOf();
47
+ }
48
+ isAfter(date) {
49
+ return this.valueOf() > date.valueOf();
50
+ }
51
+ isBefore(date) {
52
+ return this.valueOf() < date.valueOf();
53
+ }
54
+ getYear() {
55
+ return this.year;
56
+ }
57
+ getMonth() {
58
+ return new Month_1.Month(this.month);
59
+ }
60
+ getMonthOfYear() {
61
+ return new MonthOfYear_1.MonthOfYear(this.month, this.year);
62
+ }
63
+ getDay() {
64
+ return new Day_1.Day(this.day);
65
+ }
66
+ getDayOfWeek() {
67
+ return DayOfWeek_1.DayOfWeek.fromNumber(this.toTimestamp().getDayOfWeek());
68
+ }
69
+ toTimestamp() {
70
+ return new Timestamp_1.Timestamp(Date.UTC(this.year, this.month - 1, this.day));
71
+ }
72
+ }
73
+ exports.CalendarDay = CalendarDay;
74
+ //# sourceMappingURL=CalendarDay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarDay.js","sourceRoot":"","sources":["../../../../src/value-objects/time/CalendarDay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Integer } from '../Integer';
2
+ import { NumberValueObject } from '../NumberValueObject';
3
+ export declare class Day extends Integer {
4
+ constructor(value: number | NumberValueObject);
5
+ private ensureIsValidDay;
6
+ }
7
+ //# sourceMappingURL=Day.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Day.d.ts","sourceRoot":"","sources":["../../../../src/value-objects/time/Day.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,GAAI,SAAQ,OAAO;gBAClB,KAAK,EAAE,MAAM,GAAG,iBAAiB;IAM7C,OAAO,CAAC,gBAAgB;CAIzB"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Day = void 0;
4
+ const InvalidDayError_1 = require("../../errors/InvalidDayError");
5
+ const Assert_1 = require("../../patterns/Assert");
6
+ const Integer_1 = require("../Integer");
7
+ class Day extends Integer_1.Integer {
8
+ constructor(value) {
9
+ super(value.valueOf());
10
+ this.ensureIsValidDay();
11
+ }
12
+ ensureIsValidDay() {
13
+ (0, Assert_1.assert)(this.isGreaterOrEqualThan(1), new InvalidDayError_1.InvalidDayError(this.value));
14
+ (0, Assert_1.assert)(this.isLessOrEqualThan(31), new InvalidDayError_1.InvalidDayError(this.value));
15
+ }
16
+ }
17
+ exports.Day = Day;
18
+ //# sourceMappingURL=Day.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Day.js","sourceRoot":"","sources":["../../../../src/value-objects/time/Day.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,kDAA+C;AAC/C,wCAAqC;AAGrC,MAAa,GAAI,SAAQ,iBAAO;IAC9B,YAAY,KAAiC;QAC3C,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAEvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEO,gBAAgB;QACtB,IAAA,eAAM,EAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,IAAI,iCAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,IAAA,eAAM,EAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,IAAI,iCAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;CACF;AAXD,kBAWC"}
@@ -0,0 +1,34 @@
1
+ import { Enum } from '../Enum';
2
+ import { Timestamp } from './Timestamp';
3
+ export declare enum EDaysOfWeek {
4
+ MONDAY = "monday",
5
+ TUESDAY = "tuesday",
6
+ WEDNESDAY = "wednesday",
7
+ THURSDAY = "thursday",
8
+ FRIDAY = "friday",
9
+ SATURDAY = "saturday",
10
+ SUNDAY = "sunday"
11
+ }
12
+ export declare const timeStampDayToDaysMap: {
13
+ friday: number;
14
+ monday: number;
15
+ saturday: number;
16
+ sunday: number;
17
+ thursday: number;
18
+ tuesday: number;
19
+ wednesday: number;
20
+ };
21
+ export declare class DayOfWeek extends Enum {
22
+ static MONDAY: DayOfWeek;
23
+ static TUESDAY: DayOfWeek;
24
+ static WEDNESDAY: DayOfWeek;
25
+ static THURSDAY: DayOfWeek;
26
+ static FRIDAY: DayOfWeek;
27
+ static SATURDAY: DayOfWeek;
28
+ static SUNDAY: DayOfWeek;
29
+ static fromNumber(day: number): DayOfWeek;
30
+ static fromTimestamp(timestamp: Timestamp): DayOfWeek;
31
+ getValues(): string[];
32
+ toNumber(): number;
33
+ }
34
+ //# sourceMappingURL=DayOfWeek.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DayOfWeek.d.ts","sourceRoot":"","sources":["../../../../src/value-objects/time/DayOfWeek.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,qBAAqB;;;;;;;;CAQjC,CAAC;AAEF,qBAAa,SAAU,SAAQ,IAAI;IACjC,OAAc,MAAM,YAAqC;IACzD,OAAc,OAAO,YAAsC;IAC3D,OAAc,SAAS,YAAwC;IAC/D,OAAc,QAAQ,YAAuC;IAC7D,OAAc,MAAM,YAAqC;IACzD,OAAc,QAAQ,YAAuC;IAC7D,OAAc,MAAM,YAAqC;WAE3C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;WAalC,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS;IAMrD,SAAS,IAAI,MAAM,EAAE;IAIrB,QAAQ,IAAI,MAAM;CAG1B"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DayOfWeek = exports.timeStampDayToDaysMap = exports.EDaysOfWeek = void 0;
4
+ const InvalidDayError_1 = require("../../errors/InvalidDayError");
5
+ const Enum_1 = require("../Enum");
6
+ var EDaysOfWeek;
7
+ (function (EDaysOfWeek) {
8
+ EDaysOfWeek["MONDAY"] = "monday";
9
+ EDaysOfWeek["TUESDAY"] = "tuesday";
10
+ EDaysOfWeek["WEDNESDAY"] = "wednesday";
11
+ EDaysOfWeek["THURSDAY"] = "thursday";
12
+ EDaysOfWeek["FRIDAY"] = "friday";
13
+ EDaysOfWeek["SATURDAY"] = "saturday";
14
+ EDaysOfWeek["SUNDAY"] = "sunday";
15
+ })(EDaysOfWeek || (exports.EDaysOfWeek = EDaysOfWeek = {}));
16
+ exports.timeStampDayToDaysMap = {
17
+ [EDaysOfWeek.FRIDAY]: 5,
18
+ [EDaysOfWeek.MONDAY]: 1,
19
+ [EDaysOfWeek.SATURDAY]: 6,
20
+ [EDaysOfWeek.SUNDAY]: 0,
21
+ [EDaysOfWeek.THURSDAY]: 4,
22
+ [EDaysOfWeek.TUESDAY]: 2,
23
+ [EDaysOfWeek.WEDNESDAY]: 3,
24
+ };
25
+ class DayOfWeek extends Enum_1.Enum {
26
+ static MONDAY = new DayOfWeek(EDaysOfWeek.MONDAY);
27
+ static TUESDAY = new DayOfWeek(EDaysOfWeek.TUESDAY);
28
+ static WEDNESDAY = new DayOfWeek(EDaysOfWeek.WEDNESDAY);
29
+ static THURSDAY = new DayOfWeek(EDaysOfWeek.THURSDAY);
30
+ static FRIDAY = new DayOfWeek(EDaysOfWeek.FRIDAY);
31
+ static SATURDAY = new DayOfWeek(EDaysOfWeek.SATURDAY);
32
+ static SUNDAY = new DayOfWeek(EDaysOfWeek.SUNDAY);
33
+ static fromNumber(day) {
34
+ const [eDay] = Object.entries(exports.timeStampDayToDaysMap).find(([, value]) => value === day) || [];
35
+ if (!eDay) {
36
+ throw new InvalidDayError_1.InvalidDayError(eDay);
37
+ }
38
+ return new DayOfWeek(eDay);
39
+ }
40
+ static fromTimestamp(timestamp) {
41
+ const dayOfWeekNumber = timestamp.getDayOfWeek();
42
+ return DayOfWeek.fromNumber(dayOfWeekNumber);
43
+ }
44
+ getValues() {
45
+ return Object.values(EDaysOfWeek);
46
+ }
47
+ toNumber() {
48
+ return exports.timeStampDayToDaysMap[this.value];
49
+ }
50
+ }
51
+ exports.DayOfWeek = DayOfWeek;
52
+ //# sourceMappingURL=DayOfWeek.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DayOfWeek.js","sourceRoot":"","sources":["../../../../src/value-objects/time/DayOfWeek.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,kCAA+B;AAG/B,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;IACrB,gCAAiB,CAAA;AACnB,CAAC,EARW,WAAW,2BAAX,WAAW,QAQtB;AAEY,QAAA,qBAAqB,GAAG;IACnC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IACvB,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IACvB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;IACzB,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IACvB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;IACzB,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACxB,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAa,SAAU,SAAQ,WAAI;IAC1B,MAAM,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,CAAC,UAAU,CAAC,GAAW;QAClC,MAAM,CAAC,IAAI,CAAC,GACV,MAAM,CAAC,OAAO,CAAC,6BAAqB,CAAC,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAC7B,IAAI,EAAE,CAAC;QAEV,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,iCAAe,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,SAAoB;QAC9C,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QAEjD,OAAO,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IAEM,SAAS;QACd,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAEM,QAAQ;QACb,OAAO,6BAAqB,CAAC,IAAI,CAAC,KAAoB,CAAC,CAAC;IAC1D,CAAC;;AAlCH,8BAmCC"}
@@ -0,0 +1,23 @@
1
+ import { NumberValueObject } from '../NumberValueObject';
2
+ export declare class Duration extends NumberValueObject {
3
+ private static readonly MILLISECOND_FACTOR;
4
+ private static readonly SECOND_UNITS;
5
+ private static readonly millisecondFactors;
6
+ static fromDays(days: number | NumberValueObject): Duration;
7
+ static fromHours(hours: number | NumberValueObject): Duration;
8
+ static fromMinutes(minutes: number | NumberValueObject): Duration;
9
+ static fromSeconds(seconds: number | NumberValueObject): Duration;
10
+ static fromMilliseconds(milliseconds: number | NumberValueObject): Duration;
11
+ constructor(milliseconds: NumberValueObject | Duration);
12
+ getTotalDays(): NumberValueObject;
13
+ getTotalHours(): NumberValueObject;
14
+ getTotalMinutes(): NumberValueObject;
15
+ getTotalSeconds(): NumberValueObject;
16
+ getTotalMilliseconds(): NumberValueObject;
17
+ getDays(): NumberValueObject;
18
+ getHours(): NumberValueObject;
19
+ getMinutes(): NumberValueObject;
20
+ getSeconds(): NumberValueObject;
21
+ getMilliseconds(): NumberValueObject;
22
+ }
23
+ //# sourceMappingURL=Duration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Duration.d.ts","sourceRoot":"","sources":["../../../../src/value-objects/time/Duration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,QAAS,SAAQ,iBAAiB;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAQlC;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAsBxC;WAEY,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,QAAQ;WAQpD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,QAAQ;WAQtD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,QAAQ;WAQ1D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,QAAQ;WAQ1D,gBAAgB,CAC5B,YAAY,EAAE,MAAM,GAAG,iBAAiB,GACvC,QAAQ;gBAIC,YAAY,EAAE,iBAAiB,GAAG,QAAQ;IAI/C,YAAY,IAAI,iBAAiB;IAIjC,aAAa,IAAI,iBAAiB;IAIlC,eAAe,IAAI,iBAAiB;IAIpC,eAAe,IAAI,iBAAiB;IAIpC,oBAAoB,IAAI,iBAAiB;IAIzC,OAAO,IAAI,iBAAiB;IAQ5B,QAAQ,IAAI,iBAAiB;IAQ7B,UAAU,IAAI,iBAAiB;IAU/B,UAAU,IAAI,iBAAiB;IAU/B,eAAe,IAAI,iBAAiB;CAK5C"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Duration = void 0;
4
+ const NumberValueObject_1 = require("../NumberValueObject");
5
+ class Duration extends NumberValueObject_1.NumberValueObject {
6
+ static MILLISECOND_FACTOR = 1000;
7
+ static SECOND_UNITS = {
8
+ DAYS: 24 * 60 * 60,
9
+ HOURS: 60 * 60,
10
+ MINUTES: 60,
11
+ MONTHS: 30 * 24 * 60 * 60,
12
+ SECONDS: 1,
13
+ WEEKS: 7 * 24 * 60 * 60,
14
+ YEARS: 365 * 24 * 60 * 60,
15
+ };
16
+ static millisecondFactors = {
17
+ DAYS: new NumberValueObject_1.NumberValueObject(this.SECOND_UNITS.DAYS * this.MILLISECOND_FACTOR),
18
+ HOURS: new NumberValueObject_1.NumberValueObject(this.SECOND_UNITS.HOURS * this.MILLISECOND_FACTOR),
19
+ MINUTES: new NumberValueObject_1.NumberValueObject(this.SECOND_UNITS.MINUTES * this.MILLISECOND_FACTOR),
20
+ MONTHS: new NumberValueObject_1.NumberValueObject(this.SECOND_UNITS.MONTHS * this.MILLISECOND_FACTOR),
21
+ SECONDS: new NumberValueObject_1.NumberValueObject(this.SECOND_UNITS.SECONDS * this.MILLISECOND_FACTOR),
22
+ WEEKS: new NumberValueObject_1.NumberValueObject(this.SECOND_UNITS.WEEKS * this.MILLISECOND_FACTOR),
23
+ YEARS: new NumberValueObject_1.NumberValueObject(this.SECOND_UNITS.YEARS * this.MILLISECOND_FACTOR),
24
+ };
25
+ static fromDays(days) {
26
+ return new Duration(new NumberValueObject_1.NumberValueObject(days.valueOf()).multiply(this.millisecondFactors.DAYS));
27
+ }
28
+ static fromHours(hours) {
29
+ return new Duration(new NumberValueObject_1.NumberValueObject(hours.valueOf()).multiply(this.millisecondFactors.HOURS));
30
+ }
31
+ static fromMinutes(minutes) {
32
+ return new Duration(new NumberValueObject_1.NumberValueObject(minutes.valueOf()).multiply(this.millisecondFactors.MINUTES));
33
+ }
34
+ static fromSeconds(seconds) {
35
+ return new Duration(new NumberValueObject_1.NumberValueObject(seconds.valueOf()).multiply(this.millisecondFactors.SECONDS));
36
+ }
37
+ static fromMilliseconds(milliseconds) {
38
+ return new Duration(new NumberValueObject_1.NumberValueObject(milliseconds.valueOf()));
39
+ }
40
+ constructor(milliseconds) {
41
+ super(milliseconds.valueOf());
42
+ }
43
+ getTotalDays() {
44
+ return new Duration(this).divide(Duration.millisecondFactors.DAYS);
45
+ }
46
+ getTotalHours() {
47
+ return new Duration(this).divide(Duration.millisecondFactors.HOURS);
48
+ }
49
+ getTotalMinutes() {
50
+ return new Duration(this).divide(Duration.millisecondFactors.MINUTES);
51
+ }
52
+ getTotalSeconds() {
53
+ return new Duration(this).divide(Duration.millisecondFactors.SECONDS);
54
+ }
55
+ getTotalMilliseconds() {
56
+ return new NumberValueObject_1.NumberValueObject(this.valueOf());
57
+ }
58
+ getDays() {
59
+ return new NumberValueObject_1.NumberValueObject(Math.floor(new Duration(this).divide(Duration.millisecondFactors.DAYS).valueOf()) % Duration.SECOND_UNITS.DAYS);
60
+ }
61
+ getHours() {
62
+ return new NumberValueObject_1.NumberValueObject(Math.floor(new Duration(this).divide(Duration.millisecondFactors.HOURS).valueOf()) % Duration.SECOND_UNITS.HOURS);
63
+ }
64
+ getMinutes() {
65
+ return new NumberValueObject_1.NumberValueObject(Math.floor(new Duration(this)
66
+ .divide(Duration.millisecondFactors.MINUTES)
67
+ .valueOf()) % Duration.SECOND_UNITS.MINUTES);
68
+ }
69
+ getSeconds() {
70
+ return new NumberValueObject_1.NumberValueObject(Math.floor(new Duration(this)
71
+ .divide(Duration.millisecondFactors.SECONDS)
72
+ .valueOf()) % Duration.SECOND_UNITS.MINUTES);
73
+ }
74
+ getMilliseconds() {
75
+ return new NumberValueObject_1.NumberValueObject(Math.floor(new Duration(this).valueOf()) % Duration.MILLISECOND_FACTOR);
76
+ }
77
+ }
78
+ exports.Duration = Duration;
79
+ //# sourceMappingURL=Duration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Duration.js","sourceRoot":"","sources":["../../../../src/value-objects/time/Duration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { StringValueObject } from '../StringValueObject';
2
+ export declare class Hour extends StringValueObject {
3
+ private readonly minutes;
4
+ private readonly hours;
5
+ private static addTrailZero;
6
+ constructor(value: string);
7
+ constructor(value: number, minutes?: number);
8
+ addMinutes(minutes: number): Hour;
9
+ diffInMinutes(other: Hour): number;
10
+ getMinutes(): number;
11
+ getHours(): number;
12
+ isGreaterThan(hour: Hour): boolean;
13
+ isLessThan(hour: Hour): boolean;
14
+ }
15
+ //# sourceMappingURL=Hour.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Hour.d.ts","sourceRoot":"","sources":["../../../../src/value-objects/time/Hour.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,IAAK,SAAQ,iBAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,MAAM,CAAC,YAAY;gBAIf,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAiCpC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAkBjC,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM;IAiBlC,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,MAAM;IAIlB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAQlC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;CAOvC"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Hour = void 0;
4
+ const InvalidHourError_1 = require("../../errors/InvalidHourError");
5
+ const InvalidMinutesError_1 = require("../../errors/InvalidMinutesError");
6
+ const Assert_1 = require("../../patterns/Assert");
7
+ const StringValueObject_1 = require("../StringValueObject");
8
+ class Hour extends StringValueObject_1.StringValueObject {
9
+ minutes;
10
+ hours;
11
+ static addTrailZero(value) {
12
+ return Number(value) < 10 ? `0${Number(value)}` : value;
13
+ }
14
+ constructor(value, minutes) {
15
+ let parsedHours;
16
+ let parsedMinutes;
17
+ if (typeof value === 'number' && minutes !== undefined) {
18
+ (0, Assert_1.assert)(Number(value) >= 0 && Number(value) <= 23, new InvalidHourError_1.InvalidHourError());
19
+ (0, Assert_1.assert)(Number(minutes) >= 0 && Number(minutes) <= 59, new InvalidMinutesError_1.InvalidMinutesError());
20
+ parsedHours = Hour.addTrailZero(value.toString());
21
+ parsedMinutes = Hour.addTrailZero(minutes.toString());
22
+ }
23
+ else {
24
+ (0, Assert_1.assert)(typeof value === 'string', new InvalidHourError_1.InvalidHourError());
25
+ (0, Assert_1.assert)(value.includes(':'), new InvalidHourError_1.InvalidHourError());
26
+ const [hours, minutes] = value.split(':');
27
+ (0, Assert_1.assert)(Number(hours) >= 0 && Number(hours) <= 23, new InvalidHourError_1.InvalidHourError());
28
+ (0, Assert_1.assert)(Number(minutes) >= 0 && Number(minutes) <= 59, new InvalidMinutesError_1.InvalidMinutesError());
29
+ parsedHours = Hour.addTrailZero(hours);
30
+ parsedMinutes = Hour.addTrailZero(minutes);
31
+ }
32
+ super(`${parsedHours}:${parsedMinutes}`);
33
+ this.hours = parsedHours;
34
+ this.minutes = parsedMinutes;
35
+ }
36
+ addMinutes(minutes) {
37
+ const totalMinutes = Number(this.minutes) + minutes;
38
+ let newHour = Number(this.hours) + Math.floor(totalMinutes / 60);
39
+ let newMinutes = totalMinutes % 60;
40
+ if (newHour > 23) {
41
+ newHour = newHour - 24;
42
+ }
43
+ else if (newHour < 0) {
44
+ newHour = 24 + newHour;
45
+ }
46
+ if (newMinutes < 0) {
47
+ newMinutes = 60 + newMinutes;
48
+ }
49
+ return new Hour(`${newHour}:${newMinutes}`);
50
+ }
51
+ diffInMinutes(other) {
52
+ let endHour = Number(other.hours);
53
+ if (other.hours < this.hours ||
54
+ (other.hours === this.hours && other.minutes < this.minutes)) {
55
+ endHour += 24;
56
+ }
57
+ const totalMinutes = (endHour - Number(this.hours)) * 60 +
58
+ (Number(other.minutes) - Number(this.minutes));
59
+ return totalMinutes;
60
+ }
61
+ getMinutes() {
62
+ return Number(this.minutes);
63
+ }
64
+ getHours() {
65
+ return Number(this.hours);
66
+ }
67
+ isGreaterThan(hour) {
68
+ if (this.hours === hour.hours) {
69
+ return Number(this.minutes) > Number(hour.minutes);
70
+ }
71
+ return Number(this.hours) > Number(hour.hours);
72
+ }
73
+ isLessThan(hour) {
74
+ if (this.hours === hour.hours) {
75
+ return Number(this.minutes) < Number(hour.minutes);
76
+ }
77
+ return Number(this.hours) < Number(hour.hours);
78
+ }
79
+ }
80
+ exports.Hour = Hour;
81
+ //# sourceMappingURL=Hour.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Hour.js","sourceRoot":"","sources":["../../../../src/value-objects/time/Hour.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Enum } from '../Enum';
2
+ export declare class Month extends Enum<number> {
3
+ static readonly JANUARY: Month;
4
+ static readonly FEBRUARY: Month;
5
+ static readonly MARCH: Month;
6
+ static readonly APRIL: Month;
7
+ static readonly MAY: Month;
8
+ static readonly JUNE: Month;
9
+ static readonly JULY: Month;
10
+ static readonly AUGUST: Month;
11
+ static readonly SEPTEMBER: Month;
12
+ static readonly OCTOBER: Month;
13
+ static readonly NOVEMBER: Month;
14
+ static readonly DECEMBER: Month;
15
+ getValues(): number[];
16
+ getIndex(): number;
17
+ }
18
+ //# sourceMappingURL=Month.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Month.d.ts","sourceRoot":"","sources":["../../../../src/value-objects/time/Month.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAiB/B,qBAAa,KAAM,SAAQ,IAAI,CAAC,MAAM,CAAC;IACrC,gBAAuB,OAAO,QAAgC;IAC9D,gBAAuB,QAAQ,QAAiC;IAChE,gBAAuB,KAAK,QAA8B;IAC1D,gBAAuB,KAAK,QAA8B;IAC1D,gBAAuB,GAAG,QAA4B;IACtD,gBAAuB,IAAI,QAA6B;IACxD,gBAAuB,IAAI,QAA6B;IACxD,gBAAuB,MAAM,QAA+B;IAC5D,gBAAuB,SAAS,QAAkC;IAClE,gBAAuB,OAAO,QAAgC;IAC9D,gBAAuB,QAAQ,QAAiC;IAChE,gBAAuB,QAAQ,QAAiC;IAEzD,SAAS,IAAI,MAAM,EAAE;IAIrB,QAAQ,IAAI,MAAM;CAG1B"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Month = void 0;
4
+ const Enum_1 = require("../Enum");
5
+ var MonthEnum;
6
+ (function (MonthEnum) {
7
+ MonthEnum[MonthEnum["JANUARY"] = 1] = "JANUARY";
8
+ MonthEnum[MonthEnum["FEBRUARY"] = 2] = "FEBRUARY";
9
+ MonthEnum[MonthEnum["MARCH"] = 3] = "MARCH";
10
+ MonthEnum[MonthEnum["APRIL"] = 4] = "APRIL";
11
+ MonthEnum[MonthEnum["MAY"] = 5] = "MAY";
12
+ MonthEnum[MonthEnum["JUNE"] = 6] = "JUNE";
13
+ MonthEnum[MonthEnum["JULY"] = 7] = "JULY";
14
+ MonthEnum[MonthEnum["AUGUST"] = 8] = "AUGUST";
15
+ MonthEnum[MonthEnum["SEPTEMBER"] = 9] = "SEPTEMBER";
16
+ MonthEnum[MonthEnum["OCTOBER"] = 10] = "OCTOBER";
17
+ MonthEnum[MonthEnum["NOVEMBER"] = 11] = "NOVEMBER";
18
+ MonthEnum[MonthEnum["DECEMBER"] = 12] = "DECEMBER";
19
+ })(MonthEnum || (MonthEnum = {}));
20
+ class Month extends Enum_1.Enum {
21
+ static JANUARY = new Month(MonthEnum.JANUARY);
22
+ static FEBRUARY = new Month(MonthEnum.FEBRUARY);
23
+ static MARCH = new Month(MonthEnum.MARCH);
24
+ static APRIL = new Month(MonthEnum.APRIL);
25
+ static MAY = new Month(MonthEnum.MAY);
26
+ static JUNE = new Month(MonthEnum.JUNE);
27
+ static JULY = new Month(MonthEnum.JULY);
28
+ static AUGUST = new Month(MonthEnum.AUGUST);
29
+ static SEPTEMBER = new Month(MonthEnum.SEPTEMBER);
30
+ static OCTOBER = new Month(MonthEnum.OCTOBER);
31
+ static NOVEMBER = new Month(MonthEnum.NOVEMBER);
32
+ static DECEMBER = new Month(MonthEnum.DECEMBER);
33
+ getValues() {
34
+ return Object.values(MonthEnum);
35
+ }
36
+ getIndex() {
37
+ return Number(this.valueOf()) - 1;
38
+ }
39
+ }
40
+ exports.Month = Month;
41
+ //# sourceMappingURL=Month.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Month.js","sourceRoot":"","sources":["../../../../src/value-objects/time/Month.ts"],"names":[],"mappings":";;;AAAA,kCAA+B;AAE/B,IAAK,SAaJ;AAbD,WAAK,SAAS;IACZ,+CAAW,CAAA;IACX,iDAAY,CAAA;IACZ,2CAAS,CAAA;IACT,2CAAS,CAAA;IACT,uCAAO,CAAA;IACP,yCAAQ,CAAA;IACR,yCAAQ,CAAA;IACR,6CAAU,CAAA;IACV,mDAAa,CAAA;IACb,gDAAY,CAAA;IACZ,kDAAa,CAAA;IACb,kDAAa,CAAA;AACf,CAAC,EAbI,SAAS,KAAT,SAAS,QAab;AAED,MAAa,KAAM,SAAQ,WAAY;IAC9B,MAAM,CAAU,OAAO,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,CAAU,QAAQ,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,CAAU,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,CAAU,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,CAAU,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,CAAU,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAU,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAU,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,CAAU,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3D,MAAM,CAAU,OAAO,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,CAAU,QAAQ,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,CAAU,QAAQ,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEzD,SAAS;QACd,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAa,CAAC;IAC9C,CAAC;IAEM,QAAQ;QACb,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;;AApBH,sBAqBC"}
@@ -0,0 +1,17 @@
1
+ import { ValueObject } from '../ValueObject';
2
+ import { Month } from './Month';
3
+ import { Timestamp } from './Timestamp';
4
+ import { TimestampInterval } from './TimestampInterval';
5
+ import { Year } from './Year';
6
+ export declare class MonthOfYear extends ValueObject<string> {
7
+ private readonly month;
8
+ private readonly year;
9
+ static fromTimestamp(timestamp: Timestamp): MonthOfYear;
10
+ static fromString(value: string): MonthOfYear;
11
+ constructor(month: number | Month, year: number | Year);
12
+ getMonth(): Month;
13
+ getYear(): Year;
14
+ getNumberOfDays(): number;
15
+ getTimestampInterval(): TimestampInterval;
16
+ }
17
+ //# sourceMappingURL=MonthOfYear.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonthOfYear.d.ts","sourceRoot":"","sources":["../../../../src/value-objects/time/MonthOfYear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,WAAY,SAAQ,WAAW,CAAC,MAAM,CAAC;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;WAEd,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW;WAIhD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;gBAMxC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAU/C,QAAQ,IAAI,KAAK;IAIjB,OAAO,IAAI,IAAI;IAIf,eAAe,IAAI,MAAM;IAIzB,oBAAoB,IAAI,iBAAiB;CASjD"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MonthOfYear = void 0;
4
+ const ValueObject_1 = require("../ValueObject");
5
+ const Month_1 = require("./Month");
6
+ const Timestamp_1 = require("./Timestamp");
7
+ const TimestampInterval_1 = require("./TimestampInterval");
8
+ const Year_1 = require("./Year");
9
+ class MonthOfYear extends ValueObject_1.ValueObject {
10
+ month;
11
+ year;
12
+ static fromTimestamp(timestamp) {
13
+ return new MonthOfYear(timestamp.getMonth(), timestamp.getYear());
14
+ }
15
+ static fromString(value) {
16
+ const [year, month] = value.split('/').map(Number);
17
+ return new MonthOfYear(month, year);
18
+ }
19
+ constructor(month, year) {
20
+ super(year.valueOf().toString() +
21
+ '/' +
22
+ month.valueOf().toString().padStart(2, '0'));
23
+ this.month = new Month_1.Month(month.valueOf());
24
+ this.year = new Year_1.Year(year.valueOf());
25
+ }
26
+ getMonth() {
27
+ return new Month_1.Month(this.month.valueOf());
28
+ }
29
+ getYear() {
30
+ return new Year_1.Year(this.year);
31
+ }
32
+ getNumberOfDays() {
33
+ return new Date(this.year.valueOf(), this.month.valueOf(), 0).getDate();
34
+ }
35
+ getTimestampInterval() {
36
+ const firstMonthDay = '01';
37
+ const month = this.month.valueOf().toString().padStart(2, '0');
38
+ const lastDay = this.getNumberOfDays().toString();
39
+ const startDate = new Timestamp_1.Timestamp(`${this.year}-${month}-${firstMonthDay}`);
40
+ const endDate = new Timestamp_1.Timestamp(`${this.year}-${month}-${lastDay}`);
41
+ return new TimestampInterval_1.TimestampInterval(startDate, endDate);
42
+ }
43
+ }
44
+ exports.MonthOfYear = MonthOfYear;
45
+ //# sourceMappingURL=MonthOfYear.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonthOfYear.js","sourceRoot":"","sources":["../../../../src/value-objects/time/MonthOfYear.ts"],"names":[],"mappings":";;;AAAA,gDAA6C;AAC7C,mCAAgC;AAChC,2CAAwC;AACxC,2DAAwD;AACxD,iCAA8B;AAE9B,MAAa,WAAY,SAAQ,yBAAmB;IACjC,KAAK,CAAQ;IACb,IAAI,CAAO;IAErB,MAAM,CAAC,aAAa,CAAC,SAAoB;QAC9C,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,KAAa;QACpC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEnD,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,YAAY,KAAqB,EAAE,IAAmB;QACpD,KAAK,CACH,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACvB,GAAG;YACH,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAC9C,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,aAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,WAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1E,CAAC;IAEM,oBAAoB;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,IAAI,qBAAS,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC;QAElE,OAAO,IAAI,qCAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CACF;AA7CD,kCA6CC"}
@@ -0,0 +1,51 @@
1
+ import { NumberValueObject } from '../NumberValueObject';
2
+ import { ValueObject } from '../ValueObject';
3
+ import { CalendarDay } from './CalendarDay';
4
+ import { Day } from './Day';
5
+ import { Duration } from './Duration';
6
+ import { Month } from './Month';
7
+ import { MonthOfYear } from './MonthOfYear';
8
+ import { Year } from './Year';
9
+ type TimestampValue = number | Date | Timestamp | string;
10
+ export declare class Timestamp extends ValueObject<number> {
11
+ private static readonly FACTORS;
12
+ private static valueMilliseconds;
13
+ static new(value: TimestampValue): Timestamp;
14
+ static now(): Timestamp;
15
+ static fromSeconds(seconds: number | NumberValueObject): Timestamp;
16
+ constructor(value?: TimestampValue);
17
+ toExactHour(): Timestamp;
18
+ toMilliseconds(): number;
19
+ toSeconds(): number;
20
+ toDate(): Date;
21
+ toString(): string;
22
+ isEqual(other: Timestamp): boolean;
23
+ isBefore(other: Timestamp): boolean;
24
+ isAfter(other: Timestamp): boolean;
25
+ isBeforeOrEqual(other: Timestamp): boolean;
26
+ isAfterOrEqual(other: Timestamp): boolean;
27
+ addMilliseconds(milliseconds: number | NumberValueObject): Timestamp;
28
+ addSeconds(seconds: number | NumberValueObject): Timestamp;
29
+ addMinutes(minutes: number | NumberValueObject): Timestamp;
30
+ addHours(hours: number | NumberValueObject): Timestamp;
31
+ addDays(days: number | NumberValueObject): Timestamp;
32
+ addWeeks(weeks: number | NumberValueObject): Timestamp;
33
+ addMonths(months: number | NumberValueObject): Timestamp;
34
+ addYears(years: number | NumberValueObject): Timestamp;
35
+ addDuration(duration: Duration): Timestamp;
36
+ isSameDay(other: Timestamp): boolean;
37
+ isSameMonth(other: Timestamp): boolean;
38
+ isSameYear(other: Timestamp): boolean;
39
+ getCalendarDay(): CalendarDay;
40
+ getDay(): Day;
41
+ getMonth(): Month;
42
+ getYear(): Year;
43
+ getHours(): number;
44
+ getMinutes(): number;
45
+ getSeconds(): number;
46
+ getMilliseconds(): number;
47
+ getDayOfWeek(): number;
48
+ getMonthOfYear(): MonthOfYear;
49
+ }
50
+ export {};
51
+ //# sourceMappingURL=Timestamp.d.ts.map