@duplojs/utils 1.1.16 → 1.2.17

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 (482) hide show
  1. package/dist/array/index.cjs +28 -28
  2. package/dist/array/index.mjs +14 -14
  3. package/dist/array/reduce.cjs +0 -2
  4. package/dist/array/reduce.mjs +0 -2
  5. package/dist/array/reduceRight.cjs +0 -2
  6. package/dist/array/reduceRight.mjs +0 -2
  7. package/dist/array/types/extractTuple.d.ts +1 -1
  8. package/dist/common/asyncInnerPipe.d.ts +16 -11
  9. package/dist/common/asyncPipe.d.ts +16 -11
  10. package/dist/common/builder.cjs +5 -11
  11. package/dist/common/builder.d.ts +7 -7
  12. package/dist/common/builder.mjs +4 -10
  13. package/dist/common/createKindIdentifier.cjs +1 -3
  14. package/dist/common/createKindIdentifier.mjs +1 -3
  15. package/dist/common/equal.d.ts +4 -4
  16. package/dist/common/errorKindNamespace.cjs +9 -0
  17. package/dist/common/errorKindNamespace.d.ts +1 -0
  18. package/dist/common/errorKindNamespace.mjs +7 -0
  19. package/dist/common/forwardLog.cjs +8 -0
  20. package/dist/common/forwardLog.d.ts +1 -0
  21. package/dist/common/forwardLog.mjs +6 -0
  22. package/dist/common/index.d.ts +3 -0
  23. package/dist/common/innerPipe.d.ts +16 -11
  24. package/dist/common/instanceOf.cjs +0 -2
  25. package/dist/common/instanceOf.mjs +0 -2
  26. package/dist/common/kind.d.ts +1 -0
  27. package/dist/common/override.cjs +36 -0
  28. package/dist/common/override.d.ts +18 -0
  29. package/dist/common/override.mjs +34 -0
  30. package/dist/common/pipe.d.ts +16 -11
  31. package/dist/common/stringToBytes.cjs +4 -9
  32. package/dist/common/stringToBytes.d.ts +4 -4
  33. package/dist/common/stringToBytes.mjs +4 -9
  34. package/dist/common/stringToMillisecond.cjs +4 -9
  35. package/dist/common/stringToMillisecond.d.ts +4 -4
  36. package/dist/common/stringToMillisecond.mjs +4 -9
  37. package/dist/common/types/objectEntry.d.ts +1 -1
  38. package/dist/dataParser/base.cjs +7 -6
  39. package/dist/dataParser/base.d.ts +3 -0
  40. package/dist/dataParser/base.mjs +7 -6
  41. package/dist/dataParser/baseExtended.cjs +12 -14
  42. package/dist/dataParser/baseExtended.d.ts +3 -0
  43. package/dist/dataParser/baseExtended.mjs +12 -14
  44. package/dist/dataParser/extended/array.cjs +4 -5
  45. package/dist/dataParser/extended/array.d.ts +3 -0
  46. package/dist/dataParser/extended/array.mjs +4 -5
  47. package/dist/dataParser/extended/bigint.cjs +4 -5
  48. package/dist/dataParser/extended/bigint.d.ts +3 -0
  49. package/dist/dataParser/extended/bigint.mjs +4 -5
  50. package/dist/dataParser/extended/boolean.cjs +4 -5
  51. package/dist/dataParser/extended/boolean.d.ts +3 -0
  52. package/dist/dataParser/extended/boolean.mjs +4 -5
  53. package/dist/dataParser/extended/coerce/bigint.cjs +0 -4
  54. package/dist/dataParser/extended/coerce/bigint.mjs +0 -4
  55. package/dist/dataParser/extended/coerce/boolean.cjs +0 -4
  56. package/dist/dataParser/extended/coerce/boolean.mjs +0 -4
  57. package/dist/dataParser/extended/coerce/date.cjs +12 -0
  58. package/dist/dataParser/extended/coerce/date.d.ts +7 -0
  59. package/dist/dataParser/extended/coerce/date.mjs +10 -0
  60. package/dist/dataParser/extended/coerce/empty.cjs +0 -4
  61. package/dist/dataParser/extended/coerce/empty.mjs +0 -4
  62. package/dist/dataParser/extended/coerce/index.cjs +2 -0
  63. package/dist/dataParser/extended/coerce/index.d.ts +1 -0
  64. package/dist/dataParser/extended/coerce/index.mjs +1 -0
  65. package/dist/dataParser/extended/coerce/nil.cjs +0 -4
  66. package/dist/dataParser/extended/coerce/nil.mjs +0 -4
  67. package/dist/dataParser/extended/coerce/number.cjs +0 -4
  68. package/dist/dataParser/extended/coerce/number.mjs +0 -4
  69. package/dist/dataParser/extended/coerce/string.cjs +0 -4
  70. package/dist/dataParser/extended/coerce/string.mjs +0 -4
  71. package/dist/dataParser/extended/date.cjs +13 -0
  72. package/dist/dataParser/extended/date.d.ts +23 -0
  73. package/dist/dataParser/extended/date.mjs +11 -0
  74. package/dist/dataParser/extended/empty.cjs +4 -5
  75. package/dist/dataParser/extended/empty.d.ts +3 -0
  76. package/dist/dataParser/extended/empty.mjs +4 -5
  77. package/dist/dataParser/extended/index.cjs +15 -0
  78. package/dist/dataParser/extended/index.d.ts +3 -0
  79. package/dist/dataParser/extended/index.mjs +2 -0
  80. package/dist/dataParser/extended/lazy.cjs +4 -5
  81. package/dist/dataParser/extended/lazy.d.ts +3 -0
  82. package/dist/dataParser/extended/lazy.mjs +4 -5
  83. package/dist/dataParser/extended/literal.cjs +4 -5
  84. package/dist/dataParser/extended/literal.d.ts +3 -0
  85. package/dist/dataParser/extended/literal.mjs +4 -5
  86. package/dist/dataParser/extended/nil.cjs +4 -5
  87. package/dist/dataParser/extended/nil.d.ts +3 -0
  88. package/dist/dataParser/extended/nil.mjs +4 -5
  89. package/dist/dataParser/extended/nullable.cjs +4 -5
  90. package/dist/dataParser/extended/nullable.d.ts +3 -0
  91. package/dist/dataParser/extended/nullable.mjs +4 -5
  92. package/dist/dataParser/extended/number.cjs +4 -5
  93. package/dist/dataParser/extended/number.d.ts +3 -0
  94. package/dist/dataParser/extended/number.mjs +4 -5
  95. package/dist/dataParser/extended/object.cjs +19 -6
  96. package/dist/dataParser/extended/object.d.ts +5 -0
  97. package/dist/dataParser/extended/object.mjs +19 -6
  98. package/dist/dataParser/extended/optional.cjs +4 -5
  99. package/dist/dataParser/extended/optional.d.ts +3 -0
  100. package/dist/dataParser/extended/optional.mjs +4 -5
  101. package/dist/dataParser/extended/pipe.cjs +4 -5
  102. package/dist/dataParser/extended/pipe.d.ts +3 -0
  103. package/dist/dataParser/extended/pipe.mjs +4 -5
  104. package/dist/dataParser/extended/record.cjs +4 -5
  105. package/dist/dataParser/extended/record.d.ts +3 -0
  106. package/dist/dataParser/extended/record.mjs +4 -5
  107. package/dist/dataParser/extended/recover.cjs +4 -5
  108. package/dist/dataParser/extended/recover.d.ts +3 -0
  109. package/dist/dataParser/extended/recover.mjs +4 -5
  110. package/dist/dataParser/extended/string.cjs +4 -5
  111. package/dist/dataParser/extended/string.d.ts +3 -0
  112. package/dist/dataParser/extended/string.mjs +4 -5
  113. package/dist/dataParser/extended/templateLiteral.cjs +4 -5
  114. package/dist/dataParser/extended/templateLiteral.d.ts +3 -0
  115. package/dist/dataParser/extended/templateLiteral.mjs +4 -5
  116. package/dist/dataParser/extended/transform.cjs +4 -5
  117. package/dist/dataParser/extended/transform.d.ts +3 -0
  118. package/dist/dataParser/extended/transform.mjs +4 -5
  119. package/dist/dataParser/extended/tuple.cjs +6 -7
  120. package/dist/dataParser/extended/tuple.d.ts +3 -0
  121. package/dist/dataParser/extended/tuple.mjs +6 -7
  122. package/dist/dataParser/extended/union.cjs +4 -5
  123. package/dist/dataParser/extended/union.d.ts +3 -0
  124. package/dist/dataParser/extended/union.mjs +4 -5
  125. package/dist/dataParser/extended/unknown.cjs +4 -5
  126. package/dist/dataParser/extended/unknown.d.ts +3 -0
  127. package/dist/dataParser/extended/unknown.mjs +4 -5
  128. package/dist/dataParser/identifier.cjs +0 -2
  129. package/dist/dataParser/identifier.d.ts +52 -10
  130. package/dist/dataParser/identifier.mjs +0 -2
  131. package/dist/dataParser/index.cjs +72 -65
  132. package/dist/dataParser/index.mjs +21 -18
  133. package/dist/dataParser/kind.cjs +0 -2
  134. package/dist/dataParser/kind.mjs +0 -2
  135. package/dist/dataParser/parsers/array/index.cjs +4 -1
  136. package/dist/dataParser/parsers/array/index.d.ts +3 -0
  137. package/dist/dataParser/parsers/array/index.mjs +4 -1
  138. package/dist/dataParser/parsers/bigint/index.cjs +4 -1
  139. package/dist/dataParser/parsers/bigint/index.d.ts +3 -0
  140. package/dist/dataParser/parsers/bigint/index.mjs +4 -1
  141. package/dist/dataParser/parsers/boolean.cjs +4 -1
  142. package/dist/dataParser/parsers/boolean.d.ts +3 -0
  143. package/dist/dataParser/parsers/boolean.mjs +4 -1
  144. package/dist/dataParser/parsers/coerce/bigint.cjs +0 -4
  145. package/dist/dataParser/parsers/coerce/bigint.mjs +0 -4
  146. package/dist/dataParser/parsers/coerce/boolean.cjs +0 -4
  147. package/dist/dataParser/parsers/coerce/boolean.mjs +0 -4
  148. package/dist/dataParser/parsers/coerce/date.cjs +12 -0
  149. package/dist/dataParser/parsers/coerce/date.d.ts +6 -0
  150. package/dist/dataParser/parsers/coerce/date.mjs +10 -0
  151. package/dist/dataParser/parsers/coerce/empty.cjs +0 -4
  152. package/dist/dataParser/parsers/coerce/empty.mjs +0 -4
  153. package/dist/dataParser/parsers/coerce/index.cjs +2 -0
  154. package/dist/dataParser/parsers/coerce/index.d.ts +1 -0
  155. package/dist/dataParser/parsers/coerce/index.mjs +1 -0
  156. package/dist/dataParser/parsers/coerce/nil.cjs +0 -4
  157. package/dist/dataParser/parsers/coerce/nil.mjs +0 -4
  158. package/dist/dataParser/parsers/coerce/number.cjs +0 -4
  159. package/dist/dataParser/parsers/coerce/number.mjs +0 -4
  160. package/dist/dataParser/parsers/coerce/string.cjs +0 -4
  161. package/dist/dataParser/parsers/coerce/string.mjs +0 -4
  162. package/dist/dataParser/parsers/date.cjs +50 -0
  163. package/dist/dataParser/parsers/date.d.ts +28 -0
  164. package/dist/dataParser/parsers/date.mjs +47 -0
  165. package/dist/dataParser/parsers/empty.cjs +4 -1
  166. package/dist/dataParser/parsers/empty.d.ts +3 -0
  167. package/dist/dataParser/parsers/empty.mjs +4 -1
  168. package/dist/dataParser/parsers/index.d.ts +1 -0
  169. package/dist/dataParser/parsers/lazy.cjs +5 -4
  170. package/dist/dataParser/parsers/lazy.d.ts +3 -0
  171. package/dist/dataParser/parsers/lazy.mjs +5 -4
  172. package/dist/dataParser/parsers/literal.cjs +5 -4
  173. package/dist/dataParser/parsers/literal.d.ts +3 -0
  174. package/dist/dataParser/parsers/literal.mjs +5 -4
  175. package/dist/dataParser/parsers/nil.cjs +4 -1
  176. package/dist/dataParser/parsers/nil.d.ts +3 -0
  177. package/dist/dataParser/parsers/nil.mjs +4 -1
  178. package/dist/dataParser/parsers/nullable.cjs +4 -1
  179. package/dist/dataParser/parsers/nullable.d.ts +3 -0
  180. package/dist/dataParser/parsers/nullable.mjs +4 -1
  181. package/dist/dataParser/parsers/number/index.cjs +4 -1
  182. package/dist/dataParser/parsers/number/index.d.ts +3 -0
  183. package/dist/dataParser/parsers/number/index.mjs +4 -1
  184. package/dist/dataParser/parsers/{object.cjs → object/index.cjs} +13 -12
  185. package/dist/dataParser/parsers/{object.d.ts → object/index.d.ts} +16 -12
  186. package/dist/dataParser/parsers/{object.mjs → object/index.mjs} +13 -12
  187. package/dist/dataParser/parsers/object/omit.cjs +15 -0
  188. package/dist/dataParser/parsers/object/omit.d.ts +6 -0
  189. package/dist/dataParser/parsers/object/omit.mjs +13 -0
  190. package/dist/dataParser/parsers/object/pick.cjs +15 -0
  191. package/dist/dataParser/parsers/object/pick.d.ts +6 -0
  192. package/dist/dataParser/parsers/object/pick.mjs +13 -0
  193. package/dist/dataParser/parsers/optional.cjs +4 -1
  194. package/dist/dataParser/parsers/optional.d.ts +3 -0
  195. package/dist/dataParser/parsers/optional.mjs +4 -1
  196. package/dist/dataParser/parsers/pipe.cjs +4 -1
  197. package/dist/dataParser/parsers/pipe.d.ts +3 -0
  198. package/dist/dataParser/parsers/pipe.mjs +4 -1
  199. package/dist/dataParser/parsers/record/findRecordRequiredKey.cjs +17 -20
  200. package/dist/dataParser/parsers/record/findRecordRequiredKey.mjs +17 -20
  201. package/dist/dataParser/parsers/record/index.cjs +4 -1
  202. package/dist/dataParser/parsers/record/index.d.ts +3 -0
  203. package/dist/dataParser/parsers/record/index.mjs +4 -1
  204. package/dist/dataParser/parsers/recover.cjs +4 -1
  205. package/dist/dataParser/parsers/recover.d.ts +3 -0
  206. package/dist/dataParser/parsers/recover.mjs +4 -1
  207. package/dist/dataParser/parsers/string/index.cjs +4 -1
  208. package/dist/dataParser/parsers/string/index.d.ts +3 -0
  209. package/dist/dataParser/parsers/string/index.mjs +4 -1
  210. package/dist/dataParser/parsers/templateLiteral/createTemplateLiteralPattern.cjs +14 -17
  211. package/dist/dataParser/parsers/templateLiteral/createTemplateLiteralPattern.mjs +14 -17
  212. package/dist/dataParser/parsers/templateLiteral/index.cjs +5 -4
  213. package/dist/dataParser/parsers/templateLiteral/index.d.ts +3 -0
  214. package/dist/dataParser/parsers/templateLiteral/index.mjs +5 -4
  215. package/dist/dataParser/parsers/transform.cjs +4 -1
  216. package/dist/dataParser/parsers/transform.d.ts +3 -0
  217. package/dist/dataParser/parsers/transform.mjs +4 -1
  218. package/dist/dataParser/parsers/tuple.cjs +4 -1
  219. package/dist/dataParser/parsers/tuple.d.ts +3 -0
  220. package/dist/dataParser/parsers/tuple.mjs +4 -1
  221. package/dist/dataParser/parsers/union.cjs +4 -1
  222. package/dist/dataParser/parsers/union.d.ts +3 -0
  223. package/dist/dataParser/parsers/union.mjs +4 -1
  224. package/dist/dataParser/parsers/unknown.cjs +4 -1
  225. package/dist/dataParser/parsers/unknown.d.ts +3 -0
  226. package/dist/dataParser/parsers/unknown.mjs +4 -1
  227. package/dist/dataParser/types/dataParsers.d.ts +2 -2
  228. package/dist/date/closestTo.cjs +32 -0
  229. package/dist/date/closestTo.d.ts +7 -0
  230. package/dist/date/closestTo.mjs +30 -0
  231. package/dist/date/constants.cjs +29 -0
  232. package/dist/date/constants.d.ts +13 -0
  233. package/dist/date/constants.mjs +15 -0
  234. package/dist/date/create.cjs +50 -0
  235. package/dist/date/create.d.ts +16 -0
  236. package/dist/date/create.mjs +48 -0
  237. package/dist/date/createOrThrow.cjs +25 -0
  238. package/dist/date/createOrThrow.d.ts +10 -0
  239. package/dist/date/createOrThrow.mjs +22 -0
  240. package/dist/date/each.cjs +47 -0
  241. package/dist/date/each.d.ts +5 -0
  242. package/dist/date/each.mjs +45 -0
  243. package/dist/date/getters/getDayOfMonth.cjs +17 -0
  244. package/dist/date/getters/getDayOfMonth.d.ts +2 -0
  245. package/dist/date/getters/getDayOfMonth.mjs +15 -0
  246. package/dist/date/getters/getDayOfWeek.cjs +27 -0
  247. package/dist/date/getters/getDayOfWeek.d.ts +2 -0
  248. package/dist/date/getters/getDayOfWeek.mjs +25 -0
  249. package/dist/date/getters/getDayOfYear.cjs +34 -0
  250. package/dist/date/getters/getDayOfYear.d.ts +2 -0
  251. package/dist/date/getters/getDayOfYear.mjs +32 -0
  252. package/dist/date/getters/getFirstDayOfMonth.cjs +14 -0
  253. package/dist/date/getters/getFirstDayOfMonth.d.ts +2 -0
  254. package/dist/date/getters/getFirstDayOfMonth.mjs +12 -0
  255. package/dist/date/getters/getFirstDayOfWeek.cjs +16 -0
  256. package/dist/date/getters/getFirstDayOfWeek.d.ts +2 -0
  257. package/dist/date/getters/getFirstDayOfWeek.mjs +14 -0
  258. package/dist/date/getters/getHour.cjs +18 -0
  259. package/dist/date/getters/getHour.d.ts +2 -0
  260. package/dist/date/getters/getHour.mjs +16 -0
  261. package/dist/date/getters/getLastDayOfMonth.cjs +14 -0
  262. package/dist/date/getters/getLastDayOfMonth.d.ts +2 -0
  263. package/dist/date/getters/getLastDayOfMonth.mjs +12 -0
  264. package/dist/date/getters/getLastDayOfWeek.cjs +16 -0
  265. package/dist/date/getters/getLastDayOfWeek.d.ts +2 -0
  266. package/dist/date/getters/getLastDayOfWeek.mjs +14 -0
  267. package/dist/date/getters/getMilliseconds.cjs +10 -0
  268. package/dist/date/getters/getMilliseconds.d.ts +2 -0
  269. package/dist/date/getters/getMilliseconds.mjs +8 -0
  270. package/dist/date/getters/getMinute.cjs +17 -0
  271. package/dist/date/getters/getMinute.d.ts +2 -0
  272. package/dist/date/getters/getMinute.mjs +15 -0
  273. package/dist/date/getters/getMonth.cjs +17 -0
  274. package/dist/date/getters/getMonth.d.ts +2 -0
  275. package/dist/date/getters/getMonth.mjs +15 -0
  276. package/dist/date/getters/getSecond.cjs +17 -0
  277. package/dist/date/getters/getSecond.d.ts +2 -0
  278. package/dist/date/getters/getSecond.mjs +15 -0
  279. package/dist/date/getters/getWeekOfYear.cjs +37 -0
  280. package/dist/date/getters/getWeekOfYear.d.ts +2 -0
  281. package/dist/date/getters/getWeekOfYear.mjs +35 -0
  282. package/dist/date/getters/getYear.cjs +17 -0
  283. package/dist/date/getters/getYear.d.ts +2 -0
  284. package/dist/date/getters/getYear.mjs +15 -0
  285. package/dist/date/getters/index.d.ts +15 -0
  286. package/dist/date/index.cjs +121 -0
  287. package/dist/date/index.d.ts +18 -0
  288. package/dist/date/index.mjs +51 -0
  289. package/dist/date/isSafeTimestamp.cjs +15 -0
  290. package/dist/date/isSafeTimestamp.d.ts +1 -0
  291. package/dist/date/isSafeTimestamp.mjs +13 -0
  292. package/dist/date/now.cjs +8 -0
  293. package/dist/date/now.d.ts +1 -0
  294. package/dist/date/now.mjs +6 -0
  295. package/dist/date/operators/addDays.cjs +20 -0
  296. package/dist/date/operators/addDays.d.ts +4 -0
  297. package/dist/date/operators/addDays.mjs +18 -0
  298. package/dist/date/operators/addHours.cjs +20 -0
  299. package/dist/date/operators/addHours.d.ts +4 -0
  300. package/dist/date/operators/addHours.mjs +18 -0
  301. package/dist/date/operators/addMilliseconds.cjs +19 -0
  302. package/dist/date/operators/addMilliseconds.d.ts +4 -0
  303. package/dist/date/operators/addMilliseconds.mjs +17 -0
  304. package/dist/date/operators/addMinutes.cjs +20 -0
  305. package/dist/date/operators/addMinutes.d.ts +4 -0
  306. package/dist/date/operators/addMinutes.mjs +18 -0
  307. package/dist/date/operators/addMonths.cjs +19 -0
  308. package/dist/date/operators/addMonths.d.ts +4 -0
  309. package/dist/date/operators/addMonths.mjs +17 -0
  310. package/dist/date/operators/addSeconds.cjs +20 -0
  311. package/dist/date/operators/addSeconds.d.ts +4 -0
  312. package/dist/date/operators/addSeconds.mjs +18 -0
  313. package/dist/date/operators/addWeeks.cjs +20 -0
  314. package/dist/date/operators/addWeeks.d.ts +4 -0
  315. package/dist/date/operators/addWeeks.mjs +18 -0
  316. package/dist/date/operators/addYears.cjs +19 -0
  317. package/dist/date/operators/addYears.d.ts +4 -0
  318. package/dist/date/operators/addYears.mjs +17 -0
  319. package/dist/date/operators/between.cjs +17 -0
  320. package/dist/date/operators/between.d.ts +3 -0
  321. package/dist/date/operators/between.mjs +15 -0
  322. package/dist/date/operators/betweenThan.cjs +17 -0
  323. package/dist/date/operators/betweenThan.d.ts +3 -0
  324. package/dist/date/operators/betweenThan.mjs +15 -0
  325. package/dist/date/operators/greater.cjs +16 -0
  326. package/dist/date/operators/greater.d.ts +3 -0
  327. package/dist/date/operators/greater.mjs +14 -0
  328. package/dist/date/operators/greaterThan.cjs +16 -0
  329. package/dist/date/operators/greaterThan.d.ts +3 -0
  330. package/dist/date/operators/greaterThan.mjs +14 -0
  331. package/dist/date/operators/index.d.ts +22 -0
  332. package/dist/date/operators/less.cjs +16 -0
  333. package/dist/date/operators/less.d.ts +3 -0
  334. package/dist/date/operators/less.mjs +14 -0
  335. package/dist/date/operators/lessThan.cjs +16 -0
  336. package/dist/date/operators/lessThan.d.ts +3 -0
  337. package/dist/date/operators/lessThan.mjs +14 -0
  338. package/dist/date/operators/subtractDays.cjs +20 -0
  339. package/dist/date/operators/subtractDays.d.ts +4 -0
  340. package/dist/date/operators/subtractDays.mjs +18 -0
  341. package/dist/date/operators/subtractHours.cjs +20 -0
  342. package/dist/date/operators/subtractHours.d.ts +4 -0
  343. package/dist/date/operators/subtractHours.mjs +18 -0
  344. package/dist/date/operators/subtractMilliseconds.cjs +19 -0
  345. package/dist/date/operators/subtractMilliseconds.d.ts +4 -0
  346. package/dist/date/operators/subtractMilliseconds.mjs +17 -0
  347. package/dist/date/operators/subtractMinutes.cjs +20 -0
  348. package/dist/date/operators/subtractMinutes.d.ts +4 -0
  349. package/dist/date/operators/subtractMinutes.mjs +18 -0
  350. package/dist/date/operators/subtractMonths.cjs +19 -0
  351. package/dist/date/operators/subtractMonths.d.ts +4 -0
  352. package/dist/date/operators/subtractMonths.mjs +17 -0
  353. package/dist/date/operators/subtractSeconds.cjs +20 -0
  354. package/dist/date/operators/subtractSeconds.d.ts +4 -0
  355. package/dist/date/operators/subtractSeconds.mjs +18 -0
  356. package/dist/date/operators/subtractWeeks.cjs +20 -0
  357. package/dist/date/operators/subtractWeeks.d.ts +4 -0
  358. package/dist/date/operators/subtractWeeks.mjs +18 -0
  359. package/dist/date/operators/subtractYears.cjs +19 -0
  360. package/dist/date/operators/subtractYears.d.ts +4 -0
  361. package/dist/date/operators/subtractYears.mjs +17 -0
  362. package/dist/date/round.cjs +23 -0
  363. package/dist/date/round.d.ts +3 -0
  364. package/dist/date/round.mjs +21 -0
  365. package/dist/date/toISOString.cjs +10 -0
  366. package/dist/date/toISOString.d.ts +2 -0
  367. package/dist/date/toISOString.mjs +8 -0
  368. package/dist/date/toNative.cjs +10 -0
  369. package/dist/date/toNative.d.ts +2 -0
  370. package/dist/date/toNative.mjs +8 -0
  371. package/dist/date/toTimestamp.cjs +31 -0
  372. package/dist/date/toTimestamp.d.ts +10 -0
  373. package/dist/date/toTimestamp.mjs +28 -0
  374. package/dist/date/today.cjs +8 -0
  375. package/dist/date/today.d.ts +1 -0
  376. package/dist/date/today.mjs +6 -0
  377. package/dist/date/tomorrow.cjs +10 -0
  378. package/dist/date/tomorrow.d.ts +1 -0
  379. package/dist/date/tomorrow.mjs +8 -0
  380. package/dist/date/types/index.d.ts +6 -0
  381. package/dist/date/types/isLeapYear.d.ts +8 -0
  382. package/dist/date/types/month.d.ts +9 -0
  383. package/dist/date/types/theDate.d.ts +1 -0
  384. package/dist/date/types/time.d.ts +5 -0
  385. package/dist/date/types/timezone.cjs +606 -0
  386. package/dist/date/types/timezone.d.ts +604 -0
  387. package/dist/date/types/timezone.mjs +604 -0
  388. package/dist/date/types/unit.d.ts +1 -0
  389. package/dist/date/yesterday.cjs +10 -0
  390. package/dist/date/yesterday.d.ts +1 -0
  391. package/dist/date/yesterday.mjs +8 -0
  392. package/dist/either/bool/falsy.cjs +2 -4
  393. package/dist/either/bool/falsy.mjs +2 -4
  394. package/dist/either/bool/truthy.cjs +4 -6
  395. package/dist/either/bool/truthy.mjs +4 -6
  396. package/dist/either/future/create.cjs +0 -2
  397. package/dist/either/future/create.mjs +0 -2
  398. package/dist/either/future/error.cjs +2 -4
  399. package/dist/either/future/error.mjs +2 -4
  400. package/dist/either/future/success.cjs +0 -2
  401. package/dist/either/future/success.mjs +0 -2
  402. package/dist/either/index.cjs +7 -7
  403. package/dist/either/index.mjs +3 -3
  404. package/dist/either/kind.cjs +0 -2
  405. package/dist/either/kind.mjs +0 -2
  406. package/dist/either/left/when.cjs +1 -3
  407. package/dist/either/left/when.mjs +1 -3
  408. package/dist/either/nullable/empty.cjs +3 -5
  409. package/dist/either/nullable/empty.mjs +3 -5
  410. package/dist/either/nullable/filled.cjs +4 -6
  411. package/dist/either/nullable/filled.mjs +4 -6
  412. package/dist/either/nullish/empty.cjs +3 -5
  413. package/dist/either/nullish/empty.mjs +3 -5
  414. package/dist/either/nullish/filled.cjs +3 -5
  415. package/dist/either/nullish/filled.mjs +3 -5
  416. package/dist/either/optional/empty.cjs +0 -2
  417. package/dist/either/optional/empty.mjs +0 -2
  418. package/dist/either/optional/filled.cjs +4 -6
  419. package/dist/either/optional/filled.mjs +4 -6
  420. package/dist/either/right/asyncPipe.cjs +2 -4
  421. package/dist/either/right/asyncPipe.d.ts +5 -0
  422. package/dist/either/right/asyncPipe.mjs +2 -4
  423. package/dist/either/right/pipe.cjs +1 -3
  424. package/dist/either/right/pipe.d.ts +5 -0
  425. package/dist/either/right/pipe.mjs +1 -3
  426. package/dist/either/right/when.cjs +1 -3
  427. package/dist/either/right/when.mjs +1 -3
  428. package/dist/either/whenHasInformation.cjs +1 -3
  429. package/dist/either/whenHasInformation.mjs +1 -3
  430. package/dist/generator/asyncReduce.cjs +0 -2
  431. package/dist/generator/asyncReduce.mjs +0 -2
  432. package/dist/generator/reduce.cjs +0 -2
  433. package/dist/generator/reduce.mjs +0 -2
  434. package/dist/index.cjs +39 -30
  435. package/dist/index.d.ts +2 -0
  436. package/dist/index.mjs +36 -30
  437. package/dist/number/between.cjs +12 -0
  438. package/dist/number/between.d.ts +2 -0
  439. package/dist/number/between.mjs +10 -0
  440. package/dist/number/betweenThan.cjs +12 -0
  441. package/dist/number/betweenThan.d.ts +2 -0
  442. package/dist/number/betweenThan.mjs +10 -0
  443. package/dist/number/index.cjs +4 -0
  444. package/dist/number/index.d.ts +3 -0
  445. package/dist/number/index.mjs +2 -0
  446. package/dist/number/types/index.d.ts +1 -0
  447. package/dist/number/types/positiveNumber.d.ts +1 -0
  448. package/dist/object/deepDiscriminate.cjs +1 -3
  449. package/dist/object/deepDiscriminate.mjs +1 -3
  450. package/dist/object/discriminate.cjs +0 -2
  451. package/dist/object/discriminate.mjs +0 -2
  452. package/dist/object/entries.cjs +1 -3
  453. package/dist/object/entries.mjs +1 -3
  454. package/dist/object/entry.d.ts +2 -2
  455. package/dist/object/fromEntries.d.ts +5 -3
  456. package/dist/object/keys.cjs +1 -3
  457. package/dist/object/keys.mjs +1 -3
  458. package/dist/object/values.cjs +1 -3
  459. package/dist/object/values.mjs +1 -3
  460. package/dist/pattern/exhaustive.cjs +0 -2
  461. package/dist/pattern/exhaustive.mjs +0 -2
  462. package/dist/pattern/index.cjs +7 -4
  463. package/dist/pattern/index.mjs +3 -2
  464. package/dist/pattern/match/builder.cjs +56 -0
  465. package/dist/pattern/match/builder.d.ts +30 -0
  466. package/dist/pattern/match/builder.mjs +53 -0
  467. package/dist/pattern/match/index.cjs +28 -0
  468. package/dist/pattern/{match.d.ts → match/index.d.ts} +7 -4
  469. package/dist/pattern/match/index.mjs +25 -0
  470. package/dist/pattern/otherwise.cjs +1 -3
  471. package/dist/pattern/otherwise.mjs +1 -3
  472. package/dist/pattern/result.cjs +0 -2
  473. package/dist/pattern/result.mjs +0 -2
  474. package/dist/pattern/types/complexUnMatchedValue/array.d.ts +1 -1
  475. package/dist/string/index.cjs +12 -12
  476. package/dist/string/index.mjs +6 -6
  477. package/dist/string/replace.cjs +15 -0
  478. package/dist/string/replace.d.ts +10 -2
  479. package/dist/string/replace.mjs +15 -0
  480. package/package.json +7 -1
  481. package/dist/pattern/match.cjs +0 -18
  482. package/dist/pattern/match.mjs +0 -16
