@gobrand/tiempo 3.0.1 → 3.1.2

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 (647) hide show
  1. package/README.md +6 -4
  2. package/dist/addBusinessDays.d.ts +28 -0
  3. package/dist/addBusinessDays.d.ts.map +1 -0
  4. package/dist/addBusinessDays.js +10 -0
  5. package/dist/addDays.d.ts +7 -4
  6. package/dist/addDays.d.ts.map +1 -1
  7. package/dist/addDays.js +3 -3
  8. package/dist/addHours.d.ts +1 -1
  9. package/dist/addHours.d.ts.map +1 -1
  10. package/dist/addHours.js +3 -3
  11. package/dist/addMicroseconds.d.ts +1 -1
  12. package/dist/addMicroseconds.d.ts.map +1 -1
  13. package/dist/addMicroseconds.js +3 -3
  14. package/dist/addMilliseconds.d.ts +1 -1
  15. package/dist/addMilliseconds.d.ts.map +1 -1
  16. package/dist/addMilliseconds.js +3 -3
  17. package/dist/addMinutes.d.ts +1 -1
  18. package/dist/addMinutes.d.ts.map +1 -1
  19. package/dist/addMinutes.js +3 -3
  20. package/dist/addMonths.d.ts +7 -4
  21. package/dist/addMonths.d.ts.map +1 -1
  22. package/dist/addMonths.js +3 -3
  23. package/dist/addNanoseconds.d.ts +1 -1
  24. package/dist/addNanoseconds.d.ts.map +1 -1
  25. package/dist/addNanoseconds.js +3 -3
  26. package/dist/addQuarters.d.ts +3 -3
  27. package/dist/addQuarters.d.ts.map +1 -1
  28. package/dist/addQuarters.js +3 -3
  29. package/dist/addSeconds.d.ts +1 -1
  30. package/dist/addSeconds.d.ts.map +1 -1
  31. package/dist/addSeconds.js +3 -3
  32. package/dist/addWeeks.d.ts +7 -4
  33. package/dist/addWeeks.d.ts.map +1 -1
  34. package/dist/addWeeks.js +3 -3
  35. package/dist/addYears.d.ts +7 -4
  36. package/dist/addYears.d.ts.map +1 -1
  37. package/dist/addYears.js +3 -3
  38. package/dist/{chunk-BEGD73DT.js → chunk-22IDWEHQ.js} +33 -47
  39. package/dist/chunk-22IDWEHQ.js.map +1 -0
  40. package/dist/{chunk-OFIPZPEA.js → chunk-23APOESH.js} +2 -2
  41. package/dist/chunk-23APOESH.js.map +1 -0
  42. package/dist/{chunk-L5AMAEWX.js → chunk-2AID4P2C.js} +2 -2
  43. package/dist/chunk-2LN57UVR.js +28 -0
  44. package/dist/chunk-2LN57UVR.js.map +1 -0
  45. package/dist/{chunk-ZOHYNJUD.js → chunk-2MFBXSTL.js} +4 -4
  46. package/dist/chunk-2MFBXSTL.js.map +1 -0
  47. package/dist/{chunk-DBVGH55Z.js → chunk-2OSJHJV5.js} +2 -2
  48. package/dist/chunk-33MHEBQR.js +16 -0
  49. package/dist/chunk-33MHEBQR.js.map +1 -0
  50. package/dist/chunk-35IJG3T2.js +28 -0
  51. package/dist/chunk-35IJG3T2.js.map +1 -0
  52. package/dist/{chunk-DMFV2AL7.js → chunk-3IYGWL34.js} +13 -13
  53. package/dist/chunk-3IYGWL34.js.map +1 -0
  54. package/dist/{chunk-VXOQ7IG5.js → chunk-3KE6GK4R.js} +2 -2
  55. package/dist/{chunk-VXOQ7IG5.js.map → chunk-3KE6GK4R.js.map} +1 -1
  56. package/dist/chunk-3S6TSXZ3.js +18 -0
  57. package/dist/chunk-3S6TSXZ3.js.map +1 -0
  58. package/dist/chunk-426MJGNT.js +19 -0
  59. package/dist/chunk-426MJGNT.js.map +1 -0
  60. package/dist/{chunk-MENMDB6M.js → chunk-44EIUFJB.js} +2 -2
  61. package/dist/chunk-44EIUFJB.js.map +1 -0
  62. package/dist/{chunk-OQNFKOPA.js → chunk-4E5OJUMN.js} +2 -2
  63. package/dist/chunk-4E5OJUMN.js.map +1 -0
  64. package/dist/{chunk-KPB5ENNM.js → chunk-5FCHKIGV.js} +4 -4
  65. package/dist/chunk-5FCHKIGV.js.map +1 -0
  66. package/dist/{chunk-7SCQV77A.js → chunk-5KVFPVBT.js} +3 -3
  67. package/dist/chunk-5KVFPVBT.js.map +1 -0
  68. package/dist/chunk-5MB7UZCJ.js +66 -0
  69. package/dist/chunk-5MB7UZCJ.js.map +1 -0
  70. package/dist/{chunk-4PGGOVSG.js → chunk-5ST6IOPN.js} +2 -2
  71. package/dist/chunk-5ST6IOPN.js.map +1 -0
  72. package/dist/{chunk-25CVKMFC.js → chunk-5WPQUOM4.js} +3 -3
  73. package/dist/chunk-5WPQUOM4.js.map +1 -0
  74. package/dist/{chunk-IONQ6TOR.js → chunk-5XJEKPO5.js} +2 -2
  75. package/dist/chunk-5XJEKPO5.js.map +1 -0
  76. package/dist/{chunk-PURKYS5T.js → chunk-6XEHR3MG.js} +2 -2
  77. package/dist/{chunk-RL2NW7HP.js → chunk-A34P5Z5O.js} +2 -2
  78. package/dist/chunk-A34P5Z5O.js.map +1 -0
  79. package/dist/{chunk-MM2HIW7M.js → chunk-AA56LFMF.js} +4 -6
  80. package/dist/{chunk-MM2HIW7M.js.map → chunk-AA56LFMF.js.map} +1 -1
  81. package/dist/chunk-ADPVFELS.js +16 -0
  82. package/dist/{chunk-NEHYVVTH.js.map → chunk-ADPVFELS.js.map} +1 -1
  83. package/dist/chunk-ASIYAAQV.js +42 -0
  84. package/dist/chunk-ASIYAAQV.js.map +1 -0
  85. package/dist/{chunk-RLVCSGRU.js → chunk-AVPV4BA5.js} +2 -2
  86. package/dist/{chunk-YNLBS34B.js → chunk-B6VZ2AKN.js} +4 -4
  87. package/dist/chunk-BMX7CIRD.js +9 -0
  88. package/dist/chunk-BMX7CIRD.js.map +1 -0
  89. package/dist/{chunk-R7ZCA6AQ.js → chunk-BSVOJYJ7.js} +7 -3
  90. package/dist/chunk-BSVOJYJ7.js.map +1 -0
  91. package/dist/{chunk-BTXU3OGV.js → chunk-C5OJIIJP.js} +2 -2
  92. package/dist/chunk-C5OJIIJP.js.map +1 -0
  93. package/dist/chunk-CDKIT7D3.js +9 -0
  94. package/dist/chunk-CDKIT7D3.js.map +1 -0
  95. package/dist/chunk-CN3OICYB.js +13 -0
  96. package/dist/chunk-CN3OICYB.js.map +1 -0
  97. package/dist/{chunk-EBVLBLR3.js → chunk-D3BJEYTR.js} +4 -7
  98. package/dist/chunk-D3BJEYTR.js.map +1 -0
  99. package/dist/{chunk-OVSCDXYN.js → chunk-DCZDGS5G.js} +3 -3
  100. package/dist/{chunk-OVSCDXYN.js.map → chunk-DCZDGS5G.js.map} +1 -1
  101. package/dist/{chunk-WTLAKRCT.js → chunk-DHVGDIIO.js} +3 -3
  102. package/dist/chunk-DHVGDIIO.js.map +1 -0
  103. package/dist/{chunk-3LTTYG6N.js → chunk-DXSRRBJO.js} +2 -2
  104. package/dist/chunk-DXSRRBJO.js.map +1 -0
  105. package/dist/chunk-E5HJJFUI.js +26 -0
  106. package/dist/chunk-E5HJJFUI.js.map +1 -0
  107. package/dist/{chunk-SDW4W3XE.js → chunk-EBQ25TEY.js} +2 -2
  108. package/dist/chunk-EBQ25TEY.js.map +1 -0
  109. package/dist/chunk-EH4GVGXD.js +16 -0
  110. package/dist/{chunk-OKXCGA4Y.js.map → chunk-EH4GVGXD.js.map} +1 -1
  111. package/dist/{chunk-WGLZHBJG.js → chunk-ETO77GIW.js} +2 -2
  112. package/dist/chunk-ETO77GIW.js.map +1 -0
  113. package/dist/{chunk-S7L5KBI4.js → chunk-FAVYJIRM.js} +3 -3
  114. package/dist/chunk-FL33IWLY.js +19 -0
  115. package/dist/chunk-FL33IWLY.js.map +1 -0
  116. package/dist/{chunk-6UMISP3B.js → chunk-FLVULRGY.js} +2 -2
  117. package/dist/chunk-FLVULRGY.js.map +1 -0
  118. package/dist/{chunk-SCD2JNY3.js → chunk-FUVG6A7U.js} +2 -2
  119. package/dist/chunk-FUVG6A7U.js.map +1 -0
  120. package/dist/chunk-GQXJICRA.js +26 -0
  121. package/dist/chunk-GQXJICRA.js.map +1 -0
  122. package/dist/chunk-H544BC2X.js +16 -0
  123. package/dist/chunk-H544BC2X.js.map +1 -0
  124. package/dist/{chunk-H5BHFVEN.js → chunk-HCVE7FSF.js} +2 -2
  125. package/dist/chunk-HCVE7FSF.js.map +1 -0
  126. package/dist/{chunk-BV32K227.js → chunk-HQ3YMKQ5.js} +3 -3
  127. package/dist/chunk-HSJMG5T7.js +16 -0
  128. package/dist/chunk-HSJMG5T7.js.map +1 -0
  129. package/dist/{chunk-M7Y67IAB.js → chunk-HT6L4VRQ.js} +2 -2
  130. package/dist/chunk-HT6L4VRQ.js.map +1 -0
  131. package/dist/{chunk-3TS3D7WD.js → chunk-ITQ6OJAL.js} +4 -4
  132. package/dist/chunk-ITQ6OJAL.js.map +1 -0
  133. package/dist/{chunk-NTMT5XGC.js → chunk-JNAWZ4RN.js} +2 -2
  134. package/dist/chunk-JNAWZ4RN.js.map +1 -0
  135. package/dist/chunk-JQ4Z4JTW.js +16 -0
  136. package/dist/chunk-JQ4Z4JTW.js.map +1 -0
  137. package/dist/chunk-JWYRXPR4.js +53 -0
  138. package/dist/chunk-JWYRXPR4.js.map +1 -0
  139. package/dist/{chunk-NX7MXLFS.js → chunk-KTMCYEU5.js} +2 -2
  140. package/dist/{chunk-JQFD563S.js → chunk-LKF7U4O4.js} +2 -2
  141. package/dist/chunk-LKF7U4O4.js.map +1 -0
  142. package/dist/{chunk-2E4KCD3Y.js → chunk-LQ3EQYIX.js} +4 -3
  143. package/dist/chunk-LQ3EQYIX.js.map +1 -0
  144. package/dist/{chunk-ELUSLRWQ.js → chunk-LRIVI5ZC.js} +2 -2
  145. package/dist/{chunk-M4KDJ4I4.js → chunk-LXOLIOAD.js} +2 -2
  146. package/dist/{chunk-T5WSO6US.js → chunk-MCPKXTX7.js} +2 -2
  147. package/dist/chunk-MCPKXTX7.js.map +1 -0
  148. package/dist/chunk-MWUVGTKC.js +23 -0
  149. package/dist/chunk-MWUVGTKC.js.map +1 -0
  150. package/dist/chunk-MXUGDXSG.js +28 -0
  151. package/dist/chunk-MXUGDXSG.js.map +1 -0
  152. package/dist/chunk-NKXMLC6T.js +56 -0
  153. package/dist/chunk-NKXMLC6T.js.map +1 -0
  154. package/dist/{chunk-PX2I4GCF.js → chunk-NL5MQVGD.js} +2 -2
  155. package/dist/chunk-NMMMAMKP.js +9 -0
  156. package/dist/chunk-NMMMAMKP.js.map +1 -0
  157. package/dist/chunk-NNUATTN7.js +16 -0
  158. package/dist/chunk-NNUATTN7.js.map +1 -0
  159. package/dist/{chunk-7OEGJCW7.js → chunk-NRYKSDVP.js} +4 -4
  160. package/dist/{chunk-7OEGJCW7.js.map → chunk-NRYKSDVP.js.map} +1 -1
  161. package/dist/{chunk-VC7RTDJP.js → chunk-NST7NM5Q.js} +2 -2
  162. package/dist/{chunk-FCJO72WG.js → chunk-NYM3EW3M.js} +2 -2
  163. package/dist/chunk-NYM3EW3M.js.map +1 -0
  164. package/dist/chunk-NZLRMN35.js +13 -0
  165. package/dist/chunk-NZLRMN35.js.map +1 -0
  166. package/dist/{chunk-CCVPCHUO.js → chunk-O4YU4N6Q.js} +4 -4
  167. package/dist/chunk-O4YU4N6Q.js.map +1 -0
  168. package/dist/chunk-OMYVTYHI.js +47 -0
  169. package/dist/chunk-OMYVTYHI.js.map +1 -0
  170. package/dist/chunk-OOOVMKOG.js +13 -0
  171. package/dist/chunk-OOOVMKOG.js.map +1 -0
  172. package/dist/{chunk-EMZFQEWM.js → chunk-OYTQWJ2O.js} +4 -7
  173. package/dist/chunk-OYTQWJ2O.js.map +1 -0
  174. package/dist/{chunk-IAXVREU5.js → chunk-PU6PU2JM.js} +2 -2
  175. package/dist/chunk-PU6PU2JM.js.map +1 -0
  176. package/dist/{chunk-CSOSM46M.js → chunk-PYV7MWJJ.js} +2 -2
  177. package/dist/chunk-PYV7MWJJ.js.map +1 -0
  178. package/dist/chunk-QD3ROUIT.js +20 -0
  179. package/dist/chunk-QD3ROUIT.js.map +1 -0
  180. package/dist/{chunk-TQUKIG26.js → chunk-QJYU5TLL.js} +2 -2
  181. package/dist/{chunk-VQAGV72H.js → chunk-QVSHSIA3.js} +2 -2
  182. package/dist/{chunk-OSBVYUOQ.js → chunk-R3PZ56AD.js} +4 -4
  183. package/dist/chunk-R3PZ56AD.js.map +1 -0
  184. package/dist/chunk-RDMDCTHJ.js +13 -0
  185. package/dist/chunk-RDMDCTHJ.js.map +1 -0
  186. package/dist/chunk-RQ5CX67T.js +30 -0
  187. package/dist/chunk-RQ5CX67T.js.map +1 -0
  188. package/dist/{chunk-MNV2H4N6.js → chunk-SATEE2TL.js} +2 -2
  189. package/dist/chunk-SATEE2TL.js.map +1 -0
  190. package/dist/chunk-SLBDEPBP.js +16 -0
  191. package/dist/chunk-SLBDEPBP.js.map +1 -0
  192. package/dist/chunk-SMMVTXL4.js +22 -0
  193. package/dist/chunk-SMMVTXL4.js.map +1 -0
  194. package/dist/{chunk-GR7322AQ.js → chunk-SUONQGAH.js} +3 -3
  195. package/dist/chunk-SUONQGAH.js.map +1 -0
  196. package/dist/{chunk-VKXN4FQD.js → chunk-SXR2SO42.js} +2 -2
  197. package/dist/chunk-T775UWIV.js +32 -0
  198. package/dist/chunk-T775UWIV.js.map +1 -0
  199. package/dist/chunk-TEL44S5A.js +16 -0
  200. package/dist/chunk-TEL44S5A.js.map +1 -0
  201. package/dist/{chunk-VS2VCQLP.js → chunk-TUZHOWSN.js} +2 -2
  202. package/dist/chunk-TUZHOWSN.js.map +1 -0
  203. package/dist/{chunk-6RETOV6A.js → chunk-TWRJEIBO.js} +3 -3
  204. package/dist/{chunk-PXF3RMFH.js → chunk-TWXUGWYX.js} +5 -3
  205. package/dist/{chunk-PXF3RMFH.js.map → chunk-TWXUGWYX.js.map} +1 -1
  206. package/dist/chunk-U7VOIXLY.js +13 -0
  207. package/dist/chunk-U7VOIXLY.js.map +1 -0
  208. package/dist/chunk-V2NSN6ET.js +13 -0
  209. package/dist/chunk-V2NSN6ET.js.map +1 -0
  210. package/dist/chunk-V36MCE25.js +19 -0
  211. package/dist/chunk-V36MCE25.js.map +1 -0
  212. package/dist/chunk-VDV24TWQ.js +13 -0
  213. package/dist/chunk-VDV24TWQ.js.map +1 -0
  214. package/dist/{chunk-YOSCEJ36.js → chunk-VM2YJ5PN.js} +2 -2
  215. package/dist/{chunk-MTDZG4HK.js → chunk-W27GPK6Q.js} +5 -5
  216. package/dist/chunk-W27GPK6Q.js.map +1 -0
  217. package/dist/{chunk-OLLX6YCN.js → chunk-W5FFJSCD.js} +2 -2
  218. package/dist/chunk-W5FFJSCD.js.map +1 -0
  219. package/dist/chunk-WJZHUNF5.js +19 -0
  220. package/dist/chunk-WJZHUNF5.js.map +1 -0
  221. package/dist/{chunk-XWBOD6MD.js → chunk-WTLMIOKZ.js} +2 -2
  222. package/dist/{chunk-LAITZAIG.js → chunk-WY5I452J.js} +2 -2
  223. package/dist/chunk-WY5I452J.js.map +1 -0
  224. package/dist/{chunk-URC6AG2N.js → chunk-XIVWFVVX.js} +2 -2
  225. package/dist/chunk-XIVWFVVX.js.map +1 -0
  226. package/dist/{chunk-RKEZOXD3.js → chunk-XR7Q6IP6.js} +2 -2
  227. package/dist/chunk-XR7Q6IP6.js.map +1 -0
  228. package/dist/{chunk-DHFBKOFZ.js → chunk-XTS6LZBP.js} +2 -2
  229. package/dist/chunk-XTS6LZBP.js.map +1 -0
  230. package/dist/{chunk-A42NID5P.js → chunk-XXB6HJ2R.js} +4 -4
  231. package/dist/chunk-XXB6HJ2R.js.map +1 -0
  232. package/dist/{chunk-5Y5JH32Z.js → chunk-XZS6J4LM.js} +3 -3
  233. package/dist/chunk-XZS6J4LM.js.map +1 -0
  234. package/dist/chunk-YHQSI4WC.js +65 -0
  235. package/dist/chunk-YHQSI4WC.js.map +1 -0
  236. package/dist/chunk-YMJHVVM4.js +13 -0
  237. package/dist/chunk-YMJHVVM4.js.map +1 -0
  238. package/dist/{chunk-UQ2F3I2S.js → chunk-YR26F7OA.js} +3 -3
  239. package/dist/chunk-YR26F7OA.js.map +1 -0
  240. package/dist/chunk-YSDLXJHE.js +16 -0
  241. package/dist/chunk-YSDLXJHE.js.map +1 -0
  242. package/dist/chunk-Z7I7YCKN.js +36 -0
  243. package/dist/chunk-Z7I7YCKN.js.map +1 -0
  244. package/dist/chunk-ZM32S3YU.js +16 -0
  245. package/dist/{chunk-UXMNCRG7.js.map → chunk-ZM32S3YU.js.map} +1 -1
  246. package/dist/{chunk-PWIEPZVO.js → chunk-ZO2MTD2E.js} +2 -2
  247. package/dist/chunk-ZO2MTD2E.js.map +1 -0
  248. package/dist/{chunk-PYALKKWZ.js → chunk-ZYRUL5E7.js} +4 -4
  249. package/dist/clamp.d.ts +36 -0
  250. package/dist/clamp.d.ts.map +1 -0
  251. package/dist/clamp.js +9 -0
  252. package/dist/clamp.js.map +1 -0
  253. package/dist/closestTo.d.ts +30 -0
  254. package/dist/closestTo.d.ts.map +1 -0
  255. package/dist/closestTo.js +9 -0
  256. package/dist/closestTo.js.map +1 -0
  257. package/dist/compareAsc.d.ts +28 -0
  258. package/dist/compareAsc.d.ts.map +1 -0
  259. package/dist/compareAsc.js +9 -0
  260. package/dist/compareAsc.js.map +1 -0
  261. package/dist/compareDesc.d.ts +28 -0
  262. package/dist/compareDesc.d.ts.map +1 -0
  263. package/dist/compareDesc.js +9 -0
  264. package/dist/compareDesc.js.map +1 -0
  265. package/dist/differenceInBusinessDays.d.ts +26 -0
  266. package/dist/differenceInBusinessDays.d.ts.map +1 -0
  267. package/dist/differenceInBusinessDays.js +10 -0
  268. package/dist/differenceInBusinessDays.js.map +1 -0
  269. package/dist/differenceInDays.d.ts +7 -3
  270. package/dist/differenceInDays.d.ts.map +1 -1
  271. package/dist/differenceInDays.js +3 -3
  272. package/dist/differenceInHours.d.ts +3 -0
  273. package/dist/differenceInHours.d.ts.map +1 -1
  274. package/dist/differenceInHours.js +3 -4
  275. package/dist/differenceInMicroseconds.js +3 -3
  276. package/dist/differenceInMilliseconds.d.ts +3 -0
  277. package/dist/differenceInMilliseconds.d.ts.map +1 -1
  278. package/dist/differenceInMilliseconds.js +4 -4
  279. package/dist/differenceInMinutes.d.ts +3 -0
  280. package/dist/differenceInMinutes.d.ts.map +1 -1
  281. package/dist/differenceInMinutes.js +3 -4
  282. package/dist/differenceInMonths.d.ts +5 -1
  283. package/dist/differenceInMonths.d.ts.map +1 -1
  284. package/dist/differenceInMonths.js +3 -3
  285. package/dist/differenceInNanoseconds.js +3 -3
  286. package/dist/differenceInQuarters.d.ts +1 -1
  287. package/dist/differenceInQuarters.d.ts.map +1 -1
  288. package/dist/differenceInQuarters.js +4 -4
  289. package/dist/differenceInSeconds.d.ts +3 -0
  290. package/dist/differenceInSeconds.d.ts.map +1 -1
  291. package/dist/differenceInSeconds.js +3 -4
  292. package/dist/differenceInWeeks.d.ts +4 -0
  293. package/dist/differenceInWeeks.d.ts.map +1 -1
  294. package/dist/differenceInWeeks.js +3 -3
  295. package/dist/differenceInYears.d.ts +6 -2
  296. package/dist/differenceInYears.d.ts.map +1 -1
  297. package/dist/differenceInYears.js +3 -3
  298. package/dist/eachDayOfInterval.d.ts +11 -4
  299. package/dist/eachDayOfInterval.d.ts.map +1 -1
  300. package/dist/eachDayOfInterval.js +4 -3
  301. package/dist/eachHourOfInterval.d.ts +5 -3
  302. package/dist/eachHourOfInterval.d.ts.map +1 -1
  303. package/dist/eachHourOfInterval.js +3 -3
  304. package/dist/eachMinuteOfInterval.d.ts.map +1 -1
  305. package/dist/eachMinuteOfInterval.js +3 -3
  306. package/dist/eachMonthOfInterval.d.ts +10 -0
  307. package/dist/eachMonthOfInterval.d.ts.map +1 -1
  308. package/dist/eachMonthOfInterval.js +5 -3
  309. package/dist/eachQuarterOfInterval.d.ts +3 -0
  310. package/dist/eachQuarterOfInterval.d.ts.map +1 -1
  311. package/dist/eachQuarterOfInterval.js +4 -3
  312. package/dist/eachWeekOfInterval.d.ts +7 -0
  313. package/dist/eachWeekOfInterval.d.ts.map +1 -1
  314. package/dist/eachWeekOfInterval.js +5 -3
  315. package/dist/eachYearOfInterval.d.ts +10 -0
  316. package/dist/eachYearOfInterval.d.ts.map +1 -1
  317. package/dist/eachYearOfInterval.js +5 -3
  318. package/dist/endOfDay.js +6 -6
  319. package/dist/endOfMonth.js +6 -6
  320. package/dist/endOfQuarter.d.ts +1 -1
  321. package/dist/endOfQuarter.d.ts.map +1 -1
  322. package/dist/endOfQuarter.js +6 -6
  323. package/dist/endOfWeek.d.ts +1 -1
  324. package/dist/endOfWeek.d.ts.map +1 -1
  325. package/dist/endOfWeek.js +5 -5
  326. package/dist/endOfYear.d.ts +1 -1
  327. package/dist/endOfYear.js +6 -6
  328. package/dist/format.d.ts +9 -4
  329. package/dist/format.d.ts.map +1 -1
  330. package/dist/format.js +4 -3
  331. package/dist/formatPlainDate.js +2 -2
  332. package/dist/getQuarter.d.ts +1 -1
  333. package/dist/getQuarter.d.ts.map +1 -1
  334. package/dist/getQuarter.js +3 -3
  335. package/dist/index.d.ts +14 -0
  336. package/dist/index.d.ts.map +1 -1
  337. package/dist/index.js +201 -142
  338. package/dist/intlFormatDistance.d.ts +1 -1
  339. package/dist/intlFormatDistance.d.ts.map +1 -1
  340. package/dist/intlFormatDistance.js +10 -11
  341. package/dist/isAfter.d.ts +8 -5
  342. package/dist/isAfter.d.ts.map +1 -1
  343. package/dist/isAfter.js +3 -4
  344. package/dist/isBefore.d.ts +9 -6
  345. package/dist/isBefore.d.ts.map +1 -1
  346. package/dist/isBefore.js +3 -4
  347. package/dist/isEqual.d.ts +27 -0
  348. package/dist/isEqual.d.ts.map +1 -0
  349. package/dist/isEqual.js +9 -0
  350. package/dist/isEqual.js.map +1 -0
  351. package/dist/isFuture.d.ts +1 -1
  352. package/dist/isFuture.d.ts.map +1 -1
  353. package/dist/isFuture.js +5 -5
  354. package/dist/isPast.d.ts +1 -1
  355. package/dist/isPast.d.ts.map +1 -1
  356. package/dist/isPast.js +5 -5
  357. package/dist/isPlainDateAfter.d.ts.map +1 -1
  358. package/dist/isPlainDateAfter.js +2 -2
  359. package/dist/isPlainDateBefore.d.ts.map +1 -1
  360. package/dist/isPlainDateBefore.js +2 -2
  361. package/dist/isPlainDateEqual.d.ts.map +1 -1
  362. package/dist/isPlainDateEqual.js +2 -2
  363. package/dist/isPlainTimeAfter.js +2 -2
  364. package/dist/isPlainTimeBefore.js +2 -2
  365. package/dist/isPlainTimeEqual.js +2 -2
  366. package/dist/isSameDay.js +3 -3
  367. package/dist/isSameHour.d.ts +1 -1
  368. package/dist/isSameHour.d.ts.map +1 -1
  369. package/dist/isSameHour.js +3 -3
  370. package/dist/isSameMicrosecond.d.ts +3 -3
  371. package/dist/isSameMicrosecond.d.ts.map +1 -1
  372. package/dist/isSameMicrosecond.js +3 -3
  373. package/dist/isSameMillisecond.d.ts +3 -3
  374. package/dist/isSameMillisecond.d.ts.map +1 -1
  375. package/dist/isSameMillisecond.js +3 -3
  376. package/dist/isSameMinute.d.ts +1 -1
  377. package/dist/isSameMinute.d.ts.map +1 -1
  378. package/dist/isSameMinute.js +3 -3
  379. package/dist/isSameMonth.d.ts +1 -1
  380. package/dist/isSameMonth.d.ts.map +1 -1
  381. package/dist/isSameMonth.js +3 -3
  382. package/dist/isSameNanosecond.d.ts +3 -3
  383. package/dist/isSameNanosecond.d.ts.map +1 -1
  384. package/dist/isSameNanosecond.js +3 -3
  385. package/dist/isSameQuarter.d.ts +1 -1
  386. package/dist/isSameQuarter.d.ts.map +1 -1
  387. package/dist/isSameQuarter.js +3 -3
  388. package/dist/isSameSecond.d.ts +1 -1
  389. package/dist/isSameSecond.d.ts.map +1 -1
  390. package/dist/isSameSecond.js +3 -3
  391. package/dist/isSameWeek.d.ts +1 -1
  392. package/dist/isSameWeek.d.ts.map +1 -1
  393. package/dist/isSameWeek.js +3 -3
  394. package/dist/isSameYear.d.ts +1 -1
  395. package/dist/isSameYear.d.ts.map +1 -1
  396. package/dist/isSameYear.js +3 -3
  397. package/dist/isToday.d.ts +21 -0
  398. package/dist/isToday.d.ts.map +1 -0
  399. package/dist/isToday.js +12 -0
  400. package/dist/isToday.js.map +1 -0
  401. package/dist/isTomorrow.d.ts +20 -0
  402. package/dist/isTomorrow.d.ts.map +1 -0
  403. package/dist/isTomorrow.js +12 -0
  404. package/dist/isTomorrow.js.map +1 -0
  405. package/dist/isWeekend.d.ts +18 -0
  406. package/dist/isWeekend.d.ts.map +1 -0
  407. package/dist/isWeekend.js +10 -0
  408. package/dist/isWeekend.js.map +1 -0
  409. package/dist/isWithinInterval.js +5 -5
  410. package/dist/isYesterday.d.ts +20 -0
  411. package/dist/isYesterday.d.ts.map +1 -0
  412. package/dist/isYesterday.js +12 -0
  413. package/dist/isYesterday.js.map +1 -0
  414. package/dist/max.d.ts +25 -0
  415. package/dist/max.d.ts.map +1 -0
  416. package/dist/max.js +9 -0
  417. package/dist/max.js.map +1 -0
  418. package/dist/min.d.ts +27 -0
  419. package/dist/min.d.ts.map +1 -0
  420. package/dist/min.js +9 -0
  421. package/dist/min.js.map +1 -0
  422. package/dist/now.js +2 -2
  423. package/dist/roundToNearestHour.d.ts +1 -1
  424. package/dist/roundToNearestHour.d.ts.map +1 -1
  425. package/dist/roundToNearestHour.js +3 -3
  426. package/dist/roundToNearestMinute.d.ts +1 -1
  427. package/dist/roundToNearestMinute.d.ts.map +1 -1
  428. package/dist/roundToNearestMinute.js +3 -3
  429. package/dist/roundToNearestSecond.d.ts +1 -1
  430. package/dist/roundToNearestSecond.d.ts.map +1 -1
  431. package/dist/roundToNearestSecond.js +3 -3
  432. package/dist/shared/businessDays.d.ts +24 -0
  433. package/dist/shared/businessDays.d.ts.map +1 -0
  434. package/dist/shared/businessDays.js +13 -0
  435. package/dist/shared/businessDays.js.map +1 -0
  436. package/dist/shared/compare.d.ts +22 -0
  437. package/dist/shared/compare.d.ts.map +1 -0
  438. package/dist/shared/compare.js +12 -0
  439. package/dist/shared/compare.js.map +1 -0
  440. package/dist/shared/differenceInMilliseconds.js +2 -2
  441. package/dist/shared/endOfDay.d.ts +1 -1
  442. package/dist/shared/endOfDay.d.ts.map +1 -1
  443. package/dist/shared/endOfDay.js +1 -1
  444. package/dist/shared/isAfter.d.ts +1 -1
  445. package/dist/shared/isAfter.d.ts.map +1 -1
  446. package/dist/shared/isAfter.js +1 -2
  447. package/dist/shared/isBefore.d.ts +1 -1
  448. package/dist/shared/isBefore.d.ts.map +1 -1
  449. package/dist/shared/isBefore.js +1 -2
  450. package/dist/shared/normalizeTemporalInput.d.ts +1 -1
  451. package/dist/shared/normalizeTemporalInput.d.ts.map +1 -1
  452. package/dist/shared/normalizeTemporalInput.js +2 -2
  453. package/dist/shared/normalizeWithPlainDate.d.ts +1 -1
  454. package/dist/shared/normalizeWithPlainDate.d.ts.map +1 -1
  455. package/dist/shared/normalizeWithPlainDate.js +4 -4
  456. package/dist/shared/nowZoned.js +3 -3
  457. package/dist/shared/plainDateToZonedDateTime.js +2 -2
  458. package/dist/shared/relativeDay.d.ts +9 -0
  459. package/dist/shared/relativeDay.d.ts.map +1 -0
  460. package/dist/shared/relativeDay.js +11 -0
  461. package/dist/shared/relativeDay.js.map +1 -0
  462. package/dist/shared/temporal.d.ts +1 -0
  463. package/dist/shared/temporal.d.ts.map +1 -1
  464. package/dist/shared/temporal.js +3 -1
  465. package/dist/simpleFormat.js +2 -2
  466. package/dist/startOfDay.js +5 -5
  467. package/dist/startOfMonth.js +5 -5
  468. package/dist/startOfQuarter.d.ts +2 -2
  469. package/dist/startOfQuarter.d.ts.map +1 -1
  470. package/dist/startOfQuarter.js +5 -5
  471. package/dist/startOfWeek.d.ts +1 -1
  472. package/dist/startOfWeek.d.ts.map +1 -1
  473. package/dist/startOfWeek.js +4 -4
  474. package/dist/startOfYear.d.ts +1 -1
  475. package/dist/startOfYear.js +5 -5
  476. package/dist/subBusinessDays.d.ts +23 -0
  477. package/dist/subBusinessDays.d.ts.map +1 -0
  478. package/dist/subBusinessDays.js +11 -0
  479. package/dist/subBusinessDays.js.map +1 -0
  480. package/dist/subDays.d.ts +7 -4
  481. package/dist/subDays.d.ts.map +1 -1
  482. package/dist/subDays.js +4 -4
  483. package/dist/subHours.d.ts +1 -1
  484. package/dist/subHours.d.ts.map +1 -1
  485. package/dist/subHours.js +4 -4
  486. package/dist/subMicroseconds.d.ts +1 -1
  487. package/dist/subMicroseconds.d.ts.map +1 -1
  488. package/dist/subMicroseconds.js +4 -4
  489. package/dist/subMilliseconds.d.ts +1 -1
  490. package/dist/subMilliseconds.d.ts.map +1 -1
  491. package/dist/subMilliseconds.js +4 -4
  492. package/dist/subMinutes.d.ts +1 -1
  493. package/dist/subMinutes.d.ts.map +1 -1
  494. package/dist/subMinutes.js +4 -4
  495. package/dist/subMonths.d.ts +7 -4
  496. package/dist/subMonths.d.ts.map +1 -1
  497. package/dist/subMonths.js +4 -4
  498. package/dist/subNanoseconds.d.ts +1 -1
  499. package/dist/subNanoseconds.d.ts.map +1 -1
  500. package/dist/subNanoseconds.js +4 -4
  501. package/dist/subQuarters.d.ts +3 -3
  502. package/dist/subQuarters.d.ts.map +1 -1
  503. package/dist/subQuarters.js +4 -4
  504. package/dist/subSeconds.d.ts +1 -1
  505. package/dist/subSeconds.d.ts.map +1 -1
  506. package/dist/subSeconds.js +4 -4
  507. package/dist/subWeeks.d.ts +7 -4
  508. package/dist/subWeeks.d.ts.map +1 -1
  509. package/dist/subWeeks.js +4 -4
  510. package/dist/subYears.d.ts +7 -4
  511. package/dist/subYears.d.ts.map +1 -1
  512. package/dist/subYears.js +4 -4
  513. package/dist/toDate.d.ts +4 -4
  514. package/dist/toDate.d.ts.map +1 -1
  515. package/dist/toDate.js +2 -2
  516. package/dist/toInstant.js +2 -2
  517. package/dist/toIso.d.ts +1 -1
  518. package/dist/toIso.d.ts.map +1 -1
  519. package/dist/toIso.js +2 -2
  520. package/dist/toIso9075.d.ts +1 -1
  521. package/dist/toIso9075.d.ts.map +1 -1
  522. package/dist/toIso9075.js +2 -2
  523. package/dist/toPlainDate.d.ts.map +1 -1
  524. package/dist/toPlainDate.js +2 -2
  525. package/dist/toPlainTime.js +2 -2
  526. package/dist/toZonedTime.js +2 -2
  527. package/dist/today.js +2 -2
  528. package/package.json +6 -3
  529. package/dist/chunk-25CVKMFC.js.map +0 -1
  530. package/dist/chunk-2E4KCD3Y.js.map +0 -1
  531. package/dist/chunk-2EFJSF2R.js +0 -13
  532. package/dist/chunk-2EFJSF2R.js.map +0 -1
  533. package/dist/chunk-3LTTYG6N.js.map +0 -1
  534. package/dist/chunk-3TS3D7WD.js.map +0 -1
  535. package/dist/chunk-4PGGOVSG.js.map +0 -1
  536. package/dist/chunk-567DXBLA.js +0 -27
  537. package/dist/chunk-567DXBLA.js.map +0 -1
  538. package/dist/chunk-5Y5JH32Z.js.map +0 -1
  539. package/dist/chunk-6UMISP3B.js.map +0 -1
  540. package/dist/chunk-6YU6BQOZ.js +0 -14
  541. package/dist/chunk-6YU6BQOZ.js.map +0 -1
  542. package/dist/chunk-7K5BJ6F7.js +0 -18
  543. package/dist/chunk-7K5BJ6F7.js.map +0 -1
  544. package/dist/chunk-7SCQV77A.js.map +0 -1
  545. package/dist/chunk-A42NID5P.js.map +0 -1
  546. package/dist/chunk-AVGNRINZ.js +0 -9
  547. package/dist/chunk-AVGNRINZ.js.map +0 -1
  548. package/dist/chunk-BEGD73DT.js.map +0 -1
  549. package/dist/chunk-BTXU3OGV.js.map +0 -1
  550. package/dist/chunk-CCVPCHUO.js.map +0 -1
  551. package/dist/chunk-CIA46DWB.js +0 -17
  552. package/dist/chunk-CIA46DWB.js.map +0 -1
  553. package/dist/chunk-CSOSM46M.js.map +0 -1
  554. package/dist/chunk-DCCHY45G.js +0 -17
  555. package/dist/chunk-DCCHY45G.js.map +0 -1
  556. package/dist/chunk-DCFRBZBY.js +0 -32
  557. package/dist/chunk-DCFRBZBY.js.map +0 -1
  558. package/dist/chunk-DHFBKOFZ.js.map +0 -1
  559. package/dist/chunk-DMFV2AL7.js.map +0 -1
  560. package/dist/chunk-EBVLBLR3.js.map +0 -1
  561. package/dist/chunk-EMZFQEWM.js.map +0 -1
  562. package/dist/chunk-EU3SYJHM.js +0 -17
  563. package/dist/chunk-EU3SYJHM.js.map +0 -1
  564. package/dist/chunk-EVEMK2K2.js +0 -13
  565. package/dist/chunk-EVEMK2K2.js.map +0 -1
  566. package/dist/chunk-FCJO72WG.js.map +0 -1
  567. package/dist/chunk-G2U5WGRP.js +0 -14
  568. package/dist/chunk-G2U5WGRP.js.map +0 -1
  569. package/dist/chunk-GR7322AQ.js.map +0 -1
  570. package/dist/chunk-H5BHFVEN.js.map +0 -1
  571. package/dist/chunk-IAXVREU5.js.map +0 -1
  572. package/dist/chunk-IONQ6TOR.js.map +0 -1
  573. package/dist/chunk-JBM7DESQ.js +0 -13
  574. package/dist/chunk-JBM7DESQ.js.map +0 -1
  575. package/dist/chunk-JK4WDDWU.js +0 -28
  576. package/dist/chunk-JK4WDDWU.js.map +0 -1
  577. package/dist/chunk-JQFD563S.js.map +0 -1
  578. package/dist/chunk-KGO3G2QB.js +0 -18
  579. package/dist/chunk-KGO3G2QB.js.map +0 -1
  580. package/dist/chunk-KPB5ENNM.js.map +0 -1
  581. package/dist/chunk-LAITZAIG.js.map +0 -1
  582. package/dist/chunk-LODULPI3.js +0 -17
  583. package/dist/chunk-LODULPI3.js.map +0 -1
  584. package/dist/chunk-LSKER4FN.js +0 -13
  585. package/dist/chunk-LSKER4FN.js.map +0 -1
  586. package/dist/chunk-M7Y67IAB.js.map +0 -1
  587. package/dist/chunk-MDXN3WMH.js +0 -13
  588. package/dist/chunk-MDXN3WMH.js.map +0 -1
  589. package/dist/chunk-MENMDB6M.js.map +0 -1
  590. package/dist/chunk-MNV2H4N6.js.map +0 -1
  591. package/dist/chunk-MTDZG4HK.js.map +0 -1
  592. package/dist/chunk-NEHYVVTH.js +0 -13
  593. package/dist/chunk-NTMT5XGC.js.map +0 -1
  594. package/dist/chunk-OFIPZPEA.js.map +0 -1
  595. package/dist/chunk-OKXCGA4Y.js +0 -13
  596. package/dist/chunk-OLLX6YCN.js.map +0 -1
  597. package/dist/chunk-OQNFKOPA.js.map +0 -1
  598. package/dist/chunk-OSBVYUOQ.js.map +0 -1
  599. package/dist/chunk-PWIEPZVO.js.map +0 -1
  600. package/dist/chunk-R7ZCA6AQ.js.map +0 -1
  601. package/dist/chunk-RKEZOXD3.js.map +0 -1
  602. package/dist/chunk-RL2NW7HP.js.map +0 -1
  603. package/dist/chunk-SCD2JNY3.js.map +0 -1
  604. package/dist/chunk-SDW4W3XE.js.map +0 -1
  605. package/dist/chunk-T5WSO6US.js.map +0 -1
  606. package/dist/chunk-UQ2F3I2S.js.map +0 -1
  607. package/dist/chunk-URC6AG2N.js.map +0 -1
  608. package/dist/chunk-UTN7ZKL4.js +0 -30
  609. package/dist/chunk-UTN7ZKL4.js.map +0 -1
  610. package/dist/chunk-UXMNCRG7.js +0 -13
  611. package/dist/chunk-VQPIPLHX.js +0 -14
  612. package/dist/chunk-VQPIPLHX.js.map +0 -1
  613. package/dist/chunk-VS2VCQLP.js.map +0 -1
  614. package/dist/chunk-WGLZHBJG.js.map +0 -1
  615. package/dist/chunk-WTLAKRCT.js.map +0 -1
  616. package/dist/chunk-X3ARINEH.js +0 -19
  617. package/dist/chunk-X3ARINEH.js.map +0 -1
  618. package/dist/chunk-YRCFMGBH.js +0 -54
  619. package/dist/chunk-YRCFMGBH.js.map +0 -1
  620. package/dist/chunk-ZG4ROOWI.js +0 -14
  621. package/dist/chunk-ZG4ROOWI.js.map +0 -1
  622. package/dist/chunk-ZGWLIISB.js +0 -40
  623. package/dist/chunk-ZGWLIISB.js.map +0 -1
  624. package/dist/chunk-ZOHYNJUD.js.map +0 -1
  625. package/dist/chunk-ZYU3P74L.js +0 -13
  626. package/dist/chunk-ZYU3P74L.js.map +0 -1
  627. package/dist/temporal.d.js +0 -1
  628. /package/dist/{temporal.d.js.map → addBusinessDays.js.map} +0 -0
  629. /package/dist/{chunk-L5AMAEWX.js.map → chunk-2AID4P2C.js.map} +0 -0
  630. /package/dist/{chunk-DBVGH55Z.js.map → chunk-2OSJHJV5.js.map} +0 -0
  631. /package/dist/{chunk-PURKYS5T.js.map → chunk-6XEHR3MG.js.map} +0 -0
  632. /package/dist/{chunk-RLVCSGRU.js.map → chunk-AVPV4BA5.js.map} +0 -0
  633. /package/dist/{chunk-YNLBS34B.js.map → chunk-B6VZ2AKN.js.map} +0 -0
  634. /package/dist/{chunk-S7L5KBI4.js.map → chunk-FAVYJIRM.js.map} +0 -0
  635. /package/dist/{chunk-BV32K227.js.map → chunk-HQ3YMKQ5.js.map} +0 -0
  636. /package/dist/{chunk-NX7MXLFS.js.map → chunk-KTMCYEU5.js.map} +0 -0
  637. /package/dist/{chunk-ELUSLRWQ.js.map → chunk-LRIVI5ZC.js.map} +0 -0
  638. /package/dist/{chunk-M4KDJ4I4.js.map → chunk-LXOLIOAD.js.map} +0 -0
  639. /package/dist/{chunk-PX2I4GCF.js.map → chunk-NL5MQVGD.js.map} +0 -0
  640. /package/dist/{chunk-VC7RTDJP.js.map → chunk-NST7NM5Q.js.map} +0 -0
  641. /package/dist/{chunk-TQUKIG26.js.map → chunk-QJYU5TLL.js.map} +0 -0
  642. /package/dist/{chunk-VQAGV72H.js.map → chunk-QVSHSIA3.js.map} +0 -0
  643. /package/dist/{chunk-VKXN4FQD.js.map → chunk-SXR2SO42.js.map} +0 -0
  644. /package/dist/{chunk-6RETOV6A.js.map → chunk-TWRJEIBO.js.map} +0 -0
  645. /package/dist/{chunk-YOSCEJ36.js.map → chunk-VM2YJ5PN.js.map} +0 -0
  646. /package/dist/{chunk-XWBOD6MD.js.map → chunk-WTLMIOKZ.js.map} +0 -0
  647. /package/dist/{chunk-PYALKKWZ.js.map → chunk-ZYRUL5E7.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeWithPlainDate
3
- } from "./chunk-ZOHYNJUD.js";
3
+ } from "./chunk-2MFBXSTL.js";
4
4
 
