@gobrand/tiempo 2.8.0 → 2.9.0

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 (446) 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-OLEOU3XE.js → chunk-2J434XZJ.js} +5 -3
  12. package/dist/chunk-2J434XZJ.js.map +1 -0
  13. package/dist/{chunk-RW3C2677.js → chunk-3QC5YINX.js} +2 -3
  14. package/dist/chunk-3QC5YINX.js.map +1 -0
  15. package/dist/{chunk-YIT6EMBC.js → chunk-3WWRI3NR.js} +2 -3
  16. package/dist/chunk-3WWRI3NR.js.map +1 -0
  17. package/dist/{chunk-X26WIJ6L.js → chunk-46EP6MO2.js} +7 -5
  18. package/dist/chunk-46EP6MO2.js.map +1 -0
  19. package/dist/{chunk-UBY22QWM.js → chunk-4ZRJ3EHQ.js} +4 -4
  20. package/dist/{chunk-Q2F3HEXB.js → chunk-5HVHKQTJ.js} +2 -2
  21. package/dist/{chunk-BV6CLVSI.js → chunk-76RCTVBW.js} +3 -4
  22. package/dist/chunk-76RCTVBW.js.map +1 -0
  23. package/dist/{chunk-O6RIN7K3.js → chunk-7LZPFGGV.js} +5 -2
  24. package/dist/chunk-7LZPFGGV.js.map +1 -0
  25. package/dist/{chunk-5C3TQSWA.js → chunk-7NQ76UHP.js} +4 -5
  26. package/dist/chunk-7NQ76UHP.js.map +1 -0
  27. package/dist/{chunk-52NEOY34.js → chunk-7XVPK2AV.js} +2 -2
  28. package/dist/{chunk-PVAOUYXF.js → chunk-AAORAX74.js} +5 -5
  29. package/dist/chunk-AAORAX74.js.map +1 -0
  30. package/dist/{chunk-776JOVV6.js → chunk-ADAN2I34.js} +2 -3
  31. package/dist/chunk-ADAN2I34.js.map +1 -0
  32. package/dist/{chunk-WUAIUEH7.js → chunk-BIH6JETG.js} +5 -2
  33. package/dist/chunk-BIH6JETG.js.map +1 -0
  34. package/dist/{chunk-DT2EWLHU.js → chunk-BOGN7JC3.js} +2 -2
  35. package/dist/{chunk-WY63VEXE.js → chunk-C5HDCIRV.js} +5 -2
  36. package/dist/chunk-C5HDCIRV.js.map +1 -0
  37. package/dist/{chunk-WVHAYLBW.js → chunk-CP4JNCMO.js} +2 -2
  38. package/dist/{chunk-HFQUXON5.js → chunk-DGRZ6HO3.js} +10 -5
  39. package/dist/chunk-DGRZ6HO3.js.map +1 -0
  40. package/dist/{chunk-MMI2HHT7.js → chunk-DHJ353HR.js} +2 -2
  41. package/dist/{chunk-4NJMCCUM.js → chunk-DJRIH2PX.js} +2 -2
  42. package/dist/{chunk-YKBP3G7L.js → chunk-DN3V4IZC.js} +2 -2
  43. package/dist/{chunk-EYO2ZJLH.js → chunk-DOGZ2WBH.js} +2 -2
  44. package/dist/{chunk-QFNGYTTH.js → chunk-DTZPE5PM.js} +5 -3
  45. package/dist/chunk-DTZPE5PM.js.map +1 -0
  46. package/dist/chunk-ERCE3YCO.js +19 -0
  47. package/dist/chunk-ERCE3YCO.js.map +1 -0
  48. package/dist/{chunk-6IP245MS.js → chunk-ESTLMF2X.js} +5 -5
  49. package/dist/chunk-ESTLMF2X.js.map +1 -0
  50. package/dist/chunk-F6EWMA4K.js +13 -0
  51. package/dist/chunk-F6EWMA4K.js.map +1 -0
  52. package/dist/{chunk-7VLSSOVC.js → chunk-FEUIZJOV.js} +3 -4
  53. package/dist/chunk-FEUIZJOV.js.map +1 -0
  54. package/dist/{chunk-ZGR4NZTS.js → chunk-FIX6LQG5.js} +2 -3
  55. package/dist/chunk-FIX6LQG5.js.map +1 -0
  56. package/dist/{chunk-L4SVABDH.js → chunk-G4COVQ5S.js} +2 -2
  57. package/dist/{chunk-LDO6PRNJ.js → chunk-GEMTHX5S.js} +2 -2
  58. package/dist/{chunk-3TSFIPUR.js → chunk-GS3J5YVW.js} +2 -3
  59. package/dist/chunk-GS3J5YVW.js.map +1 -0
  60. package/dist/{chunk-DKYVFYWM.js → chunk-GVZOCS7O.js} +5 -3
  61. package/dist/chunk-GVZOCS7O.js.map +1 -0
  62. package/dist/{chunk-BIAPE4MR.js → chunk-HHPXUFZP.js} +5 -5
  63. package/dist/chunk-HHPXUFZP.js.map +1 -0
  64. package/dist/{chunk-S63QUP4W.js → chunk-I3RXBZP5.js} +2 -2
  65. package/dist/{chunk-ADQTZVMH.js → chunk-IPWSPA4H.js} +2 -2
  66. package/dist/chunk-JVB5IARQ.js +19 -0
  67. package/dist/chunk-JVB5IARQ.js.map +1 -0
  68. package/dist/{chunk-JOD4ATPE.js → chunk-JXBC2VU2.js} +2 -2
  69. package/dist/{chunk-V27NUBXQ.js → chunk-KKMM6HYC.js} +2 -2
  70. package/dist/{chunk-A5VVBYNT.js → chunk-KONRPZXK.js} +2 -2
  71. package/dist/{chunk-CY746ZUQ.js → chunk-L2CNUS43.js} +2 -2
  72. package/dist/{chunk-KZB6NERH.js → chunk-LGLV7RIC.js} +5 -2
  73. package/dist/chunk-LGLV7RIC.js.map +1 -0
  74. package/dist/{chunk-JA7SVLAF.js → chunk-LLN2SKGE.js} +4 -4
  75. package/dist/{chunk-JNA3AFOC.js → chunk-LYPSZYIG.js} +5 -2
  76. package/dist/chunk-LYPSZYIG.js.map +1 -0
  77. package/dist/{chunk-AE36GX4F.js → chunk-MHXSUAPE.js} +5 -2
  78. package/dist/chunk-MHXSUAPE.js.map +1 -0
  79. package/dist/{chunk-BUX26GTD.js → chunk-NKWGZIOJ.js} +5 -3
  80. package/dist/chunk-NKWGZIOJ.js.map +1 -0
  81. package/dist/{chunk-VZJGCDAG.js → chunk-NT7VDFLO.js} +5 -2
  82. package/dist/chunk-NT7VDFLO.js.map +1 -0
  83. package/dist/{chunk-7ATM7AXL.js → chunk-OGNREZPA.js} +2 -2
  84. package/dist/{chunk-EZ7NVTZI.js → chunk-OKPTY2ZQ.js} +7 -5
  85. package/dist/chunk-OKPTY2ZQ.js.map +1 -0
  86. package/dist/{chunk-ISHZRFVN.js → chunk-OPACRBGV.js} +2 -2
  87. package/dist/{chunk-J6G2I2TU.js → chunk-OZYC3TAR.js} +2 -2
  88. package/dist/{chunk-2XHAHSB6.js → chunk-PBT2OZJH.js} +2 -2
  89. package/dist/{chunk-BSV32PSO.js → chunk-PEGMMWZU.js} +6 -3
  90. package/dist/chunk-PEGMMWZU.js.map +1 -0
  91. package/dist/{chunk-BH2YB4MV.js → chunk-PWPACA4G.js} +2 -2
  92. package/dist/{chunk-3A6X6WV5.js → chunk-PXF3RMFH.js} +1 -2
  93. package/dist/chunk-PXF3RMFH.js.map +1 -0
  94. package/dist/{chunk-HDBH7RTY.js → chunk-QGXK664C.js} +2 -2
  95. package/dist/{chunk-AJEIDKVJ.js → chunk-QHQACJEU.js} +5 -2
  96. package/dist/chunk-QHQACJEU.js.map +1 -0
  97. package/dist/{chunk-CHW2EN2O.js → chunk-QPGTY5DD.js} +5 -5
  98. package/dist/chunk-QPGTY5DD.js.map +1 -0
  99. package/dist/{chunk-Y7CIJQ67.js → chunk-QRLTVRYC.js} +5 -3
  100. package/dist/chunk-QRLTVRYC.js.map +1 -0
  101. package/dist/{chunk-JHRXY36W.js → chunk-QVXCG625.js} +2 -2
  102. package/dist/{chunk-OQ4CWKJT.js → chunk-R7MM4BDS.js} +2 -3
  103. package/dist/chunk-R7MM4BDS.js.map +1 -0
  104. package/dist/{chunk-EEQ3REET.js → chunk-RSY3BI3P.js} +2 -2
  105. package/dist/{chunk-NRD5HRZV.js → chunk-RTANLM3L.js} +2 -2
  106. package/dist/{chunk-OABS374T.js → chunk-RUJC6FOA.js} +2 -3
  107. package/dist/chunk-RUJC6FOA.js.map +1 -0
  108. package/dist/{chunk-BQBLSXK2.js → chunk-SDCVBRJP.js} +2 -2
  109. package/dist/{chunk-HLGMUTFK.js → chunk-SFXJV5ZT.js} +2 -3
  110. package/dist/chunk-SFXJV5ZT.js.map +1 -0
  111. package/dist/{chunk-BPZ7BRJW.js → chunk-SHDXBQ7E.js} +5 -2
  112. package/dist/chunk-SHDXBQ7E.js.map +1 -0
  113. package/dist/{chunk-VLZ3HQQA.js → chunk-SQJTTKEI.js} +2 -2
  114. package/dist/{chunk-RBEW6PXR.js → chunk-SRXD4AGD.js} +5 -2
  115. package/dist/chunk-SRXD4AGD.js.map +1 -0
  116. package/dist/{chunk-4PSMM55Q.js → chunk-SWDOKPVX.js} +7 -3
  117. package/dist/chunk-SWDOKPVX.js.map +1 -0
  118. package/dist/{chunk-UJWM2BV2.js → chunk-SY2S6MMZ.js} +10 -5
  119. package/dist/chunk-SY2S6MMZ.js.map +1 -0
  120. package/dist/{chunk-ZC6KWXCW.js → chunk-SZATPYBI.js} +36 -27
  121. package/dist/chunk-SZATPYBI.js.map +1 -0
  122. package/dist/{chunk-TGKWBQ7L.js → chunk-T6ONGPRF.js} +6 -3
  123. package/dist/chunk-T6ONGPRF.js.map +1 -0
  124. package/dist/{chunk-PPB62JYV.js → chunk-TDZ3XUH7.js} +2 -2
  125. package/dist/{chunk-G2JUEBC5.js → chunk-TIEAKS3O.js} +5 -3
  126. package/dist/chunk-TIEAKS3O.js.map +1 -0
  127. package/dist/{chunk-DFLGGK4F.js → chunk-U7ZWIAB3.js} +6 -3
  128. package/dist/chunk-U7ZWIAB3.js.map +1 -0
  129. package/dist/chunk-VOZTLX5F.js +22 -0
  130. package/dist/chunk-VOZTLX5F.js.map +1 -0
  131. package/dist/{chunk-XW5MLXX5.js → chunk-VVV5BNLP.js} +2 -2
  132. package/dist/{chunk-AJ4JBKJK.js → chunk-VXOQ7IG5.js} +1 -2
  133. package/dist/chunk-VXOQ7IG5.js.map +1 -0
  134. package/dist/{chunk-HOCNCQTC.js → chunk-W6RF44CV.js} +2 -3
  135. package/dist/chunk-W6RF44CV.js.map +1 -0
  136. package/dist/{chunk-AHMKY474.js → chunk-WJOGQ6IB.js} +2 -2
  137. package/dist/{chunk-ZJQS7ZY7.js → chunk-WLW622M7.js} +22 -21
  138. package/dist/chunk-WLW622M7.js.map +1 -0
  139. package/dist/{chunk-ZDA7GSWU.js → chunk-WNPPRDN3.js} +3 -4
  140. package/dist/chunk-WNPPRDN3.js.map +1 -0
  141. package/dist/{chunk-4E7OGJ3F.js → chunk-XONITURH.js} +5 -2
  142. package/dist/chunk-XONITURH.js.map +1 -0
  143. package/dist/{chunk-UJW2FPI4.js → chunk-XRZUPSUB.js} +2 -2
  144. package/dist/chunk-Y4HT4LCB.js +19 -0
  145. package/dist/chunk-Y4HT4LCB.js.map +1 -0
  146. package/dist/{chunk-TNCLJK4Y.js → chunk-Z2LOTP6T.js} +5 -3
  147. package/dist/chunk-Z2LOTP6T.js.map +1 -0
  148. package/dist/chunk-ZBEEQUE4.js +19 -0
  149. package/dist/chunk-ZBEEQUE4.js.map +1 -0
  150. package/dist/{chunk-FSD3DDFC.js → chunk-ZFXBHDFB.js} +5 -2
  151. package/dist/chunk-ZFXBHDFB.js.map +1 -0
  152. package/dist/{chunk-U4RNUZXO.js → chunk-ZKGR3F4F.js} +2 -2
  153. package/dist/{chunk-YQBM63DC.js → chunk-ZSRCVDZ2.js} +9 -4
  154. package/dist/chunk-ZSRCVDZ2.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 +37 -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-ZJQS7ZY7.js.map +0 -1
  413. /package/dist/{chunk-UBY22QWM.js.map → chunk-4ZRJ3EHQ.js.map} +0 -0
  414. /package/dist/{chunk-Q2F3HEXB.js.map → chunk-5HVHKQTJ.js.map} +0 -0
  415. /package/dist/{chunk-52NEOY34.js.map → chunk-7XVPK2AV.js.map} +0 -0
  416. /package/dist/{chunk-DT2EWLHU.js.map → chunk-BOGN7JC3.js.map} +0 -0
  417. /package/dist/{chunk-WVHAYLBW.js.map → chunk-CP4JNCMO.js.map} +0 -0
  418. /package/dist/{chunk-MMI2HHT7.js.map → chunk-DHJ353HR.js.map} +0 -0
  419. /package/dist/{chunk-4NJMCCUM.js.map → chunk-DJRIH2PX.js.map} +0 -0
  420. /package/dist/{chunk-YKBP3G7L.js.map → chunk-DN3V4IZC.js.map} +0 -0
  421. /package/dist/{chunk-EYO2ZJLH.js.map → chunk-DOGZ2WBH.js.map} +0 -0
  422. /package/dist/{chunk-L4SVABDH.js.map → chunk-G4COVQ5S.js.map} +0 -0
  423. /package/dist/{chunk-LDO6PRNJ.js.map → chunk-GEMTHX5S.js.map} +0 -0
  424. /package/dist/{chunk-S63QUP4W.js.map → chunk-I3RXBZP5.js.map} +0 -0
  425. /package/dist/{chunk-ADQTZVMH.js.map → chunk-IPWSPA4H.js.map} +0 -0
  426. /package/dist/{chunk-JOD4ATPE.js.map → chunk-JXBC2VU2.js.map} +0 -0
  427. /package/dist/{chunk-V27NUBXQ.js.map → chunk-KKMM6HYC.js.map} +0 -0
  428. /package/dist/{chunk-A5VVBYNT.js.map → chunk-KONRPZXK.js.map} +0 -0
  429. /package/dist/{chunk-CY746ZUQ.js.map → chunk-L2CNUS43.js.map} +0 -0
  430. /package/dist/{chunk-JA7SVLAF.js.map → chunk-LLN2SKGE.js.map} +0 -0
  431. /package/dist/{chunk-7ATM7AXL.js.map → chunk-OGNREZPA.js.map} +0 -0
  432. /package/dist/{chunk-ISHZRFVN.js.map → chunk-OPACRBGV.js.map} +0 -0
  433. /package/dist/{chunk-J6G2I2TU.js.map → chunk-OZYC3TAR.js.map} +0 -0
  434. /package/dist/{chunk-2XHAHSB6.js.map → chunk-PBT2OZJH.js.map} +0 -0
  435. /package/dist/{chunk-BH2YB4MV.js.map → chunk-PWPACA4G.js.map} +0 -0
  436. /package/dist/{chunk-HDBH7RTY.js.map → chunk-QGXK664C.js.map} +0 -0
  437. /package/dist/{chunk-JHRXY36W.js.map → chunk-QVXCG625.js.map} +0 -0
  438. /package/dist/{chunk-EEQ3REET.js.map → chunk-RSY3BI3P.js.map} +0 -0
  439. /package/dist/{chunk-NRD5HRZV.js.map → chunk-RTANLM3L.js.map} +0 -0
  440. /package/dist/{chunk-BQBLSXK2.js.map → chunk-SDCVBRJP.js.map} +0 -0
  441. /package/dist/{chunk-VLZ3HQQA.js.map → chunk-SQJTTKEI.js.map} +0 -0
  442. /package/dist/{chunk-PPB62JYV.js.map → chunk-TDZ3XUH7.js.map} +0 -0
  443. /package/dist/{chunk-XW5MLXX5.js.map → chunk-VVV5BNLP.js.map} +0 -0
  444. /package/dist/{chunk-AHMKY474.js.map → chunk-WJOGQ6IB.js.map} +0 -0
  445. /package/dist/{chunk-UJW2FPI4.js.map → chunk-XRZUPSUB.js.map} +0 -0
  446. /package/dist/{chunk-U4RNUZXO.js.map → chunk-ZKGR3F4F.js.map} +0 -0
