@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
@@ -1,31 +1,23 @@
1
- import { type AnyTuple } from "../common";
2
- import { type TheTime } from "./types";
1
+ import type { AnyTuple } from "../common/types/anyTuple";
2
+ import { TheTime } from "./theTime";
3
+ import type { SerializedTheTime } from "./types";
3
4
  /**
4
- * Returns the smallest time from an iterable.
5
+ * Returns the smallest duration from a tuple of time values.
5
6
  *
6
- * Signature: `minTime(input)` → returns a value
7
- *
8
- * The input value is not mutated.
7
+ * Signature: `minTime(input)` → `TheTime`
9
8
  *
10
9
  * ```ts
11
- * const result = D.minTime([
12
- * D.createTheTime(3_000),
13
- * D.createTheTime(1_000),
14
- * D.createTheTime(2_000),
15
- * ]);
16
- * // result: "time1000+"
10
+ * const value = D.minTime([
11
+ * D.createTime(3_000, "millisecond"),
12
+ * D.createTime(1_000, "millisecond"),
13
+ * "time2000+",
14
+ * ] as const);
15
+ * // value: TheTime
17
16
  *
18
- * const result2 = D.minTime([
17
+ * const value2 = D.minTime([
19
18
  * "time3000-",
20
19
  * "time1000-",
21
20
  * ] as const);
22
- * // result2: "time3000-"
23
- *
24
- * const result3 = D.minTime([
25
- * "time500+",
26
- * "time100+",
27
- * ] as const);
28
- * // result3: "time100+"
29
21
  * ```
30
22
  *
31
23
  * @see https://utils.duplojs.dev/en/v1/api/date/minTime
@@ -33,4 +25,4 @@ import { type TheTime } from "./types";
33
25
  * @namespace D
34
26
  *
35
27
  */
36
- export declare function minTime<GenericInput extends AnyTuple<TheTime>>(input: GenericInput): `time${number}-` | `time${number}+`;
28
+ export declare function minTime<GenericInput extends AnyTuple<TheTime | SerializedTheTime>>(input: GenericInput): TheTime;
@@ -1,11 +1,11 @@
1
- import { createTheTime } from './createTheTime.mjs';
1
+ import { TheTime } from './theTime.mjs';
2
2
  import { toTimeValue } from './toTimeValue.mjs';
3
3
 
4
4
  /**
5
5
  * {@include date/minTime/index.md}
6
6
  */
7
7
  function minTime(input) {
8
- return createTheTime(Math.min(...input.map(toTimeValue)));
8
+ return TheTime.new(Math.min(...input.map(toTimeValue)));
9
9
  }
10
10
 
11
11
  export { minTime };
package/dist/date/now.cjs CHANGED
@@ -1,11 +1,13 @@
1
1
  'use strict';
2
2
 
3
+ var theDate = require('./theDate.cjs');
4
+
3
5
  /**
4
6
  * {@include date/now/index.md}
5
7
  */
6
8
  function now() {
7
9
  const timestamp = Date.now();
8
- return `date${timestamp}+`;
10
+ return theDate.TheDate.new(timestamp);
9
11
  }
10
12
 
11
13
  exports.now = now;
@@ -1,13 +1,15 @@
1
+ import { TheDate } from "./theDate";
1
2
  /**
2
- * Returns the current date as TheDate.
3
+ * Returns the current instant as `TheDate`.
3
4
  *
4
- * Signature: `now()` → returns a value
5
- *
6
- * The input value is not mutated.
5
+ * Signature: `now()` → `TheDate`
7
6
  *
8
7
  * ```ts
9
- * const result = D.now();
10
- * // result: "date" + timestamp
8
+ * const value = D.now();
9
+ * // value: TheDate
10
+ *
11
+ * const timestamp = value.getTime();
12
+ * // timestamp: number
11
13
  *
12
14
  * ```
13
15
  *
@@ -16,4 +18,4 @@
16
18
  * @namespace D
17
19
  *
18
20
  */
