@northguild/gmt 1.18.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (593) hide show
  1. package/README.md +55 -2920
  2. package/dist/calendar/calculate/bucketRange.d.ts +10 -2
  3. package/dist/calendar/calculate/bucketRange.js +18 -61
  4. package/dist/calendar/calculate/floorToZone.d.ts +10 -2
  5. package/dist/calendar/calculate/floorToZone.js +15 -7
  6. package/dist/calendar/hours/addOperatingTime.d.ts +6 -0
  7. package/dist/calendar/hours/addOperatingTime.js +7 -1
  8. package/dist/calendar/hours/isOpenAt.d.ts +6 -0
  9. package/dist/calendar/hours/isOpenAt.js +6 -0
  10. package/dist/calendar/hours/nextCloseAt.d.ts +6 -0
  11. package/dist/calendar/hours/nextCloseAt.js +7 -1
  12. package/dist/calendar/hours/nextOpenAt.d.ts +6 -0
  13. package/dist/calendar/hours/nextOpenAt.js +7 -1
  14. package/dist/calendar/hours/operatingIntervals.d.ts +5 -0
  15. package/dist/calendar/hours/operatingIntervals.js +5 -0
  16. package/dist/calendar/hours/operatingTimeBetween.d.ts +5 -0
  17. package/dist/calendar/hours/operatingTimeBetween.js +5 -0
  18. package/dist/calendar/hours/recurringWindows.d.ts +8 -1
  19. package/dist/calendar/hours/recurringWindows.js +12 -4
  20. package/dist/duration/calculate/durationFromUnits.d.ts +47 -0
  21. package/dist/duration/calculate/durationFromUnits.js +67 -0
  22. package/dist/duration/calculate/getDurationUnit.d.ts +2 -2
  23. package/dist/duration/calculate/getDurationUnit.js +2 -2
  24. package/dist/duration/calculate/index.d.ts +3 -1
  25. package/dist/duration/calculate/index.js +3 -1
  26. package/dist/duration/calculate/negateDuration.d.ts +1 -1
  27. package/dist/duration/calculate/negateDuration.js +1 -1
  28. package/dist/duration/calculate/{durationAs.d.ts → totalDuration.d.ts} +25 -19
  29. package/dist/duration/calculate/{durationAs.js → totalDuration.js} +25 -19
  30. package/dist/duration/calculate/totalUnits.d.ts +49 -0
  31. package/dist/duration/calculate/totalUnits.js +73 -0
  32. package/dist/duration/compare/compareDurations.d.ts +1 -1
  33. package/dist/duration/compare/compareDurations.js +1 -1
  34. package/dist/duty/calculate/dutyDayFor.d.ts +38 -0
  35. package/dist/duty/calculate/dutyDayFor.js +71 -0
  36. package/dist/duty/calculate/dutyTotals.d.ts +24 -0
  37. package/dist/duty/calculate/dutyTotals.js +41 -0
  38. package/dist/duty/calculate/dutyViolations.d.ts +74 -0
  39. package/dist/duty/calculate/dutyViolations.js +65 -0
  40. package/dist/duty/calculate/evaluateDutyLog.d.ts +77 -0
  41. package/dist/duty/calculate/evaluateDutyLog.js +75 -0
  42. package/dist/duty/calculate/index.d.ts +7 -0
  43. package/dist/duty/calculate/index.js +7 -0
  44. package/dist/duty/calculate/longestRun.d.ts +28 -0
  45. package/dist/duty/calculate/longestRun.js +54 -0
  46. package/dist/duty/calculate/qualifyingRestPairs.d.ts +37 -0
  47. package/dist/duty/calculate/qualifyingRestPairs.js +58 -0
  48. package/dist/duty/calculate/qualifyingRests.d.ts +27 -0
  49. package/dist/duty/calculate/qualifyingRests.js +49 -0
  50. package/dist/duty/index.d.ts +3 -0
  51. package/dist/duty/index.js +4 -0
  52. package/dist/duty/validate/index.d.ts +1 -0
  53. package/dist/duty/validate/index.js +1 -0
  54. package/dist/duty/validate/isValidDutyLog.d.ts +24 -0
  55. package/dist/duty/validate/isValidDutyLog.js +34 -0
  56. package/dist/index.d.ts +1 -0
  57. package/dist/index.js +1 -0
  58. package/dist/instant/convert/classifyLocal.d.ts +5 -1
  59. package/dist/instant/convert/classifyLocal.js +16 -6
  60. package/dist/instant/convert/fromOffsetInstant.d.ts +4 -0
  61. package/dist/instant/convert/fromOffsetInstant.js +6 -1
  62. package/dist/instant/convert/resolveLocal.d.ts +7 -2
  63. package/dist/instant/convert/resolveLocal.js +16 -8
  64. package/dist/instant/convert/toOffsetInstant.d.ts +12 -8
  65. package/dist/instant/convert/toOffsetInstant.js +19 -11
  66. package/dist/instant/index.d.ts +1 -0
  67. package/dist/instant/index.js +1 -0
  68. package/dist/instant/validate/index.d.ts +1 -0
  69. package/dist/instant/validate/index.js +1 -0
  70. package/dist/instant/validate/isValidUtcOffset.d.ts +32 -0
  71. package/dist/instant/validate/isValidUtcOffset.js +35 -0
  72. package/dist/intermodal/calculate/chargeableDays.d.ts +6 -0
  73. package/dist/intermodal/calculate/chargeableDays.js +12 -4
  74. package/dist/intermodal/calculate/freeTimeExpiry.d.ts +7 -0
  75. package/dist/intermodal/calculate/freeTimeExpiry.js +15 -4
  76. package/dist/intermodal/calculate/index.d.ts +1 -0
  77. package/dist/intermodal/calculate/index.js +1 -0
  78. package/dist/intermodal/calculate/multimodalETA.d.ts +76 -0
  79. package/dist/intermodal/calculate/multimodalETA.js +145 -0
  80. package/dist/intermodal/format/bolTimestamp.d.ts +76 -0
  81. package/dist/intermodal/format/bolTimestamp.js +78 -0
  82. package/dist/intermodal/format/formatEdifactDate.d.ts +34 -0
  83. package/dist/intermodal/format/formatEdifactDate.js +42 -0
  84. package/dist/intermodal/format/formatEdifactDatePeriod.d.ts +35 -0
  85. package/dist/intermodal/format/formatEdifactDatePeriod.js +43 -0
  86. package/dist/intermodal/format/formatEdifactDateTime.d.ts +37 -0
  87. package/dist/intermodal/format/formatEdifactDateTime.js +45 -0
  88. package/dist/intermodal/format/formatEdifactDateTimePeriod.d.ts +40 -0
  89. package/dist/intermodal/format/formatEdifactDateTimePeriod.js +48 -0
  90. package/dist/intermodal/format/formatEdifactOffsetDateTime.d.ts +62 -0
  91. package/dist/intermodal/format/formatEdifactOffsetDateTime.js +70 -0
  92. package/dist/intermodal/format/formatEdifactTime.d.ts +35 -0
  93. package/dist/intermodal/format/formatEdifactTime.js +43 -0
  94. package/dist/intermodal/format/formatEpcisEvent.d.ts +47 -0
  95. package/dist/intermodal/format/formatEpcisEvent.js +79 -0
  96. package/dist/intermodal/format/formatX12Date.d.ts +35 -0
  97. package/dist/intermodal/format/formatX12Date.js +43 -0
  98. package/dist/intermodal/format/formatX12DateRange.d.ts +37 -0
  99. package/dist/intermodal/format/formatX12DateRange.js +45 -0
  100. package/dist/intermodal/format/formatX12DateTime.d.ts +39 -0
  101. package/dist/intermodal/format/formatX12DateTime.js +47 -0
  102. package/dist/intermodal/format/formatX12DateTimeRange.d.ts +40 -0
  103. package/dist/intermodal/format/formatX12DateTimeRange.js +48 -0
  104. package/dist/intermodal/format/formatX12Time.d.ts +42 -0
  105. package/dist/intermodal/format/formatX12Time.js +50 -0
  106. package/dist/intermodal/format/formatX12TimeElement.d.ts +46 -0
  107. package/dist/intermodal/format/formatX12TimeElement.js +54 -0
  108. package/dist/intermodal/format/index.d.ts +14 -0
  109. package/dist/intermodal/format/index.js +14 -0
  110. package/dist/intermodal/index.d.ts +3 -0
  111. package/dist/intermodal/index.js +3 -0
  112. package/dist/intermodal/parse/classifyEdifactDtmFormat.d.ts +48 -0
  113. package/dist/intermodal/parse/classifyEdifactDtmFormat.js +55 -0
  114. package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.d.ts +50 -0
  115. package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.js +57 -0
  116. package/dist/intermodal/parse/classifyX12TimeCode.d.ts +46 -0
  117. package/dist/intermodal/parse/classifyX12TimeCode.js +57 -0
  118. package/dist/intermodal/parse/index.d.ts +18 -0
  119. package/dist/intermodal/parse/index.js +18 -0
  120. package/dist/intermodal/parse/parseEdifactDate.d.ts +37 -0
  121. package/dist/intermodal/parse/parseEdifactDate.js +45 -0
  122. package/dist/intermodal/parse/parseEdifactDatePeriod.d.ts +43 -0
  123. package/dist/intermodal/parse/parseEdifactDatePeriod.js +51 -0
  124. package/dist/intermodal/parse/parseEdifactDateTime.d.ts +43 -0
  125. package/dist/intermodal/parse/parseEdifactDateTime.js +51 -0
  126. package/dist/intermodal/parse/parseEdifactDateTimePeriod.d.ts +45 -0
  127. package/dist/intermodal/parse/parseEdifactDateTimePeriod.js +53 -0
  128. package/dist/intermodal/parse/parseEdifactOffsetDateTime.d.ts +60 -0
  129. package/dist/intermodal/parse/parseEdifactOffsetDateTime.js +68 -0
  130. package/dist/intermodal/parse/parseEdifactTime.d.ts +37 -0
  131. package/dist/intermodal/parse/parseEdifactTime.js +45 -0
  132. package/dist/intermodal/parse/parseEpcisEvent.d.ts +95 -0
  133. package/dist/intermodal/parse/parseEpcisEvent.js +102 -0
  134. package/dist/intermodal/parse/parseX12Date.d.ts +39 -0
  135. package/dist/intermodal/parse/parseX12Date.js +47 -0
  136. package/dist/intermodal/parse/parseX12DateAndTime.d.ts +52 -0
  137. package/dist/intermodal/parse/parseX12DateAndTime.js +61 -0
  138. package/dist/intermodal/parse/parseX12DateRange.d.ts +44 -0
  139. package/dist/intermodal/parse/parseX12DateRange.js +52 -0
  140. package/dist/intermodal/parse/parseX12DateTime.d.ts +45 -0
  141. package/dist/intermodal/parse/parseX12DateTime.js +53 -0
  142. package/dist/intermodal/parse/parseX12DateTimeRange.d.ts +46 -0
  143. package/dist/intermodal/parse/parseX12DateTimeRange.js +54 -0
  144. package/dist/intermodal/parse/parseX12Time.d.ts +65 -0
  145. package/dist/intermodal/parse/parseX12Time.js +77 -0
  146. package/dist/intermodal/parse/x12TimeCodeOffset.d.ts +57 -0
  147. package/dist/intermodal/parse/x12TimeCodeOffset.js +110 -0
  148. package/dist/intermodal/parse/x12TimeCodeZone.d.ts +57 -0
  149. package/dist/intermodal/parse/x12TimeCodeZone.js +105 -0
  150. package/dist/intermodal/validate/index.d.ts +18 -0
  151. package/dist/intermodal/validate/index.js +18 -0
  152. package/dist/intermodal/validate/isValidEdifactDate.d.ts +26 -0
  153. package/dist/intermodal/validate/isValidEdifactDate.js +28 -0
  154. package/dist/intermodal/validate/isValidEdifactDatePeriod.d.ts +28 -0
  155. package/dist/intermodal/validate/isValidEdifactDatePeriod.js +30 -0
  156. package/dist/intermodal/validate/isValidEdifactDateTime.d.ts +30 -0
  157. package/dist/intermodal/validate/isValidEdifactDateTime.js +32 -0
  158. package/dist/intermodal/validate/isValidEdifactDateTimePeriod.d.ts +28 -0
  159. package/dist/intermodal/validate/isValidEdifactDateTimePeriod.js +30 -0
  160. package/dist/intermodal/validate/isValidEdifactDtmFormat.d.ts +39 -0
  161. package/dist/intermodal/validate/isValidEdifactDtmFormat.js +42 -0
  162. package/dist/intermodal/validate/isValidEdifactOffsetDateTime.d.ts +36 -0
  163. package/dist/intermodal/validate/isValidEdifactOffsetDateTime.js +38 -0
  164. package/dist/intermodal/validate/isValidEdifactTime.d.ts +28 -0
  165. package/dist/intermodal/validate/isValidEdifactTime.js +30 -0
  166. package/dist/intermodal/validate/isValidEpcisEvent.d.ts +41 -0
  167. package/dist/intermodal/validate/isValidEpcisEvent.js +58 -0
  168. package/dist/intermodal/validate/isValidEpcisEventTime.d.ts +33 -0
  169. package/dist/intermodal/validate/isValidEpcisEventTime.js +48 -0
  170. package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.d.ts +30 -0
  171. package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.js +38 -0
  172. package/dist/intermodal/validate/isValidX12Date.d.ts +28 -0
  173. package/dist/intermodal/validate/isValidX12Date.js +30 -0
  174. package/dist/intermodal/validate/isValidX12DateAndTime.d.ts +32 -0
  175. package/dist/intermodal/validate/isValidX12DateAndTime.js +35 -0
  176. package/dist/intermodal/validate/isValidX12DateRange.d.ts +29 -0
  177. package/dist/intermodal/validate/isValidX12DateRange.js +31 -0
  178. package/dist/intermodal/validate/isValidX12DateTime.d.ts +30 -0
  179. package/dist/intermodal/validate/isValidX12DateTime.js +32 -0
  180. package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.d.ts +43 -0
  181. package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.js +46 -0
  182. package/dist/intermodal/validate/isValidX12DateTimeRange.d.ts +31 -0
  183. package/dist/intermodal/validate/isValidX12DateTimeRange.js +33 -0
  184. package/dist/intermodal/validate/isValidX12Time.d.ts +38 -0
  185. package/dist/intermodal/validate/isValidX12Time.js +40 -0
  186. package/dist/intermodal/validate/isValidX12TimeCode.d.ts +38 -0
  187. package/dist/intermodal/validate/isValidX12TimeCode.js +41 -0
  188. package/dist/internal/businessCalendar.js +4 -9
  189. package/dist/internal/dutyEngine.d.ts +125 -0
  190. package/dist/internal/dutyEngine.js +1746 -0
  191. package/dist/internal/dutyLog.d.ts +27 -0
  192. package/dist/internal/dutyLog.js +47 -0
  193. package/dist/internal/dutyPeriods.d.ts +135 -0
  194. package/dist/internal/dutyPeriods.js +369 -0
  195. package/dist/internal/dutyRules.d.ts +197 -0
  196. package/dist/internal/dutyRules.js +484 -0
  197. package/dist/internal/ediDateTimeFields.d.ts +97 -0
  198. package/dist/internal/ediDateTimeFields.js +288 -0
  199. package/dist/internal/ediDateTimeWriter.d.ts +92 -0
  200. package/dist/internal/ediDateTimeWriter.js +298 -0
  201. package/dist/internal/ediGrammar.d.ts +158 -0
  202. package/dist/internal/ediGrammar.js +384 -0
  203. package/dist/internal/englishCalendarNames.d.ts +3 -1
  204. package/dist/internal/englishCalendarNames.js +3 -1
  205. package/dist/internal/freeTimeLedger.d.ts +5 -0
  206. package/dist/internal/freeTimeLedger.js +11 -2
  207. package/dist/internal/index.d.ts +5 -2
  208. package/dist/internal/index.js +9 -2
  209. package/dist/internal/intervalNanoseconds.js +2 -1
  210. package/dist/internal/isObject.d.ts +13 -6
  211. package/dist/internal/isObject.js +14 -7
  212. package/dist/internal/isoYearString.d.ts +21 -0
  213. package/dist/internal/isoYearString.js +27 -0
  214. package/dist/internal/maxPieces.js +2 -1
  215. package/dist/internal/normalizeTimeZone.d.ts +4 -1
  216. package/dist/internal/normalizeTimeZone.js +4 -1
  217. package/dist/internal/operatingSchedule.d.ts +13 -4
  218. package/dist/internal/operatingSchedule.js +146 -58
  219. package/dist/internal/patternToken.d.ts +10 -3
  220. package/dist/internal/patternToken.js +31 -12
  221. package/dist/internal/readDurationUnits.d.ts +34 -0
  222. package/dist/internal/readDurationUnits.js +78 -0
  223. package/dist/internal/readSetFields.d.ts +50 -0
  224. package/dist/internal/readSetFields.js +179 -0
  225. package/dist/internal/resolveRelativeUnit.d.ts +1 -1
  226. package/dist/internal/resolveRelativeUnit.js +1 -1
  227. package/dist/internal/resolveUnixIntervalPair.d.ts +8 -2
  228. package/dist/internal/resolveUnixIntervalPair.js +11 -7
  229. package/dist/internal/startOrEndOfUnix.d.ts +2 -1
  230. package/dist/internal/startOrEndOfUnix.js +9 -6
  231. package/dist/internal/twoDigitYear.d.ts +19 -0
  232. package/dist/internal/twoDigitYear.js +22 -0
  233. package/dist/internal/unixEpochValue.js +3 -2
  234. package/dist/internal/unixWallClock.d.ts +24 -0
  235. package/dist/internal/unixWallClock.js +35 -0
  236. package/dist/internal/utcWallClock.d.ts +20 -0
  237. package/dist/internal/utcWallClock.js +32 -0
  238. package/dist/internal/yearWindowStart.d.ts +28 -0
  239. package/dist/internal/yearWindowStart.js +52 -0
  240. package/dist/internal/zoneBucketCap.d.ts +18 -0
  241. package/dist/internal/zoneBucketCap.js +64 -0
  242. package/dist/internal/zoneFrame.d.ts +180 -0
  243. package/dist/internal/zoneFrame.js +221 -0
  244. package/dist/internal/zonedNowUnitValue.d.ts +7 -4
  245. package/dist/internal/zonedNowUnitValue.js +8 -4
  246. package/dist/internal/zonedWallClockDifference.js +4 -4
  247. package/dist/internal/zonedWallClockOperations.d.ts +5 -2
  248. package/dist/internal/zonedWallClockOperations.js +7 -10
  249. package/dist/plain/calculate/addDate.js +4 -7
  250. package/dist/plain/calculate/addDateTime.js +4 -7
  251. package/dist/plain/calculate/addTime.js +4 -7
  252. package/dist/plain/calculate/endOfTime.d.ts +1 -1
  253. package/dist/plain/calculate/setDate.d.ts +20 -3
  254. package/dist/plain/calculate/setDate.js +27 -7
  255. package/dist/plain/calculate/setDateTime.d.ts +15 -3
  256. package/dist/plain/calculate/setDateTime.js +22 -7
  257. package/dist/plain/calculate/setTime.d.ts +13 -1
  258. package/dist/plain/calculate/setTime.js +21 -6
  259. package/dist/plain/calculate/startOfTime.d.ts +1 -1
  260. package/dist/plain/calculate/subtractDate.js +4 -7
  261. package/dist/plain/calculate/subtractDateTime.js +4 -7
  262. package/dist/plain/calculate/subtractTime.js +4 -7
  263. package/dist/plain/format/formatCalendar.js +2 -1
  264. package/dist/plain/format/formatRelativeDate.js +2 -1
  265. package/dist/plain/format/formatRelativeDateTime.js +2 -1
  266. package/dist/plain/format/formatRelativeTime.js +2 -1
  267. package/dist/plain/format/{formatSql.d.ts → formatSqlDateTime.d.ts} +7 -7
  268. package/dist/plain/format/{formatSql.js → formatSqlDateTime.js} +7 -7
  269. package/dist/plain/format/index.d.ts +1 -1
  270. package/dist/plain/format/index.js +1 -1
  271. package/dist/plain/get/getNowUnit.d.ts +2 -0
  272. package/dist/plain/get/getNowUnit.js +2 -0
  273. package/dist/plain/get/getYear.d.ts +2 -0
  274. package/dist/plain/get/getYear.js +4 -3
  275. package/dist/plain/interval/intervalXorAllDate.js +2 -2
  276. package/dist/plain/interval/intervalXorAllDateTime.js +2 -2
  277. package/dist/plain/interval/intervalXorAllTime.js +2 -2
  278. package/dist/plain/interval/mergeIntervalsDate.js +2 -2
  279. package/dist/plain/interval/mergeIntervalsDateTime.js +2 -2
  280. package/dist/plain/interval/mergeIntervalsTime.js +2 -2
  281. package/dist/plain/parse/index.d.ts +1 -1
  282. package/dist/plain/parse/index.js +1 -1
  283. package/dist/plain/parse/parseDateTimeWithPattern.d.ts +16 -3
  284. package/dist/plain/parse/parseDateTimeWithPattern.js +20 -5
  285. package/dist/plain/parse/parseDateWithPattern.d.ts +17 -3
  286. package/dist/plain/parse/parseDateWithPattern.js +21 -5
  287. package/dist/plain/parse/{parseSql.d.ts → parseSqlDateTime.d.ts} +8 -8
  288. package/dist/plain/parse/{parseSql.js → parseSqlDateTime.js} +8 -8
  289. package/dist/plain/parse/parseTimeWithPattern.js +1 -0
  290. package/dist/plain/parse/parseUnitFromDate.d.ts +3 -0
  291. package/dist/plain/parse/parseUnitFromDate.js +5 -1
  292. package/dist/plain/parse/parseUnitFromDateTime.d.ts +3 -0
  293. package/dist/plain/parse/parseUnitFromDateTime.js +5 -1
  294. package/dist/plain/parse/parseYearFromDate.d.ts +5 -2
  295. package/dist/plain/parse/parseYearFromDate.js +7 -3
  296. package/dist/plain/parse/parseYearFromDateTime.d.ts +4 -2
  297. package/dist/plain/parse/parseYearFromDateTime.js +6 -3
  298. package/dist/plain/validate/index.d.ts +1 -0
  299. package/dist/plain/validate/index.js +1 -0
  300. package/dist/plain/validate/isValidSqlDateTime.d.ts +33 -0
  301. package/dist/plain/validate/isValidSqlDateTime.js +36 -0
  302. package/dist/precision/convert/fromNanoseconds.d.ts +9 -3
  303. package/dist/precision/convert/fromNanoseconds.js +9 -3
  304. package/dist/regex/epcis.d.ts +60 -0
  305. package/dist/regex/epcis.js +60 -0
  306. package/dist/regex/http-date.d.ts +6 -4
  307. package/dist/regex/http-date.js +6 -4
  308. package/dist/regex/index.d.ts +1 -0
  309. package/dist/regex/index.js +1 -0
  310. package/dist/regex/rfc-2822.d.ts +2 -0
  311. package/dist/regex/rfc-2822.js +2 -0
  312. package/dist/regex/rfc-3339.d.ts +3 -1
  313. package/dist/regex/rfc-3339.js +3 -1
  314. package/dist/regex/sql-date-time.d.ts +2 -1
  315. package/dist/regex/sql-date-time.js +2 -1
  316. package/dist/regex/time-zone-like.d.ts +3 -2
  317. package/dist/regex/time-zone-like.js +3 -2
  318. package/dist/regex/utc-offset.d.ts +2 -1
  319. package/dist/regex/utc-offset.js +2 -1
  320. package/dist/transport/calculate/crossingTime.d.ts +6 -1
  321. package/dist/transport/calculate/crossingTime.js +6 -1
  322. package/dist/transport/calculate/cutoffAt.d.ts +6 -1
  323. package/dist/transport/calculate/cutoffAt.js +2 -0
  324. package/dist/transport/calculate/cutoffSchedule.d.ts +6 -1
  325. package/dist/transport/calculate/cutoffSchedule.js +2 -0
  326. package/dist/transport/calculate/dwellTime.d.ts +6 -1
  327. package/dist/transport/calculate/dwellTime.js +6 -1
  328. package/dist/transport/calculate/scheduleDelivery.d.ts +13 -5
  329. package/dist/transport/calculate/scheduleDelivery.js +6 -1
  330. package/dist/transport/convert/etaAtZone.d.ts +6 -1
  331. package/dist/transport/convert/etaAtZone.js +6 -1
  332. package/dist/types/business-calendar.d.ts +5 -4
  333. package/dist/types/duty.d.ts +777 -0
  334. package/dist/types/duty.js +0 -0
  335. package/dist/types/edi.d.ts +407 -0
  336. package/dist/types/edi.js +0 -0
  337. package/dist/types/epcis.d.ts +25 -0
  338. package/dist/types/epcis.js +0 -0
  339. package/dist/types/exact-duration-unit.d.ts +8 -0
  340. package/dist/types/exact-duration-unit.js +0 -0
  341. package/dist/types/free-time-options.d.ts +4 -3
  342. package/dist/types/index.d.ts +5 -0
  343. package/dist/types/index.js +5 -0
  344. package/dist/types/operating-schedule.d.ts +3 -2
  345. package/dist/types/two-digit-year.d.ts +23 -0
  346. package/dist/types/two-digit-year.js +0 -0
  347. package/dist/types/zone-bucket-unit.d.ts +1 -1
  348. package/dist/unix/calculate/addUnix.d.ts +11 -2
  349. package/dist/unix/calculate/addUnix.js +14 -11
  350. package/dist/unix/calculate/diffUnix.d.ts +10 -2
  351. package/dist/unix/calculate/diffUnix.js +11 -6
  352. package/dist/unix/calculate/diffUnixAsDuration.d.ts +10 -2
  353. package/dist/unix/calculate/diffUnixAsDuration.js +10 -5
  354. package/dist/unix/calculate/endOfQuarterForUnix.d.ts +10 -2
  355. package/dist/unix/calculate/endOfQuarterForUnix.js +6 -0
  356. package/dist/unix/calculate/endOfUnix.d.ts +11 -2
  357. package/dist/unix/calculate/endOfUnix.js +7 -0
  358. package/dist/unix/calculate/isBetweenUnix.d.ts +3 -2
  359. package/dist/unix/calculate/isBetweenUnix.js +3 -3
  360. package/dist/unix/calculate/roundUnix.d.ts +10 -2
  361. package/dist/unix/calculate/roundUnix.js +13 -6
  362. package/dist/unix/calculate/setUnix.d.ts +25 -5
  363. package/dist/unix/calculate/setUnix.js +33 -12
  364. package/dist/unix/calculate/startOfQuarterForUnix.d.ts +10 -2
  365. package/dist/unix/calculate/startOfQuarterForUnix.js +6 -0
  366. package/dist/unix/calculate/startOfUnix.d.ts +11 -2
  367. package/dist/unix/calculate/startOfUnix.js +7 -0
  368. package/dist/unix/calculate/subtractUnix.d.ts +10 -2
  369. package/dist/unix/calculate/subtractUnix.js +13 -11
  370. package/dist/unix/compare/areUnixEqualBy.d.ts +11 -2
  371. package/dist/unix/compare/areUnixEqualBy.js +7 -0
  372. package/dist/unix/convert/convertUnixToPlainDate.d.ts +5 -2
  373. package/dist/unix/convert/convertUnixToPlainDate.js +5 -4
  374. package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +5 -2
  375. package/dist/unix/convert/convertUnixToPlainDateTime.js +5 -4
  376. package/dist/unix/convert/convertUnixToPlainTime.d.ts +5 -2
  377. package/dist/unix/convert/convertUnixToPlainTime.js +5 -4
  378. package/dist/unix/convert/convertUnixToZoned.d.ts +5 -1
  379. package/dist/unix/convert/convertUnixToZoned.js +5 -1
  380. package/dist/unix/format/formatCalendarUnix.d.ts +6 -2
  381. package/dist/unix/format/formatCalendarUnix.js +6 -1
  382. package/dist/unix/format/formatRelativeUnix.d.ts +11 -3
  383. package/dist/unix/format/formatRelativeUnix.js +13 -5
  384. package/dist/unix/format/formatUnix.d.ts +7 -2
  385. package/dist/unix/format/formatUnix.js +4 -0
  386. package/dist/unix/get/getUnixDay.d.ts +1 -3
  387. package/dist/unix/get/getUnixDay.js +5 -12
  388. package/dist/unix/get/getUnixHour.d.ts +1 -3
  389. package/dist/unix/get/getUnixHour.js +5 -12
  390. package/dist/unix/get/getUnixMicrosecond.d.ts +1 -3
  391. package/dist/unix/get/getUnixMicrosecond.js +4 -11
  392. package/dist/unix/get/getUnixMillisecond.d.ts +1 -3
  393. package/dist/unix/get/getUnixMillisecond.js +5 -12
  394. package/dist/unix/get/getUnixMinute.d.ts +1 -3
  395. package/dist/unix/get/getUnixMinute.js +5 -12
  396. package/dist/unix/get/getUnixMonth.d.ts +1 -3
  397. package/dist/unix/get/getUnixMonth.js +5 -12
  398. package/dist/unix/get/getUnixNanosecond.d.ts +1 -3
  399. package/dist/unix/get/getUnixNanosecond.js +4 -11
  400. package/dist/unix/get/getUnixNowUnit.d.ts +2 -0
  401. package/dist/unix/get/getUnixNowUnit.js +2 -0
  402. package/dist/unix/get/getUnixSecond.d.ts +1 -3
  403. package/dist/unix/get/getUnixSecond.js +5 -12
  404. package/dist/unix/get/getUnixYear.d.ts +3 -3
  405. package/dist/unix/get/getUnixYear.js +5 -12
  406. package/dist/unix/interval/intervalCountUnix.d.ts +11 -2
  407. package/dist/unix/interval/intervalCountUnix.js +7 -0
  408. package/dist/unix/interval/intervalFromDurationUnix.d.ts +10 -2
  409. package/dist/unix/interval/intervalFromDurationUnix.js +12 -7
  410. package/dist/unix/interval/intervalLengthUnix.d.ts +10 -2
  411. package/dist/unix/interval/intervalLengthUnix.js +6 -0
  412. package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +10 -2
  413. package/dist/unix/interval/intervalOverlappingDaysUnix.js +10 -5
  414. package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +10 -2
  415. package/dist/unix/interval/splitIntervalByUnitUnix.js +12 -6
  416. package/dist/unix/parse/parseDateFromUnix.d.ts +4 -2
  417. package/dist/unix/parse/parseDateFromUnix.js +3 -3
  418. package/dist/unix/parse/parseDayFromUnix.d.ts +4 -2
  419. package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +4 -2
  420. package/dist/unix/parse/parseDayOfWeekFromUnix.js +2 -2
  421. package/dist/unix/parse/parseHourFromUnix.d.ts +4 -2
  422. package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +4 -2
  423. package/dist/unix/parse/parseMillisecondFromUnix.d.ts +4 -2
  424. package/dist/unix/parse/parseMinuteFromUnix.d.ts +4 -2
  425. package/dist/unix/parse/parseMonthFromUnix.d.ts +4 -2
  426. package/dist/unix/parse/parseNanosecondFromUnix.d.ts +4 -2
  427. package/dist/unix/parse/parseSecondFromUnix.d.ts +4 -2
  428. package/dist/unix/parse/parseTimeFromUnix.d.ts +5 -2
  429. package/dist/unix/parse/parseTimeFromUnix.js +4 -3
  430. package/dist/unix/parse/parseUnitFromUnix.d.ts +9 -3
  431. package/dist/unix/parse/parseUnitFromUnix.js +21 -14
  432. package/dist/unix/parse/parseWeekFromUnix.d.ts +3 -2
  433. package/dist/unix/parse/parseWeekFromUnix.js +4 -4
  434. package/dist/unix/parse/parseYearFromUnix.d.ts +8 -3
  435. package/dist/unix/parse/parseYearFromUnix.js +4 -1
  436. package/dist/unix/validate/isValidUnixUnit.d.ts +1 -1
  437. package/dist/utc/calculate/addUtc.js +4 -7
  438. package/dist/utc/calculate/setUtc.d.ts +16 -3
  439. package/dist/utc/calculate/setUtc.js +22 -8
  440. package/dist/utc/calculate/subtractUtc.js +4 -7
  441. package/dist/utc/convert/convertUtcToPlainDate.d.ts +8 -2
  442. package/dist/utc/convert/convertUtcToPlainDate.js +10 -7
  443. package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +9 -2
  444. package/dist/utc/convert/convertUtcToPlainDateTime.js +12 -13
  445. package/dist/utc/convert/convertUtcToPlainTime.d.ts +5 -2
  446. package/dist/utc/convert/convertUtcToPlainTime.js +7 -6
  447. package/dist/utc/convert/convertUtcToZoned.d.ts +5 -1
  448. package/dist/utc/convert/convertUtcToZoned.js +5 -1
  449. package/dist/utc/format/formatCalendarUtc.d.ts +6 -2
  450. package/dist/utc/format/formatCalendarUtc.js +6 -1
  451. package/dist/utc/format/{formatHttp.d.ts → formatHttpDate.d.ts} +7 -7
  452. package/dist/utc/format/{formatHttp.js → formatHttpDate.js} +7 -7
  453. package/dist/utc/format/formatRelativeUtc.d.ts +11 -3
  454. package/dist/utc/format/formatRelativeUtc.js +13 -5
  455. package/dist/utc/format/formatUtc.d.ts +7 -2
  456. package/dist/utc/format/formatUtc.js +4 -0
  457. package/dist/utc/format/index.d.ts +1 -1
  458. package/dist/utc/format/index.js +1 -1
  459. package/dist/utc/get/getUtcDay.d.ts +1 -3
  460. package/dist/utc/get/getUtcDay.js +5 -12
  461. package/dist/utc/get/getUtcHour.d.ts +1 -3
  462. package/dist/utc/get/getUtcHour.js +5 -12
  463. package/dist/utc/get/getUtcMicrosecond.d.ts +1 -3
  464. package/dist/utc/get/getUtcMicrosecond.js +4 -11
  465. package/dist/utc/get/getUtcMillisecond.d.ts +1 -3
  466. package/dist/utc/get/getUtcMillisecond.js +5 -12
  467. package/dist/utc/get/getUtcMinute.d.ts +1 -3
  468. package/dist/utc/get/getUtcMinute.js +5 -12
  469. package/dist/utc/get/getUtcMonth.d.ts +1 -3
  470. package/dist/utc/get/getUtcMonth.js +5 -12
  471. package/dist/utc/get/getUtcNanosecond.d.ts +1 -3
  472. package/dist/utc/get/getUtcNanosecond.js +4 -11
  473. package/dist/utc/get/getUtcNow.d.ts +1 -3
  474. package/dist/utc/get/getUtcNow.js +2 -9
  475. package/dist/utc/get/getUtcNowUnit.d.ts +2 -0
  476. package/dist/utc/get/getUtcNowUnit.js +2 -0
  477. package/dist/utc/get/getUtcSecond.d.ts +1 -3
  478. package/dist/utc/get/getUtcSecond.js +5 -12
  479. package/dist/utc/get/getUtcYear.d.ts +3 -3
  480. package/dist/utc/get/getUtcYear.js +5 -12
  481. package/dist/utc/interval/intervalXorAllUtc.js +2 -2
  482. package/dist/utc/interval/mergeIntervalsUtc.js +2 -2
  483. package/dist/utc/parse/index.d.ts +1 -1
  484. package/dist/utc/parse/index.js +1 -1
  485. package/dist/utc/parse/parseDateFromUtc.d.ts +4 -2
  486. package/dist/utc/parse/parseDateFromUtc.js +2 -2
  487. package/dist/utc/parse/parseDayFromUtc.d.ts +4 -2
  488. package/dist/utc/parse/parseDayFromUtc.js +2 -2
  489. package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +4 -2
  490. package/dist/utc/parse/parseDayOfWeekFromUtc.js +4 -4
  491. package/dist/utc/parse/parseHourFromUtc.d.ts +4 -2
  492. package/dist/utc/parse/parseHourFromUtc.js +2 -2
  493. package/dist/utc/parse/{parseHttp.d.ts → parseHttpDate.d.ts} +12 -12
  494. package/dist/utc/parse/{parseHttp.js → parseHttpDate.js} +12 -12
  495. package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +4 -2
  496. package/dist/utc/parse/parseMicrosecondFromUtc.js +2 -2
  497. package/dist/utc/parse/parseMillisecondFromUtc.d.ts +4 -2
  498. package/dist/utc/parse/parseMillisecondFromUtc.js +2 -2
  499. package/dist/utc/parse/parseMinuteFromUtc.d.ts +4 -2
  500. package/dist/utc/parse/parseMinuteFromUtc.js +2 -2
  501. package/dist/utc/parse/parseMonthFromUtc.d.ts +4 -2
  502. package/dist/utc/parse/parseMonthFromUtc.js +2 -2
  503. package/dist/utc/parse/parseNanosecondFromUtc.d.ts +4 -2
  504. package/dist/utc/parse/parseNanosecondFromUtc.js +2 -2
  505. package/dist/utc/parse/parseSecondFromUtc.d.ts +4 -2
  506. package/dist/utc/parse/parseSecondFromUtc.js +2 -2
  507. package/dist/utc/parse/parseTimeFromUtc.d.ts +5 -2
  508. package/dist/utc/parse/parseTimeFromUtc.js +5 -4
  509. package/dist/utc/parse/parseUnitFromUtc.d.ts +10 -3
  510. package/dist/utc/parse/parseUnitFromUtc.js +11 -5
  511. package/dist/utc/parse/parseWeekFromUtc.d.ts +4 -2
  512. package/dist/utc/parse/parseWeekFromUtc.js +4 -4
  513. package/dist/utc/parse/parseYearFromUtc.d.ts +8 -4
  514. package/dist/utc/parse/parseYearFromUtc.js +8 -5
  515. package/dist/utc/validate/index.d.ts +2 -0
  516. package/dist/utc/validate/index.js +2 -0
  517. package/dist/utc/validate/isValidHttpDate.d.ts +35 -0
  518. package/dist/utc/validate/isValidHttpDate.js +38 -0
  519. package/dist/utc/validate/isValidUtc.d.ts +4 -0
  520. package/dist/utc/validate/isValidUtc.js +4 -0
  521. package/dist/utc/validate/isValidUtcTimestamp.d.ts +43 -0
  522. package/dist/utc/validate/isValidUtcTimestamp.js +48 -0
  523. package/dist/zoned/calculate/addZoned.js +4 -7
  524. package/dist/zoned/calculate/setZoned.d.ts +19 -5
  525. package/dist/zoned/calculate/setZoned.js +26 -9
  526. package/dist/zoned/calculate/subtractZoned.js +4 -7
  527. package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +4 -1
  528. package/dist/zoned/convert/convertPlainDateTimeToZoned.js +4 -1
  529. package/dist/zoned/convert/convertZonedToZoned.d.ts +5 -1
  530. package/dist/zoned/convert/convertZonedToZoned.js +5 -1
  531. package/dist/zoned/format/formatCalendarZoned.js +2 -1
  532. package/dist/zoned/format/formatRelativeZoned.js +2 -1
  533. package/dist/zoned/format/formatTimeZoneName.d.ts +5 -1
  534. package/dist/zoned/format/formatTimeZoneName.js +5 -1
  535. package/dist/zoned/get/getDstTransitions.d.ts +5 -3
  536. package/dist/zoned/get/getDstTransitions.js +12 -7
  537. package/dist/zoned/get/getSystemTimeZone.d.ts +3 -1
  538. package/dist/zoned/get/getSystemTimeZone.js +5 -2
  539. package/dist/zoned/get/getTimeZoneOffset.d.ts +10 -2
  540. package/dist/zoned/get/getTimeZoneOffset.js +18 -5
  541. package/dist/zoned/get/getZonedDay.d.ts +2 -1
  542. package/dist/zoned/get/getZonedDay.js +6 -7
  543. package/dist/zoned/get/getZonedDayOfWeek.d.ts +2 -1
  544. package/dist/zoned/get/getZonedDayOfWeek.js +6 -5
  545. package/dist/zoned/get/getZonedHour.d.ts +2 -1
  546. package/dist/zoned/get/getZonedHour.js +6 -7
  547. package/dist/zoned/get/getZonedMicrosecond.d.ts +2 -1
  548. package/dist/zoned/get/getZonedMicrosecond.js +6 -5
  549. package/dist/zoned/get/getZonedMillisecond.d.ts +2 -1
  550. package/dist/zoned/get/getZonedMillisecond.js +6 -7
  551. package/dist/zoned/get/getZonedMinute.d.ts +2 -1
  552. package/dist/zoned/get/getZonedMinute.js +6 -7
  553. package/dist/zoned/get/getZonedMonth.d.ts +2 -1
  554. package/dist/zoned/get/getZonedMonth.js +6 -7
  555. package/dist/zoned/get/getZonedNanosecond.d.ts +2 -1
  556. package/dist/zoned/get/getZonedNanosecond.js +6 -5
  557. package/dist/zoned/get/getZonedNow.d.ts +5 -1
  558. package/dist/zoned/get/getZonedNow.js +5 -1
  559. package/dist/zoned/get/getZonedNowUnit.d.ts +6 -3
  560. package/dist/zoned/get/getZonedNowUnit.js +10 -7
  561. package/dist/zoned/get/getZonedSecond.d.ts +2 -1
  562. package/dist/zoned/get/getZonedSecond.js +6 -7
  563. package/dist/zoned/get/getZonedToday.d.ts +2 -1
  564. package/dist/zoned/get/getZonedToday.js +6 -5
  565. package/dist/zoned/get/getZonedWeekOfYear.d.ts +2 -1
  566. package/dist/zoned/get/getZonedWeekOfYear.js +6 -5
  567. package/dist/zoned/get/getZonedYear.d.ts +4 -1
  568. package/dist/zoned/get/getZonedYear.js +9 -7
  569. package/dist/zoned/interval/intervalXorAllZoned.js +2 -2
  570. package/dist/zoned/interval/mergeIntervalsZoned.js +2 -2
  571. package/dist/zoned/parse/parseUnitFromZoned.d.ts +4 -1
  572. package/dist/zoned/parse/parseUnitFromZoned.js +5 -1
  573. package/dist/zoned/parse/parseYearFromZoned.d.ts +4 -2
  574. package/dist/zoned/parse/parseYearFromZoned.js +6 -3
  575. package/dist/zoned/validate/hasDaylightSaving.d.ts +4 -2
  576. package/dist/zoned/validate/hasDaylightSaving.js +13 -7
  577. package/dist/zoned/validate/index.d.ts +2 -0
  578. package/dist/zoned/validate/index.js +2 -0
  579. package/dist/zoned/validate/isValidRfc2822DateTime.d.ts +32 -0
  580. package/dist/zoned/validate/isValidRfc2822DateTime.js +35 -0
  581. package/dist/zoned/validate/isValidRfc3339DateTime.d.ts +31 -0
  582. package/dist/zoned/validate/isValidRfc3339DateTime.js +34 -0
  583. package/dist/zoned/validate/isValidTimeZone.d.ts +5 -1
  584. package/dist/zoned/validate/isValidTimeZone.js +6 -2
  585. package/package.json +50 -1
  586. package/skills/gmt-arithmetic/SKILL.md +99 -12
  587. package/skills/gmt-basics/SKILL.md +57 -15
  588. package/skills/gmt-integration/SKILL.md +24 -9
  589. package/skills/gmt-timezone/SKILL.md +134 -29
  590. package/dist/internal/unixZonedDateTime.d.ts +0 -22
  591. package/dist/internal/unixZonedDateTime.js +0 -32
  592. package/dist/internal/utcZonedDateTime.d.ts +0 -19
  593. package/dist/internal/utcZonedDateTime.js +0 -31
