@duplojs/utils 1.4.57 → 1.4.59

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 (319) hide show
  1. package/dist/array/group.cjs +11 -11
  2. package/dist/array/group.d.ts +1 -1
  3. package/dist/array/group.mjs +11 -11
  4. package/dist/clean/constraint/base.d.ts +6 -4
  5. package/dist/clean/constraint/defaultConstraint/index.d.ts +1 -0
  6. package/dist/clean/constraint/defaultConstraint/number.d.ts +6 -6
  7. package/dist/clean/constraint/defaultConstraint/string.d.ts +4 -4
  8. package/dist/clean/constraint/defaultConstraint/time.cjs +19 -0
  9. package/dist/clean/constraint/defaultConstraint/time.d.ts +61 -0
  10. package/dist/clean/constraint/defaultConstraint/time.mjs +16 -0
  11. package/dist/clean/constraint/set.d.ts +6 -4
  12. package/dist/clean/entity.d.ts +2 -1
  13. package/dist/clean/index.cjs +3 -0
  14. package/dist/clean/index.mjs +1 -0
  15. package/dist/clean/newType.d.ts +7 -5
  16. package/dist/clean/primitive/base.d.ts +25 -34
  17. package/dist/clean/primitive/operations/date/dateAddTime.d.ts +7 -11
  18. package/dist/clean/primitive/operations/date/dateGreaterThan.d.ts +9 -7
  19. package/dist/clean/primitive/operations/date/dateLessThan.d.ts +9 -7
  20. package/dist/clean/primitive/operations/date/dateMax.d.ts +3 -10
  21. package/dist/clean/primitive/operations/date/dateMin.d.ts +3 -10
  22. package/dist/clean/primitive/operations/date/dateSubtractTime.d.ts +7 -11
  23. package/dist/clean/primitive/operations/equal.cjs +1 -1
  24. package/dist/clean/primitive/operations/equal.d.ts +3 -3
  25. package/dist/clean/primitive/operations/equal.mjs +1 -1
  26. package/dist/clean/primitive/operations/sort.d.ts +8 -10
  27. package/dist/clean/primitive/operations/time/timeGreaterThan.d.ts +11 -9
  28. package/dist/clean/primitive/operations/time/timeLessThan.d.ts +11 -9
  29. package/dist/clean/primitive/operations/time/timeMax.cjs +2 -2
  30. package/dist/clean/primitive/operations/time/timeMax.d.ts +10 -17
  31. package/dist/clean/primitive/operations/time/timeMax.mjs +2 -2
  32. package/dist/clean/primitive/operations/time/timeMin.cjs +3 -3
  33. package/dist/clean/primitive/operations/time/timeMin.d.ts +10 -17
  34. package/dist/clean/primitive/operations/time/timeMin.mjs +3 -3
  35. package/dist/clean/unwrapEntity.cjs +13 -3
  36. package/dist/clean/unwrapEntity.d.ts +57 -5
  37. package/dist/clean/unwrapEntity.mjs +13 -3
  38. package/dist/common/index.d.ts +3 -4
  39. package/dist/common/kind.d.ts +1 -0
  40. package/dist/common/path.cjs +13 -13
  41. package/dist/common/path.d.ts +17 -11
  42. package/dist/common/path.mjs +13 -13
  43. package/dist/common/toRegExp.cjs +19 -0
  44. package/dist/common/toRegExp.d.ts +31 -0
  45. package/dist/common/toRegExp.mjs +17 -0
  46. package/dist/common/transformer.cjs +45 -0
  47. package/dist/common/transformer.d.ts +61 -0
  48. package/dist/common/transformer.mjs +40 -0
  49. package/dist/common/types/DeepReadonly.d.ts +1 -1
  50. package/dist/common/types/toLargeEnsemble.d.ts +2 -2
  51. package/dist/dataParser/error.cjs +4 -2
  52. package/dist/dataParser/error.d.ts +4 -2
  53. package/dist/dataParser/error.mjs +4 -2
  54. package/dist/dataParser/extended/date.d.ts +9 -4
  55. package/dist/dataParser/extended/time.d.ts +28 -12
  56. package/dist/dataParser/identifier.d.ts +20 -8
  57. package/dist/dataParser/parsers/date.cjs +16 -12
  58. package/dist/dataParser/parsers/date.d.ts +15 -9
  59. package/dist/dataParser/parsers/date.mjs +16 -12
  60. package/dist/dataParser/parsers/time/checkers/max.cjs +3 -0
  61. package/dist/dataParser/parsers/time/checkers/max.d.ts +28 -0
  62. package/dist/dataParser/parsers/time/checkers/max.mjs +3 -0
  63. package/dist/dataParser/parsers/time/checkers/min.cjs +3 -0
  64. package/dist/dataParser/parsers/time/checkers/min.d.ts +28 -0
  65. package/dist/dataParser/parsers/time/checkers/min.mjs +3 -0
  66. package/dist/dataParser/parsers/time/index.cjs +14 -10
  67. package/dist/dataParser/parsers/time/index.d.ts +15 -9
  68. package/dist/dataParser/parsers/time/index.mjs +14 -10
  69. package/dist/date/applyTimezone.cjs +4 -4
  70. package/dist/date/applyTimezone.d.ts +18 -16
  71. package/dist/date/applyTimezone.mjs +2 -2
  72. package/dist/date/closestTo.cjs +6 -2
  73. package/dist/date/closestTo.d.ts +15 -15
  74. package/dist/date/closestTo.mjs +6 -2
  75. package/dist/date/constants.cjs +4 -4
  76. package/dist/date/constants.d.ts +2 -2
  77. package/dist/date/constants.mjs +3 -3
  78. package/dist/date/create.cjs +20 -10
  79. package/dist/date/create.d.ts +24 -38
  80. package/dist/date/create.mjs +21 -11
  81. package/dist/date/createOrThrow.d.ts +18 -20
  82. package/dist/date/createTime.cjs +16 -7
  83. package/dist/date/createTime.d.ts +19 -18
  84. package/dist/date/createTime.mjs +17 -8
  85. package/dist/date/createTimeOrThrow.d.ts +17 -20
  86. package/dist/date/each.cjs +6 -4
  87. package/dist/date/each.d.ts +21 -19
  88. package/dist/date/each.mjs +6 -4
  89. package/dist/date/format.d.ts +17 -15
  90. package/dist/date/formatTime.d.ts +17 -16
  91. package/dist/date/getTimezoneOffset.cjs +6 -3
  92. package/dist/date/getTimezoneOffset.d.ts +17 -18
  93. package/dist/date/getTimezoneOffset.mjs +6 -3
  94. package/dist/date/getters/getDayOfMonth.cjs +3 -3
  95. package/dist/date/getters/getDayOfMonth.d.ts +20 -14
  96. package/dist/date/getters/getDayOfMonth.mjs +3 -3
  97. package/dist/date/getters/getDayOfWeek.cjs +3 -3
  98. package/dist/date/getters/getDayOfWeek.d.ts +15 -12
  99. package/dist/date/getters/getDayOfWeek.mjs +3 -3
  100. package/dist/date/getters/getDayOfYear.cjs +6 -6
  101. package/dist/date/getters/getDayOfYear.d.ts +21 -13
  102. package/dist/date/getters/getDayOfYear.mjs +6 -6
  103. package/dist/date/getters/getFirstDayOfMonth.cjs +2 -3
  104. package/dist/date/getters/getFirstDayOfMonth.d.ts +16 -10
  105. package/dist/date/getters/getFirstDayOfMonth.mjs +2 -3
  106. package/dist/date/getters/getFirstDayOfWeek.cjs +2 -3
  107. package/dist/date/getters/getFirstDayOfWeek.d.ts +17 -10
  108. package/dist/date/getters/getFirstDayOfWeek.mjs +2 -3
  109. package/dist/date/getters/getHour.cjs +3 -3
  110. package/dist/date/getters/getHour.d.ts +16 -14
  111. package/dist/date/getters/getHour.mjs +3 -3
  112. package/dist/date/getters/getLastDayOfMonth.cjs +2 -3
  113. package/dist/date/getters/getLastDayOfMonth.d.ts +16 -10
  114. package/dist/date/getters/getLastDayOfMonth.mjs +2 -3
  115. package/dist/date/getters/getLastDayOfWeek.cjs +2 -3
  116. package/dist/date/getters/getLastDayOfWeek.d.ts +17 -10
  117. package/dist/date/getters/getLastDayOfWeek.mjs +2 -3
  118. package/dist/date/getters/getMilliseconds.cjs +2 -2
  119. package/dist/date/getters/getMilliseconds.d.ts +11 -9
  120. package/dist/date/getters/getMilliseconds.mjs +2 -2
  121. package/dist/date/getters/getMinute.cjs +3 -3
  122. package/dist/date/getters/getMinute.d.ts +17 -15
  123. package/dist/date/getters/getMinute.mjs +3 -3
  124. package/dist/date/getters/getMonth.cjs +3 -3
  125. package/dist/date/getters/getMonth.d.ts +20 -15
  126. package/dist/date/getters/getMonth.mjs +3 -3
  127. package/dist/date/getters/getSecond.cjs +3 -3
  128. package/dist/date/getters/getSecond.d.ts +17 -15
  129. package/dist/date/getters/getSecond.mjs +3 -3
  130. package/dist/date/getters/getWeekOfYear.cjs +12 -11
  131. package/dist/date/getters/getWeekOfYear.d.ts +17 -11
  132. package/dist/date/getters/getWeekOfYear.mjs +12 -11
  133. package/dist/date/getters/getYear.cjs +3 -3
  134. package/dist/date/getters/getYear.d.ts +16 -15
  135. package/dist/date/getters/getYear.mjs +3 -3
  136. package/dist/date/index.cjs +12 -6
  137. package/dist/date/index.d.ts +5 -2
  138. package/dist/date/index.mjs +6 -3
  139. package/dist/date/is.cjs +3 -8
  140. package/dist/date/is.d.ts +9 -14
  141. package/dist/date/is.mjs +3 -8
  142. package/dist/date/isSafeTimeValue.d.ts +9 -13
  143. package/dist/date/isSafeTimestamp.d.ts +7 -16
  144. package/dist/date/isSerializedTheDate.cjs +20 -0
  145. package/dist/date/isSerializedTheDate.d.ts +31 -0
  146. package/dist/date/isSerializedTheDate.mjs +18 -0
  147. package/dist/date/isSerializedTheTime.cjs +20 -0
  148. package/dist/date/isSerializedTheTime.d.ts +31 -0
  149. package/dist/date/isSerializedTheTime.mjs +18 -0
  150. package/dist/date/isTime.cjs +3 -8
  151. package/dist/date/isTime.d.ts +7 -14
  152. package/dist/date/isTime.mjs +3 -8
  153. package/dist/date/kind.cjs +9 -0
  154. package/dist/date/kind.d.ts +1 -0
  155. package/dist/date/kind.mjs +7 -0
  156. package/dist/date/makeSafeTimeValue.d.ts +12 -11
  157. package/dist/date/makeSafeTimestamp.d.ts +12 -11
  158. package/dist/date/max.cjs +2 -2
  159. package/dist/date/max.d.ts +13 -13
  160. package/dist/date/max.mjs +2 -2
  161. package/dist/date/maxTime.cjs +2 -2
  162. package/dist/date/maxTime.d.ts +13 -21
  163. package/dist/date/maxTime.mjs +2 -2
  164. package/dist/date/min.cjs +2 -2
  165. package/dist/date/min.d.ts +13 -13
  166. package/dist/date/min.mjs +2 -2
  167. package/dist/date/minTime.cjs +2 -2
  168. package/dist/date/minTime.d.ts +13 -21
  169. package/dist/date/minTime.mjs +2 -2
  170. package/dist/date/now.cjs +3 -1
  171. package/dist/date/now.d.ts +9 -7
  172. package/dist/date/now.mjs +3 -1
  173. package/dist/date/operators/addDays.cjs +3 -5
  174. package/dist/date/operators/addDays.d.ts +14 -11
  175. package/dist/date/operators/addDays.mjs +3 -5
  176. package/dist/date/operators/addHours.cjs +3 -5
  177. package/dist/date/operators/addHours.d.ts +14 -11
  178. package/dist/date/operators/addHours.mjs +3 -5
  179. package/dist/date/operators/addMilliseconds.cjs +3 -5
  180. package/dist/date/operators/addMilliseconds.d.ts +14 -11
  181. package/dist/date/operators/addMilliseconds.mjs +3 -5
  182. package/dist/date/operators/addMinutes.cjs +3 -5
  183. package/dist/date/operators/addMinutes.d.ts +14 -11
  184. package/dist/date/operators/addMinutes.mjs +3 -5
  185. package/dist/date/operators/addMonths.cjs +2 -2
  186. package/dist/date/operators/addMonths.d.ts +13 -13
  187. package/dist/date/operators/addMonths.mjs +2 -2
  188. package/dist/date/operators/addSeconds.cjs +3 -5
  189. package/dist/date/operators/addSeconds.d.ts +14 -11
  190. package/dist/date/operators/addSeconds.mjs +3 -5
  191. package/dist/date/operators/addTime.cjs +13 -6
  192. package/dist/date/operators/addTime.d.ts +20 -18
  193. package/dist/date/operators/addTime.mjs +13 -6
  194. package/dist/date/operators/addWeeks.cjs +6 -5
  195. package/dist/date/operators/addWeeks.d.ts +14 -11
  196. package/dist/date/operators/addWeeks.mjs +6 -5
  197. package/dist/date/operators/addYears.cjs +2 -2
  198. package/dist/date/operators/addYears.d.ts +13 -13
  199. package/dist/date/operators/addYears.mjs +2 -2
  200. package/dist/date/operators/between.d.ts +11 -11
  201. package/dist/date/operators/betweenThan.d.ts +11 -11
  202. package/dist/date/operators/betweenThanTime.d.ts +18 -22
  203. package/dist/date/operators/betweenTime.d.ts +17 -21
  204. package/dist/date/operators/greater.d.ts +12 -9
  205. package/dist/date/operators/greaterThan.d.ts +14 -11
  206. package/dist/date/operators/greaterThanTime.d.ts +17 -21
  207. package/dist/date/operators/greaterTime.d.ts +16 -20
  208. package/dist/date/operators/less.d.ts +12 -9
  209. package/dist/date/operators/lessThan.d.ts +13 -10
  210. package/dist/date/operators/lessThanTime.d.ts +17 -21
  211. package/dist/date/operators/lessTime.d.ts +16 -20
  212. package/dist/date/operators/subtractDays.cjs +3 -5
  213. package/dist/date/operators/subtractDays.d.ts +14 -11
  214. package/dist/date/operators/subtractDays.mjs +3 -5
  215. package/dist/date/operators/subtractHours.cjs +3 -5
  216. package/dist/date/operators/subtractHours.d.ts +14 -11
  217. package/dist/date/operators/subtractHours.mjs +3 -5
  218. package/dist/date/operators/subtractMilliseconds.cjs +3 -5
  219. package/dist/date/operators/subtractMilliseconds.d.ts +14 -11
  220. package/dist/date/operators/subtractMilliseconds.mjs +3 -5
  221. package/dist/date/operators/subtractMinutes.cjs +3 -5
  222. package/dist/date/operators/subtractMinutes.d.ts +14 -11
  223. package/dist/date/operators/subtractMinutes.mjs +3 -5
  224. package/dist/date/operators/subtractMonths.cjs +2 -2
  225. package/dist/date/operators/subtractMonths.d.ts +17 -11
  226. package/dist/date/operators/subtractMonths.mjs +2 -2
  227. package/dist/date/operators/subtractSeconds.cjs +3 -5
  228. package/dist/date/operators/subtractSeconds.d.ts +14 -11
  229. package/dist/date/operators/subtractSeconds.mjs +3 -5
  230. package/dist/date/operators/subtractTime.cjs +13 -6
  231. package/dist/date/operators/subtractTime.d.ts +20 -18
  232. package/dist/date/operators/subtractTime.mjs +13 -6
  233. package/dist/date/operators/subtractWeeks.cjs +3 -5
  234. package/dist/date/operators/subtractWeeks.d.ts +14 -11
  235. package/dist/date/operators/subtractWeeks.mjs +3 -5
  236. package/dist/date/operators/subtractYears.cjs +2 -2
  237. package/dist/date/operators/subtractYears.d.ts +17 -11
  238. package/dist/date/operators/subtractYears.mjs +2 -2
  239. package/dist/date/round.cjs +2 -2
  240. package/dist/date/round.d.ts +11 -14
  241. package/dist/date/round.mjs +2 -2
  242. package/dist/date/serialize.cjs +14 -0
  243. package/dist/date/serialize.d.ts +41 -0
  244. package/dist/date/serialize.mjs +12 -0
  245. package/dist/date/sort.cjs +2 -2
  246. package/dist/date/sort.d.ts +16 -15
  247. package/dist/date/sort.mjs +2 -2
  248. package/dist/date/sortTimes.cjs +2 -2
  249. package/dist/date/sortTimes.d.ts +15 -21
  250. package/dist/date/sortTimes.mjs +2 -2
  251. package/dist/date/theDate.cjs +124 -0
  252. package/dist/date/theDate.d.ts +114 -0
  253. package/dist/date/theDate.mjs +122 -0
  254. package/dist/date/theTime.cjs +36 -0
  255. package/dist/date/theTime.d.ts +53 -0
  256. package/dist/date/theTime.mjs +34 -0
  257. package/dist/date/timezone.cjs +3 -0
  258. package/dist/date/timezone.d.ts +27 -0
  259. package/dist/date/timezone.mjs +3 -0
  260. package/dist/date/toISOString.cjs +5 -2
  261. package/dist/date/toISOString.d.ts +12 -10
  262. package/dist/date/toISOString.mjs +5 -2
  263. package/dist/date/toNative.cjs +4 -0
  264. package/dist/date/toNative.d.ts +12 -10
  265. package/dist/date/toNative.mjs +4 -0
  266. package/dist/date/toTimeValue.cjs +6 -2
  267. package/dist/date/toTimeValue.d.ts +14 -12
  268. package/dist/date/toTimeValue.mjs +6 -2
  269. package/dist/date/toTimestamp.cjs +5 -3
  270. package/dist/date/toTimestamp.d.ts +11 -9
  271. package/dist/date/toTimestamp.mjs +6 -4
  272. package/dist/date/today.cjs +3 -1
  273. package/dist/date/today.d.ts +14 -7
  274. package/dist/date/today.mjs +3 -1
  275. package/dist/date/tomorrow.cjs +2 -1
  276. package/dist/date/tomorrow.d.ts +12 -7
  277. package/dist/date/tomorrow.mjs +2 -1
  278. package/dist/date/types/index.d.ts +2 -2
  279. package/dist/date/types/serializedTheDate.d.ts +1 -0
  280. package/dist/date/types/serializedTheTime.d.ts +42 -0
  281. package/dist/date/types/spoolingDate.d.ts +2 -1
  282. package/dist/date/yesterday.cjs +2 -1
  283. package/dist/date/yesterday.d.ts +12 -7
  284. package/dist/date/yesterday.mjs +2 -1
  285. package/dist/generator/asyncGroup.cjs +31 -0
  286. package/dist/generator/asyncGroup.d.ts +39 -0
  287. package/dist/generator/asyncGroup.mjs +29 -0
  288. package/dist/generator/group.cjs +39 -0
  289. package/dist/generator/group.d.ts +101 -0
  290. package/dist/generator/group.mjs +36 -0
  291. package/dist/generator/index.cjs +5 -0
  292. package/dist/generator/index.d.ts +3 -0
  293. package/dist/generator/index.mjs +2 -0
  294. package/dist/index.cjs +7 -6
  295. package/dist/index.mjs +2 -3
  296. package/dist/metadata.json +94 -40
  297. package/dist/object/entries.cjs +7 -2
  298. package/dist/object/entries.mjs +7 -2
  299. package/dist/object/keys.cjs +7 -2
  300. package/dist/object/keys.d.ts +1 -1
  301. package/dist/object/keys.mjs +7 -2
  302. package/package.json +1 -1
  303. package/dist/common/toJSON.cjs +0 -37
  304. package/dist/common/toJSON.d.ts +0 -44
  305. package/dist/common/toJSON.mjs +0 -35
  306. package/dist/common/toString.cjs +0 -10
  307. package/dist/common/toString.d.ts +0 -17
  308. package/dist/common/toString.mjs +0 -8
  309. package/dist/common/toTransform.cjs +0 -37
  310. package/dist/common/toTransform.d.ts +0 -50
  311. package/dist/common/toTransform.mjs +0 -35
  312. package/dist/date/createTheDate.cjs +0 -13
  313. package/dist/date/createTheDate.d.ts +0 -28
  314. package/dist/date/createTheDate.mjs +0 -11
  315. package/dist/date/createTheTime.cjs +0 -13
  316. package/dist/date/createTheTime.d.ts +0 -25
  317. package/dist/date/createTheTime.mjs +0 -11
  318. package/dist/date/types/theDate.d.ts +0 -11
  319. package/dist/date/types/theTime.d.ts +0 -10
