@gobrand/tiempo 3.1.3 → 3.2.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 (505) hide show
  1. package/dist/addBusinessDays.d.ts +14 -4
  2. package/dist/addBusinessDays.d.ts.map +1 -1
  3. package/dist/addBusinessDays.js +4 -4
  4. package/dist/addDays.js +3 -3
  5. package/dist/addHours.js +3 -3
  6. package/dist/addMicroseconds.js +3 -3
  7. package/dist/addMilliseconds.js +3 -3
  8. package/dist/addMinutes.js +3 -3
  9. package/dist/addMonths.js +3 -3
  10. package/dist/addNanoseconds.js +3 -3
  11. package/dist/addQuarters.d.ts +1 -1
  12. package/dist/addQuarters.js +3 -3
  13. package/dist/addSeconds.js +3 -3
  14. package/dist/addWeeks.js +3 -3
  15. package/dist/addYears.js +3 -3
  16. package/dist/areIntervalsOverlapping.d.ts +60 -0
  17. package/dist/areIntervalsOverlapping.d.ts.map +1 -0
  18. package/dist/areIntervalsOverlapping.js +9 -0
  19. package/dist/areIntervalsOverlapping.js.map +1 -0
  20. package/dist/{chunk-CN3OICYB.js → chunk-2LXWY2VY.js} +2 -2
  21. package/dist/{chunk-K3L6MJJB.js → chunk-2MWQYQ53.js} +2 -2
  22. package/dist/{chunk-LRIVI5ZC.js → chunk-34UWPATE.js} +2 -2
  23. package/dist/{chunk-QVSHSIA3.js → chunk-3OF6TFYK.js} +2 -2
  24. package/dist/{chunk-4KAIF44F.js → chunk-3YNUMQFB.js} +3 -3
  25. package/dist/{chunk-DZ3647ZK.js → chunk-4A3ORKMC.js} +3 -3
  26. package/dist/{chunk-Y24VUXMX.js → chunk-4JCRRIM3.js} +3 -3
  27. package/dist/{chunk-Y24VUXMX.js.map → chunk-4JCRRIM3.js.map} +1 -1
  28. package/dist/{chunk-IXNGK5OF.js → chunk-5EX3GTEU.js} +2 -2
  29. package/dist/{chunk-KTMCYEU5.js → chunk-5GRUOAYD.js} +2 -2
  30. package/dist/{chunk-KTMCYEU5.js.map → chunk-5GRUOAYD.js.map} +1 -1
  31. package/dist/{chunk-KZCSP3DU.js → chunk-5YKAVRED.js} +3 -3
  32. package/dist/{chunk-KYS54PLJ.js → chunk-6M654ZYJ.js} +3 -3
  33. package/dist/chunk-6M654ZYJ.js.map +1 -0
  34. package/dist/{chunk-DRBZDI52.js → chunk-6O66POF3.js} +2 -2
  35. package/dist/{chunk-U7VOIXLY.js → chunk-6SEPAWIA.js} +2 -2
  36. package/dist/{chunk-X27XGVCT.js → chunk-7DVEJNCP.js} +2 -2
  37. package/dist/{chunk-OF5YEVUT.js → chunk-7J7N4PCE.js} +2 -2
  38. package/dist/{chunk-OF5YEVUT.js.map → chunk-7J7N4PCE.js.map} +1 -1
  39. package/dist/chunk-7NHKDMBY.js +14 -0
  40. package/dist/chunk-7NHKDMBY.js.map +1 -0
  41. package/dist/{chunk-NMMMAMKP.js → chunk-7WGGUDW4.js} +1 -1
  42. package/dist/chunk-7WGGUDW4.js.map +1 -0
  43. package/dist/{chunk-DGUAV5XN.js → chunk-7ZJIEKIZ.js} +2 -2
  44. package/dist/chunk-7ZJIEKIZ.js.map +1 -0
  45. package/dist/{chunk-7IKCDOCT.js → chunk-AEAZ2F2T.js} +2 -2
  46. package/dist/{chunk-3HD7HEN4.js → chunk-APWSLQ47.js} +4 -4
  47. package/dist/{chunk-AOODDNHA.js → chunk-AWERPSJ5.js} +18 -16
  48. package/dist/chunk-AWERPSJ5.js.map +1 -0
  49. package/dist/{chunk-32AWWYBF.js → chunk-B7RDUXDN.js} +2 -2
  50. package/dist/{chunk-LQ3EQYIX.js → chunk-BE7CIKP7.js} +14 -6
  51. package/dist/chunk-BE7CIKP7.js.map +1 -0
  52. package/dist/{chunk-BI42E23Z.js → chunk-BM4OZR7U.js} +4 -4
  53. package/dist/{chunk-BI42E23Z.js.map → chunk-BM4OZR7U.js.map} +1 -1
  54. package/dist/{chunk-MXYAZTDE.js → chunk-C4LUGHIM.js} +7 -7
  55. package/dist/chunk-C4LUGHIM.js.map +1 -0
  56. package/dist/{chunk-3S6TSXZ3.js → chunk-CCDDXIAC.js} +2 -2
  57. package/dist/{chunk-BMX7CIRD.js → chunk-CMOBOTVN.js} +1 -1
  58. package/dist/chunk-CMOBOTVN.js.map +1 -0
  59. package/dist/{chunk-7NGP7SAD.js → chunk-COQJXPPT.js} +5 -5
  60. package/dist/{chunk-7NGP7SAD.js.map → chunk-COQJXPPT.js.map} +1 -1
  61. package/dist/{chunk-SLH6TKGN.js → chunk-CX37IV4D.js} +3 -3
  62. package/dist/{chunk-HYSGJJUR.js → chunk-D2HKS2OM.js} +2 -2
  63. package/dist/{chunk-4GEF7B7W.js → chunk-D73HU7YA.js} +3 -3
  64. package/dist/{chunk-OMYVTYHI.js → chunk-DAWWOF5W.js} +2 -2
  65. package/dist/{chunk-6QZUAJVF.js → chunk-DCQCZCKG.js} +4 -4
  66. package/dist/{chunk-5WHGX2J3.js → chunk-DEVXW65H.js} +2 -2
  67. package/dist/chunk-DFVLLH5O.js +17 -0
  68. package/dist/chunk-DFVLLH5O.js.map +1 -0
  69. package/dist/{chunk-ZM32S3YU.js → chunk-DYDSR35L.js} +2 -2
  70. package/dist/{chunk-ZM32S3YU.js.map → chunk-DYDSR35L.js.map} +1 -1
  71. package/dist/{chunk-QNZJR53W.js → chunk-DZFUKW5U.js} +4 -4
  72. package/dist/{chunk-QNZJR53W.js.map → chunk-DZFUKW5U.js.map} +1 -1
  73. package/dist/{chunk-F3UZDWOQ.js → chunk-EMJXV6KH.js} +2 -2
  74. package/dist/{chunk-F3UZDWOQ.js.map → chunk-EMJXV6KH.js.map} +1 -1
  75. package/dist/chunk-EMLUESE5.js +33 -0
  76. package/dist/chunk-EMLUESE5.js.map +1 -0
  77. package/dist/{chunk-QDY2KMYX.js → chunk-EQ3AZDKF.js} +3 -3
  78. package/dist/chunk-EQ3AZDKF.js.map +1 -0
  79. package/dist/{chunk-GQXJICRA.js → chunk-EWRNJC27.js} +2 -2
  80. package/dist/{chunk-TD6MVGV2.js → chunk-EYTJNGGV.js} +2 -2
  81. package/dist/{chunk-HCVE7FSF.js → chunk-FS7VH6AY.js} +2 -2
  82. package/dist/{chunk-HCVE7FSF.js.map → chunk-FS7VH6AY.js.map} +1 -1
  83. package/dist/{chunk-IWVSM77B.js → chunk-FTXHKXCS.js} +2 -2
  84. package/dist/{chunk-WTLMIOKZ.js → chunk-G7X7NHPV.js} +6 -3
  85. package/dist/{chunk-WTLMIOKZ.js.map → chunk-G7X7NHPV.js.map} +1 -1
  86. package/dist/{chunk-3HF4F36S.js → chunk-GLKCUJIZ.js} +3 -3
  87. package/dist/{chunk-GXSVYUCG.js → chunk-GZKKAIXF.js} +2 -2
  88. package/dist/{chunk-CDKIT7D3.js → chunk-H5TI3O4P.js} +1 -1
  89. package/dist/chunk-H5TI3O4P.js.map +1 -0
  90. package/dist/chunk-HH2HTC44.js +87 -0
  91. package/dist/chunk-HH2HTC44.js.map +1 -0
  92. package/dist/{chunk-TU3LNQKW.js → chunk-HMPHUFC6.js} +3 -3
  93. package/dist/{chunk-4VWUTQKP.js → chunk-HQ7JUUWD.js} +9 -5
  94. package/dist/chunk-HQ7JUUWD.js.map +1 -0
  95. package/dist/chunk-HXB6CDB4.js +26 -0
  96. package/dist/chunk-HXB6CDB4.js.map +1 -0
  97. package/dist/{chunk-SHKSAHJO.js → chunk-IOHTFQCP.js} +2 -2
  98. package/dist/chunk-IXRFVP3X.js +14 -0
  99. package/dist/chunk-IXRFVP3X.js.map +1 -0
  100. package/dist/{chunk-XSHFR2SX.js → chunk-IZPKAMAP.js} +2 -2
  101. package/dist/{chunk-3XGUCQ2A.js → chunk-JBGAF2FW.js} +2 -2
  102. package/dist/chunk-JDKM6JTT.js +20 -0
  103. package/dist/chunk-JDKM6JTT.js.map +1 -0
  104. package/dist/{chunk-ADPVFELS.js → chunk-K6IGDI5W.js} +2 -2
  105. package/dist/{chunk-ADPVFELS.js.map → chunk-K6IGDI5W.js.map} +1 -1
  106. package/dist/{chunk-AUOZACFS.js → chunk-KISBF5GX.js} +2 -2
  107. package/dist/{chunk-67XABEBT.js → chunk-KUDGVLQT.js} +11 -6
  108. package/dist/{chunk-67XABEBT.js.map → chunk-KUDGVLQT.js.map} +1 -1
  109. package/dist/{chunk-ZXKU4SKR.js → chunk-L535UIYN.js} +3 -3
  110. package/dist/{chunk-TIZJRCAA.js → chunk-L7X3FQZI.js} +2 -2
  111. package/dist/{chunk-TIZJRCAA.js.map → chunk-L7X3FQZI.js.map} +1 -1
  112. package/dist/{chunk-YMJHVVM4.js → chunk-LJMPJUHN.js} +2 -2
  113. package/dist/{chunk-NL5MQVGD.js → chunk-LKDENGBC.js} +2 -2
  114. package/dist/{chunk-A34P5Z5O.js → chunk-LL7XWZGU.js} +2 -2
  115. package/dist/chunk-LL7XWZGU.js.map +1 -0
  116. package/dist/{chunk-VDV24TWQ.js → chunk-LTYIPGQD.js} +2 -2
  117. package/dist/{chunk-JA5ER27P.js → chunk-LXAT3CDM.js} +2 -2
  118. package/dist/chunk-LXAT3CDM.js.map +1 -0
  119. package/dist/{chunk-MVGBYHG5.js → chunk-LY7IXVZO.js} +3 -3
  120. package/dist/{chunk-EBOLL4LY.js → chunk-M2QFNUJF.js} +2 -2
  121. package/dist/chunk-M2XB72L5.js +17 -0
  122. package/dist/chunk-M2XB72L5.js.map +1 -0
  123. package/dist/{chunk-BSVOJYJ7.js → chunk-M4ESIRFH.js} +1 -1
  124. package/dist/chunk-M4ESIRFH.js.map +1 -0
  125. package/dist/{chunk-RDMDCTHJ.js → chunk-MLD3VIOP.js} +2 -2
  126. package/dist/{chunk-BYPHFTFD.js → chunk-MPJ6UOLX.js} +7 -85
  127. package/dist/chunk-MPJ6UOLX.js.map +1 -0
  128. package/dist/{chunk-JGPTGV5X.js → chunk-MRJNMV4A.js} +3 -3
  129. package/dist/chunk-MYCH45BC.js +28 -0
  130. package/dist/chunk-MYCH45BC.js.map +1 -0
  131. package/dist/chunk-MZ26BHHP.js +21 -0
  132. package/dist/chunk-MZ26BHHP.js.map +1 -0
  133. package/dist/{chunk-EH4GVGXD.js → chunk-N5YFRFLA.js} +2 -2
  134. package/dist/{chunk-EH4GVGXD.js.map → chunk-N5YFRFLA.js.map} +1 -1
  135. package/dist/{chunk-NGS5UKDW.js → chunk-OJIV6AKO.js} +5 -5
  136. package/dist/chunk-OJIV6AKO.js.map +1 -0
  137. package/dist/{chunk-DBOIK3XA.js → chunk-ONTXMGEZ.js} +2 -2
  138. package/dist/{chunk-YKXRVQ4S.js → chunk-OURPZP7V.js} +2 -2
  139. package/dist/{chunk-MWUVGTKC.js → chunk-OZ5APQB7.js} +5 -5
  140. package/dist/{chunk-OOOVMKOG.js → chunk-PCYPESIN.js} +2 -2
  141. package/dist/{chunk-NZLRMN35.js → chunk-PENSGCVW.js} +2 -2
  142. package/dist/{chunk-6XEHR3MG.js → chunk-PI3QU5U5.js} +2 -2
  143. package/dist/{chunk-6XEHR3MG.js.map → chunk-PI3QU5U5.js.map} +1 -1
  144. package/dist/chunk-PJABNMRI.js +16 -0
  145. package/dist/chunk-PJABNMRI.js.map +1 -0
  146. package/dist/chunk-POCGMXLO.js +247 -0
  147. package/dist/chunk-POCGMXLO.js.map +1 -0
  148. package/dist/{chunk-VM2YJ5PN.js → chunk-PXKPP6C4.js} +2 -2
  149. package/dist/{chunk-HCORON7B.js → chunk-Q6MDBQRJ.js} +4 -4
  150. package/dist/{chunk-HCORON7B.js.map → chunk-Q6MDBQRJ.js.map} +1 -1
  151. package/dist/{chunk-TCB3IDJM.js → chunk-QCIY5PSJ.js} +4 -4
  152. package/dist/{chunk-LXOLIOAD.js → chunk-QF4M4T6G.js} +14 -6
  153. package/dist/{chunk-LXOLIOAD.js.map → chunk-QF4M4T6G.js.map} +1 -1
  154. package/dist/chunk-QFQHFBN4.js +61 -0
  155. package/dist/chunk-QFQHFBN4.js.map +1 -0
  156. package/dist/{chunk-ZW32E6EJ.js → chunk-QKIREPRK.js} +9 -9
  157. package/dist/{chunk-ZW32E6EJ.js.map → chunk-QKIREPRK.js.map} +1 -1
  158. package/dist/{chunk-LMOAA73F.js → chunk-QPE2V3MY.js} +3 -3
  159. package/dist/{chunk-2AID4P2C.js → chunk-R6CQ6XSS.js} +2 -2
  160. package/dist/{chunk-2AID4P2C.js.map → chunk-R6CQ6XSS.js.map} +1 -1
  161. package/dist/{chunk-6QH4NCPA.js → chunk-RCX6YW4I.js} +2 -2
  162. package/dist/{chunk-EAO2SO4N.js → chunk-RFUXK65B.js} +2 -2
  163. package/dist/chunk-RMVIA3NK.js +19 -0
  164. package/dist/chunk-RMVIA3NK.js.map +1 -0
  165. package/dist/chunk-S5CDK44R.js +22 -0
  166. package/dist/chunk-S5CDK44R.js.map +1 -0
  167. package/dist/{chunk-GU3CZAIN.js → chunk-SKHUBXIN.js} +2 -2
  168. package/dist/chunk-SURP2NUP.js +19 -0
  169. package/dist/chunk-SURP2NUP.js.map +1 -0
  170. package/dist/chunk-TH6YVPP4.js +21 -0
  171. package/dist/chunk-TH6YVPP4.js.map +1 -0
  172. package/dist/{chunk-V2NSN6ET.js → chunk-TP3VDQLF.js} +2 -2
  173. package/dist/{chunk-3X2U6I44.js → chunk-TZ4NUY3W.js} +3 -3
  174. package/dist/{chunk-6QOLNYFY.js → chunk-UB3F342R.js} +2 -2
  175. package/dist/chunk-UB3F342R.js.map +1 -0
  176. package/dist/{chunk-YSDLXJHE.js → chunk-UIOLC7XM.js} +2 -2
  177. package/dist/{chunk-PAM6VJQM.js → chunk-UP5M7NHW.js} +3 -3
  178. package/dist/chunk-UP5M7NHW.js.map +1 -0
  179. package/dist/chunk-UPWUAGEV.js +36 -0
  180. package/dist/chunk-UPWUAGEV.js.map +1 -0
  181. package/dist/{chunk-TI6WBLCB.js → chunk-UQ5GR6IX.js} +2 -2
  182. package/dist/{chunk-Q6QLOUXJ.js → chunk-UTM7YAT4.js} +2 -2
  183. package/dist/{chunk-HT6L4VRQ.js → chunk-UYHQBNQ4.js} +2 -2
  184. package/dist/{chunk-HT6L4VRQ.js.map → chunk-UYHQBNQ4.js.map} +1 -1
  185. package/dist/{chunk-R5XRTUWH.js → chunk-VQFWMNZO.js} +2 -2
  186. package/dist/{chunk-R2DCUSBY.js → chunk-WALS2M6Z.js} +2 -2
  187. package/dist/{chunk-K6NQZIAW.js → chunk-WTZ4LRQT.js} +2 -2
  188. package/dist/{chunk-3D4YR2SR.js → chunk-WVBZIXQP.js} +3 -3
  189. package/dist/{chunk-3D4YR2SR.js.map → chunk-WVBZIXQP.js.map} +1 -1
  190. package/dist/{chunk-525OLFRD.js → chunk-WWCLSC2B.js} +3 -3
  191. package/dist/chunk-WWCLSC2B.js.map +1 -0
  192. package/dist/chunk-X4ULMQ53.js +14 -0
  193. package/dist/chunk-X4ULMQ53.js.map +1 -0
  194. package/dist/{chunk-OEPVYNB6.js → chunk-XD4JKMGT.js} +2 -2
  195. package/dist/{chunk-OVBZ2NBB.js → chunk-XEAP4MXS.js} +11 -5
  196. package/dist/chunk-XEAP4MXS.js.map +1 -0
  197. package/dist/{chunk-BPMS34GV.js → chunk-XKS2HTEX.js} +3 -3
  198. package/dist/chunk-XKS2HTEX.js.map +1 -0
  199. package/dist/{chunk-TWXUGWYX.js → chunk-YN3Z5H5O.js} +1 -1
  200. package/dist/chunk-YN3Z5H5O.js.map +1 -0
  201. package/dist/{chunk-QZ6WXAUO.js → chunk-YPAI5UGF.js} +2 -2
  202. package/dist/{chunk-HRCTWTP3.js → chunk-YSUNJQBP.js} +3 -3
  203. package/dist/{chunk-NOWUJERX.js → chunk-Z7C5ZNPZ.js} +3 -3
  204. package/dist/{chunk-NOWUJERX.js.map → chunk-Z7C5ZNPZ.js.map} +1 -1
  205. package/dist/{chunk-QJYU5TLL.js → chunk-ZBNR46A5.js} +2 -2
  206. package/dist/{chunk-QJYU5TLL.js.map → chunk-ZBNR46A5.js.map} +1 -1
  207. package/dist/{chunk-JQ4Z4JTW.js → chunk-ZMAMJNWT.js} +2 -2
  208. package/dist/{chunk-NVFFQJEW.js → chunk-ZVAPV5JP.js} +4 -4
  209. package/dist/{chunk-NVFFQJEW.js.map → chunk-ZVAPV5JP.js.map} +1 -1
  210. package/dist/clamp.js +3 -3
  211. package/dist/closestTo.js +3 -3
  212. package/dist/compareAsc.js +3 -3
  213. package/dist/compareDesc.js +3 -3
  214. package/dist/differenceInBusinessDays.d.ts +7 -5
  215. package/dist/differenceInBusinessDays.d.ts.map +1 -1
  216. package/dist/differenceInBusinessDays.js +4 -4
  217. package/dist/differenceInCalendarDays.d.ts +35 -0
  218. package/dist/differenceInCalendarDays.d.ts.map +1 -0
  219. package/dist/differenceInCalendarDays.js +10 -0
  220. package/dist/differenceInCalendarDays.js.map +1 -0
  221. package/dist/differenceInCalendarMonths.d.ts +27 -0
  222. package/dist/differenceInCalendarMonths.d.ts.map +1 -0
  223. package/dist/differenceInCalendarMonths.js +10 -0
  224. package/dist/differenceInCalendarMonths.js.map +1 -0
  225. package/dist/differenceInCalendarQuarters.d.ts +26 -0
  226. package/dist/differenceInCalendarQuarters.d.ts.map +1 -0
  227. package/dist/differenceInCalendarQuarters.js +11 -0
  228. package/dist/differenceInCalendarQuarters.js.map +1 -0
  229. package/dist/differenceInCalendarWeeks.d.ts +29 -0
  230. package/dist/differenceInCalendarWeeks.d.ts.map +1 -0
  231. package/dist/differenceInCalendarWeeks.js +11 -0
  232. package/dist/differenceInCalendarWeeks.js.map +1 -0
  233. package/dist/differenceInCalendarYears.d.ts +27 -0
  234. package/dist/differenceInCalendarYears.d.ts.map +1 -0
  235. package/dist/differenceInCalendarYears.js +10 -0
  236. package/dist/differenceInCalendarYears.js.map +1 -0
  237. package/dist/differenceInDays.js +3 -3
  238. package/dist/differenceInHours.js +3 -3
  239. package/dist/differenceInMicroseconds.js +3 -3
  240. package/dist/differenceInMilliseconds.js +3 -3
  241. package/dist/differenceInMinutes.js +3 -3
  242. package/dist/differenceInMonths.js +3 -3
  243. package/dist/differenceInNanoseconds.js +3 -3
  244. package/dist/differenceInQuarters.d.ts +2 -2
  245. package/dist/differenceInQuarters.js +4 -4
  246. package/dist/differenceInSeconds.js +3 -3
  247. package/dist/differenceInWeeks.js +3 -3
  248. package/dist/differenceInYears.js +3 -3
  249. package/dist/eachDayOfInterval.js +4 -4
  250. package/dist/eachHourOfInterval.d.ts.map +1 -1
  251. package/dist/eachHourOfInterval.js +3 -3
  252. package/dist/eachMinuteOfInterval.js +3 -3
  253. package/dist/eachMonthOfInterval.js +5 -5
  254. package/dist/eachQuarterOfInterval.d.ts +1 -1
  255. package/dist/eachQuarterOfInterval.js +4 -4
  256. package/dist/eachWeekOfInterval.d.ts +7 -5
  257. package/dist/eachWeekOfInterval.d.ts.map +1 -1
  258. package/dist/eachWeekOfInterval.js +6 -5
  259. package/dist/eachYearOfInterval.js +5 -5
  260. package/dist/endOfDay.d.ts.map +1 -1
  261. package/dist/endOfDay.js +6 -6
  262. package/dist/endOfMonth.d.ts.map +1 -1
  263. package/dist/endOfMonth.js +6 -6
  264. package/dist/endOfQuarter.d.ts +2 -2
  265. package/dist/endOfQuarter.js +6 -6
  266. package/dist/endOfWeek.d.ts +17 -7
  267. package/dist/endOfWeek.d.ts.map +1 -1
  268. package/dist/endOfWeek.js +6 -5
  269. package/dist/endOfYear.d.ts.map +1 -1
  270. package/dist/endOfYear.js +6 -6
  271. package/dist/format.d.ts.map +1 -1
  272. package/dist/format.js +5 -4
  273. package/dist/formatPlainDate.js +2 -2
  274. package/dist/getQuarter.d.ts +1 -1
  275. package/dist/getQuarter.js +3 -3
  276. package/dist/index.d.ts +116 -106
  277. package/dist/index.d.ts.map +1 -1
  278. package/dist/index.js +191 -152
  279. package/dist/intlFormatDistance.js +10 -10
  280. package/dist/isAfter.js +3 -3
  281. package/dist/isBefore.js +3 -3
  282. package/dist/isEqual.js +3 -3
  283. package/dist/isFuture.d.ts.map +1 -1
  284. package/dist/isFuture.js +5 -5
  285. package/dist/isPast.d.ts.map +1 -1
  286. package/dist/isPast.js +5 -5
  287. package/dist/isPlainDateAfter.d.ts.map +1 -1
  288. package/dist/isPlainDateAfter.js +2 -2
  289. package/dist/isPlainDateBefore.d.ts.map +1 -1
  290. package/dist/isPlainDateBefore.js +2 -2
  291. package/dist/isPlainDateEqual.d.ts.map +1 -1
  292. package/dist/isPlainDateEqual.js +2 -2
  293. package/dist/isPlainTimeAfter.d.ts.map +1 -1
  294. package/dist/isPlainTimeAfter.js +2 -2
  295. package/dist/isPlainTimeBefore.d.ts.map +1 -1
  296. package/dist/isPlainTimeBefore.js +2 -2
  297. package/dist/isPlainTimeEqual.d.ts.map +1 -1
  298. package/dist/isPlainTimeEqual.js +2 -2
  299. package/dist/isSameDay.d.ts.map +1 -1
  300. package/dist/isSameDay.js +3 -3
  301. package/dist/isSameHour.js +3 -3
  302. package/dist/isSameMicrosecond.js +3 -3
  303. package/dist/isSameMillisecond.js +3 -3
  304. package/dist/isSameMinute.js +3 -3
  305. package/dist/isSameMonth.js +3 -3
  306. package/dist/isSameNanosecond.js +3 -3
  307. package/dist/isSameQuarter.d.ts +1 -1
  308. package/dist/isSameQuarter.js +3 -3
  309. package/dist/isSameSecond.js +3 -3
  310. package/dist/isSameWeek.d.ts +16 -7
  311. package/dist/isSameWeek.d.ts.map +1 -1
  312. package/dist/isSameWeek.js +4 -3
  313. package/dist/isSameYear.js +3 -3
  314. package/dist/isToday.js +6 -6
  315. package/dist/isTomorrow.js +6 -6
  316. package/dist/isWeekend.js +4 -4
  317. package/dist/isWithinInterval.d.ts +41 -6
  318. package/dist/isWithinInterval.d.ts.map +1 -1
  319. package/dist/isWithinInterval.js +6 -5
  320. package/dist/isYesterday.js +6 -6
  321. package/dist/max.js +3 -3
  322. package/dist/min.js +3 -3
  323. package/dist/nextDay.d.ts +33 -0
  324. package/dist/nextDay.d.ts.map +1 -0
  325. package/dist/nextDay.js +10 -0
  326. package/dist/nextDay.js.map +1 -0
  327. package/dist/now.js +2 -2
  328. package/dist/parse.d.ts +57 -0
  329. package/dist/parse.d.ts.map +1 -0
  330. package/dist/parse.js +9 -0
  331. package/dist/parse.js.map +1 -0
  332. package/dist/previousDay.d.ts +26 -0
  333. package/dist/previousDay.d.ts.map +1 -0
  334. package/dist/previousDay.js +10 -0
  335. package/dist/previousDay.js.map +1 -0
  336. package/dist/roundToNearestHour.js +3 -3
  337. package/dist/roundToNearestMinute.js +3 -3
  338. package/dist/roundToNearestSecond.js +3 -3
  339. package/dist/shared/businessDays.d.ts +15 -0
  340. package/dist/shared/businessDays.d.ts.map +1 -1
  341. package/dist/shared/businessDays.js +9 -5
  342. package/dist/shared/calendarDates.d.ts +9 -0
  343. package/dist/shared/calendarDates.d.ts.map +1 -0
  344. package/dist/shared/calendarDates.js +9 -0
  345. package/dist/shared/calendarDates.js.map +1 -0
  346. package/dist/shared/compare.js +2 -2
  347. package/dist/shared/differenceInMilliseconds.js +1 -1
  348. package/dist/shared/endOfDay.d.ts.map +1 -1
  349. package/dist/shared/endOfDay.js +1 -1
  350. package/dist/shared/formatTokens.d.ts +8 -0
  351. package/dist/shared/formatTokens.d.ts.map +1 -0
  352. package/dist/shared/formatTokens.js +7 -0
  353. package/dist/shared/formatTokens.js.map +1 -0
  354. package/dist/shared/isAfter.d.ts.map +1 -1
  355. package/dist/shared/isAfter.js +1 -1
  356. package/dist/shared/isBefore.d.ts.map +1 -1
  357. package/dist/shared/isBefore.js +1 -1
  358. package/dist/shared/normalizeTemporalInput.js +2 -2
  359. package/dist/shared/normalizeWithPlainDate.js +4 -4
  360. package/dist/shared/nowZoned.js +3 -3
  361. package/dist/shared/plainDateToZonedDateTime.js +2 -2
  362. package/dist/shared/relativeDay.js +5 -5
  363. package/dist/shared/temporal.d.ts +1 -1
  364. package/dist/shared/temporal.js +1 -1
  365. package/dist/shared/week.d.ts +26 -0
  366. package/dist/shared/week.d.ts.map +1 -0
  367. package/dist/shared/week.js +9 -0
  368. package/dist/shared/week.js.map +1 -0
  369. package/dist/simpleFormat.d.ts.map +1 -1
  370. package/dist/simpleFormat.js +2 -2
  371. package/dist/startOfDay.d.ts.map +1 -1
  372. package/dist/startOfDay.js +5 -5
  373. package/dist/startOfMonth.d.ts.map +1 -1
  374. package/dist/startOfMonth.js +5 -5
  375. package/dist/startOfQuarter.d.ts +2 -2
  376. package/dist/startOfQuarter.js +5 -5
  377. package/dist/startOfWeek.d.ts +17 -7
  378. package/dist/startOfWeek.d.ts.map +1 -1
  379. package/dist/startOfWeek.js +5 -4
  380. package/dist/startOfYear.d.ts.map +1 -1
  381. package/dist/startOfYear.js +5 -5
  382. package/dist/subBusinessDays.d.ts +6 -4
  383. package/dist/subBusinessDays.d.ts.map +1 -1
  384. package/dist/subBusinessDays.js +5 -5
  385. package/dist/subDays.js +4 -4
  386. package/dist/subHours.js +4 -4
  387. package/dist/subMicroseconds.js +4 -4
  388. package/dist/subMilliseconds.js +4 -4
  389. package/dist/subMinutes.js +4 -4
  390. package/dist/subMonths.js +4 -4
  391. package/dist/subNanoseconds.js +4 -4
  392. package/dist/subQuarters.d.ts +1 -1
  393. package/dist/subQuarters.js +4 -4
  394. package/dist/subSeconds.js +4 -4
  395. package/dist/subWeeks.js +4 -4
  396. package/dist/subYears.js +4 -4
  397. package/dist/toDate.d.ts.map +1 -1
  398. package/dist/toDate.js +2 -2
  399. package/dist/toInstant.js +2 -2
  400. package/dist/toIso.d.ts.map +1 -1
  401. package/dist/toIso.js +2 -2
  402. package/dist/toIso9075.d.ts.map +1 -1
  403. package/dist/toIso9075.js +2 -2
  404. package/dist/toPlainDate.js +2 -2
  405. package/dist/toPlainTime.js +2 -2
  406. package/dist/toZonedTime.js +2 -2
  407. package/dist/today.js +2 -2
  408. package/package.json +33 -26
  409. package/dist/chunk-2TISXHHK.js +0 -29
  410. package/dist/chunk-2TISXHHK.js.map +0 -1
  411. package/dist/chunk-4PS6BEAC.js +0 -16
  412. package/dist/chunk-4PS6BEAC.js.map +0 -1
  413. package/dist/chunk-4VWUTQKP.js.map +0 -1
  414. package/dist/chunk-525OLFRD.js.map +0 -1
  415. package/dist/chunk-57MHNRCU.js +0 -22
  416. package/dist/chunk-57MHNRCU.js.map +0 -1
  417. package/dist/chunk-6QOLNYFY.js.map +0 -1
  418. package/dist/chunk-A34P5Z5O.js.map +0 -1
  419. package/dist/chunk-AOODDNHA.js.map +0 -1
  420. package/dist/chunk-BMX7CIRD.js.map +0 -1
  421. package/dist/chunk-BPMS34GV.js.map +0 -1
  422. package/dist/chunk-BSVOJYJ7.js.map +0 -1
  423. package/dist/chunk-BYPHFTFD.js.map +0 -1
  424. package/dist/chunk-CDKIT7D3.js.map +0 -1
  425. package/dist/chunk-D3N7BT44.js +0 -22
  426. package/dist/chunk-D3N7BT44.js.map +0 -1
  427. package/dist/chunk-DGUAV5XN.js.map +0 -1
  428. package/dist/chunk-GCVX5QIX.js +0 -15
  429. package/dist/chunk-GCVX5QIX.js.map +0 -1
  430. package/dist/chunk-JA5ER27P.js.map +0 -1
  431. package/dist/chunk-K7CLBBBM.js +0 -36
  432. package/dist/chunk-K7CLBBBM.js.map +0 -1
  433. package/dist/chunk-KYS54PLJ.js.map +0 -1
  434. package/dist/chunk-LQ3EQYIX.js.map +0 -1
  435. package/dist/chunk-MLHFNZEA.js +0 -26
  436. package/dist/chunk-MLHFNZEA.js.map +0 -1
  437. package/dist/chunk-MXYAZTDE.js.map +0 -1
  438. package/dist/chunk-NGS5UKDW.js.map +0 -1
  439. package/dist/chunk-NMMMAMKP.js.map +0 -1
  440. package/dist/chunk-OVBZ2NBB.js.map +0 -1
  441. package/dist/chunk-PAM6VJQM.js.map +0 -1
  442. package/dist/chunk-QDY2KMYX.js.map +0 -1
  443. package/dist/chunk-TWXUGWYX.js.map +0 -1
  444. /package/dist/{chunk-CN3OICYB.js.map → chunk-2LXWY2VY.js.map} +0 -0
  445. /package/dist/{chunk-K3L6MJJB.js.map → chunk-2MWQYQ53.js.map} +0 -0
  446. /package/dist/{chunk-LRIVI5ZC.js.map → chunk-34UWPATE.js.map} +0 -0
  447. /package/dist/{chunk-QVSHSIA3.js.map → chunk-3OF6TFYK.js.map} +0 -0
  448. /package/dist/{chunk-4KAIF44F.js.map → chunk-3YNUMQFB.js.map} +0 -0
  449. /package/dist/{chunk-DZ3647ZK.js.map → chunk-4A3ORKMC.js.map} +0 -0
  450. /package/dist/{chunk-IXNGK5OF.js.map → chunk-5EX3GTEU.js.map} +0 -0
  451. /package/dist/{chunk-KZCSP3DU.js.map → chunk-5YKAVRED.js.map} +0 -0
  452. /package/dist/{chunk-DRBZDI52.js.map → chunk-6O66POF3.js.map} +0 -0
  453. /package/dist/{chunk-U7VOIXLY.js.map → chunk-6SEPAWIA.js.map} +0 -0
  454. /package/dist/{chunk-X27XGVCT.js.map → chunk-7DVEJNCP.js.map} +0 -0
  455. /package/dist/{chunk-7IKCDOCT.js.map → chunk-AEAZ2F2T.js.map} +0 -0
  456. /package/dist/{chunk-3HD7HEN4.js.map → chunk-APWSLQ47.js.map} +0 -0
  457. /package/dist/{chunk-32AWWYBF.js.map → chunk-B7RDUXDN.js.map} +0 -0
  458. /package/dist/{chunk-3S6TSXZ3.js.map → chunk-CCDDXIAC.js.map} +0 -0
  459. /package/dist/{chunk-SLH6TKGN.js.map → chunk-CX37IV4D.js.map} +0 -0
  460. /package/dist/{chunk-HYSGJJUR.js.map → chunk-D2HKS2OM.js.map} +0 -0
  461. /package/dist/{chunk-4GEF7B7W.js.map → chunk-D73HU7YA.js.map} +0 -0
  462. /package/dist/{chunk-OMYVTYHI.js.map → chunk-DAWWOF5W.js.map} +0 -0
  463. /package/dist/{chunk-6QZUAJVF.js.map → chunk-DCQCZCKG.js.map} +0 -0
  464. /package/dist/{chunk-5WHGX2J3.js.map → chunk-DEVXW65H.js.map} +0 -0
  465. /package/dist/{chunk-GQXJICRA.js.map → chunk-EWRNJC27.js.map} +0 -0
  466. /package/dist/{chunk-TD6MVGV2.js.map → chunk-EYTJNGGV.js.map} +0 -0
  467. /package/dist/{chunk-IWVSM77B.js.map → chunk-FTXHKXCS.js.map} +0 -0
  468. /package/dist/{chunk-3HF4F36S.js.map → chunk-GLKCUJIZ.js.map} +0 -0
  469. /package/dist/{chunk-GXSVYUCG.js.map → chunk-GZKKAIXF.js.map} +0 -0
  470. /package/dist/{chunk-TU3LNQKW.js.map → chunk-HMPHUFC6.js.map} +0 -0
  471. /package/dist/{chunk-SHKSAHJO.js.map → chunk-IOHTFQCP.js.map} +0 -0
  472. /package/dist/{chunk-XSHFR2SX.js.map → chunk-IZPKAMAP.js.map} +0 -0
  473. /package/dist/{chunk-3XGUCQ2A.js.map → chunk-JBGAF2FW.js.map} +0 -0
  474. /package/dist/{chunk-AUOZACFS.js.map → chunk-KISBF5GX.js.map} +0 -0
  475. /package/dist/{chunk-ZXKU4SKR.js.map → chunk-L535UIYN.js.map} +0 -0
  476. /package/dist/{chunk-YMJHVVM4.js.map → chunk-LJMPJUHN.js.map} +0 -0
  477. /package/dist/{chunk-NL5MQVGD.js.map → chunk-LKDENGBC.js.map} +0 -0
  478. /package/dist/{chunk-VDV24TWQ.js.map → chunk-LTYIPGQD.js.map} +0 -0
  479. /package/dist/{chunk-MVGBYHG5.js.map → chunk-LY7IXVZO.js.map} +0 -0
  480. /package/dist/{chunk-EBOLL4LY.js.map → chunk-M2QFNUJF.js.map} +0 -0
  481. /package/dist/{chunk-RDMDCTHJ.js.map → chunk-MLD3VIOP.js.map} +0 -0
  482. /package/dist/{chunk-JGPTGV5X.js.map → chunk-MRJNMV4A.js.map} +0 -0
  483. /package/dist/{chunk-DBOIK3XA.js.map → chunk-ONTXMGEZ.js.map} +0 -0
  484. /package/dist/{chunk-YKXRVQ4S.js.map → chunk-OURPZP7V.js.map} +0 -0
  485. /package/dist/{chunk-MWUVGTKC.js.map → chunk-OZ5APQB7.js.map} +0 -0
  486. /package/dist/{chunk-OOOVMKOG.js.map → chunk-PCYPESIN.js.map} +0 -0
  487. /package/dist/{chunk-NZLRMN35.js.map → chunk-PENSGCVW.js.map} +0 -0
  488. /package/dist/{chunk-VM2YJ5PN.js.map → chunk-PXKPP6C4.js.map} +0 -0
  489. /package/dist/{chunk-TCB3IDJM.js.map → chunk-QCIY5PSJ.js.map} +0 -0
  490. /package/dist/{chunk-LMOAA73F.js.map → chunk-QPE2V3MY.js.map} +0 -0
  491. /package/dist/{chunk-6QH4NCPA.js.map → chunk-RCX6YW4I.js.map} +0 -0
  492. /package/dist/{chunk-EAO2SO4N.js.map → chunk-RFUXK65B.js.map} +0 -0
  493. /package/dist/{chunk-GU3CZAIN.js.map → chunk-SKHUBXIN.js.map} +0 -0
  494. /package/dist/{chunk-V2NSN6ET.js.map → chunk-TP3VDQLF.js.map} +0 -0
  495. /package/dist/{chunk-3X2U6I44.js.map → chunk-TZ4NUY3W.js.map} +0 -0
  496. /package/dist/{chunk-YSDLXJHE.js.map → chunk-UIOLC7XM.js.map} +0 -0
  497. /package/dist/{chunk-TI6WBLCB.js.map → chunk-UQ5GR6IX.js.map} +0 -0
  498. /package/dist/{chunk-Q6QLOUXJ.js.map → chunk-UTM7YAT4.js.map} +0 -0
  499. /package/dist/{chunk-R5XRTUWH.js.map → chunk-VQFWMNZO.js.map} +0 -0
  500. /package/dist/{chunk-R2DCUSBY.js.map → chunk-WALS2M6Z.js.map} +0 -0
  501. /package/dist/{chunk-K6NQZIAW.js.map → chunk-WTZ4LRQT.js.map} +0 -0
  502. /package/dist/{chunk-OEPVYNB6.js.map → chunk-XD4JKMGT.js.map} +0 -0
  503. /package/dist/{chunk-QZ6WXAUO.js.map → chunk-YPAI5UGF.js.map} +0 -0
  504. /package/dist/{chunk-HRCTWTP3.js.map → chunk-YSUNJQBP.js.map} +0 -0
  505. /package/dist/{chunk-JQ4Z4JTW.js.map → chunk-ZMAMJNWT.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/roundToNearestHour.ts"],"sourcesContent":["import type { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Options for rounding to nearest hour.\n */\nexport interface RoundToNearestHourOptions {\n /**\n * The rounding mode to use.\n *\n * Given time 14:20:\n * - `'round'` → 14:00 (20 min < 30, rounds DOWN to nearest)\n * - `'ceil'` → 15:00 (always rounds UP to next hour)\n * - `'floor'` → 14:00 (always rounds DOWN to current hour)\n *\n * Given time 14:40:\n * - `'round'` → 15:00 (40 min >= 30, rounds UP to nearest)\n * - `'ceil'` → 15:00 (always rounds UP to next hour)\n * - `'floor'` → 14:00 (always rounds DOWN to current hour)\n *\n * @default 'round'\n */\n mode?: 'round' | 'ceil' | 'floor';\n /**\n * Round to the nearest N hours. Must divide evenly into 24.\n * Valid values: 1, 2, 3, 4, 6, 8, 12\n * @example nearestTo: 6 rounds to 00:00, 06:00, 12:00, or 18:00\n */\n nearestTo?: 1 | 2 | 3 | 4 | 6 | 8 | 12;\n}\n\nconst MODE_TO_ROUNDING_MODE = {\n round: 'halfExpand',\n ceil: 'ceil',\n floor: 'floor',\n} as const;\n\n/**\n * Rounds a datetime to the nearest hour boundary.\n *\n * ## Mode comparison (given 14:20)\n *\n * ```\n * 14:00 ─────────────●───────────────── 15:00\n * 14:20\n *\n * 'round' → 14:00 (nearest hour - 20 min < 30)\n * 'ceil' → 15:00 (next hour - always up)\n * 'floor' → 14:00 (current hour - always down)\n * ```\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @param options - Rounding options\n * @returns ZonedDateTime rounded to the hour boundary\n *\n * @example\n * ```ts\n * const time = Temporal.ZonedDateTime.from('2025-01-20T14:20:00[America/New_York]');\n *\n * roundToNearestHour(time); // → 14:00 (nearest)\n * roundToNearestHour(time, { mode: 'ceil' }); // → 15:00 (always up)\n * roundToNearestHour(time, { mode: 'floor' }); // → 14:00 (always down)\n * ```\n *\n * @example\n * ```ts\n * // With 37 minutes (past the halfway point)\n * const time = Temporal.ZonedDateTime.from('2025-01-20T14:37:00[America/New_York]');\n *\n * roundToNearestHour(time); // → 15:00 (nearest - 37 >= 30)\n * roundToNearestHour(time, { mode: 'ceil' }); // → 15:00 (always up)\n * roundToNearestHour(time, { mode: 'floor' }); // → 14:00 (always down)\n * ```\n *\n * @example\n * ```ts\n * // Round to 6-hour blocks (shift scheduling)\n * const time = Temporal.ZonedDateTime.from('2025-01-20T14:00:00[America/New_York]');\n *\n * roundToNearestHour(time, { nearestTo: 6 }); // → 12:00\n * roundToNearestHour(time, { mode: 'ceil', nearestTo: 6 }); // → 18:00\n * roundToNearestHour(time, { mode: 'floor', nearestTo: 6 }); // → 12:00\n * ```\n */\nexport function roundToNearestHour(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n options?: RoundToNearestHourOptions\n): Temporal.ZonedDateTime {\n const zonedDateTime = normalizeTemporalInput(input);\n const mode = options?.mode ?? 'round';\n const nearestTo = options?.nearestTo ?? 1;\n\n return zonedDateTime.round({\n smallestUnit: 'hour',\n roundingMode: MODE_TO_ROUNDING_MODE[mode],\n roundingIncrement: nearestTo,\n });\n}\n"],"mappings":";;;;;AA+BA,IAAM,wBAAwB;AAAA,EAC5B,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AACT;AAiDO,SAAS,mBACd,OACA,SACwB;AACxB,QAAM,gBAAgB,uBAAuB,KAAK;AAClD,QAAM,OAAO,SAAS,QAAQ;AAC9B,QAAM,YAAY,SAAS,aAAa;AAExC,SAAO,cAAc,MAAM;AAAA,IACzB,cAAc;AAAA,IACd,cAAc,sBAAsB,IAAI;AAAA,IACxC,mBAAmB;AAAA,EACrB,CAAC;AACH;","names":[]}
@@ -1,15 +0,0 @@
1
- import {
2
- normalizeTemporalInput
3
- } from "./chunk-Q6QLOUXJ.js";
4
-
5
- // src/isSameWeek.ts
6
- function isSameWeek(date1, date2) {
7
- const zoned1 = normalizeTemporalInput(date1);
8
- const zoned2 = normalizeTemporalInput(date2);
9
- return zoned1.yearOfWeek === zoned2.yearOfWeek && zoned1.weekOfYear === zoned2.weekOfYear;
10
- }
11
-
12
- export {
13
- isSameWeek
14
- };
15
- //# sourceMappingURL=chunk-GCVX5QIX.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/isSameWeek.ts"],"sourcesContent":["import type { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns true if both datetimes fall in the same ISO 8601 week.\n * Uses ISO week numbering where weeks start on Monday and the first week\n * of the year is the week containing January 4th.\n *\n * Compares the yearOfWeek and weekOfYear fields directly.\n *\n * Instant inputs are converted to UTC. For ZonedDateTime inputs, their\n * timezone is preserved. Convert to a common timezone before calling if\n * you need to compare from a specific perspective.\n *\n * @param date1 - First datetime (Instant or ZonedDateTime)\n * @param date2 - Second datetime (Instant or ZonedDateTime)\n * @returns true if both dates are in the same ISO week, false otherwise\n *\n * @example\n * ```ts\n * // Same timezone, same week (both in week 4 of 2025)\n * const monday = Temporal.ZonedDateTime.from('2025-01-20T08:00:00+00:00[UTC]'); // Monday, Week 4\n * const sunday = Temporal.ZonedDateTime.from('2025-01-26T23:59:59+00:00[UTC]'); // Sunday, Week 4\n *\n * isSameWeek(monday, sunday); // true\n * ```\n *\n * @example\n * ```ts\n * // Same timezone, different weeks\n * const week3 = Temporal.ZonedDateTime.from('2025-01-19T23:59:59+00:00[UTC]'); // Sunday, Week 3\n * const week4 = Temporal.ZonedDateTime.from('2025-01-20T00:00:00+00:00[UTC]'); // Monday, Week 4\n *\n * isSameWeek(week3, week4); // false\n * ```\n *\n * @example\n * ```ts\n * // Different timezones - compares their local calendar weeks\n * const ny = Temporal.ZonedDateTime.from('2025-01-26T23:00:00-05:00[America/New_York]');\n * const tokyo = Temporal.ZonedDateTime.from('2025-01-27T13:00:00+09:00[Asia/Tokyo]');\n *\n * // Same instant, different local weeks from each person's perspective\n * isSameWeek(ny, tokyo); // false (Week 4 Sun in NY, Week 5 Mon in Tokyo)\n *\n * // Convert to UTC to compare in UTC timezone\n * isSameWeek(ny.withTimeZone('UTC'), tokyo.withTimeZone('UTC')); // true (both Week 5 in UTC)\n *\n * // Convert to NY timezone to compare from NY perspective\n * isSameWeek(ny, tokyo.withTimeZone('America/New_York')); // true (both Week 4 in NY)\n * ```\n *\n * @example\n * ```ts\n * // Instant inputs are converted to UTC\n * const instant1 = Temporal.Instant.from('2025-01-20T00:00:00Z'); // Monday, Week 4\n * const instant2 = Temporal.Instant.from('2025-01-26T23:59:59Z'); // Sunday, Week 4\n *\n * isSameWeek(instant1, instant2); // true (both Week 4 2025 in UTC)\n * ```\n *\n * @example\n * ```ts\n * // ISO week years can differ from calendar years\n * // December 29, 2024 is in Week 52 of 2024\n * const dec29 = Temporal.ZonedDateTime.from('2024-12-29T12:00:00+00:00[UTC]');\n * // January 5, 2025 is in Week 1 of 2025\n * const jan5 = Temporal.ZonedDateTime.from('2025-01-05T12:00:00+00:00[UTC]');\n *\n * isSameWeek(dec29, jan5); // false (different ISO weeks)\n * ```\n */\nexport function isSameWeek(\n date1: Temporal.Instant | Temporal.ZonedDateTime,\n date2: Temporal.Instant | Temporal.ZonedDateTime\n): boolean {\n const zoned1 = normalizeTemporalInput(date1);\n const zoned2 = normalizeTemporalInput(date2);\n\n return (\n zoned1.yearOfWeek === zoned2.yearOfWeek &&\n zoned1.weekOfYear === zoned2.weekOfYear\n );\n}\n"],"mappings":";;;;;AAwEO,SAAS,WACd,OACA,OACS;AACT,QAAM,SAAS,uBAAuB,KAAK;AAC3C,QAAM,SAAS,uBAAuB,KAAK;AAE3C,SACE,OAAO,eAAe,OAAO,cAC7B,OAAO,eAAe,OAAO;AAEjC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/roundToNearestSecond.ts"],"sourcesContent":["import type { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Options for rounding to nearest second.\n */\nexport interface RoundToNearestSecondOptions {\n /**\n * The rounding mode to use.\n *\n * Given time 14:37:42.300:\n * - `'round'` → 14:37:42 (300ms < 500, rounds DOWN to nearest)\n * - `'ceil'` → 14:37:43 (always rounds UP to next second)\n * - `'floor'` → 14:37:42 (always rounds DOWN to current second)\n *\n * Given time 14:37:42 with nearestTo: 10:\n * - `'round'` → 14:37:40 (42 is closer to 40 than 50)\n * - `'ceil'` → 14:37:50 (always rounds UP to next 10-sec mark)\n * - `'floor'` → 14:37:40 (always rounds DOWN to current 10-sec mark)\n *\n * @default 'round'\n */\n mode?: 'round' | 'ceil' | 'floor';\n /**\n * Round to the nearest N seconds. Must divide evenly into 60.\n * Valid values: 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30\n * @example nearestTo: 10 rounds to 10-second marks (00, 10, 20, 30, 40, 50)\n */\n nearestTo?: 1 | 2 | 3 | 4 | 5 | 6 | 10 | 12 | 15 | 20 | 30;\n}\n\nconst MODE_TO_ROUNDING_MODE = {\n round: 'halfExpand',\n ceil: 'ceil',\n floor: 'floor',\n} as const;\n\n/**\n * Rounds a datetime to the nearest second boundary.\n *\n * ## Mode comparison (given 14:37:42.567)\n *\n * ```\n * :42 ─────────────────●─────────────── :43\n * .567\n *\n * 'round' → :43 (nearest second - 567ms >= 500)\n * 'ceil' → :43 (next second - always up)\n * 'floor' → :42 (current second - always down)\n * ```\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @param options - Rounding options\n * @returns ZonedDateTime rounded to the second boundary\n *\n * @example\n * ```ts\n * const time = Temporal.ZonedDateTime.from('2025-01-20T14:37:42.567[America/New_York]');\n *\n * roundToNearestSecond(time); // → 14:37:43 (567ms >= 500)\n * roundToNearestSecond(time, { mode: 'ceil' }); // → 14:37:43 (always up)\n * roundToNearestSecond(time, { mode: 'floor' }); // → 14:37:42 (always down)\n * ```\n *\n * @example\n * ```ts\n * // 10-second intervals\n * const time = Temporal.ZonedDateTime.from('2025-01-20T14:37:42[America/New_York]');\n *\n * roundToNearestSecond(time, { nearestTo: 10 }); // → 14:37:40 (nearest)\n * roundToNearestSecond(time, { mode: 'ceil', nearestTo: 10 }); // → 14:37:50 (next 10s)\n * roundToNearestSecond(time, { mode: 'floor', nearestTo: 10 }); // → 14:37:40 (current 10s)\n * ```\n *\n * @example\n * ```ts\n * // Remove sub-second precision for logging\n * const logTime = Temporal.ZonedDateTime.from('2025-01-20T14:37:42.123456789[UTC]');\n * roundToNearestSecond(logTime, { mode: 'floor' });\n * // → 14:37:42.000000000 (clean timestamp)\n * ```\n */\nexport function roundToNearestSecond(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n options?: RoundToNearestSecondOptions\n): Temporal.ZonedDateTime {\n const zonedDateTime = normalizeTemporalInput(input);\n const mode = options?.mode ?? 'round';\n const nearestTo = options?.nearestTo ?? 1;\n\n return zonedDateTime.round({\n smallestUnit: 'second',\n roundingMode: MODE_TO_ROUNDING_MODE[mode],\n roundingIncrement: nearestTo,\n });\n}\n"],"mappings":";;;;;AA+BA,IAAM,wBAAwB;AAAA,EAC5B,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AACT;AA+CO,SAAS,qBACd,OACA,SACwB;AACxB,QAAM,gBAAgB,uBAAuB,KAAK;AAClD,QAAM,OAAO,SAAS,QAAQ;AAC9B,QAAM,YAAY,SAAS,aAAa;AAExC,SAAO,cAAc,MAAM;AAAA,IACzB,cAAc;AAAA,IACd,cAAc,sBAAsB,IAAI;AAAA,IACxC,mBAAmB;AAAA,EACrB,CAAC;AACH;","names":[]}
@@ -1,36 +0,0 @@
1
- import {
2
- normalizeTemporalInput
3
- } from "./chunk-Q6QLOUXJ.js";
4
- import {
5
- Temporal,
6
- isPlainDate
7
- } from "./chunk-BSVOJYJ7.js";
8
-
9
- // src/shared/businessDays.ts
10
- function isWeekendDay(dayOfWeek) {
11
- return dayOfWeek >= 6;
12
- }
13
- function addWeekdays(start, days) {
14
- if (!Number.isInteger(days)) {
15
- throw new RangeError("Business day counts must be integers");
16
- }
17
- const step = days < 0 ? -1 : 1;
18
- const fullWeeks = Math.max(0, Math.trunc((Math.abs(days) - 1) / 5));
19
- let result = fullWeeks === 0 ? start : start.add({ days: step * fullWeeks * 7 });
20
- for (let remaining = Math.abs(days) - fullWeeks * 5; remaining > 0; ) {
21
- result = result.add({ days: step });
22
- if (!isWeekendDay(result.dayOfWeek)) remaining--;
23
- }
24
- return result;
25
- }
26
- function isoDate(input) {
27
- const date = isPlainDate(input) ? input : normalizeTemporalInput(input).toPlainDate();
28
- return Temporal.PlainDate.from(date.toString()).withCalendar("iso8601");
29
- }
30
-
31
- export {
32
- isWeekendDay,
33
- addWeekdays,
34
- isoDate
35
- };
36
- //# sourceMappingURL=chunk-K7CLBBBM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shared/businessDays.ts"],"sourcesContent":["import { Temporal, isPlainDate } from './temporal';\nimport { normalizeTemporalInput } from './normalizeTemporalInput';\n\n/**\n * @internal\n * Saturday (6) and Sunday (7) in Temporal's Monday-based dayOfWeek.\n */\nexport function isWeekendDay(dayOfWeek: number): boolean {\n return dayOfWeek >= 6;\n}\n\n/**\n * @internal\n * Adds days counting only Monday–Friday. The result keeps the input's type,\n * time of day, and timezone.\n */\nexport function addWeekdays<T extends { dayOfWeek: number; add(duration: { days: number }): T }>(\n start: T,\n days: number\n): T {\n if (!Number.isInteger(days)) {\n throw new RangeError('Business day counts must be integers');\n }\n const step = days < 0 ? -1 : 1;\n // Any 7 consecutive days hold exactly 5 weekdays, so jump whole weeks. Keep\n // at least one business day to walk so a weekend landing is never returned.\n const fullWeeks = Math.max(0, Math.trunc((Math.abs(days) - 1) / 5));\n let result = fullWeeks === 0 ? start : start.add({ days: step * fullWeeks * 7 });\n for (let remaining = Math.abs(days) - fullWeeks * 5; remaining > 0;) {\n result = result.add({ days: step });\n if (!isWeekendDay(result.dayOfWeek)) remaining--;\n }\n return result;\n}\n\n/**\n * @internal\n * The calendar date of a value as an ISO PlainDate from this library's\n * Temporal implementation. Instant uses UTC; ZonedDateTime uses its timezone.\n */\nexport function isoDate(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate\n): Temporal.PlainDate {\n const date = isPlainDate(input) ? input : normalizeTemporalInput(input).toPlainDate();\n return Temporal.PlainDate.from(date.toString()).withCalendar('iso8601');\n}\n"],"mappings":";;;;;;;;;AAOO,SAAS,aAAa,WAA4B;AACvD,SAAO,aAAa;AACtB;AAOO,SAAS,YACd,OACA,MACG;AACH,MAAI,CAAC,OAAO,UAAU,IAAI,GAAG;AAC3B,UAAM,IAAI,WAAW,sCAAsC;AAAA,EAC7D;AACA,QAAM,OAAO,OAAO,IAAI,KAAK;AAG7B,QAAM,YAAY,KAAK,IAAI,GAAG,KAAK,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC;AAClE,MAAI,SAAS,cAAc,IAAI,QAAQ,MAAM,IAAI,EAAE,MAAM,OAAO,YAAY,EAAE,CAAC;AAC/E,WAAS,YAAY,KAAK,IAAI,IAAI,IAAI,YAAY,GAAG,YAAY,KAAI;AACnE,aAAS,OAAO,IAAI,EAAE,MAAM,KAAK,CAAC;AAClC,QAAI,CAAC,aAAa,OAAO,SAAS,EAAG;AAAA,EACvC;AACA,SAAO;AACT;AAOO,SAAS,QACd,OACoB;AACpB,QAAM,OAAO,YAAY,KAAK,IAAI,QAAQ,uBAAuB,KAAK,EAAE,YAAY;AACpF,SAAO,SAAS,UAAU,KAAK,KAAK,SAAS,CAAC,EAAE,aAAa,SAAS;AACxE;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/subQuarters.ts"],"sourcesContent":["import { type Temporal, isPlainDate } from \"./shared/temporal\";\nimport { addQuarters } from \"./addQuarters\";\n\n/**\n * Subtracts the specified number of quarters (3-month blocks) from a datetime or date.\n *\n * This is a convenience wrapper around addQuarters with the count negated.\n * PlainDate inputs stay in calendar space and return a PlainDate.\n *\n * @param input - A Temporal.Instant (UTC), Temporal.ZonedDateTime, or Temporal.PlainDate\n * @param quarters - Number of quarters to subtract\n * @returns PlainDate for a date input; otherwise ZonedDateTime with the quarters subtracted\n *\n * @example\n * ```ts\n * const instant = Temporal.Instant.from('2025-07-20T12:00:00Z');\n * subQuarters(instant, 2);\n * // 2025-01-20T12:00:00+00:00[UTC] (6 months earlier)\n * ```\n *\n * @example\n * ```ts\n * subQuarters(Temporal.PlainDate.from('2025-07-20'), 1);\n * // 2025-04-20\n * ```\n */\nexport function subQuarters(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n quarters: number,\n): Temporal.ZonedDateTime;\nexport function subQuarters(input: Temporal.PlainDate, quarters: number): Temporal.PlainDate;\nexport function subQuarters(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n quarters: number,\n): Temporal.ZonedDateTime | Temporal.PlainDate {\n // Branch so each call resolves to the matching addQuarters overload.\n return isPlainDate(input) ? addQuarters(input, -quarters) : addQuarters(input, -quarters);\n}\n"],"mappings":";;;;;;;;AA+BO,SAAS,YACd,OACA,UAC6C;AAE7C,SAAO,YAAY,KAAK,IAAI,YAAY,OAAO,CAAC,QAAQ,IAAI,YAAY,OAAO,CAAC,QAAQ;AAC1F;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/toPlainDate.ts"],"sourcesContent":["import { Temporal, isInstant, isZonedDateTime, isPlainDate } 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 // Foreign PlainDate objects expose calendarId, while property bags use calendar.\n // A canonical string keeps the ISO date and calendar together across implementations.\n return Temporal.PlainDate.from(isPlainDate(input) ? input.toString() : 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;AAIA,SAAO,SAAS,UAAU,KAAK,YAAY,KAAK,IAAI,MAAM,SAAS,IAAI,KAAK;AAC9E;","names":[]}
@@ -1,26 +0,0 @@
1
- import {
2
- plainDateToZonedDateTime
3
- } from "./chunk-2AID4P2C.js";
4
- import {
5
- normalizeTemporalInput
6
- } from "./chunk-Q6QLOUXJ.js";
7
- import {
8
- isPlainDate
9
- } from "./chunk-BSVOJYJ7.js";
10
-
11
- // src/startOfWeek.ts
12
- function startOfWeek(input, timezone) {
13
- if (isPlainDate(input) && timezone === void 0) {
14
- return input.subtract({ days: input.dayOfWeek - 1 });
15
- }
16
- const zonedDateTime = isPlainDate(input) ? plainDateToZonedDateTime(input, timezone) : normalizeTemporalInput(input);
17
- const dayOfWeek = zonedDateTime.dayOfWeek;
18
- const daysToSubtract = dayOfWeek - 1;
19
- const monday = zonedDateTime.subtract({ days: daysToSubtract });
20
- return monday.startOfDay();
21
- }
22
-
23
- export {
24
- startOfWeek
25
- };
26
- //# sourceMappingURL=chunk-MLHFNZEA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/startOfWeek.ts"],"sourcesContent":["import { type Temporal, isPlainDate } from './shared/temporal';\nimport type { Timezone } from './types';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\nimport { plainDateToZonedDateTime } from './shared/plainDateToZonedDateTime';\n\n/**\n * Returns the first boundary of the week (Monday).\n * Uses ISO 8601 week definition: weeks start on Monday.\n * PlainDate inputs stay in calendar space unless a timezone is provided.\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:00+00:00[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 (stays a date)\n * const date = Temporal.PlainDate.from('2025-01-22'); // Wednesday\n * const start = startOfWeek(date);\n * // 2025-01-20 (previous Monday)\n * ```\n *\n * @example\n * ```ts\n * // From PlainDate with a timezone (returns a ZonedDateTime)\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(input: Temporal.PlainDate): Temporal.PlainDate;\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 | Temporal.PlainDate {\n if (isPlainDate(input) && timezone === undefined) {\n return input.subtract({ days: input.dayOfWeek - 1 });\n }\n\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":";;;;;;;;;;;AAqDO,SAAS,YACd,OACA,UAC6C;AAC7C,MAAI,YAAY,KAAK,KAAK,aAAa,QAAW;AAChD,WAAO,MAAM,SAAS,EAAE,MAAM,MAAM,YAAY,EAAE,CAAC;AAAA,EACrD;AAEA,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 +0,0 @@
1
- {"version":3,"sources":["../src/endOfQuarter.ts"],"sourcesContent":["import { type Temporal, isPlainDate } from \"./shared/temporal\";\nimport type { Timezone } from \"./types\";\nimport { getEndOfDay } from \"./shared/endOfDay\";\nimport { normalizeWithPlainDate } from \"./shared/normalizeWithPlainDate\";\nimport { quarterStartMonth } from \"./shared/quarter\";\n\n/**\n * Returns a ZonedDateTime representing the last moment of the quarter\n * (last day of the quarter's ending month at 23:59:59.999999999).\n *\n * Quarters: Q1 = Jan–Mar, Q2 = Apr–Jun, Q3 = Jul–Sep, Q4 = Oct–Dec.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @returns ZonedDateTime at the last day of the quarter at 23:59:59.999999999\n *\n * @example\n * ```ts\n * // From Instant (always UTC)\n * const instant = Temporal.Instant.from('2025-05-15T12:00:00Z');\n * const end = endOfQuarter(instant);\n * // 2025-06-30T23:59:59.999999999+00:00[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 = endOfQuarter(zoned);\n * // 2025-03-31T23:59:59.999999999-04:00[America/New_York]\n * ```\n *\n * @example\n * ```ts\n * // From a PlainDate in a timezone\n * const date = Temporal.PlainDate.from('2025-11-15');\n * const end = endOfQuarter(date, 'America/New_York');\n * // 2025-12-31T23:59:59.999999999-05:00[America/New_York]\n * ```\n */\nexport function endOfQuarter(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n): Temporal.ZonedDateTime;\nexport function endOfQuarter(input: Temporal.PlainDate): Temporal.PlainDate;\nexport function endOfQuarter(input: Temporal.PlainDate, timezone: Timezone): Temporal.ZonedDateTime;\nexport function endOfQuarter(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n timezone?: Timezone,\n): Temporal.ZonedDateTime | Temporal.PlainDate {\n // PlainDate with no timezone stays in calendar space → last day of quarter.\n if (isPlainDate(input) && timezone === undefined) {\n const endMonth = input.with({\n month: quarterStartMonth(input.month) + 2,\n day: 1,\n });\n return endMonth.with({ day: endMonth.daysInMonth });\n }\n const zonedDateTime = normalizeWithPlainDate(input, timezone!);\n const endMonth = zonedDateTime.with({\n month: quarterStartMonth(zonedDateTime.month) + 2,\n day: 1,\n });\n const lastDay = endMonth.with({ day: endMonth.daysInMonth });\n return getEndOfDay(lastDay);\n}\n"],"mappings":";;;;;;;;;;;;;;AA4CO,SAAS,aACd,OACA,UAC6C;AAE7C,MAAI,YAAY,KAAK,KAAK,aAAa,QAAW;AAChD,UAAMA,YAAW,MAAM,KAAK;AAAA,MAC1B,OAAO,kBAAkB,MAAM,KAAK,IAAI;AAAA,MACxC,KAAK;AAAA,IACP,CAAC;AACD,WAAOA,UAAS,KAAK,EAAE,KAAKA,UAAS,YAAY,CAAC;AAAA,EACpD;AACA,QAAM,gBAAgB,uBAAuB,OAAO,QAAS;AAC7D,QAAM,WAAW,cAAc,KAAK;AAAA,IAClC,OAAO,kBAAkB,cAAc,KAAK,IAAI;AAAA,IAChD,KAAK;AAAA,EACP,CAAC;AACD,QAAM,UAAU,SAAS,KAAK,EAAE,KAAK,SAAS,YAAY,CAAC;AAC3D,SAAO,YAAY,OAAO;AAC5B;","names":["endMonth"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/startOfQuarter.ts"],"sourcesContent":["import { type Temporal, isPlainDate } from \"./shared/temporal\";\nimport type { Timezone } from \"./types\";\nimport { normalizeWithPlainDate } from \"./shared/normalizeWithPlainDate\";\nimport { quarterStartMonth } from \"./shared/quarter\";\n\n/**\n * Returns a ZonedDateTime representing the first moment of the quarter\n * (first day of the quarter's starting month at midnight).\n *\n * Quarters: Q1 = Jan–Mar, Q2 = Apr–Jun, Q3 = Jul–Sep, Q4 = Oct–Dec.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @returns ZonedDateTime at the 1st day of the quarter at 00:00:00.000000000\n *\n * @example\n * ```ts\n * // From Instant (always UTC)\n * const instant = Temporal.Instant.from('2025-05-15T12:00:00Z');\n * const start = startOfQuarter(instant);\n * // 2025-04-01T00:00:00+00:00[UTC]\n * ```\n *\n * @example\n * ```ts\n * // From ZonedDateTime (uses its timezone)\n * const zoned = Temporal.ZonedDateTime.from('2025-08-15T15:30:00-04:00[America/New_York]');\n * const start = startOfQuarter(zoned);\n * // 2025-07-01T00:00:00-04:00[America/New_York]\n * ```\n *\n * @example\n * ```ts\n * // From a PlainDate in a timezone\n * const date = Temporal.PlainDate.from('2025-11-15');\n * const start = startOfQuarter(date, 'America/New_York');\n * // 2025-10-01T00:00:00-04:00[America/New_York]\n * ```\n */\nexport function startOfQuarter(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n): Temporal.ZonedDateTime;\nexport function startOfQuarter(input: Temporal.PlainDate): Temporal.PlainDate;\nexport function startOfQuarter(\n input: Temporal.PlainDate,\n timezone: Timezone,\n): Temporal.ZonedDateTime;\nexport function startOfQuarter(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n timezone?: Timezone,\n): Temporal.ZonedDateTime | Temporal.PlainDate {\n // PlainDate with no timezone stays in calendar space → first day of quarter.\n if (isPlainDate(input) && timezone === undefined) {\n return input.with({ month: quarterStartMonth(input.month), day: 1 });\n }\n const zonedDateTime = normalizeWithPlainDate(input, timezone!);\n const firstDay = zonedDateTime.with({\n month: quarterStartMonth(zonedDateTime.month),\n day: 1,\n });\n return firstDay.startOfDay();\n}\n"],"mappings":";;;;;;;;;;;AA8CO,SAAS,eACd,OACA,UAC6C;AAE7C,MAAI,YAAY,KAAK,KAAK,aAAa,QAAW;AAChD,WAAO,MAAM,KAAK,EAAE,OAAO,kBAAkB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;AAAA,EACrE;AACA,QAAM,gBAAgB,uBAAuB,OAAO,QAAS;AAC7D,QAAM,WAAW,cAAc,KAAK;AAAA,IAClC,OAAO,kBAAkB,cAAc,KAAK;AAAA,IAC5C,KAAK;AAAA,EACP,CAAC;AACD,SAAO,SAAS,WAAW;AAC7B;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shared/endOfDay.ts"],"sourcesContent":["import type { Temporal } from './temporal';\n\n/**\n * Internal helper: Returns the last nanosecond of a given ZonedDateTime's day.\n * Used by endOfDay() and endOfWeek() to ensure consistent DST-safe behavior.\n */\nexport function getEndOfDay(\n zonedDateTime: Temporal.ZonedDateTime\n): Temporal.ZonedDateTime {\n return zonedDateTime\n .startOfDay()\n .add({ days: 1 })\n .startOfDay()\n .subtract({ nanoseconds: 1 });\n}\n"],"mappings":";AAMO,SAAS,YACd,eACwB;AACxB,SAAO,cACJ,WAAW,EACX,IAAI,EAAE,MAAM,EAAE,CAAC,EACf,WAAW,EACX,SAAS,EAAE,aAAa,EAAE,CAAC;AAChC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/differenceInBusinessDays.ts"],"sourcesContent":["import { type Temporal, isPlainDate } from './shared/temporal';\nimport { isWeekendDay, isoDate } from './shared/businessDays';\n\n/**\n * Returns the number of business days (Monday–Friday) from earlierDate up to\n * laterDate: the earlier date counts, the later date does not. Holidays are\n * not considered. Swapping the arguments negates the result.\n *\n * Only calendar dates matter; times of day are ignored. Instant inputs use\n * their UTC date and ZonedDateTime inputs use their own timezone's date.\n * Convert both to one timezone first to count from a single perspective.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @returns Business days between the dates (negative if laterDate is earlier)\n *\n * @example\n * ```ts\n * const friday = Temporal.PlainDate.from('2025-01-24');\n * const nextFriday = Temporal.PlainDate.from('2025-01-31');\n *\n * differenceInBusinessDays(nextFriday, friday); // 5\n * differenceInBusinessDays(friday, nextFriday); // -5\n * ```\n */\nexport function differenceInBusinessDays(\n laterDate: Temporal.PlainDate,\n earlierDate: Temporal.PlainDate\n): number;\nexport function differenceInBusinessDays(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime\n): number;\nexport function differenceInBusinessDays(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate\n): number {\n if (isPlainDate(laterDate) !== isPlainDate(earlierDate)) {\n throw new TypeError('PlainDate differences require two PlainDate values');\n }\n const later = isoDate(laterDate);\n const earlier = isoDate(earlierDate);\n const days = earlier.until(later, { largestUnit: 'days' }).days;\n const [from, span] = days < 0 ? [later, -days] : [earlier, days];\n\n // Every full week holds five business days; walk the remainder.\n const fullWeeks = Math.trunc(span / 7);\n let count = fullWeeks * 5;\n for (let day = from.add({ days: fullWeeks * 7 }), i = fullWeeks * 7; i < span; i++) {\n if (!isWeekendDay(day.dayOfWeek)) count++;\n day = day.add({ days: 1 });\n }\n return days < 0 && count !== 0 ? -count : count;\n}\n"],"mappings":";;;;;;;;;AAiCO,SAAS,yBACd,WACA,aACQ;AACR,MAAI,YAAY,SAAS,MAAM,YAAY,WAAW,GAAG;AACvD,UAAM,IAAI,UAAU,oDAAoD;AAAA,EAC1E;AACA,QAAM,QAAQ,QAAQ,SAAS;AAC/B,QAAM,UAAU,QAAQ,WAAW;AACnC,QAAM,OAAO,QAAQ,MAAM,OAAO,EAAE,aAAa,OAAO,CAAC,EAAE;AAC3D,QAAM,CAAC,MAAM,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI;AAG/D,QAAM,YAAY,KAAK,MAAM,OAAO,CAAC;AACrC,MAAI,QAAQ,YAAY;AACxB,WAAS,MAAM,KAAK,IAAI,EAAE,MAAM,YAAY,EAAE,CAAC,GAAG,IAAI,YAAY,GAAG,IAAI,MAAM,KAAK;AAClF,QAAI,CAAC,aAAa,IAAI,SAAS,EAAG;AAClC,UAAM,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;AAAA,EAC3B;AACA,SAAO,OAAO,KAAK,UAAU,IAAI,CAAC,QAAQ;AAC5C;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/differenceInQuarters.ts"],"sourcesContent":["import { type Temporal, isPlainDate } from \"./shared/temporal\";\nimport { differenceInMonths } from \"./differenceInMonths\";\nimport type { DifferenceOptions } from \"./shared/differenceOptions\";\n\n/**\n * Returns the number of quarters (3-month blocks) between two datetimes or dates.\n * The result is positive if laterDate is after earlierDate, negative if before.\n *\n * Uses calendar-aware, elapsed-time calculation (a quarter is three months).\n * Instant inputs are converted to UTC; ZonedDateTime inputs keep their timezone.\n * PlainDate inputs are compared directly — no timezone needed.\n *\n * @param laterDate - The later Instant or ZonedDateTime\n * @param earlierDate - The earlier Instant or ZonedDateTime\n * @param options - Optional { fractional } to return the precise value\n * @returns The number of quarters, truncated toward zero (pass { fractional: true } for the precise value)\n *\n * @example\n * ```ts\n * const later = Temporal.Instant.from('2025-07-20T12:00:00Z');\n * const earlier = Temporal.Instant.from('2025-01-20T12:00:00Z');\n * differenceInQuarters(later, earlier); // 2\n * ```\n *\n * @example\n * ```ts\n * // PlainDate comparison needs no timezone\n * const later = Temporal.PlainDate.from('2025-07-20');\n * const earlier = Temporal.PlainDate.from('2025-01-20');\n * differenceInQuarters(later, earlier); // 2\n * ```\n */\nexport function differenceInQuarters(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime,\n options?: DifferenceOptions,\n): number;\nexport function differenceInQuarters(\n laterDate: Temporal.PlainDate,\n earlierDate: Temporal.PlainDate,\n options?: DifferenceOptions,\n): number;\nexport function differenceInQuarters(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n options?: DifferenceOptions,\n): number {\n // A quarter is three months, so work in elapsed months and divide by 3.\n // Serialize the other date to preserve its calendar across implementations.\n const months =\n isPlainDate(laterDate) && isPlainDate(earlierDate)\n ? earlierDate.until(laterDate.toString()).total({\n unit: \"months\",\n relativeTo: earlierDate,\n })\n : differenceInMonths(\n laterDate as Temporal.Instant | Temporal.ZonedDateTime,\n earlierDate as Temporal.Instant | Temporal.ZonedDateTime,\n { fractional: true },\n );\n\n const quarters = months / 3;\n return options?.fractional ? quarters : Math.trunc(quarters);\n}\n"],"mappings":";;;;;;;;AA0CO,SAAS,qBACd,WACA,aACA,SACQ;AAGR,QAAM,SACJ,YAAY,SAAS,KAAK,YAAY,WAAW,IAC7C,YAAY,MAAM,UAAU,SAAS,CAAC,EAAE,MAAM;AAAA,IAC5C,MAAM;AAAA,IACN,YAAY;AAAA,EACd,CAAC,IACD;AAAA,IACE;AAAA,IACA;AAAA,IACA,EAAE,YAAY,KAAK;AAAA,EACrB;AAEN,QAAM,WAAW,SAAS;AAC1B,SAAO,SAAS,aAAa,WAAW,KAAK,MAAM,QAAQ;AAC7D;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/addQuarters.ts"],"sourcesContent":["import { type Temporal, isPlainDate } from \"./shared/temporal\";\nimport { normalizeTemporalInput } from \"./shared/normalizeTemporalInput\";\n\n/**\n * Adds the specified number of quarters (3-month blocks) to a datetime or date.\n *\n * Properly handles month-end dates and calendar edge cases through Temporal API.\n * Instant inputs are converted to UTC; ZonedDateTime inputs preserve their\n * timezone. PlainDate inputs stay in calendar space and return a PlainDate.\n *\n * @param input - A Temporal.Instant (UTC), Temporal.ZonedDateTime, or Temporal.PlainDate\n * @param quarters - Number of quarters to add (can be negative to subtract)\n * @returns PlainDate for a date input; otherwise ZonedDateTime with the quarters added\n *\n * @example\n * ```ts\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00Z');\n * addQuarters(instant, 2);\n * // 2025-07-20T12:00:00+00:00[UTC] (6 months later)\n * ```\n *\n * @example\n * ```ts\n * // Calendar arithmetic on a date stays a date\n * addQuarters(Temporal.PlainDate.from('2025-01-31'), 1);\n * // 2025-04-30 (Jan 31 → Apr 30)\n * ```\n */\nexport function addQuarters(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n quarters: number,\n): Temporal.ZonedDateTime;\nexport function addQuarters(input: Temporal.PlainDate, quarters: number): Temporal.PlainDate;\nexport function addQuarters(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n quarters: number,\n): Temporal.ZonedDateTime | Temporal.PlainDate {\n if (isPlainDate(input)) {\n return input.add({ months: quarters * 3 });\n }\n return normalizeTemporalInput(input).add({ months: quarters * 3 });\n}\n"],"mappings":";;;;;;;;AAiCO,SAAS,YACd,OACA,UAC6C;AAC7C,MAAI,YAAY,KAAK,GAAG;AACtB,WAAO,MAAM,IAAI,EAAE,QAAQ,WAAW,EAAE,CAAC;AAAA,EAC3C;AACA,SAAO,uBAAuB,KAAK,EAAE,IAAI,EAAE,QAAQ,WAAW,EAAE,CAAC;AACnE;","names":[]}
@@ -1 +0,0 @@
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 timeZone: 'UTC',\n calendar: date.calendarId === 'iso8601' ? undefined : date.calendarId,\n };\n\n return new Intl.DateTimeFormat(locale, options)\n .formatToParts(date.toZonedDateTime('UTC').epochMilliseconds)\n .find(value => value.type === part)?.value ?? '';\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":[]}