@@ -4,21 +4,14 @@ import { Temporal } from "@js-temporal/polyfill";
4
4
  *
5
5
  * - Uses Temporal.Now.instant() converted to UTC zoned date time.
6
6
  * - Returns zero-padded string to 3 digits.
7
- * - Returns "" on failure.
8
7
  *
9
- * @returns current millisecond string (zero-padded to 3 digits) or "" on failure
8
+ * @returns current millisecond string (zero-padded to 3 digits)
10
9
  *
11
10
  * @example getUnixMillisecond() // "123"
12
- * @example getUnixMillisecond() // "" (on failure)
13
11
  */
14
12
  export function getUnixMillisecond() {
15
- try {
16
- return Temporal.Now.instant()
17
- .toZonedDateTimeISO("UTC")
18
- .millisecond.toString()
19
- .padStart(3, "0");
20
- }
21
- catch {
22
- return "";
23
- }
13
+ return Temporal.Now.instant()
14
+ .toZonedDateTimeISO("UTC")
15
+ .millisecond.toString()
16
+ .padStart(3, "0");
24
17
  }
@@ -3,11 +3,9 @@
3
3
  *
4
4
  * - Uses Temporal.Now.instant() converted to UTC zoned date time.
5
5
  * - Returns zero-padded string to 2 digits.