5
5
  // src/startOfDay.ts
6
6
  function startOfDay(input, timezone) {
@@ -11,4 +11,4 @@ function startOfDay(input, timezone) {
11
11
  export {
12
12
  startOfDay
13
13
  };
14
- //# sourceMappingURL=chunk-VKXN4FQD.js.map
14
+ //# sourceMappingURL=chunk-SXR2SO42.js.map
@@ -0,0 +1,32 @@
1
+ import {
2
+ normalizeTemporalInput
3
+ } from "./chunk-JNAWZ4RN.js";
4
+
5
+ // src/eachHourOfInterval.ts
6
+ function eachHourOfInterval(interval) {
7
+ const startZoned = normalizeTemporalInput(interval.start);
8
+ const endZoned = normalizeTemporalInput(interval.end);
9
+ if (startZoned.epochNanoseconds > endZoned.epochNanoseconds) return [];
10
+ let current = startZoned.round({ smallestUnit: "hour", roundingMode: "floor" });
11
+ const transition = current.getTimeZoneTransition("next");
12
+ if (transition && transition.epochNanoseconds <= startZoned.epochNanoseconds) {
13
+ current = transition;
14
+ }
15
+ const hours = [];
16
+ while (current.epochNanoseconds <= endZoned.epochNanoseconds) {
17
+ hours.push(current);
18
+ const nextLocalHour = current.toPlainDateTime().round({ smallestUnit: "hour", roundingMode: "floor" }).add({ hours: 1 });
19
+ let next = nextLocalHour.toZonedDateTime(current.timeZoneId);
20
+ if (next.epochNanoseconds <= current.epochNanoseconds) {
21
+ next = nextLocalHour.toZonedDateTime(current.timeZoneId, { disambiguation: "later" });
22
+ }
23
+ const nextTransition = current.getTimeZoneTransition("next");
24
+ current = nextTransition && nextTransition.epochNanoseconds < next.epochNanoseconds ? nextTransition : next;
25
+ }
26
+ return hours;
27
+ }
28
+
29
+ export {
30
+ eachHourOfInterval
31
+ };
32
+ //# sourceMappingURL=chunk-T775UWIV.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 a local hour boundary (minute/second/etc. set to 0),\n * or the first valid instant after an offset transition within an hour.\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 * Completely missing hours are skipped. Partial hours start at the transition,\n * and repeated hours have separate entries for each offset. Later entries\n * realign to local hour boundaries, so steps need not be 60 elapsed minutes.\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 if (startZoned.epochNanoseconds > endZoned.epochNanoseconds) return [];\n\n let current = startZoned.round({ smallestUnit: 'hour', roundingMode: 'floor' });\n // A repeated partial hour can begin at :30 even though rounding selects the\n // earlier :00. Include only the occurrence containing the starting instant.\n const transition = current.getTimeZoneTransition('next');\n if (transition && transition.epochNanoseconds <= startZoned.epochNanoseconds) {\n current = transition;\n }\n\n const hours: Temporal.ZonedDateTime[] = [];\n while (current.epochNanoseconds <= endZoned.epochNanoseconds) {\n hours.push(current);\n const nextLocalHour = current.toPlainDateTime()\n .round({ smallestUnit: 'hour', roundingMode: 'floor' })\n .add({ hours: 1 });\n let next = nextLocalHour.toZonedDateTime(current.timeZoneId);\n if (next.epochNanoseconds <= current.epochNanoseconds) {\n next = nextLocalHour.toZonedDateTime(current.timeZoneId, { disambiguation: 'later' });\n }\n // Offset transitions can start a partial or repeated hour before the next\n // local :00. Afterwards, compute a local boundary again to avoid drift.\n const nextTransition = current.getTimeZoneTransition('next');\n current = nextTransition && nextTransition.epochNanoseconds < next.epochNanoseconds\n ? nextTransition\n : next;\n }\n\n return hours;\n}\n"],"mappings":";;;;;AAkDO,SAAS,mBAAmB,UAGN;AAC3B,QAAM,aAAa,uBAAuB,SAAS,KAAK;AACxD,QAAM,WAAW,uBAAuB,SAAS,GAAG;AACpD,MAAI,WAAW,mBAAmB,SAAS,iBAAkB,QAAO,CAAC;AAErE,MAAI,UAAU,WAAW,MAAM,EAAE,cAAc,QAAQ,cAAc,QAAQ,CAAC;AAG9E,QAAM,aAAa,QAAQ,sBAAsB,MAAM;AACvD,MAAI,cAAc,WAAW,oBAAoB,WAAW,kBAAkB;AAC5E,cAAU;AAAA,EACZ;AAEA,QAAM,QAAkC,CAAC;AACzC,SAAO,QAAQ,oBAAoB,SAAS,kBAAkB;AAC5D,UAAM,KAAK,OAAO;AAClB,UAAM,gBAAgB,QAAQ,gBAAgB,EAC3C,MAAM,EAAE,cAAc,QAAQ,cAAc,QAAQ,CAAC,EACrD,IAAI,EAAE,OAAO,EAAE,CAAC;AACnB,QAAI,OAAO,cAAc,gBAAgB,QAAQ,UAAU;AAC3D,QAAI,KAAK,oBAAoB,QAAQ,kBAAkB;AACrD,aAAO,cAAc,gBAAgB,QAAQ,YAAY,EAAE,gBAAgB,QAAQ,CAAC;AAAA,IACtF;AAGA,UAAM,iBAAiB,QAAQ,sBAAsB,MAAM;AAC3D,cAAU,kBAAkB,eAAe,mBAAmB,KAAK,mBAC/D,iBACA;AAAA,EACN;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,16 @@
1
+ import {
2
+ addYears
3
+ } from "./chunk-FL33IWLY.js";
4
+ import {
5
+ isPlainDate
6
+ } from "./chunk-BSVOJYJ7.js";
7
+
8
+ // src/subYears.ts
9
+ function subYears(input, years) {
10
+ return isPlainDate(input) ? addYears(input, -years) : addYears(input, -years);
11
+ }
12
+
13
+ export {
14
+ subYears
15
+ };
16
+ //# sourceMappingURL=chunk-TEL44S5A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/subYears.ts"],"sourcesContent":["import { type Temporal, isPlainDate } from './shared/temporal';\nimport { addYears } from './addYears';\n\n/**\n * Subtracts the specified number of years from a datetime or date.\n *\n * This is a convenience wrapper around addYears with negated value.\n * Properly handles leap years and calendar edge cases through Temporal API.\n *\n * PlainDate inputs stay in calendar space, preserving their calendar without a timezone.\n *\n * @param input - A Temporal.Instant (UTC), Temporal.ZonedDateTime, or Temporal.PlainDate\n * @param years - Number of years to subtract\n * @returns PlainDate for a date input; otherwise ZonedDateTime with years subtracted\n *\n * @example\n * ```ts\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00Z');\n * const result = subYears(instant, 2);\n * // 2023-01-20T12:00:00Z[UTC] (2 years earlier)\n * ```\n */\nexport function subYears(input: Temporal.PlainDate, years: number): Temporal.PlainDate;\nexport function subYears(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n years: number\n): Temporal.ZonedDateTime;\nexport function subYears(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n years: number\n): Temporal.ZonedDateTime | Temporal.PlainDate {\n // Narrow each branch to the matching addYears overload.\n return isPlainDate(input) ? addYears(input, -years) : addYears(input, -years);\n}\n"],"mappings":";;;;;;;;AA2BO,SAAS,SACd,OACA,OAC6C;AAE7C,SAAO,YAAY,KAAK,IAAI,SAAS,OAAO,CAAC,KAAK,IAAI,SAAS,OAAO,CAAC,KAAK;AAC9E;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  addMilliseconds
3
- } from "./chunk-FCJO72WG.js";
3
+ } from "./chunk-NYM3EW3M.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-VS2VCQLP.js.map
13
+ //# sourceMappingURL=chunk-TUZHOWSN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/subMilliseconds.ts"],"sourcesContent":["import type { Temporal } from './shared/temporal';\nimport { addMilliseconds } from './addMilliseconds';\n\n/**\n * Subtracts the specified number of milliseconds from a datetime.\n *\n * This is a convenience wrapper around addMilliseconds with negated value.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @param milliseconds - Number of milliseconds to subtract\n * @returns ZonedDateTime with milliseconds subtracted, in the same timezone as input\n *\n * @example\n * ```ts\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00.500Z');\n * const result = subMilliseconds(instant, 250);\n * // 2025-01-20T12:00:00.250Z[UTC] (250 milliseconds earlier)\n * ```\n */\nexport function subMilliseconds(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n milliseconds: number\n): Temporal.ZonedDateTime {\n return addMilliseconds(input, -milliseconds);\n}\n"],"mappings":";;;;;AAmBO,SAAS,gBACd,OACA,cACwB;AACxB,SAAO,gBAAgB,OAAO,CAAC,YAAY;AAC7C;","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-NTMT5XGC.js";
3
+ } from "./chunk-JNAWZ4RN.js";
4
4
  import {
5
5
  Temporal
6
- } from "./chunk-R7ZCA6AQ.js";
6
+ } from "./chunk-BSVOJYJ7.js";
7
7
 