@@ -1,8 +1,11 @@
1
+ import {
2
+ isInstant
3
+ } from "./chunk-VOZTLX5F.js";
4
+
1
5
  // src/toIso.ts
2
- import { Temporal } from "@js-temporal/polyfill";
3
6
  function toIso(input, options = {}) {
4
7
  const { mode = "utc" } = options;
5
- if (input instanceof Temporal.Instant) {
8
+ if (isInstant(input)) {
6
9
  return input.toString();
7
10
  }
8
11
  if (mode === "offset") {
@@ -14,4 +17,4 @@ function toIso(input, options = {}) {
14
17
  export {
15
18
  toIso
16
19
  };
17
- //# sourceMappingURL=chunk-BSV32PSO.js.map
20
+ //# sourceMappingURL=chunk-PEGMMWZU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/toIso.ts"],"sourcesContent":["import { isInstant } from './shared/temporal';\nimport type { Temporal } from '@js-temporal/polyfill';\n\nexport type IsoMode = 'utc' | 'offset';\n\nexport interface ToIsoOptions {\n /**\n * Output mode for time zone designator.\n * - 'utc' (default): UTC time with Z suffix\n * - 'offset': local time with offset suffix\n */\n mode?: IsoMode;\n}\n\n/**\n * Convert a Temporal.Instant to a UTC ISO 8601 string.\n */\nexport function toIso(input: Temporal.Instant): string;\n\n/**\n * Convert a Temporal.ZonedDateTime to an ISO 8601 string.\n *\n * @param input - A Temporal.ZonedDateTime\n * @param options - Output options\n *\n * @example\n * ```typescript\n * const zoned = Temporal.ZonedDateTime.from(\"2025-01-20T15:00:00-05:00[America/New_York]\");\n *\n * toIso(zoned); // \"2025-01-20T20:00:00Z\"\n * toIso(zoned, { mode: 'utc' }); // \"2025-01-20T20:00:00Z\"\n * toIso(zoned, { mode: 'offset' }); // \"2025-01-20T15:00:00-05:00\"\n * ```\n */\nexport function toIso(\n input: Temporal.ZonedDateTime,\n options?: ToIsoOptions\n): string;\n\nexport function toIso(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n options: ToIsoOptions = {}\n): string {\n const { mode = 'utc' } = options;\n\n if (isInstant(input)) {\n return input.toString();\n }\n\n if (mode === 'offset') {\n return input.toString({ timeZoneName: 'never' });\n }\n\n return input.toInstant().toString();\n}\n"],"mappings":";;;;;AAuCO,SAAS,MACd,OACA,UAAwB,CAAC,GACjB;AACR,QAAM,EAAE,OAAO,MAAM,IAAI;AAEzB,MAAI,UAAU,KAAK,GAAG;AACpB,WAAO,MAAM,SAAS;AAAA,EACxB;AAEA,MAAI,SAAS,UAAU;AACrB,WAAO,MAAM,SAAS,EAAE,cAAc,QAAQ,CAAC;AAAA,EACjD;AAEA,SAAO,MAAM,UAAU,EAAE,SAAS;AACpC;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  addSeconds
3
- } from "./chunk-NRD5HRZV.js";
3
+ } from "./chunk-RTANLM3L.js";
4
4
 
5
5
  // src/subSeconds.ts
6
6
  function subSeconds(input, seconds) {
@@ -10,4 +10,4 @@ function subSeconds(input, seconds) {
10
10
  export {
11
11
  subSeconds
12
12
  };
13
- //# sourceMappingURL=chunk-BH2YB4MV.js.map
13
+ //# sourceMappingURL=chunk-PWPACA4G.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
  addMilliseconds
3
- } from "./chunk-A5VVBYNT.js";
3
+ } from "./chunk-KONRPZXK.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-QGXK664C.js.map
@@ -1,5 +1,8 @@
1
+ import {
2
+ Temporal
3
+ } from "./chunk-VOZTLX5F.js";
4
+
1
5
  // src/isPlainTimeBefore.ts
2
- import { Temporal } from "@js-temporal/polyfill";
3
6
  function isPlainTimeBefore(time1, time2) {
4
7
  return Temporal.PlainTime.compare(time1, time2) < 0;
5
8
  }
@@ -7,4 +10,4 @@ function isPlainTimeBefore(time1, time2) {
7
10
  export {
8
11
  isPlainTimeBefore
9
12
  };
10
- //# sourceMappingURL=chunk-AJEIDKVJ.js.map
13
+ //# sourceMappingURL=chunk-QHQACJEU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/isPlainTimeBefore.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\n\n/**\n * Returns true if the first plain time is before 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 before 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 * isPlainTimeBefore(morning, evening); // true\n * isPlainTimeBefore(evening, morning); // false\n * isPlainTimeBefore(morning, morning); // false\n * ```\n */\nexport function isPlainTimeBefore(\n time1: Temporal.PlainTime,\n time2: Temporal.PlainTime\n): boolean {\n return Temporal.PlainTime.compare(time1, time2) < 0;\n}\n"],"mappings":";;;;;AAoBO,SAAS,kBACd,OACA,OACS;AACT,SAAO,SAAS,UAAU,QAAQ,OAAO,KAAK,IAAI;AACpD;","names":[]}
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-F6EWMA4K.js";
4
4
 
5
5
  // src/differenceInYears.ts
6
- import "@js-temporal/polyfill";
7
- function differenceInYears(laterDate, earlierDate) {
6
+ function differenceInYears(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: "years", relativeTo: zoned2 });
10
+ const precise = duration.total({ unit: "years", relativeTo: zoned2 });
11
+ return options?.fractional ? precise : Math.trunc(precise);
12
12
  }
13
13
 
14
14
  export {
15
15
  differenceInYears
16
16
  };
17
- //# sourceMappingURL=chunk-CHW2EN2O.js.map
17
+ //# sourceMappingURL=chunk-QPGTY5DD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/differenceInYears.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 years 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 * leap years (366 days) and regular years (365 days).\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 years between the dates, truncated toward zero (pass { fractional: true } for the precise value)\n *\n * @example\n * ```ts\n * const later = Temporal.Instant.from('2028-01-20T12:00:00Z');\n * const earlier = Temporal.Instant.from('2025-01-20T12:00:00Z');\n *\n * differenceInYears(later, earlier); // 3\n * ```\n *\n * @example\n * ```ts\n * // Works with ZonedDateTime\n * const later = Temporal.ZonedDateTime.from('2030-06-15T15:00:00-05:00[America/New_York]');\n * const earlier = Temporal.ZonedDateTime.from('2025-06-15T15:00:00-05:00[America/New_York]');\n *\n * differenceInYears(later, earlier); // 5\n * ```\n *\n * @example\n * ```ts\n * // Pass { fractional: true } for partial-unit precision\n * const later = Temporal.Instant.from('2025-07-20T12:00:00Z');\n * const earlier = Temporal.Instant.from('2025-01-20T12:00:00Z');\n *\n * differenceInYears(later, earlier); // 0\n * differenceInYears(later, earlier, { fractional: true }); // ~0.5\n * ```\n */\nexport function differenceInYears(\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: 'years', relativeTo: zoned2 });\n return options?.fractional ? precise : Math.trunc(precise);\n}\n"],"mappings":";;;;;AA8CO,SAAS,kBACd,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,SAAS,YAAY,OAAO,CAAC;AACpE,SAAO,SAAS,aAAa,UAAU,KAAK,MAAM,OAAO;AAC3D;","names":[]}
@@ -1,9 +1,11 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-F6EWMA4K.js";
4
+ import {
5
+ Temporal
6
+ } from "./chunk-VOZTLX5F.js";
4
7
 
5
8
  // src/eachHourOfInterval.ts
6
- import { Temporal } from "@js-temporal/polyfill";
7
9
  function eachHourOfInterval(interval) {
8
10
  const startZoned = normalizeTemporalInput(interval.start);
9
11
  const endZoned = normalizeTemporalInput(interval.end);
@@ -23,4 +25,4 @@ function eachHourOfInterval(interval) {
23
25
  export {
24
26
  eachHourOfInterval
25
27
  };
26
- //# sourceMappingURL=chunk-Y7CIJQ67.js.map
28
+ //# sourceMappingURL=chunk-QRLTVRYC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/eachHourOfInterval.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns an array of ZonedDateTime objects for each hour within the interval.\n * Each element represents the start of the hour (minute/second/etc. set to 0).\n * The interval is inclusive of both start and end hours.\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 * Note: During DST transitions, some hours may be skipped (spring forward) or\n * the array may contain fewer/more hours than expected based on wall-clock time.\n *\n * @param interval - The interval with start and end datetimes\n * @returns Array of ZonedDateTime at start of each hour 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-06T14:15:00Z[UTC]');\n *\n * const hours = eachHourOfInterval({ start, end });\n * // [\n * // 2025-01-06T10:00:00Z[UTC],\n * // 2025-01-06T11:00:00Z[UTC],\n * // 2025-01-06T12:00:00Z[UTC],\n * // 2025-01-06T13:00:00Z[UTC],\n * // 2025-01-06T14:00:00Z[UTC]\n * // ]\n * ```\n *\n * @example\n * ```ts\n * // Cross-day boundary\n * const start = Temporal.ZonedDateTime.from('2025-01-06T22:00:00Z[UTC]');\n * const end = Temporal.ZonedDateTime.from('2025-01-07T02:00:00Z[UTC]');\n *\n * const hours = eachHourOfInterval({ start, end });\n * // [\n * // 2025-01-06T22:00:00Z[UTC],\n * // 2025-01-06T23:00:00Z[UTC],\n * // 2025-01-07T00:00:00Z[UTC],\n * // 2025-01-07T01:00:00Z[UTC],\n * // 2025-01-07T02:00:00Z[UTC]\n * // ]\n * ```\n */\nexport function eachHourOfInterval(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 hour\n const startHour = startZoned.round({ smallestUnit: 'hour', roundingMode: 'floor' });\n\n // Get start of the ending hour in the same timezone\n const endInTimezone = endZoned.withTimeZone(timezone);\n const endHour = endInTimezone.round({ smallestUnit: 'hour', roundingMode: 'floor' });\n\n const hours: Temporal.ZonedDateTime[] = [];\n let current = startHour;\n\n while (Temporal.ZonedDateTime.compare(current, endHour) <= 0) {\n hours.push(current);\n current = current.add({ hours: 1 });\n }\n\n return hours;\n}\n"],"mappings":";;;;;;;;AAgDO,SAAS,mBAAmB,UAGN;AAC3B,QAAM,aAAa,uBAAuB,SAAS,KAAK;AACxD,QAAM,WAAW,uBAAuB,SAAS,GAAG;AAEpD,QAAM,WAAW,WAAW;AAG5B,QAAM,YAAY,WAAW,MAAM,EAAE,cAAc,QAAQ,cAAc,QAAQ,CAAC;AAGlF,QAAM,gBAAgB,SAAS,aAAa,QAAQ;AACpD,QAAM,UAAU,cAAc,MAAM,EAAE,cAAc,QAAQ,cAAc,QAAQ,CAAC;AAEnF,QAAM,QAAkC,CAAC;AACzC,MAAI,UAAU;AAEd,SAAO,SAAS,cAAc,QAAQ,SAAS,OAAO,KAAK,GAAG;AAC5D,UAAM,KAAK,OAAO;AAClB,cAAU,QAAQ,IAAI,EAAE,OAAO,EAAE,CAAC;AAAA,EACpC;AAEA,SAAO;AACT;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-F6EWMA4K.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-QVXCG625.js.map
@@ -1,12 +1,11 @@
1
1
  import {
2
2
  normalizeWithPlainDate
3
- } from "./chunk-KGVUENQO.js";
3
+ } from "./chunk-Y4HT4LCB.js";
4
4
  import {
5
5
  getEndOfDay
6
6
  } from "./chunk-AVGNRINZ.js";
7
7
 
8
8
  // src/endOfMonth.ts
9
- import "@js-temporal/polyfill";
10
9
  function endOfMonth(input, timezone) {
11
10
  const zonedDateTime = normalizeWithPlainDate(input, timezone);
12
11
  const lastDay = zonedDateTime.with({ day: zonedDateTime.daysInMonth });
@@ -16,4 +15,4 @@ function endOfMonth(input, timezone) {
16
15
  export {
17
16
  endOfMonth
18
17
  };
19
- //# sourceMappingURL=chunk-OQ4CWKJT.js.map
18
+ //# sourceMappingURL=chunk-R7MM4BDS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/endOfMonth.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\nimport type { Timezone } from './types';\nimport { getEndOfDay } from './shared/endOfDay';\nimport { normalizeWithPlainDate } from './shared/normalizeWithPlainDate';\n\n/**\n * Returns a ZonedDateTime representing the last moment of the month (last day at 23:59:59.999999999).\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @returns ZonedDateTime at the last day of the month at 23:59:59.999999999\n *\n * @example\n * ```ts\n * // From Instant (always UTC)\n * const instant = Temporal.Instant.from('2025-01-15T12:00:00Z');\n * const end = endOfMonth(instant);\n * // 2025-01-31T23:59:59.999999999Z[UTC]\n * ```\n *\n * @example\n * ```ts\n * // From ZonedDateTime (uses its timezone)\n * const zoned = Temporal.ZonedDateTime.from('2025-02-15T15:30:00-05:00[America/New_York]');\n * const end = endOfMonth(zoned);\n * // 2025-02-28T23:59:59.999999999-05:00[America/New_York]\n * ```\n *\n * @example\n * ```ts\n * // From PlainDate (requires timezone)\n * const date = Temporal.PlainDate.from('2025-02-15');\n * const end = endOfMonth(date, 'America/New_York');\n * // 2025-02-28T23:59:59.999999999-05:00[America/New_York]\n * ```\n */\nexport function endOfMonth(\n input: Temporal.Instant | Temporal.ZonedDateTime\n): Temporal.ZonedDateTime;\nexport function endOfMonth(\n input: Temporal.PlainDate,\n timezone: Timezone\n): Temporal.ZonedDateTime;\nexport function endOfMonth(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n timezone?: Timezone\n): Temporal.ZonedDateTime {\n const zonedDateTime = normalizeWithPlainDate(input, timezone!);\n const lastDay = zonedDateTime.with({ day: zonedDateTime.daysInMonth });\n return getEndOfDay(lastDay);\n}\n"],"mappings":";;;;;;;;AA0CO,SAAS,WACd,OACA,UACwB;AACxB,QAAM,gBAAgB,uBAAuB,OAAO,QAAS;AAC7D,QAAM,UAAU,cAAc,KAAK,EAAE,KAAK,cAAc,YAAY,CAAC;AACrE,SAAO,YAAY,OAAO;AAC5B;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-F6EWMA4K.js";
4
4
 
5
5
  // src/isSameHour.ts
6
6
  function isSameHour(date1, date2) {
@@ -12,4 +12,4 @@ function isSameHour(date1, date2) {
12
12
  export {
13
13
  isSameHour
14
14
  };
15
- //# sourceMappingURL=chunk-EEQ3REET.js.map
15
+ //# sourceMappingURL=chunk-RSY3BI3P.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-F6EWMA4K.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-RTANLM3L.js.map
@@ -1,9 +1,8 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-F6EWMA4K.js";
4
4
 
5
5
  // src/differenceInNanoseconds.ts
6
- import "@js-temporal/polyfill";
7
6
  function differenceInNanoseconds(laterDate, earlierDate) {
8
7
  const zoned1 = normalizeTemporalInput(laterDate);
9
8
  const zoned2 = normalizeTemporalInput(earlierDate);
@@ -13,4 +12,4 @@ function differenceInNanoseconds(laterDate, earlierDate) {
13
12
  export {
14
13
  differenceInNanoseconds
15
14
  };
16
- //# sourceMappingURL=chunk-OABS374T.js.map
15
+ //# sourceMappingURL=chunk-RUJC6FOA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/differenceInNanoseconds.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns the number of nanoseconds between two datetimes.\n * The result is positive if laterDate is after earlierDate, negative if before.\n *\n * @param laterDate - The later datetime (Instant or ZonedDateTime)\n * @param earlierDate - The earlier datetime (Instant or ZonedDateTime)\n * @returns The number of nanoseconds between the dates as a BigInt\n *\n * @example\n * ```ts\n * const later = Temporal.Instant.from('2025-01-20T12:30:20.000000500Z');\n * const earlier = Temporal.Instant.from('2025-01-20T12:30:20.000000000Z');\n *\n * differenceInNanoseconds(later, earlier); // 500n\n * ```\n *\n * @example\n * ```ts\n * // Works with ZonedDateTime\n * const later = Temporal.ZonedDateTime.from('2025-01-20T15:00:00.000000001-05:00[America/New_York]');\n * const earlier = Temporal.ZonedDateTime.from('2025-01-20T15:00:00.000000000-05:00[America/New_York]');\n *\n * differenceInNanoseconds(later, earlier); // 1n\n * ```\n *\n * @example\n * ```ts\n * // Handles different timezones - compares by instant\n * const tokyo = Temporal.ZonedDateTime.from('2025-01-21T00:00:00+09:00[Asia/Tokyo]');\n * const ny = Temporal.ZonedDateTime.from('2025-01-20T10:00:00-05:00[America/New_York]');\n *\n * differenceInNanoseconds(tokyo, ny); // 0n (same instant)\n * ```\n */\nexport function differenceInNanoseconds(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime\n): bigint {\n const zoned1 = normalizeTemporalInput(laterDate);\n const zoned2 = normalizeTemporalInput(earlierDate);\n\n return zoned1.epochNanoseconds - zoned2.epochNanoseconds;\n}\n"],"mappings":";;;;;AAqCO,SAAS,wBACd,WACA,aACQ;AACR,QAAM,SAAS,uBAAuB,SAAS;AAC/C,QAAM,SAAS,uBAAuB,WAAW;AAEjD,SAAO,OAAO,mBAAmB,OAAO;AAC1C;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  addMicroseconds
3
- } from "./chunk-V27NUBXQ.js";
3
+ } from "./chunk-KKMM6HYC.js";
4
4
 
5
5
  // src/subMicroseconds.ts
6
6
  function subMicroseconds(input, microseconds) {
@@ -10,4 +10,4 @@ function subMicroseconds(input, microseconds) {
10
10
  export {
11
11
  subMicroseconds
12
12
  };
13
- //# sourceMappingURL=chunk-BQBLSXK2.js.map
13
+ //# sourceMappingURL=chunk-SDCVBRJP.js.map
@@ -1,9 +1,8 @@
1
1
  import {
2
2
  normalizeWithPlainDate
3
- } from "./chunk-KGVUENQO.js";
3
+ } from "./chunk-Y4HT4LCB.js";
4
4
 
5
5
  // src/startOfMonth.ts
6
- import "@js-temporal/polyfill";
7
6
  function startOfMonth(input, timezone) {
8
7
  const zonedDateTime = normalizeWithPlainDate(input, timezone);
9
8
  const firstDay = zonedDateTime.with({ day: 1 });
@@ -13,4 +12,4 @@ function startOfMonth(input, timezone) {
13
12
  export {
14
13
  startOfMonth
15
14
  };
16
- //# sourceMappingURL=chunk-HLGMUTFK.js.map
15
+ //# sourceMappingURL=chunk-SFXJV5ZT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/startOfMonth.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\nimport type { Timezone } from './types';\nimport { normalizeWithPlainDate } from './shared/normalizeWithPlainDate';\n\n/**\n * Returns a ZonedDateTime representing the first moment of the month (day 1 at midnight).\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @returns ZonedDateTime at the 1st day of the month at 00:00:00.000000000\n *\n * @example\n * ```ts\n * // From Instant (always UTC)\n * const instant = Temporal.Instant.from('2025-01-15T12:00:00Z');\n * const start = startOfMonth(instant);\n * // 2025-01-01T00:00:00Z[UTC]\n * ```\n *\n * @example\n * ```ts\n * // From ZonedDateTime (uses its timezone)\n * const zoned = Temporal.ZonedDateTime.from('2025-01-15T15:30:00-05:00[America/New_York]');\n * const start = startOfMonth(zoned);\n * // 2025-01-01T00:00:00-05:00[America/New_York]\n * ```\n *\n * @example\n * ```ts\n * // From PlainDate (requires timezone)\n * const date = Temporal.PlainDate.from('2025-01-15');\n * const start = startOfMonth(date, 'America/New_York');\n * // 2025-01-01T00:00:00-05:00[America/New_York]\n * ```\n */\nexport function startOfMonth(\n input: Temporal.Instant | Temporal.ZonedDateTime\n): Temporal.ZonedDateTime;\nexport function startOfMonth(\n input: Temporal.PlainDate,\n timezone: Timezone\n): Temporal.ZonedDateTime;\nexport function startOfMonth(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n timezone?: Timezone\n): Temporal.ZonedDateTime {\n const zonedDateTime = normalizeWithPlainDate(input, timezone!);\n const firstDay = zonedDateTime.with({ day: 1 });\n return firstDay.startOfDay();\n}\n"],"mappings":";;;;;AAyCO,SAAS,aACd,OACA,UACwB;AACxB,QAAM,gBAAgB,uBAAuB,OAAO,QAAS;AAC7D,QAAM,WAAW,cAAc,KAAK,EAAE,KAAK,EAAE,CAAC;AAC9C,SAAO,SAAS,WAAW;AAC7B;","names":[]}
@@ -1,5 +1,8 @@
1
+ import {
2
+ Temporal
3
+ } from "./chunk-VOZTLX5F.js";
4
+
1
5
  // src/isPlainDateAfter.ts
2
- import { Temporal } from "@js-temporal/polyfill";
3
6
  function isPlainDateAfter(date1, date2) {
4
7
  return Temporal.PlainDate.compare(date1, date2) > 0;
5
8
  }
@@ -7,4 +10,4 @@ function isPlainDateAfter(date1, date2) {
7
10
  export {
8
11
  isPlainDateAfter
9
12
  };
10
- //# sourceMappingURL=chunk-BPZ7BRJW.js.map
13
+ //# sourceMappingURL=chunk-SHDXBQ7E.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/isPlainDateAfter.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\n\n/**\n * Returns true if the first plain date is after the second plain date.\n * Compares calendar dates without time or timezone considerations.\n *\n * @param date1 - First plain date\n * @param date2 - Second plain date\n * @returns true if date1 is after date2, false otherwise\n *\n * @example\n * ```ts\n * const jan20 = Temporal.PlainDate.from('2025-01-20');\n * const jan25 = Temporal.PlainDate.from('2025-01-25');\n *\n * isPlainDateAfter(jan25, jan20); // true\n * isPlainDateAfter(jan20, jan25); // false\n * isPlainDateAfter(jan20, jan20); // false\n * ```\n */\nexport function isPlainDateAfter(\n date1: Temporal.PlainDate,\n date2: Temporal.PlainDate\n): boolean {\n return Temporal.PlainDate.compare(date1, date2) > 0;\n}\n"],"mappings":";;;;;AAoBO,SAAS,iBACd,OACA,OACS;AACT,SAAO,SAAS,UAAU,QAAQ,OAAO,KAAK,IAAI;AACpD;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-F6EWMA4K.js";
4
4
 
5
5
  // src/isSameYear.ts
6
6
  function isSameYear(date1, date2) {
@@ -12,4 +12,4 @@ function isSameYear(date1, date2) {
12
12
  export {
13
13
  isSameYear
14
14
  };
15
- //# sourceMappingURL=chunk-VLZ3HQQA.js.map
15
+ //# sourceMappingURL=chunk-SQJTTKEI.js.map
@@ -1,5 +1,8 @@
1
+ import {
2
+ Temporal
3
+ } from "./chunk-VOZTLX5F.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-SRXD4AGD.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":[]}
@@ -1,5 +1,9 @@
1
+ import {
2
+ Temporal,
3
+ isInstant
4
+ } from "./chunk-VOZTLX5F.js";
5
+
1
6
  // src/toZonedTime.ts
2
- import { Temporal } from "@js-temporal/polyfill";
3
7
  function toZonedTime(input, timezone) {
4
8
  if (typeof input === "string") {
5
9
  return Temporal.Instant.from(input).toZonedDateTimeISO(timezone);
@@ -10,7 +14,7 @@ function toZonedTime(input, timezone) {
10
14
  if (input instanceof Date) {
11
15
  return Temporal.Instant.from(input.toISOString()).toZonedDateTimeISO(timezone);
12
16
  }
13
- if (input instanceof Temporal.Instant) {
17
+ if (isInstant(input)) {
14
18
  return input.toZonedDateTimeISO(timezone);
15
19
  }
16
20
  return input.toInstant().toZonedDateTimeISO(timezone);
@@ -19,4 +23,4 @@ function toZonedTime(input, timezone) {
19
23
  export {
20
24
  toZonedTime
21
25
  };
22
- //# sourceMappingURL=chunk-4PSMM55Q.js.map
26
+ //# sourceMappingURL=chunk-SWDOKPVX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/toZonedTime.ts"],"sourcesContent":["import { Temporal, isInstant } from './shared/temporal';\nimport type { Timezone } from './types';\n\n/**\n * Convert a UTC ISO string, Unix timestamp, Date, Instant, or ZonedDateTime to a ZonedDateTime in the specified timezone.\n *\n * @param input - A UTC ISO 8601 string, Unix timestamp (milliseconds), Date object, Temporal.Instant, or Temporal.ZonedDateTime\n * @param timezone - IANA timezone identifier (e.g., \"America/New_York\", \"Europe/London\") or \"UTC\"\n * @returns A Temporal.ZonedDateTime in the specified timezone\n *\n * @example\n * ```typescript\n * import { toZonedTime, browserTimezone } from '@gobrand/tiempo';\n *\n * // Server-side: Convert to UTC\n * const utcTime = toZonedTime(\"2025-01-20T20:00:00Z\", \"UTC\");\n *\n * // Server-side: Convert to user's timezone (from DB/preferences)\n * const userTime = toZonedTime(\"2025-01-20T20:00:00Z\", user.timezone);\n *\n * // Client-side: Convert to browser's timezone\n * const localTime = toZonedTime(\"2025-01-20T20:00:00Z\", browserTimezone());\n *\n * // From Unix timestamp (e.g., from database BIGINT or API response)\n * const timestamp = 1737403200000;\n * const zoned = toZonedTime(timestamp, \"America/New_York\");\n *\n * // From Date (e.g., from Drizzle ORM)\n * const date = new Date(\"2025-01-20T20:00:00.000Z\");\n * const zoned2 = toZonedTime(date, \"America/New_York\");\n *\n * // From Instant\n * const instant = Temporal.Instant.from(\"2025-01-20T20:00:00Z\");\n * const zoned3 = toZonedTime(instant, \"Asia/Tokyo\");\n *\n * // From ZonedDateTime (convert to different timezone)\n * const nyTime = Temporal.ZonedDateTime.from(\"2025-01-20T15:00:00-05:00[America/New_York]\");\n * const tokyoTime = toZonedTime(nyTime, \"Asia/Tokyo\");\n * ```\n */\nexport function toZonedTime(\n input: string | number | Date | Temporal.Instant | Temporal.ZonedDateTime,\n timezone: Timezone\n): Temporal.ZonedDateTime {\n if (typeof input === 'string') {\n return Temporal.Instant.from(input).toZonedDateTimeISO(timezone);\n }\n\n if (typeof input === 'number') {\n return Temporal.Instant.fromEpochMilliseconds(input).toZonedDateTimeISO(timezone);\n }\n\n if (input instanceof Date) {\n return Temporal.Instant.from(input.toISOString()).toZonedDateTimeISO(timezone);\n }\n\n if (isInstant(input)) {\n return input.toZonedDateTimeISO(timezone);\n }\n\n return input.toInstant().toZonedDateTimeISO(timezone);\n}\n"],"mappings":";;;;;;AAwCO,SAAS,YACd,OACA,UACwB;AACxB,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,SAAS,QAAQ,KAAK,KAAK,EAAE,mBAAmB,QAAQ;AAAA,EACjE;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,SAAS,QAAQ,sBAAsB,KAAK,EAAE,mBAAmB,QAAQ;AAAA,EAClF;AAEA,MAAI,iBAAiB,MAAM;AACzB,WAAO,SAAS,QAAQ,KAAK,MAAM,YAAY,CAAC,EAAE,mBAAmB,QAAQ;AAAA,EAC/E;AAEA,MAAI,UAAU,KAAK,GAAG;AACpB,WAAO,MAAM,mBAAmB,QAAQ;AAAA,EAC1C;AAEA,SAAO,MAAM,UAAU,EAAE,mBAAmB,QAAQ;AACtD;","names":[]}
@@ -1,8 +1,13 @@
1
+ import {
2
+ Temporal,
3
+ isInstant,
4
+ isZonedDateTime
5
+ } from "./chunk-VOZTLX5F.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-SY2S6MMZ.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,14 +1,16 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-MJSZNWCV.js";
3
+ } from "./chunk-F6EWMA4K.js";
4
+ import {
5
+ isInstant
6
+ } from "./chunk-VOZTLX5F.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-SZATPYBI.js.map