6
- * - Returns "" on failure.
7
6
  *
8
- * @returns current minute string (zero-padded to 2 digits) or "" on failure
7
+ * @returns current minute string (zero-padded to 2 digits)
9
8
  *
10
9
  * @example getUnixMinute() // "30"
11
- * @example getUnixMinute() // "" (on failure)
12
10
  */
13
11
  export declare function getUnixMinute(): string;
@@ -4,21 +4,14 @@ import { Temporal } from "@js-temporal/polyfill";
4
4
  *
5
5
  * - Uses Temporal.Now.instant() converted to UTC zoned date time.
6
6
  * - Returns zero-padded string to 2 digits.
7
- * - Returns "" on failure.
8
7
  *
9
- * @returns current minute string (zero-padded to 2 digits) or "" on failure
8
+ * @returns current minute string (zero-padded to 2 digits)
10
9
  *
11
10
  * @example getUnixMinute() // "30"
12
- * @example getUnixMinute() // "" (on failure)
13
11
  */
14
12
  export function getUnixMinute() {
15
- try {
16
- return Temporal.Now.instant()
17
- .toZonedDateTimeISO("UTC")
18
- .minute.toString()
19
- .padStart(2, "0");
20
- }
21
- catch {
22
- return "";
23
- }
13
+ return Temporal.Now.instant()
14
+ .toZonedDateTimeISO("UTC")
15
+ .minute.toString()
16
+ .padStart(2, "0");
24
17
  }
