@haskou/value-objects 1.1.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (464) hide show
  1. package/dist/src/errors/BaseError.d.ts +8 -0
  2. package/dist/src/errors/BaseError.d.ts.map +1 -0
  3. package/dist/src/errors/BaseError.js +22 -0
  4. package/dist/src/errors/BaseError.js.map +1 -0
  5. package/dist/src/errors/DomainError.d.ts +7 -0
  6. package/dist/src/errors/DomainError.d.ts.map +1 -0
  7. package/dist/src/errors/DomainError.js +15 -0
  8. package/dist/src/errors/DomainError.js.map +1 -0
  9. package/dist/src/errors/InvalidColorError.d.ts +5 -0
  10. package/dist/src/errors/InvalidColorError.d.ts.map +1 -0
  11. package/dist/src/errors/InvalidColorError.js +11 -0
  12. package/dist/src/errors/InvalidColorError.js.map +1 -0
  13. package/dist/src/errors/InvalidDayError.d.ts +5 -0
  14. package/dist/src/errors/InvalidDayError.d.ts.map +1 -0
  15. package/dist/src/errors/InvalidDayError.js +11 -0
  16. package/dist/src/errors/InvalidDayError.js.map +1 -0
  17. package/dist/src/errors/InvalidDayFormatError.d.ts +5 -0
  18. package/dist/src/errors/InvalidDayFormatError.d.ts.map +1 -0
  19. package/dist/src/errors/InvalidDayFormatError.js +11 -0
  20. package/dist/src/errors/InvalidDayFormatError.js.map +1 -0
  21. package/dist/src/errors/InvalidEmailError.d.ts +5 -0
  22. package/dist/src/errors/InvalidEmailError.d.ts.map +1 -0
  23. package/dist/src/errors/InvalidEmailError.js +11 -0
  24. package/dist/src/errors/InvalidEmailError.js.map +1 -0
  25. package/dist/src/errors/InvalidFormatError.d.ts +5 -0
  26. package/dist/src/errors/InvalidFormatError.d.ts.map +1 -0
  27. package/dist/src/errors/InvalidFormatError.js +11 -0
  28. package/dist/src/errors/InvalidFormatError.js.map +1 -0
  29. package/dist/src/errors/InvalidHashError.d.ts +5 -0
  30. package/dist/src/errors/InvalidHashError.d.ts.map +1 -0
  31. package/dist/src/errors/InvalidHashError.js +11 -0
  32. package/dist/src/errors/InvalidHashError.js.map +1 -0
  33. package/dist/src/errors/InvalidHourError.d.ts +5 -0
  34. package/dist/src/errors/InvalidHourError.d.ts.map +1 -0
  35. package/dist/src/errors/InvalidHourError.js +11 -0
  36. package/dist/src/errors/InvalidHourError.js.map +1 -0
  37. package/dist/src/errors/InvalidIntegerError.d.ts +5 -0
  38. package/dist/src/errors/InvalidIntegerError.d.ts.map +1 -0
  39. package/dist/src/errors/InvalidIntegerError.js +11 -0
  40. package/dist/src/errors/InvalidIntegerError.js.map +1 -0
  41. package/dist/src/errors/InvalidLatitudeError.d.ts +5 -0
  42. package/dist/src/errors/InvalidLatitudeError.d.ts.map +1 -0
  43. package/dist/src/errors/InvalidLatitudeError.js +11 -0
  44. package/dist/src/errors/InvalidLatitudeError.js.map +1 -0
  45. package/dist/src/errors/InvalidLengthError.d.ts +5 -0
  46. package/dist/src/errors/InvalidLengthError.d.ts.map +1 -0
  47. package/dist/src/errors/InvalidLengthError.js +11 -0
  48. package/dist/src/errors/InvalidLengthError.js.map +1 -0
  49. package/dist/src/errors/InvalidLongitudeError.d.ts +5 -0
  50. package/dist/src/errors/InvalidLongitudeError.d.ts.map +1 -0
  51. package/dist/src/errors/InvalidLongitudeError.js +11 -0
  52. package/dist/src/errors/InvalidLongitudeError.js.map +1 -0
  53. package/dist/src/errors/InvalidMinutesError.d.ts +5 -0
  54. package/dist/src/errors/InvalidMinutesError.d.ts.map +1 -0
  55. package/dist/src/errors/InvalidMinutesError.js +11 -0
  56. package/dist/src/errors/InvalidMinutesError.js.map +1 -0
  57. package/dist/src/errors/InvalidNumberError.d.ts +5 -0
  58. package/dist/src/errors/InvalidNumberError.d.ts.map +1 -0
  59. package/dist/src/errors/InvalidNumberError.js +11 -0
  60. package/dist/src/errors/InvalidNumberError.js.map +1 -0
  61. package/dist/src/errors/InvalidPositiveNumberError.d.ts +5 -0
  62. package/dist/src/errors/InvalidPositiveNumberError.d.ts.map +1 -0
  63. package/dist/src/errors/InvalidPositiveNumberError.js +11 -0
  64. package/dist/src/errors/InvalidPositiveNumberError.js.map +1 -0
  65. package/dist/src/errors/InvalidStringLengthError.d.ts +5 -0
  66. package/dist/src/errors/InvalidStringLengthError.d.ts.map +1 -0
  67. package/dist/src/errors/InvalidStringLengthError.js +11 -0
  68. package/dist/src/errors/InvalidStringLengthError.js.map +1 -0
  69. package/dist/src/errors/InvalidTimestampIntervalError.d.ts +6 -0
  70. package/dist/src/errors/InvalidTimestampIntervalError.d.ts.map +1 -0
  71. package/dist/src/errors/InvalidTimestampIntervalError.js +11 -0
  72. package/dist/src/errors/InvalidTimestampIntervalError.js.map +1 -0
  73. package/dist/src/errors/InvalidValueError.d.ts +5 -0
  74. package/dist/src/errors/InvalidValueError.d.ts.map +1 -0
  75. package/dist/src/errors/InvalidValueError.js +11 -0
  76. package/dist/src/errors/InvalidValueError.js.map +1 -0
  77. package/dist/src/errors/NullObjectError.d.ts +5 -0
  78. package/dist/src/errors/NullObjectError.d.ts.map +1 -0
  79. package/dist/src/errors/NullObjectError.js +12 -0
  80. package/dist/src/errors/NullObjectError.js.map +1 -0
  81. package/dist/src/errors/ValueNotInEnumError.d.ts +5 -0
  82. package/dist/src/errors/ValueNotInEnumError.d.ts.map +1 -0
  83. package/dist/src/errors/ValueNotInEnumError.js +11 -0
  84. package/dist/src/errors/ValueNotInEnumError.js.map +1 -0
  85. package/{src/errors/index.ts → dist/src/errors/index.d.ts} +1 -0
  86. package/dist/src/errors/index.d.ts.map +1 -0
  87. package/dist/src/errors/index.js +24 -0
  88. package/dist/src/errors/index.js.map +1 -0
  89. package/{src/index.ts → dist/src/index.d.ts} +1 -0
  90. package/dist/src/index.d.ts.map +1 -0
  91. package/dist/src/index.js +9 -0
  92. package/dist/src/index.js.map +1 -0
  93. package/dist/src/interfaces/PrimitiveOf.d.ts +5 -0
  94. package/dist/src/interfaces/PrimitiveOf.d.ts.map +1 -0
  95. package/dist/src/interfaces/PrimitiveOf.js +3 -0
  96. package/dist/src/interfaces/PrimitiveOf.js.map +1 -0
  97. package/dist/src/interfaces/index.d.ts +2 -0
  98. package/dist/src/interfaces/index.d.ts.map +1 -0
  99. package/dist/src/interfaces/index.js +5 -0
  100. package/dist/src/interfaces/index.js.map +1 -0
  101. package/dist/src/patterns/Assert.d.ts +5 -0
  102. package/dist/src/patterns/Assert.d.ts.map +1 -0
  103. package/dist/src/patterns/Assert.js +11 -0
  104. package/dist/src/patterns/Assert.js.map +1 -0
  105. package/dist/src/patterns/index.d.ts +2 -0
  106. package/dist/src/patterns/index.d.ts.map +1 -0
  107. package/dist/src/patterns/index.js +5 -0
  108. package/dist/src/patterns/index.js.map +1 -0
  109. package/{src/types/Nullish.ts → dist/src/types/Nullish.d.ts} +1 -0
  110. package/dist/src/types/Nullish.d.ts.map +1 -0
  111. package/dist/src/types/Nullish.js +3 -0
  112. package/dist/src/types/Nullish.js.map +1 -0
  113. package/{src/types/Primitive.ts → dist/src/types/Primitive.d.ts} +1 -0
  114. package/dist/src/types/Primitive.d.ts.map +1 -0
  115. package/dist/src/types/Primitive.js +3 -0
  116. package/dist/src/types/Primitive.js.map +1 -0
  117. package/{src/types/index.ts → dist/src/types/index.d.ts} +1 -0
  118. package/dist/src/types/index.d.ts.map +1 -0
  119. package/dist/src/types/index.js +6 -0
  120. package/dist/src/types/index.js.map +1 -0
  121. package/dist/src/value-objects/Color.d.ts +19 -0
  122. package/dist/src/value-objects/Color.d.ts.map +1 -0
  123. package/dist/src/value-objects/Color.js +37 -0
  124. package/dist/src/value-objects/Color.js.map +1 -0
  125. package/dist/src/value-objects/Email.d.ts +6 -0
  126. package/dist/src/value-objects/Email.d.ts.map +1 -0
  127. package/dist/src/value-objects/Email.js +21 -0
  128. package/dist/src/value-objects/Email.js.map +1 -0
  129. package/dist/src/value-objects/Enum.d.ts +9 -0
  130. package/dist/src/value-objects/Enum.d.ts.map +1 -0
  131. package/dist/src/value-objects/Enum.js +24 -0
  132. package/dist/src/value-objects/Enum.js.map +1 -0
  133. package/dist/src/value-objects/Integer.d.ts +6 -0
  134. package/dist/src/value-objects/Integer.d.ts.map +1 -0
  135. package/dist/src/value-objects/Integer.js +21 -0
  136. package/dist/src/value-objects/Integer.js.map +1 -0
  137. package/dist/src/value-objects/NullObject.d.ts +8 -0
  138. package/dist/src/value-objects/NullObject.d.ts.map +1 -0
  139. package/dist/src/value-objects/NullObject.js +43 -0
  140. package/dist/src/value-objects/NullObject.js.map +1 -0
  141. package/dist/src/value-objects/NumberValueObject.d.ts +15 -0
  142. package/dist/src/value-objects/NumberValueObject.d.ts.map +1 -0
  143. package/dist/src/value-objects/NumberValueObject.js +48 -0
  144. package/dist/src/value-objects/NumberValueObject.js.map +1 -0
  145. package/dist/src/value-objects/PositiveNumber.d.ts +6 -0
  146. package/dist/src/value-objects/PositiveNumber.d.ts.map +1 -0
  147. package/dist/src/value-objects/PositiveNumber.js +21 -0
  148. package/dist/src/value-objects/PositiveNumber.js.map +1 -0
  149. package/dist/src/value-objects/StringValueObject.d.ts +7 -0
  150. package/dist/src/value-objects/StringValueObject.d.ts.map +1 -0
  151. package/dist/src/value-objects/StringValueObject.js +24 -0
  152. package/dist/src/value-objects/StringValueObject.js.map +1 -0
  153. package/dist/src/value-objects/ValueObject.d.ts +12 -0
  154. package/dist/src/value-objects/ValueObject.d.ts.map +1 -0
  155. package/dist/src/value-objects/ValueObject.js +33 -0
  156. package/dist/src/value-objects/ValueObject.js.map +1 -0
  157. package/dist/src/value-objects/coordinates/Coordinates.d.ts +12 -0
  158. package/dist/src/value-objects/coordinates/Coordinates.d.ts.map +1 -0
  159. package/dist/src/value-objects/coordinates/Coordinates.js +28 -0
  160. package/dist/src/value-objects/coordinates/Coordinates.js.map +1 -0
  161. package/dist/src/value-objects/coordinates/Latitude.d.ts +8 -0
  162. package/dist/src/value-objects/coordinates/Latitude.d.ts.map +1 -0
  163. package/dist/src/value-objects/coordinates/Latitude.js +21 -0
  164. package/dist/src/value-objects/coordinates/Latitude.js.map +1 -0
  165. package/dist/src/value-objects/coordinates/Longitude.d.ts +8 -0
  166. package/dist/src/value-objects/coordinates/Longitude.d.ts.map +1 -0
  167. package/dist/src/value-objects/coordinates/Longitude.js +21 -0
  168. package/dist/src/value-objects/coordinates/Longitude.js.map +1 -0
  169. package/{src/value-objects/coordinates/index.ts → dist/src/value-objects/coordinates/index.d.ts} +1 -0
  170. package/dist/src/value-objects/coordinates/index.d.ts.map +1 -0
  171. package/dist/src/value-objects/coordinates/index.js +7 -0
  172. package/dist/src/value-objects/coordinates/index.js.map +1 -0
  173. package/dist/src/value-objects/hashes/Hash.d.ts +7 -0
  174. package/dist/src/value-objects/hashes/Hash.d.ts.map +1 -0
  175. package/dist/src/value-objects/hashes/Hash.js +19 -0
  176. package/dist/src/value-objects/hashes/Hash.js.map +1 -0
  177. package/dist/src/value-objects/hashes/MD5Hash.d.ts +8 -0
  178. package/dist/src/value-objects/hashes/MD5Hash.d.ts.map +1 -0
  179. package/dist/src/value-objects/hashes/MD5Hash.js +26 -0
  180. package/dist/src/value-objects/hashes/MD5Hash.js.map +1 -0
  181. package/dist/src/value-objects/hashes/SHA256Hash.d.ts +9 -0
  182. package/dist/src/value-objects/hashes/SHA256Hash.d.ts.map +1 -0
  183. package/dist/src/value-objects/hashes/SHA256Hash.js +29 -0
  184. package/dist/src/value-objects/hashes/SHA256Hash.js.map +1 -0
  185. package/dist/src/value-objects/hashes/SHA512Hash.d.ts +9 -0
  186. package/dist/src/value-objects/hashes/SHA512Hash.d.ts.map +1 -0
  187. package/dist/src/value-objects/hashes/SHA512Hash.js +29 -0
  188. package/dist/src/value-objects/hashes/SHA512Hash.js.map +1 -0
  189. package/{src/value-objects/hashes/index.ts → dist/src/value-objects/hashes/index.d.ts} +1 -0
  190. package/dist/src/value-objects/hashes/index.d.ts.map +1 -0
  191. package/dist/src/value-objects/hashes/index.js +8 -0
  192. package/dist/src/value-objects/hashes/index.js.map +1 -0
  193. package/dist/src/value-objects/ids/ShortId.d.ts +10 -0
  194. package/dist/src/value-objects/ids/ShortId.d.ts.map +1 -0
  195. package/dist/src/value-objects/ids/ShortId.js +30 -0
  196. package/dist/src/value-objects/ids/ShortId.js.map +1 -0
  197. package/dist/src/value-objects/ids/UUID.d.ts +10 -0
  198. package/dist/src/value-objects/ids/UUID.d.ts.map +1 -0
  199. package/dist/src/value-objects/ids/UUID.js +29 -0
  200. package/dist/src/value-objects/ids/UUID.js.map +1 -0
  201. package/{src/value-objects/ids/index.ts → dist/src/value-objects/ids/index.d.ts} +1 -0
  202. package/dist/src/value-objects/ids/index.d.ts.map +1 -0
  203. package/dist/src/value-objects/ids/index.js +6 -0
  204. package/dist/src/value-objects/ids/index.js.map +1 -0
  205. package/{src/value-objects/index.ts → dist/src/value-objects/index.d.ts} +1 -0
  206. package/dist/src/value-objects/index.d.ts.map +1 -0
  207. package/dist/src/value-objects/index.js +16 -0
  208. package/dist/src/value-objects/index.js.map +1 -0
  209. package/dist/src/value-objects/time/CalendarDay.d.ts +25 -0
  210. package/dist/src/value-objects/time/CalendarDay.d.ts.map +1 -0
  211. package/dist/src/value-objects/time/CalendarDay.js +74 -0
  212. package/dist/src/value-objects/time/CalendarDay.js.map +1 -0
  213. package/dist/src/value-objects/time/Day.d.ts +7 -0
  214. package/dist/src/value-objects/time/Day.d.ts.map +1 -0
  215. package/dist/src/value-objects/time/Day.js +18 -0
  216. package/dist/src/value-objects/time/Day.js.map +1 -0
  217. package/dist/src/value-objects/time/DayOfWeek.d.ts +34 -0
  218. package/dist/src/value-objects/time/DayOfWeek.d.ts.map +1 -0
  219. package/dist/src/value-objects/time/DayOfWeek.js +52 -0
  220. package/dist/src/value-objects/time/DayOfWeek.js.map +1 -0
  221. package/dist/src/value-objects/time/Duration.d.ts +23 -0
  222. package/dist/src/value-objects/time/Duration.d.ts.map +1 -0
  223. package/dist/src/value-objects/time/Duration.js +79 -0
  224. package/dist/src/value-objects/time/Duration.js.map +1 -0
  225. package/dist/src/value-objects/time/Hour.d.ts +15 -0
  226. package/dist/src/value-objects/time/Hour.d.ts.map +1 -0
  227. package/dist/src/value-objects/time/Hour.js +81 -0
  228. package/dist/src/value-objects/time/Hour.js.map +1 -0
  229. package/dist/src/value-objects/time/Month.d.ts +18 -0
  230. package/dist/src/value-objects/time/Month.d.ts.map +1 -0
  231. package/dist/src/value-objects/time/Month.js +41 -0
  232. package/dist/src/value-objects/time/Month.js.map +1 -0
  233. package/dist/src/value-objects/time/MonthOfYear.d.ts +17 -0
  234. package/dist/src/value-objects/time/MonthOfYear.d.ts.map +1 -0
  235. package/dist/src/value-objects/time/MonthOfYear.js +45 -0
  236. package/dist/src/value-objects/time/MonthOfYear.js.map +1 -0
  237. package/dist/src/value-objects/time/Timestamp.d.ts +51 -0
  238. package/dist/src/value-objects/time/Timestamp.d.ts.map +1 -0
  239. package/dist/src/value-objects/time/Timestamp.js +156 -0
  240. package/dist/src/value-objects/time/Timestamp.js.map +1 -0
  241. package/dist/src/value-objects/time/TimestampInterval.d.ts +26 -0
  242. package/dist/src/value-objects/time/TimestampInterval.d.ts.map +1 -0
  243. package/dist/src/value-objects/time/TimestampInterval.js +88 -0
  244. package/dist/src/value-objects/time/TimestampInterval.js.map +1 -0
  245. package/dist/src/value-objects/time/Year.d.ts +10 -0
  246. package/dist/src/value-objects/time/Year.d.ts.map +1 -0
  247. package/dist/src/value-objects/time/Year.js +26 -0
  248. package/dist/src/value-objects/time/Year.js.map +1 -0
  249. package/{src/value-objects/time/index.ts → dist/src/value-objects/time/index.d.ts} +1 -0
  250. package/dist/src/value-objects/time/index.d.ts.map +1 -0
  251. package/dist/src/value-objects/time/index.js +14 -0
  252. package/dist/src/value-objects/time/index.js.map +1 -0
  253. package/dist/tests/errors/BaseError.spec.d.ts +2 -0
  254. package/dist/tests/errors/BaseError.spec.d.ts.map +1 -0
  255. package/dist/tests/errors/BaseError.spec.js +54 -0
  256. package/dist/tests/errors/BaseError.spec.js.map +1 -0
  257. package/dist/tests/errors/DomainError.spec.d.ts +2 -0
  258. package/dist/tests/errors/DomainError.spec.d.ts.map +1 -0
  259. package/dist/tests/errors/DomainError.spec.js +47 -0
  260. package/dist/tests/errors/DomainError.spec.js.map +1 -0
  261. package/dist/tests/patterns/Assert.spec.d.ts +2 -0
  262. package/dist/tests/patterns/Assert.spec.d.ts.map +1 -0
  263. package/dist/tests/patterns/Assert.spec.js +27 -0
  264. package/dist/tests/patterns/Assert.spec.js.map +1 -0
  265. package/dist/tests/setup.jest.d.ts +2 -0
  266. package/dist/tests/setup.jest.d.ts.map +1 -0
  267. package/dist/tests/setup.jest.js +6 -0
  268. package/dist/tests/setup.jest.js.map +1 -0
  269. package/dist/tests/value-objects/Color.spec.d.ts +2 -0
  270. package/dist/tests/value-objects/Color.spec.d.ts.map +1 -0
  271. package/dist/tests/value-objects/Color.spec.js +171 -0
  272. package/dist/tests/value-objects/Color.spec.js.map +1 -0
  273. package/dist/tests/value-objects/Email.spec.d.ts +2 -0
  274. package/dist/tests/value-objects/Email.spec.d.ts.map +1 -0
  275. package/dist/tests/value-objects/Email.spec.js +117 -0
  276. package/dist/tests/value-objects/Email.spec.js.map +1 -0
  277. package/dist/tests/value-objects/Enum.spec.d.ts +2 -0
  278. package/dist/tests/value-objects/Enum.spec.d.ts.map +1 -0
  279. package/dist/tests/value-objects/Enum.spec.js +233 -0
  280. package/dist/tests/value-objects/Enum.spec.js.map +1 -0
  281. package/dist/tests/value-objects/Integer.spec.d.ts +2 -0
  282. package/dist/tests/value-objects/Integer.spec.d.ts.map +1 -0
  283. package/dist/tests/value-objects/Integer.spec.js +31 -0
  284. package/dist/tests/value-objects/Integer.spec.js.map +1 -0
  285. package/dist/tests/value-objects/NullObject.spec.d.ts +2 -0
  286. package/dist/tests/value-objects/NullObject.spec.d.ts.map +1 -0
  287. package/dist/tests/value-objects/NullObject.spec.js +48 -0
  288. package/dist/tests/value-objects/NullObject.spec.js.map +1 -0
  289. package/dist/tests/value-objects/NumberValueObject.spec.d.ts +2 -0
  290. package/dist/tests/value-objects/NumberValueObject.spec.d.ts.map +1 -0
  291. package/dist/tests/value-objects/NumberValueObject.spec.js +333 -0
  292. package/dist/tests/value-objects/NumberValueObject.spec.js.map +1 -0
  293. package/dist/tests/value-objects/PositiveNumber.spec.d.ts +2 -0
  294. package/dist/tests/value-objects/PositiveNumber.spec.d.ts.map +1 -0
  295. package/dist/tests/value-objects/PositiveNumber.spec.js +209 -0
  296. package/dist/tests/value-objects/PositiveNumber.spec.js.map +1 -0
  297. package/dist/tests/value-objects/StringValueObject.spec.d.ts +2 -0
  298. package/dist/tests/value-objects/StringValueObject.spec.d.ts.map +1 -0
  299. package/dist/tests/value-objects/StringValueObject.spec.js +104 -0
  300. package/dist/tests/value-objects/StringValueObject.spec.js.map +1 -0
  301. package/dist/tests/value-objects/coordinates/Coordinates.spec.d.ts +2 -0
  302. package/dist/tests/value-objects/coordinates/Coordinates.spec.d.ts.map +1 -0
  303. package/dist/tests/value-objects/coordinates/Coordinates.spec.js +76 -0
  304. package/dist/tests/value-objects/coordinates/Coordinates.spec.js.map +1 -0
  305. package/dist/tests/value-objects/coordinates/Latitude.spec.d.ts +2 -0
  306. package/dist/tests/value-objects/coordinates/Latitude.spec.d.ts.map +1 -0
  307. package/dist/tests/value-objects/coordinates/Latitude.spec.js +23 -0
  308. package/dist/tests/value-objects/coordinates/Latitude.spec.js.map +1 -0
  309. package/dist/tests/value-objects/coordinates/Longitude.spec.d.ts +2 -0
  310. package/dist/tests/value-objects/coordinates/Longitude.spec.d.ts.map +1 -0
  311. package/dist/tests/value-objects/coordinates/Longitude.spec.js +23 -0
  312. package/dist/tests/value-objects/coordinates/Longitude.spec.js.map +1 -0
  313. package/dist/tests/value-objects/hashes/Hashes.spec.d.ts +2 -0
  314. package/dist/tests/value-objects/hashes/Hashes.spec.d.ts.map +1 -0
  315. package/dist/tests/value-objects/hashes/Hashes.spec.js +107 -0
  316. package/dist/tests/value-objects/hashes/Hashes.spec.js.map +1 -0
  317. package/dist/tests/value-objects/hashes/MD5Hash.spec.d.ts +2 -0
  318. package/dist/tests/value-objects/hashes/MD5Hash.spec.d.ts.map +1 -0
  319. package/dist/tests/value-objects/hashes/MD5Hash.spec.js +147 -0
  320. package/dist/tests/value-objects/hashes/MD5Hash.spec.js.map +1 -0
  321. package/dist/tests/value-objects/hashes/SHA256Hash.spec.d.ts +2 -0
  322. package/dist/tests/value-objects/hashes/SHA256Hash.spec.d.ts.map +1 -0
  323. package/dist/tests/value-objects/hashes/SHA256Hash.spec.js +147 -0
  324. package/dist/tests/value-objects/hashes/SHA256Hash.spec.js.map +1 -0
  325. package/dist/tests/value-objects/hashes/SHA512Hash.spec.d.ts +2 -0
  326. package/dist/tests/value-objects/hashes/SHA512Hash.spec.d.ts.map +1 -0
  327. package/dist/tests/value-objects/hashes/SHA512Hash.spec.js +147 -0
  328. package/dist/tests/value-objects/hashes/SHA512Hash.spec.js.map +1 -0
  329. package/dist/tests/value-objects/ids/ShortId.spec.d.ts +2 -0
  330. package/dist/tests/value-objects/ids/ShortId.spec.d.ts.map +1 -0
  331. package/dist/tests/value-objects/ids/ShortId.spec.js +30 -0
  332. package/dist/tests/value-objects/ids/ShortId.spec.js.map +1 -0
  333. package/dist/tests/value-objects/ids/UUID.spec.d.ts +2 -0
  334. package/dist/tests/value-objects/ids/UUID.spec.d.ts.map +1 -0
  335. package/dist/tests/value-objects/ids/UUID.spec.js +30 -0
  336. package/dist/tests/value-objects/ids/UUID.spec.js.map +1 -0
  337. package/dist/tests/value-objects/time/CalendarDay.spec.d.ts +2 -0
  338. package/dist/tests/value-objects/time/CalendarDay.spec.d.ts.map +1 -0
  339. package/dist/tests/value-objects/time/CalendarDay.spec.js +149 -0
  340. package/dist/tests/value-objects/time/CalendarDay.spec.js.map +1 -0
  341. package/dist/tests/value-objects/time/Day.spec.d.ts +2 -0
  342. package/dist/tests/value-objects/time/Day.spec.d.ts.map +1 -0
  343. package/dist/tests/value-objects/time/Day.spec.js +28 -0
  344. package/dist/tests/value-objects/time/Day.spec.js.map +1 -0
  345. package/dist/tests/value-objects/time/DayOfWeek.spec.d.ts +2 -0
  346. package/dist/tests/value-objects/time/DayOfWeek.spec.d.ts.map +1 -0
  347. package/dist/tests/value-objects/time/DayOfWeek.spec.js +44 -0
  348. package/dist/tests/value-objects/time/DayOfWeek.spec.js.map +1 -0
  349. package/dist/tests/value-objects/time/Duration.spec.d.ts +2 -0
  350. package/dist/tests/value-objects/time/Duration.spec.d.ts.map +1 -0
  351. package/dist/tests/value-objects/time/Duration.spec.js +255 -0
  352. package/dist/tests/value-objects/time/Duration.spec.js.map +1 -0
  353. package/dist/tests/value-objects/time/Hour.spec.d.ts +2 -0
  354. package/dist/tests/value-objects/time/Hour.spec.d.ts.map +1 -0
  355. package/dist/tests/value-objects/time/Hour.spec.js +168 -0
  356. package/dist/tests/value-objects/time/Hour.spec.js.map +1 -0
  357. package/dist/tests/value-objects/time/MonthOfYear.spec.d.ts +2 -0
  358. package/dist/tests/value-objects/time/MonthOfYear.spec.d.ts.map +1 -0
  359. package/dist/tests/value-objects/time/MonthOfYear.spec.js +93 -0
  360. package/dist/tests/value-objects/time/MonthOfYear.spec.js.map +1 -0
  361. package/dist/tests/value-objects/time/Timestamp.spec.d.ts +2 -0
  362. package/dist/tests/value-objects/time/Timestamp.spec.d.ts.map +1 -0
  363. package/dist/tests/value-objects/time/Timestamp.spec.js +391 -0
  364. package/dist/tests/value-objects/time/Timestamp.spec.js.map +1 -0
  365. package/dist/tests/value-objects/time/TimestampInterval.spec.d.ts +2 -0
  366. package/dist/tests/value-objects/time/TimestampInterval.spec.d.ts.map +1 -0
  367. package/dist/tests/value-objects/time/TimestampInterval.spec.js +270 -0
  368. package/dist/tests/value-objects/time/TimestampInterval.spec.js.map +1 -0
  369. package/dist/tests/value-objects/time/Year.spec.d.ts +2 -0
  370. package/dist/tests/value-objects/time/Year.spec.d.ts.map +1 -0
  371. package/dist/tests/value-objects/time/Year.spec.js +41 -0
  372. package/dist/tests/value-objects/time/Year.spec.js.map +1 -0
  373. package/package.json +6 -2
  374. package/.editorconfig +0 -15
  375. package/.eslintignore +0 -3
  376. package/.eslintrc.json +0 -218
  377. package/.prettierrc.json +0 -13
  378. package/TECHNICAL_DOCUMENTATION.md +0 -1257
  379. package/jest.config.ts +0 -30
  380. package/src/errors/BaseError.ts +0 -20
  381. package/src/errors/DomainError.ts +0 -12
  382. package/src/errors/InvalidColorError.ts +0 -7
  383. package/src/errors/InvalidDayError.ts +0 -7
  384. package/src/errors/InvalidDayFormatError.ts +0 -7
  385. package/src/errors/InvalidEmailError.ts +0 -7
  386. package/src/errors/InvalidFormatError.ts +0 -7
  387. package/src/errors/InvalidHashError.ts +0 -7
  388. package/src/errors/InvalidHourError.ts +0 -7
  389. package/src/errors/InvalidIntegerError.ts +0 -7
  390. package/src/errors/InvalidLatitudeError.ts +0 -7
  391. package/src/errors/InvalidLengthError.ts +0 -9
  392. package/src/errors/InvalidLongitudeError.ts +0 -7
  393. package/src/errors/InvalidMinutesError.ts +0 -7
  394. package/src/errors/InvalidNumberError.ts +0 -7
  395. package/src/errors/InvalidPositiveNumberError.ts +0 -7
  396. package/src/errors/InvalidStringLengthError.ts +0 -9
  397. package/src/errors/InvalidTimestampIntervalError.ts +0 -10
  398. package/src/errors/InvalidValueError.ts +0 -7
  399. package/src/errors/NullObjectError.ts +0 -8
  400. package/src/errors/ValueNotInEnumError.ts +0 -9
  401. package/src/interfaces/PrimitiveOf.ts +0 -5
  402. package/src/interfaces/index.ts +0 -1
  403. package/src/patterns/Assert.ts +0 -15
  404. package/src/patterns/index.ts +0 -1
  405. package/src/value-objects/Color.ts +0 -39
  406. package/src/value-objects/Email.ts +0 -23
  407. package/src/value-objects/Enum.ts +0 -31
  408. package/src/value-objects/Integer.ts +0 -22
  409. package/src/value-objects/NullObject.ts +0 -60
  410. package/src/value-objects/NumberValueObject.ts +0 -56
  411. package/src/value-objects/PositiveNumber.ts +0 -20
  412. package/src/value-objects/StringValueObject.ts +0 -27
  413. package/src/value-objects/ValueObject.ts +0 -39
  414. package/src/value-objects/coordinates/Coordinates.ts +0 -30
  415. package/src/value-objects/coordinates/Latitude.ts +0 -22
  416. package/src/value-objects/coordinates/Longitude.ts +0 -25
  417. package/src/value-objects/hashes/Hash.ts +0 -19
  418. package/src/value-objects/hashes/MD5Hash.ts +0 -32
  419. package/src/value-objects/hashes/SHA256Hash.ts +0 -38
  420. package/src/value-objects/hashes/SHA512Hash.ts +0 -38
  421. package/src/value-objects/ids/ShortId.ts +0 -34
  422. package/src/value-objects/ids/UUID.ts +0 -34
  423. package/src/value-objects/time/CalendarDay.ts +0 -91
  424. package/src/value-objects/time/Day.ts +0 -17
  425. package/src/value-objects/time/DayOfWeek.ts +0 -60
  426. package/src/value-objects/time/Duration.ts +0 -142
  427. package/src/value-objects/time/Hour.ts +0 -105
  428. package/src/value-objects/time/Month.ts +0 -39
  429. package/src/value-objects/time/MonthOfYear.ts +0 -52
  430. package/src/value-objects/time/Timestamp.ts +0 -208
  431. package/src/value-objects/time/TimestampInterval.ts +0 -122
  432. package/src/value-objects/time/Year.ts +0 -27
  433. package/tests/errors/BaseError.spec.ts +0 -63
  434. package/tests/errors/DomainError.spec.ts +0 -52
  435. package/tests/patterns/Assert.spec.ts +0 -29
  436. package/tests/setup.jest.ts +0 -2
  437. package/tests/value-objects/Color.spec.ts +0 -214
  438. package/tests/value-objects/Email.spec.ts +0 -141
  439. package/tests/value-objects/Enum.spec.ts +0 -293
  440. package/tests/value-objects/Integer.spec.ts +0 -38
  441. package/tests/value-objects/NullObject.spec.ts +0 -55
  442. package/tests/value-objects/NumberValueObject.spec.ts +0 -446
  443. package/tests/value-objects/PositiveNumber.spec.ts +0 -274
  444. package/tests/value-objects/StringValueObject.spec.ts +0 -135
  445. package/tests/value-objects/coordinates/Coordinates.spec.ts +0 -90
  446. package/tests/value-objects/coordinates/Latitude.spec.ts +0 -24
  447. package/tests/value-objects/coordinates/Longitude.spec.ts +0 -24
  448. package/tests/value-objects/hashes/Hashes.spec.ts +0 -139
  449. package/tests/value-objects/hashes/MD5Hash.spec.ts +0 -187
  450. package/tests/value-objects/hashes/SHA256Hash.spec.ts +0 -220
  451. package/tests/value-objects/hashes/SHA512Hash.spec.ts +0 -220
  452. package/tests/value-objects/ids/ShortId.spec.ts +0 -34
  453. package/tests/value-objects/ids/UUID.spec.ts +0 -37
  454. package/tests/value-objects/time/CalendarDay.spec.ts +0 -182
  455. package/tests/value-objects/time/Day.spec.ts +0 -29
  456. package/tests/value-objects/time/DayOfWeek.spec.ts +0 -71
  457. package/tests/value-objects/time/Duration.spec.ts +0 -278
  458. package/tests/value-objects/time/Hour.spec.ts +0 -197
  459. package/tests/value-objects/time/MonthOfYear.spec.ts +0 -111
  460. package/tests/value-objects/time/Timestamp.spec.ts +0 -497
  461. package/tests/value-objects/time/TimestampInterval.spec.ts +0 -383
  462. package/tests/value-objects/time/Year.spec.ts +0 -48
  463. package/tsconfig.jest.json +0 -33
  464. package/tsconfig.json +0 -42