8
8
  // src/shared/nowZoned.ts
9
9
  function nowZoned() {
@@ -13,4 +13,4 @@ function nowZoned() {
13
13
  export {
14
14
  nowZoned
15
15
  };
16
- //# sourceMappingURL=chunk-6RETOV6A.js.map
16
+ //# sourceMappingURL=chunk-TWRJEIBO.js.map
@@ -166,9 +166,11 @@ function formatToken(token, date, locale) {
166
166
  }
167
167
  function formatPart(date, part, style, locale) {
168
168
  const options = {
169
- [part]: style
169
+ [part]: style,
170
+ timeZone: "UTC",
171
+ calendar: date.calendarId === "iso8601" ? void 0 : date.calendarId
170
172
  };
171
- return date.toLocaleString(locale, options);
173
+ return new Intl.DateTimeFormat(locale, options).formatToParts(date.toZonedDateTime("UTC").epochMilliseconds).find((value) => value.type === part)?.value ?? "";
172
174
  }
173
175
  function getOrdinalSuffix(num) {
174
176
  const j = num % 10;
@@ -182,4 +184,4 @@ function getOrdinalSuffix(num) {
182
184
  export {
183
185
  formatPlainDate
184
186
  };
185
- //# sourceMappingURL=chunk-PXF3RMFH.js.map
187
+ //# sourceMappingURL=chunk-TWXUGWYX.js.map
@@ -1 +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
+ {"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":";AA6BO,SAAS,gBACd,MACA,WACA,UAAkC,CAAC,GAC3B;AACR,QAAM,EAAE,SAAS,QAAQ,IAAI;AAE7B,MAAI,SAAS;AACb,MAAI,IAAI;AACR,QAAM,MAAM,UAAU;AAEtB,SAAO,IAAI,KAAK;AACd,UAAM,OAAO,UAAU,CAAC;AACxB,QAAI,CAAC,KAAM;AAGX,QAAI,SAAS,KAAK;AAEhB,UAAI,IAAI,IAAI,OAAO,UAAU,IAAI,CAAC,MAAM,KAAK;AAC3C,kBAAU;AACV,aAAK;AACL;AAAA,MACF;AAEA;AACA,aAAO,IAAI,KAAK;AACd,YAAI,UAAU,CAAC,MAAM,KAAK;AAExB,cAAI,IAAI,IAAI,OAAO,UAAU,IAAI,CAAC,MAAM,KAAK;AAC3C,sBAAU;AACV,iBAAK;AAAA,UACP,OAAO;AAEL;AACA;AAAA,UACF;AAAA,QACF,OAAO;AACL,oBAAU,UAAU,CAAC;AACrB;AAAA,QACF;AAAA,MACF;AACA;AAAA,IACF;AAGA,UAAM,QAAQ,aAAa,WAAW,GAAG,IAAI;AAC7C,QAAI,UAAU,MAAM;AAClB,gBAAU,YAAY,OAAO,MAAM,MAAM;AACzC,WAAK,MAAM;AAAA,IACb,OAAO;AACL,gBAAU;AACV;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,aAAa,WAAmB,OAAe,MAA6B;AAEnF,MAAI,SAAS,OAAO,QAAQ,IAAI,UAAU,UAAU,UAAU,QAAQ,CAAC,MAAM,KAAK;AAChF,WAAO;AAAA,EACT;AACA,MAAI,SAAS,OAAO,QAAQ,IAAI,UAAU,UAAU,UAAU,QAAQ,CAAC,MAAM,KAAK;AAChF,WAAO;AAAA,EACT;AAGA,MAAI,MAAM;AACV,SAAO,MAAM,UAAU,UAAU,UAAU,GAAG,MAAM,MAAM;AACxD;AAAA,EACF;AACA,QAAM,QAAQ,MAAM;AAGpB,QAAM,cAAc;AAAA;AAAA,IAElB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAGA,WAAS,MAAM,KAAK,IAAI,OAAO,CAAC,GAAG,MAAM,GAAG,OAAO;AACjD,UAAM,YAAY,KAAK,OAAO,GAAG;AACjC,QAAI,YAAY,SAAS,SAAS,GAAG;AACnC,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,YAAY,OAAe,MAA0B,QAAwB;AACpF,UAAQ,OAAO;AAAA;AAAA,IAEb,KAAK;AACH,aAAO,WAAW,MAAM,OAAO,UAAU,MAAM;AAAA,IACjD,KAAK;AACH,aAAO,WAAW,MAAM,OAAO,QAAQ,MAAM;AAAA,IAC/C,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,WAAW,MAAM,OAAO,SAAS,MAAM;AAAA;AAAA,IAGhD,KAAK;AACH,aAAO,KAAK,KAAK,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA,IAC7C,KAAK;AACH,aAAO,KAAK,KAAK,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA,IAC7C,KAAK;AACH,cAAQ,KAAK,OAAO,KAAK,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA,IACrD,KAAK;AACH,aAAO,KAAK,KAAK,SAAS;AAAA;AAAA,IAG5B,KAAK;AACH,aAAO,KAAK,KAAK,KAAK,QAAQ,CAAC,EAAE,SAAS;AAAA,IAC5C,KAAK,QAAQ;AACX,YAAM,UAAU,KAAK,KAAK,KAAK,QAAQ,CAAC;AACxC,aAAO,GAAG,OAAO,GAAG,iBAAiB,OAAO,CAAC;AAAA,IAC/C;AAAA,IACA,KAAK;AACH,aAAO,IAAI,KAAK,KAAK,KAAK,QAAQ,CAAC,CAAC;AAAA,IACtC,KAAK;AACH,aAAO,KAAK,KAAK,KAAK,QAAQ,CAAC,EAC5B,SAAS,EACT,SAAS,GAAG,GAAG;AAAA,IACpB,KAAK;AACH,aAAO,KAAK,KAAK,KAAK,QAAQ,CAAC,EAAE,SAAS;AAAA;AAAA,IAG5C,KAAK;AACH,aAAO,WAAW,MAAM,SAAS,UAAU,MAAM;AAAA,IACnD,KAAK;AACH,aAAO,WAAW,MAAM,SAAS,QAAQ,MAAM;AAAA,IACjD,KAAK;AACH,aAAO,WAAW,MAAM,SAAS,SAAS,MAAM;AAAA,IAClD,KAAK;AACH,aAAO,KAAK,MAAM,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA,IAC9C,KAAK;AACH,aAAO,GAAG,KAAK,KAAK,GAAG,iBAAiB,KAAK,KAAK,CAAC;AAAA,IACrD,KAAK;AACH,aAAO,KAAK,MAAM,SAAS;AAAA;AAAA,IAG7B,KAAK;AACH,aAAO,GAAG,KAAK,GAAG,GAAG,iBAAiB,KAAK,GAAG,CAAC;AAAA,IACjD,KAAK;AACH,aAAO,KAAK,IAAI,SAAS,EAAE,SAAS,GAAG,GAAG;AAAA,IAC5C,KAAK;AACH,aAAO,KAAK,IAAI,SAAS;AAAA;AAAA,IAG3B,KAAK;AACH,aAAO,WAAW,MAAM,WAAW,SAAS,MAAM,EAAE,MAAM,GAAG,CAAC;AAAA,IAChE,KAAK;AACH,aAAO,WAAW,MAAM,WAAW,UAAU,MAAM;AAAA,IACrD,KAAK;AACH,aAAO,WAAW,MAAM,WAAW,QAAQ,MAAM;AAAA,IACnD,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,WAAW,MAAM,WAAW,SAAS,MAAM;AAAA,IAEpD;AACE,aAAO;AAAA,EACX;AACF;AAEA,SAAS,WACP,MACA,MACA,OACA,QACQ;AACR,QAAM,UAAsC;AAAA,IAC1C,CAAC,IAAI,GAAG;AAAA,IACR,UAAU;AAAA,IACV,UAAU,KAAK,eAAe,YAAY,SAAY,KAAK;AAAA,EAC7D;AAEA,SAAO,IAAI,KAAK,eAAe,QAAQ,OAAO,EAC3C,cAAc,KAAK,gBAAgB,KAAK,EAAE,iBAAiB,EAC3D,KAAK,WAAS,MAAM,SAAS,IAAI,GAAG,SAAS;AAClD;AAEA,SAAS,iBAAiB,KAAqB;AAC7C,QAAM,IAAI,MAAM;AAChB,QAAM,IAAI,MAAM;AAChB,MAAI,MAAM,KAAK,MAAM,GAAI,QAAO;AAChC,MAAI,MAAM,KAAK,MAAM,GAAI,QAAO;AAChC,MAAI,MAAM,KAAK,MAAM,GAAI,QAAO;AAChC,SAAO;AACT;","names":[]}
@@ -0,0 +1,13 @@
1
+ import {
2
+ compare
3
+ } from "./chunk-OMYVTYHI.js";
4
+
5
+ // src/compareAsc.ts
6
+ function compareAsc(date1, date2) {
7
+ return compare(date1, date2);
8
+ }
9
+
10
+ export {
11
+ compareAsc
12
+ };
13
+ //# sourceMappingURL=chunk-U7VOIXLY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/compareAsc.ts"],"sourcesContent":["import type { Temporal } from './shared/temporal';\nimport { compare, type Comparable } from './shared/compare';\n\n/**\n * Compares two values for ascending order: -1 if the first is earlier,\n * 1 if it is later, 0 if they are equal. Pass it to `Array#sort`.\n *\n * Timeline values compare by exact instant, PlainDates by date, and\n * PlainTimes by wall-clock time. Mixed domains throw a TypeError.\n *\n * @param date1 - First value in a matching date, time, or timeline pair\n * @param date2 - Second value in the same comparison domain\n * @returns -1, 0, or 1\n *\n * @example\n * ```ts\n * const dates = [\n * Temporal.Instant.from('2025-03-01T00:00:00Z'),\n * Temporal.Instant.from('2025-01-01T00:00:00Z'),\n * Temporal.Instant.from('2025-02-01T00:00:00Z'),\n * ];\n *\n * dates.sort(compareAsc);\n * // [2025-01-01, 2025-02-01, 2025-03-01]\n * ```\n */\nexport function compareAsc(date1: Temporal.PlainDate, date2: Temporal.PlainDate): -1 | 0 | 1;\nexport function compareAsc(date1: Temporal.PlainTime, date2: Temporal.PlainTime): -1 | 0 | 1;\nexport function compareAsc(\n date1: Temporal.Instant | Temporal.ZonedDateTime,\n date2: Temporal.Instant | Temporal.ZonedDateTime\n): -1 | 0 | 1;\nexport function compareAsc(date1: Comparable, date2: Comparable): -1 | 0 | 1 {\n return compare(date1, date2);\n}\n"],"mappings":";;;;;AAgCO,SAAS,WAAW,OAAmB,OAA+B;AAC3E,SAAO,QAAQ,OAAO,KAAK;AAC7B;","names":[]}
@@ -0,0 +1,13 @@
1
+ import {
2
+ compare
3
+ } from "./chunk-OMYVTYHI.js";
4
+
5
+ // src/isEqual.ts
6
+ function isEqual(date1, date2) {
7
+ return compare(date1, date2) === 0;
8
+ }
9
+
10
+ export {
11
+ isEqual
12
+ };
13
+ //# sourceMappingURL=chunk-V2NSN6ET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/isEqual.ts"],"sourcesContent":["import type { Temporal } from './shared/temporal';\nimport { compare, type Comparable } from './shared/compare';\n\n/**\n * Returns true if both values are the same point in their domain.\n * Timeline values are equal when they are the same exact instant, even in\n * different timezones. PlainDate pairs compare dates; PlainTime pairs compare\n * wall-clock times.\n *\n * Use `isSameNanosecond` to compare wall-clock fields instead, or\n * `ZonedDateTime#equals` to also require the same timezone and calendar.\n *\n * @param date1 - First value in a matching date, time, or timeline pair\n * @param date2 - Second value in the same comparison domain\n * @returns true if date1 and date2 are equal, false otherwise\n *\n * @example\n * ```ts\n * const ny = Temporal.ZonedDateTime.from('2025-01-20T10:00:00-05:00[America/New_York]');\n * const utc = Temporal.Instant.from('2025-01-20T15:00:00Z');\n *\n * isEqual(ny, utc); // true (same instant)\n * isEqual(Temporal.PlainDate.from('2025-01-20'), Temporal.PlainDate.from('2025-01-21')); // false\n * ```\n */\nexport function isEqual(date1: Temporal.PlainDate, date2: Temporal.PlainDate): boolean;\nexport function isEqual(date1: Temporal.PlainTime, date2: Temporal.PlainTime): boolean;\nexport function isEqual(\n date1: Temporal.Instant | Temporal.ZonedDateTime,\n date2: Temporal.Instant | Temporal.ZonedDateTime\n): boolean;\nexport function isEqual(date1: Comparable, date2: Comparable): boolean {\n return compare(date1, date2) === 0;\n}\n"],"mappings":";;;;;AA+BO,SAAS,QAAQ,OAAmB,OAA4B;AACrE,SAAO,QAAQ,OAAO,KAAK,MAAM;AACnC;","names":[]}
@@ -0,0 +1,19 @@
1
+ import {
2
+ normalizeTemporalInput
3
+ } from "./chunk-JNAWZ4RN.js";
4
+ import {
5
+ isPlainDate
6
+ } from "./chunk-BSVOJYJ7.js";
7
+
8
+ // src/addDays.ts
9
+ function addDays(input, days) {
10
+ if (isPlainDate(input)) {
11
+ return input.add({ days });
12
+ }
13
+ return normalizeTemporalInput(input).add({ days });
14
+ }
15
+
16
+ export {
17
+ addDays
18
+ };
19
+ //# sourceMappingURL=chunk-V36MCE25.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/addDays.ts"],"sourcesContent":["import { type Temporal, isPlainDate } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Adds the specified number of days to a datetime or date.\n *\n * Properly handles DST transitions and calendar edge cases through Temporal API.\n * Instant inputs are converted to UTC. For ZonedDateTime inputs, their timezone is preserved.\n *\n * PlainDate inputs stay in calendar space, preserving their calendar without a timezone.\n *\n * @param input - A Temporal.Instant (UTC), Temporal.ZonedDateTime, or Temporal.PlainDate\n * @param days - Number of days to add (can be negative to subtract)\n * @returns PlainDate for a date input; otherwise ZonedDateTime with days added\n *\n * @example\n * ```ts\n * // From Instant (always UTC)\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00Z');\n * const result = addDays(instant, 5);\n * // 2025-01-25T12:00:00Z[UTC] (5 days later)\n * ```\n *\n * @example\n * ```ts\n * // From ZonedDateTime (preserves timezone)\n * const zoned = Temporal.ZonedDateTime.from('2025-01-20T15:30:00-05:00[America/New_York]');\n * const result = addDays(zoned, 10);\n * // 2025-01-30T15:30:00-05:00[America/New_York]\n * ```\n *\n * @example\n * ```ts\n * // Negative values subtract days\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00Z');\n * const result = addDays(instant, -7);\n * // 2025-01-13T12:00:00Z[UTC] (7 days earlier)\n * ```\n */\nexport function addDays(input: Temporal.PlainDate, days: number): Temporal.PlainDate;\nexport function addDays(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n days: number\n): Temporal.ZonedDateTime;\nexport function addDays(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n days: number\n): Temporal.ZonedDateTime | Temporal.PlainDate {\n if (isPlainDate(input)) {\n return input.add({ days });\n }\n return normalizeTemporalInput(input).add({ days });\n}\n"],"mappings":";;;;;;;;AA4CO,SAAS,QACd,OACA,MAC6C;AAC7C,MAAI,YAAY,KAAK,GAAG;AACtB,WAAO,MAAM,IAAI,EAAE,KAAK,CAAC;AAAA,EAC3B;AACA,SAAO,uBAAuB,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;AACnD;","names":[]}
@@ -0,0 +1,13 @@
1
+ import {
2
+ isDaysFromToday
3
+ } from "./chunk-MWUVGTKC.js";
4
+
5
+ // src/isYesterday.ts
6
+ function isYesterday(date, timezone) {
7
+ return isDaysFromToday(date, timezone, -1);
8
+ }
9
+
10
+ export {
11
+ isYesterday
12
+ };
13
+ //# sourceMappingURL=chunk-VDV24TWQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/isYesterday.ts"],"sourcesContent":["import type { Temporal } from './shared/temporal';\nimport type { Timezone } from './types';\nimport { isDaysFromToday } from './shared/relativeDay';\n\n/**\n * Returns true if the value falls on yesterday's date in the given timezone.\n *\n * Instant and ZonedDateTime inputs are converted to the timezone before taking\n * their date. PlainDate inputs are compared to yesterday's date there directly.\n *\n * @param date - An Instant, ZonedDateTime, or PlainDate\n * @param timezone - The timezone that defines \"today\"\n * @returns true if date is yesterday in timezone, false otherwise\n *\n * @example\n * ```ts\n * const lastLogin = Temporal.Now.instant().subtract({ hours: 24 });\n * isYesterday(lastLogin, 'UTC'); // true\n * ```\n */\nexport function isYesterday(\n date: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n timezone: Timezone\n): boolean {\n return isDaysFromToday(date, timezone, -1);\n}\n"],"mappings":";;;;;AAoBO,SAAS,YACd,MACA,UACS;AACT,SAAO,gBAAgB,MAAM,UAAU,EAAE;AAC3C;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Temporal
3
- } from "./chunk-R7ZCA6AQ.js";
3
+ } from "./chunk-BSVOJYJ7.js";
4
4
 
5
5
  // src/now.ts
6
6
  function now(timezone) {
@@ -10,4 +10,4 @@ function now(timezone) {
10
10
  export {
11
11
  now
12
12
  };
13
- //# sourceMappingURL=chunk-YOSCEJ36.js.map
13
+ //# sourceMappingURL=chunk-VM2YJ5PN.js.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  getEndOfDay
3
- } from "./chunk-AVGNRINZ.js";
3
+ } from "./chunk-NMMMAMKP.js";
4
4
  import {
5
5
  plainDateToZonedDateTime
6
- } from "./chunk-L5AMAEWX.js";
6
+ } from "./chunk-2AID4P2C.js";
7
7
  import {
8
8
  normalizeTemporalInput
9
- } from "./chunk-NTMT5XGC.js";
9
+ } from "./chunk-JNAWZ4RN.js";
10
10
  import {
11
11
  isPlainDate
12
- } from "./chunk-R7ZCA6AQ.js";
12
+ } from "./chunk-BSVOJYJ7.js";
13
13
 