@@ -3,11 +3,9 @@
3
3
  *
4
4
  * - Uses Temporal.Now.instant() converted to UTC zoned date time.
5
5
  * - Returns zero-padded string to 2 digits.
6
- * - Returns "" on failure.
7
6
  *
8
- * @returns current month string (zero-padded to 2 digits) or "" on failure
7
+ * @returns current month string (zero-padded to 2 digits)
9
8
  *
10
9
  * @example getUnixMonth() // "02"
11
- * @example getUnixMonth() // "" (on failure)
12
10
  */
13
11
  export declare function getUnixMonth(): string;
@@ -4,21 +4,14 @@ import { Temporal } from "@js-temporal/polyfill";
4
4
  *
5
5
  * - Uses Temporal.Now.instant() converted to UTC zoned date time.
6
6
  * - Returns zero-padded string to 2 digits.
7
- * - Returns "" on failure.
8
7
  *
9
- * @returns current month string (zero-padded to 2 digits) or "" on failure
8
+ * @returns current month string (zero-padded to 2 digits)
10
9
  *
11
10
  * @example getUnixMonth() // "02"
12
- * @example getUnixMonth() // "" (on failure)
13
11
  */
14
12
  export function getUnixMonth() {
15
- try {
16
- return Temporal.Now.instant()
17
- .toZonedDateTimeISO("UTC")
18
- .month.toString()
19
- .padStart(2, "0");
20
- }
21
- catch {
22
- return "";
23
- }
13
+ return Temporal.Now.instant()
14
+ .toZonedDateTimeISO("UTC")
15
+ .month.toString()
16
+ .padStart(2, "0");
24
17
  }