@@ -1,52 +0,0 @@
1
- import { ValueObject } from '../ValueObject';
2
- import { Month } from './Month';
3
- import { Timestamp } from './Timestamp';
4
- import { TimestampInterval } from './TimestampInterval';
5
- import { Year } from './Year';
6
-
7
- export class MonthOfYear extends ValueObject<string> {
8
- private readonly month: Month;
9
- private readonly year: Year;
10
-
11
- public static fromTimestamp(timestamp: Timestamp): MonthOfYear {
12
- return new MonthOfYear(timestamp.getMonth(), timestamp.getYear());
13
- }
14
-
15
- public static fromString(value: string): MonthOfYear {
16
- const [year, month] = value.split('/').map(Number);
17
-
18
- return new MonthOfYear(month, year);
19
- }
20
-
21
- constructor(month: number | Month, year: number | Year) {
22
- super(
23
- year.valueOf().toString() +
24
- '/' +
25
- month.valueOf().toString().padStart(2, '0'),
26
- );
27
- this.month = new Month(month.valueOf());
28
- this.year = new Year(year.valueOf());
29
- }
30
-
31
- public getMonth(): Month {
32
- return new Month(this.month.valueOf());
33
- }
34
-
35
- public getYear(): Year {
36
- return new Year(this.year);
37
- }
38
-
39
- public getNumberOfDays(): number {
40
- return new Date(this.year.valueOf(), this.month.valueOf(), 0).getDate();
41
- }
42
-
43
- public getTimestampInterval(): TimestampInterval {
44
- const firstMonthDay = '01';
45
- const month = this.month.valueOf().toString().padStart(2, '0');
46
- const lastDay = this.getNumberOfDays().toString();
47
- const startDate = new Timestamp(`${this.year}-${month}-${firstMonthDay}`);
48
- const endDate = new Timestamp(`${this.year}-${month}-${lastDay}`);
49
-
50
- return new TimestampInterval(startDate, endDate);
51
- }
52
- }
@@ -1,208 +0,0 @@
1
- import { NumberValueObject } from '../NumberValueObject';
2
- import { ValueObject } from '../ValueObject';
3
- import { CalendarDay } from './CalendarDay';
4
- import { Day } from './Day';
5
- import { Duration } from './Duration';
6
- import { Month } from './Month';
7
- import { MonthOfYear } from './MonthOfYear';
8
- import { Year } from './Year';
9
-
10
- type TimestampValue = number | Date | Timestamp | string;
11
-
12
- export class Timestamp extends ValueObject<number> {
13
- private static readonly FACTORS = {
14
- DAYS: 24 * 60 * 60 * 1000,
15
- HOURS: 60 * 60 * 1000,
16
- MINUTES: 60 * 1000,
17
- MONTHS: 30 * 24 * 60 * 60 * 1000,
18
- SECONDS: 1000,
19
- WEEKS: 7 * 24 * 60 * 60 * 1000,
20
- YEARS: 365 * 24 * 60 * 60 * 1000,
21
- };
22
-
23
- private static valueMilliseconds(value?: TimestampValue): number {
24
- if (value instanceof Timestamp || value instanceof Date) {
25
- return value.valueOf();
26
- }
27
-
28
- if (typeof value === 'number') {
29
- return value;
30
- }
31
-
32
- if (typeof value === 'string') {
33
- return new Date(value).valueOf();
34
- }
35
-
36
- return Date.now().valueOf();
37
- }
38
-
39
- public static new(value: TimestampValue): Timestamp {
40
- return new Timestamp(value);
41
- }
42
-
43
- public static now(): Timestamp {
44
- return new Timestamp();
45
- }
46
-
47
- public static fromSeconds(seconds: number | NumberValueObject): Timestamp {
48
- return new Timestamp(seconds.valueOf() * Timestamp.FACTORS.SECONDS);
49
- }
50
-
51
- public constructor(value?: TimestampValue) {
52
- super(Timestamp.valueMilliseconds(value));
53
- }
54
-
55
- public toExactHour(): Timestamp {
56
- const date = new Date(this.valueOf());
57
-
58
- date.setSeconds(0);
59
- date.setMinutes(0);
60
- date.setMilliseconds(0);
61
-
62
- const value = Timestamp.new(date.getTime()).value;
63
-
64
- return this.clone(value);
65
- }
66
-
67
- public toMilliseconds(): number {
68
- return this.value;
69
- }
70
-
71
- public toSeconds(): number {
72
- return Math.round(this.value / Timestamp.FACTORS.SECONDS);
73
- }
74
-
75
- public toDate(): Date {
76
- return new Date(this.value);
77
- }
78
-
79
- public toString(): string {
80
- return `${this.valueOf()}`;
81
- }
82
-
83
- public isEqual(other: Timestamp): boolean {
84
- return this.value === other.valueOf();
85
- }
86
-
87
- public isBefore(other: Timestamp): boolean {
88
- return this.value < other.valueOf();
89
- }
90
-
91
- public isAfter(other: Timestamp): boolean {
92
- return this.value > other.valueOf();
93
- }
94
-
95
- public isBeforeOrEqual(other: Timestamp): boolean {
96
- return this.value <= other.valueOf();
97
- }
98
-
99
- public isAfterOrEqual(other: Timestamp): boolean {
100
- return this.value >= other.valueOf();
101
- }
102
-
103
- public addMilliseconds(milliseconds: number | NumberValueObject): Timestamp {
104
- const value = this.value + milliseconds.valueOf();
105
-
106
- return this.clone(value);
107
- }
108
-
109
- public addSeconds(seconds: number | NumberValueObject): Timestamp {
110
- const value = this.value + seconds.valueOf() * Timestamp.FACTORS.SECONDS;
111
-
112
- return this.clone(value);
113
- }
114
-
115
- public addMinutes(minutes: number | NumberValueObject): Timestamp {
116
- const value = this.value + minutes.valueOf() * Timestamp.FACTORS.MINUTES;
117
-
118
- return this.clone(value);
119
- }
120
-
121
- public addHours(hours: number | NumberValueObject): Timestamp {
122
- const value = this.value + hours.valueOf() * Timestamp.FACTORS.HOURS;
123
-
124
- return this.clone(value);
125
- }
126
-
127
- public addDays(days: number | NumberValueObject): Timestamp {
128
- const value = this.value + days.valueOf() * Timestamp.FACTORS.DAYS;
129
-
130
- return this.clone(value);
131
- }
132
-
133
- public addWeeks(weeks: number | NumberValueObject): Timestamp {
134
- const value = this.value + weeks.valueOf() * Timestamp.FACTORS.WEEKS;
135
-
136
- return this.clone(value);
137
- }
138
-
139
- public addMonths(months: number | NumberValueObject): Timestamp {
140
- const value = this.value + months.valueOf() * Timestamp.FACTORS.MONTHS;
141
-
142
- return this.clone(value);
143
- }
144
-
145
- public addYears(years: number | NumberValueObject): Timestamp {
146
- const value = this.value + years.valueOf() * Timestamp.FACTORS.YEARS;
147
-
148
- return this.clone(value);
149
- }
150
-
151
- public addDuration(duration: Duration): Timestamp {
152
- const value = this.value + duration.valueOf();
153
-
154
- return this.clone(value);
155
- }
156
-
157
- public isSameDay(other: Timestamp): boolean {
158
- return this.getCalendarDay().isEqual(other.getCalendarDay());
159
- }
160
-
161
- public isSameMonth(other: Timestamp): boolean {
162
- return this.getMonthOfYear().isEqual(other.getMonthOfYear());
163
- }
164
-
165
- public isSameYear(other: Timestamp): boolean {
166
- return this.getYear().isEqual(other.getYear());
167
- }
168
-
169
- public getCalendarDay(): CalendarDay {
170
- return new CalendarDay(this);
171
- }
172
-
173
- public getDay(): Day {
174
- return new Day(this.toDate().getUTCDate());
175
- }
176
-
177
- public getMonth(): Month {
178
- return new Month(this.toDate().getUTCMonth() + 1);
179
- }
180
-
181
- public getYear(): Year {
182
- return new Year(this.toDate().getUTCFullYear());
183
- }
184
-
185
- public getHours(): number {
186
- return this.toDate().getUTCHours();
187
- }
188
-
189
- public getMinutes(): number {
190
- return this.toDate().getUTCMinutes();
191
- }
192
-
193
- public getSeconds(): number {
194
- return this.toDate().getUTCSeconds();
195
- }
196
-
197
- public getMilliseconds(): number {
198
- return this.toDate().getUTCMilliseconds();
199
- }
200
-
201
- public getDayOfWeek(): number {
202
- return this.toDate().getUTCDay();
203
- }
204
-
205
- public getMonthOfYear(): MonthOfYear {
206
- return new MonthOfYear(this.getMonth(), this.getYear());
207
- }
208
- }
@@ -1,122 +0,0 @@
1
- import { InvalidTimestampIntervalError } from '../../errors/InvalidTimestampIntervalError';
2
- import { PrimitiveOf } from '../../interfaces/PrimitiveOf';
3
- import { assert } from '../../patterns/Assert';
4
- import { PositiveNumber } from '../PositiveNumber';
5
- import { ValueObject } from '../ValueObject';
6
- import { CalendarDay } from './CalendarDay';
7
- import { DayOfWeek } from './DayOfWeek';
8
- import { Duration } from './Duration';
9
- import { Timestamp } from './Timestamp';
10
-
11
- export class TimestampInterval extends ValueObject<string> {
12
- public static fromPrimitives(
13
- primitives: PrimitiveOf<TimestampInterval>,
14
- ): TimestampInterval {
15
- return new TimestampInterval(
16
- new Timestamp(primitives.start),
17
- new Timestamp(primitives.end),
18
- );
19
- }
20
-
21
- constructor(
22
- private start: Timestamp,
23
- private end: Timestamp,
24
- ) {
25
- super(`${start.valueOf()}-${end.valueOf()}`);
26
-
27
- assert(
28
- start.isBeforeOrEqual(end),
29
- new InvalidTimestampIntervalError(start, end),
30
- );
31
- }
32
-
33
- public toPrimitives() {
34
- return {
35
- end: this.end.valueOf(),
36
- start: this.start.valueOf(),
37
- };
38
- }
39
-
40
- public getStart(): Timestamp {
41
- return this.start;
42
- }
43
-
44
- public getEnd(): Timestamp {
45
- return this.end;
46
- }
47
-
48
- public getDuration(): Duration {
49
- return new Duration(
50
- new PositiveNumber(this.end.valueOf() - this.start.valueOf()),
51
- );
52
- }
53
-
54
- public getTotalDaysOfWeek(dayOfWeek: DayOfWeek): number {
55
- const oneDayInMilliseconds = 24 * 60 * 60 * 1000;
56
- const daysToCheck: number = Math.trunc(
57
- this.getDuration().valueOf() / oneDayInMilliseconds,
58
- );
59
-
60
- let count = 0;
61
-
62
- for (let daysChecked = 0; daysChecked <= daysToCheck; daysChecked++) {
63
- const iteratorDay = new Timestamp(this.start).addDays(daysChecked);
64
-
65
- if (iteratorDay.getDayOfWeek() === dayOfWeek.toNumber()) {
66
- count++;
67
- }
68
- }
69
-
70
- return count;
71
- }
72
-
73
- public modifyStart(start: Timestamp): void {
74
- const end = this.end;
75
- assert(start.isBefore(end), new InvalidTimestampIntervalError(start, end));
76
- this.start = start;
77
- }
78
-
79
- public modifyEnd(end: Timestamp): void {
80
- const start = this.start;
81
- assert(start.isBefore(end), new InvalidTimestampIntervalError(start, end));
82
- this.end = end;
83
- }
84
-
85
- public getDaysBetweenInterval(): CalendarDay[] {
86
- const days: CalendarDay[] = [];
87
-
88
- let iteratorTimestamp = new Timestamp(this.getStart());
89
- const endTimestamp = new Timestamp(this.getEnd());
90
-
91
- while (iteratorTimestamp.isBeforeOrEqual(endTimestamp)) {
92
- days.push(new CalendarDay(iteratorTimestamp));
93
- iteratorTimestamp = iteratorTimestamp.addDays(1);
94
- }
95
-
96
- return days;
97
- }
98
-
99
- public getOverlappingInterval(
100
- searchInterval: TimestampInterval,
101
- ): TimestampInterval | null {
102
- const start = this.start.isAfter(searchInterval.getStart())
103
- ? this.start
104
- : searchInterval.getStart();
105
- const end = this.end.isBefore(searchInterval.getEnd())
106
- ? this.end
107
- : searchInterval.getEnd();
108
-
109
- if (start.isAfterOrEqual(end)) {
110
- return null;
111
- }
112
-
113
- return new TimestampInterval(start, end);
114
- }
115
-
116
- public includes(timestamp: Timestamp): boolean {
117
- return (
118
- timestamp.isAfterOrEqual(this.start) &&
119
- timestamp.isBeforeOrEqual(this.end)
120
- );
121
- }
122
- }
@@ -1,27 +0,0 @@
1
- import { Integer } from '../Integer';
2
- import { NullObject } from '../NullObject';
3
- import { NumberValueObject } from '../NumberValueObject';
4
-
5
- export class Year extends Integer {
6
- private static readonly YEAR_DAYS = 365;
7
- private static readonly LEAP_YEAR_DAYS = 366;
8
-
9
- constructor(value: number | NumberValueObject) {
10
- super(value?.valueOf());
11
-
12
- if (NullObject.isNullObject(this)) {
13
- return this;
14
- }
15
- }
16
-
17
- public isLeapYear(): boolean {
18
- return this.getNumberOfDays() === Year.LEAP_YEAR_DAYS;
19
- }
20
-
21
- public getNumberOfDays(): number {
22
- return (this.value % 4 === 0 && this.value % 100 !== 0) ||
23
- this.value % 400 === 0
24
- ? Year.LEAP_YEAR_DAYS
25
- : Year.YEAR_DAYS;
26
- }
27
- }
@@ -1,63 +0,0 @@
1
- import { BaseError } from '../../src/errors/BaseError';
2
-
3
- describe('BaseError', () => {
4
- describe('constructor', () => {
5
- it('should be valid instance', () => {
6
- const error = new BaseError('this is an error');
7
- expect(error).toBeInstanceOf(BaseError);
8
- });
9
-
10
- it('should be valid when value is a string', () => {
11
- expect(new BaseError('this is an error').toString()).toInclude(
12
- 'this is an error',
13
- );
14
- });
15
- });
16
-
17
- describe('isBaseError', () => {
18
- class TestBaseError extends BaseError {
19
- constructor() {
20
- super('test error');
21
- }
22
- }
23
-
24
- it('should be true when error is a BaseError', () => {
25
- const error = new BaseError('this is an error');
26
- expect(BaseError.isBaseError(error)).toBeTrue();
27
- });
28
-
29
- it('should be false when error is not a BaseError', () => {
30
- const error = new Error('this is an error');
31
- expect(BaseError.isBaseError(error)).toBeFalse();
32
- });
33
-
34
- it('should be false when error param is not an error', () => {
35
- expect(BaseError.isBaseError('')).toBeFalse();
36
- });
37
-
38
- it('should be true when error is a TestBaseError', () => {
39
- const error = new TestBaseError();
40
- expect(BaseError.isBaseError(error)).toBeTrue();
41
- });
42
- });
43
-
44
- describe('toString', () => {
45
- it('should return the error message', () => {
46
- const error = new BaseError('this is an error');
47
- expect(error.toString()).toInclude('this is an error');
48
- });
49
- });
50
-
51
- describe('getStack', () => {
52
- it('should return the error stack', () => {
53
- const error = new BaseError('this is an error');
54
- expect(error.getStack()).toInclude('this is an error');
55
- });
56
-
57
- it('should return empty stack', () => {
58
- const error = new BaseError('this is an error');
59
- delete error.stack;
60
- expect(error.getStack()).toBeEmpty();
61
- });
62
- });
63
- });
@@ -1,52 +0,0 @@
1
- /* eslint-disable no-unused-expressions */
2
- import { DomainError } from '../../src/errors/DomainError';
3
-
4
- describe('DomainError', () => {
5
- describe('constructor', () => {
6
- it('should be valid instance', () => {
7
- const error = new DomainError('this is an error');
8
- expect(error).toBeInstanceOf(DomainError);
9
- });
10
- });
11
-
12
- describe('isDomainError', () => {
13
- class TestDomainError extends DomainError {
14
- constructor() {
15
- super('test error');
16
- }
17
- }
18
-
19
- it('should be true when error is a DomainError', () => {
20
- const error = new DomainError('this is an error');
21
- expect(DomainError.isDomainError(error)).toBeTrue();
22
- });
23
-
24
- it('should be false when error is not a DomainError', () => {
25
- const error = new Error('this is an error');
26
- expect(DomainError.isDomainError(error)).toBeFalse();
27
- });
28
-
29
- it('should be false when error param is not an error', () => {
30
- expect(DomainError.isDomainError('')).toBeFalse();
31
- });
32
-
33
- it('should be true when error is a TestDomainError', () => {
34
- const error = new TestDomainError();
35
- expect(DomainError.isDomainError(error)).toBeTrue();
36
- });
37
- });
38
-
39
- describe('toString', () => {
40
- it('should return the error message', () => {
41
- const error = new DomainError('this is an error');
42
- expect(error.toString()).toInclude('this is an error');
43
- });
44
- });
45
-
46
- describe('getStack', () => {
47
- it('should return the error stack', () => {
48
- const error = new DomainError('this is an error');
49
- expect(error.getStack()).toInclude('this is an error');
50
- });
51
- });
52
- });
@@ -1,29 +0,0 @@
1
- import { assert, DomainError } from '../../src';
2
-
3
- describe('Assert', () => {
4
- it('should throw an error if the condition is false', () => {
5
- expect(() => {
6
- assert(false, 'Error');
7
- }).toThrow('Error');
8
- });
9
-
10
- it('should not throw an error if the condition is true', () => {
11
- expect(() => {
12
- assert(true, 'Error');
13
- }).not.toThrow();
14
- });
15
-
16
- it('should throw an error if the condition is false and the error is a function', () => {
17
- expect(() => {
18
- assert(false, new Error('Error'));
19
- }).toThrow('Error');
20
- });
21
-
22
- it('should throw a domain error if the condition is false and the error is a string', () => {
23
- expect(() => assert(false, 'Error')).toThrow(DomainError);
24
- });
25
-
26
- it('should throw if the condition is not a boolean', () => {
27
- expect(() => assert(1, 'Error')).not.toThrow();
28
- });
29
- });
@@ -1,2 +0,0 @@
1
- import * as matchers from 'jest-extended';
2
- expect.extend(matchers);