14
14
  // src/endOfWeek.ts
15
15
  function endOfWeek(input, timezone) {
@@ -26,4 +26,4 @@ function endOfWeek(input, timezone) {
26
26
  export {
27
27
  endOfWeek
28
28
  };
29
- //# sourceMappingURL=chunk-MTDZG4HK.js.map
29
+ //# sourceMappingURL=chunk-W27GPK6Q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/endOfWeek.ts"],"sourcesContent":["import { type Temporal, isPlainDate } from './shared/temporal';\nimport type { Timezone } from './types';\nimport { getEndOfDay } from './shared/endOfDay';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\nimport { plainDateToZonedDateTime } from './shared/plainDateToZonedDateTime';\n\n/**\n * Returns the last boundary of the week (Sunday).\n * Uses ISO 8601 week definition: weeks end on Sunday.\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 Sunday 23:59:59.999999999\n *\n * @example\n * ```ts\n * // From Instant (always UTC)\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00Z'); // Monday\n * const end = endOfWeek(instant);\n * // 2025-01-26T23:59:59.999999999Z[UTC] (next Sunday)\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 end = endOfWeek(zoned);\n * // 2025-01-26T23:59:59.999999999-05:00[America/New_York] (next Sunday)\n * ```\n *\n * @example\n * ```ts\n * // From PlainDate (stays a date)\n * const date = Temporal.PlainDate.from('2025-01-22'); // Wednesday\n * const end = endOfWeek(date);\n * // 2025-01-26 (next Sunday)\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 end = endOfWeek(date, 'America/New_York');\n * // 2025-01-26T23:59:59.999999999-05:00[America/New_York] (next Sunday)\n * ```\n */\nexport function endOfWeek(\n input: Temporal.Instant | Temporal.ZonedDateTime\n): Temporal.ZonedDateTime;\nexport function endOfWeek(input: Temporal.PlainDate): Temporal.PlainDate;\nexport function endOfWeek(\n input: Temporal.PlainDate,\n timezone: Timezone\n): Temporal.ZonedDateTime;\nexport function endOfWeek(\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.add({ days: 7 - input.dayOfWeek });\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 add to get to Sunday\n const daysToAdd = 7 - dayOfWeek;\n\n // Go to Sunday, then get end of that day\n const sunday = zonedDateTime.add({ days: daysToAdd });\n\n return getEndOfDay(sunday);\n}\n"],"mappings":";;;;;;;;;;;;;;AAsDO,SAAS,UACd,OACA,UAC6C;AAC7C,MAAI,YAAY,KAAK,KAAK,aAAa,QAAW;AAChD,WAAO,MAAM,IAAI,EAAE,MAAM,IAAI,MAAM,UAAU,CAAC;AAAA,EAChD;AAEA,QAAM,gBACJ,YAAY,KAAK,IACb,yBAAyB,OAAO,QAAS,IACzC,uBAAuB,KAAK;AAGlC,QAAM,YAAY,cAAc;AAGhC,QAAM,YAAY,IAAI;AAGtB,QAAM,SAAS,cAAc,IAAI,EAAE,MAAM,UAAU,CAAC;AAEpD,SAAO,YAAY,MAAM;AAC3B;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-NTMT5XGC.js";
3
+ } from "./chunk-JNAWZ4RN.js";
4
4
 
5
5
  // src/isSameMinute.ts
6
6
  function isSameMinute(date1, date2) {
@@ -12,4 +12,4 @@ function isSameMinute(date1, date2) {
12
12
  export {
13
13
  isSameMinute
14
14
  };
15
- //# sourceMappingURL=chunk-OLLX6YCN.js.map
15
+ //# sourceMappingURL=chunk-W5FFJSCD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/isSameMinute.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 minute.\n * Compares the year, month, day, hour, and minute 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 minute, false otherwise\n *\n * @example\n * ```ts\n * // Same timezone, same minute\n * const start = Temporal.ZonedDateTime.from('2025-01-20T14:30:00Z[UTC]');\n * const end = Temporal.ZonedDateTime.from('2025-01-20T14:30:59.999Z[UTC]');\n *\n * isSameMinute(start, end); // true\n * ```\n *\n * @example\n * ```ts\n * // Same timezone, different minutes\n * const min30 = Temporal.ZonedDateTime.from('2025-01-20T14:30:59Z[UTC]');\n * const min31 = Temporal.ZonedDateTime.from('2025-01-20T14:31:00Z[UTC]');\n *\n * isSameMinute(min30, min31); // false\n * ```\n *\n * @example\n * ```ts\n * // Different timezones - compares their local minutes\n * const ny = Temporal.ZonedDateTime.from('2025-01-20T14:30:45-05:00[America/New_York]');\n * const tokyo = Temporal.ZonedDateTime.from('2025-01-21T04:30:45+09:00[Asia/Tokyo]');\n *\n * // Same instant, different local minutes from each person's perspective\n * isSameMinute(ny, tokyo); // false (14:30:xx in NY, 04:30:xx in Tokyo)\n *\n * // Convert to UTC to compare in UTC timezone\n * isSameMinute(ny.withTimeZone('UTC'), tokyo.withTimeZone('UTC')); // true (both 19:30:xx in UTC)\n *\n * // Convert to NY timezone to compare from NY perspective\n * isSameMinute(ny, tokyo.withTimeZone('America/New_York')); // true (both 14:30:xx in NY)\n * ```\n *\n * @example\n * ```ts\n * // Instant inputs are converted to UTC\n * const instant1 = Temporal.Instant.from('2025-01-20T14:30:15Z');\n * const instant2 = Temporal.Instant.from('2025-01-20T14:30:45Z');\n *\n * isSameMinute(instant1, instant2); // true (both 14:30:xx in UTC)\n * ```\n */\nexport function isSameMinute(\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.year === zoned2.year &&\n zoned1.month === zoned2.month &&\n zoned1.day === zoned2.day &&\n zoned1.hour === zoned2.hour &&\n zoned1.minute === zoned2.minute\n );\n}\n"],"mappings":";;;;;AA0DO,SAAS,aACd,OACA,OACS;AACT,QAAM,SAAS,uBAAuB,KAAK;AAC3C,QAAM,SAAS,uBAAuB,KAAK;AAE3C,SACE,OAAO,SAAS,OAAO,QACvB,OAAO,UAAU,OAAO,SACxB,OAAO,QAAQ,OAAO,OACtB,OAAO,SAAS,OAAO,QACvB,OAAO,WAAW,OAAO;AAE7B;","names":[]}
@@ -0,0 +1,19 @@
1
+ import {
2
+ normalizeTemporalInput
3
+ } from "./chunk-JNAWZ4RN.js";
4
+ import {
5
+ isPlainDate
6
+ } from "./chunk-BSVOJYJ7.js";
7
+
8
+ // src/addMonths.ts
9
+ function addMonths(input, months) {
10
+ if (isPlainDate(input)) {
11
+ return input.add({ months });
12
+ }
13
+ return normalizeTemporalInput(input).add({ months });
14
+ }
15
+
16
+ export {
17
+ addMonths
18
+ };
19
+ //# sourceMappingURL=chunk-WJZHUNF5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/addMonths.ts"],"sourcesContent":["import { type Temporal, isPlainDate } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Adds the specified number of months 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. For ZonedDateTime inputs, their timezone is preserved.\n *\n * PlainDate inputs stay in calendar space, preserving their calendar without a timezone.\n *\n * @param input - A Temporal.Instant (UTC), Temporal.ZonedDateTime, or Temporal.PlainDate\n * @param months - Number of months to add (can be negative to subtract)\n * @returns PlainDate for a date input; otherwise ZonedDateTime with months added\n *\n * @example\n * ```ts\n * // From Instant (always UTC)\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00Z');\n * const result = addMonths(instant, 3);\n * // 2025-04-20T12:00:00Z[UTC] (3 months later)\n * ```\n *\n * @example\n * ```ts\n * // From ZonedDateTime (preserves timezone)\n * const zoned = Temporal.ZonedDateTime.from('2025-01-20T15:30:00-05:00[America/New_York]');\n * const result = addMonths(zoned, 6);\n * // 2025-07-20T15:30:00-04:00[America/New_York]\n * ```\n *\n * @example\n * ```ts\n * // Month-end handling\n * const instant = Temporal.Instant.from('2025-01-31T12:00:00Z');\n * const result = addMonths(instant, 1);\n * // 2025-02-28T12:00:00Z[UTC] (Jan 31 → Feb 28)\n * ```\n */\nexport function addMonths(input: Temporal.PlainDate, months: number): Temporal.PlainDate;\nexport function addMonths(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n months: number\n): Temporal.ZonedDateTime;\nexport function addMonths(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n months: number\n): Temporal.ZonedDateTime | Temporal.PlainDate {\n if (isPlainDate(input)) {\n return input.add({ months });\n }\n return normalizeTemporalInput(input).add({ months });\n}\n"],"mappings":";;;;;;;;AA4CO,SAAS,UACd,OACA,QAC6C;AAC7C,MAAI,YAAY,KAAK,GAAG;AACtB,WAAO,MAAM,IAAI,EAAE,OAAO,CAAC;AAAA,EAC7B;AACA,SAAO,uBAAuB,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC;AACrD;","names":[]}
@@ -2,7 +2,7 @@ import {
2
2
  Temporal,
3
3
  isInstant,
4
4
  isZonedDateTime
5
- } from "./chunk-R7ZCA6AQ.js";
5
+ } from "./chunk-BSVOJYJ7.js";
6
6
 
7
7
  // src/simpleFormat.ts
8
8
  function simpleFormat(input, options) {
@@ -59,4 +59,4 @@ function formatCompactTime(zdt) {
59
59
  export {
60
60
  simpleFormat
61
61
  };
62
- //# sourceMappingURL=chunk-XWBOD6MD.js.map
62
+ //# sourceMappingURL=chunk-WTLMIOKZ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-NTMT5XGC.js";
3
+ } from "./chunk-JNAWZ4RN.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-LAITZAIG.js.map
14
+ //# sourceMappingURL=chunk-WY5I452J.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/addSeconds.ts"],"sourcesContent":["import type { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Adds the specified number of seconds to a datetime.\n *\n * Instant inputs are converted to UTC. For ZonedDateTime inputs, their timezone is preserved.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @param seconds - Number of seconds to add (can be negative to subtract)\n * @returns ZonedDateTime with seconds added, in the same timezone as input\n *\n * @example\n * ```ts\n * // From Instant (always UTC)\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00Z');\n * const result = addSeconds(instant, 45);\n * // 2025-01-20T12:00:45Z[UTC] (45 seconds later)\n * ```\n *\n * @example\n * ```ts\n * // From ZonedDateTime (preserves timezone)\n * const zoned = Temporal.ZonedDateTime.from('2025-01-20T15:30:00-05:00[America/New_York]');\n * const result = addSeconds(zoned, 3600);\n * // 2025-01-20T16:30:00-05:00[America/New_York]\n * ```\n *\n * @example\n * ```ts\n * // Negative values subtract seconds\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00Z');\n * const result = addSeconds(instant, -30);\n * // 2025-01-20T11:59:30Z[UTC] (30 seconds earlier)\n * ```\n */\nexport function addSeconds(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n seconds: number\n): Temporal.ZonedDateTime {\n const zonedDateTime = normalizeTemporalInput(input);\n return zonedDateTime.add({ seconds });\n}\n"],"mappings":";;;;;AAoCO,SAAS,WACd,OACA,SACwB;AACxB,QAAM,gBAAgB,uBAAuB,KAAK;AAClD,SAAO,cAAc,IAAI,EAAE,QAAQ,CAAC;AACtC;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  addMicroseconds
3
- } from "./chunk-IAXVREU5.js";
3
+ } from "./chunk-PU6PU2JM.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-URC6AG2N.js.map
13
+ //# sourceMappingURL=chunk-XIVWFVVX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/subMicroseconds.ts"],"sourcesContent":["import type { Temporal } from './shared/temporal';\nimport { addMicroseconds } from './addMicroseconds';\n\n/**\n * Subtracts the specified number of microseconds from a datetime.\n *\n * This is a convenience wrapper around addMicroseconds with negated value.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @param microseconds - Number of microseconds to subtract\n * @returns ZonedDateTime with microseconds subtracted, in the same timezone as input\n *\n * @example\n * ```ts\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00.001Z');\n * const result = subMicroseconds(instant, 500);\n * // 2025-01-20T12:00:00.000500Z[UTC] (500 microseconds earlier)\n * ```\n */\nexport function subMicroseconds(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n microseconds: number\n): Temporal.ZonedDateTime {\n return addMicroseconds(input, -microseconds);\n}\n"],"mappings":";;;;;AAmBO,SAAS,gBACd,OACA,cACwB;AACxB,SAAO,gBAAgB,OAAO,CAAC,YAAY;AAC7C;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-NTMT5XGC.js";
3
+ } from "./chunk-JNAWZ4RN.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-RKEZOXD3.js.map
25
+ //# sourceMappingURL=chunk-XR7Q6IP6.js.map
@@ -0,0 +1 @@
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,6 +1,6 @@
1
1
  import {
2
2
  normalizeTemporalInput
3
- } from "./chunk-NTMT5XGC.js";
3
+ } from "./chunk-JNAWZ4RN.js";
4
4
 