@@ -3,11 +3,9 @@
3
3
  *
4
4
  * - Uses Temporal.Now.instant() converted to UTC zoned date time.
5
5
  * - Returns zero-padded string to 3 digits.
6
- * - Returns "" on failure.
7
6
  *
8
- * @returns current nanosecond string (zero-padded to 3 digits) or "" on failure
7
+ * @returns current nanosecond string (zero-padded to 3 digits)
9
8
  *
10
9
  * @example getUnixNanosecond() // "789"
11
- * @example getUnixNanosecond() // "" (on failure)
12
10
  */
13
11
  export declare function getUnixNanosecond(): string;
@@ -4,20 +4,13 @@ import { Temporal } from "@js-temporal/polyfill";
4
4
  *
5
5
  * - Uses Temporal.Now.instant() converted to UTC zoned date time.
6
6
  * - Returns zero-padded string to 3 digits.
7
- * - Returns "" on failure.
8
7
  *
9
- * @returns current nanosecond string (zero-padded to 3 digits) or "" on failure
8
+ * @returns current nanosecond string (zero-padded to 3 digits)
10
9
  *
11
10
  * @example getUnixNanosecond() // "789"
12
- * @example getUnixNanosecond() // "" (on failure)
13
11
  */
14
12
  export function getUnixNanosecond() {
15
- try {
16
- return (Temporal.Now.instant().toZonedDateTimeISO("UTC").nanosecond ?? 0)
17
- .toString()
18
- .padStart(3, "0");
19
- }
20
- catch {
21
- return "";
22
- }
13
+ return (Temporal.Now.instant().toZonedDateTimeISO("UTC").nanosecond ?? 0)
14
+ .toString()
15
+ .padStart(3, "0");
23
16
  }
