@gobrand/tiempo 2.8.1 → 2.9.1

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 (445) hide show
  1. package/dist/addDays.js +3 -2
  2. package/dist/addHours.js +3 -2
  3. package/dist/addMicroseconds.js +3 -2
  4. package/dist/addMilliseconds.js +3 -2
  5. package/dist/addMinutes.js +3 -2
  6. package/dist/addMonths.js +3 -2
  7. package/dist/addNanoseconds.js +3 -2
  8. package/dist/addSeconds.js +3 -2
  9. package/dist/addWeeks.js +3 -2
  10. package/dist/addYears.js +3 -2
  11. package/dist/{chunk-TNCLJK4Y.js → chunk-26VAIV6A.js} +5 -3
  12. package/dist/chunk-26VAIV6A.js.map +1 -0
  13. package/dist/{chunk-JA7SVLAF.js → chunk-2KYXZIGP.js} +4 -4
  14. package/dist/{chunk-AE36GX4F.js → chunk-2PDEHGNB.js} +5 -2
  15. package/dist/chunk-2PDEHGNB.js.map +1 -0
  16. package/dist/{chunk-VLZ3HQQA.js → chunk-2Q6WEULJ.js} +2 -2
  17. package/dist/{chunk-ZGR4NZTS.js → chunk-347TWPBS.js} +2 -3
  18. package/dist/chunk-347TWPBS.js.map +1 -0
  19. package/dist/{chunk-JOD4ATPE.js → chunk-3HXEOAQN.js} +2 -2
  20. package/dist/{chunk-WVHAYLBW.js → chunk-3ORGILYG.js} +2 -2
  21. package/dist/{chunk-7ATM7AXL.js → chunk-3RSGMPWR.js} +2 -2
  22. package/dist/{chunk-AHMKY474.js → chunk-3XNQYFWS.js} +2 -2
  23. package/dist/{chunk-5C3TQSWA.js → chunk-4BQ4BJ4Y.js} +4 -5
  24. package/dist/chunk-4BQ4BJ4Y.js.map +1 -0
  25. package/dist/{chunk-4E7OGJ3F.js → chunk-4EFKJDHV.js} +5 -2
  26. package/dist/chunk-4EFKJDHV.js.map +1 -0
  27. package/dist/{chunk-U4RNUZXO.js → chunk-4JPDLKBK.js} +2 -2
  28. package/dist/{chunk-Y7CIJQ67.js → chunk-4JPVE6OV.js} +5 -3
  29. package/dist/chunk-4JPVE6OV.js.map +1 -0
  30. package/dist/{chunk-OLEOU3XE.js → chunk-4N6CTX4N.js} +5 -3
  31. package/dist/chunk-4N6CTX4N.js.map +1 -0
  32. package/dist/{chunk-XW5MLXX5.js → chunk-4RLD3OE2.js} +2 -2
  33. package/dist/{chunk-YQBM63DC.js → chunk-5DQVEAAR.js} +9 -4
  34. package/dist/chunk-5DQVEAAR.js.map +1 -0
  35. package/dist/{chunk-YKBP3G7L.js → chunk-5ZOOVGMT.js} +2 -2
  36. package/dist/{chunk-UBY22QWM.js → chunk-63RSJ2W4.js} +4 -4
  37. package/dist/chunk-65RGM7EG.js +13 -0
  38. package/dist/chunk-65RGM7EG.js.map +1 -0
  39. package/dist/{chunk-EEQ3REET.js → chunk-6KAIABBV.js} +2 -2
  40. package/dist/{chunk-PPB62JYV.js → chunk-6SF6EC2I.js} +2 -2
  41. package/dist/{chunk-5BYRBC7H.js → chunk-7EVZGEAI.js} +18 -17
  42. package/dist/{chunk-5BYRBC7H.js.map → chunk-7EVZGEAI.js.map} +1 -1
  43. package/dist/{chunk-4NJMCCUM.js → chunk-7JL3U64G.js} +2 -2
  44. package/dist/{chunk-JNA3AFOC.js → chunk-AHBTUFRW.js} +5 -2
  45. package/dist/chunk-AHBTUFRW.js.map +1 -0
  46. package/dist/chunk-AI5MRREC.js +22 -0
  47. package/dist/chunk-AI5MRREC.js.map +1 -0
  48. package/dist/{chunk-RW3C2677.js → chunk-ALAAO5GL.js} +2 -3
  49. package/dist/chunk-ALAAO5GL.js.map +1 -0
  50. package/dist/{chunk-A5VVBYNT.js → chunk-ATEVQYB6.js} +2 -2
  51. package/dist/{chunk-OQ4CWKJT.js → chunk-BO5WXWO2.js} +2 -3
  52. package/dist/chunk-BO5WXWO2.js.map +1 -0
  53. package/dist/{chunk-4PSMM55Q.js → chunk-BQHSXMGZ.js} +7 -3
  54. package/dist/chunk-BQHSXMGZ.js.map +1 -0
  55. package/dist/{chunk-776JOVV6.js → chunk-C4UZJHM7.js} +2 -3
  56. package/dist/chunk-C4UZJHM7.js.map +1 -0
  57. package/dist/{chunk-VZJGCDAG.js → chunk-C5O6LIWR.js} +5 -2
  58. package/dist/chunk-C5O6LIWR.js.map +1 -0
  59. package/dist/{chunk-LDO6PRNJ.js → chunk-C7SIOWMA.js} +2 -2
  60. package/dist/{chunk-FSD3DDFC.js → chunk-CKOIGPND.js} +5 -2
  61. package/dist/chunk-CKOIGPND.js.map +1 -0
  62. package/dist/{chunk-6IP245MS.js → chunk-DC5JXNIC.js} +5 -5
  63. package/dist/chunk-DC5JXNIC.js.map +1 -0
  64. package/dist/{chunk-HOCNCQTC.js → chunk-E2MU2P66.js} +2 -3
  65. package/dist/chunk-E2MU2P66.js.map +1 -0
  66. package/dist/{chunk-ADQTZVMH.js → chunk-EKR6BYFM.js} +2 -2
  67. package/dist/{chunk-PVAOUYXF.js → chunk-EOXULNBC.js} +5 -5
  68. package/dist/chunk-EOXULNBC.js.map +1 -0
  69. package/dist/{chunk-BV6CLVSI.js → chunk-EW3MVOID.js} +3 -4
  70. package/dist/chunk-EW3MVOID.js.map +1 -0
  71. package/dist/{chunk-WUAIUEH7.js → chunk-EZJDWFFE.js} +5 -2
  72. package/dist/chunk-EZJDWFFE.js.map +1 -0
  73. package/dist/{chunk-BQBLSXK2.js → chunk-FLRHLAMD.js} +2 -2
  74. package/dist/{chunk-TGKWBQ7L.js → chunk-GSVAMMHA.js} +6 -3
  75. package/dist/chunk-GSVAMMHA.js.map +1 -0
  76. package/dist/{chunk-3TSFIPUR.js → chunk-HDTIOOWB.js} +2 -3
  77. package/dist/chunk-HDTIOOWB.js.map +1 -0
  78. package/dist/{chunk-EZ7NVTZI.js → chunk-I6S6EIZG.js} +7 -5
  79. package/dist/chunk-I6S6EIZG.js.map +1 -0
  80. package/dist/{chunk-NRD5HRZV.js → chunk-IOLV6PTH.js} +2 -2
  81. package/dist/{chunk-ZC6KWXCW.js → chunk-IV47GMAA.js} +36 -27
  82. package/dist/chunk-IV47GMAA.js.map +1 -0
  83. package/dist/{chunk-HFQUXON5.js → chunk-J52B4PX6.js} +10 -5
  84. package/dist/chunk-J52B4PX6.js.map +1 -0
  85. package/dist/{chunk-WY63VEXE.js → chunk-JM42PLWS.js} +5 -2
  86. package/dist/chunk-JM42PLWS.js.map +1 -0
  87. package/dist/{chunk-DKYVFYWM.js → chunk-JTANYFEV.js} +5 -3
  88. package/dist/chunk-JTANYFEV.js.map +1 -0
  89. package/dist/{chunk-G2JUEBC5.js → chunk-LOANS6ZE.js} +5 -3
  90. package/dist/chunk-LOANS6ZE.js.map +1 -0
  91. package/dist/{chunk-MMI2HHT7.js → chunk-LTW2TDLL.js} +2 -2
  92. package/dist/{chunk-JHRXY36W.js → chunk-MA7PR6V5.js} +2 -2
  93. package/dist/{chunk-L4SVABDH.js → chunk-MEADD45E.js} +2 -2
  94. package/dist/{chunk-2XHAHSB6.js → chunk-MXE44KVG.js} +2 -2
  95. package/dist/{chunk-DT2EWLHU.js → chunk-NE7HNEF6.js} +2 -2
  96. package/dist/{chunk-EYO2ZJLH.js → chunk-OPWK2TVF.js} +2 -2
  97. package/dist/{chunk-BIAPE4MR.js → chunk-OVFO6CZ7.js} +5 -5
  98. package/dist/chunk-OVFO6CZ7.js.map +1 -0
  99. package/dist/{chunk-HDBH7RTY.js → chunk-OX4I35UO.js} +2 -2
  100. package/dist/{chunk-3A6X6WV5.js → chunk-PXF3RMFH.js} +1 -2
  101. package/dist/chunk-PXF3RMFH.js.map +1 -0
  102. package/dist/{chunk-CY746ZUQ.js → chunk-RB2YCLBV.js} +2 -2
  103. package/dist/{chunk-UJWM2BV2.js → chunk-RLF3Y7VC.js} +10 -5
  104. package/dist/chunk-RLF3Y7VC.js.map +1 -0
  105. package/dist/{chunk-RBEW6PXR.js → chunk-RPQ5K247.js} +5 -2
  106. package/dist/chunk-RPQ5K247.js.map +1 -0
  107. package/dist/{chunk-HLGMUTFK.js → chunk-RQUVNJBG.js} +2 -3
  108. package/dist/chunk-RQUVNJBG.js.map +1 -0
  109. package/dist/{chunk-UJW2FPI4.js → chunk-RTNF2H34.js} +2 -2
  110. package/dist/{chunk-BPZ7BRJW.js → chunk-RW25XXOH.js} +5 -2
  111. package/dist/chunk-RW25XXOH.js.map +1 -0
  112. package/dist/{chunk-QFNGYTTH.js → chunk-RXTMPPOP.js} +5 -3
  113. package/dist/chunk-RXTMPPOP.js.map +1 -0
  114. package/dist/{chunk-S63QUP4W.js → chunk-SAFMGBXL.js} +2 -2
  115. package/dist/chunk-SGHPW77A.js +19 -0
  116. package/dist/chunk-SGHPW77A.js.map +1 -0
  117. package/dist/{chunk-AJEIDKVJ.js → chunk-T4J7PXYZ.js} +5 -2
  118. package/dist/chunk-T4J7PXYZ.js.map +1 -0
  119. package/dist/{chunk-KZB6NERH.js → chunk-TCEDHHNM.js} +5 -2
  120. package/dist/chunk-TCEDHHNM.js.map +1 -0
  121. package/dist/{chunk-J6G2I2TU.js → chunk-TKV5JYQY.js} +2 -2
  122. package/dist/chunk-TUOGC2TY.js +19 -0
  123. package/dist/chunk-TUOGC2TY.js.map +1 -0
  124. package/dist/chunk-TWZNSMKO.js +19 -0
  125. package/dist/chunk-TWZNSMKO.js.map +1 -0
  126. package/dist/{chunk-YIT6EMBC.js → chunk-TYYV5UYX.js} +2 -3
  127. package/dist/chunk-TYYV5UYX.js.map +1 -0
  128. package/dist/{chunk-7VLSSOVC.js → chunk-UAYBKORB.js} +3 -4
  129. package/dist/chunk-UAYBKORB.js.map +1 -0
  130. package/dist/{chunk-OABS374T.js → chunk-VBDGWVJ4.js} +2 -3
  131. package/dist/chunk-VBDGWVJ4.js.map +1 -0
  132. package/dist/{chunk-BUX26GTD.js → chunk-VDEZJB42.js} +5 -3
  133. package/dist/chunk-VDEZJB42.js.map +1 -0
  134. package/dist/{chunk-O6RIN7K3.js → chunk-VJGNLAF2.js} +5 -2
  135. package/dist/chunk-VJGNLAF2.js.map +1 -0
  136. package/dist/{chunk-ZDA7GSWU.js → chunk-VTP4QJY6.js} +3 -4
  137. package/dist/chunk-VTP4QJY6.js.map +1 -0
  138. package/dist/{chunk-DFLGGK4F.js → chunk-VTXBG2JV.js} +6 -3
  139. package/dist/chunk-VTXBG2JV.js.map +1 -0
  140. package/dist/{chunk-BH2YB4MV.js → chunk-VXG2IG2N.js} +2 -2
  141. package/dist/{chunk-AJ4JBKJK.js → chunk-VXOQ7IG5.js} +1 -2
  142. package/dist/chunk-VXOQ7IG5.js.map +1 -0
  143. package/dist/{chunk-V27NUBXQ.js → chunk-WWLDINLH.js} +2 -2
  144. package/dist/{chunk-CHW2EN2O.js → chunk-X3T7QMBA.js} +5 -5
  145. package/dist/chunk-X3T7QMBA.js.map +1 -0
  146. package/dist/chunk-XVAVCEKT.js +19 -0
  147. package/dist/chunk-XVAVCEKT.js.map +1 -0
  148. package/dist/{chunk-Q2F3HEXB.js → chunk-YMS7JXBN.js} +2 -2
  149. package/dist/{chunk-52NEOY34.js → chunk-YNV6WGXV.js} +2 -2
  150. package/dist/{chunk-BSV32PSO.js → chunk-YO2VXHA5.js} +6 -3
  151. package/dist/chunk-YO2VXHA5.js.map +1 -0
  152. package/dist/{chunk-ISHZRFVN.js → chunk-ZITFEEZS.js} +2 -2
  153. package/dist/{chunk-X26WIJ6L.js → chunk-ZSOH7VST.js} +7 -5
  154. package/dist/chunk-ZSOH7VST.js.map +1 -0
  155. package/dist/differenceInDays.d.ts +5 -3
  156. package/dist/differenceInDays.d.ts.map +1 -1
  157. package/dist/differenceInDays.js +3 -2
  158. package/dist/differenceInHours.d.ts +5 -3
  159. package/dist/differenceInHours.d.ts.map +1 -1
  160. package/dist/differenceInHours.js +4 -3
  161. package/dist/differenceInMicroseconds.d.ts +1 -1
  162. package/dist/differenceInMicroseconds.d.ts.map +1 -1
  163. package/dist/differenceInMicroseconds.js +3 -2
  164. package/dist/differenceInMilliseconds.d.ts +1 -1
  165. package/dist/differenceInMilliseconds.d.ts.map +1 -1
  166. package/dist/differenceInMilliseconds.js +4 -3
  167. package/dist/differenceInMinutes.d.ts +5 -3
  168. package/dist/differenceInMinutes.d.ts.map +1 -1
  169. package/dist/differenceInMinutes.js +4 -3
  170. package/dist/differenceInMonths.d.ts +8 -5
  171. package/dist/differenceInMonths.d.ts.map +1 -1
  172. package/dist/differenceInMonths.js +3 -2
  173. package/dist/differenceInNanoseconds.d.ts +1 -1
  174. package/dist/differenceInNanoseconds.d.ts.map +1 -1
  175. package/dist/differenceInNanoseconds.js +3 -2
  176. package/dist/differenceInSeconds.d.ts +5 -3
  177. package/dist/differenceInSeconds.d.ts.map +1 -1
  178. package/dist/differenceInSeconds.js +4 -3
  179. package/dist/differenceInWeeks.d.ts +6 -4
  180. package/dist/differenceInWeeks.d.ts.map +1 -1
  181. package/dist/differenceInWeeks.js +3 -2
  182. package/dist/differenceInYears.d.ts +8 -5
  183. package/dist/differenceInYears.d.ts.map +1 -1
  184. package/dist/differenceInYears.js +3 -2
  185. package/dist/eachDayOfInterval.d.ts +1 -1
  186. package/dist/eachDayOfInterval.d.ts.map +1 -1
  187. package/dist/eachDayOfInterval.js +3 -2
  188. package/dist/eachHourOfInterval.d.ts +1 -1
  189. package/dist/eachHourOfInterval.d.ts.map +1 -1
  190. package/dist/eachHourOfInterval.js +3 -2
  191. package/dist/eachMinuteOfInterval.d.ts +1 -1
  192. package/dist/eachMinuteOfInterval.d.ts.map +1 -1
  193. package/dist/eachMinuteOfInterval.js +3 -2
  194. package/dist/eachMonthOfInterval.d.ts +1 -1
  195. package/dist/eachMonthOfInterval.d.ts.map +1 -1
  196. package/dist/eachMonthOfInterval.js +3 -2
  197. package/dist/eachWeekOfInterval.d.ts +1 -1
  198. package/dist/eachWeekOfInterval.d.ts.map +1 -1
  199. package/dist/eachWeekOfInterval.js +3 -2
  200. package/dist/eachYearOfInterval.d.ts +1 -1
  201. package/dist/eachYearOfInterval.d.ts.map +1 -1
  202. package/dist/eachYearOfInterval.js +3 -2
  203. package/dist/endOfDay.d.ts +1 -1
  204. package/dist/endOfDay.d.ts.map +1 -1
  205. package/dist/endOfDay.js +5 -4
  206. package/dist/endOfMonth.d.ts +1 -1
  207. package/dist/endOfMonth.d.ts.map +1 -1
  208. package/dist/endOfMonth.js +5 -4
  209. package/dist/endOfWeek.d.ts +1 -1
  210. package/dist/endOfWeek.d.ts.map +1 -1
  211. package/dist/endOfWeek.js +4 -3
  212. package/dist/endOfYear.d.ts +1 -1
  213. package/dist/endOfYear.d.ts.map +1 -1
  214. package/dist/endOfYear.js +5 -4
  215. package/dist/format.d.ts +1 -1
  216. package/dist/format.d.ts.map +1 -1
  217. package/dist/format.js +3 -2
  218. package/dist/formatPlainDate.d.ts +1 -1
  219. package/dist/formatPlainDate.d.ts.map +1 -1
  220. package/dist/formatPlainDate.js +2 -1
  221. package/dist/index.d.ts +1 -0
  222. package/dist/index.d.ts.map +1 -1
  223. package/dist/index.js +89 -88
  224. package/dist/intlFormatDistance.d.ts.map +1 -1
  225. package/dist/intlFormatDistance.js +11 -10
  226. package/dist/isAfter.d.ts +1 -1
  227. package/dist/isAfter.d.ts.map +1 -1
  228. package/dist/isAfter.js +4 -3
  229. package/dist/isBefore.d.ts +1 -1
  230. package/dist/isBefore.d.ts.map +1 -1
  231. package/dist/isBefore.js +4 -3
  232. package/dist/isFuture.js +5 -4
  233. package/dist/isPast.js +5 -4
  234. package/dist/isPlainDateAfter.d.ts +1 -1
  235. package/dist/isPlainDateAfter.d.ts.map +1 -1
  236. package/dist/isPlainDateAfter.js +2 -1
  237. package/dist/isPlainDateBefore.d.ts +1 -1
  238. package/dist/isPlainDateBefore.d.ts.map +1 -1
  239. package/dist/isPlainDateBefore.js +2 -1
  240. package/dist/isPlainDateEqual.d.ts +1 -1
  241. package/dist/isPlainDateEqual.d.ts.map +1 -1
  242. package/dist/isPlainDateEqual.js +2 -1
  243. package/dist/isPlainTimeAfter.d.ts +1 -1
  244. package/dist/isPlainTimeAfter.d.ts.map +1 -1
  245. package/dist/isPlainTimeAfter.js +2 -1
  246. package/dist/isPlainTimeBefore.d.ts +1 -1
  247. package/dist/isPlainTimeBefore.d.ts.map +1 -1
  248. package/dist/isPlainTimeBefore.js +2 -1
  249. package/dist/isPlainTimeEqual.d.ts +1 -1
  250. package/dist/isPlainTimeEqual.d.ts.map +1 -1
  251. package/dist/isPlainTimeEqual.js +2 -1
  252. package/dist/isSameDay.d.ts +1 -1
  253. package/dist/isSameDay.d.ts.map +1 -1
  254. package/dist/isSameDay.js +3 -2
  255. package/dist/isSameHour.js +3 -2
  256. package/dist/isSameMicrosecond.js +3 -2
  257. package/dist/isSameMillisecond.js +3 -2
  258. package/dist/isSameMinute.js +3 -2
  259. package/dist/isSameMonth.js +3 -2
  260. package/dist/isSameNanosecond.js +3 -2
  261. package/dist/isSameSecond.js +3 -2
  262. package/dist/isSameWeek.js +3 -2
  263. package/dist/isSameYear.js +3 -2
  264. package/dist/isWithinInterval.d.ts +1 -1
  265. package/dist/isWithinInterval.d.ts.map +1 -1
  266. package/dist/isWithinInterval.js +5 -4
  267. package/dist/now.d.ts +1 -1
  268. package/dist/now.d.ts.map +1 -1
  269. package/dist/now.js +2 -1
  270. package/dist/roundToNearestHour.js +3 -2
  271. package/dist/roundToNearestMinute.js +3 -2
  272. package/dist/roundToNearestSecond.js +3 -2
  273. package/dist/shared/differenceInMilliseconds.d.ts +1 -1
  274. package/dist/shared/differenceInMilliseconds.d.ts.map +1 -1
  275. package/dist/shared/differenceInMilliseconds.js +2 -1
  276. package/dist/shared/differenceOptions.d.ts +16 -0
  277. package/dist/shared/differenceOptions.d.ts.map +1 -0
  278. package/dist/shared/differenceOptions.js +1 -0
  279. package/dist/shared/differenceOptions.js.map +1 -0
  280. package/dist/shared/isAfter.d.ts +1 -1
  281. package/dist/shared/isAfter.d.ts.map +1 -1
  282. package/dist/shared/isAfter.js +2 -1
  283. package/dist/shared/isBefore.d.ts +1 -1
  284. package/dist/shared/isBefore.d.ts.map +1 -1
  285. package/dist/shared/isBefore.js +2 -1
  286. package/dist/shared/normalizeTemporalInput.d.ts +1 -1
  287. package/dist/shared/normalizeTemporalInput.d.ts.map +1 -1
  288. package/dist/shared/normalizeTemporalInput.js +2 -1
  289. package/dist/shared/normalizeWithPlainDate.d.ts +1 -1
  290. package/dist/shared/normalizeWithPlainDate.d.ts.map +1 -1
  291. package/dist/shared/normalizeWithPlainDate.js +4 -3
  292. package/dist/shared/nowZoned.d.ts +1 -1
  293. package/dist/shared/nowZoned.d.ts.map +1 -1
  294. package/dist/shared/nowZoned.js +3 -2
  295. package/dist/shared/plainDateToZonedDateTime.d.ts +1 -1
  296. package/dist/shared/plainDateToZonedDateTime.d.ts.map +1 -1
  297. package/dist/shared/plainDateToZonedDateTime.js +2 -1
  298. package/dist/shared/temporal.d.ts +21 -0
  299. package/dist/shared/temporal.d.ts.map +1 -0
  300. package/dist/shared/temporal.js +13 -0
  301. package/dist/shared/temporal.js.map +1 -0
  302. package/dist/shared/temporal.test.d.ts +2 -0
  303. package/dist/shared/temporal.test.d.ts.map +1 -0
  304. package/dist/simpleFormat.d.ts +1 -1
  305. package/dist/simpleFormat.d.ts.map +1 -1
  306. package/dist/simpleFormat.js +2 -1
  307. package/dist/startOfDay.d.ts +1 -1
  308. package/dist/startOfDay.d.ts.map +1 -1
  309. package/dist/startOfDay.js +5 -4
  310. package/dist/startOfMonth.d.ts +1 -1
  311. package/dist/startOfMonth.d.ts.map +1 -1
  312. package/dist/startOfMonth.js +5 -4
  313. package/dist/startOfWeek.d.ts +1 -1
  314. package/dist/startOfWeek.d.ts.map +1 -1
  315. package/dist/startOfWeek.js +4 -3
  316. package/dist/startOfYear.d.ts +1 -1
  317. package/dist/startOfYear.d.ts.map +1 -1
  318. package/dist/startOfYear.js +5 -4
  319. package/dist/subDays.js +4 -3
  320. package/dist/subHours.js +4 -3
  321. package/dist/subMicroseconds.js +4 -3
  322. package/dist/subMilliseconds.js +4 -3
  323. package/dist/subMinutes.js +4 -3
  324. package/dist/subMonths.js +4 -3
  325. package/dist/subNanoseconds.js +4 -3
  326. package/dist/subSeconds.js +4 -3
  327. package/dist/subWeeks.js +4 -3
  328. package/dist/subYears.js +4 -3
  329. package/dist/toDate.d.ts +1 -1
  330. package/dist/toDate.d.ts.map +1 -1
  331. package/dist/toDate.js +2 -1
  332. package/dist/toIso.d.ts +1 -1
  333. package/dist/toIso.d.ts.map +1 -1
  334. package/dist/toIso.js +2 -1
  335. package/dist/toIso9075.d.ts +1 -1
  336. package/dist/toIso9075.d.ts.map +1 -1
  337. package/dist/toIso9075.js +2 -1
  338. package/dist/toPlainDate.d.ts +1 -1
  339. package/dist/toPlainDate.d.ts.map +1 -1
  340. package/dist/toPlainDate.js +2 -1
  341. package/dist/toPlainTime.d.ts +1 -1
  342. package/dist/toPlainTime.d.ts.map +1 -1
  343. package/dist/toPlainTime.js +2 -1
  344. package/dist/toUtc.d.ts +1 -1
  345. package/dist/toUtc.d.ts.map +1 -1
  346. package/dist/toUtc.js +2 -1
  347. package/dist/toZonedTime.d.ts +1 -1
  348. package/dist/toZonedTime.d.ts.map +1 -1
  349. package/dist/toZonedTime.js +2 -1
  350. package/dist/today.d.ts +1 -1
  351. package/dist/today.d.ts.map +1 -1
  352. package/dist/today.js +2 -1
  353. package/package.json +1 -1
  354. package/dist/chunk-3A6X6WV5.js.map +0 -1
  355. package/dist/chunk-3TSFIPUR.js.map +0 -1
  356. package/dist/chunk-4E7OGJ3F.js.map +0 -1
  357. package/dist/chunk-4PSMM55Q.js.map +0 -1
  358. package/dist/chunk-5C3TQSWA.js.map +0 -1
  359. package/dist/chunk-6IP245MS.js.map +0 -1
  360. package/dist/chunk-776JOVV6.js.map +0 -1
  361. package/dist/chunk-7VLSSOVC.js.map +0 -1
  362. package/dist/chunk-AE36GX4F.js.map +0 -1
  363. package/dist/chunk-AJ4JBKJK.js.map +0 -1
  364. package/dist/chunk-AJEIDKVJ.js.map +0 -1
  365. package/dist/chunk-B2R2G5YK.js +0 -19
  366. package/dist/chunk-B2R2G5YK.js.map +0 -1
  367. package/dist/chunk-BIAPE4MR.js.map +0 -1
  368. package/dist/chunk-BPZ7BRJW.js.map +0 -1
  369. package/dist/chunk-BSV32PSO.js.map +0 -1
  370. package/dist/chunk-BUX26GTD.js.map +0 -1
  371. package/dist/chunk-BV6CLVSI.js.map +0 -1
  372. package/dist/chunk-CHW2EN2O.js.map +0 -1
  373. package/dist/chunk-DFLGGK4F.js.map +0 -1
  374. package/dist/chunk-DKYVFYWM.js.map +0 -1
  375. package/dist/chunk-EZ7NVTZI.js.map +0 -1
  376. package/dist/chunk-FSD3DDFC.js.map +0 -1
  377. package/dist/chunk-G2JUEBC5.js.map +0 -1
  378. package/dist/chunk-HFQUXON5.js.map +0 -1
  379. package/dist/chunk-HLGMUTFK.js.map +0 -1
  380. package/dist/chunk-HOCNCQTC.js.map +0 -1
  381. package/dist/chunk-JNA3AFOC.js.map +0 -1
  382. package/dist/chunk-KGVUENQO.js +0 -17
  383. package/dist/chunk-KGVUENQO.js.map +0 -1
  384. package/dist/chunk-KZB6NERH.js.map +0 -1
  385. package/dist/chunk-MJSZNWCV.js +0 -10
  386. package/dist/chunk-MJSZNWCV.js.map +0 -1
  387. package/dist/chunk-O6RIN7K3.js.map +0 -1
  388. package/dist/chunk-OABS374T.js.map +0 -1
  389. package/dist/chunk-OLEOU3XE.js.map +0 -1
  390. package/dist/chunk-OQ4CWKJT.js.map +0 -1
  391. package/dist/chunk-PMJD5N5J.js +0 -19
  392. package/dist/chunk-PMJD5N5J.js.map +0 -1
  393. package/dist/chunk-PVAOUYXF.js.map +0 -1
  394. package/dist/chunk-QFNGYTTH.js.map +0 -1
  395. package/dist/chunk-QVOEXF46.js +0 -19
  396. package/dist/chunk-QVOEXF46.js.map +0 -1
  397. package/dist/chunk-RBEW6PXR.js.map +0 -1
  398. package/dist/chunk-RW3C2677.js.map +0 -1
  399. package/dist/chunk-TGKWBQ7L.js.map +0 -1
  400. package/dist/chunk-TNCLJK4Y.js.map +0 -1
  401. package/dist/chunk-UJWM2BV2.js.map +0 -1
  402. package/dist/chunk-VZJGCDAG.js.map +0 -1
  403. package/dist/chunk-WUAIUEH7.js.map +0 -1
  404. package/dist/chunk-WY63VEXE.js.map +0 -1
  405. package/dist/chunk-X26WIJ6L.js.map +0 -1
  406. package/dist/chunk-Y7CIJQ67.js.map +0 -1
  407. package/dist/chunk-YIT6EMBC.js.map +0 -1
  408. package/dist/chunk-YQBM63DC.js.map +0 -1
  409. package/dist/chunk-ZC6KWXCW.js.map +0 -1
  410. package/dist/chunk-ZDA7GSWU.js.map +0 -1
  411. package/dist/chunk-ZGR4NZTS.js.map +0 -1
  412. /package/dist/{chunk-JA7SVLAF.js.map → chunk-2KYXZIGP.js.map} +0 -0
  413. /package/dist/{chunk-VLZ3HQQA.js.map → chunk-2Q6WEULJ.js.map} +0 -0
  414. /package/dist/{chunk-JOD4ATPE.js.map → chunk-3HXEOAQN.js.map} +0 -0
  415. /package/dist/{chunk-WVHAYLBW.js.map → chunk-3ORGILYG.js.map} +0 -0
  416. /package/dist/{chunk-7ATM7AXL.js.map → chunk-3RSGMPWR.js.map} +0 -0
  417. /package/dist/{chunk-AHMKY474.js.map → chunk-3XNQYFWS.js.map} +0 -0
  418. /package/dist/{chunk-U4RNUZXO.js.map → chunk-4JPDLKBK.js.map} +0 -0
  419. /package/dist/{chunk-XW5MLXX5.js.map → chunk-4RLD3OE2.js.map} +0 -0
  420. /package/dist/{chunk-YKBP3G7L.js.map → chunk-5ZOOVGMT.js.map} +0 -0
  421. /package/dist/{chunk-UBY22QWM.js.map → chunk-63RSJ2W4.js.map} +0 -0
  422. /package/dist/{chunk-EEQ3REET.js.map → chunk-6KAIABBV.js.map} +0 -0
  423. /package/dist/{chunk-PPB62JYV.js.map → chunk-6SF6EC2I.js.map} +0 -0
  424. /package/dist/{chunk-4NJMCCUM.js.map → chunk-7JL3U64G.js.map} +0 -0
  425. /package/dist/{chunk-A5VVBYNT.js.map → chunk-ATEVQYB6.js.map} +0 -0
  426. /package/dist/{chunk-LDO6PRNJ.js.map → chunk-C7SIOWMA.js.map} +0 -0
  427. /package/dist/{chunk-ADQTZVMH.js.map → chunk-EKR6BYFM.js.map} +0 -0
  428. /package/dist/{chunk-BQBLSXK2.js.map → chunk-FLRHLAMD.js.map} +0 -0
  429. /package/dist/{chunk-NRD5HRZV.js.map → chunk-IOLV6PTH.js.map} +0 -0
  430. /package/dist/{chunk-MMI2HHT7.js.map → chunk-LTW2TDLL.js.map} +0 -0
  431. /package/dist/{chunk-JHRXY36W.js.map → chunk-MA7PR6V5.js.map} +0 -0
  432. /package/dist/{chunk-L4SVABDH.js.map → chunk-MEADD45E.js.map} +0 -0
  433. /package/dist/{chunk-2XHAHSB6.js.map → chunk-MXE44KVG.js.map} +0 -0
  434. /package/dist/{chunk-DT2EWLHU.js.map → chunk-NE7HNEF6.js.map} +0 -0
  435. /package/dist/{chunk-EYO2ZJLH.js.map → chunk-OPWK2TVF.js.map} +0 -0
  436. /package/dist/{chunk-HDBH7RTY.js.map → chunk-OX4I35UO.js.map} +0 -0
  437. /package/dist/{chunk-CY746ZUQ.js.map → chunk-RB2YCLBV.js.map} +0 -0
  438. /package/dist/{chunk-UJW2FPI4.js.map → chunk-RTNF2H34.js.map} +0 -0
  439. /package/dist/{chunk-S63QUP4W.js.map → chunk-SAFMGBXL.js.map} +0 -0
  440. /package/dist/{chunk-J6G2I2TU.js.map → chunk-TKV5JYQY.js.map} +0 -0
  441. /package/dist/{chunk-BH2YB4MV.js.map → chunk-VXG2IG2N.js.map} +0 -0
  442. /package/dist/{chunk-V27NUBXQ.js.map → chunk-WWLDINLH.js.map} +0 -0
  443. /package/dist/{chunk-Q2F3HEXB.js.map → chunk-YMS7JXBN.js.map} +0 -0
  444. /package/dist/{chunk-52NEOY34.js.map → chunk-YNV6WGXV.js.map} +0 -0
  445. /package/dist/{chunk-ISHZRFVN.js.map → chunk-ZITFEEZS.js.map} +0 -0
