diff --git a/PLUG.md b/PLUG.md index 3726b75..2b76e26 100644 --- a/PLUG.md +++ b/PLUG.md @@ -1,6 +1,6 @@ --- name: Library/sstent/icalendar -version: "0.3.26" +version: "0.3.27" tags: meta/library files: - icalendar.plug.js diff --git a/deno.json b/deno.json index 4e7f2d4..978b597 100644 --- a/deno.json +++ b/deno.json @@ -1,6 +1,6 @@ { "name": "icalendar-plug", - "version": "0.3.26", + "version": "0.3.27", "nodeModulesDir": "auto", "tasks": { "sync-version": "deno run -A scripts/sync-version.ts", diff --git a/icalendar.plug.js b/icalendar.plug.js index 44f0ad3..6a16c24 100644 --- a/icalendar.plug.js +++ b/icalendar.plug.js @@ -6,5 +6,5 @@ var Br=Object.defineProperty;var ce=(t,e)=>{for(var r in e)Br(t,r,{get:e[r],enum `),n=0;n0&&o[0]===" "?(r[n-1]+=o.slice(1),r.splice(n,1)):n+=1:r.splice(n,1)}return r}function Ts(t){t.forEach(function(e){if(!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(e))throw new Error("unsupported RDATE/EXDATE parm: "+e)})}function br(t,e){return Ts(e),t.split(",").map(function(r){return it(r)})}function Er(t){var e=this;return function(r){if(r!==void 0&&(e["_".concat(t)]=r),e["_".concat(t)]!==void 0)return e["_".concat(t)];for(var n=0;nd.format(f).replace(", ","T"),i=a(n,e),s=a(o,e),u=new Date(i+"Z").getTime();return new Date(s+"Z").getTime()-u}var Lr="0.3.26",Nr="icalendar:lastSync";console.log(`[iCalendar] Plug script executing at top level (Version ${Lr})`);async function Ss(t){let r=new TextEncoder().encode(t),n=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(n)).map(a=>a.toString(16).padStart(2,"0")).join("")}function Ee(t){let e=r=>String(r).padStart(2,"0");return t.getFullYear()+"-"+e(t.getMonth()+1)+"-"+e(t.getDate())+"T"+e(t.getHours())+":"+e(t.getMinutes())+":"+e(t.getSeconds())}function lt(t){if(t==null)return t;if(t instanceof Date)return Ee(t);if(typeof t=="object"&&"date"in t&&t.date instanceof Date)return Ee(t.date);if(typeof t=="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(t))try{return Ee(new Date(t))}catch{return t}if(Array.isArray(t))return t.map(e=>lt(e));if(typeof t=="object"){let e={};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=lt(t[r]));return e}return t}async function As(){try{let t=await Te.get("icalendar",{sources:[]});console.log("[iCalendar] Raw config retrieved:",JSON.stringify(t));let e=t.sources||[],r=t.syncWindowDays||365;if(e&&typeof e=="object"&&!Array.isArray(e)){let n=[];for(let o in e)e[o]&&typeof e[o].url=="string"&&n.push(e[o]);e=n}return{sources:e,syncWindowDays:r}}catch(t){return console.error("[iCalendar] Error in getSources:",t),{sources:[],syncWindowDays:365}}}async function xs(t){let e=t.start;if(!e)return null;let r=null;if(e.local?.date){let s=e.local.date;r=s instanceof Date?s.toISOString():String(s)}else if(e.date){let s=e.date;r=s instanceof Date?s.toISOString():String(s)}if(!r)return null;r=r.replace(/Z$/,"");let n=e.local?.timezone||e.timezone||"UTC",o=ct(n);if(!o){console.warn(`[iCalendar] Unknown timezone: "${n}" - falling back to UTC for event "${t.summary}"`);let s=new Date(r+(r.includes("T")?"":"T00:00:00")+"Z");return isNaN(s.getTime())?null:s}let a=new Date(r+(r.includes("T")?"":"T00:00:00")+"Z");if(isNaN(a.getTime()))return null;let i=_r(o,a);return new Date(a.getTime()-i)}function ks(t,e=365){let r=t.rrule||t.recurrenceRule;if(!r)return[t];try{let n=new ut,o=r.replace(/^RRULE:/i,""),a=new Date(t.start.includes("Z")?t.start:t.start+"Z");if(isNaN(a.getTime()))return console.error(`[iCalendar] Invalid start date for recurrence: ${t.start}`),[t];let i=g.parseString(o);i.dtstart=a,n.rrule(new g(i));for(let f of t.exdate||[])n.exdate(new Date(f.includes("Z")?f:f+"Z"));let s=new Date,u=new Date(s.getTime()-7*864e5),c=new Date(s.getTime()+e*864e5),d=n.between(u,c,!0);return d.length===0?[t]:d.map(f=>{let l=Ee(f);return{...t,start:l,recurrent:!0,rrule:void 0}})}catch(n){return console.error(`[iCalendar] Error expanding recurrence for ${t.summary}:`,n),[t]}}async function Ds(t,e=365){console.log(`[iCalendar] Fetching from: ${t.url}`);try{let r=await fetch(t.url);if(!r.ok)return console.error(`[iCalendar] Fetch failed for ${t.name}: ${r.status} ${r.statusText}`),[];let n=await r.text(),o=ar(void 0,n);if(!o||!o.events)return[];let a=[];for(let i of o.events){if(i.status?.toUpperCase()==="CANCELLED")continue;let s=await xs(i);if(!s)continue;let u=Ee(s),c={...i,name:i.summary||"Untitled Event",start:u,tag:"ical-event",sourceName:t.name},d=i.start?.local?.timezone||i.start?.timezone||"UTC";d!=="UTC"&&d!=="None"&&!ct(d)&&(c.description=`(Warning: Unknown timezone "${d}") ${c.description||""}`);let f=ks(c,e);for(let l of f){let m=`${l.start}${l.uid||l.summary||""}`;l.ref=await Ss(m),a.push(lt(l))}}return a}catch(r){return console.error(`[iCalendar] Error fetching/parsing ${t.name}:`,r),[]}}async function dt(){try{let{sources:t,syncWindowDays:e}=await As();if(t.length===0)return;await H.flashNotification("Syncing calendars...","info");let r=[];for(let n of t){let o=await Ds(n,e);r.push(...o)}await we.indexObjects("$icalendar",r),await H.flashNotification(`Synced ${r.length} events`,"info")}catch(t){console.error("[iCalendar] syncCalendars failed:",t)}}async function Ir(){await de.del(Nr),await dt()}async function Ur(){if(!await H.confirm("Clear all calendar events?"))return;let t=await ye.query({prefix:["ridx","$icalendar"]}),e=[];for(let{key:r}of t)e.push(r),e.push(["idx",...r.slice(2),"$icalendar"]);e.length>0&&await ye.batchDel(e),await de.del(Nr),await H.flashNotification("Calendar index cleared","info")}async function Yr(){await H.flashNotification(`iCalendar Plug ${Lr}`,"info")}var Kr={syncCalendars:dt,forceSync:Ir,clearCache:Ur,showVersion:Yr},zr={name:"icalendar",version:"0.3.26",author:"sstent",index:"icalendar.ts",requiredPermissions:["fetch"],permissions:["fetch","http"],functions:{syncCalendars:{path:"icalendar.ts:syncCalendars",command:{name:"iCalendar: Sync",priority:-1},events:["editor:init"]},forceSync:{path:"icalendar.ts:forceSync",command:{name:"iCalendar: Force Sync",priority:-1}},clearCache:{path:"icalendar.ts:clearCache",command:{name:"iCalendar: Clear All Events",priority:-1}},showVersion:{path:"icalendar.ts:showVersion",command:{name:"iCalendar: Version",priority:-2}}},assets:{}},nc={manifest:zr,functionMapping:Kr};mt(Kr,zr,self.postMessage);export{nc as plug}; +`)},e.prototype.clone=function(){var r=new e(!!this._cache);return this._rrule.forEach(function(n){return r.rrule(n.clone())}),this._exrule.forEach(function(n){return r.exrule(n.clone())}),this._rdate.forEach(function(n){return r.rdate(new Date(n.getTime()))}),this._exdate.forEach(function(n){return r.exdate(new Date(n.getTime()))}),r},e}(g);function Tr(t,e){if(!(t instanceof g))throw new TypeError(String(t)+" is not RRule instance");A(e.map(String),String(t))||e.push(t)}function wr(t,e){if(!(t instanceof Date))throw new TypeError(String(t)+" is not Date instance");A(e.map(Number),Number(t))||(e.push(t),be(e))}function Sr(t,e,r){var n=!r||r.toUpperCase()==="UTC",o=n?"".concat(t,":"):"".concat(t,";TZID=").concat(r,":"),a=e.map(function(i){return ot(i.valueOf(),n)}).join(",");return"".concat(o).concat(a)}var ws={"Dateline Standard Time":"Etc/GMT+12","UTC-11":"Etc/GMT+11","Hawaiian Standard Time":"Pacific/Honolulu","Alaskan Standard Time":"America/Anchorage","Pacific Standard Time (Mexico)":"America/Santa_Isabel","Pacific Standard Time":"America/Los_Angeles","US Mountain Standard Time":"America/Phoenix","Mountain Standard Time (Mexico)":"America/Chihuahua","Mountain Standard Time":"America/Denver","Central America Standard Time":"America/Guatemala","Central Standard Time":"America/Chicago","Central Standard Time (Mexico)":"America/Mexico_City","Canada Central Standard Time":"America/Regina","SA Pacific Standard Time":"America/Bogota","Eastern Standard Time":"America/New_York","US Eastern Standard Time":"America/Indiana/Indianapolis","Venezuela Standard Time":"America/Caracas","Paraguay Standard Time":"America/Asuncion","Atlantic Standard Time":"America/Halifax","Central Brazilian Standard Time":"America/Cuiaba","SA Western Standard Time":"America/La_Paz","Pacific SA Standard Time":"America/Santiago","Newfoundland Standard Time":"America/St_Johns","E. South America Standard Time":"America/Sao_Paulo","Argentina Standard Time":"America/Buenos_Aires","SA Eastern Standard Time":"America/Cayenne","Greenland Standard Time":"America/Godthab","Montevideo Standard Time":"America/Montevideo","Bahia Standard Time":"America/Bahia","Azores Standard Time":"Atlantic/Azores","Cape Verde Standard Time":"Atlantic/Cape_Verde","Morocco Standard Time":"Africa/Casablanca","GMT Standard Time":"Europe/London","Greenwich Standard Time":"Atlantic/Reykjavik","W. Europe Standard Time":"Europe/Berlin","Central Europe Standard Time":"Europe/Budapest","Romance Standard Time":"Europe/Paris","Central European Standard Time":"Europe/Warsaw","W. Central Africa Standard Time":"Africa/Lagos","Namibia Standard Time":"Africa/Windhoek","Jordan Standard Time":"Asia/Amman","GTB Standard Time":"Europe/Bucharest","Middle East Standard Time":"Asia/Beirut","Egypt Standard Time":"Africa/Cairo","Syria Standard Time":"Asia/Damascus","E. Europe Standard Time":"Europe/Chisinau","South Africa Standard Time":"Africa/Johannesburg","FLE Standard Time":"Europe/Kiev","Turkey Standard Time":"Europe/Istanbul","Israel Standard Time":"Asia/Jerusalem","Kaliningrad Standard Time":"Europe/Kaliningrad","Libya Standard Time":"Africa/Tripoli","Arabic Standard Time":"Asia/Baghdad","Arab Standard Time":"Asia/Riyadh","Belarus Standard Time":"Europe/Minsk","Russian Standard Time":"Europe/Moscow","E. Africa Standard Time":"Africa/Nairobi","Iran Standard Time":"Asia/Tehran","Arabian Standard Time":"Asia/Dubai","Azerbaijan Standard Time":"Asia/Baku","Russia Time Zone 3":"Europe/Samara","Mauritius Standard Time":"Indian/Mauritius","Georgian Standard Time":"Asia/Tbilisi","Caucasus Standard Time":"Asia/Yerevan","Afghanistan Standard Time":"Asia/Kabul","West Asia Standard Time":"Asia/Tashkent","Ekaterinburg Standard Time":"Asia/Yekaterinburg","Pakistan Standard Time":"Asia/Karachi","India Standard Time":"Asia/Kolkata","Sri Lanka Standard Time":"Asia/Colombo","Nepal Standard Time":"Asia/Kathmandu","Central Asia Standard Time":"Asia/Almaty","Bangladesh Standard Time":"Asia/Dhaka","N. Central Asia Standard Time":"Asia/Novosibirsk","Myanmar Standard Time":"Asia/Rangoon","SE Asia Standard Time":"Asia/Bangkok","North Asia Standard Time":"Asia/Krasnoyarsk","China Standard Time":"Asia/Shanghai","North Asia East Standard Time":"Asia/Irkutsk","Singapore Standard Time":"Asia/Singapore","W. Australia Standard Time":"Australia/Perth","Taipei Standard Time":"Asia/Taipei","Ulaanbaatar Standard Time":"Asia/Ulaanbaatar","Tokyo Standard Time":"Asia/Tokyo","Korea Standard Time":"Asia/Seoul","Yakutsk Standard Time":"Asia/Yakutsk","Cen. Australia Standard Time":"Australia/Adelaide","AUS Central Standard Time":"Australia/Darwin","E. Australia Standard Time":"Australia/Brisbane","AUS Eastern Standard Time":"Australia/Sydney","West Pacific Standard Time":"Pacific/Port_Moresby","Tasmania Standard Time":"Australia/Hobart","Magadan Standard Time":"Asia/Magadan","Vladivostok Standard Time":"Asia/Vladivostok","Russia Time Zone 10":"Asia/Srednekolymsk","Central Pacific Standard Time":"Pacific/Guadalcanal","Russia Time Zone 11":"Asia/Anadyr","New Zealand Standard Time":"Pacific/Auckland","Fiji Standard Time":"Pacific/Fiji","Tonga Standard Time":"Pacific/Tongatapu","Samoa Standard Time":"Pacific/Apia","Line Islands Standard Time":"Pacific/Kiritimati"};function ct(t){return!t||t==="UTC"||t==="None"?"UTC":t.includes("/")?t:ws[t]??null}function _r(t,e){let r={timeZone:"UTC",hour12:!1,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"},n=new Intl.DateTimeFormat("en-CA",r),o=new Intl.DateTimeFormat("en-CA",{...r,timeZone:t}),a=(d,f)=>d.format(f).replace(", ","T"),i=a(n,e),s=a(o,e),u=new Date(i+"Z").getTime();return new Date(s+"Z").getTime()-u}var Lr="0.3.27",Nr="icalendar:lastSync";console.log(`[iCalendar] Plug script executing at top level (Version ${Lr})`);async function Ss(t){let r=new TextEncoder().encode(t),n=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(n)).map(a=>a.toString(16).padStart(2,"0")).join("")}function Ee(t){let e=r=>String(r).padStart(2,"0");return t.getFullYear()+"-"+e(t.getMonth()+1)+"-"+e(t.getDate())+"T"+e(t.getHours())+":"+e(t.getMinutes())+":"+e(t.getSeconds())}function lt(t){if(t==null)return t;if(t instanceof Date)return Ee(t);if(typeof t=="object"&&"date"in t&&t.date instanceof Date)return Ee(t.date);if(typeof t=="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(t))try{return Ee(new Date(t))}catch{return t}if(Array.isArray(t))return t.map(e=>lt(e));if(typeof t=="object"){let e={};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=lt(t[r]));return e}return t}async function As(){try{let t=await Te.get("icalendar",{sources:[]});console.log("[iCalendar] Raw config retrieved:",JSON.stringify(t));let e=t.sources||[],r=t.syncWindowDays||365;if(e&&typeof e=="object"&&!Array.isArray(e)){let n=[];for(let o in e)e[o]&&typeof e[o].url=="string"&&n.push(e[o]);e=n}return{sources:e,syncWindowDays:r}}catch(t){return console.error("[iCalendar] Error in getSources:",t),{sources:[],syncWindowDays:365}}}async function xs(t){let e=t.start;if(!e)return null;let r=null;if(e.local?.date){let s=e.local.date;r=s instanceof Date?s.toISOString():String(s)}else if(e.date){let s=e.date;r=s instanceof Date?s.toISOString():String(s)}if(!r)return null;r=r.replace(/Z$/,"");let n=e.local?.timezone||e.timezone||"UTC",o=ct(n);if(!o){console.warn(`[iCalendar] Unknown timezone: "${n}" - falling back to UTC for event "${t.summary}"`);let s=new Date(r+(r.includes("T")?"":"T00:00:00")+"Z");return isNaN(s.getTime())?null:s}let a=new Date(r+(r.includes("T")?"":"T00:00:00")+"Z");if(isNaN(a.getTime()))return null;let i=_r(o,a);return new Date(a.getTime()-i)}function ks(t,e=365){let r=t.rrule||t.recurrenceRule;if(!r)return[t];try{let n=new ut,o=r.replace(/^RRULE:/i,""),a=new Date(t.start.includes("Z")?t.start:t.start+"Z");if(isNaN(a.getTime()))return console.error(`[iCalendar] Invalid start date for recurrence: ${t.start}`),[t];let i=g.parseString(o);i.dtstart=a,n.rrule(new g(i));for(let f of t.exdate||[])n.exdate(new Date(f.includes("Z")?f:f+"Z"));let s=new Date,u=new Date(s.getTime()-7*864e5),c=new Date(s.getTime()+e*864e5),d=n.between(u,c,!0);return d.length===0?[t]:d.map(f=>{let l=Ee(f);return{...t,start:l,recurrent:!0,rrule:void 0}})}catch(n){return console.error(`[iCalendar] Error expanding recurrence for ${t.summary}:`,n),[t]}}async function Ds(t,e=365){console.log(`[iCalendar] Fetching from: ${t.url}`);try{let r=await fetch(t.url);if(!r.ok)return console.error(`[iCalendar] Fetch failed for ${t.name}: ${r.status} ${r.statusText}`),[];let n=await r.text(),o=ar(void 0,n);if(!o||!o.events)return[];let a=[];for(let i of o.events){if(i.status?.toUpperCase()==="CANCELLED")continue;let s=await xs(i);if(!s)continue;let u=Ee(s),c={...i,name:i.summary||"Untitled Event",start:u,tag:"ical-event",sourceName:t.name},d=i.start?.local?.timezone||i.start?.timezone||"UTC";d!=="UTC"&&d!=="None"&&!ct(d)&&(c.description=`(Warning: Unknown timezone "${d}") ${c.description||""}`);let f=ks(c,e);for(let l of f){let m=`${l.start}${l.uid||l.summary||""}`;l.ref=await Ss(m),a.push(lt(l))}}return a}catch(r){return console.error(`[iCalendar] Error fetching/parsing ${t.name}:`,r),[]}}async function dt(){try{let{sources:t,syncWindowDays:e}=await As();if(t.length===0)return;await H.flashNotification("Syncing calendars...","info");let r=[];for(let n of t){let o=await Ds(n,e);r.push(...o)}await we.indexObjects("$icalendar",r),await H.flashNotification(`Synced ${r.length} events`,"info")}catch(t){console.error("[iCalendar] syncCalendars failed:",t)}}async function Ir(){await de.del(Nr),await dt()}async function Ur(){if(!await H.confirm("Clear all calendar events?"))return;let t=await ye.query({prefix:["ridx","$icalendar"]}),e=[];for(let{key:r}of t)e.push(r),e.push(["idx",...r.slice(2),"$icalendar"]);e.length>0&&await ye.batchDel(e),await de.del(Nr),await H.flashNotification("Calendar index cleared","info")}async function Yr(){await H.flashNotification(`iCalendar Plug ${Lr}`,"info")}var Kr={syncCalendars:dt,forceSync:Ir,clearCache:Ur,showVersion:Yr},zr={name:"icalendar",version:"0.3.27",author:"sstent",index:"icalendar.ts",requiredPermissions:["fetch"],permissions:["fetch","http"],functions:{syncCalendars:{path:"icalendar.ts:syncCalendars",command:{name:"iCalendar: Sync",priority:-1},events:["editor:init"]},forceSync:{path:"icalendar.ts:forceSync",command:{name:"iCalendar: Force Sync",priority:-1}},clearCache:{path:"icalendar.ts:clearCache",command:{name:"iCalendar: Clear All Events",priority:-1}},showVersion:{path:"icalendar.ts:showVersion",command:{name:"iCalendar: Version",priority:-2}}},assets:{}},nc={manifest:zr,functionMapping:Kr};mt(Kr,zr,self.postMessage);export{nc as plug}; //# sourceMappingURL=icalendar.plug.js.map diff --git a/icalendar.plug.js.map b/icalendar.plug.js.map index a5a3091..1c464d2 100644 --- a/icalendar.plug.js.map +++ b/icalendar.plug.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["https://deno.land/x/silverbullet@2.4.1/plug-api/lib/crypto.ts", "https://deno.land/x/silverbullet@2.4.1/client/lib/logger.ts", "https://deno.land/x/silverbullet@2.4.1/client/plugos/worker_runtime.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/editor.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscall.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/client_store.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/lib/crypto.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/datastore.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/config.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/index.ts", "https://esm.sh/ts-ics@2.4.0/denonext/ts-ics.mjs", "https://esm.sh/tslib@2.8.1/denonext/tslib.mjs", "https://esm.sh/rrule@2.8.1/denonext/rrule.mjs", "timezones.ts", "icalendar.ts", "../tmp/a44183a6d47723c.js"], - "sourcesContent": ["export function base64Decode(s: string): Uint8Array {\n const binString = atob(s);\n const len = binString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binString.charCodeAt(i);\n }\n return bytes;\n}\n\nexport function base64Encode(buffer: Uint8Array | string): string {\n if (typeof buffer === \"string\") {\n buffer = new TextEncoder().encode(buffer);\n }\n let binary = \"\";\n const len = buffer.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(buffer[i]);\n }\n return btoa(binary);\n}\n\nexport function base64EncodedDataUrl(\n mimeType: string,\n buffer: Uint8Array,\n): string {\n return `data:${mimeType};base64,${base64Encode(buffer)}`;\n}\n\nexport function base64DecodeDataUrl(dataUrl: string): Uint8Array {\n const b64Encoded = dataUrl.split(\",\", 2)[1];\n return base64Decode(b64Encoded);\n}\n\n/**\n * Perform sha256 hash using the browser's crypto APIs\n * Note: this will only work over HTTPS\n * @param message\n */\nexport async function hashSHA256(\n message: string | Uint8Array,\n): Promise {\n // Transform the string into an ArrayBuffer\n const encoder = new TextEncoder();\n const data: Uint8Array = typeof message === \"string\"\n ? encoder.encode(message)\n : message;\n\n // Generate the hash\n const hashBuffer = await globalThis.crypto.subtle.digest(\n \"SHA-256\",\n data as BufferSource,\n );\n\n // Transform the hash into a hex string\n return Array.from(new Uint8Array(hashBuffer)).map((b) =>\n b.toString(16).padStart(2, \"0\")\n ).join(\"\");\n}\n\n/**\n * To avoid database clashes based on space folder path name, base URLs and encryption keys we derive\n * a database name from a hash of all these combined together\n */\nexport async function deriveDbName(\n type: \"data\" | \"files\",\n spaceFolderPath: string,\n baseURI: string,\n encryptionKey?: CryptoKey,\n): Promise {\n let keyPart = \"\";\n if (encryptionKey) {\n keyPart = await exportKey(encryptionKey);\n }\n const spaceHash = await hashSHA256(\n `${spaceFolderPath}:${baseURI}:${keyPart}`,\n );\n return `sb_${type}_${spaceHash}`;\n}\n\n// Fixed counter for AES-CTR all zeroes, for determinism\nconst fixedCounter = new Uint8Array(16);\n\nexport async function encryptStringDeterministic(\n key: CryptoKey,\n clearText: string,\n): Promise {\n const encrypted = await crypto.subtle.encrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n new TextEncoder().encode(clearText),\n );\n return base64Encode(new Uint8Array(encrypted));\n}\n\nexport async function decryptStringDeterministic(\n key: CryptoKey,\n cipherText: string,\n): Promise {\n const decrypted = await crypto.subtle.decrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n base64Decode(cipherText) as BufferSource,\n );\n return new TextDecoder().decode(decrypted);\n}\n\n// Encrypt using AES-GCM with random IV; output = IV + ciphertext\nexport async function encryptAesGcm(\n key: CryptoKey,\n data: Uint8Array,\n): Promise {\n const iv = crypto.getRandomValues(new Uint8Array(12)); // 96-bit IV recommended for GCM\n const encryptedBuffer = await crypto.subtle.encrypt(\n { name: \"AES-GCM\", iv },\n key,\n data as BufferSource,\n );\n const encrypted = new Uint8Array(encryptedBuffer);\n\n // Prepend IV to ciphertext\n const result = new Uint8Array(iv.length + encrypted.length);\n result.set(iv, 0);\n result.set(encrypted, iv.length);\n return result;\n}\n\n// Decrypt using AES-GCM assuming input format IV + ciphertext\nexport async function decryptAesGcm(\n key: CryptoKey,\n encryptedData: Uint8Array,\n): Promise {\n const iv = encryptedData.slice(0, 12); // extract IV (first 12 bytes)\n const ciphertext = encryptedData.slice(12);\n const decryptedBuffer = await crypto.subtle.decrypt(\n { name: \"AES-GCM\", iv },\n key,\n ciphertext,\n );\n return new Uint8Array(decryptedBuffer);\n}\n\nexport async function deriveCTRKeyFromPassword(\n password: string,\n salt: Uint8Array,\n): Promise {\n // Encode password to ArrayBuffer\n const passwordBytes = new TextEncoder().encode(password);\n\n // Import password as a CryptoKey\n const baseKey = await crypto.subtle.importKey(\n \"raw\",\n passwordBytes,\n { name: \"PBKDF2\" },\n false,\n [\"deriveBits\", \"deriveKey\"],\n );\n\n return crypto.subtle.deriveKey(\n {\n name: \"PBKDF2\",\n salt: salt as BufferSource,\n iterations: 100000,\n hash: \"SHA-256\",\n },\n baseKey,\n {\n name: \"AES-CTR\",\n length: 256,\n },\n true, // extractable\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport function importKey(b64EncodedKey: string): Promise {\n return crypto.subtle.importKey(\n \"raw\",\n base64Decode(b64EncodedKey) as BufferSource,\n { name: \"AES-CTR\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport async function exportKey(ctrKey: CryptoKey): Promise {\n const key = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return base64Encode(new Uint8Array(key));\n}\n\nexport async function deriveGCMKeyFromCTR(\n ctrKey: CryptoKey,\n): Promise {\n const rawKey = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return crypto.subtle.importKey(\n \"raw\",\n rawKey,\n { name: \"AES-GCM\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n", "// Logger that monkey patches console methods with prefixes and can capture logs for server transmission\n\nexport interface LogEntry {\n level: \"log\" | \"info\" | \"warn\" | \"error\" | \"debug\";\n timestamp: number;\n message: string;\n}\n\nexport class Logger {\n private originalConsole: {\n log: typeof console.log;\n info: typeof console.info;\n warn: typeof console.warn;\n error: typeof console.error;\n debug: typeof console.debug;\n };\n public logBuffer: LogEntry[] = [];\n\n constructor(\n private prefix: string = \"\",\n private maxCaptureSize: number = 1000,\n ) {\n this.prefix = prefix;\n\n // Store original console methods\n this.originalConsole = {\n log: console.log.bind(console),\n info: console.info.bind(console),\n warn: console.warn.bind(console),\n error: console.error.bind(console),\n debug: console.debug.bind(console),\n };\n\n this.patchConsole();\n }\n\n private patchConsole(): void {\n const createPatchedMethod = (level: keyof typeof this.originalConsole) => {\n return (...args: any[]) => {\n const prefixedArgs = this.prefix ? [this.prefix, ...args] : args;\n\n // Call original console method\n this.originalConsole[level](...prefixedArgs);\n\n // Capture log if capturing is enabled\n this.captureLog(level, args);\n };\n };\n\n console.log = createPatchedMethod(\"log\");\n console.info = createPatchedMethod(\"info\");\n console.warn = createPatchedMethod(\"warn\");\n console.error = createPatchedMethod(\"error\");\n console.debug = createPatchedMethod(\"debug\");\n }\n\n private captureLog(level: LogEntry[\"level\"], args: any[]): void {\n const entry: LogEntry = {\n level,\n timestamp: Date.now(),\n message: args.map((arg) => {\n if (typeof arg === \"string\") {\n return arg;\n }\n try {\n return JSON.stringify(arg);\n } catch {\n // Handle circular references or other JSON.stringify failures\n return String(arg);\n }\n }).join(\" \"),\n };\n\n this.logBuffer.push(entry);\n\n // Maintain max capture size by removing oldest entries\n if (this.logBuffer.length > this.maxCaptureSize) {\n this.logBuffer.shift();\n }\n }\n\n /**\n * Posts all buffered logs to a server endpoint\n */\n async postToServer(logEndpoint: string, source: string) {\n const logs = this.logBuffer;\n if (logs.length > 0) {\n // Flush the buffer\n const logCopy = [...this.logBuffer];\n this.logBuffer = [];\n try {\n const resp = await fetch(logEndpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(logCopy.map((entry) => ({ ...entry, source }))),\n });\n if (!resp.ok) {\n throw new Error(\"Failed to post logs to server\");\n }\n } catch (e: any) {\n console.warn(\"Could not post logs to server\", e.message);\n // Put back the logs into the buffer\n this.logBuffer.unshift(...logCopy);\n }\n }\n }\n}\n\n// Global logger instance\nlet globalLogger: Logger | undefined = undefined;\n\nexport function initLogger(prefix: string = \"\"): Logger {\n globalLogger = new Logger(prefix);\n return globalLogger;\n}\n", "// This is the runtime imported from the compiled plug worker code\nimport type { ControllerMessage, WorkerMessage } from \"./protocol.ts\";\nimport type {\n ProxyFetchRequest64,\n ProxyFetchResponse64,\n} from \"./proxy_fetch.ts\";\nimport { base64Decode, base64Encode } from \"../../plug-api/lib/crypto.ts\";\nimport { initLogger } from \"../lib/logger.ts\";\n\ndeclare global {\n function syscall(name: string, ...args: any[]): Promise;\n}\n\nlet workerPostMessage = (_msg: ControllerMessage): void => {\n throw new Error(\"Not initialized yet\");\n};\n\n// Are we running in a (web) worker?\n\n// Determines if we're running in a web worker environment (Deno or browser)\n// - in a browser's main threads, typeof window is \"object\"\n// - in a browser's worker threads, typeof window === \"undefined\"\n// - in Deno's main thread typeof window === \"object\"\n// - in Deno's workers typeof window === \"undefined\n// - in Cloudflare workers typeof window === \"undefined\", but typeof globalThis.WebSocketPair is defined\nconst runningAsWebWorker = typeof window === \"undefined\" &&\n // @ts-ignore: globalThis\n typeof globalThis.WebSocketPair === \"undefined\";\n\nif (typeof Deno === \"undefined\") {\n // @ts-ignore: Deno hack\n self.Deno = {\n args: [],\n // @ts-ignore: Deno hack\n build: {\n arch: \"x86_64\",\n },\n env: {\n // @ts-ignore: Deno hack\n get() {\n },\n },\n };\n}\n\nconst pendingRequests = new Map<\n number,\n {\n resolve: (result: unknown) => void;\n reject: (e: any) => void;\n }\n>();\n\nlet syscallReqId = 0;\n\nif (runningAsWebWorker) {\n globalThis.syscall = async (name: string, ...args: any[]) => {\n return await new Promise((resolve, reject) => {\n syscallReqId++;\n pendingRequests.set(syscallReqId, { resolve, reject });\n workerPostMessage({\n type: \"sys\",\n id: syscallReqId,\n name,\n args,\n });\n });\n };\n}\n\nexport function setupMessageListener(\n // deno-lint-ignore ban-types\n functionMapping: Record,\n manifest: any,\n postMessageFn: (msg: ControllerMessage) => void,\n) {\n if (!runningAsWebWorker) {\n // Don't do any of this stuff if this is not a web worker\n // This caters to the NoSandbox run mode\n return;\n }\n workerPostMessage = postMessageFn;\n self.addEventListener(\"message\", (event: { data: WorkerMessage }) => {\n (async () => {\n const data = event.data;\n switch (data.type) {\n case \"inv\":\n {\n const fn = functionMapping[data.name!];\n if (!fn) {\n throw new Error(`Function not loaded: ${data.name}`);\n }\n try {\n const result = await Promise.resolve(fn(...(data.args || [])));\n workerPostMessage({\n type: \"invr\",\n id: data.id,\n result: result,\n } as ControllerMessage);\n } catch (e: any) {\n console.error(\n \"An exception was thrown as a result of invoking function\",\n data.name,\n \"error:\",\n e.message,\n );\n workerPostMessage({\n type: \"invr\",\n id: data.id!,\n error: e.message,\n });\n }\n }\n break;\n case \"sysr\":\n {\n const syscallId = data.id;\n const lookup = pendingRequests.get(syscallId);\n if (!lookup) {\n throw Error(\"Invalid request id\");\n }\n pendingRequests.delete(syscallId);\n if (data.error) {\n lookup.reject(new Error(data.error));\n } else {\n lookup.resolve(data.result);\n }\n }\n\n break;\n }\n })().catch(console.error);\n });\n // Signal initialization with manifest\n workerPostMessage({\n type: \"manifest\",\n manifest,\n });\n initLogger(`[${manifest.name} plug]`);\n}\n\nexport async function sandboxFetch(\n reqInfo: RequestInfo,\n options?: ProxyFetchRequest64,\n): Promise {\n if (typeof reqInfo !== \"string\") {\n const body = new Uint8Array(await reqInfo.arrayBuffer());\n const encodedBody = body.length > 0 ? base64Encode(body) : undefined;\n options = {\n method: reqInfo.method,\n headers: Object.fromEntries(reqInfo.headers.entries()),\n base64Body: encodedBody,\n };\n reqInfo = reqInfo.url;\n }\n return syscall(\"sandboxFetch.fetch\", reqInfo, options);\n}\n\n// @ts-ignore: monkey patching fetch\nglobalThis.nativeFetch = globalThis.fetch;\n\n// Monkey patch fetch()\nexport function monkeyPatchFetch() {\n // @ts-ignore: monkey patching fetch\n globalThis.fetch = async function (\n reqInfo: RequestInfo,\n init?: RequestInit,\n ): Promise {\n const encodedBody = init && init.body\n ? base64Encode(\n new Uint8Array(await (new Response(init.body)).arrayBuffer()),\n )\n : undefined;\n const r = await sandboxFetch(\n reqInfo,\n init && {\n method: init.method,\n headers: init.headers as Record,\n base64Body: encodedBody,\n },\n );\n // Casting the response to \"any\" for now, since of weird Deno typing\n return new Response(\n (r.base64Body ? base64Decode(r.base64Body) : null) as any,\n {\n status: r.status,\n headers: r.headers,\n },\n );\n };\n}\n\nif (runningAsWebWorker) {\n monkeyPatchFetch();\n}\n", "import { syscall } from \"../syscall.ts\";\nimport type { FilterOption, UploadFile } from \"../types/client.ts\";\nimport type { Path, Ref } from \"../lib/ref.ts\";\nimport type { PageMeta } from \"../types/index.ts\";\n\n/**\n * Exposes various editor utilities.\n * Important: These syscalls are only available in the client.\n * @module\n */\n\n/**\n * Returns the name of the page or document currently open in the editor.\n * @returns the current page name\n */\nexport function getCurrentPage(): Promise {\n return syscall(\"editor.getCurrentPage\");\n}\n\n/**\n * Returns the meta data of the page or document currently open in the editor.\n * @returns the current page meta data\n */\nexport function getCurrentPageMeta(): Promise {\n return syscall(\"editor.getCurrentPageMeta\");\n}\n\n/**\n * Returns the path of the page or document currently open in the editor.\n * @returns the current page path\n */\nexport function getCurrentPath(): Promise {\n return syscall(\"editor.getCurrentPath\");\n}\n\n/**\n * Returns the names of the pages that have been recently opened\n * @returns the names of the recently opened pages\n */\nexport function getRecentlyOpenedPages(): Promise {\n return syscall(\"editor.getRecentlyOpenedPages\");\n}\n\n/**\n * Returns the name of the currently open editor.\n * @returns the name of the current editor\n */\nexport function getCurrentEditor(): Promise {\n return syscall(\"editor.getCurrentEditor\");\n}\n\n/**\n * Returns the full text of the currently open page\n */\nexport function getText(): Promise {\n return syscall(\"editor.getText\");\n}\n\n/**\n * This updates the editor text, but in a minimal-diff way:\n * it compares the current editor text with the new text, and only sends the changes to the editor, thereby preserving cursor location\n */\nexport function setText(\n newText: string,\n isolateHistory = false,\n): Promise {\n return syscall(\"editor.setText\", newText, isolateHistory);\n}\n\n/**\n * Returns the position (in # of characters from the beginning of the file) of the cursor in the editor\n */\nexport function getCursor(): Promise {\n return syscall(\"editor.getCursor\");\n}\n\n/**\n * Returns the line number and column number of the cursor in the editor\n */\nexport function getSelection(): Promise<\n { from: number; to: number; text: string }\n> {\n return syscall(\"editor.getSelection\");\n}\n\n/**\n * Sets the position of the cursor in the editor\n * @param from the start position of the selection\n * @param to the end position of the selection\n */\nexport function setSelection(from: number, to: number): Promise {\n return syscall(\"editor.setSelection\", from, to);\n}\n\n/**\n * Invoke a client command by name\n * Note: only available on the client\n * @param name name of the command\n * @param args arguments to pass to the command\n */\nexport function invokeCommand(name: string, args?: string[]): Promise {\n return syscall(\"editor.invokeCommand\", name, args);\n}\n\n/**\n * Forces a save of the current page\n */\nexport function save(): Promise {\n return syscall(\"editor.save\");\n}\n\n/**\n * Navigates to the specified page reference\n * @param pageRef the page reference to navigate to\n * @param replaceState whether to replace the current history state in the browser history\n * @param newWindow whether to open the page in a new window\n */\nexport function navigate(\n ref: Ref | string,\n replaceState = false,\n newWindow = false,\n): Promise {\n return syscall(\"editor.navigate\", ref, replaceState, newWindow);\n}\n\n/**\n * Opens the page navigator\n * @param mode the mode to open the navigator in\n */\nexport function openPageNavigator(\n mode: \"page\" | \"meta\" | \"document\" | \"all\" = \"page\",\n): Promise {\n return syscall(\"editor.openPageNavigator\", mode);\n}\n\n/**\n * Opens the command palette\n */\nexport function openCommandPalette(): Promise {\n return syscall(\"editor.openCommandPalette\");\n}\n\n/**\n * Force reloads the current page\n */\nexport function reloadPage(): Promise {\n return syscall(\"editor.reloadPage\");\n}\n\n/**\n * Force reloads the browser UI\n */\nexport function reloadUI(): Promise {\n return syscall(\"editor.reloadUI\");\n}\n\n/**\n * Rebuilds the editor state to ensure the dispatch updates the state.\n */\nexport function rebuildEditorState(): Promise {\n return syscall(\"editor.rebuildEditorState\");\n}\n\n/**\n * Reloads the config and commands, also in the server\n */\nexport function reloadConfigAndCommands(): Promise {\n return syscall(\"editor.reloadConfigAndCommands\");\n}\n\n/**\n * Opens the specified URL in the browser\n * @param url the URL to open\n * @param existingWindow whether to open the URL in an existing window\n */\nexport function openUrl(url: string, existingWindow = false): Promise {\n return syscall(\"editor.openUrl\", url, existingWindow);\n}\n\nexport function newWindow(): Promise {\n return syscall(\"editor.newWindow\");\n}\n\n/**\n * This is calling the `go()` method from the History Web API.\n * @param delta Position in history to move to relative to the current page,\n * where a negative value moves backwards, and positive forwards\n */\nexport function goHistory(delta: number): Promise {\n return syscall(\"editor.goHistory\", delta);\n}\n\n/**\n * Force the client to download the file in dataUrl with filename as file name\n * @param filename the name of the file to download\n * @param dataUrl the dataUrl of the file to download\n */\nexport function downloadFile(filename: string, dataUrl: string): Promise {\n return syscall(\"editor.downloadFile\", filename, dataUrl);\n}\n\n/**\n * Triggers the browser's native file upload dialog/popup\n * @param accept the file types to accept\n * @param capture the capture mode for the file input\n */\nexport function uploadFile(\n accept?: string,\n capture?: string,\n): Promise {\n return syscall(\"editor.uploadFile\", accept, capture);\n}\n\n/**\n * Shows a flash notification to the user (top right corner)\n * @param message the message to show\n * @param type the type of notification to show\n */\nexport function flashNotification(\n message: string,\n type: \"info\" | \"error\" = \"info\",\n): Promise {\n return syscall(\"editor.flashNotification\", message, type);\n}\n\n/**\n * Exposes a filter box UI (similar to the page navigator and command palette)\n * @param label the label to show left of the input box\n * @param options the options to show and to filter on\n * @param helpText the help text to show below the input box\n * @param placeHolder the placeholder text to show in the input box\n */\nexport function filterBox(\n label: string,\n options: FilterOption[],\n helpText = \"\",\n placeHolder = \"\",\n): Promise {\n return syscall(\"editor.filterBox\", label, options, helpText, placeHolder);\n}\n\n/**\n * Shows a panel in the editor\n * @param id the location of the panel to show\n * @param mode the mode or \"size\" of the panel\n * @param html the html content of the panel\n * @param script the script content of the panel\n */\nexport function showPanel(\n id: \"lhs\" | \"rhs\" | \"bhs\" | \"modal\",\n mode: number,\n html: string,\n script = \"\",\n): Promise {\n return syscall(\"editor.showPanel\", id, mode, html, script);\n}\n\n/**\n * Hides a panel in the editor\n * @param id the location of the panel to hide\n */\nexport function hidePanel(\n id: \"lhs\" | \"rhs\" | \"bhs\" | \"modal\",\n): Promise {\n return syscall(\"editor.hidePanel\", id);\n}\n\nexport function showProgress(\n progressPercentage?: number,\n progressType?: string,\n): Promise {\n return syscall(\"editor.showProgress\", progressPercentage, progressType);\n}\n\n/**\n * Insert text at the specified position into the editor\n * @param text the text to insert\n * @param pos\n */\nexport function insertAtPos(text: string, pos: number): Promise {\n return syscall(\"editor.insertAtPos\", text, pos);\n}\n\n/**\n * Replace the text in the specified range in the editor\n * @param from the start position of the range\n * @param to the end position of the range\n * @param text the text to replace with\n */\nexport function replaceRange(\n from: number,\n to: number,\n text: string,\n): Promise {\n return syscall(\"editor.replaceRange\", from, to, text);\n}\n\n/**\n * Move the cursor to the specified position in the editor\n * @param pos the position to move the cursor to\n * @param center whether to center the cursor in the editor after moving\n */\nexport function moveCursor(pos: number, center = false): Promise {\n return syscall(\"editor.moveCursor\", pos, center);\n}\n\n/**\n * Move the cursor to the specified line and column in the editor\n * @param line the line number to move the cursor to\n * @param column the column number to move the cursor to\n * @param center whether to center the cursor in the editor after moving\n */\nexport function moveCursorToLine(\n line: number,\n column = 1,\n center = false,\n): Promise {\n return syscall(\"editor.moveCursorToLine\", line, column, center);\n}\n\n/**\n * Insert text at the cursor position in the editor\n * @param text the text to insert\n */\nexport function insertAtCursor(\n text: string,\n scrollIntoView = false,\n cursorPlaceHolder = false,\n): Promise {\n return syscall(\n \"editor.insertAtCursor\",\n text,\n scrollIntoView,\n cursorPlaceHolder,\n );\n}\n\n/**\n * Dispatch a CodeMirror transaction: https://codemirror.net/docs/ref/#state.Transaction\n */\nexport function dispatch(change: any): Promise {\n return syscall(\"editor.dispatch\", change);\n}\n\n/**\n * Prompt the user for text input\n * @param message the message to show in the prompt\n * @param defaultValue a default value pre-filled in the prompt\n * @returns\n */\nexport function prompt(\n message: string,\n defaultValue = \"\",\n): Promise {\n return syscall(\"editor.prompt\", message, defaultValue);\n}\n\n/**\n * Prompt the user for confirmation\n * @param message the message to show in the confirmation dialog\n * @returns\n */\nexport function confirm(\n message: string,\n): Promise {\n return syscall(\"editor.confirm\", message);\n}\n\n/**\n * Prompt the user for confirmation\n * @param message the message to show in the confirmation dialog\n * @returns\n */\nexport function alert(\n message: string,\n): Promise {\n return syscall(\"editor.alert\", message);\n}\n\n/**\n * Get the value of a UI option\n * @param key the key of the UI option to get\n * @returns\n */\nexport function getUiOption(key: string): Promise {\n return syscall(\"editor.getUiOption\", key);\n}\n\n/**\n * Set the value of a UI option\n * @param key the key of the UI option to set\n * @param value the value to set the UI option to\n */\nexport function setUiOption(key: string, value: any): Promise {\n return syscall(\"editor.setUiOption\", key, value);\n}\n\n/**\n * Perform a fold at the current cursor position\n */\nexport function fold(): Promise {\n return syscall(\"editor.fold\");\n}\n\n/**\n * Perform an unfold at the current cursor position\n */\nexport function unfold(): Promise {\n return syscall(\"editor.unfold\");\n}\n\n/**\n * Toggle the fold at the current cursor position\n */\nexport function toggleFold(): Promise {\n return syscall(\"editor.toggleFold\");\n}\n\n/**\n * Fold all code blocks in the editor\n */\nexport function foldAll(): Promise {\n return syscall(\"editor.foldAll\");\n}\n\n/**\n * Unfold all code blocks in the editor\n */\nexport function unfoldAll(): Promise {\n return syscall(\"editor.unfoldAll\");\n}\n\n/**\n * Perform an undo operation of the last edit in the editor\n */\nexport function undo(): Promise {\n return syscall(\"editor.undo\");\n}\n\n/**\n * Perform a redo operation of the last undo in the editor\n */\nexport function redo(): Promise {\n return syscall(\"editor.redo\");\n}\n\n/**\n * Open the editor's native search panel\n */\nexport function openSearchPanel(): Promise {\n return syscall(\"editor.openSearchPanel\");\n}\n\n/**\n * Copy the specified data to the clipboard\n * @param data the data to copy\n */\nexport function copyToClipboard(data: string | Blob): Promise {\n return syscall(\"editor.copyToClipboard\", data);\n}\n\n/**\n * Delete the current line in the editor\n */\nexport function deleteLine(): Promise {\n return syscall(\"editor.deleteLine\");\n}\n\n/**\n * Comment or uncomment the current line in the editor\n */\nexport function toggleComment(): Promise {\n return syscall(\"editor.toggleComment\");\n}\n\nexport function moveLineUp(): Promise {\n return syscall(\"editor.moveLineUp\");\n}\n\nexport function moveLineDown(): Promise {\n return syscall(\"editor.moveLineDown\");\n}\n\n// Vim-mode specific syscalls\n\n/**\n * Execute a Vim ex command\n * @param exCommand the ex command to execute\n */\nexport function vimEx(exCommand: string): Promise {\n return syscall(\"editor.vimEx\", exCommand);\n}\n\n/**\n * Execute a vim config using the CodeMirror Vim Mode API\n */\nexport function configureVimMode(): Promise {\n return syscall(\"editor.configureVimMode\");\n}\n\n// Document editor specific syscalls\n\n/**\n * Send a message - or event if you will - to the currently used document editor\n * @param type the message type, which can be listend to\n * @param data data attached to the message\n */\nexport function sendMessage(type: string, data?: any): Promise {\n return syscall(\"editor.sendMessage\", type, data);\n}\n\n/**\n * Check if the editor is running on a mobile device\n */\nexport function isMobile(): Promise {\n return syscall(\"editor.isMobile\");\n}\n", "// declare global {\n// function syscall(name: string, ...args: any[]): Promise;\n// }\n\n// This is the case when running tests only, so giving it a dummy syscall function\nif (typeof self === \"undefined\") {\n (self as any) = {\n syscall: () => {\n throw new Error(\"Not implemented here\");\n },\n };\n}\n\n// Late binding syscall\nexport function syscall(name: string, ...args: any[]): Promise {\n return (globalThis as any).syscall(name, ...args);\n}\n", "import { syscall } from \"../syscall.ts\";\n\n/**\n * Implements a very simple (string) key value store for the client.\n * Generally should only be used to set some client-specific states, such as preferences.\n * @module\n */\n\n/**\n * Sets a value in the client store.\n * @param key the key to set\n * @param value the value to set\n */\nexport function set(key: string, value: any): Promise {\n return syscall(\"clientStore.set\", key, value);\n}\n\n/**\n * Gets a value from the client store.\n * @param key the key to get\n * @returns the value associated with the key\n */\nexport function get(key: string): Promise {\n return syscall(\"clientStore.get\", key);\n}\n\n/**\n * Deletes a value from the client store.\n * @param key the key to delete\n */\nexport function del(key: string): Promise {\n return syscall(\"clientStore.delete\", key);\n}\n", "export function base64Decode(s: string): Uint8Array {\n const binString = atob(s);\n const len = binString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binString.charCodeAt(i);\n }\n return bytes;\n}\n\nexport function base64Encode(buffer: Uint8Array | string): string {\n if (typeof buffer === \"string\") {\n buffer = new TextEncoder().encode(buffer);\n }\n let binary = \"\";\n const len = buffer.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(buffer[i]);\n }\n return btoa(binary);\n}\n\nexport function base64EncodedDataUrl(\n mimeType: string,\n buffer: Uint8Array,\n): string {\n return `data:${mimeType};base64,${base64Encode(buffer)}`;\n}\n\nexport function base64DecodeDataUrl(dataUrl: string): Uint8Array {\n const b64Encoded = dataUrl.split(\",\", 2)[1];\n return base64Decode(b64Encoded);\n}\n\n/**\n * Perform sha256 hash using the browser's crypto APIs\n * Note: this will only work over HTTPS\n * @param message\n */\nexport async function hashSHA256(\n message: string | Uint8Array,\n): Promise {\n // Transform the string into an ArrayBuffer\n const encoder = new TextEncoder();\n const data: Uint8Array = typeof message === \"string\"\n ? encoder.encode(message)\n : message;\n\n // Generate the hash\n const hashBuffer = await globalThis.crypto.subtle.digest(\n \"SHA-256\",\n data as BufferSource,\n );\n\n // Transform the hash into a hex string\n return Array.from(new Uint8Array(hashBuffer)).map((b) =>\n b.toString(16).padStart(2, \"0\")\n ).join(\"\");\n}\n\n/**\n * To avoid database clashes based on space folder path name, base URLs and encryption keys we derive\n * a database name from a hash of all these combined together\n */\nexport async function deriveDbName(\n type: \"data\" | \"files\",\n spaceFolderPath: string,\n baseURI: string,\n encryptionKey?: CryptoKey,\n): Promise {\n let keyPart = \"\";\n if (encryptionKey) {\n keyPart = await exportKey(encryptionKey);\n }\n const spaceHash = await hashSHA256(\n `${spaceFolderPath}:${baseURI}:${keyPart}`,\n );\n return `sb_${type}_${spaceHash}`;\n}\n\n// Fixed counter for AES-CTR all zeroes, for determinism\nconst fixedCounter = new Uint8Array(16);\n\nexport async function encryptStringDeterministic(\n key: CryptoKey,\n clearText: string,\n): Promise {\n const encrypted = await crypto.subtle.encrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n new TextEncoder().encode(clearText),\n );\n return base64Encode(new Uint8Array(encrypted));\n}\n\nexport async function decryptStringDeterministic(\n key: CryptoKey,\n cipherText: string,\n): Promise {\n const decrypted = await crypto.subtle.decrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n base64Decode(cipherText) as BufferSource,\n );\n return new TextDecoder().decode(decrypted);\n}\n\n// Encrypt using AES-GCM with random IV; output = IV + ciphertext\nexport async function encryptAesGcm(\n key: CryptoKey,\n data: Uint8Array,\n): Promise {\n const iv = crypto.getRandomValues(new Uint8Array(12)); // 96-bit IV recommended for GCM\n const encryptedBuffer = await crypto.subtle.encrypt(\n { name: \"AES-GCM\", iv },\n key,\n data as BufferSource,\n );\n const encrypted = new Uint8Array(encryptedBuffer);\n\n // Prepend IV to ciphertext\n const result = new Uint8Array(iv.length + encrypted.length);\n result.set(iv, 0);\n result.set(encrypted, iv.length);\n return result;\n}\n\n// Decrypt using AES-GCM assuming input format IV + ciphertext\nexport async function decryptAesGcm(\n key: CryptoKey,\n encryptedData: Uint8Array,\n): Promise {\n const iv = encryptedData.slice(0, 12); // extract IV (first 12 bytes)\n const ciphertext = encryptedData.slice(12);\n const decryptedBuffer = await crypto.subtle.decrypt(\n { name: \"AES-GCM\", iv },\n key,\n ciphertext,\n );\n return new Uint8Array(decryptedBuffer);\n}\n\nexport async function deriveCTRKeyFromPassword(\n password: string,\n salt: Uint8Array,\n): Promise {\n // Encode password to ArrayBuffer\n const passwordBytes = new TextEncoder().encode(password);\n\n // Import password as a CryptoKey\n const baseKey = await crypto.subtle.importKey(\n \"raw\",\n passwordBytes,\n { name: \"PBKDF2\" },\n false,\n [\"deriveBits\", \"deriveKey\"],\n );\n\n return crypto.subtle.deriveKey(\n {\n name: \"PBKDF2\",\n salt: salt as BufferSource,\n iterations: 100000,\n hash: \"SHA-256\",\n },\n baseKey,\n {\n name: \"AES-CTR\",\n length: 256,\n },\n true, // extractable\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport function importKey(b64EncodedKey: string): Promise {\n return crypto.subtle.importKey(\n \"raw\",\n base64Decode(b64EncodedKey) as BufferSource,\n { name: \"AES-CTR\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport async function exportKey(ctrKey: CryptoKey): Promise {\n const key = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return base64Encode(new Uint8Array(key));\n}\n\nexport async function deriveGCMKeyFromCTR(\n ctrKey: CryptoKey,\n): Promise {\n const rawKey = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return crypto.subtle.importKey(\n \"raw\",\n rawKey,\n { name: \"AES-GCM\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n", "import type { LuaCollectionQuery } from \"../../client/space_lua/query_collection.ts\";\nimport { syscall } from \"../syscall.ts\";\n\nimport type { KV, KvKey, KvQuery } from \"../types/datastore.ts\";\n\n/**\n * Exposes a key value story with query capabilities.\n * @module\n */\n\n/**\n * Sets a value in the key value store.\n * @param key the key to set\n * @param value the value to set\n */\nexport function set(key: KvKey, value: any): Promise {\n return syscall(\"datastore.set\", key, value);\n}\n\n/**\n * Sets multiple values in the key value store.\n * @param kvs the key value pairs to set\n */\nexport function batchSet(kvs: KV[]): Promise {\n return syscall(\"datastore.batchSet\", kvs);\n}\n\n/**\n * Gets a value from the key value store.\n * @param key the key to get\n * @returns the value associated with the key (or undefined if not found)\n */\nexport function get(key: KvKey): Promise {\n return syscall(\"datastore.get\", key);\n}\n\n/**\n * Gets multiple values from the key value store.\n * @param keys the keys to get\n * @returns the values associated with the keys (or undefined if not found)\n */\nexport function batchGet(keys: KvKey[]): Promise<(any | undefined)[]> {\n return syscall(\"datastore.batchGet\", keys);\n}\n\n/**\n * Deletes a value from the key value store.\n * @param key the key to delete\n */\nexport function del(key: KvKey): Promise {\n return syscall(\"datastore.delete\", key);\n}\n\n/**\n * Deletes multiple values from the key value store.\n * @param keys the keys to delete\n */\nexport function batchDel(keys: KvKey[]): Promise {\n return syscall(\"datastore.batchDelete\", keys);\n}\n\nexport function query(options: KvQuery): Promise {\n return syscall(\"datastore.query\", options);\n}\n\nexport function queryLua(\n prefix: string[],\n query: LuaCollectionQuery,\n scopeVariables?: Record,\n): Promise {\n return syscall(\"datastore.queryLua\", prefix, query, scopeVariables);\n}\n\nexport function batchDeletePrefix(prefix: KvKey): Promise {\n return syscall(\"datastore.batchDeletePrefix\", prefix);\n}\n\n/**\n * Queries the key value store and deletes all matching items\n * @param query the query to run\n * @param variables the variables that can be referenced inside the query\n */\nexport function queryDelete(\n query: KvQuery,\n variables?: Record,\n): Promise {\n return syscall(\"datastore.queryDelete\", query, variables);\n}\n\n/**\n * Lists all functions currently defined and available for use in queries\n * @returns the names of all functions in the key value store\n */\nexport function listFunctions(): Promise {\n return syscall(\"datastore.listFunctions\");\n}\n", "import { syscall } from \"../syscall.ts\";\n\n/**\n * Gets a config value by path, with support for dot notation.\n * @param path The path to get the value from\n * @param defaultValue The default value to return if the path doesn't exist\n * @returns The value at the path, or the default value\n */\nexport function get(path: string, defaultValue: T): Promise {\n return syscall(\"config.get\", path, defaultValue);\n}\n\n/**\n * Sets a config value by path, with support for dot notation.\n * @param path The path to set the value at\n * @param value The value to set\n */\nexport function set(path: string, value: T): Promise;\n/**\n * Sets multiple config values at once.\n * @param values An object containing key-value pairs to set\n */\nexport function set(values: Record): Promise;\nexport function set(\n pathOrValues: string | Record,\n value?: T,\n): Promise {\n return syscall(\"config.set\", pathOrValues, value);\n}\n\n/**\n * Inserts a config value into an array\n */\nexport function insert(\n path: string | string[],\n value: T,\n): Promise {\n return syscall(\"config.insert\", path, value);\n}\n\n/**\n * Checks if a config path exists.\n * @param path The path to check\n * @returns True if the path exists, false otherwise\n */\nexport function has(path: string): Promise {\n return syscall(\"config.has\", path);\n}\n\n/**\n * Defines a JSON schema for a configuration key.\n * The schema will be used to validate values when setting this key.\n * @param key The configuration key to define a schema for\n * @param schema The JSON schema to validate against\n */\nexport function define(key: string, schema: any): Promise {\n return syscall(\"config.define\", key, schema);\n}\n", "import type { LuaCollectionQuery } from \"../../client/space_lua/query_collection.ts\";\nimport { syscall } from \"../syscall.ts\";\nimport type { ObjectValue } from \"../types/index.ts\";\n\n/**\n * Exposes the SilverBullet object indexing system\n * @module\n */\n\n/**\n * Indexes objects for a specific page\n * @param page - The page identifier where objects will be indexed\n * @param objects - Array of objects to be indexed\n * @returns Promise that resolves when indexing is complete\n */\nexport function indexObjects(\n page: string,\n objects: ObjectValue[],\n): Promise {\n return syscall(\"index.indexObjects\", page, objects);\n}\n\n/**\n * Queries objects using a Lua-based collection query\n * @param tag - The tag to filter objects by\n * @param query - Lua query parameters to filter objects\n * @param scopedVariables - Optional variables to be used in the Lua query\n * @returns Promise that resolves with an array of matching objects\n */\nexport function queryLuaObjects(\n tag: string,\n query: LuaCollectionQuery,\n scopedVariables?: Record,\n ttlSecs?: number,\n): Promise[]> {\n return syscall(\"index.queryLuaObjects\", tag, query, scopedVariables, ttlSecs);\n}\n\n/**\n * Retrieves a specific object by its reference\n * @param page - The page identifier where the object is located\n * @param tag - The tag of the object\n * @param ref - The reference identifier of the object\n * @returns Promise that resolves with the matching object or undefined if not found\n */\nexport function getObjectByRef(\n page: string,\n tag: string,\n ref: string,\n): Promise | undefined> {\n return syscall(\"index.getObjectByRef\", page, tag, ref);\n}\n\n/**\n * Ensures that the full index is built and up-to-date\n */\nexport function ensureFullIndex(): Promise {\n return syscall(\"index.ensureFullIndex\");\n}\n", "/* esm.sh - ts-ics@2.4.0 */\nvar g=e=>Object.fromEntries(Object.entries(e).map(([n,t])=>[t,n])),f=e=>Object.keys(e),fe={action:\"ACTION\",description:\"DESCRIPTION\",duration:\"DURATION\",repeat:\"REPEAT\",summary:\"SUMMARY\",trigger:\"TRIGGER\",attachments:\"ATTACH\",attendees:\"ATTENDEE\"},We=g(fe),hr=f(We),br=f(fe),Se={method:\"METHOD\",prodId:\"PRODID\",version:\"VERSION\",name:\"X-WR-CALNAME\"},Je=g(Se),Kr=f(Je),kr=f(Se),Ae={alarms:\"ALARM\",categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",location:\"LOCATION\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",timeTransparent:\"TRANSP\",url:\"URL\",end:\"DTEND\",duration:\"DURATION\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",priority:\"PRIORITY\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\"},Ge=g(Ae),Vr=f(Ge),_r=f(Ae),De={id:\"TZID\",lastModified:\"LAST-MODIFIED\",url:\"TZURL\"},Ze=g(De),Ur=f(Ze),Br=f(De),Oe={comment:\"COMMENT\",name:\"TZNAME\",offsetFrom:\"TZOFFSETFROM\",offsetTo:\"TZOFFSETTO\",recurrenceDate:\"RDATE\",recurrenceRule:\"RRULE\",start:\"DTSTART\"},xe=g(Oe),Fr=f(xe),Pr=f(Oe),Xe={byDay:\"BYDAY\",byHour:\"BYHOUR\",byMinute:\"BYMINUTE\",byMonth:\"BYMONTH\",byMonthday:\"BYMONTHDAY\",bySecond:\"BYSECOND\",bySetPos:\"BYSETPOS\",byWeekNo:\"BYWEEKNO\",byYearday:\"BYYEARDAY\",count:\"COUNT\",frequency:\"FREQ\",interval:\"INTERVAL\",until:\"UNTIL\",workweekStart:\"WKST\"},Qe=g(Xe),Hr=f(Qe),$r=f(Xe),Re={categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",location:\"LOCATION\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",url:\"URL\",duration:\"DURATION\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",priority:\"PRIORITY\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\",completed:\"COMPLETED\",due:\"DUE\",percentComplete:\"PERCENT-COMPLETE\"},en=g(Re),wr=f(en),jr=f(Re),ge={categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",url:\"URL\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\"},nn=g(ge),qr=f(nn),Wr=f(ge),Me={stamp:\"DTSTAMP\",start:\"DTSTART\",uid:\"UID\",url:\"URL\",organizer:\"ORGANIZER\",attendees:\"ATTENDEE\",comment:\"COMMENT\",end:\"DTEND\",freeBusy:\"FREEBUSY\"},tn=g(Me),Jr=f(tn),Gr=f(Me),rn=\"BEGIN\",on=\"END\",Ne=\"VCALENDAR\",X=\"VTIMEZONE\",an=\"STANDARD\",ln=\"DAYLIGHT\",Q=\"VEVENT\",ee=\"VALARM\",ne=\"VTODO\",te=\"VJOURNAL\",re=\"VFREEBUSY\",Zr=[Ne,X,an,ln,Q,ee,ne,te,re],Be=e=>new RegExp(`${rn}:${e}([\\\\s\\\\S]*?)${on}:${e}`,\"g\"),Rn=e=>new RegExp(`${rn}:${e}|${on}:${e}`,\"g\"),gn=/\\r\\n/,pe=/\\r\\n|\\r|\\n/,sn=`\\r\n`,Fe=`\n`,Mn=\":\",V=\",\",Nn='\"',W=\";\",xr=\" \",ye=\"=\",Xr=75,J=e=>`${e}${sn}`,y=(e,n,t)=>t?n==null?\"\":J(`${e};${t}:${n}`):J(`${e}:${n}`),In=e=>J(`BEGIN:${e}`),Yn=e=>J(`END:${e}`),R=e=>{if(!(e.length<1))return`${e.map(n=>`${n.key}${ye}${n.value}`).join(W)}`},zn=e=>{if(e.type===\"uri\"){let n=R([e.formatType&&{key:\"FMTTYPE\",value:e.formatType}].filter(t=>!!t));return y(\"ATTACH\",e.url,n)}if(e.type===\"binary\"){let n=R([e.value&&{key:\"VALUE\",value:e.value},e.encoding&&{key:\"ENCODING\",value:e.encoding}].filter(t=>!!t));return y(\"ATTACH\",e.binary,n)}throw Error(`IcsAttachment has no type! ${JSON.stringify(e)}`)},K=(e,n)=>n?`\"MAILTO:${e}\"`:`MAILTO:${e}`,P=(e,n)=>{let t=R([e.dir&&{key:\"DIR\",value:`\"${e.dir}\"`},e.delegatedFrom&&{key:\"DELEGATED-FROM\",value:K(e.delegatedFrom,!0)},e.member&&{key:\"MEMBER\",value:K(e.member,!0)},e.role&&{key:\"ROLE\",value:e.role},e.name&&{key:\"CN\",value:e.name},e.partstat&&{key:\"PARTSTAT\",value:e.partstat},e.sentBy&&{key:\"SENT-BY\",value:K(e.sentBy,!0)},e.rsvp!==void 0&&(e.rsvp===!0||e.rsvp===!1)&&{key:\"RSVP\",value:e.rsvp===!0?\"TRUE\":\"FALSE\"}].filter(r=>!!r));return y(n,K(e.email),t)},H=e=>{if(Object.values(e).filter(t=>typeof t==\"number\").length===0)return;let n=\"\";return e.before&&(n+=\"-\"),n+=\"P\",e.weeks!==void 0&&(n+=`${e.weeks}W`),e.days!==void 0&&(n+=`${e.days}D`),(e.hours!==void 0||e.minutes!==void 0||e.seconds!==void 0)&&(n+=\"T\",e.hours!==void 0&&(n+=`${e.hours}H`),e.minutes!==void 0&&(n+=`${e.minutes}M`),e.seconds!==void 0&&(n+=`${e.seconds}S`)),n},Cn=Math.pow(10,8)*24*60*60*1e3,Qr=-Cn,Ln=6048e5,hn=864e5,Ie=6e4,Ye=36e5,bn=3600,un=bn*24,eo=un*7,Kn=un*365.2425,kn=Kn/12,no=kn*3,Pe=Symbol.for(\"constructDateFrom\");function O(e,n){return typeof e==\"function\"?e(n):e&&typeof e==\"object\"&&Pe in e?e[Pe](n):e instanceof Date?new e.constructor(n):new Date(n)}function d(e,n){return O(n||e,e)}function oe(e,n,t){let r=d(e,t?.in);return isNaN(n)?O(t?.in||e,NaN):(n&&r.setDate(r.getDate()+n),r)}function dn(e,n,t){let r=d(e,t?.in);if(isNaN(n))return O(t?.in||e,NaN);if(!n)return r;let o=r.getDate(),i=O(t?.in||e,r.getTime());i.setMonth(r.getMonth()+n+1,0);let a=i.getDate();return o>=a?i:(r.setFullYear(i.getFullYear(),i.getMonth(),o),r)}function $(e,n,t){return O(t?.in||e,+d(e)+n)}function cn(e,n,t){return $(e,n*Ye,t)}var Vn={};function ae(){return Vn}function G(e,n){var t,r,o,i;let a=ae(),l=n?.weekStartsOn??((r=(t=n?.locale)==null?void 0:t.options)==null?void 0:r.weekStartsOn)??a.weekStartsOn??((i=(o=a.locale)==null?void 0:o.options)==null?void 0:i.weekStartsOn)??0,s=d(e,n?.in),u=s.getDay(),c=(utypeof r==\"object\"));return n.map(t)}function Te(e,n){let t=d(e,n?.in);return t.setHours(0,0,0,0),t}function _n(e,n,t){let[r,o]=ie(t?.in,e,n),i=Te(r),a=Te(o),l=+i-He(i),s=+a-He(a);return Math.round((l-s)/hn)}function ze(e,n,t){let r=d(e,t?.in);return r.setTime(r.getTime()+n*Ie),r}function vn(e,n,t){return $(e,n*1e3,t)}function le(e,n,t){return oe(e,n*7,t)}function mn(e,n,t){return dn(e,n*12,t)}function Ce(e,n){let t=+d(e)-+d(n);return t<0?-1:t>0?1:t}function Le(e){return e instanceof Date||typeof e==\"object\"&&Object.prototype.toString.call(e)===\"[object Date]\"}function En(e,n,t){let[r,o]=ie(t?.in,e,n),i=$e(r,o),a=Math.abs(_n(r,o));r.setDate(r.getDate()-i*a);let l=+($e(r,o)===-i),s=i*(a-l);return s===0?0:s}function $e(e,n){let t=e.getFullYear()-n.getFullYear()||e.getMonth()-n.getMonth()||e.getDate()-n.getDate()||e.getHours()-n.getHours()||e.getMinutes()-n.getMinutes()||e.getSeconds()-n.getSeconds()||e.getMilliseconds()-n.getMilliseconds();return t<0?-1:t>0?1:t}function se(e){return n=>{let t=(e?Math[e]:Math.trunc)(n);return t===0?0:t}}function Un(e,n,t){let[r,o]=ie(t?.in,e,n),i=(+r-+o)/Ye;return se(t?.roundingMethod)(i)}function pn(e,n){return+d(e)-+d(n)}function Bn(e,n,t){let r=pn(e,n)/Ie;return se(t?.roundingMethod)(r)}function we(e,n){let t=d(e,n?.in),r=t.getMonth();return t.setFullYear(t.getFullYear(),r+1,0),t.setHours(23,59,59,999),t}function Fn(e,n,t){let r=pn(e,n)/1e3;return se(t?.roundingMethod)(r)}function Pn(e,n,t){let r=En(e,n,t)/7;return se(t?.roundingMethod)(r)}function Hn(e,n){let[t,r]=ie(e,n.start,n.end);return{start:t,end:r}}function $n(e,n){let{start:t,end:r}=Hn(n?.in,e),o=+t>+r,i=o?+t:+r,a=o?r:t;a.setHours(0,0,0,0);let l=n?.step??1;if(!l)return[];l<0&&(l=-l,o=!o);let s=[];for(;+a<=i;)s.push(O(t,a)),a.setDate(a.getDate()+l),a.setHours(0,0,0,0);return o?s.reverse():s}function je(e,n){let t=d(e,n?.in);return t.setDate(1),t.setHours(0,0,0,0),t}function wn(e,n){let t=d(e,n?.in),r=t.getFullYear();return t.setFullYear(r+1,0,0),t.setHours(23,59,59,999),t}function jn(e,n){let t=d(e,n?.in);return t.setFullYear(t.getFullYear(),0,1),t.setHours(0,0,0,0),t}function qn(e,n){var t,r,o,i;let a=d(e,n?.in),l=a.getFullYear(),s=ae(),u=n?.firstWeekContainsDate??((r=(t=n?.locale)==null?void 0:t.options)==null?void 0:r.firstWeekContainsDate)??s.firstWeekContainsDate??((i=(o=s.locale)==null?void 0:o.options)==null?void 0:i.firstWeekContainsDate)??1,c=O(n?.in||e,0);c.setFullYear(l+1,0,u),c.setHours(0,0,0,0);let v=G(c,n),E=O(n?.in||e,0);E.setFullYear(l,0,u),E.setHours(0,0,0,0);let M=G(E,n);return+a>=+v?l+1:+a>=+M?l:l-1}function Wn(e,n){var t,r,o,i;let a=ae(),l=n?.firstWeekContainsDate??((r=(t=n?.locale)==null?void 0:t.options)==null?void 0:r.firstWeekContainsDate)??a.firstWeekContainsDate??((i=(o=a.locale)==null?void 0:o.options)==null?void 0:i.firstWeekContainsDate)??1,s=qn(e,n),u=O(n?.in||e,0);return u.setFullYear(s,0,l),u.setHours(0,0,0,0),G(u,n)}function Jn(e,n){let t=d(e,n?.in),r=+G(t,n)-+Wn(t,n);return Math.round(r/Ln)+1}function q(e,n){return d(e,n?.in).getDay()}function yn(e,n){let t=d(e,n?.in),r=t.getFullYear(),o=t.getMonth(),i=O(t,0);return i.setFullYear(r,o+1,0),i.setHours(0,0,0,0),i.getDate()}function Gn(e,n){return d(e,n?.in).getHours()}function Zn(e,n){return d(e,n?.in).getMinutes()}function Tn(e,n){return d(e,n?.in).getMonth()}function xn(e){return d(e).getSeconds()}function Xn(e,n){return d(e,n?.in).getFullYear()}function Qn(e,n){return+d(e)==+d(n)}function et(e,n,t){let r=d(e,t?.in),o=Jn(r,t)-n;return r.setDate(r.getDate()-o*7),d(r,t?.in)}function Z(e,n,t){var r,o,i,a;let l=ae(),s=t?.weekStartsOn??((o=(r=t?.locale)==null?void 0:r.options)==null?void 0:o.weekStartsOn)??l.weekStartsOn??((a=(i=l.locale)==null?void 0:i.options)==null?void 0:a.weekStartsOn)??0,u=d(e,t?.in),c=u.getDay(),v=(n%7+7)%7,E=7-s,M=n<0||n>6?n-(c+E)%7:(v+E)%7-(c+E)%7;return oe(u,M,t)}function fn(e,n,t){let r=+d(e,t?.in),[o,i]=[+d(n.start,t?.in),+d(n.end,t?.in)].sort((a,l)=>a-l);return r>=o&&r<=i}function nt(e){let n=e/Ye;return Math.trunc(n)}function tt(e){let n=e/Ie;return Math.trunc(n)}function rt(e,n,t){let r=d(e,t?.in),o=r.getFullYear(),i=r.getDate(),a=O(t?.in||e,0);a.setFullYear(o,n,15),a.setHours(0,0,0,0);let l=yn(a);return r.setMonth(n,Math.min(i,l)),r}function ot(e,n,t){let r=d(e,t?.in);return r.setDate(n),r}function at(e,n,t){let r=d(e,t?.in);return r.setMonth(0),r.setDate(n),r}function it(e,n,t){let r=d(e,t?.in);return r.setHours(n),r}function lt(e,n,t){let r=d(e,t?.in);return r.setMinutes(n),r}function st(e,n,t){let r=d(e,t?.in);return r.setSeconds(n),r}function ut(e,n,t){return $(e,-n,t)}function dt(e,n,t){return le(e,-n,t)}var to=(e,n)=>{let t=Math.abs(Pn(n,e)),r=Math.abs(En(n,e)),o=r-t*7,i=Math.abs(Un(n,e)),a=i-r*24,l=Math.abs(Bn(n,e)),s=l-i*60,u=Math.abs(Fn(n,e))-l*60;return{before:e>n,weeks:t,days:o,hours:a,minutes:s,seconds:u}},ct=(e,n)=>{let t=n.before?-1:1,r=(n.seconds||0)*t,o=(n.minutes||0)*t,i=(n.hours||0)*t,a=(n.days||0)*t,l=(n.weeks||0)*t;return le(oe(cn(ze(vn(e,r),o),i),a),l)},ro=e=>e.end?e.end.date:ct(e.start.date,e.duration),oo=[\"PUBLISH\"],ao=[\"2.0\"],vt=[an,ln],io=[\"FREE\",\"BUSY\",\"BUSY-UNAVAILABLE\",\"BUSY-TENTATIVE\"],lo=[\"BASE64\"],so=[\"BINARY\"],uo=[\"NEEDS-ACTION\",\"ACCEPTED\",\"DECLINED\",\"TENTATIVE\",\"DELEGATED\"],co=[\"DATE\",\"DATE-TIME\"],mt=[\"SECONDLY\",\"MINUTELY\",\"HOURLY\",\"DAILY\",\"WEEKLY\",\"MONTHLY\",\"YEARLY\"],vo=[\"TENTATIVE\",\"CONFIRMED\",\"CANCELLED\"],mo=[\"NEEDS-ACTION\",\"COMPLETED\",\"IN-PROGRESS\",\"CANCELLED\"],Eo=[\"DRAFT\",\"FINAL\",\"CANCELLED\"],po=[\"START\",\"END\"],Sn=[\"SU\",\"MO\",\"TU\",\"WE\",\"TH\",\"FR\",\"SA\"],yo=[\"PRIVATE\",\"PUBLIC\",\"CONFIDENTIAL\"],To=[\"TRANSPARENT\",\"OPAQUE\"],b=(e,n)=>n===void 0?!1:e>=n,Et=(e,{start:n,end:t},r)=>{if(b(r.length,e.count))return;let o=e.frequency,i=e.interval||1;if(!o)return;let a=n;if(o===\"SECONDLY\"){for(;a{let o=t.map(({day:i,occurrence:a})=>({occurrence:a,day:Sn.indexOf(i)}));return e.frequency===\"YEARLY\"?e.byYearday||e.byMonthday?n.map(i=>i.filter(a=>o.find(({day:l})=>l===q(a)))):e.byWeekNo?n.map(i=>i.flatMap(a=>o.map(({day:l})=>Z(a,l,{weekStartsOn:r})))):e.byMonth?n.map(i=>i.flatMap(a=>o.flatMap(({day:l,occurrence:s})=>me(N(je(a)),N(we(a)),l,r,s)))):n.map(i=>i.flatMap(a=>o.flatMap(({day:l,occurrence:s})=>me(N(jn(a)),N(wn(a)),l,r,s)))):e.frequency===\"MONTHLY\"?e.byMonthday?n.map(i=>i.filter(a=>o.find(({day:l})=>l===q(a)))):n.map(i=>i.flatMap(a=>o.flatMap(({day:l,occurrence:s})=>me(N(je(a)),N(we(a)),l,r,s)))):e.frequency===\"WEEKLY\"?n.map(i=>i.flatMap(a=>o.map(({day:l})=>Z(a,l,{weekStartsOn:r})))):n.map(i=>i.filter(a=>o.find(({day:l})=>l===q(a))))},me=(e,n,t,r,o)=>{if(o!==void 0){if(!(o<0)){let l=Z(e,t,{weekStartsOn:r}),s=e>l;return le(l,(o||1)-1+(s?1:0))}let i=Z(n,t,{weekStartsOn:r}),a=nN(i)).filter(i=>fn(i,{start:e,end:n})).filter(i=>t===q(i))},N=e=>ze(e,-e.getTimezoneOffset()),yt=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"?n.map(r=>r.flatMap(o=>t.map(i=>it(o,i)))):n.map(r=>r.filter(o=>t.includes(Gn(o)))),Tt=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"||e.frequency===\"HOURLY\"?n.map(r=>r.flatMap(o=>t.map(i=>lt(o,i)))):n.map(r=>r.filter(o=>t.includes(Zn(o)))),ft=(e,n,t)=>e.frequency===\"YEARLY\"?n.map(r=>r.flatMap(o=>t.map(i=>rt(o,i)))):n.map(r=>r.filter(o=>t.includes(Tn(o)))),St=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"?n.map(r=>r.flatMap(o=>{let i=yn(o);return t.map(a=>a>i?void 0:ot(o,a)).filter(a=>!!a)})):e.frequency===\"WEEKLY\"?n:n.map(r=>r.filter(o=>t.includes(Tn(o)))),At=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"||e.frequency===\"HOURLY\"||e.frequency===\"MINUTELY\"?n.map(r=>r.flatMap(o=>t.map(i=>st(o,i)))):n.map(r=>r.filter(o=>t.includes(xn(o)))),Dt=(e,n,t)=>!e.byYearday&&!e.byWeekNo&&!e.byMonthday&&!e.byMonth&&!e.byDay&&!e.byHour&&!e.byMinute&&!e.bySecond?n:n.map(r=>r.sort(Ce).filter((o,i)=>t.some(a=>a>0?i===0?!1:i%a===0:i===0?r.length-1+a===0:i%(r.length-1+a)===0))),Ot=(e,n,t,r)=>e.frequency===\"YEARLY\"?n.map(o=>o.flatMap(i=>t.map(a=>et(i,a,{weekStartsOn:r})))):n,Rt=(e,n,t)=>e.frequency===\"YEARLY\"?n.map(r=>r.flatMap(o=>t.map(i=>at(o,i)))):e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"?n:n.map(r=>r.filter(o=>t.includes(Xn(o)))),gt=(e,n,t)=>{let r=t;return e.byMonth&&(r=ft(e,r,e.byMonth)),e.byWeekNo&&(r=Ot(e,r,e.byWeekNo,n.weekStartsOn)),e.byYearday&&(r=Rt(e,r,e.byYearday)),e.byMonthday&&(r=St(e,r,e.byMonthday)),e.byDay&&(r=pt(e,r,e.byDay,n.weekStartsOn)),e.byHour&&(r=yt(e,r,e.byHour)),e.byMinute&&(r=Tt(e,r,e.byMinute)),e.bySecond&&(r=At(e,r,e.bySecond)),e.bySetPos&&(r=Dt(e,r,e.bySetPos)),r.map(o=>o.sort(Ce).filter(i=>!(n.exceptions.length>0&&n.exceptions.some(a=>Qn(a,i))||!fn(i,{start:n.start,end:n.end}))))},Mt=2,Nt=(e,n)=>{var t;let r=n.start,o=((t=e.until)==null?void 0:t.date)||n?.end||mn(r,Mt),i=n.exceptions||[],a=(e.workweekStart?Sn.indexOf(e.workweekStart):1)%7,l=[[r]];Et(e,{start:r,end:o},l);let s=gt(e,{start:r,end:o,exceptions:i,weekStartsOn:a},l);return e.count?s.flat().splice(0,e.count):s.flat()},It=(e,n)=>n.flatMap(t=>!t.recurrenceRule||t.recurrenceRule.until&&t.recurrenceRule.until.date({...t,start:r}))),x=e=>{let n=e[0]===\"+\"?1:-1,t=Number(e.slice(1,3)),r=e.length>3?Number(e.slice(3,5)):0,o=e.length>5?Number(e.slice(5,7)):0;return((t*60+r)*60+o)*1e3*n},Yt=(e,n)=>{let t=\"en-US\",r=new Date(n.toLocaleString(t,{timeZone:\"UTC\"}));try{return new Date(n.toLocaleString(t,{timeZone:e})).getTime()-r.getTime()}catch{return n.getTime()-r.getTime()}},An=(e,n,t)=>{let r=t?.find(i=>i.id===n);if(r){let i=It(e,r.props).sort((s,u)=>Ce(s.start,u.start));for(let s=0;s5?u.substring(0,5):u;return{offset:c,milliseconds:x(c)}}let a=i[i.length-1].offsetTo,l=a.length>5?a.substring(0,5):a;return{offset:l,milliseconds:x(l)}}let o=Yt(n,e);if(!Number.isNaN(o)){let i=o<0,a=Math.abs(nt(o)),l=Math.abs(tt(o))-a*60,s=a.toString().length===1?`0${a}`:a.toString(),u=l.toString().length===1?`0${l}`:l.toString();return{offset:`${i?\"-\":\"+\"}${s}${u}`,milliseconds:o}}},Dn=e=>{if(!Le(e))throw Error(`Incorrect date object: ${e}`);let n=e.toISOString(),t=n.slice(0,4),r=n.slice(5,7),o=n.slice(8,10);return`${t}${r}${o}`},h=e=>{if(!Le(e))throw Error(`Incorrect date object: ${e}`);return he(e)},zt=(e,n,t)=>{let r=n.date;if(!Le(r))throw Error(`Incorrect date object: ${r}`);return An(r,n.timezone,t)?he(r,!0):h(e)},he=(e,n)=>{let t=e.toISOString(),r=t.slice(0,4),o=t.slice(5,7),i=t.slice(8,10),a=t.slice(11,13),l=t.slice(14,16),s=t.slice(17,19);return`${r}${o}${i}T${a}${l}${s}${n?\"\":\"Z\"}`},Ct=(e,n)=>{let t=x(n),r=$(e,t);return he(r,!0)},Lt=e=>{var n,t;let r=R([((n=e.options)==null?void 0:n.related)&&{key:\"RELATED\",value:e.options.related}].filter(o=>!!o));if(e.type===\"absolute\")return y(\"TRIGGER\",h((t=e.value)==null?void 0:t.date));if(e.type===\"relative\")return y(\"TRIGGER\",H(e.value),r)},Ee=e=>Object.keys(e),ht=(e,n)=>{if(!e)return\"\";let t=\"\";return Object.entries(e).forEach(([r,o])=>{let i=n?.[r];if(!i){t+=y(bt(r),o?.toString());return}let a=i.generate(o);a&&(t+=y(i.name,a.value,a.options?R(Object.entries(a.options).map(([l,s])=>({key:l,value:s}))):void 0))}),t},bt=e=>{let n=\"X-\";for(let t of e)t===t.toUpperCase()&&(n+=\"-\"),n+=t.toUpperCase();return n},Kt=e=>{let n=(e.match(/\\n/g)||[]).length;return e.length+n},kt=e=>{let n=e.split(gn),t=[];return n.forEach(r=>{if(Kt(r)<75){t.push(r);return}Vt(r,75).forEach(o=>{t.push(o)})}),t.join(sn)},Vt=(e,n)=>{let t=[],r=\"\",o=0;for(let i=0;in?(t.push(t.length===0?r:` ${r}`),r=a,o=l):(r+=a,o+=l)}return r&&t.push(t.length===0?r:` ${r}`),t},I=(e,n)=>{let t=Ee(e),r=n.childComponents,o=r?Ee(r):[],i=n.generateArrayValues,a=i?Ee(i):[],l=\"\";return l+=In(n.icsComponent),t.forEach(s=>{if(o.includes(s)||a.includes(s)||s===\"nonStandard\")return;let u=n.icsKeyMap[s];if(!u)return;let c=e[s];if(c==null)return;let v=n.generateValues[s];if(v){l+=v({icsKey:u,value:c,key:s});return}l+=y(u,String(c))}),r&&o&&o.length>0&&o.forEach(s=>{let u=e[s];!u||!Array.isArray(u)||u.length===0||u.forEach(c=>{let v=r[s];v&&(l+=v(c))})}),i&&a&&a.length>0&&a.forEach(s=>{let u=i[s];if(!u)return;let c=n.icsKeyMap[s];if(!c)return;let v=e[s];!v||!Array.isArray(v)||v.length===0||v.forEach(E=>{l+=u({icsKey:c,value:E})})}),e.nonStandard&&(l+=ht(e.nonStandard,n?.nonStandard)),l+=Yn(n.icsComponent),n!=null&&n.skipFormatLines?l:kt(l)},U=(e,n)=>y(e,Math.trunc(n).toString()),_t=(e,n)=>I(e,{icsComponent:ee,icsKeyMap:fe,generateValues:{trigger:({value:t})=>Lt(t),duration:({icsKey:t,value:r})=>y(t,H(r)),repeat:({icsKey:t,value:r})=>U(t,r)},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),attachments:({value:t})=>zn(t)},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines}),T=(e,n,t=[],r)=>{let o=R([n.type&&{key:\"VALUE\",value:n.type},n.local&&!(r!=null&&r.forceUtc)&&{key:\"TZID\",value:n.local.timezone},...t].filter(a=>!!a)),i=n.type===\"DATE\"?Dn(n.date):n.local&&!(r!=null&&r.forceUtc)?zt(n.date,n.local,r?.timezones):h(n.date);return y(e,i,o)},be=(e,n,t)=>T(n,e,void 0,t),ue=e=>{let n=R([e.dir&&{key:\"DIR\",value:`\"${e.dir}\"`},e.name&&{key:\"CN\",value:e.name},e.sentBy&&{key:\"SENT-BY\",value:K(e.sentBy)}].filter(t=>!!t));return y(\"ORGANIZER\",K(e.email),n)},Ut=e=>e.occurrence?`${e.occurrence}${e.day}`:e.day,de=e=>{var n;let t=\"\",r=R([e.byDay&&{key:\"BYDAY\",value:e.byDay.map(o=>Ut(o)).join(\",\")},e.byHour&&{key:\"BYHOUR\",value:e.byHour.join(\",\")},e.byMinute&&{key:\"BYMINUTE\",value:e.byMinute.join(\",\")},e.byMonth&&{key:\"BYMONTH\",value:e.byMonth.map(o=>o+1).join(\",\")},e.byMonthday&&{key:\"BYMONTHDAY\",value:e.byMonthday.join(\",\")},e.bySecond&&{key:\"BYSECOND\",value:e.bySecond.join(\",\")},e.bySetPos&&{key:\"BYSETPOS\",value:e.bySetPos.join(\",\")},e.byWeekNo&&{key:\"BYWEEKNO\",value:e.byWeekNo.join(\",\")},e.byYearday&&{key:\"BYYEARDAY\",value:e.byYearday.join(\",\")},e.count&&{key:\"COUNT\",value:e.count.toString()},e.frequency&&{key:\"FREQ\",value:e.frequency},e.interval&&{key:\"INTERVAL\",value:e.interval.toString()},e.until&&{key:\"UNTIL\",value:e.until.type===\"DATE\"?Dn(e.until.date):h(((n=e.until.local)==null?void 0:n.date)||e.until.date)},e.workweekStart&&{key:\"WKST\",value:e.workweekStart}].filter(o=>!!o));return t+=y(\"RRULE\",r),t},Ke=(e,n)=>{let t=\"\";return t+=T(\"RECURRENCE-ID\",e.value,e.range?[{key:\"RANGE\",value:e.range}]:void 0,n),t},Bt=e=>e.replace(/([\\\\;,])|(\\n)/g,(n,t)=>t?`\\\\${t}`:\"\\\\n\"),A=(e,n,t)=>y(e,Bt(n),t?R(t):void 0),Ft=(e,n)=>I(e,{icsComponent:Q,icsKeyMap:Ae,omitGenerateKeys:[\"descriptionAltRep\"],generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),end:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),created:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),lastModified:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),categories:({icsKey:t,value:r})=>y(t,r.join(\",\")),description:({icsKey:t,value:r})=>A(t,r,e.descriptionAltRep?[{key:\"ALTREP\",value:`\"${e.descriptionAltRep}\"`}]:void 0),location:({icsKey:t,value:r})=>A(t,r),comment:({icsKey:t,value:r})=>A(t,r),summary:({icsKey:t,value:r})=>A(t,r),recurrenceRule:({value:t})=>de(t),duration:({icsKey:t,value:r})=>y(t,H(r)),organizer:({value:t})=>ue(t),sequence:({icsKey:t,value:r})=>U(t,r),recurrenceId:({value:t})=>Ke(t,{timezones:n?.timezones})},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),exceptionDates:({value:t})=>be(t,\"EXDATE\",{timezones:n?.timezones})},childComponents:{alarms:t=>_t(t,{nonStandard:n?.nonStandard,skipFormatLines:!0})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),Pt=(e,n)=>I(e,{icsComponent:e.type,icsKeyMap:Oe,generateValues:{start:({icsKey:t,value:r})=>y(t,Ct(r,e.offsetTo)),recurrenceRule:({value:t})=>de(t),recurrenceDate:({icsKey:t,value:r})=>T(t,r)},omitGenerateKeys:[\"type\"],nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines}),Ht=(e,n)=>I(e,{icsComponent:X,icsKeyMap:De,generateValues:{lastModified:({icsKey:t,value:r})=>y(t,h(r))},childComponents:{props:t=>Pt(t,{nonStandard:n?.nonStandard,skipFormatLines:!0})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines}),$t=(e,n)=>I(e,{icsComponent:ne,icsKeyMap:Re,generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),due:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),created:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),lastModified:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),completed:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),categories:({icsKey:t,value:r})=>y(t,r.join(\",\")),description:({icsKey:t,value:r})=>A(t,r),location:({icsKey:t,value:r})=>A(t,r),comment:({icsKey:t,value:r})=>A(t,r),summary:({icsKey:t,value:r})=>A(t,r),recurrenceRule:({value:t})=>de(t),duration:({icsKey:t,value:r})=>y(t,H(r)),organizer:({value:t})=>ue(t),sequence:({icsKey:t,value:r})=>U(t,r),percentComplete:({icsKey:t,value:r})=>U(t,r),recurrenceId:({value:t})=>Ke(t,{timezones:n?.timezones})},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),exceptionDates:({value:t})=>be(t,\"EXDATE\",{timezones:n?.timezones})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),wt=(e,n)=>I(e,{icsComponent:te,icsKeyMap:ge,generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),created:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),lastModified:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),categories:({icsKey:t,value:r})=>y(t,r.join(\",\")),description:({icsKey:t,value:r})=>A(t,r),comment:({icsKey:t,value:r})=>A(t,r),summary:({icsKey:t,value:r})=>A(t,r),recurrenceRule:({value:t})=>de(t),organizer:({value:t})=>ue(t),sequence:({icsKey:t,value:r})=>U(t,r),recurrenceId:({value:t})=>Ke(t,{timezones:n?.timezones})},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),exceptionDates:({value:t})=>be(t,\"EXDATE\",{timezones:n?.timezones})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),jt=(e,n)=>{let t=e.values.map(o=>`${h(o.start)}/${o.end?h(o.end):H(o.duration)}`).join(\",\"),r=R([e.type&&{key:\"FBTYPE\",value:e.type}].filter(o=>!!o));return y(n,t,r)},qt=(e,n)=>I(e,{icsComponent:re,icsKeyMap:Me,generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),end:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),comment:({icsKey:t,value:r})=>A(t,r),organizer:({value:t})=>ue(t)},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),freeBusy:({value:t})=>jt(t,\"FREEBUSY\")},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),fo=(e,n)=>I(e,{icsComponent:Ne,icsKeyMap:Se,generateValues:{},childComponents:{timezones:t=>Ht(t,{nonStandard:n?.nonStandard,skipFormatLines:!0}),events:t=>Ft(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard}),todos:t=>$t(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard}),journals:t=>wt(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard}),freeBusy:t=>qt(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard})},nonStandard:n?.nonStandard}),m=(e,n)=>{if(e===void 0)return n;let t=e[\"~standard\"].validate(n);if(t instanceof Promise)throw new TypeError(\"Schema validation must be synchronous\");if(t.issues)throw new Error(JSON.stringify(t.issues,null,2));return t.value},Wt=(e,n)=>{var t,r,o,i;let a=((t=n.options)==null?void 0:t.VALUE)===\"BINARY\"?{type:\"binary\",encoding:((r=n.options)==null?void 0:r.ENCODING)||\"BASE64\",binary:n.value,value:(o=n.options)==null?void 0:o.VALUE}:{type:\"uri\",url:n.value,formatType:(i=n.options)==null?void 0:i.FMTTYPE};return m(e,a)},k=e=>e.replace(/mailto:/gi,\"\"),w=(e,n)=>{var t,r,o,i,a,l,s,u,c,v,E;return m(e,{email:k(n.value),delegatedFrom:(t=n.options)!=null&&t[\"DELEGATED-FROM\"]?k((r=n.options)==null?void 0:r[\"DELEGATED-FROM\"]):void 0,dir:(o=n.options)==null?void 0:o.DIR,member:(i=n.options)!=null&&i.MEMBER?k(n.options.MEMBER):void 0,name:(a=n.options)==null?void 0:a.CN,partstat:(l=n.options)==null?void 0:l.PARTSTAT,role:(s=n.options)==null?void 0:s.ROLE,sentBy:(u=n.options)!=null&&u[\"SENT-BY\"]?k(n.options[\"SENT-BY\"]):void 0,rsvp:(c=n.options)!=null&&c.RSVP?((v=n.options)==null?void 0:v.RSVP)===\"TRUE\"?!0:((E=n.options)==null?void 0:E.RSVP)===\"FALSE\"?!1:void 0:void 0})},j=(e,n)=>{let t=n.value,r={};t[0]===\"-\"&&(r.before=!0,t=t.slice(1)),t=t.slice(1);let o=t.split(\"T\"),i=o[0];if(i.includes(\"D\")){let[l,s]=i.split(\"D\");r.days=Number(l),i=s}if(i.includes(\"W\")){let[l,s]=i.split(\"W\");r.weeks=Number(l),i=s}let a=o[1];if(a){if(a.includes(\"H\")){let[l,s]=a.split(\"H\");r.hours=Number(l),a=s}if(a.includes(\"M\")){let[l,s]=a.split(\"M\");r.minutes=Number(l),a=s}if(a.includes(\"S\")){let[l,s]=a.split(\"S\");r.seconds=Number(l),a=s}}return m(e,r)},Jt=(e,n)=>{let t=Number.parseInt(n.value.slice(0,4),10),r=Number.parseInt(n.value.slice(4,6),10)-1,o=Number.parseInt(n.value.slice(6,8),10),i=new Date(Date.UTC(t,r,o));return m(e,i)},B=(e,n)=>{let t=Number.parseInt(n.value.slice(0,4),10),r=Number.parseInt(n.value.slice(4,6),10)-1,o=Number.parseInt(n.value.slice(6,8),10),i=Number.parseInt(n.value.slice(9,11),10),a=Number.parseInt(n.value.slice(11,13),10),l=Number.parseInt(n.value.slice(13,15),10),s=new Date(Date.UTC(t,r,o,i,a,l));return m(e,s)},Gt=(e,n,t)=>{let r=x(t),o=B(void 0,n),i=ut(o,r);return m(e,i)},Zt=(e,n)=>{var t,r,o,i,a,l;if(((t=e.options)==null?void 0:t.VALUE)===\"DATE\")return{date:Jt(void 0,e),type:(r=e.options)==null?void 0:r.VALUE};let s=((o=e.options)==null?void 0:o.VALUE)||\"DATE-TIME\",u=B(void 0,e);if(!((i=e.options)!=null&&i.TZID))return{date:u,type:s};let c=An(u,e.options.TZID,n?.timezones);return c?{date:$(u,-c.milliseconds),type:s,local:(a=e.options)!=null&&a.TZID?{date:u,timezone:(l=e.options)==null?void 0:l.TZID,tzoffset:c.offset}:void 0}:{date:u,type:s}},p=(e,n,t)=>m(e,Zt(n,t)),xt=(e,n,t)=>{var r,o,i,a;let l=((r=n.options)==null?void 0:r.VALUE)===\"DATE-TIME\"||((o=n.options)==null?void 0:o.VALUE)===\"DATE\"?{type:\"absolute\",value:p(void 0,n,t),options:{related:(i=n.options)==null?void 0:i.RELATED}}:{type:\"relative\",value:j(void 0,n),options:{related:(a=n.options)==null?void 0:a.RELATED}};return m(e,l)},Xt=e=>e.startsWith('\"')&&e.endsWith('\"')?e.slice(1,-1):e,On=e=>e.map(n=>{let[t,...r]=n.split(ye),o=r.join(ye);return{property:t,value:Xt(o)}},{}),Qt=e=>e.reduce((n,t)=>(n[t.property]=t.value,n),{}),er=e=>Qt(On(e)),nr=e=>{let n=!1,t;for(let i=0;i{let{property:n,value:t}=nr(e);if(n.includes(W)){let[r,...o]=n.split(W),i=er(o);return{property:r,line:{options:i,value:t}}}return{property:n,line:{value:t}}},qe=e=>/^[ \\t]/.test(e),rr=e=>/^[A-Z]+(?:-[A-Z]+)*[:;]/.test(e),or=e=>{let n=[],t=e.split(pe);for(;t[0]===\"\";)t.shift();let r=t.length;for(;r>0&&t[r-1]===\"\";)r-=1,t.pop();for(let o=0;oo!==\"\")},ar=(e,n,t)=>{if(!n)return e;let r={};return Object.entries(n).forEach(([o,i])=>{let a=Object.entries(t||{}).find(([u,c])=>c.name===o);if(!a){r[ir(o)]=i.value;return}let l=a[1].convert(i),s=a[1].schema;if(!s){r[a[0]]=l;return}r[a[0]]=m(s,l)}),e.nonStandard=r,e},ir=e=>{let n=e.startsWith(\"X-\")?e.slice(2):e,t=\"\",r=!1;for(let o of n)o===\"-\"?r=!0:(t+=r?o.toUpperCase():o.toLowerCase(),r=!1);return t},lr=e=>e.startsWith(\"X-\"),Y=(e,n,t)=>{let r=n.replace(Rn(t?.icsComponent),\"\"),o=[...new Set(Object.values(t.childComponents||{}).flatMap(({icsComponent:v})=>v))],i=or(o.reduce((v,E)=>v.replace(Be(E),\"\"),r)),a=t.defaultValues||{},l={};i.forEach(v=>{var E,M;let{property:z,line:C}=tr(v);lr(z)&&(l[z]=C);let S=t.objectKeyMap[z];if(!S)return;let _=(E=t.convertArrayValues)==null?void 0:E[S];if(_){let L=_({line:C});if(!L)return;(a[S]===void 0||a[S]===null||!Array.isArray(a[S]))&&(a[S]=[]),Array.isArray(L)?a[S].push(...L):a[S].push(L);return}let Ue=(M=t.convertValues)==null?void 0:M[S];if(Ue){let L=Ue({line:C});if(!L)return;a[S]=L;return}a[S]=C.value});let s=t.childComponents,u=s?Object.keys(s||{}):[];s&&u.length>0&&u.forEach(v=>{let E=s?.[v];if(!E)return;let M=Array.isArray(E.icsComponent)?E.icsComponent:[E.icsComponent],z=[],C=[];M.forEach(S=>{C.push(...r.matchAll(Be(S)))}),C.map(S=>S[0]).forEach(S=>{let _=E.convert(S,{data:a});_&&z.push(_)}),z.length!==0&&(a[v]=z)});let c=m(e,a);return t!=null&&t.nonStandard?ar(c,l,t?.nonStandard):c},ce=(e,n)=>{var t,r,o;return m(e,{name:(t=n.options)==null?void 0:t.CN,dir:(r=n.options)==null?void 0:r.DIR,sentBy:(o=n.options)!=null&&o[\"SENT-BY\"]?k(n.options[\"SENT-BY\"]):void 0,email:k(n.value)})},ke=(e,n,t)=>{var r;return m(e,{value:p(void 0,n,t),range:(r=n.options)==null?void 0:r.RANGE})},sr=e=>{if(e.length===2)return{day:e};let n=e.slice(0,-2);return{day:e.replace(n,\"\"),occurrence:Number(n)}},ur=(e,n)=>m(e,sr(n.value)),dr=(e,n)=>m(e,n.value),cr=[\"until\"],vr=e=>cr.includes(e),mr=[\"bySecond\",\"byMinute\",\"byHour\",\"byMonthday\",\"byYearday\",\"byWeekNo\",\"bySetPos\"],Er=e=>mr.includes(e),pr=[\"byDay\"],yr=e=>pr.includes(e),Tr=[\"count\",\"interval\"],fr=e=>Tr.includes(e),ve=(e,n,t)=>{let r={};return On(n.value.split(W)).forEach(o=>{let{property:i,value:a}=o,l=Qe[i];if(l){if(vr(l)){r[l]=p(void 0,{value:a,options:{VALUE:a.includes(\"T\")?\"DATE-TIME\":\"DATE\"}},{timezones:t?.timezones});return}if(Er(l)){r[l]=a.split(V).map(s=>Number(s));return}if(l===\"byMonth\"){r[l]=a.split(V).map(s=>Number(s)-1);return}if(yr(l)){r[l]=a.split(V).map(s=>ur(void 0,{value:s}));return}if(fr(l)){r[l]=Number(a);return}if(l===\"frequency\"){if(!a||!mt.includes(a))return;r[l]=a;return}if(l===\"workweekStart\"){r[l]=dr(void 0,{value:a});return}}}),m(e,r)},Ve=(e,n)=>m(e,n.value),Sr=(e,n)=>m(e,n.value),_e=(e,n,t)=>m(e,n.value.split(\",\").map(r=>p(void 0,{value:r,options:n.options},t))),Ar=(e,n)=>m(e,n.value),Dr=(e,n)=>m(e,n.value),Or=(e,n)=>m(e,n.value),F=(e,n)=>m(e,Number.parseInt(n.value,10)),Rr=e=>e.replace(/\\\\(([,;\\\\])|([nN]))/g,(n,t,r)=>r||`\n`),D=(e,n)=>m(e,Rr(n.value)),gr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:ee,objectKeyMap:We,convertValues:{trigger:({line:o})=>xt(void 0,o,{timezones:r?.timezones}),duration:({line:o})=>j(void 0,o),repeat:({line:o})=>F(void 0,o)},convertArrayValues:{attachments:({line:o})=>Wt(void 0,o),attendees:({line:o})=>w(void 0,o)},nonStandard:r?.nonStandard,timezones:r?.timezones})},Mr=(...e)=>{let[n,t,r]=e,o,i=Y(n,t,{icsComponent:Q,objectKeyMap:Ge,convertValues:{stamp:({line:a})=>p(void 0,a,{timezones:r?.timezones}),start:({line:a})=>p(void 0,a,{timezones:r?.timezones}),end:({line:a})=>p(void 0,a,{timezones:r?.timezones}),created:({line:a})=>p(void 0,a,{timezones:r?.timezones}),lastModified:({line:a})=>p(void 0,a,{timezones:r?.timezones}),categories:({line:a})=>a.value.split(V),description:({line:a})=>{var l;return(l=a.options)!=null&&l.ALTREP&&(o=a.options.ALTREP),D(void 0,a)},location:({line:a})=>D(void 0,a),comment:({line:a})=>D(void 0,a),summary:({line:a})=>D(void 0,a),recurrenceRule:({line:a})=>ve(void 0,a,{timezones:r?.timezones}),duration:({line:a})=>j(void 0,a),organizer:({line:a})=>ce(void 0,a),sequence:({line:a})=>F(void 0,a),class:({line:a})=>Ve(void 0,a),recurrenceId:({line:a})=>ke(void 0,a,{timezones:r?.timezones}),status:({line:a})=>Ar(void 0,a),timeTransparent:({line:a})=>Sr(void 0,a)},convertArrayValues:{attendees:({line:a})=>w(void 0,a),exceptionDates:({line:a})=>_e(void 0,a,{timezones:r?.timezones})},childComponents:{alarms:{icsComponent:ee,convert:a=>gr(void 0,a,{nonStandard:r?.nonStandard,timezones:r?.timezones})}},timezones:r?.timezones,nonStandard:r?.nonStandard});return o&&(i.descriptionAltRep=o),i},Nr=(...e)=>{let[n,t,r]=e,o=t.split(\"BEGIN:\")[1].split(pe)[0],i=vt.includes(o)?o:\"STANDARD\",a=t.split(\"TZOFFSETTO:\")[1].split(pe)[0];return Y(n,t,{icsComponent:i,objectKeyMap:xe,defaultValues:{type:i},convertValues:{start:({line:l})=>Gt(void 0,l,a),recurrenceRule:({line:l})=>ve(void 0,l,{timezones:r?.timezones}),recurrenceDate:({line:l})=>p(void 0,l,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},Ir=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:X,objectKeyMap:Ze,convertValues:{lastModified:({line:o})=>B(void 0,o)},childComponents:{props:{icsComponent:[\"DAYLIGHT\",\"STANDARD\"],convert:o=>Nr(void 0,o,{nonStandard:r?.nonStandard,timezones:r?.timezones})}},nonStandard:r?.nonStandard,timezones:r?.timezones})},Yr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:ne,objectKeyMap:en,convertValues:{stamp:({line:o})=>p(void 0,o,{timezones:r?.timezones}),start:({line:o})=>p(void 0,o,{timezones:r?.timezones}),due:({line:o})=>p(void 0,o,{timezones:r?.timezones}),created:({line:o})=>p(void 0,o,{timezones:r?.timezones}),lastModified:({line:o})=>p(void 0,o,{timezones:r?.timezones}),completed:({line:o})=>p(void 0,o,{timezones:r?.timezones}),categories:({line:o})=>o.value.split(V),description:({line:o})=>D(void 0,o),location:({line:o})=>D(void 0,o),comment:({line:o})=>D(void 0,o),summary:({line:o})=>D(void 0,o),recurrenceRule:({line:o})=>ve(void 0,o,{timezones:r?.timezones}),duration:({line:o})=>j(void 0,o),organizer:({line:o})=>ce(void 0,o),sequence:({line:o})=>F(void 0,o),percentComplete:({line:o})=>F(void 0,o),class:({line:o})=>Ve(void 0,o),recurrenceId:({line:o})=>ke(void 0,o,{timezones:r?.timezones}),status:({line:o})=>Dr(void 0,o)},convertArrayValues:{attendees:({line:o})=>w(void 0,o),exceptionDates:({line:o})=>_e(void 0,o,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},zr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:te,objectKeyMap:nn,convertValues:{stamp:({line:o})=>p(void 0,o,{timezones:r?.timezones}),start:({line:o})=>p(void 0,o,{timezones:r?.timezones}),created:({line:o})=>p(void 0,o,{timezones:r?.timezones}),lastModified:({line:o})=>p(void 0,o,{timezones:r?.timezones}),categories:({line:o})=>o.value.split(V),description:({line:o})=>D(void 0,o),comment:({line:o})=>D(void 0,o),summary:({line:o})=>D(void 0,o),recurrenceRule:({line:o})=>ve(void 0,o,{timezones:r?.timezones}),organizer:({line:o})=>ce(void 0,o),sequence:({line:o})=>F(void 0,o),class:({line:o})=>Ve(void 0,o),recurrenceId:({line:o})=>ke(void 0,o,{timezones:r?.timezones}),status:({line:o})=>Or(void 0,o)},convertArrayValues:{attendees:({line:o})=>w(void 0,o),exceptionDates:({line:o})=>_e(void 0,o,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},Cr=(e,n)=>{var t;return m(e,{type:(t=n.options)==null?void 0:t.FBTYPE,values:n.value.split(\",\").map(r=>{let[o,i]=r.split(\"/\"),a=B(void 0,{value:o});if(i.startsWith(\"PT\")){let s=j(void 0,{value:i});return{start:a,duration:s}}let l=B(void 0,{value:i});return{start:a,end:l}})})},Lr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:re,objectKeyMap:tn,convertValues:{stamp:({line:o})=>p(void 0,o,{timezones:r?.timezones}),start:({line:o})=>p(void 0,o,{timezones:r?.timezones}),end:({line:o})=>p(void 0,o,{timezones:r?.timezones}),comment:({line:o})=>D(void 0,o),organizer:({line:o})=>ce(void 0,o)},convertArrayValues:{attendees:({line:o})=>w(void 0,o),freeBusy:({line:o})=>Cr(void 0,o)},nonStandard:r?.nonStandard,timezones:r?.timezones})},So=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:Ne,objectKeyMap:Je,convertValues:{version:({line:o})=>o.value},childComponents:{timezones:{icsComponent:X,convert:o=>Ir(void 0,o,{nonStandard:r?.nonStandard})},events:{icsComponent:Q,convert:(o,{data:i})=>Mr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})},todos:{icsComponent:ne,convert:(o,{data:i})=>Yr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})},journals:{icsComponent:te,convert:(o,{data:i})=>zr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})},freeBusy:{icsComponent:re,convert:(o,{data:i})=>Lr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})}},nonStandard:r?.nonStandard})};export{pe as BREAK_REGEX,V as COMMA,sn as CRLF_BREAK,gn as CRLF_BREAK_REGEX,Mt as DEFAULT_END_IN_YEARS,ye as EQUAL_SIGN,Zr as ICS_COMPONENTS,Fe as LF_BREAK,Xr as MAX_LINE_LENGTH,on as OBJECT_END,rn as OBJECT_START,Nn as QUOTE,Hr as RRULE_KEYS,$r as RRULE_OBJECT_KEYS,Xe as RRULE_TO_KEYS,Qe as RRULE_TO_OBJECT_KEYS,W as SEMICOLON,Mn as SEPARATOR,xr as SPACE,vt as TIMEZONE_PROP_COMPONENTS,hr as VALARM_KEYS,ee as VALARM_OBJECT_KEY,br as VALARM_OBJECT_KEYS,fe as VALARM_TO_KEYS,We as VALARM_TO_OBJECT_KEYS,Kr as VCALENDAR_KEYS,Ne as VCALENDAR_OBJECT_KEY,kr as VCALENDAR_OBJECT_KEYS,Se as VCALENDAR_TO_KEYS,Je as VCALENDAR_TO_OBJECT_KEYS,Vr as VEVENT_KEYS,Q as VEVENT_OBJECT_KEY,_r as VEVENT_OBJECT_KEYS,Ae as VEVENT_TO_KEYS,Ge as VEVENT_TO_OBJECT_KEYS,Jr as VFREEBUSY_KEYS,re as VFREEBUSY_OBJECT_KEY,Gr as VFREEBUSY_OBJECT_KEYS,Me as VFREEBUSY_TO_KEYS,tn as VFREEBUSY_TO_OBJECT_KEYS,qr as VJOURNAL_KEYS,te as VJOURNAL_OBJECT_KEY,Wr as VJOURNAL_OBJECT_KEYS,ge as VJOURNAL_TO_KEYS,nn as VJOURNAL_TO_OBJECT_KEYS,ln as VTIMEZONE_DAYLIGHT_OBJECT_KEY,Ur as VTIMEZONE_KEYS,X as VTIMEZONE_OBJECT_KEY,Br as VTIMEZONE_OBJECT_KEYS,Fr as VTIMEZONE_PROP_KEYS,Pr as VTIMEZONE_PROP_OBJECT_KEYS,Oe as VTIMEZONE_PROP_TO_KEYS,xe as VTIMEZONE_PROP_TO_OBJECT_KEYS,an as VTIMEZONE_STANDARD_OBJECT_KEY,De as VTIMEZONE_TO_KEYS,Ze as VTIMEZONE_TO_OBJECT_KEYS,wr as VTODO_KEYS,ne as VTODO_OBJECT_KEY,jr as VTODO_OBJECT_KEYS,Re as VTODO_TO_KEYS,en as VTODO_TO_OBJECT_KEYS,lo as attachmentEncodingTypes,so as attachmentValueTypes,uo as attendeePartStatusTypes,oo as calendarMethods,ao as calendarVersions,yo as classTypes,gr as convertIcsAlarm,Wt as convertIcsAttachment,w as convertIcsAttendee,So as convertIcsCalendar,Ve as convertIcsClass,Jt as convertIcsDate,B as convertIcsDateTime,j as convertIcsDuration,Mr as convertIcsEvent,Ar as convertIcsEventStatus,_e as convertIcsExceptionDates,Lr as convertIcsFreeBusy,F as convertIcsInteger,zr as convertIcsJournal,Or as convertIcsJournalStatus,Gt as convertIcsLocalOnlyDateTime,ce as convertIcsOrganizer,ke as convertIcsRecurrenceId,ve as convertIcsRecurrenceRule,D as convertIcsText,p as convertIcsTimeStamp,Sr as convertIcsTimeTransparent,Ir as convertIcsTimezone,Nr as convertIcsTimezoneProp,Yr as convertIcsTodo,Dr as convertIcsTodoStatus,xt as convertIcsTrigger,dr as convertIcsWeekDay,ur as convertIcsWeekDayNumber,ar as convertNonStandardValues,Be as createGetRegex,Rn as createReplaceRegex,co as dateObjectTypes,vo as eventStatusTypes,Nt as extendByRecurrenceRule,It as extendTimezoneProps,io as freeBusyTypes,_t as generateIcsAlarm,zn as generateIcsAttachment,P as generateIcsAttendee,fo as generateIcsCalendar,Dn as generateIcsDate,H as generateIcsDuration,Ft as generateIcsEvent,qt as generateIcsFreeBusy,U as generateIcsInteger,wt as generateIcsJournal,zt as generateIcsLocalDateTime,Ct as generateIcsLocalOnlyDateTime,K as generateIcsMail,ue as generateIcsOrganizer,de as generateIcsRecurrenceRule,A as generateIcsText,T as generateIcsTimeStamp,Ht as generateIcsTimezone,Pt as generateIcsTimezoneProp,$t as generateIcsTodo,Lt as generateIcsTrigger,h as generateIcsUtcDateTime,Ut as generateIcsWeekdayNumber,ht as generateNonStandardValues,to as getDurationFromInterval,ro as getEventEnd,ct as getEventEndFromDuration,An as getTimezoneObjectOffset,Eo as journalStatusTypes,fr as recurrenceObjectKeyIsNumber,Er as recurrenceObjectKeyIsNumberArray,vr as recurrenceObjectKeyIsTimeStamp,yr as recurrenceObjectKeyIsWeekdayNumberArray,mt as recurrenceRuleFrequencies,To as timeTransparentTypes,x as timeZoneOffsetToMilliseconds,mo as todoStatusTypes,po as triggerRelations,Sn as weekDays};\n//# sourceMappingURL=ts-ics.mjs.map", "/* esm.sh - tslib@2.8.1 */\nvar m=function(e,t){return m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[i]=n[i])},m(e,t)};function P(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");m(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var v=function(){return v=Object.assign||function(t){for(var r,n=1,i=arguments.length;n=0;f--)(a=e[f])&&(o=(i<3?a(o):i>3?a(t,r,o):a(t,r))||o);return i>3&&o&&Object.defineProperty(t,r,o),o}function T(e,t){return function(r,n){t(r,n,e)}}function D(e,t,r,n,i,o){function a(b){if(b!==void 0&&typeof b!=\"function\")throw new TypeError(\"Function expected\");return b}for(var f=n.kind,p=f===\"getter\"?\"get\":f===\"setter\"?\"set\":\"value\",c=!t&&e?n.static?e:e.prototype:null,s=t||(c?Object.getOwnPropertyDescriptor(c,n.name):{}),l,w=!1,u=r.length-1;u>=0;u--){var y={};for(var h in n)y[h]=h===\"access\"?{}:n[h];for(var h in n.access)y.access[h]=n.access[h];y.addInitializer=function(b){if(w)throw new TypeError(\"Cannot add initializers after decoration has completed\");o.push(a(b||null))};var d=(0,r[u])(f===\"accessor\"?{get:s.get,set:s.set}:s[p],y);if(f===\"accessor\"){if(d===void 0)continue;if(d===null||typeof d!=\"object\")throw new TypeError(\"Object expected\");(l=a(d.get))&&(s.get=l),(l=a(d.set))&&(s.set=l),(l=a(d.init))&&i.unshift(l)}else(l=a(d))&&(f===\"field\"?i.unshift(l):s[p]=l)}c&&Object.defineProperty(c,n.name,s),w=!0}function R(e,t,r){for(var n=arguments.length>2,i=0;i0&&o[o.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!o||c[1]>o[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function x(e,t){var r=typeof Symbol==\"function\"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),i,o=[],a;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)o.push(i.value)}catch(f){a={error:f}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(a)throw a.error}}return o}function K(){for(var e=[],t=0;t1||p(u,h)})},y&&(i[u]=y(i[u])))}function p(u,y){try{c(n[u](y))}catch(h){w(o[0][3],h)}}function c(u){u.value instanceof _?Promise.resolve(u.value.v).then(s,l):w(o[0][2],u)}function s(u){p(\"next\",u)}function l(u){p(\"throw\",u)}function w(u,y){u(y),o.shift(),o.length&&p(o[0][0],o[0][1])}}function q(e){var t,r;return t={},n(\"next\"),n(\"throw\",function(i){throw i}),n(\"return\"),t[Symbol.iterator]=function(){return this},t;function n(i,o){t[i]=e[i]?function(a){return(r=!r)?{value:_(e[i](a)),done:!1}:o?o(a):a}:o}}function B(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof g==\"function\"?g(e):e[Symbol.iterator](),r={},n(\"next\"),n(\"throw\"),n(\"return\"),r[Symbol.asyncIterator]=function(){return this},r);function n(o){r[o]=e[o]&&function(a){return new Promise(function(f,p){a=e[o](a),i(f,p,a.done,a.value)})}}function i(o,a,f,p){Promise.resolve(p).then(function(c){o({value:c,done:f})},a)}}function L(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e}var z=Object.create?(function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}):function(e,t){e.default=t},O=function(e){return O=Object.getOwnPropertyNames||function(t){var r=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[r.length]=n);return r},O(e)};function H(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r=O(e),n=0;n0?\"+\":\"\")+String(this.n)+t),t},e.prototype.getJsWeekday=function(){return this.weekday===6?0:this.weekday+1},e})();var x=function(e){return e!=null},U=function(e){return typeof e==\"number\"},bt=function(e){return typeof e==\"string\"&&tt.includes(e)},S=Array.isArray,L=function(e,t){t===void 0&&(t=e),arguments.length===1&&(t=e,e=0);for(var r=[],n=e;n>0,n.length>t?String(n):(t=t-n.length,t>r.length&&(r+=b(r,t/r.length)),r.slice(0,t)+String(n))}var Ot=function(e,t,r){var n=e.split(t);return r?n.slice(0,r).concat([n.slice(r).join(t)]):n},Y=function(e,t){var r=e%t;return r*t<0?r+t:r},ft=function(e,t){return{div:Math.floor(e/t),mod:Y(e,t)}},A=function(e){return!x(e)||e.length===0},T=function(e){return!A(e)},w=function(e,t){return T(e)&&e.indexOf(t)!==-1};var _=function(e,t,r,n,i,a){return n===void 0&&(n=0),i===void 0&&(i=0),a===void 0&&(a=0),new Date(Date.UTC(e,t-1,r,n,i,a))},pe=[31,28,31,30,31,30,31,31,30,31,30,31],At=1e3*60*60*24,ht=9999,Lt=_(1970,1,1),me=[6,0,1,2,3,4,5];var X=function(e){return e%4===0&&e%100!==0||e%400===0},wt=function(e){return e instanceof Date},F=function(e){return wt(e)&&!isNaN(e.getTime())};var ve=function(e,t){var r=e.getTime(),n=t.getTime(),i=r-n;return Math.round(i/At)},et=function(e){return ve(e,Lt)},lt=function(e){return new Date(Lt.getTime()+e*At)},be=function(e){var t=e.getUTCMonth();return t===1&&X(e.getUTCFullYear())?29:pe[t]},C=function(e){return me[e.getUTCDay()]},kt=function(e,t){var r=_(e,t+1,1);return[C(r),be(r)]},dt=function(e,t){return t=t||e,new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()))},ct=function(e){var t=new Date(e.getTime());return t},gt=function(e){for(var t=[],r=0;rthis.maxDate;if(this.method===\"between\"){if(r)return!0;if(n)return!1}else if(this.method===\"before\"){if(n)return!1}else if(this.method===\"after\")return r?!0:(this.add(t),!1);return this.add(t)},e.prototype.add=function(t){return this._result.push(t),!0},e.prototype.getValue=function(){var t=this._result;switch(this.method){case\"all\":case\"between\":return t;case\"before\":case\"after\":default:return t.length?t[t.length-1]:null}},e.prototype.clone=function(){return new e(this.method,this.args)},e})(),H=we;import{__extends as ke}from\"/tslib@^2.4.0?target=denonext\";var ge=(function(e){ke(t,e);function t(r,n,i){var a=e.call(this,r,n)||this;return a.iterator=i,a}return t.prototype.add=function(r){return this.iterator(r,this._result.length)?(this._result.push(r),!0):!1},t})(H),xt=ge;var xe={dayNames:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],monthNames:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],tokens:{SKIP:/^[ \\r\\n\\t]+|^\\.$/,number:/^[1-9][0-9]*/,numberAsText:/^(one|two|three)/i,every:/^every/i,\"day(s)\":/^days?/i,\"weekday(s)\":/^weekdays?/i,\"week(s)\":/^weeks?/i,\"hour(s)\":/^hours?/i,\"minute(s)\":/^minutes?/i,\"month(s)\":/^months?/i,\"year(s)\":/^years?/i,on:/^(on|in)/i,at:/^(at)/i,the:/^the/i,first:/^first/i,second:/^second/i,third:/^third/i,nth:/^([1-9][0-9]*)(\\.|th|nd|rd|st)/i,last:/^last/i,for:/^for/i,\"time(s)\":/^times?/i,until:/^(un)?til/i,monday:/^mo(n(day)?)?/i,tuesday:/^tu(e(s(day)?)?)?/i,wednesday:/^we(d(n(esday)?)?)?/i,thursday:/^th(u(r(sday)?)?)?/i,friday:/^fr(i(day)?)?/i,saturday:/^sa(t(urday)?)?/i,sunday:/^su(n(day)?)?/i,january:/^jan(uary)?/i,february:/^feb(ruary)?/i,march:/^mar(ch)?/i,april:/^apr(il)?/i,may:/^may/i,june:/^june?/i,july:/^july?/i,august:/^aug(ust)?/i,september:/^sep(t(ember)?)?/i,october:/^oct(ober)?/i,november:/^nov(ember)?/i,december:/^dec(ember)?/i,comma:/^(,\\s*|(and|or)\\s*)+/i}},Z=xe;var Nt=function(e,t){return e.indexOf(t)!==-1},Ee=function(e){return e.toString()},Te=function(e,t,r){return\"\".concat(t,\" \").concat(r,\", \").concat(e)},De=(function(){function e(t,r,n,i){if(r===void 0&&(r=Ee),n===void 0&&(n=Z),i===void 0&&(i=Te),this.text=[],this.language=n||Z,this.gettext=r,this.dateFormatter=i,this.rrule=t,this.options=t.options,this.origOptions=t.origOptions,this.origOptions.bymonthday){var a=[].concat(this.options.bymonthday),u=[].concat(this.options.bynmonthday);a.sort(function(d,y){return d-y}),u.sort(function(d,y){return y-d}),this.bymonthday=a.concat(u),this.bymonthday.length||(this.bymonthday=null)}if(x(this.origOptions.byweekday)){var o=S(this.origOptions.byweekday)?this.origOptions.byweekday:[this.origOptions.byweekday],s=String(o);this.byweekday={allWeeks:o.filter(function(d){return!d.n}),someWeeks:o.filter(function(d){return!!d.n}),isWeekdays:s.indexOf(\"MO\")!==-1&&s.indexOf(\"TU\")!==-1&&s.indexOf(\"WE\")!==-1&&s.indexOf(\"TH\")!==-1&&s.indexOf(\"FR\")!==-1&&s.indexOf(\"SA\")===-1&&s.indexOf(\"SU\")===-1,isEveryDay:s.indexOf(\"MO\")!==-1&&s.indexOf(\"TU\")!==-1&&s.indexOf(\"WE\")!==-1&&s.indexOf(\"TH\")!==-1&&s.indexOf(\"FR\")!==-1&&s.indexOf(\"SA\")!==-1&&s.indexOf(\"SU\")!==-1};var l=function(d,y){return d.weekday-y.weekday};this.byweekday.allWeeks.sort(l),this.byweekday.someWeeks.sort(l),this.byweekday.allWeeks.length||(this.byweekday.allWeeks=null),this.byweekday.someWeeks.length||(this.byweekday.someWeeks=null)}else this.byweekday=null}return e.isFullyConvertible=function(t){var r=!0;if(!(t.options.freq in e.IMPLEMENTED)||t.origOptions.until&&t.origOptions.count)return!1;for(var n in t.origOptions){if(Nt([\"dtstart\",\"tzid\",\"wkst\",\"freq\"],n))return!0;if(!Nt(e.IMPLEMENTED[t.options.freq],n))return!1}return r},e.prototype.isFullyConvertible=function(){return e.isFullyConvertible(this.rrule)},e.prototype.toString=function(){var t=this.gettext;if(!(this.options.freq in e.IMPLEMENTED))return t(\"RRule error: Unable to fully convert this rrule to text\");if(this.text=[t(\"every\")],this[p.FREQUENCIES[this.options.freq]](),this.options.until){this.add(t(\"until\"));var r=this.options.until;this.add(this.dateFormatter(r.getUTCFullYear(),this.language.monthNames[r.getUTCMonth()],r.getUTCDate()))}else this.options.count&&this.add(t(\"for\")).add(this.options.count.toString()).add(this.plural(this.options.count)?t(\"times\"):t(\"time\"));return this.isFullyConvertible()||this.add(t(\"(~ approximate)\")),this.text.join(\"\")},e.prototype.HOURLY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t(\"hours\"):t(\"hour\"))},e.prototype.MINUTELY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t(\"minutes\"):t(\"minute\"))},e.prototype.DAILY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.byweekday&&this.byweekday.isWeekdays?this.add(this.plural(this.options.interval)?t(\"weekdays\"):t(\"weekday\")):this.add(this.plural(this.options.interval)?t(\"days\"):t(\"day\")),this.origOptions.bymonth&&(this.add(t(\"in\")),this._bymonth()),this.bymonthday?this._bymonthday():this.byweekday?this._byweekday():this.origOptions.byhour&&this._byhour()},e.prototype.WEEKLY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()).add(this.plural(this.options.interval)?t(\"weeks\"):t(\"week\")),this.byweekday&&this.byweekday.isWeekdays?this.options.interval===1?this.add(this.plural(this.options.interval)?t(\"weekdays\"):t(\"weekday\")):this.add(t(\"on\")).add(t(\"weekdays\")):this.byweekday&&this.byweekday.isEveryDay?this.add(this.plural(this.options.interval)?t(\"days\"):t(\"day\")):(this.options.interval===1&&this.add(t(\"week\")),this.origOptions.bymonth&&(this.add(t(\"in\")),this._bymonth()),this.bymonthday?this._bymonthday():this.byweekday&&this._byweekday(),this.origOptions.byhour&&this._byhour())},e.prototype.MONTHLY=function(){var t=this.gettext;this.origOptions.bymonth?(this.options.interval!==1&&(this.add(this.options.interval.toString()).add(t(\"months\")),this.plural(this.options.interval)&&this.add(t(\"in\"))),this._bymonth()):(this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t(\"months\"):t(\"month\"))),this.bymonthday?this._bymonthday():this.byweekday&&this.byweekday.isWeekdays?this.add(t(\"on\")).add(t(\"weekdays\")):this.byweekday&&this._byweekday()},e.prototype.YEARLY=function(){var t=this.gettext;this.origOptions.bymonth?(this.options.interval!==1&&(this.add(this.options.interval.toString()),this.add(t(\"years\"))),this._bymonth()):(this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t(\"years\"):t(\"year\"))),this.bymonthday?this._bymonthday():this.byweekday&&this._byweekday(),this.options.byyearday&&this.add(t(\"on the\")).add(this.list(this.options.byyearday,this.nth,t(\"and\"))).add(t(\"day\")),this.options.byweekno&&this.add(t(\"in\")).add(this.plural(this.options.byweekno.length)?t(\"weeks\"):t(\"week\")).add(this.list(this.options.byweekno,void 0,t(\"and\")))},e.prototype._bymonthday=function(){var t=this.gettext;this.byweekday&&this.byweekday.allWeeks?this.add(t(\"on\")).add(this.list(this.byweekday.allWeeks,this.weekdaytext,t(\"or\"))).add(t(\"the\")).add(this.list(this.bymonthday,this.nth,t(\"or\"))):this.add(t(\"on the\")).add(this.list(this.bymonthday,this.nth,t(\"and\")))},e.prototype._byweekday=function(){var t=this.gettext;this.byweekday.allWeeks&&!this.byweekday.isWeekdays&&this.add(t(\"on\")).add(this.list(this.byweekday.allWeeks,this.weekdaytext)),this.byweekday.someWeeks&&(this.byweekday.allWeeks&&this.add(t(\"and\")),this.add(t(\"on the\")).add(this.list(this.byweekday.someWeeks,this.weekdaytext,t(\"and\"))))},e.prototype._byhour=function(){var t=this.gettext;this.add(t(\"at\")).add(this.list(this.origOptions.byhour,void 0,t(\"and\")))},e.prototype._bymonth=function(){this.add(this.list(this.options.bymonth,this.monthtext,this.gettext(\"and\")))},e.prototype.nth=function(t){t=parseInt(t.toString(),10);var r,n=this.gettext;if(t===-1)return n(\"last\");var i=Math.abs(t);switch(i){case 1:case 21:case 31:r=i+n(\"st\");break;case 2:case 22:r=i+n(\"nd\");break;case 3:case 23:r=i+n(\"rd\");break;default:r=i+n(\"th\")}return t<0?r+\" \"+n(\"last\"):r},e.prototype.monthtext=function(t){return this.language.monthNames[t-1]},e.prototype.weekdaytext=function(t){var r=U(t)?(t+1)%7:t.getJsWeekday();return(t.n?this.nth(t.n)+\" \":\"\")+this.language.dayNames[r]},e.prototype.plural=function(t){return t%100!==1},e.prototype.add=function(t){return this.text.push(\" \"),this.text.push(t),this},e.prototype.list=function(t,r,n,i){var a=this;i===void 0&&(i=\",\"),S(t)||(t=[t]);var u=function(s,l,d){for(var y=\"\",h=0;ht[0].length)&&(t=a,r=i)}if(t!=null&&(this.text=this.text.substr(t[0].length),this.text===\"\"&&(this.done=!0)),t==null){this.done=!0,this.symbol=null,this.value=null;return}}while(r===\"SKIP\");return this.symbol=r,this.value=t,!0},e.prototype.accept=function(t){if(this.symbol===t){if(this.value){var r=this.value;return this.nextSymbol(),r}return this.nextSymbol(),!0}return!1},e.prototype.acceptNumber=function(){return this.accept(\"number\")},e.prototype.expect=function(t){if(this.accept(t))return!0;throw new Error(\"expected \"+t+\" but found \"+this.symbol)},e})();function nt(e,t){t===void 0&&(t=Z);var r={},n=new Se(t.tokens);if(!n.start(e))return null;return i(),r;function i(){n.expect(\"every\");var h=n.acceptNumber();if(h&&(r.interval=parseInt(h[0],10)),n.isDone())throw new Error(\"Unexpected end\");switch(n.symbol){case\"day(s)\":r.freq=p.DAILY,n.nextSymbol()&&(u(),y());break;case\"weekday(s)\":r.freq=p.WEEKLY,r.byweekday=[p.MO,p.TU,p.WE,p.TH,p.FR],n.nextSymbol(),u(),y();break;case\"week(s)\":r.freq=p.WEEKLY,n.nextSymbol()&&(a(),u(),y());break;case\"hour(s)\":r.freq=p.HOURLY,n.nextSymbol()&&(a(),y());break;case\"minute(s)\":r.freq=p.MINUTELY,n.nextSymbol()&&(a(),y());break;case\"month(s)\":r.freq=p.MONTHLY,n.nextSymbol()&&(a(),y());break;case\"year(s)\":r.freq=p.YEARLY,n.nextSymbol()&&(a(),y());break;case\"monday\":case\"tuesday\":case\"wednesday\":case\"thursday\":case\"friday\":case\"saturday\":case\"sunday\":r.freq=p.WEEKLY;var c=n.symbol.substr(0,2).toUpperCase();if(r.byweekday=[p[c]],!n.nextSymbol())return;for(;n.accept(\"comma\");){if(n.isDone())throw new Error(\"Unexpected end\");var v=s();if(!v)throw new Error(\"Unexpected symbol \"+n.symbol+\", expected weekday\");r.byweekday.push(p[v]),n.nextSymbol()}u(),d(),y();break;case\"january\":case\"february\":case\"march\":case\"april\":case\"may\":case\"june\":case\"july\":case\"august\":case\"september\":case\"october\":case\"november\":case\"december\":if(r.freq=p.YEARLY,r.bymonth=[o()],!n.nextSymbol())return;for(;n.accept(\"comma\");){if(n.isDone())throw new Error(\"Unexpected end\");var g=o();if(!g)throw new Error(\"Unexpected symbol \"+n.symbol+\", expected month\");r.bymonth.push(g),n.nextSymbol()}a(),y();break;default:throw new Error(\"Unknown symbol\")}}function a(){var h=n.accept(\"on\"),c=n.accept(\"the\");if(h||c)do{var v=l(),g=s(),k=o();if(v)g?(n.nextSymbol(),r.byweekday||(r.byweekday=[]),r.byweekday.push(p[g].nth(v))):(r.bymonthday||(r.bymonthday=[]),r.bymonthday.push(v),n.accept(\"day(s)\"));else if(g)n.nextSymbol(),r.byweekday||(r.byweekday=[]),r.byweekday.push(p[g]);else if(n.symbol===\"weekday(s)\")n.nextSymbol(),r.byweekday||(r.byweekday=[p.MO,p.TU,p.WE,p.TH,p.FR]);else if(n.symbol===\"week(s)\"){n.nextSymbol();var E=n.acceptNumber();if(!E)throw new Error(\"Unexpected symbol \"+n.symbol+\", expected week number\");for(r.byweekno=[parseInt(E[0],10)];n.accept(\"comma\");){if(E=n.acceptNumber(),!E)throw new Error(\"Unexpected symbol \"+n.symbol+\"; expected monthday\");r.byweekno.push(parseInt(E[0],10))}}else if(k)n.nextSymbol(),r.bymonth||(r.bymonth=[]),r.bymonth.push(k);else return}while(n.accept(\"comma\")||n.accept(\"the\")||n.accept(\"on\"))}function u(){var h=n.accept(\"at\");if(h)do{var c=n.acceptNumber();if(!c)throw new Error(\"Unexpected symbol \"+n.symbol+\", expected hour\");for(r.byhour=[parseInt(c[0],10)];n.accept(\"comma\");){if(c=n.acceptNumber(),!c)throw new Error(\"Unexpected symbol \"+n.symbol+\"; expected hour\");r.byhour.push(parseInt(c[0],10))}}while(n.accept(\"comma\")||n.accept(\"at\"))}function o(){switch(n.symbol){case\"january\":return 1;case\"february\":return 2;case\"march\":return 3;case\"april\":return 4;case\"may\":return 5;case\"june\":return 6;case\"july\":return 7;case\"august\":return 8;case\"september\":return 9;case\"october\":return 10;case\"november\":return 11;case\"december\":return 12;default:return!1}}function s(){switch(n.symbol){case\"monday\":case\"tuesday\":case\"wednesday\":case\"thursday\":case\"friday\":case\"saturday\":case\"sunday\":return n.symbol.substr(0,2).toUpperCase();default:return!1}}function l(){switch(n.symbol){case\"last\":return n.nextSymbol(),-1;case\"first\":return n.nextSymbol(),1;case\"second\":return n.nextSymbol(),n.accept(\"last\")?-2:2;case\"third\":return n.nextSymbol(),n.accept(\"last\")?-3:3;case\"nth\":var h=parseInt(n.value[1],10);if(h<-366||h>366)throw new Error(\"Nth out of range: \"+h);return n.nextSymbol(),n.accept(\"last\")?-h:h;default:return!1}}function d(){n.accept(\"on\"),n.accept(\"the\");var h=l();if(h)for(r.bymonthday=[h],n.nextSymbol();n.accept(\"comma\");){if(h=l(),!h)throw new Error(\"Unexpected symbol \"+n.symbol+\"; expected monthday\");r.bymonthday.push(h),n.nextSymbol()}}function y(){if(n.symbol===\"until\"){var h=Date.parse(n.text);if(!h)throw new Error(\"Cannot parse until date:\"+n.text);r.until=new Date(h)}else n.accept(\"for\")&&(r.count=parseInt(n.value[0],10),n.expect(\"number\"))}}var m;(function(e){e[e.YEARLY=0]=\"YEARLY\",e[e.MONTHLY=1]=\"MONTHLY\",e[e.WEEKLY=2]=\"WEEKLY\",e[e.DAILY=3]=\"DAILY\",e[e.HOURLY=4]=\"HOURLY\",e[e.MINUTELY=5]=\"MINUTELY\",e[e.SECONDLY=6]=\"SECONDLY\"})(m||(m={}));function it(e){return e12){var n=Math.floor(this.month/12),i=Y(this.month,12);this.month=i,this.year+=n,this.month===0&&(this.month=12,--this.year)}},t.prototype.addWeekly=function(r,n){n>this.getWeekday()?this.day+=-(this.getWeekday()+1+(6-n))+r*7:this.day+=-(this.getWeekday()-n)+r*7,this.fixDay()},t.prototype.addDaily=function(r){this.day+=r,this.fixDay()},t.prototype.addHours=function(r,n,i){for(n&&(this.hour+=Math.floor((23-this.hour)/r)*r);;){this.hour+=r;var a=ft(this.hour,24),u=a.div,o=a.mod;if(u&&(this.hour=o,this.addDaily(u)),A(i)||w(i,this.hour))break}},t.prototype.addMinutes=function(r,n,i,a){for(n&&(this.minute+=Math.floor((1439-(this.hour*60+this.minute))/r)*r);;){this.minute+=r;var u=ft(this.minute,60),o=u.div,s=u.mod;if(o&&(this.minute=s,this.addHours(o,!1,i)),(A(i)||w(i,this.hour))&&(A(a)||w(a,this.minute)))break}},t.prototype.addSeconds=function(r,n,i,a,u){for(n&&(this.second+=Math.floor((86399-(this.hour*3600+this.minute*60+this.second))/r)*r);;){this.second+=r;var o=ft(this.second,60),s=o.div,l=o.mod;if(s&&(this.second=l,this.addMinutes(s,!1,i,a)),(A(i)||w(i,this.hour))&&(A(a)||w(a,this.minute))&&(A(u)||w(u,this.second)))break}},t.prototype.fixDay=function(){if(!(this.day<=28)){var r=kt(this.year,this.month-1)[1];if(!(this.day<=r))for(;this.day>r;){if(this.day-=r,++this.month,this.month===13&&(this.month=1,++this.year,this.year>ht))return;r=kt(this.year,this.month-1)[1]}}},t.prototype.add=function(r,n){var i=r.freq,a=r.interval,u=r.wkst,o=r.byhour,s=r.byminute,l=r.bysecond;switch(i){case m.YEARLY:return this.addYears(a);case m.MONTHLY:return this.addMonths(a);case m.WEEKLY:return this.addWeekly(a,u);case m.DAILY:return this.addDaily(a);case m.HOURLY:return this.addHours(a,n,o);case m.MINUTELY:return this.addMinutes(a,n,o,s);case m.SECONDLY:return this.addSeconds(a,n,o,s,l)}},t})($);function Tt(e){for(var t=[],r=Object.keys(e),n=0,i=r;n=-366&&n<=366))throw new Error(\"bysetpos must be between 1 and 366, or between -366 and -1\")}}if(!(t.byweekno||T(t.byweekno)||T(t.byyearday)||t.bymonthday||T(t.bymonthday)||x(t.byweekday)||x(t.byeaster)))switch(t.freq){case p.YEARLY:t.bymonth||(t.bymonth=t.dtstart.getUTCMonth()+1),t.bymonthday=t.dtstart.getUTCDate();break;case p.MONTHLY:t.bymonthday=t.dtstart.getUTCDate();break;case p.WEEKLY:t.byweekday=[C(t.dtstart)];break}if(x(t.bymonth)&&!S(t.bymonth)&&(t.bymonth=[t.bymonth]),x(t.byyearday)&&!S(t.byyearday)&&U(t.byyearday)&&(t.byyearday=[t.byyearday]),!x(t.bymonthday))t.bymonthday=[],t.bynmonthday=[];else if(S(t.bymonthday)){for(var i=[],a=[],r=0;r0?i.push(n):n<0&&a.push(n)}t.bymonthday=i,t.bynmonthday=a}else t.bymonthday<0?(t.bynmonthday=[t.bymonthday],t.bymonthday=[]):(t.bynmonthday=[],t.bymonthday=[t.bymonthday]);if(x(t.byweekno)&&!S(t.byweekno)&&(t.byweekno=[t.byweekno]),!x(t.byweekday))t.bynweekday=null;else if(U(t.byweekday))t.byweekday=[t.byweekday],t.bynweekday=null;else if(bt(t.byweekday))t.byweekday=[D.fromStr(t.byweekday).weekday],t.bynweekday=null;else if(t.byweekday instanceof D)!t.byweekday.n||t.freq>p.MONTHLY?(t.byweekday=[t.byweekday.weekday],t.bynweekday=null):(t.bynweekday=[[t.byweekday.weekday,t.byweekday.n]],t.byweekday=null);else{for(var u=[],o=[],r=0;rp.MONTHLY?u.push(s.weekday):o.push([s.weekday,s.n])}t.byweekday=T(u)?u:null,t.bynweekday=T(o)?o:null}return x(t.byhour)?U(t.byhour)&&(t.byhour=[t.byhour]):t.byhour=t.freq=4?(d=0,l=o.yearlen+Y(u-t.wkst,7)):l=n-d;for(var y=Math.floor(l/7),h=Y(l,7),c=Math.floor(y+h/4),v=0;v0&&g<=c){var k=void 0;g>1?(k=d+(g-1)*7,d!==s&&(k-=7-s)):k=d;for(var E=0;E<7&&(o.wnomask[k]=1,k++,o.wdaymask[k]!==t.wkst);E++);}}if(w(t.byweekno,1)){var k=d+c*7;if(d!==s&&(k-=7-s),k=4?(V=0,q=vt+Y(B-t.wkst,7)):q=n-d,N=Math.floor(52+Y(q,7)/4)}if(w(t.byweekno,N))for(var k=0;ka)return K(e);if(N>=r){var B=oe(N,t);if(!e.accept(B)||o&&(--o,!o))return K(e)}}else for(var E=c;Ea)return K(e);if(N>=r){var B=oe(N,t);if(!e.accept(B)||o&&(--o,!o))return K(e)}}}if(t.interval===0||(s.add(t,g),s.year>ht))return K(e);it(n)||(d=l.gettimeset(n)(s.hour,s.minute,s.second,0)),l.rebuild(s.year,s.month)}}function He(e,t,r){var n=r.bymonth,i=r.byweekno,a=r.byweekday,u=r.byeaster,o=r.bymonthday,s=r.bynmonthday,l=r.byyearday;return T(n)&&!w(n,e.mmask[t])||T(i)&&!e.wnomask[t]||T(a)&&!w(a,e.wdaymask[t])||T(e.nwdaymask)&&!e.nwdaymask[t]||u!==null&&!w(e.eastermask,t)||(T(o)||T(s))&&!w(o,e.mdaymask[t])&&!w(s,e.nmdaymask[t])||T(l)&&(t=e.yearlen&&!w(l,t+1-e.yearlen)&&!w(l,-e.nextyearlen+t-e.yearlen))}function oe(e,t){return new G(e,t.tzid).rezonedDate()}function K(e){return e.getValue()}function Ke(e,t,r,n,i){for(var a=!1,u=t;u=p.HOURLY&&T(i)&&!w(i,t.hour)||n>=p.MINUTELY&&T(a)&&!w(a,t.minute)||n>=p.SECONDLY&&T(u)&&!w(u,t.second)?[]:e.gettimeset(n)(t.hour,t.minute,t.second,t.millisecond)}var R={MO:new D(0),TU:new D(1),WE:new D(2),TH:new D(3),FR:new D(4),SA:new D(5),SU:new D(6)},at={freq:m.YEARLY,dtstart:null,interval:1,wkst:R.MO,count:null,until:null,tzid:null,bysetpos:null,bymonth:null,bymonthday:null,bynmonthday:null,byyearday:null,byweekno:null,byweekday:null,bynweekday:null,byhour:null,byminute:null,bysecond:null,byeaster:null},Pt=Object.keys(at),p=(function(){function e(t,r){t===void 0&&(t={}),r===void 0&&(r=!1),this._cache=r?null:new Ft,this.origOptions=Tt(t);var n=Ht(t).parsedOptions;this.options=n}return e.parseText=function(t,r){return nt(t,r)},e.fromText=function(t,r){return _t(t,r)},e.fromString=function(t){return new e(e.parseString(t)||void 0)},e.prototype._iter=function(t){return yt(t,this.options)},e.prototype._cacheGet=function(t,r){return this._cache?this._cache._cacheGet(t,r):!1},e.prototype._cacheAdd=function(t,r,n){if(this._cache)return this._cache._cacheAdd(t,r,n)},e.prototype.all=function(t){if(t)return this._iter(new xt(\"all\",{},t));var r=this._cacheGet(\"all\");return r===!1&&(r=this._iter(new H(\"all\",{})),this._cacheAdd(\"all\",r)),r},e.prototype.between=function(t,r,n,i){if(n===void 0&&(n=!1),!F(t)||!F(r))throw new Error(\"Invalid date passed in to RRule.between\");var a={before:r,after:t,inc:n};if(i)return this._iter(new xt(\"between\",a,i));var u=this._cacheGet(\"between\",a);return u===!1&&(u=this._iter(new H(\"between\",a)),this._cacheAdd(\"between\",u,a)),u},e.prototype.before=function(t,r){if(r===void 0&&(r=!1),!F(t))throw new Error(\"Invalid date passed in to RRule.before\");var n={dt:t,inc:r},i=this._cacheGet(\"before\",n);return i===!1&&(i=this._iter(new H(\"before\",n)),this._cacheAdd(\"before\",i,n)),i},e.prototype.after=function(t,r){if(r===void 0&&(r=!1),!F(t))throw new Error(\"Invalid date passed in to RRule.after\");var n={dt:t,inc:r},i=this._cacheGet(\"after\",n);return i===!1&&(i=this._iter(new H(\"after\",n)),this._cacheAdd(\"after\",i,n)),i},e.prototype.count=function(){return this.all().length},e.prototype.toString=function(){return ut(this.origOptions)},e.prototype.toText=function(t,r,n){return It(this,t,r,n)},e.prototype.isFullyConvertibleToText=function(){return Ct(this)},e.prototype.clone=function(){return new e(this.origOptions)},e.FREQUENCIES=[\"YEARLY\",\"MONTHLY\",\"WEEKLY\",\"DAILY\",\"HOURLY\",\"MINUTELY\",\"SECONDLY\"],e.YEARLY=m.YEARLY,e.MONTHLY=m.MONTHLY,e.WEEKLY=m.WEEKLY,e.DAILY=m.DAILY,e.HOURLY=m.HOURLY,e.MINUTELY=m.MINUTELY,e.SECONDLY=m.SECONDLY,e.MO=R.MO,e.TU=R.TU,e.WE=R.WE,e.TH=R.TH,e.FR=R.FR,e.SA=R.SA,e.SU=R.SU,e.parseString=st,e.optionsToString=ut,e})();import{__extends as Xe}from\"/tslib@^2.4.0?target=denonext\";function se(e,t,r,n,i,a){var u={},o=e.accept;function s(h,c){r.forEach(function(v){v.between(h,c,!0).forEach(function(g){u[Number(g)]=!0})})}i.forEach(function(h){var c=new G(h,a).rezonedDate();u[Number(c)]=!0}),e.accept=function(h){var c=Number(h);return isNaN(c)?o.call(this,h):!u[c]&&(s(new Date(c-1),new Date(c+1)),!u[c])?(u[c]=!0,o.call(this,h)):!0},e.method===\"between\"&&(s(e.args.after,e.args.before),e.accept=function(h){var c=Number(h);return u[c]?!0:(u[c]=!0,o.call(this,h))});for(var l=0;l1||i.length||a.length||u.length){var d=new Yt(l);return d.dtstart(o),d.tzid(s||void 0),n.forEach(function(h){d.rrule(new p(St(h,o,s),l))}),i.forEach(function(h){d.rdate(h)}),a.forEach(function(h){d.exrule(new p(St(h,o,s),l))}),u.forEach(function(h){d.exdate(h)}),t.compatible&&t.dtstart&&d.rdate(o),d}var y=n[0]||{};return new p(St(y,y.dtstart||t.dtstart||o,y.tzid||t.tzid||s),l)}function mt(e,t){return t===void 0&&(t={}),qe(e,je(t))}function St(e,t,r){return pt(pt({},e),{dtstart:t,tzid:r})}function je(e){var t=[],r=Object.keys(e),n=Object.keys(ue);if(r.forEach(function(i){w(n,i)||t.push(i)}),t.length)throw new Error(\"Invalid options: \"+t.join(\", \"));return pt(pt({},ue),e)}function Fe(e){if(e.indexOf(\":\")===-1)return{name:\"RRULE\",value:e};var t=Ot(e,\":\",1),r=t[0],n=t[1];return{name:r,value:n}}function Ze(e){var t=Fe(e),r=t.name,n=t.value,i=r.split(\";\");if(!i)throw new Error(\"empty property name\");return{name:i[0].toUpperCase(),parms:i.slice(1),value:n}}function Ge(e,t){if(t===void 0&&(t=!1),e=e&&e.trim(),!e)throw new Error(\"Invalid empty string\");if(!t)return e.split(/\\s/);for(var r=e.split(`\n`),n=0;n0&&i[0]===\" \"?(r[n-1]+=i.slice(1),r.splice(n,1)):n+=1:r.splice(n,1)}return r}function Be(e){e.forEach(function(t){if(!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(t))throw new Error(\"unsupported RDATE/EXDATE parm: \"+t)})}function fe(e,t){return Be(t),e.split(\",\").map(function(r){return rt(r)})}function he(e){var t=this;return function(r){if(r!==void 0&&(t[\"_\".concat(e)]=r),t[\"_\".concat(e)]!==void 0)return t[\"_\".concat(e)];for(var n=0;n = {\n \"Dateline Standard Time\": \"Etc/GMT+12\",\n \"UTC-11\": \"Etc/GMT+11\",\n \"Hawaiian Standard Time\": \"Pacific/Honolulu\",\n \"Alaskan Standard Time\": \"America/Anchorage\",\n \"Pacific Standard Time (Mexico)\": \"America/Santa_Isabel\",\n \"Pacific Standard Time\": \"America/Los_Angeles\",\n \"US Mountain Standard Time\": \"America/Phoenix\",\n \"Mountain Standard Time (Mexico)\": \"America/Chihuahua\",\n \"Mountain Standard Time\": \"America/Denver\",\n \"Central America Standard Time\": \"America/Guatemala\",\n \"Central Standard Time\": \"America/Chicago\",\n \"Central Standard Time (Mexico)\": \"America/Mexico_City\",\n \"Canada Central Standard Time\": \"America/Regina\",\n \"SA Pacific Standard Time\": \"America/Bogota\",\n \"Eastern Standard Time\": \"America/New_York\",\n \"US Eastern Standard Time\": \"America/Indiana/Indianapolis\",\n \"Venezuela Standard Time\": \"America/Caracas\",\n \"Paraguay Standard Time\": \"America/Asuncion\",\n \"Atlantic Standard Time\": \"America/Halifax\",\n \"Central Brazilian Standard Time\": \"America/Cuiaba\",\n \"SA Western Standard Time\": \"America/La_Paz\",\n \"Pacific SA Standard Time\": \"America/Santiago\",\n \"Newfoundland Standard Time\": \"America/St_Johns\",\n \"E. South America Standard Time\": \"America/Sao_Paulo\",\n \"Argentina Standard Time\": \"America/Buenos_Aires\",\n \"SA Eastern Standard Time\": \"America/Cayenne\",\n \"Greenland Standard Time\": \"America/Godthab\",\n \"Montevideo Standard Time\": \"America/Montevideo\",\n \"Bahia Standard Time\": \"America/Bahia\",\n \"Azores Standard Time\": \"Atlantic/Azores\",\n \"Cape Verde Standard Time\": \"Atlantic/Cape_Verde\",\n \"Morocco Standard Time\": \"Africa/Casablanca\",\n \"GMT Standard Time\": \"Europe/London\",\n \"Greenwich Standard Time\": \"Atlantic/Reykjavik\",\n \"W. Europe Standard Time\": \"Europe/Berlin\",\n \"Central Europe Standard Time\": \"Europe/Budapest\",\n \"Romance Standard Time\": \"Europe/Paris\",\n \"Central European Standard Time\": \"Europe/Warsaw\",\n \"W. Central Africa Standard Time\": \"Africa/Lagos\",\n \"Namibia Standard Time\": \"Africa/Windhoek\",\n \"Jordan Standard Time\": \"Asia/Amman\",\n \"GTB Standard Time\": \"Europe/Bucharest\",\n \"Middle East Standard Time\": \"Asia/Beirut\",\n \"Egypt Standard Time\": \"Africa/Cairo\",\n \"Syria Standard Time\": \"Asia/Damascus\",\n \"E. Europe Standard Time\": \"Europe/Chisinau\",\n \"South Africa Standard Time\": \"Africa/Johannesburg\",\n \"FLE Standard Time\": \"Europe/Kiev\",\n \"Turkey Standard Time\": \"Europe/Istanbul\",\n \"Israel Standard Time\": \"Asia/Jerusalem\",\n \"Kaliningrad Standard Time\": \"Europe/Kaliningrad\",\n \"Libya Standard Time\": \"Africa/Tripoli\",\n \"Arabic Standard Time\": \"Asia/Baghdad\",\n \"Arab Standard Time\": \"Asia/Riyadh\",\n \"Belarus Standard Time\": \"Europe/Minsk\",\n \"Russian Standard Time\": \"Europe/Moscow\",\n \"E. Africa Standard Time\": \"Africa/Nairobi\",\n \"Iran Standard Time\": \"Asia/Tehran\",\n \"Arabian Standard Time\": \"Asia/Dubai\",\n \"Azerbaijan Standard Time\": \"Asia/Baku\",\n \"Russia Time Zone 3\": \"Europe/Samara\",\n \"Mauritius Standard Time\": \"Indian/Mauritius\",\n \"Georgian Standard Time\": \"Asia/Tbilisi\",\n \"Caucasus Standard Time\": \"Asia/Yerevan\",\n \"Afghanistan Standard Time\": \"Asia/Kabul\",\n \"West Asia Standard Time\": \"Asia/Tashkent\",\n \"Ekaterinburg Standard Time\": \"Asia/Yekaterinburg\",\n \"Pakistan Standard Time\": \"Asia/Karachi\",\n \"India Standard Time\": \"Asia/Kolkata\",\n \"Sri Lanka Standard Time\": \"Asia/Colombo\",\n \"Nepal Standard Time\": \"Asia/Kathmandu\",\n \"Central Asia Standard Time\": \"Asia/Almaty\",\n \"Bangladesh Standard Time\": \"Asia/Dhaka\",\n \"N. Central Asia Standard Time\": \"Asia/Novosibirsk\",\n \"Myanmar Standard Time\": \"Asia/Rangoon\",\n \"SE Asia Standard Time\": \"Asia/Bangkok\",\n \"North Asia Standard Time\": \"Asia/Krasnoyarsk\",\n \"China Standard Time\": \"Asia/Shanghai\",\n \"North Asia East Standard Time\": \"Asia/Irkutsk\",\n \"Singapore Standard Time\": \"Asia/Singapore\",\n \"W. Australia Standard Time\": \"Australia/Perth\",\n \"Taipei Standard Time\": \"Asia/Taipei\",\n \"Ulaanbaatar Standard Time\": \"Asia/Ulaanbaatar\",\n \"Tokyo Standard Time\": \"Asia/Tokyo\",\n \"Korea Standard Time\": \"Asia/Seoul\",\n \"Yakutsk Standard Time\": \"Asia/Yakutsk\",\n \"Cen. Australia Standard Time\": \"Australia/Adelaide\",\n \"AUS Central Standard Time\": \"Australia/Darwin\",\n \"E. Australia Standard Time\": \"Australia/Brisbane\",\n \"AUS Eastern Standard Time\": \"Australia/Sydney\",\n \"West Pacific Standard Time\": \"Pacific/Port_Moresby\",\n \"Tasmania Standard Time\": \"Australia/Hobart\",\n \"Magadan Standard Time\": \"Asia/Magadan\",\n \"Vladivostok Standard Time\": \"Asia/Vladivostok\",\n \"Russia Time Zone 10\": \"Asia/Srednekolymsk\",\n \"Central Pacific Standard Time\": \"Pacific/Guadalcanal\",\n \"Russia Time Zone 11\": \"Asia/Anadyr\",\n \"New Zealand Standard Time\": \"Pacific/Auckland\",\n \"Fiji Standard Time\": \"Pacific/Fiji\",\n \"Tonga Standard Time\": \"Pacific/Tongatapu\",\n \"Samoa Standard Time\": \"Pacific/Apia\",\n \"Line Islands Standard Time\": \"Pacific/Kiritimati\"\n};\n\n/**\n * Resolves an IANA timezone name from a given TZID string.\n * Supports Windows timezone names, direct IANA names, and UTC.\n */\nexport function resolveIanaName(tzid: string): string | null {\n if (!tzid || tzid === \"UTC\" || tzid === \"None\") return \"UTC\";\n \n // Heuristic: IANA names typically include a forward slash\n if (tzid.includes(\"/\")) return tzid;\n \n return WINDOWS_TO_IANA[tzid] ?? null;\n}\n\n/**\n * Returns the UTC offset in milliseconds for a given IANA timezone at a\n * specific point in time. Positive = ahead of UTC, negative = behind UTC.\n * e.g. \"America/New_York\" in summer -> -14400000 (-4h)\n */\nexport function getUtcOffsetMs(ianaName: string, atDate: Date): number {\n // Trick: format the same instant in UTC and in the target zone,\n // parse both, and subtract.\n // \"en-CA\" produces \"YYYY-MM-DD, HH:MM:SS\" (unambiguous)\n const options: Intl.DateTimeFormatOptions = {\n timeZone: \"UTC\",\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n };\n\n const utcFormatter = new Intl.DateTimeFormat(\"en-CA\", options);\n const localFormatter = new Intl.DateTimeFormat(\"en-CA\", { ...options, timeZone: ianaName });\n\n const formatToIso = (formatter: Intl.DateTimeFormat, date: Date) => {\n return formatter.format(date).replace(\", \", \"T\");\n };\n\n const utcStr = formatToIso(utcFormatter, atDate);\n const localStr = formatToIso(localFormatter, atDate);\n\n const utcMs = new Date(utcStr + \"Z\").getTime();\n const localMs = new Date(localStr + \"Z\").getTime();\n\n return localMs - utcMs;\n}\n", "import { clientStore, config, datastore, editor, index } from \"@silverbulletmd/silverbullet/syscalls\";\nimport { convertIcsCalendar } from \"https://esm.sh/ts-ics@2.4.0\";\nimport { RRule, RRuleSet } from \"rrule\";\nimport { getUtcOffsetMs, resolveIanaName } from \"./timezones.ts\";\n\nconst VERSION = \"0.3.26\";\nconst CACHE_KEY = \"icalendar:lastSync\";\n\nconsole.log(`[iCalendar] Plug script executing at top level (Version ${VERSION})`);\n\n// ============================================================================\n// Utility Functions\n// ============================================================================\n\n/**\n * Creates a SHA-256 hash of a string (hex encoded)\n */\nasync function sha256Hash(str: string): Promise {\n const encoder = new TextEncoder();\n const data = encoder.encode(str);\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n return hashArray.map(b => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\nexport function localDateString(date: Date): string {\n const pad = (n: number) => String(n).padStart(2, \"0\");\n return date.getFullYear() + \"-\" + pad(date.getMonth() + 1) + \"-\" + pad(date.getDate()) + \"T\" + pad(date.getHours()) + \":\" + pad(date.getMinutes()) + \":\" + pad(date.getSeconds());\n}\n\n/**\n * Recursively converts all Date objects and ISO date strings to strings\n * Handles nested objects like {date: Date, local: {date: Date, timezone: string}}\n */\nfunction convertDatesToStrings(obj: T): any {\n if (obj === null || obj === undefined) {\n return obj;\n }\n\n if (obj instanceof Date) {\n return localDateString(obj);\n }\n \n if (typeof obj === 'object' && 'date' in obj && (obj as any).date instanceof Date) {\n return localDateString((obj as any).date);\n }\n\n if (typeof obj === 'string' && /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/.test(obj)) {\n try {\n return localDateString(new Date(obj));\n } catch {\n return obj;\n }\n }\n\n if (Array.isArray(obj)) {\n return obj.map(item => convertDatesToStrings(item));\n }\n\n if (typeof obj === 'object') {\n const result: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n result[key] = convertDatesToStrings((obj as any)[key]);\n }\n }\n return result;\n }\n\n return obj;\n}\n\n// ============================================================================\n// Configuration Functions\n// ============================================================================\n\nasync function getSources(): Promise<{ sources: any[], syncWindowDays: number }> {\n try {\n const rawConfig = await config.get(\"icalendar\", { sources: [] }) as any;\n console.log(\"[iCalendar] Raw config retrieved:\", JSON.stringify(rawConfig));\n \n let sources = rawConfig.sources || [];\n const syncWindowDays = rawConfig.syncWindowDays || 365;\n\n if (sources && typeof sources === \"object\" && !Array.isArray(sources)) {\n const sourceArray = [];\n for (const key in sources) {\n if (sources[key] && typeof sources[key].url === \"string\") {\n sourceArray.push(sources[key]);\n }\n }\n sources = sourceArray;\n }\n\n return { sources, syncWindowDays };\n } catch (e) {\n console.error(\"[iCalendar] Error in getSources:\", e);\n return { sources: [], syncWindowDays: 365 };\n }\n}\n\n// ============================================================================\n// Calendar Fetching & Parsing\n// ============================================================================\n\n/**\n * Resolves the event start as a UTC Date object using DST-aware resolution.\n */\nexport async function resolveEventStart(icsEvent: any): Promise {\n const obj = icsEvent.start;\n if (!obj) return null;\n\n // 1. Extract the wall-clock local datetime string\n let wallClock: string | null = null;\n if (obj.local?.date) {\n const d = obj.local.date;\n wallClock = d instanceof Date ? d.toISOString() : String(d);\n } else if (obj.date) {\n const d = obj.date;\n wallClock = d instanceof Date ? d.toISOString() : String(d);\n }\n\n if (!wallClock) return null;\n\n // Strip any trailing Z \u2014 this is treated as wall-clock local time\n wallClock = wallClock.replace(/Z$/, \"\");\n\n // 2. Resolve IANA timezone\n const rawTz = obj.local?.timezone || (obj as any).timezone || \"UTC\";\n const ianaName = resolveIanaName(rawTz);\n\n if (!ianaName) {\n console.warn(`[iCalendar] Unknown timezone: \"${rawTz}\" - falling back to UTC for event \"${icsEvent.summary}\"`);\n const utcDate = new Date(wallClock + (wallClock.includes(\"T\") ? \"\" : \"T00:00:00\") + \"Z\");\n if (isNaN(utcDate.getTime())) return null;\n return utcDate;\n }\n\n // 3. Parse the wall-clock time as a UTC instant (no offset yet)\n const wallClockAsUtc = new Date(wallClock + (wallClock.includes(\"T\") ? \"\" : \"T00:00:00\") + \"Z\");\n if (isNaN(wallClockAsUtc.getTime())) return null;\n\n // 4. Get the DST-aware offset for this IANA zone at this instant\n const offsetMs = getUtcOffsetMs(ianaName, wallClockAsUtc);\n \n // 5. Convert: UTC = wall-clock - offset\n return new Date(wallClockAsUtc.getTime() - offsetMs);\n}\n\n/**\n * Expands recurring events into individual occurrences.\n */\nexport function expandRecurrences(icsEvent: any, windowDays = 365): any[] {\n const rruleStr = icsEvent.rrule || (icsEvent as any).recurrenceRule;\n if (!rruleStr) return [icsEvent];\n\n try {\n const set = new RRuleSet();\n const cleanRule = rruleStr.replace(/^RRULE:/i, \"\");\n \n // We need to provide DTSTART if it's not in the string\n const dtstart = new Date(icsEvent.start.includes(\"Z\") ? icsEvent.start : icsEvent.start + \"Z\");\n if (isNaN(dtstart.getTime())) {\n console.error(`[iCalendar] Invalid start date for recurrence: ${icsEvent.start}`);\n return [icsEvent];\n }\n\n const ruleOptions = RRule.parseString(cleanRule);\n ruleOptions.dtstart = dtstart;\n \n set.rrule(new RRule(ruleOptions));\n\n // Handle EXDATE\n for (const exdate of (icsEvent.exdate || [])) {\n set.exdate(new Date(exdate.includes(\"Z\") ? exdate : exdate + \"Z\"));\n }\n\n const now = new Date();\n // Start the window 7 days ago to catch recent past events\n const windowStart = new Date(now.getTime() - 7 * 86400000);\n const windowEnd = new Date(now.getTime() + windowDays * 86400000);\n \n // Expand from the start of our window\n const occurrences = set.between(windowStart, windowEnd, true);\n \n if (occurrences.length === 0) return [icsEvent];\n\n return occurrences.map(occurrenceDate => {\n const localIso = localDateString(occurrenceDate);\n return {\n ...icsEvent,\n start: localIso,\n recurrent: true,\n rrule: undefined,\n };\n });\n } catch (err) {\n console.error(`[iCalendar] Error expanding recurrence for ${icsEvent.summary}:`, err);\n return [icsEvent];\n }\n}\n\nasync function fetchAndParseCalendar(source: any, windowDays = 365): Promise {\n console.log(`[iCalendar] Fetching from: ${source.url}`);\n try {\n const response = await fetch(source.url);\n if (!response.ok) {\n console.error(`[iCalendar] Fetch failed for ${source.name}: ${response.status} ${response.statusText}`);\n return [];\n }\n const text = await response.text();\n const calendar = convertIcsCalendar(undefined, text);\n if (!calendar || !calendar.events) {\n return [];\n }\n \n const events: any[] = [];\n for (const icsEvent of calendar.events) {\n if (icsEvent.status?.toUpperCase() === \"CANCELLED\") continue;\n\n const finalDate = await resolveEventStart(icsEvent);\n if (!finalDate) continue;\n \n const localIso = localDateString(finalDate);\n const baseEvent = {\n ...icsEvent,\n name: icsEvent.summary || \"Untitled Event\",\n start: localIso,\n tag: \"ical-event\",\n sourceName: source.name\n };\n\n const rawTz = icsEvent.start?.local?.timezone || (icsEvent.start as any)?.timezone || \"UTC\";\n if (rawTz !== \"UTC\" && rawTz !== \"None\" && !resolveIanaName(rawTz)) {\n baseEvent.description = `(Warning: Unknown timezone \"${rawTz}\") ${baseEvent.description || \"\"}`;\n }\n\n const expanded = expandRecurrences(baseEvent, windowDays);\n for (const occurrence of expanded) {\n const uniqueKey = `${occurrence.start}${occurrence.uid || occurrence.summary || ''}`;\n occurrence.ref = await sha256Hash(uniqueKey);\n events.push(convertDatesToStrings(occurrence));\n }\n }\n return events;\n } catch (err) {\n console.error(`[iCalendar] Error fetching/parsing ${source.name}:`, err);\n return [];\n }\n}\n\nexport async function syncCalendars() {\n try {\n const { sources, syncWindowDays } = await getSources();\n if (sources.length === 0) return;\n \n await editor.flashNotification(\"Syncing calendars...\", \"info\");\n const allEvents: any[] = [];\n for (const source of sources) {\n const events = await fetchAndParseCalendar(source, syncWindowDays);\n allEvents.push(...events);\n }\n await index.indexObjects(\"$icalendar\", allEvents);\n await editor.flashNotification(`Synced ${allEvents.length} events`, \"info\");\n } catch (err) {\n console.error(\"[iCalendar] syncCalendars failed:\", err);\n }\n}\n\nexport async function forceSync() {\n await clientStore.del(CACHE_KEY);\n await syncCalendars();\n}\n\nexport async function clearCache() {\n if (!await editor.confirm(\"Clear all calendar events?\")) return;\n const pageKeys = await datastore.query({ prefix: [\"ridx\", \"$icalendar\"] });\n const allKeys: any[] = [];\n for (const { key } of pageKeys) {\n allKeys.push(key);\n allKeys.push([\"idx\", ...key.slice(2), \"$icalendar\"]);\n }\n if (allKeys.length > 0) await datastore.batchDel(allKeys);\n await clientStore.del(CACHE_KEY);\n await editor.flashNotification(\"Calendar index cleared\", \"info\");\n}\n\nexport async function showVersion() {\n await editor.flashNotification(`iCalendar Plug ${VERSION}`, \"info\");\n}\n", "\nimport { setupMessageListener } from \"https://deno.land/x/silverbullet@2.4.1/client/plugos/worker_runtime.ts\";\n\n// Imports\nimport {syncCalendars as syncCalendars} from \"file:///app/icalendar.ts\";\nimport {forceSync as forceSync} from \"file:///app/icalendar.ts\";\nimport {clearCache as clearCache} from \"file:///app/icalendar.ts\";\nimport {showVersion as showVersion} from \"file:///app/icalendar.ts\";\n\n\n// Function mapping\nconst functionMapping = {\n syncCalendars: syncCalendars,\n forceSync: forceSync,\n clearCache: clearCache,\n showVersion: showVersion,\n\n};\n\n// Manifest\nconst manifest = {\n \"name\": \"icalendar\",\n \"version\": \"0.3.26\",\n \"author\": \"sstent\",\n \"index\": \"icalendar.ts\",\n \"requiredPermissions\": [\n \"fetch\"\n ],\n \"permissions\": [\n \"fetch\",\n \"http\"\n ],\n \"functions\": {\n \"syncCalendars\": {\n \"path\": \"icalendar.ts:syncCalendars\",\n \"command\": {\n \"name\": \"iCalendar: Sync\",\n \"priority\": -1\n },\n \"events\": [\n \"editor:init\"\n ]\n },\n \"forceSync\": {\n \"path\": \"icalendar.ts:forceSync\",\n \"command\": {\n \"name\": \"iCalendar: Force Sync\",\n \"priority\": -1\n }\n },\n \"clearCache\": {\n \"path\": \"icalendar.ts:clearCache\",\n \"command\": {\n \"name\": \"iCalendar: Clear All Events\",\n \"priority\": -1\n }\n },\n \"showVersion\": {\n \"path\": \"icalendar.ts:showVersion\",\n \"command\": {\n \"name\": \"iCalendar: Version\",\n \"priority\": -2\n }\n }\n },\n \"assets\": {}\n};\n\nexport const plug = {manifest, functionMapping};\n\nsetupMessageListener(functionMapping, manifest, self.postMessage);\n"], + "sources": ["https://deno.land/x/silverbullet@2.4.1/plug-api/lib/crypto.ts", "https://deno.land/x/silverbullet@2.4.1/client/lib/logger.ts", "https://deno.land/x/silverbullet@2.4.1/client/plugos/worker_runtime.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/editor.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscall.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/client_store.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/lib/crypto.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/datastore.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/config.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/index.ts", "https://esm.sh/ts-ics@2.4.0/denonext/ts-ics.mjs", "https://esm.sh/tslib@2.8.1/denonext/tslib.mjs", "https://esm.sh/rrule@2.8.1/denonext/rrule.mjs", "timezones.ts", "icalendar.ts", "../tmp/d034bd50dd86e795.js"], + "sourcesContent": ["export function base64Decode(s: string): Uint8Array {\n const binString = atob(s);\n const len = binString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binString.charCodeAt(i);\n }\n return bytes;\n}\n\nexport function base64Encode(buffer: Uint8Array | string): string {\n if (typeof buffer === \"string\") {\n buffer = new TextEncoder().encode(buffer);\n }\n let binary = \"\";\n const len = buffer.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(buffer[i]);\n }\n return btoa(binary);\n}\n\nexport function base64EncodedDataUrl(\n mimeType: string,\n buffer: Uint8Array,\n): string {\n return `data:${mimeType};base64,${base64Encode(buffer)}`;\n}\n\nexport function base64DecodeDataUrl(dataUrl: string): Uint8Array {\n const b64Encoded = dataUrl.split(\",\", 2)[1];\n return base64Decode(b64Encoded);\n}\n\n/**\n * Perform sha256 hash using the browser's crypto APIs\n * Note: this will only work over HTTPS\n * @param message\n */\nexport async function hashSHA256(\n message: string | Uint8Array,\n): Promise {\n // Transform the string into an ArrayBuffer\n const encoder = new TextEncoder();\n const data: Uint8Array = typeof message === \"string\"\n ? encoder.encode(message)\n : message;\n\n // Generate the hash\n const hashBuffer = await globalThis.crypto.subtle.digest(\n \"SHA-256\",\n data as BufferSource,\n );\n\n // Transform the hash into a hex string\n return Array.from(new Uint8Array(hashBuffer)).map((b) =>\n b.toString(16).padStart(2, \"0\")\n ).join(\"\");\n}\n\n/**\n * To avoid database clashes based on space folder path name, base URLs and encryption keys we derive\n * a database name from a hash of all these combined together\n */\nexport async function deriveDbName(\n type: \"data\" | \"files\",\n spaceFolderPath: string,\n baseURI: string,\n encryptionKey?: CryptoKey,\n): Promise {\n let keyPart = \"\";\n if (encryptionKey) {\n keyPart = await exportKey(encryptionKey);\n }\n const spaceHash = await hashSHA256(\n `${spaceFolderPath}:${baseURI}:${keyPart}`,\n );\n return `sb_${type}_${spaceHash}`;\n}\n\n// Fixed counter for AES-CTR all zeroes, for determinism\nconst fixedCounter = new Uint8Array(16);\n\nexport async function encryptStringDeterministic(\n key: CryptoKey,\n clearText: string,\n): Promise {\n const encrypted = await crypto.subtle.encrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n new TextEncoder().encode(clearText),\n );\n return base64Encode(new Uint8Array(encrypted));\n}\n\nexport async function decryptStringDeterministic(\n key: CryptoKey,\n cipherText: string,\n): Promise {\n const decrypted = await crypto.subtle.decrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n base64Decode(cipherText) as BufferSource,\n );\n return new TextDecoder().decode(decrypted);\n}\n\n// Encrypt using AES-GCM with random IV; output = IV + ciphertext\nexport async function encryptAesGcm(\n key: CryptoKey,\n data: Uint8Array,\n): Promise {\n const iv = crypto.getRandomValues(new Uint8Array(12)); // 96-bit IV recommended for GCM\n const encryptedBuffer = await crypto.subtle.encrypt(\n { name: \"AES-GCM\", iv },\n key,\n data as BufferSource,\n );\n const encrypted = new Uint8Array(encryptedBuffer);\n\n // Prepend IV to ciphertext\n const result = new Uint8Array(iv.length + encrypted.length);\n result.set(iv, 0);\n result.set(encrypted, iv.length);\n return result;\n}\n\n// Decrypt using AES-GCM assuming input format IV + ciphertext\nexport async function decryptAesGcm(\n key: CryptoKey,\n encryptedData: Uint8Array,\n): Promise {\n const iv = encryptedData.slice(0, 12); // extract IV (first 12 bytes)\n const ciphertext = encryptedData.slice(12);\n const decryptedBuffer = await crypto.subtle.decrypt(\n { name: \"AES-GCM\", iv },\n key,\n ciphertext,\n );\n return new Uint8Array(decryptedBuffer);\n}\n\nexport async function deriveCTRKeyFromPassword(\n password: string,\n salt: Uint8Array,\n): Promise {\n // Encode password to ArrayBuffer\n const passwordBytes = new TextEncoder().encode(password);\n\n // Import password as a CryptoKey\n const baseKey = await crypto.subtle.importKey(\n \"raw\",\n passwordBytes,\n { name: \"PBKDF2\" },\n false,\n [\"deriveBits\", \"deriveKey\"],\n );\n\n return crypto.subtle.deriveKey(\n {\n name: \"PBKDF2\",\n salt: salt as BufferSource,\n iterations: 100000,\n hash: \"SHA-256\",\n },\n baseKey,\n {\n name: \"AES-CTR\",\n length: 256,\n },\n true, // extractable\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport function importKey(b64EncodedKey: string): Promise {\n return crypto.subtle.importKey(\n \"raw\",\n base64Decode(b64EncodedKey) as BufferSource,\n { name: \"AES-CTR\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport async function exportKey(ctrKey: CryptoKey): Promise {\n const key = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return base64Encode(new Uint8Array(key));\n}\n\nexport async function deriveGCMKeyFromCTR(\n ctrKey: CryptoKey,\n): Promise {\n const rawKey = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return crypto.subtle.importKey(\n \"raw\",\n rawKey,\n { name: \"AES-GCM\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n", "// Logger that monkey patches console methods with prefixes and can capture logs for server transmission\n\nexport interface LogEntry {\n level: \"log\" | \"info\" | \"warn\" | \"error\" | \"debug\";\n timestamp: number;\n message: string;\n}\n\nexport class Logger {\n private originalConsole: {\n log: typeof console.log;\n info: typeof console.info;\n warn: typeof console.warn;\n error: typeof console.error;\n debug: typeof console.debug;\n };\n public logBuffer: LogEntry[] = [];\n\n constructor(\n private prefix: string = \"\",\n private maxCaptureSize: number = 1000,\n ) {\n this.prefix = prefix;\n\n // Store original console methods\n this.originalConsole = {\n log: console.log.bind(console),\n info: console.info.bind(console),\n warn: console.warn.bind(console),\n error: console.error.bind(console),\n debug: console.debug.bind(console),\n };\n\n this.patchConsole();\n }\n\n private patchConsole(): void {\n const createPatchedMethod = (level: keyof typeof this.originalConsole) => {\n return (...args: any[]) => {\n const prefixedArgs = this.prefix ? [this.prefix, ...args] : args;\n\n // Call original console method\n this.originalConsole[level](...prefixedArgs);\n\n // Capture log if capturing is enabled\n this.captureLog(level, args);\n };\n };\n\n console.log = createPatchedMethod(\"log\");\n console.info = createPatchedMethod(\"info\");\n console.warn = createPatchedMethod(\"warn\");\n console.error = createPatchedMethod(\"error\");\n console.debug = createPatchedMethod(\"debug\");\n }\n\n private captureLog(level: LogEntry[\"level\"], args: any[]): void {\n const entry: LogEntry = {\n level,\n timestamp: Date.now(),\n message: args.map((arg) => {\n if (typeof arg === \"string\") {\n return arg;\n }\n try {\n return JSON.stringify(arg);\n } catch {\n // Handle circular references or other JSON.stringify failures\n return String(arg);\n }\n }).join(\" \"),\n };\n\n this.logBuffer.push(entry);\n\n // Maintain max capture size by removing oldest entries\n if (this.logBuffer.length > this.maxCaptureSize) {\n this.logBuffer.shift();\n }\n }\n\n /**\n * Posts all buffered logs to a server endpoint\n */\n async postToServer(logEndpoint: string, source: string) {\n const logs = this.logBuffer;\n if (logs.length > 0) {\n // Flush the buffer\n const logCopy = [...this.logBuffer];\n this.logBuffer = [];\n try {\n const resp = await fetch(logEndpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(logCopy.map((entry) => ({ ...entry, source }))),\n });\n if (!resp.ok) {\n throw new Error(\"Failed to post logs to server\");\n }\n } catch (e: any) {\n console.warn(\"Could not post logs to server\", e.message);\n // Put back the logs into the buffer\n this.logBuffer.unshift(...logCopy);\n }\n }\n }\n}\n\n// Global logger instance\nlet globalLogger: Logger | undefined = undefined;\n\nexport function initLogger(prefix: string = \"\"): Logger {\n globalLogger = new Logger(prefix);\n return globalLogger;\n}\n", "// This is the runtime imported from the compiled plug worker code\nimport type { ControllerMessage, WorkerMessage } from \"./protocol.ts\";\nimport type {\n ProxyFetchRequest64,\n ProxyFetchResponse64,\n} from \"./proxy_fetch.ts\";\nimport { base64Decode, base64Encode } from \"../../plug-api/lib/crypto.ts\";\nimport { initLogger } from \"../lib/logger.ts\";\n\ndeclare global {\n function syscall(name: string, ...args: any[]): Promise;\n}\n\nlet workerPostMessage = (_msg: ControllerMessage): void => {\n throw new Error(\"Not initialized yet\");\n};\n\n// Are we running in a (web) worker?\n\n// Determines if we're running in a web worker environment (Deno or browser)\n// - in a browser's main threads, typeof window is \"object\"\n// - in a browser's worker threads, typeof window === \"undefined\"\n// - in Deno's main thread typeof window === \"object\"\n// - in Deno's workers typeof window === \"undefined\n// - in Cloudflare workers typeof window === \"undefined\", but typeof globalThis.WebSocketPair is defined\nconst runningAsWebWorker = typeof window === \"undefined\" &&\n // @ts-ignore: globalThis\n typeof globalThis.WebSocketPair === \"undefined\";\n\nif (typeof Deno === \"undefined\") {\n // @ts-ignore: Deno hack\n self.Deno = {\n args: [],\n // @ts-ignore: Deno hack\n build: {\n arch: \"x86_64\",\n },\n env: {\n // @ts-ignore: Deno hack\n get() {\n },\n },\n };\n}\n\nconst pendingRequests = new Map<\n number,\n {\n resolve: (result: unknown) => void;\n reject: (e: any) => void;\n }\n>();\n\nlet syscallReqId = 0;\n\nif (runningAsWebWorker) {\n globalThis.syscall = async (name: string, ...args: any[]) => {\n return await new Promise((resolve, reject) => {\n syscallReqId++;\n pendingRequests.set(syscallReqId, { resolve, reject });\n workerPostMessage({\n type: \"sys\",\n id: syscallReqId,\n name,\n args,\n });\n });\n };\n}\n\nexport function setupMessageListener(\n // deno-lint-ignore ban-types\n functionMapping: Record,\n manifest: any,\n postMessageFn: (msg: ControllerMessage) => void,\n) {\n if (!runningAsWebWorker) {\n // Don't do any of this stuff if this is not a web worker\n // This caters to the NoSandbox run mode\n return;\n }\n workerPostMessage = postMessageFn;\n self.addEventListener(\"message\", (event: { data: WorkerMessage }) => {\n (async () => {\n const data = event.data;\n switch (data.type) {\n case \"inv\":\n {\n const fn = functionMapping[data.name!];\n if (!fn) {\n throw new Error(`Function not loaded: ${data.name}`);\n }\n try {\n const result = await Promise.resolve(fn(...(data.args || [])));\n workerPostMessage({\n type: \"invr\",\n id: data.id,\n result: result,\n } as ControllerMessage);\n } catch (e: any) {\n console.error(\n \"An exception was thrown as a result of invoking function\",\n data.name,\n \"error:\",\n e.message,\n );\n workerPostMessage({\n type: \"invr\",\n id: data.id!,\n error: e.message,\n });\n }\n }\n break;\n case \"sysr\":\n {\n const syscallId = data.id;\n const lookup = pendingRequests.get(syscallId);\n if (!lookup) {\n throw Error(\"Invalid request id\");\n }\n pendingRequests.delete(syscallId);\n if (data.error) {\n lookup.reject(new Error(data.error));\n } else {\n lookup.resolve(data.result);\n }\n }\n\n break;\n }\n })().catch(console.error);\n });\n // Signal initialization with manifest\n workerPostMessage({\n type: \"manifest\",\n manifest,\n });\n initLogger(`[${manifest.name} plug]`);\n}\n\nexport async function sandboxFetch(\n reqInfo: RequestInfo,\n options?: ProxyFetchRequest64,\n): Promise {\n if (typeof reqInfo !== \"string\") {\n const body = new Uint8Array(await reqInfo.arrayBuffer());\n const encodedBody = body.length > 0 ? base64Encode(body) : undefined;\n options = {\n method: reqInfo.method,\n headers: Object.fromEntries(reqInfo.headers.entries()),\n base64Body: encodedBody,\n };\n reqInfo = reqInfo.url;\n }\n return syscall(\"sandboxFetch.fetch\", reqInfo, options);\n}\n\n// @ts-ignore: monkey patching fetch\nglobalThis.nativeFetch = globalThis.fetch;\n\n// Monkey patch fetch()\nexport function monkeyPatchFetch() {\n // @ts-ignore: monkey patching fetch\n globalThis.fetch = async function (\n reqInfo: RequestInfo,\n init?: RequestInit,\n ): Promise {\n const encodedBody = init && init.body\n ? base64Encode(\n new Uint8Array(await (new Response(init.body)).arrayBuffer()),\n )\n : undefined;\n const r = await sandboxFetch(\n reqInfo,\n init && {\n method: init.method,\n headers: init.headers as Record,\n base64Body: encodedBody,\n },\n );\n // Casting the response to \"any\" for now, since of weird Deno typing\n return new Response(\n (r.base64Body ? base64Decode(r.base64Body) : null) as any,\n {\n status: r.status,\n headers: r.headers,\n },\n );\n };\n}\n\nif (runningAsWebWorker) {\n monkeyPatchFetch();\n}\n", "import { syscall } from \"../syscall.ts\";\nimport type { FilterOption, UploadFile } from \"../types/client.ts\";\nimport type { Path, Ref } from \"../lib/ref.ts\";\nimport type { PageMeta } from \"../types/index.ts\";\n\n/**\n * Exposes various editor utilities.\n * Important: These syscalls are only available in the client.\n * @module\n */\n\n/**\n * Returns the name of the page or document currently open in the editor.\n * @returns the current page name\n */\nexport function getCurrentPage(): Promise {\n return syscall(\"editor.getCurrentPage\");\n}\n\n/**\n * Returns the meta data of the page or document currently open in the editor.\n * @returns the current page meta data\n */\nexport function getCurrentPageMeta(): Promise {\n return syscall(\"editor.getCurrentPageMeta\");\n}\n\n/**\n * Returns the path of the page or document currently open in the editor.\n * @returns the current page path\n */\nexport function getCurrentPath(): Promise {\n return syscall(\"editor.getCurrentPath\");\n}\n\n/**\n * Returns the names of the pages that have been recently opened\n * @returns the names of the recently opened pages\n */\nexport function getRecentlyOpenedPages(): Promise {\n return syscall(\"editor.getRecentlyOpenedPages\");\n}\n\n/**\n * Returns the name of the currently open editor.\n * @returns the name of the current editor\n */\nexport function getCurrentEditor(): Promise {\n return syscall(\"editor.getCurrentEditor\");\n}\n\n/**\n * Returns the full text of the currently open page\n */\nexport function getText(): Promise {\n return syscall(\"editor.getText\");\n}\n\n/**\n * This updates the editor text, but in a minimal-diff way:\n * it compares the current editor text with the new text, and only sends the changes to the editor, thereby preserving cursor location\n */\nexport function setText(\n newText: string,\n isolateHistory = false,\n): Promise {\n return syscall(\"editor.setText\", newText, isolateHistory);\n}\n\n/**\n * Returns the position (in # of characters from the beginning of the file) of the cursor in the editor\n */\nexport function getCursor(): Promise {\n return syscall(\"editor.getCursor\");\n}\n\n/**\n * Returns the line number and column number of the cursor in the editor\n */\nexport function getSelection(): Promise<\n { from: number; to: number; text: string }\n> {\n return syscall(\"editor.getSelection\");\n}\n\n/**\n * Sets the position of the cursor in the editor\n * @param from the start position of the selection\n * @param to the end position of the selection\n */\nexport function setSelection(from: number, to: number): Promise {\n return syscall(\"editor.setSelection\", from, to);\n}\n\n/**\n * Invoke a client command by name\n * Note: only available on the client\n * @param name name of the command\n * @param args arguments to pass to the command\n */\nexport function invokeCommand(name: string, args?: string[]): Promise {\n return syscall(\"editor.invokeCommand\", name, args);\n}\n\n/**\n * Forces a save of the current page\n */\nexport function save(): Promise {\n return syscall(\"editor.save\");\n}\n\n/**\n * Navigates to the specified page reference\n * @param pageRef the page reference to navigate to\n * @param replaceState whether to replace the current history state in the browser history\n * @param newWindow whether to open the page in a new window\n */\nexport function navigate(\n ref: Ref | string,\n replaceState = false,\n newWindow = false,\n): Promise {\n return syscall(\"editor.navigate\", ref, replaceState, newWindow);\n}\n\n/**\n * Opens the page navigator\n * @param mode the mode to open the navigator in\n */\nexport function openPageNavigator(\n mode: \"page\" | \"meta\" | \"document\" | \"all\" = \"page\",\n): Promise {\n return syscall(\"editor.openPageNavigator\", mode);\n}\n\n/**\n * Opens the command palette\n */\nexport function openCommandPalette(): Promise {\n return syscall(\"editor.openCommandPalette\");\n}\n\n/**\n * Force reloads the current page\n */\nexport function reloadPage(): Promise {\n return syscall(\"editor.reloadPage\");\n}\n\n/**\n * Force reloads the browser UI\n */\nexport function reloadUI(): Promise {\n return syscall(\"editor.reloadUI\");\n}\n\n/**\n * Rebuilds the editor state to ensure the dispatch updates the state.\n */\nexport function rebuildEditorState(): Promise {\n return syscall(\"editor.rebuildEditorState\");\n}\n\n/**\n * Reloads the config and commands, also in the server\n */\nexport function reloadConfigAndCommands(): Promise {\n return syscall(\"editor.reloadConfigAndCommands\");\n}\n\n/**\n * Opens the specified URL in the browser\n * @param url the URL to open\n * @param existingWindow whether to open the URL in an existing window\n */\nexport function openUrl(url: string, existingWindow = false): Promise {\n return syscall(\"editor.openUrl\", url, existingWindow);\n}\n\nexport function newWindow(): Promise {\n return syscall(\"editor.newWindow\");\n}\n\n/**\n * This is calling the `go()` method from the History Web API.\n * @param delta Position in history to move to relative to the current page,\n * where a negative value moves backwards, and positive forwards\n */\nexport function goHistory(delta: number): Promise {\n return syscall(\"editor.goHistory\", delta);\n}\n\n/**\n * Force the client to download the file in dataUrl with filename as file name\n * @param filename the name of the file to download\n * @param dataUrl the dataUrl of the file to download\n */\nexport function downloadFile(filename: string, dataUrl: string): Promise {\n return syscall(\"editor.downloadFile\", filename, dataUrl);\n}\n\n/**\n * Triggers the browser's native file upload dialog/popup\n * @param accept the file types to accept\n * @param capture the capture mode for the file input\n */\nexport function uploadFile(\n accept?: string,\n capture?: string,\n): Promise {\n return syscall(\"editor.uploadFile\", accept, capture);\n}\n\n/**\n * Shows a flash notification to the user (top right corner)\n * @param message the message to show\n * @param type the type of notification to show\n */\nexport function flashNotification(\n message: string,\n type: \"info\" | \"error\" = \"info\",\n): Promise {\n return syscall(\"editor.flashNotification\", message, type);\n}\n\n/**\n * Exposes a filter box UI (similar to the page navigator and command palette)\n * @param label the label to show left of the input box\n * @param options the options to show and to filter on\n * @param helpText the help text to show below the input box\n * @param placeHolder the placeholder text to show in the input box\n */\nexport function filterBox(\n label: string,\n options: FilterOption[],\n helpText = \"\",\n placeHolder = \"\",\n): Promise {\n return syscall(\"editor.filterBox\", label, options, helpText, placeHolder);\n}\n\n/**\n * Shows a panel in the editor\n * @param id the location of the panel to show\n * @param mode the mode or \"size\" of the panel\n * @param html the html content of the panel\n * @param script the script content of the panel\n */\nexport function showPanel(\n id: \"lhs\" | \"rhs\" | \"bhs\" | \"modal\",\n mode: number,\n html: string,\n script = \"\",\n): Promise {\n return syscall(\"editor.showPanel\", id, mode, html, script);\n}\n\n/**\n * Hides a panel in the editor\n * @param id the location of the panel to hide\n */\nexport function hidePanel(\n id: \"lhs\" | \"rhs\" | \"bhs\" | \"modal\",\n): Promise {\n return syscall(\"editor.hidePanel\", id);\n}\n\nexport function showProgress(\n progressPercentage?: number,\n progressType?: string,\n): Promise {\n return syscall(\"editor.showProgress\", progressPercentage, progressType);\n}\n\n/**\n * Insert text at the specified position into the editor\n * @param text the text to insert\n * @param pos\n */\nexport function insertAtPos(text: string, pos: number): Promise {\n return syscall(\"editor.insertAtPos\", text, pos);\n}\n\n/**\n * Replace the text in the specified range in the editor\n * @param from the start position of the range\n * @param to the end position of the range\n * @param text the text to replace with\n */\nexport function replaceRange(\n from: number,\n to: number,\n text: string,\n): Promise {\n return syscall(\"editor.replaceRange\", from, to, text);\n}\n\n/**\n * Move the cursor to the specified position in the editor\n * @param pos the position to move the cursor to\n * @param center whether to center the cursor in the editor after moving\n */\nexport function moveCursor(pos: number, center = false): Promise {\n return syscall(\"editor.moveCursor\", pos, center);\n}\n\n/**\n * Move the cursor to the specified line and column in the editor\n * @param line the line number to move the cursor to\n * @param column the column number to move the cursor to\n * @param center whether to center the cursor in the editor after moving\n */\nexport function moveCursorToLine(\n line: number,\n column = 1,\n center = false,\n): Promise {\n return syscall(\"editor.moveCursorToLine\", line, column, center);\n}\n\n/**\n * Insert text at the cursor position in the editor\n * @param text the text to insert\n */\nexport function insertAtCursor(\n text: string,\n scrollIntoView = false,\n cursorPlaceHolder = false,\n): Promise {\n return syscall(\n \"editor.insertAtCursor\",\n text,\n scrollIntoView,\n cursorPlaceHolder,\n );\n}\n\n/**\n * Dispatch a CodeMirror transaction: https://codemirror.net/docs/ref/#state.Transaction\n */\nexport function dispatch(change: any): Promise {\n return syscall(\"editor.dispatch\", change);\n}\n\n/**\n * Prompt the user for text input\n * @param message the message to show in the prompt\n * @param defaultValue a default value pre-filled in the prompt\n * @returns\n */\nexport function prompt(\n message: string,\n defaultValue = \"\",\n): Promise {\n return syscall(\"editor.prompt\", message, defaultValue);\n}\n\n/**\n * Prompt the user for confirmation\n * @param message the message to show in the confirmation dialog\n * @returns\n */\nexport function confirm(\n message: string,\n): Promise {\n return syscall(\"editor.confirm\", message);\n}\n\n/**\n * Prompt the user for confirmation\n * @param message the message to show in the confirmation dialog\n * @returns\n */\nexport function alert(\n message: string,\n): Promise {\n return syscall(\"editor.alert\", message);\n}\n\n/**\n * Get the value of a UI option\n * @param key the key of the UI option to get\n * @returns\n */\nexport function getUiOption(key: string): Promise {\n return syscall(\"editor.getUiOption\", key);\n}\n\n/**\n * Set the value of a UI option\n * @param key the key of the UI option to set\n * @param value the value to set the UI option to\n */\nexport function setUiOption(key: string, value: any): Promise {\n return syscall(\"editor.setUiOption\", key, value);\n}\n\n/**\n * Perform a fold at the current cursor position\n */\nexport function fold(): Promise {\n return syscall(\"editor.fold\");\n}\n\n/**\n * Perform an unfold at the current cursor position\n */\nexport function unfold(): Promise {\n return syscall(\"editor.unfold\");\n}\n\n/**\n * Toggle the fold at the current cursor position\n */\nexport function toggleFold(): Promise {\n return syscall(\"editor.toggleFold\");\n}\n\n/**\n * Fold all code blocks in the editor\n */\nexport function foldAll(): Promise {\n return syscall(\"editor.foldAll\");\n}\n\n/**\n * Unfold all code blocks in the editor\n */\nexport function unfoldAll(): Promise {\n return syscall(\"editor.unfoldAll\");\n}\n\n/**\n * Perform an undo operation of the last edit in the editor\n */\nexport function undo(): Promise {\n return syscall(\"editor.undo\");\n}\n\n/**\n * Perform a redo operation of the last undo in the editor\n */\nexport function redo(): Promise {\n return syscall(\"editor.redo\");\n}\n\n/**\n * Open the editor's native search panel\n */\nexport function openSearchPanel(): Promise {\n return syscall(\"editor.openSearchPanel\");\n}\n\n/**\n * Copy the specified data to the clipboard\n * @param data the data to copy\n */\nexport function copyToClipboard(data: string | Blob): Promise {\n return syscall(\"editor.copyToClipboard\", data);\n}\n\n/**\n * Delete the current line in the editor\n */\nexport function deleteLine(): Promise {\n return syscall(\"editor.deleteLine\");\n}\n\n/**\n * Comment or uncomment the current line in the editor\n */\nexport function toggleComment(): Promise {\n return syscall(\"editor.toggleComment\");\n}\n\nexport function moveLineUp(): Promise {\n return syscall(\"editor.moveLineUp\");\n}\n\nexport function moveLineDown(): Promise {\n return syscall(\"editor.moveLineDown\");\n}\n\n// Vim-mode specific syscalls\n\n/**\n * Execute a Vim ex command\n * @param exCommand the ex command to execute\n */\nexport function vimEx(exCommand: string): Promise {\n return syscall(\"editor.vimEx\", exCommand);\n}\n\n/**\n * Execute a vim config using the CodeMirror Vim Mode API\n */\nexport function configureVimMode(): Promise {\n return syscall(\"editor.configureVimMode\");\n}\n\n// Document editor specific syscalls\n\n/**\n * Send a message - or event if you will - to the currently used document editor\n * @param type the message type, which can be listend to\n * @param data data attached to the message\n */\nexport function sendMessage(type: string, data?: any): Promise {\n return syscall(\"editor.sendMessage\", type, data);\n}\n\n/**\n * Check if the editor is running on a mobile device\n */\nexport function isMobile(): Promise {\n return syscall(\"editor.isMobile\");\n}\n", "// declare global {\n// function syscall(name: string, ...args: any[]): Promise;\n// }\n\n// This is the case when running tests only, so giving it a dummy syscall function\nif (typeof self === \"undefined\") {\n (self as any) = {\n syscall: () => {\n throw new Error(\"Not implemented here\");\n },\n };\n}\n\n// Late binding syscall\nexport function syscall(name: string, ...args: any[]): Promise {\n return (globalThis as any).syscall(name, ...args);\n}\n", "import { syscall } from \"../syscall.ts\";\n\n/**\n * Implements a very simple (string) key value store for the client.\n * Generally should only be used to set some client-specific states, such as preferences.\n * @module\n */\n\n/**\n * Sets a value in the client store.\n * @param key the key to set\n * @param value the value to set\n */\nexport function set(key: string, value: any): Promise {\n return syscall(\"clientStore.set\", key, value);\n}\n\n/**\n * Gets a value from the client store.\n * @param key the key to get\n * @returns the value associated with the key\n */\nexport function get(key: string): Promise {\n return syscall(\"clientStore.get\", key);\n}\n\n/**\n * Deletes a value from the client store.\n * @param key the key to delete\n */\nexport function del(key: string): Promise {\n return syscall(\"clientStore.delete\", key);\n}\n", "export function base64Decode(s: string): Uint8Array {\n const binString = atob(s);\n const len = binString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binString.charCodeAt(i);\n }\n return bytes;\n}\n\nexport function base64Encode(buffer: Uint8Array | string): string {\n if (typeof buffer === \"string\") {\n buffer = new TextEncoder().encode(buffer);\n }\n let binary = \"\";\n const len = buffer.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(buffer[i]);\n }\n return btoa(binary);\n}\n\nexport function base64EncodedDataUrl(\n mimeType: string,\n buffer: Uint8Array,\n): string {\n return `data:${mimeType};base64,${base64Encode(buffer)}`;\n}\n\nexport function base64DecodeDataUrl(dataUrl: string): Uint8Array {\n const b64Encoded = dataUrl.split(\",\", 2)[1];\n return base64Decode(b64Encoded);\n}\n\n/**\n * Perform sha256 hash using the browser's crypto APIs\n * Note: this will only work over HTTPS\n * @param message\n */\nexport async function hashSHA256(\n message: string | Uint8Array,\n): Promise {\n // Transform the string into an ArrayBuffer\n const encoder = new TextEncoder();\n const data: Uint8Array = typeof message === \"string\"\n ? encoder.encode(message)\n : message;\n\n // Generate the hash\n const hashBuffer = await globalThis.crypto.subtle.digest(\n \"SHA-256\",\n data as BufferSource,\n );\n\n // Transform the hash into a hex string\n return Array.from(new Uint8Array(hashBuffer)).map((b) =>\n b.toString(16).padStart(2, \"0\")\n ).join(\"\");\n}\n\n/**\n * To avoid database clashes based on space folder path name, base URLs and encryption keys we derive\n * a database name from a hash of all these combined together\n */\nexport async function deriveDbName(\n type: \"data\" | \"files\",\n spaceFolderPath: string,\n baseURI: string,\n encryptionKey?: CryptoKey,\n): Promise {\n let keyPart = \"\";\n if (encryptionKey) {\n keyPart = await exportKey(encryptionKey);\n }\n const spaceHash = await hashSHA256(\n `${spaceFolderPath}:${baseURI}:${keyPart}`,\n );\n return `sb_${type}_${spaceHash}`;\n}\n\n// Fixed counter for AES-CTR all zeroes, for determinism\nconst fixedCounter = new Uint8Array(16);\n\nexport async function encryptStringDeterministic(\n key: CryptoKey,\n clearText: string,\n): Promise {\n const encrypted = await crypto.subtle.encrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n new TextEncoder().encode(clearText),\n );\n return base64Encode(new Uint8Array(encrypted));\n}\n\nexport async function decryptStringDeterministic(\n key: CryptoKey,\n cipherText: string,\n): Promise {\n const decrypted = await crypto.subtle.decrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n base64Decode(cipherText) as BufferSource,\n );\n return new TextDecoder().decode(decrypted);\n}\n\n// Encrypt using AES-GCM with random IV; output = IV + ciphertext\nexport async function encryptAesGcm(\n key: CryptoKey,\n data: Uint8Array,\n): Promise {\n const iv = crypto.getRandomValues(new Uint8Array(12)); // 96-bit IV recommended for GCM\n const encryptedBuffer = await crypto.subtle.encrypt(\n { name: \"AES-GCM\", iv },\n key,\n data as BufferSource,\n );\n const encrypted = new Uint8Array(encryptedBuffer);\n\n // Prepend IV to ciphertext\n const result = new Uint8Array(iv.length + encrypted.length);\n result.set(iv, 0);\n result.set(encrypted, iv.length);\n return result;\n}\n\n// Decrypt using AES-GCM assuming input format IV + ciphertext\nexport async function decryptAesGcm(\n key: CryptoKey,\n encryptedData: Uint8Array,\n): Promise {\n const iv = encryptedData.slice(0, 12); // extract IV (first 12 bytes)\n const ciphertext = encryptedData.slice(12);\n const decryptedBuffer = await crypto.subtle.decrypt(\n { name: \"AES-GCM\", iv },\n key,\n ciphertext,\n );\n return new Uint8Array(decryptedBuffer);\n}\n\nexport async function deriveCTRKeyFromPassword(\n password: string,\n salt: Uint8Array,\n): Promise {\n // Encode password to ArrayBuffer\n const passwordBytes = new TextEncoder().encode(password);\n\n // Import password as a CryptoKey\n const baseKey = await crypto.subtle.importKey(\n \"raw\",\n passwordBytes,\n { name: \"PBKDF2\" },\n false,\n [\"deriveBits\", \"deriveKey\"],\n );\n\n return crypto.subtle.deriveKey(\n {\n name: \"PBKDF2\",\n salt: salt as BufferSource,\n iterations: 100000,\n hash: \"SHA-256\",\n },\n baseKey,\n {\n name: \"AES-CTR\",\n length: 256,\n },\n true, // extractable\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport function importKey(b64EncodedKey: string): Promise {\n return crypto.subtle.importKey(\n \"raw\",\n base64Decode(b64EncodedKey) as BufferSource,\n { name: \"AES-CTR\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport async function exportKey(ctrKey: CryptoKey): Promise {\n const key = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return base64Encode(new Uint8Array(key));\n}\n\nexport async function deriveGCMKeyFromCTR(\n ctrKey: CryptoKey,\n): Promise {\n const rawKey = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return crypto.subtle.importKey(\n \"raw\",\n rawKey,\n { name: \"AES-GCM\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n", "import type { LuaCollectionQuery } from \"../../client/space_lua/query_collection.ts\";\nimport { syscall } from \"../syscall.ts\";\n\nimport type { KV, KvKey, KvQuery } from \"../types/datastore.ts\";\n\n/**\n * Exposes a key value story with query capabilities.\n * @module\n */\n\n/**\n * Sets a value in the key value store.\n * @param key the key to set\n * @param value the value to set\n */\nexport function set(key: KvKey, value: any): Promise {\n return syscall(\"datastore.set\", key, value);\n}\n\n/**\n * Sets multiple values in the key value store.\n * @param kvs the key value pairs to set\n */\nexport function batchSet(kvs: KV[]): Promise {\n return syscall(\"datastore.batchSet\", kvs);\n}\n\n/**\n * Gets a value from the key value store.\n * @param key the key to get\n * @returns the value associated with the key (or undefined if not found)\n */\nexport function get(key: KvKey): Promise {\n return syscall(\"datastore.get\", key);\n}\n\n/**\n * Gets multiple values from the key value store.\n * @param keys the keys to get\n * @returns the values associated with the keys (or undefined if not found)\n */\nexport function batchGet(keys: KvKey[]): Promise<(any | undefined)[]> {\n return syscall(\"datastore.batchGet\", keys);\n}\n\n/**\n * Deletes a value from the key value store.\n * @param key the key to delete\n */\nexport function del(key: KvKey): Promise {\n return syscall(\"datastore.delete\", key);\n}\n\n/**\n * Deletes multiple values from the key value store.\n * @param keys the keys to delete\n */\nexport function batchDel(keys: KvKey[]): Promise {\n return syscall(\"datastore.batchDelete\", keys);\n}\n\nexport function query(options: KvQuery): Promise {\n return syscall(\"datastore.query\", options);\n}\n\nexport function queryLua(\n prefix: string[],\n query: LuaCollectionQuery,\n scopeVariables?: Record,\n): Promise {\n return syscall(\"datastore.queryLua\", prefix, query, scopeVariables);\n}\n\nexport function batchDeletePrefix(prefix: KvKey): Promise {\n return syscall(\"datastore.batchDeletePrefix\", prefix);\n}\n\n/**\n * Queries the key value store and deletes all matching items\n * @param query the query to run\n * @param variables the variables that can be referenced inside the query\n */\nexport function queryDelete(\n query: KvQuery,\n variables?: Record,\n): Promise {\n return syscall(\"datastore.queryDelete\", query, variables);\n}\n\n/**\n * Lists all functions currently defined and available for use in queries\n * @returns the names of all functions in the key value store\n */\nexport function listFunctions(): Promise {\n return syscall(\"datastore.listFunctions\");\n}\n", "import { syscall } from \"../syscall.ts\";\n\n/**\n * Gets a config value by path, with support for dot notation.\n * @param path The path to get the value from\n * @param defaultValue The default value to return if the path doesn't exist\n * @returns The value at the path, or the default value\n */\nexport function get(path: string, defaultValue: T): Promise {\n return syscall(\"config.get\", path, defaultValue);\n}\n\n/**\n * Sets a config value by path, with support for dot notation.\n * @param path The path to set the value at\n * @param value The value to set\n */\nexport function set(path: string, value: T): Promise;\n/**\n * Sets multiple config values at once.\n * @param values An object containing key-value pairs to set\n */\nexport function set(values: Record): Promise;\nexport function set(\n pathOrValues: string | Record,\n value?: T,\n): Promise {\n return syscall(\"config.set\", pathOrValues, value);\n}\n\n/**\n * Inserts a config value into an array\n */\nexport function insert(\n path: string | string[],\n value: T,\n): Promise {\n return syscall(\"config.insert\", path, value);\n}\n\n/**\n * Checks if a config path exists.\n * @param path The path to check\n * @returns True if the path exists, false otherwise\n */\nexport function has(path: string): Promise {\n return syscall(\"config.has\", path);\n}\n\n/**\n * Defines a JSON schema for a configuration key.\n * The schema will be used to validate values when setting this key.\n * @param key The configuration key to define a schema for\n * @param schema The JSON schema to validate against\n */\nexport function define(key: string, schema: any): Promise {\n return syscall(\"config.define\", key, schema);\n}\n", "import type { LuaCollectionQuery } from \"../../client/space_lua/query_collection.ts\";\nimport { syscall } from \"../syscall.ts\";\nimport type { ObjectValue } from \"../types/index.ts\";\n\n/**\n * Exposes the SilverBullet object indexing system\n * @module\n */\n\n/**\n * Indexes objects for a specific page\n * @param page - The page identifier where objects will be indexed\n * @param objects - Array of objects to be indexed\n * @returns Promise that resolves when indexing is complete\n */\nexport function indexObjects(\n page: string,\n objects: ObjectValue[],\n): Promise {\n return syscall(\"index.indexObjects\", page, objects);\n}\n\n/**\n * Queries objects using a Lua-based collection query\n * @param tag - The tag to filter objects by\n * @param query - Lua query parameters to filter objects\n * @param scopedVariables - Optional variables to be used in the Lua query\n * @returns Promise that resolves with an array of matching objects\n */\nexport function queryLuaObjects(\n tag: string,\n query: LuaCollectionQuery,\n scopedVariables?: Record,\n ttlSecs?: number,\n): Promise[]> {\n return syscall(\"index.queryLuaObjects\", tag, query, scopedVariables, ttlSecs);\n}\n\n/**\n * Retrieves a specific object by its reference\n * @param page - The page identifier where the object is located\n * @param tag - The tag of the object\n * @param ref - The reference identifier of the object\n * @returns Promise that resolves with the matching object or undefined if not found\n */\nexport function getObjectByRef(\n page: string,\n tag: string,\n ref: string,\n): Promise | undefined> {\n return syscall(\"index.getObjectByRef\", page, tag, ref);\n}\n\n/**\n * Ensures that the full index is built and up-to-date\n */\nexport function ensureFullIndex(): Promise {\n return syscall(\"index.ensureFullIndex\");\n}\n", "/* esm.sh - ts-ics@2.4.0 */\nvar g=e=>Object.fromEntries(Object.entries(e).map(([n,t])=>[t,n])),f=e=>Object.keys(e),fe={action:\"ACTION\",description:\"DESCRIPTION\",duration:\"DURATION\",repeat:\"REPEAT\",summary:\"SUMMARY\",trigger:\"TRIGGER\",attachments:\"ATTACH\",attendees:\"ATTENDEE\"},We=g(fe),hr=f(We),br=f(fe),Se={method:\"METHOD\",prodId:\"PRODID\",version:\"VERSION\",name:\"X-WR-CALNAME\"},Je=g(Se),Kr=f(Je),kr=f(Se),Ae={alarms:\"ALARM\",categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",location:\"LOCATION\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",timeTransparent:\"TRANSP\",url:\"URL\",end:\"DTEND\",duration:\"DURATION\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",priority:\"PRIORITY\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\"},Ge=g(Ae),Vr=f(Ge),_r=f(Ae),De={id:\"TZID\",lastModified:\"LAST-MODIFIED\",url:\"TZURL\"},Ze=g(De),Ur=f(Ze),Br=f(De),Oe={comment:\"COMMENT\",name:\"TZNAME\",offsetFrom:\"TZOFFSETFROM\",offsetTo:\"TZOFFSETTO\",recurrenceDate:\"RDATE\",recurrenceRule:\"RRULE\",start:\"DTSTART\"},xe=g(Oe),Fr=f(xe),Pr=f(Oe),Xe={byDay:\"BYDAY\",byHour:\"BYHOUR\",byMinute:\"BYMINUTE\",byMonth:\"BYMONTH\",byMonthday:\"BYMONTHDAY\",bySecond:\"BYSECOND\",bySetPos:\"BYSETPOS\",byWeekNo:\"BYWEEKNO\",byYearday:\"BYYEARDAY\",count:\"COUNT\",frequency:\"FREQ\",interval:\"INTERVAL\",until:\"UNTIL\",workweekStart:\"WKST\"},Qe=g(Xe),Hr=f(Qe),$r=f(Xe),Re={categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",location:\"LOCATION\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",url:\"URL\",duration:\"DURATION\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",priority:\"PRIORITY\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\",completed:\"COMPLETED\",due:\"DUE\",percentComplete:\"PERCENT-COMPLETE\"},en=g(Re),wr=f(en),jr=f(Re),ge={categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",url:\"URL\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\"},nn=g(ge),qr=f(nn),Wr=f(ge),Me={stamp:\"DTSTAMP\",start:\"DTSTART\",uid:\"UID\",url:\"URL\",organizer:\"ORGANIZER\",attendees:\"ATTENDEE\",comment:\"COMMENT\",end:\"DTEND\",freeBusy:\"FREEBUSY\"},tn=g(Me),Jr=f(tn),Gr=f(Me),rn=\"BEGIN\",on=\"END\",Ne=\"VCALENDAR\",X=\"VTIMEZONE\",an=\"STANDARD\",ln=\"DAYLIGHT\",Q=\"VEVENT\",ee=\"VALARM\",ne=\"VTODO\",te=\"VJOURNAL\",re=\"VFREEBUSY\",Zr=[Ne,X,an,ln,Q,ee,ne,te,re],Be=e=>new RegExp(`${rn}:${e}([\\\\s\\\\S]*?)${on}:${e}`,\"g\"),Rn=e=>new RegExp(`${rn}:${e}|${on}:${e}`,\"g\"),gn=/\\r\\n/,pe=/\\r\\n|\\r|\\n/,sn=`\\r\n`,Fe=`\n`,Mn=\":\",V=\",\",Nn='\"',W=\";\",xr=\" \",ye=\"=\",Xr=75,J=e=>`${e}${sn}`,y=(e,n,t)=>t?n==null?\"\":J(`${e};${t}:${n}`):J(`${e}:${n}`),In=e=>J(`BEGIN:${e}`),Yn=e=>J(`END:${e}`),R=e=>{if(!(e.length<1))return`${e.map(n=>`${n.key}${ye}${n.value}`).join(W)}`},zn=e=>{if(e.type===\"uri\"){let n=R([e.formatType&&{key:\"FMTTYPE\",value:e.formatType}].filter(t=>!!t));return y(\"ATTACH\",e.url,n)}if(e.type===\"binary\"){let n=R([e.value&&{key:\"VALUE\",value:e.value},e.encoding&&{key:\"ENCODING\",value:e.encoding}].filter(t=>!!t));return y(\"ATTACH\",e.binary,n)}throw Error(`IcsAttachment has no type! ${JSON.stringify(e)}`)},K=(e,n)=>n?`\"MAILTO:${e}\"`:`MAILTO:${e}`,P=(e,n)=>{let t=R([e.dir&&{key:\"DIR\",value:`\"${e.dir}\"`},e.delegatedFrom&&{key:\"DELEGATED-FROM\",value:K(e.delegatedFrom,!0)},e.member&&{key:\"MEMBER\",value:K(e.member,!0)},e.role&&{key:\"ROLE\",value:e.role},e.name&&{key:\"CN\",value:e.name},e.partstat&&{key:\"PARTSTAT\",value:e.partstat},e.sentBy&&{key:\"SENT-BY\",value:K(e.sentBy,!0)},e.rsvp!==void 0&&(e.rsvp===!0||e.rsvp===!1)&&{key:\"RSVP\",value:e.rsvp===!0?\"TRUE\":\"FALSE\"}].filter(r=>!!r));return y(n,K(e.email),t)},H=e=>{if(Object.values(e).filter(t=>typeof t==\"number\").length===0)return;let n=\"\";return e.before&&(n+=\"-\"),n+=\"P\",e.weeks!==void 0&&(n+=`${e.weeks}W`),e.days!==void 0&&(n+=`${e.days}D`),(e.hours!==void 0||e.minutes!==void 0||e.seconds!==void 0)&&(n+=\"T\",e.hours!==void 0&&(n+=`${e.hours}H`),e.minutes!==void 0&&(n+=`${e.minutes}M`),e.seconds!==void 0&&(n+=`${e.seconds}S`)),n},Cn=Math.pow(10,8)*24*60*60*1e3,Qr=-Cn,Ln=6048e5,hn=864e5,Ie=6e4,Ye=36e5,bn=3600,un=bn*24,eo=un*7,Kn=un*365.2425,kn=Kn/12,no=kn*3,Pe=Symbol.for(\"constructDateFrom\");function O(e,n){return typeof e==\"function\"?e(n):e&&typeof e==\"object\"&&Pe in e?e[Pe](n):e instanceof Date?new e.constructor(n):new Date(n)}function d(e,n){return O(n||e,e)}function oe(e,n,t){let r=d(e,t?.in);return isNaN(n)?O(t?.in||e,NaN):(n&&r.setDate(r.getDate()+n),r)}function dn(e,n,t){let r=d(e,t?.in);if(isNaN(n))return O(t?.in||e,NaN);if(!n)return r;let o=r.getDate(),i=O(t?.in||e,r.getTime());i.setMonth(r.getMonth()+n+1,0);let a=i.getDate();return o>=a?i:(r.setFullYear(i.getFullYear(),i.getMonth(),o),r)}function $(e,n,t){return O(t?.in||e,+d(e)+n)}function cn(e,n,t){return $(e,n*Ye,t)}var Vn={};function ae(){return Vn}function G(e,n){var t,r,o,i;let a=ae(),l=n?.weekStartsOn??((r=(t=n?.locale)==null?void 0:t.options)==null?void 0:r.weekStartsOn)??a.weekStartsOn??((i=(o=a.locale)==null?void 0:o.options)==null?void 0:i.weekStartsOn)??0,s=d(e,n?.in),u=s.getDay(),c=(utypeof r==\"object\"));return n.map(t)}function Te(e,n){let t=d(e,n?.in);return t.setHours(0,0,0,0),t}function _n(e,n,t){let[r,o]=ie(t?.in,e,n),i=Te(r),a=Te(o),l=+i-He(i),s=+a-He(a);return Math.round((l-s)/hn)}function ze(e,n,t){let r=d(e,t?.in);return r.setTime(r.getTime()+n*Ie),r}function vn(e,n,t){return $(e,n*1e3,t)}function le(e,n,t){return oe(e,n*7,t)}function mn(e,n,t){return dn(e,n*12,t)}function Ce(e,n){let t=+d(e)-+d(n);return t<0?-1:t>0?1:t}function Le(e){return e instanceof Date||typeof e==\"object\"&&Object.prototype.toString.call(e)===\"[object Date]\"}function En(e,n,t){let[r,o]=ie(t?.in,e,n),i=$e(r,o),a=Math.abs(_n(r,o));r.setDate(r.getDate()-i*a);let l=+($e(r,o)===-i),s=i*(a-l);return s===0?0:s}function $e(e,n){let t=e.getFullYear()-n.getFullYear()||e.getMonth()-n.getMonth()||e.getDate()-n.getDate()||e.getHours()-n.getHours()||e.getMinutes()-n.getMinutes()||e.getSeconds()-n.getSeconds()||e.getMilliseconds()-n.getMilliseconds();return t<0?-1:t>0?1:t}function se(e){return n=>{let t=(e?Math[e]:Math.trunc)(n);return t===0?0:t}}function Un(e,n,t){let[r,o]=ie(t?.in,e,n),i=(+r-+o)/Ye;return se(t?.roundingMethod)(i)}function pn(e,n){return+d(e)-+d(n)}function Bn(e,n,t){let r=pn(e,n)/Ie;return se(t?.roundingMethod)(r)}function we(e,n){let t=d(e,n?.in),r=t.getMonth();return t.setFullYear(t.getFullYear(),r+1,0),t.setHours(23,59,59,999),t}function Fn(e,n,t){let r=pn(e,n)/1e3;return se(t?.roundingMethod)(r)}function Pn(e,n,t){let r=En(e,n,t)/7;return se(t?.roundingMethod)(r)}function Hn(e,n){let[t,r]=ie(e,n.start,n.end);return{start:t,end:r}}function $n(e,n){let{start:t,end:r}=Hn(n?.in,e),o=+t>+r,i=o?+t:+r,a=o?r:t;a.setHours(0,0,0,0);let l=n?.step??1;if(!l)return[];l<0&&(l=-l,o=!o);let s=[];for(;+a<=i;)s.push(O(t,a)),a.setDate(a.getDate()+l),a.setHours(0,0,0,0);return o?s.reverse():s}function je(e,n){let t=d(e,n?.in);return t.setDate(1),t.setHours(0,0,0,0),t}function wn(e,n){let t=d(e,n?.in),r=t.getFullYear();return t.setFullYear(r+1,0,0),t.setHours(23,59,59,999),t}function jn(e,n){let t=d(e,n?.in);return t.setFullYear(t.getFullYear(),0,1),t.setHours(0,0,0,0),t}function qn(e,n){var t,r,o,i;let a=d(e,n?.in),l=a.getFullYear(),s=ae(),u=n?.firstWeekContainsDate??((r=(t=n?.locale)==null?void 0:t.options)==null?void 0:r.firstWeekContainsDate)??s.firstWeekContainsDate??((i=(o=s.locale)==null?void 0:o.options)==null?void 0:i.firstWeekContainsDate)??1,c=O(n?.in||e,0);c.setFullYear(l+1,0,u),c.setHours(0,0,0,0);let v=G(c,n),E=O(n?.in||e,0);E.setFullYear(l,0,u),E.setHours(0,0,0,0);let M=G(E,n);return+a>=+v?l+1:+a>=+M?l:l-1}function Wn(e,n){var t,r,o,i;let a=ae(),l=n?.firstWeekContainsDate??((r=(t=n?.locale)==null?void 0:t.options)==null?void 0:r.firstWeekContainsDate)??a.firstWeekContainsDate??((i=(o=a.locale)==null?void 0:o.options)==null?void 0:i.firstWeekContainsDate)??1,s=qn(e,n),u=O(n?.in||e,0);return u.setFullYear(s,0,l),u.setHours(0,0,0,0),G(u,n)}function Jn(e,n){let t=d(e,n?.in),r=+G(t,n)-+Wn(t,n);return Math.round(r/Ln)+1}function q(e,n){return d(e,n?.in).getDay()}function yn(e,n){let t=d(e,n?.in),r=t.getFullYear(),o=t.getMonth(),i=O(t,0);return i.setFullYear(r,o+1,0),i.setHours(0,0,0,0),i.getDate()}function Gn(e,n){return d(e,n?.in).getHours()}function Zn(e,n){return d(e,n?.in).getMinutes()}function Tn(e,n){return d(e,n?.in).getMonth()}function xn(e){return d(e).getSeconds()}function Xn(e,n){return d(e,n?.in).getFullYear()}function Qn(e,n){return+d(e)==+d(n)}function et(e,n,t){let r=d(e,t?.in),o=Jn(r,t)-n;return r.setDate(r.getDate()-o*7),d(r,t?.in)}function Z(e,n,t){var r,o,i,a;let l=ae(),s=t?.weekStartsOn??((o=(r=t?.locale)==null?void 0:r.options)==null?void 0:o.weekStartsOn)??l.weekStartsOn??((a=(i=l.locale)==null?void 0:i.options)==null?void 0:a.weekStartsOn)??0,u=d(e,t?.in),c=u.getDay(),v=(n%7+7)%7,E=7-s,M=n<0||n>6?n-(c+E)%7:(v+E)%7-(c+E)%7;return oe(u,M,t)}function fn(e,n,t){let r=+d(e,t?.in),[o,i]=[+d(n.start,t?.in),+d(n.end,t?.in)].sort((a,l)=>a-l);return r>=o&&r<=i}function nt(e){let n=e/Ye;return Math.trunc(n)}function tt(e){let n=e/Ie;return Math.trunc(n)}function rt(e,n,t){let r=d(e,t?.in),o=r.getFullYear(),i=r.getDate(),a=O(t?.in||e,0);a.setFullYear(o,n,15),a.setHours(0,0,0,0);let l=yn(a);return r.setMonth(n,Math.min(i,l)),r}function ot(e,n,t){let r=d(e,t?.in);return r.setDate(n),r}function at(e,n,t){let r=d(e,t?.in);return r.setMonth(0),r.setDate(n),r}function it(e,n,t){let r=d(e,t?.in);return r.setHours(n),r}function lt(e,n,t){let r=d(e,t?.in);return r.setMinutes(n),r}function st(e,n,t){let r=d(e,t?.in);return r.setSeconds(n),r}function ut(e,n,t){return $(e,-n,t)}function dt(e,n,t){return le(e,-n,t)}var to=(e,n)=>{let t=Math.abs(Pn(n,e)),r=Math.abs(En(n,e)),o=r-t*7,i=Math.abs(Un(n,e)),a=i-r*24,l=Math.abs(Bn(n,e)),s=l-i*60,u=Math.abs(Fn(n,e))-l*60;return{before:e>n,weeks:t,days:o,hours:a,minutes:s,seconds:u}},ct=(e,n)=>{let t=n.before?-1:1,r=(n.seconds||0)*t,o=(n.minutes||0)*t,i=(n.hours||0)*t,a=(n.days||0)*t,l=(n.weeks||0)*t;return le(oe(cn(ze(vn(e,r),o),i),a),l)},ro=e=>e.end?e.end.date:ct(e.start.date,e.duration),oo=[\"PUBLISH\"],ao=[\"2.0\"],vt=[an,ln],io=[\"FREE\",\"BUSY\",\"BUSY-UNAVAILABLE\",\"BUSY-TENTATIVE\"],lo=[\"BASE64\"],so=[\"BINARY\"],uo=[\"NEEDS-ACTION\",\"ACCEPTED\",\"DECLINED\",\"TENTATIVE\",\"DELEGATED\"],co=[\"DATE\",\"DATE-TIME\"],mt=[\"SECONDLY\",\"MINUTELY\",\"HOURLY\",\"DAILY\",\"WEEKLY\",\"MONTHLY\",\"YEARLY\"],vo=[\"TENTATIVE\",\"CONFIRMED\",\"CANCELLED\"],mo=[\"NEEDS-ACTION\",\"COMPLETED\",\"IN-PROGRESS\",\"CANCELLED\"],Eo=[\"DRAFT\",\"FINAL\",\"CANCELLED\"],po=[\"START\",\"END\"],Sn=[\"SU\",\"MO\",\"TU\",\"WE\",\"TH\",\"FR\",\"SA\"],yo=[\"PRIVATE\",\"PUBLIC\",\"CONFIDENTIAL\"],To=[\"TRANSPARENT\",\"OPAQUE\"],b=(e,n)=>n===void 0?!1:e>=n,Et=(e,{start:n,end:t},r)=>{if(b(r.length,e.count))return;let o=e.frequency,i=e.interval||1;if(!o)return;let a=n;if(o===\"SECONDLY\"){for(;a{let o=t.map(({day:i,occurrence:a})=>({occurrence:a,day:Sn.indexOf(i)}));return e.frequency===\"YEARLY\"?e.byYearday||e.byMonthday?n.map(i=>i.filter(a=>o.find(({day:l})=>l===q(a)))):e.byWeekNo?n.map(i=>i.flatMap(a=>o.map(({day:l})=>Z(a,l,{weekStartsOn:r})))):e.byMonth?n.map(i=>i.flatMap(a=>o.flatMap(({day:l,occurrence:s})=>me(N(je(a)),N(we(a)),l,r,s)))):n.map(i=>i.flatMap(a=>o.flatMap(({day:l,occurrence:s})=>me(N(jn(a)),N(wn(a)),l,r,s)))):e.frequency===\"MONTHLY\"?e.byMonthday?n.map(i=>i.filter(a=>o.find(({day:l})=>l===q(a)))):n.map(i=>i.flatMap(a=>o.flatMap(({day:l,occurrence:s})=>me(N(je(a)),N(we(a)),l,r,s)))):e.frequency===\"WEEKLY\"?n.map(i=>i.flatMap(a=>o.map(({day:l})=>Z(a,l,{weekStartsOn:r})))):n.map(i=>i.filter(a=>o.find(({day:l})=>l===q(a))))},me=(e,n,t,r,o)=>{if(o!==void 0){if(!(o<0)){let l=Z(e,t,{weekStartsOn:r}),s=e>l;return le(l,(o||1)-1+(s?1:0))}let i=Z(n,t,{weekStartsOn:r}),a=nN(i)).filter(i=>fn(i,{start:e,end:n})).filter(i=>t===q(i))},N=e=>ze(e,-e.getTimezoneOffset()),yt=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"?n.map(r=>r.flatMap(o=>t.map(i=>it(o,i)))):n.map(r=>r.filter(o=>t.includes(Gn(o)))),Tt=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"||e.frequency===\"HOURLY\"?n.map(r=>r.flatMap(o=>t.map(i=>lt(o,i)))):n.map(r=>r.filter(o=>t.includes(Zn(o)))),ft=(e,n,t)=>e.frequency===\"YEARLY\"?n.map(r=>r.flatMap(o=>t.map(i=>rt(o,i)))):n.map(r=>r.filter(o=>t.includes(Tn(o)))),St=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"?n.map(r=>r.flatMap(o=>{let i=yn(o);return t.map(a=>a>i?void 0:ot(o,a)).filter(a=>!!a)})):e.frequency===\"WEEKLY\"?n:n.map(r=>r.filter(o=>t.includes(Tn(o)))),At=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"||e.frequency===\"HOURLY\"||e.frequency===\"MINUTELY\"?n.map(r=>r.flatMap(o=>t.map(i=>st(o,i)))):n.map(r=>r.filter(o=>t.includes(xn(o)))),Dt=(e,n,t)=>!e.byYearday&&!e.byWeekNo&&!e.byMonthday&&!e.byMonth&&!e.byDay&&!e.byHour&&!e.byMinute&&!e.bySecond?n:n.map(r=>r.sort(Ce).filter((o,i)=>t.some(a=>a>0?i===0?!1:i%a===0:i===0?r.length-1+a===0:i%(r.length-1+a)===0))),Ot=(e,n,t,r)=>e.frequency===\"YEARLY\"?n.map(o=>o.flatMap(i=>t.map(a=>et(i,a,{weekStartsOn:r})))):n,Rt=(e,n,t)=>e.frequency===\"YEARLY\"?n.map(r=>r.flatMap(o=>t.map(i=>at(o,i)))):e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"?n:n.map(r=>r.filter(o=>t.includes(Xn(o)))),gt=(e,n,t)=>{let r=t;return e.byMonth&&(r=ft(e,r,e.byMonth)),e.byWeekNo&&(r=Ot(e,r,e.byWeekNo,n.weekStartsOn)),e.byYearday&&(r=Rt(e,r,e.byYearday)),e.byMonthday&&(r=St(e,r,e.byMonthday)),e.byDay&&(r=pt(e,r,e.byDay,n.weekStartsOn)),e.byHour&&(r=yt(e,r,e.byHour)),e.byMinute&&(r=Tt(e,r,e.byMinute)),e.bySecond&&(r=At(e,r,e.bySecond)),e.bySetPos&&(r=Dt(e,r,e.bySetPos)),r.map(o=>o.sort(Ce).filter(i=>!(n.exceptions.length>0&&n.exceptions.some(a=>Qn(a,i))||!fn(i,{start:n.start,end:n.end}))))},Mt=2,Nt=(e,n)=>{var t;let r=n.start,o=((t=e.until)==null?void 0:t.date)||n?.end||mn(r,Mt),i=n.exceptions||[],a=(e.workweekStart?Sn.indexOf(e.workweekStart):1)%7,l=[[r]];Et(e,{start:r,end:o},l);let s=gt(e,{start:r,end:o,exceptions:i,weekStartsOn:a},l);return e.count?s.flat().splice(0,e.count):s.flat()},It=(e,n)=>n.flatMap(t=>!t.recurrenceRule||t.recurrenceRule.until&&t.recurrenceRule.until.date({...t,start:r}))),x=e=>{let n=e[0]===\"+\"?1:-1,t=Number(e.slice(1,3)),r=e.length>3?Number(e.slice(3,5)):0,o=e.length>5?Number(e.slice(5,7)):0;return((t*60+r)*60+o)*1e3*n},Yt=(e,n)=>{let t=\"en-US\",r=new Date(n.toLocaleString(t,{timeZone:\"UTC\"}));try{return new Date(n.toLocaleString(t,{timeZone:e})).getTime()-r.getTime()}catch{return n.getTime()-r.getTime()}},An=(e,n,t)=>{let r=t?.find(i=>i.id===n);if(r){let i=It(e,r.props).sort((s,u)=>Ce(s.start,u.start));for(let s=0;s5?u.substring(0,5):u;return{offset:c,milliseconds:x(c)}}let a=i[i.length-1].offsetTo,l=a.length>5?a.substring(0,5):a;return{offset:l,milliseconds:x(l)}}let o=Yt(n,e);if(!Number.isNaN(o)){let i=o<0,a=Math.abs(nt(o)),l=Math.abs(tt(o))-a*60,s=a.toString().length===1?`0${a}`:a.toString(),u=l.toString().length===1?`0${l}`:l.toString();return{offset:`${i?\"-\":\"+\"}${s}${u}`,milliseconds:o}}},Dn=e=>{if(!Le(e))throw Error(`Incorrect date object: ${e}`);let n=e.toISOString(),t=n.slice(0,4),r=n.slice(5,7),o=n.slice(8,10);return`${t}${r}${o}`},h=e=>{if(!Le(e))throw Error(`Incorrect date object: ${e}`);return he(e)},zt=(e,n,t)=>{let r=n.date;if(!Le(r))throw Error(`Incorrect date object: ${r}`);return An(r,n.timezone,t)?he(r,!0):h(e)},he=(e,n)=>{let t=e.toISOString(),r=t.slice(0,4),o=t.slice(5,7),i=t.slice(8,10),a=t.slice(11,13),l=t.slice(14,16),s=t.slice(17,19);return`${r}${o}${i}T${a}${l}${s}${n?\"\":\"Z\"}`},Ct=(e,n)=>{let t=x(n),r=$(e,t);return he(r,!0)},Lt=e=>{var n,t;let r=R([((n=e.options)==null?void 0:n.related)&&{key:\"RELATED\",value:e.options.related}].filter(o=>!!o));if(e.type===\"absolute\")return y(\"TRIGGER\",h((t=e.value)==null?void 0:t.date));if(e.type===\"relative\")return y(\"TRIGGER\",H(e.value),r)},Ee=e=>Object.keys(e),ht=(e,n)=>{if(!e)return\"\";let t=\"\";return Object.entries(e).forEach(([r,o])=>{let i=n?.[r];if(!i){t+=y(bt(r),o?.toString());return}let a=i.generate(o);a&&(t+=y(i.name,a.value,a.options?R(Object.entries(a.options).map(([l,s])=>({key:l,value:s}))):void 0))}),t},bt=e=>{let n=\"X-\";for(let t of e)t===t.toUpperCase()&&(n+=\"-\"),n+=t.toUpperCase();return n},Kt=e=>{let n=(e.match(/\\n/g)||[]).length;return e.length+n},kt=e=>{let n=e.split(gn),t=[];return n.forEach(r=>{if(Kt(r)<75){t.push(r);return}Vt(r,75).forEach(o=>{t.push(o)})}),t.join(sn)},Vt=(e,n)=>{let t=[],r=\"\",o=0;for(let i=0;in?(t.push(t.length===0?r:` ${r}`),r=a,o=l):(r+=a,o+=l)}return r&&t.push(t.length===0?r:` ${r}`),t},I=(e,n)=>{let t=Ee(e),r=n.childComponents,o=r?Ee(r):[],i=n.generateArrayValues,a=i?Ee(i):[],l=\"\";return l+=In(n.icsComponent),t.forEach(s=>{if(o.includes(s)||a.includes(s)||s===\"nonStandard\")return;let u=n.icsKeyMap[s];if(!u)return;let c=e[s];if(c==null)return;let v=n.generateValues[s];if(v){l+=v({icsKey:u,value:c,key:s});return}l+=y(u,String(c))}),r&&o&&o.length>0&&o.forEach(s=>{let u=e[s];!u||!Array.isArray(u)||u.length===0||u.forEach(c=>{let v=r[s];v&&(l+=v(c))})}),i&&a&&a.length>0&&a.forEach(s=>{let u=i[s];if(!u)return;let c=n.icsKeyMap[s];if(!c)return;let v=e[s];!v||!Array.isArray(v)||v.length===0||v.forEach(E=>{l+=u({icsKey:c,value:E})})}),e.nonStandard&&(l+=ht(e.nonStandard,n?.nonStandard)),l+=Yn(n.icsComponent),n!=null&&n.skipFormatLines?l:kt(l)},U=(e,n)=>y(e,Math.trunc(n).toString()),_t=(e,n)=>I(e,{icsComponent:ee,icsKeyMap:fe,generateValues:{trigger:({value:t})=>Lt(t),duration:({icsKey:t,value:r})=>y(t,H(r)),repeat:({icsKey:t,value:r})=>U(t,r)},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),attachments:({value:t})=>zn(t)},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines}),T=(e,n,t=[],r)=>{let o=R([n.type&&{key:\"VALUE\",value:n.type},n.local&&!(r!=null&&r.forceUtc)&&{key:\"TZID\",value:n.local.timezone},...t].filter(a=>!!a)),i=n.type===\"DATE\"?Dn(n.date):n.local&&!(r!=null&&r.forceUtc)?zt(n.date,n.local,r?.timezones):h(n.date);return y(e,i,o)},be=(e,n,t)=>T(n,e,void 0,t),ue=e=>{let n=R([e.dir&&{key:\"DIR\",value:`\"${e.dir}\"`},e.name&&{key:\"CN\",value:e.name},e.sentBy&&{key:\"SENT-BY\",value:K(e.sentBy)}].filter(t=>!!t));return y(\"ORGANIZER\",K(e.email),n)},Ut=e=>e.occurrence?`${e.occurrence}${e.day}`:e.day,de=e=>{var n;let t=\"\",r=R([e.byDay&&{key:\"BYDAY\",value:e.byDay.map(o=>Ut(o)).join(\",\")},e.byHour&&{key:\"BYHOUR\",value:e.byHour.join(\",\")},e.byMinute&&{key:\"BYMINUTE\",value:e.byMinute.join(\",\")},e.byMonth&&{key:\"BYMONTH\",value:e.byMonth.map(o=>o+1).join(\",\")},e.byMonthday&&{key:\"BYMONTHDAY\",value:e.byMonthday.join(\",\")},e.bySecond&&{key:\"BYSECOND\",value:e.bySecond.join(\",\")},e.bySetPos&&{key:\"BYSETPOS\",value:e.bySetPos.join(\",\")},e.byWeekNo&&{key:\"BYWEEKNO\",value:e.byWeekNo.join(\",\")},e.byYearday&&{key:\"BYYEARDAY\",value:e.byYearday.join(\",\")},e.count&&{key:\"COUNT\",value:e.count.toString()},e.frequency&&{key:\"FREQ\",value:e.frequency},e.interval&&{key:\"INTERVAL\",value:e.interval.toString()},e.until&&{key:\"UNTIL\",value:e.until.type===\"DATE\"?Dn(e.until.date):h(((n=e.until.local)==null?void 0:n.date)||e.until.date)},e.workweekStart&&{key:\"WKST\",value:e.workweekStart}].filter(o=>!!o));return t+=y(\"RRULE\",r),t},Ke=(e,n)=>{let t=\"\";return t+=T(\"RECURRENCE-ID\",e.value,e.range?[{key:\"RANGE\",value:e.range}]:void 0,n),t},Bt=e=>e.replace(/([\\\\;,])|(\\n)/g,(n,t)=>t?`\\\\${t}`:\"\\\\n\"),A=(e,n,t)=>y(e,Bt(n),t?R(t):void 0),Ft=(e,n)=>I(e,{icsComponent:Q,icsKeyMap:Ae,omitGenerateKeys:[\"descriptionAltRep\"],generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),end:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),created:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),lastModified:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),categories:({icsKey:t,value:r})=>y(t,r.join(\",\")),description:({icsKey:t,value:r})=>A(t,r,e.descriptionAltRep?[{key:\"ALTREP\",value:`\"${e.descriptionAltRep}\"`}]:void 0),location:({icsKey:t,value:r})=>A(t,r),comment:({icsKey:t,value:r})=>A(t,r),summary:({icsKey:t,value:r})=>A(t,r),recurrenceRule:({value:t})=>de(t),duration:({icsKey:t,value:r})=>y(t,H(r)),organizer:({value:t})=>ue(t),sequence:({icsKey:t,value:r})=>U(t,r),recurrenceId:({value:t})=>Ke(t,{timezones:n?.timezones})},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),exceptionDates:({value:t})=>be(t,\"EXDATE\",{timezones:n?.timezones})},childComponents:{alarms:t=>_t(t,{nonStandard:n?.nonStandard,skipFormatLines:!0})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),Pt=(e,n)=>I(e,{icsComponent:e.type,icsKeyMap:Oe,generateValues:{start:({icsKey:t,value:r})=>y(t,Ct(r,e.offsetTo)),recurrenceRule:({value:t})=>de(t),recurrenceDate:({icsKey:t,value:r})=>T(t,r)},omitGenerateKeys:[\"type\"],nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines}),Ht=(e,n)=>I(e,{icsComponent:X,icsKeyMap:De,generateValues:{lastModified:({icsKey:t,value:r})=>y(t,h(r))},childComponents:{props:t=>Pt(t,{nonStandard:n?.nonStandard,skipFormatLines:!0})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines}),$t=(e,n)=>I(e,{icsComponent:ne,icsKeyMap:Re,generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),due:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),created:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),lastModified:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),completed:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),categories:({icsKey:t,value:r})=>y(t,r.join(\",\")),description:({icsKey:t,value:r})=>A(t,r),location:({icsKey:t,value:r})=>A(t,r),comment:({icsKey:t,value:r})=>A(t,r),summary:({icsKey:t,value:r})=>A(t,r),recurrenceRule:({value:t})=>de(t),duration:({icsKey:t,value:r})=>y(t,H(r)),organizer:({value:t})=>ue(t),sequence:({icsKey:t,value:r})=>U(t,r),percentComplete:({icsKey:t,value:r})=>U(t,r),recurrenceId:({value:t})=>Ke(t,{timezones:n?.timezones})},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),exceptionDates:({value:t})=>be(t,\"EXDATE\",{timezones:n?.timezones})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),wt=(e,n)=>I(e,{icsComponent:te,icsKeyMap:ge,generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),created:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),lastModified:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),categories:({icsKey:t,value:r})=>y(t,r.join(\",\")),description:({icsKey:t,value:r})=>A(t,r),comment:({icsKey:t,value:r})=>A(t,r),summary:({icsKey:t,value:r})=>A(t,r),recurrenceRule:({value:t})=>de(t),organizer:({value:t})=>ue(t),sequence:({icsKey:t,value:r})=>U(t,r),recurrenceId:({value:t})=>Ke(t,{timezones:n?.timezones})},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),exceptionDates:({value:t})=>be(t,\"EXDATE\",{timezones:n?.timezones})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),jt=(e,n)=>{let t=e.values.map(o=>`${h(o.start)}/${o.end?h(o.end):H(o.duration)}`).join(\",\"),r=R([e.type&&{key:\"FBTYPE\",value:e.type}].filter(o=>!!o));return y(n,t,r)},qt=(e,n)=>I(e,{icsComponent:re,icsKeyMap:Me,generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),end:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),comment:({icsKey:t,value:r})=>A(t,r),organizer:({value:t})=>ue(t)},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),freeBusy:({value:t})=>jt(t,\"FREEBUSY\")},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),fo=(e,n)=>I(e,{icsComponent:Ne,icsKeyMap:Se,generateValues:{},childComponents:{timezones:t=>Ht(t,{nonStandard:n?.nonStandard,skipFormatLines:!0}),events:t=>Ft(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard}),todos:t=>$t(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard}),journals:t=>wt(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard}),freeBusy:t=>qt(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard})},nonStandard:n?.nonStandard}),m=(e,n)=>{if(e===void 0)return n;let t=e[\"~standard\"].validate(n);if(t instanceof Promise)throw new TypeError(\"Schema validation must be synchronous\");if(t.issues)throw new Error(JSON.stringify(t.issues,null,2));return t.value},Wt=(e,n)=>{var t,r,o,i;let a=((t=n.options)==null?void 0:t.VALUE)===\"BINARY\"?{type:\"binary\",encoding:((r=n.options)==null?void 0:r.ENCODING)||\"BASE64\",binary:n.value,value:(o=n.options)==null?void 0:o.VALUE}:{type:\"uri\",url:n.value,formatType:(i=n.options)==null?void 0:i.FMTTYPE};return m(e,a)},k=e=>e.replace(/mailto:/gi,\"\"),w=(e,n)=>{var t,r,o,i,a,l,s,u,c,v,E;return m(e,{email:k(n.value),delegatedFrom:(t=n.options)!=null&&t[\"DELEGATED-FROM\"]?k((r=n.options)==null?void 0:r[\"DELEGATED-FROM\"]):void 0,dir:(o=n.options)==null?void 0:o.DIR,member:(i=n.options)!=null&&i.MEMBER?k(n.options.MEMBER):void 0,name:(a=n.options)==null?void 0:a.CN,partstat:(l=n.options)==null?void 0:l.PARTSTAT,role:(s=n.options)==null?void 0:s.ROLE,sentBy:(u=n.options)!=null&&u[\"SENT-BY\"]?k(n.options[\"SENT-BY\"]):void 0,rsvp:(c=n.options)!=null&&c.RSVP?((v=n.options)==null?void 0:v.RSVP)===\"TRUE\"?!0:((E=n.options)==null?void 0:E.RSVP)===\"FALSE\"?!1:void 0:void 0})},j=(e,n)=>{let t=n.value,r={};t[0]===\"-\"&&(r.before=!0,t=t.slice(1)),t=t.slice(1);let o=t.split(\"T\"),i=o[0];if(i.includes(\"D\")){let[l,s]=i.split(\"D\");r.days=Number(l),i=s}if(i.includes(\"W\")){let[l,s]=i.split(\"W\");r.weeks=Number(l),i=s}let a=o[1];if(a){if(a.includes(\"H\")){let[l,s]=a.split(\"H\");r.hours=Number(l),a=s}if(a.includes(\"M\")){let[l,s]=a.split(\"M\");r.minutes=Number(l),a=s}if(a.includes(\"S\")){let[l,s]=a.split(\"S\");r.seconds=Number(l),a=s}}return m(e,r)},Jt=(e,n)=>{let t=Number.parseInt(n.value.slice(0,4),10),r=Number.parseInt(n.value.slice(4,6),10)-1,o=Number.parseInt(n.value.slice(6,8),10),i=new Date(Date.UTC(t,r,o));return m(e,i)},B=(e,n)=>{let t=Number.parseInt(n.value.slice(0,4),10),r=Number.parseInt(n.value.slice(4,6),10)-1,o=Number.parseInt(n.value.slice(6,8),10),i=Number.parseInt(n.value.slice(9,11),10),a=Number.parseInt(n.value.slice(11,13),10),l=Number.parseInt(n.value.slice(13,15),10),s=new Date(Date.UTC(t,r,o,i,a,l));return m(e,s)},Gt=(e,n,t)=>{let r=x(t),o=B(void 0,n),i=ut(o,r);return m(e,i)},Zt=(e,n)=>{var t,r,o,i,a,l;if(((t=e.options)==null?void 0:t.VALUE)===\"DATE\")return{date:Jt(void 0,e),type:(r=e.options)==null?void 0:r.VALUE};let s=((o=e.options)==null?void 0:o.VALUE)||\"DATE-TIME\",u=B(void 0,e);if(!((i=e.options)!=null&&i.TZID))return{date:u,type:s};let c=An(u,e.options.TZID,n?.timezones);return c?{date:$(u,-c.milliseconds),type:s,local:(a=e.options)!=null&&a.TZID?{date:u,timezone:(l=e.options)==null?void 0:l.TZID,tzoffset:c.offset}:void 0}:{date:u,type:s}},p=(e,n,t)=>m(e,Zt(n,t)),xt=(e,n,t)=>{var r,o,i,a;let l=((r=n.options)==null?void 0:r.VALUE)===\"DATE-TIME\"||((o=n.options)==null?void 0:o.VALUE)===\"DATE\"?{type:\"absolute\",value:p(void 0,n,t),options:{related:(i=n.options)==null?void 0:i.RELATED}}:{type:\"relative\",value:j(void 0,n),options:{related:(a=n.options)==null?void 0:a.RELATED}};return m(e,l)},Xt=e=>e.startsWith('\"')&&e.endsWith('\"')?e.slice(1,-1):e,On=e=>e.map(n=>{let[t,...r]=n.split(ye),o=r.join(ye);return{property:t,value:Xt(o)}},{}),Qt=e=>e.reduce((n,t)=>(n[t.property]=t.value,n),{}),er=e=>Qt(On(e)),nr=e=>{let n=!1,t;for(let i=0;i{let{property:n,value:t}=nr(e);if(n.includes(W)){let[r,...o]=n.split(W),i=er(o);return{property:r,line:{options:i,value:t}}}return{property:n,line:{value:t}}},qe=e=>/^[ \\t]/.test(e),rr=e=>/^[A-Z]+(?:-[A-Z]+)*[:;]/.test(e),or=e=>{let n=[],t=e.split(pe);for(;t[0]===\"\";)t.shift();let r=t.length;for(;r>0&&t[r-1]===\"\";)r-=1,t.pop();for(let o=0;oo!==\"\")},ar=(e,n,t)=>{if(!n)return e;let r={};return Object.entries(n).forEach(([o,i])=>{let a=Object.entries(t||{}).find(([u,c])=>c.name===o);if(!a){r[ir(o)]=i.value;return}let l=a[1].convert(i),s=a[1].schema;if(!s){r[a[0]]=l;return}r[a[0]]=m(s,l)}),e.nonStandard=r,e},ir=e=>{let n=e.startsWith(\"X-\")?e.slice(2):e,t=\"\",r=!1;for(let o of n)o===\"-\"?r=!0:(t+=r?o.toUpperCase():o.toLowerCase(),r=!1);return t},lr=e=>e.startsWith(\"X-\"),Y=(e,n,t)=>{let r=n.replace(Rn(t?.icsComponent),\"\"),o=[...new Set(Object.values(t.childComponents||{}).flatMap(({icsComponent:v})=>v))],i=or(o.reduce((v,E)=>v.replace(Be(E),\"\"),r)),a=t.defaultValues||{},l={};i.forEach(v=>{var E,M;let{property:z,line:C}=tr(v);lr(z)&&(l[z]=C);let S=t.objectKeyMap[z];if(!S)return;let _=(E=t.convertArrayValues)==null?void 0:E[S];if(_){let L=_({line:C});if(!L)return;(a[S]===void 0||a[S]===null||!Array.isArray(a[S]))&&(a[S]=[]),Array.isArray(L)?a[S].push(...L):a[S].push(L);return}let Ue=(M=t.convertValues)==null?void 0:M[S];if(Ue){let L=Ue({line:C});if(!L)return;a[S]=L;return}a[S]=C.value});let s=t.childComponents,u=s?Object.keys(s||{}):[];s&&u.length>0&&u.forEach(v=>{let E=s?.[v];if(!E)return;let M=Array.isArray(E.icsComponent)?E.icsComponent:[E.icsComponent],z=[],C=[];M.forEach(S=>{C.push(...r.matchAll(Be(S)))}),C.map(S=>S[0]).forEach(S=>{let _=E.convert(S,{data:a});_&&z.push(_)}),z.length!==0&&(a[v]=z)});let c=m(e,a);return t!=null&&t.nonStandard?ar(c,l,t?.nonStandard):c},ce=(e,n)=>{var t,r,o;return m(e,{name:(t=n.options)==null?void 0:t.CN,dir:(r=n.options)==null?void 0:r.DIR,sentBy:(o=n.options)!=null&&o[\"SENT-BY\"]?k(n.options[\"SENT-BY\"]):void 0,email:k(n.value)})},ke=(e,n,t)=>{var r;return m(e,{value:p(void 0,n,t),range:(r=n.options)==null?void 0:r.RANGE})},sr=e=>{if(e.length===2)return{day:e};let n=e.slice(0,-2);return{day:e.replace(n,\"\"),occurrence:Number(n)}},ur=(e,n)=>m(e,sr(n.value)),dr=(e,n)=>m(e,n.value),cr=[\"until\"],vr=e=>cr.includes(e),mr=[\"bySecond\",\"byMinute\",\"byHour\",\"byMonthday\",\"byYearday\",\"byWeekNo\",\"bySetPos\"],Er=e=>mr.includes(e),pr=[\"byDay\"],yr=e=>pr.includes(e),Tr=[\"count\",\"interval\"],fr=e=>Tr.includes(e),ve=(e,n,t)=>{let r={};return On(n.value.split(W)).forEach(o=>{let{property:i,value:a}=o,l=Qe[i];if(l){if(vr(l)){r[l]=p(void 0,{value:a,options:{VALUE:a.includes(\"T\")?\"DATE-TIME\":\"DATE\"}},{timezones:t?.timezones});return}if(Er(l)){r[l]=a.split(V).map(s=>Number(s));return}if(l===\"byMonth\"){r[l]=a.split(V).map(s=>Number(s)-1);return}if(yr(l)){r[l]=a.split(V).map(s=>ur(void 0,{value:s}));return}if(fr(l)){r[l]=Number(a);return}if(l===\"frequency\"){if(!a||!mt.includes(a))return;r[l]=a;return}if(l===\"workweekStart\"){r[l]=dr(void 0,{value:a});return}}}),m(e,r)},Ve=(e,n)=>m(e,n.value),Sr=(e,n)=>m(e,n.value),_e=(e,n,t)=>m(e,n.value.split(\",\").map(r=>p(void 0,{value:r,options:n.options},t))),Ar=(e,n)=>m(e,n.value),Dr=(e,n)=>m(e,n.value),Or=(e,n)=>m(e,n.value),F=(e,n)=>m(e,Number.parseInt(n.value,10)),Rr=e=>e.replace(/\\\\(([,;\\\\])|([nN]))/g,(n,t,r)=>r||`\n`),D=(e,n)=>m(e,Rr(n.value)),gr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:ee,objectKeyMap:We,convertValues:{trigger:({line:o})=>xt(void 0,o,{timezones:r?.timezones}),duration:({line:o})=>j(void 0,o),repeat:({line:o})=>F(void 0,o)},convertArrayValues:{attachments:({line:o})=>Wt(void 0,o),attendees:({line:o})=>w(void 0,o)},nonStandard:r?.nonStandard,timezones:r?.timezones})},Mr=(...e)=>{let[n,t,r]=e,o,i=Y(n,t,{icsComponent:Q,objectKeyMap:Ge,convertValues:{stamp:({line:a})=>p(void 0,a,{timezones:r?.timezones}),start:({line:a})=>p(void 0,a,{timezones:r?.timezones}),end:({line:a})=>p(void 0,a,{timezones:r?.timezones}),created:({line:a})=>p(void 0,a,{timezones:r?.timezones}),lastModified:({line:a})=>p(void 0,a,{timezones:r?.timezones}),categories:({line:a})=>a.value.split(V),description:({line:a})=>{var l;return(l=a.options)!=null&&l.ALTREP&&(o=a.options.ALTREP),D(void 0,a)},location:({line:a})=>D(void 0,a),comment:({line:a})=>D(void 0,a),summary:({line:a})=>D(void 0,a),recurrenceRule:({line:a})=>ve(void 0,a,{timezones:r?.timezones}),duration:({line:a})=>j(void 0,a),organizer:({line:a})=>ce(void 0,a),sequence:({line:a})=>F(void 0,a),class:({line:a})=>Ve(void 0,a),recurrenceId:({line:a})=>ke(void 0,a,{timezones:r?.timezones}),status:({line:a})=>Ar(void 0,a),timeTransparent:({line:a})=>Sr(void 0,a)},convertArrayValues:{attendees:({line:a})=>w(void 0,a),exceptionDates:({line:a})=>_e(void 0,a,{timezones:r?.timezones})},childComponents:{alarms:{icsComponent:ee,convert:a=>gr(void 0,a,{nonStandard:r?.nonStandard,timezones:r?.timezones})}},timezones:r?.timezones,nonStandard:r?.nonStandard});return o&&(i.descriptionAltRep=o),i},Nr=(...e)=>{let[n,t,r]=e,o=t.split(\"BEGIN:\")[1].split(pe)[0],i=vt.includes(o)?o:\"STANDARD\",a=t.split(\"TZOFFSETTO:\")[1].split(pe)[0];return Y(n,t,{icsComponent:i,objectKeyMap:xe,defaultValues:{type:i},convertValues:{start:({line:l})=>Gt(void 0,l,a),recurrenceRule:({line:l})=>ve(void 0,l,{timezones:r?.timezones}),recurrenceDate:({line:l})=>p(void 0,l,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},Ir=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:X,objectKeyMap:Ze,convertValues:{lastModified:({line:o})=>B(void 0,o)},childComponents:{props:{icsComponent:[\"DAYLIGHT\",\"STANDARD\"],convert:o=>Nr(void 0,o,{nonStandard:r?.nonStandard,timezones:r?.timezones})}},nonStandard:r?.nonStandard,timezones:r?.timezones})},Yr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:ne,objectKeyMap:en,convertValues:{stamp:({line:o})=>p(void 0,o,{timezones:r?.timezones}),start:({line:o})=>p(void 0,o,{timezones:r?.timezones}),due:({line:o})=>p(void 0,o,{timezones:r?.timezones}),created:({line:o})=>p(void 0,o,{timezones:r?.timezones}),lastModified:({line:o})=>p(void 0,o,{timezones:r?.timezones}),completed:({line:o})=>p(void 0,o,{timezones:r?.timezones}),categories:({line:o})=>o.value.split(V),description:({line:o})=>D(void 0,o),location:({line:o})=>D(void 0,o),comment:({line:o})=>D(void 0,o),summary:({line:o})=>D(void 0,o),recurrenceRule:({line:o})=>ve(void 0,o,{timezones:r?.timezones}),duration:({line:o})=>j(void 0,o),organizer:({line:o})=>ce(void 0,o),sequence:({line:o})=>F(void 0,o),percentComplete:({line:o})=>F(void 0,o),class:({line:o})=>Ve(void 0,o),recurrenceId:({line:o})=>ke(void 0,o,{timezones:r?.timezones}),status:({line:o})=>Dr(void 0,o)},convertArrayValues:{attendees:({line:o})=>w(void 0,o),exceptionDates:({line:o})=>_e(void 0,o,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},zr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:te,objectKeyMap:nn,convertValues:{stamp:({line:o})=>p(void 0,o,{timezones:r?.timezones}),start:({line:o})=>p(void 0,o,{timezones:r?.timezones}),created:({line:o})=>p(void 0,o,{timezones:r?.timezones}),lastModified:({line:o})=>p(void 0,o,{timezones:r?.timezones}),categories:({line:o})=>o.value.split(V),description:({line:o})=>D(void 0,o),comment:({line:o})=>D(void 0,o),summary:({line:o})=>D(void 0,o),recurrenceRule:({line:o})=>ve(void 0,o,{timezones:r?.timezones}),organizer:({line:o})=>ce(void 0,o),sequence:({line:o})=>F(void 0,o),class:({line:o})=>Ve(void 0,o),recurrenceId:({line:o})=>ke(void 0,o,{timezones:r?.timezones}),status:({line:o})=>Or(void 0,o)},convertArrayValues:{attendees:({line:o})=>w(void 0,o),exceptionDates:({line:o})=>_e(void 0,o,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},Cr=(e,n)=>{var t;return m(e,{type:(t=n.options)==null?void 0:t.FBTYPE,values:n.value.split(\",\").map(r=>{let[o,i]=r.split(\"/\"),a=B(void 0,{value:o});if(i.startsWith(\"PT\")){let s=j(void 0,{value:i});return{start:a,duration:s}}let l=B(void 0,{value:i});return{start:a,end:l}})})},Lr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:re,objectKeyMap:tn,convertValues:{stamp:({line:o})=>p(void 0,o,{timezones:r?.timezones}),start:({line:o})=>p(void 0,o,{timezones:r?.timezones}),end:({line:o})=>p(void 0,o,{timezones:r?.timezones}),comment:({line:o})=>D(void 0,o),organizer:({line:o})=>ce(void 0,o)},convertArrayValues:{attendees:({line:o})=>w(void 0,o),freeBusy:({line:o})=>Cr(void 0,o)},nonStandard:r?.nonStandard,timezones:r?.timezones})},So=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:Ne,objectKeyMap:Je,convertValues:{version:({line:o})=>o.value},childComponents:{timezones:{icsComponent:X,convert:o=>Ir(void 0,o,{nonStandard:r?.nonStandard})},events:{icsComponent:Q,convert:(o,{data:i})=>Mr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})},todos:{icsComponent:ne,convert:(o,{data:i})=>Yr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})},journals:{icsComponent:te,convert:(o,{data:i})=>zr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})},freeBusy:{icsComponent:re,convert:(o,{data:i})=>Lr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})}},nonStandard:r?.nonStandard})};export{pe as BREAK_REGEX,V as COMMA,sn as CRLF_BREAK,gn as CRLF_BREAK_REGEX,Mt as DEFAULT_END_IN_YEARS,ye as EQUAL_SIGN,Zr as ICS_COMPONENTS,Fe as LF_BREAK,Xr as MAX_LINE_LENGTH,on as OBJECT_END,rn as OBJECT_START,Nn as QUOTE,Hr as RRULE_KEYS,$r as RRULE_OBJECT_KEYS,Xe as RRULE_TO_KEYS,Qe as RRULE_TO_OBJECT_KEYS,W as SEMICOLON,Mn as SEPARATOR,xr as SPACE,vt as TIMEZONE_PROP_COMPONENTS,hr as VALARM_KEYS,ee as VALARM_OBJECT_KEY,br as VALARM_OBJECT_KEYS,fe as VALARM_TO_KEYS,We as VALARM_TO_OBJECT_KEYS,Kr as VCALENDAR_KEYS,Ne as VCALENDAR_OBJECT_KEY,kr as VCALENDAR_OBJECT_KEYS,Se as VCALENDAR_TO_KEYS,Je as VCALENDAR_TO_OBJECT_KEYS,Vr as VEVENT_KEYS,Q as VEVENT_OBJECT_KEY,_r as VEVENT_OBJECT_KEYS,Ae as VEVENT_TO_KEYS,Ge as VEVENT_TO_OBJECT_KEYS,Jr as VFREEBUSY_KEYS,re as VFREEBUSY_OBJECT_KEY,Gr as VFREEBUSY_OBJECT_KEYS,Me as VFREEBUSY_TO_KEYS,tn as VFREEBUSY_TO_OBJECT_KEYS,qr as VJOURNAL_KEYS,te as VJOURNAL_OBJECT_KEY,Wr as VJOURNAL_OBJECT_KEYS,ge as VJOURNAL_TO_KEYS,nn as VJOURNAL_TO_OBJECT_KEYS,ln as VTIMEZONE_DAYLIGHT_OBJECT_KEY,Ur as VTIMEZONE_KEYS,X as VTIMEZONE_OBJECT_KEY,Br as VTIMEZONE_OBJECT_KEYS,Fr as VTIMEZONE_PROP_KEYS,Pr as VTIMEZONE_PROP_OBJECT_KEYS,Oe as VTIMEZONE_PROP_TO_KEYS,xe as VTIMEZONE_PROP_TO_OBJECT_KEYS,an as VTIMEZONE_STANDARD_OBJECT_KEY,De as VTIMEZONE_TO_KEYS,Ze as VTIMEZONE_TO_OBJECT_KEYS,wr as VTODO_KEYS,ne as VTODO_OBJECT_KEY,jr as VTODO_OBJECT_KEYS,Re as VTODO_TO_KEYS,en as VTODO_TO_OBJECT_KEYS,lo as attachmentEncodingTypes,so as attachmentValueTypes,uo as attendeePartStatusTypes,oo as calendarMethods,ao as calendarVersions,yo as classTypes,gr as convertIcsAlarm,Wt as convertIcsAttachment,w as convertIcsAttendee,So as convertIcsCalendar,Ve as convertIcsClass,Jt as convertIcsDate,B as convertIcsDateTime,j as convertIcsDuration,Mr as convertIcsEvent,Ar as convertIcsEventStatus,_e as convertIcsExceptionDates,Lr as convertIcsFreeBusy,F as convertIcsInteger,zr as convertIcsJournal,Or as convertIcsJournalStatus,Gt as convertIcsLocalOnlyDateTime,ce as convertIcsOrganizer,ke as convertIcsRecurrenceId,ve as convertIcsRecurrenceRule,D as convertIcsText,p as convertIcsTimeStamp,Sr as convertIcsTimeTransparent,Ir as convertIcsTimezone,Nr as convertIcsTimezoneProp,Yr as convertIcsTodo,Dr as convertIcsTodoStatus,xt as convertIcsTrigger,dr as convertIcsWeekDay,ur as convertIcsWeekDayNumber,ar as convertNonStandardValues,Be as createGetRegex,Rn as createReplaceRegex,co as dateObjectTypes,vo as eventStatusTypes,Nt as extendByRecurrenceRule,It as extendTimezoneProps,io as freeBusyTypes,_t as generateIcsAlarm,zn as generateIcsAttachment,P as generateIcsAttendee,fo as generateIcsCalendar,Dn as generateIcsDate,H as generateIcsDuration,Ft as generateIcsEvent,qt as generateIcsFreeBusy,U as generateIcsInteger,wt as generateIcsJournal,zt as generateIcsLocalDateTime,Ct as generateIcsLocalOnlyDateTime,K as generateIcsMail,ue as generateIcsOrganizer,de as generateIcsRecurrenceRule,A as generateIcsText,T as generateIcsTimeStamp,Ht as generateIcsTimezone,Pt as generateIcsTimezoneProp,$t as generateIcsTodo,Lt as generateIcsTrigger,h as generateIcsUtcDateTime,Ut as generateIcsWeekdayNumber,ht as generateNonStandardValues,to as getDurationFromInterval,ro as getEventEnd,ct as getEventEndFromDuration,An as getTimezoneObjectOffset,Eo as journalStatusTypes,fr as recurrenceObjectKeyIsNumber,Er as recurrenceObjectKeyIsNumberArray,vr as recurrenceObjectKeyIsTimeStamp,yr as recurrenceObjectKeyIsWeekdayNumberArray,mt as recurrenceRuleFrequencies,To as timeTransparentTypes,x as timeZoneOffsetToMilliseconds,mo as todoStatusTypes,po as triggerRelations,Sn as weekDays};\n//# sourceMappingURL=ts-ics.mjs.map", "/* esm.sh - tslib@2.8.1 */\nvar m=function(e,t){return m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[i]=n[i])},m(e,t)};function P(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");m(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var v=function(){return v=Object.assign||function(t){for(var r,n=1,i=arguments.length;n=0;f--)(a=e[f])&&(o=(i<3?a(o):i>3?a(t,r,o):a(t,r))||o);return i>3&&o&&Object.defineProperty(t,r,o),o}function T(e,t){return function(r,n){t(r,n,e)}}function D(e,t,r,n,i,o){function a(b){if(b!==void 0&&typeof b!=\"function\")throw new TypeError(\"Function expected\");return b}for(var f=n.kind,p=f===\"getter\"?\"get\":f===\"setter\"?\"set\":\"value\",c=!t&&e?n.static?e:e.prototype:null,s=t||(c?Object.getOwnPropertyDescriptor(c,n.name):{}),l,w=!1,u=r.length-1;u>=0;u--){var y={};for(var h in n)y[h]=h===\"access\"?{}:n[h];for(var h in n.access)y.access[h]=n.access[h];y.addInitializer=function(b){if(w)throw new TypeError(\"Cannot add initializers after decoration has completed\");o.push(a(b||null))};var d=(0,r[u])(f===\"accessor\"?{get:s.get,set:s.set}:s[p],y);if(f===\"accessor\"){if(d===void 0)continue;if(d===null||typeof d!=\"object\")throw new TypeError(\"Object expected\");(l=a(d.get))&&(s.get=l),(l=a(d.set))&&(s.set=l),(l=a(d.init))&&i.unshift(l)}else(l=a(d))&&(f===\"field\"?i.unshift(l):s[p]=l)}c&&Object.defineProperty(c,n.name,s),w=!0}function R(e,t,r){for(var n=arguments.length>2,i=0;i0&&o[o.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!o||c[1]>o[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function x(e,t){var r=typeof Symbol==\"function\"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),i,o=[],a;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)o.push(i.value)}catch(f){a={error:f}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(a)throw a.error}}return o}function K(){for(var e=[],t=0;t1||p(u,h)})},y&&(i[u]=y(i[u])))}function p(u,y){try{c(n[u](y))}catch(h){w(o[0][3],h)}}function c(u){u.value instanceof _?Promise.resolve(u.value.v).then(s,l):w(o[0][2],u)}function s(u){p(\"next\",u)}function l(u){p(\"throw\",u)}function w(u,y){u(y),o.shift(),o.length&&p(o[0][0],o[0][1])}}function q(e){var t,r;return t={},n(\"next\"),n(\"throw\",function(i){throw i}),n(\"return\"),t[Symbol.iterator]=function(){return this},t;function n(i,o){t[i]=e[i]?function(a){return(r=!r)?{value:_(e[i](a)),done:!1}:o?o(a):a}:o}}function B(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof g==\"function\"?g(e):e[Symbol.iterator](),r={},n(\"next\"),n(\"throw\"),n(\"return\"),r[Symbol.asyncIterator]=function(){return this},r);function n(o){r[o]=e[o]&&function(a){return new Promise(function(f,p){a=e[o](a),i(f,p,a.done,a.value)})}}function i(o,a,f,p){Promise.resolve(p).then(function(c){o({value:c,done:f})},a)}}function L(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e}var z=Object.create?(function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}):function(e,t){e.default=t},O=function(e){return O=Object.getOwnPropertyNames||function(t){var r=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[r.length]=n);return r},O(e)};function H(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r=O(e),n=0;n0?\"+\":\"\")+String(this.n)+t),t},e.prototype.getJsWeekday=function(){return this.weekday===6?0:this.weekday+1},e})();var x=function(e){return e!=null},U=function(e){return typeof e==\"number\"},bt=function(e){return typeof e==\"string\"&&tt.includes(e)},S=Array.isArray,L=function(e,t){t===void 0&&(t=e),arguments.length===1&&(t=e,e=0);for(var r=[],n=e;n>0,n.length>t?String(n):(t=t-n.length,t>r.length&&(r+=b(r,t/r.length)),r.slice(0,t)+String(n))}var Ot=function(e,t,r){var n=e.split(t);return r?n.slice(0,r).concat([n.slice(r).join(t)]):n},Y=function(e,t){var r=e%t;return r*t<0?r+t:r},ft=function(e,t){return{div:Math.floor(e/t),mod:Y(e,t)}},A=function(e){return!x(e)||e.length===0},T=function(e){return!A(e)},w=function(e,t){return T(e)&&e.indexOf(t)!==-1};var _=function(e,t,r,n,i,a){return n===void 0&&(n=0),i===void 0&&(i=0),a===void 0&&(a=0),new Date(Date.UTC(e,t-1,r,n,i,a))},pe=[31,28,31,30,31,30,31,31,30,31,30,31],At=1e3*60*60*24,ht=9999,Lt=_(1970,1,1),me=[6,0,1,2,3,4,5];var X=function(e){return e%4===0&&e%100!==0||e%400===0},wt=function(e){return e instanceof Date},F=function(e){return wt(e)&&!isNaN(e.getTime())};var ve=function(e,t){var r=e.getTime(),n=t.getTime(),i=r-n;return Math.round(i/At)},et=function(e){return ve(e,Lt)},lt=function(e){return new Date(Lt.getTime()+e*At)},be=function(e){var t=e.getUTCMonth();return t===1&&X(e.getUTCFullYear())?29:pe[t]},C=function(e){return me[e.getUTCDay()]},kt=function(e,t){var r=_(e,t+1,1);return[C(r),be(r)]},dt=function(e,t){return t=t||e,new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()))},ct=function(e){var t=new Date(e.getTime());return t},gt=function(e){for(var t=[],r=0;rthis.maxDate;if(this.method===\"between\"){if(r)return!0;if(n)return!1}else if(this.method===\"before\"){if(n)return!1}else if(this.method===\"after\")return r?!0:(this.add(t),!1);return this.add(t)},e.prototype.add=function(t){return this._result.push(t),!0},e.prototype.getValue=function(){var t=this._result;switch(this.method){case\"all\":case\"between\":return t;case\"before\":case\"after\":default:return t.length?t[t.length-1]:null}},e.prototype.clone=function(){return new e(this.method,this.args)},e})(),H=we;import{__extends as ke}from\"/tslib@^2.4.0?target=denonext\";var ge=(function(e){ke(t,e);function t(r,n,i){var a=e.call(this,r,n)||this;return a.iterator=i,a}return t.prototype.add=function(r){return this.iterator(r,this._result.length)?(this._result.push(r),!0):!1},t})(H),xt=ge;var xe={dayNames:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],monthNames:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],tokens:{SKIP:/^[ \\r\\n\\t]+|^\\.$/,number:/^[1-9][0-9]*/,numberAsText:/^(one|two|three)/i,every:/^every/i,\"day(s)\":/^days?/i,\"weekday(s)\":/^weekdays?/i,\"week(s)\":/^weeks?/i,\"hour(s)\":/^hours?/i,\"minute(s)\":/^minutes?/i,\"month(s)\":/^months?/i,\"year(s)\":/^years?/i,on:/^(on|in)/i,at:/^(at)/i,the:/^the/i,first:/^first/i,second:/^second/i,third:/^third/i,nth:/^([1-9][0-9]*)(\\.|th|nd|rd|st)/i,last:/^last/i,for:/^for/i,\"time(s)\":/^times?/i,until:/^(un)?til/i,monday:/^mo(n(day)?)?/i,tuesday:/^tu(e(s(day)?)?)?/i,wednesday:/^we(d(n(esday)?)?)?/i,thursday:/^th(u(r(sday)?)?)?/i,friday:/^fr(i(day)?)?/i,saturday:/^sa(t(urday)?)?/i,sunday:/^su(n(day)?)?/i,january:/^jan(uary)?/i,february:/^feb(ruary)?/i,march:/^mar(ch)?/i,april:/^apr(il)?/i,may:/^may/i,june:/^june?/i,july:/^july?/i,august:/^aug(ust)?/i,september:/^sep(t(ember)?)?/i,october:/^oct(ober)?/i,november:/^nov(ember)?/i,december:/^dec(ember)?/i,comma:/^(,\\s*|(and|or)\\s*)+/i}},Z=xe;var Nt=function(e,t){return e.indexOf(t)!==-1},Ee=function(e){return e.toString()},Te=function(e,t,r){return\"\".concat(t,\" \").concat(r,\", \").concat(e)},De=(function(){function e(t,r,n,i){if(r===void 0&&(r=Ee),n===void 0&&(n=Z),i===void 0&&(i=Te),this.text=[],this.language=n||Z,this.gettext=r,this.dateFormatter=i,this.rrule=t,this.options=t.options,this.origOptions=t.origOptions,this.origOptions.bymonthday){var a=[].concat(this.options.bymonthday),u=[].concat(this.options.bynmonthday);a.sort(function(d,y){return d-y}),u.sort(function(d,y){return y-d}),this.bymonthday=a.concat(u),this.bymonthday.length||(this.bymonthday=null)}if(x(this.origOptions.byweekday)){var o=S(this.origOptions.byweekday)?this.origOptions.byweekday:[this.origOptions.byweekday],s=String(o);this.byweekday={allWeeks:o.filter(function(d){return!d.n}),someWeeks:o.filter(function(d){return!!d.n}),isWeekdays:s.indexOf(\"MO\")!==-1&&s.indexOf(\"TU\")!==-1&&s.indexOf(\"WE\")!==-1&&s.indexOf(\"TH\")!==-1&&s.indexOf(\"FR\")!==-1&&s.indexOf(\"SA\")===-1&&s.indexOf(\"SU\")===-1,isEveryDay:s.indexOf(\"MO\")!==-1&&s.indexOf(\"TU\")!==-1&&s.indexOf(\"WE\")!==-1&&s.indexOf(\"TH\")!==-1&&s.indexOf(\"FR\")!==-1&&s.indexOf(\"SA\")!==-1&&s.indexOf(\"SU\")!==-1};var l=function(d,y){return d.weekday-y.weekday};this.byweekday.allWeeks.sort(l),this.byweekday.someWeeks.sort(l),this.byweekday.allWeeks.length||(this.byweekday.allWeeks=null),this.byweekday.someWeeks.length||(this.byweekday.someWeeks=null)}else this.byweekday=null}return e.isFullyConvertible=function(t){var r=!0;if(!(t.options.freq in e.IMPLEMENTED)||t.origOptions.until&&t.origOptions.count)return!1;for(var n in t.origOptions){if(Nt([\"dtstart\",\"tzid\",\"wkst\",\"freq\"],n))return!0;if(!Nt(e.IMPLEMENTED[t.options.freq],n))return!1}return r},e.prototype.isFullyConvertible=function(){return e.isFullyConvertible(this.rrule)},e.prototype.toString=function(){var t=this.gettext;if(!(this.options.freq in e.IMPLEMENTED))return t(\"RRule error: Unable to fully convert this rrule to text\");if(this.text=[t(\"every\")],this[p.FREQUENCIES[this.options.freq]](),this.options.until){this.add(t(\"until\"));var r=this.options.until;this.add(this.dateFormatter(r.getUTCFullYear(),this.language.monthNames[r.getUTCMonth()],r.getUTCDate()))}else this.options.count&&this.add(t(\"for\")).add(this.options.count.toString()).add(this.plural(this.options.count)?t(\"times\"):t(\"time\"));return this.isFullyConvertible()||this.add(t(\"(~ approximate)\")),this.text.join(\"\")},e.prototype.HOURLY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t(\"hours\"):t(\"hour\"))},e.prototype.MINUTELY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t(\"minutes\"):t(\"minute\"))},e.prototype.DAILY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()),this.byweekday&&this.byweekday.isWeekdays?this.add(this.plural(this.options.interval)?t(\"weekdays\"):t(\"weekday\")):this.add(this.plural(this.options.interval)?t(\"days\"):t(\"day\")),this.origOptions.bymonth&&(this.add(t(\"in\")),this._bymonth()),this.bymonthday?this._bymonthday():this.byweekday?this._byweekday():this.origOptions.byhour&&this._byhour()},e.prototype.WEEKLY=function(){var t=this.gettext;this.options.interval!==1&&this.add(this.options.interval.toString()).add(this.plural(this.options.interval)?t(\"weeks\"):t(\"week\")),this.byweekday&&this.byweekday.isWeekdays?this.options.interval===1?this.add(this.plural(this.options.interval)?t(\"weekdays\"):t(\"weekday\")):this.add(t(\"on\")).add(t(\"weekdays\")):this.byweekday&&this.byweekday.isEveryDay?this.add(this.plural(this.options.interval)?t(\"days\"):t(\"day\")):(this.options.interval===1&&this.add(t(\"week\")),this.origOptions.bymonth&&(this.add(t(\"in\")),this._bymonth()),this.bymonthday?this._bymonthday():this.byweekday&&this._byweekday(),this.origOptions.byhour&&this._byhour())},e.prototype.MONTHLY=function(){var t=this.gettext;this.origOptions.bymonth?(this.options.interval!==1&&(this.add(this.options.interval.toString()).add(t(\"months\")),this.plural(this.options.interval)&&this.add(t(\"in\"))),this._bymonth()):(this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t(\"months\"):t(\"month\"))),this.bymonthday?this._bymonthday():this.byweekday&&this.byweekday.isWeekdays?this.add(t(\"on\")).add(t(\"weekdays\")):this.byweekday&&this._byweekday()},e.prototype.YEARLY=function(){var t=this.gettext;this.origOptions.bymonth?(this.options.interval!==1&&(this.add(this.options.interval.toString()),this.add(t(\"years\"))),this._bymonth()):(this.options.interval!==1&&this.add(this.options.interval.toString()),this.add(this.plural(this.options.interval)?t(\"years\"):t(\"year\"))),this.bymonthday?this._bymonthday():this.byweekday&&this._byweekday(),this.options.byyearday&&this.add(t(\"on the\")).add(this.list(this.options.byyearday,this.nth,t(\"and\"))).add(t(\"day\")),this.options.byweekno&&this.add(t(\"in\")).add(this.plural(this.options.byweekno.length)?t(\"weeks\"):t(\"week\")).add(this.list(this.options.byweekno,void 0,t(\"and\")))},e.prototype._bymonthday=function(){var t=this.gettext;this.byweekday&&this.byweekday.allWeeks?this.add(t(\"on\")).add(this.list(this.byweekday.allWeeks,this.weekdaytext,t(\"or\"))).add(t(\"the\")).add(this.list(this.bymonthday,this.nth,t(\"or\"))):this.add(t(\"on the\")).add(this.list(this.bymonthday,this.nth,t(\"and\")))},e.prototype._byweekday=function(){var t=this.gettext;this.byweekday.allWeeks&&!this.byweekday.isWeekdays&&this.add(t(\"on\")).add(this.list(this.byweekday.allWeeks,this.weekdaytext)),this.byweekday.someWeeks&&(this.byweekday.allWeeks&&this.add(t(\"and\")),this.add(t(\"on the\")).add(this.list(this.byweekday.someWeeks,this.weekdaytext,t(\"and\"))))},e.prototype._byhour=function(){var t=this.gettext;this.add(t(\"at\")).add(this.list(this.origOptions.byhour,void 0,t(\"and\")))},e.prototype._bymonth=function(){this.add(this.list(this.options.bymonth,this.monthtext,this.gettext(\"and\")))},e.prototype.nth=function(t){t=parseInt(t.toString(),10);var r,n=this.gettext;if(t===-1)return n(\"last\");var i=Math.abs(t);switch(i){case 1:case 21:case 31:r=i+n(\"st\");break;case 2:case 22:r=i+n(\"nd\");break;case 3:case 23:r=i+n(\"rd\");break;default:r=i+n(\"th\")}return t<0?r+\" \"+n(\"last\"):r},e.prototype.monthtext=function(t){return this.language.monthNames[t-1]},e.prototype.weekdaytext=function(t){var r=U(t)?(t+1)%7:t.getJsWeekday();return(t.n?this.nth(t.n)+\" \":\"\")+this.language.dayNames[r]},e.prototype.plural=function(t){return t%100!==1},e.prototype.add=function(t){return this.text.push(\" \"),this.text.push(t),this},e.prototype.list=function(t,r,n,i){var a=this;i===void 0&&(i=\",\"),S(t)||(t=[t]);var u=function(s,l,d){for(var y=\"\",h=0;ht[0].length)&&(t=a,r=i)}if(t!=null&&(this.text=this.text.substr(t[0].length),this.text===\"\"&&(this.done=!0)),t==null){this.done=!0,this.symbol=null,this.value=null;return}}while(r===\"SKIP\");return this.symbol=r,this.value=t,!0},e.prototype.accept=function(t){if(this.symbol===t){if(this.value){var r=this.value;return this.nextSymbol(),r}return this.nextSymbol(),!0}return!1},e.prototype.acceptNumber=function(){return this.accept(\"number\")},e.prototype.expect=function(t){if(this.accept(t))return!0;throw new Error(\"expected \"+t+\" but found \"+this.symbol)},e})();function nt(e,t){t===void 0&&(t=Z);var r={},n=new Se(t.tokens);if(!n.start(e))return null;return i(),r;function i(){n.expect(\"every\");var h=n.acceptNumber();if(h&&(r.interval=parseInt(h[0],10)),n.isDone())throw new Error(\"Unexpected end\");switch(n.symbol){case\"day(s)\":r.freq=p.DAILY,n.nextSymbol()&&(u(),y());break;case\"weekday(s)\":r.freq=p.WEEKLY,r.byweekday=[p.MO,p.TU,p.WE,p.TH,p.FR],n.nextSymbol(),u(),y();break;case\"week(s)\":r.freq=p.WEEKLY,n.nextSymbol()&&(a(),u(),y());break;case\"hour(s)\":r.freq=p.HOURLY,n.nextSymbol()&&(a(),y());break;case\"minute(s)\":r.freq=p.MINUTELY,n.nextSymbol()&&(a(),y());break;case\"month(s)\":r.freq=p.MONTHLY,n.nextSymbol()&&(a(),y());break;case\"year(s)\":r.freq=p.YEARLY,n.nextSymbol()&&(a(),y());break;case\"monday\":case\"tuesday\":case\"wednesday\":case\"thursday\":case\"friday\":case\"saturday\":case\"sunday\":r.freq=p.WEEKLY;var c=n.symbol.substr(0,2).toUpperCase();if(r.byweekday=[p[c]],!n.nextSymbol())return;for(;n.accept(\"comma\");){if(n.isDone())throw new Error(\"Unexpected end\");var v=s();if(!v)throw new Error(\"Unexpected symbol \"+n.symbol+\", expected weekday\");r.byweekday.push(p[v]),n.nextSymbol()}u(),d(),y();break;case\"january\":case\"february\":case\"march\":case\"april\":case\"may\":case\"june\":case\"july\":case\"august\":case\"september\":case\"october\":case\"november\":case\"december\":if(r.freq=p.YEARLY,r.bymonth=[o()],!n.nextSymbol())return;for(;n.accept(\"comma\");){if(n.isDone())throw new Error(\"Unexpected end\");var g=o();if(!g)throw new Error(\"Unexpected symbol \"+n.symbol+\", expected month\");r.bymonth.push(g),n.nextSymbol()}a(),y();break;default:throw new Error(\"Unknown symbol\")}}function a(){var h=n.accept(\"on\"),c=n.accept(\"the\");if(h||c)do{var v=l(),g=s(),k=o();if(v)g?(n.nextSymbol(),r.byweekday||(r.byweekday=[]),r.byweekday.push(p[g].nth(v))):(r.bymonthday||(r.bymonthday=[]),r.bymonthday.push(v),n.accept(\"day(s)\"));else if(g)n.nextSymbol(),r.byweekday||(r.byweekday=[]),r.byweekday.push(p[g]);else if(n.symbol===\"weekday(s)\")n.nextSymbol(),r.byweekday||(r.byweekday=[p.MO,p.TU,p.WE,p.TH,p.FR]);else if(n.symbol===\"week(s)\"){n.nextSymbol();var E=n.acceptNumber();if(!E)throw new Error(\"Unexpected symbol \"+n.symbol+\", expected week number\");for(r.byweekno=[parseInt(E[0],10)];n.accept(\"comma\");){if(E=n.acceptNumber(),!E)throw new Error(\"Unexpected symbol \"+n.symbol+\"; expected monthday\");r.byweekno.push(parseInt(E[0],10))}}else if(k)n.nextSymbol(),r.bymonth||(r.bymonth=[]),r.bymonth.push(k);else return}while(n.accept(\"comma\")||n.accept(\"the\")||n.accept(\"on\"))}function u(){var h=n.accept(\"at\");if(h)do{var c=n.acceptNumber();if(!c)throw new Error(\"Unexpected symbol \"+n.symbol+\", expected hour\");for(r.byhour=[parseInt(c[0],10)];n.accept(\"comma\");){if(c=n.acceptNumber(),!c)throw new Error(\"Unexpected symbol \"+n.symbol+\"; expected hour\");r.byhour.push(parseInt(c[0],10))}}while(n.accept(\"comma\")||n.accept(\"at\"))}function o(){switch(n.symbol){case\"january\":return 1;case\"february\":return 2;case\"march\":return 3;case\"april\":return 4;case\"may\":return 5;case\"june\":return 6;case\"july\":return 7;case\"august\":return 8;case\"september\":return 9;case\"october\":return 10;case\"november\":return 11;case\"december\":return 12;default:return!1}}function s(){switch(n.symbol){case\"monday\":case\"tuesday\":case\"wednesday\":case\"thursday\":case\"friday\":case\"saturday\":case\"sunday\":return n.symbol.substr(0,2).toUpperCase();default:return!1}}function l(){switch(n.symbol){case\"last\":return n.nextSymbol(),-1;case\"first\":return n.nextSymbol(),1;case\"second\":return n.nextSymbol(),n.accept(\"last\")?-2:2;case\"third\":return n.nextSymbol(),n.accept(\"last\")?-3:3;case\"nth\":var h=parseInt(n.value[1],10);if(h<-366||h>366)throw new Error(\"Nth out of range: \"+h);return n.nextSymbol(),n.accept(\"last\")?-h:h;default:return!1}}function d(){n.accept(\"on\"),n.accept(\"the\");var h=l();if(h)for(r.bymonthday=[h],n.nextSymbol();n.accept(\"comma\");){if(h=l(),!h)throw new Error(\"Unexpected symbol \"+n.symbol+\"; expected monthday\");r.bymonthday.push(h),n.nextSymbol()}}function y(){if(n.symbol===\"until\"){var h=Date.parse(n.text);if(!h)throw new Error(\"Cannot parse until date:\"+n.text);r.until=new Date(h)}else n.accept(\"for\")&&(r.count=parseInt(n.value[0],10),n.expect(\"number\"))}}var m;(function(e){e[e.YEARLY=0]=\"YEARLY\",e[e.MONTHLY=1]=\"MONTHLY\",e[e.WEEKLY=2]=\"WEEKLY\",e[e.DAILY=3]=\"DAILY\",e[e.HOURLY=4]=\"HOURLY\",e[e.MINUTELY=5]=\"MINUTELY\",e[e.SECONDLY=6]=\"SECONDLY\"})(m||(m={}));function it(e){return e12){var n=Math.floor(this.month/12),i=Y(this.month,12);this.month=i,this.year+=n,this.month===0&&(this.month=12,--this.year)}},t.prototype.addWeekly=function(r,n){n>this.getWeekday()?this.day+=-(this.getWeekday()+1+(6-n))+r*7:this.day+=-(this.getWeekday()-n)+r*7,this.fixDay()},t.prototype.addDaily=function(r){this.day+=r,this.fixDay()},t.prototype.addHours=function(r,n,i){for(n&&(this.hour+=Math.floor((23-this.hour)/r)*r);;){this.hour+=r;var a=ft(this.hour,24),u=a.div,o=a.mod;if(u&&(this.hour=o,this.addDaily(u)),A(i)||w(i,this.hour))break}},t.prototype.addMinutes=function(r,n,i,a){for(n&&(this.minute+=Math.floor((1439-(this.hour*60+this.minute))/r)*r);;){this.minute+=r;var u=ft(this.minute,60),o=u.div,s=u.mod;if(o&&(this.minute=s,this.addHours(o,!1,i)),(A(i)||w(i,this.hour))&&(A(a)||w(a,this.minute)))break}},t.prototype.addSeconds=function(r,n,i,a,u){for(n&&(this.second+=Math.floor((86399-(this.hour*3600+this.minute*60+this.second))/r)*r);;){this.second+=r;var o=ft(this.second,60),s=o.div,l=o.mod;if(s&&(this.second=l,this.addMinutes(s,!1,i,a)),(A(i)||w(i,this.hour))&&(A(a)||w(a,this.minute))&&(A(u)||w(u,this.second)))break}},t.prototype.fixDay=function(){if(!(this.day<=28)){var r=kt(this.year,this.month-1)[1];if(!(this.day<=r))for(;this.day>r;){if(this.day-=r,++this.month,this.month===13&&(this.month=1,++this.year,this.year>ht))return;r=kt(this.year,this.month-1)[1]}}},t.prototype.add=function(r,n){var i=r.freq,a=r.interval,u=r.wkst,o=r.byhour,s=r.byminute,l=r.bysecond;switch(i){case m.YEARLY:return this.addYears(a);case m.MONTHLY:return this.addMonths(a);case m.WEEKLY:return this.addWeekly(a,u);case m.DAILY:return this.addDaily(a);case m.HOURLY:return this.addHours(a,n,o);case m.MINUTELY:return this.addMinutes(a,n,o,s);case m.SECONDLY:return this.addSeconds(a,n,o,s,l)}},t})($);function Tt(e){for(var t=[],r=Object.keys(e),n=0,i=r;n=-366&&n<=366))throw new Error(\"bysetpos must be between 1 and 366, or between -366 and -1\")}}if(!(t.byweekno||T(t.byweekno)||T(t.byyearday)||t.bymonthday||T(t.bymonthday)||x(t.byweekday)||x(t.byeaster)))switch(t.freq){case p.YEARLY:t.bymonth||(t.bymonth=t.dtstart.getUTCMonth()+1),t.bymonthday=t.dtstart.getUTCDate();break;case p.MONTHLY:t.bymonthday=t.dtstart.getUTCDate();break;case p.WEEKLY:t.byweekday=[C(t.dtstart)];break}if(x(t.bymonth)&&!S(t.bymonth)&&(t.bymonth=[t.bymonth]),x(t.byyearday)&&!S(t.byyearday)&&U(t.byyearday)&&(t.byyearday=[t.byyearday]),!x(t.bymonthday))t.bymonthday=[],t.bynmonthday=[];else if(S(t.bymonthday)){for(var i=[],a=[],r=0;r0?i.push(n):n<0&&a.push(n)}t.bymonthday=i,t.bynmonthday=a}else t.bymonthday<0?(t.bynmonthday=[t.bymonthday],t.bymonthday=[]):(t.bynmonthday=[],t.bymonthday=[t.bymonthday]);if(x(t.byweekno)&&!S(t.byweekno)&&(t.byweekno=[t.byweekno]),!x(t.byweekday))t.bynweekday=null;else if(U(t.byweekday))t.byweekday=[t.byweekday],t.bynweekday=null;else if(bt(t.byweekday))t.byweekday=[D.fromStr(t.byweekday).weekday],t.bynweekday=null;else if(t.byweekday instanceof D)!t.byweekday.n||t.freq>p.MONTHLY?(t.byweekday=[t.byweekday.weekday],t.bynweekday=null):(t.bynweekday=[[t.byweekday.weekday,t.byweekday.n]],t.byweekday=null);else{for(var u=[],o=[],r=0;rp.MONTHLY?u.push(s.weekday):o.push([s.weekday,s.n])}t.byweekday=T(u)?u:null,t.bynweekday=T(o)?o:null}return x(t.byhour)?U(t.byhour)&&(t.byhour=[t.byhour]):t.byhour=t.freq=4?(d=0,l=o.yearlen+Y(u-t.wkst,7)):l=n-d;for(var y=Math.floor(l/7),h=Y(l,7),c=Math.floor(y+h/4),v=0;v0&&g<=c){var k=void 0;g>1?(k=d+(g-1)*7,d!==s&&(k-=7-s)):k=d;for(var E=0;E<7&&(o.wnomask[k]=1,k++,o.wdaymask[k]!==t.wkst);E++);}}if(w(t.byweekno,1)){var k=d+c*7;if(d!==s&&(k-=7-s),k=4?(V=0,q=vt+Y(B-t.wkst,7)):q=n-d,N=Math.floor(52+Y(q,7)/4)}if(w(t.byweekno,N))for(var k=0;ka)return K(e);if(N>=r){var B=oe(N,t);if(!e.accept(B)||o&&(--o,!o))return K(e)}}else for(var E=c;Ea)return K(e);if(N>=r){var B=oe(N,t);if(!e.accept(B)||o&&(--o,!o))return K(e)}}}if(t.interval===0||(s.add(t,g),s.year>ht))return K(e);it(n)||(d=l.gettimeset(n)(s.hour,s.minute,s.second,0)),l.rebuild(s.year,s.month)}}function He(e,t,r){var n=r.bymonth,i=r.byweekno,a=r.byweekday,u=r.byeaster,o=r.bymonthday,s=r.bynmonthday,l=r.byyearday;return T(n)&&!w(n,e.mmask[t])||T(i)&&!e.wnomask[t]||T(a)&&!w(a,e.wdaymask[t])||T(e.nwdaymask)&&!e.nwdaymask[t]||u!==null&&!w(e.eastermask,t)||(T(o)||T(s))&&!w(o,e.mdaymask[t])&&!w(s,e.nmdaymask[t])||T(l)&&(t=e.yearlen&&!w(l,t+1-e.yearlen)&&!w(l,-e.nextyearlen+t-e.yearlen))}function oe(e,t){return new G(e,t.tzid).rezonedDate()}function K(e){return e.getValue()}function Ke(e,t,r,n,i){for(var a=!1,u=t;u=p.HOURLY&&T(i)&&!w(i,t.hour)||n>=p.MINUTELY&&T(a)&&!w(a,t.minute)||n>=p.SECONDLY&&T(u)&&!w(u,t.second)?[]:e.gettimeset(n)(t.hour,t.minute,t.second,t.millisecond)}var R={MO:new D(0),TU:new D(1),WE:new D(2),TH:new D(3),FR:new D(4),SA:new D(5),SU:new D(6)},at={freq:m.YEARLY,dtstart:null,interval:1,wkst:R.MO,count:null,until:null,tzid:null,bysetpos:null,bymonth:null,bymonthday:null,bynmonthday:null,byyearday:null,byweekno:null,byweekday:null,bynweekday:null,byhour:null,byminute:null,bysecond:null,byeaster:null},Pt=Object.keys(at),p=(function(){function e(t,r){t===void 0&&(t={}),r===void 0&&(r=!1),this._cache=r?null:new Ft,this.origOptions=Tt(t);var n=Ht(t).parsedOptions;this.options=n}return e.parseText=function(t,r){return nt(t,r)},e.fromText=function(t,r){return _t(t,r)},e.fromString=function(t){return new e(e.parseString(t)||void 0)},e.prototype._iter=function(t){return yt(t,this.options)},e.prototype._cacheGet=function(t,r){return this._cache?this._cache._cacheGet(t,r):!1},e.prototype._cacheAdd=function(t,r,n){if(this._cache)return this._cache._cacheAdd(t,r,n)},e.prototype.all=function(t){if(t)return this._iter(new xt(\"all\",{},t));var r=this._cacheGet(\"all\");return r===!1&&(r=this._iter(new H(\"all\",{})),this._cacheAdd(\"all\",r)),r},e.prototype.between=function(t,r,n,i){if(n===void 0&&(n=!1),!F(t)||!F(r))throw new Error(\"Invalid date passed in to RRule.between\");var a={before:r,after:t,inc:n};if(i)return this._iter(new xt(\"between\",a,i));var u=this._cacheGet(\"between\",a);return u===!1&&(u=this._iter(new H(\"between\",a)),this._cacheAdd(\"between\",u,a)),u},e.prototype.before=function(t,r){if(r===void 0&&(r=!1),!F(t))throw new Error(\"Invalid date passed in to RRule.before\");var n={dt:t,inc:r},i=this._cacheGet(\"before\",n);return i===!1&&(i=this._iter(new H(\"before\",n)),this._cacheAdd(\"before\",i,n)),i},e.prototype.after=function(t,r){if(r===void 0&&(r=!1),!F(t))throw new Error(\"Invalid date passed in to RRule.after\");var n={dt:t,inc:r},i=this._cacheGet(\"after\",n);return i===!1&&(i=this._iter(new H(\"after\",n)),this._cacheAdd(\"after\",i,n)),i},e.prototype.count=function(){return this.all().length},e.prototype.toString=function(){return ut(this.origOptions)},e.prototype.toText=function(t,r,n){return It(this,t,r,n)},e.prototype.isFullyConvertibleToText=function(){return Ct(this)},e.prototype.clone=function(){return new e(this.origOptions)},e.FREQUENCIES=[\"YEARLY\",\"MONTHLY\",\"WEEKLY\",\"DAILY\",\"HOURLY\",\"MINUTELY\",\"SECONDLY\"],e.YEARLY=m.YEARLY,e.MONTHLY=m.MONTHLY,e.WEEKLY=m.WEEKLY,e.DAILY=m.DAILY,e.HOURLY=m.HOURLY,e.MINUTELY=m.MINUTELY,e.SECONDLY=m.SECONDLY,e.MO=R.MO,e.TU=R.TU,e.WE=R.WE,e.TH=R.TH,e.FR=R.FR,e.SA=R.SA,e.SU=R.SU,e.parseString=st,e.optionsToString=ut,e})();import{__extends as Xe}from\"/tslib@^2.4.0?target=denonext\";function se(e,t,r,n,i,a){var u={},o=e.accept;function s(h,c){r.forEach(function(v){v.between(h,c,!0).forEach(function(g){u[Number(g)]=!0})})}i.forEach(function(h){var c=new G(h,a).rezonedDate();u[Number(c)]=!0}),e.accept=function(h){var c=Number(h);return isNaN(c)?o.call(this,h):!u[c]&&(s(new Date(c-1),new Date(c+1)),!u[c])?(u[c]=!0,o.call(this,h)):!0},e.method===\"between\"&&(s(e.args.after,e.args.before),e.accept=function(h){var c=Number(h);return u[c]?!0:(u[c]=!0,o.call(this,h))});for(var l=0;l1||i.length||a.length||u.length){var d=new Yt(l);return d.dtstart(o),d.tzid(s||void 0),n.forEach(function(h){d.rrule(new p(St(h,o,s),l))}),i.forEach(function(h){d.rdate(h)}),a.forEach(function(h){d.exrule(new p(St(h,o,s),l))}),u.forEach(function(h){d.exdate(h)}),t.compatible&&t.dtstart&&d.rdate(o),d}var y=n[0]||{};return new p(St(y,y.dtstart||t.dtstart||o,y.tzid||t.tzid||s),l)}function mt(e,t){return t===void 0&&(t={}),qe(e,je(t))}function St(e,t,r){return pt(pt({},e),{dtstart:t,tzid:r})}function je(e){var t=[],r=Object.keys(e),n=Object.keys(ue);if(r.forEach(function(i){w(n,i)||t.push(i)}),t.length)throw new Error(\"Invalid options: \"+t.join(\", \"));return pt(pt({},ue),e)}function Fe(e){if(e.indexOf(\":\")===-1)return{name:\"RRULE\",value:e};var t=Ot(e,\":\",1),r=t[0],n=t[1];return{name:r,value:n}}function Ze(e){var t=Fe(e),r=t.name,n=t.value,i=r.split(\";\");if(!i)throw new Error(\"empty property name\");return{name:i[0].toUpperCase(),parms:i.slice(1),value:n}}function Ge(e,t){if(t===void 0&&(t=!1),e=e&&e.trim(),!e)throw new Error(\"Invalid empty string\");if(!t)return e.split(/\\s/);for(var r=e.split(`\n`),n=0;n0&&i[0]===\" \"?(r[n-1]+=i.slice(1),r.splice(n,1)):n+=1:r.splice(n,1)}return r}function Be(e){e.forEach(function(t){if(!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(t))throw new Error(\"unsupported RDATE/EXDATE parm: \"+t)})}function fe(e,t){return Be(t),e.split(\",\").map(function(r){return rt(r)})}function he(e){var t=this;return function(r){if(r!==void 0&&(t[\"_\".concat(e)]=r),t[\"_\".concat(e)]!==void 0)return t[\"_\".concat(e)];for(var n=0;n = {\n \"Dateline Standard Time\": \"Etc/GMT+12\",\n \"UTC-11\": \"Etc/GMT+11\",\n \"Hawaiian Standard Time\": \"Pacific/Honolulu\",\n \"Alaskan Standard Time\": \"America/Anchorage\",\n \"Pacific Standard Time (Mexico)\": \"America/Santa_Isabel\",\n \"Pacific Standard Time\": \"America/Los_Angeles\",\n \"US Mountain Standard Time\": \"America/Phoenix\",\n \"Mountain Standard Time (Mexico)\": \"America/Chihuahua\",\n \"Mountain Standard Time\": \"America/Denver\",\n \"Central America Standard Time\": \"America/Guatemala\",\n \"Central Standard Time\": \"America/Chicago\",\n \"Central Standard Time (Mexico)\": \"America/Mexico_City\",\n \"Canada Central Standard Time\": \"America/Regina\",\n \"SA Pacific Standard Time\": \"America/Bogota\",\n \"Eastern Standard Time\": \"America/New_York\",\n \"US Eastern Standard Time\": \"America/Indiana/Indianapolis\",\n \"Venezuela Standard Time\": \"America/Caracas\",\n \"Paraguay Standard Time\": \"America/Asuncion\",\n \"Atlantic Standard Time\": \"America/Halifax\",\n \"Central Brazilian Standard Time\": \"America/Cuiaba\",\n \"SA Western Standard Time\": \"America/La_Paz\",\n \"Pacific SA Standard Time\": \"America/Santiago\",\n \"Newfoundland Standard Time\": \"America/St_Johns\",\n \"E. South America Standard Time\": \"America/Sao_Paulo\",\n \"Argentina Standard Time\": \"America/Buenos_Aires\",\n \"SA Eastern Standard Time\": \"America/Cayenne\",\n \"Greenland Standard Time\": \"America/Godthab\",\n \"Montevideo Standard Time\": \"America/Montevideo\",\n \"Bahia Standard Time\": \"America/Bahia\",\n \"Azores Standard Time\": \"Atlantic/Azores\",\n \"Cape Verde Standard Time\": \"Atlantic/Cape_Verde\",\n \"Morocco Standard Time\": \"Africa/Casablanca\",\n \"GMT Standard Time\": \"Europe/London\",\n \"Greenwich Standard Time\": \"Atlantic/Reykjavik\",\n \"W. Europe Standard Time\": \"Europe/Berlin\",\n \"Central Europe Standard Time\": \"Europe/Budapest\",\n \"Romance Standard Time\": \"Europe/Paris\",\n \"Central European Standard Time\": \"Europe/Warsaw\",\n \"W. Central Africa Standard Time\": \"Africa/Lagos\",\n \"Namibia Standard Time\": \"Africa/Windhoek\",\n \"Jordan Standard Time\": \"Asia/Amman\",\n \"GTB Standard Time\": \"Europe/Bucharest\",\n \"Middle East Standard Time\": \"Asia/Beirut\",\n \"Egypt Standard Time\": \"Africa/Cairo\",\n \"Syria Standard Time\": \"Asia/Damascus\",\n \"E. Europe Standard Time\": \"Europe/Chisinau\",\n \"South Africa Standard Time\": \"Africa/Johannesburg\",\n \"FLE Standard Time\": \"Europe/Kiev\",\n \"Turkey Standard Time\": \"Europe/Istanbul\",\n \"Israel Standard Time\": \"Asia/Jerusalem\",\n \"Kaliningrad Standard Time\": \"Europe/Kaliningrad\",\n \"Libya Standard Time\": \"Africa/Tripoli\",\n \"Arabic Standard Time\": \"Asia/Baghdad\",\n \"Arab Standard Time\": \"Asia/Riyadh\",\n \"Belarus Standard Time\": \"Europe/Minsk\",\n \"Russian Standard Time\": \"Europe/Moscow\",\n \"E. Africa Standard Time\": \"Africa/Nairobi\",\n \"Iran Standard Time\": \"Asia/Tehran\",\n \"Arabian Standard Time\": \"Asia/Dubai\",\n \"Azerbaijan Standard Time\": \"Asia/Baku\",\n \"Russia Time Zone 3\": \"Europe/Samara\",\n \"Mauritius Standard Time\": \"Indian/Mauritius\",\n \"Georgian Standard Time\": \"Asia/Tbilisi\",\n \"Caucasus Standard Time\": \"Asia/Yerevan\",\n \"Afghanistan Standard Time\": \"Asia/Kabul\",\n \"West Asia Standard Time\": \"Asia/Tashkent\",\n \"Ekaterinburg Standard Time\": \"Asia/Yekaterinburg\",\n \"Pakistan Standard Time\": \"Asia/Karachi\",\n \"India Standard Time\": \"Asia/Kolkata\",\n \"Sri Lanka Standard Time\": \"Asia/Colombo\",\n \"Nepal Standard Time\": \"Asia/Kathmandu\",\n \"Central Asia Standard Time\": \"Asia/Almaty\",\n \"Bangladesh Standard Time\": \"Asia/Dhaka\",\n \"N. Central Asia Standard Time\": \"Asia/Novosibirsk\",\n \"Myanmar Standard Time\": \"Asia/Rangoon\",\n \"SE Asia Standard Time\": \"Asia/Bangkok\",\n \"North Asia Standard Time\": \"Asia/Krasnoyarsk\",\n \"China Standard Time\": \"Asia/Shanghai\",\n \"North Asia East Standard Time\": \"Asia/Irkutsk\",\n \"Singapore Standard Time\": \"Asia/Singapore\",\n \"W. Australia Standard Time\": \"Australia/Perth\",\n \"Taipei Standard Time\": \"Asia/Taipei\",\n \"Ulaanbaatar Standard Time\": \"Asia/Ulaanbaatar\",\n \"Tokyo Standard Time\": \"Asia/Tokyo\",\n \"Korea Standard Time\": \"Asia/Seoul\",\n \"Yakutsk Standard Time\": \"Asia/Yakutsk\",\n \"Cen. Australia Standard Time\": \"Australia/Adelaide\",\n \"AUS Central Standard Time\": \"Australia/Darwin\",\n \"E. Australia Standard Time\": \"Australia/Brisbane\",\n \"AUS Eastern Standard Time\": \"Australia/Sydney\",\n \"West Pacific Standard Time\": \"Pacific/Port_Moresby\",\n \"Tasmania Standard Time\": \"Australia/Hobart\",\n \"Magadan Standard Time\": \"Asia/Magadan\",\n \"Vladivostok Standard Time\": \"Asia/Vladivostok\",\n \"Russia Time Zone 10\": \"Asia/Srednekolymsk\",\n \"Central Pacific Standard Time\": \"Pacific/Guadalcanal\",\n \"Russia Time Zone 11\": \"Asia/Anadyr\",\n \"New Zealand Standard Time\": \"Pacific/Auckland\",\n \"Fiji Standard Time\": \"Pacific/Fiji\",\n \"Tonga Standard Time\": \"Pacific/Tongatapu\",\n \"Samoa Standard Time\": \"Pacific/Apia\",\n \"Line Islands Standard Time\": \"Pacific/Kiritimati\"\n};\n\n/**\n * Resolves an IANA timezone name from a given TZID string.\n * Supports Windows timezone names, direct IANA names, and UTC.\n */\nexport function resolveIanaName(tzid: string): string | null {\n if (!tzid || tzid === \"UTC\" || tzid === \"None\") return \"UTC\";\n \n // Heuristic: IANA names typically include a forward slash\n if (tzid.includes(\"/\")) return tzid;\n \n return WINDOWS_TO_IANA[tzid] ?? null;\n}\n\n/**\n * Returns the UTC offset in milliseconds for a given IANA timezone at a\n * specific point in time. Positive = ahead of UTC, negative = behind UTC.\n * e.g. \"America/New_York\" in summer -> -14400000 (-4h)\n */\nexport function getUtcOffsetMs(ianaName: string, atDate: Date): number {\n // Trick: format the same instant in UTC and in the target zone,\n // parse both, and subtract.\n // \"en-CA\" produces \"YYYY-MM-DD, HH:MM:SS\" (unambiguous)\n const options: Intl.DateTimeFormatOptions = {\n timeZone: \"UTC\",\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n };\n\n const utcFormatter = new Intl.DateTimeFormat(\"en-CA\", options);\n const localFormatter = new Intl.DateTimeFormat(\"en-CA\", { ...options, timeZone: ianaName });\n\n const formatToIso = (formatter: Intl.DateTimeFormat, date: Date) => {\n return formatter.format(date).replace(\", \", \"T\");\n };\n\n const utcStr = formatToIso(utcFormatter, atDate);\n const localStr = formatToIso(localFormatter, atDate);\n\n const utcMs = new Date(utcStr + \"Z\").getTime();\n const localMs = new Date(localStr + \"Z\").getTime();\n\n return localMs - utcMs;\n}\n", "import { clientStore, config, datastore, editor, index } from \"@silverbulletmd/silverbullet/syscalls\";\nimport { convertIcsCalendar } from \"https://esm.sh/ts-ics@2.4.0\";\nimport { RRule, RRuleSet } from \"rrule\";\nimport { getUtcOffsetMs, resolveIanaName } from \"./timezones.ts\";\n\nconst VERSION = \"0.3.27\";\nconst CACHE_KEY = \"icalendar:lastSync\";\n\nconsole.log(`[iCalendar] Plug script executing at top level (Version ${VERSION})`);\n\n// ============================================================================\n// Utility Functions\n// ============================================================================\n\n/**\n * Creates a SHA-256 hash of a string (hex encoded)\n */\nasync function sha256Hash(str: string): Promise {\n const encoder = new TextEncoder();\n const data = encoder.encode(str);\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n return hashArray.map(b => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\nexport function localDateString(date: Date): string {\n const pad = (n: number) => String(n).padStart(2, \"0\");\n return date.getFullYear() + \"-\" + pad(date.getMonth() + 1) + \"-\" + pad(date.getDate()) + \"T\" + pad(date.getHours()) + \":\" + pad(date.getMinutes()) + \":\" + pad(date.getSeconds());\n}\n\n/**\n * Recursively converts all Date objects and ISO date strings to strings\n * Handles nested objects like {date: Date, local: {date: Date, timezone: string}}\n */\nfunction convertDatesToStrings(obj: T): any {\n if (obj === null || obj === undefined) {\n return obj;\n }\n\n if (obj instanceof Date) {\n return localDateString(obj);\n }\n \n if (typeof obj === 'object' && 'date' in obj && (obj as any).date instanceof Date) {\n return localDateString((obj as any).date);\n }\n\n if (typeof obj === 'string' && /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/.test(obj)) {\n try {\n return localDateString(new Date(obj));\n } catch {\n return obj;\n }\n }\n\n if (Array.isArray(obj)) {\n return obj.map(item => convertDatesToStrings(item));\n }\n\n if (typeof obj === 'object') {\n const result: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n result[key] = convertDatesToStrings((obj as any)[key]);\n }\n }\n return result;\n }\n\n return obj;\n}\n\n// ============================================================================\n// Configuration Functions\n// ============================================================================\n\nasync function getSources(): Promise<{ sources: any[], syncWindowDays: number }> {\n try {\n const rawConfig = await config.get(\"icalendar\", { sources: [] }) as any;\n console.log(\"[iCalendar] Raw config retrieved:\", JSON.stringify(rawConfig));\n \n let sources = rawConfig.sources || [];\n const syncWindowDays = rawConfig.syncWindowDays || 365;\n\n if (sources && typeof sources === \"object\" && !Array.isArray(sources)) {\n const sourceArray = [];\n for (const key in sources) {\n if (sources[key] && typeof sources[key].url === \"string\") {\n sourceArray.push(sources[key]);\n }\n }\n sources = sourceArray;\n }\n\n return { sources, syncWindowDays };\n } catch (e) {\n console.error(\"[iCalendar] Error in getSources:\", e);\n return { sources: [], syncWindowDays: 365 };\n }\n}\n\n// ============================================================================\n// Calendar Fetching & Parsing\n// ============================================================================\n\n/**\n * Resolves the event start as a UTC Date object using DST-aware resolution.\n */\nexport async function resolveEventStart(icsEvent: any): Promise {\n const obj = icsEvent.start;\n if (!obj) return null;\n\n // 1. Extract the wall-clock local datetime string\n let wallClock: string | null = null;\n if (obj.local?.date) {\n const d = obj.local.date;\n wallClock = d instanceof Date ? d.toISOString() : String(d);\n } else if (obj.date) {\n const d = obj.date;\n wallClock = d instanceof Date ? d.toISOString() : String(d);\n }\n\n if (!wallClock) return null;\n\n // Strip any trailing Z \u2014 this is treated as wall-clock local time\n wallClock = wallClock.replace(/Z$/, \"\");\n\n // 2. Resolve IANA timezone\n const rawTz = obj.local?.timezone || (obj as any).timezone || \"UTC\";\n const ianaName = resolveIanaName(rawTz);\n\n if (!ianaName) {\n console.warn(`[iCalendar] Unknown timezone: \"${rawTz}\" - falling back to UTC for event \"${icsEvent.summary}\"`);\n const utcDate = new Date(wallClock + (wallClock.includes(\"T\") ? \"\" : \"T00:00:00\") + \"Z\");\n if (isNaN(utcDate.getTime())) return null;\n return utcDate;\n }\n\n // 3. Parse the wall-clock time as a UTC instant (no offset yet)\n const wallClockAsUtc = new Date(wallClock + (wallClock.includes(\"T\") ? \"\" : \"T00:00:00\") + \"Z\");\n if (isNaN(wallClockAsUtc.getTime())) return null;\n\n // 4. Get the DST-aware offset for this IANA zone at this instant\n const offsetMs = getUtcOffsetMs(ianaName, wallClockAsUtc);\n \n // 5. Convert: UTC = wall-clock - offset\n return new Date(wallClockAsUtc.getTime() - offsetMs);\n}\n\n/**\n * Expands recurring events into individual occurrences.\n */\nexport function expandRecurrences(icsEvent: any, windowDays = 365): any[] {\n const rruleStr = icsEvent.rrule || (icsEvent as any).recurrenceRule;\n if (!rruleStr) return [icsEvent];\n\n try {\n const set = new RRuleSet();\n const cleanRule = rruleStr.replace(/^RRULE:/i, \"\");\n \n // We need to provide DTSTART if it's not in the string\n const dtstart = new Date(icsEvent.start.includes(\"Z\") ? icsEvent.start : icsEvent.start + \"Z\");\n if (isNaN(dtstart.getTime())) {\n console.error(`[iCalendar] Invalid start date for recurrence: ${icsEvent.start}`);\n return [icsEvent];\n }\n\n const ruleOptions = RRule.parseString(cleanRule);\n ruleOptions.dtstart = dtstart;\n \n set.rrule(new RRule(ruleOptions));\n\n // Handle EXDATE\n for (const exdate of (icsEvent.exdate || [])) {\n set.exdate(new Date(exdate.includes(\"Z\") ? exdate : exdate + \"Z\"));\n }\n\n const now = new Date();\n // Start the window 7 days ago to catch recent past events\n const windowStart = new Date(now.getTime() - 7 * 86400000);\n const windowEnd = new Date(now.getTime() + windowDays * 86400000);\n \n // Expand from the start of our window\n const occurrences = set.between(windowStart, windowEnd, true);\n \n if (occurrences.length === 0) return [icsEvent];\n\n return occurrences.map(occurrenceDate => {\n const localIso = localDateString(occurrenceDate);\n return {\n ...icsEvent,\n start: localIso,\n recurrent: true,\n rrule: undefined,\n };\n });\n } catch (err) {\n console.error(`[iCalendar] Error expanding recurrence for ${icsEvent.summary}:`, err);\n return [icsEvent];\n }\n}\n\nasync function fetchAndParseCalendar(source: any, windowDays = 365): Promise {\n console.log(`[iCalendar] Fetching from: ${source.url}`);\n try {\n const response = await fetch(source.url);\n if (!response.ok) {\n console.error(`[iCalendar] Fetch failed for ${source.name}: ${response.status} ${response.statusText}`);\n return [];\n }\n const text = await response.text();\n const calendar = convertIcsCalendar(undefined, text);\n if (!calendar || !calendar.events) {\n return [];\n }\n \n const events: any[] = [];\n for (const icsEvent of calendar.events) {\n if (icsEvent.status?.toUpperCase() === \"CANCELLED\") continue;\n\n const finalDate = await resolveEventStart(icsEvent);\n if (!finalDate) continue;\n \n const localIso = localDateString(finalDate);\n const baseEvent = {\n ...icsEvent,\n name: icsEvent.summary || \"Untitled Event\",\n start: localIso,\n tag: \"ical-event\",\n sourceName: source.name\n };\n\n const rawTz = icsEvent.start?.local?.timezone || (icsEvent.start as any)?.timezone || \"UTC\";\n if (rawTz !== \"UTC\" && rawTz !== \"None\" && !resolveIanaName(rawTz)) {\n baseEvent.description = `(Warning: Unknown timezone \"${rawTz}\") ${baseEvent.description || \"\"}`;\n }\n\n const expanded = expandRecurrences(baseEvent, windowDays);\n for (const occurrence of expanded) {\n const uniqueKey = `${occurrence.start}${occurrence.uid || occurrence.summary || ''}`;\n occurrence.ref = await sha256Hash(uniqueKey);\n events.push(convertDatesToStrings(occurrence));\n }\n }\n return events;\n } catch (err) {\n console.error(`[iCalendar] Error fetching/parsing ${source.name}:`, err);\n return [];\n }\n}\n\nexport async function syncCalendars() {\n try {\n const { sources, syncWindowDays } = await getSources();\n if (sources.length === 0) return;\n \n await editor.flashNotification(\"Syncing calendars...\", \"info\");\n const allEvents: any[] = [];\n for (const source of sources) {\n const events = await fetchAndParseCalendar(source, syncWindowDays);\n allEvents.push(...events);\n }\n await index.indexObjects(\"$icalendar\", allEvents);\n await editor.flashNotification(`Synced ${allEvents.length} events`, \"info\");\n } catch (err) {\n console.error(\"[iCalendar] syncCalendars failed:\", err);\n }\n}\n\nexport async function forceSync() {\n await clientStore.del(CACHE_KEY);\n await syncCalendars();\n}\n\nexport async function clearCache() {\n if (!await editor.confirm(\"Clear all calendar events?\")) return;\n const pageKeys = await datastore.query({ prefix: [\"ridx\", \"$icalendar\"] });\n const allKeys: any[] = [];\n for (const { key } of pageKeys) {\n allKeys.push(key);\n allKeys.push([\"idx\", ...key.slice(2), \"$icalendar\"]);\n }\n if (allKeys.length > 0) await datastore.batchDel(allKeys);\n await clientStore.del(CACHE_KEY);\n await editor.flashNotification(\"Calendar index cleared\", \"info\");\n}\n\nexport async function showVersion() {\n await editor.flashNotification(`iCalendar Plug ${VERSION}`, \"info\");\n}\n", "\nimport { setupMessageListener } from \"https://deno.land/x/silverbullet@2.4.1/client/plugos/worker_runtime.ts\";\n\n// Imports\nimport {syncCalendars as syncCalendars} from \"file:///app/icalendar.ts\";\nimport {forceSync as forceSync} from \"file:///app/icalendar.ts\";\nimport {clearCache as clearCache} from \"file:///app/icalendar.ts\";\nimport {showVersion as showVersion} from \"file:///app/icalendar.ts\";\n\n\n// Function mapping\nconst functionMapping = {\n syncCalendars: syncCalendars,\n forceSync: forceSync,\n clearCache: clearCache,\n showVersion: showVersion,\n\n};\n\n// Manifest\nconst manifest = {\n \"name\": \"icalendar\",\n \"version\": \"0.3.27\",\n \"author\": \"sstent\",\n \"index\": \"icalendar.ts\",\n \"requiredPermissions\": [\n \"fetch\"\n ],\n \"permissions\": [\n \"fetch\",\n \"http\"\n ],\n \"functions\": {\n \"syncCalendars\": {\n \"path\": \"icalendar.ts:syncCalendars\",\n \"command\": {\n \"name\": \"iCalendar: Sync\",\n \"priority\": -1\n },\n \"events\": [\n \"editor:init\"\n ]\n },\n \"forceSync\": {\n \"path\": \"icalendar.ts:forceSync\",\n \"command\": {\n \"name\": \"iCalendar: Force Sync\",\n \"priority\": -1\n }\n },\n \"clearCache\": {\n \"path\": \"icalendar.ts:clearCache\",\n \"command\": {\n \"name\": \"iCalendar: Clear All Events\",\n \"priority\": -1\n }\n },\n \"showVersion\": {\n \"path\": \"icalendar.ts:showVersion\",\n \"command\": {\n \"name\": \"iCalendar: Version\",\n \"priority\": -2\n }\n }\n },\n \"assets\": {}\n};\n\nexport const plug = {manifest, functionMapping};\n\nsetupMessageListener(functionMapping, manifest, self.postMessage);\n"], "mappings": "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", "names": ["base64Decode", "s", "binString", "len", "bytes", "i", "base64Encode", "buffer", "binary", "fixedCounter", "Logger", "prefix", "maxCaptureSize", "createPatchedMethod", "level", "args", "prefixedArgs", "entry", "arg", "logEndpoint", "source", "logCopy", "e", "globalLogger", "initLogger", "workerPostMessage", "_msg", "runningAsWebWorker", "pendingRequests", "syscallReqId", "name", "args", "resolve", "reject", "setupMessageListener", "functionMapping", "manifest", "postMessageFn", "event", "data", "fn", "result", "e", "syscallId", "lookup", "initLogger", "sandboxFetch", "reqInfo", "options", "body", "encodedBody", "base64Encode", "monkeyPatchFetch", "init", "r", "base64Decode", "editor_exports", "__export", "alert", "configureVimMode", "confirm", "copyToClipboard", "deleteLine", "dispatch", "downloadFile", "filterBox", "flashNotification", "fold", "foldAll", "getCurrentEditor", "getCurrentPage", "getCurrentPageMeta", "getCurrentPath", "getCursor", "getRecentlyOpenedPages", "getSelection", "getText", "getUiOption", "goHistory", "hidePanel", "insertAtCursor", "insertAtPos", "invokeCommand", "isMobile", "moveCursor", "moveCursorToLine", "moveLineDown", "moveLineUp", "navigate", "newWindow", "openCommandPalette", "openPageNavigator", "openSearchPanel", "openUrl", "prompt", "rebuildEditorState", "redo", "reloadConfigAndCommands", "reloadPage", "reloadUI", "replaceRange", "save", "sendMessage", "setSelection", "setText", "setUiOption", "showPanel", "showProgress", "toggleComment", "toggleFold", "undo", "unfold", "unfoldAll", "uploadFile", "vimEx", "syscall", "name", "args", "getCurrentPage", "syscall", "getCurrentPageMeta", "getCurrentPath", "getRecentlyOpenedPages", "getCurrentEditor", "getText", "setText", "newText", "isolateHistory", "getCursor", "getSelection", "setSelection", "from", "to", "invokeCommand", "name", "args", "save", "navigate", "ref", "replaceState", "newWindow", "openPageNavigator", "mode", "openCommandPalette", "reloadPage", "reloadUI", "rebuildEditorState", "reloadConfigAndCommands", "openUrl", "url", "existingWindow", "goHistory", "delta", "downloadFile", "filename", "dataUrl", "uploadFile", "accept", "capture", "flashNotification", "message", "type", "filterBox", "label", "options", "helpText", "placeHolder", "showPanel", "id", "html", "script", "hidePanel", "showProgress", "progressPercentage", "progressType", "insertAtPos", "text", "pos", "replaceRange", "moveCursor", "center", "moveCursorToLine", "line", "column", "insertAtCursor", "scrollIntoView", "cursorPlaceHolder", "dispatch", "change", "prompt", "defaultValue", "confirm", "alert", "getUiOption", "key", "setUiOption", "value", "fold", "unfold", "toggleFold", "foldAll", "unfoldAll", "undo", "redo", "openSearchPanel", "copyToClipboard", "data", "deleteLine", "toggleComment", "moveLineUp", "moveLineDown", "vimEx", "exCommand", "configureVimMode", "sendMessage", "isMobile", "client_store_exports", "__export", "del", "get", "set", "set", "key", "value", "syscall", "get", "del", "fixedCounter", "datastore_exports", "__export", "batchDel", "batchDeletePrefix", "batchGet", "batchSet", "del", "get", "listFunctions", "query", "queryDelete", "queryLua", "set", "set", "key", "value", "syscall", "batchSet", "kvs", "get", "batchGet", "keys", "del", "batchDel", "query", "options", "queryLua", "prefix", "scopeVariables", "batchDeletePrefix", "queryDelete", "variables", "listFunctions", "config_exports", "__export", "define", "get", "has", "insert", "set", "get", "path", "defaultValue", "syscall", "set", "pathOrValues", "value", "insert", "has", "define", "key", "schema", "syscalls_exports", "__export", "ensureFullIndex", "getObjectByRef", "indexObjects", "queryLuaObjects", "indexObjects", "page", "objects", "syscall", "queryLuaObjects", "tag", "query", "scopedVariables", "ttlSecs", "getObjectByRef", "ref", "ensureFullIndex", "g", "e", "n", "t", "f", "fe", "We", "hr", "br", "Se", "Je", "Kr", "kr", "Ae", "Ge", "Vr", "_r", "De", "Ze", "Ur", "Br", "Oe", "xe", "Fr", "Pr", "Xe", "Qe", "Hr", "$r", "Re", "en", "wr", "jr", "ge", "nn", "qr", "Wr", "Me", "tn", "Jr", "Gr", "rn", "on", "Ne", "X", "an", "ln", "Q", "ee", "ne", "te", "re", "Be", "e", "rn", "on", "Rn", "pe", "Fe", "Mn", "V", "Nn", "W", "ye", "Cn", "Qr", "Ln", "Ie", "Ye", "bn", "un", "eo", "Kn", "kn", "no", "Pe", "O", "e", "n", "d", "oe", "t", "r", "dn", "i", "a", "$", "cn", "Vn", "ae", "G", "l", "s", "u", "c", "ie", "e", "n", "t", "O", "r", "Te", "d", "ze", "e", "n", "t", "r", "d", "Ie", "vn", "$", "le", "oe", "mn", "dn", "Ce", "we", "e", "n", "t", "d", "r", "Hn", "e", "n", "t", "r", "ie", "$n", "i", "a", "l", "s", "O", "je", "d", "wn", "jn", "qn", "ae", "u", "c", "v", "G", "E", "M", "Wn", "Jn", "Ln", "q", "yn", "Gn", "Zn", "Tn", "xn", "Xn", "Qn", "et", "Z", "oe", "fn", "nt", "Ye", "tt", "Ie", "rt", "ot", "at", "it", "lt", "st", "ut", "$", "dt", "le", "vt", "an", "ln", "mt", "Sn", "b", "e", "n", "Et", "t", "r", "i", "a", "vn", "ze", "cn", "oe", "le", "dn", "mn", "pt", "Sn", "l", "q", "Z", "s", "me", "N", "je", "we", "jn", "wn", "Te", "dt", "$n", "fn", "yt", "it", "Gn", "Tt", "lt", "Zn", "ft", "rt", "Tn", "St", "yn", "ot", "At", "st", "xn", "Dt", "Ce", "Ot", "et", "Rt", "at", "Xn", "gt", "Qn", "Mt", "Nt", "It", "x", "Yt", "An", "u", "c", "nt", "tt", "m", "e", "n", "t", "Wt", "r", "i", "a", "k", "w", "l", "s", "u", "c", "v", "E", "j", "Jt", "B", "Gt", "x", "ut", "Zt", "An", "$", "p", "xt", "Xt", "On", "ye", "Qt", "er", "nr", "Nn", "Mn", "tr", "W", "qe", "rr", "or", "pe", "Fe", "ar", "ir", "lr", "Y", "Rn", "Be", "M", "z", "C", "S", "_", "L", "Ue", "ce", "ke", "sr", "ur", "dr", "cr", "vr", "mr", "Er", "pr", "yr", "Tr", "fr", "ve", "Qe", "V", "mt", "Ve", "Sr", "_e", "Ar", "Dr", "Or", "F", "Rr", "D", "gr", "ee", "We", "Mr", "Q", "Ge", "Nr", "vt", "xe", "Ir", "X", "Ze", "Yr", "ne", "en", "zr", "te", "nn", "Cr", "Lr", "re", "tn", "So", "Ne", "Je", "m", "e", "t", "i", "P", "v", "r", "n", "V", "e", "t", "i", "o", "tt", "D", "e", "t", "x", "U", "bt", "S", "L", "b", "Mt", "j", "Ot", "Y", "ft", "A", "T", "w", "_", "i", "pe", "At", "ht", "Lt", "me", "X", "wt", "F", "ve", "lt", "be", "C", "kt", "dt", "ct", "gt", "W", "J", "rt", "Ut", "Rt", "we", "H", "ge", "P", "xt", "xe", "Z", "Nt", "Ee", "Te", "De", "u", "y", "o", "s", "l", "p", "h", "I", "Se", "nt", "c", "g", "k", "E", "m", "it", "_t", "Q", "It", "Ct", "$", "Wt", "Tt", "Pt", "v", "Ht", "at", "Kt", "st", "Me", "ot", "qt", "R", "Oe", "Ue", "jt", "G", "ut", "Ae", "Le", "Ft", "Zt", "V", "Gt", "Re", "Ne", "M", "Bt", "Xt", "_e", "Ie", "z", "O", "Jt", "Qt", "$t", "Vt", "Dt", "ee", "Ce", "N", "B", "vt", "q", "re", "ne", "We", "ie", "ae", "yt", "K", "Pe", "Ke", "oe", "ye", "He", "se", "ue", "ze", "Ge", "Ze", "fe", "qe", "Yt", "St", "mt", "je", "Fe", "Be", "he", "le", "de", "ce", "WINDOWS_TO_IANA", "resolveIanaName", "tzid", "getUtcOffsetMs", "ianaName", "atDate", "options", "utcFormatter", "localFormatter", "formatToIso", "formatter", "date", "utcStr", "localStr", "utcMs", "VERSION", "CACHE_KEY", "sha256Hash", "str", "data", "hashBuffer", "b", "localDateString", "date", "pad", "n", "convertDatesToStrings", "obj", "item", "result", "key", "getSources", "rawConfig", "config_exports", "sources", "syncWindowDays", "sourceArray", "e", "resolveEventStart", "icsEvent", "wallClock", "d", "rawTz", "ianaName", "resolveIanaName", "utcDate", "wallClockAsUtc", "offsetMs", "getUtcOffsetMs", "expandRecurrences", "windowDays", "rruleStr", "set", "Yt", "cleanRule", "dtstart", "ruleOptions", "p", "exdate", "now", "windowStart", "windowEnd", "occurrences", "occurrenceDate", "localIso", "err", "fetchAndParseCalendar", "source", "response", "text", "calendar", "So", "events", "finalDate", "baseEvent", "expanded", "occurrence", "uniqueKey", "syncCalendars", "editor_exports", "allEvents", "syscalls_exports", "forceSync", "client_store_exports", "clearCache", "pageKeys", "datastore_exports", "allKeys", "showVersion", "functionMapping", "syncCalendars", "forceSync", "clearCache", "showVersion", "manifest", "plug", "setupMessageListener"] } diff --git a/icalendar.plug.yaml b/icalendar.plug.yaml index 64b1966..f3a0ab8 100644 --- a/icalendar.plug.yaml +++ b/icalendar.plug.yaml @@ -1,5 +1,5 @@ name: icalendar -version: 0.3.26 +version: 0.3.27 author: sstent index: icalendar.ts # Legacy SilverBullet permission name diff --git a/icalendar.ts b/icalendar.ts index 70cc3ec..72081a8 100644 --- a/icalendar.ts +++ b/icalendar.ts @@ -3,7 +3,7 @@ import { convertIcsCalendar } from "https://esm.sh/ts-ics@2.4.0"; import { RRule, RRuleSet } from "rrule"; import { getUtcOffsetMs, resolveIanaName } from "./timezones.ts"; -const VERSION = "0.3.26"; +const VERSION = "0.3.27"; const CACHE_KEY = "icalendar:lastSync"; console.log(`[iCalendar] Plug script executing at top level (Version ${VERSION})`);