@gobrand/tiempo 3.0.0 → 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 +8 -6
  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 +7 -4
  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,32 +0,0 @@
1
- import {
2
- normalizeTemporalInput
3
- } from "./chunk-NTMT5XGC.js";
4
- import {
5
- Temporal
6
- } from "./chunk-R7ZCA6AQ.js";
7
-
8
- // src/eachYearOfInterval.ts
9
- function eachYearOfInterval(interval) {
10
- const startZoned = normalizeTemporalInput(interval.start);
11
- const endZoned = normalizeTemporalInput(interval.end);
12
- const timezone = startZoned.timeZoneId;
13
- const startYear = startZoned.year;
14
- const endInTimezone = endZoned.withTimeZone(timezone);
15
- const endYear = endInTimezone.year;
16
- const years = [];
17
- for (let year = startYear; year <= endYear; year++) {
18
- const firstOfYear = Temporal.PlainDate.from({ year, month: 1, day: 1 });
19
- years.push(
20
- firstOfYear.toZonedDateTime({
21
- timeZone: timezone,
22
- plainTime: new Temporal.PlainTime()
23
- })
24
- );
25
- }
26
- return years;
27
- }
28
-
29
- export {
30
- eachYearOfInterval
31
- };
32
- //# sourceMappingURL=chunk-DCFRBZBY.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/eachYearOfInterval.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns an array of ZonedDateTime objects for each year within the interval.\n * Each element represents the first moment of the year (January 1st at midnight).\n * The interval is inclusive of both start and end years.\n *\n * For Instant inputs, UTC is used as the timezone.\n * For ZonedDateTime inputs, the timezone of the start date is preserved.\n *\n * @param interval - The interval with start and end datetimes\n * @returns Array of ZonedDateTime at start of each year in the interval\n *\n * @example\n * ```ts\n * const start = Temporal.ZonedDateTime.from('2022-06-15T10:00:00Z[UTC]');\n * const end = Temporal.ZonedDateTime.from('2025-03-20T14:00:00Z[UTC]');\n *\n * const years = eachYearOfInterval({ start, end });\n * // [\n * // 2022-01-01T00:00:00Z[UTC],\n * // 2023-01-01T00:00:00Z[UTC],\n * // 2024-01-01T00:00:00Z[UTC],\n * // 2025-01-01T00:00:00Z[UTC]\n * // ]\n * ```\n *\n * @example\n * ```ts\n * // Single year\n * const start = Temporal.ZonedDateTime.from('2025-01-15T00:00:00Z[UTC]');\n * const end = Temporal.ZonedDateTime.from('2025-12-31T23:59:59Z[UTC]');\n *\n * const years = eachYearOfInterval({ start, end });\n * // [2025-01-01T00:00:00Z[UTC]]\n * ```\n *\n * @example\n * ```ts\n * // With timezone\n * const start = Temporal.ZonedDateTime.from('2024-01-01T00:00:00-05:00[America/New_York]');\n * const end = Temporal.ZonedDateTime.from('2026-06-15T00:00:00-04:00[America/New_York]');\n *\n * const years = eachYearOfInterval({ start, end });\n * // [\n * // 2024-01-01T00:00:00-05:00[America/New_York],\n * // 2025-01-01T00:00:00-05:00[America/New_York],\n * // 2026-01-01T00:00:00-05:00[America/New_York]\n * // ]\n * ```\n */\nexport function eachYearOfInterval(interval: {\n start: Temporal.Instant | Temporal.ZonedDateTime;\n end: Temporal.Instant | Temporal.ZonedDateTime;\n}): Temporal.ZonedDateTime[] {\n const startZoned = normalizeTemporalInput(interval.start);\n const endZoned = normalizeTemporalInput(interval.end);\n\n const timezone = startZoned.timeZoneId;\n const startYear = startZoned.year;\n\n // Get end year in the same timezone\n const endInTimezone = endZoned.withTimeZone(timezone);\n const endYear = endInTimezone.year;\n\n const years: Temporal.ZonedDateTime[] = [];\n\n for (let year = startYear; year <= endYear; year++) {\n const firstOfYear = Temporal.PlainDate.from({ year, month: 1, day: 1 });\n years.push(\n firstOfYear.toZonedDateTime({\n timeZone: timezone,\n plainTime: new Temporal.PlainTime(),\n })\n );\n }\n\n return years;\n}\n"],"mappings":";;;;;;;;AAoDO,SAAS,mBAAmB,UAGN;AAC3B,QAAM,aAAa,uBAAuB,SAAS,KAAK;AACxD,QAAM,WAAW,uBAAuB,SAAS,GAAG;AAEpD,QAAM,WAAW,WAAW;AAC5B,QAAM,YAAY,WAAW;AAG7B,QAAM,gBAAgB,SAAS,aAAa,QAAQ;AACpD,QAAM,UAAU,cAAc;AAE9B,QAAM,QAAkC,CAAC;AAEzC,WAAS,OAAO,WAAW,QAAQ,SAAS,QAAQ;AAClD,UAAM,cAAc,SAAS,UAAU,KAAK,EAAE,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;AACtE,UAAM;AAAA,MACJ,YAAY,gBAAgB;AAAA,QAC1B,UAAU;AAAA,QACV,WAAW,IAAI,SAAS,UAAU;AAAA,MACpC,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/addHours.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\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 +0,0 @@
1
- {"version":3,"sources":["../src/intlFormatDistance.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { differenceInDays } from './differenceInDays.js';\nimport { differenceInHours } from './differenceInHours.js';\nimport { differenceInMinutes } from './differenceInMinutes.js';\nimport { differenceInMonths } from './differenceInMonths.js';\nimport { differenceInSeconds } from './differenceInSeconds.js';\nimport { differenceInWeeks } from './differenceInWeeks.js';\nimport { differenceInYears } from './differenceInYears.js';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput.js';\n\nexport interface IntlFormatDistanceOptions {\n /**\n * The unit to force formatting in. If not specified, the unit will be automatically selected.\n */\n unit?: Intl.RelativeTimeFormatUnit;\n /**\n * The locale to use for formatting. Defaults to the system locale.\n */\n locale?: string | string[];\n /**\n * The locale matching algorithm to use.\n */\n localeMatcher?: 'best fit' | 'lookup';\n /**\n * Whether to use numeric values always, or use special strings like \"yesterday\", \"tomorrow\", etc.\n * Defaults to 'auto'.\n */\n numeric?: 'always' | 'auto';\n /**\n * The formatting style to use.\n */\n style?: 'long' | 'short' | 'narrow';\n}\n\n/**\n * Formats the distance between two dates as a human-readable, internationalized string.\n *\n * The function automatically picks the most appropriate unit based on the distance between dates.\n * For example, if the distance is a few hours, it returns \"in X hours\". If the distance is a few\n * months, it returns \"in X months\".\n *\n * You can force a specific unit using the `options.unit` parameter.\n *\n * @param laterDate - The later date to compare\n * @param earlierDate - The earlier date to compare with\n * @param options - Formatting options\n * @returns The formatted distance string\n *\n * @example\n * ```typescript\n * const later = Temporal.Instant.from('2024-01-01T12:00:00Z');\n * const earlier = Temporal.Instant.from('2024-01-01T11:00:00Z');\n *\n * intlFormatDistance(later, earlier);\n * // => 'in 1 hour'\n *\n * intlFormatDistance(earlier, later);\n * // => '1 hour ago'\n * ```\n *\n * @example\n * ```typescript\n * // Force a specific unit\n * const later = Temporal.Instant.from('2025-01-01T00:00:00Z');\n * const earlier = Temporal.Instant.from('2024-01-01T00:00:00Z');\n *\n * intlFormatDistance(later, earlier, { unit: 'quarter' });\n * // => 'in 4 quarters'\n * ```\n *\n * @example\n * ```typescript\n * // Use a different locale\n * const later = Temporal.Instant.from('2024-01-01T12:00:00Z');\n * const earlier = Temporal.Instant.from('2024-01-01T11:00:00Z');\n *\n * intlFormatDistance(later, earlier, { locale: 'es' });\n * // => 'dentro de 1 hora'\n * ```\n *\n * @example\n * ```typescript\n * // Use numeric: 'always' to avoid special strings\n * const later = Temporal.Instant.from('2024-01-02T00:00:00Z');\n * const earlier = Temporal.Instant.from('2024-01-01T00:00:00Z');\n *\n * intlFormatDistance(later, earlier, { numeric: 'auto' });\n * // => 'tomorrow'\n *\n * intlFormatDistance(later, earlier, { numeric: 'always' });\n * // => 'in 1 day'\n * ```\n */\nexport function intlFormatDistance(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime,\n options?: IntlFormatDistanceOptions\n): string {\n const zoned1 = normalizeTemporalInput(laterDate);\n const zoned2 = normalizeTemporalInput(earlierDate);\n\n // Determine unit if not specified\n let unit = options?.unit;\n if (!unit) {\n const absSeconds = Math.abs(differenceInSeconds(zoned1, zoned2));\n const absMinutes = Math.abs(differenceInMinutes(zoned1, zoned2));\n const absHours = Math.abs(differenceInHours(zoned1, zoned2));\n // calendar units were fractional pre-2.x; sub-day units stay truncated so Math.round below is a no-op\n const absDays = Math.abs(differenceInDays(zoned1, zoned2, { fractional: true }));\n const absWeeks = Math.abs(differenceInWeeks(zoned1, zoned2, { fractional: true }));\n const absMonths = Math.abs(differenceInMonths(zoned1, zoned2, { fractional: true }));\n\n if (absSeconds < 60) {\n unit = 'second';\n } else if (absMinutes < 60) {\n unit = 'minute';\n } else if (absHours < 24) {\n unit = 'hour';\n } else if (absDays < 7) {\n unit = 'day';\n } else if (absWeeks < 4) {\n unit = 'week';\n } else if (absMonths < 12) {\n unit = 'month';\n } else {\n unit = 'year';\n }\n }\n\n // Calculate value for the selected unit\n let value: number;\n switch (unit) {\n case 'second':\n value = Math.round(differenceInSeconds(zoned1, zoned2));\n break;\n case 'minute':\n value = Math.round(differenceInMinutes(zoned1, zoned2));\n break;\n case 'hour':\n value = Math.round(differenceInHours(zoned1, zoned2));\n break;\n // calendar units were fractional pre-2.x; sub-day units stay truncated so Math.round is a no-op\n case 'day':\n value = Math.round(differenceInDays(zoned1, zoned2, { fractional: true }));\n break;\n case 'week':\n value = Math.round(differenceInWeeks(zoned1, zoned2, { fractional: true }));\n break;\n case 'month':\n value = Math.round(differenceInMonths(zoned1, zoned2, { fractional: true }));\n break;\n case 'quarter':\n value = Math.round(differenceInMonths(zoned1, zoned2, { fractional: true }) / 3);\n break;\n case 'year':\n value = Math.round(differenceInYears(zoned1, zoned2, { fractional: true }));\n break;\n default:\n // For any other unit type, try to use it directly\n value = Math.round(differenceInSeconds(zoned1, zoned2));\n }\n\n // Format using Intl.RelativeTimeFormat\n const formatter = new Intl.RelativeTimeFormat(options?.locale, {\n localeMatcher: options?.localeMatcher,\n numeric: options?.numeric ?? 'auto',\n style: options?.style,\n });\n\n return formatter.format(value, unit);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA6FO,SAAS,mBACd,WACA,aACA,SACQ;AACR,QAAM,SAAS,uBAAuB,SAAS;AAC/C,QAAM,SAAS,uBAAuB,WAAW;AAGjD,MAAI,OAAO,SAAS;AACpB,MAAI,CAAC,MAAM;AACT,UAAM,aAAa,KAAK,IAAI,oBAAoB,QAAQ,MAAM,CAAC;AAC/D,UAAM,aAAa,KAAK,IAAI,oBAAoB,QAAQ,MAAM,CAAC;AAC/D,UAAM,WAAW,KAAK,IAAI,kBAAkB,QAAQ,MAAM,CAAC;AAE3D,UAAM,UAAU,KAAK,IAAI,iBAAiB,QAAQ,QAAQ,EAAE,YAAY,KAAK,CAAC,CAAC;AAC/E,UAAM,WAAW,KAAK,IAAI,kBAAkB,QAAQ,QAAQ,EAAE,YAAY,KAAK,CAAC,CAAC;AACjF,UAAM,YAAY,KAAK,IAAI,mBAAmB,QAAQ,QAAQ,EAAE,YAAY,KAAK,CAAC,CAAC;AAEnF,QAAI,aAAa,IAAI;AACnB,aAAO;AAAA,IACT,WAAW,aAAa,IAAI;AAC1B,aAAO;AAAA,IACT,WAAW,WAAW,IAAI;AACxB,aAAO;AAAA,IACT,WAAW,UAAU,GAAG;AACtB,aAAO;AAAA,IACT,WAAW,WAAW,GAAG;AACvB,aAAO;AAAA,IACT,WAAW,YAAY,IAAI;AACzB,aAAO;AAAA,IACT,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAGA,MAAI;AACJ,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,cAAQ,KAAK,MAAM,oBAAoB,QAAQ,MAAM,CAAC;AACtD;AAAA,IACF,KAAK;AACH,cAAQ,KAAK,MAAM,oBAAoB,QAAQ,MAAM,CAAC;AACtD;AAAA,IACF,KAAK;AACH,cAAQ,KAAK,MAAM,kBAAkB,QAAQ,MAAM,CAAC;AACpD;AAAA;AAAA,IAEF,KAAK;AACH,cAAQ,KAAK,MAAM,iBAAiB,QAAQ,QAAQ,EAAE,YAAY,KAAK,CAAC,CAAC;AACzE;AAAA,IACF,KAAK;AACH,cAAQ,KAAK,MAAM,kBAAkB,QAAQ,QAAQ,EAAE,YAAY,KAAK,CAAC,CAAC;AAC1E;AAAA,IACF,KAAK;AACH,cAAQ,KAAK,MAAM,mBAAmB,QAAQ,QAAQ,EAAE,YAAY,KAAK,CAAC,CAAC;AAC3E;AAAA,IACF,KAAK;AACH,cAAQ,KAAK,MAAM,mBAAmB,QAAQ,QAAQ,EAAE,YAAY,KAAK,CAAC,IAAI,CAAC;AAC/E;AAAA,IACF,KAAK;AACH,cAAQ,KAAK,MAAM,kBAAkB,QAAQ,QAAQ,EAAE,YAAY,KAAK,CAAC,CAAC;AAC1E;AAAA,IACF;AAEE,cAAQ,KAAK,MAAM,oBAAoB,QAAQ,MAAM,CAAC;AAAA,EAC1D;AAGA,QAAM,YAAY,IAAI,KAAK,mBAAmB,SAAS,QAAQ;AAAA,IAC7D,eAAe,SAAS;AAAA,IACxB,SAAS,SAAS,WAAW;AAAA,IAC7B,OAAO,SAAS;AAAA,EAClB,CAAC;AAED,SAAO,UAAU,OAAO,OAAO,IAAI;AACrC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/differenceInSeconds.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\nimport { differenceInMilliseconds } from './shared/differenceInMilliseconds';\nimport type { DifferenceOptions } from './shared/differenceOptions';\n\n/**\n * Returns the number of seconds between two datetimes.\n * The result is positive if laterDate is after earlierDate, negative if before.\n *\n * @param laterDate - The later datetime (Instant or ZonedDateTime)\n * @param earlierDate - The earlier datetime (Instant or ZonedDateTime)\n * @param options - Optional { fractional } to return the precise value\n * @returns The number of seconds between the dates, truncated toward zero (pass { fractional: true } for the precise value)\n *\n * @example\n * ```ts\n * const later = Temporal.Instant.from('2025-01-20T12:30:25Z');\n * const earlier = Temporal.Instant.from('2025-01-20T12:30:20Z');\n *\n * differenceInSeconds(later, earlier); // 5\n * ```\n *\n * @example\n * ```ts\n * // Works with ZonedDateTime\n * const later = Temporal.ZonedDateTime.from('2025-01-20T15:01:00-05:00[America/New_York]');\n * const earlier = Temporal.ZonedDateTime.from('2025-01-20T15:00:00-05:00[America/New_York]');\n *\n * differenceInSeconds(later, earlier); // 60\n * ```\n *\n * @example\n * ```ts\n * // Handles different timezones - compares by instant\n * const tokyo = Temporal.ZonedDateTime.from('2025-01-21T00:00:00+09:00[Asia/Tokyo]');\n * const ny = Temporal.ZonedDateTime.from('2025-01-20T10:00:00-05:00[America/New_York]');\n *\n * differenceInSeconds(tokyo, ny); // 0 (same instant)\n * ```\n */\nexport function differenceInSeconds(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime,\n options?: DifferenceOptions\n): number {\n const zoned1 = normalizeTemporalInput(laterDate);\n const zoned2 = normalizeTemporalInput(earlierDate);\n\n const precise = differenceInMilliseconds(zoned1, zoned2) / 1000;\n return options?.fractional ? precise : Math.trunc(precise);\n}\n"],"mappings":";;;;;;;;AAwCO,SAAS,oBACd,WACA,aACA,SACQ;AACR,QAAM,SAAS,uBAAuB,SAAS;AAC/C,QAAM,SAAS,uBAAuB,WAAW;AAEjD,QAAM,UAAU,yBAAyB,QAAQ,MAAM,IAAI;AAC3D,SAAO,SAAS,aAAa,UAAU,KAAK,MAAM,OAAO;AAC3D;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/differenceInMinutes.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\nimport { differenceInMilliseconds } from './shared/differenceInMilliseconds';\nimport type { DifferenceOptions } from './shared/differenceOptions';\n\n/**\n * Returns the number of minutes between two datetimes.\n * The result is positive if laterDate is after earlierDate, negative if before.\n *\n * @param laterDate - The later datetime (Instant or ZonedDateTime)\n * @param earlierDate - The earlier datetime (Instant or ZonedDateTime)\n * @param options - Optional { fractional } to return the precise value\n * @returns The number of minutes between the dates, truncated toward zero (pass { fractional: true } for the precise value)\n *\n * @example\n * ```ts\n * const later = Temporal.Instant.from('2025-01-20T12:45:00Z');\n * const earlier = Temporal.Instant.from('2025-01-20T12:30:00Z');\n *\n * differenceInMinutes(later, earlier); // 15\n * ```\n *\n * @example\n * ```ts\n * // Works with ZonedDateTime\n * const later = Temporal.ZonedDateTime.from('2025-01-20T16:00:00-05:00[America/New_York]');\n * const earlier = Temporal.ZonedDateTime.from('2025-01-20T15:00:00-05:00[America/New_York]');\n *\n * differenceInMinutes(later, earlier); // 60\n * ```\n *\n * @example\n * ```ts\n * // Handles different timezones - compares by instant\n * const tokyo = Temporal.ZonedDateTime.from('2025-01-21T00:00:00+09:00[Asia/Tokyo]');\n * const ny = Temporal.ZonedDateTime.from('2025-01-20T10:00:00-05:00[America/New_York]');\n *\n * differenceInMinutes(tokyo, ny); // 0 (same instant)\n * ```\n */\nexport function differenceInMinutes(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime,\n options?: DifferenceOptions\n): number {\n const zoned1 = normalizeTemporalInput(laterDate);\n const zoned2 = normalizeTemporalInput(earlierDate);\n\n const precise = differenceInMilliseconds(zoned1, zoned2) / 60000;\n return options?.fractional ? precise : Math.trunc(precise);\n}\n"],"mappings":";;;;;;;;AAwCO,SAAS,oBACd,WACA,aACA,SACQ;AACR,QAAM,SAAS,uBAAuB,SAAS;AAC/C,QAAM,SAAS,uBAAuB,WAAW;AAEjD,QAAM,UAAU,yBAAyB,QAAQ,MAAM,IAAI;AAC3D,SAAO,SAAS,aAAa,UAAU,KAAK,MAAM,OAAO;AAC3D;","names":[]}
@@ -1,17 +0,0 @@
1
- import {
2
- normalizeTemporalInput
3
- } from "./chunk-NTMT5XGC.js";
4
-
5
- // src/differenceInDays.ts
6
- function differenceInDays(laterDate, earlierDate, options) {
7
- const zoned1 = normalizeTemporalInput(laterDate);
8
- const zoned2 = normalizeTemporalInput(earlierDate);
9
- const duration = zoned2.until(zoned1, { largestUnit: "hours" });
10
- const precise = duration.total({ unit: "days", relativeTo: zoned2 });
11
- return options?.fractional ? precise : Math.trunc(precise);
12
- }
13
-
14
- export {
15
- differenceInDays
16
- };
17
- //# sourceMappingURL=chunk-EU3SYJHM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/differenceInDays.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\nimport type { DifferenceOptions } from './shared/differenceOptions';\n\n/**\n * Returns the number of days between two datetimes.\n * The result is positive if laterDate is after earlierDate, negative if before.\n *\n * This function uses calendar-aware calculation, which means it properly handles\n * DST transitions where days can be 23, 24, or 25 hours long.\n *\n * Instant inputs are converted to UTC for calendar calculations.\n * For ZonedDateTime inputs, their timezone is preserved.\n *\n * @param laterDate - The later datetime (Instant or ZonedDateTime)\n * @param earlierDate - The earlier datetime (Instant or ZonedDateTime)\n * @param options - Optional { fractional } to return the precise value\n * @returns The number of days between the dates, truncated toward zero (pass { fractional: true } for the precise value)\n *\n * @example\n * ```ts\n * const later = Temporal.Instant.from('2025-01-25T12:00:00Z');\n * const earlier = Temporal.Instant.from('2025-01-20T12:00:00Z');\n *\n * differenceInDays(later, earlier); // 5\n * ```\n *\n * @example\n * ```ts\n * // Works with ZonedDateTime\n * const later = Temporal.ZonedDateTime.from('2025-01-25T15:00:00-05:00[America/New_York]');\n * const earlier = Temporal.ZonedDateTime.from('2025-01-20T15:00:00-05:00[America/New_York]');\n *\n * differenceInDays(later, earlier); // 5\n * ```\n *\n * @example\n * ```ts\n * // Handles DST transitions correctly\n * const afterDst = Temporal.ZonedDateTime.from('2025-03-10T12:00:00-04:00[America/New_York]');\n * const beforeDst = Temporal.ZonedDateTime.from('2025-03-08T12:00:00-05:00[America/New_York]');\n *\n * differenceInDays(afterDst, beforeDst); // 2 (calendar days, not 48 hours)\n * ```\n */\nexport function differenceInDays(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime,\n options?: DifferenceOptions\n): number {\n const zoned1 = normalizeTemporalInput(laterDate);\n const zoned2 = normalizeTemporalInput(earlierDate);\n\n const duration = zoned2.until(zoned1, { largestUnit: 'hours' });\n const precise = duration.total({ unit: 'days', relativeTo: zoned2 });\n return options?.fractional ? precise : Math.trunc(precise);\n}\n"],"mappings":";;;;;AA6CO,SAAS,iBACd,WACA,aACA,SACQ;AACR,QAAM,SAAS,uBAAuB,SAAS;AAC/C,QAAM,SAAS,uBAAuB,WAAW;AAEjD,QAAM,WAAW,OAAO,MAAM,QAAQ,EAAE,aAAa,QAAQ,CAAC;AAC9D,QAAM,UAAU,SAAS,MAAM,EAAE,MAAM,QAAQ,YAAY,OAAO,CAAC;AACnE,SAAO,SAAS,aAAa,UAAU,KAAK,MAAM,OAAO;AAC3D;","names":[]}
@@ -1,13 +0,0 @@
1
- import {
2
- Temporal
3
- } from "./chunk-R7ZCA6AQ.js";
4
-
5
- // src/shared/isBefore.ts
6
- function isBefore(date1, date2) {
7
- return Temporal.ZonedDateTime.compare(date1, date2) < 0;
8
- }
9
-
10
- export {
11
- isBefore
12
- };
13
- //# sourceMappingURL=chunk-EVEMK2K2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shared/isBefore.ts"],"sourcesContent":["import { Temporal } from './temporal';\n\nexport function isBefore(\n date1: Temporal.ZonedDateTime,\n date2: Temporal.ZonedDateTime\n): boolean {\n return Temporal.ZonedDateTime.compare(date1, date2) < 0;\n}\n"],"mappings":";;;;;AAEO,SAAS,SACd,OACA,OACS;AACT,SAAO,SAAS,cAAc,QAAQ,OAAO,KAAK,IAAI;AACxD;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/addMilliseconds.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Adds the specified number of milliseconds 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 milliseconds - Number of milliseconds to add (can be negative to subtract)\n * @returns ZonedDateTime with milliseconds 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 = addMilliseconds(instant, 500);\n * // 2025-01-20T12:00:00.500Z[UTC] (500 milliseconds 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 = addMilliseconds(zoned, 1500);\n * // 2025-01-20T15:30:01.500-05:00[America/New_York]\n * ```\n *\n * @example\n * ```ts\n * // Negative values subtract milliseconds\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00.500Z');\n * const result = addMilliseconds(instant, -250);\n * // 2025-01-20T12:00:00.250Z[UTC] (250 milliseconds earlier)\n * ```\n */\nexport function addMilliseconds(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n milliseconds: number\n): Temporal.ZonedDateTime {\n const zonedDateTime = normalizeTemporalInput(input);\n return zonedDateTime.add({ milliseconds });\n}\n"],"mappings":";;;;;AAoCO,SAAS,gBACd,OACA,cACwB;AACxB,QAAM,gBAAgB,uBAAuB,KAAK;AAClD,SAAO,cAAc,IAAI,EAAE,aAAa,CAAC;AAC3C;","names":[]}
@@ -1,14 +0,0 @@
1
- import {
2
- normalizeTemporalInput
3
- } from "./chunk-NTMT5XGC.js";
4
-
5
- // src/addDays.ts
6
- function addDays(input, days) {
7
- const zonedDateTime = normalizeTemporalInput(input);
8
- return zonedDateTime.add({ days });
9
- }
10
-
11
- export {
12
- addDays
13
- };
14
- //# sourceMappingURL=chunk-G2U5WGRP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/addDays.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Adds the specified number of days to a datetime.\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 * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @param days - Number of days to add (can be negative to subtract)\n * @returns ZonedDateTime with days 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 = 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(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n days: number\n): Temporal.ZonedDateTime {\n const zonedDateTime = normalizeTemporalInput(input);\n return zonedDateTime.add({ days });\n}\n"],"mappings":";;;;;AAqCO,SAAS,QACd,OACA,MACwB;AACxB,QAAM,gBAAgB,uBAAuB,KAAK;AAClD,SAAO,cAAc,IAAI,EAAE,KAAK,CAAC;AACnC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/getQuarter.ts"],"sourcesContent":["import type { Temporal } from \"@js-temporal/polyfill\";\nimport { isPlainDate } from \"./shared/temporal\";\nimport { normalizeTemporalInput } from \"./shared/normalizeTemporalInput\";\nimport { quarterOfMonth } from \"./shared/quarter\";\n\n/**\n * Returns the quarter (1-4) that a datetime or date falls in.\n *\n * Quarters: Q1 = Jan–Mar, Q2 = Apr–Jun, Q3 = Jul–Sep, Q4 = Oct–Dec.\n *\n * A quarter is intrinsic to the calendar date, so no timezone is ever needed.\n * `Instant` inputs are interpreted in UTC; `ZonedDateTime` inputs use their own\n * timezone; `PlainDate` inputs use their calendar month directly.\n *\n * @param input - A Temporal.Instant (UTC), Temporal.ZonedDateTime, or Temporal.PlainDate\n * @returns The quarter number: 1, 2, 3, or 4\n *\n * @example\n * ```ts\n * getQuarter(Temporal.Instant.from('2025-05-15T12:00:00Z')); // 2\n * getQuarter(Temporal.PlainDate.from('2025-11-15')); // 4\n * ```\n */\nexport function getQuarter(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n): 1 | 2 | 3 | 4 {\n const month = isPlainDate(input) ? input.month : normalizeTemporalInput(input).month;\n return quarterOfMonth(month);\n}\n"],"mappings":";;;;;;;;;;;AAuBO,SAAS,WACd,OACe;AACf,QAAM,QAAQ,YAAY,KAAK,IAAI,MAAM,QAAQ,uBAAuB,KAAK,EAAE;AAC/E,SAAO,eAAe,KAAK;AAC7B;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/toIso.ts"],"sourcesContent":["import { isInstant } from './shared/temporal';\nimport type { Temporal } from '@js-temporal/polyfill';\n\nexport type IsoMode = 'utc' | 'offset';\n\nexport interface ToIsoOptions {\n /**\n * Output mode for time zone designator.\n * - 'utc' (default): UTC time with Z suffix\n * - 'offset': local time with offset suffix\n */\n mode?: IsoMode;\n}\n\n/**\n * Convert a Temporal.Instant to a UTC ISO 8601 string.\n */\nexport function toIso(input: Temporal.Instant): string;\n\n/**\n * Convert a Temporal.ZonedDateTime to an ISO 8601 string.\n *\n * @param input - A Temporal.ZonedDateTime\n * @param options - Output options\n *\n * @example\n * ```typescript\n * const zoned = Temporal.ZonedDateTime.from(\"2025-01-20T15:00:00-05:00[America/New_York]\");\n *\n * toIso(zoned); // \"2025-01-20T20:00:00Z\"\n * toIso(zoned, { mode: 'utc' }); // \"2025-01-20T20:00:00Z\"\n * toIso(zoned, { mode: 'offset' }); // \"2025-01-20T15:00:00-05:00\"\n * ```\n */\nexport function toIso(\n input: Temporal.ZonedDateTime,\n options?: ToIsoOptions\n): string;\n\nexport function toIso(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n options: ToIsoOptions = {}\n): string {\n const { mode = 'utc' } = options;\n\n if (isInstant(input)) {\n return input.toString();\n }\n\n if (mode === 'offset') {\n return input.toString({ timeZoneName: 'never' });\n }\n\n return input.toInstant().toString();\n}\n"],"mappings":";;;;;AAuCO,SAAS,MACd,OACA,UAAwB,CAAC,GACjB;AACR,QAAM,EAAE,OAAO,MAAM,IAAI;AAEzB,MAAI,UAAU,KAAK,GAAG;AACpB,WAAO,MAAM,SAAS;AAAA,EACxB;AAEA,MAAI,SAAS,UAAU;AACrB,WAAO,MAAM,SAAS,EAAE,cAAc,QAAQ,CAAC;AAAA,EACjD;AAEA,SAAO,MAAM,UAAU,EAAE,SAAS;AACpC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/addMicroseconds.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Adds the specified number of microseconds 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 microseconds - Number of microseconds to add (can be negative to subtract)\n * @returns ZonedDateTime with microseconds 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 = addMicroseconds(instant, 500);\n * // 2025-01-20T12:00:00.000500Z[UTC] (500 microseconds 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 = addMicroseconds(zoned, 1000);\n * // 2025-01-20T15:30:00.001-05:00[America/New_York]\n * ```\n *\n * @example\n * ```ts\n * // Negative values subtract microseconds\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00.001Z');\n * const result = addMicroseconds(instant, -500);\n * // 2025-01-20T12:00:00.000500Z[UTC] (500 microseconds earlier)\n * ```\n */\nexport function addMicroseconds(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n microseconds: number\n): Temporal.ZonedDateTime {\n const zonedDateTime = normalizeTemporalInput(input);\n return zonedDateTime.add({ microseconds });\n}\n"],"mappings":";;;;;AAoCO,SAAS,gBACd,OACA,cACwB;AACxB,QAAM,gBAAgB,uBAAuB,KAAK;AAClD,SAAO,cAAc,IAAI,EAAE,aAAa,CAAC;AAC3C;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/roundToNearestMinute.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Options for rounding to nearest minute.\n */\nexport interface RoundToNearestMinuteOptions {\n /**\n * The rounding mode to use.\n *\n * Given time 14:37:20:\n * - `'round'` → 14:37 (20 sec < 30, rounds DOWN to nearest)\n * - `'ceil'` → 14:38 (always rounds UP to next minute)\n * - `'floor'` → 14:37 (always rounds DOWN to current minute)\n *\n * Given time 14:37:00 with nearestTo: 15:\n * - `'round'` → 14:30 (37 is closer to 30 than 45)\n * - `'ceil'` → 14:45 (always rounds UP to next 15-min slot)\n * - `'floor'` → 14:30 (always rounds DOWN to current 15-min slot)\n *\n * @default 'round'\n */\n mode?: 'round' | 'ceil' | 'floor';\n /**\n * Round to the nearest N minutes. Must divide evenly into 60.\n * Valid values: 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30\n * @example nearestTo: 15 rounds to quarter-hour marks (00, 15, 30, 45)\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 minute boundary.\n *\n * ## Mode comparison (given 14:37 with 15-min slots)\n *\n * ```\n * 14:30 ─────────●───────────────────── 14:45\n * 14:37\n *\n * 'round' → 14:30 (nearest slot - 37 is closer to 30 than 45)\n * 'ceil' → 14:45 (next slot - always up)\n * 'floor' → 14:30 (current slot - 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 minute boundary\n *\n * @example\n * ```ts\n * // 15-minute booking slots at 14:37\n * const time = Temporal.ZonedDateTime.from('2025-01-20T14:37:00[America/New_York]');\n *\n * roundToNearestMinute(time, { nearestTo: 15 }); // → 14:30 (nearest)\n * roundToNearestMinute(time, { mode: 'ceil', nearestTo: 15 }); // → 14:45 (next slot)\n * roundToNearestMinute(time, { mode: 'floor', nearestTo: 15 }); // → 14:30 (current slot)\n * ```\n *\n * @example\n * ```ts\n * // Basic minute rounding (no slots)\n * const time = Temporal.ZonedDateTime.from('2025-01-20T14:37:42[America/New_York]');\n *\n * roundToNearestMinute(time); // → 14:38 (42 sec >= 30)\n * roundToNearestMinute(time, { mode: 'ceil' }); // → 14:38 (always up)\n * roundToNearestMinute(time, { mode: 'floor' }); // → 14:37 (always down)\n * ```\n *\n * @example\n * ```ts\n * // Billing: round up to 30-minute increments\n * const sessionEnd = Temporal.ZonedDateTime.from('2025-01-20T11:07:00[America/New_York]');\n * roundToNearestMinute(sessionEnd, { mode: 'ceil', nearestTo: 30 });\n * // → 11:30 (bill for 30 mins even though session was 7 mins)\n * ```\n */\nexport function roundToNearestMinute(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n options?: RoundToNearestMinuteOptions\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: 'minute',\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;AAgDO,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,13 +0,0 @@
1
- import {
2
- addDays
3
- } from "./chunk-G2U5WGRP.js";
4
-
5
- // src/subDays.ts
6
- function subDays(input, days) {
7
- return addDays(input, -days);
8
- }
9
-
10
- export {
11
- subDays
12
- };
13
- //# sourceMappingURL=chunk-JBM7DESQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/subDays.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { addDays } from './addDays';\n\n/**\n * Subtracts the specified number of days from a datetime.\n *\n * This is a convenience wrapper around addDays with negated value.\n * Properly handles DST transitions and calendar edge cases through Temporal API.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @param days - Number of days to subtract\n * @returns ZonedDateTime with days subtracted, in the same timezone as input\n *\n * @example\n * ```ts\n * const instant = Temporal.Instant.from('2025-01-25T12:00:00Z');\n * const result = subDays(instant, 5);\n * // 2025-01-20T12:00:00Z[UTC] (5 days earlier)\n * ```\n */\nexport function subDays(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n days: number\n): Temporal.ZonedDateTime {\n return addDays(input, -days);\n}\n"],"mappings":";;;;;AAoBO,SAAS,QACd,OACA,MACwB;AACxB,SAAO,QAAQ,OAAO,CAAC,IAAI;AAC7B;","names":[]}
@@ -1,28 +0,0 @@
1
- import {
2
- normalizeTemporalInput
3
- } from "./chunk-NTMT5XGC.js";
4
- import {
5
- Temporal
6
- } from "./chunk-R7ZCA6AQ.js";
7
-
8
- // src/eachHourOfInterval.ts
9
- function eachHourOfInterval(interval) {
10
- const startZoned = normalizeTemporalInput(interval.start);
11
- const endZoned = normalizeTemporalInput(interval.end);
12
- const timezone = startZoned.timeZoneId;
13
- const startHour = startZoned.round({ smallestUnit: "hour", roundingMode: "floor" });
14
- const endInTimezone = endZoned.withTimeZone(timezone);
15
- const endHour = endInTimezone.round({ smallestUnit: "hour", roundingMode: "floor" });
16
- const hours = [];
17
- let current = startHour;
18
- while (Temporal.ZonedDateTime.compare(current, endHour) <= 0) {
19
- hours.push(current);
20
- current = current.add({ hours: 1 });
21
- }
22
- return hours;
23
- }
24
-
25
- export {
26
- eachHourOfInterval
27
- };
28
- //# sourceMappingURL=chunk-JK4WDDWU.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/eachHourOfInterval.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns an array of ZonedDateTime objects for each hour within the interval.\n * Each element represents the start of the hour (minute/second/etc. set to 0).\n * The interval is inclusive of both start and end hours.\n *\n * For Instant inputs, UTC is used as the timezone.\n * For ZonedDateTime inputs, the timezone of the start date is preserved.\n *\n * Note: During DST transitions, some hours may be skipped (spring forward) or\n * the array may contain fewer/more hours than expected based on wall-clock time.\n *\n * @param interval - The interval with start and end datetimes\n * @returns Array of ZonedDateTime at start of each hour in the interval\n *\n * @example\n * ```ts\n * const start = Temporal.ZonedDateTime.from('2025-01-06T10:30:00Z[UTC]');\n * const end = Temporal.ZonedDateTime.from('2025-01-06T14:15:00Z[UTC]');\n *\n * const hours = eachHourOfInterval({ start, end });\n * // [\n * // 2025-01-06T10:00:00Z[UTC],\n * // 2025-01-06T11:00:00Z[UTC],\n * // 2025-01-06T12:00:00Z[UTC],\n * // 2025-01-06T13:00:00Z[UTC],\n * // 2025-01-06T14:00:00Z[UTC]\n * // ]\n * ```\n *\n * @example\n * ```ts\n * // Cross-day boundary\n * const start = Temporal.ZonedDateTime.from('2025-01-06T22:00:00Z[UTC]');\n * const end = Temporal.ZonedDateTime.from('2025-01-07T02:00:00Z[UTC]');\n *\n * const hours = eachHourOfInterval({ start, end });\n * // [\n * // 2025-01-06T22:00:00Z[UTC],\n * // 2025-01-06T23:00:00Z[UTC],\n * // 2025-01-07T00:00:00Z[UTC],\n * // 2025-01-07T01:00:00Z[UTC],\n * // 2025-01-07T02:00:00Z[UTC]\n * // ]\n * ```\n */\nexport function eachHourOfInterval(interval: {\n start: Temporal.Instant | Temporal.ZonedDateTime;\n end: Temporal.Instant | Temporal.ZonedDateTime;\n}): Temporal.ZonedDateTime[] {\n const startZoned = normalizeTemporalInput(interval.start);\n const endZoned = normalizeTemporalInput(interval.end);\n\n const timezone = startZoned.timeZoneId;\n\n // Get start of the starting hour\n const startHour = startZoned.round({ smallestUnit: 'hour', roundingMode: 'floor' });\n\n // Get start of the ending hour in the same timezone\n const endInTimezone = endZoned.withTimeZone(timezone);\n const endHour = endInTimezone.round({ smallestUnit: 'hour', roundingMode: 'floor' });\n\n const hours: Temporal.ZonedDateTime[] = [];\n let current = startHour;\n\n while (Temporal.ZonedDateTime.compare(current, endHour) <= 0) {\n hours.push(current);\n current = current.add({ hours: 1 });\n }\n\n return hours;\n}\n"],"mappings":";;;;;;;;AAgDO,SAAS,mBAAmB,UAGN;AAC3B,QAAM,aAAa,uBAAuB,SAAS,KAAK;AACxD,QAAM,WAAW,uBAAuB,SAAS,GAAG;AAEpD,QAAM,WAAW,WAAW;AAG5B,QAAM,YAAY,WAAW,MAAM,EAAE,cAAc,QAAQ,cAAc,QAAQ,CAAC;AAGlF,QAAM,gBAAgB,SAAS,aAAa,QAAQ;AACpD,QAAM,UAAU,cAAc,MAAM,EAAE,cAAc,QAAQ,cAAc,QAAQ,CAAC;AAEnF,QAAM,QAAkC,CAAC;AACzC,MAAI,UAAU;AAEd,SAAO,SAAS,cAAc,QAAQ,SAAS,OAAO,KAAK,GAAG;AAC5D,UAAM,KAAK,OAAO;AAClB,cAAU,QAAQ,IAAI,EAAE,OAAO,EAAE,CAAC;AAAA,EACpC;AAEA,SAAO;AACT;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/subMinutes.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { addMinutes } from './addMinutes';\n\n/**\n * Subtracts the specified number of minutes from a datetime.\n *\n * This is a convenience wrapper around addMinutes with negated value.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @param minutes - Number of minutes to subtract\n * @returns ZonedDateTime with minutes subtracted, in the same timezone as input\n *\n * @example\n * ```ts\n * const instant = Temporal.Instant.from('2025-01-20T12:30:00Z');\n * const result = subMinutes(instant, 15);\n * // 2025-01-20T12:15:00Z[UTC] (15 minutes earlier)\n * ```\n */\nexport function subMinutes(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n minutes: number\n): Temporal.ZonedDateTime {\n return addMinutes(input, -minutes);\n}\n"],"mappings":";;;;;AAmBO,SAAS,WACd,OACA,SACwB;AACxB,SAAO,WAAW,OAAO,CAAC,OAAO;AACnC;","names":[]}
@@ -1,18 +0,0 @@
1
- import {
2
- isBefore
3
- } from "./chunk-EVEMK2K2.js";
4
- import {
5
- normalizeTemporalInput
6
- } from "./chunk-NTMT5XGC.js";
7
-
8
- // src/isBefore.ts
9
- function isBefore2(date1, date2) {
10
- const zoned1 = normalizeTemporalInput(date1);
11
- const zoned2 = normalizeTemporalInput(date2);
12
- return isBefore(zoned1, zoned2);
13
- }
14
-
15
- export {
16
- isBefore2 as isBefore
17
- };
18
- //# sourceMappingURL=chunk-KGO3G2QB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/isBefore.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\nimport { isBefore as isBeforeInternal } from './shared/isBefore';\n\n/**\n * Returns true if the first datetime is before the second datetime.\n * Compares by the underlying instant (epoch time), not by calendar date/time.\n *\n * @param date1 - First datetime (Instant or ZonedDateTime)\n * @param date2 - Second datetime (Instant or ZonedDateTime)\n * @returns true if date1 is before date2, false otherwise\n *\n * @example\n * ```ts\n * const earlier = Temporal.ZonedDateTime.from('2025-01-20T10:00:00-05:00[America/New_York]');\n * const later = Temporal.ZonedDateTime.from('2025-01-20T16:00:00-05:00[America/New_York]');\n *\n * isBefore(earlier, later); // true\n * isBefore(later, earlier); // false\n * isBefore(earlier, earlier); // false\n * ```\n *\n * @example\n * ```ts\n * // Works with Instant too\n * const instant1 = Temporal.Instant.from('2025-01-20T15:00:00Z');\n * const instant2 = Temporal.Instant.from('2025-01-20T16:00:00Z');\n *\n * isBefore(instant1, instant2); // true\n * ```\n *\n * @example\n * ```ts\n * // Different timezones - compares by instant\n * const ny = Temporal.ZonedDateTime.from('2025-01-20T10:00:00-05:00[America/New_York]');\n * const tokyo = Temporal.ZonedDateTime.from('2025-01-21T00:00:00+09:00[Asia/Tokyo]');\n *\n * isBefore(ny, tokyo); // true\n * // NY 10:00 is 15:00 UTC, Tokyo 00:00 is 15:00 UTC the previous day\n * ```\n */\nexport function isBefore(\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 isBeforeInternal(zoned1, zoned2);\n}\n"],"mappings":";;;;;;;;AAyCO,SAASA,UACd,OACA,OACS;AACT,QAAM,SAAS,uBAAuB,KAAK;AAC3C,QAAM,SAAS,uBAAuB,KAAK;AAE3C,SAAO,SAAiB,QAAQ,MAAM;AACxC;","names":["isBefore"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/differenceInQuarters.ts"],"sourcesContent":["import type { Temporal } from \"@js-temporal/polyfill\";\nimport { isPlainDate } from \"./shared/temporal\";\nimport { differenceInMonths } from \"./differenceInMonths\";\nimport type { DifferenceOptions } from \"./shared/differenceOptions\";\n\n/**\n * Returns the number of quarters (3-month blocks) between two datetimes or dates.\n * The result is positive if laterDate is after earlierDate, negative if before.\n *\n * Uses calendar-aware, elapsed-time calculation (a quarter is three months).\n * Instant inputs are converted to UTC; ZonedDateTime inputs keep their timezone.\n * PlainDate inputs are compared directly — no timezone needed.\n *\n * @param laterDate - The later Instant or ZonedDateTime\n * @param earlierDate - The earlier Instant or ZonedDateTime\n * @param options - Optional { fractional } to return the precise value\n * @returns The number of quarters, truncated toward zero (pass { fractional: true } for the precise value)\n *\n * @example\n * ```ts\n * const later = Temporal.Instant.from('2025-07-20T12:00:00Z');\n * const earlier = Temporal.Instant.from('2025-01-20T12:00:00Z');\n * differenceInQuarters(later, earlier); // 2\n * ```\n *\n * @example\n * ```ts\n * // PlainDate comparison needs no timezone\n * const later = Temporal.PlainDate.from('2025-07-20');\n * const earlier = Temporal.PlainDate.from('2025-01-20');\n * differenceInQuarters(later, earlier); // 2\n * ```\n */\nexport function differenceInQuarters(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime,\n options?: DifferenceOptions,\n): number;\nexport function differenceInQuarters(\n laterDate: Temporal.PlainDate,\n earlierDate: Temporal.PlainDate,\n options?: DifferenceOptions,\n): number;\nexport function differenceInQuarters(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n options?: DifferenceOptions,\n): number {\n // A quarter is three months, so work in elapsed months and divide by 3.\n const months =\n isPlainDate(laterDate) && isPlainDate(earlierDate)\n ? earlierDate.until(laterDate).total({\n unit: \"months\",\n relativeTo: earlierDate,\n })\n : differenceInMonths(\n laterDate as Temporal.Instant | Temporal.ZonedDateTime,\n earlierDate as Temporal.Instant | Temporal.ZonedDateTime,\n { fractional: true },\n );\n\n const quarters = months / 3;\n return options?.fractional ? quarters : Math.trunc(quarters);\n}\n"],"mappings":";;;;;;;;AA2CO,SAAS,qBACd,WACA,aACA,SACQ;AAER,QAAM,SACJ,YAAY,SAAS,KAAK,YAAY,WAAW,IAC7C,YAAY,MAAM,SAAS,EAAE,MAAM;AAAA,IACjC,MAAM;AAAA,IACN,YAAY;AAAA,EACd,CAAC,IACD;AAAA,IACE;AAAA,IACA;AAAA,IACA,EAAE,YAAY,KAAK;AAAA,EACrB;AAEN,QAAM,WAAW,SAAS;AAC1B,SAAO,SAAS,aAAa,WAAW,KAAK,MAAM,QAAQ;AAC7D;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/addSeconds.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\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,17 +0,0 @@
1
- import {
2
- normalizeTemporalInput
3
- } from "./chunk-NTMT5XGC.js";
4
-
5
- // src/differenceInWeeks.ts
6
- function differenceInWeeks(laterDate, earlierDate, options) {
7
- const zoned1 = normalizeTemporalInput(laterDate);
8
- const zoned2 = normalizeTemporalInput(earlierDate);
9
- const duration = zoned2.until(zoned1, { largestUnit: "hours" });
10
- const precise = duration.total({ unit: "weeks", relativeTo: zoned2 });
11
- return options?.fractional ? precise : Math.trunc(precise);
12
- }
13
-
14
- export {
15
- differenceInWeeks
16
- };
17
- //# sourceMappingURL=chunk-LODULPI3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/differenceInWeeks.ts"],"sourcesContent":["import { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\nimport type { DifferenceOptions } from './shared/differenceOptions';\n\n/**\n * Returns the number of weeks between two datetimes.\n * The result is positive if laterDate is after earlierDate, negative if before.\n *\n * This function uses calendar-aware calculation, which means it properly handles\n * DST transitions and calendar weeks.\n *\n * Instant inputs are converted to UTC for calendar calculations.\n * For ZonedDateTime inputs, their timezone is preserved.\n *\n * @param laterDate - The later datetime (Instant or ZonedDateTime)\n * @param earlierDate - The earlier datetime (Instant or ZonedDateTime)\n * @param options - Optional { fractional } to return the precise value\n * @returns The number of weeks between the dates, truncated toward zero (pass { fractional: true } for the precise value)\n *\n * @example\n * ```ts\n * const later = Temporal.Instant.from('2025-02-10T12:00:00Z');\n * const earlier = Temporal.Instant.from('2025-01-20T12:00:00Z');\n *\n * differenceInWeeks(later, earlier); // 3\n * ```\n *\n * @example\n * ```ts\n * // Works with ZonedDateTime\n * const later = Temporal.ZonedDateTime.from('2025-02-10T15:00:00-05:00[America/New_York]');\n * const earlier = Temporal.ZonedDateTime.from('2025-01-20T15:00:00-05:00[America/New_York]');\n *\n * differenceInWeeks(later, earlier); // 3\n * ```\n *\n * @example\n * ```ts\n * // Pass { fractional: true } for partial-unit precision\n * const later = Temporal.Instant.from('2025-01-27T12:00:00Z');\n * const earlier = Temporal.Instant.from('2025-01-20T12:00:00Z');\n *\n * differenceInWeeks(later, earlier); // 1\n * ```\n */\nexport function differenceInWeeks(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime,\n options?: DifferenceOptions\n): number {\n const zoned1 = normalizeTemporalInput(laterDate);\n const zoned2 = normalizeTemporalInput(earlierDate);\n\n const duration = zoned2.until(zoned1, { largestUnit: 'hours' });\n const precise = duration.total({ unit: 'weeks', relativeTo: zoned2 });\n return options?.fractional ? precise : Math.trunc(precise);\n}\n"],"mappings":";;;;;AA6CO,SAAS,kBACd,WACA,aACA,SACQ;AACR,QAAM,SAAS,uBAAuB,SAAS;AAC/C,QAAM,SAAS,uBAAuB,WAAW;AAEjD,QAAM,WAAW,OAAO,MAAM,QAAQ,EAAE,aAAa,QAAQ,CAAC;AAC9D,QAAM,UAAU,SAAS,MAAM,EAAE,MAAM,SAAS,YAAY,OAAO,CAAC;AACpE,SAAO,SAAS,aAAa,UAAU,KAAK,MAAM,OAAO;AAC3D;","names":[]}
@@ -1,13 +0,0 @@
1
- import {
2
- Temporal
3
- } from "./chunk-R7ZCA6AQ.js";
4
-
5
- // src/shared/isAfter.ts
6
- function isAfter(date1, date2) {
7
- return Temporal.ZonedDateTime.compare(date1, date2) > 0;
8
- }
9
-
10
- export {
11
- isAfter
12
- };
13
- //# sourceMappingURL=chunk-LSKER4FN.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shared/isAfter.ts"],"sourcesContent":["import { Temporal } from './temporal';\n\nexport function isAfter(\n date1: Temporal.ZonedDateTime,\n date2: Temporal.ZonedDateTime\n): boolean {\n return Temporal.ZonedDateTime.compare(date1, date2) > 0;\n}\n"],"mappings":";;;;;AAEO,SAAS,QACd,OACA,OACS;AACT,SAAO,SAAS,cAAc,QAAQ,OAAO,KAAK,IAAI;AACxD;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/toDate.ts"],"sourcesContent":["import { isInstant } from './shared/temporal';\nimport type { Temporal } from '@js-temporal/polyfill';\n\n/**\n * Convert a Temporal.Instant or ZonedDateTime to a Date object.\n *\n * @param input - A Temporal.Instant or Temporal.ZonedDateTime\n * @returns A Date object representing the same moment in time\n *\n * @example\n * ```typescript\n * // From Instant\n * const instant = Temporal.Instant.from(\"2025-01-20T20:00:00Z\");\n * const date = toDate(instant);\n * // date.toISOString() === \"2025-01-20T20:00:00.000Z\"\n *\n * // From ZonedDateTime\n * const zoned = Temporal.ZonedDateTime.from(\"2025-01-20T15:00:00-05:00[America/New_York]\");\n * const date2 = toDate(zoned);\n * // date2.toISOString() === \"2025-01-20T20:00:00.000Z\"\n *\n * // Use with Drizzle ORM (for storing back to database)\n * const instant = Temporal.Instant.from(\"2025-01-20T20:00:00Z\");\n * const date = toDate(instant);\n * await db.update(posts).set({ publishedAt: date });\n * ```\n */\nexport function toDate(\n input: Temporal.Instant | Temporal.ZonedDateTime\n): Date {\n if (isInstant(input)) {\n return new Date(input.toString());\n }\n\n return new Date(input.toInstant().toString());\n}\n"],"mappings":";;;;;AA2BO,SAAS,OACd,OACM;AACN,MAAI,UAAU,KAAK,GAAG;AACpB,WAAO,IAAI,KAAK,MAAM,SAAS,CAAC;AAAA,EAClC;AAEA,SAAO,IAAI,KAAK,MAAM,UAAU,EAAE,SAAS,CAAC;AAC9C;","names":[]}
@@ -1,13 +0,0 @@
1
- import {
2
- addWeeks
3
- } from "./chunk-ZG4ROOWI.js";
4
-
5
- // src/subWeeks.ts
6
- function subWeeks(input, weeks) {
7
- return addWeeks(input, -weeks);
8
- }
9
-
10
- export {
11
- subWeeks
12
- };
13
- //# sourceMappingURL=chunk-MDXN3WMH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/subWeeks.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { addWeeks } from './addWeeks';\n\n/**\n * Subtracts the specified number of weeks from a datetime.\n *\n * This is a convenience wrapper around addWeeks with negated value.\n * Properly handles DST transitions and calendar edge cases through Temporal API.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @param weeks - Number of weeks to subtract\n * @returns ZonedDateTime with weeks subtracted, in the same timezone as input\n *\n * @example\n * ```ts\n * const instant = Temporal.Instant.from('2025-02-03T12:00:00Z');\n * const result = subWeeks(instant, 2);\n * // 2025-01-20T12:00:00Z[UTC] (2 weeks earlier)\n * ```\n */\nexport function subWeeks(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n weeks: number\n): Temporal.ZonedDateTime {\n return addWeeks(input, -weeks);\n}\n"],"mappings":";;;;;AAoBO,SAAS,SACd,OACA,OACwB;AACxB,SAAO,SAAS,OAAO,CAAC,KAAK;AAC/B;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/isSameHour.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns true if both datetimes fall in the same hour.\n * Compares the year, month, day, and hour 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 hour, false otherwise\n *\n * @example\n * ```ts\n * // Same timezone, same hour\n * const start = Temporal.ZonedDateTime.from('2025-01-20T14:00:00Z[UTC]');\n * const end = Temporal.ZonedDateTime.from('2025-01-20T14:59:59.999Z[UTC]');\n *\n * isSameHour(start, end); // true\n * ```\n *\n * @example\n * ```ts\n * // Same timezone, different hours\n * const hour14 = Temporal.ZonedDateTime.from('2025-01-20T14:59:59Z[UTC]');\n * const hour15 = Temporal.ZonedDateTime.from('2025-01-20T15:00:00Z[UTC]');\n *\n * isSameHour(hour14, hour15); // false\n * ```\n *\n * @example\n * ```ts\n * // Different timezones - compares their local hours\n * const ny = Temporal.ZonedDateTime.from('2025-01-20T14:30:00-05:00[America/New_York]');\n * const tokyo = Temporal.ZonedDateTime.from('2025-01-21T04:30:00+09:00[Asia/Tokyo]');\n *\n * // Same instant, different local hours from each person's perspective\n * isSameHour(ny, tokyo); // false (14:xx in NY, 04:xx in Tokyo)\n *\n * // Convert to UTC to compare in UTC timezone\n * isSameHour(ny.withTimeZone('UTC'), tokyo.withTimeZone('UTC')); // true (both 19:xx in UTC)\n *\n * // Convert to NY timezone to compare from NY perspective\n * isSameHour(ny, tokyo.withTimeZone('America/New_York')); // true (both 14: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:15:30Z');\n * const instant2 = Temporal.Instant.from('2025-01-20T14:45:50Z');\n *\n * isSameHour(instant1, instant2); // true (both 14:xx in UTC)\n * ```\n */\nexport function isSameHour(\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 );\n}\n"],"mappings":";;;;;AA0DO,SAAS,WACd,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;AAE3B;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/isSameWeek.ts"],"sourcesContent":["import type{ Temporal } from '@js-temporal/polyfill';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns true if both datetimes fall in the same ISO 8601 week.\n * Uses ISO week numbering where weeks start on Monday and the first week\n * of the year is the week containing January 4th.\n *\n * Compares the yearOfWeek and weekOfYear fields directly.\n *\n * Instant inputs are converted to UTC. For ZonedDateTime inputs, their\n * timezone is preserved. Convert to a common timezone before calling if\n * you need to compare from a specific perspective.\n *\n * @param date1 - First datetime (Instant or ZonedDateTime)\n * @param date2 - Second datetime (Instant or ZonedDateTime)\n * @returns true if both dates are in the same ISO week, false otherwise\n *\n * @example\n * ```ts\n * // Same timezone, same week (both in week 4 of 2025)\n * const monday = Temporal.ZonedDateTime.from('2025-01-20T08:00:00Z[UTC]'); // Monday, Week 4\n * const sunday = Temporal.ZonedDateTime.from('2025-01-26T23:59:59Z[UTC]'); // Sunday, Week 4\n *\n * isSameWeek(monday, sunday); // true\n * ```\n *\n * @example\n * ```ts\n * // Same timezone, different weeks\n * const week3 = Temporal.ZonedDateTime.from('2025-01-19T23:59:59Z[UTC]'); // Sunday, Week 3\n * const week4 = Temporal.ZonedDateTime.from('2025-01-20T00:00:00Z[UTC]'); // Monday, Week 4\n *\n * isSameWeek(week3, week4); // false\n * ```\n *\n * @example\n * ```ts\n * // Different timezones - compares their local calendar weeks\n * const ny = Temporal.ZonedDateTime.from('2025-01-26T23:00:00-05:00[America/New_York]');\n * const tokyo = Temporal.ZonedDateTime.from('2025-01-27T13:00:00+09:00[Asia/Tokyo]');\n *\n * // Same instant, different local weeks from each person's perspective\n * isSameWeek(ny, tokyo); // false (Week 4 Sun in NY, Week 5 Mon in Tokyo)\n *\n * // Convert to UTC to compare in UTC timezone\n * isSameWeek(ny.withTimeZone('UTC'), tokyo.withTimeZone('UTC')); // true (both Week 5 in UTC)\n *\n * // Convert to NY timezone to compare from NY perspective\n * isSameWeek(ny, tokyo.withTimeZone('America/New_York')); // true (both Week 4 in NY)\n * ```\n *\n * @example\n * ```ts\n * // Instant inputs are converted to UTC\n * const instant1 = Temporal.Instant.from('2025-01-20T00:00:00Z'); // Monday, Week 4\n * const instant2 = Temporal.Instant.from('2025-01-26T23:59:59Z'); // Sunday, Week 4\n *\n * isSameWeek(instant1, instant2); // true (both Week 4 2025 in UTC)\n * ```\n *\n * @example\n * ```ts\n * // ISO week years can differ from calendar years\n * // December 29, 2024 is in Week 52 of 2024\n * const dec29 = Temporal.ZonedDateTime.from('2024-12-29T12:00:00Z[UTC]');\n * // January 5, 2025 is in Week 1 of 2025\n * const jan5 = Temporal.ZonedDateTime.from('2025-01-05T12:00:00Z[UTC]');\n *\n * isSameWeek(dec29, jan5); // false (different ISO weeks)\n * ```\n */\nexport function isSameWeek(\n date1: Temporal.Instant | Temporal.ZonedDateTime,\n date2: Temporal.Instant | Temporal.ZonedDateTime\n): boolean {\n const zoned1 = normalizeTemporalInput(date1);\n const zoned2 = normalizeTemporalInput(date2);\n\n return (\n zoned1.yearOfWeek === zoned2.yearOfWeek &&\n zoned1.weekOfYear === zoned2.weekOfYear\n );\n}\n"],"mappings":";;;;;AAwEO,SAAS,WACd,OACA,OACS;AACT,QAAM,SAAS,uBAAuB,KAAK;AAC3C,QAAM,SAAS,uBAAuB,KAAK;AAE3C,SACE,OAAO,eAAe,OAAO,cAC7B,OAAO,eAAe,OAAO;AAEjC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/endOfWeek.ts"],"sourcesContent":["import { isPlainDate } from './shared/temporal';\nimport type { Temporal } from '@js-temporal/polyfill';\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":";;;;;;;;;;;;;;AAuDO,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,13 +0,0 @@
1
- import {
2
- Temporal
3
- } from "./chunk-R7ZCA6AQ.js";
4
-
5
- // src/isPlainDateAfter.ts
6
- function isPlainDateAfter(date1, date2) {
7
- return Temporal.PlainDate.compare(date1, date2) > 0;
8
- }
9
-
10
- export {
11
- isPlainDateAfter
12
- };
13
- //# sourceMappingURL=chunk-NEHYVVTH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shared/normalizeTemporalInput.ts"],"sourcesContent":["import { isInstant } from './temporal';\nimport type { Temporal } from '@js-temporal/polyfill';\n\n/**\n * @internal\n * Normalizes input to ZonedDateTime. Converts Instant to UTC, or returns existing ZonedDateTime.\n * This is an internal helper - do not use directly.\n */\nexport function normalizeTemporalInput(\n input: Temporal.Instant | Temporal.ZonedDateTime\n): Temporal.ZonedDateTime {\n return isInstant(input)\n ? input.toZonedDateTimeISO('UTC')\n : input;\n}\n"],"mappings":";;;;;AAQO,SAAS,uBACd,OACwB;AACxB,SAAO,UAAU,KAAK,IAClB,MAAM,mBAAmB,KAAK,IAC9B;AACN;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/subHours.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { addHours } from './addHours';\n\n/**\n * Subtracts the specified number of hours from a datetime.\n *\n * This is a convenience wrapper around addHours with negated value.\n * Properly handles DST transitions through Temporal API.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @param hours - Number of hours to subtract\n * @returns ZonedDateTime with hours subtracted, in the same timezone as input\n *\n * @example\n * ```ts\n * const instant = Temporal.Instant.from('2025-01-20T15:00:00Z');\n * const result = subHours(instant, 3);\n * // 2025-01-20T12:00:00Z[UTC] (3 hours earlier)\n * ```\n */\nexport function subHours(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n hours: number\n): Temporal.ZonedDateTime {\n return addHours(input, -hours);\n}\n"],"mappings":";;;;;AAoBO,SAAS,SACd,OACA,OACwB;AACxB,SAAO,SAAS,OAAO,CAAC,KAAK;AAC/B;","names":[]}
@@ -1,13 +0,0 @@
1
- import {
2
- Temporal
3
- } from "./chunk-R7ZCA6AQ.js";
4
-
5
- // src/isPlainDateEqual.ts
6
- function isPlainDateEqual(date1, date2) {
7
- return Temporal.PlainDate.compare(date1, date2) === 0;
8
- }
9
-
10
- export {
11
- isPlainDateEqual
12
- };
13
- //# sourceMappingURL=chunk-OKXCGA4Y.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/isSameMinute.ts"],"sourcesContent":["import type{ Temporal } from '@js-temporal/polyfill';\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":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/subSeconds.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { addSeconds } from './addSeconds';\n\n/**\n * Subtracts the specified number of seconds from a datetime.\n *\n * This is a convenience wrapper around addSeconds with negated value.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @param seconds - Number of seconds to subtract\n * @returns ZonedDateTime with seconds subtracted, in the same timezone as input\n *\n * @example\n * ```ts\n * const instant = Temporal.Instant.from('2025-01-20T12:00:45Z');\n * const result = subSeconds(instant, 30);\n * // 2025-01-20T12:00:15Z[UTC] (30 seconds earlier)\n * ```\n */\nexport function subSeconds(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n seconds: number\n): Temporal.ZonedDateTime {\n return addSeconds(input, -seconds);\n}\n"],"mappings":";;;;;AAmBO,SAAS,WACd,OACA,SACwB;AACxB,SAAO,WAAW,OAAO,CAAC,OAAO;AACnC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/endOfQuarter.ts"],"sourcesContent":["import { isPlainDate } from \"./shared/temporal\";\nimport type { Temporal } from \"@js-temporal/polyfill\";\nimport type { Timezone } from \"./types\";\nimport { getEndOfDay } from \"./shared/endOfDay\";\nimport { normalizeWithPlainDate } from \"./shared/normalizeWithPlainDate\";\nimport { quarterStartMonth } from \"./shared/quarter\";\n\n/**\n * Returns a ZonedDateTime representing the last moment of the quarter\n * (last day of the quarter's ending month at 23:59:59.999999999).\n *\n * Quarters: Q1 = Jan–Mar, Q2 = Apr–Jun, Q3 = Jul–Sep, Q4 = Oct–Dec.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @returns ZonedDateTime at the last day of the quarter at 23:59:59.999999999\n *\n * @example\n * ```ts\n * // From Instant (always UTC)\n * const instant = Temporal.Instant.from('2025-05-15T12:00:00Z');\n * const end = endOfQuarter(instant);\n * // 2025-06-30T23:59:59.999999999Z[UTC]\n * ```\n *\n * @example\n * ```ts\n * // From ZonedDateTime (uses its timezone)\n * const zoned = Temporal.ZonedDateTime.from('2025-02-15T15:30:00-05:00[America/New_York]');\n * const end = endOfQuarter(zoned);\n * // 2025-03-31T23:59:59.999999999-04:00[America/New_York]\n * ```\n *\n * @example\n * ```ts\n * // From PlainDate (requires timezone)\n * const date = Temporal.PlainDate.from('2025-11-15');\n * const end = endOfQuarter(date, 'America/New_York');\n * // 2025-12-31T23:59:59.999999999-05:00[America/New_York]\n * ```\n */\nexport function endOfQuarter(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n): Temporal.ZonedDateTime;\nexport function endOfQuarter(input: Temporal.PlainDate): Temporal.PlainDate;\nexport function endOfQuarter(input: Temporal.PlainDate, timezone: Timezone): Temporal.ZonedDateTime;\nexport function endOfQuarter(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n timezone?: Timezone,\n): Temporal.ZonedDateTime | Temporal.PlainDate {\n // PlainDate with no timezone stays in calendar space → last day of quarter.\n if (isPlainDate(input) && timezone === undefined) {\n const endMonth = input.with({\n month: quarterStartMonth(input.month) + 2,\n day: 1,\n });\n return endMonth.with({ day: endMonth.daysInMonth });\n }\n const zonedDateTime = normalizeWithPlainDate(input, timezone!);\n const endMonth = zonedDateTime.with({\n month: quarterStartMonth(zonedDateTime.month) + 2,\n day: 1,\n });\n const lastDay = endMonth.with({ day: endMonth.daysInMonth });\n return getEndOfDay(lastDay);\n}\n"],"mappings":";;;;;;;;;;;;;;AA6CO,SAAS,aACd,OACA,UAC6C;AAE7C,MAAI,YAAY,KAAK,KAAK,aAAa,QAAW;AAChD,UAAMA,YAAW,MAAM,KAAK;AAAA,MAC1B,OAAO,kBAAkB,MAAM,KAAK,IAAI;AAAA,MACxC,KAAK;AAAA,IACP,CAAC;AACD,WAAOA,UAAS,KAAK,EAAE,KAAKA,UAAS,YAAY,CAAC;AAAA,EACpD;AACA,QAAM,gBAAgB,uBAAuB,OAAO,QAAS;AAC7D,QAAM,WAAW,cAAc,KAAK;AAAA,IAClC,OAAO,kBAAkB,cAAc,KAAK,IAAI;AAAA,IAChD,KAAK;AAAA,EACP,CAAC;AACD,QAAM,UAAU,SAAS,KAAK,EAAE,KAAK,SAAS,YAAY,CAAC;AAC3D,SAAO,YAAY,OAAO;AAC5B;","names":["endMonth"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/isSameYear.ts"],"sourcesContent":["import type{ Temporal } from '@js-temporal/polyfill';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns true if both datetimes fall in the same calendar year.\n * Compares the year field 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 calendar year, false otherwise\n *\n * @example\n * ```ts\n * // Same timezone, same year\n * const jan = Temporal.ZonedDateTime.from('2025-01-20T08:00:00Z[UTC]');\n * const dec = Temporal.ZonedDateTime.from('2025-12-31T23:59:59Z[UTC]');\n *\n * isSameYear(jan, dec); // true\n * ```\n *\n * @example\n * ```ts\n * // Same timezone, different years\n * const endOf2024 = Temporal.ZonedDateTime.from('2024-12-31T23:59:59Z[UTC]');\n * const startOf2025 = Temporal.ZonedDateTime.from('2025-01-01T00:00:00Z[UTC]');\n *\n * isSameYear(endOf2024, startOf2025); // false\n * ```\n *\n * @example\n * ```ts\n * // Different timezones - compares their local calendar years\n * const ny = Temporal.ZonedDateTime.from('2024-12-31T23:00:00-05:00[America/New_York]');\n * const tokyo = Temporal.ZonedDateTime.from('2025-01-01T13:00:00+09:00[Asia/Tokyo]');\n *\n * // Same instant, different calendar years from each person's perspective\n * isSameYear(ny, tokyo); // false (2024 in NY, 2025 in Tokyo)\n *\n * // Convert to UTC to compare in UTC timezone\n * isSameYear(ny.withTimeZone('UTC'), tokyo.withTimeZone('UTC')); // true (both 2025 in UTC)\n *\n * // Convert to NY timezone to compare from NY perspective\n * isSameYear(ny, tokyo.withTimeZone('America/New_York')); // true (both 2024 in NY)\n * ```\n *\n * @example\n * ```ts\n * // Instant inputs are converted to UTC\n * const instant1 = Temporal.Instant.from('2025-01-01T00:00:00Z');\n * const instant2 = Temporal.Instant.from('2025-12-31T23:59:59Z');\n *\n * isSameYear(instant1, instant2); // true (both 2025 in UTC)\n * ```\n */\nexport function isSameYear(\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 zoned1.year === zoned2.year;\n}\n"],"mappings":";;;;;AA0DO,SAAS,WACd,OACA,OACS;AACT,QAAM,SAAS,uBAAuB,KAAK;AAC3C,QAAM,SAAS,uBAAuB,KAAK;AAE3C,SAAO,OAAO,SAAS,OAAO;AAChC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/shared/temporal.ts"],"sourcesContent":["import { Temporal as PolyfillTemporal } from \"@js-temporal/polyfill\";\n\n/**\n * @internal\n * Single source of the Temporal implementation.\n *\n * Shipping behavior is unchanged: production code always resolves to\n * `@js-temporal/polyfill`. Native-first was reverted because tiempo passes\n * caller-provided Temporal objects into static methods\n * (`Temporal.ZonedDateTime.compare`, etc.), and a native static method throws\n * (\"Must specify time zone.\") when handed an object created by a different\n * implementation. Re-enabling native-first by default requires normalizing\n * inputs into the resolved implementation at the boundary.\n *\n * For tests only, `TIEMPO_TEMPORAL` selects the implementation so the same\n * suite runs against both the polyfill and the runtime's native `Temporal`:\n * - `TIEMPO_TEMPORAL=polyfill` forces the polyfill (any Node version).\n * - `TIEMPO_TEMPORAL=native` uses `globalThis.Temporal` (Node >= 26).\n * - unset defaults to the polyfill, matching shipped behavior.\n * Tests import `Temporal` from here so both lib and test objects come from the\n * same implementation; mixing implementations triggers the revert bug above.\n *\n * Import `Temporal` from here so the implementation choice stays in one place.\n */\nconst useNative = process.env.TIEMPO_TEMPORAL === \"native\" && \"Temporal\" in globalThis;\n\nexport const Temporal = useNative\n ? (globalThis as unknown as { Temporal: typeof PolyfillTemporal }).Temporal\n : PolyfillTemporal;\n\n/**\n * @internal\n * Type-side of `Temporal`, merged with the runtime value above so a single\n * `import { Temporal } from './shared/temporal'` serves both `Temporal.from(...)`\n * (value) and `: Temporal.ZonedDateTime` (type). Types are identical across\n * implementations and erased at build, so they always come from the polyfill.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Temporal {\n // Add new Temporal.* member types here the first time they are referenced\n // from this module. Omissions fail loudly at typecheck, never silently.\n export type Instant = PolyfillTemporal.Instant;\n export type ZonedDateTime = PolyfillTemporal.ZonedDateTime;\n export type PlainDate = PolyfillTemporal.PlainDate;\n export type PlainDateLike = PolyfillTemporal.PlainDateLike;\n export type PlainDateTime = PolyfillTemporal.PlainDateTime;\n export type PlainTime = PolyfillTemporal.PlainTime;\n export type PlainTimeLike = PolyfillTemporal.PlainTimeLike;\n export type PlainYearMonth = PolyfillTemporal.PlainYearMonth;\n}\n\n/**\n * @internal\n * Implementation-agnostic type guards. The Temporal spec requires every\n * implementation to set `Symbol.toStringTag`, so these work regardless of which\n * implementation produced the object.\n */\nfunction brand(value: unknown): string | undefined {\n return typeof value === \"object\" && value !== null\n ? (value as { [Symbol.toStringTag]?: string })[Symbol.toStringTag]\n : undefined;\n}\n\nexport function isInstant(value: unknown): value is Temporal.Instant {\n return brand(value) === \"Temporal.Instant\";\n}\n\nexport function isZonedDateTime(value: unknown): value is Temporal.ZonedDateTime {\n return brand(value) === \"Temporal.ZonedDateTime\";\n}\n\nexport function isPlainDate(value: unknown): value is Temporal.PlainDate {\n return brand(value) === \"Temporal.PlainDate\";\n}\n"],"mappings":";AAAA,SAAS,YAAY,wBAAwB;AAwB7C,IAAM,YAAY,QAAQ,IAAI,oBAAoB,YAAY,cAAc;AAErE,IAAM,WAAW,YACnB,WAAgE,WACjE;AA6BJ,SAAS,MAAM,OAAoC;AACjD,SAAO,OAAO,UAAU,YAAY,UAAU,OACzC,MAA4C,OAAO,WAAW,IAC/D;AACN;AAEO,SAAS,UAAU,OAA2C;AACnE,SAAO,MAAM,KAAK,MAAM;AAC1B;AAEO,SAAS,gBAAgB,OAAiD;AAC/E,SAAO,MAAM,KAAK,MAAM;AAC1B;AAEO,SAAS,YAAY,OAA6C;AACvE,SAAO,MAAM,KAAK,MAAM;AAC1B;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/roundToNearestSecond.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\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 +0,0 @@
1
- {"version":3,"sources":["../src/toIso9075.ts"],"sourcesContent":["import { isInstant } from './shared/temporal';\nimport type { Temporal } from '@js-temporal/polyfill';\n\nexport type Iso9075Mode = 'utc' | 'local';\nexport type Iso9075Representation = 'complete' | 'date' | 'time';\n\nexport interface ToIso9075Options {\n /**\n * Which time to output.\n * - 'utc' (default): convert to UTC before formatting\n * - 'local': use the local time of the ZonedDateTime\n */\n mode?: Iso9075Mode;\n /**\n * What to include in the output.\n * - 'complete' (default): date and time (2019-09-18 19:00:52)\n * - 'date': date only (2019-09-18)\n * - 'time': time only (19:00:52)\n */\n representation?: Iso9075Representation;\n}\n\n/**\n * Convert a Temporal.Instant to an ISO 9075 (SQL) formatted string in UTC.\n */\nexport function toIso9075(\n input: Temporal.Instant,\n options?: Omit<ToIso9075Options, 'mode'>\n): string;\n\n/**\n * Convert a Temporal.ZonedDateTime to an ISO 9075 (SQL) formatted string.\n *\n * @param input - A Temporal.ZonedDateTime\n * @param options - Format options\n *\n * @example\n * ```typescript\n * const zoned = Temporal.ZonedDateTime.from(\"2025-01-20T15:00:00-05:00[America/New_York]\");\n *\n * toIso9075(zoned); // \"2025-01-20 20:00:00\" (UTC, default)\n * toIso9075(zoned, { mode: 'utc' }); // \"2025-01-20 20:00:00\"\n * toIso9075(zoned, { mode: 'local' }); // \"2025-01-20 15:00:00\"\n * toIso9075(zoned, { representation: 'date' }); // \"2025-01-20\"\n * toIso9075(zoned, { representation: 'time' }); // \"20:00:00\"\n * ```\n */\nexport function toIso9075(\n input: Temporal.ZonedDateTime,\n options?: ToIso9075Options\n): string;\n\nexport function toIso9075(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n options: ToIso9075Options = {}\n): string {\n const { mode = 'utc', representation = 'complete' } = options;\n\n let zdt: Temporal.ZonedDateTime;\n\n if (isInstant(input)) {\n zdt = input.toZonedDateTimeISO('UTC');\n } else {\n // ZonedDateTime: apply mode\n zdt = mode === 'utc' ? input.toInstant().toZonedDateTimeISO('UTC') : input;\n }\n\n const year = zdt.year;\n const month = zdt.month;\n const day = zdt.day;\n const hour = zdt.hour;\n const minute = zdt.minute;\n const second = zdt.second;\n\n const datePart = `${year}-${pad(month)}-${pad(day)}`;\n const timePart = `${pad(hour)}:${pad(minute)}:${pad(second)}`;\n\n if (representation === 'date') return datePart;\n if (representation === 'time') return timePart;\n return `${datePart} ${timePart}`;\n}\n\nfunction pad(n: number): string {\n return n.toString().padStart(2, '0');\n}\n"],"mappings":";;;;;AAoDO,SAAS,UACd,OACA,UAA4B,CAAC,GACrB;AACR,QAAM,EAAE,OAAO,OAAO,iBAAiB,WAAW,IAAI;AAEtD,MAAI;AAEJ,MAAI,UAAU,KAAK,GAAG;AACpB,UAAM,MAAM,mBAAmB,KAAK;AAAA,EACtC,OAAO;AAEL,UAAM,SAAS,QAAQ,MAAM,UAAU,EAAE,mBAAmB,KAAK,IAAI;AAAA,EACvE;AAEA,QAAM,OAAO,IAAI;AACjB,QAAM,QAAQ,IAAI;AAClB,QAAM,MAAM,IAAI;AAChB,QAAM,OAAO,IAAI;AACjB,QAAM,SAAS,IAAI;AACnB,QAAM,SAAS,IAAI;AAEnB,QAAM,WAAW,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC;AAClD,QAAM,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;AAE3D,MAAI,mBAAmB,OAAQ,QAAO;AACtC,MAAI,mBAAmB,OAAQ,QAAO;AACtC,SAAO,GAAG,QAAQ,IAAI,QAAQ;AAChC;AAEA,SAAS,IAAI,GAAmB;AAC9B,SAAO,EAAE,SAAS,EAAE,SAAS,GAAG,GAAG;AACrC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/isSameMonth.ts"],"sourcesContent":["import type{ Temporal } from '@js-temporal/polyfill';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns true if both datetimes fall in the same calendar month and year.\n * Compares the year and month 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 calendar month, false otherwise\n *\n * @example\n * ```ts\n * // Same timezone, same month\n * const start = Temporal.ZonedDateTime.from('2025-01-01T08:00:00Z[UTC]');\n * const end = Temporal.ZonedDateTime.from('2025-01-31T23:59:59Z[UTC]');\n *\n * isSameMonth(start, end); // true\n * ```\n *\n * @example\n * ```ts\n * // Same timezone, different months\n * const jan = Temporal.ZonedDateTime.from('2025-01-31T23:59:59Z[UTC]');\n * const feb = Temporal.ZonedDateTime.from('2025-02-01T00:00:00Z[UTC]');\n *\n * isSameMonth(jan, feb); // false\n * ```\n *\n * @example\n * ```ts\n * // Different timezones - compares their local calendar months\n * const ny = Temporal.ZonedDateTime.from('2025-01-31T23:00:00-05:00[America/New_York]');\n * const tokyo = Temporal.ZonedDateTime.from('2025-02-01T13:00:00+09:00[Asia/Tokyo]');\n *\n * // Same instant, different calendar months from each person's perspective\n * isSameMonth(ny, tokyo); // false (Jan in NY, Feb in Tokyo)\n *\n * // Convert to UTC to compare in UTC timezone\n * isSameMonth(ny.withTimeZone('UTC'), tokyo.withTimeZone('UTC')); // true (both Feb in UTC)\n *\n * // Convert to NY timezone to compare from NY perspective\n * isSameMonth(ny, tokyo.withTimeZone('America/New_York')); // true (both Jan in NY)\n * ```\n *\n * @example\n * ```ts\n * // Instant inputs are converted to UTC\n * const instant1 = Temporal.Instant.from('2025-01-01T00:00:00Z');\n * const instant2 = Temporal.Instant.from('2025-01-31T23:59:59Z');\n *\n * isSameMonth(instant1, instant2); // true (both Jan 2025 in UTC)\n * ```\n */\nexport function isSameMonth(\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 zoned1.year === zoned2.year && zoned1.month === zoned2.month;\n}\n"],"mappings":";;;;;AA0DO,SAAS,YACd,OACA,OACS;AACT,QAAM,SAAS,uBAAuB,KAAK;AAC3C,QAAM,SAAS,uBAAuB,KAAK;AAE3C,SAAO,OAAO,SAAS,OAAO,QAAQ,OAAO,UAAU,OAAO;AAChE;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/isSameMicrosecond.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns true if both datetimes fall in the same microsecond.\n * Compares the year, month, day, hour, minute, second, millisecond, and microsecond fields directly.\n * Ignores sub-microsecond precision (nanoseconds).\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 microsecond, false otherwise\n *\n * @example\n * ```ts\n * // Same timezone, same microsecond\n * const time1 = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.123456Z[UTC]');\n * const time2 = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.123456999Z[UTC]');\n *\n * isSameMicrosecond(time1, time2); // true\n * ```\n *\n * @example\n * ```ts\n * // Same timezone, different microseconds\n * const us456 = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.123456Z[UTC]');\n * const us457 = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.123457Z[UTC]');\n *\n * isSameMicrosecond(us456, us457); // false\n * ```\n *\n * @example\n * ```ts\n * // Different timezones - compares their local microseconds\n * const ny = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.123456-05:00[America/New_York]');\n * const tokyo = Temporal.ZonedDateTime.from('2025-01-21T04:30:45.987654+09:00[Asia/Tokyo]');\n *\n * // Same instant, different local microseconds from each person's perspective\n * isSameMicrosecond(ny, tokyo); // false (14:30:45.123456 in NY, 04:30:45.987654 in Tokyo)\n *\n * // Convert to UTC to compare in UTC timezone\n * isSameMicrosecond(ny.withTimeZone('UTC'), tokyo.withTimeZone('UTC')); // true (both 19:30:45.123456 in UTC)\n *\n * // Convert to NY timezone to compare from NY perspective\n * isSameMicrosecond(ny, tokyo.withTimeZone('America/New_York')); // true (both 14:30:45.123456 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:45.123456789Z');\n * const instant2 = Temporal.Instant.from('2025-01-20T14:30:45.123456999Z');\n *\n * isSameMicrosecond(instant1, instant2); // true (both 14:30:45.123456 in UTC)\n * ```\n */\nexport function isSameMicrosecond(\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 zoned1.second === zoned2.second &&\n zoned1.millisecond === zoned2.millisecond &&\n zoned1.microsecond === zoned2.microsecond\n );\n}\n"],"mappings":";;;;;AA2DO,SAAS,kBACd,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,UACzB,OAAO,WAAW,OAAO,UACzB,OAAO,gBAAgB,OAAO,eAC9B,OAAO,gBAAgB,OAAO;AAElC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/isSameMillisecond.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns true if both datetimes fall in the same millisecond.\n * Compares the year, month, day, hour, minute, second, and millisecond fields directly.\n * Ignores sub-millisecond precision (microseconds, nanoseconds).\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 millisecond, false otherwise\n *\n * @example\n * ```ts\n * // Same timezone, same millisecond\n * const time1 = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.123Z[UTC]');\n * const time2 = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.123999Z[UTC]');\n *\n * isSameMillisecond(time1, time2); // true\n * ```\n *\n * @example\n * ```ts\n * // Same timezone, different milliseconds\n * const ms123 = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.123Z[UTC]');\n * const ms124 = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.124Z[UTC]');\n *\n * isSameMillisecond(ms123, ms124); // false\n * ```\n *\n * @example\n * ```ts\n * // Different timezones - compares their local milliseconds\n * const ny = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.123-05:00[America/New_York]');\n * const tokyo = Temporal.ZonedDateTime.from('2025-01-21T04:30:45.987+09:00[Asia/Tokyo]');\n *\n * // Same instant, different local milliseconds from each person's perspective\n * isSameMillisecond(ny, tokyo); // false (14:30:45.123 in NY, 04:30:45.987 in Tokyo)\n *\n * // Convert to UTC to compare in UTC timezone\n * isSameMillisecond(ny.withTimeZone('UTC'), tokyo.withTimeZone('UTC')); // true (both 19:30:45.123 in UTC)\n *\n * // Convert to NY timezone to compare from NY perspective\n * isSameMillisecond(ny, tokyo.withTimeZone('America/New_York')); // true (both 14:30:45.123 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:45.123456Z');\n * const instant2 = Temporal.Instant.from('2025-01-20T14:30:45.123999Z');\n *\n * isSameMillisecond(instant1, instant2); // true (both 14:30:45.123 in UTC)\n * ```\n */\nexport function isSameMillisecond(\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 zoned1.second === zoned2.second &&\n zoned1.millisecond === zoned2.millisecond\n );\n}\n"],"mappings":";;;;;AA2DO,SAAS,kBACd,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,UACzB,OAAO,WAAW,OAAO,UACzB,OAAO,gBAAgB,OAAO;AAElC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/addQuarters.ts"],"sourcesContent":["import type { Temporal } from \"@js-temporal/polyfill\";\nimport { isPlainDate } from \"./shared/temporal\";\nimport { normalizeTemporalInput } from \"./shared/normalizeTemporalInput\";\n\n/**\n * Adds the specified number of quarters (3-month blocks) to a datetime or date.\n *\n * Properly handles month-end dates and calendar edge cases through Temporal API.\n * Instant inputs are converted to UTC; ZonedDateTime inputs preserve their\n * timezone. PlainDate inputs stay in calendar space and return a PlainDate.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @param quarters - Number of quarters to add (can be negative to subtract)\n * @returns A ZonedDateTime (for Instant/ZonedDateTime) with the quarters added\n *\n * @example\n * ```ts\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00Z');\n * addQuarters(instant, 2);\n * // 2025-07-20T12:00:00Z[UTC] (6 months later)\n * ```\n *\n * @example\n * ```ts\n * // Calendar arithmetic on a date stays a date\n * addQuarters(Temporal.PlainDate.from('2025-01-31'), 1);\n * // 2025-04-30 (Jan 31 → Apr 30)\n * ```\n */\nexport function addQuarters(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n quarters: number,\n): Temporal.ZonedDateTime;\nexport function addQuarters(input: Temporal.PlainDate, quarters: number): Temporal.PlainDate;\nexport function addQuarters(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n quarters: number,\n): Temporal.ZonedDateTime | Temporal.PlainDate {\n if (isPlainDate(input)) {\n return input.add({ months: quarters * 3 });\n }\n return normalizeTemporalInput(input).add({ months: quarters * 3 });\n}\n"],"mappings":";;;;;;;;AAkCO,SAAS,YACd,OACA,UAC6C;AAC7C,MAAI,YAAY,KAAK,GAAG;AACtB,WAAO,MAAM,IAAI,EAAE,QAAQ,WAAW,EAAE,CAAC;AAAA,EAC3C;AACA,SAAO,uBAAuB,KAAK,EAAE,IAAI,EAAE,QAAQ,WAAW,EAAE,CAAC;AACnE;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/subMicroseconds.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\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":[]}