@@ -23,17 +23,20 @@ export interface DataParserTimeExtended<GenericDefinition extends dataParsers.Da
23
23
  * Ensures the time is greater than the provided minimum.
24
24
  *
25
25
  * ```ts
26
- * const parser = DPE.time().min("time0+");
26
+ * const timeMin = D.createTime(0, "millisecond");
27
+ * const timeMax = D.createTime(100, "millisecond");
28
+ *
29
+ * const parser = DPE.time().min(timeMin);
27
30
  * const result = parser.parse("time10+");
28
31
  * if (E.isRight(result)) {
29
32
  * const value = unwrap(result);
30
33
  * // value: TheTime
31
34
  * }
32
35
  *
33
- * const withMessage = DPE.time().min("time0+", { errorMessage: "time.too-small" });
36
+ * const withMessage = DPE.time().min(timeMin, { errorMessage: "time.too-small" });
34
37
  * const messageResult = withMessage.parse("time0+");
35
38
  *
36
- * const chained = DPE.time().min("time0+").max("time100+");
39
+ * const chained = DPE.time().min(timeMin).max(timeMax);
37
40
  * const chainedResult = chained.parse("time10+");
38
41
  * ```
39
42
  *
@@ -52,17 +55,20 @@ export interface DataParserTimeExtended<GenericDefinition extends dataParsers.Da
52
55
  * Ensures the time is smaller than the provided maximum.