5
5
  // src/addHours.ts
6
6
  function addHours(input, hours) {
@@ -11,4 +11,4 @@ function addHours(input, hours) {
11
11
  export {
12
12
  addHours
13
13
  };
14
- //# sourceMappingURL=chunk-DHFBKOFZ.js.map
14
+ //# sourceMappingURL=chunk-XTS6LZBP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/addHours.ts"],"sourcesContent":["import type { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Adds the specified number of hours to a datetime.\n *\n * Properly handles DST transitions through Temporal API.\n * Instant inputs are converted to UTC. For ZonedDateTime inputs, their timezone is preserved.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @param hours - Number of hours to add (can be negative to subtract)\n * @returns ZonedDateTime with hours added, in the same timezone as input\n *\n * @example\n * ```ts\n * // From Instant (always UTC)\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00Z');\n * const result = addHours(instant, 3);\n * // 2025-01-20T15:00:00Z[UTC] (3 hours later)\n * ```\n *\n * @example\n * ```ts\n * // From ZonedDateTime (preserves timezone)\n * const zoned = Temporal.ZonedDateTime.from('2025-01-20T15:30:00-05:00[America/New_York]');\n * const result = addHours(zoned, 24);\n * // 2025-01-21T15:30:00-05:00[America/New_York]\n * ```\n *\n * @example\n * ```ts\n * // Negative values subtract hours\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00Z');\n * const result = addHours(instant, -5);\n * // 2025-01-20T07:00:00Z[UTC] (5 hours earlier)\n * ```\n */\nexport function addHours(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n hours: number\n): Temporal.ZonedDateTime {\n const zonedDateTime = normalizeTemporalInput(input);\n return zonedDateTime.add({ hours });\n}\n"],"mappings":";;;;;AAqCO,SAAS,SACd,OACA,OACwB;AACxB,QAAM,gBAAgB,uBAAuB,KAAK;AAClD,SAAO,cAAc,IAAI,EAAE,MAAM,CAAC;AACpC;","names":[]}
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  isBefore
3
- } from "./chunk-EVEMK2K2.js";
3
+ } from "./chunk-BMX7CIRD.js";
4
4
  import {
5
5
  nowZoned
6
- } from "./chunk-6RETOV6A.js";
6
+ } from "./chunk-TWRJEIBO.js";
7
7
  import {
8
8
  normalizeTemporalInput
9
- } from "./chunk-NTMT5XGC.js";
9
+ } from "./chunk-JNAWZ4RN.js";
10
10
 