@@ -1,14 +1,16 @@
1
1
  import {
2
2
  plainDateToZonedDateTime
3
- } from "./chunk-JNA3AFOC.js";
3
+ } from "./chunk-AHBTUFRW.js";
4
4
  import {
5
5
  normalizeTemporalInput
6
- } from "./chunk-MJSZNWCV.js";
6
+ } from "./chunk-65RGM7EG.js";
7
+ import {
8
+ isPlainDate
9
+ } from "./chunk-AI5MRREC.js";
7
10
 
8
11
  // src/startOfWeek.ts
9
- import { Temporal } from "@js-temporal/polyfill";
10
12
  function startOfWeek(input, timezone) {
11
- const zonedDateTime = input instanceof Temporal.PlainDate ? plainDateToZonedDateTime(input, timezone) : normalizeTemporalInput(input);
13
+ const zonedDateTime = isPlainDate(input) ? plainDateToZonedDateTime(input, timezone) : normalizeTemporalInput(input);
12
14
  const dayOfWeek = zonedDateTime.dayOfWeek;
13
15
  const daysToSubtract = dayOfWeek - 1;
14
16
  const monday = zonedDateTime.subtract({ days: daysToSubtract });
@@ -18,4 +20,4 @@ function startOfWeek(input, timezone) {
18
20
  export {
19
21
  startOfWeek
20
22
  };
21
- //# sourceMappingURL=chunk-EZ7NVTZI.js.map
23
+ //# sourceMappingURL=chunk-I6S6EIZG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/startOfWeek.ts"],"sourcesContent":["import { isPlainDate } from './shared/temporal';\nimport type { Temporal } from '@js-temporal/polyfill';\nimport type { Timezone } from './types';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\nimport { plainDateToZonedDateTime } from './shared/plainDateToZonedDateTime';\n\n/**\n * Returns a ZonedDateTime representing the first moment of the week (Monday at midnight).\n * Uses ISO 8601 week definition: weeks start on Monday.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @returns ZonedDateTime at Monday 00:00:00.000000000\n *\n * @example\n * ```ts\n * // From Instant (always UTC)\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00Z'); // Monday\n * const start = startOfWeek(instant);\n * // 2025-01-20T00:00:00Z[UTC] (same day, it's already Monday)\n * ```\n *\n * @example\n * ```ts\n * // From ZonedDateTime (uses its timezone)\n * const zoned = Temporal.ZonedDateTime.from('2025-01-22T15:30:00-05:00[America/New_York]'); // Wednesday\n * const start = startOfWeek(zoned);\n * // 2025-01-20T00:00:00-05:00[America/New_York] (previous Monday)\n * ```\n *\n * @example\n * ```ts\n * // From PlainDate (requires timezone)\n * const date = Temporal.PlainDate.from('2025-01-22'); // Wednesday\n * const start = startOfWeek(date, 'America/New_York');\n * // 2025-01-20T00:00:00-05:00[America/New_York] (previous Monday)\n * ```\n */\nexport function startOfWeek(\n input: Temporal.Instant | Temporal.ZonedDateTime\n): Temporal.ZonedDateTime;\nexport function startOfWeek(\n input: Temporal.PlainDate,\n timezone: Timezone\n): Temporal.ZonedDateTime;\nexport function startOfWeek(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n timezone?: Timezone\n): Temporal.ZonedDateTime {\n const zonedDateTime =\n isPlainDate(input)\n ? plainDateToZonedDateTime(input, timezone!)\n : normalizeTemporalInput(input);\n\n // Get the day of week (1 = Monday, 7 = Sunday in ISO 8601)\n const dayOfWeek = zonedDateTime.dayOfWeek;\n\n // Calculate days to subtract to get to Monday\n const daysToSubtract = dayOfWeek - 1;\n\n // Go to Monday, then get start of that day\n const monday = zonedDateTime.subtract({ days: daysToSubtract });\n\n return monday.startOfDay();\n}\n"],"mappings":";;;;;;;;;;;AA4CO,SAAS,YACd,OACA,UACwB;AACxB,QAAM,gBACJ,YAAY,KAAK,IACb,yBAAyB,OAAO,QAAS,IACzC,uBAAuB,KAAK;AAGlC,QAAM,YAAY,cAAc;AAGhC,QAAM,iBAAiB,YAAY;AAGnC,QAAM,SAAS,cAAc,SAAS,EAAE,MAAM,eAAe,CAAC;AAE9D,SAAO,OAAO,WAAW;AAC3B;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-65RGM7EG.js";
4
4
 
5
5
  // src/addSeconds.ts
6
6
  function addSeconds(input, seconds) {
@@ -11,4 +11,4 @@ function addSeconds(input, seconds) {
11
11
  export {
12
12
  addSeconds
13
13
  };
14
- //# sourceMappingURL=chunk-NRD5HRZV.js.map
14
+ //# sourceMappingURL=chunk-IOLV6PTH.js.map
@@ -1,14 +1,16 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-65RGM7EG.js";
4
+ import {
5
+ isInstant
6
+ } from "./chunk-AI5MRREC.js";
4
7
 
5
8
  // src/format.ts
6
- import { Temporal } from "@js-temporal/polyfill";
7
9
  function format(input, formatStr, options = {}) {
8
10
  const { locale = "en-US", timeZone } = options;
9
11
  let zonedDateTime;
10
12
  if (timeZone) {
11
- const instant = input instanceof Temporal.Instant ? input : input.toInstant();
13
+ const instant = isInstant(input) ? input : input.toInstant();
12
14
  zonedDateTime = instant.toZonedDateTimeISO(timeZone);
13
15
  } else {
14
16
  zonedDateTime = normalizeTemporalInput(input);
@@ -198,20 +200,22 @@ function formatToken(token, zonedDateTime, locale) {
198
200
  case "EE":
199
201
  case "E":
200
202
  return formatPart(zonedDateTime, "weekday", "short", locale);
201
- // AM/PM
203
+ // AM/PM (locale-aware; English widths applied only for ASCII AM/PM)
202
204
  case "aaaaa": {
203
- const period = formatPart(zonedDateTime, "dayPeriod", "narrow", locale).toLowerCase();
204
- return period.charAt(0);
205
+ const period = getDayPeriod(zonedDateTime, locale);
206
+ if (isAsciiAmPm(period)) return isAm(period) ? "a" : "p";
207
+ return period.charAt(0).toLowerCase();
205
208
  }
206
209
  case "aaaa": {
207
- const period = formatPart(zonedDateTime, "dayPeriod", "short", locale);
208
- return period === "AM" ? "a.m." : "p.m.";
210
+ const period = getDayPeriod(zonedDateTime, locale);
211
+ if (isAsciiAmPm(period)) return isAm(period) ? "a.m." : "p.m.";
212
+ return period;
209
213
  }
210
214
  case "aaa":
211
- return formatPart(zonedDateTime, "dayPeriod", "short", locale).toLowerCase();
215
+ return getDayPeriod(zonedDateTime, locale).toLowerCase();
212
216
  case "aa":
213
217
  case "a":
214
- return formatPart(zonedDateTime, "dayPeriod", "short", locale);
218
+ return getDayPeriod(zonedDateTime, locale);
215
219
  // Hour [0-23]
216
220
  case "HH":
217
221
  return zonedDateTime.hour.toString().padStart(2, "0");
@@ -263,8 +267,8 @@ function formatToken(token, zonedDateTime, locale) {
263
267
  case "X": {
264
268
  const offset = getTimezoneOffset(zonedDateTime);
265
269
  if (offset === "+00:00") return "Z";
266
- const [hours] = offset.split(":");
267
- return hours || "+00";
270
+ const [hours, minutes] = offset.split(":");
271
+ return minutes === "00" ? hours : `${hours}${minutes}`;
268
272
  }
269
273
  case "xxxxx":
270
274
  return getTimezoneOffset(zonedDateTime);
@@ -276,8 +280,8 @@ function formatToken(token, zonedDateTime, locale) {
276
280
  return getTimezoneOffset(zonedDateTime).replace(":", "");
277
281
  case "x": {
278
282
  const offset = getTimezoneOffset(zonedDateTime);
279
- const [hours] = offset.split(":");
280
- return hours || "+00";
283
+ const [hours, minutes] = offset.split(":");
284
+ return minutes === "00" ? hours : `${hours}${minutes}`;
281
285
  }
282
286
  case "zzzz":
283
287
  return formatPart(zonedDateTime, "timeZoneName", "long", locale);
@@ -296,18 +300,8 @@ function formatToken(token, zonedDateTime, locale) {
296
300
  }
297
301
  function formatPart(zonedDateTime, part, style, locale) {
298
302
  const options = {};
299
- if (part === "dayPeriod") {
300
- options.hour = "numeric";
301
- options.hour12 = true;
302
- } else {
303
- options[part] = style;
304
- }
305
- const formatted = zonedDateTime.toLocaleString(locale, options);
306
- if (part === "dayPeriod") {
307
- const match = formatted.match(/\b(AM|PM|am|pm|a\.m\.|p\.m\.)\b/);
308
- return match ? match[0] : formatted.split(" ").pop() || "";
309
- }
310
- return formatted;
303
+ options[part] = style;
304
+ return zonedDateTime.toLocaleString(locale, options);
311
305
  }
312
306
  function getOrdinalSuffix(num) {
313
307
  const j = num % 10;
@@ -326,8 +320,23 @@ function getTimezoneOffset(zonedDateTime) {
326
320
  const minutes = absMinutes % 60;
327
321
  return `${sign}${hours.toString().padStart(2, "0")}:${minutes.toString().padStart(2, "0")}`;
328
322
  }
323
+ function getDayPeriod(zonedDateTime, locale) {
324
+ const parts = new Intl.DateTimeFormat(locale, {
325
+ hour: "numeric",
326
+ hour12: true,
327
+ timeZone: zonedDateTime.timeZoneId
328
+ }).formatToParts(new Date(zonedDateTime.epochMilliseconds));
329
+ return parts.find((p) => p.type === "dayPeriod")?.value ?? "";
330
+ }
331
+ function isAsciiAmPm(period) {
332
+ const normalized = period.toUpperCase().replace(/[.\s]/g, "");
333
+ return normalized === "AM" || normalized === "PM";
334
+ }
335
+ function isAm(period) {
336
+ return period.toUpperCase().replace(/[.\s]/g, "").startsWith("A");
337
+ }
329
338
 
330
339
  export {
331
340
  format
332
341
  };
333
- //# sourceMappingURL=chunk-ZC6KWXCW.js.map
342
+ //# sourceMappingURL=chunk-IV47GMAA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/format.ts"],"sourcesContent":["import { isInstant } from './shared/temporal';\nimport type { Temporal } from '@js-temporal/polyfill';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\nimport type { Timezone } from './types';\n\nexport interface FormatOptions {\n locale?: string;\n timeZone?: Timezone;\n}\n\n/**\n * Format a Temporal.Instant or ZonedDateTime using date-fns-like format tokens.\n * Uses Intl.DateTimeFormat under the hood via Temporal's toLocaleString() for zero dependencies.\n *\n * @param input - A Temporal.Instant or Temporal.ZonedDateTime to format\n * @param formatStr - Format string using date-fns tokens (e.g., \"yyyy-MM-dd HH:mm:ss\")\n * @param options - Optional configuration for locale and timezone\n * @returns Formatted date string\n *\n * @example\n * ```typescript\n * const zoned = Temporal.ZonedDateTime.from(\"2025-01-20T15:00:00-05:00[America/New_York]\");\n *\n * format(zoned, \"yyyy-MM-dd\"); // \"2025-01-20\"\n * format(zoned, \"MMMM d, yyyy\"); // \"January 20, 2025\"\n * format(zoned, \"h:mm a\"); // \"3:00 PM\"\n * format(zoned, \"EEEE, MMMM do, yyyy 'at' h:mm a\"); // \"Monday, January 20th, 2025 at 3:00 PM\"\n *\n * // With locale\n * format(zoned, \"MMMM d, yyyy\", { locale: \"es-ES\" }); // \"enero 20, 2025\"\n * ```\n */\nexport function format(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n formatStr: string,\n options: FormatOptions = {}\n): string {\n const { locale = 'en-US', timeZone } = options;\n\n // Convert to ZonedDateTime, applying custom timezone if provided\n let zonedDateTime: Temporal.ZonedDateTime;\n if (timeZone) {\n // If custom timezone specified, convert via Instant\n const instant = isInstant(input) ? input : input.toInstant();\n zonedDateTime = instant.toZonedDateTimeISO(timeZone);\n } else {\n // No custom timezone: normalize to ZonedDateTime (Instant -> UTC, ZonedDateTime -> keep as-is)\n zonedDateTime = normalizeTemporalInput(input);\n }\n\n let result = '';\n let i = 0;\n const len = formatStr.length;\n\n while (i < len) {\n const char = formatStr[i];\n if (!char) break;\n\n // Handle escaped text\n if (char === \"'\") {\n // Check for double single quote (not inside a string, just '')\n if (i + 1 < len && formatStr[i + 1] === \"'\") {\n result += \"'\";\n i += 2;\n continue;\n }\n // Find closing quote, handling '' inside the string\n i++;\n while (i < len) {\n if (formatStr[i] === \"'\") {\n // Check if it's a doubled quote ''\n if (i + 1 < len && formatStr[i + 1] === \"'\") {\n result += \"'\";\n i += 2;\n } else {\n // End of quoted string\n i++;\n break;\n }\n } else {\n result += formatStr[i];\n i++;\n }\n }\n continue;\n }\n\n // Check for tokens by looking ahead\n const token = consumeToken(formatStr, i, char);\n if (token !== null) {\n result += formatToken(token, zonedDateTime, locale);\n i += token.length;\n } else {\n result += char;\n i++;\n }\n }\n\n return result;\n}\n\nfunction consumeToken(formatStr: string, start: number, char: string): string | null {\n // Special case for 'Mo' and 'do' - these end with 'o'\n if (char === 'M' && start + 1 < formatStr.length && formatStr[start + 1] === 'o') {\n return 'Mo';\n }\n if (char === 'd' && start + 1 < formatStr.length && formatStr[start + 1] === 'o') {\n return 'do';\n }\n\n // Count how many consecutive identical characters\n let end = start;\n while (end < formatStr.length && formatStr[end] === char) {\n end++;\n }\n const count = end - start;\n\n // Check if this is a valid token pattern\n const validTokens = [\n 'GGGGG',\n 'GGGG',\n 'GGG',\n 'GG',\n 'G',\n 'yyyy',\n 'yyy',\n 'yy',\n 'y',\n 'QQQQQ',\n 'QQQQ',\n 'QQQ',\n 'QQ',\n 'Q',\n 'MMMMM',\n 'MMMM',\n 'MMM',\n 'MM',\n 'M',\n 'dd',\n 'd',\n 'EEEEEE',\n 'EEEEE',\n 'EEEE',\n 'EEE',\n 'EE',\n 'E',\n 'aaaaa',\n 'aaaa',\n 'aaa',\n 'aa',\n 'a',\n 'HH',\n 'H',\n 'hh',\n 'h',\n 'mm',\n 'm',\n 'ss',\n 's',\n 'SSS',\n 'SS',\n 'S',\n 'XXXXX',\n 'XXXX',\n 'XXX',\n 'XX',\n 'X',\n 'xxxxx',\n 'xxxx',\n 'xxx',\n 'xx',\n 'x',\n 'zzzz',\n 'zzz',\n 'zz',\n 'z',\n 'T',\n 't',\n ];\n\n // Try to match from longest to shortest\n for (let len = Math.min(count, 6); len > 0; len--) {\n const candidate = char.repeat(len);\n if (validTokens.includes(candidate)) {\n return candidate;\n }\n }\n\n return null;\n}\n\nfunction formatToken(token: string, zonedDateTime: Temporal.ZonedDateTime, locale: string): string {\n switch (token) {\n // Era\n case 'GGGGG':\n return formatPart(zonedDateTime, 'era', 'narrow', locale);\n case 'GGGG':\n return formatPart(zonedDateTime, 'era', 'long', locale);\n case 'GGG':\n case 'GG':\n case 'G':\n return formatPart(zonedDateTime, 'era', 'short', locale);\n\n // Year\n case 'yyyy':\n return zonedDateTime.year.toString().padStart(4, '0');\n case 'yyy':\n return zonedDateTime.year.toString().padStart(3, '0');\n case 'yy':\n return (zonedDateTime.year % 100).toString().padStart(2, '0');\n case 'y':\n return zonedDateTime.year.toString();\n\n // Quarter\n case 'QQQQQ':\n return Math.ceil(zonedDateTime.month / 3).toString();\n case 'QQQQ': {\n const quarter = Math.ceil(zonedDateTime.month / 3);\n return `${quarter}${getOrdinalSuffix(quarter)} quarter`;\n }\n case 'QQQ':\n return `Q${Math.ceil(zonedDateTime.month / 3)}`;\n case 'QQ':\n return Math.ceil(zonedDateTime.month / 3)\n .toString()\n .padStart(2, '0');\n case 'Q':\n return Math.ceil(zonedDateTime.month / 3).toString();\n\n // Month\n case 'MMMMM':\n return formatPart(zonedDateTime, 'month', 'narrow', locale);\n case 'MMMM':\n return formatPart(zonedDateTime, 'month', 'long', locale);\n case 'MMM':\n return formatPart(zonedDateTime, 'month', 'short', locale);\n case 'MM':\n return zonedDateTime.month.toString().padStart(2, '0');\n case 'Mo':\n return `${zonedDateTime.month}${getOrdinalSuffix(zonedDateTime.month)}`;\n case 'M':\n return zonedDateTime.month.toString();\n\n // Day of month\n case 'do':\n return `${zonedDateTime.day}${getOrdinalSuffix(zonedDateTime.day)}`;\n case 'dd':\n return zonedDateTime.day.toString().padStart(2, '0');\n case 'd':\n return zonedDateTime.day.toString();\n\n // Day of week\n case 'EEEEEE':\n return formatPart(zonedDateTime, 'weekday', 'short', locale).slice(0, 2);\n case 'EEEEE':\n return formatPart(zonedDateTime, 'weekday', 'narrow', locale);\n case 'EEEE':\n return formatPart(zonedDateTime, 'weekday', 'long', locale);\n case 'EEE':\n case 'EE':\n case 'E':\n return formatPart(zonedDateTime, 'weekday', 'short', locale);\n\n // AM/PM (locale-aware; English widths applied only for ASCII AM/PM)\n case 'aaaaa': {\n const period = getDayPeriod(zonedDateTime, locale);\n if (isAsciiAmPm(period)) return isAm(period) ? 'a' : 'p';\n return period.charAt(0).toLowerCase();\n }\n case 'aaaa': {\n const period = getDayPeriod(zonedDateTime, locale);\n if (isAsciiAmPm(period)) return isAm(period) ? 'a.m.' : 'p.m.';\n return period;\n }\n case 'aaa':\n return getDayPeriod(zonedDateTime, locale).toLowerCase();\n case 'aa':\n case 'a':\n return getDayPeriod(zonedDateTime, locale);\n\n // Hour [0-23]\n case 'HH':\n return zonedDateTime.hour.toString().padStart(2, '0');\n case 'H':\n return zonedDateTime.hour.toString();\n\n // Hour [1-12]\n case 'hh': {\n const hour12 = zonedDateTime.hour % 12 || 12;\n return hour12.toString().padStart(2, '0');\n }\n case 'h': {\n const hour12 = zonedDateTime.hour % 12 || 12;\n return hour12.toString();\n }\n\n // Minute\n case 'mm':\n return zonedDateTime.minute.toString().padStart(2, '0');\n case 'm':\n return zonedDateTime.minute.toString();\n\n // Second\n case 'ss':\n return zonedDateTime.second.toString().padStart(2, '0');\n case 's':\n return zonedDateTime.second.toString();\n\n // Fractional seconds\n case 'SSS':\n return zonedDateTime.millisecond.toString().padStart(3, '0');\n case 'SS':\n return Math.floor(zonedDateTime.millisecond / 10)\n .toString()\n .padStart(2, '0');\n case 'S':\n return Math.floor(zonedDateTime.millisecond / 100).toString();\n\n // Timezone\n case 'XXXXX': {\n const offset = getTimezoneOffset(zonedDateTime);\n return offset === '+00:00' ? 'Z' : offset;\n }\n case 'XXXX': {\n const offset = getTimezoneOffset(zonedDateTime).replace(':', '');\n return offset === '+0000' ? 'Z' : offset;\n }\n case 'XXX': {\n const offset = getTimezoneOffset(zonedDateTime);\n return offset === '+00:00' ? 'Z' : offset;\n }\n case 'XX': {\n const offset = getTimezoneOffset(zonedDateTime).replace(':', '');\n return offset === '+0000' ? 'Z' : offset;\n }\n case 'X': {\n const offset = getTimezoneOffset(zonedDateTime); // \"+05:30\" / \"+00:00\"\n if (offset === '+00:00') return 'Z';\n const [hours, minutes] = offset.split(':');\n return minutes === '00' ? hours! : `${hours}${minutes}`;\n }\n case 'xxxxx':\n return getTimezoneOffset(zonedDateTime);\n case 'xxxx':\n return getTimezoneOffset(zonedDateTime).replace(':', '');\n case 'xxx':\n return getTimezoneOffset(zonedDateTime);\n case 'xx':\n return getTimezoneOffset(zonedDateTime).replace(':', '');\n case 'x': {\n const offset = getTimezoneOffset(zonedDateTime); // \"+05:30\" / \"+00:00\"\n const [hours, minutes] = offset.split(':');\n return minutes === '00' ? hours! : `${hours}${minutes}`;\n }\n case 'zzzz':\n return formatPart(zonedDateTime, 'timeZoneName', 'long', locale);\n case 'zzz':\n case 'zz':\n case 'z':\n return formatPart(zonedDateTime, 'timeZoneName', 'short', locale);\n\n // Timestamps\n case 'T':\n return zonedDateTime.epochMilliseconds.toString();\n case 't':\n return Math.floor(zonedDateTime.epochMilliseconds / 1000).toString();\n\n default:\n return token;\n }\n}\n\nfunction formatPart(\n zonedDateTime: Temporal.ZonedDateTime,\n part: 'era' | 'year' | 'month' | 'weekday' | 'day' | 'hour' | 'minute' | 'second' | 'timeZoneName',\n style: 'narrow' | 'short' | 'long' | 'numeric' | '2-digit',\n locale: string\n): string {\n const options: Intl.DateTimeFormatOptions = {};\n options[part] = style as any;\n return zonedDateTime.toLocaleString(locale, options);\n}\n\nfunction getOrdinalSuffix(num: number): string {\n const j = num % 10;\n const k = num % 100;\n if (j === 1 && k !== 11) return 'st';\n if (j === 2 && k !== 12) return 'nd';\n if (j === 3 && k !== 13) return 'rd';\n return 'th';\n}\n\nfunction getTimezoneOffset(zonedDateTime: Temporal.ZonedDateTime): string {\n const offsetNs = zonedDateTime.offsetNanoseconds;\n const offsetMinutes = offsetNs / (60 * 1e9);\n const sign = offsetMinutes >= 0 ? '+' : '-';\n const absMinutes = Math.abs(offsetMinutes);\n const hours = Math.floor(absMinutes / 60);\n const minutes = absMinutes % 60;\n return `${sign}${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;\n}\n\n/**\n * Locale-correct day period (AM/PM equivalent) via Intl.formatToParts.\n * Returns the locale's own value, e.g. \"AM\"/\"PM\" (en), \"p. m.\" (es), \"午後\" (ja).\n */\nfunction getDayPeriod(zonedDateTime: Temporal.ZonedDateTime, locale: string): string {\n const parts = new Intl.DateTimeFormat(locale, {\n hour: 'numeric',\n hour12: true,\n timeZone: zonedDateTime.timeZoneId,\n }).formatToParts(new Date(zonedDateTime.epochMilliseconds));\n return parts.find((p) => p.type === 'dayPeriod')?.value ?? '';\n}\n\n/** True when the day-period is recognizably ASCII AM/PM (so English widths apply). */\nfunction isAsciiAmPm(period: string): boolean {\n const normalized = period.toUpperCase().replace(/[.\\s]/g, '');\n return normalized === 'AM' || normalized === 'PM';\n}\n\n/** True for the AM half (only meaningful when isAsciiAmPm is true). */\nfunction isAm(period: string): boolean {\n return period.toUpperCase().replace(/[.\\s]/g, '').startsWith('A');\n}\n"],"mappings":"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","names":[]}
@@ -1,8 +1,13 @@
1
+ import {
2
+ Temporal,
3
+ isInstant,
4
+ isZonedDateTime
5
+ } from "./chunk-AI5MRREC.js";
6
+
1
7
  // src/toPlainDate.ts
2
- import { Temporal } from "@js-temporal/polyfill";
3
8
  var PLAIN_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
4
9
  function toPlainDate(input, timezone) {
5
- if (input instanceof Temporal.ZonedDateTime && timezone === void 0) {
10
+ if (isZonedDateTime(input) && timezone === void 0) {
6
11
  return input.toPlainDate();
7
12
  }
8
13
  if (input instanceof Date) {
@@ -11,13 +16,13 @@ function toPlainDate(input, timezone) {
11
16
  }
12
17
  return Temporal.Instant.from(input.toISOString()).toZonedDateTimeISO(timezone).toPlainDate();
13
18
  }
14
- if (input instanceof Temporal.Instant) {
19
+ if (isInstant(input)) {
15
20
  if (timezone === void 0) {
16
21
  throw new Error("Timezone is required unless input is a ZonedDateTime, PlainDateLike, or plain date string");
17
22
  }
18
23
  return input.toZonedDateTimeISO(timezone).toPlainDate();
19
24
  }
20
- if (input instanceof Temporal.ZonedDateTime) {
25
+ if (isZonedDateTime(input)) {
21
26
  if (timezone === void 0) {
22
27
  throw new Error("Timezone is required unless input is a ZonedDateTime, PlainDateLike, or plain date string");
23
28
  }
@@ -38,4 +43,4 @@ function toPlainDate(input, timezone) {
38
43
  export {
39
44
  toPlainDate
40
45
  };
41
- //# sourceMappingURL=chunk-HFQUXON5.js.map
46
+ //# sourceMappingURL=chunk-J52B4PX6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/toPlainDate.ts"],"sourcesContent":["import { Temporal, isInstant, isZonedDateTime } from './shared/temporal';\nimport type { Timezone } from './types';\n\n// Pattern to detect plain date strings: YYYY-MM-DD\nconst PLAIN_DATE_PATTERN = /^\\d{4}-\\d{2}-\\d{2}$/;\n\n/**\n * Parse a plain date or extract the calendar date from a datetime.\n *\n * @param input - A PlainDateLike object, plain date string (YYYY-MM-DD), ZonedDateTime, or datetime input requiring timezone\n * @param timezone - IANA timezone identifier. Required for ISO strings, Date, and Instant inputs.\n * @returns A Temporal.PlainDate representing the calendar date\n *\n * @example\n * ```typescript\n * import { toPlainDate, toZonedTime } from '@gobrand/tiempo';\n *\n * // From PlainDateLike object (no timezone needed)\n * const date = toPlainDate({ year: 2025, month: 1, day: 20 }); // 2025-01-20\n *\n * // From plain date string (no timezone needed)\n * const date2 = toPlainDate(\"2025-01-20\"); // 2025-01-20\n *\n * // From ZonedDateTime (no timezone needed)\n * const zdt = toZonedTime(\"2025-01-20T15:30:00Z\", \"America/New_York\");\n * const date3 = toPlainDate(zdt); // 2025-01-20\n *\n * // From UTC string with timezone\n * const date4 = toPlainDate(\"2025-01-20T15:30:00Z\", \"America/New_York\"); // 2025-01-20\n *\n * // From Date with timezone\n * const jsDate = new Date(\"2025-01-20T15:30:00.000Z\");\n * const date5 = toPlainDate(jsDate, \"Europe/London\"); // 2025-01-20\n *\n * // Date boundary crossing: 23:00 UTC on Jan 20 → Jan 21 in Tokyo\n * const date6 = toPlainDate(\"2025-01-20T23:00:00Z\", \"Asia/Tokyo\"); // 2025-01-21\n * ```\n */\nexport function toPlainDate(input: Temporal.ZonedDateTime): Temporal.PlainDate;\nexport function toPlainDate(\n input: string | Date | Temporal.Instant | Temporal.ZonedDateTime,\n timezone: Timezone\n): Temporal.PlainDate;\nexport function toPlainDate(input: Temporal.PlainDateLike | string): Temporal.PlainDate;\nexport function toPlainDate(\n input: string | Date | Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDateLike,\n timezone?: Timezone\n): Temporal.PlainDate {\n // ZonedDateTime without timezone override\n if (isZonedDateTime(input) && timezone === undefined) {\n return input.toPlainDate();\n }\n\n // Date requires timezone\n if (input instanceof Date) {\n if (timezone === undefined) {\n throw new Error('Timezone is required unless input is a ZonedDateTime, PlainDateLike, or plain date string');\n }\n return Temporal.Instant.from(input.toISOString()).toZonedDateTimeISO(timezone).toPlainDate();\n }\n\n // Instant requires timezone\n if (isInstant(input)) {\n if (timezone === undefined) {\n throw new Error('Timezone is required unless input is a ZonedDateTime, PlainDateLike, or plain date string');\n }\n return input.toZonedDateTimeISO(timezone).toPlainDate();\n }\n\n // ZonedDateTime with timezone override\n if (isZonedDateTime(input)) {\n if (timezone === undefined) {\n throw new Error('Timezone is required unless input is a ZonedDateTime, PlainDateLike, or plain date string');\n }\n return input.toInstant().toZonedDateTimeISO(timezone).toPlainDate();\n }\n\n // String: ISO datetime (requires timezone) or plain date (no timezone)\n if (typeof input === 'string') {\n if (timezone !== undefined) {\n return Temporal.Instant.from(input).toZonedDateTimeISO(timezone).toPlainDate();\n }\n if (PLAIN_DATE_PATTERN.test(input)) {\n return Temporal.PlainDate.from(input);\n }\n throw new Error('Timezone is required unless input is a ZonedDateTime, PlainDateLike, or plain date string');\n }\n\n // PlainDateLike object - pass directly to Temporal.PlainDate.from()\n return Temporal.PlainDate.from(input);\n}\n"],"mappings":";;;;;;;AAIA,IAAM,qBAAqB;AAwCpB,SAAS,YACd,OACA,UACoB;AAEpB,MAAI,gBAAgB,KAAK,KAAK,aAAa,QAAW;AACpD,WAAO,MAAM,YAAY;AAAA,EAC3B;AAGA,MAAI,iBAAiB,MAAM;AACzB,QAAI,aAAa,QAAW;AAC1B,YAAM,IAAI,MAAM,2FAA2F;AAAA,IAC7G;AACA,WAAO,SAAS,QAAQ,KAAK,MAAM,YAAY,CAAC,EAAE,mBAAmB,QAAQ,EAAE,YAAY;AAAA,EAC7F;AAGA,MAAI,UAAU,KAAK,GAAG;AACpB,QAAI,aAAa,QAAW;AAC1B,YAAM,IAAI,MAAM,2FAA2F;AAAA,IAC7G;AACA,WAAO,MAAM,mBAAmB,QAAQ,EAAE,YAAY;AAAA,EACxD;AAGA,MAAI,gBAAgB,KAAK,GAAG;AAC1B,QAAI,aAAa,QAAW;AAC1B,YAAM,IAAI,MAAM,2FAA2F;AAAA,IAC7G;AACA,WAAO,MAAM,UAAU,EAAE,mBAAmB,QAAQ,EAAE,YAAY;AAAA,EACpE;AAGA,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,aAAa,QAAW;AAC1B,aAAO,SAAS,QAAQ,KAAK,KAAK,EAAE,mBAAmB,QAAQ,EAAE,YAAY;AAAA,IAC/E;AACA,QAAI,mBAAmB,KAAK,KAAK,GAAG;AAClC,aAAO,SAAS,UAAU,KAAK,KAAK;AAAA,IACtC;AACA,UAAM,IAAI,MAAM,2FAA2F;AAAA,EAC7G;AAGA,SAAO,SAAS,UAAU,KAAK,KAAK;AACtC;","names":[]}
@@ -1,5 +1,8 @@
1
+ import {
2
+ Temporal
3
+ } from "./chunk-AI5MRREC.js";
4
+
1
5
  // src/shared/isAfter.ts
2
- import { Temporal } from "@js-temporal/polyfill";
3
6
  function isAfter(date1, date2) {
4
7
  return Temporal.ZonedDateTime.compare(date1, date2) > 0;
5
8
  }
@@ -7,4 +10,4 @@ function isAfter(date1, date2) {
7
10
  export {
8
11
  isAfter
9
12
  };
10
- //# sourceMappingURL=chunk-WY63VEXE.js.map
13
+ //# sourceMappingURL=chunk-JM42PLWS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/shared/isAfter.ts"],"sourcesContent":["import { Temporal } from './temporal';\n\nexport function isAfter(\n date1: Temporal.ZonedDateTime,\n date2: Temporal.ZonedDateTime\n): boolean {\n return Temporal.ZonedDateTime.compare(date1, date2) > 0;\n}\n"],"mappings":";;;;;AAEO,SAAS,QACd,OACA,OACS;AACT,SAAO,SAAS,cAAc,QAAQ,OAAO,KAAK,IAAI;AACxD;","names":[]}
@@ -1,9 +1,11 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-65RGM7EG.js";
4
+ import {
5
+ Temporal
6
+ } from "./chunk-AI5MRREC.js";
4
7
 
5
8
  // src/eachDayOfInterval.ts
6
- import { Temporal } from "@js-temporal/polyfill";
7
9
  function eachDayOfInterval(interval) {
8
10
  const startZoned = normalizeTemporalInput(interval.start);
9
11
  const endZoned = normalizeTemporalInput(interval.end);
@@ -22,4 +24,4 @@ function eachDayOfInterval(interval) {
22
24
  export {
23
25
  eachDayOfInterval
24
26
  };
25
- //# sourceMappingURL=chunk-DKYVFYWM.js.map
27
+ //# sourceMappingURL=chunk-JTANYFEV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/eachDayOfInterval.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns an array of ZonedDateTime objects for each calendar day within the interval.\n * Each element represents the start of day (midnight) in the timezone of the interval start.\n * The interval is inclusive of both start and end days.\n *\n * For Instant inputs, UTC is used as the timezone.\n * For ZonedDateTime inputs, the timezone of the start date is preserved.\n *\n * @param interval - The interval with start and end datetimes\n * @returns Array of ZonedDateTime at start of each day in the interval\n *\n * @example\n * ```ts\n * const start = Temporal.ZonedDateTime.from('2025-01-06T10:00:00Z[UTC]');\n * const end = Temporal.ZonedDateTime.from('2025-01-10T14:00:00Z[UTC]');\n *\n * const days = eachDayOfInterval({ start, end });\n * // [\n * // 2025-01-06T00:00:00Z[UTC],\n * // 2025-01-07T00:00:00Z[UTC],\n * // 2025-01-08T00:00:00Z[UTC],\n * // 2025-01-09T00:00:00Z[UTC],\n * // 2025-01-10T00:00:00Z[UTC]\n * // ]\n * ```\n *\n * @example\n * ```ts\n * // With timezone - preserves the timezone from start\n * const start = Temporal.ZonedDateTime.from('2025-01-06T10:00:00-05:00[America/New_York]');\n * const end = Temporal.ZonedDateTime.from('2025-01-08T14:00:00-05:00[America/New_York]');\n *\n * const days = eachDayOfInterval({ start, end });\n * // [\n * // 2025-01-06T00:00:00-05:00[America/New_York],\n * // 2025-01-07T00:00:00-05:00[America/New_York],\n * // 2025-01-08T00:00:00-05:00[America/New_York]\n * // ]\n * ```\n *\n * @example\n * ```ts\n * // With Instant (uses UTC)\n * const start = Temporal.Instant.from('2025-01-06T00:00:00Z');\n * const end = Temporal.Instant.from('2025-01-08T00:00:00Z');\n *\n * const days = eachDayOfInterval({ start, end });\n * // [\n * // 2025-01-06T00:00:00Z[UTC],\n * // 2025-01-07T00:00:00Z[UTC],\n * // 2025-01-08T00:00:00Z[UTC]\n * // ]\n * ```\n *\n * @example\n * ```ts\n * // Single day interval\n * const date = Temporal.ZonedDateTime.from('2025-01-15T12:00:00Z[UTC]');\n *\n * eachDayOfInterval({ start: date, end: date });\n * // [2025-01-15T00:00:00Z[UTC]]\n * ```\n */\nexport function eachDayOfInterval(interval: {\n start: Temporal.Instant | Temporal.ZonedDateTime;\n end: Temporal.Instant | Temporal.ZonedDateTime;\n}): Temporal.ZonedDateTime[] {\n const startZoned = normalizeTemporalInput(interval.start);\n const endZoned = normalizeTemporalInput(interval.end);\n\n const timezone = startZoned.timeZoneId;\n const startDate = startZoned.toPlainDate();\n const endDate = endZoned.withTimeZone(timezone).toPlainDate();\n\n const days: Temporal.ZonedDateTime[] = [];\n let current = startDate;\n\n while (Temporal.PlainDate.compare(current, endDate) <= 0) {\n days.push(current.toZonedDateTime({ timeZone: timezone, plainTime: new Temporal.PlainTime() }));\n current = current.add({ days: 1 });\n }\n\n return days;\n}\n"],"mappings":";;;;;;;;AAkEO,SAAS,kBAAkB,UAGL;AAC3B,QAAM,aAAa,uBAAuB,SAAS,KAAK;AACxD,QAAM,WAAW,uBAAuB,SAAS,GAAG;AAEpD,QAAM,WAAW,WAAW;AAC5B,QAAM,YAAY,WAAW,YAAY;AACzC,QAAM,UAAU,SAAS,aAAa,QAAQ,EAAE,YAAY;AAE5D,QAAM,OAAiC,CAAC;AACxC,MAAI,UAAU;AAEd,SAAO,SAAS,UAAU,QAAQ,SAAS,OAAO,KAAK,GAAG;AACxD,SAAK,KAAK,QAAQ,gBAAgB,EAAE,UAAU,UAAU,WAAW,IAAI,SAAS,UAAU,EAAE,CAAC,CAAC;AAC9F,cAAU,QAAQ,IAAI,EAAE,MAAM,EAAE,CAAC;AAAA,EACnC;AAEA,SAAO;AACT;","names":[]}
@@ -1,9 +1,11 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-65RGM7EG.js";
4
+ import {
5
+ Temporal
6
+ } from "./chunk-AI5MRREC.js";
4
7
 
5
8
  // src/eachMinuteOfInterval.ts
6
- import { Temporal } from "@js-temporal/polyfill";
7
9
  function eachMinuteOfInterval(interval) {
8
10
  const startZoned = normalizeTemporalInput(interval.start);
9
11
  const endZoned = normalizeTemporalInput(interval.end);
@@ -23,4 +25,4 @@ function eachMinuteOfInterval(interval) {
23
25
  export {
24
26
  eachMinuteOfInterval
25
27
  };
26
- //# sourceMappingURL=chunk-G2JUEBC5.js.map
28
+ //# sourceMappingURL=chunk-LOANS6ZE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/eachMinuteOfInterval.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns an array of ZonedDateTime objects for each minute within the interval.\n * Each element represents the start of the minute (seconds/etc. set to 0).\n * The interval is inclusive of both start and end minutes.\n *\n * For Instant inputs, UTC is used as the timezone.\n * For ZonedDateTime inputs, the timezone of the start date is preserved.\n *\n * Warning: Large intervals can produce very large arrays. For example, a 24-hour\n * interval produces 1,441 elements. Consider whether this is appropriate for your use case.\n *\n * @param interval - The interval with start and end datetimes\n * @returns Array of ZonedDateTime at start of each minute in the interval\n *\n * @example\n * ```ts\n * const start = Temporal.ZonedDateTime.from('2025-01-06T10:30:00Z[UTC]');\n * const end = Temporal.ZonedDateTime.from('2025-01-06T10:33:45Z[UTC]');\n *\n * const minutes = eachMinuteOfInterval({ start, end });\n * // [\n * // 2025-01-06T10:30:00Z[UTC],\n * // 2025-01-06T10:31:00Z[UTC],\n * // 2025-01-06T10:32:00Z[UTC],\n * // 2025-01-06T10:33:00Z[UTC]\n * // ]\n * ```\n *\n * @example\n * ```ts\n * // Cross-hour boundary\n * const start = Temporal.ZonedDateTime.from('2025-01-06T10:58:00Z[UTC]');\n * const end = Temporal.ZonedDateTime.from('2025-01-06T11:02:00Z[UTC]');\n *\n * const minutes = eachMinuteOfInterval({ start, end });\n * // [\n * // 2025-01-06T10:58:00Z[UTC],\n * // 2025-01-06T10:59:00Z[UTC],\n * // 2025-01-06T11:00:00Z[UTC],\n * // 2025-01-06T11:01:00Z[UTC],\n * // 2025-01-06T11:02:00Z[UTC]\n * // ]\n * ```\n */\nexport function eachMinuteOfInterval(interval: {\n start: Temporal.Instant | Temporal.ZonedDateTime;\n end: Temporal.Instant | Temporal.ZonedDateTime;\n}): Temporal.ZonedDateTime[] {\n const startZoned = normalizeTemporalInput(interval.start);\n const endZoned = normalizeTemporalInput(interval.end);\n\n const timezone = startZoned.timeZoneId;\n\n // Get start of the starting minute\n const startMinute = startZoned.round({ smallestUnit: 'minute', roundingMode: 'floor' });\n\n // Get start of the ending minute in the same timezone\n const endInTimezone = endZoned.withTimeZone(timezone);\n const endMinute = endInTimezone.round({ smallestUnit: 'minute', roundingMode: 'floor' });\n\n const minutes: Temporal.ZonedDateTime[] = [];\n let current = startMinute;\n\n while (Temporal.ZonedDateTime.compare(current, endMinute) <= 0) {\n minutes.push(current);\n current = current.add({ minutes: 1 });\n }\n\n return minutes;\n}\n"],"mappings":";;;;;;;;AA+CO,SAAS,qBAAqB,UAGR;AAC3B,QAAM,aAAa,uBAAuB,SAAS,KAAK;AACxD,QAAM,WAAW,uBAAuB,SAAS,GAAG;AAEpD,QAAM,WAAW,WAAW;AAG5B,QAAM,cAAc,WAAW,MAAM,EAAE,cAAc,UAAU,cAAc,QAAQ,CAAC;AAGtF,QAAM,gBAAgB,SAAS,aAAa,QAAQ;AACpD,QAAM,YAAY,cAAc,MAAM,EAAE,cAAc,UAAU,cAAc,QAAQ,CAAC;AAEvF,QAAM,UAAoC,CAAC;AAC3C,MAAI,UAAU;AAEd,SAAO,SAAS,cAAc,QAAQ,SAAS,SAAS,KAAK,GAAG;AAC9D,YAAQ,KAAK,OAAO;AACpB,cAAU,QAAQ,IAAI,EAAE,SAAS,EAAE,CAAC;AAAA,EACtC;AAEA,SAAO;AACT;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-65RGM7EG.js";
4
4
 
5
5
  // src/roundToNearestHour.ts
6
6
  var MODE_TO_ROUNDING_MODE = {
@@ -22,4 +22,4 @@ function roundToNearestHour(input, options) {
22
22
  export {
23
23
  roundToNearestHour
24
24
  };
25
- //# sourceMappingURL=chunk-MMI2HHT7.js.map
25
+ //# sourceMappingURL=chunk-LTW2TDLL.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-65RGM7EG.js";
4
4
 
5
5
  // src/roundToNearestSecond.ts
6
6
  var MODE_TO_ROUNDING_MODE = {
@@ -22,4 +22,4 @@ function roundToNearestSecond(input, options) {
22
22
  export {
23
23
  roundToNearestSecond
24
24
  };
25
- //# sourceMappingURL=chunk-JHRXY36W.js.map
25
+ //# sourceMappingURL=chunk-MA7PR6V5.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-65RGM7EG.js";
4
4
 
5
5
  // src/addDays.ts
6
6
  function addDays(input, days) {
@@ -11,4 +11,4 @@ function addDays(input, days) {
11
11
  export {
12
12
  addDays
13
13
  };
14
- //# sourceMappingURL=chunk-L4SVABDH.js.map
14
+ //# sourceMappingURL=chunk-MEADD45E.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-65RGM7EG.js";
4
4
 
5
5
  // src/addMinutes.ts
6
6
  function addMinutes(input, minutes) {
@@ -11,4 +11,4 @@ function addMinutes(input, minutes) {
11
11
  export {
12
12
  addMinutes
13
13
  };
14
- //# sourceMappingURL=chunk-2XHAHSB6.js.map
14
+ //# sourceMappingURL=chunk-MXE44KVG.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-65RGM7EG.js";
4
4
 
5
5
  // src/addWeeks.ts
6
6
  function addWeeks(input, weeks) {
@@ -11,4 +11,4 @@ function addWeeks(input, weeks) {
11
11
  export {
12
12
  addWeeks
13
13
  };
14
- //# sourceMappingURL=chunk-DT2EWLHU.js.map
14
+ //# sourceMappingURL=chunk-NE7HNEF6.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-65RGM7EG.js";
4
4
 
5
5
  // src/addNanoseconds.ts
6
6
  function addNanoseconds(input, nanoseconds) {
@@ -11,4 +11,4 @@ function addNanoseconds(input, nanoseconds) {
11
11
  export {
12
12
  addNanoseconds
13
13
  };
14
- //# sourceMappingURL=chunk-EYO2ZJLH.js.map
14
+ //# sourceMappingURL=chunk-OPWK2TVF.js.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-65RGM7EG.js";
4
4
 
5
5
  // src/differenceInMonths.ts
6
- import "@js-temporal/polyfill";
7
- function differenceInMonths(laterDate, earlierDate) {
6
+ function differenceInMonths(laterDate, earlierDate, options) {
8
7
  const zoned1 = normalizeTemporalInput(laterDate);
9
8
  const zoned2 = normalizeTemporalInput(earlierDate);
10
9
  const duration = zoned2.until(zoned1, { largestUnit: "hours" });
11
- return duration.total({ unit: "months", relativeTo: zoned2 });
10
+ const precise = duration.total({ unit: "months", relativeTo: zoned2 });
11
+ return options?.fractional ? precise : Math.trunc(precise);
12
12
  }
13
13
 
14
14
  export {
15
15
  differenceInMonths
16
16
  };
17
- //# sourceMappingURL=chunk-BIAPE4MR.js.map
17
+ //# sourceMappingURL=chunk-OVFO6CZ7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/differenceInMonths.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\nimport type { DifferenceOptions } from './shared/differenceOptions';\n\n/**\n * Returns the number of months between two datetimes.\n * The result is positive if laterDate is after earlierDate, negative if before.\n *\n * This function uses calendar-aware calculation, which means it properly handles\n * months with different numbers of days (28, 29, 30, or 31).\n *\n * Instant inputs are converted to UTC for calendar calculations.\n * For ZonedDateTime inputs, their timezone is preserved.\n *\n * @param laterDate - The later datetime (Instant or ZonedDateTime)\n * @param earlierDate - The earlier datetime (Instant or ZonedDateTime)\n * @param options - Optional { fractional } to return the precise value\n * @returns The number of months between the dates, truncated toward zero (pass { fractional: true } for the precise value)\n *\n * @example\n * ```ts\n * const later = Temporal.Instant.from('2025-04-20T12:00:00Z');\n * const earlier = Temporal.Instant.from('2025-01-20T12:00:00Z');\n *\n * differenceInMonths(later, earlier); // 3\n * ```\n *\n * @example\n * ```ts\n * // Works with ZonedDateTime\n * const later = Temporal.ZonedDateTime.from('2025-06-15T15:00:00-05:00[America/New_York]');\n * const earlier = Temporal.ZonedDateTime.from('2025-01-15T15:00:00-05:00[America/New_York]');\n *\n * differenceInMonths(later, earlier); // 5\n * ```\n *\n * @example\n * ```ts\n * // Pass { fractional: true } for partial-unit precision\n * const later = Temporal.Instant.from('2025-02-05T12:00:00Z');\n * const earlier = Temporal.Instant.from('2025-01-20T12:00:00Z');\n *\n * differenceInMonths(later, earlier); // 0\n * differenceInMonths(later, earlier, { fractional: true }); // ~0.5\n * ```\n */\nexport function differenceInMonths(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime,\n options?: DifferenceOptions\n): number {\n const zoned1 = normalizeTemporalInput(laterDate);\n const zoned2 = normalizeTemporalInput(earlierDate);\n\n const duration = zoned2.until(zoned1, { largestUnit: 'hours' });\n const precise = duration.total({ unit: 'months', relativeTo: zoned2 });\n return options?.fractional ? precise : Math.trunc(precise);\n}\n"],"mappings":";;;;;AA8CO,SAAS,mBACd,WACA,aACA,SACQ;AACR,QAAM,SAAS,uBAAuB,SAAS;AAC/C,QAAM,SAAS,uBAAuB,WAAW;AAEjD,QAAM,WAAW,OAAO,MAAM,QAAQ,EAAE,aAAa,QAAQ,CAAC;AAC9D,QAAM,UAAU,SAAS,MAAM,EAAE,MAAM,UAAU,YAAY,OAAO,CAAC;AACrE,SAAO,SAAS,aAAa,UAAU,KAAK,MAAM,OAAO;AAC3D;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  addMilliseconds
3
- } from "./chunk-A5VVBYNT.js";
3
+ } from "./chunk-ATEVQYB6.js";
4
4
 
5
5
  // src/subMilliseconds.ts
6
6
  function subMilliseconds(input, milliseconds) {
@@ -10,4 +10,4 @@ function subMilliseconds(input, milliseconds) {
10
10
  export {
11
11
  subMilliseconds
12
12
  };
13
- //# sourceMappingURL=chunk-HDBH7RTY.js.map
13
+ //# sourceMappingURL=chunk-OX4I35UO.js.map
@@ -1,5 +1,4 @@
1
1
  // src/formatPlainDate.ts
2
- import "@js-temporal/polyfill";
3
2
  function formatPlainDate(date, formatStr, options = {}) {
4
3
  const { locale = "en-US" } = options;
5
4
  let result = "";
@@ -183,4 +182,4 @@ function getOrdinalSuffix(num) {
183
182
  export {
184
183
  formatPlainDate
185
184
  };
186
- //# sourceMappingURL=chunk-3A6X6WV5.js.map
185
+ //# sourceMappingURL=chunk-PXF3RMFH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/formatPlainDate.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\n\nexport interface FormatPlainDateOptions {\n locale?: string;\n}\n\n/**\n * Format a Temporal.PlainDate using date-fns-like format tokens.\n * Uses Intl.DateTimeFormat under the hood for locale support.\n *\n * Only supports date-related tokens (no time or timezone tokens).\n *\n * @param date - A Temporal.PlainDate to format\n * @param formatStr - Format string using date-fns tokens (e.g., \"yyyy-MM-dd\")\n * @param options - Optional configuration for locale\n * @returns Formatted date string\n *\n * @example\n * ```typescript\n * const date = Temporal.PlainDate.from(\"2025-01-20\");\n *\n * formatPlainDate(date, \"yyyy-MM-dd\"); // \"2025-01-20\"\n * formatPlainDate(date, \"MMMM d, yyyy\"); // \"January 20, 2025\"\n * formatPlainDate(date, \"EEEE, MMMM do, yyyy\"); // \"Monday, January 20th, 2025\"\n *\n * // With locale\n * formatPlainDate(date, \"MMMM d, yyyy\", { locale: \"es-ES\" }); // \"enero 20, 2025\"\n * ```\n */\nexport function formatPlainDate(\n date: Temporal.PlainDate,\n formatStr: string,\n options: FormatPlainDateOptions = {}\n): string {\n const { locale = 'en-US' } = options;\n\n let result = '';\n let i = 0;\n const len = formatStr.length;\n\n while (i < len) {\n const char = formatStr[i];\n if (!char) break;\n\n // Handle escaped text\n if (char === \"'\") {\n // Check for double single quote (not inside a string, just '')\n if (i + 1 < len && formatStr[i + 1] === \"'\") {\n result += \"'\";\n i += 2;\n continue;\n }\n // Find closing quote, handling '' inside the string\n i++;\n while (i < len) {\n if (formatStr[i] === \"'\") {\n // Check if it's a doubled quote ''\n if (i + 1 < len && formatStr[i + 1] === \"'\") {\n result += \"'\";\n i += 2;\n } else {\n // End of quoted string\n i++;\n break;\n }\n } else {\n result += formatStr[i];\n i++;\n }\n }\n continue;\n }\n\n // Check for tokens by looking ahead\n const token = consumeToken(formatStr, i, char);\n if (token !== null) {\n result += formatToken(token, date, locale);\n i += token.length;\n } else {\n result += char;\n i++;\n }\n }\n\n return result;\n}\n\nfunction consumeToken(formatStr: string, start: number, char: string): string | null {\n // Special case for 'Mo' and 'do' - these end with 'o'\n if (char === 'M' && start + 1 < formatStr.length && formatStr[start + 1] === 'o') {\n return 'Mo';\n }\n if (char === 'd' && start + 1 < formatStr.length && formatStr[start + 1] === 'o') {\n return 'do';\n }\n\n // Count how many consecutive identical characters\n let end = start;\n while (end < formatStr.length && formatStr[end] === char) {\n end++;\n }\n const count = end - start;\n\n // Valid tokens for PlainDate (date-only, no time/timezone)\n const validTokens = [\n // Era\n 'GGGGG',\n 'GGGG',\n 'GGG',\n 'GG',\n 'G',\n // Year\n 'yyyy',\n 'yyy',\n 'yy',\n 'y',\n // Quarter\n 'QQQQQ',\n 'QQQQ',\n 'QQQ',\n 'QQ',\n 'Q',\n // Month\n 'MMMMM',\n 'MMMM',\n 'MMM',\n 'MM',\n 'M',\n // Day\n 'dd',\n 'd',\n // Weekday\n 'EEEEEE',\n 'EEEEE',\n 'EEEE',\n 'EEE',\n 'EE',\n 'E',\n ];\n\n // Try to match from longest to shortest\n for (let len = Math.min(count, 6); len > 0; len--) {\n const candidate = char.repeat(len);\n if (validTokens.includes(candidate)) {\n return candidate;\n }\n }\n\n return null;\n}\n\nfunction formatToken(token: string, date: Temporal.PlainDate, locale: string): string {\n switch (token) {\n // Era\n case 'GGGGG':\n return formatPart(date, 'era', 'narrow', locale);\n case 'GGGG':\n return formatPart(date, 'era', 'long', locale);\n case 'GGG':\n case 'GG':\n case 'G':\n return formatPart(date, 'era', 'short', locale);\n\n // Year\n case 'yyyy':\n return date.year.toString().padStart(4, '0');\n case 'yyy':\n return date.year.toString().padStart(3, '0');\n case 'yy':\n return (date.year % 100).toString().padStart(2, '0');\n case 'y':\n return date.year.toString();\n\n // Quarter\n case 'QQQQQ':\n return Math.ceil(date.month / 3).toString();\n case 'QQQQ': {\n const quarter = Math.ceil(date.month / 3);\n return `${quarter}${getOrdinalSuffix(quarter)} quarter`;\n }\n case 'QQQ':\n return `Q${Math.ceil(date.month / 3)}`;\n case 'QQ':\n return Math.ceil(date.month / 3)\n .toString()\n .padStart(2, '0');\n case 'Q':\n return Math.ceil(date.month / 3).toString();\n\n // Month\n case 'MMMMM':\n return formatPart(date, 'month', 'narrow', locale);\n case 'MMMM':\n return formatPart(date, 'month', 'long', locale);\n case 'MMM':\n return formatPart(date, 'month', 'short', locale);\n case 'MM':\n return date.month.toString().padStart(2, '0');\n case 'Mo':\n return `${date.month}${getOrdinalSuffix(date.month)}`;\n case 'M':\n return date.month.toString();\n\n // Day of month\n case 'do':\n return `${date.day}${getOrdinalSuffix(date.day)}`;\n case 'dd':\n return date.day.toString().padStart(2, '0');\n case 'd':\n return date.day.toString();\n\n // Day of week\n case 'EEEEEE':\n return formatPart(date, 'weekday', 'short', locale).slice(0, 2);\n case 'EEEEE':\n return formatPart(date, 'weekday', 'narrow', locale);\n case 'EEEE':\n return formatPart(date, 'weekday', 'long', locale);\n case 'EEE':\n case 'EE':\n case 'E':\n return formatPart(date, 'weekday', 'short', locale);\n\n default:\n return token;\n }\n}\n\nfunction formatPart(\n date: Temporal.PlainDate,\n part: 'era' | 'year' | 'month' | 'weekday' | 'day',\n style: 'narrow' | 'short' | 'long' | 'numeric' | '2-digit',\n locale: string\n): string {\n const options: Intl.DateTimeFormatOptions = {\n [part]: style,\n };\n\n return date.toLocaleString(locale, options);\n}\n\nfunction getOrdinalSuffix(num: number): string {\n const j = num % 10;\n const k = num % 100;\n if (j === 1 && k !== 11) return 'st';\n if (j === 2 && k !== 12) return 'nd';\n if (j === 3 && k !== 13) return 'rd';\n return 'th';\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-65RGM7EG.js";
4
4
 
5
5
  // src/isSameSecond.ts
6
6
  function isSameSecond(date1, date2) {
@@ -12,4 +12,4 @@ function isSameSecond(date1, date2) {
12
12
  export {
13
13
  isSameSecond
14
14
  };
15
- //# sourceMappingURL=chunk-CY746ZUQ.js.map
15
+ //# sourceMappingURL=chunk-RB2YCLBV.js.map
@@ -1,8 +1,13 @@
1
+ import {
2
+ Temporal,
3
+ isInstant,
4
+ isZonedDateTime
5
+ } from "./chunk-AI5MRREC.js";
6
+
1
7
  // src/toPlainTime.ts
2
- import { Temporal } from "@js-temporal/polyfill";
3
8
  var PLAIN_TIME_PATTERN = /^\d{2}:\d{2}(:\d{2}(\.\d+)?)?$/;
4
9
  function toPlainTime(input, timezone) {
5
- if (input instanceof Temporal.ZonedDateTime && timezone === void 0) {
10
+ if (isZonedDateTime(input) && timezone === void 0) {
6
11
  return input.toPlainTime();
7
12
  }
8
13
  if (input instanceof Date) {
@@ -11,13 +16,13 @@ function toPlainTime(input, timezone) {
11
16
  }
12
17
  return Temporal.Instant.from(input.toISOString()).toZonedDateTimeISO(timezone).toPlainTime();
13
18
  }
14
- if (input instanceof Temporal.Instant) {
19
+ if (isInstant(input)) {
15
20
  if (timezone === void 0) {
16
21
  throw new Error("Timezone is required unless input is a ZonedDateTime, PlainTimeLike, or plain time string");
17
22
  }
18
23
  return input.toZonedDateTimeISO(timezone).toPlainTime();
19
24
  }
20
- if (input instanceof Temporal.ZonedDateTime) {
25
+ if (isZonedDateTime(input)) {
21
26
  if (timezone === void 0) {
22
27
  throw new Error("Timezone is required unless input is a ZonedDateTime, PlainTimeLike, or plain time string");
23
28
  }
@@ -38,4 +43,4 @@ function toPlainTime(input, timezone) {
38
43
  export {
39
44
  toPlainTime
40
45
  };
41
- //# sourceMappingURL=chunk-UJWM2BV2.js.map
46
+ //# sourceMappingURL=chunk-RLF3Y7VC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/toPlainTime.ts"],"sourcesContent":["import { Temporal, isInstant, isZonedDateTime } from './shared/temporal';\nimport type { Timezone } from './types';\n\n// Pattern to detect plain time strings: HH:MM, HH:MM:SS, or HH:MM:SS.fractional\nconst PLAIN_TIME_PATTERN = /^\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?$/;\n\n/**\n * Parse a plain time or extract the wall-clock time from a datetime.\n *\n * @param input - A PlainTimeLike object, plain time string (HH:MM or HH:MM:SS), ZonedDateTime, or datetime input requiring timezone\n * @param timezone - IANA timezone identifier. Required for ISO strings, Date, and Instant inputs.\n * @returns A Temporal.PlainTime representing the wall-clock time\n *\n * @example\n * ```typescript\n * import { toPlainTime, toZonedTime } from '@gobrand/tiempo';\n *\n * // From PlainTimeLike object (no timezone needed)\n * const time = toPlainTime({ hour: 14, minute: 30 }); // 14:30\n *\n * // From plain time string (no timezone needed)\n * const time2 = toPlainTime(\"14:30\"); // 14:30\n * const timeWithSeconds = toPlainTime(\"14:30:45\"); // 14:30:45\n *\n * // From ZonedDateTime (no timezone needed)\n * const zdt = toZonedTime(\"2025-01-20T15:30:00Z\", \"America/New_York\");\n * const time3 = toPlainTime(zdt); // 10:30\n *\n * // From UTC string with timezone\n * const time4 = toPlainTime(\"2025-01-20T15:30:00Z\", \"America/New_York\"); // 10:30\n *\n * // From Date with timezone\n * const date = new Date(\"2025-01-20T15:30:00.000Z\");\n * const time5 = toPlainTime(date, \"Europe/London\"); // 15:30\n *\n * // From Instant with timezone\n * const instant = Temporal.Instant.from(\"2025-01-20T15:30:00Z\");\n * const time6 = toPlainTime(instant, \"Asia/Tokyo\"); // 00:30\n * ```\n */\nexport function toPlainTime(input: Temporal.ZonedDateTime): Temporal.PlainTime;\nexport function toPlainTime(\n input: string | Date | Temporal.Instant | Temporal.ZonedDateTime,\n timezone: Timezone\n): Temporal.PlainTime;\nexport function toPlainTime(input: Temporal.PlainTimeLike | string): Temporal.PlainTime;\nexport function toPlainTime(\n input: string | Date | Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainTimeLike,\n timezone?: Timezone\n): Temporal.PlainTime {\n // ZonedDateTime without timezone override\n if (isZonedDateTime(input) && timezone === undefined) {\n return input.toPlainTime();\n }\n\n // Date requires timezone\n if (input instanceof Date) {\n if (timezone === undefined) {\n throw new Error('Timezone is required unless input is a ZonedDateTime, PlainTimeLike, or plain time string');\n }\n return Temporal.Instant.from(input.toISOString()).toZonedDateTimeISO(timezone).toPlainTime();\n }\n\n // Instant requires timezone\n if (isInstant(input)) {\n if (timezone === undefined) {\n throw new Error('Timezone is required unless input is a ZonedDateTime, PlainTimeLike, or plain time string');\n }\n return input.toZonedDateTimeISO(timezone).toPlainTime();\n }\n\n // ZonedDateTime with timezone override\n if (isZonedDateTime(input)) {\n if (timezone === undefined) {\n throw new Error('Timezone is required unless input is a ZonedDateTime, PlainTimeLike, or plain time string');\n }\n return input.toInstant().toZonedDateTimeISO(timezone).toPlainTime();\n }\n\n // String: ISO datetime (requires timezone) or plain time (no timezone)\n if (typeof input === 'string') {\n if (timezone !== undefined) {\n return Temporal.Instant.from(input).toZonedDateTimeISO(timezone).toPlainTime();\n }\n if (PLAIN_TIME_PATTERN.test(input)) {\n return Temporal.PlainTime.from(input);\n }\n throw new Error('Timezone is required unless input is a ZonedDateTime, PlainTimeLike, or plain time string');\n }\n\n // PlainTimeLike object - pass directly to Temporal.PlainTime.from()\n return Temporal.PlainTime.from(input);\n}\n"],"mappings":";;;;;;;AAIA,IAAM,qBAAqB;AA0CpB,SAAS,YACd,OACA,UACoB;AAEpB,MAAI,gBAAgB,KAAK,KAAK,aAAa,QAAW;AACpD,WAAO,MAAM,YAAY;AAAA,EAC3B;AAGA,MAAI,iBAAiB,MAAM;AACzB,QAAI,aAAa,QAAW;AAC1B,YAAM,IAAI,MAAM,2FAA2F;AAAA,IAC7G;AACA,WAAO,SAAS,QAAQ,KAAK,MAAM,YAAY,CAAC,EAAE,mBAAmB,QAAQ,EAAE,YAAY;AAAA,EAC7F;AAGA,MAAI,UAAU,KAAK,GAAG;AACpB,QAAI,aAAa,QAAW;AAC1B,YAAM,IAAI,MAAM,2FAA2F;AAAA,IAC7G;AACA,WAAO,MAAM,mBAAmB,QAAQ,EAAE,YAAY;AAAA,EACxD;AAGA,MAAI,gBAAgB,KAAK,GAAG;AAC1B,QAAI,aAAa,QAAW;AAC1B,YAAM,IAAI,MAAM,2FAA2F;AAAA,IAC7G;AACA,WAAO,MAAM,UAAU,EAAE,mBAAmB,QAAQ,EAAE,YAAY;AAAA,EACpE;AAGA,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,aAAa,QAAW;AAC1B,aAAO,SAAS,QAAQ,KAAK,KAAK,EAAE,mBAAmB,QAAQ,EAAE,YAAY;AAAA,IAC/E;AACA,QAAI,mBAAmB,KAAK,KAAK,GAAG;AAClC,aAAO,SAAS,UAAU,KAAK,KAAK;AAAA,IACtC;AACA,UAAM,IAAI,MAAM,2FAA2F;AAAA,EAC7G;AAGA,SAAO,SAAS,UAAU,KAAK,KAAK;AACtC;","names":[]}
@@ -1,5 +1,8 @@
1
+ import {
2
+ Temporal
3
+ } from "./chunk-AI5MRREC.js";
4
+
1
5
  // src/isPlainTimeAfter.ts
2
- import { Temporal } from "@js-temporal/polyfill";
3
6
  function isPlainTimeAfter(time1, time2) {
4
7
  return Temporal.PlainTime.compare(time1, time2) > 0;
5
8
  }
@@ -7,4 +10,4 @@ function isPlainTimeAfter(time1, time2) {
7
10
  export {
8
11
  isPlainTimeAfter
9
12
  };
10
- //# sourceMappingURL=chunk-RBEW6PXR.js.map
13
+ //# sourceMappingURL=chunk-RPQ5K247.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/isPlainTimeAfter.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\n\n/**\n * Returns true if the first plain time is after the second plain time.\n * Compares wall-clock times without date or timezone considerations.\n *\n * @param time1 - First plain time\n * @param time2 - Second plain time\n * @returns true if time1 is after time2, false otherwise\n *\n * @example\n * ```ts\n * const morning = Temporal.PlainTime.from('09:00');\n * const evening = Temporal.PlainTime.from('17:00');\n *\n * isPlainTimeAfter(evening, morning); // true\n * isPlainTimeAfter(morning, evening); // false\n * isPlainTimeAfter(morning, morning); // false\n * ```\n */\nexport function isPlainTimeAfter(\n time1: Temporal.PlainTime,\n time2: Temporal.PlainTime\n): boolean {\n return Temporal.PlainTime.compare(time1, time2) > 0;\n}\n"],"mappings":";;;;;AAoBO,SAAS,iBACd,OACA,OACS;AACT,SAAO,SAAS,UAAU,QAAQ,OAAO,KAAK,IAAI;AACpD;","names":[]}