53
56
  *
54
57
  * ```ts
55
- * const parser = DPE.time().max("time100+");
58
+ * const timeMax = D.createTime(1, "second");
59
+ * const timeMin = D.createTime(0, "millisecond");
60
+ *
61
+ * const parser = DPE.time().max(timeMax);
56
62
  * const result = parser.parse("time10+");
57
63
  * if (E.isRight(result)) {
58
64
  * const value = unwrap(result);
59
65
  * // value: TheTime
60
66
  * }
61
67
  *
62
- * const withMessage = DPE.time().max("time100+", { errorMessage: "time.too-large" });
68
+ * const withMessage = DPE.time().max(timeMax, { errorMessage: "time.too-large" });
63
69
  * const messageResult = withMessage.parse("time100+");
64
70
  *
65
- * const chained = DPE.time().min("time0+").max("time100+");
71
+ * const chained = DPE.time().min(timeMin).max(timeMax);
66
72
  * const chainedResult = chained.parse("time10+");
67
73
  * ```
68
74
  *
@@ -74,15 +80,19 @@ export interface DataParserTimeExtended<GenericDefinition extends dataParsers.Da
74
80
  max(max: TheTime, definition?: Partial<Omit<dataParsers.DataParserCheckerDefinitionTimeMax, "max">>): DataParserTimeExtended<AddCheckersToDefinition<GenericDefinition, readonly [dataParsers.DataParserCheckerTimeMax]>>;
75
81
  }