11
11
  // src/isPast.ts
12
12
  function isPast(date) {
@@ -17,4 +17,4 @@ function isPast(date) {
17
17
  export {
18
18
  isPast
19
19
  };
20
- //# sourceMappingURL=chunk-A42NID5P.js.map
20
+ //# sourceMappingURL=chunk-XXB6HJ2R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/isPast.ts"],"sourcesContent":["import type { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\nimport { isBefore } from './shared/isBefore';\nimport { nowZoned } from './shared/nowZoned';\n\n/**\n * Returns true if the given datetime is in the past.\n * Compares by the underlying instant (epoch time) against the current time.\n *\n * @param date - Datetime to check (Instant or ZonedDateTime)\n * @returns true if date is before the current instant, false otherwise\n *\n * @example\n * ```ts\n * const yesterday = Temporal.Now.zonedDateTimeISO().subtract({ days: 1 });\n * const tomorrow = Temporal.Now.zonedDateTimeISO().add({ days: 1 });\n *\n * isPast(yesterday); // true\n * isPast(tomorrow); // false\n * ```\n *\n * @example\n * ```ts\n * // Works with Instant too\n * const pastInstant = Temporal.Now.instant().subtract({ hours: 1 });\n *\n * isPast(pastInstant); // true\n * ```\n *\n * @example\n * ```ts\n * // Works with any timezone\n * const pastInTokyo = Temporal.ZonedDateTime.from('1970-01-01T00:00:00+09:00[Asia/Tokyo]');\n *\n * isPast(pastInTokyo); // true\n * ```\n */\nexport function isPast(\n date: Temporal.Instant | Temporal.ZonedDateTime\n): boolean {\n const zoned = normalizeTemporalInput(date);\n\n return isBefore(zoned, nowZoned());\n}\n"],"mappings":";;;;;;;;;;;AAqCO,SAAS,OACd,MACS;AACT,QAAM,QAAQ,uBAAuB,IAAI;AAEzC,SAAO,SAAS,OAAO,SAAS,CAAC;AACnC;","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  addQuarters
3
- } from "./chunk-UQ2F3I2S.js";
3
+ } from "./chunk-YR26F7OA.js";
4
4
  import {
5
5
  isPlainDate
6
- } from "./chunk-R7ZCA6AQ.js";
6
+ } from "./chunk-BSVOJYJ7.js";
7
7
 
