@ntrr/calendar-kit 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,45 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.1] — 2026-09-26
4
+
5
+ Correctness release. Every change stops the kit reporting something that is not
6
+ true about a calendar — which matters because Reliant decides whether to place a
7
+ phone call from this data, and a wrong answer means calling someone mid-meeting.
8
+
9
+ **Fixed**
10
+
11
+ - **Non-IANA `TZID`s no longer drop the event** (#1). A Windows zone name —
12
+ `Central Standard Time`, as Outlook and Exchange write — failed to resolve and
13
+ the event vanished silently. Resolution now falls through: IANA name, then a
14
+ Windows/legacy alias table, then a `VTIMEZONE` registered from the same
15
+ calendar, then the floating zone as an approximation. The `VTIMEZONE`
16
+ registration already existed and was never read; its offsets are now used.
17
+ - **The account's own shared calendar is discoverable** (#2). `<CS:shared-owner/>`
18
+ marks a calendar you own and have shared — the family calendar — and it was
19
+ excluded, so discovery failed outright for exactly that setup. The filter was
20
+ also inverted: a calendar shared *into* the account was accepted and could be
21
+ chosen as primary. Owned calendars now outrank shared-in ones.
22
+ - **Intervals never end before they start** (#5). The mixed Zulu/`TZID` repair
23
+ could invert a legitimate 3-hour event and nothing checked. A repair is now
24
+ kept only if it improves the interval, and both parse paths order the endpoints
25
+ before emitting.
26
+ - **`DURATION` is honoured** (#9). An event with `DTSTART` + `DURATION` and no
27
+ `DTEND` parsed zero-length, which reads as *not busy*. Days and weeks are
28
+ treated as nominal and smaller units as exact, per RFC 5545 §3.3.6, so a
29
+ duration spanning a DST transition lands correctly.
30
+
31
+ **Changed**
32
+
33
+ - Published to public npm under MIT; `dist/` is no longer committed (built at
34
+ publish time). Consumers install `@ntrr/calendar-kit` from the registry with no
35
+ credential.
36
+
37
+ **Notes**
38
+
39
+ - An unresolvable `TZID` is now approximated rather than dropped. Visible and
40
+ approximate beats invisible for a free/busy consumer; a diagnostic channel is
41
+ tracked in #3.
42
+
3
43
  ## [0.2.0] — 2026-08-23
4
44
 
5
45
  First **minor** release — stable baseline before Reliant (and other products) consume the kit.
@@ -14,5 +54,6 @@ First **minor** release — stable baseline before Reliant (and other products)
14
54
 
15
55
  Initial extraction from Hub (development tag; prefer **0.2.0**).
16
56
 
57
+ [0.2.1]: https://github.com/sm00thindian/ntrr-calendar/releases/tag/v0.2.1
17
58
  [0.2.0]: https://github.com/sm00thindian/ntrr-calendar/releases/tag/v0.2.0
18
59
  [0.1.0]: https://github.com/sm00thindian/ntrr-calendar/releases/tag/v0.1.0
@@ -1,9 +1,24 @@
1
1
  import type { AppleCalDavAuth, DiscoveredCalendar, FetchEventsRange, FloatingZoneOptions, ParsedCalendarEvent } from "../types.js";
2
2
  /**
3
- * True when resourcetype includes a CalDAV calendar collection and is not an
4
- * inbox/outbox/notification/proxy collection.
3
+ * True when resourcetype is a CalDAV calendar collection rather than an
4
+ * inbox/outbox/notification/dropbox.
5
+ *
6
+ * `<CS:shared-owner/>` is deliberately NOT excluded. It marks a calendar the
7
+ * account **owns and has shared with others** — the family calendar, in a
8
+ * household-coordination product. Excluding it made discovery fail outright for
9
+ * exactly the users this exists to serve, with an error telling them to open the
10
+ * Calendar app they had already opened.
5
11
  */
6
12
  export declare function isCalDavCalendarCollection(block: string): boolean;
13
+ /**
14
+ * True when the collection is shared *into* this account — someone else owns it.
15
+ *
16
+ * Distinct from `<CS:shared-owner/>`, which is the account's own shared calendar.
17
+ * Such a calendar is a legitimate candidate but a poor *primary*: Reliant gates
18
+ * outbound calls on the primary calendar's free/busy, so preferring someone
19
+ * else's schedule would silence or allow calls based on the wrong person's day.
20
+ */
21
+ export declare function isSharedInCalendar(block: string): boolean;
7
22
  /**
8
23
  * Pick the primary event calendar from a calendar-home PROPFIND Depth:1 body.
9
24
  * Prefers common default names, otherwise the first real calendar collection.
@@ -1 +1 @@
1
- {"version":3,"file":"caldav.d.ts","sourceRoot":"","sources":["../../src/apple/caldav.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AA+CrB;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAkBjE;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,kBAAkB,GAAG,IAAI,CA+B3B;AA6DD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,mBAAmB,GAC5B,mBAAmB,EAAE,CA0BvB;AAED,mEAAmE;AACnE,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkFhG;AAED,iEAAiE;AACjE,wBAAsB,WAAW,CAC/B,IAAI,EAAE,eAAe,EACrB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,gBAAgB,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAmBhC;AAED,4DAA4D;AAC5D,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,kBAAkB,CAAC,CAE7B"}
1
+ {"version":3,"file":"caldav.d.ts","sourceRoot":"","sources":["../../src/apple/caldav.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AA+CrB;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAiBjE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CASzD;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,kBAAkB,GAAG,IAAI,CAuC3B;AA6DD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,mBAAmB,GAC5B,mBAAmB,EAAE,CA0BvB;AAED,mEAAmE;AACnE,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgGhG;AAmBD,iEAAiE;AACjE,wBAAsB,WAAW,CAC/B,IAAI,EAAE,eAAe,EACrB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,gBAAgB,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAmBhC;AAED,4DAA4D;AAC5D,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,kBAAkB,CAAC,CAE7B"}
@@ -33,8 +33,14 @@ function extractDisplayName(block) {
33
33
  return name || null;
34
34
  }
35
35
  /**
36
- * True when resourcetype includes a CalDAV calendar collection and is not an
37
- * inbox/outbox/notification/proxy collection.
36
+ * True when resourcetype is a CalDAV calendar collection rather than an
37
+ * inbox/outbox/notification/dropbox.
38
+ *
39
+ * `<CS:shared-owner/>` is deliberately NOT excluded. It marks a calendar the
40
+ * account **owns and has shared with others** — the family calendar, in a
41
+ * household-coordination product. Excluding it made discovery fail outright for
42
+ * exactly the users this exists to serve, with an error telling them to open the
43
+ * Calendar app they had already opened.
38
44
  */
39
45
  export function isCalDavCalendarCollection(block) {
40
46
  const typeMatch = block.match(/<(?:[A-Za-z0-9_-]+:)?resourcetype[^>]*>([\s\S]*?)<\/(?:[A-Za-z0-9_-]+:)?resourcetype>/i);
@@ -45,12 +51,27 @@ export function isCalDavCalendarCollection(block) {
45
51
  if (/<(?:[A-Za-z0-9_-]+:)?schedule-inbox(?:\s|\/|>)/i.test(types) ||
46
52
  /<(?:[A-Za-z0-9_-]+:)?schedule-outbox(?:\s|\/|>)/i.test(types) ||
47
53
  /<(?:[A-Za-z0-9_-]+:)?notification(?:\s|\/|>)/i.test(types) ||
48
- /<(?:[A-Za-z0-9_-]+:)?dropbox(?:\s|\/|>)/i.test(types) ||
49
- /<(?:[A-Za-z0-9_-]+:)?shared-owner(?:\s|\/|>)/i.test(types)) {
54
+ /<(?:[A-Za-z0-9_-]+:)?dropbox(?:\s|\/|>)/i.test(types)) {
50
55
  return false;
51
56
  }
52
57
  return true;
53
58
  }
59
+ /**
60
+ * True when the collection is shared *into* this account — someone else owns it.
61
+ *
62
+ * Distinct from `<CS:shared-owner/>`, which is the account's own shared calendar.
63
+ * Such a calendar is a legitimate candidate but a poor *primary*: Reliant gates
64
+ * outbound calls on the primary calendar's free/busy, so preferring someone
65
+ * else's schedule would silence or allow calls based on the wrong person's day.
66
+ */
67
+ export function isSharedInCalendar(block) {
68
+ const typeMatch = block.match(/<(?:[A-Za-z0-9_-]+:)?resourcetype[^>]*>([\s\S]*?)<\/(?:[A-Za-z0-9_-]+:)?resourcetype>/i);
69
+ const types = typeMatch?.[1] ?? "";
70
+ if (/<(?:[A-Za-z0-9_-]+:)?shared-owner(?:\s|\/|>)/i.test(types)) {
71
+ return false;
72
+ }
73
+ return /<(?:[A-Za-z0-9_-]+:)?shared(?:\s|\/|>)/i.test(types);
74
+ }
54
75
  /**
55
76
  * Pick the primary event calendar from a calendar-home PROPFIND Depth:1 body.
56
77
  * Prefers common default names, otherwise the first real calendar collection.
@@ -73,13 +94,21 @@ export function pickPrimaryCalendarFromHomeXml(calendarsXml, baseUrl) {
73
94
  candidates.push({
74
95
  calendarUrl: absolute.toString(),
75
96
  calendarName: extractDisplayName(block) || "iCloud Calendar",
97
+ sharedIn: isSharedInCalendar(block),
76
98
  });
77
99
  }
78
100
  if (!candidates.length) {
79
101
  return null;
80
102
  }
81
- const preferred = candidates.find((entry) => /^(home|calendar|icloud|personal)$/i.test(entry.calendarName.trim()));
82
- return preferred ?? candidates[0];
103
+ // Owned calendars outrank ones shared into the account. Reliant gates dials on
104
+ // the primary calendar's free/busy, so falling back to someone else's schedule
105
+ // would decide calls by the wrong person's day. Within each group the existing
106
+ // name preference applies.
107
+ const owned = candidates.filter((entry) => !entry.sharedIn);
108
+ const ranked = owned.length ? owned : candidates;
109
+ const preferred = ranked.find((entry) => /^(home|calendar|icloud|personal)$/i.test(entry.calendarName.trim()));
110
+ const chosen = preferred ?? ranked[0];
111
+ return { calendarUrl: chosen.calendarUrl, calendarName: chosen.calendarName };
83
112
  }
84
113
  async function caldavRequest(url, method, auth, body, depth = "0") {
85
114
  const response = await fetch(url, {
@@ -199,8 +228,33 @@ export async function discoverPrimaryCalendar(auth) {
199
228
  if (picked) {
200
229
  return picked;
201
230
  }
231
+ // Distinguish "the home is empty" from "collections exist but none qualified".
232
+ // The old message told the user to open the Calendar app, which is unactionable
233
+ // when the calendar plainly exists and was filtered out — the exact situation
234
+ // that hid the shared-owner bug (#2).
235
+ const responseCount = splitMultistatusResponses(calendarsProbe.xml).length;
236
+ if (responseCount > 1) {
237
+ const kinds = collectionKinds(calendarsProbe.xml);
238
+ throw new Error(`Found ${responseCount} CalDAV collections on this iCloud account but none usable as an event calendar` +
239
+ (kinds.length ? ` (resourcetypes seen: ${kinds.join(", ")})` : "") +
240
+ ". This is a filtering problem, not a setup problem — please report it.");
241
+ }
202
242
  throw new Error("No CalDAV calendar collection found on this iCloud account. Open the Calendar app once, confirm iCloud Calendar is on, add an event, then try again.");
203
243
  }
244
+ /** Resourcetype element names seen in a home response, for diagnosing a filter miss. */
245
+ function collectionKinds(calendarsXml) {
246
+ const kinds = new Set();
247
+ for (const block of splitMultistatusResponses(calendarsXml)) {
248
+ const typeMatch = block.match(/<(?:[A-Za-z0-9_-]+:)?resourcetype[^>]*>([\s\S]*?)<\/(?:[A-Za-z0-9_-]+:)?resourcetype>/i);
249
+ for (const el of typeMatch?.[1]?.match(/<(?:[A-Za-z0-9_-]+:)?([A-Za-z0-9_-]+)/g) ?? []) {
250
+ const name = el.replace(/^<(?:[A-Za-z0-9_-]+:)?/, "");
251
+ if (name && name !== "collection") {
252
+ kinds.add(name);
253
+ }
254
+ }
255
+ }
256
+ return [...kinds].sort();
257
+ }
204
258
  /** Fetch VEVENTs from a CalDAV calendar URL for a time range. */
205
259
  export async function fetchEvents(auth, calendarUrl, range, options) {
206
260
  const token = basicAuth(auth.appleId, auth.appPassword);
@@ -1 +1 @@
1
- {"version":3,"file":"caldav.js","sourceRoot":"","sources":["../../src/apple/caldav.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"caldav.js","sourceRoot":"","sources":["../../src/apple/caldav.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ics-parse.d.ts","sourceRoot":"","sources":["../../src/apple/ics-parse.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AAG3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAsD5E;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,YAAY,EAAE,MAAM,GACnB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA2C1E;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,YAAY,EAAE,MAAM,GACnB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA8D1E;AAgBD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,mBAAmB,GAC5B,mBAAmB,EAAE,CAmDvB;AAgID;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAa1F"}
1
+ {"version":3,"file":"ics-parse.d.ts","sourceRoot":"","sources":["../../src/apple/ics-parse.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AAG3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAoJ5E;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,YAAY,EAAE,MAAM,GACnB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA8E1E;AA8CD,qEAAqE;AACrE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,YAAY,EAAE,MAAM,GACnB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAmE1E;AAgBD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,mBAAmB,GAC5B,mBAAmB,EAAE,CAiEvB;AAiJD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAa1F"}
@@ -1,5 +1,6 @@
1
1
  import ICAL from "ical.js";
2
- import { DateTime } from "luxon";
2
+ import { DateTime, Duration } from "luxon";
3
+ import { resolveZoneAlias } from "./zones.js";
3
4
  function wrapCalendar(ics) {
4
5
  const trimmed = ics.trim();
5
6
  if (/BEGIN:VCALENDAR/i.test(trimmed)) {
@@ -25,6 +26,83 @@ function civilString(time) {
25
26
  }
26
27
  return civilFromParts(time.year, time.month, time.day, time.hour, time.minute, time.second);
27
28
  }
29
+ /**
30
+ * RFC 5545 §3.6.1 lets an event carry DURATION instead of DTEND, and Apple emits
31
+ * that form. Without this, such an event parses zero-length — which a free/busy
32
+ * consumer reads as **not busy**, so Reliant would place a call during a
33
+ * 90-minute appointment. DTEND wins when both are present, per spec.
34
+ *
35
+ * Units are not interchangeable here. RFC 5545 §3.3.6 makes days and weeks
36
+ * **nominal** (wall clock) and hours, minutes and seconds **exact**. Across the
37
+ * US autumn transition, starting 01:00:
38
+ *
39
+ * P1D → 01:00 the next day, 25 hours later (nominal: wall clock preserved)
40
+ * PT2H → 02:00 the same day, 2 hours later (exact: elapsed time preserved)
41
+ *
42
+ * Flattening the duration to seconds would make P1D exact and land it an hour
43
+ * early. So the parsed units are handed to Luxon intact — it treats weeks and
44
+ * days as calendar units and smaller ones as exact — and the arithmetic is done
45
+ * in the event's own zone, which is what makes the nominal case work.
46
+ */
47
+ function endFromDuration(start, duration) {
48
+ if (!duration.isValid || duration.as("milliseconds") <= 0) {
49
+ return null;
50
+ }
51
+ const zoned = DateTime.fromISO(start.iso, { zone: "utc" }).setZone(start.zoneUsed);
52
+ if (!zoned.isValid) {
53
+ return null;
54
+ }
55
+ const ends = zoned.plus(duration);
56
+ const iso = ends.toUTC().toISO();
57
+ if (!iso) {
58
+ return null;
59
+ }
60
+ return {
61
+ iso,
62
+ allDay: start.allDay,
63
+ zoneUsed: start.zoneUsed,
64
+ civil: civilFromParts(ends.year, ends.month, ends.day, ends.hour, ends.minute, ends.second, start.allDay),
65
+ };
66
+ }
67
+ /**
68
+ * Whether a candidate mixed Zulu/TZID repair is worth committing.
69
+ *
70
+ * The heuristic fires on a duration that is negative or over two hours, then
71
+ * reinterprets one side as wall time. It never re-checked what it produced, so it
72
+ * could turn a merely long event into an inverted one — a 3h event across two
73
+ * zones came out ending two hours before it started (#5).
74
+ *
75
+ * A repair is kept only when it yields a non-negative duration, and either the
76
+ * original was negative (anything ordered is an improvement) or the result is
77
+ * shorter (the heuristic exists to collapse an implausibly long span).
78
+ */
79
+ function improvesInterval(originalMs, repairedMs) {
80
+ if (!Number.isFinite(repairedMs) || repairedMs < 0) {
81
+ return false;
82
+ }
83
+ if (originalMs < 0) {
84
+ return true;
85
+ }
86
+ return repairedMs < originalMs;
87
+ }
88
+ /**
89
+ * Last line of defence: never emit an interval that ends before it starts.
90
+ *
91
+ * A negative interval is undefined behaviour in any overlap check — depending on
92
+ * the comparison it reads as always-busy or never-busy, and Reliant gates calls
93
+ * on exactly that. When the endpoints are merely out of order (invalid per RFC
94
+ * 5545 §3.6.1), the honest repair is to order them rather than collapse the event
95
+ * to a point: a zero-length event reads as *not busy*, which is the failure mode
96
+ * #9 was about, and would silently drop a real commitment from the gate.
97
+ */
98
+ function orderInstants(start, end) {
99
+ const startMs = Date.parse(start.iso);
100
+ const endMs = Date.parse(end.iso);
101
+ if (Number.isFinite(startMs) && Number.isFinite(endMs) && endMs < startMs) {
102
+ return { start: end, end: start };
103
+ }
104
+ return { start, end };
105
+ }
28
106
  function rawProperty(prop) {
29
107
  if (!prop) {
30
108
  return undefined;
@@ -52,9 +130,39 @@ export function icalTimeToUtcIso(time, tzid, floatingZone) {
52
130
  const iso = DateTime.utc(time.year, time.month, time.day, time.hour, time.minute, time.second).toISO();
53
131
  return iso ? { iso, allDay: false, zoneUsed: "UTC", civil } : null;
54
132
  }
55
- const zone = (typeof tzid === "string" && tzid.trim()) ||
133
+ const declared = (typeof tzid === "string" && tzid.trim()) ||
56
134
  (time.zone?.tzid && time.zone.tzid !== "floating" ? time.zone.tzid : null) ||
57
- floatingZone;
135
+ "";
136
+ // Resolution order (#1). A TZID Luxon cannot parse used to return null here,
137
+ // and the caller skipped the event — so an Outlook invite carrying a Windows
138
+ // zone name vanished, taking a real commitment out of Reliant's busy gate.
139
+ // 1. already an IANA zone, or a known Windows/legacy alias
140
+ // 2. a VTIMEZONE registered from this calendar — the registration loop above
141
+ // existed but its offsets were never consulted
142
+ // 3. the floating zone, as a last resort rather than dropping
143
+ const aliased = resolveZoneAlias(declared);
144
+ if (aliased) {
145
+ const local = DateTime.fromObject({
146
+ year: time.year,
147
+ month: time.month,
148
+ day: time.day,
149
+ hour: time.hour,
150
+ minute: time.minute,
151
+ second: time.second,
152
+ }, { zone: aliased });
153
+ if (local.isValid) {
154
+ const iso = local.toUTC().toISO();
155
+ if (iso) {
156
+ return { iso, allDay: false, zoneUsed: aliased, civil };
157
+ }
158
+ }
159
+ }
160
+ if (declared) {
161
+ const fromVtimezone = utcIsoFromRegisteredVtimezone(time, declared);
162
+ if (fromVtimezone) {
163
+ return { iso: fromVtimezone, allDay: false, zoneUsed: declared, civil };
164
+ }
165
+ }
58
166
  const local = DateTime.fromObject({
59
167
  year: time.year,
60
168
  month: time.month,
@@ -62,12 +170,49 @@ export function icalTimeToUtcIso(time, tzid, floatingZone) {
62
170
  hour: time.hour,
63
171
  minute: time.minute,
64
172
  second: time.second,
65
- }, { zone });
173
+ }, { zone: floatingZone });
66
174
  if (!local.isValid) {
67
175
  return null;
68
176
  }
69
177
  const iso = local.toUTC().toISO();
70
- return iso ? { iso, allDay: false, zoneUsed: zone, civil } : null;
178
+ return iso ? { iso, allDay: false, zoneUsed: floatingZone, civil } : null;
179
+ }
180
+ /**
181
+ * Use a VTIMEZONE registered from this calendar to place a civil time on the
182
+ * UTC timeline.
183
+ *
184
+ * An Outlook invite carries both a Windows zone name and the VTIMEZONE defining
185
+ * its offsets — everything needed to resolve it. The registration loop in
186
+ * parseWithIcalJs already put those into ICAL.TimezoneService; before this, the
187
+ * offsets were never read, so the registration was dead code.
188
+ */
189
+ function utcIsoFromRegisteredVtimezone(time, tzid) {
190
+ try {
191
+ const registered = ICAL.TimezoneService.get(tzid.trim().replace(/^["']|["']$/g, ""));
192
+ if (!registered) {
193
+ return null;
194
+ }
195
+ const wall = ICAL.Time.fromData({
196
+ year: time.year,
197
+ month: time.month,
198
+ day: time.day,
199
+ hour: time.hour,
200
+ minute: time.minute,
201
+ second: time.second,
202
+ isDate: false,
203
+ });
204
+ const offsetSeconds = registered.utcOffset(wall);
205
+ if (!Number.isFinite(offsetSeconds)) {
206
+ return null;
207
+ }
208
+ const iso = DateTime.utc(time.year, time.month, time.day, time.hour, time.minute, time.second)
209
+ .minus({ seconds: offsetSeconds })
210
+ .toISO();
211
+ return iso ?? null;
212
+ }
213
+ catch {
214
+ return null;
215
+ }
71
216
  }
72
217
  /** Luxon conversion for raw ICS date-time tokens (fallback path). */
73
218
  export function luxonFromIcsToken(value, tzid, floatingZone) {
@@ -114,7 +259,12 @@ export function luxonFromIcsToken(value, tzid, floatingZone) {
114
259
  const iso = DateTime.utc(year, month, day, hour, minute, second).toISO();
115
260
  return iso ? { iso, allDay: false, zoneUsed: "UTC", civil } : null;
116
261
  }
117
- const zone = (tzid?.replace(/^"|"$/g, "").trim() || floatingZone).trim();
262
+ // Same resolution order as the ical.js path, minus the VTIMEZONE step: this
263
+ // parser is chosen precisely when ical.js cannot be trusted, so there is no
264
+ // registry to consult. A Windows zone name still resolves via the alias table,
265
+ // and an unknown one falls back to the floating zone instead of dropping (#1).
266
+ const declared = tzid?.replace(/^["']|["']$/g, "").trim() || "";
267
+ const zone = (resolveZoneAlias(declared) || floatingZone).trim();
118
268
  const local = DateTime.fromObject({ year, month, day, hour, minute, second }, { zone });
119
269
  if (!local.isValid) {
120
270
  return null;
@@ -150,7 +300,8 @@ export function parseIcsLuxonFallback(ics, options) {
150
300
  const uid = fieldLine(block, "UID")?.value;
151
301
  const summary = fieldLine(block, "SUMMARY")?.value;
152
302
  const dtstart = fieldLine(block, "DTSTART");
153
- const dtend = fieldLine(block, "DTEND") ?? dtstart;
303
+ const dtendLine = fieldLine(block, "DTEND");
304
+ const dtend = dtendLine ?? dtstart;
154
305
  if (!uid || !summary || !dtstart || !dtend) {
155
306
  continue;
156
307
  }
@@ -158,24 +309,35 @@ export function parseIcsLuxonFallback(ics, options) {
158
309
  const endTzid = tzidFromParams(dtend.params) ?? startTzid;
159
310
  const sharedTzid = startTzid || endTzid;
160
311
  const start = luxonFromIcsToken(dtstart.value, startTzid || sharedTzid, defaultFloating);
161
- const end = luxonFromIcsToken(dtend.value, endTzid || sharedTzid, defaultFloating);
312
+ let end = luxonFromIcsToken(dtend.value, endTzid || sharedTzid, defaultFloating);
162
313
  if (!start || !end) {
163
314
  continue;
164
315
  }
316
+ // No DTEND: derive the end from DURATION rather than leaving it zero-length (#9).
317
+ if (!dtendLine) {
318
+ const durationToken = fieldLine(block, "DURATION")?.value?.trim();
319
+ if (durationToken) {
320
+ end = endFromDuration(start, Duration.fromISO(durationToken)) ?? end;
321
+ }
322
+ }
165
323
  const description = fieldLine(block, "DESCRIPTION")?.value;
166
324
  const location = fieldLine(block, "LOCATION")?.value;
325
+ // Never emit an interval that ends before it starts (#5).
326
+ const ordered = orderInstants(start, end);
327
+ const startOrdered = ordered.start;
328
+ const endOrdered = ordered.end;
167
329
  events.push({
168
330
  uid,
169
331
  title: summary,
170
332
  description,
171
333
  location,
172
- startsAt: start.iso,
173
- endsAt: end.iso,
174
- allDay: start.allDay,
175
- startsTzid: start.zoneUsed !== "UTC" ? start.zoneUsed : sharedTzid || undefined,
176
- endsTzid: end.zoneUsed !== "UTC" ? end.zoneUsed : sharedTzid || undefined,
177
- startsCivil: start.civil,
178
- endsCivil: end.civil,
334
+ startsAt: startOrdered.iso,
335
+ endsAt: endOrdered.iso,
336
+ allDay: startOrdered.allDay,
337
+ startsTzid: startOrdered.zoneUsed !== "UTC" ? startOrdered.zoneUsed : sharedTzid || undefined,
338
+ endsTzid: endOrdered.zoneUsed !== "UTC" ? endOrdered.zoneUsed : sharedTzid || undefined,
339
+ startsCivil: startOrdered.civil,
340
+ endsCivil: endOrdered.civil,
179
341
  rawDtStart: startTzid ? `TZID=${startTzid}:${dtstart.value}` : dtstart.value,
180
342
  rawDtEnd: endTzid ? `TZID=${endTzid}:${dtend.value}` : dtend.value,
181
343
  });
@@ -212,7 +374,8 @@ function parseWithIcalJs(ics, floatingZone) {
212
374
  const summaryProp = vevent.getFirstProperty("summary");
213
375
  const uidProp = vevent.getFirstProperty("uid");
214
376
  const dtstartProp = vevent.getFirstProperty("dtstart");
215
- const dtendProp = vevent.getFirstProperty("dtend") ?? dtstartProp;
377
+ const dtendPropRaw = vevent.getFirstProperty("dtend");
378
+ const dtendProp = dtendPropRaw ?? dtstartProp;
216
379
  if (!summaryProp || !uidProp || !dtstartProp || !dtendProp) {
217
380
  continue;
218
381
  }
@@ -245,7 +408,7 @@ function parseWithIcalJs(ics, floatingZone) {
245
408
  }, { zone: sharedTzid });
246
409
  if (repaired.isValid) {
247
410
  const iso = repaired.toUTC().toISO();
248
- if (iso) {
411
+ if (iso && improvesInterval(durationMs, Date.parse(end.iso) - Date.parse(iso))) {
249
412
  start = { iso, allDay: false, zoneUsed: sharedTzid, civil: civilString(startTime) };
250
413
  }
251
414
  }
@@ -261,26 +424,40 @@ function parseWithIcalJs(ics, floatingZone) {
261
424
  }, { zone: sharedTzid });
262
425
  if (repaired.isValid) {
263
426
  const iso = repaired.toUTC().toISO();
264
- if (iso) {
427
+ if (iso && improvesInterval(durationMs, Date.parse(iso) - Date.parse(start.iso))) {
265
428
  end = { iso, allDay: false, zoneUsed: sharedTzid, civil: civilString(endTime) };
266
429
  }
267
430
  }
268
431
  }
269
432
  }
433
+ // No DTEND: derive the end from DURATION rather than leaving it zero-length (#9).
434
+ if (!dtendPropRaw && start && end) {
435
+ // Use the ICS token, not ICAL.Duration.toSeconds(): seconds would flatten
436
+ // a nominal P1D into an exact 86400s and drift across a DST transition.
437
+ const durationValue = vevent.getFirstProperty("duration")?.getFirstValue();
438
+ const durationToken = durationValue != null ? String(durationValue).trim() : "";
439
+ if (durationToken) {
440
+ end = endFromDuration(start, Duration.fromISO(durationToken)) ?? end;
441
+ }
442
+ }
270
443
  const description = vevent.getFirstPropertyValue("description");
271
444
  const location = vevent.getFirstPropertyValue("location");
445
+ // Never emit an interval that ends before it starts (#5).
446
+ const ordered = orderInstants(start, end);
447
+ const startOrdered = ordered.start;
448
+ const endOrdered = ordered.end;
272
449
  events.push({
273
450
  uid: String(uidProp.getFirstValue()),
274
451
  title: String(summaryProp.getFirstValue()),
275
452
  description: description != null ? String(description) : undefined,
276
453
  location: location != null ? String(location) : undefined,
277
- startsAt: start.iso,
278
- endsAt: end.iso,
279
- allDay: start.allDay,
280
- startsTzid: start.zoneUsed !== "UTC" ? start.zoneUsed : sharedTzid || undefined,
281
- endsTzid: end.zoneUsed !== "UTC" ? end.zoneUsed : sharedTzid || undefined,
282
- startsCivil: start.civil,
283
- endsCivil: end.civil,
454
+ startsAt: startOrdered.iso,
455
+ endsAt: endOrdered.iso,
456
+ allDay: startOrdered.allDay,
457
+ startsTzid: startOrdered.zoneUsed !== "UTC" ? startOrdered.zoneUsed : sharedTzid || undefined,
458
+ endsTzid: endOrdered.zoneUsed !== "UTC" ? endOrdered.zoneUsed : sharedTzid || undefined,
459
+ startsCivil: startOrdered.civil,
460
+ endsCivil: endOrdered.civil,
284
461
  rawDtStart: rawProperty(dtstartProp),
285
462
  rawDtEnd: rawProperty(dtendProp),
286
463
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ics-parse.js","sourceRoot":"","sources":["../../src/apple/ics-parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ics-parse.js","sourceRoot":"","sources":["../../src/apple/ics-parse.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
- export { discoverPrimaryCalendar, fetchEvents, isCalDavCalendarCollection, parseCalDavReport, pickPrimaryCalendarFromHomeXml, verifyAppleCalDavConnection, } from "./caldav.js";
1
+ export { discoverPrimaryCalendar, fetchEvents, isCalDavCalendarCollection, isSharedInCalendar, parseCalDavReport, pickPrimaryCalendarFromHomeXml, verifyAppleCalDavConnection, } from "./caldav.js";
2
2
  export { icalTimeToUtcIso, luxonFromIcsToken, parseIcs, parseIcsLuxonFallback, } from "./ics-parse.js";
3
+ export { resolveZoneAlias, isResolvableZone, normalizeTzidKey } from "./zones.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/apple/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,0BAA0B,EAC1B,iBAAiB,EACjB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,qBAAqB,GACtB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/apple/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,3 +1,4 @@
1
- export { discoverPrimaryCalendar, fetchEvents, isCalDavCalendarCollection, parseCalDavReport, pickPrimaryCalendarFromHomeXml, verifyAppleCalDavConnection, } from "./caldav.js";
1
+ export { discoverPrimaryCalendar, fetchEvents, isCalDavCalendarCollection, isSharedInCalendar, parseCalDavReport, pickPrimaryCalendarFromHomeXml, verifyAppleCalDavConnection, } from "./caldav.js";
2
2
  export { icalTimeToUtcIso, luxonFromIcsToken, parseIcs, parseIcsLuxonFallback, } from "./ics-parse.js";
3
+ export { resolveZoneAlias, isResolvableZone, normalizeTzidKey } from "./zones.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/apple/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,0BAA0B,EAC1B,iBAAiB,EACjB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,qBAAqB,GACtB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/apple/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** Strip the quoting and casing variance feeds apply to TZID values. */
2
+ export declare function normalizeTzidKey(tzid: string): string;
3
+ /** True when Luxon can resolve the name as an IANA zone. */
4
+ export declare function isResolvableZone(tzid: string): boolean;
5
+ /**
6
+ * Map a Windows or legacy zone name onto an IANA zone, or null when unknown.
7
+ * Returns the input unchanged when it already resolves.
8
+ */
9
+ export declare function resolveZoneAlias(tzid: string | null | undefined): string | null;
10
+ //# sourceMappingURL=zones.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zones.d.ts","sourceRoot":"","sources":["../../src/apple/zones.ts"],"names":[],"mappings":"AA6DA,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAY/E"}
@@ -0,0 +1,85 @@
1
+ import { DateTime } from "luxon";
2
+ /**
3
+ * Windows and legacy zone names seen on invitations that land in iCloud.
4
+ *
5
+ * Outlook and Exchange write Windows zone names (`Central Standard Time`)
6
+ * rather than IANA ones, and Luxon rejects them — which used to drop the event
7
+ * entirely. This is deliberately the handful that actually arrive, not the full
8
+ * CLDR windowsZones list: a short table is auditable, and an unknown name now
9
+ * falls back rather than dropping, so a miss costs accuracy instead of the event.
10
+ *
11
+ * Keys are compared case-insensitively with surrounding quotes and whitespace
12
+ * stripped, because feeds quote them inconsistently (`TZID="Central Standard Time"`).
13
+ */
14
+ const WINDOWS_ZONE_ALIASES = {
15
+ "dateline standard time": "Etc/GMT+12",
16
+ "hawaiian standard time": "Pacific/Honolulu",
17
+ "alaskan standard time": "America/Anchorage",
18
+ "pacific standard time": "America/Los_Angeles",
19
+ "pacific standard time (mexico)": "America/Tijuana",
20
+ "us mountain standard time": "America/Phoenix",
21
+ "mountain standard time": "America/Denver",
22
+ "mountain standard time (mexico)": "America/Chihuahua",
23
+ "central standard time": "America/Chicago",
24
+ "central standard time (mexico)": "America/Mexico_City",
25
+ "canada central standard time": "America/Regina",
26
+ "eastern standard time": "America/New_York",
27
+ "us eastern standard time": "America/New_York",
28
+ "atlantic standard time": "America/Halifax",
29
+ "newfoundland standard time": "America/St_Johns",
30
+ "sa pacific standard time": "America/Bogota",
31
+ "sa eastern standard time": "America/Cayenne",
32
+ "e. south america standard time": "America/Sao_Paulo",
33
+ "argentina standard time": "America/Argentina/Buenos_Aires",
34
+ "greenwich standard time": "Atlantic/Reykjavik",
35
+ "gmt standard time": "Europe/London",
36
+ "w. europe standard time": "Europe/Berlin",
37
+ "central europe standard time": "Europe/Budapest",
38
+ "central european standard time": "Europe/Warsaw",
39
+ "romance standard time": "Europe/Paris",
40
+ "e. europe standard time": "Europe/Chisinau",
41
+ "fle standard time": "Europe/Kiev",
42
+ "gtb standard time": "Europe/Bucharest",
43
+ "israel standard time": "Asia/Jerusalem",
44
+ "arabic standard time": "Asia/Baghdad",
45
+ "arab standard time": "Asia/Riyadh",
46
+ "russian standard time": "Europe/Moscow",
47
+ "india standard time": "Asia/Kolkata",
48
+ "china standard time": "Asia/Shanghai",
49
+ "singapore standard time": "Asia/Singapore",
50
+ "w. australia standard time": "Australia/Perth",
51
+ "tokyo standard time": "Asia/Tokyo",
52
+ "korea standard time": "Asia/Seoul",
53
+ "cen. australia standard time": "Australia/Adelaide",
54
+ "aus eastern standard time": "Australia/Sydney",
55
+ "e. australia standard time": "Australia/Brisbane",
56
+ "new zealand standard time": "Pacific/Auckland",
57
+ "utc": "UTC",
58
+ "coordinated universal time": "UTC",
59
+ };
60
+ /** Strip the quoting and casing variance feeds apply to TZID values. */
61
+ export function normalizeTzidKey(tzid) {
62
+ return tzid.trim().replace(/^["']|["']$/g, "").trim().toLowerCase();
63
+ }
64
+ /** True when Luxon can resolve the name as an IANA zone. */
65
+ export function isResolvableZone(tzid) {
66
+ return DateTime.now().setZone(tzid).isValid;
67
+ }
68
+ /**
69
+ * Map a Windows or legacy zone name onto an IANA zone, or null when unknown.
70
+ * Returns the input unchanged when it already resolves.
71
+ */
72
+ export function resolveZoneAlias(tzid) {
73
+ if (typeof tzid !== "string") {
74
+ return null;
75
+ }
76
+ const raw = tzid.trim().replace(/^["']|["']$/g, "").trim();
77
+ if (!raw) {
78
+ return null;
79
+ }
80
+ if (isResolvableZone(raw)) {
81
+ return raw;
82
+ }
83
+ return WINDOWS_ZONE_ALIASES[normalizeTzidKey(raw)] ?? null;
84
+ }
85
+ //# sourceMappingURL=zones.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zones.js","sourceRoot":"","sources":["../../src/apple/zones.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC;;;;;;;;;;;GAWG;AACH,MAAM,oBAAoB,GAA2B;IACnD,wBAAwB,EAAE,YAAY;IACtC,wBAAwB,EAAE,kBAAkB;IAC5C,uBAAuB,EAAE,mBAAmB;IAC5C,uBAAuB,EAAE,qBAAqB;IAC9C,gCAAgC,EAAE,iBAAiB;IACnD,2BAA2B,EAAE,iBAAiB;IAC9C,wBAAwB,EAAE,gBAAgB;IAC1C,iCAAiC,EAAE,mBAAmB;IACtD,uBAAuB,EAAE,iBAAiB;IAC1C,gCAAgC,EAAE,qBAAqB;IACvD,8BAA8B,EAAE,gBAAgB;IAChD,uBAAuB,EAAE,kBAAkB;IAC3C,0BAA0B,EAAE,kBAAkB;IAC9C,wBAAwB,EAAE,iBAAiB;IAC3C,4BAA4B,EAAE,kBAAkB;IAChD,0BAA0B,EAAE,gBAAgB;IAC5C,0BAA0B,EAAE,iBAAiB;IAC7C,gCAAgC,EAAE,mBAAmB;IACrD,yBAAyB,EAAE,gCAAgC;IAC3D,yBAAyB,EAAE,oBAAoB;IAC/C,mBAAmB,EAAE,eAAe;IACpC,yBAAyB,EAAE,eAAe;IAC1C,8BAA8B,EAAE,iBAAiB;IACjD,gCAAgC,EAAE,eAAe;IACjD,uBAAuB,EAAE,cAAc;IACvC,yBAAyB,EAAE,iBAAiB;IAC5C,mBAAmB,EAAE,aAAa;IAClC,mBAAmB,EAAE,kBAAkB;IACvC,sBAAsB,EAAE,gBAAgB;IACxC,sBAAsB,EAAE,cAAc;IACtC,oBAAoB,EAAE,aAAa;IACnC,uBAAuB,EAAE,eAAe;IACxC,qBAAqB,EAAE,cAAc;IACrC,qBAAqB,EAAE,eAAe;IACtC,yBAAyB,EAAE,gBAAgB;IAC3C,4BAA4B,EAAE,iBAAiB;IAC/C,qBAAqB,EAAE,YAAY;IACnC,qBAAqB,EAAE,YAAY;IACnC,8BAA8B,EAAE,oBAAoB;IACpD,2BAA2B,EAAE,kBAAkB;IAC/C,4BAA4B,EAAE,oBAAoB;IAClD,2BAA2B,EAAE,kBAAkB;IAC/C,KAAK,EAAE,KAAK;IACZ,4BAA4B,EAAE,KAAK;CACpC,CAAC;AAEF,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACtE,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAA+B;IAC9D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,oBAAoB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AAC7D,CAAC"}
package/dist/index.d.ts CHANGED
@@ -5,5 +5,6 @@
5
5
  * No React, no Supabase, no product DB schemas — adapters live in each app.
6
6
  */
7
7
  export type { AppleCalDavAuth, DiscoveredCalendar, FetchEventsRange, FloatingZoneOptions, ParsedCalendarEvent, } from "./types.js";
8
- export { discoverPrimaryCalendar, fetchEvents, icalTimeToUtcIso, isCalDavCalendarCollection, luxonFromIcsToken, parseCalDavReport, parseIcs, parseIcsLuxonFallback, pickPrimaryCalendarFromHomeXml, verifyAppleCalDavConnection, } from "./apple/index.js";
8
+ export { discoverPrimaryCalendar, fetchEvents, icalTimeToUtcIso, isCalDavCalendarCollection, isSharedInCalendar, luxonFromIcsToken, parseCalDavReport, parseIcs, parseIcsLuxonFallback, pickPrimaryCalendarFromHomeXml, verifyAppleCalDavConnection, } from "./apple/index.js";
9
+ export { resolveZoneAlias, isResolvableZone, normalizeTzidKey } from "./apple/zones.js";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,gBAAgB,EAChB,0BAA0B,EAC1B,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,qBAAqB,EACrB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,gBAAgB,EAChB,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,qBAAqB,EACrB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -4,5 +4,6 @@
4
4
  * Shared CalDAV/ICS helpers for NTRR products.
5
5
  * No React, no Supabase, no product DB schemas — adapters live in each app.
6
6
  */
7
- export { discoverPrimaryCalendar, fetchEvents, icalTimeToUtcIso, isCalDavCalendarCollection, luxonFromIcsToken, parseCalDavReport, parseIcs, parseIcsLuxonFallback, pickPrimaryCalendarFromHomeXml, verifyAppleCalDavConnection, } from "./apple/index.js";
7
+ export { discoverPrimaryCalendar, fetchEvents, icalTimeToUtcIso, isCalDavCalendarCollection, isSharedInCalendar, luxonFromIcsToken, parseCalDavReport, parseIcs, parseIcsLuxonFallback, pickPrimaryCalendarFromHomeXml, verifyAppleCalDavConnection, } from "./apple/index.js";
8
+ export { resolveZoneAlias, isResolvableZone, normalizeTzidKey } from "./apple/zones.js";
8
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,gBAAgB,EAChB,0BAA0B,EAC1B,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,qBAAqB,EACrB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,gBAAgB,EAChB,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,qBAAqB,EACrB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ntrr/calendar-kit",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Portable CalDAV/ICS calendar helpers for NTRR products (Hub, Reliant, future services).",
5
5
  "license": "MIT",
6
6
  "private": false,