@@ -8,6 +8,8 @@ export type { UnixNowUnit };
8
8
  * - `microsecond` and `nanosecond` are Temporal's 0–999 fields, zero-padded to 3 digits.
9
9
  * - Uses Temporal.Now.instant() converted to UTC zoned date time.
10
10
  * - Returns "" on invalid unit or failure.
11
+ * - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
12
+ * sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
11
13
  *
12
14
  * @param unit unit to extract from current unix timestamp
13
15
  * @returns string representation of the requested unit or "" on invalid
@@ -12,6 +12,8 @@ function isValidUnixNowUnit(unit) {
12
12
  * - `microsecond` and `nanosecond` are Temporal's 0–999 fields, zero-padded to 3 digits.
13
13
  * - Uses Temporal.Now.instant() converted to UTC zoned date time.
14
14
  * - Returns "" on invalid unit or failure.
15
+ * - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
16
+ * sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
15
17
  *
16
18
  * @param unit unit to extract from current unix timestamp
17
19
  * @returns string representation of the requested unit or "" on invalid
@@ -3,11 +3,9 @@
3
3
  *
4
4
  * - Uses Temporal.Now.instant() converted to UTC zoned date time.
5
5
  * - Returns zero-padded string to 2 digits.
6
- * - Returns "" on failure.
7
6
  *
8
- * @returns current second string (zero-padded to 2 digits) or "" on failure
7
+ * @returns current second string (zero-padded to 2 digits)
9
8
  *
10
9
  * @example getUnixSecond() // "45"
11
- * @example getUnixSecond() // "" (on failure)
12
10
  */
13
11
  export declare function getUnixSecond(): string;
@@ -4,21 +4,14 @@ import { Temporal } from "@js-temporal/polyfill";
4
4
  *
5
5
  * - Uses Temporal.Now.instant() converted to UTC zoned date time.
6
6
  * - Returns zero-padded string to 2 digits.
7
- * - Returns "" on failure.
8
7
  *
9
- * @returns current second string (zero-padded to 2 digits) or "" on failure
8
+ * @returns current second string (zero-padded to 2 digits)
10
9
  *
11
10
  * @example getUnixSecond() // "45"
12
- * @example getUnixSecond() // "" (on failure)
13
11
  */
14
12
  export function getUnixSecond() {
15
- try {
16
- return Temporal.Now.instant()
17
- .toZonedDateTimeISO("UTC")
18
- .second.toString()
19
- .padStart(2, "0");
20
- }
21
- catch {
22
- return "";
23
- }
13
+ return Temporal.Now.instant()
14
+ .toZonedDateTimeISO("UTC")
15
+ .second.toString()
16
+ .padStart(2, "0");
24
17
  }
@@ -3,11 +3,11 @@
3
3
  *
4
4
  * - Uses Temporal.Now.instant() converted to UTC zoned date time.
5
5
  * - Returns zero-padded string to 4 digits.
6
- * - Returns "" on failure.
6
+ * - A year outside 0000–9999 is written with a sign and six digits (`+010000`, `-000005`), as
7
+ * Temporal writes it at the head of a date.
7
8
  *
8
- * @returns current year string (zero-padded to 4 digits) or "" on failure
9
+ * @returns current year string (zero-padded to 4 digits)
9
10
  *
10
11
  * @example getUnixYear() // "2024"
11
- * @example getUnixYear() // "" (on failure)
12
12
  */
13
13
  export declare function getUnixYear(): string;
@@ -1,24 +1,17 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
+ import { isoYearString } from "../../internal/isoYearString.js";
2
3
  /**
3
4
  * Return the current year from the Unix timestamp in UTC as a zero-padded string.
4
5
  *
5
6
  * - Uses Temporal.Now.instant() converted to UTC zoned date time.
6
7
  * - Returns zero-padded string to 4 digits.
7
- * - Returns "" on failure.
8
+ * - A year outside 0000–9999 is written with a sign and six digits (`+010000`, `-000005`), as
9
+ * Temporal writes it at the head of a date.
8
10
  *
9
- * @returns current year string (zero-padded to 4 digits) or "" on failure
11
+ * @returns current year string (zero-padded to 4 digits)
10
12
  *
11
13
  * @example getUnixYear() // "2024"
12
- * @example getUnixYear() // "" (on failure)
13
14
  */
14
15
  export function getUnixYear() {
15
- try {
16
- return Temporal.Now.instant()
17
- .toZonedDateTimeISO("UTC")
18
- .year.toString()
19
- .padStart(4, "0");
20
- }
21
- catch {
22
- return "";
23
- }
16
+ return isoYearString(Temporal.Now.instant().toZonedDateTimeISO("UTC").year);
24
17
  }
@@ -21,6 +21,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
21
21
  * - Returns `null` on invalid input (`start`/`end` that is not a safe integer or numeric string of
22
22
  * one, or lies outside the Temporal instant range, `start > end`, an unsupported unit, an invalid
23
23
  * `epochUnit` or an unknown `timeZone`).
24
+ * - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
25
+ * moved by its seconds, and the moved instant must be inside Temporal's range. So within the
26
+ * offset's seconds (under a minute) of the last instant Temporal supports
27
+ * (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
28
+ * (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
29
+ * such limit.
24
30
  *
25
31
  * @param start Unix epoch in `epochUnit` — interval start
26
32
  * @param end Unix epoch in `epochUnit` — interval end
@@ -35,6 +41,7 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
35
41
  * @example intervalCountUnix(1704151800000, 1704155400000, "day", { timeZone: "Asia/Tokyo" }) // 1 (08:30 to 09:30 on one Tokyo day)
36
42
  * @example intervalCountUnix("1704151800", "1704155400", "days", { epochUnit: "second" }) // 2
37
43
  * @example intervalCountUnix(NaN, 86400000, "hour") // null
44
+ * @example intervalCountUnix(2669999, 2670001, "day", { timeZone: "-00:44:30" }) // 2 (the local day turns at 00:44:30Z)
38
45
  */
39
46
  export declare function intervalCountUnix(start: number | string, end: number | string, unit: string, options?: {
40
47
  /**
@@ -45,8 +52,10 @@ export declare function intervalCountUnix(start: number | string, end: number |
45
52
  */
46
53
  epochUnit?: UnixUnit;
47
54
  /**
48
- * The time zone the unit boundaries are found in: an IANA name, a UTC offset, or `"local"` for
49
- * the system time zone. An unknown zone returns `null`.
55
+ * The time zone the unit boundaries are found in: an IANA name, a UTC offset (a time zone
56
+ * identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
57
+ * `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
58
+ * `null`.
50
59
  *
51
60
  * @defaultValue `"UTC"`
52
61
  */
@@ -24,6 +24,12 @@ import { isOptionsArgument } from "../../internal/isObject.js";
24
24
  * - Returns `null` on invalid input (`start`/`end` that is not a safe integer or numeric string of
25
25
  * one, or lies outside the Temporal instant range, `start > end`, an unsupported unit, an invalid
26
26
  * `epochUnit` or an unknown `timeZone`).
27
+ * - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
28
+ * moved by its seconds, and the moved instant must be inside Temporal's range. So within the
29
+ * offset's seconds (under a minute) of the last instant Temporal supports
30
+ * (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
31
+ * (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
32
+ * such limit.
27
33
  *
28
34
  * @param start Unix epoch in `epochUnit` — interval start
29
35
  * @param end Unix epoch in `epochUnit` — interval end
@@ -38,6 +44,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
38
44
  * @example intervalCountUnix(1704151800000, 1704155400000, "day", { timeZone: "Asia/Tokyo" }) // 1 (08:30 to 09:30 on one Tokyo day)
39
45
  * @example intervalCountUnix("1704151800", "1704155400", "days", { epochUnit: "second" }) // 2
40
46
  * @example intervalCountUnix(NaN, 86400000, "hour") // null
47
+ * @example intervalCountUnix(2669999, 2670001, "day", { timeZone: "-00:44:30" }) // 2 (the local day turns at 00:44:30Z)
41
48
  */
42
49
  export function intervalCountUnix(start, end, unit, options) {
43
50
  try {
@@ -18,6 +18,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
18
18
  * - Returns null on invalid input (a `value` that is not a safe integer or numeric string of one —
19
19
  * fractions, empty strings and values beyond ±(2^53 − 1) are invalid — invalid `duration`, an
20
20
  * `anchor` other than `"start"`/`"end"`, or an invalid/unavailable timeZone).
21
+ * - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
22
+ * moved by its seconds, and the moved instant must be inside Temporal's range. So within the
23
+ * offset's seconds (under a minute) of the last instant Temporal supports
24
+ * (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
25
+ * (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
26
+ * such limit.
21
27
  *
22
28
  * @param value Unix epoch value (seconds or milliseconds): a safe integer or a digit string
23
29
  * @param duration ISO 8601 duration string
@@ -41,8 +47,10 @@ export declare function intervalFromDurationUnix(value: number | string, duratio
41
47
  */
42
48
  epochUnit?: UnixUnit;
43
49
  /**
44
- * The time zone the calendar arithmetic runs in: an IANA name, a UTC offset, or `"local"` for
45
- * the system time zone. An unknown zone returns `null`.
50
+ * The time zone the calendar arithmetic runs in: an IANA name, a UTC offset (a time zone
51
+ * identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
52
+ * `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
53
+ * `null`.
46
54
  *
47
55
  * @defaultValue `"UTC"`
48
56
  */
@@ -1,8 +1,7 @@
1
1
  // fallow-ignore-file code-duplication -- cross-family Temporal type clone, by design (rule 5)
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { isValidDuration } from "../../duration/validate/index.js";
4
- import { addToZoned, resolveOverflow, subtractFromZoned } from "../../internal/index.js";
5
- import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
4
+ import { addToZoned, frameInstant, frameZoned, normalizeZoneFrame, resolveOverflow, subtractFromZoned, } from "../../internal/index.js";
6
5
  import { resolveUnixEpochUnit, toUnixEpoch, unixEpochToInstant, } from "../../internal/unixEpochValue.js";
7
6
  import { isOptionsArgument } from "../../internal/isObject.js";
8
7
  /**
@@ -23,6 +22,12 @@ import { isOptionsArgument } from "../../internal/isObject.js";
23
22
  * - Returns null on invalid input (a `value` that is not a safe integer or numeric string of one —
24
23
  * fractions, empty strings and values beyond ±(2^53 − 1) are invalid — invalid `duration`, an
25
24
  * `anchor` other than `"start"`/`"end"`, or an invalid/unavailable timeZone).
25
+ * - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
26
+ * moved by its seconds, and the moved instant must be inside Temporal's range. So within the
27
+ * offset's seconds (under a minute) of the last instant Temporal supports
28
+ * (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
29
+ * (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
30
+ * such limit.
26
31
  *
27
32
  * @param value Unix epoch value (seconds or milliseconds): a safe integer or a digit string
28
33
  * @param duration ISO 8601 duration string
@@ -49,8 +54,8 @@ export function intervalFromDurationUnix(value, duration, anchor, options) {
49
54
  return null;
50
55
  }
51
56
  const epochUnit = resolveUnixEpochUnit(options?.epochUnit);
52
- const timeZone = normalizeTimeZone(options?.timeZone);
53
- if (!timeZone || epochUnit === null) {
57
+ const frame = normalizeZoneFrame(options?.timeZone);
58
+ if (frame === null || epochUnit === null) {
54
59
  return null;
55
60
  }
56
61
  const instant = unixEpochToInstant(value, epochUnit);
@@ -58,7 +63,7 @@ export function intervalFromDurationUnix(value, duration, anchor, options) {
58
63
  return null;
59
64
  }
60
65
  try {
61
- const point = instant.toZonedDateTimeISO(timeZone);
66
+ const point = frameZoned(instant, frame);
62
67
  const dur = Temporal.Duration.from(duration);
63
68
  const overflow = resolveOverflow(options?.overflow);
64
69
  const other = anchor === "start"
@@ -70,8 +75,8 @@ export function intervalFromDurationUnix(value, duration, anchor, options) {
70
75
  return null;
71
76
  }
72
77
  return {
73
- start: toUnixEpoch(start, epochUnit),
74
- end: toUnixEpoch(end, epochUnit),
78
+ start: toUnixEpoch(frameInstant(start, frame), epochUnit),
79
+ end: toUnixEpoch(frameInstant(end, frame), epochUnit),
75
80
  };
76
81
  }
77
82
  catch {
@@ -12,6 +12,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
12
12
  * - Returns `null` on invalid input (`start`/`end` that is not a safe integer or numeric string of
13
13
  * one, or lies outside the Temporal instant range, `start > end`, an unsupported unit, an invalid
14
14
  * `epochUnit` or an unknown `timeZone`).
15
+ * - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
16
+ * moved by its seconds, and the moved instant must be inside Temporal's range. So within the
17
+ * offset's seconds (under a minute) of the last instant Temporal supports
18
+ * (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
19
+ * (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
20
+ * such limit.
15
21
  *
16
22
  * @param start Unix epoch in `epochUnit` — interval start
17
23
  * @param end Unix epoch in `epochUnit` — interval end
@@ -37,8 +43,10 @@ export declare function intervalLengthUnix(start: number | string, end: number |
37
43
  */
38
44
  epochUnit?: UnixUnit;
39
45
  /**
40
- * The time zone calendar units are measured in: an IANA name, a UTC offset, or `"local"` for
41
- * the system time zone. An unknown zone returns `null`.
46
+ * The time zone calendar units are measured in: an IANA name, a UTC offset (a time zone
47
+ * identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
48
+ * `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
49
+ * `null`.
42
50
  *
43
51
  * @defaultValue `"UTC"`
44
52
  */
@@ -15,6 +15,12 @@ import { isOptionsArgument } from "../../internal/isObject.js";
15
15
  * - Returns `null` on invalid input (`start`/`end` that is not a safe integer or numeric string of
16
16
  * one, or lies outside the Temporal instant range, `start > end`, an unsupported unit, an invalid
17
17
  * `epochUnit` or an unknown `timeZone`).
18
+ * - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
19
+ * moved by its seconds, and the moved instant must be inside Temporal's range. So within the
20
+ * offset's seconds (under a minute) of the last instant Temporal supports
21
+ * (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
22
+ * (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
23
+ * such limit.
18
24
  *
19
25
  * @param start Unix epoch in `epochUnit` — interval start
20
26
  * @param end Unix epoch in `epochUnit` — interval end
@@ -24,6 +24,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
24
24
  * 24-hour periods instead of counting calendar dates. To reproduce date-fns's number,
25
25
  * compose `intervalIntersectionUnix` with `intervalCountUnix`:
26
26
  * `const span = intervalIntersectionUnix(aStart, aEnd, bStart, bEnd); span ? intervalCountUnix(span.start, span.end, "day") : 0;`
27
+ * - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
28
+ * moved by its seconds, and the moved instant must be inside Temporal's range. So within the
29
+ * offset's seconds (under a minute) of the last instant Temporal supports
30
+ * (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
31
+ * (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
32
+ * such limit.
27
33
  *
28
34
  * @param aStart Unix epoch value (seconds or milliseconds) — first interval start
29
35
  * @param aEnd Unix epoch value (seconds or milliseconds) — first interval end
@@ -49,8 +55,10 @@ export declare function intervalOverlappingDaysUnix(aStart: number | string, aEn
49
55
  */
50
56
  epochUnit?: UnixUnit;
51
57
  /**
52
- * The time zone the calendar dates are counted in: an IANA name, a UTC offset, or `"local"` for
53
- * the system time zone. An unknown zone returns `null`.
58
+ * The time zone the calendar dates are counted in: an IANA name, a UTC offset (a time zone
59
+ * identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
60
+ * `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
61
+ * `null`.
54
62
  *
55
63
  * @defaultValue `"UTC"`
56
64
  */
@@ -1,5 +1,4 @@
1
- import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
2
- import { countZonedLocalDates, halfOpenIntersection, parseUnixEpochInterval, } from "../../internal/index.js";
1
+ import { countZonedLocalDates, frameZoned, halfOpenIntersection, normalizeZoneFrame, parseUnixEpochInterval, } from "../../internal/index.js";
3
2
  import { resolveUnixEpochUnit, unixEpochToInstant, } from "../../internal/unixEpochValue.js";
4
3
  import { isOptionsArgument } from "../../internal/isObject.js";
5
4
  /**
@@ -27,6 +26,12 @@ import { isOptionsArgument } from "../../internal/isObject.js";
27
26
  * 24-hour periods instead of counting calendar dates. To reproduce date-fns's number,
28
27
  * compose `intervalIntersectionUnix` with `intervalCountUnix`:
29
28
  * `const span = intervalIntersectionUnix(aStart, aEnd, bStart, bEnd); span ? intervalCountUnix(span.start, span.end, "day") : 0;`
29
+ * - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
30
+ * moved by its seconds, and the moved instant must be inside Temporal's range. So within the
31
+ * offset's seconds (under a minute) of the last instant Temporal supports
32
+ * (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
33
+ * (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
34
+ * such limit.
30
35
  *
31
36
  * @param aStart Unix epoch value (seconds or milliseconds) — first interval start
32
37
  * @param aEnd Unix epoch value (seconds or milliseconds) — first interval end
@@ -56,8 +61,8 @@ export function intervalOverlappingDaysUnix(aStart, aEnd, bStart, bEnd, options)
56
61
  const { start: a1, end: a2 } = a;
57
62
  const { start: b1, end: b2 } = b;
58
63
  const epochUnit = resolveUnixEpochUnit(options?.epochUnit);
59
- const timeZone = normalizeTimeZone(options?.timeZone);
60
- if (!timeZone || epochUnit === null) {
64
+ const frame = normalizeZoneFrame(options?.timeZone);
65
+ if (frame === null || epochUnit === null) {
61
66
  return null;
62
67
  }
63
68
  const overlap = halfOpenIntersection({ start: a1, end: a2 }, { start: b1, end: b2 }, (left, right) => left - right);
@@ -77,7 +82,7 @@ export function intervalOverlappingDaysUnix(aStart, aEnd, bStart, bEnd, options)
77
82
  try {
78
83
  // The last instant the half-open intersection holds is one nanosecond before its end, so the
79
84
  // closed local-date count runs to there.
80
- return countZonedLocalDates(first.toZonedDateTimeISO(timeZone), afterLast.toZonedDateTimeISO(timeZone).subtract({ nanoseconds: 1 }));
85
+ return countZonedLocalDates(frameZoned(first, frame), frameZoned(afterLast, frame).subtract({ nanoseconds: 1 }));
81
86
  }
82
87
  catch {
83
88
  return null;
@@ -31,6 +31,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
31
31
  * - Accepts singular or plural units (`"day"` and `"days"` behave identically).
32
32
  * - A split into more than `options.maxPieces` slices returns `[]`, decided from the span before
33
33
  * stepping where it can be, and otherwise as soon as slice `maxPieces + 1` is due.
34
+ * - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
35
+ * moved by its seconds, and the moved instant must be inside Temporal's range. So within the
36
+ * offset's seconds (under a minute) of the last instant Temporal supports
37
+ * (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
38
+ * (`-271821-04-20T00:00:00Z`) for one west, this returns `[]`. An offset to the minute has no
39
+ * such limit.
34
40
  *
35
41
  * @param start Unix epoch in `epochUnit` — interval start
36
42
  * @param end Unix epoch in `epochUnit` — interval end
@@ -67,8 +73,10 @@ export declare function splitIntervalByUnitUnix(start: number | string, end: num
67
73
  */
68
74
  epochUnit?: UnixUnit;
69
75
  /**
70
- * The time zone the calendar arithmetic runs in: an IANA name, a UTC offset, or `"local"` for
71
- * the system time zone. An unknown zone returns `[]`.
76
+ * The time zone the calendar arithmetic runs in: an IANA name, a UTC offset (a time zone
77
+ * identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
78
+ * `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
79
+ * `[]`.
72
80
  *
73
81
  * @defaultValue `"UTC"`
74
82
  */
@@ -1,6 +1,6 @@
1
1
  // fallow-ignore-file code-duplication -- cross-family Temporal type clone, by design (rule 5)
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
- import { resolveDurationUnit, tileByUnit } from "../../internal/index.js";
3
+ import { frameInstant, resolveDurationUnit, tileByUnit } from "../../internal/index.js";
4
4
  import { exceedsPieceLimit, resolveMaxPieces } from "../../internal/maxPieces.js";
5
5
  import { resolveUnixIntervalPair } from "../../internal/resolveUnixIntervalPair.js";
6
6
  import { minSlicesForSpan, stepNoFinerThan } from "../../internal/splitStep.js";
@@ -37,6 +37,12 @@ import { toUnixEpoch } from "../../internal/unixEpochValue.js";
37
37
  * - Accepts singular or plural units (`"day"` and `"days"` behave identically).
38
38
  * - A split into more than `options.maxPieces` slices returns `[]`, decided from the span before
39
39
  * stepping where it can be, and otherwise as soon as slice `maxPieces + 1` is due.
40
+ * - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
41
+ * moved by its seconds, and the moved instant must be inside Temporal's range. So within the
42
+ * offset's seconds (under a minute) of the last instant Temporal supports
43
+ * (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
44
+ * (`-271821-04-20T00:00:00Z`) for one west, this returns `[]`. An offset to the minute has no
45
+ * such limit.
40
46
  *
41
47
  * @param start Unix epoch in `epochUnit` — interval start
42
48
  * @param end Unix epoch in `epochUnit` — interval end
@@ -69,7 +75,7 @@ export function splitIntervalByUnitUnix(start, end, unit, amount, options) {
69
75
  if (maxPieces === null) {
70
76
  return [];
71
77
  }
72
- const { startVal, endVal, epochUnit } = pair;
78
+ const { startVal, endVal, epochUnit, frame } = pair;
73
79
  // Temporal's plural duration field name, as the tiling steps add `{ [unit]: amount }`. A step
74
80
  // finer than the epoch unit would floor neighbouring boundaries to one value (an empty slice),
75
81
  // so it steps by one epoch unit instead.
@@ -77,8 +83,8 @@ export function splitIntervalByUnitUnix(start, end, unit, amount, options) {
77
83
  if (startVal.epochNanoseconds === endVal.epochNanoseconds) {
78
84
  return [
79
85
  {
80
- start: toUnixEpoch(startVal, epochUnit),
81
- end: toUnixEpoch(endVal, epochUnit),
86
+ start: toUnixEpoch(frameInstant(startVal, frame), epochUnit),
87
+ end: toUnixEpoch(frameInstant(endVal, frame), epochUnit),
82
88
  },
83
89
  ];
84
90
  }
@@ -90,8 +96,8 @@ export function splitIntervalByUnitUnix(start, end, unit, amount, options) {
90
96
  // Boundaries stay ZonedDateTime (nanosecond) values; only the output is floored to epochUnit.
91
97
  const slices = tileByUnit(startVal, endVal, Temporal.ZonedDateTime.compare, resolvedUnit, stepAmount, maxPieces);
92
98
  return (slices ?? []).map(([sliceStart, sliceEnd]) => ({
93
- start: toUnixEpoch(sliceStart, epochUnit),
94
- end: toUnixEpoch(sliceEnd, epochUnit),
99
+ start: toUnixEpoch(frameInstant(sliceStart, frame), epochUnit),
100
+ end: toUnixEpoch(frameInstant(sliceEnd, frame), epochUnit),
95
101
  }));
96
102
  }
97
103
  catch {
@@ -24,8 +24,10 @@ export declare function parseDateFromUnix(value: number | string, options?: {
24
24
  */
25
25
  epochUnit?: UnixUnit;
26
26
  /**
27
- * The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
28
- * the system time zone. An unknown zone returns `""`.
27
+ * The time zone the wall-clock fields are read in: an IANA name, a UTC offset (a time zone
28
+ * identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
29
+ * `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
30
+ * `""`.
29
31
  *
30
32
  * @defaultValue `"UTC"`
31
33
  */
@@ -1,4 +1,4 @@
1
- import { unixZonedDateTime } from "../../internal/unixZonedDateTime.js";
1
+ import { unixWallClock } from "../../internal/unixWallClock.js";
2
2
  import { isOptionsArgument } from "../../internal/isObject.js";
3
3
  /**
4
4
  * Extract the date portion from a unix epoch value.
@@ -21,8 +21,8 @@ export function parseDateFromUnix(value, options) {
21
21
  if (!isOptionsArgument(options)) {
22
22
  return "";
23
23
  }
24
- const zdt = unixZonedDateTime(value, options);
25
- return zdt === null ? "" : zdt.toPlainDate().toString();
24
+ const wallClock = unixWallClock(value, options);
25
+ return wallClock === null ? "" : wallClock.toPlainDate().toString();
26
26
  }
27
27
  catch {
28
28
  // Never throws (Core Rule 3): a hostile
@@ -23,8 +23,10 @@ export declare function parseDayFromUnix(value: number | string, options?: {
23
23
  */
24
24
  epochUnit?: UnixUnit;
25
25
  /**
26
- * The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
27
- * the system time zone. An unknown zone returns `""`.
26
+ * The time zone the wall-clock fields are read in: an IANA name, a UTC offset (a time zone
27
+ * identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
28
+ * `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
29
+ * `""`.
28
30
  *
29
31
  * @defaultValue `"UTC"`
30
32
  */