@gobrand/tiempo 2.2.2 → 2.3.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.
- package/README.md +286 -12
- package/dist/addDays.d.ts +37 -0
- package/dist/addDays.d.ts.map +1 -0
- package/dist/addDays.js +8 -0
- package/dist/addDays.js.map +1 -0
- package/dist/addDays.test.d.ts +2 -0
- package/dist/addDays.test.d.ts.map +1 -0
- package/dist/addHours.d.ts +37 -0
- package/dist/addHours.d.ts.map +1 -0
- package/dist/addHours.js +8 -0
- package/dist/addHours.js.map +1 -0
- package/dist/addHours.test.d.ts +2 -0
- package/dist/addHours.test.d.ts.map +1 -0
- package/dist/addMicroseconds.d.ts +36 -0
- package/dist/addMicroseconds.d.ts.map +1 -0
- package/dist/addMicroseconds.js +8 -0
- package/dist/addMicroseconds.js.map +1 -0
- package/dist/addMicroseconds.test.d.ts +2 -0
- package/dist/addMicroseconds.test.d.ts.map +1 -0
- package/dist/addMilliseconds.d.ts +36 -0
- package/dist/addMilliseconds.d.ts.map +1 -0
- package/dist/addMilliseconds.js +8 -0
- package/dist/addMilliseconds.js.map +1 -0
- package/dist/addMilliseconds.test.d.ts +2 -0
- package/dist/addMilliseconds.test.d.ts.map +1 -0
- package/dist/addMinutes.d.ts +36 -0
- package/dist/addMinutes.d.ts.map +1 -0
- package/dist/addMinutes.js +8 -0
- package/dist/addMinutes.js.map +1 -0
- package/dist/addMinutes.test.d.ts +2 -0
- package/dist/addMinutes.test.d.ts.map +1 -0
- package/dist/addMonths.d.ts +37 -0
- package/dist/addMonths.d.ts.map +1 -0
- package/dist/addMonths.js +8 -0
- package/dist/addMonths.js.map +1 -0
- package/dist/addMonths.test.d.ts +2 -0
- package/dist/addMonths.test.d.ts.map +1 -0
- package/dist/addNanoseconds.d.ts +36 -0
- package/dist/addNanoseconds.d.ts.map +1 -0
- package/dist/addNanoseconds.js +8 -0
- package/dist/addNanoseconds.js.map +1 -0
- package/dist/addNanoseconds.test.d.ts +2 -0
- package/dist/addNanoseconds.test.d.ts.map +1 -0
- package/dist/addSeconds.d.ts +36 -0
- package/dist/addSeconds.d.ts.map +1 -0
- package/dist/addSeconds.js +8 -0
- package/dist/addSeconds.js.map +1 -0
- package/dist/addSeconds.test.d.ts +2 -0
- package/dist/addSeconds.test.d.ts.map +1 -0
- package/dist/addWeeks.d.ts +37 -0
- package/dist/addWeeks.d.ts.map +1 -0
- package/dist/addWeeks.js +8 -0
- package/dist/addWeeks.js.map +1 -0
- package/dist/addWeeks.test.d.ts +2 -0
- package/dist/addWeeks.test.d.ts.map +1 -0
- package/dist/addYears.d.ts +37 -0
- package/dist/addYears.d.ts.map +1 -0
- package/dist/addYears.js +8 -0
- package/dist/addYears.js.map +1 -0
- package/dist/addYears.test.d.ts +2 -0
- package/dist/addYears.test.d.ts.map +1 -0
- package/dist/chunk-2XHAHSB6.js +14 -0
- package/dist/chunk-2XHAHSB6.js.map +1 -0
- package/dist/chunk-4NJMCCUM.js +14 -0
- package/dist/chunk-4NJMCCUM.js.map +1 -0
- package/dist/chunk-52NEOY34.js +13 -0
- package/dist/chunk-52NEOY34.js.map +1 -0
- package/dist/chunk-7ATM7AXL.js +14 -0
- package/dist/chunk-7ATM7AXL.js.map +1 -0
- package/dist/chunk-A5VVBYNT.js +14 -0
- package/dist/chunk-A5VVBYNT.js.map +1 -0
- package/dist/chunk-ADQTZVMH.js +15 -0
- package/dist/chunk-ADQTZVMH.js.map +1 -0
- package/dist/chunk-AHMKY474.js +13 -0
- package/dist/chunk-AHMKY474.js.map +1 -0
- package/dist/chunk-BH2YB4MV.js +13 -0
- package/dist/chunk-BH2YB4MV.js.map +1 -0
- package/dist/chunk-BQBLSXK2.js +13 -0
- package/dist/chunk-BQBLSXK2.js.map +1 -0
- package/dist/chunk-CY746ZUQ.js +15 -0
- package/dist/chunk-CY746ZUQ.js.map +1 -0
- package/dist/chunk-DT2EWLHU.js +14 -0
- package/dist/chunk-DT2EWLHU.js.map +1 -0
- package/dist/chunk-EEQ3REET.js +15 -0
- package/dist/chunk-EEQ3REET.js.map +1 -0
- package/dist/chunk-EYO2ZJLH.js +14 -0
- package/dist/chunk-EYO2ZJLH.js.map +1 -0
- package/dist/chunk-HDBH7RTY.js +13 -0
- package/dist/chunk-HDBH7RTY.js.map +1 -0
- package/dist/chunk-ISHZRFVN.js +15 -0
- package/dist/chunk-ISHZRFVN.js.map +1 -0
- package/dist/chunk-J6G2I2TU.js +13 -0
- package/dist/chunk-J6G2I2TU.js.map +1 -0
- package/dist/chunk-JOD4ATPE.js +15 -0
- package/dist/chunk-JOD4ATPE.js.map +1 -0
- package/dist/chunk-L4SVABDH.js +14 -0
- package/dist/chunk-L4SVABDH.js.map +1 -0
- package/dist/chunk-LDO6PRNJ.js +15 -0
- package/dist/chunk-LDO6PRNJ.js.map +1 -0
- package/dist/chunk-NRD5HRZV.js +14 -0
- package/dist/chunk-NRD5HRZV.js.map +1 -0
- package/dist/chunk-PPB62JYV.js +15 -0
- package/dist/chunk-PPB62JYV.js.map +1 -0
- package/dist/chunk-Q2F3HEXB.js +14 -0
- package/dist/chunk-Q2F3HEXB.js.map +1 -0
- package/dist/chunk-S63QUP4W.js +15 -0
- package/dist/chunk-S63QUP4W.js.map +1 -0
- package/dist/chunk-U4RNUZXO.js +13 -0
- package/dist/chunk-U4RNUZXO.js.map +1 -0
- package/dist/chunk-V27NUBXQ.js +14 -0
- package/dist/chunk-V27NUBXQ.js.map +1 -0
- package/dist/chunk-VLZ3HQQA.js +15 -0
- package/dist/chunk-VLZ3HQQA.js.map +1 -0
- package/dist/chunk-WVHAYLBW.js +13 -0
- package/dist/chunk-WVHAYLBW.js.map +1 -0
- package/dist/chunk-XEDXPI5G.js +94 -0
- package/dist/chunk-XEDXPI5G.js.map +1 -0
- package/dist/chunk-XW5MLXX5.js +13 -0
- package/dist/chunk-XW5MLXX5.js.map +1 -0
- package/dist/chunk-YKBP3G7L.js +13 -0
- package/dist/chunk-YKBP3G7L.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +139 -19
- package/dist/intlFormatDistance.d.ts +85 -0
- package/dist/intlFormatDistance.d.ts.map +1 -0
- package/dist/intlFormatDistance.js +15 -0
- package/dist/intlFormatDistance.js.map +1 -0
- package/dist/intlFormatDistance.test.d.ts +2 -0
- package/dist/intlFormatDistance.test.d.ts.map +1 -0
- package/dist/isSameHour.d.ts +58 -0
- package/dist/isSameHour.d.ts.map +1 -0
- package/dist/isSameHour.js +8 -0
- package/dist/isSameHour.js.map +1 -0
- package/dist/isSameHour.test.d.ts +2 -0
- package/dist/isSameHour.test.d.ts.map +1 -0
- package/dist/isSameMicrosecond.d.ts +59 -0
- package/dist/isSameMicrosecond.d.ts.map +1 -0
- package/dist/isSameMicrosecond.js +8 -0
- package/dist/isSameMicrosecond.js.map +1 -0
- package/dist/isSameMicrosecond.test.d.ts +2 -0
- package/dist/isSameMicrosecond.test.d.ts.map +1 -0
- package/dist/isSameMillisecond.d.ts +59 -0
- package/dist/isSameMillisecond.d.ts.map +1 -0
- package/dist/isSameMillisecond.js +8 -0
- package/dist/isSameMillisecond.js.map +1 -0
- package/dist/isSameMillisecond.test.d.ts +2 -0
- package/dist/isSameMillisecond.test.d.ts.map +1 -0
- package/dist/isSameMinute.d.ts +58 -0
- package/dist/isSameMinute.d.ts.map +1 -0
- package/dist/isSameMinute.js +8 -0
- package/dist/isSameMinute.js.map +1 -0
- package/dist/isSameMinute.test.d.ts +2 -0
- package/dist/isSameMinute.test.d.ts.map +1 -0
- package/dist/isSameMonth.d.ts +58 -0
- package/dist/isSameMonth.d.ts.map +1 -0
- package/dist/isSameMonth.js +8 -0
- package/dist/isSameMonth.js.map +1 -0
- package/dist/isSameMonth.test.d.ts +2 -0
- package/dist/isSameMonth.test.d.ts.map +1 -0
- package/dist/isSameNanosecond.d.ts +59 -0
- package/dist/isSameNanosecond.d.ts.map +1 -0
- package/dist/isSameNanosecond.js +8 -0
- package/dist/isSameNanosecond.js.map +1 -0
- package/dist/isSameNanosecond.test.d.ts +2 -0
- package/dist/isSameNanosecond.test.d.ts.map +1 -0
- package/dist/isSameSecond.d.ts +59 -0
- package/dist/isSameSecond.d.ts.map +1 -0
- package/dist/isSameSecond.js +8 -0
- package/dist/isSameSecond.js.map +1 -0
- package/dist/isSameSecond.test.d.ts +2 -0
- package/dist/isSameSecond.test.d.ts.map +1 -0
- package/dist/isSameWeek.d.ts +72 -0
- package/dist/isSameWeek.d.ts.map +1 -0
- package/dist/isSameWeek.js +8 -0
- package/dist/isSameWeek.js.map +1 -0
- package/dist/isSameWeek.test.d.ts +2 -0
- package/dist/isSameWeek.test.d.ts.map +1 -0
- package/dist/isSameYear.d.ts +58 -0
- package/dist/isSameYear.d.ts.map +1 -0
- package/dist/isSameYear.js +8 -0
- package/dist/isSameYear.js.map +1 -0
- package/dist/isSameYear.test.d.ts +2 -0
- package/dist/isSameYear.test.d.ts.map +1 -0
- package/dist/subDays.d.ts +20 -0
- package/dist/subDays.d.ts.map +1 -0
- package/dist/subDays.js +9 -0
- package/dist/subDays.js.map +1 -0
- package/dist/subDays.test.d.ts +2 -0
- package/dist/subDays.test.d.ts.map +1 -0
- package/dist/subHours.d.ts +20 -0
- package/dist/subHours.d.ts.map +1 -0
- package/dist/subHours.js +9 -0
- package/dist/subHours.js.map +1 -0
- package/dist/subHours.test.d.ts +2 -0
- package/dist/subHours.test.d.ts.map +1 -0
- package/dist/subMicroseconds.d.ts +19 -0
- package/dist/subMicroseconds.d.ts.map +1 -0
- package/dist/subMicroseconds.js +9 -0
- package/dist/subMicroseconds.js.map +1 -0
- package/dist/subMicroseconds.test.d.ts +2 -0
- package/dist/subMicroseconds.test.d.ts.map +1 -0
- package/dist/subMilliseconds.d.ts +19 -0
- package/dist/subMilliseconds.d.ts.map +1 -0
- package/dist/subMilliseconds.js +9 -0
- package/dist/subMilliseconds.js.map +1 -0
- package/dist/subMilliseconds.test.d.ts +2 -0
- package/dist/subMilliseconds.test.d.ts.map +1 -0
- package/dist/subMinutes.d.ts +19 -0
- package/dist/subMinutes.d.ts.map +1 -0
- package/dist/subMinutes.js +9 -0
- package/dist/subMinutes.js.map +1 -0
- package/dist/subMinutes.test.d.ts +2 -0
- package/dist/subMinutes.test.d.ts.map +1 -0
- package/dist/subMonths.d.ts +20 -0
- package/dist/subMonths.d.ts.map +1 -0
- package/dist/subMonths.js +9 -0
- package/dist/subMonths.js.map +1 -0
- package/dist/subMonths.test.d.ts +2 -0
- package/dist/subMonths.test.d.ts.map +1 -0
- package/dist/subNanoseconds.d.ts +19 -0
- package/dist/subNanoseconds.d.ts.map +1 -0
- package/dist/subNanoseconds.js +9 -0
- package/dist/subNanoseconds.js.map +1 -0
- package/dist/subNanoseconds.test.d.ts +2 -0
- package/dist/subNanoseconds.test.d.ts.map +1 -0
- package/dist/subSeconds.d.ts +19 -0
- package/dist/subSeconds.d.ts.map +1 -0
- package/dist/subSeconds.js +9 -0
- package/dist/subSeconds.js.map +1 -0
- package/dist/subSeconds.test.d.ts +2 -0
- package/dist/subSeconds.test.d.ts.map +1 -0
- package/dist/subWeeks.d.ts +20 -0
- package/dist/subWeeks.d.ts.map +1 -0
- package/dist/subWeeks.js +9 -0
- package/dist/subWeeks.js.map +1 -0
- package/dist/subWeeks.test.d.ts +2 -0
- package/dist/subWeeks.test.d.ts.map +1 -0
- package/dist/subYears.d.ts +20 -0
- package/dist/subYears.d.ts.map +1 -0
- package/dist/subYears.js +9 -0
- package/dist/subYears.js.map +1 -0
- package/dist/subYears.test.d.ts +2 -0
- package/dist/subYears.test.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
normalizeTemporalInput
|
|
3
|
+
} from "./chunk-MJSZNWCV.js";
|
|
4
|
+
|
|
5
|
+
// src/isSameMillisecond.ts
|
|
6
|
+
function isSameMillisecond(date1, date2) {
|
|
7
|
+
const zoned1 = normalizeTemporalInput(date1);
|
|
8
|
+
const zoned2 = normalizeTemporalInput(date2);
|
|
9
|
+
return zoned1.year === zoned2.year && zoned1.month === zoned2.month && zoned1.day === zoned2.day && zoned1.hour === zoned2.hour && zoned1.minute === zoned2.minute && zoned1.second === zoned2.second && zoned1.millisecond === zoned2.millisecond;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
isSameMillisecond
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=chunk-ISHZRFVN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
normalizeTemporalInput
|
|
3
|
+
} from "./chunk-MJSZNWCV.js";
|
|
4
|
+
|
|
5
|
+
// src/isSameWeek.ts
|
|
6
|
+
function isSameWeek(date1, date2) {
|
|
7
|
+
const zoned1 = normalizeTemporalInput(date1);
|
|
8
|
+
const zoned2 = normalizeTemporalInput(date2);
|
|
9
|
+
return zoned1.yearOfWeek === zoned2.yearOfWeek && zoned1.weekOfYear === zoned2.weekOfYear;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
isSameWeek
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=chunk-JOD4ATPE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
normalizeTemporalInput
|
|
3
|
+
} from "./chunk-MJSZNWCV.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-L4SVABDH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
normalizeTemporalInput
|
|
3
|
+
} from "./chunk-MJSZNWCV.js";
|
|
4
|
+
|
|
5
|
+
// src/isSameMinute.ts
|
|
6
|
+
function isSameMinute(date1, date2) {
|
|
7
|
+
const zoned1 = normalizeTemporalInput(date1);
|
|
8
|
+
const zoned2 = normalizeTemporalInput(date2);
|
|
9
|
+
return zoned1.year === zoned2.year && zoned1.month === zoned2.month && zoned1.day === zoned2.day && zoned1.hour === zoned2.hour && zoned1.minute === zoned2.minute;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
isSameMinute
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=chunk-LDO6PRNJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
normalizeTemporalInput
|
|
3
|
+
} from "./chunk-MJSZNWCV.js";
|
|
4
|
+
|
|
5
|
+
// src/addSeconds.ts
|
|
6
|
+
function addSeconds(input, seconds) {
|
|
7
|
+
const zonedDateTime = normalizeTemporalInput(input);
|
|
8
|
+
return zonedDateTime.add({ seconds });
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export {
|
|
12
|
+
addSeconds
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=chunk-NRD5HRZV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
normalizeTemporalInput
|
|
3
|
+
} from "./chunk-MJSZNWCV.js";
|
|
4
|
+
|
|
5
|
+
// src/isSameMicrosecond.ts
|
|
6
|
+
function isSameMicrosecond(date1, date2) {
|
|
7
|
+
const zoned1 = normalizeTemporalInput(date1);
|
|
8
|
+
const zoned2 = normalizeTemporalInput(date2);
|
|
9
|
+
return zoned1.year === zoned2.year && zoned1.month === zoned2.month && zoned1.day === zoned2.day && zoned1.hour === zoned2.hour && zoned1.minute === zoned2.minute && zoned1.second === zoned2.second && zoned1.millisecond === zoned2.millisecond && zoned1.microsecond === zoned2.microsecond;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
isSameMicrosecond
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=chunk-PPB62JYV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
normalizeTemporalInput
|
|
3
|
+
} from "./chunk-MJSZNWCV.js";
|
|
4
|
+
|
|
5
|
+
// src/addYears.ts
|
|
6
|
+
function addYears(input, years) {
|
|
7
|
+
const zonedDateTime = normalizeTemporalInput(input);
|
|
8
|
+
return zonedDateTime.add({ years });
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export {
|
|
12
|
+
addYears
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=chunk-Q2F3HEXB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/addYears.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Adds the specified number of years to a datetime.\n *\n * Properly handles leap years 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 years - Number of years to add (can be negative to subtract)\n * @returns ZonedDateTime with years 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 = addYears(instant, 2);\n * // 2027-01-20T12:00:00Z[UTC] (2 years 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 = addYears(zoned, 1);\n * // 2026-01-20T15:30:00-05:00[America/New_York]\n * ```\n *\n * @example\n * ```ts\n * // Leap year handling\n * const instant = Temporal.Instant.from('2024-02-29T12:00:00Z');\n * const result = addYears(instant, 1);\n * // 2025-02-28T12:00:00Z[UTC] (Feb 29 → Feb 28)\n * ```\n */\nexport function addYears(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n years: number\n): Temporal.ZonedDateTime {\n const zonedDateTime = normalizeTemporalInput(input);\n return zonedDateTime.add({ years });\n}\n"],"mappings":";;;;;AAqCO,SAAS,SACd,OACA,OACwB;AACxB,QAAM,gBAAgB,uBAAuB,KAAK;AAClD,SAAO,cAAc,IAAI,EAAE,MAAM,CAAC;AACpC;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
normalizeTemporalInput
|
|
3
|
+
} from "./chunk-MJSZNWCV.js";
|
|
4
|
+
|
|
5
|
+
// src/isSameNanosecond.ts
|
|
6
|
+
function isSameNanosecond(date1, date2) {
|
|
7
|
+
const zoned1 = normalizeTemporalInput(date1);
|
|
8
|
+
const zoned2 = normalizeTemporalInput(date2);
|
|
9
|
+
return zoned1.year === zoned2.year && zoned1.month === zoned2.month && zoned1.day === zoned2.day && zoned1.hour === zoned2.hour && zoned1.minute === zoned2.minute && zoned1.second === zoned2.second && zoned1.millisecond === zoned2.millisecond && zoned1.microsecond === zoned2.microsecond && zoned1.nanosecond === zoned2.nanosecond;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
isSameNanosecond
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=chunk-S63QUP4W.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/isSameNanosecond.ts"],"sourcesContent":["import type{ Temporal } from '@js-temporal/polyfill';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns true if both datetimes represent the exact same nanosecond.\n * Compares all time fields: year, month, day, hour, minute, second, millisecond, microsecond, and nanosecond.\n * This is the most precise comparison possible, representing exact instant equality in their respective timezones.\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 exact same nanosecond, false otherwise\n *\n * @example\n * ```ts\n * // Same timezone, exact same nanosecond\n * const time1 = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.123456789Z[UTC]');\n * const time2 = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.123456789Z[UTC]');\n *\n * isSameNanosecond(time1, time2); // true\n * ```\n *\n * @example\n * ```ts\n * // Same timezone, different nanoseconds\n * const ns789 = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.123456789Z[UTC]');\n * const ns790 = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.123456790Z[UTC]');\n *\n * isSameNanosecond(ns789, ns790); // false\n * ```\n *\n * @example\n * ```ts\n * // Different timezones - compares their local nanoseconds\n * const ny = Temporal.ZonedDateTime.from('2025-01-20T14:30:45.123456789-05:00[America/New_York]');\n * const tokyo = Temporal.ZonedDateTime.from('2025-01-21T04:30:45.987654321+09:00[Asia/Tokyo]');\n *\n * // Same instant, different local nanoseconds from each person's perspective\n * isSameNanosecond(ny, tokyo); // false (14:30:45.123456789 in NY, 04:30:45.987654321 in Tokyo)\n *\n * // Convert to UTC to compare in UTC timezone\n * isSameNanosecond(ny.withTimeZone('UTC'), tokyo.withTimeZone('UTC')); // true (both 19:30:45.123456789 in UTC)\n *\n * // Convert to NY timezone to compare from NY perspective\n * isSameNanosecond(ny, tokyo.withTimeZone('America/New_York')); // true (both 14:30:45.123456789 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.123456789Z');\n *\n * isSameNanosecond(instant1, instant2); // true\n * ```\n */\nexport function isSameNanosecond(\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 zoned1.nanosecond === zoned2.nanosecond\n );\n}\n"],"mappings":";;;;;AA2DO,SAAS,iBACd,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,eAC9B,OAAO,eAAe,OAAO;AAEjC;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
normalizeTemporalInput
|
|
3
|
+
} from "./chunk-MJSZNWCV.js";
|
|
4
|
+
|
|
5
|
+
// src/addMicroseconds.ts
|
|
6
|
+
function addMicroseconds(input, microseconds) {
|
|
7
|
+
const zonedDateTime = normalizeTemporalInput(input);
|
|
8
|
+
return zonedDateTime.add({ microseconds });
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export {
|
|
12
|
+
addMicroseconds
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=chunk-V27NUBXQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
normalizeTemporalInput
|
|
3
|
+
} from "./chunk-MJSZNWCV.js";
|
|
4
|
+
|
|
5
|
+
// src/isSameYear.ts
|
|
6
|
+
function isSameYear(date1, date2) {
|
|
7
|
+
const zoned1 = normalizeTemporalInput(date1);
|
|
8
|
+
const zoned2 = normalizeTemporalInput(date2);
|
|
9
|
+
return zoned1.year === zoned2.year;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
isSameYear
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=chunk-VLZ3HQQA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
addNanoseconds
|
|
3
|
+
} from "./chunk-EYO2ZJLH.js";
|
|
4
|
+
|
|
5
|
+
// src/subNanoseconds.ts
|
|
6
|
+
function subNanoseconds(input, nanoseconds) {
|
|
7
|
+
return addNanoseconds(input, -nanoseconds);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export {
|
|
11
|
+
subNanoseconds
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=chunk-WVHAYLBW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/subNanoseconds.ts"],"sourcesContent":["import type { Temporal } from '@js-temporal/polyfill';\nimport { addNanoseconds } from './addNanoseconds';\n\n/**\n * Subtracts the specified number of nanoseconds from a datetime.\n *\n * This is a convenience wrapper around addNanoseconds with negated value.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @param nanoseconds - Number of nanoseconds to subtract\n * @returns ZonedDateTime with nanoseconds subtracted, in the same timezone as input\n *\n * @example\n * ```ts\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00.000001Z');\n * const result = subNanoseconds(instant, 500);\n * // 2025-01-20T12:00:00.000000500Z[UTC] (500 nanoseconds earlier)\n * ```\n */\nexport function subNanoseconds(\n input: Temporal.Instant | Temporal.ZonedDateTime,\n nanoseconds: number\n): Temporal.ZonedDateTime {\n return addNanoseconds(input, -nanoseconds);\n}\n"],"mappings":";;;;;AAmBO,SAAS,eACd,OACA,aACwB;AACxB,SAAO,eAAe,OAAO,CAAC,WAAW;AAC3C;","names":[]}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import {
|
|
2
|
+
differenceInSeconds
|
|
3
|
+
} from "./chunk-ZHRMURYP.js";
|
|
4
|
+
import {
|
|
5
|
+
differenceInWeeks
|
|
6
|
+
} from "./chunk-PVAOUYXF.js";
|
|
7
|
+
import {
|
|
8
|
+
differenceInYears
|
|
9
|
+
} from "./chunk-CHW2EN2O.js";
|
|
10
|
+
import {
|
|
11
|
+
differenceInDays
|
|
12
|
+
} from "./chunk-6IP245MS.js";
|
|
13
|
+
import {
|
|
14
|
+
differenceInHours
|
|
15
|
+
} from "./chunk-PIDXROVB.js";
|
|
16
|
+
import {
|
|
17
|
+
differenceInMinutes
|
|
18
|
+
} from "./chunk-RJY62CDU.js";
|
|
19
|
+
import {
|
|
20
|
+
differenceInMonths
|
|
21
|
+
} from "./chunk-BIAPE4MR.js";
|
|
22
|
+
import {
|
|
23
|
+
normalizeTemporalInput
|
|
24
|
+
} from "./chunk-MJSZNWCV.js";
|
|
25
|
+
|
|
26
|
+
// src/intlFormatDistance.ts
|
|
27
|
+
function intlFormatDistance(laterDate, earlierDate, options) {
|
|
28
|
+
const zoned1 = normalizeTemporalInput(laterDate);
|
|
29
|
+
const zoned2 = normalizeTemporalInput(earlierDate);
|
|
30
|
+
let unit = options?.unit;
|
|
31
|
+
if (!unit) {
|
|
32
|
+
const absSeconds = Math.abs(differenceInSeconds(zoned1, zoned2));
|
|
33
|
+
const absMinutes = Math.abs(differenceInMinutes(zoned1, zoned2));
|
|
34
|
+
const absHours = Math.abs(differenceInHours(zoned1, zoned2));
|
|
35
|
+
const absDays = Math.abs(differenceInDays(zoned1, zoned2));
|
|
36
|
+
const absWeeks = Math.abs(differenceInWeeks(zoned1, zoned2));
|
|
37
|
+
const absMonths = Math.abs(differenceInMonths(zoned1, zoned2));
|
|
38
|
+
if (absSeconds < 60) {
|
|
39
|
+
unit = "second";
|
|
40
|
+
} else if (absMinutes < 60) {
|
|
41
|
+
unit = "minute";
|
|
42
|
+
} else if (absHours < 24) {
|
|
43
|
+
unit = "hour";
|
|
44
|
+
} else if (absDays < 7) {
|
|
45
|
+
unit = "day";
|
|
46
|
+
} else if (absWeeks < 4) {
|
|
47
|
+
unit = "week";
|
|
48
|
+
} else if (absMonths < 12) {
|
|
49
|
+
unit = "month";
|
|
50
|
+
} else {
|
|
51
|
+
unit = "year";
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
let value;
|
|
55
|
+
switch (unit) {
|
|
56
|
+
case "second":
|
|
57
|
+
value = differenceInSeconds(zoned1, zoned2);
|
|
58
|
+
break;
|
|
59
|
+
case "minute":
|
|
60
|
+
value = differenceInMinutes(zoned1, zoned2);
|
|
61
|
+
break;
|
|
62
|
+
case "hour":
|
|
63
|
+
value = differenceInHours(zoned1, zoned2);
|
|
64
|
+
break;
|
|
65
|
+
case "day":
|
|
66
|
+
value = differenceInDays(zoned1, zoned2);
|
|
67
|
+
break;
|
|
68
|
+
case "week":
|
|
69
|
+
value = differenceInWeeks(zoned1, zoned2);
|
|
70
|
+
break;
|
|
71
|
+
case "month":
|
|
72
|
+
value = differenceInMonths(zoned1, zoned2);
|
|
73
|
+
break;
|
|
74
|
+
case "quarter":
|
|
75
|
+
value = Math.round(differenceInMonths(zoned1, zoned2) / 3);
|
|
76
|
+
break;
|
|
77
|
+
case "year":
|
|
78
|
+
value = differenceInYears(zoned1, zoned2);
|
|
79
|
+
break;
|
|
80
|
+
default:
|
|
81
|
+
value = differenceInSeconds(zoned1, zoned2);
|
|
82
|
+
}
|
|
83
|
+
const formatter = new Intl.RelativeTimeFormat(options?.locale, {
|
|
84
|
+
localeMatcher: options?.localeMatcher,
|
|
85
|
+
numeric: options?.numeric ?? "auto",
|
|
86
|
+
style: options?.style
|
|
87
|
+
});
|
|
88
|
+
return formatter.format(value, unit);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export {
|
|
92
|
+
intlFormatDistance
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=chunk-XEDXPI5G.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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 const absDays = Math.abs(differenceInDays(zoned1, zoned2));\n const absWeeks = Math.abs(differenceInWeeks(zoned1, zoned2));\n const absMonths = Math.abs(differenceInMonths(zoned1, zoned2));\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 = differenceInSeconds(zoned1, zoned2);\n break;\n case 'minute':\n value = differenceInMinutes(zoned1, zoned2);\n break;\n case 'hour':\n value = differenceInHours(zoned1, zoned2);\n break;\n case 'day':\n value = differenceInDays(zoned1, zoned2);\n break;\n case 'week':\n value = differenceInWeeks(zoned1, zoned2);\n break;\n case 'month':\n value = differenceInMonths(zoned1, zoned2);\n break;\n case 'quarter':\n value = Math.round(differenceInMonths(zoned1, zoned2) / 3);\n break;\n case 'year':\n value = differenceInYears(zoned1, zoned2);\n break;\n default:\n // For any other unit type, try to use it directly\n value = 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;AAC3D,UAAM,UAAU,KAAK,IAAI,iBAAiB,QAAQ,MAAM,CAAC;AACzD,UAAM,WAAW,KAAK,IAAI,kBAAkB,QAAQ,MAAM,CAAC;AAC3D,UAAM,YAAY,KAAK,IAAI,mBAAmB,QAAQ,MAAM,CAAC;AAE7D,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,oBAAoB,QAAQ,MAAM;AAC1C;AAAA,IACF,KAAK;AACH,cAAQ,oBAAoB,QAAQ,MAAM;AAC1C;AAAA,IACF,KAAK;AACH,cAAQ,kBAAkB,QAAQ,MAAM;AACxC;AAAA,IACF,KAAK;AACH,cAAQ,iBAAiB,QAAQ,MAAM;AACvC;AAAA,IACF,KAAK;AACH,cAAQ,kBAAkB,QAAQ,MAAM;AACxC;AAAA,IACF,KAAK;AACH,cAAQ,mBAAmB,QAAQ,MAAM;AACzC;AAAA,IACF,KAAK;AACH,cAAQ,KAAK,MAAM,mBAAmB,QAAQ,MAAM,IAAI,CAAC;AACzD;AAAA,IACF,KAAK;AACH,cAAQ,kBAAkB,QAAQ,MAAM;AACxC;AAAA,IACF;AAEE,cAAQ,oBAAoB,QAAQ,MAAM;AAAA,EAC9C;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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,26 @@ export { startOfDay } from './startOfDay';
|
|
|
8
8
|
export { endOfDay } from './endOfDay';
|
|
9
9
|
export { startOfWeek } from './startOfWeek';
|
|
10
10
|
export { endOfWeek } from './endOfWeek';
|
|
11
|
+
export { addWeeks } from './addWeeks';
|
|
12
|
+
export { addYears } from './addYears';
|
|
13
|
+
export { addMonths } from './addMonths';
|
|
14
|
+
export { addDays } from './addDays';
|
|
15
|
+
export { addHours } from './addHours';
|
|
16
|
+
export { addMinutes } from './addMinutes';
|
|
17
|
+
export { addSeconds } from './addSeconds';
|
|
18
|
+
export { addMilliseconds } from './addMilliseconds';
|
|
19
|
+
export { addMicroseconds } from './addMicroseconds';
|
|
20
|
+
export { addNanoseconds } from './addNanoseconds';
|
|
21
|
+
export { subYears } from './subYears';
|
|
22
|
+
export { subMonths } from './subMonths';
|
|
23
|
+
export { subWeeks } from './subWeeks';
|
|
24
|
+
export { subDays } from './subDays';
|
|
25
|
+
export { subHours } from './subHours';
|
|
26
|
+
export { subMinutes } from './subMinutes';
|
|
27
|
+
export { subSeconds } from './subSeconds';
|
|
28
|
+
export { subMilliseconds } from './subMilliseconds';
|
|
29
|
+
export { subMicroseconds } from './subMicroseconds';
|
|
30
|
+
export { subNanoseconds } from './subNanoseconds';
|
|
11
31
|
export { startOfMonth } from './startOfMonth';
|
|
12
32
|
export { endOfMonth } from './endOfMonth';
|
|
13
33
|
export { startOfYear } from './startOfYear';
|
|
@@ -17,6 +37,15 @@ export { isAfter } from './isAfter';
|
|
|
17
37
|
export { isFuture } from './isFuture';
|
|
18
38
|
export { isPast } from './isPast';
|
|
19
39
|
export { isSameDay } from './isSameDay';
|
|
40
|
+
export { isSameYear } from './isSameYear';
|
|
41
|
+
export { isSameMonth } from './isSameMonth';
|
|
42
|
+
export { isSameWeek } from './isSameWeek';
|
|
43
|
+
export { isSameHour } from './isSameHour';
|
|
44
|
+
export { isSameMinute } from './isSameMinute';
|
|
45
|
+
export { isSameSecond } from './isSameSecond';
|
|
46
|
+
export { isSameMillisecond } from './isSameMillisecond';
|
|
47
|
+
export { isSameMicrosecond } from './isSameMicrosecond';
|
|
48
|
+
export { isSameNanosecond } from './isSameNanosecond';
|
|
20
49
|
export { differenceInNanoseconds } from './differenceInNanoseconds';
|
|
21
50
|
export { differenceInMicroseconds } from './differenceInMicroseconds';
|
|
22
51
|
export { differenceInMilliseconds } from './differenceInMilliseconds';
|
|
@@ -27,4 +56,5 @@ export { differenceInDays } from './differenceInDays';
|
|
|
27
56
|
export { differenceInWeeks } from './differenceInWeeks';
|
|
28
57
|
export { differenceInMonths } from './differenceInMonths';
|
|
29
58
|
export { differenceInYears } from './differenceInYears';
|
|
59
|
+
export { intlFormatDistance, type IntlFormatDistanceOptions, } from './intlFormatDistance';
|
|
30
60
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,sBAAsB,CAAC"}
|