19
- export declare function now(): `date${number}+`;
21
+ export declare function now(): TheDate;
package/dist/date/now.mjs CHANGED
@@ -1,9 +1,11 @@
1
+ import { TheDate } from './theDate.mjs';
2
+
1
3
  /**
2
4
  * {@include date/now/index.md}
3
5
  */
4
6
  function now() {
5
7
  const timestamp = Date.now();
6
- return `date${timestamp}+`;
8
+ return TheDate.new(timestamp);
7
9
  }
8
10
 
9
11
  export { now };
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var toNative = require('../toNative.cjs');
4
3
  var constants = require('../constants.cjs');
5
- var createTheDate = require('../createTheDate.cjs');
4
+ var theDate = require('../theDate.cjs');
5
+ var toTimestamp = require('../toTimestamp.cjs');
6
6
 
7
7
  function addDays(...args) {
8
8
  if (args.length === 1) {
@@ -10,9 +10,7 @@ function addDays(...args) {
10
10
  return (input) => addDays(input, day);
11
11
  }
12
12
  const [input, day] = args;
13
- const date = toNative.toNative(input);
14
- date.setTime(date.getTime() + (day * constants.millisecondsInOneDay));
15
- return createTheDate.createTheDate(date.getTime());
13
+ return theDate.TheDate.new(toTimestamp.toTimestamp(input) + (day * constants.millisecondsInOneDay));
16
14
  }
17
15
 
18
16
  exports.addDays = addDays;
@@ -1,23 +1,26 @@
1
- import type { TheDate } from "../types";
1
+ import { TheDate } from "../theDate";
2
+ import type { SerializedTheDate } from "../types";
2
3
  /**
3
- * Adds days to a date.
4
+ * Adds a number of days to a date.
4
5
  *
5
6
  * **Supported call styles:**
6
- * - Classic: `addDays(input, day)` → returns a value
7
- * - Curried: `addDays(day)` → returns a function waiting for the input
7
+ * - Classic: `addDays(input, day)` → `TheDate`
8
+ * - Curried: `addDays(day)` → `(input) => TheDate`
8
9
  *
9
- * The input value is not mutated.
10
+ * `input` accepts `TheDate` or `SerializedTheDate`.
10
11
  *
11
12
  * ```ts
12
13
  * const input = D.create("2024-06-15");
13
14
  * const result = D.addDays(input, 5);
14
- * // result: "date1718928000000+"
15
+ * // result: TheDate
16
+ *
17
+ * const serialized = D.serialize(result);
18
+ * // serialized: SerializedTheDate
15
19
  *
16
20
  * pipe(
17
- * input,
21
+ * serialized,
18
22
  * D.addDays(5),
19
- * ); // result: "date1718928000000+"
20
- *
23
+ * ); // TheDate
21
24
  * ```
22
25
  *
23
26
  * @see https://utils.duplojs.dev/en/v1/api/date/addDays
@@ -25,5 +28,5 @@ import type { TheDate } from "../types";
25
28
  * @namespace D
26
29
  *
27
30
  */
28
- export declare function addDays<GenericInput extends TheDate, GenericDay extends number>(day: GenericDay): (input: GenericInput) => TheDate;
29
- export declare function addDays<GenericInput extends TheDate, GenericDay extends number>(input: GenericInput, day: GenericDay): TheDate;
31
+ export declare function addDays<GenericInput extends TheDate | SerializedTheDate, GenericDay extends number>(day: GenericDay): (input: GenericInput) => TheDate;
32
+ export declare function addDays<GenericInput extends TheDate | SerializedTheDate, GenericDay extends number>(input: GenericInput, day: GenericDay): TheDate;
@@ -1,6 +1,6 @@
1
- import { toNative } from '../toNative.mjs';
2
1
  import { millisecondsInOneDay } from '../constants.mjs';
3
- import { createTheDate } from '../createTheDate.mjs';
2
+ import { TheDate } from '../theDate.mjs';
3
+ import { toTimestamp } from '../toTimestamp.mjs';
4
4
 
5
5
  function addDays(...args) {
6
6
  if (args.length === 1) {
@@ -8,9 +8,7 @@ function addDays(...args) {
8
8
  return (input) => addDays(input, day);
9
9
  }
10
10
  const [input, day] = args;
11
- const date = toNative(input);
12
- date.setTime(date.getTime() + (day * millisecondsInOneDay));
13
- return createTheDate(date.getTime());
11
+ return TheDate.new(toTimestamp(input) + (day * millisecondsInOneDay));
14
12
  }
15
13
 
16
14
  export { addDays };
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var constants = require('../constants.cjs');
4
- var createTheDate = require('../createTheDate.cjs');
5
- var toNative = require('../toNative.cjs');
4
+ var theDate = require('../theDate.cjs');
5
+ var toTimestamp = require('../toTimestamp.cjs');
6
6
 
7
7
  function addHours(...args) {
8
8
  if (args.length === 1) {
@@ -10,9 +10,7 @@ function addHours(...args) {
10
10
  return (input) => addHours(input, hour);
11
11
  }
12
12
  const [input, hour] = args;
13
- const date = toNative.toNative(input);
14
- date.setTime(date.getTime() + (hour * constants.millisecondInOneHour));
15
- return createTheDate.createTheDate(date.getTime());
13
+ return theDate.TheDate.new(toTimestamp.toTimestamp(input) + (hour * constants.millisecondInOneHour));
16
14
  }
17
15
 
18
16
  exports.addHours = addHours;
@@ -1,23 +1,26 @@
1
- import type { TheDate } from "../types";
1
+ import { TheDate } from "../theDate";
2
+ import type { SerializedTheDate } from "../types";
2
3
  /**
3
- * Adds hours to a date.
4
+ * Adds a number of hours to a date.
4
5
  *
5
6
  * **Supported call styles:**
6
- * - Classic: `addHours(input, hour)` → returns a value
7
- * - Curried: `addHours(hour)` → returns a function waiting for the input
7
+ * - Classic: `addHours(input, hour)` → `TheDate`
8
+ * - Curried: `addHours(hour)` → `(input) => TheDate`
8
9
  *
9
- * The input value is not mutated.
10
+ * `input` accepts `TheDate` or `SerializedTheDate`.
10
11
  *
11
12
  * ```ts
12
13
  * const input = D.create("2024-06-20");
13
14
  * const result = D.addHours(input, 2);
14
- * // result: "date1718848800000+"
15
+ * // result: TheDate
16
+ *
17
+ * const serialized = D.serialize(result);
18
+ * // serialized: SerializedTheDate
15
19
  *
16
20
  * pipe(
17
- * input,
21
+ * serialized,
18
22
  * D.addHours(2),
19
- * ); // result: "date1718848800000+"
20
- *
23
+ * ); // TheDate
21
24
  * ```
22
25
  *
23
26
  * @see https://utils.duplojs.dev/en/v1/api/date/addHours
@@ -25,5 +28,5 @@ import type { TheDate } from "../types";
25
28
  * @namespace D
26
29
  *
27
30
  */
28
- export declare function addHours<GenericInput extends TheDate, GenericHour extends number>(hour: GenericHour): (input: GenericInput) => TheDate;
29
- export declare function addHours<GenericInput extends TheDate, GenericHour extends number>(input: GenericInput, hour: GenericHour): TheDate;
31
+ export declare function addHours<GenericInput extends TheDate | SerializedTheDate, GenericHour extends number>(hour: GenericHour): (input: GenericInput) => TheDate;
32
+ export declare function addHours<GenericInput extends TheDate | SerializedTheDate, GenericHour extends number>(input: GenericInput, hour: GenericHour): TheDate;
@@ -1,6 +1,6 @@
1
1
  import { millisecondInOneHour } from '../constants.mjs';
2
- import { createTheDate } from '../createTheDate.mjs';
3
- import { toNative } from '../toNative.mjs';
2
+ import { TheDate } from '../theDate.mjs';
3
+ import { toTimestamp } from '../toTimestamp.mjs';
4
4
 
5
5
  function addHours(...args) {
6
6
  if (args.length === 1) {
@@ -8,9 +8,7 @@ function addHours(...args) {
8
8
  return (input) => addHours(input, hour);
9
9
  }
10
10
  const [input, hour] = args;
11
- const date = toNative(input);
12
- date.setTime(date.getTime() + (hour * millisecondInOneHour));
13
- return createTheDate(date.getTime());
11
+ return TheDate.new(toTimestamp(input) + (hour * millisecondInOneHour));
14
12
  }
15
13
 
16
14
  export { addHours };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var createTheDate = require('../createTheDate.cjs');
4
- var toNative = require('../toNative.cjs');
3
+ var theDate = require('../theDate.cjs');
4
+ var toTimestamp = require('../toTimestamp.cjs');
5
5
 
6
6
  function addMilliseconds(...args) {
7
7
  if (args.length === 1) {
@@ -9,9 +9,7 @@ function addMilliseconds(...args) {
9
9
  return (input) => addMilliseconds(input, millisecond);
10
10
  }
11
11
  const [input, millisecond] = args;
12
- const date = toNative.toNative(input);
13
- date.setTime(date.getTime() + millisecond);
14
- return createTheDate.createTheDate(date.getTime());
12
+ return theDate.TheDate.new(toTimestamp.toTimestamp(input) + millisecond);
15
13
  }
16
14
 
17
15
  exports.addMilliseconds = addMilliseconds;
@@ -1,23 +1,26 @@
1
- import type { TheDate } from "../types";
1
+ import { TheDate } from "../theDate";
2
+ import type { SerializedTheDate } from "../types";
2
3
  /**
3
- * Adds milliseconds to a date.
4
+ * Adds a number of milliseconds to a date.
4
5
  *
5
6
  * **Supported call styles:**
6
- * - Classic: `addMilliseconds(input, millisecond)` → returns a value
7
- * - Curried: `addMilliseconds(millisecond)` → returns a function waiting for the input
7
+ * - Classic: `addMilliseconds(input, millisecond)` → `TheDate`
8
+ * - Curried: `addMilliseconds(millisecond)` → `(input) => TheDate`
8
9
  *
9
- * The input value is not mutated.
10
+ * `input` accepts `TheDate` or `SerializedTheDate`.
10
11
  *
11
12
  * ```ts
12
13
  * const input = D.create("2024-06-20");
13
14
  * const result = D.addMilliseconds(input, 10);
14
- * // result: "date1718841600010+"
15
+ * // result: TheDate
16
+ *
17
+ * const serialized = D.serialize(result);
18
+ * // serialized: SerializedTheDate
15
19
  *
16
20
  * pipe(
17
- * input,
21
+ * serialized,
18
22
  * D.addMilliseconds(10),
19
- * ); // result: "date1718841600010+"
20
- *
23
+ * ); // TheDate
21
24
  * ```
22
25
  *
23
26
  * @see https://utils.duplojs.dev/en/v1/api/date/addMilliseconds
@@ -25,5 +28,5 @@ import type { TheDate } from "../types";
25
28
  * @namespace D
26
29
  *
27
30
  */
28
- export declare function addMilliseconds<GenericInput extends TheDate, GenericMillisecond extends number>(millisecond: GenericMillisecond): (input: GenericInput) => TheDate;
29
- export declare function addMilliseconds<GenericInput extends TheDate, GenericMillisecond extends number>(input: GenericInput, millisecond: GenericMillisecond): TheDate;
31
+ export declare function addMilliseconds<GenericInput extends TheDate | SerializedTheDate, GenericMillisecond extends number>(millisecond: GenericMillisecond): (input: GenericInput) => TheDate;
32
+ export declare function addMilliseconds<GenericInput extends TheDate | SerializedTheDate, GenericMillisecond extends number>(input: GenericInput, millisecond: GenericMillisecond): TheDate;
@@ -1,5 +1,5 @@
1
- import { createTheDate } from '../createTheDate.mjs';
2
- import { toNative } from '../toNative.mjs';
1
+ import { TheDate } from '../theDate.mjs';
2
+ import { toTimestamp } from '../toTimestamp.mjs';
3
3
 
4
4
  function addMilliseconds(...args) {
5
5
  if (args.length === 1) {
@@ -7,9 +7,7 @@ function addMilliseconds(...args) {
7
7
  return (input) => addMilliseconds(input, millisecond);
8
8
  }
9
9
  const [input, millisecond] = args;
10
- const date = toNative(input);
11
- date.setTime(date.getTime() + millisecond);
12
- return createTheDate(date.getTime());
10
+ return TheDate.new(toTimestamp(input) + millisecond);
13
11
  }
14
12
 
15
13
  export { addMilliseconds };
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var constants = require('../constants.cjs');
4
- var createTheDate = require('../createTheDate.cjs');
5
- var toNative = require('../toNative.cjs');
4
+ var theDate = require('../theDate.cjs');
5
+ var toTimestamp = require('../toTimestamp.cjs');
6
6
 
7
7
  function addMinutes(...args) {
8
8
  if (args.length === 1) {
@@ -10,9 +10,7 @@ function addMinutes(...args) {
10
10
  return (input) => addMinutes(input, minute);
11
11
  }
12
12
  const [input, minute] = args;
13
- const date = toNative.toNative(input);
14
- date.setTime(date.getTime() + (minute * constants.millisecondInOneMinute));
15
- return createTheDate.createTheDate(date.getTime());
13
+ return theDate.TheDate.new(toTimestamp.toTimestamp(input) + (minute * constants.millisecondInOneMinute));
16
14
  }
17
15
 
18
16
  exports.addMinutes = addMinutes;
@@ -1,23 +1,26 @@
1
- import type { TheDate } from "../types";
1
+ import { TheDate } from "../theDate";
2
+ import type { SerializedTheDate } from "../types";
2
3
  /**
3
- * Adds minutes to a date.
4
+ * Adds a number of minutes to a date.
4
5
  *
5
6
  * **Supported call styles:**
6
- * - Classic: `addMinutes(input, minute)` → returns a value
7
- * - Curried: `addMinutes(minute)` → returns a function waiting for the input
7
+ * - Classic: `addMinutes(input, minute)` → `TheDate`
8
+ * - Curried: `addMinutes(minute)` → `(input) => TheDate`
8
9
  *
9
- * The input value is not mutated.
10
+ * `input` accepts `TheDate` or `SerializedTheDate`.
10
11
  *
11
12
  * ```ts
12
13
  * const input = D.create("2024-06-20");
13
14
  * const result = D.addMinutes(input, 45);
14
- * // result: "date1718844300000+"
15
+ * // result: TheDate
16
+ *
17
+ * const serialized = D.serialize(result);
18
+ * // serialized: SerializedTheDate
15
19
  *
16
20
  * pipe(
17
- * input,
21
+ * serialized,
18
22
  * D.addMinutes(45),
19
- * ); // result: "date1718844300000+"
20
- *
23
+ * ); // TheDate
21
24
  * ```
22
25
  *
23
26
  * @see https://utils.duplojs.dev/en/v1/api/date/addMinutes
@@ -25,5 +28,5 @@ import type { TheDate } from "../types";
25
28
  * @namespace D
26
29
  *
27
30
  */
28
- export declare function addMinutes<GenericInput extends TheDate, GenericMinute extends number>(minute: GenericMinute): (input: GenericInput) => TheDate;
29
- export declare function addMinutes<GenericInput extends TheDate, GenericMinute extends number>(input: GenericInput, minute: GenericMinute): TheDate;
31
+ export declare function addMinutes<GenericInput extends TheDate | SerializedTheDate, GenericMinute extends number>(minute: GenericMinute): (input: GenericInput) => TheDate;
32
+ export declare function addMinutes<GenericInput extends TheDate | SerializedTheDate, GenericMinute extends number>(input: GenericInput, minute: GenericMinute): TheDate;
@@ -1,6 +1,6 @@
1
1
  import { millisecondInOneMinute } from '../constants.mjs';
2
- import { createTheDate } from '../createTheDate.mjs';
3
- import { toNative } from '../toNative.mjs';
2
+ import { TheDate } from '../theDate.mjs';
3
+ import { toTimestamp } from '../toTimestamp.mjs';
4
4
 
5
5
  function addMinutes(...args) {
6
6
  if (args.length === 1) {
@@ -8,9 +8,7 @@ function addMinutes(...args) {
8
8
  return (input) => addMinutes(input, minute);
9
9
  }
10
10
  const [input, minute] = args;
11
- const date = toNative(input);
12
- date.setTime(date.getTime() + (minute * millisecondInOneMinute));
13
- return createTheDate(date.getTime());
11
+ return TheDate.new(toTimestamp(input) + (minute * millisecondInOneMinute));
14
12
  }
15
13
 
16
14
  export { addMinutes };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var createTheDate = require('../createTheDate.cjs');
3
+ var theDate = require('../theDate.cjs');
4
4
  var toNative = require('../toNative.cjs');
5
5
 
6
6
  function addMonths(...args) {
@@ -11,7 +11,7 @@ function addMonths(...args) {
11
11
  const [input, month] = args;
12
12
  const date = toNative.toNative(input);
13
13
  date.setUTCMonth(date.getUTCMonth() + month);
14
- return createTheDate.createTheDate(date.getTime());
14
+ return theDate.TheDate.new(date.getTime());
15
15
  }
16
16
 
17
17
  exports.addMonths = addMonths;
@@ -1,33 +1,33 @@
1
- import type { TheDate } from "../types";
1
+ import { TheDate } from "../theDate";
2
+ import type { SerializedTheDate } from "../types";
2
3
  /**
3
- * Adds months to a date.
4
+ * Adds a number of calendar months to a date.
4
5
  *
5
6
  * **Supported call styles:**
6
- * - Classic: `addMonths(input, month)` → returns a value
7
- * - Curried: `addMonths(month)` → returns a function waiting for the input
7
+ * - Classic: `addMonths(input, month)` → `TheDate`
8
+ * - Curried: `addMonths(month)` → `(input) => TheDate`
8
9
  *
9
- * The input value is not mutated.
10
+ * `input` accepts `TheDate` or `SerializedTheDate`.
10
11
  *
11
12
  * ```ts
12
13
  * const input = D.create("2024-01-31");
13
14
  * const result = D.addMonths(input, 1);
14
- * // result: "date1709251200000+" (29 february 2024)
15
- *
16
- * const addQuarter = D.addMonths(3);
17
- * const result2 = addQuarter(input);
18
- * // result2: "date1719782400000+" (30 april 2024)
15
+ * // result: TheDate
19
16
  *
20
17
  * pipe(
21
18
  * input,
22
19
  * D.addMonths(1),
23
- * ); // result: "date1709251200000+" (29 february 2024)
20
+ * ); // TheDate
24
21
  *
25
22
  * ```
26
23
  *
24
+ * @remarks
25
+ * - Uses UTC month arithmetic (`Date#setUTCMonth` behavior).
26
+ *
27
27
  * @see https://utils.duplojs.dev/en/v1/api/date/addMonths
28
28
  *
29
29
  * @namespace D
30
30
  *
31
31
  */
32
- export declare function addMonths<GenericInput extends TheDate, GenericMonth extends number>(month: GenericMonth): (input: GenericInput) => TheDate;
33
- export declare function addMonths<GenericInput extends TheDate, GenericMonth extends number>(input: GenericInput, month: GenericMonth): TheDate;
32
+ export declare function addMonths<GenericInput extends TheDate | SerializedTheDate, GenericMonth extends number>(month: GenericMonth): (input: GenericInput) => TheDate;
33
+ export declare function addMonths<GenericInput extends TheDate | SerializedTheDate, GenericMonth extends number>(input: GenericInput, month: GenericMonth): TheDate;
@@ -1,4 +1,4 @@
1
- import { createTheDate } from '../createTheDate.mjs';
1
+ import { TheDate } from '../theDate.mjs';
2
2
  import { toNative } from '../toNative.mjs';
3
3
 
4
4
  function addMonths(...args) {
@@ -9,7 +9,7 @@ function addMonths(...args) {
9
9
  const [input, month] = args;
10
10
  const date = toNative(input);
11
11
  date.setUTCMonth(date.getUTCMonth() + month);
12
- return createTheDate(date.getTime());
12
+ return TheDate.new(date.getTime());
13
13
  }
14
14
 
15
15
  export { addMonths };
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var constants = require('../constants.cjs');
4
- var createTheDate = require('../createTheDate.cjs');
5
- var toNative = require('../toNative.cjs');
4
+ var theDate = require('../theDate.cjs');
5
+ var toTimestamp = require('../toTimestamp.cjs');
6
6
 
7
7
  function addSeconds(...args) {
8
8
  if (args.length === 1) {
@@ -10,9 +10,7 @@ function addSeconds(...args) {
10
10
  return (input) => addSeconds(input, second);
11
11
  }
12
12
  const [input, second] = args;
13
- const date = toNative.toNative(input);
14
- date.setTime(date.getTime() + (second * constants.millisecondsInOneSecond));
15
- return createTheDate.createTheDate(date.getTime());
13
+ return theDate.TheDate.new(toTimestamp.toTimestamp(input) + (second * constants.millisecondsInOneSecond));
16
14
  }
17
15
 
18
16
  exports.addSeconds = addSeconds;
@@ -1,23 +1,26 @@
1
- import type { TheDate } from "../types";
1
+ import { TheDate } from "../theDate";
2
+ import type { SerializedTheDate } from "../types";
2
3
  /**
3
- * Adds seconds to a date.
4
+ * Adds a number of seconds to a date.
4
5
  *
5
6
  * **Supported call styles:**
6
- * - Classic: `addSeconds(input, second)` → returns a value
7
- * - Curried: `addSeconds(second)` → returns a function waiting for the input
7
+ * - Classic: `addSeconds(input, second)` → `TheDate`
8
+ * - Curried: `addSeconds(second)` → `(input) => TheDate`
8
9
  *
9
- * The input value is not mutated.
10
+ * `input` accepts `TheDate` or `SerializedTheDate`.
10
11
  *
11
12
  * ```ts
12
13
  * const input = D.create("2024-06-20");
13
14
  * const result = D.addSeconds(input, 5);
14
- * // result: "date1718841605000+"
15
+ * // result: TheDate
16
+ *
17
+ * const serialized = D.serialize(result);
18
+ * // serialized: SerializedTheDate
15
19
  *
16
20
  * pipe(
17
- * input,
21
+ * serialized,
18
22
  * D.addSeconds(5),
19
- * ); // result: "date1718841605000+"
20
- *
23
+ * ); // TheDate
21
24
  * ```
22
25
  *
23
26
  * @see https://utils.duplojs.dev/en/v1/api/date/addSeconds
@@ -25,5 +28,5 @@ import type { TheDate } from "../types";
25
28
  * @namespace D
26
29
  *
27
30
  */
28
- export declare function addSeconds<GenericInput extends TheDate, GenericSecond extends number>(second: GenericSecond): (input: GenericInput) => TheDate;
29
- export declare function addSeconds<GenericInput extends TheDate, GenericSecond extends number>(input: GenericInput, second: GenericSecond): TheDate;
31
+ export declare function addSeconds<GenericInput extends TheDate | SerializedTheDate, GenericSecond extends number>(second: GenericSecond): (input: GenericInput) => TheDate;
32
+ export declare function addSeconds<GenericInput extends TheDate | SerializedTheDate, GenericSecond extends number>(input: GenericInput, second: GenericSecond): TheDate;
@@ -1,6 +1,6 @@
1
1
  import { millisecondsInOneSecond } from '../constants.mjs';
2
- import { createTheDate } from '../createTheDate.mjs';
3
- import { toNative } from '../toNative.mjs';
2
+ import { TheDate } from '../theDate.mjs';
3
+ import { toTimestamp } from '../toTimestamp.mjs';
4
4
 
5
5
  function addSeconds(...args) {
6
6
  if (args.length === 1) {
@@ -8,9 +8,7 @@ function addSeconds(...args) {
8
8
  return (input) => addSeconds(input, second);
9
9
  }
10
10
  const [input, second] = args;
11
- const date = toNative(input);
12
- date.setTime(date.getTime() + (second * millisecondsInOneSecond));
13
- return createTheDate(date.getTime());
11
+ return TheDate.new(toTimestamp(input) + (second * millisecondsInOneSecond));
14
12
  }
15
13
 
16
14
  export { addSeconds };