76
82
  /**
77
- * Creates an extended data parser for TheTime values.
83
+ * Creates an extended parser for `TheTime` with chainable time-specific helpers.
78
84
  *
79
- * **Supported call styles:**
80
- * - Method: `DPE.time(definition?)` -> returns a time parser
85
+ * Signature: `DPE.time(definition?)` → `DataParserTimeExtended`
81
86
  *
82
- * Validates TheTime values and exposes time-specific methods like min and max.
87
+ * This parser extends the classic time parser behavior and adds fluent methods like `.min(...)` and `.max(...)`.
83
88
  *
84
89
  * ```ts
85
- * const parser = DPE.time().min("time0+").max("time100+");
90
+ * const minTime = D.createTime(0, "millisecond");
91
+ * const maxTime = D.createTime(10000, "millisecond");
92
+ *
93
+ * const parser = DPE.time()
94
+ * .min(minTime)
95
+ * .max(maxTime);
86
96
  * const result = parser.parse("time10+");
87
97
  * if (E.isRight(result)) {
88
98
  * const value = unwrap(result);
@@ -91,11 +101,17 @@ export interface DataParserTimeExtended<GenericDefinition extends dataParsers.Da
91
101
  *
92
102
  * const coerceParser = DPE.coerce.time();
93
103
  * const coerceResult = coerceParser.parse("10:20:00");
104
+ * // E.Error<DPE.DataParserError> | E.Success<D.TheTime>
94
105
  *
95
- * const minOnly = DPE.time().min("time0+");
106
+ * const minOnly = DPE.time().min(minTime);
96
107
  * const minResult = minOnly.parse("time0+");
108
+ * // E.Error<DPE.DataParserError> | E.Success<D.TheTime>
97
109
  * ```
98
110
  *
111
+ * @remarks
112
+ * - `.min(...)` and `.max(...)` expect `TheTime` values.
113
+ * - `DPE.coerce.time()` enables the same coercion flow as classic parser mode.
114
+ *
99
115
  * @see https://utils.duplojs.dev/en/v1/api/dataParser/time
100
116
  *
101
117
  * @namespace DPE
@@ -42,11 +42,11 @@ export declare const identifier: {
42
42
  input: boolean;
43
43
  output: boolean;
44
44
  }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
45
- input: `date${number}-` | `date${number}+`;
46
- output: `date${number}-` | `date${number}+`;
45
+ input: import("../date").TheDate | `date${number}-` | `date${number}+` | Date;
46
+ output: import("../date").TheDate;
47
47
  }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
48
- input: `time${number}-` | `time${number}+`;
49
- output: `time${number}-` | `time${number}+`;
48
+ input: number | import("../date").TheTime | `time${number}-` | `time${number}+`;
49
+ output: import("../date").TheTime;
50
50
  }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
51
51
  input: null;
52
52
  output: null;
@@ -59,6 +59,12 @@ export declare const identifier: {
59
59
  }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
60
60
  input: unknown[];
61
61
  output: unknown[];
62
+ }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
63
+ input: import("../date").TheDate;
64
+ output: import("../date").TheDate;
65
+ }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
66
+ input: import("../date").TheTime;
67
+ output: import("../date").TheTime;
62
68
  }>>, GenericInput extends unknown, GenericGroupedKind extends import("../common").UnionToIntersection<GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<string, unknown>> ? import("../common").Kind<GenericKindHandler["definition"], GenericKindHandler["definition"]["value"]> : never>>(kind: GenericKindHandler | GenericKindHandler[]): (input: GenericInput) => input is (import("../common").IsEqual<import("../common").IsEqual<false | (GenericInput extends any ? import("../common").IsEqual<GenericInput, DataParser<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>> : never), boolean>, true> extends true ? Extract<DataParser<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>, GenericGroupedKind> | Extract<import("./parsers").DataParserString<import("./parsers").DataParserDefinitionString>, GenericGroupedKind> | Extract<import("./parsers").DataParserObject<import("./parsers").DataParserDefinitionObject>, GenericGroupedKind> | Extract<import("./parsers").DataParserNumber<import("./parsers").DataParserDefinitionNumber>, GenericGroupedKind> | Extract<import("./parsers").DataParserLiteral<import("./parsers").DataParserDefinitionLiteral>, GenericGroupedKind> | Extract<import("./parsers").DataParserUnion<import("./parsers").DataParserDefinitionUnion>, GenericGroupedKind> | Extract<import("./parsers").DataParserArray<import("./parsers").DataParserDefinitionArray>, GenericGroupedKind> | Extract<import("./parsers").DataParserBigInt<import("./parsers").DataParserDefinitionBigInt>, GenericGroupedKind> | Extract<import("./parsers").DataParserTuple<import("./parsers").DataParserDefinitionTuple>, GenericGroupedKind> | Extract<import("./parsers").DataParserTransform<import("./parsers").DataParserDefinitionTransform>, GenericGroupedKind> | Extract<import("./parsers").DataParserBoolean<import("./parsers").DataParserDefinitionBoolean>, GenericGroupedKind> | Extract<import("./parsers").DataParserDate<import("./parsers").DataParserDefinitionDate>, GenericGroupedKind> | Extract<import("./parsers").DataParserTime<import("./parsers").DataParserDefinitionTime>, GenericGroupedKind> | Extract<import("./parsers").DataParserNil<import("./parsers").DataParserDefinitionNil>, GenericGroupedKind> | Extract<import("./parsers").DataParserEmpty<import("./parsers").DataParserDefinitionEmpty>, GenericGroupedKind> | Extract<import("./parsers").DataParserTemplateLiteral<import("./parsers").DataParserDefinitionTemplateLiteral>, GenericGroupedKind> | Extract<import("./parsers").DataParserPipe<import("./parsers").DataParserDefinitionPipe>, GenericGroupedKind> | Extract<import("./parsers").DataParserNullable<import("./parsers").DataParserDefinitionNullable<unknown>>, GenericGroupedKind> | Extract<import("./parsers").DataParserOptional<import("./parsers").DataParserDefinitionOptional<unknown>>, GenericGroupedKind> | Extract<import("./parsers").DataParserLazy<import("./parsers").DataParserDefinitionLazy>, GenericGroupedKind> | Extract<import("./parsers").DataParserUnknown<import("./parsers").DataParserDefinitionUnknown>, GenericGroupedKind> | Extract<import("./parsers").DataParserRecord<import("./parsers").DataParserDefinitionRecord>, GenericGroupedKind> | Extract<import("./parsers").DataParserRecover<import("./parsers").DataParserDefinitionRecover>, GenericGroupedKind> | Extract<import("./baseExtended").DataParserExtended<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>, GenericGroupedKind> | Extract<import("./extended").DataParserStringExtended<import("./parsers").DataParserDefinitionString>, GenericGroupedKind> | Extract<import("./extended").DataParserObjectExtended<import("./parsers").DataParserDefinitionObject>, GenericGroupedKind> | Extract<import("./extended").DataParserNumberExtended<import("./parsers").DataParserDefinitionNumber>, GenericGroupedKind> | Extract<import("./extended").DataParserLiteralExtended<import("./parsers").DataParserDefinitionLiteral>, GenericGroupedKind> | Extract<import("./extended").DataParserUnionExtended<import("./parsers").DataParserDefinitionUnion>, GenericGroupedKind> | Extract<import("./extended").DataParserArrayExtended<import("./parsers").DataParserDefinitionArray>, GenericGroupedKind> | Extract<import("./extended").DataParserBigIntExtended<import("./parsers").DataParserDefinitionBigInt>, GenericGroupedKind> | Extract<import("./extended").DataParserTupleExtended<import("./parsers").DataParserDefinitionTuple>, GenericGroupedKind> | Extract<import("./extended").DataParserTransformExtended<import("./parsers").DataParserDefinitionTransform>, GenericGroupedKind> | Extract<import("./extended").DataParserBooleanExtended<import("./parsers").DataParserDefinitionBoolean>, GenericGroupedKind> | Extract<import("./extended").DataParserDateExtended<import("./parsers").DataParserDefinitionDate>, GenericGroupedKind> | Extract<import("./extended").DataParserTimeExtended<import("./parsers").DataParserDefinitionTime>, GenericGroupedKind> | Extract<import("./extended").DataParserNilExtended<import("./parsers").DataParserDefinitionNil>, GenericGroupedKind> | Extract<import("./extended").DataParserEmptyExtended<import("./parsers").DataParserDefinitionEmpty>, GenericGroupedKind> | Extract<import("./extended").DataParserTemplateLiteralExtended<import("./parsers").DataParserDefinitionTemplateLiteral>, GenericGroupedKind> | Extract<import("./extended").DataParserPipeExtended<import("./parsers").DataParserDefinitionPipe>, GenericGroupedKind> | Extract<import("./extended").DataParserNullableExtended<import("./parsers").DataParserDefinitionNullable<unknown>>, GenericGroupedKind> | Extract<import("./extended").DataParserOptionalExtended<import("./parsers").DataParserDefinitionOptional<unknown>>, GenericGroupedKind> | Extract<import("./extended").DataParserLazyExtended<import("./parsers").DataParserDefinitionLazy>, GenericGroupedKind> | Extract<import("./extended").DataParserUnknownExtended<import("./parsers").DataParserDefinitionUnknown>, GenericGroupedKind> | Extract<import("./extended").DataParserRecordExtended<import("./parsers").DataParserDefinitionRecord>, GenericGroupedKind> | Extract<import("./extended").DataParserRecoverExtended<import("./parsers").DataParserDefinitionRecover>, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>;
63
69
  <GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/bigint", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/extended", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/boolean", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/date", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/time", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/empty", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nil", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/number", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/string", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/array", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/transform", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/union", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/pipe", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nullable", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/optional", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/recover", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/lazy", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/object", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/record", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/template-literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/tuple", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/unknown", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
64
70
  input: string;
@@ -94,11 +100,11 @@ export declare const identifier: {
94
100
  input: boolean;
95
101
  output: boolean;
96
102
  }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
97
- input: `date${number}-` | `date${number}+`;
98
- output: `date${number}-` | `date${number}+`;
103
+ input: import("../date").TheDate | `date${number}-` | `date${number}+` | Date;
104
+ output: import("../date").TheDate;
99
105
  }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
100
- input: `time${number}-` | `time${number}+`;
101
- output: `time${number}-` | `time${number}+`;
106
+ input: number | import("../date").TheTime | `time${number}-` | `time${number}+`;
107
+ output: import("../date").TheTime;
102
108
  }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
103
109
  input: null;
104
110
  output: null;
@@ -111,5 +117,11 @@ export declare const identifier: {
111
117
  }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
112
118
  input: unknown[];
113
119
  output: unknown[];
120
+ }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
121
+ input: import("../date").TheDate;
122
+ output: import("../date").TheDate;
123
+ }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
124
+ input: import("../date").TheTime;
125
+ output: import("../date").TheTime;
114
126
  }>>, GenericInput extends unknown, GenericGroupedKind extends import("../common").UnionToIntersection<GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<string, unknown>> ? import("../common").Kind<GenericKindHandler["definition"], GenericKindHandler["definition"]["value"]> : never>>(input: GenericInput, kind: GenericKindHandler | GenericKindHandler[]): input is (import("../common").IsEqual<import("../common").IsEqual<false | (GenericInput extends any ? import("../common").IsEqual<GenericInput, DataParser<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>> : never), boolean>, true> extends true ? Extract<DataParser<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>, GenericGroupedKind> | Extract<import("./parsers").DataParserString<import("./parsers").DataParserDefinitionString>, GenericGroupedKind> | Extract<import("./parsers").DataParserObject<import("./parsers").DataParserDefinitionObject>, GenericGroupedKind> | Extract<import("./parsers").DataParserNumber<import("./parsers").DataParserDefinitionNumber>, GenericGroupedKind> | Extract<import("./parsers").DataParserLiteral<import("./parsers").DataParserDefinitionLiteral>, GenericGroupedKind> | Extract<import("./parsers").DataParserUnion<import("./parsers").DataParserDefinitionUnion>, GenericGroupedKind> | Extract<import("./parsers").DataParserArray<import("./parsers").DataParserDefinitionArray>, GenericGroupedKind> | Extract<import("./parsers").DataParserBigInt<import("./parsers").DataParserDefinitionBigInt>, GenericGroupedKind> | Extract<import("./parsers").DataParserTuple<import("./parsers").DataParserDefinitionTuple>, GenericGroupedKind> | Extract<import("./parsers").DataParserTransform<import("./parsers").DataParserDefinitionTransform>, GenericGroupedKind> | Extract<import("./parsers").DataParserBoolean<import("./parsers").DataParserDefinitionBoolean>, GenericGroupedKind> | Extract<import("./parsers").DataParserDate<import("./parsers").DataParserDefinitionDate>, GenericGroupedKind> | Extract<import("./parsers").DataParserTime<import("./parsers").DataParserDefinitionTime>, GenericGroupedKind> | Extract<import("./parsers").DataParserNil<import("./parsers").DataParserDefinitionNil>, GenericGroupedKind> | Extract<import("./parsers").DataParserEmpty<import("./parsers").DataParserDefinitionEmpty>, GenericGroupedKind> | Extract<import("./parsers").DataParserTemplateLiteral<import("./parsers").DataParserDefinitionTemplateLiteral>, GenericGroupedKind> | Extract<import("./parsers").DataParserPipe<import("./parsers").DataParserDefinitionPipe>, GenericGroupedKind> | Extract<import("./parsers").DataParserNullable<import("./parsers").DataParserDefinitionNullable<unknown>>, GenericGroupedKind> | Extract<import("./parsers").DataParserOptional<import("./parsers").DataParserDefinitionOptional<unknown>>, GenericGroupedKind> | Extract<import("./parsers").DataParserLazy<import("./parsers").DataParserDefinitionLazy>, GenericGroupedKind> | Extract<import("./parsers").DataParserUnknown<import("./parsers").DataParserDefinitionUnknown>, GenericGroupedKind> | Extract<import("./parsers").DataParserRecord<import("./parsers").DataParserDefinitionRecord>, GenericGroupedKind> | Extract<import("./parsers").DataParserRecover<import("./parsers").DataParserDefinitionRecover>, GenericGroupedKind> | Extract<import("./baseExtended").DataParserExtended<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>, GenericGroupedKind> | Extract<import("./extended").DataParserStringExtended<import("./parsers").DataParserDefinitionString>, GenericGroupedKind> | Extract<import("./extended").DataParserObjectExtended<import("./parsers").DataParserDefinitionObject>, GenericGroupedKind> | Extract<import("./extended").DataParserNumberExtended<import("./parsers").DataParserDefinitionNumber>, GenericGroupedKind> | Extract<import("./extended").DataParserLiteralExtended<import("./parsers").DataParserDefinitionLiteral>, GenericGroupedKind> | Extract<import("./extended").DataParserUnionExtended<import("./parsers").DataParserDefinitionUnion>, GenericGroupedKind> | Extract<import("./extended").DataParserArrayExtended<import("./parsers").DataParserDefinitionArray>, GenericGroupedKind> | Extract<import("./extended").DataParserBigIntExtended<import("./parsers").DataParserDefinitionBigInt>, GenericGroupedKind> | Extract<import("./extended").DataParserTupleExtended<import("./parsers").DataParserDefinitionTuple>, GenericGroupedKind> | Extract<import("./extended").DataParserTransformExtended<import("./parsers").DataParserDefinitionTransform>, GenericGroupedKind> | Extract<import("./extended").DataParserBooleanExtended<import("./parsers").DataParserDefinitionBoolean>, GenericGroupedKind> | Extract<import("./extended").DataParserDateExtended<import("./parsers").DataParserDefinitionDate>, GenericGroupedKind> | Extract<import("./extended").DataParserTimeExtended<import("./parsers").DataParserDefinitionTime>, GenericGroupedKind> | Extract<import("./extended").DataParserNilExtended<import("./parsers").DataParserDefinitionNil>, GenericGroupedKind> | Extract<import("./extended").DataParserEmptyExtended<import("./parsers").DataParserDefinitionEmpty>, GenericGroupedKind> | Extract<import("./extended").DataParserTemplateLiteralExtended<import("./parsers").DataParserDefinitionTemplateLiteral>, GenericGroupedKind> | Extract<import("./extended").DataParserPipeExtended<import("./parsers").DataParserDefinitionPipe>, GenericGroupedKind> | Extract<import("./extended").DataParserNullableExtended<import("./parsers").DataParserDefinitionNullable<unknown>>, GenericGroupedKind> | Extract<import("./extended").DataParserOptionalExtended<import("./parsers").DataParserDefinitionOptional<unknown>>, GenericGroupedKind> | Extract<import("./extended").DataParserLazyExtended<import("./parsers").DataParserDefinitionLazy>, GenericGroupedKind> | Extract<import("./extended").DataParserUnknownExtended<import("./parsers").DataParserDefinitionUnknown>, GenericGroupedKind> | Extract<import("./extended").DataParserRecordExtended<import("./parsers").DataParserDefinitionRecord>, GenericGroupedKind> | Extract<import("./extended").DataParserRecoverExtended<import("./parsers").DataParserDefinitionRecover>, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>;
115
127
  };
@@ -4,8 +4,9 @@ var base = require('../base.cjs');
4
4
  var error = require('../error.cjs');
5
5
  var kind = require('../kind.cjs');
6
6
  var isSafeTimestamp = require('../../date/isSafeTimestamp.cjs');
7
- var createTheDate = require('../../date/createTheDate.cjs');
8
- var is = require('../../date/is.cjs');
7
+ var theDate = require('../../date/theDate.cjs');
8
+ var isSerializedTheDate = require('../../date/isSerializedTheDate.cjs');
9
+ var toTimestamp = require('../../date/toTimestamp.cjs');
9
10
  var override = require('../../common/override.cjs');
10
11
 
11
12
  const dateKind = kind.createDataParserKind("date");
@@ -19,30 +20,33 @@ function date(definition) {
19
20
  coerce: definition?.coerce ?? false,
20
21
  }, (data, _error, self) => {
21
22
  if (self.definition.coerce) {
22
- if (data instanceof Date) {
23
- const timestamp = data.getTime();
24
- if (!isSafeTimestamp.isSafeTimestamp(timestamp)) {
25
- return error.SymbolDataParserErrorIssue;
26
- }
27
- return createTheDate.createTheDate(timestamp);
28
- }
29
23
  if (typeof data === "number") {
30
24
  if (!isSafeTimestamp.isSafeTimestamp(data)) {
31
25
  return error.SymbolDataParserErrorIssue;
32
26
  }
33
- return createTheDate.createTheDate(data);
27
+ return theDate.TheDate.new(data);
34
28
  }
35
29
  if (typeof data === "string") {
36
30
  const date = new Date(data);
37
31
  const timestamp = date.getTime();
38
32
  if (isSafeTimestamp.isSafeTimestamp(timestamp)) {
39
- return createTheDate.createTheDate(timestamp);
33
+ return theDate.TheDate.new(timestamp);
40
34
  }
41
35
  }
42
36
  }
43
- if (typeof data === "string" && is.is(data)) {
37
+ if (data instanceof theDate.TheDate) {
44
38
  return data;
45
39
  }
40
+ else if (typeof data === "string" && isSerializedTheDate.isSerializedTheDate(data)) {
41
+ return theDate.TheDate.new(toTimestamp.toTimestamp(data));
42
+ }
43
+ else if (data instanceof Date) {
44
+ const timestamp = data.getTime();
45
+ if (!isSafeTimestamp.isSafeTimestamp(timestamp)) {
46
+ return error.SymbolDataParserErrorIssue;
47
+ }
48
+ return theDate.TheDate.new(timestamp);
49
+ }
46
50
  return error.SymbolDataParserErrorIssue;
47
51
  }, date.overrideHandler);
48
52
  return self;
@@ -3,15 +3,15 @@ import { type DataParserDefinition, type DataParser, type DataParserChecker } fr
3
3
  import { type AddCheckersToDefinition, type MergeDefinition } from "../../dataParser/types";
4
4
  import { type CheckerRefineImplementation } from "./refine";
5
5
  import { type GetPropsWithValueExtends } from "../../object";
6
- import { type TheDate } from "../../date";
6
+ import * as DDate from "../../date";
7
7
  export interface DataParserDateCheckerCustom {
8
8
  }
9
- export type DataParserDateCheckers = (DataParserDateCheckerCustom[GetPropsWithValueExtends<DataParserDateCheckerCustom, DataParserChecker>] | CheckerRefineImplementation<TheDate>);
9
+ export type DataParserDateCheckers = (DataParserDateCheckerCustom[GetPropsWithValueExtends<DataParserDateCheckerCustom, DataParserChecker>] | CheckerRefineImplementation<DDate.TheDate>);
10
10
  export interface DataParserDefinitionDate extends DataParserDefinition<DataParserDateCheckers> {
11
11
  readonly coerce: boolean;
12
12
  }
13
13
  export declare const dateKind: import("../../common").KindHandler<import("../../common").KindDefinition<"@DuplojsUtilsDataParser/date", unknown>>;
14
- type _DataParserDate<GenericDefinition extends DataParserDefinitionDate> = (DataParser<GenericDefinition, TheDate, TheDate> & Kind<typeof dateKind.definition>);
14
+ type _DataParserDate<GenericDefinition extends DataParserDefinitionDate> = (DataParser<GenericDefinition, DDate.TheDate, DDate.TheDate | Date | DDate.SerializedTheDate> & Kind<typeof dateKind.definition>);
15
15
  export interface DataParserDate<GenericDefinition extends DataParserDefinitionDate = DataParserDefinitionDate> extends _DataParserDate<GenericDefinition> {
16
16
  addChecker<GenericChecker extends readonly [
17
17
  DataParserDateCheckers,
@@ -22,13 +22,12 @@ export interface DataParserDate<GenericDefinition extends DataParserDefinitionDa
22
22
  ], GenericChecker>): DataParserDate<AddCheckersToDefinition<GenericDefinition, GenericChecker>>;
23
23
  }
24
24
  /**
25
- * Creates a data parser for TheDate values.
25
+ * Creates a classic parser for `TheDate` values.
26
26
  *
27
- * **Supported call styles:**
28
- * - Classic: `DP.date(definition?)` -> returns a date parser
29
- * - Curried: not available
27
+ * Signature: `DP.date(definition?)` → `DataParserDate`
30
28
  *
31
- * Validates that the input is a TheDate, optionally applies coerce, and runs the configured checkers.
29
+ * The parser accepts `TheDate`, `SerializedTheDate`, and native `Date`.
30
+ * With `coerce: true`, safe timestamps and parsable date strings are also supported.
32
31
  *
33
32
  * ```ts
34
33
  * const parser = DP.date();
@@ -39,13 +38,20 @@ export interface DataParserDate<GenericDefinition extends DataParserDefinitionDa
39
38
  * }
40
39
  *
41
40
  * const withCheckers = DP.date({
42
- * checkers: [DP.checkerRefine((value) => value !== "date0+")],
41
+ * checkers: [DP.checkerRefine((value) => value.getUTCFullYear() >= 2024)],
43
42
  * });
43
+ * const checked = withCheckers.parse("date1704067200000+");
44
+ * // checked: E.Error<DP.DataParserError> | E.Success<TheDate>
44
45
  *
45
46
  * const coerceParser = DP.coerce.date();
46
47
  * const coerceResult = coerceParser.parse("2024-01-01T00:00:00.000Z");
48
+ * // coerceResult: E.Error<DP.DataParserError> | E.Success<TheDate>
47
49
  * ```
48
50
  *
51
+ * @remarks
52
+ * - Parsed output is always `TheDate`.
53
+ * - Use `DP.coerce.date()` when you want coercion enabled by default.
54
+ *
49
55
  * @see https://utils.duplojs.dev/en/v1/api/dataParser/date
50
56
  *
51
57
  * @namespace DP
@@ -2,8 +2,9 @@ import { dataParserInit } from '../base.mjs';
2
2
  import { SymbolDataParserErrorIssue } from '../error.mjs';
3
3
  import { createDataParserKind } from '../kind.mjs';
4
4
  import { isSafeTimestamp } from '../../date/isSafeTimestamp.mjs';
5
- import { createTheDate } from '../../date/createTheDate.mjs';
6
- import { is } from '../../date/is.mjs';
5
+ import { TheDate } from '../../date/theDate.mjs';
6
+ import { isSerializedTheDate } from '../../date/isSerializedTheDate.mjs';
7
+ import { toTimestamp } from '../../date/toTimestamp.mjs';
7
8
  import { createOverride } from '../../common/override.mjs';
8
9
 
9
10
  const dateKind = createDataParserKind("date");
@@ -17,30 +18,33 @@ function date(definition) {
17
18
  coerce: definition?.coerce ?? false,
18
19
  }, (data, _error, self) => {
19
20
  if (self.definition.coerce) {
20
- if (data instanceof Date) {
21
- const timestamp = data.getTime();
22
- if (!isSafeTimestamp(timestamp)) {
23
- return SymbolDataParserErrorIssue;
24
- }
25
- return createTheDate(timestamp);
26
- }
27
21
  if (typeof data === "number") {
28
22
  if (!isSafeTimestamp(data)) {
29
23
  return SymbolDataParserErrorIssue;
30
24
  }
31
- return createTheDate(data);
25
+ return TheDate.new(data);
32
26
  }
33
27
  if (typeof data === "string") {
34
28
  const date = new Date(data);
35
29
  const timestamp = date.getTime();
36
30
  if (isSafeTimestamp(timestamp)) {
37
- return createTheDate(timestamp);
31
+ return TheDate.new(timestamp);
38
32
  }
39
33
  }
40
34
  }
41
- if (typeof data === "string" && is(data)) {
35
+ if (data instanceof TheDate) {
42
36
  return data;
43
37
  }
38
+ else if (typeof data === "string" && isSerializedTheDate(data)) {
39
+ return TheDate.new(toTimestamp(data));
40
+ }
41
+ else if (data instanceof Date) {
42
+ const timestamp = data.getTime();
43
+ if (!isSafeTimestamp(timestamp)) {
44
+ return SymbolDataParserErrorIssue;
45
+ }
46
+ return TheDate.new(timestamp);
47
+ }
44
48
  return SymbolDataParserErrorIssue;
45
49
  }, date.overrideHandler);
46
50
  return self;
@@ -6,6 +6,9 @@ var kind = require('../../../kind.cjs');
6
6
  var lessTime = require('../../../../date/operators/lessTime.cjs');
7
7
 
8
8
  const checkerTimeMaxKind = kind.createDataParserKind("checker-time-max");
9
+ /**
10
+ * {@include dataParser/classic/checkerTimeMax/index.md}
11
+ */
9
12
  function checkerTimeMax(max, definition = {}) {
10
13
  return base.dataParserCheckerInit(checkerTimeMaxKind, {
11
14
  definition: {
@@ -8,5 +8,33 @@ export declare const checkerTimeMaxKind: import("../../../../common").KindHandle
8
8
  type _DataParserCheckerTimeMax = (Kind<typeof checkerTimeMaxKind.definition> & DataParserChecker<DataParserCheckerDefinitionTimeMax, DDate.TheTime>);
9
9
  export interface DataParserCheckerTimeMax extends _DataParserCheckerTimeMax {
10
10
  }
11
+ /**
12
+ * Creates a checker that enforces a maximum `TheTime` bound.
13
+ *
14
+ * Signature: `checkerTimeMax(max, definition?)` → `DataParserCheckerTimeMax`
15
+ *
16
+ * The checker passes when parsed value is less than or equal to `max`.
17
+ *
18
+ * ```ts
19
+ * const parser = DP.time({
20
+ * checkers: [DP.checkerTimeMax(D.createTime(2, "minute"))],
21
+ * });
22
+ *
23
+ * const valid = parser.parse("time1500+");
24
+ * // valid: Error<DP.DataParserError> | Success<D.TheTime>
25
+ *
26
+ * const invalid = parser.parse("time2500+");
27
+ * // invalid: Error<DP.DataParserError> | Success<D.TheTime>
28
+ *
29
+ * ```
30
+ *
31
+ * @remarks
32
+ * - Designed to be used in `DP.time({ checkers: [...] })` or via `.addChecker(...)`.
33
+ *
34
+ * @see https://utils.duplojs.dev/en/v1/api/dataParser/time
35
+ *
36
+ * @namespace DP
37
+ *
38
+ */
11
39
  export declare function checkerTimeMax(max: DDate.TheTime, definition?: Partial<Omit<DataParserCheckerDefinitionTimeMax, "max">>): DataParserCheckerTimeMax;
12
40
  export {};
@@ -4,6 +4,9 @@ import { createDataParserKind } from '../../../kind.mjs';
4
4
  import { lessTime } from '../../../../date/operators/lessTime.mjs';
5
5
 
6
6
  const checkerTimeMaxKind = createDataParserKind("checker-time-max");
7
+ /**
8
+ * {@include dataParser/classic/checkerTimeMax/index.md}
9
+ */
7
10
  function checkerTimeMax(max, definition = {}) {
8
11
  return dataParserCheckerInit(checkerTimeMaxKind, {
9
12
  definition: {
@@ -6,6 +6,9 @@ var kind = require('../../../kind.cjs');
6
6
  var greaterTime = require('../../../../date/operators/greaterTime.cjs');
7
7
 
8
8
  const checkerTimeMinKind = kind.createDataParserKind("checker-time-min");
9
+ /**
10
+ * {@include dataParser/classic/checkerTimeMin/index.md}
11
+ */
9
12
  function checkerTimeMin(min, definition = {}) {
10
13
  return base.dataParserCheckerInit(checkerTimeMinKind, {
11
14
  definition: {
@@ -8,5 +8,33 @@ export declare const checkerTimeMinKind: import("../../../../common").KindHandle
8
8
  type _DataParserCheckerTimeMin = (Kind<typeof checkerTimeMinKind.definition> & DataParserChecker<DataParserCheckerDefinitionTimeMin, DDate.TheTime>);
9
9
  export interface DataParserCheckerTimeMin extends _DataParserCheckerTimeMin {
10
10
  }
11
+ /**
12
+ * Creates a checker that enforces a minimum `TheTime` bound.
13
+ *
14
+ * Signature: `checkerTimeMin(min, definition?)` → `DataParserCheckerTimeMin`
15
+ *
16
+ * The checker passes when parsed value is greater than or equal to `min`.
17
+ *
18
+ * ```ts
19
+ * const parser = DP.time({
20
+ * checkers: [DP.checkerTimeMin(D.createTime(1, "minute"))],
21
+ * });
22
+ *
23
+ * const valid = parser.parse("time1500+");
24
+ * // valid: Error<DP.DataParserError> | Success<D.TheTime>
25
+ *
26
+ * const invalid = parser.parse("time500+");
27
+ * // invalid:Error<DP.DataParserError> | Success<D.TheTime>
28
+ *
29
+ * ```
30
+ *
31
+ * @remarks
32
+ * - Designed to be used in `DP.time({ checkers: [...] })` or via `.addChecker(...)`.
33
+ *
34
+ * @see https://utils.duplojs.dev/en/v1/api/dataParser/time
35
+ *
36
+ * @namespace DP
37
+ *
38
+ */
11
39
  export declare function checkerTimeMin(min: DDate.TheTime, definition?: Partial<Omit<DataParserCheckerDefinitionTimeMin, "min">>): DataParserCheckerTimeMin;
12
40
  export {};
@@ -4,6 +4,9 @@ import { createDataParserKind } from '../../../kind.mjs';
4
4
  import { greaterTime } from '../../../../date/operators/greaterTime.mjs';
5
5
 
6
6
  const checkerTimeMinKind = createDataParserKind("checker-time-min");
7
+ /**
8
+ * {@include dataParser/classic/checkerTimeMin/index.md}
9
+ */
7
10
  function checkerTimeMin(min, definition = {}) {
8
11
  return dataParserCheckerInit(checkerTimeMinKind, {
9
12
  definition: {
@@ -3,13 +3,14 @@
3
3
  var base = require('../../base.cjs');
4
4
  var error = require('../../error.cjs');
5
5
  var kind = require('../../kind.cjs');
6
- var isSafeTimeValue = require('../../../date/isSafeTimeValue.cjs');
7
- var createTheTime = require('../../../date/createTheTime.cjs');
8
6
  var constants = require('../../../date/constants.cjs');
9
7
  var createTime = require('../../../date/createTime.cjs');
10
8
  var is = require('../../../either/left/is.cjs');
11
9
  var unwrap = require('../../../common/unwrap.cjs');
12
- var isTime = require('../../../date/isTime.cjs');
10
+ var theTime = require('../../../date/theTime.cjs');
11
+ var isSerializedTheTime = require('../../../date/isSerializedTheTime.cjs');
12
+ var toTimeValue = require('../../../date/toTimeValue.cjs');
13
+ var isSafeTimeValue = require('../../../date/isSafeTimeValue.cjs');
13
14
  var override = require('../../../common/override.cjs');
14
15
 
15
16
  const timeKind = kind.createDataParserKind("time");
@@ -23,12 +24,6 @@ function time(definition) {
23
24
  coerce: definition?.coerce ?? false,
24
25
  }, (data, _error, self) => {
25
26
  if (self.definition.coerce) {
26
- if (typeof data === "number") {
27
- if (!isSafeTimeValue.isSafeTimeValue(data)) {
28
- return error.SymbolDataParserErrorIssue;
29
- }
30
- return createTheTime.createTheTime(data);
31
- }
32
27
  if (typeof data === "string" && constants.isoTimeRegex.test(data)) {
33
28
  const result = createTime.createTime({ value: data });
34
29
  if (is.isLeft(result)) {
@@ -37,9 +32,18 @@ function time(definition) {
37
32
  return unwrap.unwrap(result);
38
33
  }
39
34
  }
40
- if (typeof data === "string" && isTime.isTime(data)) {
35
+ if (data instanceof theTime.TheTime) {
41
36
  return data;
42
37
  }
38
+ else if (typeof data === "string" && isSerializedTheTime.isSerializedTheTime(data)) {
39
+ return theTime.TheTime.new(toTimeValue.toTimeValue(data));
40
+ }
41
+ else if (typeof data === "number") {
42
+ if (!isSafeTimeValue.isSafeTimeValue(data)) {
43
+ return error.SymbolDataParserErrorIssue;
44
+ }
45
+ return theTime.TheTime.new(data);
46
+ }
43
47
  return error.SymbolDataParserErrorIssue;
44
48
  }, time.overrideHandler);
45
49
  return self;
@@ -3,17 +3,17 @@ import { type DataParserDefinition, type DataParser, type DataParserChecker } fr
3
3
  import { type AddCheckersToDefinition, type MergeDefinition } from "../../../dataParser/types";
4
4
  import { type CheckerRefineImplementation } from "../refine";
5
5
  import { type GetPropsWithValueExtends } from "../../../object";
6
- import { type TheTime } from "../../../date";
6
+ import * as DDate from "../../../date";
7
7
  import { type DataParserCheckerTimeMax, type DataParserCheckerTimeMin } from "./checkers";
8
8
  export * from "./checkers";
9
9
  export interface DataParserTimeCheckerCustom {
10
10
  }
11
- export type DataParserTimeCheckers = (DataParserTimeCheckerCustom[GetPropsWithValueExtends<DataParserTimeCheckerCustom, DataParserChecker>] | CheckerRefineImplementation<TheTime> | DataParserCheckerTimeMax | DataParserCheckerTimeMin);
11
+ export type DataParserTimeCheckers = (DataParserTimeCheckerCustom[GetPropsWithValueExtends<DataParserTimeCheckerCustom, DataParserChecker>] | CheckerRefineImplementation<DDate.TheTime> | DataParserCheckerTimeMax | DataParserCheckerTimeMin);
12
12
  export interface DataParserDefinitionTime extends DataParserDefinition<DataParserTimeCheckers> {
13
13
  readonly coerce: boolean;
14
14
  }
15
15
  export declare const timeKind: import("../../../common").KindHandler<import("../../../common").KindDefinition<"@DuplojsUtilsDataParser/time", unknown>>;
16
- type _DataParserTime<GenericDefinition extends DataParserDefinitionTime> = (DataParser<GenericDefinition, TheTime, TheTime> & Kind<typeof timeKind.definition>);
16
+ type _DataParserTime<GenericDefinition extends DataParserDefinitionTime> = (DataParser<GenericDefinition, DDate.TheTime, DDate.TheTime | number | DDate.SerializedTheTime> & Kind<typeof timeKind.definition>);
17
17
  export interface DataParserTime<GenericDefinition extends DataParserDefinitionTime = DataParserDefinitionTime> extends _DataParserTime<GenericDefinition> {
18
18
  addChecker<GenericChecker extends readonly [
19
19
  DataParserTimeCheckers,
@@ -24,13 +24,12 @@ export interface DataParserTime<GenericDefinition extends DataParserDefinitionTi
24
24
  ], GenericChecker>): DataParserTime<AddCheckersToDefinition<GenericDefinition, GenericChecker>>;
25
25
  }
26
26
  /**
27
- * Creates a data parser for TheTime values.
27
+ * Creates a classic parser for `TheTime` values.
28
28
  *
29
- * **Supported call styles:**
30
- * - Classic: `DP.time(definition?)` -> returns a time parser
31
- * - Curried: not available
29
+ * Signature: `DP.time(definition?)` → `DataParserTime`
32
30
  *
33
- * Validates that the input is a TheTime, optionally applies coerce, and runs the configured checkers.
31
+ * The parser accepts `TheTime`, `SerializedTheTime`, and safe numeric time values.
32
+ * With `coerce: true`, ISO-like time strings are also supported.
34
33
  *
35
34
  * ```ts
36
35
  * const parser = DP.time();
@@ -41,13 +40,20 @@ export interface DataParserTime<GenericDefinition extends DataParserDefinitionTi
41
40
  * }
42
41
  *
43
42
  * const withCheckers = DP.time({
44
- * checkers: [DP.checkerRefine((value) => value !== "time0+")],
43
+ * checkers: [DP.checkerRefine((value) => value.toNative() !== 0)],
45
44
  * });
45
+ * const checked = withCheckers.parse("time1000+");
46
+ * // checked: E.Error<DP.DataParserError> | E.Success<TheTime>
46
47
  *
47
48
  * const coerceParser = DP.coerce.time();
48
49
  * const coerceResult = coerceParser.parse("10:20:00");
50
+ * // coerceResult: E.Error<DP.DataParserError> | E.Success<TheTime>
49
51
  * ```
50
52
  *
53
+ * @remarks
54
+ * - Parsed output is always `TheTime`.
55
+ * - Use `DP.coerce.time()` when you want string coercion enabled by default.
56
+ *
51
57
  * @see https://utils.duplojs.dev/en/v1/api/dataParser/time
52
58
  *
53
59
  * @namespace DP
@@ -1,13 +1,14 @@
1
1
  import { dataParserInit } from '../../base.mjs';
2
2
  import { SymbolDataParserErrorIssue } from '../../error.mjs';
3
3
  import { createDataParserKind } from '../../kind.mjs';
4
- import { isSafeTimeValue } from '../../../date/isSafeTimeValue.mjs';
5
- import { createTheTime } from '../../../date/createTheTime.mjs';
6
4
  import { isoTimeRegex } from '../../../date/constants.mjs';
7
5
  import { createTime } from '../../../date/createTime.mjs';
8
6
  import { isLeft } from '../../../either/left/is.mjs';
9
7
  import { unwrap } from '../../../common/unwrap.mjs';
10
- import { isTime } from '../../../date/isTime.mjs';
8
+ import { TheTime } from '../../../date/theTime.mjs';
9
+ import { isSerializedTheTime } from '../../../date/isSerializedTheTime.mjs';
10
+ import { toTimeValue } from '../../../date/toTimeValue.mjs';
11
+ import { isSafeTimeValue } from '../../../date/isSafeTimeValue.mjs';
11
12
  import { createOverride } from '../../../common/override.mjs';
12
13
 
13
14
  const timeKind = createDataParserKind("time");
@@ -21,12 +22,6 @@ function time(definition) {
21
22
  coerce: definition?.coerce ?? false,
22
23
  }, (data, _error, self) => {
23
24
  if (self.definition.coerce) {
24
- if (typeof data === "number") {
25
- if (!isSafeTimeValue(data)) {
26
- return SymbolDataParserErrorIssue;
27
- }
28
- return createTheTime(data);
29
- }
30
25
  if (typeof data === "string" && isoTimeRegex.test(data)) {
31
26
  const result = createTime({ value: data });
32
27
  if (isLeft(result)) {
@@ -35,9 +30,18 @@ function time(definition) {
35
30
  return unwrap(result);
36
31
  }
37
32
  }
38
- if (typeof data === "string" && isTime(data)) {
33
+ if (data instanceof TheTime) {
39
34
  return data;
40
35
  }
36
+ else if (typeof data === "string" && isSerializedTheTime(data)) {
37
+ return TheTime.new(toTimeValue(data));
38
+ }
39
+ else if (typeof data === "number") {
40
+ if (!isSafeTimeValue(data)) {
41
+ return SymbolDataParserErrorIssue;
42
+ }
43
+ return TheTime.new(data);
44
+ }
41
45
  return SymbolDataParserErrorIssue;
42
46
  }, time.overrideHandler);
43
47
  return self;