8
8
  // src/subQuarters.ts
9
9
  function subQuarters(input, quarters) {
@@ -13,4 +13,4 @@ function subQuarters(input, quarters) {
13
13
  export {
14
14
  subQuarters
15
15
  };
16
- //# sourceMappingURL=chunk-5Y5JH32Z.js.map
16
+ //# sourceMappingURL=chunk-XZS6J4LM.js.map
@@ -0,0 +1 @@
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:00Z[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":[]}
@@ -0,0 +1,65 @@
1
+ import {
2
+ isPlainDateAfter
3
+ } from "./chunk-ADPVFELS.js";
4
+ import {
5
+ quarterStartMonth
6
+ } from "./chunk-XS2HUADA.js";
7
+ import {
8
+ normalizeTemporalInput
9
+ } from "./chunk-JNAWZ4RN.js";
10
+ import {
11
+ Temporal,
12
+ isPlainDate
13
+ } from "./chunk-BSVOJYJ7.js";
14
+
15
+ // src/eachQuarterOfInterval.ts
16
+ function eachQuarterOfInterval(interval) {
17
+ if (isPlainDate(interval.start) || isPlainDate(interval.end)) {
18
+ if (!isPlainDate(interval.start) || !isPlainDate(interval.end)) {
19
+ throw new TypeError("PlainDate intervals require two PlainDate endpoints");
20
+ }
21
+ if (isPlainDateAfter(interval.start, interval.end)) return [];
22
+ return eachQuarterStart(interval.start, interval.end.withCalendar(interval.start.calendarId), (ym) => ym.toPlainDate({ day: 1 }));
23
+ }
24
+ const startZoned = normalizeTemporalInput(
25
+ interval.start
26
+ );
27
+ const endZoned = normalizeTemporalInput(
28
+ interval.end
29
+ );
30
+ if (startZoned.epochNanoseconds > endZoned.epochNanoseconds) return [];
31
+ const timezone = startZoned.timeZoneId;
32
+ return eachQuarterStart(
33
+ startZoned,
34
+ endZoned.withTimeZone(timezone).withCalendar(startZoned.calendarId),
35
+ (ym) => ym.toPlainDate({ day: 1 }).toZonedDateTime({
36
+ timeZone: timezone,
37
+ plainTime: new Temporal.PlainTime()
38
+ })
39
+ );
40
+ }
41
+ function eachQuarterStart(start, end, make) {
42
+ const startYearMonth = Temporal.PlainYearMonth.from({
43
+ year: start.year,
44
+ month: quarterStartMonth(start.month),
45
+ calendar: start.calendarId
46
+ });
47
+ const endYearMonth = Temporal.PlainYearMonth.from({
48
+ year: end.year,
49
+ month: quarterStartMonth(end.month),
50
+ calendar: start.calendarId
51
+ });
52
+ const out = [];
53
+ let current = startYearMonth;
54
+ while (Temporal.PlainYearMonth.compare(current, endYearMonth) <= 0) {
55
+ out.push(make(current));
56
+ const next = current.add({ months: 3 });
57
+ current = next.with({ month: quarterStartMonth(next.month) });
58
+ }
59
+ return out;
60
+ }
61
+
62
+ export {
63
+ eachQuarterOfInterval
64
+ };
65
+ //# sourceMappingURL=chunk-YHQSI4WC.js.map