@@ -1,10 +1,11 @@
1
1
  import { dataParserInit, SymbolDataParserError } from '../base.mjs';
2
2
  import { SymbolDataParserErrorPromiseIssue } from '../error.mjs';
3
3
  import { createDataParserKind } from '../kind.mjs';
4
+ import { createOverride } from '../../common/override.mjs';
4
5
 
5
6
  const transformKind = createDataParserKind("transform");
6
7
  function transform(inner, theFunction, definition) {
7
- return dataParserInit(transformKind, {
8
+ const self = dataParserInit(transformKind, {
8
9
  definition: {
9
10
  errorMessage: definition?.errorMessage,
10
11
  checkers: definition?.checkers ?? [],
@@ -35,6 +36,8 @@ function transform(inner, theFunction, definition) {
35
36
  return result;
36
37
  },
37
38
  });
39
+ return transform.overrideHandler.apply(self);
38
40
  }
41
+ transform.overrideHandler = createOverride("@duplojs/utils/data-parser/transform");
39
42
 
40
43
  export { transform, transformKind };
@@ -3,10 +3,11 @@
3
3
  var base = require('../base.cjs');
4
4
  var error = require('../error.cjs');
5
5
  var kind = require('../kind.cjs');
6
+ var override = require('../../common/override.cjs');
6
7
 
7
8
  const tupleKind = kind.createDataParserKind("tuple");
8
9
  function tuple(shape, definition) {
9
- return base.dataParserInit(tupleKind, {
10
+ const self = base.dataParserInit(tupleKind, {
10
11
  definition: {
11
12
  errorMessage: definition?.errorMessage,
12
13
  checkers: definition?.checkers ?? [],
@@ -77,7 +78,9 @@ function tuple(shape, definition) {
77
78
  return output;
78
79
  },
79
80
  });
81
+ return tuple.overrideHandler.apply(self);
80
82
  }
83
+ tuple.overrideHandler = override.createOverride("@duplojs/utils/data-parser/tuple");
81
84
 
82
85
  exports.tuple = tuple;
83
86
  exports.tupleKind = tupleKind;
@@ -40,4 +40,7 @@ export interface DataParserTuple<GenericDefinition extends DataParserDefinitionT
40
40
  export declare function tuple<GenericShape extends TupleShape, const GenericDefinition extends Partial<Omit<DataParserDefinitionTuple, "shape">> = never>(shape: GenericShape, definition?: GenericDefinition): DataParserTuple<MergeDefinition<DataParserDefinitionTuple, NeverCoalescing<GenericDefinition, {}> & {
41
41
  shape: GenericShape;
42
42
  }>>;
43
+ export declare namespace tuple {
44
+ var overrideHandler: import("../../common").OverrideHandler<DataParserTuple<DataParserDefinitionTuple>>;
45
+ }
43
46
  export {};
@@ -1,10 +1,11 @@
1
1
  import { dataParserInit, SymbolDataParserError } from '../base.mjs';
2
2
  import { SymbolDataParserErrorIssue, setErrorPath, popErrorPath } from '../error.mjs';
3
3
  import { createDataParserKind } from '../kind.mjs';
4
+ import { createOverride } from '../../common/override.mjs';
4
5
 
5
6
  const tupleKind = createDataParserKind("tuple");
6
7
  function tuple(shape, definition) {
7
- return dataParserInit(tupleKind, {
8
+ const self = dataParserInit(tupleKind, {
8
9
  definition: {
9
10
  errorMessage: definition?.errorMessage,
10
11
  checkers: definition?.checkers ?? [],
@@ -75,6 +76,8 @@ function tuple(shape, definition) {
75
76
  return output;
76
77
  },
77
78
  });
79
+ return tuple.overrideHandler.apply(self);
78
80
  }
81
+ tuple.overrideHandler = createOverride("@duplojs/utils/data-parser/tuple");
79
82
 
80
83
  export { tuple, tupleKind };
@@ -3,10 +3,11 @@
3
3
  var base = require('../base.cjs');
4
4
  var error = require('../error.cjs');
5
5
  var kind = require('../kind.cjs');
6
+ var override = require('../../common/override.cjs');
6
7
 
7
8
  const unionKind = kind.createDataParserKind("union");
8
9
  function union(options, definition) {
9
- return base.dataParserInit(unionKind, {
10
+ const self = base.dataParserInit(unionKind, {
10
11
  definition: {
11
12
  errorMessage: definition?.errorMessage,
12
13
  checkers: definition?.checkers ?? [],
@@ -32,7 +33,9 @@ function union(options, definition) {
32
33
  return error.SymbolDataParserErrorIssue;
33
34
  },
34
35
  });
36
+ return union.overrideHandler.apply(self);
35
37
  }
38
+ union.overrideHandler = override.createOverride("@duplojs/utils/data-parser/union");
36
39
 
37
40
  exports.union = union;
38
41
  exports.unionKind = unionKind;
@@ -24,4 +24,7 @@ export interface DataParserUnion<GenericDefinition extends DataParserDefinitionU
24
24
  export declare function union<GenericOptions extends UnionOptions, const GenericDefinition extends Partial<Omit<DataParserDefinitionUnion, "options">> = never>(options: GenericOptions, definition?: GenericDefinition): DataParserUnion<MergeDefinition<DataParserDefinitionUnion, NeverCoalescing<GenericDefinition, {}> & {
25
25
  options: GenericOptions;
26
26
  }>>;
27
+ export declare namespace union {
28
+ var overrideHandler: import("../../common").OverrideHandler<DataParserUnion<DataParserDefinitionUnion>>;
29
+ }
27
30
  export {};
@@ -1,10 +1,11 @@
1
1
  import { dataParserInit, SymbolDataParserError } from '../base.mjs';
2
2
  import { SymbolDataParserErrorIssue } from '../error.mjs';
3
3
  import { createDataParserKind } from '../kind.mjs';
4
+ import { createOverride } from '../../common/override.mjs';
4
5
 
5
6
  const unionKind = createDataParserKind("union");
6
7
  function union(options, definition) {
7
- return dataParserInit(unionKind, {
8
+ const self = dataParserInit(unionKind, {
8
9
  definition: {
9
10
  errorMessage: definition?.errorMessage,
10
11
  checkers: definition?.checkers ?? [],
@@ -30,6 +31,8 @@ function union(options, definition) {
30
31
  return SymbolDataParserErrorIssue;
31
32
  },
32
33
  });
34
+ return union.overrideHandler.apply(self);
33
35
  }
36
+ union.overrideHandler = createOverride("@duplojs/utils/data-parser/union");
34
37
 
35
38
  export { union, unionKind };
@@ -2,16 +2,19 @@
2
2
 
3
3
  var base = require('../base.cjs');
4
4
  var kind = require('../kind.cjs');
5
+ var override = require('../../common/override.cjs');
5
6
 
6
7
  const unknownKind = kind.createDataParserKind("unknown");
7
8
  function unknown(definition) {
8
- return base.dataParserInit(unknownKind, {
9
+ const self = base.dataParserInit(unknownKind, {
9
10
  definition: {
10
11
  errorMessage: definition?.errorMessage,
11
12
  checkers: definition?.checkers ?? [],
12
13
  },
13
14
  }, (data) => data);
15
+ return unknown.overrideHandler.apply(self);
14
16
  }
17
+ unknown.overrideHandler = override.createOverride("@duplojs/utils/data-parser/unknown");
15
18
 
16
19
  exports.unknown = unknown;
17
20
  exports.unknownKind = unknownKind;
@@ -20,4 +20,7 @@ export interface DataParserUnknown<GenericDefinition extends DataParserDefinitio
20
20
  ], GenericChecker>): DataParserUnknown<AddCheckersToDefinition<GenericDefinition, GenericChecker>>;
21
21
  }
22
22
  export declare function unknown<const GenericDefinition extends Partial<DataParserDefinitionUnknown> = never>(definition?: GenericDefinition): DataParserUnknown<MergeDefinition<DataParserDefinitionUnknown, NeverCoalescing<GenericDefinition, {}>>>;
23
+ export declare namespace unknown {
24
+ var overrideHandler: import("../../common").OverrideHandler<DataParserUnknown<DataParserDefinitionUnknown>>;
25
+ }
23
26
  export {};
@@ -1,14 +1,17 @@
1
1
  import { dataParserInit } from '../base.mjs';
2
2
  import { createDataParserKind } from '../kind.mjs';
3
+ import { createOverride } from '../../common/override.mjs';
3
4
 
4
5
  const unknownKind = createDataParserKind("unknown");
5
6
  function unknown(definition) {
6
- return dataParserInit(unknownKind, {
7
+ const self = dataParserInit(unknownKind, {
7
8
  definition: {
8
9
  errorMessage: definition?.errorMessage,
9
10
  checkers: definition?.checkers ?? [],
10
11
  },
11
12
  }, (data) => data);
13
+ return unknown.overrideHandler.apply(self);
12
14
  }
15
+ unknown.overrideHandler = createOverride("@duplojs/utils/data-parser/unknown");
13
16
 
14
17
  export { unknown, unknownKind };
@@ -6,8 +6,8 @@ import { type DataParserExtended } from "../baseExtended";
6
6
  export interface DataParserCustom {
7
7
  base: DataParser;
8
8
  }
9
- export type DataParsers = (DataParserCustom[GetPropsWithValueExtends<DataParserCustom, DataParser>] | AllDataParser.DataParserString | AllDataParser.DataParserObject | AllDataParser.DataParserNumber | AllDataParser.DataParserLiteral | AllDataParser.DataParserUnion | AllDataParser.DataParserArray | AllDataParser.DataParserBigInt | AllDataParser.DataParserTuple | AllDataParser.DataParserTransform | AllDataParser.DataParserBoolean | AllDataParser.DataParserNil | AllDataParser.DataParserEmpty | AllDataParser.DataParserTemplateLiteral | AllDataParser.DataParserPipe | AllDataParser.DataParserNullable | AllDataParser.DataParserOptional | AllDataParser.DataParserLazy | AllDataParser.DataParserUnknown | AllDataParser.DataParserRecord | AllDataParser.DataParserRecover);
9
+ export type DataParsers = (DataParserCustom[GetPropsWithValueExtends<DataParserCustom, DataParser>] | AllDataParser.DataParserString | AllDataParser.DataParserObject | AllDataParser.DataParserNumber | AllDataParser.DataParserLiteral | AllDataParser.DataParserUnion | AllDataParser.DataParserArray | AllDataParser.DataParserBigInt | AllDataParser.DataParserTuple | AllDataParser.DataParserTransform | AllDataParser.DataParserBoolean | AllDataParser.DataParserDate | AllDataParser.DataParserNil | AllDataParser.DataParserEmpty | AllDataParser.DataParserTemplateLiteral | AllDataParser.DataParserPipe | AllDataParser.DataParserNullable | AllDataParser.DataParserOptional | AllDataParser.DataParserLazy | AllDataParser.DataParserUnknown | AllDataParser.DataParserRecord | AllDataParser.DataParserRecover);
10
10
  export interface DataParserExtendedCustom {
11
11
  base: DataParserExtended;
12
12
  }
13
- export type DataParsersExtended = (DataParserExtendedCustom[GetPropsWithValueExtends<DataParserExtendedCustom, DataParserExtended>] | AllDataParserExtended.DataParserStringExtended | AllDataParserExtended.DataParserObjectExtended | AllDataParserExtended.DataParserNumberExtended | AllDataParserExtended.DataParserLiteralExtended | AllDataParserExtended.DataParserUnionExtended | AllDataParserExtended.DataParserArrayExtended | AllDataParserExtended.DataParserBigIntExtended | AllDataParserExtended.DataParserTupleExtended | AllDataParserExtended.DataParserTransformExtended | AllDataParserExtended.DataParserBooleanExtended | AllDataParserExtended.DataParserNilExtended | AllDataParserExtended.DataParserEmptyExtended | AllDataParserExtended.DataParserTemplateLiteralExtended | AllDataParserExtended.DataParserPipeExtended | AllDataParserExtended.DataParserNullableExtended | AllDataParserExtended.DataParserOptionalExtended | AllDataParserExtended.DataParserLazyExtended | AllDataParserExtended.DataParserUnknownExtended | AllDataParserExtended.DataParserRecordExtended | AllDataParserExtended.DataParserRecoverExtended);
13
+ export type DataParsersExtended = (DataParserExtendedCustom[GetPropsWithValueExtends<DataParserExtendedCustom, DataParserExtended>] | AllDataParserExtended.DataParserStringExtended | AllDataParserExtended.DataParserObjectExtended | AllDataParserExtended.DataParserNumberExtended | AllDataParserExtended.DataParserLiteralExtended | AllDataParserExtended.DataParserUnionExtended | AllDataParserExtended.DataParserArrayExtended | AllDataParserExtended.DataParserBigIntExtended | AllDataParserExtended.DataParserTupleExtended | AllDataParserExtended.DataParserTransformExtended | AllDataParserExtended.DataParserBooleanExtended | AllDataParserExtended.DataParserDateExtended | AllDataParserExtended.DataParserNilExtended | AllDataParserExtended.DataParserEmptyExtended | AllDataParserExtended.DataParserTemplateLiteralExtended | AllDataParserExtended.DataParserPipeExtended | AllDataParserExtended.DataParserNullableExtended | AllDataParserExtended.DataParserOptionalExtended | AllDataParserExtended.DataParserLazyExtended | AllDataParserExtended.DataParserUnknownExtended | AllDataParserExtended.DataParserRecordExtended | AllDataParserExtended.DataParserRecoverExtended);
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ var toTimestamp = require('./toTimestamp.cjs');
4
+
5
+ function closestTo(...args) {
6
+ if (typeof args[0] === "string") {
7
+ const [target, params] = args;
8
+ return (input) => closestTo(input, target, params);
9
+ }
10
+ const [input, target, params] = args;
11
+ const { tieBreaker } = params ?? {};
12
+ const targetTimestamp = toTimestamp.toTimestamp(target);
13
+ let closest = undefined;
14
+ let smallestDiff = Number.POSITIVE_INFINITY;
15
+ for (const value of input) {
16
+ const valueTimestamp = toTimestamp.toTimestamp(value);
17
+ if (tieBreaker === "favorPast" && valueTimestamp > targetTimestamp) {
18
+ continue;
19
+ }
20
+ if (tieBreaker === "favorFuture" && valueTimestamp < targetTimestamp) {
21
+ continue;
22
+ }
23
+ const distance = Math.abs(valueTimestamp - targetTimestamp);
24
+ if (distance < smallestDiff) {
25
+ smallestDiff = distance;
26
+ closest = value;
27
+ }
28
+ }
29
+ return closest;
30
+ }
31
+
32
+ exports.closestTo = closestTo;
@@ -0,0 +1,7 @@
1
+ import type { TheDate } from "./types";
2
+ interface ClosestToParams {
3
+ tieBreaker?: "favorPast" | "favorFuture";
4
+ }
5
+ export declare function closestTo<GenericIterable extends Iterable<TheDate>>(target: TheDate, params?: ClosestToParams): (input: GenericIterable) => TheDate | undefined;
6
+ export declare function closestTo<GenericIterable extends Iterable<TheDate>>(input: GenericIterable, target: TheDate, params?: ClosestToParams): TheDate | undefined;
7
+ export {};
@@ -0,0 +1,30 @@
1
+ import { toTimestamp } from './toTimestamp.mjs';
2
+
3
+ function closestTo(...args) {
4
+ if (typeof args[0] === "string") {
5
+ const [target, params] = args;
6
+ return (input) => closestTo(input, target, params);
7
+ }
8
+ const [input, target, params] = args;
9
+ const { tieBreaker } = params ?? {};
10
+ const targetTimestamp = toTimestamp(target);
11
+ let closest = undefined;
12
+ let smallestDiff = Number.POSITIVE_INFINITY;
13
+ for (const value of input) {
14
+ const valueTimestamp = toTimestamp(value);
15
+ if (tieBreaker === "favorPast" && valueTimestamp > targetTimestamp) {
16
+ continue;
17
+ }
18
+ if (tieBreaker === "favorFuture" && valueTimestamp < targetTimestamp) {
19
+ continue;
20
+ }
21
+ const distance = Math.abs(valueTimestamp - targetTimestamp);
22
+ if (distance < smallestDiff) {
23
+ smallestDiff = distance;
24
+ closest = value;
25
+ }
26
+ }
27
+ return closest;
28
+ }
29
+
30
+ export { closestTo };
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ const minTimestamp = -864e13;
4
+ const maxTimestamp = 8640000000000000;
5
+ const millisecondInOneWeek = 604800000;
6
+ const millisecondsInOneDay = 86400000;
7
+ const millisecondInOneHour = 3600000;
8
+ const millisecondInOneMinute = 60000;
9
+ const daysInOneWeek = 7;
10
+ const monthtsInOneYear = 12;
11
+ const minutesInOneHour = 60;
12
+ const secondsInOneMinute = 60;
13
+ const millisecondsInOneSecond = 1000;
14
+ const hoursInOneDay = 24;
15
+ const theDateRegex = /^date(?<value>\d{1,16})(?<sign>[+-])$/;
16
+
17
+ exports.daysInOneWeek = daysInOneWeek;
18
+ exports.hoursInOneDay = hoursInOneDay;
19
+ exports.maxTimestamp = maxTimestamp;
20
+ exports.millisecondInOneHour = millisecondInOneHour;
21
+ exports.millisecondInOneMinute = millisecondInOneMinute;
22
+ exports.millisecondInOneWeek = millisecondInOneWeek;
23
+ exports.millisecondsInOneDay = millisecondsInOneDay;
24
+ exports.millisecondsInOneSecond = millisecondsInOneSecond;
25
+ exports.minTimestamp = minTimestamp;
26
+ exports.minutesInOneHour = minutesInOneHour;
27
+ exports.monthtsInOneYear = monthtsInOneYear;
28
+ exports.secondsInOneMinute = secondsInOneMinute;
29
+ exports.theDateRegex = theDateRegex;
@@ -0,0 +1,13 @@
1
+ export declare const minTimestamp = -8640000000000000;
2
+ export declare const maxTimestamp = 8640000000000000;
3
+ export declare const millisecondInOneWeek = 604800000;
4
+ export declare const millisecondsInOneDay = 86400000;
5
+ export declare const millisecondInOneHour = 3600000;
6
+ export declare const millisecondInOneMinute = 60000;
7
+ export declare const daysInOneWeek = 7;
8
+ export declare const monthtsInOneYear = 12;
9
+ export declare const minutesInOneHour = 60;
10
+ export declare const secondsInOneMinute = 60;
11
+ export declare const millisecondsInOneSecond = 1000;
12
+ export declare const hoursInOneDay = 24;
13
+ export declare const theDateRegex: RegExp;
@@ -0,0 +1,15 @@
1
+ const minTimestamp = -864e13;
2
+ const maxTimestamp = 8640000000000000;
3
+ const millisecondInOneWeek = 604800000;
4
+ const millisecondsInOneDay = 86400000;
5
+ const millisecondInOneHour = 3600000;
6
+ const millisecondInOneMinute = 60000;
7
+ const daysInOneWeek = 7;
8
+ const monthtsInOneYear = 12;
9
+ const minutesInOneHour = 60;
10
+ const secondsInOneMinute = 60;
11
+ const millisecondsInOneSecond = 1000;
12
+ const hoursInOneDay = 24;
13
+ const theDateRegex = /^date(?<value>\d{1,16})(?<sign>[+-])$/;
14
+
15
+ export { daysInOneWeek, hoursInOneDay, maxTimestamp, millisecondInOneHour, millisecondInOneMinute, millisecondInOneWeek, millisecondsInOneDay, millisecondsInOneSecond, minTimestamp, minutesInOneHour, monthtsInOneYear, secondsInOneMinute, theDateRegex };
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ var constants = require('./constants.cjs');
4
+ var isSafeTimestamp = require('./isSafeTimestamp.cjs');
5
+ var create$1 = require('../either/left/create.cjs');
6
+ var create$2 = require('../either/right/create.cjs');
7
+
8
+ const safeDateRegex = /^(?<year>-?[0-9]+)-(?<monthWithDay>[0-1][0-9]-[0-3][0-9])$/;
9
+ function create(input, params) {
10
+ if (input instanceof Date) {
11
+ const timestamp = input.getTime();
12
+ if (!isSafeTimestamp.isSafeTimestamp(timestamp)) {
13
+ return create$1.left("date-created-error", null);
14
+ }
15
+ const isNegative = timestamp < 0;
16
+ return create$2.right("date-created", `date${Math.abs(timestamp)}${isNegative ? "-" : "+"}`);
17
+ }
18
+ if (typeof input === "number") {
19
+ if (!isSafeTimestamp.isSafeTimestamp(input)) {
20
+ return create$1.left("date-created-error", null);
21
+ }
22
+ const isNegative = input < 0;
23
+ return create$2.right("date-created", `date${Math.abs(input)}${isNegative ? "-" : "+"}`);
24
+ }
25
+ const theDateMatch = typeof input === "string" && input.match(constants.theDateRegex);
26
+ if (theDateMatch) {
27
+ const { value, sign } = theDateMatch.groups;
28
+ const magnitude = Number(value);
29
+ const timestamp = sign === "-" ? -magnitude : magnitude;
30
+ if (!isSafeTimestamp.isSafeTimestamp(timestamp)) {
31
+ return create$1.left("date-created-error", null);
32
+ }
33
+ return create$2.right("date-created", input);
34
+ }
35
+ const safeDateMatch = typeof input === "string" && input.match(safeDateRegex);
36
+ if (safeDateMatch) {
37
+ const { year, monthWithDay } = safeDateMatch.groups;
38
+ const date = new Date(`0000-${monthWithDay}T${params?.hour ?? "00"}:${params?.minute ?? "00"}:${params?.second ?? "00"}.${params?.millisecond ?? "000"}Z`);
39
+ date.setUTCFullYear(Number(year));
40
+ const timestamp = date.getTime();
41
+ if (!isSafeTimestamp.isSafeTimestamp(timestamp)) {
42
+ return "date0+";
43
+ }
44
+ const isNegative = timestamp < 0;
45
+ return `date${Math.abs(timestamp)}${isNegative ? "-" : "+"}`;
46
+ }
47
+ return create$1.left("date-created-error", null);
48
+ }
49
+
50
+ exports.create = create;
@@ -0,0 +1,16 @@
1
+ import type { Hour, IsLeapYear, Millisecond, Minute, Second, TheDate } from "./types";
2
+ import { type EitherLeft, type EitherRight } from "../either";
3
+ import { type MonthWithDay } from "./types/month";
4
+ export type MayBe = EitherRight<"date-created", TheDate> | EitherLeft<"date-created-error", null>;
5
+ declare const SymbolErrorIsNotLeapYear: unique symbol;
6
+ interface SafeDateParams {
7
+ hour?: Hour;
8
+ minute?: Minute;
9
+ second?: Second;
10
+ millisecond?: Millisecond;
11
+ }
12
+ export declare function create<GenericInput extends TheDate | Date | number>(input: GenericInput): MayBe;
13
+ export declare function create<GenericInput extends `${"-" | ""}${number}-${MonthWithDay}`>(input: GenericInput & (GenericInput extends `${"-" | ""}${infer InferredYear extends `${number}`}-02-29` ? IsLeapYear<InferredYear> extends true ? GenericInput : {
14
+ [SymbolErrorIsNotLeapYear]: "Is not a leap year.";
15
+ } : GenericInput), params?: SafeDateParams): TheDate;
16
+ export {};
@@ -0,0 +1,48 @@
1
+ import { theDateRegex } from './constants.mjs';
2
+ import { isSafeTimestamp } from './isSafeTimestamp.mjs';
3
+ import { left } from '../either/left/create.mjs';
4
+ import { right } from '../either/right/create.mjs';
5
+
6
+ const safeDateRegex = /^(?<year>-?[0-9]+)-(?<monthWithDay>[0-1][0-9]-[0-3][0-9])$/;
7
+ function create(input, params) {
8
+ if (input instanceof Date) {
9
+ const timestamp = input.getTime();
10
+ if (!isSafeTimestamp(timestamp)) {
11
+ return left("date-created-error", null);
12
+ }
13
+ const isNegative = timestamp < 0;
14
+ return right("date-created", `date${Math.abs(timestamp)}${isNegative ? "-" : "+"}`);
15
+ }
16
+ if (typeof input === "number") {
17
+ if (!isSafeTimestamp(input)) {
18
+ return left("date-created-error", null);
19
+ }
20
+ const isNegative = input < 0;
21
+ return right("date-created", `date${Math.abs(input)}${isNegative ? "-" : "+"}`);
22
+ }
23
+ const theDateMatch = typeof input === "string" && input.match(theDateRegex);
24
+ if (theDateMatch) {
25
+ const { value, sign } = theDateMatch.groups;
26
+ const magnitude = Number(value);
27
+ const timestamp = sign === "-" ? -magnitude : magnitude;
28
+ if (!isSafeTimestamp(timestamp)) {
29
+ return left("date-created-error", null);
30
+ }
31
+ return right("date-created", input);
32
+ }
33
+ const safeDateMatch = typeof input === "string" && input.match(safeDateRegex);
34
+ if (safeDateMatch) {
35
+ const { year, monthWithDay } = safeDateMatch.groups;
36
+ const date = new Date(`0000-${monthWithDay}T${params?.hour ?? "00"}:${params?.minute ?? "00"}:${params?.second ?? "00"}.${params?.millisecond ?? "000"}Z`);
37
+ date.setUTCFullYear(Number(year));
38
+ const timestamp = date.getTime();
39
+ if (!isSafeTimestamp(timestamp)) {
40
+ return "date0+";
41
+ }
42
+ const isNegative = timestamp < 0;
43
+ return `date${Math.abs(timestamp)}${isNegative ? "-" : "+"}`;
44
+ }
45
+ return left("date-created-error", null);
46
+ }
47
+
48
+ export { create };
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var create = require('./create.cjs');
4
+ var kind = require('../common/kind.cjs');
5
+ var is = require('../either/left/is.cjs');
6
+ var unwrap = require('../common/unwrap.cjs');
7
+ var errorKindNamespace = require('../common/errorKindNamespace.cjs');
8
+
9
+ class CreateTheDateError extends kind.kindHeritage("create-the-date-error", errorKindNamespace.createErrorKind("create-the-date-error"), Error) {
10
+ input;
11
+ constructor(input) {
12
+ super({}, [`Invalid input: ${input.toString()}`]);
13
+ this.input = input;
14
+ }
15
+ }
16
+ function createOrThrow(input) {
17
+ const result = create.create(input);
18
+ if (is.isLeft(result)) {
19
+ throw new CreateTheDateError(input);
20
+ }
21
+ return unwrap.unwrap(result);
22
+ }
23
+
24
+ exports.CreateTheDateError = CreateTheDateError;
25
+ exports.createOrThrow = createOrThrow;
@@ -0,0 +1,10 @@
1
+ import type { TheDate } from "./types";
2
+ declare const CreateTheDateError_base: new (params: {
3
+ "@DuplojsUtilsError/create-the-date-error"?: unknown;
4
+ }, parentParams: [message?: string | undefined, options?: ErrorOptions | undefined]) => Error & import("../common").Kind<import("../common").KindDefinition<"create-the-date-error", unknown>, unknown> & import("../common").Kind<import("../common").KindDefinition<"@DuplojsUtilsError/create-the-date-error", unknown>, unknown>;
5
+ export declare class CreateTheDateError extends CreateTheDateError_base {
6
+ input: TheDate | Date | number;
7
+ constructor(input: TheDate | Date | number);
8
+ }
9
+ export declare function createOrThrow<GenericInput extends TheDate | Date | number>(input: GenericInput): `date${number}-` | `date${number}+`;
10
+ export {};
@@ -0,0 +1,22 @@
1
+ import { create } from './create.mjs';
2
+ import { kindHeritage } from '../common/kind.mjs';
3
+ import { isLeft } from '../either/left/is.mjs';
4
+ import { unwrap } from '../common/unwrap.mjs';
5
+ import { createErrorKind } from '../common/errorKindNamespace.mjs';
6
+
7
+ class CreateTheDateError extends kindHeritage("create-the-date-error", createErrorKind("create-the-date-error"), Error) {
8
+ input;
9
+ constructor(input) {
10
+ super({}, [`Invalid input: ${input.toString()}`]);
11
+ this.input = input;
12
+ }
13
+ }
14
+ function createOrThrow(input) {
15
+ const result = create(input);
16
+ if (isLeft(result)) {
17
+ throw new CreateTheDateError(input);
18
+ }
19
+ return unwrap(result);
20
+ }
21
+
22
+ export { CreateTheDateError, createOrThrow };
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ var loop = require('../generator/loop.cjs');
4
+ var constants = require('./constants.cjs');
5
+ var toTimestamp = require('./toTimestamp.cjs');
6
+ var createOrThrow = require('./createOrThrow.cjs');
7
+
8
+ const stepMapper = {
9
+ millisecond: (timestamp, direction) => timestamp + direction,
10
+ second: (timestamp, direction) => timestamp + (direction * constants.millisecondsInOneSecond),
11
+ minute: (timestamp, direction) => timestamp + (direction * constants.millisecondInOneMinute),
12
+ hour: (timestamp, direction) => timestamp + (direction * constants.millisecondInOneHour),
13
+ day: (timestamp, direction) => timestamp + (direction * constants.millisecondsInOneDay),
14
+ month: (timestamp, direction) => {
15
+ const date = new Date(timestamp);
16
+ date.setUTCMonth(date.getUTCMonth() + direction);
17
+ return date.getTime();
18
+ },
19
+ year: (timestamp, direction) => {
20
+ const date = new Date(timestamp);
21
+ date.setUTCFullYear(date.getUTCFullYear() + direction);
22
+ return date.getTime();
23
+ },
24
+ };
25
+ function each(range, unit = "day") {
26
+ const startTimestamp = toTimestamp.toTimestamp(range.start);
27
+ const endTimestamp = toTimestamp.toTimestamp(range.end);
28
+ const direction = startTimestamp <= endTimestamp ? 1 : -1;
29
+ const advanceTimestamp = stepMapper[unit];
30
+ return loop.loop(({ exit, next, previousOutput, }) => {
31
+ if (!previousOutput) {
32
+ return next(range.start);
33
+ }
34
+ const currentTimestamp = advanceTimestamp(toTimestamp.toTimestamp(previousOutput), direction);
35
+ const isWithinRange = direction === 1
36
+ ? currentTimestamp < endTimestamp
37
+ : currentTimestamp > endTimestamp;
38
+ if (!isWithinRange) {
39
+ return exit(currentTimestamp === endTimestamp
40
+ ? createOrThrow.createOrThrow(currentTimestamp)
41
+ : undefined);
42
+ }
43
+ return next(createOrThrow.createOrThrow(currentTimestamp));
44
+ });
45
+ }
46
+
47
+ exports.each = each;
@@ -0,0 +1,5 @@
1
+ import type { TheDate, Unit } from "./types";
2
+ export declare function each(range: {
3
+ start: TheDate;
4
+ end: TheDate;
5
+ }, unit?: Unit): Generator<`date${number}-` | `date${number}+`, unknown, unknown>;
@@ -0,0 +1,45 @@
1
+ import { loop } from '../generator/loop.mjs';
2
+ import { millisecondsInOneDay, millisecondInOneHour, millisecondInOneMinute, millisecondsInOneSecond } from './constants.mjs';
3
+ import { toTimestamp } from './toTimestamp.mjs';
4
+ import { createOrThrow } from './createOrThrow.mjs';
5
+
6
+ const stepMapper = {
7
+ millisecond: (timestamp, direction) => timestamp + direction,
8
+ second: (timestamp, direction) => timestamp + (direction * millisecondsInOneSecond),
9
+ minute: (timestamp, direction) => timestamp + (direction * millisecondInOneMinute),
10
+ hour: (timestamp, direction) => timestamp + (direction * millisecondInOneHour),
11
+ day: (timestamp, direction) => timestamp + (direction * millisecondsInOneDay),
12
+ month: (timestamp, direction) => {
13
+ const date = new Date(timestamp);
14
+ date.setUTCMonth(date.getUTCMonth() + direction);
15
+ return date.getTime();
16
+ },
17
+ year: (timestamp, direction) => {
18
+ const date = new Date(timestamp);
19
+ date.setUTCFullYear(date.getUTCFullYear() + direction);
20
+ return date.getTime();
21
+ },
22
+ };
23
+ function each(range, unit = "day") {
24
+ const startTimestamp = toTimestamp(range.start);
25
+ const endTimestamp = toTimestamp(range.end);
26
+ const direction = startTimestamp <= endTimestamp ? 1 : -1;
27
+ const advanceTimestamp = stepMapper[unit];
28
+ return loop(({ exit, next, previousOutput, }) => {
29
+ if (!previousOutput) {
30
+ return next(range.start);
31
+ }
32
+ const currentTimestamp = advanceTimestamp(toTimestamp(previousOutput), direction);
33
+ const isWithinRange = direction === 1
34
+ ? currentTimestamp < endTimestamp
35
+ : currentTimestamp > endTimestamp;
36
+ if (!isWithinRange) {
37
+ return exit(currentTimestamp === endTimestamp
38
+ ? createOrThrow(currentTimestamp)
39
+ : undefined);
40
+ }
41
+ return next(createOrThrow(currentTimestamp));
42
+ });
43
+ }
44
+
45
+ export { each };
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var toNative = require('../toNative.cjs');
4
+
5
+ function getDayOfMonth(input, timezone = "UTC") {
6
+ const nativeDate = toNative.toNative(input);
7
+ if (timezone === "UTC") {
8
+ return nativeDate.getUTCDate();
9
+ }
10
+ const formatter = new Intl.DateTimeFormat("en-US", {
11
+ timeZone: timezone,
12
+ day: "numeric",
13
+ });
14
+ return Number(formatter.format(nativeDate));
15
+ }
16
+
17
+ exports.getDayOfMonth = getDayOfMonth;
@@ -0,0 +1,2 @@
1
+ import { type TheDate, type Timezone } from "..";
2
+ export declare function getDayOfMonth<GenericInput extends TheDate>(input: GenericInput, timezone?: Timezone): number;