From 8710d92e3d0776e0727e2004687f438a3df11267 Mon Sep 17 00:00:00 2001 From: sstent Date: Wed, 25 Feb 2026 05:49:23 -0800 Subject: [PATCH] fix type error - v0.4.8 [skip-ci] --- PLUG.md | 2 +- deno.json | 2 +- icalendar.plug.js | 24 ++++++++++++------------ icalendar.plug.js.map | 4 ++-- icalendar.plug.yaml | 2 +- icalendar.ts | 4 ++-- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/PLUG.md b/PLUG.md index eb93289..87a8bd0 100644 --- a/PLUG.md +++ b/PLUG.md @@ -1,6 +1,6 @@ --- name: Library/sstent/icalendar -version: "0.4.7" +version: "0.4.8" tags: meta/library files: - icalendar.plug.js diff --git a/deno.json b/deno.json index 1dc7577..7479c37 100644 --- a/deno.json +++ b/deno.json @@ -1,6 +1,6 @@ { "name": "icalendar-plug", - "version": "0.4.7", + "version": "0.4.8", "nodeModulesDir": "auto", "tasks": { "sync-version": "deno run -A scripts/sync-version.ts", diff --git a/icalendar.plug.js b/icalendar.plug.js index 78371f2..fe7fdef 100644 --- a/icalendar.plug.js +++ b/icalendar.plug.js @@ -1,17 +1,17 @@ -var zr=Object.defineProperty;var Mt=(e,t)=>{for(var r in t)zr(e,r,{get:t[r],enumerable:!0})};function Re(e){let t=atob(e),r=t.length,n=new Uint8Array(r);for(let i=0;i(...n)=>{let i=this.prefix?[this.prefix,...n]:n;this.originalConsole[r](...i),this.captureLog(r,n)};console.log=t("log"),console.info=t("info"),console.warn=t("warn"),console.error=t("error"),console.debug=t("debug")}captureLog(t,r){let n={level:t,timestamp:Date.now(),message:r.map(i=>{if(typeof i=="string")return i;try{return JSON.stringify(i)}catch{return String(i)}}).join(" ")};this.logBuffer.push(n),this.logBuffer.length>this.maxCaptureSize&&this.logBuffer.shift()}async postToServer(t,r){if(this.logBuffer.length>0){let i=[...this.logBuffer];this.logBuffer=[];try{if(!(await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i.map(o=>({...o,source:r})))})).ok)throw new Error("Failed to post logs to server")}catch(a){console.warn("Could not post logs to server",a.message),this.logBuffer.unshift(...i)}}}},Be;function je(e=""){return Be=new ue(e),Be}var Ut=e=>{throw new Error("Not initialized yet")},de=typeof window>"u"&&typeof globalThis.WebSocketPair>"u";typeof Deno>"u"&&(self.Deno={args:[],build:{arch:"x86_64"},env:{get(){}}});var ce=new Map,le=0;de&&(globalThis.syscall=async(e,...t)=>await new Promise((r,n)=>{le++,ce.set(le,{resolve:r,reject:n}),Ut({type:"sys",id:le,name:e,args:t})}));function ze(e,t,r){de&&(Ut=r,self.addEventListener("message",n=>{(async()=>{let i=n.data;switch(i.type){case"inv":{let a=e[i.name];if(!a)throw new Error(`Function not loaded: ${i.name}`);try{let o=await Promise.resolve(a(...i.args||[]));Ut({type:"invr",id:i.id,result:o})}catch(o){console.error("An exception was thrown as a result of invoking function",i.name,"error:",o.message),Ut({type:"invr",id:i.id,error:o.message})}}break;case"sysr":{let a=i.id,o=ce.get(a);if(!o)throw Error("Invalid request id");ce.delete(a),i.error?o.reject(new Error(i.error)):o.resolve(i.result)}break}})().catch(console.error)}),Ut({type:"manifest",manifest:t}),je(`[${t.name} plug]`))}async function Wr(e,t){if(typeof e!="string"){let r=new Uint8Array(await e.arrayBuffer()),n=r.length>0?se(r):void 0;t={method:e.method,headers:Object.fromEntries(e.headers.entries()),base64Body:n},e=e.url}return syscall("sandboxFetch.fetch",e,t)}globalThis.nativeFetch=globalThis.fetch;function Fr(){globalThis.fetch=async function(e,t){let r=t&&t.body?se(new Uint8Array(await new Response(t.body).arrayBuffer())):void 0,n=await Wr(e,t&&{method:t.method,headers:t.headers,base64Body:r});return new Response(n.base64Body?Re(n.base64Body):null,{status:n.status,headers:n.headers})}}de&&Fr();var ct={};Mt(ct,{alert:()=>Cn,configureVimMode:()=>Vn,confirm:()=>En,copyToClipboard:()=>Bn,deleteLine:()=>jn,dispatch:()=>Dn,downloadFile:()=>fn,filterBox:()=>pn,flashNotification:()=>mn,fold:()=>kn,foldAll:()=>Un,getCurrentEditor:()=>$r,getCurrentPage:()=>Hr,getCurrentPageMeta:()=>Vr,getCurrentPath:()=>Kr,getCursor:()=>Jr,getRecentlyOpenedPages:()=>qr,getSelection:()=>Qr,getText:()=>Zr,getUiOption:()=>On,goHistory:()=>hn,hidePanel:()=>bn,insertAtCursor:()=>_n,insertAtPos:()=>Tn,invokeCommand:()=>tn,isMobile:()=>qn,moveCursor:()=>Sn,moveCursorToLine:()=>xn,moveLineDown:()=>Fn,moveLineUp:()=>Wn,navigate:()=>rn,newWindow:()=>dn,openCommandPalette:()=>an,openPageNavigator:()=>nn,openSearchPanel:()=>Rn,openUrl:()=>cn,prompt:()=>An,rebuildEditorState:()=>un,redo:()=>Ln,reloadConfigAndCommands:()=>ln,reloadPage:()=>on,reloadUI:()=>sn,replaceRange:()=>vn,save:()=>en,sendMessage:()=>Kn,setSelection:()=>Xr,setText:()=>Gr,setUiOption:()=>Yn,showPanel:()=>gn,showProgress:()=>wn,toggleComment:()=>zn,toggleFold:()=>Mn,undo:()=>Nn,unfold:()=>Pn,unfoldAll:()=>In,uploadFile:()=>yn,vimEx:()=>Hn});typeof self>"u"&&(self={syscall:()=>{throw new Error("Not implemented here")}});function m(e,...t){return globalThis.syscall(e,...t)}function Hr(){return m("editor.getCurrentPage")}function Vr(){return m("editor.getCurrentPageMeta")}function Kr(){return m("editor.getCurrentPath")}function qr(){return m("editor.getRecentlyOpenedPages")}function $r(){return m("editor.getCurrentEditor")}function Zr(){return m("editor.getText")}function Gr(e,t=!1){return m("editor.setText",e,t)}function Jr(){return m("editor.getCursor")}function Qr(){return m("editor.getSelection")}function Xr(e,t){return m("editor.setSelection",e,t)}function tn(e,t){return m("editor.invokeCommand",e,t)}function en(){return m("editor.save")}function rn(e,t=!1,r=!1){return m("editor.navigate",e,t,r)}function nn(e="page"){return m("editor.openPageNavigator",e)}function an(){return m("editor.openCommandPalette")}function on(){return m("editor.reloadPage")}function sn(){return m("editor.reloadUI")}function un(){return m("editor.rebuildEditorState")}function ln(){return m("editor.reloadConfigAndCommands")}function cn(e,t=!1){return m("editor.openUrl",e,t)}function dn(){return m("editor.newWindow")}function hn(e){return m("editor.goHistory",e)}function fn(e,t){return m("editor.downloadFile",e,t)}function yn(e,t){return m("editor.uploadFile",e,t)}function mn(e,t="info"){return m("editor.flashNotification",e,t)}function pn(e,t,r="",n=""){return m("editor.filterBox",e,t,r,n)}function gn(e,t,r,n=""){return m("editor.showPanel",e,t,r,n)}function bn(e){return m("editor.hidePanel",e)}function wn(e,t){return m("editor.showProgress",e,t)}function Tn(e,t){return m("editor.insertAtPos",e,t)}function vn(e,t,r){return m("editor.replaceRange",e,t,r)}function Sn(e,t=!1){return m("editor.moveCursor",e,t)}function xn(e,t=1,r=!1){return m("editor.moveCursorToLine",e,t,r)}function _n(e,t=!1,r=!1){return m("editor.insertAtCursor",e,t,r)}function Dn(e){return m("editor.dispatch",e)}function An(e,t=""){return m("editor.prompt",e,t)}function En(e){return m("editor.confirm",e)}function Cn(e){return m("editor.alert",e)}function On(e){return m("editor.getUiOption",e)}function Yn(e,t){return m("editor.setUiOption",e,t)}function kn(){return m("editor.fold")}function Pn(){return m("editor.unfold")}function Mn(){return m("editor.toggleFold")}function Un(){return m("editor.foldAll")}function In(){return m("editor.unfoldAll")}function Nn(){return m("editor.undo")}function Ln(){return m("editor.redo")}function Rn(){return m("editor.openSearchPanel")}function Bn(e){return m("editor.copyToClipboard",e)}function jn(){return m("editor.deleteLine")}function zn(){return m("editor.toggleComment")}function Wn(){return m("editor.moveLineUp")}function Fn(){return m("editor.moveLineDown")}function Hn(e){return m("editor.vimEx",e)}function Vn(){return m("editor.configureVimMode")}function Kn(e,t){return m("editor.sendMessage",e,t)}function qn(){return m("editor.isMobile")}var It={};Mt(It,{del:()=>Xn,get:()=>Qn,set:()=>Jn});function Jn(e,t){return m("clientStore.set",e,t)}function Qn(e){return m("clientStore.get",e)}function Xn(e){return m("clientStore.delete",e)}var go=new Uint8Array(16);var Nt={};Mt(Nt,{batchDel:()=>hi,batchDeletePrefix:()=>mi,batchGet:()=>ci,batchSet:()=>ui,del:()=>di,get:()=>li,listFunctions:()=>gi,query:()=>fi,queryDelete:()=>pi,queryLua:()=>yi,set:()=>si});function si(e,t){return m("datastore.set",e,t)}function ui(e){return m("datastore.batchSet",e)}function li(e){return m("datastore.get",e)}function ci(e){return m("datastore.batchGet",e)}function di(e){return m("datastore.delete",e)}function hi(e){return m("datastore.batchDelete",e)}function fi(e){return m("datastore.query",e)}function yi(e,t,r){return m("datastore.queryLua",e,t,r)}function mi(e){return m("datastore.batchDeletePrefix",e)}function pi(e,t){return m("datastore.queryDelete",e,t)}function gi(){return m("datastore.listFunctions")}var qt={};Mt(qt,{define:()=>_i,get:()=>Ti,has:()=>xi,insert:()=>Si,set:()=>vi});function Ti(e,t){return m("config.get",e,t)}function vi(e,t){return m("config.set",e,t)}function Si(e,t){return m("config.insert",e,t)}function xi(e){return m("config.has",e)}function _i(e,t){return m("config.define",e,t)}var $t={};Mt($t,{ensureFullIndex:()=>Ci,getObjectByRef:()=>Ei,indexObjects:()=>Di,queryLuaObjects:()=>Ai});function Di(e,t){return m("index.indexObjects",e,t)}function Ai(e,t,r,n){return m("index.queryLuaObjects",e,t,r,n)}function Ei(e,t,r){return m("index.getObjectByRef",e,t,r)}function Ci(){return m("index.ensureFullIndex")}var Xe=class tr{static fromString(t){return new tr(t)}constructor(t){this.value=t}icaltype="binary";decodeValue(){return this._b64_decode(this.value)}setEncodedValue(t){this.value=this._b64_encode(t)}_b64_encode(t){let r,n,i,a,o,s,u,l,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d=0,h=0,f="",y=[];if(!t)return t;do r=t.charCodeAt(d++),n=t.charCodeAt(d++),i=t.charCodeAt(d++),l=r<<16|n<<8|i,a=l>>18&63,o=l>>12&63,s=l>>6&63,u=63&l,y[h++]=c.charAt(a)+c.charAt(o)+c.charAt(s)+c.charAt(u);while(d>16&255,n=l>>8&255,i=255&l,y[h++]=s==64?String.fromCharCode(r):u==64?String.fromCharCode(r,n):String.fromCharCode(r,n,i);while(dn)-(r12||(n=[0,31,28,31,30,31,30,31,31,30,31,30,31][t],t==2&&(n+=T.isLeapYear(r))),n}static isLeapYear(t){return t<=1752?t%4==0:t%4==0&&t%100!=0||t%400==0}static fromDayOfYear(t,r){let n=r,i=t,a=new T;a.auto_normalize=!1;let o=T.isLeapYear(n)?1:0;if(i<1)return n--,o=T.isLeapYear(n)?1:0,i+=T.daysInYearPassedMonth[o][12],T.fromDayOfYear(i,n);if(i>T.daysInYearPassedMonth[o][12])return o=T.isLeapYear(n)?1:0,i-=T.daysInYearPassedMonth[o][12],n++,T.fromDayOfYear(i,n);a.year=n,a.isDate=!0;for(let s=11;s>=0;s--)if(i>T.daysInYearPassedMonth[o][s]){a.month=s+1,a.day=i-T.daysInYearPassedMonth[o][s];break}return a.auto_normalize=!0,a}static fromStringv2(t){return new T({year:parseInt(t.slice(0,4),10),month:parseInt(t.slice(5,7),10),day:parseInt(t.slice(8,10),10),isDate:!0})}static fromDateString(t){return new T({year:R(t.slice(0,4)),month:R(t.slice(5,7)),day:R(t.slice(8,10)),isDate:!0})}static fromDateTimeString(t,r){if(t.length<19)throw new Error('invalid date-time value: "'+t+'"');let n,i;t[19]&&t[19]==="Z"?n=O.utcTimezone:r&&(i=r.getParameter("tzid"),r.parent&&(r.parent.name==="standard"||r.parent.name==="daylight"?n=O.localTimezone:i&&(n=r.parent.getTimeZoneByID(i))));let a={year:R(t.slice(0,4)),month:R(t.slice(5,7)),day:R(t.slice(8,10)),hour:R(t.slice(11,13)),minute:R(t.slice(14,16)),second:R(t.slice(17,19))};return i&&!n&&(a.timezone=i),new T(a,n)}static fromString(t,r){return t.length>10?T.fromDateTimeString(t,r):T.fromDateString(t)}static fromJSDate(t,r){return new T().fromJSDate(t,r)}static fromData=function(t,r){return new T().fromData(t,r)};static now(){return T.fromJSDate(new Date,!1)}static weekOneStarts(t,r){let n=T.fromData({year:t,month:1,day:1,isDate:!0}),i=n.dayOfWeek(),a=r||T.DEFAULT_WEEK_START;return i>T.THURSDAY&&(n.day+=7),a>T.THURSDAY&&(n.day-=7),n.day-=i-a,n}static getDominicalLetter(t){let r="GFEDCBA",n=(t+(t/4|0)+(t/400|0)-(t/100|0)-1)%7;return T.isLeapYear(t)?r[(n+6)%7]+r[n]:r[n]}static#t=null;static get epochTime(){return this.#t||(this.#t=T.fromData({year:1970,month:1,day:1,hour:0,minute:0,second:0,isDate:!1,timezone:"Z"})),this.#t}static _cmp_attr(t,r,n){return t[n]>r[n]?1:t[n]=0){s.day=1,a!=0&&a--,o=s.day;let u=t-s.dayOfWeek();u<0&&(u+=7),o+=u,o-=t,n=t}else s.day=i,a++,n=s.dayOfWeek()-t,n<0&&(n+=7),n=i-n;return n+=7*a,o+n}isNthWeekDay(t,r){let n=this.dayOfWeek();return r===0&&n===t||this.nthWeekDay(t,r)===this.day}weekNumber(t){let r,n=(this.year<<12)+(this.month<<8)+(this.day<<3)+t;if(n in T._wnCache)return T._wnCache[n];let i=this.clone();i.isDate=!0;let a=this.year;i.month==12&&i.day>25?(r=T.weekOneStarts(a+1,t),i.compare(r)<0?r=T.weekOneStarts(a,t):a++):(r=T.weekOneStarts(a,t),i.compare(r)<0&&(r=T.weekOneStarts(--a,t)));let o=U(i.subtractDate(r).toSeconds()/86400/7)+1;return T._wnCache[n]=o,o}addDuration(t){let r=t.isNegative?-1:1,n=this.second,i=this.minute,a=this.hour,o=this.day;n+=r*t.seconds,i+=r*t.minutes,a+=r*t.hours,o+=r*t.days,o+=7*r*t.weeks,this.second=n,this.minute=i,this.hour=a,this.day=o,this._cachedUnixTime=null}subtractDate(t){let r=this.toUnixTime()+this.utcOffset(),n=t.toUnixTime()+t.utcOffset();return X.fromSeconds(r-n)}subtractDateTz(t){let r=this.toUnixTime(),n=t.toUnixTime();return X.fromSeconds(r-n)}compare(t){let r=this.toUnixTime(),n=t.toUnixTime();return r>n?1:n>r?-1:0}compareDateOnlyTz(t,r){let n=this.convertToZone(r),i=t.convertToZone(r),a=0;return(a=T._cmp_attr(n,i,"year"))!=0||(a=T._cmp_attr(n,i,"month"))!=0||(a=T._cmp_attr(n,i,"day")),a}convertToZone(t){let r=this.clone(),n=this.zone.tzid==t.tzid;return this.isDate||n||O.convert_time(r,this.zone,t),r.zone=t,r}utcOffset(){return this.zone==O.localTimezone||this.zone==O.utcTimezone?0:this.zone.utcOffset(this)}toICALString(){let t=this.toString();return t.length>10?I.icalendar.value["date-time"].toICAL(t):I.icalendar.value.date.toICAL(t)}toString(){let t=this.year+"-"+V(this.month)+"-"+V(this.day);return this.isDate||(t+="T"+V(this.hour)+":"+V(this.minute)+":"+V(this.second),this.zone===O.utcTimezone&&(t+="Z")),t}toJSDate(){return this.zone==O.localTimezone?this.isDate?new Date(this.year,this.month-1,this.day):new Date(this.year,this.month-1,this.day,this.hour,this.minute,this.second,0):new Date(1e3*this.toUnixTime())}_normalize(){return this._time.isDate&&(this._time.hour=0,this._time.minute=0,this._time.second=0),this.adjust(0,0,0,0),this}adjust(t,r,n,i,a){let o,s,u,l,c,d,h,f=0,y=0,p=a||this._time;if(p.isDate||(u=p.second+i,p.second=u%60,o=U(u/60),p.second<0&&(p.second+=60,o--),l=p.minute+n+o,p.minute=l%60,s=U(l/60),p.minute<0&&(p.minute+=60,s--),c=p.hour+r+s,p.hour=c%24,f=U(c/24),p.hour<0&&(p.hour+=24,f--)),p.month>12?y=U((p.month-1)/12):p.month<1&&(y=U(p.month/12)-1),p.year+=y,p.month-=12*y,d=p.day+t+f,d>0)for(;h=T.daysInMonth(p.month,p.year),!(d<=h);)p.month++,p.month>12&&(p.year++,p.month=1),d-=h;else for(;d<=0;)p.month==1?(p.year--,p.month=12):p.month--,d+=T.daysInMonth(p.month,p.year);return p.day=d,this._cachedUnixTime=null,this}fromUnixTime(t){this.zone=O.utcTimezone;let r=new Date(1e3*t);this.year=r.getUTCFullYear(),this.month=r.getUTCMonth()+1,this.day=r.getUTCDate(),this._time.isDate?(this.hour=0,this.minute=0,this.second=0):(this.hour=r.getUTCHours(),this.minute=r.getUTCMinutes(),this.second=r.getUTCSeconds()),this._cachedUnixTime=null}toUnixTime(){if(this._cachedUnixTime!==null)return this._cachedUnixTime;let t=this.utcOffset(),r=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second-t);return this._cachedUnixTime=r/1e3,this._cachedUnixTime}toJSON(){let t,r=["year","month","day","hour","minute","second","isDate"],n=Object.create(null),i=0,a=r.length;for(;i1)throw new pt("invalid ical body. component began but did not end");return t=null,r.length==1?r[0]:r}A.property=function(e,t){let r={component:[[],[]],designSet:t||I.defaultSet};return A._handleContentLine(e,r),r.component[1][0]},A.component=function(e){return A(e)};var pt=class extends Error{constructor(e){super(e),this.name=this.constructor.name;try{throw new Error}catch(t){if(t.stack){let r=t.stack.split(` +var zr=Object.defineProperty;var Mt=(e,t)=>{for(var r in t)zr(e,r,{get:t[r],enumerable:!0})};function Re(e){let t=atob(e),r=t.length,n=new Uint8Array(r);for(let i=0;i(...n)=>{let i=this.prefix?[this.prefix,...n]:n;this.originalConsole[r](...i),this.captureLog(r,n)};console.log=t("log"),console.info=t("info"),console.warn=t("warn"),console.error=t("error"),console.debug=t("debug")}captureLog(t,r){let n={level:t,timestamp:Date.now(),message:r.map(i=>{if(typeof i=="string")return i;try{return JSON.stringify(i)}catch{return String(i)}}).join(" ")};this.logBuffer.push(n),this.logBuffer.length>this.maxCaptureSize&&this.logBuffer.shift()}async postToServer(t,r){if(this.logBuffer.length>0){let i=[...this.logBuffer];this.logBuffer=[];try{if(!(await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i.map(o=>({...o,source:r})))})).ok)throw new Error("Failed to post logs to server")}catch(a){console.warn("Could not post logs to server",a.message),this.logBuffer.unshift(...i)}}}},Be;function je(e=""){return Be=new ue(e),Be}var Ut=e=>{throw new Error("Not initialized yet")},de=typeof window>"u"&&typeof globalThis.WebSocketPair>"u";typeof Deno>"u"&&(self.Deno={args:[],build:{arch:"x86_64"},env:{get(){}}});var ce=new Map,le=0;de&&(globalThis.syscall=async(e,...t)=>await new Promise((r,n)=>{le++,ce.set(le,{resolve:r,reject:n}),Ut({type:"sys",id:le,name:e,args:t})}));function ze(e,t,r){de&&(Ut=r,self.addEventListener("message",n=>{(async()=>{let i=n.data;switch(i.type){case"inv":{let a=e[i.name];if(!a)throw new Error(`Function not loaded: ${i.name}`);try{let o=await Promise.resolve(a(...i.args||[]));Ut({type:"invr",id:i.id,result:o})}catch(o){console.error("An exception was thrown as a result of invoking function",i.name,"error:",o.message),Ut({type:"invr",id:i.id,error:o.message})}}break;case"sysr":{let a=i.id,o=ce.get(a);if(!o)throw Error("Invalid request id");ce.delete(a),i.error?o.reject(new Error(i.error)):o.resolve(i.result)}break}})().catch(console.error)}),Ut({type:"manifest",manifest:t}),je(`[${t.name} plug]`))}async function Wr(e,t){if(typeof e!="string"){let r=new Uint8Array(await e.arrayBuffer()),n=r.length>0?se(r):void 0;t={method:e.method,headers:Object.fromEntries(e.headers.entries()),base64Body:n},e=e.url}return syscall("sandboxFetch.fetch",e,t)}globalThis.nativeFetch=globalThis.fetch;function Fr(){globalThis.fetch=async function(e,t){let r=t&&t.body?se(new Uint8Array(await new Response(t.body).arrayBuffer())):void 0,n=await Wr(e,t&&{method:t.method,headers:t.headers,base64Body:r});return new Response(n.base64Body?Re(n.base64Body):null,{status:n.status,headers:n.headers})}}de&&Fr();var ct={};Mt(ct,{alert:()=>On,configureVimMode:()=>Vn,confirm:()=>En,copyToClipboard:()=>Bn,deleteLine:()=>jn,dispatch:()=>Dn,downloadFile:()=>fn,filterBox:()=>pn,flashNotification:()=>mn,fold:()=>kn,foldAll:()=>Un,getCurrentEditor:()=>$r,getCurrentPage:()=>Hr,getCurrentPageMeta:()=>Vr,getCurrentPath:()=>Kr,getCursor:()=>Jr,getRecentlyOpenedPages:()=>qr,getSelection:()=>Qr,getText:()=>Zr,getUiOption:()=>Cn,goHistory:()=>hn,hidePanel:()=>bn,insertAtCursor:()=>_n,insertAtPos:()=>Tn,invokeCommand:()=>tn,isMobile:()=>qn,moveCursor:()=>Sn,moveCursorToLine:()=>xn,moveLineDown:()=>Fn,moveLineUp:()=>Wn,navigate:()=>rn,newWindow:()=>dn,openCommandPalette:()=>an,openPageNavigator:()=>nn,openSearchPanel:()=>Rn,openUrl:()=>cn,prompt:()=>An,rebuildEditorState:()=>un,redo:()=>Ln,reloadConfigAndCommands:()=>ln,reloadPage:()=>on,reloadUI:()=>sn,replaceRange:()=>vn,save:()=>en,sendMessage:()=>Kn,setSelection:()=>Xr,setText:()=>Gr,setUiOption:()=>Yn,showPanel:()=>gn,showProgress:()=>wn,toggleComment:()=>zn,toggleFold:()=>Mn,undo:()=>In,unfold:()=>Pn,unfoldAll:()=>Nn,uploadFile:()=>yn,vimEx:()=>Hn});typeof self>"u"&&(self={syscall:()=>{throw new Error("Not implemented here")}});function m(e,...t){return globalThis.syscall(e,...t)}function Hr(){return m("editor.getCurrentPage")}function Vr(){return m("editor.getCurrentPageMeta")}function Kr(){return m("editor.getCurrentPath")}function qr(){return m("editor.getRecentlyOpenedPages")}function $r(){return m("editor.getCurrentEditor")}function Zr(){return m("editor.getText")}function Gr(e,t=!1){return m("editor.setText",e,t)}function Jr(){return m("editor.getCursor")}function Qr(){return m("editor.getSelection")}function Xr(e,t){return m("editor.setSelection",e,t)}function tn(e,t){return m("editor.invokeCommand",e,t)}function en(){return m("editor.save")}function rn(e,t=!1,r=!1){return m("editor.navigate",e,t,r)}function nn(e="page"){return m("editor.openPageNavigator",e)}function an(){return m("editor.openCommandPalette")}function on(){return m("editor.reloadPage")}function sn(){return m("editor.reloadUI")}function un(){return m("editor.rebuildEditorState")}function ln(){return m("editor.reloadConfigAndCommands")}function cn(e,t=!1){return m("editor.openUrl",e,t)}function dn(){return m("editor.newWindow")}function hn(e){return m("editor.goHistory",e)}function fn(e,t){return m("editor.downloadFile",e,t)}function yn(e,t){return m("editor.uploadFile",e,t)}function mn(e,t="info"){return m("editor.flashNotification",e,t)}function pn(e,t,r="",n=""){return m("editor.filterBox",e,t,r,n)}function gn(e,t,r,n=""){return m("editor.showPanel",e,t,r,n)}function bn(e){return m("editor.hidePanel",e)}function wn(e,t){return m("editor.showProgress",e,t)}function Tn(e,t){return m("editor.insertAtPos",e,t)}function vn(e,t,r){return m("editor.replaceRange",e,t,r)}function Sn(e,t=!1){return m("editor.moveCursor",e,t)}function xn(e,t=1,r=!1){return m("editor.moveCursorToLine",e,t,r)}function _n(e,t=!1,r=!1){return m("editor.insertAtCursor",e,t,r)}function Dn(e){return m("editor.dispatch",e)}function An(e,t=""){return m("editor.prompt",e,t)}function En(e){return m("editor.confirm",e)}function On(e){return m("editor.alert",e)}function Cn(e){return m("editor.getUiOption",e)}function Yn(e,t){return m("editor.setUiOption",e,t)}function kn(){return m("editor.fold")}function Pn(){return m("editor.unfold")}function Mn(){return m("editor.toggleFold")}function Un(){return m("editor.foldAll")}function Nn(){return m("editor.unfoldAll")}function In(){return m("editor.undo")}function Ln(){return m("editor.redo")}function Rn(){return m("editor.openSearchPanel")}function Bn(e){return m("editor.copyToClipboard",e)}function jn(){return m("editor.deleteLine")}function zn(){return m("editor.toggleComment")}function Wn(){return m("editor.moveLineUp")}function Fn(){return m("editor.moveLineDown")}function Hn(e){return m("editor.vimEx",e)}function Vn(){return m("editor.configureVimMode")}function Kn(e,t){return m("editor.sendMessage",e,t)}function qn(){return m("editor.isMobile")}var Nt={};Mt(Nt,{del:()=>Xn,get:()=>Qn,set:()=>Jn});function Jn(e,t){return m("clientStore.set",e,t)}function Qn(e){return m("clientStore.get",e)}function Xn(e){return m("clientStore.delete",e)}var go=new Uint8Array(16);var It={};Mt(It,{batchDel:()=>hi,batchDeletePrefix:()=>mi,batchGet:()=>ci,batchSet:()=>ui,del:()=>di,get:()=>li,listFunctions:()=>gi,query:()=>fi,queryDelete:()=>pi,queryLua:()=>yi,set:()=>si});function si(e,t){return m("datastore.set",e,t)}function ui(e){return m("datastore.batchSet",e)}function li(e){return m("datastore.get",e)}function ci(e){return m("datastore.batchGet",e)}function di(e){return m("datastore.delete",e)}function hi(e){return m("datastore.batchDelete",e)}function fi(e){return m("datastore.query",e)}function yi(e,t,r){return m("datastore.queryLua",e,t,r)}function mi(e){return m("datastore.batchDeletePrefix",e)}function pi(e,t){return m("datastore.queryDelete",e,t)}function gi(){return m("datastore.listFunctions")}var qt={};Mt(qt,{define:()=>_i,get:()=>Ti,has:()=>xi,insert:()=>Si,set:()=>vi});function Ti(e,t){return m("config.get",e,t)}function vi(e,t){return m("config.set",e,t)}function Si(e,t){return m("config.insert",e,t)}function xi(e){return m("config.has",e)}function _i(e,t){return m("config.define",e,t)}var $t={};Mt($t,{ensureFullIndex:()=>Oi,getObjectByRef:()=>Ei,indexObjects:()=>Di,queryLuaObjects:()=>Ai});function Di(e,t){return m("index.indexObjects",e,t)}function Ai(e,t,r,n){return m("index.queryLuaObjects",e,t,r,n)}function Ei(e,t,r){return m("index.getObjectByRef",e,t,r)}function Oi(){return m("index.ensureFullIndex")}var Xe=class tr{static fromString(t){return new tr(t)}constructor(t){this.value=t}icaltype="binary";decodeValue(){return this._b64_decode(this.value)}setEncodedValue(t){this.value=this._b64_encode(t)}_b64_encode(t){let r,n,i,a,o,s,u,l,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d=0,h=0,f="",y=[];if(!t)return t;do r=t.charCodeAt(d++),n=t.charCodeAt(d++),i=t.charCodeAt(d++),l=r<<16|n<<8|i,a=l>>18&63,o=l>>12&63,s=l>>6&63,u=63&l,y[h++]=c.charAt(a)+c.charAt(o)+c.charAt(s)+c.charAt(u);while(d>16&255,n=l>>8&255,i=255&l,y[h++]=s==64?String.fromCharCode(r):u==64?String.fromCharCode(r,n):String.fromCharCode(r,n,i);while(dn)-(r12||(n=[0,31,28,31,30,31,30,31,31,30,31,30,31][t],t==2&&(n+=T.isLeapYear(r))),n}static isLeapYear(t){return t<=1752?t%4==0:t%4==0&&t%100!=0||t%400==0}static fromDayOfYear(t,r){let n=r,i=t,a=new T;a.auto_normalize=!1;let o=T.isLeapYear(n)?1:0;if(i<1)return n--,o=T.isLeapYear(n)?1:0,i+=T.daysInYearPassedMonth[o][12],T.fromDayOfYear(i,n);if(i>T.daysInYearPassedMonth[o][12])return o=T.isLeapYear(n)?1:0,i-=T.daysInYearPassedMonth[o][12],n++,T.fromDayOfYear(i,n);a.year=n,a.isDate=!0;for(let s=11;s>=0;s--)if(i>T.daysInYearPassedMonth[o][s]){a.month=s+1,a.day=i-T.daysInYearPassedMonth[o][s];break}return a.auto_normalize=!0,a}static fromStringv2(t){return new T({year:parseInt(t.slice(0,4),10),month:parseInt(t.slice(5,7),10),day:parseInt(t.slice(8,10),10),isDate:!0})}static fromDateString(t){return new T({year:R(t.slice(0,4)),month:R(t.slice(5,7)),day:R(t.slice(8,10)),isDate:!0})}static fromDateTimeString(t,r){if(t.length<19)throw new Error('invalid date-time value: "'+t+'"');let n,i;t[19]&&t[19]==="Z"?n=C.utcTimezone:r&&(i=r.getParameter("tzid"),r.parent&&(r.parent.name==="standard"||r.parent.name==="daylight"?n=C.localTimezone:i&&(n=r.parent.getTimeZoneByID(i))));let a={year:R(t.slice(0,4)),month:R(t.slice(5,7)),day:R(t.slice(8,10)),hour:R(t.slice(11,13)),minute:R(t.slice(14,16)),second:R(t.slice(17,19))};return i&&!n&&(a.timezone=i),new T(a,n)}static fromString(t,r){return t.length>10?T.fromDateTimeString(t,r):T.fromDateString(t)}static fromJSDate(t,r){return new T().fromJSDate(t,r)}static fromData=function(t,r){return new T().fromData(t,r)};static now(){return T.fromJSDate(new Date,!1)}static weekOneStarts(t,r){let n=T.fromData({year:t,month:1,day:1,isDate:!0}),i=n.dayOfWeek(),a=r||T.DEFAULT_WEEK_START;return i>T.THURSDAY&&(n.day+=7),a>T.THURSDAY&&(n.day-=7),n.day-=i-a,n}static getDominicalLetter(t){let r="GFEDCBA",n=(t+(t/4|0)+(t/400|0)-(t/100|0)-1)%7;return T.isLeapYear(t)?r[(n+6)%7]+r[n]:r[n]}static#t=null;static get epochTime(){return this.#t||(this.#t=T.fromData({year:1970,month:1,day:1,hour:0,minute:0,second:0,isDate:!1,timezone:"Z"})),this.#t}static _cmp_attr(t,r,n){return t[n]>r[n]?1:t[n]=0){s.day=1,a!=0&&a--,o=s.day;let u=t-s.dayOfWeek();u<0&&(u+=7),o+=u,o-=t,n=t}else s.day=i,a++,n=s.dayOfWeek()-t,n<0&&(n+=7),n=i-n;return n+=7*a,o+n}isNthWeekDay(t,r){let n=this.dayOfWeek();return r===0&&n===t||this.nthWeekDay(t,r)===this.day}weekNumber(t){let r,n=(this.year<<12)+(this.month<<8)+(this.day<<3)+t;if(n in T._wnCache)return T._wnCache[n];let i=this.clone();i.isDate=!0;let a=this.year;i.month==12&&i.day>25?(r=T.weekOneStarts(a+1,t),i.compare(r)<0?r=T.weekOneStarts(a,t):a++):(r=T.weekOneStarts(a,t),i.compare(r)<0&&(r=T.weekOneStarts(--a,t)));let o=U(i.subtractDate(r).toSeconds()/86400/7)+1;return T._wnCache[n]=o,o}addDuration(t){let r=t.isNegative?-1:1,n=this.second,i=this.minute,a=this.hour,o=this.day;n+=r*t.seconds,i+=r*t.minutes,a+=r*t.hours,o+=r*t.days,o+=7*r*t.weeks,this.second=n,this.minute=i,this.hour=a,this.day=o,this._cachedUnixTime=null}subtractDate(t){let r=this.toUnixTime()+this.utcOffset(),n=t.toUnixTime()+t.utcOffset();return X.fromSeconds(r-n)}subtractDateTz(t){let r=this.toUnixTime(),n=t.toUnixTime();return X.fromSeconds(r-n)}compare(t){let r=this.toUnixTime(),n=t.toUnixTime();return r>n?1:n>r?-1:0}compareDateOnlyTz(t,r){let n=this.convertToZone(r),i=t.convertToZone(r),a=0;return(a=T._cmp_attr(n,i,"year"))!=0||(a=T._cmp_attr(n,i,"month"))!=0||(a=T._cmp_attr(n,i,"day")),a}convertToZone(t){let r=this.clone(),n=this.zone.tzid==t.tzid;return this.isDate||n||C.convert_time(r,this.zone,t),r.zone=t,r}utcOffset(){return this.zone==C.localTimezone||this.zone==C.utcTimezone?0:this.zone.utcOffset(this)}toICALString(){let t=this.toString();return t.length>10?N.icalendar.value["date-time"].toICAL(t):N.icalendar.value.date.toICAL(t)}toString(){let t=this.year+"-"+V(this.month)+"-"+V(this.day);return this.isDate||(t+="T"+V(this.hour)+":"+V(this.minute)+":"+V(this.second),this.zone===C.utcTimezone&&(t+="Z")),t}toJSDate(){return this.zone==C.localTimezone?this.isDate?new Date(this.year,this.month-1,this.day):new Date(this.year,this.month-1,this.day,this.hour,this.minute,this.second,0):new Date(1e3*this.toUnixTime())}_normalize(){return this._time.isDate&&(this._time.hour=0,this._time.minute=0,this._time.second=0),this.adjust(0,0,0,0),this}adjust(t,r,n,i,a){let o,s,u,l,c,d,h,f=0,y=0,p=a||this._time;if(p.isDate||(u=p.second+i,p.second=u%60,o=U(u/60),p.second<0&&(p.second+=60,o--),l=p.minute+n+o,p.minute=l%60,s=U(l/60),p.minute<0&&(p.minute+=60,s--),c=p.hour+r+s,p.hour=c%24,f=U(c/24),p.hour<0&&(p.hour+=24,f--)),p.month>12?y=U((p.month-1)/12):p.month<1&&(y=U(p.month/12)-1),p.year+=y,p.month-=12*y,d=p.day+t+f,d>0)for(;h=T.daysInMonth(p.month,p.year),!(d<=h);)p.month++,p.month>12&&(p.year++,p.month=1),d-=h;else for(;d<=0;)p.month==1?(p.year--,p.month=12):p.month--,d+=T.daysInMonth(p.month,p.year);return p.day=d,this._cachedUnixTime=null,this}fromUnixTime(t){this.zone=C.utcTimezone;let r=new Date(1e3*t);this.year=r.getUTCFullYear(),this.month=r.getUTCMonth()+1,this.day=r.getUTCDate(),this._time.isDate?(this.hour=0,this.minute=0,this.second=0):(this.hour=r.getUTCHours(),this.minute=r.getUTCMinutes(),this.second=r.getUTCSeconds()),this._cachedUnixTime=null}toUnixTime(){if(this._cachedUnixTime!==null)return this._cachedUnixTime;let t=this.utcOffset(),r=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second-t);return this._cachedUnixTime=r/1e3,this._cachedUnixTime}toJSON(){let t,r=["year","month","day","hour","minute","second","isDate"],n=Object.create(null),i=0,a=r.length;for(;i1)throw new pt("invalid ical body. component began but did not end");return t=null,r.length==1?r[0]:r}A.property=function(e,t){let r={component:[[],[]],designSet:t||N.defaultSet};return A._handleContentLine(e,r),r.component[1][0]},A.component=function(e){return A(e)};var pt=class extends Error{constructor(e){super(e),this.name=this.constructor.name;try{throw new Error}catch(t){if(t.stack){let r=t.stack.split(` `);r.shift(),this.stack=r.join(` -`)}}}};A.ParserError=pt,A._handleContentLine=function(e,t){let r,n,i,a,o,s,u=e.indexOf(":"),l=e.indexOf(";"),c={};if(l!==-1&&u!==-1&&l>u&&(l=-1),l!==-1){if(i=e.slice(0,Math.max(0,l)).toLowerCase(),o=A._parseParameters(e.slice(Math.max(0,l)),0,t.designSet),o[2]==-1)throw new pt("Invalid parameters in '"+e+"'");if(c=o[0],r=o[1].length+o[2]+l,(n=e.slice(Math.max(0,r)).indexOf(":"))===-1)throw new pt("Missing parameter value in '"+e+"'");a=e.slice(Math.max(0,r+n+1))}else{if(u===-1)throw new pt('invalid line (no token ";" or ":") "'+e+'"');if(i=e.slice(0,Math.max(0,u)).toLowerCase(),a=e.slice(Math.max(0,u+1)),i==="begin"){let S=[a.toLowerCase(),[],[]];return t.stack.length===1?t.component.push(S):t.component[2].push(S),t.stack.push(t.component),t.component=S,void(t.designSet||(t.designSet=I.getDesignSet(t.component[0])))}if(i==="end")return void(t.component=t.stack.pop())}let d,h,f,y,p=!1,b=!1;t.designSet.propertyGroups&&i.indexOf(".")!==-1?(h=i.split("."),c.group=h[0],f=h[1]):f=i,f in t.designSet.property&&(d=t.designSet.property[f],"multiValue"in d&&(p=d.multiValue),"structuredValue"in d&&(b=d.structuredValue),a&&"detectType"in d&&(s=d.detectType(a))),s||(s="value"in c?c.value.toLowerCase():d?d.defaultType:"unknown"),delete c.value,p&&b?(a=A._parseMultiValue(a,b,s,[],p,t.designSet,b),y=[f,c,s,a]):p?(y=[f,c,s],A._parseMultiValue(a,p,s,y,null,t.designSet,!1)):b?(a=A._parseMultiValue(a,b,s,[],null,t.designSet,b),y=[f,c,s,a]):(a=A._parseValue(a,s,t.designSet,!1),y=[f,c,s,a]),t.component[0]!=="vcard"||t.component[1].length!==0||i==="version"&&a==="4.0"||(t.designSet=I.getDesignSet("vcard3")),t.component[1].push(y)},A._parseValue=function(e,t,r,n){return t in r.value&&"fromICAL"in r.value[t]?r.value[t].fromICAL(e,n):e},A._parseParameters=function(e,t,r){let n,i,a,o,s,u,l=t,c=0,d={},h=-1;for(;c!==!1&&(c=Q(e,"=",c+1))!==-1;){if(n=e.slice(l+1,c),n.length==0)throw new pt("Empty parameter name in '"+e+"'");if(i=n.toLowerCase(),u=!1,s=!1,o=i in r.param&&r.param[i].valueType?r.param[i].valueType:"text",i in r.param&&(s=r.param[i].multiValue,r.param[i].multiValueSeparateDQuote&&(u=A._rfc6868Escape('"'+s+'"'))),e[c+1]==='"'){if(h=c+2,c=Q(e,'"',h),s&&c!=-1){let f=!0;for(;f;)e[c+1]==s&&e[c+2]=='"'?c=Q(e,'"',c+3):f=!1}if(c===-1)throw new pt('invalid line (no matching double quote) "'+e+'"');a=e.slice(h,c),l=Q(e,";",c),l===-1&&(c=!1)}else{h=c+1;let f=Q(e,";",h),y=Q(e,":",h);y!==-1&&f>y?(f=y,c=!1):f===-1?(f=y===-1?e.length:y,c=!1):(l=f,c=f),a=e.slice(h,f)}if(a=A._rfc6868Escape(a),s){let f=u||s;a=A._parseMultiValue(a,f,o,[],null,r)}else a=A._parseValue(a,o,r);s&&i in d?Array.isArray(d[i])?d[i].push(a):d[i]=[d[i],a]:d[i]=a}return[d,a,h]},A._rfc6868Escape=function(e){return e.replace(/\^['n^]/g,function(t){return Mi[t]})},A._parseMultiValue=function(e,t,r,n,i,a,o){let s,u=0,l=0;if(t.length===0)return e;for(;(u=Q(e,t,l))!==-1;)s=e.slice(l,u),s=i?A._parseMultiValue(s,i,r,[],null,a,o):A._parseValue(s,r,a,o),n.push(s),l=u+t.length;return s=e.slice(l),s=i?A._parseMultiValue(s,i,r,[],null,a,o):A._parseValue(s,r,a,o),n.push(s),n.length==1?n[0]:n},A._eachLine=function(e,t){let r,n,i,a=e.length,o=e.search(Pi),s=o;do s=e.indexOf(` -`,o)+1,i=s>1&&e[s-2]==="\r"?2:1,s===0&&(s=a,i=0),n=e[o],n===" "||n===" "?r+=e.slice(o+1,s-i):(r&&t(null,r),r=e.slice(o,s-i)),o=s;while(s!==a);r=r.trim(),r.length&&t(null,r)};var Ui=["tzid","location","tznames","latitude","longitude"],O=class E{static _compare_change_fn(t,r){return t.yearr.year?1:t.monthr.month?1:t.dayr.day?1:t.hourr.hour?1:t.minuter.minute?1:t.secondr.second?1:0}static convert_time(t,r,n){if(t.isDate||r.tzid==n.tzid||r==E.localTimezone||n==E.localTimezone)return t.zone=n,t;let i=r.utcOffset(t);return t.adjust(0,0,0,-i),i=n.utcOffset(t),t.adjust(0,0,0,i),null}static fromData(t){return new E().fromData(t)}static#t=null;static get utcTimezone(){return this.#t||(this.#t=E.fromData({tzid:"UTC"})),this.#t}static#e=null;static get localTimezone(){return this.#e||(this.#e=E.fromData({tzid:"floating"})),this.#e}static adjust_change(t,r,n,i,a){return w.prototype.adjust.call(t,r,n,i,a,t)}static _minimumExpansionYear=-1;static EXTRA_COVERAGE=5;constructor(t){this.wrappedJSObject=this,this.fromData(t)}tzid="";location="";tznames="";latitude=0;longitude=0;component=null;expandedUntilYear=0;icalclass="icaltimezone";fromData(t){if(this.expandedUntilYear=0,this.changes=[],t instanceof tt)this.component=t;else{if(t&&"component"in t)if(typeof t.component=="string"){let r=A(t.component);this.component=new tt(r)}else t.component instanceof tt?this.component=t.component:this.component=null;for(let r of Ui)t&&r in t&&(this[r]=t[r])}return this.component instanceof tt&&!this.tzid&&(this.tzid=this.component.getFirstPropertyValue("tzid")),this}utcOffset(t){if(this==E.utcTimezone||this==E.localTimezone||(this._ensureCoverage(t.year),!this.changes.length))return 0;let r={year:t.year,month:t.month,day:t.day,hour:t.hour,minute:t.minute,second:t.second},n=this._findNearbyChange(r),i=-1,a=1;for(;;){let s=vt(this.changes[n],!0);if(s.utcOffset=0?i=n:a=-1,a==-1&&i!=-1)break;if(n+=a,n<0)return 0;if(n>=this.changes.length)break}let o=this.changes[i];if(o.utcOffset-o.prevUtcOffset<0&&i>0){let s=vt(o,!0);if(E.adjust_change(s,0,0,0,s.prevUtcOffset),E._compare_change_fn(r,s)<0){let u=this.changes[i-1],l=!1;o.is_daylight!=l&&u.is_daylight==l&&(o=u)}}return o.utcOffset}_findNearbyChange(t){let r=Tt(this.changes,t,E._compare_change_fn);return r>=this.changes.length?this.changes.length-1:r}_ensureCoverage(t){if(E._minimumExpansionYear==-1){let n=w.now();E._minimumExpansionYear=n.year}let r=t;if(rr)&&c);)i.year=c.year,i.month=c.month,i.day=c.day,i.hour=c.hour,i.minute=c.minute,i.second=c.second,i.isDate=c.isDate,E.adjust_change(i,0,0,0,-i.prevUtcOffset),n.push(i)}}else i=s(),i.year=a.year,i.month=a.month,i.day=a.day,i.hour=a.hour,i.minute=a.minute,i.second=a.second,E.adjust_change(i,0,0,0,-i.prevUtcOffset),n.push(i);return n}toString(){return this.tznames?this.tznames:this.tzid}},F=null,te={get count(){return F===null?0:Object.keys(F).length},reset:function(){F=Object.create(null);let e=O.utcTimezone;F.Z=e,F.UTC=e,F.GMT=e},has:function(e){return F!==null&&!!F[e]},get:function(e){return F===null&&this.reset(),F[e]},register:function(e,t){if(F===null&&this.reset(),e instanceof tt&&e.name==="vtimezone"&&(e=(t=new O(e)).tzid),!(t instanceof O))throw new TypeError("timezone must be ICAL.Timezone or ICAL.Component");F[e]=t},remove:function(e){return F===null?null:delete F[e]}};function jt(e){return typeof e=="number"&&isNaN(e)}function R(e){let t=parseInt(e,10);if(jt(t))throw new Error('Could not extract integer from "'+e+'"');return t}function st(e,t){if(e!==void 0)return e instanceof t?e:new t(e)}function Q(e,t,r){for(;(r=e.indexOf(t,r))!==-1;){if(!(r>0&&e[r-1]==="\\"))return r;r+=1}return-1}function Tt(e,t,r){if(!e.length)return 0;let n,i,a=0,o=e.length-1;for(;a<=o;)if(n=a+Math.floor((o-a)/2),i=r(t,e[n]),i<0)o=n-1;else{if(!(i>0))break;a=n+1}return i<0?n:i>0?n+1:n}function vt(e,t){if(e&&typeof e=="object"){if(e instanceof Date)return new Date(e.getTime());if("clone"in e)return e.clone();if(Array.isArray(e)){let r=[];for(let n=0;n65535?2:1:(t+=ht.newLineChar+" "+r.slice(0,Math.max(0,n)),r=r.slice(Math.max(0,n)),n=i=0)}return t.slice(ht.newLineChar.length+1)}function V(e){switch(typeof e!="string"&&(typeof e=="number"&&(e=parseInt(e)),e=String(e)),e.length){case 0:return"00";case 1:return"0"+e;default:return e}}function U(e){return e<0?Math.ceil(e):Math.floor(e)}function St(e,t){for(let r in e){let n=Object.getOwnPropertyDescriptor(e,r);n&&!Object.getOwnPropertyDescriptor(t,r)&&Object.defineProperty(t,r,n)}return t}var Ii=Object.freeze({__proto__:null,updateTimezones:function(e){let t,r,n,i,a;if(!e||e.name!=="vcalendar")return e;for(t=e.getAllSubcomponents(),r=[],n={},a=0;an)-(n>r)}_normalize(){let t=this.toSeconds(),r=this.factor;for(;t<-43200;)t+=97200;for(;t>50400;)t-=97200;this.fromSeconds(t),t==0&&(this.factor=r)}toICALString(){return I.icalendar.value["utc-offset"].toICAL(this.toString())}toString(){return(this.factor==1?"+":"-")+V(this.hours)+":"+V(this.minutes)}},Rt=class ye extends w{static fromDateAndOrTimeString(t,r){function n(p,b,S){return p?R(p.slice(b,b+S)):null}let i=t.split("T"),a=i[0],o=i[1],s=o?I.vcard.value.time._splitZone(o):[],u=s[0],l=s[1],c=a?a.length:0,d=l?l.length:0,h=a&&a[0]=="-"&&a[1]=="-",f=l&&l[0]=="-",y={year:h?null:n(a,0,4),month:!h||c!=4&&c!=7?c==7||c==10?n(a,5,2):null:n(a,2,2),day:c==5?n(a,3,2):c==7&&h?n(a,5,2):c==10?n(a,8,2):null,hour:f?null:n(l,0,2),minute:f&&d==3?n(l,1,2):d>4?n(l,f?1:3,2):null,second:d==4?n(l,2,2):d==6?n(l,4,2):d==8?n(l,6,2):null};return u=u=="Z"?O.utcTimezone:u&&u[3]==":"?wt.fromString(u):null,new ye(y,u,r)}constructor(t,r,n){super(t,r),this.icaltype=n||"date-and-or-time"}icalclass="vcardtime";icaltype="date-and-or-time";clone(){return new ye(this._time,this.zone,this.icaltype)}_normalize(){return this}utcOffset(){return this.zone instanceof wt?this.zone.toSeconds():w.prototype.utcOffset.apply(this,arguments)}toICALString(){return I.vcard.value[this.icaltype].toICAL(this.toString())}toString(){let t,r=this.year,n=this.month,i=this.day,a=this.hour,o=this.minute,s=this.second,u=n!==null,l=i!==null,c=a!==null,d=o!==null,h=s!==null,f=(r!==null?V(r)+(u||l?"-":""):u||l?"--":"")+(u?V(n):"")+(l?"-"+V(i):""),y=(c?V(a):"-")+(c&&d?":":"")+(d?V(o):"")+(c||d?"":"-")+(d&&h?":":"")+(h?V(s):"");switch(this.zone===O.utcTimezone?t="Z":this.zone instanceof wt?t=this.zone.toString():this.zone===O.localTimezone?t="":this.zone instanceof O?t=wt.fromSeconds(this.zone.utcOffset(this)).toString():t="",this.icaltype){case"time":return y+t;case"date-and-or-time":case"date-time":return f+(y=="--"?"":"T"+y+t);case"date":return f}return null}},be=class gt{static _indexMap={BYSECOND:0,BYMINUTE:1,BYHOUR:2,BYDAY:3,BYMONTHDAY:4,BYYEARDAY:5,BYWEEKNO:6,BYMONTH:7,BYSETPOS:8};static _expandMap={SECONDLY:[1,1,1,1,1,1,1,1],MINUTELY:[2,1,1,1,1,1,1,1],HOURLY:[2,2,1,1,1,1,1,1],DAILY:[2,2,2,1,1,1,1,1],WEEKLY:[2,2,2,2,3,3,1,1],MONTHLY:[2,2,2,2,2,3,3,1],YEARLY:[2,2,2,2,2,2,2,2]};static UNKNOWN=0;static CONTRACT=1;static EXPAND=2;static ILLEGAL=3;constructor(t){this.fromData(t)}completed=!1;rule=null;dtstart=null;last=null;occurrence_number=0;by_indices=null;initialized=!1;by_data=null;days=null;days_index=0;fromData(t){if(this.rule=st(t.rule,ut),!this.rule)throw new Error("iterator requires a (ICAL.Recur) rule");if(this.dtstart=st(t.dtstart,w),!this.dtstart)throw new Error("iterator requires a (ICAL.Time) dtstart");t.by_data?this.by_data=t.by_data:this.by_data=vt(this.rule.parts,!0),t.occurrence_number&&(this.occurrence_number=t.occurrence_number),this.days=t.days||[],t.last&&(this.last=st(t.last,w)),this.by_indices=t.by_indices,this.by_indices||(this.by_indices={BYSECOND:0,BYMINUTE:0,BYHOUR:0,BYDAY:0,BYMONTH:0,BYWEEKNO:0,BYMONTHDAY:0}),this.initialized=t.initialized||!1,this.initialized||this.init()}init(){this.initialized=!0,this.last=this.dtstart.clone();let t=this.by_data;if("BYDAY"in t&&this.sort_byday_rules(t.BYDAY),"BYYEARDAY"in t&&("BYMONTH"in t||"BYWEEKNO"in t||"BYMONTHDAY"in t||"BYDAY"in t))throw new Error("Invalid BYYEARDAY rule");if("BYWEEKNO"in t&&"BYMONTHDAY"in t)throw new Error("BYWEEKNO does not fit to BYMONTHDAY");if(this.rule.freq=="MONTHLY"&&("BYYEARDAY"in t||"BYWEEKNO"in t))throw new Error("For MONTHLY recurrences neither BYYEARDAY nor BYWEEKNO may appear");if(this.rule.freq=="WEEKLY"&&("BYYEARDAY"in t||"BYMONTHDAY"in t))throw new Error("For WEEKLY recurrences neither BYMONTHDAY nor BYYEARDAY may appear");if(this.rule.freq!="YEARLY"&&"BYYEARDAY"in t)throw new Error("BYYEARDAY may only appear in YEARLY rules");this.last.second=this.setup_defaults("BYSECOND","SECONDLY",this.dtstart.second),this.last.minute=this.setup_defaults("BYMINUTE","MINUTELY",this.dtstart.minute),this.last.hour=this.setup_defaults("BYHOUR","HOURLY",this.dtstart.hour);let r=this.last.day=this.setup_defaults("BYMONTHDAY","DAILY",this.dtstart.day);if(this.last.month=this.setup_defaults("BYMONTH","MONTHLY",this.dtstart.month),this.rule.freq=="WEEKLY")if("BYDAY"in t){let[,n]=this.ruleDayOfWeek(t.BYDAY[0],this.rule.wkst),i=n-this.last.dayOfWeek(this.rule.wkst);(this.last.dayOfWeek(this.rule.wkst)=0||i<0)&&(this.last.day+=i)}else{let n=ut.numericDayToIcalDay(this.dtstart.dayOfWeek());t.BYDAY=[n]}if(this.rule.freq=="YEARLY"){for(;this.expand_year_days(this.last.year),!(this.days.length>0);)this.increment_year(this.rule.interval);this._nextByYearDay()}if(this.rule.freq=="MONTHLY"&&this.has_by_data("BYDAY")){let n=null,i=this.last.clone(),a=w.daysInMonth(this.last.month,this.last.year);for(let o of this.by_data.BYDAY){this.last=i.clone();let[s,u]=this.ruleDayOfWeek(o),l=this.last.nthWeekDay(u,s);if(s>=6||s<=-6)throw new Error("Malformed values in BYDAY part");if(l>a||l<=0){if(n&&n.month==i.month)continue;for(;l>a||l<=0;)this.increment_month(),a=w.daysInMonth(this.last.month,this.last.year),l=this.last.nthWeekDay(u,s)}this.last.day=l,(!n||this.last.compare(n)<0)&&(n=this.last.clone())}if(this.last=n.clone(),this.has_by_data("BYMONTHDAY")&&this._byDayAndMonthDay(!0),this.last.day>a||this.last.day==0)throw new Error("Malformed values in BYDAY part")}else if(this.has_by_data("BYMONTHDAY")){this.last.day=1;let n=w.daysInMonth(this.last.month,this.last.year);if(r<0)this.last.day=n+r+1;else if(this.by_data.BYMONTHDAY[0]>n){if(!this.next_month()&&!this.next_month()&&!this.next_month())throw new Error("No possible occurrences")}else this.last.day=r}}next(){let t,r=this.last?this.last.clone():null;if(this.rule.count&&this.occurrence_number>=this.rule.count||this.rule.until&&this.last.compare(this.rule.until)>0)return this.completed=!0,null;if(this.occurrence_number==0&&this.last.compare(this.dtstart)>=0)return this.occurrence_number++,this.last;do switch(t=1,this.rule.freq){case"SECONDLY":this.next_second();break;case"MINUTELY":this.next_minute();break;case"HOURLY":this.next_hour();break;case"DAILY":this.next_day();break;case"WEEKLY":this.next_week();break;case"MONTHLY":t=this.next_month();break;case"YEARLY":this.next_year();break;default:return null}while(!this.check_contracting_rules()||this.last.compare(this.dtstart)<0||!t);if(this.last.compare(r)==0)throw new Error("Same occurrence found twice, protecting you from death by recursion");return this.rule.until&&this.last.compare(this.rule.until)>0?(this.completed=!0,null):(this.occurrence_number++,this.last)}next_second(){return this.next_generic("BYSECOND","SECONDLY","second","minute")}increment_second(t){return this.increment_generic(t,"second",60,"minute")}next_minute(){return this.next_generic("BYMINUTE","MINUTELY","minute","hour","next_second")}increment_minute(t){return this.increment_generic(t,"minute",60,"hour")}next_hour(){return this.next_generic("BYHOUR","HOURLY","hour","monthday","next_minute")}increment_hour(t){this.increment_generic(t,"hour",24,"monthday")}next_day(){let t=this.rule.freq=="DAILY";return this.next_hour()==0||(t?this.increment_monthday(this.rule.interval):this.increment_monthday(1)),0}next_week(){let t=0;if(this.next_weekday_by_week()==0)return t;if(this.has_by_data("BYWEEKNO")){this.by_indices.BYWEEKNO++,this.by_indices.BYWEEKNO==this.by_data.BYWEEKNO.length&&(this.by_indices.BYWEEKNO=0,t=1),this.last.month=1,this.last.day=1;let r=this.by_data.BYWEEKNO[this.by_indices.BYWEEKNO];this.last.day+=7*r,t&&this.increment_year(1)}else this.increment_monthday(7*this.rule.interval);return t}normalizeByMonthDayRules(t,r,n){let i,a=w.daysInMonth(r,t),o=[],s=0,u=n.length;for(;sa)){if(i<0)i=a+(i+1);else if(i===0)continue;o.indexOf(i)===-1&&o.push(i)}return o.sort(function(l,c){return l-c})}_byDayAndMonthDay(t){let r,n,i,a,o=this.by_data.BYDAY,s=0,u=o.length,l=0,c=this,d=this.last.day;function h(){for(a=w.daysInMonth(c.last.month,c.last.year),r=c.normalizeByMonthDayRules(c.last.year,c.last.month,c.by_data.BYMONTHDAY),i=r.length;r[s]<=d&&(!t||r[s]!=d)&&sa){f();continue}let p=r[s++];if(p>=n){d=p;for(let b=0;bn&&(this.last.day=1,this.increment_month(),this.is_day_in_byday(this.last)?this.has_by_data("BYSETPOS")&&!this.check_set_position(1)||(t=1):t=0)}else if(this.has_by_data("BYMONTHDAY")){this.by_indices.BYMONTHDAY++,this.by_indices.BYMONTHDAY>=this.by_data.BYMONTHDAY.length&&(this.by_indices.BYMONTHDAY=0,this.increment_month());let r=w.daysInMonth(this.last.month,this.last.year),n=this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY];n<0&&(n=r+n+1),n>r?(this.last.day=1,t=this.is_day_in_byday(this.last)):this.last.day=n}else{this.increment_month();let r=w.daysInMonth(this.last.month,this.last.year);this.by_data.BYMONTHDAY[0]>r?t=0:this.last.day=this.by_data.BYMONTHDAY[0]}return t}next_weekday_by_week(){let t=0;if(this.next_hour()==0)return t;if(!this.has_by_data("BYDAY"))return 1;for(;;){let r=new w;this.by_indices.BYDAY++,this.by_indices.BYDAY==Object.keys(this.by_data.BYDAY).length&&(this.by_indices.BYDAY=0,t=1);let n=this.by_data.BYDAY[this.by_indices.BYDAY],i=this.ruleDayOfWeek(n)[1];i-=this.rule.wkst,i<0&&(i+=7),r.year=this.last.year,r.month=this.last.month,r.day=this.last.day;let a=r.startDoyWeek(this.rule.wkst);if(i+a<1&&!t)continue;let o=w.fromDayOfYear(a+i,this.last.year);return this.last.year=o.year,this.last.month=o.month,this.last.day=o.day,t}}next_year(){if(this.next_hour()==0)return 0;if(++this.days_index==this.days.length){this.days_index=0;do this.increment_year(this.rule.interval),this.expand_year_days(this.last.year);while(this.days.length==0)}return this._nextByYearDay(),1}_nextByYearDay(){let t=this.days[this.days_index],r=this.last.year;t<1&&(t+=1,r+=1);let n=w.fromDayOfYear(t,r);this.last.day=n.day,this.last.month=n.month}ruleDayOfWeek(t,r){let n=t.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);return n?[parseInt(n[1]||0,10),t=ut.icalDayToNumericDay(n[2],r)]:[0,0]}next_generic(t,r,n,i,a){let o=t in this.by_data,s=this.rule.freq==r,u=0;if(a&&this[a]()==0)return u;if(o){this.by_indices[t]++;let l=this.by_data[t];this.by_indices[t]==l.length&&(this.by_indices[t]=0,u=1),this.last[n]=l[this.by_indices[t]]}else s&&this["increment_"+n](this.rule.interval);return o&&u&&s&&this["increment_"+i](1),u}increment_monthday(t){for(let r=0;rn&&(this.last.day-=n,this.increment_month())}}increment_month(){if(this.last.day=1,this.has_by_data("BYMONTH"))this.by_indices.BYMONTH++,this.by_indices.BYMONTH==this.by_data.BYMONTH.length&&(this.by_indices.BYMONTH=0,this.increment_year(1)),this.last.month=this.by_data.BYMONTH[this.by_indices.BYMONTH];else{this.rule.freq=="MONTHLY"?this.last.month+=this.rule.interval:this.last.month++,this.last.month--;let t=U(this.last.month/12);this.last.month%=12,this.last.month++,t!=0&&this.increment_year(t)}}increment_year(t){this.last.year+=t}increment_generic(t,r,n,i){this.last[r]+=t;let a=U(this.last[r]/n);this.last[r]%=n,a!=0&&this["increment_"+i](a)}has_by_data(t){return t in this.rule.parts}expand_year_days(t){let r=new w;this.days=[];let n={},i=["BYDAY","BYWEEKNO","BYMONTHDAY","BYMONTH","BYYEARDAY"];for(let o of i)o in this.rule.parts&&(n[o]=this.rule.parts[o]);if("BYMONTH"in n&&"BYWEEKNO"in n){let o=1,s={};r.year=t,r.isDate=!0;for(let u=0;u0?(h=b+7*(y-1),h<=s&&this.days.push(l+h)):(h=S+7*(y+1),h>0&&this.days.push(l+h))}}this.days.sort(function(o,s){return o-s})}else if(a==2&&"BYDAY"in n&&"BYMONTHDAY"in n){let o=this.expand_by_day(t);for(let s of o){let u=w.fromDayOfYear(s,t);this.by_data.BYMONTHDAY.indexOf(u.day)>=0&&this.days.push(s)}}else if(a==3&&"BYDAY"in n&&"BYMONTHDAY"in n&&"BYMONTH"in n){let o=this.expand_by_day(t);for(let s of o){let u=w.fromDayOfYear(s,t);this.by_data.BYMONTH.indexOf(u.month)>=0&&this.by_data.BYMONTHDAY.indexOf(u.day)>=0&&this.days.push(s)}}else if(a==2&&"BYDAY"in n&&"BYWEEKNO"in n){let o=this.expand_by_day(t);for(let s of o){let u=w.fromDayOfYear(s,t).weekNumber(this.rule.wkst);this.by_data.BYWEEKNO.indexOf(u)&&this.days.push(s)}}else a==3&&"BYDAY"in n&&"BYWEEKNO"in n&&"BYMONTHDAY"in n||(this.days=a==1&&"BYYEARDAY"in n?this.days.concat(this.by_data.BYYEARDAY):[]);return 0}expand_by_day(t){let r=[],n=this.last.clone();n.year=t,n.month=1,n.day=1,n.isDate=!0;let i=n.dayOfWeek();n.month=12,n.day=31,n.isDate=!0;let a=n.dayOfWeek(),o=n.dayOfYear();for(let s of this.by_data.BYDAY){let u=this.ruleDayOfWeek(s),l=u[0],c=u[1];if(l==0)for(let d=(c+7-i)%7+1;d<=o;d+=7)r.push(d);else if(l>0){let d;d=c>=i?c-i+1:c-i+8,r.push(d+7*(l-1))}else{let d;l=-l,d=c<=a?o-a+c:o-a+c-7,r.push(d-7*(l-1))}}return r}is_day_in_byday(t){if(this.by_data.BYDAY)for(let r of this.by_data.BYDAY){let n=this.ruleDayOfWeek(r),i=n[0],a=n[1],o=t.dayOfWeek();if(i==0&&a==o||t.nthWeekDay(a,i)==t.day)return 1}return 0}check_set_position(t){return this.has_by_data("BYSETPOS")?this.by_data.BYSETPOS.indexOf(t)!==-1:!1}sort_byday_rules(t){for(let r=0;rthis.ruleDayOfWeek(t[r],this.rule.wkst)[1]){let i=t[r];t[r]=t[n],t[n]=i}}check_contract_restriction(t,r){let n=gt._indexMap[t],i=gt._expandMap[this.rule.freq][n],a=!1;if(t in this.by_data&&i==gt.CONTRACT){let o=this.by_data[t];for(let s of o)if(s==r){a=!0;break}}else a=!0;return a}check_contracting_rules(){let t=this.last.dayOfWeek(),r=this.last.weekNumber(this.rule.wkst),n=this.last.dayOfYear();return this.check_contract_restriction("BYSECOND",this.last.second)&&this.check_contract_restriction("BYMINUTE",this.last.minute)&&this.check_contract_restriction("BYHOUR",this.last.hour)&&this.check_contract_restriction("BYDAY",ut.numericDayToIcalDay(t))&&this.check_contract_restriction("BYWEEKNO",r)&&this.check_contract_restriction("BYMONTHDAY",this.last.day)&&this.check_contract_restriction("BYMONTH",this.last.month)&&this.check_contract_restriction("BYYEARDAY",n)}setup_defaults(t,r,n){let i=gt._indexMap[t];return gt._expandMap[this.rule.freq][i]!=gt.CONTRACT&&(t in this.by_data||(this.by_data[t]=[n]),this.rule.freq!=r)?this.by_data[t][0]:n}toJSON(){let t=Object.create(null);return t.initialized=this.initialized,t.rule=this.rule.toJSON(),t.dtstart=this.dtstart.toJSON(),t.by_data=this.by_data,t.days=this.days,t.last=this.last.toJSON(),t.by_indices=this.by_indices,t.occurrence_number=this.occurrence_number,t}},Ni=/^(SU|MO|TU|WE|TH|FR|SA)$/,Li=/^([+-])?(5[0-3]|[1-4][0-9]|[1-9])?(SU|MO|TU|WE|TH|FR|SA)$/,rr={SU:w.SUNDAY,MO:w.MONDAY,TU:w.TUESDAY,WE:w.WEDNESDAY,TH:w.THURSDAY,FR:w.FRIDAY,SA:w.SATURDAY},Ri=Object.fromEntries(Object.entries(rr).map(e=>e.reverse())),We=["SECONDLY","MINUTELY","HOURLY","DAILY","WEEKLY","MONTHLY","YEARLY"],ut=class bt{static fromString(t){let r=this._stringToData(t,!1);return new bt(r)}static fromData(t){return new bt(t)}static _stringToData(t,r){let n=Object.create(null),i=t.split(";"),a=i.length;for(let o=0;o7&&(n-=7),Ri[n]}constructor(t){this.wrappedJSObject=this,this.parts={},t&&typeof t=="object"&&this.fromData(t)}parts=null;interval=1;wkst=w.MONDAY;until=null;count=null;freq=null;icalclass="icalrecur";icaltype="recur";iterator(t){return new be({rule:this,dtstart:t})}clone(){return new bt(this.toJSON())}isFinite(){return!(!this.count&&!this.until)}isByCount(){return!(!this.count||this.until)}addComponent(t,r){let n=t.toUpperCase();n in this.parts?this.parts[n].push(r):this.parts[n]=[r]}setComponent(t,r){this.parts[t.toUpperCase()]=r.slice()}getComponent(t){let r=t.toUpperCase();return r in this.parts?this.parts[r].slice():[]}getNextOccurrence(t,r){let n,i=this.iterator(t);do n=i.next();while(n&&n.compare(r)<=0);return n&&r.zone&&(n.zone=r.zone),n}fromData(t){for(let r in t){let n=r.toUpperCase();n in fe?Array.isArray(t[r])?this.parts[n]=t[r]:this.parts[n]=[t[r]]:this[r]=t[r]}this.interval&&typeof this.interval!="number"&&he.INTERVAL(this.interval,this),this.wkst&&typeof this.wkst!="number"&&(this.wkst=bt.icalDayToNumericDay(this.wkst)),!this.until||this.until instanceof w||(this.until=w.fromString(this.until))}toJSON(){let t=Object.create(null);t.freq=this.freq,this.count&&(t.count=this.count),this.interval>1&&(t.interval=this.interval);for(let[r,n]of Object.entries(this.parts))Array.isArray(n)&&n.length==1?t[r.toLowerCase()]=n[0]:t[r.toLowerCase()]=vt(n);return this.until&&(t.until=this.until.toString()),"wkst"in this&&this.wkst!==w.DEFAULT_WEEK_START&&(t.wkst=bt.numericDayToIcalDay(this.wkst)),t}toString(){let t="FREQ="+this.freq;this.count&&(t+=";COUNT="+this.count),this.interval>1&&(t+=";INTERVAL="+this.interval);for(let[r,n]of Object.entries(this.parts))t+=";"+r+"="+n;return this.until&&(t+=";UNTIL="+this.until.toICALString()),"wkst"in this&&this.wkst!==w.DEFAULT_WEEK_START&&(t+=";WKST="+bt.numericDayToIcalDay(this.wkst)),t}};function dt(e,t,r,n){let i=n;if(n[0]==="+"&&(i=n.slice(1)),i=R(i),t!==void 0&&n '+t);if(r!==void 0&&n>r)throw new Error(e+': invalid value "'+n+'" must be < '+t);return i}var he={FREQ:function(e,t,r){if(We.indexOf(e)===-1)throw new Error('invalid frequency "'+e+'" expected: "'+We.join(", ")+'"');t.freq=e},COUNT:function(e,t,r){t.count=R(e)},INTERVAL:function(e,t,r){t.interval=R(e),t.interval<1&&(t.interval=1)},UNTIL:function(e,t,r){e.length>10?t.until=I.icalendar.value["date-time"].fromICAL(e):t.until=I.icalendar.value.date.fromICAL(e),r||(t.until=w.fromString(t.until))},WKST:function(e,t,r){if(!Ni.test(e))throw new Error('invalid WKST value "'+e+'"');t.wkst=ut.icalDayToNumericDay(e)}},fe={BYSECOND:dt.bind(void 0,"BYSECOND",0,60),BYMINUTE:dt.bind(void 0,"BYMINUTE",0,59),BYHOUR:dt.bind(void 0,"BYHOUR",0,23),BYDAY:function(e){if(Li.test(e))return e;throw new Error('invalid BYDAY value "'+e+'"')},BYMONTHDAY:dt.bind(void 0,"BYMONTHDAY",-31,31),BYYEARDAY:dt.bind(void 0,"BYYEARDAY",-366,366),BYWEEKNO:dt.bind(void 0,"BYWEEKNO",-53,53),BYMONTH:dt.bind(void 0,"BYMONTH",1,12),BYSETPOS:dt.bind(void 0,"BYSETPOS",-366,366)},nr=class Dt{static fromString(t,r){let n=t.split("/");if(n.length!==2)throw new Error('Invalid string value: "'+t+'" must contain a "/" char.');let i={start:w.fromDateTimeString(n[0],r)},a=n[1];return X.isValueString(a)?i.duration=X.fromString(a):i.end=w.fromDateTimeString(a,r),new Dt(i)}static fromData(t){return new Dt(t)}static fromJSON(t,r,n){function i(a,o){return n?w.fromString(a,o):w.fromDateTimeString(a,o)}return X.isValueString(t[1])?Dt.fromData({start:i(t[0],r),duration:X.fromString(t[1])}):Dt.fromData({start:i(t[0],r),end:i(t[1],r)})}constructor(t){if(this.wrappedJSObject=this,t&&"start"in t){if(t.start&&!(t.start instanceof w))throw new TypeError(".start must be an instance of ICAL.Time");this.start=t.start}if(t&&t.end&&t.duration)throw new Error("cannot accept both end and duration");if(t&&"end"in t){if(t.end&&!(t.end instanceof w))throw new TypeError(".end must be an instance of ICAL.Time");this.end=t.end}if(t&&"duration"in t){if(t.duration&&!(t.duration instanceof X))throw new TypeError(".duration must be an instance of ICAL.Duration");this.duration=t.duration}}start=null;end=null;duration=null;icalclass="icalperiod";icaltype="period";clone(){return Dt.fromData({start:this.start?this.start.clone():null,end:this.end?this.end.clone():null,duration:this.duration?this.duration.clone():null})}getDuration(){return this.duration?this.duration:this.end.subtractDate(this.start)}getEnd(){if(this.end)return this.end;{let t=this.start.clone();return t.addDuration(this.duration),t}}toString(){return this.start+"/"+(this.end||this.duration)}toJSON(){return[this.start.toString(),(this.end||this.duration).toString()]}toICALString(){return this.start.toICALString()+"/"+(this.end||this.duration).toICALString()}},Fe=/\\\\|\\,|\\[Nn]/g,He=/\\|,|\n/g;function me(e,t){return{matches:/.*/,fromICAL:function(r,n){return function(i,a,o){return i.indexOf("\\")===-1?i:(o&&(a=new RegExp(a.source+"|\\\\"+o,a.flags)),i.replace(a,Bi))}(r,e,n)},toICAL:function(r,n){let i=t;return n&&(i=new RegExp(i.source+"|"+n,i.flags)),r.replace(i,function(a){switch(a){case"\\":return"\\\\";case";":return"\\;";case",":return"\\,";case` +`)}}}};A.ParserError=pt,A._handleContentLine=function(e,t){let r,n,i,a,o,s,u=e.indexOf(":"),l=e.indexOf(";"),c={};if(l!==-1&&u!==-1&&l>u&&(l=-1),l!==-1){if(i=e.slice(0,Math.max(0,l)).toLowerCase(),o=A._parseParameters(e.slice(Math.max(0,l)),0,t.designSet),o[2]==-1)throw new pt("Invalid parameters in '"+e+"'");if(c=o[0],r=o[1].length+o[2]+l,(n=e.slice(Math.max(0,r)).indexOf(":"))===-1)throw new pt("Missing parameter value in '"+e+"'");a=e.slice(Math.max(0,r+n+1))}else{if(u===-1)throw new pt('invalid line (no token ";" or ":") "'+e+'"');if(i=e.slice(0,Math.max(0,u)).toLowerCase(),a=e.slice(Math.max(0,u+1)),i==="begin"){let S=[a.toLowerCase(),[],[]];return t.stack.length===1?t.component.push(S):t.component[2].push(S),t.stack.push(t.component),t.component=S,void(t.designSet||(t.designSet=N.getDesignSet(t.component[0])))}if(i==="end")return void(t.component=t.stack.pop())}let d,h,f,y,p=!1,b=!1;t.designSet.propertyGroups&&i.indexOf(".")!==-1?(h=i.split("."),c.group=h[0],f=h[1]):f=i,f in t.designSet.property&&(d=t.designSet.property[f],"multiValue"in d&&(p=d.multiValue),"structuredValue"in d&&(b=d.structuredValue),a&&"detectType"in d&&(s=d.detectType(a))),s||(s="value"in c?c.value.toLowerCase():d?d.defaultType:"unknown"),delete c.value,p&&b?(a=A._parseMultiValue(a,b,s,[],p,t.designSet,b),y=[f,c,s,a]):p?(y=[f,c,s],A._parseMultiValue(a,p,s,y,null,t.designSet,!1)):b?(a=A._parseMultiValue(a,b,s,[],null,t.designSet,b),y=[f,c,s,a]):(a=A._parseValue(a,s,t.designSet,!1),y=[f,c,s,a]),t.component[0]!=="vcard"||t.component[1].length!==0||i==="version"&&a==="4.0"||(t.designSet=N.getDesignSet("vcard3")),t.component[1].push(y)},A._parseValue=function(e,t,r,n){return t in r.value&&"fromICAL"in r.value[t]?r.value[t].fromICAL(e,n):e},A._parseParameters=function(e,t,r){let n,i,a,o,s,u,l=t,c=0,d={},h=-1;for(;c!==!1&&(c=Q(e,"=",c+1))!==-1;){if(n=e.slice(l+1,c),n.length==0)throw new pt("Empty parameter name in '"+e+"'");if(i=n.toLowerCase(),u=!1,s=!1,o=i in r.param&&r.param[i].valueType?r.param[i].valueType:"text",i in r.param&&(s=r.param[i].multiValue,r.param[i].multiValueSeparateDQuote&&(u=A._rfc6868Escape('"'+s+'"'))),e[c+1]==='"'){if(h=c+2,c=Q(e,'"',h),s&&c!=-1){let f=!0;for(;f;)e[c+1]==s&&e[c+2]=='"'?c=Q(e,'"',c+3):f=!1}if(c===-1)throw new pt('invalid line (no matching double quote) "'+e+'"');a=e.slice(h,c),l=Q(e,";",c),l===-1&&(c=!1)}else{h=c+1;let f=Q(e,";",h),y=Q(e,":",h);y!==-1&&f>y?(f=y,c=!1):f===-1?(f=y===-1?e.length:y,c=!1):(l=f,c=f),a=e.slice(h,f)}if(a=A._rfc6868Escape(a),s){let f=u||s;a=A._parseMultiValue(a,f,o,[],null,r)}else a=A._parseValue(a,o,r);s&&i in d?Array.isArray(d[i])?d[i].push(a):d[i]=[d[i],a]:d[i]=a}return[d,a,h]},A._rfc6868Escape=function(e){return e.replace(/\^['n^]/g,function(t){return Mi[t]})},A._parseMultiValue=function(e,t,r,n,i,a,o){let s,u=0,l=0;if(t.length===0)return e;for(;(u=Q(e,t,l))!==-1;)s=e.slice(l,u),s=i?A._parseMultiValue(s,i,r,[],null,a,o):A._parseValue(s,r,a,o),n.push(s),l=u+t.length;return s=e.slice(l),s=i?A._parseMultiValue(s,i,r,[],null,a,o):A._parseValue(s,r,a,o),n.push(s),n.length==1?n[0]:n},A._eachLine=function(e,t){let r,n,i,a=e.length,o=e.search(Pi),s=o;do s=e.indexOf(` +`,o)+1,i=s>1&&e[s-2]==="\r"?2:1,s===0&&(s=a,i=0),n=e[o],n===" "||n===" "?r+=e.slice(o+1,s-i):(r&&t(null,r),r=e.slice(o,s-i)),o=s;while(s!==a);r=r.trim(),r.length&&t(null,r)};var Ui=["tzid","location","tznames","latitude","longitude"],C=class E{static _compare_change_fn(t,r){return t.yearr.year?1:t.monthr.month?1:t.dayr.day?1:t.hourr.hour?1:t.minuter.minute?1:t.secondr.second?1:0}static convert_time(t,r,n){if(t.isDate||r.tzid==n.tzid||r==E.localTimezone||n==E.localTimezone)return t.zone=n,t;let i=r.utcOffset(t);return t.adjust(0,0,0,-i),i=n.utcOffset(t),t.adjust(0,0,0,i),null}static fromData(t){return new E().fromData(t)}static#t=null;static get utcTimezone(){return this.#t||(this.#t=E.fromData({tzid:"UTC"})),this.#t}static#e=null;static get localTimezone(){return this.#e||(this.#e=E.fromData({tzid:"floating"})),this.#e}static adjust_change(t,r,n,i,a){return w.prototype.adjust.call(t,r,n,i,a,t)}static _minimumExpansionYear=-1;static EXTRA_COVERAGE=5;constructor(t){this.wrappedJSObject=this,this.fromData(t)}tzid="";location="";tznames="";latitude=0;longitude=0;component=null;expandedUntilYear=0;icalclass="icaltimezone";fromData(t){if(this.expandedUntilYear=0,this.changes=[],t instanceof tt)this.component=t;else{if(t&&"component"in t)if(typeof t.component=="string"){let r=A(t.component);this.component=new tt(r)}else t.component instanceof tt?this.component=t.component:this.component=null;for(let r of Ui)t&&r in t&&(this[r]=t[r])}return this.component instanceof tt&&!this.tzid&&(this.tzid=this.component.getFirstPropertyValue("tzid")),this}utcOffset(t){if(this==E.utcTimezone||this==E.localTimezone||(this._ensureCoverage(t.year),!this.changes.length))return 0;let r={year:t.year,month:t.month,day:t.day,hour:t.hour,minute:t.minute,second:t.second},n=this._findNearbyChange(r),i=-1,a=1;for(;;){let s=vt(this.changes[n],!0);if(s.utcOffset=0?i=n:a=-1,a==-1&&i!=-1)break;if(n+=a,n<0)return 0;if(n>=this.changes.length)break}let o=this.changes[i];if(o.utcOffset-o.prevUtcOffset<0&&i>0){let s=vt(o,!0);if(E.adjust_change(s,0,0,0,s.prevUtcOffset),E._compare_change_fn(r,s)<0){let u=this.changes[i-1],l=!1;o.is_daylight!=l&&u.is_daylight==l&&(o=u)}}return o.utcOffset}_findNearbyChange(t){let r=Tt(this.changes,t,E._compare_change_fn);return r>=this.changes.length?this.changes.length-1:r}_ensureCoverage(t){if(E._minimumExpansionYear==-1){let n=w.now();E._minimumExpansionYear=n.year}let r=t;if(rr)&&c);)i.year=c.year,i.month=c.month,i.day=c.day,i.hour=c.hour,i.minute=c.minute,i.second=c.second,i.isDate=c.isDate,E.adjust_change(i,0,0,0,-i.prevUtcOffset),n.push(i)}}else i=s(),i.year=a.year,i.month=a.month,i.day=a.day,i.hour=a.hour,i.minute=a.minute,i.second=a.second,E.adjust_change(i,0,0,0,-i.prevUtcOffset),n.push(i);return n}toString(){return this.tznames?this.tznames:this.tzid}},F=null,te={get count(){return F===null?0:Object.keys(F).length},reset:function(){F=Object.create(null);let e=C.utcTimezone;F.Z=e,F.UTC=e,F.GMT=e},has:function(e){return F!==null&&!!F[e]},get:function(e){return F===null&&this.reset(),F[e]},register:function(e,t){if(F===null&&this.reset(),e instanceof tt&&e.name==="vtimezone"&&(e=(t=new C(e)).tzid),!(t instanceof C))throw new TypeError("timezone must be ICAL.Timezone or ICAL.Component");F[e]=t},remove:function(e){return F===null?null:delete F[e]}};function jt(e){return typeof e=="number"&&isNaN(e)}function R(e){let t=parseInt(e,10);if(jt(t))throw new Error('Could not extract integer from "'+e+'"');return t}function st(e,t){if(e!==void 0)return e instanceof t?e:new t(e)}function Q(e,t,r){for(;(r=e.indexOf(t,r))!==-1;){if(!(r>0&&e[r-1]==="\\"))return r;r+=1}return-1}function Tt(e,t,r){if(!e.length)return 0;let n,i,a=0,o=e.length-1;for(;a<=o;)if(n=a+Math.floor((o-a)/2),i=r(t,e[n]),i<0)o=n-1;else{if(!(i>0))break;a=n+1}return i<0?n:i>0?n+1:n}function vt(e,t){if(e&&typeof e=="object"){if(e instanceof Date)return new Date(e.getTime());if("clone"in e)return e.clone();if(Array.isArray(e)){let r=[];for(let n=0;n65535?2:1:(t+=ht.newLineChar+" "+r.slice(0,Math.max(0,n)),r=r.slice(Math.max(0,n)),n=i=0)}return t.slice(ht.newLineChar.length+1)}function V(e){switch(typeof e!="string"&&(typeof e=="number"&&(e=parseInt(e)),e=String(e)),e.length){case 0:return"00";case 1:return"0"+e;default:return e}}function U(e){return e<0?Math.ceil(e):Math.floor(e)}function St(e,t){for(let r in e){let n=Object.getOwnPropertyDescriptor(e,r);n&&!Object.getOwnPropertyDescriptor(t,r)&&Object.defineProperty(t,r,n)}return t}var Ni=Object.freeze({__proto__:null,updateTimezones:function(e){let t,r,n,i,a;if(!e||e.name!=="vcalendar")return e;for(t=e.getAllSubcomponents(),r=[],n={},a=0;an)-(n>r)}_normalize(){let t=this.toSeconds(),r=this.factor;for(;t<-43200;)t+=97200;for(;t>50400;)t-=97200;this.fromSeconds(t),t==0&&(this.factor=r)}toICALString(){return N.icalendar.value["utc-offset"].toICAL(this.toString())}toString(){return(this.factor==1?"+":"-")+V(this.hours)+":"+V(this.minutes)}},Rt=class ye extends w{static fromDateAndOrTimeString(t,r){function n(p,b,S){return p?R(p.slice(b,b+S)):null}let i=t.split("T"),a=i[0],o=i[1],s=o?N.vcard.value.time._splitZone(o):[],u=s[0],l=s[1],c=a?a.length:0,d=l?l.length:0,h=a&&a[0]=="-"&&a[1]=="-",f=l&&l[0]=="-",y={year:h?null:n(a,0,4),month:!h||c!=4&&c!=7?c==7||c==10?n(a,5,2):null:n(a,2,2),day:c==5?n(a,3,2):c==7&&h?n(a,5,2):c==10?n(a,8,2):null,hour:f?null:n(l,0,2),minute:f&&d==3?n(l,1,2):d>4?n(l,f?1:3,2):null,second:d==4?n(l,2,2):d==6?n(l,4,2):d==8?n(l,6,2):null};return u=u=="Z"?C.utcTimezone:u&&u[3]==":"?wt.fromString(u):null,new ye(y,u,r)}constructor(t,r,n){super(t,r),this.icaltype=n||"date-and-or-time"}icalclass="vcardtime";icaltype="date-and-or-time";clone(){return new ye(this._time,this.zone,this.icaltype)}_normalize(){return this}utcOffset(){return this.zone instanceof wt?this.zone.toSeconds():w.prototype.utcOffset.apply(this,arguments)}toICALString(){return N.vcard.value[this.icaltype].toICAL(this.toString())}toString(){let t,r=this.year,n=this.month,i=this.day,a=this.hour,o=this.minute,s=this.second,u=n!==null,l=i!==null,c=a!==null,d=o!==null,h=s!==null,f=(r!==null?V(r)+(u||l?"-":""):u||l?"--":"")+(u?V(n):"")+(l?"-"+V(i):""),y=(c?V(a):"-")+(c&&d?":":"")+(d?V(o):"")+(c||d?"":"-")+(d&&h?":":"")+(h?V(s):"");switch(this.zone===C.utcTimezone?t="Z":this.zone instanceof wt?t=this.zone.toString():this.zone===C.localTimezone?t="":this.zone instanceof C?t=wt.fromSeconds(this.zone.utcOffset(this)).toString():t="",this.icaltype){case"time":return y+t;case"date-and-or-time":case"date-time":return f+(y=="--"?"":"T"+y+t);case"date":return f}return null}},be=class gt{static _indexMap={BYSECOND:0,BYMINUTE:1,BYHOUR:2,BYDAY:3,BYMONTHDAY:4,BYYEARDAY:5,BYWEEKNO:6,BYMONTH:7,BYSETPOS:8};static _expandMap={SECONDLY:[1,1,1,1,1,1,1,1],MINUTELY:[2,1,1,1,1,1,1,1],HOURLY:[2,2,1,1,1,1,1,1],DAILY:[2,2,2,1,1,1,1,1],WEEKLY:[2,2,2,2,3,3,1,1],MONTHLY:[2,2,2,2,2,3,3,1],YEARLY:[2,2,2,2,2,2,2,2]};static UNKNOWN=0;static CONTRACT=1;static EXPAND=2;static ILLEGAL=3;constructor(t){this.fromData(t)}completed=!1;rule=null;dtstart=null;last=null;occurrence_number=0;by_indices=null;initialized=!1;by_data=null;days=null;days_index=0;fromData(t){if(this.rule=st(t.rule,ut),!this.rule)throw new Error("iterator requires a (ICAL.Recur) rule");if(this.dtstart=st(t.dtstart,w),!this.dtstart)throw new Error("iterator requires a (ICAL.Time) dtstart");t.by_data?this.by_data=t.by_data:this.by_data=vt(this.rule.parts,!0),t.occurrence_number&&(this.occurrence_number=t.occurrence_number),this.days=t.days||[],t.last&&(this.last=st(t.last,w)),this.by_indices=t.by_indices,this.by_indices||(this.by_indices={BYSECOND:0,BYMINUTE:0,BYHOUR:0,BYDAY:0,BYMONTH:0,BYWEEKNO:0,BYMONTHDAY:0}),this.initialized=t.initialized||!1,this.initialized||this.init()}init(){this.initialized=!0,this.last=this.dtstart.clone();let t=this.by_data;if("BYDAY"in t&&this.sort_byday_rules(t.BYDAY),"BYYEARDAY"in t&&("BYMONTH"in t||"BYWEEKNO"in t||"BYMONTHDAY"in t||"BYDAY"in t))throw new Error("Invalid BYYEARDAY rule");if("BYWEEKNO"in t&&"BYMONTHDAY"in t)throw new Error("BYWEEKNO does not fit to BYMONTHDAY");if(this.rule.freq=="MONTHLY"&&("BYYEARDAY"in t||"BYWEEKNO"in t))throw new Error("For MONTHLY recurrences neither BYYEARDAY nor BYWEEKNO may appear");if(this.rule.freq=="WEEKLY"&&("BYYEARDAY"in t||"BYMONTHDAY"in t))throw new Error("For WEEKLY recurrences neither BYMONTHDAY nor BYYEARDAY may appear");if(this.rule.freq!="YEARLY"&&"BYYEARDAY"in t)throw new Error("BYYEARDAY may only appear in YEARLY rules");this.last.second=this.setup_defaults("BYSECOND","SECONDLY",this.dtstart.second),this.last.minute=this.setup_defaults("BYMINUTE","MINUTELY",this.dtstart.minute),this.last.hour=this.setup_defaults("BYHOUR","HOURLY",this.dtstart.hour);let r=this.last.day=this.setup_defaults("BYMONTHDAY","DAILY",this.dtstart.day);if(this.last.month=this.setup_defaults("BYMONTH","MONTHLY",this.dtstart.month),this.rule.freq=="WEEKLY")if("BYDAY"in t){let[,n]=this.ruleDayOfWeek(t.BYDAY[0],this.rule.wkst),i=n-this.last.dayOfWeek(this.rule.wkst);(this.last.dayOfWeek(this.rule.wkst)=0||i<0)&&(this.last.day+=i)}else{let n=ut.numericDayToIcalDay(this.dtstart.dayOfWeek());t.BYDAY=[n]}if(this.rule.freq=="YEARLY"){for(;this.expand_year_days(this.last.year),!(this.days.length>0);)this.increment_year(this.rule.interval);this._nextByYearDay()}if(this.rule.freq=="MONTHLY"&&this.has_by_data("BYDAY")){let n=null,i=this.last.clone(),a=w.daysInMonth(this.last.month,this.last.year);for(let o of this.by_data.BYDAY){this.last=i.clone();let[s,u]=this.ruleDayOfWeek(o),l=this.last.nthWeekDay(u,s);if(s>=6||s<=-6)throw new Error("Malformed values in BYDAY part");if(l>a||l<=0){if(n&&n.month==i.month)continue;for(;l>a||l<=0;)this.increment_month(),a=w.daysInMonth(this.last.month,this.last.year),l=this.last.nthWeekDay(u,s)}this.last.day=l,(!n||this.last.compare(n)<0)&&(n=this.last.clone())}if(this.last=n.clone(),this.has_by_data("BYMONTHDAY")&&this._byDayAndMonthDay(!0),this.last.day>a||this.last.day==0)throw new Error("Malformed values in BYDAY part")}else if(this.has_by_data("BYMONTHDAY")){this.last.day=1;let n=w.daysInMonth(this.last.month,this.last.year);if(r<0)this.last.day=n+r+1;else if(this.by_data.BYMONTHDAY[0]>n){if(!this.next_month()&&!this.next_month()&&!this.next_month())throw new Error("No possible occurrences")}else this.last.day=r}}next(){let t,r=this.last?this.last.clone():null;if(this.rule.count&&this.occurrence_number>=this.rule.count||this.rule.until&&this.last.compare(this.rule.until)>0)return this.completed=!0,null;if(this.occurrence_number==0&&this.last.compare(this.dtstart)>=0)return this.occurrence_number++,this.last;do switch(t=1,this.rule.freq){case"SECONDLY":this.next_second();break;case"MINUTELY":this.next_minute();break;case"HOURLY":this.next_hour();break;case"DAILY":this.next_day();break;case"WEEKLY":this.next_week();break;case"MONTHLY":t=this.next_month();break;case"YEARLY":this.next_year();break;default:return null}while(!this.check_contracting_rules()||this.last.compare(this.dtstart)<0||!t);if(this.last.compare(r)==0)throw new Error("Same occurrence found twice, protecting you from death by recursion");return this.rule.until&&this.last.compare(this.rule.until)>0?(this.completed=!0,null):(this.occurrence_number++,this.last)}next_second(){return this.next_generic("BYSECOND","SECONDLY","second","minute")}increment_second(t){return this.increment_generic(t,"second",60,"minute")}next_minute(){return this.next_generic("BYMINUTE","MINUTELY","minute","hour","next_second")}increment_minute(t){return this.increment_generic(t,"minute",60,"hour")}next_hour(){return this.next_generic("BYHOUR","HOURLY","hour","monthday","next_minute")}increment_hour(t){this.increment_generic(t,"hour",24,"monthday")}next_day(){let t=this.rule.freq=="DAILY";return this.next_hour()==0||(t?this.increment_monthday(this.rule.interval):this.increment_monthday(1)),0}next_week(){let t=0;if(this.next_weekday_by_week()==0)return t;if(this.has_by_data("BYWEEKNO")){this.by_indices.BYWEEKNO++,this.by_indices.BYWEEKNO==this.by_data.BYWEEKNO.length&&(this.by_indices.BYWEEKNO=0,t=1),this.last.month=1,this.last.day=1;let r=this.by_data.BYWEEKNO[this.by_indices.BYWEEKNO];this.last.day+=7*r,t&&this.increment_year(1)}else this.increment_monthday(7*this.rule.interval);return t}normalizeByMonthDayRules(t,r,n){let i,a=w.daysInMonth(r,t),o=[],s=0,u=n.length;for(;sa)){if(i<0)i=a+(i+1);else if(i===0)continue;o.indexOf(i)===-1&&o.push(i)}return o.sort(function(l,c){return l-c})}_byDayAndMonthDay(t){let r,n,i,a,o=this.by_data.BYDAY,s=0,u=o.length,l=0,c=this,d=this.last.day;function h(){for(a=w.daysInMonth(c.last.month,c.last.year),r=c.normalizeByMonthDayRules(c.last.year,c.last.month,c.by_data.BYMONTHDAY),i=r.length;r[s]<=d&&(!t||r[s]!=d)&&sa){f();continue}let p=r[s++];if(p>=n){d=p;for(let b=0;bn&&(this.last.day=1,this.increment_month(),this.is_day_in_byday(this.last)?this.has_by_data("BYSETPOS")&&!this.check_set_position(1)||(t=1):t=0)}else if(this.has_by_data("BYMONTHDAY")){this.by_indices.BYMONTHDAY++,this.by_indices.BYMONTHDAY>=this.by_data.BYMONTHDAY.length&&(this.by_indices.BYMONTHDAY=0,this.increment_month());let r=w.daysInMonth(this.last.month,this.last.year),n=this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY];n<0&&(n=r+n+1),n>r?(this.last.day=1,t=this.is_day_in_byday(this.last)):this.last.day=n}else{this.increment_month();let r=w.daysInMonth(this.last.month,this.last.year);this.by_data.BYMONTHDAY[0]>r?t=0:this.last.day=this.by_data.BYMONTHDAY[0]}return t}next_weekday_by_week(){let t=0;if(this.next_hour()==0)return t;if(!this.has_by_data("BYDAY"))return 1;for(;;){let r=new w;this.by_indices.BYDAY++,this.by_indices.BYDAY==Object.keys(this.by_data.BYDAY).length&&(this.by_indices.BYDAY=0,t=1);let n=this.by_data.BYDAY[this.by_indices.BYDAY],i=this.ruleDayOfWeek(n)[1];i-=this.rule.wkst,i<0&&(i+=7),r.year=this.last.year,r.month=this.last.month,r.day=this.last.day;let a=r.startDoyWeek(this.rule.wkst);if(i+a<1&&!t)continue;let o=w.fromDayOfYear(a+i,this.last.year);return this.last.year=o.year,this.last.month=o.month,this.last.day=o.day,t}}next_year(){if(this.next_hour()==0)return 0;if(++this.days_index==this.days.length){this.days_index=0;do this.increment_year(this.rule.interval),this.expand_year_days(this.last.year);while(this.days.length==0)}return this._nextByYearDay(),1}_nextByYearDay(){let t=this.days[this.days_index],r=this.last.year;t<1&&(t+=1,r+=1);let n=w.fromDayOfYear(t,r);this.last.day=n.day,this.last.month=n.month}ruleDayOfWeek(t,r){let n=t.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);return n?[parseInt(n[1]||0,10),t=ut.icalDayToNumericDay(n[2],r)]:[0,0]}next_generic(t,r,n,i,a){let o=t in this.by_data,s=this.rule.freq==r,u=0;if(a&&this[a]()==0)return u;if(o){this.by_indices[t]++;let l=this.by_data[t];this.by_indices[t]==l.length&&(this.by_indices[t]=0,u=1),this.last[n]=l[this.by_indices[t]]}else s&&this["increment_"+n](this.rule.interval);return o&&u&&s&&this["increment_"+i](1),u}increment_monthday(t){for(let r=0;rn&&(this.last.day-=n,this.increment_month())}}increment_month(){if(this.last.day=1,this.has_by_data("BYMONTH"))this.by_indices.BYMONTH++,this.by_indices.BYMONTH==this.by_data.BYMONTH.length&&(this.by_indices.BYMONTH=0,this.increment_year(1)),this.last.month=this.by_data.BYMONTH[this.by_indices.BYMONTH];else{this.rule.freq=="MONTHLY"?this.last.month+=this.rule.interval:this.last.month++,this.last.month--;let t=U(this.last.month/12);this.last.month%=12,this.last.month++,t!=0&&this.increment_year(t)}}increment_year(t){this.last.year+=t}increment_generic(t,r,n,i){this.last[r]+=t;let a=U(this.last[r]/n);this.last[r]%=n,a!=0&&this["increment_"+i](a)}has_by_data(t){return t in this.rule.parts}expand_year_days(t){let r=new w;this.days=[];let n={},i=["BYDAY","BYWEEKNO","BYMONTHDAY","BYMONTH","BYYEARDAY"];for(let o of i)o in this.rule.parts&&(n[o]=this.rule.parts[o]);if("BYMONTH"in n&&"BYWEEKNO"in n){let o=1,s={};r.year=t,r.isDate=!0;for(let u=0;u0?(h=b+7*(y-1),h<=s&&this.days.push(l+h)):(h=S+7*(y+1),h>0&&this.days.push(l+h))}}this.days.sort(function(o,s){return o-s})}else if(a==2&&"BYDAY"in n&&"BYMONTHDAY"in n){let o=this.expand_by_day(t);for(let s of o){let u=w.fromDayOfYear(s,t);this.by_data.BYMONTHDAY.indexOf(u.day)>=0&&this.days.push(s)}}else if(a==3&&"BYDAY"in n&&"BYMONTHDAY"in n&&"BYMONTH"in n){let o=this.expand_by_day(t);for(let s of o){let u=w.fromDayOfYear(s,t);this.by_data.BYMONTH.indexOf(u.month)>=0&&this.by_data.BYMONTHDAY.indexOf(u.day)>=0&&this.days.push(s)}}else if(a==2&&"BYDAY"in n&&"BYWEEKNO"in n){let o=this.expand_by_day(t);for(let s of o){let u=w.fromDayOfYear(s,t).weekNumber(this.rule.wkst);this.by_data.BYWEEKNO.indexOf(u)&&this.days.push(s)}}else a==3&&"BYDAY"in n&&"BYWEEKNO"in n&&"BYMONTHDAY"in n||(this.days=a==1&&"BYYEARDAY"in n?this.days.concat(this.by_data.BYYEARDAY):[]);return 0}expand_by_day(t){let r=[],n=this.last.clone();n.year=t,n.month=1,n.day=1,n.isDate=!0;let i=n.dayOfWeek();n.month=12,n.day=31,n.isDate=!0;let a=n.dayOfWeek(),o=n.dayOfYear();for(let s of this.by_data.BYDAY){let u=this.ruleDayOfWeek(s),l=u[0],c=u[1];if(l==0)for(let d=(c+7-i)%7+1;d<=o;d+=7)r.push(d);else if(l>0){let d;d=c>=i?c-i+1:c-i+8,r.push(d+7*(l-1))}else{let d;l=-l,d=c<=a?o-a+c:o-a+c-7,r.push(d-7*(l-1))}}return r}is_day_in_byday(t){if(this.by_data.BYDAY)for(let r of this.by_data.BYDAY){let n=this.ruleDayOfWeek(r),i=n[0],a=n[1],o=t.dayOfWeek();if(i==0&&a==o||t.nthWeekDay(a,i)==t.day)return 1}return 0}check_set_position(t){return this.has_by_data("BYSETPOS")?this.by_data.BYSETPOS.indexOf(t)!==-1:!1}sort_byday_rules(t){for(let r=0;rthis.ruleDayOfWeek(t[r],this.rule.wkst)[1]){let i=t[r];t[r]=t[n],t[n]=i}}check_contract_restriction(t,r){let n=gt._indexMap[t],i=gt._expandMap[this.rule.freq][n],a=!1;if(t in this.by_data&&i==gt.CONTRACT){let o=this.by_data[t];for(let s of o)if(s==r){a=!0;break}}else a=!0;return a}check_contracting_rules(){let t=this.last.dayOfWeek(),r=this.last.weekNumber(this.rule.wkst),n=this.last.dayOfYear();return this.check_contract_restriction("BYSECOND",this.last.second)&&this.check_contract_restriction("BYMINUTE",this.last.minute)&&this.check_contract_restriction("BYHOUR",this.last.hour)&&this.check_contract_restriction("BYDAY",ut.numericDayToIcalDay(t))&&this.check_contract_restriction("BYWEEKNO",r)&&this.check_contract_restriction("BYMONTHDAY",this.last.day)&&this.check_contract_restriction("BYMONTH",this.last.month)&&this.check_contract_restriction("BYYEARDAY",n)}setup_defaults(t,r,n){let i=gt._indexMap[t];return gt._expandMap[this.rule.freq][i]!=gt.CONTRACT&&(t in this.by_data||(this.by_data[t]=[n]),this.rule.freq!=r)?this.by_data[t][0]:n}toJSON(){let t=Object.create(null);return t.initialized=this.initialized,t.rule=this.rule.toJSON(),t.dtstart=this.dtstart.toJSON(),t.by_data=this.by_data,t.days=this.days,t.last=this.last.toJSON(),t.by_indices=this.by_indices,t.occurrence_number=this.occurrence_number,t}},Ii=/^(SU|MO|TU|WE|TH|FR|SA)$/,Li=/^([+-])?(5[0-3]|[1-4][0-9]|[1-9])?(SU|MO|TU|WE|TH|FR|SA)$/,rr={SU:w.SUNDAY,MO:w.MONDAY,TU:w.TUESDAY,WE:w.WEDNESDAY,TH:w.THURSDAY,FR:w.FRIDAY,SA:w.SATURDAY},Ri=Object.fromEntries(Object.entries(rr).map(e=>e.reverse())),We=["SECONDLY","MINUTELY","HOURLY","DAILY","WEEKLY","MONTHLY","YEARLY"],ut=class bt{static fromString(t){let r=this._stringToData(t,!1);return new bt(r)}static fromData(t){return new bt(t)}static _stringToData(t,r){let n=Object.create(null),i=t.split(";"),a=i.length;for(let o=0;o7&&(n-=7),Ri[n]}constructor(t){this.wrappedJSObject=this,this.parts={},t&&typeof t=="object"&&this.fromData(t)}parts=null;interval=1;wkst=w.MONDAY;until=null;count=null;freq=null;icalclass="icalrecur";icaltype="recur";iterator(t){return new be({rule:this,dtstart:t})}clone(){return new bt(this.toJSON())}isFinite(){return!(!this.count&&!this.until)}isByCount(){return!(!this.count||this.until)}addComponent(t,r){let n=t.toUpperCase();n in this.parts?this.parts[n].push(r):this.parts[n]=[r]}setComponent(t,r){this.parts[t.toUpperCase()]=r.slice()}getComponent(t){let r=t.toUpperCase();return r in this.parts?this.parts[r].slice():[]}getNextOccurrence(t,r){let n,i=this.iterator(t);do n=i.next();while(n&&n.compare(r)<=0);return n&&r.zone&&(n.zone=r.zone),n}fromData(t){for(let r in t){let n=r.toUpperCase();n in fe?Array.isArray(t[r])?this.parts[n]=t[r]:this.parts[n]=[t[r]]:this[r]=t[r]}this.interval&&typeof this.interval!="number"&&he.INTERVAL(this.interval,this),this.wkst&&typeof this.wkst!="number"&&(this.wkst=bt.icalDayToNumericDay(this.wkst)),!this.until||this.until instanceof w||(this.until=w.fromString(this.until))}toJSON(){let t=Object.create(null);t.freq=this.freq,this.count&&(t.count=this.count),this.interval>1&&(t.interval=this.interval);for(let[r,n]of Object.entries(this.parts))Array.isArray(n)&&n.length==1?t[r.toLowerCase()]=n[0]:t[r.toLowerCase()]=vt(n);return this.until&&(t.until=this.until.toString()),"wkst"in this&&this.wkst!==w.DEFAULT_WEEK_START&&(t.wkst=bt.numericDayToIcalDay(this.wkst)),t}toString(){let t="FREQ="+this.freq;this.count&&(t+=";COUNT="+this.count),this.interval>1&&(t+=";INTERVAL="+this.interval);for(let[r,n]of Object.entries(this.parts))t+=";"+r+"="+n;return this.until&&(t+=";UNTIL="+this.until.toICALString()),"wkst"in this&&this.wkst!==w.DEFAULT_WEEK_START&&(t+=";WKST="+bt.numericDayToIcalDay(this.wkst)),t}};function dt(e,t,r,n){let i=n;if(n[0]==="+"&&(i=n.slice(1)),i=R(i),t!==void 0&&n '+t);if(r!==void 0&&n>r)throw new Error(e+': invalid value "'+n+'" must be < '+t);return i}var he={FREQ:function(e,t,r){if(We.indexOf(e)===-1)throw new Error('invalid frequency "'+e+'" expected: "'+We.join(", ")+'"');t.freq=e},COUNT:function(e,t,r){t.count=R(e)},INTERVAL:function(e,t,r){t.interval=R(e),t.interval<1&&(t.interval=1)},UNTIL:function(e,t,r){e.length>10?t.until=N.icalendar.value["date-time"].fromICAL(e):t.until=N.icalendar.value.date.fromICAL(e),r||(t.until=w.fromString(t.until))},WKST:function(e,t,r){if(!Ii.test(e))throw new Error('invalid WKST value "'+e+'"');t.wkst=ut.icalDayToNumericDay(e)}},fe={BYSECOND:dt.bind(void 0,"BYSECOND",0,60),BYMINUTE:dt.bind(void 0,"BYMINUTE",0,59),BYHOUR:dt.bind(void 0,"BYHOUR",0,23),BYDAY:function(e){if(Li.test(e))return e;throw new Error('invalid BYDAY value "'+e+'"')},BYMONTHDAY:dt.bind(void 0,"BYMONTHDAY",-31,31),BYYEARDAY:dt.bind(void 0,"BYYEARDAY",-366,366),BYWEEKNO:dt.bind(void 0,"BYWEEKNO",-53,53),BYMONTH:dt.bind(void 0,"BYMONTH",1,12),BYSETPOS:dt.bind(void 0,"BYSETPOS",-366,366)},nr=class Dt{static fromString(t,r){let n=t.split("/");if(n.length!==2)throw new Error('Invalid string value: "'+t+'" must contain a "/" char.');let i={start:w.fromDateTimeString(n[0],r)},a=n[1];return X.isValueString(a)?i.duration=X.fromString(a):i.end=w.fromDateTimeString(a,r),new Dt(i)}static fromData(t){return new Dt(t)}static fromJSON(t,r,n){function i(a,o){return n?w.fromString(a,o):w.fromDateTimeString(a,o)}return X.isValueString(t[1])?Dt.fromData({start:i(t[0],r),duration:X.fromString(t[1])}):Dt.fromData({start:i(t[0],r),end:i(t[1],r)})}constructor(t){if(this.wrappedJSObject=this,t&&"start"in t){if(t.start&&!(t.start instanceof w))throw new TypeError(".start must be an instance of ICAL.Time");this.start=t.start}if(t&&t.end&&t.duration)throw new Error("cannot accept both end and duration");if(t&&"end"in t){if(t.end&&!(t.end instanceof w))throw new TypeError(".end must be an instance of ICAL.Time");this.end=t.end}if(t&&"duration"in t){if(t.duration&&!(t.duration instanceof X))throw new TypeError(".duration must be an instance of ICAL.Duration");this.duration=t.duration}}start=null;end=null;duration=null;icalclass="icalperiod";icaltype="period";clone(){return Dt.fromData({start:this.start?this.start.clone():null,end:this.end?this.end.clone():null,duration:this.duration?this.duration.clone():null})}getDuration(){return this.duration?this.duration:this.end.subtractDate(this.start)}getEnd(){if(this.end)return this.end;{let t=this.start.clone();return t.addDuration(this.duration),t}}toString(){return this.start+"/"+(this.end||this.duration)}toJSON(){return[this.start.toString(),(this.end||this.duration).toString()]}toICALString(){return this.start.toICALString()+"/"+(this.end||this.duration).toICALString()}},Fe=/\\\\|\\,|\\[Nn]/g,He=/\\|,|\n/g;function me(e,t){return{matches:/.*/,fromICAL:function(r,n){return function(i,a,o){return i.indexOf("\\")===-1?i:(o&&(a=new RegExp(a.source+"|\\\\"+o,a.flags)),i.replace(a,Bi))}(r,e,n)},toICAL:function(r,n){let i=t;return n&&(i=new RegExp(i.source+"|"+n,i.flags)),r.replace(i,function(a){switch(a){case"\\":return"\\\\";case";":return"\\;";case",":return"\\,";case` `:return"\\n";default:return a}})}}}var x={defaultType:"text"},zt={defaultType:"text",multiValue:","},ee={defaultType:"text",structuredValue:";"},Zt={defaultType:"integer"},Gt={defaultType:"date-time",allowedTypes:["date-time","date"]},Jt={defaultType:"date-time"},H={defaultType:"uri"},Ve={defaultType:"utc-offset"},Ke={defaultType:"recur"},qe={defaultType:"date-and-or-time",allowedTypes:["date-time","date","text"]};function Bi(e){switch(e){case"\\\\":return"\\";case"\\;":return";";case"\\,":return",";case"\\n":case"\\N":return` -`;default:return e}}var we={categories:zt,url:H,version:x,uid:x},Te={boolean:{values:["TRUE","FALSE"],fromICAL:function(e){return e==="TRUE"},toICAL:function(e){return e?"TRUE":"FALSE"}},float:{matches:/^[+-]?\d+\.\d+$/,fromICAL:function(e){let t=parseFloat(e);return jt(t)?0:t},toICAL:function(e){return String(e)}},integer:{fromICAL:function(e){let t=parseInt(e);return jt(t)?0:t},toICAL:function(e){return String(e)}},"utc-offset":{toICAL:function(e){return e.length<7?e.slice(0,3)+e.slice(4,6):e.slice(0,3)+e.slice(4,6)+e.slice(7,9)},fromICAL:function(e){return e.length<6?e.slice(0,3)+":"+e.slice(3,5):e.slice(0,3)+":"+e.slice(3,5)+":"+e.slice(5,7)},decorate:function(e){return wt.fromString(e)},undecorate:function(e){return e.toString()}}},k=St(Te,{text:me(/\\\\|\\;|\\,|\\[Nn]/g,/\\|;|,|\n/g),uri:{},binary:{decorate:function(e){return Xe.fromString(e)},undecorate:function(e){return e.toString()}},"cal-address":{},date:{decorate:function(e,t){return Z.strict?w.fromDateString(e,t):w.fromString(e,t)},undecorate:function(e){return e.toString()},fromICAL:function(e){return!Z.strict&&e.length>=15?k["date-time"].fromICAL(e):e.slice(0,4)+"-"+e.slice(4,6)+"-"+e.slice(6,8)},toICAL:function(e){let t=e.length;return t==10?e.slice(0,4)+e.slice(5,7)+e.slice(8,10):t>=19?k["date-time"].toICAL(e):e}},"date-time":{fromICAL:function(e){if(Z.strict||e.length!=8){let t=e.slice(0,4)+"-"+e.slice(4,6)+"-"+e.slice(6,8)+"T"+e.slice(9,11)+":"+e.slice(11,13)+":"+e.slice(13,15);return e[15]&&e[15]==="Z"&&(t+="Z"),t}return k.date.fromICAL(e)},toICAL:function(e){let t=e.length;if(t!=10||Z.strict){if(t>=19){let r=e.slice(0,4)+e.slice(5,7)+e.slice(8,13)+e.slice(14,16)+e.slice(17,19);return e[19]&&e[19]==="Z"&&(r+="Z"),r}return e}return k.date.toICAL(e)},decorate:function(e,t){return Z.strict?w.fromDateTimeString(e,t):w.fromString(e,t)},undecorate:function(e){return e.toString()}},duration:{decorate:function(e){return X.fromString(e)},undecorate:function(e){return e.toString()}},period:{fromICAL:function(e){let t=e.split("/");return t[0]=k["date-time"].fromICAL(t[0]),X.isValueString(t[1])||(t[1]=k["date-time"].fromICAL(t[1])),t},toICAL:function(e){return e=e.slice(),Z.strict||e[0].length!=10?e[0]=k["date-time"].toICAL(e[0]):e[0]=k.date.toICAL(e[0]),X.isValueString(e[1])||(Z.strict||e[1].length!=10?e[1]=k["date-time"].toICAL(e[1]):e[1]=k.date.toICAL(e[1])),e.join("/")},decorate:function(e,t){return nr.fromJSON(e,t,!Z.strict)},undecorate:function(e){return e.toJSON()}},recur:{fromICAL:function(e){return ut._stringToData(e,!0)},toICAL:function(e){let t="";for(let[r,n]of Object.entries(e))r=="until"?n=n.length>10?k["date-time"].toICAL(n):k.date.toICAL(n):r=="wkst"?typeof n=="number"&&(n=ut.numericDayToIcalDay(n)):Array.isArray(n)&&(n=n.join(",")),t+=r.toUpperCase()+"="+n+";";return t.slice(0,Math.max(0,t.length-1))},decorate:function(e){return ut.fromData(e)},undecorate:function(e){return e.toJSON()}},time:{fromICAL:function(e){if(e.length<6)return e;let t=e.slice(0,2)+":"+e.slice(2,4)+":"+e.slice(4,6);return e[6]==="Z"&&(t+="Z"),t},toICAL:function(e){if(e.length<8)return e;let t=e.slice(0,2)+e.slice(3,5)+e.slice(6,8);return e[8]==="Z"&&(t+="Z"),t}}}),ji=St(we,{action:x,attach:{defaultType:"uri"},attendee:{defaultType:"cal-address"},calscale:x,class:x,comment:x,completed:Jt,contact:x,created:Jt,description:x,dtend:Gt,dtstamp:Jt,dtstart:Gt,due:Gt,duration:{defaultType:"duration"},exdate:{defaultType:"date-time",allowedTypes:["date-time","date"],multiValue:","},exrule:Ke,freebusy:{defaultType:"period",multiValue:","},geo:{defaultType:"float",structuredValue:";"},"last-modified":Jt,location:x,method:x,organizer:{defaultType:"cal-address"},"percent-complete":Zt,priority:Zt,prodid:x,"related-to":x,repeat:Zt,rdate:{defaultType:"date-time",allowedTypes:["date-time","date","period"],multiValue:",",detectType:function(e){return e.indexOf("/")!==-1?"period":e.indexOf("T")===-1?"date":"date-time"}},"recurrence-id":Gt,resources:zt,"request-status":ee,rrule:Ke,sequence:Zt,status:x,summary:x,transp:x,trigger:{defaultType:"duration",allowedTypes:["duration","date-time"]},tzoffsetfrom:Ve,tzoffsetto:Ve,tzurl:H,tzid:x,tzname:x}),$=St(Te,{text:me(Fe,He),uri:me(Fe,He),date:{decorate:function(e){return Rt.fromDateAndOrTimeString(e,"date")},undecorate:function(e){return e.toString()},fromICAL:function(e){return e.length==8?k.date.fromICAL(e):e[0]=="-"&&e.length==6?e.slice(0,4)+"-"+e.slice(4):e},toICAL:function(e){return e.length==10?k.date.toICAL(e):e[0]=="-"&&e.length==7?e.slice(0,4)+e.slice(5):e}},time:{decorate:function(e){return Rt.fromDateAndOrTimeString("T"+e,"time")},undecorate:function(e){return e.toString()},fromICAL:function(e){let t=$.time._splitZone(e,!0),r=t[0],n=t[1];return n.length==6?n=n.slice(0,2)+":"+n.slice(2,4)+":"+n.slice(4,6):n.length==4&&n[0]!="-"?n=n.slice(0,2)+":"+n.slice(2,4):n.length==5&&(n=n.slice(0,3)+":"+n.slice(3,5)),r.length!=5||r[0]!="-"&&r[0]!="+"||(r=r.slice(0,3)+":"+r.slice(3)),n+r},toICAL:function(e){let t=$.time._splitZone(e),r=t[0],n=t[1];return n.length==8?n=n.slice(0,2)+n.slice(3,5)+n.slice(6,8):n.length==5&&n[0]!="-"?n=n.slice(0,2)+n.slice(3,5):n.length==6&&(n=n.slice(0,3)+n.slice(4,6)),r.length!=6||r[0]!="-"&&r[0]!="+"||(r=r.slice(0,3)+r.slice(4)),n+r},_splitZone:function(e,t){let r,n,i=e.length-1,a=e.length-(t?5:6),o=e[a];return e[i]=="Z"?(r=e[i],n=e.slice(0,Math.max(0,i))):e.length>6&&(o=="-"||o=="+")?(r=e.slice(a),n=e.slice(0,Math.max(0,a))):(r="",n=e),[r,n]}},"date-time":{decorate:function(e){return Rt.fromDateAndOrTimeString(e,"date-time")},undecorate:function(e){return e.toString()},fromICAL:function(e){return $["date-and-or-time"].fromICAL(e)},toICAL:function(e){return $["date-and-or-time"].toICAL(e)}},"date-and-or-time":{decorate:function(e){return Rt.fromDateAndOrTimeString(e,"date-and-or-time")},undecorate:function(e){return e.toString()},fromICAL:function(e){let t=e.split("T");return(t[0]?$.date.fromICAL(t[0]):"")+(t[1]?"T"+$.time.fromICAL(t[1]):"")},toICAL:function(e){let t=e.split("T");return $.date.toICAL(t[0])+(t[1]?"T"+$.time.toICAL(t[1]):"")}},timestamp:k["date-time"],"language-tag":{matches:/^[a-zA-Z0-9-]+$/},"phone-number":{fromICAL:function(e){return Array.from(e).filter(function(t){return t==="\\"?void 0:t}).join("")},toICAL:function(e){return Array.from(e).map(function(t){return t===","||t===";"?"\\"+t:t}).join("")}}}),zi=St(we,{adr:{defaultType:"text",structuredValue:";",multiValue:","},anniversary:qe,bday:qe,caladruri:H,caluri:H,clientpidmap:ee,email:x,fburl:H,fn:x,gender:ee,geo:H,impp:H,key:H,kind:x,lang:{defaultType:"language-tag"},logo:H,member:H,n:{defaultType:"text",structuredValue:";",multiValue:","},nickname:zt,note:x,org:{defaultType:"text",structuredValue:";"},photo:H,related:H,rev:{defaultType:"timestamp"},role:x,sound:H,source:H,tel:{defaultType:"uri",allowedTypes:["uri","text"]},title:x,tz:{defaultType:"text",allowedTypes:["text","utc-offset","uri"]},xml:x}),Wi=St(Te,{binary:k.binary,date:$.date,"date-time":$["date-time"],"phone-number":$["phone-number"],uri:k.uri,text:k.text,time:k.time,vcard:k.text,"utc-offset":{toICAL:function(e){return e.slice(0,7)},fromICAL:function(e){return e.slice(0,7)},decorate:function(e){return wt.fromString(e)},undecorate:function(e){return e.toString()}}}),Fi=St(we,{fn:x,n:{defaultType:"text",structuredValue:";",multiValue:","},nickname:zt,photo:{defaultType:"binary",allowedTypes:["binary","uri"]},bday:{defaultType:"date-time",allowedTypes:["date-time","date"],detectType:function(e){return e.indexOf("T")===-1?"date":"date-time"}},adr:{defaultType:"text",structuredValue:";",multiValue:","},label:x,tel:{defaultType:"phone-number"},email:x,mailer:x,tz:{defaultType:"utc-offset",allowedTypes:["utc-offset","text"]},geo:{defaultType:"float",structuredValue:";"},title:x,role:x,logo:{defaultType:"binary",allowedTypes:["binary","uri"]},agent:{defaultType:"vcard",allowedTypes:["vcard","text","uri"]},org:ee,note:zt,prodid:x,rev:{defaultType:"date-time",allowedTypes:["date-time","date"],detectType:function(e){return e.indexOf("T")===-1?"date":"date-time"}},"sort-string":x,sound:{defaultType:"binary",allowedTypes:["binary","uri"]},class:x,key:{defaultType:"binary",allowedTypes:["binary","text"]}}),ot={value:k,param:{cutype:{values:["INDIVIDUAL","GROUP","RESOURCE","ROOM","UNKNOWN"],allowXName:!0,allowIanaToken:!0},"delegated-from":{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},"delegated-to":{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},encoding:{values:["8BIT","BASE64"]},fbtype:{values:["FREE","BUSY","BUSY-UNAVAILABLE","BUSY-TENTATIVE"],allowXName:!0,allowIanaToken:!0},member:{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},partstat:{values:["NEEDS-ACTION","ACCEPTED","DECLINED","TENTATIVE","DELEGATED","COMPLETED","IN-PROCESS"],allowXName:!0,allowIanaToken:!0},range:{values:["THISANDFUTURE"]},related:{values:["START","END"]},reltype:{values:["PARENT","CHILD","SIBLING"],allowXName:!0,allowIanaToken:!0},role:{values:["REQ-PARTICIPANT","CHAIR","OPT-PARTICIPANT","NON-PARTICIPANT"],allowXName:!0,allowIanaToken:!0},rsvp:{values:["TRUE","FALSE"]},"sent-by":{valueType:"cal-address"},tzid:{matches:/^\//},value:{values:["binary","boolean","cal-address","date","date-time","duration","float","integer","period","recur","text","time","uri","utc-offset"],allowXName:!0,allowIanaToken:!0}},property:ji,propertyGroups:!1},$e={value:$,param:{type:{valueType:"text",multiValue:","},value:{values:["text","uri","date","time","date-time","date-and-or-time","timestamp","boolean","integer","float","utc-offset","language-tag"],allowXName:!0,allowIanaToken:!0}},property:zi,propertyGroups:!0},Ze={value:Wi,param:{type:{valueType:"text",multiValue:","},value:{values:["text","uri","date","date-time","phone-number","time","boolean","integer","float","utc-offset","vcard","binary"],allowXName:!0,allowIanaToken:!0}},property:Fi,propertyGroups:!0},Z={strict:!0,defaultSet:ot,defaultType:"unknown",components:{vcard:$e,vcard3:Ze,vevent:ot,vtodo:ot,vjournal:ot,valarm:ot,vtimezone:ot,daylight:ot,standard:ot},icalendar:ot,vcard:$e,vcard3:Ze,getDesignSet:function(e){return e&&e in Z.components?Z.components[e]:Z.defaultSet}},I=Z,Xt=`\r -`,Ge="unknown",Hi={'"':"^'","\n":"^n","^":"^^"};function Y(e){typeof e[0]=="string"&&(e=[e]);let t=0,r=e.length,n="";for(;t0&&(e[1][0][0]!=="version"||e[1][0][3]!=="4.0")&&(s="vcard3"),t=t||I.getDesignSet(s);a0&&typeof t[0]=="object"&&"icaltype"in t[0]&&this.resetType(t[0].icaltype),this.isDecorated)for(;n=0;o--)n&&a[o][0]!==n||this._removeObjectByIndex(t,i,o)}addSubcomponent(t){this._components||(this._components=[],this._hydratedComponentCount=0),t.parent&&t.parent.removeSubcomponent(t);let r=this.jCal[2].push(t.jCal);return this._components[r-1]=t,this._hydratedComponentCount++,t.parent=this,t}removeSubcomponent(t){let r=this._removeObject(2,"_components",t);return r&&this._hydratedComponentCount--,r}removeAllSubcomponents(t){let r=this._removeAllObjects(2,"_components",t);return this._hydratedComponentCount=0,r}addProperty(t){if(!(t instanceof Bt))throw new TypeError("must be instance of ICAL.Property");this._properties||(this._properties=[],this._hydratedPropertyCount=0),t.parent&&t.parent.removeProperty(t);let r=this.jCal[1].push(t.jCal);return this._properties[r-1]=t,this._hydratedPropertyCount++,t.parent=this,t}addPropertyWithValue(t,r){let n=new Bt(t);return n.setValue(r),this.addProperty(n),n}updatePropertyWithValue(t,r){let n=this.getFirstProperty(t);return n?n.setValue(r):n=this.addPropertyWithValue(t,r),n}removeProperty(t){let r=this._removeObject(1,"_properties",t);return r&&this._hydratedPropertyCount--,r}removeAllProperties(t){let r=this._removeAllObjects(1,"_properties",t);return this._hydratedPropertyCount=0,r}toJSON(){return this.jCal}toString(){return Y.component(this.jCal,this._designSet)}getTimeZoneByID(t){if(this.parent)return this.parent.getTimeZoneByID(t);if(!this._timezoneCache)return null;if(this._timezoneCache.has(t))return this._timezoneCache.get(t);let r=this.getAllSubcomponents("vtimezone");for(let n of r)if(n.getFirstProperty("tzid").getFirstValue()===t){let i=new O({component:n,tzid:t});return this._timezoneCache.set(t,i),i}return null}},ar=class{constructor(e){this.ruleDates=[],this.exDates=[],this.fromData(e)}complete=!1;ruleIterators=null;ruleDates=null;exDates=null;ruleDateInc=0;exDateInc=0;exDate=null;ruleDate=null;dtstart=null;last=null;fromData(e){let t=st(e.dtstart,w);if(!t)throw new Error(".dtstart (ICAL.Time) must be given");if(this.dtstart=t,e.component)this._init(e.component);else{if(this.last=st(e.last,w)||t.clone(),!e.ruleIterators)throw new Error(".ruleIterators or .component must be given");this.ruleIterators=e.ruleIterators.map(function(r){return st(r,be)}),this.ruleDateInc=e.ruleDateInc,this.exDateInc=e.exDateInc,e.ruleDates&&(this.ruleDates=e.ruleDates.map(r=>st(r,w)),this.ruleDate=this.ruleDates[this.ruleDateInc]),e.exDates&&(this.exDates=e.exDates.map(r=>st(r,w)),this.exDate=this.exDates[this.exDateInc]),e.complete!==void 0&&(this.complete=e.complete)}}next(){let e,t,r,n=0;for(;;){if(n++>500)throw new Error("max tries have occurred, rule may be impossible to fulfill.");if(t=this.ruleDate,e=this._nextRecurrenceIter(this.last),!t&&!e){this.complete=!0;break}if((!t||e&&t.compare(e.last)>0)&&(t=e.last.clone(),e.next()),this.ruleDate===t&&this._nextRuleDay(),this.last=t,!this.exDate||(r=this.exDate.compare(this.last),r<0&&this._nextExDay(),r!==0))return this.last;this._nextExDay()}}toJSON(){function e(r){return r.toJSON()}let t=Object.create(null);return t.ruleIterators=this.ruleIterators.map(e),this.ruleDates&&(t.ruleDates=this.ruleDates.map(e)),this.exDates&&(t.exDates=this.exDates.map(e)),t.ruleDateInc=this.ruleDateInc,t.exDateInc=this.exDateInc,t.last=this.last.toJSON(),t.dtstart=this.dtstart.toJSON(),t.complete=this.complete,t}_extractDates(e,t){let r=[],n=e.getAllProperties(t);for(let i=0,a=n.length;iu.compare(l));r.splice(s,0,o)}return r}_init(e){if(this.ruleIterators=[],this.last=this.dtstart.clone(),!e.hasProperty("rdate")&&!e.hasProperty("rrule")&&!e.hasProperty("recurrence-id"))return this.ruleDate=this.last.clone(),void(this.complete=!0);if(e.hasProperty("rdate")&&(this.ruleDates=this._extractDates(e,"rdate"),this.ruleDates[0]&&this.ruleDates[0].compare(this.dtstart)<0?(this.ruleDateInc=0,this.last=this.ruleDates[0].clone()):this.ruleDateInc=Tt(this.ruleDates,this.last,(t,r)=>t.compare(r)),this.ruleDate=this.ruleDates[this.ruleDateInc]),e.hasProperty("rrule")){let t,r,n=e.getAllProperties("rrule"),i=0,a=n.length;for(;it.compare(r)),this.exDate=this.exDates[this.exDateInc])}_nextExDay(){this.exDate=this.exDates[++this.exDateInc]}_nextRuleDay(){this.ruleDate=this.ruleDates[++this.ruleDateInc]}_nextRecurrenceIter(){let e=this.ruleIterators;if(e.length===0)return null;let t,r,n,i=e.length,a=0;for(;a0)&&(n=t);return n}},Je=class ge{constructor(t,r){t instanceof tt||(r=t,t=null),this.component=t||new tt("vevent"),this._rangeExceptionCache=Object.create(null),this.exceptions=Object.create(null),this.rangeExceptions=[],r&&r.strictExceptions&&(this.strictExceptions=r.strictExceptions),r&&r.exceptions?r.exceptions.forEach(this.relateException,this):this.component.parent&&!this.isRecurrenceException()&&this.component.parent.getAllSubcomponents("vevent").forEach(function(n){n.hasProperty("recurrence-id")&&this.relateException(n)},this)}static THISANDFUTURE="THISANDFUTURE";exceptions=null;strictExceptions=!1;relateException(t){if(this.isRecurrenceException())throw new Error("cannot relate exception to exceptions");if(t instanceof tt&&(t=new ge(t)),this.strictExceptions&&t.uid!==this.uid)throw new Error("attempted to relate unrelated exception");let r=t.recurrenceId.toString();if(this.exceptions[r]=t,t.modifiesFuture()){let n=[t.recurrenceId.toUnixTime(),r],i=Tt(this.rangeExceptions,n,Qe);this.rangeExceptions.splice(i,0,n)}}modifiesFuture(){return this.component.hasProperty("recurrence-id")?this.component.getFirstProperty("recurrence-id").getParameter("range")===ge.THISANDFUTURE:!1}findRangeException(t){if(!this.rangeExceptions.length)return null;let r=t.toUnixTime(),n=Tt(this.rangeExceptions,[r],Qe);if(n-=1,n<0)return null;let i=this.rangeExceptions[n];return rt[0]?1:t[0]>e[0]?-1:0}var ht={foldLength:75,debug:!1,newLineChar:`\r -`,Binary:Xe,Component:tt,ComponentParser:class{constructor(e){e===void 0&&(e={});for(let[t,r]of Object.entries(e))this[t]=r}parseEvent=!0;parseTimezone=!0;oncomplete=function(){};onerror=function(e){};ontimezone=function(e){};onevent=function(e){};process(e){typeof e=="string"&&(e=A(e)),e instanceof tt||(e=new tt(e));let t,r=e.getAllSubcomponents(),n=0,i=r.length;for(;n0?"+":"")+String(this.n)+t),t},e.prototype.getJsWeekday=function(){return this.weekday===6?0:this.weekday+1},e}(),P=function(e){return e!=null},rt=function(e){return typeof e=="number"},or=function(e){return typeof e=="string"&&_e.includes(e)},K=Array.isArray,it=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+=_(r,t/r.length)),r.slice(0,t)+String(n))}var Ki=function(e,t,r){var n=e.split(t);return r?n.slice(0,r).concat([n.slice(r).join(t)]):n},G=function(e,t){var r=e%t;return r*t<0?r+t:r},Se=function(e,t){return{div:Math.floor(e/t),mod:G(e,t)}},nt=function(e){return!P(e)||e.length===0},N=function(e){return!nt(e)},C=function(e,t){return N(e)&&e.indexOf(t)!==-1},xt=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))},qi=[31,28,31,30,31,30,31,31,30,31,30,31],xr=1e3*60*60*24,_r=9999,Dr=xt(1970,1,1),$i=[6,0,1,2,3,4,5],Ft=function(e){return e%4===0&&e%100!==0||e%400===0},Ar=function(e){return e instanceof Date},Wt=function(e){return Ar(e)&&!isNaN(e.getTime())},Zi=function(e,t){var r=e.getTime(),n=t.getTime(),i=r-n;return Math.round(i/xr)},De=function(e){return Zi(e,Dr)},Er=function(e){return new Date(Dr.getTime()+e*xr)},Gi=function(e){var t=e.getUTCMonth();return t===1&&Ft(e.getUTCFullYear())?29:qi[t]},Yt=function(e){return $i[e.getUTCDay()]},sr=function(e,t){var r=xt(e,t+1,1);return[Yt(r),Gi(r)]},Cr=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()))},Ae=function(e){var t=new Date(e.getTime());return t},ur=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}(),Ot=Qi,Xi=function(e){At(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}(Ot),cr=Xi,ta={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}},re=ta,dr=function(e,t){return e.indexOf(t)!==-1},ea=function(e){return e.toString()},ra=function(e,t,r){return"".concat(t," ").concat(r,", ").concat(e)},na=function(){function e(t,r,n,i){if(r===void 0&&(r=ea),n===void 0&&(n=re),i===void 0&&(i=ra),this.text=[],this.language=n||re,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),o=[].concat(this.options.bynmonthday);a.sort(function(c,d){return c-d}),o.sort(function(c,d){return d-c}),this.bymonthday=a.concat(o),this.bymonthday.length||(this.bymonthday=null)}if(P(this.origOptions.byweekday)){var s=K(this.origOptions.byweekday)?this.origOptions.byweekday:[this.origOptions.byweekday],u=String(s);this.byweekday={allWeeks:s.filter(function(c){return!c.n}),someWeeks:s.filter(function(c){return!!c.n}),isWeekdays:u.indexOf("MO")!==-1&&u.indexOf("TU")!==-1&&u.indexOf("WE")!==-1&&u.indexOf("TH")!==-1&&u.indexOf("FR")!==-1&&u.indexOf("SA")===-1&&u.indexOf("SU")===-1,isEveryDay:u.indexOf("MO")!==-1&&u.indexOf("TU")!==-1&&u.indexOf("WE")!==-1&&u.indexOf("TH")!==-1&&u.indexOf("FR")!==-1&&u.indexOf("SA")!==-1&&u.indexOf("SU")!==-1};var l=function(c,d){return c.weekday-d.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(dr(["dtstart","tzid","wkst","freq"],n))return!0;if(!dr(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[v.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=rt(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=","),K(t)||(t=[t]);var o=function(u,l,c){for(var d="",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 Or(e,t){t===void 0&&(t=re);var r={},n=new ia(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=v.DAILY,n.nextSymbol()&&(o(),d());break;case"weekday(s)":r.freq=v.WEEKLY,r.byweekday=[v.MO,v.TU,v.WE,v.TH,v.FR],n.nextSymbol(),o(),d();break;case"week(s)":r.freq=v.WEEKLY,n.nextSymbol()&&(a(),o(),d());break;case"hour(s)":r.freq=v.HOURLY,n.nextSymbol()&&(a(),d());break;case"minute(s)":r.freq=v.MINUTELY,n.nextSymbol()&&(a(),d());break;case"month(s)":r.freq=v.MONTHLY,n.nextSymbol()&&(a(),d());break;case"year(s)":r.freq=v.YEARLY,n.nextSymbol()&&(a(),d());break;case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":r.freq=v.WEEKLY;var f=n.symbol.substr(0,2).toUpperCase();if(r.byweekday=[v[f]],!n.nextSymbol())return;for(;n.accept("comma");){if(n.isDone())throw new Error("Unexpected end");var y=u();if(!y)throw new Error("Unexpected symbol "+n.symbol+", expected weekday");r.byweekday.push(v[y]),n.nextSymbol()}o(),c(),d();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=v.YEARLY,r.bymonth=[s()],!n.nextSymbol())return;for(;n.accept("comma");){if(n.isDone())throw new Error("Unexpected end");var p=s();if(!p)throw new Error("Unexpected symbol "+n.symbol+", expected month");r.bymonth.push(p),n.nextSymbol()}a(),d();break;default:throw new Error("Unknown symbol")}}function a(){var h=n.accept("on"),f=n.accept("the");if(h||f)do{var y=l(),p=u(),b=s();if(y)p?(n.nextSymbol(),r.byweekday||(r.byweekday=[]),r.byweekday.push(v[p].nth(y))):(r.bymonthday||(r.bymonthday=[]),r.bymonthday.push(y),n.accept("day(s)"));else if(p)n.nextSymbol(),r.byweekday||(r.byweekday=[]),r.byweekday.push(v[p]);else if(n.symbol==="weekday(s)")n.nextSymbol(),r.byweekday||(r.byweekday=[v.MO,v.TU,v.WE,v.TH,v.FR]);else if(n.symbol==="week(s)"){n.nextSymbol();var S=n.acceptNumber();if(!S)throw new Error("Unexpected symbol "+n.symbol+", expected week number");for(r.byweekno=[parseInt(S[0],10)];n.accept("comma");){if(S=n.acceptNumber(),!S)throw new Error("Unexpected symbol "+n.symbol+"; expected monthday");r.byweekno.push(parseInt(S[0],10))}}else if(b)n.nextSymbol(),r.bymonth||(r.bymonth=[]),r.bymonth.push(b);else return}while(n.accept("comma")||n.accept("the")||n.accept("on"))}function o(){var h=n.accept("at");if(h)do{var f=n.acceptNumber();if(!f)throw new Error("Unexpected symbol "+n.symbol+", expected hour");for(r.byhour=[parseInt(f[0],10)];n.accept("comma");){if(f=n.acceptNumber(),!f)throw new Error("Unexpected symbol "+n.symbol+"; expected hour");r.byhour.push(parseInt(f[0],10))}}while(n.accept("comma")||n.accept("at"))}function s(){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 u(){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 c(){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 d(){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 D;(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"})(D||(D={}));function ke(e){return e12){var n=Math.floor(this.month/12),i=G(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=Se(this.hour,24),o=a.div,s=a.mod;if(o&&(this.hour=s,this.addDaily(o)),nt(i)||C(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 o=Se(this.minute,60),s=o.div,u=o.mod;if(s&&(this.minute=u,this.addHours(s,!1,i)),(nt(i)||C(i,this.hour))&&(nt(a)||C(a,this.minute)))break}},t.prototype.addSeconds=function(r,n,i,a,o){for(n&&(this.second+=Math.floor((86399-(this.hour*3600+this.minute*60+this.second))/r)*r);;){this.second+=r;var s=Se(this.second,60),u=s.div,l=s.mod;if(u&&(this.second=l,this.addMinutes(u,!1,i,a)),(nt(i)||C(i,this.hour))&&(nt(a)||C(a,this.minute))&&(nt(o)||C(o,this.second)))break}},t.prototype.fixDay=function(){if(!(this.day<=28)){var r=sr(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>_r))return;r=sr(this.year,this.month-1)[1]}}},t.prototype.add=function(r,n){var i=r.freq,a=r.interval,o=r.wkst,s=r.byhour,u=r.byminute,l=r.bysecond;switch(i){case D.YEARLY:return this.addYears(a);case D.MONTHLY:return this.addMonths(a);case D.WEEKLY:return this.addWeekly(a,o);case D.DAILY:return this.addDaily(a);case D.HOURLY:return this.addHours(a,n,s);case D.MINUTELY:return this.addMinutes(a,n,s,u);case D.SECONDLY:return this.addSeconds(a,n,s,u,l)}},t}(ne);function Yr(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||N(t.byweekno)||N(t.byyearday)||t.bymonthday||N(t.bymonthday)||P(t.byweekday)||P(t.byeaster)))switch(t.freq){case v.YEARLY:t.bymonth||(t.bymonth=t.dtstart.getUTCMonth()+1),t.bymonthday=t.dtstart.getUTCDate();break;case v.MONTHLY:t.bymonthday=t.dtstart.getUTCDate();break;case v.WEEKLY:t.byweekday=[Yt(t.dtstart)];break}if(P(t.bymonth)&&!K(t.bymonth)&&(t.bymonth=[t.bymonth]),P(t.byyearday)&&!K(t.byyearday)&&rt(t.byyearday)&&(t.byyearday=[t.byyearday]),!P(t.bymonthday))t.bymonthday=[],t.bynmonthday=[];else if(K(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(P(t.byweekno)&&!K(t.byweekno)&&(t.byweekno=[t.byweekno]),!P(t.byweekday))t.bynweekday=null;else if(rt(t.byweekday))t.byweekday=[t.byweekday],t.bynweekday=null;else if(or(t.byweekday))t.byweekday=[W.fromStr(t.byweekday).weekday],t.bynweekday=null;else if(t.byweekday instanceof W)!t.byweekday.n||t.freq>v.MONTHLY?(t.byweekday=[t.byweekday.weekday],t.bynweekday=null):(t.bynweekday=[[t.byweekday.weekday,t.byweekday.n]],t.byweekday=null);else{for(var o=[],s=[],r=0;rv.MONTHLY?o.push(u.weekday):s.push([u.weekday,u.n])}t.byweekday=N(o)?o:null,t.bynweekday=N(s)?s:null}return P(t.byhour)?rt(t.byhour)&&(t.byhour=[t.byhour]):t.byhour=t.freq=4?(c=0,l=s.yearlen+G(o-t.wkst,7)):l=n-c;for(var d=Math.floor(l/7),h=G(l,7),f=Math.floor(d+h/4),y=0;y0&&p<=f){var b=void 0;p>1?(b=c+(p-1)*7,c!==u&&(b-=7-u)):b=c;for(var S=0;S<7&&(s.wnomask[b]=1,b++,s.wdaymask[b]!==t.wkst);S++);}}if(C(t.byweekno,1)){var b=c+f*7;if(c!==u&&(b-=7-u),b=4?(at=0,q=_t+G(J-t.wkst,7)):q=n-c,M=Math.floor(52+G(q,7)/4)}if(C(t.byweekno,M))for(var b=0;ba)return Ct(e);if(M>=r){var J=mr(M,t);if(!e.accept(J)||s&&(--s,!s))return Ct(e)}}else for(var S=f;Sa)return Ct(e);if(M>=r){var J=mr(M,t);if(!e.accept(J)||s&&(--s,!s))return Ct(e)}}}if(t.interval===0||(u.add(t,p),u.year>_r))return Ct(e);ke(n)||(c=l.gettimeset(n)(u.hour,u.minute,u.second,0)),l.rebuild(u.year,u.month)}}function Na(e,t,r){var n=r.bymonth,i=r.byweekno,a=r.byweekday,o=r.byeaster,s=r.bymonthday,u=r.bynmonthday,l=r.byyearday;return N(n)&&!C(n,e.mmask[t])||N(i)&&!e.wnomask[t]||N(a)&&!C(a,e.wdaymask[t])||N(e.nwdaymask)&&!e.nwdaymask[t]||o!==null&&!C(e.eastermask,t)||(N(s)||N(u))&&!C(s,e.mdaymask[t])&&!C(u,e.nmdaymask[t])||N(l)&&(t=e.yearlen&&!C(l,t+1-e.yearlen)&&!C(l,-e.nextyearlen+t-e.yearlen))}function mr(e,t){return new ae(e,t.tzid).rezonedDate()}function Ct(e){return e.getValue()}function La(e,t,r,n,i){for(var a=!1,o=t;o=v.HOURLY&&N(i)&&!C(i,t.hour)||n>=v.MINUTELY&&N(a)&&!C(a,t.minute)||n>=v.SECONDLY&&N(o)&&!C(o,t.second)?[]:e.gettimeset(n)(t.hour,t.minute,t.second,t.millisecond)}var et={MO:new W(0),TU:new W(1),WE:new W(2),TH:new W(3),FR:new W(4),SA:new W(5),SU:new W(6)},Pe={freq:D.YEARLY,dtstart:null,interval:1,wkst:et.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},Ba=Object.keys(Pe),v=function(){function e(t,r){t===void 0&&(t={}),r===void 0&&(r=!1),this._cache=r?null:new pa,this.origOptions=Yr(t);var n=la(t).parsedOptions;this.options=n}return e.parseText=function(t,r){return Or(t,r)},e.fromText=function(t,r){return aa(t,r)},e.fromString=function(t){return new e(e.parseString(t)||void 0)},e.prototype._iter=function(t){return kr(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 cr("all",{},t));var r=this._cacheGet("all");return r===!1&&(r=this._iter(new Ot("all",{})),this._cacheAdd("all",r)),r},e.prototype.between=function(t,r,n,i){if(n===void 0&&(n=!1),!Wt(t)||!Wt(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 cr("between",a,i));var o=this._cacheGet("between",a);return o===!1&&(o=this._iter(new Ot("between",a)),this._cacheAdd("between",o,a)),o},e.prototype.before=function(t,r){if(r===void 0&&(r=!1),!Wt(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 Ot("before",n)),this._cacheAdd("before",i,n)),i},e.prototype.after=function(t,r){if(r===void 0&&(r=!1),!Wt(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 Ot("after",n)),this._cacheAdd("after",i,n)),i},e.prototype.count=function(){return this.all().length},e.prototype.toString=function(){return Ce(this.origOptions)},e.prototype.toText=function(t,r,n){return oa(this,t,r,n)},e.prototype.isFullyConvertibleToText=function(){return sa(this)},e.prototype.clone=function(){return new e(this.origOptions)},e.FREQUENCIES=["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY","MINUTELY","SECONDLY"],e.YEARLY=D.YEARLY,e.MONTHLY=D.MONTHLY,e.WEEKLY=D.WEEKLY,e.DAILY=D.DAILY,e.HOURLY=D.HOURLY,e.MINUTELY=D.MINUTELY,e.SECONDLY=D.SECONDLY,e.MO=et.MO,e.TU=et.TU,e.WE=et.WE,e.TH=et.TH,e.FR=et.FR,e.SA=et.SA,e.SU=et.SU,e.parseString=Ee,e.optionsToString=Ce,e}();function ja(e,t,r,n,i,a){var o={},s=e.accept;function u(h,f){r.forEach(function(y){y.between(h,f,!0).forEach(function(p){o[Number(p)]=!0})})}i.forEach(function(h){var f=new ae(h,a).rezonedDate();o[Number(f)]=!0}),e.accept=function(h){var f=Number(h);return isNaN(f)?s.call(this,h):!o[f]&&(u(new Date(f-1),new Date(f+1)),!o[f])?(o[f]=!0,s.call(this,h)):!0},e.method==="between"&&(u(e.args.after,e.args.before),e.accept=function(h){var f=Number(h);return o[f]?!0:(o[f]=!0,s.call(this,h))});for(var l=0;l1||i.length||a.length||o.length){var c=new Me(l);return c.dtstart(s),c.tzid(u||void 0),n.forEach(function(h){c.rrule(new v(xe(h,s,u),l))}),i.forEach(function(h){c.rdate(h)}),a.forEach(function(h){c.exrule(new v(xe(h,s,u),l))}),o.forEach(function(h){c.exdate(h)}),t.compatible&&t.dtstart&&c.rdate(s),c}var d=n[0]||{};return new v(xe(d,d.dtstart||t.dtstart||s,d.tzid||t.tzid||u),l)}function gr(e,t){return t===void 0&&(t={}),Wa(e,Fa(t))}function xe(e,t,r){return L(L({},e),{dtstart:t,tzid:r})}function Fa(e){var t=[],r=Object.keys(e),n=Object.keys(pr);if(r.forEach(function(i){C(n,i)||t.push(i)}),t.length)throw new Error("Invalid options: "+t.join(", "));return L(L({},pr),e)}function Ha(e){if(e.indexOf(":")===-1)return{name:"RRULE",value:e};var t=Ki(e,":",1),r=t[0],n=t[1];return{name:r,value:n}}function Va(e){var t=Ha(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 Ka(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=0;n0&&i[0]===" "?(r[n-1]+=i.slice(1),r.splice(n,1)):n+=1:r.splice(n,1)}return r}function qa(e){e.forEach(function(t){if(!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(t))throw new Error("unsupported RDATE/EXDATE parm: "+t)})}function br(e,t){return qa(t),e.split(",").map(function(r){return Ye(r)})}function wr(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=15?k["date-time"].fromICAL(e):e.slice(0,4)+"-"+e.slice(4,6)+"-"+e.slice(6,8)},toICAL:function(e){let t=e.length;return t==10?e.slice(0,4)+e.slice(5,7)+e.slice(8,10):t>=19?k["date-time"].toICAL(e):e}},"date-time":{fromICAL:function(e){if(Z.strict||e.length!=8){let t=e.slice(0,4)+"-"+e.slice(4,6)+"-"+e.slice(6,8)+"T"+e.slice(9,11)+":"+e.slice(11,13)+":"+e.slice(13,15);return e[15]&&e[15]==="Z"&&(t+="Z"),t}return k.date.fromICAL(e)},toICAL:function(e){let t=e.length;if(t!=10||Z.strict){if(t>=19){let r=e.slice(0,4)+e.slice(5,7)+e.slice(8,13)+e.slice(14,16)+e.slice(17,19);return e[19]&&e[19]==="Z"&&(r+="Z"),r}return e}return k.date.toICAL(e)},decorate:function(e,t){return Z.strict?w.fromDateTimeString(e,t):w.fromString(e,t)},undecorate:function(e){return e.toString()}},duration:{decorate:function(e){return X.fromString(e)},undecorate:function(e){return e.toString()}},period:{fromICAL:function(e){let t=e.split("/");return t[0]=k["date-time"].fromICAL(t[0]),X.isValueString(t[1])||(t[1]=k["date-time"].fromICAL(t[1])),t},toICAL:function(e){return e=e.slice(),Z.strict||e[0].length!=10?e[0]=k["date-time"].toICAL(e[0]):e[0]=k.date.toICAL(e[0]),X.isValueString(e[1])||(Z.strict||e[1].length!=10?e[1]=k["date-time"].toICAL(e[1]):e[1]=k.date.toICAL(e[1])),e.join("/")},decorate:function(e,t){return nr.fromJSON(e,t,!Z.strict)},undecorate:function(e){return e.toJSON()}},recur:{fromICAL:function(e){return ut._stringToData(e,!0)},toICAL:function(e){let t="";for(let[r,n]of Object.entries(e))r=="until"?n=n.length>10?k["date-time"].toICAL(n):k.date.toICAL(n):r=="wkst"?typeof n=="number"&&(n=ut.numericDayToIcalDay(n)):Array.isArray(n)&&(n=n.join(",")),t+=r.toUpperCase()+"="+n+";";return t.slice(0,Math.max(0,t.length-1))},decorate:function(e){return ut.fromData(e)},undecorate:function(e){return e.toJSON()}},time:{fromICAL:function(e){if(e.length<6)return e;let t=e.slice(0,2)+":"+e.slice(2,4)+":"+e.slice(4,6);return e[6]==="Z"&&(t+="Z"),t},toICAL:function(e){if(e.length<8)return e;let t=e.slice(0,2)+e.slice(3,5)+e.slice(6,8);return e[8]==="Z"&&(t+="Z"),t}}}),ji=St(we,{action:x,attach:{defaultType:"uri"},attendee:{defaultType:"cal-address"},calscale:x,class:x,comment:x,completed:Jt,contact:x,created:Jt,description:x,dtend:Gt,dtstamp:Jt,dtstart:Gt,due:Gt,duration:{defaultType:"duration"},exdate:{defaultType:"date-time",allowedTypes:["date-time","date"],multiValue:","},exrule:Ke,freebusy:{defaultType:"period",multiValue:","},geo:{defaultType:"float",structuredValue:";"},"last-modified":Jt,location:x,method:x,organizer:{defaultType:"cal-address"},"percent-complete":Zt,priority:Zt,prodid:x,"related-to":x,repeat:Zt,rdate:{defaultType:"date-time",allowedTypes:["date-time","date","period"],multiValue:",",detectType:function(e){return e.indexOf("/")!==-1?"period":e.indexOf("T")===-1?"date":"date-time"}},"recurrence-id":Gt,resources:zt,"request-status":ee,rrule:Ke,sequence:Zt,status:x,summary:x,transp:x,trigger:{defaultType:"duration",allowedTypes:["duration","date-time"]},tzoffsetfrom:Ve,tzoffsetto:Ve,tzurl:H,tzid:x,tzname:x}),$=St(Te,{text:me(Fe,He),uri:me(Fe,He),date:{decorate:function(e){return Rt.fromDateAndOrTimeString(e,"date")},undecorate:function(e){return e.toString()},fromICAL:function(e){return e.length==8?k.date.fromICAL(e):e[0]=="-"&&e.length==6?e.slice(0,4)+"-"+e.slice(4):e},toICAL:function(e){return e.length==10?k.date.toICAL(e):e[0]=="-"&&e.length==7?e.slice(0,4)+e.slice(5):e}},time:{decorate:function(e){return Rt.fromDateAndOrTimeString("T"+e,"time")},undecorate:function(e){return e.toString()},fromICAL:function(e){let t=$.time._splitZone(e,!0),r=t[0],n=t[1];return n.length==6?n=n.slice(0,2)+":"+n.slice(2,4)+":"+n.slice(4,6):n.length==4&&n[0]!="-"?n=n.slice(0,2)+":"+n.slice(2,4):n.length==5&&(n=n.slice(0,3)+":"+n.slice(3,5)),r.length!=5||r[0]!="-"&&r[0]!="+"||(r=r.slice(0,3)+":"+r.slice(3)),n+r},toICAL:function(e){let t=$.time._splitZone(e),r=t[0],n=t[1];return n.length==8?n=n.slice(0,2)+n.slice(3,5)+n.slice(6,8):n.length==5&&n[0]!="-"?n=n.slice(0,2)+n.slice(3,5):n.length==6&&(n=n.slice(0,3)+n.slice(4,6)),r.length!=6||r[0]!="-"&&r[0]!="+"||(r=r.slice(0,3)+r.slice(4)),n+r},_splitZone:function(e,t){let r,n,i=e.length-1,a=e.length-(t?5:6),o=e[a];return e[i]=="Z"?(r=e[i],n=e.slice(0,Math.max(0,i))):e.length>6&&(o=="-"||o=="+")?(r=e.slice(a),n=e.slice(0,Math.max(0,a))):(r="",n=e),[r,n]}},"date-time":{decorate:function(e){return Rt.fromDateAndOrTimeString(e,"date-time")},undecorate:function(e){return e.toString()},fromICAL:function(e){return $["date-and-or-time"].fromICAL(e)},toICAL:function(e){return $["date-and-or-time"].toICAL(e)}},"date-and-or-time":{decorate:function(e){return Rt.fromDateAndOrTimeString(e,"date-and-or-time")},undecorate:function(e){return e.toString()},fromICAL:function(e){let t=e.split("T");return(t[0]?$.date.fromICAL(t[0]):"")+(t[1]?"T"+$.time.fromICAL(t[1]):"")},toICAL:function(e){let t=e.split("T");return $.date.toICAL(t[0])+(t[1]?"T"+$.time.toICAL(t[1]):"")}},timestamp:k["date-time"],"language-tag":{matches:/^[a-zA-Z0-9-]+$/},"phone-number":{fromICAL:function(e){return Array.from(e).filter(function(t){return t==="\\"?void 0:t}).join("")},toICAL:function(e){return Array.from(e).map(function(t){return t===","||t===";"?"\\"+t:t}).join("")}}}),zi=St(we,{adr:{defaultType:"text",structuredValue:";",multiValue:","},anniversary:qe,bday:qe,caladruri:H,caluri:H,clientpidmap:ee,email:x,fburl:H,fn:x,gender:ee,geo:H,impp:H,key:H,kind:x,lang:{defaultType:"language-tag"},logo:H,member:H,n:{defaultType:"text",structuredValue:";",multiValue:","},nickname:zt,note:x,org:{defaultType:"text",structuredValue:";"},photo:H,related:H,rev:{defaultType:"timestamp"},role:x,sound:H,source:H,tel:{defaultType:"uri",allowedTypes:["uri","text"]},title:x,tz:{defaultType:"text",allowedTypes:["text","utc-offset","uri"]},xml:x}),Wi=St(Te,{binary:k.binary,date:$.date,"date-time":$["date-time"],"phone-number":$["phone-number"],uri:k.uri,text:k.text,time:k.time,vcard:k.text,"utc-offset":{toICAL:function(e){return e.slice(0,7)},fromICAL:function(e){return e.slice(0,7)},decorate:function(e){return wt.fromString(e)},undecorate:function(e){return e.toString()}}}),Fi=St(we,{fn:x,n:{defaultType:"text",structuredValue:";",multiValue:","},nickname:zt,photo:{defaultType:"binary",allowedTypes:["binary","uri"]},bday:{defaultType:"date-time",allowedTypes:["date-time","date"],detectType:function(e){return e.indexOf("T")===-1?"date":"date-time"}},adr:{defaultType:"text",structuredValue:";",multiValue:","},label:x,tel:{defaultType:"phone-number"},email:x,mailer:x,tz:{defaultType:"utc-offset",allowedTypes:["utc-offset","text"]},geo:{defaultType:"float",structuredValue:";"},title:x,role:x,logo:{defaultType:"binary",allowedTypes:["binary","uri"]},agent:{defaultType:"vcard",allowedTypes:["vcard","text","uri"]},org:ee,note:zt,prodid:x,rev:{defaultType:"date-time",allowedTypes:["date-time","date"],detectType:function(e){return e.indexOf("T")===-1?"date":"date-time"}},"sort-string":x,sound:{defaultType:"binary",allowedTypes:["binary","uri"]},class:x,key:{defaultType:"binary",allowedTypes:["binary","text"]}}),ot={value:k,param:{cutype:{values:["INDIVIDUAL","GROUP","RESOURCE","ROOM","UNKNOWN"],allowXName:!0,allowIanaToken:!0},"delegated-from":{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},"delegated-to":{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},encoding:{values:["8BIT","BASE64"]},fbtype:{values:["FREE","BUSY","BUSY-UNAVAILABLE","BUSY-TENTATIVE"],allowXName:!0,allowIanaToken:!0},member:{valueType:"cal-address",multiValue:",",multiValueSeparateDQuote:!0},partstat:{values:["NEEDS-ACTION","ACCEPTED","DECLINED","TENTATIVE","DELEGATED","COMPLETED","IN-PROCESS"],allowXName:!0,allowIanaToken:!0},range:{values:["THISANDFUTURE"]},related:{values:["START","END"]},reltype:{values:["PARENT","CHILD","SIBLING"],allowXName:!0,allowIanaToken:!0},role:{values:["REQ-PARTICIPANT","CHAIR","OPT-PARTICIPANT","NON-PARTICIPANT"],allowXName:!0,allowIanaToken:!0},rsvp:{values:["TRUE","FALSE"]},"sent-by":{valueType:"cal-address"},tzid:{matches:/^\//},value:{values:["binary","boolean","cal-address","date","date-time","duration","float","integer","period","recur","text","time","uri","utc-offset"],allowXName:!0,allowIanaToken:!0}},property:ji,propertyGroups:!1},$e={value:$,param:{type:{valueType:"text",multiValue:","},value:{values:["text","uri","date","time","date-time","date-and-or-time","timestamp","boolean","integer","float","utc-offset","language-tag"],allowXName:!0,allowIanaToken:!0}},property:zi,propertyGroups:!0},Ze={value:Wi,param:{type:{valueType:"text",multiValue:","},value:{values:["text","uri","date","date-time","phone-number","time","boolean","integer","float","utc-offset","vcard","binary"],allowXName:!0,allowIanaToken:!0}},property:Fi,propertyGroups:!0},Z={strict:!0,defaultSet:ot,defaultType:"unknown",components:{vcard:$e,vcard3:Ze,vevent:ot,vtodo:ot,vjournal:ot,valarm:ot,vtimezone:ot,daylight:ot,standard:ot},icalendar:ot,vcard:$e,vcard3:Ze,getDesignSet:function(e){return e&&e in Z.components?Z.components[e]:Z.defaultSet}},N=Z,Xt=`\r +`,Ge="unknown",Hi={'"':"^'","\n":"^n","^":"^^"};function Y(e){typeof e[0]=="string"&&(e=[e]);let t=0,r=e.length,n="";for(;t0&&(e[1][0][0]!=="version"||e[1][0][3]!=="4.0")&&(s="vcard3"),t=t||N.getDesignSet(s);a0&&typeof t[0]=="object"&&"icaltype"in t[0]&&this.resetType(t[0].icaltype),this.isDecorated)for(;n=0;o--)n&&a[o][0]!==n||this._removeObjectByIndex(t,i,o)}addSubcomponent(t){this._components||(this._components=[],this._hydratedComponentCount=0),t.parent&&t.parent.removeSubcomponent(t);let r=this.jCal[2].push(t.jCal);return this._components[r-1]=t,this._hydratedComponentCount++,t.parent=this,t}removeSubcomponent(t){let r=this._removeObject(2,"_components",t);return r&&this._hydratedComponentCount--,r}removeAllSubcomponents(t){let r=this._removeAllObjects(2,"_components",t);return this._hydratedComponentCount=0,r}addProperty(t){if(!(t instanceof Bt))throw new TypeError("must be instance of ICAL.Property");this._properties||(this._properties=[],this._hydratedPropertyCount=0),t.parent&&t.parent.removeProperty(t);let r=this.jCal[1].push(t.jCal);return this._properties[r-1]=t,this._hydratedPropertyCount++,t.parent=this,t}addPropertyWithValue(t,r){let n=new Bt(t);return n.setValue(r),this.addProperty(n),n}updatePropertyWithValue(t,r){let n=this.getFirstProperty(t);return n?n.setValue(r):n=this.addPropertyWithValue(t,r),n}removeProperty(t){let r=this._removeObject(1,"_properties",t);return r&&this._hydratedPropertyCount--,r}removeAllProperties(t){let r=this._removeAllObjects(1,"_properties",t);return this._hydratedPropertyCount=0,r}toJSON(){return this.jCal}toString(){return Y.component(this.jCal,this._designSet)}getTimeZoneByID(t){if(this.parent)return this.parent.getTimeZoneByID(t);if(!this._timezoneCache)return null;if(this._timezoneCache.has(t))return this._timezoneCache.get(t);let r=this.getAllSubcomponents("vtimezone");for(let n of r)if(n.getFirstProperty("tzid").getFirstValue()===t){let i=new C({component:n,tzid:t});return this._timezoneCache.set(t,i),i}return null}},ar=class{constructor(e){this.ruleDates=[],this.exDates=[],this.fromData(e)}complete=!1;ruleIterators=null;ruleDates=null;exDates=null;ruleDateInc=0;exDateInc=0;exDate=null;ruleDate=null;dtstart=null;last=null;fromData(e){let t=st(e.dtstart,w);if(!t)throw new Error(".dtstart (ICAL.Time) must be given");if(this.dtstart=t,e.component)this._init(e.component);else{if(this.last=st(e.last,w)||t.clone(),!e.ruleIterators)throw new Error(".ruleIterators or .component must be given");this.ruleIterators=e.ruleIterators.map(function(r){return st(r,be)}),this.ruleDateInc=e.ruleDateInc,this.exDateInc=e.exDateInc,e.ruleDates&&(this.ruleDates=e.ruleDates.map(r=>st(r,w)),this.ruleDate=this.ruleDates[this.ruleDateInc]),e.exDates&&(this.exDates=e.exDates.map(r=>st(r,w)),this.exDate=this.exDates[this.exDateInc]),e.complete!==void 0&&(this.complete=e.complete)}}next(){let e,t,r,n=0;for(;;){if(n++>500)throw new Error("max tries have occurred, rule may be impossible to fulfill.");if(t=this.ruleDate,e=this._nextRecurrenceIter(this.last),!t&&!e){this.complete=!0;break}if((!t||e&&t.compare(e.last)>0)&&(t=e.last.clone(),e.next()),this.ruleDate===t&&this._nextRuleDay(),this.last=t,!this.exDate||(r=this.exDate.compare(this.last),r<0&&this._nextExDay(),r!==0))return this.last;this._nextExDay()}}toJSON(){function e(r){return r.toJSON()}let t=Object.create(null);return t.ruleIterators=this.ruleIterators.map(e),this.ruleDates&&(t.ruleDates=this.ruleDates.map(e)),this.exDates&&(t.exDates=this.exDates.map(e)),t.ruleDateInc=this.ruleDateInc,t.exDateInc=this.exDateInc,t.last=this.last.toJSON(),t.dtstart=this.dtstart.toJSON(),t.complete=this.complete,t}_extractDates(e,t){let r=[],n=e.getAllProperties(t);for(let i=0,a=n.length;iu.compare(l));r.splice(s,0,o)}return r}_init(e){if(this.ruleIterators=[],this.last=this.dtstart.clone(),!e.hasProperty("rdate")&&!e.hasProperty("rrule")&&!e.hasProperty("recurrence-id"))return this.ruleDate=this.last.clone(),void(this.complete=!0);if(e.hasProperty("rdate")&&(this.ruleDates=this._extractDates(e,"rdate"),this.ruleDates[0]&&this.ruleDates[0].compare(this.dtstart)<0?(this.ruleDateInc=0,this.last=this.ruleDates[0].clone()):this.ruleDateInc=Tt(this.ruleDates,this.last,(t,r)=>t.compare(r)),this.ruleDate=this.ruleDates[this.ruleDateInc]),e.hasProperty("rrule")){let t,r,n=e.getAllProperties("rrule"),i=0,a=n.length;for(;it.compare(r)),this.exDate=this.exDates[this.exDateInc])}_nextExDay(){this.exDate=this.exDates[++this.exDateInc]}_nextRuleDay(){this.ruleDate=this.ruleDates[++this.ruleDateInc]}_nextRecurrenceIter(){let e=this.ruleIterators;if(e.length===0)return null;let t,r,n,i=e.length,a=0;for(;a0)&&(n=t);return n}},Je=class ge{constructor(t,r){t instanceof tt||(r=t,t=null),this.component=t||new tt("vevent"),this._rangeExceptionCache=Object.create(null),this.exceptions=Object.create(null),this.rangeExceptions=[],r&&r.strictExceptions&&(this.strictExceptions=r.strictExceptions),r&&r.exceptions?r.exceptions.forEach(this.relateException,this):this.component.parent&&!this.isRecurrenceException()&&this.component.parent.getAllSubcomponents("vevent").forEach(function(n){n.hasProperty("recurrence-id")&&this.relateException(n)},this)}static THISANDFUTURE="THISANDFUTURE";exceptions=null;strictExceptions=!1;relateException(t){if(this.isRecurrenceException())throw new Error("cannot relate exception to exceptions");if(t instanceof tt&&(t=new ge(t)),this.strictExceptions&&t.uid!==this.uid)throw new Error("attempted to relate unrelated exception");let r=t.recurrenceId.toString();if(this.exceptions[r]=t,t.modifiesFuture()){let n=[t.recurrenceId.toUnixTime(),r],i=Tt(this.rangeExceptions,n,Qe);this.rangeExceptions.splice(i,0,n)}}modifiesFuture(){return this.component.hasProperty("recurrence-id")?this.component.getFirstProperty("recurrence-id").getParameter("range")===ge.THISANDFUTURE:!1}findRangeException(t){if(!this.rangeExceptions.length)return null;let r=t.toUnixTime(),n=Tt(this.rangeExceptions,[r],Qe);if(n-=1,n<0)return null;let i=this.rangeExceptions[n];return rt[0]?1:t[0]>e[0]?-1:0}var ht={foldLength:75,debug:!1,newLineChar:`\r +`,Binary:Xe,Component:tt,ComponentParser:class{constructor(e){e===void 0&&(e={});for(let[t,r]of Object.entries(e))this[t]=r}parseEvent=!0;parseTimezone=!0;oncomplete=function(){};onerror=function(e){};ontimezone=function(e){};onevent=function(e){};process(e){typeof e=="string"&&(e=A(e)),e instanceof tt||(e=new tt(e));let t,r=e.getAllSubcomponents(),n=0,i=r.length;for(;n0?"+":"")+String(this.n)+t),t},e.prototype.getJsWeekday=function(){return this.weekday===6?0:this.weekday+1},e}(),P=function(e){return e!=null},rt=function(e){return typeof e=="number"},or=function(e){return typeof e=="string"&&_e.includes(e)},K=Array.isArray,it=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+=_(r,t/r.length)),r.slice(0,t)+String(n))}var Ki=function(e,t,r){var n=e.split(t);return r?n.slice(0,r).concat([n.slice(r).join(t)]):n},G=function(e,t){var r=e%t;return r*t<0?r+t:r},Se=function(e,t){return{div:Math.floor(e/t),mod:G(e,t)}},nt=function(e){return!P(e)||e.length===0},I=function(e){return!nt(e)},O=function(e,t){return I(e)&&e.indexOf(t)!==-1},xt=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))},qi=[31,28,31,30,31,30,31,31,30,31,30,31],xr=1e3*60*60*24,_r=9999,Dr=xt(1970,1,1),$i=[6,0,1,2,3,4,5],Ft=function(e){return e%4===0&&e%100!==0||e%400===0},Ar=function(e){return e instanceof Date},Wt=function(e){return Ar(e)&&!isNaN(e.getTime())},Zi=function(e,t){var r=e.getTime(),n=t.getTime(),i=r-n;return Math.round(i/xr)},De=function(e){return Zi(e,Dr)},Er=function(e){return new Date(Dr.getTime()+e*xr)},Gi=function(e){var t=e.getUTCMonth();return t===1&&Ft(e.getUTCFullYear())?29:qi[t]},Yt=function(e){return $i[e.getUTCDay()]},sr=function(e,t){var r=xt(e,t+1,1);return[Yt(r),Gi(r)]},Or=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()))},Ae=function(e){var t=new Date(e.getTime());return t},ur=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}(),Ct=Qi,Xi=function(e){At(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}(Ct),cr=Xi,ta={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}},re=ta,dr=function(e,t){return e.indexOf(t)!==-1},ea=function(e){return e.toString()},ra=function(e,t,r){return"".concat(t," ").concat(r,", ").concat(e)},na=function(){function e(t,r,n,i){if(r===void 0&&(r=ea),n===void 0&&(n=re),i===void 0&&(i=ra),this.text=[],this.language=n||re,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),o=[].concat(this.options.bynmonthday);a.sort(function(c,d){return c-d}),o.sort(function(c,d){return d-c}),this.bymonthday=a.concat(o),this.bymonthday.length||(this.bymonthday=null)}if(P(this.origOptions.byweekday)){var s=K(this.origOptions.byweekday)?this.origOptions.byweekday:[this.origOptions.byweekday],u=String(s);this.byweekday={allWeeks:s.filter(function(c){return!c.n}),someWeeks:s.filter(function(c){return!!c.n}),isWeekdays:u.indexOf("MO")!==-1&&u.indexOf("TU")!==-1&&u.indexOf("WE")!==-1&&u.indexOf("TH")!==-1&&u.indexOf("FR")!==-1&&u.indexOf("SA")===-1&&u.indexOf("SU")===-1,isEveryDay:u.indexOf("MO")!==-1&&u.indexOf("TU")!==-1&&u.indexOf("WE")!==-1&&u.indexOf("TH")!==-1&&u.indexOf("FR")!==-1&&u.indexOf("SA")!==-1&&u.indexOf("SU")!==-1};var l=function(c,d){return c.weekday-d.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(dr(["dtstart","tzid","wkst","freq"],n))return!0;if(!dr(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[v.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=rt(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=","),K(t)||(t=[t]);var o=function(u,l,c){for(var d="",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 Cr(e,t){t===void 0&&(t=re);var r={},n=new ia(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=v.DAILY,n.nextSymbol()&&(o(),d());break;case"weekday(s)":r.freq=v.WEEKLY,r.byweekday=[v.MO,v.TU,v.WE,v.TH,v.FR],n.nextSymbol(),o(),d();break;case"week(s)":r.freq=v.WEEKLY,n.nextSymbol()&&(a(),o(),d());break;case"hour(s)":r.freq=v.HOURLY,n.nextSymbol()&&(a(),d());break;case"minute(s)":r.freq=v.MINUTELY,n.nextSymbol()&&(a(),d());break;case"month(s)":r.freq=v.MONTHLY,n.nextSymbol()&&(a(),d());break;case"year(s)":r.freq=v.YEARLY,n.nextSymbol()&&(a(),d());break;case"monday":case"tuesday":case"wednesday":case"thursday":case"friday":case"saturday":case"sunday":r.freq=v.WEEKLY;var f=n.symbol.substr(0,2).toUpperCase();if(r.byweekday=[v[f]],!n.nextSymbol())return;for(;n.accept("comma");){if(n.isDone())throw new Error("Unexpected end");var y=u();if(!y)throw new Error("Unexpected symbol "+n.symbol+", expected weekday");r.byweekday.push(v[y]),n.nextSymbol()}o(),c(),d();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=v.YEARLY,r.bymonth=[s()],!n.nextSymbol())return;for(;n.accept("comma");){if(n.isDone())throw new Error("Unexpected end");var p=s();if(!p)throw new Error("Unexpected symbol "+n.symbol+", expected month");r.bymonth.push(p),n.nextSymbol()}a(),d();break;default:throw new Error("Unknown symbol")}}function a(){var h=n.accept("on"),f=n.accept("the");if(h||f)do{var y=l(),p=u(),b=s();if(y)p?(n.nextSymbol(),r.byweekday||(r.byweekday=[]),r.byweekday.push(v[p].nth(y))):(r.bymonthday||(r.bymonthday=[]),r.bymonthday.push(y),n.accept("day(s)"));else if(p)n.nextSymbol(),r.byweekday||(r.byweekday=[]),r.byweekday.push(v[p]);else if(n.symbol==="weekday(s)")n.nextSymbol(),r.byweekday||(r.byweekday=[v.MO,v.TU,v.WE,v.TH,v.FR]);else if(n.symbol==="week(s)"){n.nextSymbol();var S=n.acceptNumber();if(!S)throw new Error("Unexpected symbol "+n.symbol+", expected week number");for(r.byweekno=[parseInt(S[0],10)];n.accept("comma");){if(S=n.acceptNumber(),!S)throw new Error("Unexpected symbol "+n.symbol+"; expected monthday");r.byweekno.push(parseInt(S[0],10))}}else if(b)n.nextSymbol(),r.bymonth||(r.bymonth=[]),r.bymonth.push(b);else return}while(n.accept("comma")||n.accept("the")||n.accept("on"))}function o(){var h=n.accept("at");if(h)do{var f=n.acceptNumber();if(!f)throw new Error("Unexpected symbol "+n.symbol+", expected hour");for(r.byhour=[parseInt(f[0],10)];n.accept("comma");){if(f=n.acceptNumber(),!f)throw new Error("Unexpected symbol "+n.symbol+"; expected hour");r.byhour.push(parseInt(f[0],10))}}while(n.accept("comma")||n.accept("at"))}function s(){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 u(){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 c(){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 d(){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 D;(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"})(D||(D={}));function ke(e){return e12){var n=Math.floor(this.month/12),i=G(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=Se(this.hour,24),o=a.div,s=a.mod;if(o&&(this.hour=s,this.addDaily(o)),nt(i)||O(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 o=Se(this.minute,60),s=o.div,u=o.mod;if(s&&(this.minute=u,this.addHours(s,!1,i)),(nt(i)||O(i,this.hour))&&(nt(a)||O(a,this.minute)))break}},t.prototype.addSeconds=function(r,n,i,a,o){for(n&&(this.second+=Math.floor((86399-(this.hour*3600+this.minute*60+this.second))/r)*r);;){this.second+=r;var s=Se(this.second,60),u=s.div,l=s.mod;if(u&&(this.second=l,this.addMinutes(u,!1,i,a)),(nt(i)||O(i,this.hour))&&(nt(a)||O(a,this.minute))&&(nt(o)||O(o,this.second)))break}},t.prototype.fixDay=function(){if(!(this.day<=28)){var r=sr(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>_r))return;r=sr(this.year,this.month-1)[1]}}},t.prototype.add=function(r,n){var i=r.freq,a=r.interval,o=r.wkst,s=r.byhour,u=r.byminute,l=r.bysecond;switch(i){case D.YEARLY:return this.addYears(a);case D.MONTHLY:return this.addMonths(a);case D.WEEKLY:return this.addWeekly(a,o);case D.DAILY:return this.addDaily(a);case D.HOURLY:return this.addHours(a,n,s);case D.MINUTELY:return this.addMinutes(a,n,s,u);case D.SECONDLY:return this.addSeconds(a,n,s,u,l)}},t}(ne);function Yr(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||I(t.byweekno)||I(t.byyearday)||t.bymonthday||I(t.bymonthday)||P(t.byweekday)||P(t.byeaster)))switch(t.freq){case v.YEARLY:t.bymonth||(t.bymonth=t.dtstart.getUTCMonth()+1),t.bymonthday=t.dtstart.getUTCDate();break;case v.MONTHLY:t.bymonthday=t.dtstart.getUTCDate();break;case v.WEEKLY:t.byweekday=[Yt(t.dtstart)];break}if(P(t.bymonth)&&!K(t.bymonth)&&(t.bymonth=[t.bymonth]),P(t.byyearday)&&!K(t.byyearday)&&rt(t.byyearday)&&(t.byyearday=[t.byyearday]),!P(t.bymonthday))t.bymonthday=[],t.bynmonthday=[];else if(K(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(P(t.byweekno)&&!K(t.byweekno)&&(t.byweekno=[t.byweekno]),!P(t.byweekday))t.bynweekday=null;else if(rt(t.byweekday))t.byweekday=[t.byweekday],t.bynweekday=null;else if(or(t.byweekday))t.byweekday=[W.fromStr(t.byweekday).weekday],t.bynweekday=null;else if(t.byweekday instanceof W)!t.byweekday.n||t.freq>v.MONTHLY?(t.byweekday=[t.byweekday.weekday],t.bynweekday=null):(t.bynweekday=[[t.byweekday.weekday,t.byweekday.n]],t.byweekday=null);else{for(var o=[],s=[],r=0;rv.MONTHLY?o.push(u.weekday):s.push([u.weekday,u.n])}t.byweekday=I(o)?o:null,t.bynweekday=I(s)?s:null}return P(t.byhour)?rt(t.byhour)&&(t.byhour=[t.byhour]):t.byhour=t.freq=4?(c=0,l=s.yearlen+G(o-t.wkst,7)):l=n-c;for(var d=Math.floor(l/7),h=G(l,7),f=Math.floor(d+h/4),y=0;y0&&p<=f){var b=void 0;p>1?(b=c+(p-1)*7,c!==u&&(b-=7-u)):b=c;for(var S=0;S<7&&(s.wnomask[b]=1,b++,s.wdaymask[b]!==t.wkst);S++);}}if(O(t.byweekno,1)){var b=c+f*7;if(c!==u&&(b-=7-u),b=4?(at=0,q=_t+G(J-t.wkst,7)):q=n-c,M=Math.floor(52+G(q,7)/4)}if(O(t.byweekno,M))for(var b=0;ba)return Ot(e);if(M>=r){var J=mr(M,t);if(!e.accept(J)||s&&(--s,!s))return Ot(e)}}else for(var S=f;Sa)return Ot(e);if(M>=r){var J=mr(M,t);if(!e.accept(J)||s&&(--s,!s))return Ot(e)}}}if(t.interval===0||(u.add(t,p),u.year>_r))return Ot(e);ke(n)||(c=l.gettimeset(n)(u.hour,u.minute,u.second,0)),l.rebuild(u.year,u.month)}}function Ia(e,t,r){var n=r.bymonth,i=r.byweekno,a=r.byweekday,o=r.byeaster,s=r.bymonthday,u=r.bynmonthday,l=r.byyearday;return I(n)&&!O(n,e.mmask[t])||I(i)&&!e.wnomask[t]||I(a)&&!O(a,e.wdaymask[t])||I(e.nwdaymask)&&!e.nwdaymask[t]||o!==null&&!O(e.eastermask,t)||(I(s)||I(u))&&!O(s,e.mdaymask[t])&&!O(u,e.nmdaymask[t])||I(l)&&(t=e.yearlen&&!O(l,t+1-e.yearlen)&&!O(l,-e.nextyearlen+t-e.yearlen))}function mr(e,t){return new ae(e,t.tzid).rezonedDate()}function Ot(e){return e.getValue()}function La(e,t,r,n,i){for(var a=!1,o=t;o=v.HOURLY&&I(i)&&!O(i,t.hour)||n>=v.MINUTELY&&I(a)&&!O(a,t.minute)||n>=v.SECONDLY&&I(o)&&!O(o,t.second)?[]:e.gettimeset(n)(t.hour,t.minute,t.second,t.millisecond)}var et={MO:new W(0),TU:new W(1),WE:new W(2),TH:new W(3),FR:new W(4),SA:new W(5),SU:new W(6)},Pe={freq:D.YEARLY,dtstart:null,interval:1,wkst:et.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},Ba=Object.keys(Pe),v=function(){function e(t,r){t===void 0&&(t={}),r===void 0&&(r=!1),this._cache=r?null:new pa,this.origOptions=Yr(t);var n=la(t).parsedOptions;this.options=n}return e.parseText=function(t,r){return Cr(t,r)},e.fromText=function(t,r){return aa(t,r)},e.fromString=function(t){return new e(e.parseString(t)||void 0)},e.prototype._iter=function(t){return kr(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 cr("all",{},t));var r=this._cacheGet("all");return r===!1&&(r=this._iter(new Ct("all",{})),this._cacheAdd("all",r)),r},e.prototype.between=function(t,r,n,i){if(n===void 0&&(n=!1),!Wt(t)||!Wt(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 cr("between",a,i));var o=this._cacheGet("between",a);return o===!1&&(o=this._iter(new Ct("between",a)),this._cacheAdd("between",o,a)),o},e.prototype.before=function(t,r){if(r===void 0&&(r=!1),!Wt(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 Ct("before",n)),this._cacheAdd("before",i,n)),i},e.prototype.after=function(t,r){if(r===void 0&&(r=!1),!Wt(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 Ct("after",n)),this._cacheAdd("after",i,n)),i},e.prototype.count=function(){return this.all().length},e.prototype.toString=function(){return Oe(this.origOptions)},e.prototype.toText=function(t,r,n){return oa(this,t,r,n)},e.prototype.isFullyConvertibleToText=function(){return sa(this)},e.prototype.clone=function(){return new e(this.origOptions)},e.FREQUENCIES=["YEARLY","MONTHLY","WEEKLY","DAILY","HOURLY","MINUTELY","SECONDLY"],e.YEARLY=D.YEARLY,e.MONTHLY=D.MONTHLY,e.WEEKLY=D.WEEKLY,e.DAILY=D.DAILY,e.HOURLY=D.HOURLY,e.MINUTELY=D.MINUTELY,e.SECONDLY=D.SECONDLY,e.MO=et.MO,e.TU=et.TU,e.WE=et.WE,e.TH=et.TH,e.FR=et.FR,e.SA=et.SA,e.SU=et.SU,e.parseString=Ee,e.optionsToString=Oe,e}();function ja(e,t,r,n,i,a){var o={},s=e.accept;function u(h,f){r.forEach(function(y){y.between(h,f,!0).forEach(function(p){o[Number(p)]=!0})})}i.forEach(function(h){var f=new ae(h,a).rezonedDate();o[Number(f)]=!0}),e.accept=function(h){var f=Number(h);return isNaN(f)?s.call(this,h):!o[f]&&(u(new Date(f-1),new Date(f+1)),!o[f])?(o[f]=!0,s.call(this,h)):!0},e.method==="between"&&(u(e.args.after,e.args.before),e.accept=function(h){var f=Number(h);return o[f]?!0:(o[f]=!0,s.call(this,h))});for(var l=0;l1||i.length||a.length||o.length){var c=new Me(l);return c.dtstart(s),c.tzid(u||void 0),n.forEach(function(h){c.rrule(new v(xe(h,s,u),l))}),i.forEach(function(h){c.rdate(h)}),a.forEach(function(h){c.exrule(new v(xe(h,s,u),l))}),o.forEach(function(h){c.exdate(h)}),t.compatible&&t.dtstart&&c.rdate(s),c}var d=n[0]||{};return new v(xe(d,d.dtstart||t.dtstart||s,d.tzid||t.tzid||u),l)}function gr(e,t){return t===void 0&&(t={}),Wa(e,Fa(t))}function xe(e,t,r){return L(L({},e),{dtstart:t,tzid:r})}function Fa(e){var t=[],r=Object.keys(e),n=Object.keys(pr);if(r.forEach(function(i){O(n,i)||t.push(i)}),t.length)throw new Error("Invalid options: "+t.join(", "));return L(L({},pr),e)}function Ha(e){if(e.indexOf(":")===-1)return{name:"RRULE",value:e};var t=Ki(e,":",1),r=t[0],n=t[1];return{name:r,value:n}}function Va(e){var t=Ha(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 Ka(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=0;n0&&i[0]===" "?(r[n-1]+=i.slice(1),r.splice(n,1)):n+=1:r.splice(n,1)}return r}function qa(e){e.forEach(function(t){if(!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(t))throw new Error("unsupported RDATE/EXDATE parm: "+t)})}function br(e,t){return qa(t),e.split(",").map(function(r){return Ye(r)})}function wr(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;nUe(t)).join(",");if(e instanceof Date)return e.toISOString().replace(/[-:]/g,"").split(".")[0]+"Z";if(typeof e=="object"&&e!==null){let t=e.date||e.day||e.value;if(t!==void 0)return Ue(t)}return String(e)}async function Ga(e){let r=new TextEncoder().encode(e),n=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(n)).map(a=>a.toString(16).padStart(2,"0")).join("")}function Vt(e,t="America/Los_Angeles"){try{let r=e.toLocaleString("en-US",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1});console.log(`[iCalendar] Converting ${e.toISOString()} to ${t}: ${r}`);let n=r.match(/(\d{2})\/(\d{2})\/(\d{4}),\s*(\d{2}):(\d{2}):(\d{2})/);if(n){let[i,a,o,s,u,l,c]=n;return`${s}-${a}-${o}T${u}:${l}:${c}`}throw new Error("Failed to parse toLocaleString result")}catch(r){console.error(`[iCalendar] Error converting to timezone ${t}:`,r);let n=i=>String(i).padStart(2,"0");return e.getUTCFullYear()+"-"+n(e.getUTCMonth()+1)+"-"+n(e.getUTCDate())+"T"+n(e.getUTCHours())+":"+n(e.getUTCMinutes())+":"+n(e.getUTCSeconds())}}function Ie(e){if(e==null)return e;if(e instanceof Date)return e.toISOString();if(typeof e=="object"&&"date"in e&&e.date instanceof Date)return e.date.toISOString();if(typeof e=="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(e))try{return new Date(e).toISOString()}catch{return e}if(Array.isArray(e))return e.map(t=>Ie(t));if(typeof e=="object"){let t={};for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=Ie(e[r]));return t}return e}async function Ja(){try{let e=await qt.get("icalendar",{sources:[]});console.log("[iCalendar] Raw config retrieved:",JSON.stringify(e));let t=e.sources||[],r=e.syncWindowDays||365,n=e.displayTimezone||"America/Los_Angeles";if(t&&typeof t=="object"&&!Array.isArray(t)){let i=[];for(let a in t)t[a]&&typeof t[a].url=="string"&&i.push(t[a]);t=i}return{sources:t,syncWindowDays:r,displayTimezone:n}}catch(e){return console.error("[iCalendar] Error in getSources:",e),{sources:[],syncWindowDays:365,displayTimezone:"America/Los_Angeles"}}}function Qa(e,t=365,r="America/Los_Angeles",n=new Date){let i=e.rrule||e.recurrenceRule;if(!i)return[e];try{let a=new Me,o="";if(typeof i=="string")o=i.replace(/^RRULE:/i,"");else if(typeof i=="object"&&i!==null)o=Object.entries(i).map(([f,y])=>`${Za[f.toLowerCase()]||f.toUpperCase()}=${Ue(y)}`).join(";");else return console.warn(`[iCalendar] Invalid rrule type (${typeof i}) for event "${e.summary||"Untitled"}". Treating as non-recurring.`),[e];let s=new Date(e.start);if(isNaN(s.getTime()))return console.error(`[iCalendar] Invalid start date for recurrence: ${e.start}`),[e];let u=v.parseString(o);u.dtstart=s,a.rrule(new v(u));for(let f of e.exdate||[])a.exdate(new Date(f));let l=new Date(n.getTime()+t*864e5),c=a.between(s,l,!0),d=e.end?new Date(e.end).getTime()-s.getTime():0;return c.map(f=>{let y=d>0?new Date(f.getTime()+d):null;return{...e,start:f.toISOString(),startLocal:Vt(f,r),end:y?y.toISOString():void 0,endLocal:y?Vt(y,r):void 0,recurrent:!0,rrule:void 0}})}catch(a){return console.error(`[iCalendar] Error expanding recurrence for ${e.summary}:`,a),[e]}}async function Xa(e,t=365,r="America/Los_Angeles"){try{let n=await fetch(e.url);if(!n.ok)return console.error(`[iCalendar] Fetch failed for ${e.name}: ${n.status} ${n.statusText}`),[];let i=await n.text(),a=ht.parse(i),s=new ht.Component(a).getAllSubcomponents("vevent"),u=new Map;for(let c of s){let d=c.getFirstPropertyValue("recurrence-id"),h=c.getFirstPropertyValue("uid");d&&h&&(u.has(h)||u.set(h,new Set),u.get(h).add(d.toJSDate().toISOString()))}let l=[];for(let c of s){let d=new ht.Event(c),h=c.getFirstPropertyValue("status"),f=d.summary||"";if(h?.toUpperCase()==="CANCELLED"||f.toLowerCase().startsWith("canceled:")||f.toLowerCase().startsWith("cancelled:"))continue;let y=c.getAllProperties("attendee"),p=!1;for(let z of y)if(z.getParameter("partstat")?.toUpperCase()==="DECLINED"){p=!0;break}if(p)continue;let b=d.uid,S=d.description,M=d.location,J=c.getFirstPropertyValue("rrule"),at=c.getAllProperties("exdate").map(z=>z.getFirstValue().toJSDate().toISOString());if(b&&u.has(b)&&!c.getFirstPropertyValue("recurrence-id"))for(let z of u.get(b))at.push(z);let _t=d.startDate.toJSDate(),q=d.endDate?d.endDate.toJSDate():null,mt=d.startDate.timezone||"UTC",oe={uid:b,summary:f,name:f||"Untitled Event",description:S,location:M,start:_t.toISOString(),startLocal:Vt(_t,r),end:q?q.toISOString():void 0,endLocal:q?Vt(q,r):void 0,tag:"ical-event",sourceName:e.name,timezone:mt,rrule:J?J.toString():void 0,exdate:at.length>0?at:void 0};mt!=="UTC"&&mt!=="None"&&!Pr(mt)&&(oe.description=`(Warning: Unknown timezone "${mt}") ${oe.description||""}`);let jr=Qa(oe,t,r);for(let z of jr){let Le=`${z.start}${z.uid||""}${z.summary||""}`;z.ref=await Ga(Le);let Kt={start:z.start,startLocal:z.startLocal,end:z.end,endLocal:z.endLocal},Pt=Ie(z);Pt.start=Kt.start,Pt.startLocal=Kt.startLocal,Pt.end=Kt.end,Pt.endLocal=Kt.endLocal,l.push(Pt)}}return l}catch(n){return console.error(`[iCalendar] Error fetching/parsing ${e.name}:`,n.message||n,n.stack||""),[]}}async function Ne(){try{let{sources:e,syncWindowDays:t,displayTimezone:r}=await Ja();if(e.length===0)return;console.log(`[iCalendar] Using display timezone: ${r}`);let n=new Date("2026-02-21T14:00:00.000Z"),i=Vt(n,r);console.log(`[iCalendar] Timezone test: ${n.toISOString()} \u2192 ${i} (should be 06:00 PST)`),await ct.flashNotification("Syncing calendars...","info");let a=[];for(let o of e){let s=await Xa(o,t,r);a.push(...s)}await $t.indexObjects("$icalendar",a),await ct.flashNotification(`Synced ${a.length} events`,"info")}catch(e){console.error("[iCalendar] syncCalendars failed:",e)}}async function Ir(){await It.del(Ur),await Ne()}async function Nr(){if(!await ct.confirm("Clear all calendar events?"))return;let e=await Nt.query({prefix:["ridx","$icalendar"]}),t=[];for(let{key:r}of e)t.push(r),t.push(["idx",...r.slice(2),"$icalendar"]);t.length>0&&await Nt.batchDel(t),await It.del(Ur),await ct.flashNotification("Calendar index cleared","info")}async function Lr(){await ct.flashNotification(`iCalendar Plug ${Mr}`,"info")}var Rr={syncCalendars:Ne,forceSync:Ir,clearCache:Nr,showVersion:Lr},Br={name:"icalendar",version:"0.4.7",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:{}},ys={manifest:Br,functionMapping:Rr};ze(Rr,Br,self.postMessage);export{ys as plug}; +`)},t.prototype.clone=function(){var r=new t(!!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},t}(v);function Tr(e,t){if(!(e instanceof v))throw new TypeError(String(e)+" is not RRule instance");O(t.map(String),String(e))||t.push(e)}function vr(e,t){if(!(e instanceof Date))throw new TypeError(String(e)+" is not Date instance");O(t.map(Number),Number(e))||(t.push(e),Ht(t))}function Sr(e,t,r){var n=!r||r.toUpperCase()==="UTC",i=n?"".concat(e,":"):"".concat(e,";TZID=").concat(r,":"),a=t.map(function(o){return Ce(o.valueOf(),n)}).join(",");return"".concat(i).concat(a)}var $a={"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 Pr(e){return!e||e==="UTC"||e==="None"?"UTC":e.includes("/")?e:$a[e]??null}var Mr="0.4.8",Ur="icalendar:lastSync";console.log(`[iCalendar] Plug script executing at top level (Version ${Mr})`);var Za={frequency:"FREQ",until:"UNTIL",count:"COUNT",interval:"INTERVAL",bysecond:"BYSECOND",byminute:"BYMINUTE",byhour:"BYHOUR",byday:"BYDAY",bymonthday:"BYMONTHDAY",byyearday:"BYYEARDAY",byweekno:"BYWEEKNO",bymonth:"BYMONTH",bysetpos:"BYSETPOS",wkst:"WKST",workweekstart:"WKST",freq:"FREQ"};function Ue(e){if(Array.isArray(e))return e.map(t=>Ue(t)).join(",");if(e instanceof Date)return e.toISOString().replace(/[-:]/g,"").split(".")[0]+"Z";if(typeof e=="object"&&e!==null){let t=e.date||e.day||e.value;if(t!==void 0)return Ue(t)}return String(e)}async function Ga(e){let r=new TextEncoder().encode(e),n=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(n)).map(a=>a.toString(16).padStart(2,"0")).join("")}function Vt(e,t="America/Los_Angeles"){try{let r=e.toLocaleString("en-US",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1});console.log(`[iCalendar] Converting ${e.toISOString()} to ${t}: ${r}`);let n=r.match(/(\d{2})\/(\d{2})\/(\d{4}),\s*(\d{2}):(\d{2}):(\d{2})/);if(n){let[i,a,o,s,u,l,c]=n;return`${s}-${a}-${o}T${u}:${l}:${c}`}throw new Error("Failed to parse toLocaleString result")}catch(r){console.error(`[iCalendar] Error converting to timezone ${t}:`,r);let n=i=>String(i).padStart(2,"0");return e.getUTCFullYear()+"-"+n(e.getUTCMonth()+1)+"-"+n(e.getUTCDate())+"T"+n(e.getUTCHours())+":"+n(e.getUTCMinutes())+":"+n(e.getUTCSeconds())}}function Ne(e){if(e==null)return e;if(e instanceof Date)return e.toISOString();if(typeof e=="object"&&"date"in e&&e.date instanceof Date)return e.date.toISOString();if(typeof e=="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(e))try{return new Date(e).toISOString()}catch{return e}if(Array.isArray(e))return e.map(t=>Ne(t));if(typeof e=="object"){let t={};for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=Ne(e[r]));return t}return e}async function Ja(){try{let e=await qt.get("icalendar",{sources:[]});console.log("[iCalendar] Raw config retrieved:",JSON.stringify(e));let t=e.sources||[],r=e.syncWindowDays||365,n=e.displayTimezone||"America/Los_Angeles";if(t&&typeof t=="object"&&!Array.isArray(t)){let i=[];for(let a in t)t[a]&&typeof t[a].url=="string"&&i.push(t[a]);t=i}return{sources:t,syncWindowDays:r,displayTimezone:n}}catch(e){return console.error("[iCalendar] Error in getSources:",e),{sources:[],syncWindowDays:365,displayTimezone:"America/Los_Angeles"}}}function Qa(e,t=365,r="America/Los_Angeles",n=new Date){let i=e.rrule||e.recurrenceRule;if(!i)return[e];try{let a=new Me,o="";if(typeof i=="string")o=i.replace(/^RRULE:/i,"");else if(typeof i=="object"&&i!==null)o=Object.entries(i).map(([f,y])=>`${Za[f.toLowerCase()]||f.toUpperCase()}=${Ue(y)}`).join(";");else return console.warn(`[iCalendar] Invalid rrule type (${typeof i}) for event "${e.summary||"Untitled"}". Treating as non-recurring.`),[e];let s=new Date(e.start);if(isNaN(s.getTime()))return console.error(`[iCalendar] Invalid start date for recurrence: ${e.start}`),[e];let u=v.parseString(o);u.dtstart=s,a.rrule(new v(u));for(let f of e.exdate||[])a.exdate(new Date(f));let l=new Date(n.getTime()+t*864e5),c=a.between(s,l,!0),d=e.end?new Date(e.end).getTime()-s.getTime():0;return c.map(f=>{let y=d>0?new Date(f.getTime()+d):null;return{...e,start:f.toISOString(),startLocal:Vt(f,r),end:y?y.toISOString():void 0,endLocal:y?Vt(y,r):void 0,recurrent:!0,rrule:void 0}})}catch(a){return console.error(`[iCalendar] Error expanding recurrence for ${e.summary}:`,a),[e]}}async function Xa(e,t=365,r="America/Los_Angeles"){try{let n=await fetch(e.url);if(!n.ok)return console.error(`[iCalendar] Fetch failed for ${e.name}: ${n.status} ${n.statusText}`),[];let i=await n.text(),a=ht.parse(i),s=new ht.Component(a).getAllSubcomponents("vevent"),u=new Map;for(let c of s){let d=c.getFirstPropertyValue("recurrence-id"),h=c.getFirstPropertyValue("uid");d&&h&&(u.has(h)||u.set(h,new Set),u.get(h).add(d.toJSDate().toISOString()))}let l=[];for(let c of s){let d=new ht.Event(c),h=c.getFirstPropertyValue("status"),f=d.summary||"";if(h?.toUpperCase()==="CANCELLED"||f.toLowerCase().startsWith("canceled:")||f.toLowerCase().startsWith("cancelled:"))continue;let y=c.getAllProperties("attendee"),p=!1;for(let z of y)if(z.getParameter("partstat")?.toUpperCase()==="DECLINED"){p=!0;break}if(p)continue;let b=d.uid,S=d.description,M=d.location,J=c.getFirstPropertyValue("rrule"),at=c.getAllProperties("exdate").map(z=>z.getFirstValue().toJSDate().toISOString());if(b&&u.has(b)&&!c.getFirstPropertyValue("recurrence-id"))for(let z of u.get(b))at.push(z);let _t=d.startDate.toJSDate(),q=d.endDate?d.endDate.toJSDate():null,mt=d.startDate.timezone||"UTC",oe={uid:b,summary:f,name:f||"Untitled Event",description:S,location:M,start:_t.toISOString(),startLocal:Vt(_t,r),end:q?q.toISOString():void 0,endLocal:q?Vt(q,r):void 0,tag:"ical-event",sourceName:e.name,timezone:mt,rrule:J?J.toString():void 0,exdate:at.length>0?at:void 0};mt!=="UTC"&&mt!=="None"&&!Pr(mt)&&(oe.description=`(Warning: Unknown timezone "${mt}") ${oe.description||""}`);let jr=Qa(oe,t,r);for(let z of jr){let Le=`${z.start}${z.uid||""}${z.summary||""}`;z.ref=await Ga(Le);let Kt={start:z.start,startLocal:z.startLocal,end:z.end,endLocal:z.endLocal},Pt=Ne(z);Pt.start=Kt.start,Pt.startLocal=Kt.startLocal,Pt.end=Kt.end,Pt.endLocal=Kt.endLocal,l.push(Pt)}}return l}catch(n){return console.error(`[iCalendar] Error fetching/parsing ${e.name}:`,n.message||n,n.stack||""),[]}}async function Ie(){try{let{sources:e,syncWindowDays:t,displayTimezone:r}=await Ja();if(e.length===0)return;console.log(`[iCalendar] Using display timezone: ${r}`);let n=new Date("2026-02-21T14:00:00.000Z"),i=Vt(n,r);console.log(`[iCalendar] Timezone test: ${n.toISOString()} \u2192 ${i} (should be 06:00 PST)`),await ct.flashNotification("Syncing calendars...","info");let a=[];for(let o of e){let s=await Xa(o,t,r);a.push(...s)}await $t.indexObjects("$icalendar",a),await ct.flashNotification(`Synced ${a.length} events`,"info")}catch(e){console.error("[iCalendar] syncCalendars failed:",e)}}async function Nr(){await Nt.del(Ur),await Ie()}async function Ir(){if(!await ct.confirm("Clear all calendar events?"))return;let e=await It.query({prefix:["ridx","$icalendar"]}),t=[];for(let{key:r}of e)t.push(r),t.push(["idx",...r.slice(2),"$icalendar"]);t.length>0&&await It.batchDel(t),await Nt.del(Ur),await ct.flashNotification("Calendar index cleared","info")}async function Lr(){await ct.flashNotification(`iCalendar Plug ${Mr}`,"info")}var Rr={syncCalendars:Ie,forceSync:Nr,clearCache:Ir,showVersion:Lr},Br={name:"icalendar",version:"0.4.8",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:{}},ys={manifest:Br,functionMapping:Rr};ze(Rr,Br,self.postMessage);export{ys as plug}; //# sourceMappingURL=icalendar.plug.js.map diff --git a/icalendar.plug.js.map b/icalendar.plug.js.map index 8918826..59bc4b7 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/ical.js@2.0.1/denonext/ical.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/2268dc645db0b108.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 - ical.js@2.0.1 */\nvar ee=class r{static fromString(e){return new r(e)}constructor(e){this.value=e}icaltype=\"binary\";decodeValue(){return this._b64_decode(this.value)}setEncodedValue(e){this.value=this._b64_encode(e)}_b64_encode(e){let t,i,n,s,a,o,l,h,u=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",c=0,d=0,p=\"\",y=[];if(!e)return e;do t=e.charCodeAt(c++),i=e.charCodeAt(c++),n=e.charCodeAt(c++),h=t<<16|i<<8|n,s=h>>18&63,a=h>>12&63,o=h>>6&63,l=63&h,y[d++]=u.charAt(s)+u.charAt(a)+u.charAt(o)+u.charAt(l);while(c>16&255,i=h>>8&255,n=255&h,y[d++]=o==64?String.fromCharCode(t):l==64?String.fromCharCode(t,i):String.fromCharCode(t,i,n);while(ci)-(t12||(i=[0,31,28,31,30,31,30,31,31,30,31,30,31][e],e==2&&(i+=r.isLeapYear(t))),i}static isLeapYear(e){return e<=1752?e%4==0:e%4==0&&e%100!=0||e%400==0}static fromDayOfYear(e,t){let i=t,n=e,s=new r;s.auto_normalize=!1;let a=r.isLeapYear(i)?1:0;if(n<1)return i--,a=r.isLeapYear(i)?1:0,n+=r.daysInYearPassedMonth[a][12],r.fromDayOfYear(n,i);if(n>r.daysInYearPassedMonth[a][12])return a=r.isLeapYear(i)?1:0,n-=r.daysInYearPassedMonth[a][12],i++,r.fromDayOfYear(n,i);s.year=i,s.isDate=!0;for(let o=11;o>=0;o--)if(n>r.daysInYearPassedMonth[a][o]){s.month=o+1,s.day=n-r.daysInYearPassedMonth[a][o];break}return s.auto_normalize=!0,s}static fromStringv2(e){return new r({year:parseInt(e.slice(0,4),10),month:parseInt(e.slice(5,7),10),day:parseInt(e.slice(8,10),10),isDate:!0})}static fromDateString(e){return new r({year:S(e.slice(0,4)),month:S(e.slice(5,7)),day:S(e.slice(8,10)),isDate:!0})}static fromDateTimeString(e,t){if(e.length<19)throw new Error('invalid date-time value: \"'+e+'\"');let i,n;e[19]&&e[19]===\"Z\"?i=_.utcTimezone:t&&(n=t.getParameter(\"tzid\"),t.parent&&(t.parent.name===\"standard\"||t.parent.name===\"daylight\"?i=_.localTimezone:n&&(i=t.parent.getTimeZoneByID(n))));let s={year:S(e.slice(0,4)),month:S(e.slice(5,7)),day:S(e.slice(8,10)),hour:S(e.slice(11,13)),minute:S(e.slice(14,16)),second:S(e.slice(17,19))};return n&&!i&&(s.timezone=n),new r(s,i)}static fromString(e,t){return e.length>10?r.fromDateTimeString(e,t):r.fromDateString(e)}static fromJSDate(e,t){return new r().fromJSDate(e,t)}static fromData=function(e,t){return new r().fromData(e,t)};static now(){return r.fromJSDate(new Date,!1)}static weekOneStarts(e,t){let i=r.fromData({year:e,month:1,day:1,isDate:!0}),n=i.dayOfWeek(),s=t||r.DEFAULT_WEEK_START;return n>r.THURSDAY&&(i.day+=7),s>r.THURSDAY&&(i.day-=7),i.day-=n-s,i}static getDominicalLetter(e){let t=\"GFEDCBA\",i=(e+(e/4|0)+(e/400|0)-(e/100|0)-1)%7;return r.isLeapYear(e)?t[(i+6)%7]+t[i]:t[i]}static#e=null;static get epochTime(){return this.#e||(this.#e=r.fromData({year:1970,month:1,day:1,hour:0,minute:0,second:0,isDate:!1,timezone:\"Z\"})),this.#e}static _cmp_attr(e,t,i){return e[i]>t[i]?1:e[i]=0){o.day=1,s!=0&&s--,a=o.day;let l=e-o.dayOfWeek();l<0&&(l+=7),a+=l,a-=e,i=e}else o.day=n,s++,i=o.dayOfWeek()-e,i<0&&(i+=7),i=n-i;return i+=7*s,a+i}isNthWeekDay(e,t){let i=this.dayOfWeek();return t===0&&i===e||this.nthWeekDay(e,t)===this.day}weekNumber(e){let t,i=(this.year<<12)+(this.month<<8)+(this.day<<3)+e;if(i in r._wnCache)return r._wnCache[i];let n=this.clone();n.isDate=!0;let s=this.year;n.month==12&&n.day>25?(t=r.weekOneStarts(s+1,e),n.compare(t)<0?t=r.weekOneStarts(s,e):s++):(t=r.weekOneStarts(s,e),n.compare(t)<0&&(t=r.weekOneStarts(--s,e)));let a=O(n.subtractDate(t).toSeconds()/86400/7)+1;return r._wnCache[i]=a,a}addDuration(e){let t=e.isNegative?-1:1,i=this.second,n=this.minute,s=this.hour,a=this.day;i+=t*e.seconds,n+=t*e.minutes,s+=t*e.hours,a+=t*e.days,a+=7*t*e.weeks,this.second=i,this.minute=n,this.hour=s,this.day=a,this._cachedUnixTime=null}subtractDate(e){let t=this.toUnixTime()+this.utcOffset(),i=e.toUnixTime()+e.utcOffset();return v.fromSeconds(t-i)}subtractDateTz(e){let t=this.toUnixTime(),i=e.toUnixTime();return v.fromSeconds(t-i)}compare(e){let t=this.toUnixTime(),i=e.toUnixTime();return t>i?1:i>t?-1:0}compareDateOnlyTz(e,t){let i=this.convertToZone(t),n=e.convertToZone(t),s=0;return(s=r._cmp_attr(i,n,\"year\"))!=0||(s=r._cmp_attr(i,n,\"month\"))!=0||(s=r._cmp_attr(i,n,\"day\")),s}convertToZone(e){let t=this.clone(),i=this.zone.tzid==e.tzid;return this.isDate||i||_.convert_time(t,this.zone,e),t.zone=e,t}utcOffset(){return this.zone==_.localTimezone||this.zone==_.utcTimezone?0:this.zone.utcOffset(this)}toICALString(){let e=this.toString();return e.length>10?b.icalendar.value[\"date-time\"].toICAL(e):b.icalendar.value.date.toICAL(e)}toString(){let e=this.year+\"-\"+x(this.month)+\"-\"+x(this.day);return this.isDate||(e+=\"T\"+x(this.hour)+\":\"+x(this.minute)+\":\"+x(this.second),this.zone===_.utcTimezone&&(e+=\"Z\")),e}toJSDate(){return this.zone==_.localTimezone?this.isDate?new Date(this.year,this.month-1,this.day):new Date(this.year,this.month-1,this.day,this.hour,this.minute,this.second,0):new Date(1e3*this.toUnixTime())}_normalize(){return this._time.isDate&&(this._time.hour=0,this._time.minute=0,this._time.second=0),this.adjust(0,0,0,0),this}adjust(e,t,i,n,s){let a,o,l,h,u,c,d,p=0,y=0,m=s||this._time;if(m.isDate||(l=m.second+n,m.second=l%60,a=O(l/60),m.second<0&&(m.second+=60,a--),h=m.minute+i+a,m.minute=h%60,o=O(h/60),m.minute<0&&(m.minute+=60,o--),u=m.hour+t+o,m.hour=u%24,p=O(u/24),m.hour<0&&(m.hour+=24,p--)),m.month>12?y=O((m.month-1)/12):m.month<1&&(y=O(m.month/12)-1),m.year+=y,m.month-=12*y,c=m.day+e+p,c>0)for(;d=r.daysInMonth(m.month,m.year),!(c<=d);)m.month++,m.month>12&&(m.year++,m.month=1),c-=d;else for(;c<=0;)m.month==1?(m.year--,m.month=12):m.month--,c+=r.daysInMonth(m.month,m.year);return m.day=c,this._cachedUnixTime=null,this}fromUnixTime(e){this.zone=_.utcTimezone;let t=new Date(1e3*e);this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this._time.isDate?(this.hour=0,this.minute=0,this.second=0):(this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()),this._cachedUnixTime=null}toUnixTime(){if(this._cachedUnixTime!==null)return this._cachedUnixTime;let e=this.utcOffset(),t=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second-e);return this._cachedUnixTime=t/1e3,this._cachedUnixTime}toJSON(){let e,t=[\"year\",\"month\",\"day\",\"hour\",\"minute\",\"second\",\"isDate\"],i=Object.create(null),n=0,s=t.length;for(;n1)throw new k(\"invalid ical body. component began but did not end\");return e=null,t.length==1?t[0]:t}D.property=function(r,e){let t={component:[[],[]],designSet:e||b.defaultSet};return D._handleContentLine(r,t),t.component[1][0]},D.component=function(r){return D(r)};var k=class extends Error{constructor(e){super(e),this.name=this.constructor.name;try{throw new Error}catch(t){if(t.stack){let i=t.stack.split(`\n`);i.shift(),this.stack=i.join(`\n`)}}}};D.ParserError=k,D._handleContentLine=function(r,e){let t,i,n,s,a,o,l=r.indexOf(\":\"),h=r.indexOf(\";\"),u={};if(h!==-1&&l!==-1&&h>l&&(h=-1),h!==-1){if(n=r.slice(0,Math.max(0,h)).toLowerCase(),a=D._parseParameters(r.slice(Math.max(0,h)),0,e.designSet),a[2]==-1)throw new k(\"Invalid parameters in '\"+r+\"'\");if(u=a[0],t=a[1].length+a[2]+h,(i=r.slice(Math.max(0,t)).indexOf(\":\"))===-1)throw new k(\"Missing parameter value in '\"+r+\"'\");s=r.slice(Math.max(0,t+i+1))}else{if(l===-1)throw new k('invalid line (no token \";\" or \":\") \"'+r+'\"');if(n=r.slice(0,Math.max(0,l)).toLowerCase(),s=r.slice(Math.max(0,l+1)),n===\"begin\"){let E=[s.toLowerCase(),[],[]];return e.stack.length===1?e.component.push(E):e.component[2].push(E),e.stack.push(e.component),e.component=E,void(e.designSet||(e.designSet=b.getDesignSet(e.component[0])))}if(n===\"end\")return void(e.component=e.stack.pop())}let c,d,p,y,m=!1,A=!1;e.designSet.propertyGroups&&n.indexOf(\".\")!==-1?(d=n.split(\".\"),u.group=d[0],p=d[1]):p=n,p in e.designSet.property&&(c=e.designSet.property[p],\"multiValue\"in c&&(m=c.multiValue),\"structuredValue\"in c&&(A=c.structuredValue),s&&\"detectType\"in c&&(o=c.detectType(s))),o||(o=\"value\"in u?u.value.toLowerCase():c?c.defaultType:\"unknown\"),delete u.value,m&&A?(s=D._parseMultiValue(s,A,o,[],m,e.designSet,A),y=[p,u,o,s]):m?(y=[p,u,o],D._parseMultiValue(s,m,o,y,null,e.designSet,!1)):A?(s=D._parseMultiValue(s,A,o,[],null,e.designSet,A),y=[p,u,o,s]):(s=D._parseValue(s,o,e.designSet,!1),y=[p,u,o,s]),e.component[0]!==\"vcard\"||e.component[1].length!==0||n===\"version\"&&s===\"4.0\"||(e.designSet=b.getDesignSet(\"vcard3\")),e.component[1].push(y)},D._parseValue=function(r,e,t,i){return e in t.value&&\"fromICAL\"in t.value[e]?t.value[e].fromICAL(r,i):r},D._parseParameters=function(r,e,t){let i,n,s,a,o,l,h=e,u=0,c={},d=-1;for(;u!==!1&&(u=M(r,\"=\",u+1))!==-1;){if(i=r.slice(h+1,u),i.length==0)throw new k(\"Empty parameter name in '\"+r+\"'\");if(n=i.toLowerCase(),l=!1,o=!1,a=n in t.param&&t.param[n].valueType?t.param[n].valueType:\"text\",n in t.param&&(o=t.param[n].multiValue,t.param[n].multiValueSeparateDQuote&&(l=D._rfc6868Escape('\"'+o+'\"'))),r[u+1]==='\"'){if(d=u+2,u=M(r,'\"',d),o&&u!=-1){let p=!0;for(;p;)r[u+1]==o&&r[u+2]=='\"'?u=M(r,'\"',u+3):p=!1}if(u===-1)throw new k('invalid line (no matching double quote) \"'+r+'\"');s=r.slice(d,u),h=M(r,\";\",u),h===-1&&(u=!1)}else{d=u+1;let p=M(r,\";\",d),y=M(r,\":\",d);y!==-1&&p>y?(p=y,u=!1):p===-1?(p=y===-1?r.length:y,u=!1):(h=p,u=p),s=r.slice(d,p)}if(s=D._rfc6868Escape(s),o){let p=l||o;s=D._parseMultiValue(s,p,a,[],null,t)}else s=D._parseValue(s,a,t);o&&n in c?Array.isArray(c[n])?c[n].push(s):c[n]=[c[n],s]:c[n]=s}return[c,s,d]},D._rfc6868Escape=function(r){return r.replace(/\\^['n^]/g,(function(e){return xe[e]}))},D._parseMultiValue=function(r,e,t,i,n,s,a){let o,l=0,h=0;if(e.length===0)return r;for(;(l=M(r,e,h))!==-1;)o=r.slice(h,l),o=n?D._parseMultiValue(o,n,t,[],null,s,a):D._parseValue(o,t,s,a),i.push(o),h=l+e.length;return o=r.slice(h),o=n?D._parseMultiValue(o,n,t,[],null,s,a):D._parseValue(o,t,s,a),i.push(o),i.length==1?i[0]:i},D._eachLine=function(r,e){let t,i,n,s=r.length,a=r.search(we),o=a;do o=r.indexOf(`\n`,a)+1,n=o>1&&r[o-2]===\"\\r\"?2:1,o===0&&(o=s,n=0),i=r[a],i===\" \"||i===\"\t\"?t+=r.slice(a+1,o-n):(t&&e(null,t),t=r.slice(a,o-n)),a=o;while(o!==s);t=t.trim(),t.length&&e(null,t)};var ve=[\"tzid\",\"location\",\"tznames\",\"latitude\",\"longitude\"],_=class r{static _compare_change_fn(e,t){return e.yeart.year?1:e.montht.month?1:e.dayt.day?1:e.hourt.hour?1:e.minutet.minute?1:e.secondt.second?1:0}static convert_time(e,t,i){if(e.isDate||t.tzid==i.tzid||t==r.localTimezone||i==r.localTimezone)return e.zone=i,e;let n=t.utcOffset(e);return e.adjust(0,0,0,-n),n=i.utcOffset(e),e.adjust(0,0,0,n),null}static fromData(e){return new r().fromData(e)}static#e=null;static get utcTimezone(){return this.#e||(this.#e=r.fromData({tzid:\"UTC\"})),this.#e}static#t=null;static get localTimezone(){return this.#t||(this.#t=r.fromData({tzid:\"floating\"})),this.#t}static adjust_change(e,t,i,n,s){return f.prototype.adjust.call(e,t,i,n,s,e)}static _minimumExpansionYear=-1;static EXTRA_COVERAGE=5;constructor(e){this.wrappedJSObject=this,this.fromData(e)}tzid=\"\";location=\"\";tznames=\"\";latitude=0;longitude=0;component=null;expandedUntilYear=0;icalclass=\"icaltimezone\";fromData(e){if(this.expandedUntilYear=0,this.changes=[],e instanceof N)this.component=e;else{if(e&&\"component\"in e)if(typeof e.component==\"string\"){let t=D(e.component);this.component=new N(t)}else e.component instanceof N?this.component=e.component:this.component=null;for(let t of ve)e&&t in e&&(this[t]=e[t])}return this.component instanceof N&&!this.tzid&&(this.tzid=this.component.getFirstPropertyValue(\"tzid\")),this}utcOffset(e){if(this==r.utcTimezone||this==r.localTimezone||(this._ensureCoverage(e.year),!this.changes.length))return 0;let t={year:e.year,month:e.month,day:e.day,hour:e.hour,minute:e.minute,second:e.second},i=this._findNearbyChange(t),n=-1,s=1;for(;;){let o=W(this.changes[i],!0);if(o.utcOffset=0?n=i:s=-1,s==-1&&n!=-1)break;if(i+=s,i<0)return 0;if(i>=this.changes.length)break}let a=this.changes[n];if(a.utcOffset-a.prevUtcOffset<0&&n>0){let o=W(a,!0);if(r.adjust_change(o,0,0,0,o.prevUtcOffset),r._compare_change_fn(t,o)<0){let l=this.changes[n-1],h=!1;a.is_daylight!=h&&l.is_daylight==h&&(a=l)}}return a.utcOffset}_findNearbyChange(e){let t=H(this.changes,e,r._compare_change_fn);return t>=this.changes.length?this.changes.length-1:t}_ensureCoverage(e){if(r._minimumExpansionYear==-1){let i=f.now();r._minimumExpansionYear=i.year}let t=e;if(tt)&&u);)n.year=u.year,n.month=u.month,n.day=u.day,n.hour=u.hour,n.minute=u.minute,n.second=u.second,n.isDate=u.isDate,r.adjust_change(n,0,0,0,-n.prevUtcOffset),i.push(n)}}else n=o(),n.year=s.year,n.month=s.month,n.day=s.day,n.hour=s.hour,n.minute=s.minute,n.second=s.second,r.adjust_change(n,0,0,0,-n.prevUtcOffset),i.push(n);return i}toString(){return this.tznames?this.tznames:this.tzid}},C=null,te={get count(){return C===null?0:Object.keys(C).length},reset:function(){C=Object.create(null);let r=_.utcTimezone;C.Z=r,C.UTC=r,C.GMT=r},has:function(r){return C!==null&&!!C[r]},get:function(r){return C===null&&this.reset(),C[r]},register:function(r,e){if(C===null&&this.reset(),r instanceof N&&r.name===\"vtimezone\"&&(r=(e=new _(r)).tzid),!(e instanceof _))throw new TypeError(\"timezone must be ICAL.Timezone or ICAL.Component\");C[r]=e},remove:function(r){return C===null?null:delete C[r]}};function q(r){return typeof r==\"number\"&&isNaN(r)}function S(r){let e=parseInt(r,10);if(q(e))throw new Error('Could not extract integer from \"'+r+'\"');return e}function P(r,e){if(r!==void 0)return r instanceof e?r:new e(r)}function M(r,e,t){for(;(t=r.indexOf(e,t))!==-1;){if(!(t>0&&r[t-1]===\"\\\\\"))return t;t+=1}return-1}function H(r,e,t){if(!r.length)return 0;let i,n,s=0,a=r.length-1;for(;s<=a;)if(i=s+Math.floor((a-s)/2),n=t(e,r[i]),n<0)a=i-1;else{if(!(n>0))break;s=i+1}return n<0?i:n>0?i+1:i}function W(r,e){if(r&&typeof r==\"object\"){if(r instanceof Date)return new Date(r.getTime());if(\"clone\"in r)return r.clone();if(Array.isArray(r)){let t=[];for(let i=0;i65535?2:1:(e+=le.newLineChar+\" \"+t.slice(0,Math.max(0,i)),t=t.slice(Math.max(0,i)),i=n=0)}return e.slice(le.newLineChar.length+1)}function x(r){switch(typeof r!=\"string\"&&(typeof r==\"number\"&&(r=parseInt(r)),r=String(r)),r.length){case 0:return\"00\";case 1:return\"0\"+r;default:return r}}function O(r){return r<0?Math.ceil(r):Math.floor(r)}function F(r,e){for(let t in r){let i=Object.getOwnPropertyDescriptor(r,t);i&&!Object.getOwnPropertyDescriptor(e,t)&&Object.defineProperty(e,t,i)}return e}var Ne=Object.freeze({__proto__:null,updateTimezones:function(r){let e,t,i,n,s;if(!r||r.name!==\"vcalendar\")return r;for(e=r.getAllSubcomponents(),t=[],i={},s=0;si)-(i>t)}_normalize(){let e=this.toSeconds(),t=this.factor;for(;e<-43200;)e+=97200;for(;e>50400;)e-=97200;this.fromSeconds(e),e==0&&(this.factor=t)}toICALString(){return b.icalendar.value[\"utc-offset\"].toICAL(this.toString())}toString(){return(this.factor==1?\"+\":\"-\")+x(this.hours)+\":\"+x(this.minutes)}},V=class r extends f{static fromDateAndOrTimeString(e,t){function i(m,A,E){return m?S(m.slice(A,A+E)):null}let n=e.split(\"T\"),s=n[0],a=n[1],o=a?b.vcard.value.time._splitZone(a):[],l=o[0],h=o[1],u=s?s.length:0,c=h?h.length:0,d=s&&s[0]==\"-\"&&s[1]==\"-\",p=h&&h[0]==\"-\",y={year:d?null:i(s,0,4),month:!d||u!=4&&u!=7?u==7||u==10?i(s,5,2):null:i(s,2,2),day:u==5?i(s,3,2):u==7&&d?i(s,5,2):u==10?i(s,8,2):null,hour:p?null:i(h,0,2),minute:p&&c==3?i(h,1,2):c>4?i(h,p?1:3,2):null,second:c==4?i(h,2,2):c==6?i(h,4,2):c==8?i(h,6,2):null};return l=l==\"Z\"?_.utcTimezone:l&&l[3]==\":\"?U.fromString(l):null,new r(y,l,t)}constructor(e,t,i){super(e,t),this.icaltype=i||\"date-and-or-time\"}icalclass=\"vcardtime\";icaltype=\"date-and-or-time\";clone(){return new r(this._time,this.zone,this.icaltype)}_normalize(){return this}utcOffset(){return this.zone instanceof U?this.zone.toSeconds():f.prototype.utcOffset.apply(this,arguments)}toICALString(){return b.vcard.value[this.icaltype].toICAL(this.toString())}toString(){let e,t=this.year,i=this.month,n=this.day,s=this.hour,a=this.minute,o=this.second,l=i!==null,h=n!==null,u=s!==null,c=a!==null,d=o!==null,p=(t!==null?x(t)+(l||h?\"-\":\"\"):l||h?\"--\":\"\")+(l?x(i):\"\")+(h?\"-\"+x(n):\"\"),y=(u?x(s):\"-\")+(u&&c?\":\":\"\")+(c?x(a):\"\")+(u||c?\"\":\"-\")+(c&&d?\":\":\"\")+(d?x(o):\"\");switch(this.zone===_.utcTimezone?e=\"Z\":this.zone instanceof U?e=this.zone.toString():this.zone===_.localTimezone?e=\"\":this.zone instanceof _?e=U.fromSeconds(this.zone.utcOffset(this)).toString():e=\"\",this.icaltype){case\"time\":return y+e;case\"date-and-or-time\":case\"date-time\":return p+(y==\"--\"?\"\":\"T\"+y+e);case\"date\":return p}return null}},J=class r{static _indexMap={BYSECOND:0,BYMINUTE:1,BYHOUR:2,BYDAY:3,BYMONTHDAY:4,BYYEARDAY:5,BYWEEKNO:6,BYMONTH:7,BYSETPOS:8};static _expandMap={SECONDLY:[1,1,1,1,1,1,1,1],MINUTELY:[2,1,1,1,1,1,1,1],HOURLY:[2,2,1,1,1,1,1,1],DAILY:[2,2,2,1,1,1,1,1],WEEKLY:[2,2,2,2,3,3,1,1],MONTHLY:[2,2,2,2,2,3,3,1],YEARLY:[2,2,2,2,2,2,2,2]};static UNKNOWN=0;static CONTRACT=1;static EXPAND=2;static ILLEGAL=3;constructor(e){this.fromData(e)}completed=!1;rule=null;dtstart=null;last=null;occurrence_number=0;by_indices=null;initialized=!1;by_data=null;days=null;days_index=0;fromData(e){if(this.rule=P(e.rule,z),!this.rule)throw new Error(\"iterator requires a (ICAL.Recur) rule\");if(this.dtstart=P(e.dtstart,f),!this.dtstart)throw new Error(\"iterator requires a (ICAL.Time) dtstart\");e.by_data?this.by_data=e.by_data:this.by_data=W(this.rule.parts,!0),e.occurrence_number&&(this.occurrence_number=e.occurrence_number),this.days=e.days||[],e.last&&(this.last=P(e.last,f)),this.by_indices=e.by_indices,this.by_indices||(this.by_indices={BYSECOND:0,BYMINUTE:0,BYHOUR:0,BYDAY:0,BYMONTH:0,BYWEEKNO:0,BYMONTHDAY:0}),this.initialized=e.initialized||!1,this.initialized||this.init()}init(){this.initialized=!0,this.last=this.dtstart.clone();let e=this.by_data;if(\"BYDAY\"in e&&this.sort_byday_rules(e.BYDAY),\"BYYEARDAY\"in e&&(\"BYMONTH\"in e||\"BYWEEKNO\"in e||\"BYMONTHDAY\"in e||\"BYDAY\"in e))throw new Error(\"Invalid BYYEARDAY rule\");if(\"BYWEEKNO\"in e&&\"BYMONTHDAY\"in e)throw new Error(\"BYWEEKNO does not fit to BYMONTHDAY\");if(this.rule.freq==\"MONTHLY\"&&(\"BYYEARDAY\"in e||\"BYWEEKNO\"in e))throw new Error(\"For MONTHLY recurrences neither BYYEARDAY nor BYWEEKNO may appear\");if(this.rule.freq==\"WEEKLY\"&&(\"BYYEARDAY\"in e||\"BYMONTHDAY\"in e))throw new Error(\"For WEEKLY recurrences neither BYMONTHDAY nor BYYEARDAY may appear\");if(this.rule.freq!=\"YEARLY\"&&\"BYYEARDAY\"in e)throw new Error(\"BYYEARDAY may only appear in YEARLY rules\");this.last.second=this.setup_defaults(\"BYSECOND\",\"SECONDLY\",this.dtstart.second),this.last.minute=this.setup_defaults(\"BYMINUTE\",\"MINUTELY\",this.dtstart.minute),this.last.hour=this.setup_defaults(\"BYHOUR\",\"HOURLY\",this.dtstart.hour);let t=this.last.day=this.setup_defaults(\"BYMONTHDAY\",\"DAILY\",this.dtstart.day);if(this.last.month=this.setup_defaults(\"BYMONTH\",\"MONTHLY\",this.dtstart.month),this.rule.freq==\"WEEKLY\")if(\"BYDAY\"in e){let[,i]=this.ruleDayOfWeek(e.BYDAY[0],this.rule.wkst),n=i-this.last.dayOfWeek(this.rule.wkst);(this.last.dayOfWeek(this.rule.wkst)=0||n<0)&&(this.last.day+=n)}else{let i=z.numericDayToIcalDay(this.dtstart.dayOfWeek());e.BYDAY=[i]}if(this.rule.freq==\"YEARLY\"){for(;this.expand_year_days(this.last.year),!(this.days.length>0);)this.increment_year(this.rule.interval);this._nextByYearDay()}if(this.rule.freq==\"MONTHLY\"&&this.has_by_data(\"BYDAY\")){let i=null,n=this.last.clone(),s=f.daysInMonth(this.last.month,this.last.year);for(let a of this.by_data.BYDAY){this.last=n.clone();let[o,l]=this.ruleDayOfWeek(a),h=this.last.nthWeekDay(l,o);if(o>=6||o<=-6)throw new Error(\"Malformed values in BYDAY part\");if(h>s||h<=0){if(i&&i.month==n.month)continue;for(;h>s||h<=0;)this.increment_month(),s=f.daysInMonth(this.last.month,this.last.year),h=this.last.nthWeekDay(l,o)}this.last.day=h,(!i||this.last.compare(i)<0)&&(i=this.last.clone())}if(this.last=i.clone(),this.has_by_data(\"BYMONTHDAY\")&&this._byDayAndMonthDay(!0),this.last.day>s||this.last.day==0)throw new Error(\"Malformed values in BYDAY part\")}else if(this.has_by_data(\"BYMONTHDAY\")){this.last.day=1;let i=f.daysInMonth(this.last.month,this.last.year);if(t<0)this.last.day=i+t+1;else if(this.by_data.BYMONTHDAY[0]>i){if(!this.next_month()&&!this.next_month()&&!this.next_month())throw new Error(\"No possible occurrences\")}else this.last.day=t}}next(){let e,t=this.last?this.last.clone():null;if(this.rule.count&&this.occurrence_number>=this.rule.count||this.rule.until&&this.last.compare(this.rule.until)>0)return this.completed=!0,null;if(this.occurrence_number==0&&this.last.compare(this.dtstart)>=0)return this.occurrence_number++,this.last;do switch(e=1,this.rule.freq){case\"SECONDLY\":this.next_second();break;case\"MINUTELY\":this.next_minute();break;case\"HOURLY\":this.next_hour();break;case\"DAILY\":this.next_day();break;case\"WEEKLY\":this.next_week();break;case\"MONTHLY\":e=this.next_month();break;case\"YEARLY\":this.next_year();break;default:return null}while(!this.check_contracting_rules()||this.last.compare(this.dtstart)<0||!e);if(this.last.compare(t)==0)throw new Error(\"Same occurrence found twice, protecting you from death by recursion\");return this.rule.until&&this.last.compare(this.rule.until)>0?(this.completed=!0,null):(this.occurrence_number++,this.last)}next_second(){return this.next_generic(\"BYSECOND\",\"SECONDLY\",\"second\",\"minute\")}increment_second(e){return this.increment_generic(e,\"second\",60,\"minute\")}next_minute(){return this.next_generic(\"BYMINUTE\",\"MINUTELY\",\"minute\",\"hour\",\"next_second\")}increment_minute(e){return this.increment_generic(e,\"minute\",60,\"hour\")}next_hour(){return this.next_generic(\"BYHOUR\",\"HOURLY\",\"hour\",\"monthday\",\"next_minute\")}increment_hour(e){this.increment_generic(e,\"hour\",24,\"monthday\")}next_day(){let e=this.rule.freq==\"DAILY\";return this.next_hour()==0||(e?this.increment_monthday(this.rule.interval):this.increment_monthday(1)),0}next_week(){let e=0;if(this.next_weekday_by_week()==0)return e;if(this.has_by_data(\"BYWEEKNO\")){this.by_indices.BYWEEKNO++,this.by_indices.BYWEEKNO==this.by_data.BYWEEKNO.length&&(this.by_indices.BYWEEKNO=0,e=1),this.last.month=1,this.last.day=1;let t=this.by_data.BYWEEKNO[this.by_indices.BYWEEKNO];this.last.day+=7*t,e&&this.increment_year(1)}else this.increment_monthday(7*this.rule.interval);return e}normalizeByMonthDayRules(e,t,i){let n,s=f.daysInMonth(t,e),a=[],o=0,l=i.length;for(;os)){if(n<0)n=s+(n+1);else if(n===0)continue;a.indexOf(n)===-1&&a.push(n)}return a.sort((function(h,u){return h-u}))}_byDayAndMonthDay(e){let t,i,n,s,a=this.by_data.BYDAY,o=0,l=a.length,h=0,u=this,c=this.last.day;function d(){for(s=f.daysInMonth(u.last.month,u.last.year),t=u.normalizeByMonthDayRules(u.last.year,u.last.month,u.by_data.BYMONTHDAY),n=t.length;t[o]<=c&&(!e||t[o]!=c)&&os){p();continue}let m=t[o++];if(m>=i){c=m;for(let A=0;Ai&&(this.last.day=1,this.increment_month(),this.is_day_in_byday(this.last)?this.has_by_data(\"BYSETPOS\")&&!this.check_set_position(1)||(e=1):e=0)}else if(this.has_by_data(\"BYMONTHDAY\")){this.by_indices.BYMONTHDAY++,this.by_indices.BYMONTHDAY>=this.by_data.BYMONTHDAY.length&&(this.by_indices.BYMONTHDAY=0,this.increment_month());let t=f.daysInMonth(this.last.month,this.last.year),i=this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY];i<0&&(i=t+i+1),i>t?(this.last.day=1,e=this.is_day_in_byday(this.last)):this.last.day=i}else{this.increment_month();let t=f.daysInMonth(this.last.month,this.last.year);this.by_data.BYMONTHDAY[0]>t?e=0:this.last.day=this.by_data.BYMONTHDAY[0]}return e}next_weekday_by_week(){let e=0;if(this.next_hour()==0)return e;if(!this.has_by_data(\"BYDAY\"))return 1;for(;;){let t=new f;this.by_indices.BYDAY++,this.by_indices.BYDAY==Object.keys(this.by_data.BYDAY).length&&(this.by_indices.BYDAY=0,e=1);let i=this.by_data.BYDAY[this.by_indices.BYDAY],n=this.ruleDayOfWeek(i)[1];n-=this.rule.wkst,n<0&&(n+=7),t.year=this.last.year,t.month=this.last.month,t.day=this.last.day;let s=t.startDoyWeek(this.rule.wkst);if(n+s<1&&!e)continue;let a=f.fromDayOfYear(s+n,this.last.year);return this.last.year=a.year,this.last.month=a.month,this.last.day=a.day,e}}next_year(){if(this.next_hour()==0)return 0;if(++this.days_index==this.days.length){this.days_index=0;do this.increment_year(this.rule.interval),this.expand_year_days(this.last.year);while(this.days.length==0)}return this._nextByYearDay(),1}_nextByYearDay(){let e=this.days[this.days_index],t=this.last.year;e<1&&(e+=1,t+=1);let i=f.fromDayOfYear(e,t);this.last.day=i.day,this.last.month=i.month}ruleDayOfWeek(e,t){let i=e.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);return i?[parseInt(i[1]||0,10),e=z.icalDayToNumericDay(i[2],t)]:[0,0]}next_generic(e,t,i,n,s){let a=e in this.by_data,o=this.rule.freq==t,l=0;if(s&&this[s]()==0)return l;if(a){this.by_indices[e]++;let h=this.by_data[e];this.by_indices[e]==h.length&&(this.by_indices[e]=0,l=1),this.last[i]=h[this.by_indices[e]]}else o&&this[\"increment_\"+i](this.rule.interval);return a&&l&&o&&this[\"increment_\"+n](1),l}increment_monthday(e){for(let t=0;ti&&(this.last.day-=i,this.increment_month())}}increment_month(){if(this.last.day=1,this.has_by_data(\"BYMONTH\"))this.by_indices.BYMONTH++,this.by_indices.BYMONTH==this.by_data.BYMONTH.length&&(this.by_indices.BYMONTH=0,this.increment_year(1)),this.last.month=this.by_data.BYMONTH[this.by_indices.BYMONTH];else{this.rule.freq==\"MONTHLY\"?this.last.month+=this.rule.interval:this.last.month++,this.last.month--;let e=O(this.last.month/12);this.last.month%=12,this.last.month++,e!=0&&this.increment_year(e)}}increment_year(e){this.last.year+=e}increment_generic(e,t,i,n){this.last[t]+=e;let s=O(this.last[t]/i);this.last[t]%=i,s!=0&&this[\"increment_\"+n](s)}has_by_data(e){return e in this.rule.parts}expand_year_days(e){let t=new f;this.days=[];let i={},n=[\"BYDAY\",\"BYWEEKNO\",\"BYMONTHDAY\",\"BYMONTH\",\"BYYEARDAY\"];for(let a of n)a in this.rule.parts&&(i[a]=this.rule.parts[a]);if(\"BYMONTH\"in i&&\"BYWEEKNO\"in i){let a=1,o={};t.year=e,t.isDate=!0;for(let l=0;l0?(d=A+7*(y-1),d<=o&&this.days.push(h+d)):(d=E+7*(y+1),d>0&&this.days.push(h+d))}}this.days.sort((function(a,o){return a-o}))}else if(s==2&&\"BYDAY\"in i&&\"BYMONTHDAY\"in i){let a=this.expand_by_day(e);for(let o of a){let l=f.fromDayOfYear(o,e);this.by_data.BYMONTHDAY.indexOf(l.day)>=0&&this.days.push(o)}}else if(s==3&&\"BYDAY\"in i&&\"BYMONTHDAY\"in i&&\"BYMONTH\"in i){let a=this.expand_by_day(e);for(let o of a){let l=f.fromDayOfYear(o,e);this.by_data.BYMONTH.indexOf(l.month)>=0&&this.by_data.BYMONTHDAY.indexOf(l.day)>=0&&this.days.push(o)}}else if(s==2&&\"BYDAY\"in i&&\"BYWEEKNO\"in i){let a=this.expand_by_day(e);for(let o of a){let l=f.fromDayOfYear(o,e).weekNumber(this.rule.wkst);this.by_data.BYWEEKNO.indexOf(l)&&this.days.push(o)}}else s==3&&\"BYDAY\"in i&&\"BYWEEKNO\"in i&&\"BYMONTHDAY\"in i||(this.days=s==1&&\"BYYEARDAY\"in i?this.days.concat(this.by_data.BYYEARDAY):[])}return 0}expand_by_day(e){let t=[],i=this.last.clone();i.year=e,i.month=1,i.day=1,i.isDate=!0;let n=i.dayOfWeek();i.month=12,i.day=31,i.isDate=!0;let s=i.dayOfWeek(),a=i.dayOfYear();for(let o of this.by_data.BYDAY){let l=this.ruleDayOfWeek(o),h=l[0],u=l[1];if(h==0)for(let c=(u+7-n)%7+1;c<=a;c+=7)t.push(c);else if(h>0){let c;c=u>=n?u-n+1:u-n+8,t.push(c+7*(h-1))}else{let c;h=-h,c=u<=s?a-s+u:a-s+u-7,t.push(c-7*(h-1))}}return t}is_day_in_byday(e){if(this.by_data.BYDAY)for(let t of this.by_data.BYDAY){let i=this.ruleDayOfWeek(t),n=i[0],s=i[1],a=e.dayOfWeek();if(n==0&&s==a||e.nthWeekDay(s,n)==e.day)return 1}return 0}check_set_position(e){return this.has_by_data(\"BYSETPOS\")?this.by_data.BYSETPOS.indexOf(e)!==-1:!1}sort_byday_rules(e){for(let t=0;tthis.ruleDayOfWeek(e[t],this.rule.wkst)[1]){let n=e[t];e[t]=e[i],e[i]=n}}check_contract_restriction(e,t){let i=r._indexMap[e],n=r._expandMap[this.rule.freq][i],s=!1;if(e in this.by_data&&n==r.CONTRACT){let a=this.by_data[e];for(let o of a)if(o==t){s=!0;break}}else s=!0;return s}check_contracting_rules(){let e=this.last.dayOfWeek(),t=this.last.weekNumber(this.rule.wkst),i=this.last.dayOfYear();return this.check_contract_restriction(\"BYSECOND\",this.last.second)&&this.check_contract_restriction(\"BYMINUTE\",this.last.minute)&&this.check_contract_restriction(\"BYHOUR\",this.last.hour)&&this.check_contract_restriction(\"BYDAY\",z.numericDayToIcalDay(e))&&this.check_contract_restriction(\"BYWEEKNO\",t)&&this.check_contract_restriction(\"BYMONTHDAY\",this.last.day)&&this.check_contract_restriction(\"BYMONTH\",this.last.month)&&this.check_contract_restriction(\"BYYEARDAY\",i)}setup_defaults(e,t,i){let n=r._indexMap[e];return r._expandMap[this.rule.freq][n]!=r.CONTRACT&&(e in this.by_data||(this.by_data[e]=[i]),this.rule.freq!=t)?this.by_data[e][0]:i}toJSON(){let e=Object.create(null);return e.initialized=this.initialized,e.rule=this.rule.toJSON(),e.dtstart=this.dtstart.toJSON(),e.by_data=this.by_data,e.days=this.days,e.last=this.last.toJSON(),e.by_indices=this.by_indices,e.occurrence_number=this.occurrence_number,e}},Ie=/^(SU|MO|TU|WE|TH|FR|SA)$/,Be=/^([+-])?(5[0-3]|[1-4][0-9]|[1-9])?(SU|MO|TU|WE|TH|FR|SA)$/,Oe={SU:f.SUNDAY,MO:f.MONDAY,TU:f.TUESDAY,WE:f.WEDNESDAY,TH:f.THURSDAY,FR:f.FRIDAY,SA:f.SATURDAY},Me=Object.fromEntries(Object.entries(Oe).map((r=>r.reverse()))),de=[\"SECONDLY\",\"MINUTELY\",\"HOURLY\",\"DAILY\",\"WEEKLY\",\"MONTHLY\",\"YEARLY\"],z=class r{static fromString(e){let t=this._stringToData(e,!1);return new r(t)}static fromData(e){return new r(e)}static _stringToData(e,t){let i=Object.create(null),n=e.split(\";\"),s=n.length;for(let a=0;a7&&(i-=7),Me[i]}constructor(e){this.wrappedJSObject=this,this.parts={},e&&typeof e==\"object\"&&this.fromData(e)}parts=null;interval=1;wkst=f.MONDAY;until=null;count=null;freq=null;icalclass=\"icalrecur\";icaltype=\"recur\";iterator(e){return new J({rule:this,dtstart:e})}clone(){return new r(this.toJSON())}isFinite(){return!(!this.count&&!this.until)}isByCount(){return!(!this.count||this.until)}addComponent(e,t){let i=e.toUpperCase();i in this.parts?this.parts[i].push(t):this.parts[i]=[t]}setComponent(e,t){this.parts[e.toUpperCase()]=t.slice()}getComponent(e){let t=e.toUpperCase();return t in this.parts?this.parts[t].slice():[]}getNextOccurrence(e,t){let i,n=this.iterator(e);do i=n.next();while(i&&i.compare(t)<=0);return i&&t.zone&&(i.zone=t.zone),i}fromData(e){for(let t in e){let i=t.toUpperCase();i in oe?Array.isArray(e[t])?this.parts[i]=e[t]:this.parts[i]=[e[t]]:this[t]=e[t]}this.interval&&typeof this.interval!=\"number\"&&ae.INTERVAL(this.interval,this),this.wkst&&typeof this.wkst!=\"number\"&&(this.wkst=r.icalDayToNumericDay(this.wkst)),!this.until||this.until instanceof f||(this.until=f.fromString(this.until))}toJSON(){let e=Object.create(null);e.freq=this.freq,this.count&&(e.count=this.count),this.interval>1&&(e.interval=this.interval);for(let[t,i]of Object.entries(this.parts))Array.isArray(i)&&i.length==1?e[t.toLowerCase()]=i[0]:e[t.toLowerCase()]=W(i);return this.until&&(e.until=this.until.toString()),\"wkst\"in this&&this.wkst!==f.DEFAULT_WEEK_START&&(e.wkst=r.numericDayToIcalDay(this.wkst)),e}toString(){let e=\"FREQ=\"+this.freq;this.count&&(e+=\";COUNT=\"+this.count),this.interval>1&&(e+=\";INTERVAL=\"+this.interval);for(let[t,i]of Object.entries(this.parts))e+=\";\"+t+\"=\"+i;return this.until&&(e+=\";UNTIL=\"+this.until.toICALString()),\"wkst\"in this&&this.wkst!==f.DEFAULT_WEEK_START&&(e+=\";WKST=\"+r.numericDayToIcalDay(this.wkst)),e}};function j(r,e,t,i){let n=i;if(i[0]===\"+\"&&(n=i.slice(1)),n=S(n),e!==void 0&&i '+e);if(t!==void 0&&i>t)throw new Error(r+': invalid value \"'+i+'\" must be < '+e);return n}var ae={FREQ:function(r,e,t){if(de.indexOf(r)===-1)throw new Error('invalid frequency \"'+r+'\" expected: \"'+de.join(\", \")+'\"');e.freq=r},COUNT:function(r,e,t){e.count=S(r)},INTERVAL:function(r,e,t){e.interval=S(r),e.interval<1&&(e.interval=1)},UNTIL:function(r,e,t){r.length>10?e.until=b.icalendar.value[\"date-time\"].fromICAL(r):e.until=b.icalendar.value.date.fromICAL(r),t||(e.until=f.fromString(e.until))},WKST:function(r,e,t){if(!Ie.test(r))throw new Error('invalid WKST value \"'+r+'\"');e.wkst=z.icalDayToNumericDay(r)}},oe={BYSECOND:j.bind(void 0,\"BYSECOND\",0,60),BYMINUTE:j.bind(void 0,\"BYMINUTE\",0,59),BYHOUR:j.bind(void 0,\"BYHOUR\",0,23),BYDAY:function(r){if(Be.test(r))return r;throw new Error('invalid BYDAY value \"'+r+'\"')},BYMONTHDAY:j.bind(void 0,\"BYMONTHDAY\",-31,31),BYYEARDAY:j.bind(void 0,\"BYYEARDAY\",-366,366),BYWEEKNO:j.bind(void 0,\"BYWEEKNO\",-53,53),BYMONTH:j.bind(void 0,\"BYMONTH\",1,12),BYSETPOS:j.bind(void 0,\"BYSETPOS\",-366,366)},ie=class r{static fromString(e,t){let i=e.split(\"/\");if(i.length!==2)throw new Error('Invalid string value: \"'+e+'\" must contain a \"/\" char.');let n={start:f.fromDateTimeString(i[0],t)},s=i[1];return v.isValueString(s)?n.duration=v.fromString(s):n.end=f.fromDateTimeString(s,t),new r(n)}static fromData(e){return new r(e)}static fromJSON(e,t,i){function n(s,a){return i?f.fromString(s,a):f.fromDateTimeString(s,a)}return v.isValueString(e[1])?r.fromData({start:n(e[0],t),duration:v.fromString(e[1])}):r.fromData({start:n(e[0],t),end:n(e[1],t)})}constructor(e){if(this.wrappedJSObject=this,e&&\"start\"in e){if(e.start&&!(e.start instanceof f))throw new TypeError(\".start must be an instance of ICAL.Time\");this.start=e.start}if(e&&e.end&&e.duration)throw new Error(\"cannot accept both end and duration\");if(e&&\"end\"in e){if(e.end&&!(e.end instanceof f))throw new TypeError(\".end must be an instance of ICAL.Time\");this.end=e.end}if(e&&\"duration\"in e){if(e.duration&&!(e.duration instanceof v))throw new TypeError(\".duration must be an instance of ICAL.Duration\");this.duration=e.duration}}start=null;end=null;duration=null;icalclass=\"icalperiod\";icaltype=\"period\";clone(){return r.fromData({start:this.start?this.start.clone():null,end:this.end?this.end.clone():null,duration:this.duration?this.duration.clone():null})}getDuration(){return this.duration?this.duration:this.end.subtractDate(this.start)}getEnd(){if(this.end)return this.end;{let e=this.start.clone();return e.addDuration(this.duration),e}}toString(){return this.start+\"/\"+(this.end||this.duration)}toJSON(){return[this.start.toString(),(this.end||this.duration).toString()]}toICALString(){return this.start.toICALString()+\"/\"+(this.end||this.duration).toICALString()}},fe=/\\\\\\\\|\\\\,|\\\\[Nn]/g,me=/\\\\|,|\\n/g;function he(r,e){return{matches:/.*/,fromICAL:function(t,i){return(function(n,s,a){return n.indexOf(\"\\\\\")===-1?n:(a&&(s=new RegExp(s.source+\"|\\\\\\\\\"+a,s.flags)),n.replace(s,ze))})(t,r,i)},toICAL:function(t,i){let n=e;return i&&(n=new RegExp(n.source+\"|\"+i,n.flags)),t.replace(n,(function(s){switch(s){case\"\\\\\":return\"\\\\\\\\\";case\";\":return\"\\\\;\";case\",\":return\"\\\\,\";case`\n`:return\"\\\\n\";default:return s}}))}}}var g={defaultType:\"text\"},Z={defaultType:\"text\",multiValue:\",\"},re={defaultType:\"text\",structuredValue:\";\"},G={defaultType:\"integer\"},X={defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\"]},Q={defaultType:\"date-time\"},w={defaultType:\"uri\"},pe={defaultType:\"utc-offset\"},ye={defaultType:\"recur\"},ge={defaultType:\"date-and-or-time\",allowedTypes:[\"date-time\",\"date\",\"text\"]};function ze(r){switch(r){case\"\\\\\\\\\":return\"\\\\\";case\"\\\\;\":return\";\";case\"\\\\,\":return\",\";case\"\\\\n\":case\"\\\\N\":return`\n`;default:return r}}var ue={categories:Z,url:w,version:g,uid:g},ce={boolean:{values:[\"TRUE\",\"FALSE\"],fromICAL:function(r){return r===\"TRUE\"},toICAL:function(r){return r?\"TRUE\":\"FALSE\"}},float:{matches:/^[+-]?\\d+\\.\\d+$/,fromICAL:function(r){let e=parseFloat(r);return q(e)?0:e},toICAL:function(r){return String(r)}},integer:{fromICAL:function(r){let e=parseInt(r);return q(e)?0:e},toICAL:function(r){return String(r)}},\"utc-offset\":{toICAL:function(r){return r.length<7?r.slice(0,3)+r.slice(4,6):r.slice(0,3)+r.slice(4,6)+r.slice(7,9)},fromICAL:function(r){return r.length<6?r.slice(0,3)+\":\"+r.slice(3,5):r.slice(0,3)+\":\"+r.slice(3,5)+\":\"+r.slice(5,7)},decorate:function(r){return U.fromString(r)},undecorate:function(r){return r.toString()}}},Y=F(ce,{text:he(/\\\\\\\\|\\\\;|\\\\,|\\\\[Nn]/g,/\\\\|;|,|\\n/g),uri:{},binary:{decorate:function(r){return ee.fromString(r)},undecorate:function(r){return r.toString()}},\"cal-address\":{},date:{decorate:function(r,e){return B.strict?f.fromDateString(r,e):f.fromString(r,e)},undecorate:function(r){return r.toString()},fromICAL:function(r){return!B.strict&&r.length>=15?Y[\"date-time\"].fromICAL(r):r.slice(0,4)+\"-\"+r.slice(4,6)+\"-\"+r.slice(6,8)},toICAL:function(r){let e=r.length;return e==10?r.slice(0,4)+r.slice(5,7)+r.slice(8,10):e>=19?Y[\"date-time\"].toICAL(r):r}},\"date-time\":{fromICAL:function(r){if(B.strict||r.length!=8){let e=r.slice(0,4)+\"-\"+r.slice(4,6)+\"-\"+r.slice(6,8)+\"T\"+r.slice(9,11)+\":\"+r.slice(11,13)+\":\"+r.slice(13,15);return r[15]&&r[15]===\"Z\"&&(e+=\"Z\"),e}return Y.date.fromICAL(r)},toICAL:function(r){let e=r.length;if(e!=10||B.strict){if(e>=19){let t=r.slice(0,4)+r.slice(5,7)+r.slice(8,13)+r.slice(14,16)+r.slice(17,19);return r[19]&&r[19]===\"Z\"&&(t+=\"Z\"),t}return r}return Y.date.toICAL(r)},decorate:function(r,e){return B.strict?f.fromDateTimeString(r,e):f.fromString(r,e)},undecorate:function(r){return r.toString()}},duration:{decorate:function(r){return v.fromString(r)},undecorate:function(r){return r.toString()}},period:{fromICAL:function(r){let e=r.split(\"/\");return e[0]=Y[\"date-time\"].fromICAL(e[0]),v.isValueString(e[1])||(e[1]=Y[\"date-time\"].fromICAL(e[1])),e},toICAL:function(r){return r=r.slice(),B.strict||r[0].length!=10?r[0]=Y[\"date-time\"].toICAL(r[0]):r[0]=Y.date.toICAL(r[0]),v.isValueString(r[1])||(B.strict||r[1].length!=10?r[1]=Y[\"date-time\"].toICAL(r[1]):r[1]=Y.date.toICAL(r[1])),r.join(\"/\")},decorate:function(r,e){return ie.fromJSON(r,e,!B.strict)},undecorate:function(r){return r.toJSON()}},recur:{fromICAL:function(r){return z._stringToData(r,!0)},toICAL:function(r){let e=\"\";for(let[t,i]of Object.entries(r))t==\"until\"?i=i.length>10?Y[\"date-time\"].toICAL(i):Y.date.toICAL(i):t==\"wkst\"?typeof i==\"number\"&&(i=z.numericDayToIcalDay(i)):Array.isArray(i)&&(i=i.join(\",\")),e+=t.toUpperCase()+\"=\"+i+\";\";return e.slice(0,Math.max(0,e.length-1))},decorate:function(r){return z.fromData(r)},undecorate:function(r){return r.toJSON()}},time:{fromICAL:function(r){if(r.length<6)return r;let e=r.slice(0,2)+\":\"+r.slice(2,4)+\":\"+r.slice(4,6);return r[6]===\"Z\"&&(e+=\"Z\"),e},toICAL:function(r){if(r.length<8)return r;let e=r.slice(0,2)+r.slice(3,5)+r.slice(6,8);return r[8]===\"Z\"&&(e+=\"Z\"),e}}}),Le=F(ue,{action:g,attach:{defaultType:\"uri\"},attendee:{defaultType:\"cal-address\"},calscale:g,class:g,comment:g,completed:Q,contact:g,created:Q,description:g,dtend:X,dtstamp:Q,dtstart:X,due:X,duration:{defaultType:\"duration\"},exdate:{defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\"],multiValue:\",\"},exrule:ye,freebusy:{defaultType:\"period\",multiValue:\",\"},geo:{defaultType:\"float\",structuredValue:\";\"},\"last-modified\":Q,location:g,method:g,organizer:{defaultType:\"cal-address\"},\"percent-complete\":G,priority:G,prodid:g,\"related-to\":g,repeat:G,rdate:{defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\",\"period\"],multiValue:\",\",detectType:function(r){return r.indexOf(\"/\")!==-1?\"period\":r.indexOf(\"T\")===-1?\"date\":\"date-time\"}},\"recurrence-id\":X,resources:Z,\"request-status\":re,rrule:ye,sequence:G,status:g,summary:g,transp:g,trigger:{defaultType:\"duration\",allowedTypes:[\"duration\",\"date-time\"]},tzoffsetfrom:pe,tzoffsetto:pe,tzurl:w,tzid:g,tzname:g}),I=F(ce,{text:he(fe,me),uri:he(fe,me),date:{decorate:function(r){return V.fromDateAndOrTimeString(r,\"date\")},undecorate:function(r){return r.toString()},fromICAL:function(r){return r.length==8?Y.date.fromICAL(r):r[0]==\"-\"&&r.length==6?r.slice(0,4)+\"-\"+r.slice(4):r},toICAL:function(r){return r.length==10?Y.date.toICAL(r):r[0]==\"-\"&&r.length==7?r.slice(0,4)+r.slice(5):r}},time:{decorate:function(r){return V.fromDateAndOrTimeString(\"T\"+r,\"time\")},undecorate:function(r){return r.toString()},fromICAL:function(r){let e=I.time._splitZone(r,!0),t=e[0],i=e[1];return i.length==6?i=i.slice(0,2)+\":\"+i.slice(2,4)+\":\"+i.slice(4,6):i.length==4&&i[0]!=\"-\"?i=i.slice(0,2)+\":\"+i.slice(2,4):i.length==5&&(i=i.slice(0,3)+\":\"+i.slice(3,5)),t.length!=5||t[0]!=\"-\"&&t[0]!=\"+\"||(t=t.slice(0,3)+\":\"+t.slice(3)),i+t},toICAL:function(r){let e=I.time._splitZone(r),t=e[0],i=e[1];return i.length==8?i=i.slice(0,2)+i.slice(3,5)+i.slice(6,8):i.length==5&&i[0]!=\"-\"?i=i.slice(0,2)+i.slice(3,5):i.length==6&&(i=i.slice(0,3)+i.slice(4,6)),t.length!=6||t[0]!=\"-\"&&t[0]!=\"+\"||(t=t.slice(0,3)+t.slice(4)),i+t},_splitZone:function(r,e){let t,i,n=r.length-1,s=r.length-(e?5:6),a=r[s];return r[n]==\"Z\"?(t=r[n],i=r.slice(0,Math.max(0,n))):r.length>6&&(a==\"-\"||a==\"+\")?(t=r.slice(s),i=r.slice(0,Math.max(0,s))):(t=\"\",i=r),[t,i]}},\"date-time\":{decorate:function(r){return V.fromDateAndOrTimeString(r,\"date-time\")},undecorate:function(r){return r.toString()},fromICAL:function(r){return I[\"date-and-or-time\"].fromICAL(r)},toICAL:function(r){return I[\"date-and-or-time\"].toICAL(r)}},\"date-and-or-time\":{decorate:function(r){return V.fromDateAndOrTimeString(r,\"date-and-or-time\")},undecorate:function(r){return r.toString()},fromICAL:function(r){let e=r.split(\"T\");return(e[0]?I.date.fromICAL(e[0]):\"\")+(e[1]?\"T\"+I.time.fromICAL(e[1]):\"\")},toICAL:function(r){let e=r.split(\"T\");return I.date.toICAL(e[0])+(e[1]?\"T\"+I.time.toICAL(e[1]):\"\")}},timestamp:Y[\"date-time\"],\"language-tag\":{matches:/^[a-zA-Z0-9-]+$/},\"phone-number\":{fromICAL:function(r){return Array.from(r).filter((function(e){return e===\"\\\\\"?void 0:e})).join(\"\")},toICAL:function(r){return Array.from(r).map((function(e){return e===\",\"||e===\";\"?\"\\\\\"+e:e})).join(\"\")}}}),ke=F(ue,{adr:{defaultType:\"text\",structuredValue:\";\",multiValue:\",\"},anniversary:ge,bday:ge,caladruri:w,caluri:w,clientpidmap:re,email:g,fburl:w,fn:g,gender:re,geo:w,impp:w,key:w,kind:g,lang:{defaultType:\"language-tag\"},logo:w,member:w,n:{defaultType:\"text\",structuredValue:\";\",multiValue:\",\"},nickname:Z,note:g,org:{defaultType:\"text\",structuredValue:\";\"},photo:w,related:w,rev:{defaultType:\"timestamp\"},role:g,sound:w,source:w,tel:{defaultType:\"uri\",allowedTypes:[\"uri\",\"text\"]},title:g,tz:{defaultType:\"text\",allowedTypes:[\"text\",\"utc-offset\",\"uri\"]},xml:g}),Pe=F(ce,{binary:Y.binary,date:I.date,\"date-time\":I[\"date-time\"],\"phone-number\":I[\"phone-number\"],uri:Y.uri,text:Y.text,time:Y.time,vcard:Y.text,\"utc-offset\":{toICAL:function(r){return r.slice(0,7)},fromICAL:function(r){return r.slice(0,7)},decorate:function(r){return U.fromString(r)},undecorate:function(r){return r.toString()}}}),Ue=F(ue,{fn:g,n:{defaultType:\"text\",structuredValue:\";\",multiValue:\",\"},nickname:Z,photo:{defaultType:\"binary\",allowedTypes:[\"binary\",\"uri\"]},bday:{defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\"],detectType:function(r){return r.indexOf(\"T\")===-1?\"date\":\"date-time\"}},adr:{defaultType:\"text\",structuredValue:\";\",multiValue:\",\"},label:g,tel:{defaultType:\"phone-number\"},email:g,mailer:g,tz:{defaultType:\"utc-offset\",allowedTypes:[\"utc-offset\",\"text\"]},geo:{defaultType:\"float\",structuredValue:\";\"},title:g,role:g,logo:{defaultType:\"binary\",allowedTypes:[\"binary\",\"uri\"]},agent:{defaultType:\"vcard\",allowedTypes:[\"vcard\",\"text\",\"uri\"]},org:re,note:Z,prodid:g,rev:{defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\"],detectType:function(r){return r.indexOf(\"T\")===-1?\"date\":\"date-time\"}},\"sort-string\":g,sound:{defaultType:\"binary\",allowedTypes:[\"binary\",\"uri\"]},class:g,key:{defaultType:\"binary\",allowedTypes:[\"binary\",\"text\"]}}),L={value:Y,param:{cutype:{values:[\"INDIVIDUAL\",\"GROUP\",\"RESOURCE\",\"ROOM\",\"UNKNOWN\"],allowXName:!0,allowIanaToken:!0},\"delegated-from\":{valueType:\"cal-address\",multiValue:\",\",multiValueSeparateDQuote:!0},\"delegated-to\":{valueType:\"cal-address\",multiValue:\",\",multiValueSeparateDQuote:!0},encoding:{values:[\"8BIT\",\"BASE64\"]},fbtype:{values:[\"FREE\",\"BUSY\",\"BUSY-UNAVAILABLE\",\"BUSY-TENTATIVE\"],allowXName:!0,allowIanaToken:!0},member:{valueType:\"cal-address\",multiValue:\",\",multiValueSeparateDQuote:!0},partstat:{values:[\"NEEDS-ACTION\",\"ACCEPTED\",\"DECLINED\",\"TENTATIVE\",\"DELEGATED\",\"COMPLETED\",\"IN-PROCESS\"],allowXName:!0,allowIanaToken:!0},range:{values:[\"THISANDFUTURE\"]},related:{values:[\"START\",\"END\"]},reltype:{values:[\"PARENT\",\"CHILD\",\"SIBLING\"],allowXName:!0,allowIanaToken:!0},role:{values:[\"REQ-PARTICIPANT\",\"CHAIR\",\"OPT-PARTICIPANT\",\"NON-PARTICIPANT\"],allowXName:!0,allowIanaToken:!0},rsvp:{values:[\"TRUE\",\"FALSE\"]},\"sent-by\":{valueType:\"cal-address\"},tzid:{matches:/^\\//},value:{values:[\"binary\",\"boolean\",\"cal-address\",\"date\",\"date-time\",\"duration\",\"float\",\"integer\",\"period\",\"recur\",\"text\",\"time\",\"uri\",\"utc-offset\"],allowXName:!0,allowIanaToken:!0}},property:Le,propertyGroups:!1},De={value:I,param:{type:{valueType:\"text\",multiValue:\",\"},value:{values:[\"text\",\"uri\",\"date\",\"time\",\"date-time\",\"date-and-or-time\",\"timestamp\",\"boolean\",\"integer\",\"float\",\"utc-offset\",\"language-tag\"],allowXName:!0,allowIanaToken:!0}},property:ke,propertyGroups:!0},_e={value:Pe,param:{type:{valueType:\"text\",multiValue:\",\"},value:{values:[\"text\",\"uri\",\"date\",\"date-time\",\"phone-number\",\"time\",\"boolean\",\"integer\",\"float\",\"utc-offset\",\"vcard\",\"binary\"],allowXName:!0,allowIanaToken:!0}},property:Ue,propertyGroups:!0},B={strict:!0,defaultSet:L,defaultType:\"unknown\",components:{vcard:De,vcard3:_e,vevent:L,vtodo:L,vjournal:L,valarm:L,vtimezone:L,daylight:L,standard:L},icalendar:L,vcard:De,vcard3:_e,getDesignSet:function(r){return r&&r in B.components?B.components[r]:B.defaultSet}},b=B,$=`\\r\n`,Te=\"unknown\",je={'\"':\"^'\",\"\\n\":\"^n\",\"^\":\"^^\"};function T(r){typeof r[0]==\"string\"&&(r=[r]);let e=0,t=r.length,i=\"\";for(;e0&&(r[1][0][0]!==\"version\"||r[1][0][3]!==\"4.0\")&&(o=\"vcard3\"),e=e||b.getDesignSet(o);s0&&typeof e[0]==\"object\"&&\"icaltype\"in e[0]&&this.resetType(e[0].icaltype),this.isDecorated)for(;i=0;a--)i&&s[a][0]!==i||this._removeObjectByIndex(e,n,a)}addSubcomponent(e){this._components||(this._components=[],this._hydratedComponentCount=0),e.parent&&e.parent.removeSubcomponent(e);let t=this.jCal[2].push(e.jCal);return this._components[t-1]=e,this._hydratedComponentCount++,e.parent=this,e}removeSubcomponent(e){let t=this._removeObject(2,\"_components\",e);return t&&this._hydratedComponentCount--,t}removeAllSubcomponents(e){let t=this._removeAllObjects(2,\"_components\",e);return this._hydratedComponentCount=0,t}addProperty(e){if(!(e instanceof R))throw new TypeError(\"must be instance of ICAL.Property\");this._properties||(this._properties=[],this._hydratedPropertyCount=0),e.parent&&e.parent.removeProperty(e);let t=this.jCal[1].push(e.jCal);return this._properties[t-1]=e,this._hydratedPropertyCount++,e.parent=this,e}addPropertyWithValue(e,t){let i=new R(e);return i.setValue(t),this.addProperty(i),i}updatePropertyWithValue(e,t){let i=this.getFirstProperty(e);return i?i.setValue(t):i=this.addPropertyWithValue(e,t),i}removeProperty(e){let t=this._removeObject(1,\"_properties\",e);return t&&this._hydratedPropertyCount--,t}removeAllProperties(e){let t=this._removeAllObjects(1,\"_properties\",e);return this._hydratedPropertyCount=0,t}toJSON(){return this.jCal}toString(){return T.component(this.jCal,this._designSet)}getTimeZoneByID(e){if(this.parent)return this.parent.getTimeZoneByID(e);if(!this._timezoneCache)return null;if(this._timezoneCache.has(e))return this._timezoneCache.get(e);let t=this.getAllSubcomponents(\"vtimezone\");for(let i of t)if(i.getFirstProperty(\"tzid\").getFirstValue()===e){let n=new _({component:i,tzid:e});return this._timezoneCache.set(e,n),n}return null}},ne=class{constructor(e){this.ruleDates=[],this.exDates=[],this.fromData(e)}complete=!1;ruleIterators=null;ruleDates=null;exDates=null;ruleDateInc=0;exDateInc=0;exDate=null;ruleDate=null;dtstart=null;last=null;fromData(e){let t=P(e.dtstart,f);if(!t)throw new Error(\".dtstart (ICAL.Time) must be given\");if(this.dtstart=t,e.component)this._init(e.component);else{if(this.last=P(e.last,f)||t.clone(),!e.ruleIterators)throw new Error(\".ruleIterators or .component must be given\");this.ruleIterators=e.ruleIterators.map((function(i){return P(i,J)})),this.ruleDateInc=e.ruleDateInc,this.exDateInc=e.exDateInc,e.ruleDates&&(this.ruleDates=e.ruleDates.map((i=>P(i,f))),this.ruleDate=this.ruleDates[this.ruleDateInc]),e.exDates&&(this.exDates=e.exDates.map((i=>P(i,f))),this.exDate=this.exDates[this.exDateInc]),e.complete!==void 0&&(this.complete=e.complete)}}next(){let e,t,i,n=0;for(;;){if(n++>500)throw new Error(\"max tries have occurred, rule may be impossible to fulfill.\");if(t=this.ruleDate,e=this._nextRecurrenceIter(this.last),!t&&!e){this.complete=!0;break}if((!t||e&&t.compare(e.last)>0)&&(t=e.last.clone(),e.next()),this.ruleDate===t&&this._nextRuleDay(),this.last=t,!this.exDate||(i=this.exDate.compare(this.last),i<0&&this._nextExDay(),i!==0))return this.last;this._nextExDay()}}toJSON(){function e(i){return i.toJSON()}let t=Object.create(null);return t.ruleIterators=this.ruleIterators.map(e),this.ruleDates&&(t.ruleDates=this.ruleDates.map(e)),this.exDates&&(t.exDates=this.exDates.map(e)),t.ruleDateInc=this.ruleDateInc,t.exDateInc=this.exDateInc,t.last=this.last.toJSON(),t.dtstart=this.dtstart.toJSON(),t.complete=this.complete,t}_extractDates(e,t){let i=[],n=e.getAllProperties(t);for(let s=0,a=n.length;sh.compare(u)));i.splice(l,0,o)}return i}_init(e){if(this.ruleIterators=[],this.last=this.dtstart.clone(),!e.hasProperty(\"rdate\")&&!e.hasProperty(\"rrule\")&&!e.hasProperty(\"recurrence-id\"))return this.ruleDate=this.last.clone(),void(this.complete=!0);if(e.hasProperty(\"rdate\")&&(this.ruleDates=this._extractDates(e,\"rdate\"),this.ruleDates[0]&&this.ruleDates[0].compare(this.dtstart)<0?(this.ruleDateInc=0,this.last=this.ruleDates[0].clone()):this.ruleDateInc=H(this.ruleDates,this.last,((t,i)=>t.compare(i))),this.ruleDate=this.ruleDates[this.ruleDateInc]),e.hasProperty(\"rrule\")){let t,i,n=e.getAllProperties(\"rrule\"),s=0,a=n.length;for(;st.compare(i))),this.exDate=this.exDates[this.exDateInc])}_nextExDay(){this.exDate=this.exDates[++this.exDateInc]}_nextRuleDay(){this.ruleDate=this.ruleDates[++this.ruleDateInc]}_nextRecurrenceIter(){let e=this.ruleIterators;if(e.length===0)return null;let t,i,n,s=e.length,a=0;for(;a0)&&(n=t);return n}},se=class r{constructor(e,t){e instanceof N||(t=e,e=null),this.component=e||new N(\"vevent\"),this._rangeExceptionCache=Object.create(null),this.exceptions=Object.create(null),this.rangeExceptions=[],t&&t.strictExceptions&&(this.strictExceptions=t.strictExceptions),t&&t.exceptions?t.exceptions.forEach(this.relateException,this):this.component.parent&&!this.isRecurrenceException()&&this.component.parent.getAllSubcomponents(\"vevent\").forEach((function(i){i.hasProperty(\"recurrence-id\")&&this.relateException(i)}),this)}static THISANDFUTURE=\"THISANDFUTURE\";exceptions=null;strictExceptions=!1;relateException(e){if(this.isRecurrenceException())throw new Error(\"cannot relate exception to exceptions\");if(e instanceof N&&(e=new r(e)),this.strictExceptions&&e.uid!==this.uid)throw new Error(\"attempted to relate unrelated exception\");let t=e.recurrenceId.toString();if(this.exceptions[t]=e,e.modifiesFuture()){let i=[e.recurrenceId.toUnixTime(),t],n=H(this.rangeExceptions,i,Ye);this.rangeExceptions.splice(n,0,i)}}modifiesFuture(){return this.component.hasProperty(\"recurrence-id\")?this.component.getFirstProperty(\"recurrence-id\").getParameter(\"range\")===r.THISANDFUTURE:!1}findRangeException(e){if(!this.rangeExceptions.length)return null;let t=e.toUnixTime(),i=H(this.rangeExceptions,[t],Ye);if(i-=1,i<0)return null;let n=this.rangeExceptions[i];return te[0]?1:e[0]>r[0]?-1:0}var le={foldLength:75,debug:!1,newLineChar:`\\r\n`,Binary:ee,Component:N,ComponentParser:class{constructor(r){r===void 0&&(r={});for(let[e,t]of Object.entries(r))this[e]=t}parseEvent=!0;parseTimezone=!0;oncomplete=function(){};onerror=function(r){};ontimezone=function(r){};onevent=function(r){};process(r){typeof r==\"string\"&&(r=D(r)),r instanceof N||(r=new N(r));let e,t=r.getAllSubcomponents(),i=0,n=t.length;for(;i=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 ICAL from \"ical.js\";\nimport { RRule, RRuleSet } from \"rrule\";\nimport { getUtcOffsetMs, resolveIanaName } from \"./timezones.ts\";\n\nconst VERSION = \"0.4.7\";\nconst CACHE_KEY = \"icalendar:lastSync\";\n\nconsole.log(`[iCalendar] Plug script executing at top level (Version ${VERSION})`);\n\n/**\n * Mapping of verbose RRULE object keys to standard iCalendar shortened keys.\n */\nconst RRULE_KEY_MAP: Record = {\n \"frequency\": \"FREQ\",\n \"until\": \"UNTIL\",\n \"count\": \"COUNT\",\n \"interval\": \"INTERVAL\",\n \"bysecond\": \"BYSECOND\",\n \"byminute\": \"BYMINUTE\",\n \"byhour\": \"BYHOUR\",\n \"byday\": \"BYDAY\",\n \"bymonthday\": \"BYMONTHDAY\",\n \"byyearday\": \"BYYEARDAY\",\n \"byweekno\": \"BYWEEKNO\",\n \"bymonth\": \"BYMONTH\",\n \"bysetpos\": \"BYSETPOS\",\n \"wkst\": \"WKST\",\n \"workweekstart\": \"WKST\",\n \"freq\": \"FREQ\",\n};\n\n/**\n * Robustly formats an RRULE value for its string representation.\n */\nfunction formatRRuleValue(v: any): string {\n if (Array.isArray(v)) {\n return v.map((item) => formatRRuleValue(item)).join(\",\");\n }\n if (v instanceof Date) {\n return v.toISOString().replace(/[-:]/g, \"\").split(\".\")[0] + \"Z\";\n }\n if (typeof v === \"object\" && v !== null) {\n const val = v.date || v.day || v.value;\n if (val !== undefined) {\n return formatRRuleValue(val);\n }\n }\n return String(v);\n}\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\n/**\n * Converts UTC Date to a specific timezone string\n * Uses toLocaleString for better compatibility\n */\nexport function dateToTimezoneString(date: Date, timezone: string = \"America/Los_Angeles\"): string {\n try {\n // Use toLocaleString which has better worker support\n const localeString = date.toLocaleString('en-US', {\n timeZone: timezone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n });\n \n console.log(`[iCalendar] Converting ${date.toISOString()} to ${timezone}: ${localeString}`);\n \n // Parse the result: \"MM/DD/YYYY, HH:MM:SS\"\n const match = localeString.match(/(\\d{2})\\/(\\d{2})\\/(\\d{4}),\\s*(\\d{2}):(\\d{2}):(\\d{2})/);\n if (match) {\n const [_, month, day, year, hour, minute, second] = match;\n return `${year}-${month}-${day}T${hour}:${minute}:${second}`;\n }\n \n throw new Error(\"Failed to parse toLocaleString result\");\n } catch (err) {\n console.error(`[iCalendar] Error converting to timezone ${timezone}:`, err);\n // Fallback to UTC\n const pad = (n: number) => String(n).padStart(2, \"0\");\n return date.getUTCFullYear() + \"-\" + \n pad(date.getUTCMonth() + 1) + \"-\" + \n pad(date.getUTCDate()) + \"T\" + \n pad(date.getUTCHours()) + \":\" + \n pad(date.getUTCMinutes()) + \":\" + \n pad(date.getUTCSeconds());\n }\n}\n\n/**\n * Recursively converts all Date objects and ISO date strings to strings\n */\nfunction convertDatesToStrings(obj: T): any {\n if (obj === null || obj === undefined) {\n return obj;\n }\n\n if (obj instanceof Date) {\n return obj.toISOString();\n }\n \n if (typeof obj === 'object' && 'date' in obj && (obj as any).date instanceof Date) {\n return (obj as any).date.toISOString();\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 new Date(obj).toISOString();\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, displayTimezone: string }> {\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 // Get user's display timezone, default to America/Los_Angeles (PST)\n const displayTimezone = rawConfig.displayTimezone || \"America/Los_Angeles\";\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, displayTimezone };\n } catch (e) {\n console.error(\"[iCalendar] Error in getSources:\", e);\n return { sources: [], syncWindowDays: 365, displayTimezone: \"America/Los_Angeles\" };\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 * Resolves event end time\n */\nasync function resolveEventEnd(icsEvent: any): Promise {\n if (!icsEvent.end) return null;\n \n // Create a temporary event object with end as start\n const tempEvent = {\n ...icsEvent,\n start: icsEvent.end\n };\n \n return await resolveEventStart(tempEvent);\n}\n\n/**\n * Expands recurring events into individual occurrences.\n */\nexport function expandRecurrences(icsEvent: any, windowDays = 365, displayTimezone = \"America/Los_Angeles\", now = new Date()): any[] {\n const rruleStr = icsEvent.rrule || (icsEvent as any).recurrenceRule;\n if (!rruleStr) return [icsEvent];\n\n try {\n const set = new RRuleSet();\n \n let cleanRule = \"\";\n if (typeof rruleStr === \"string\") {\n cleanRule = rruleStr.replace(/^RRULE:/i, \"\");\n } else if (typeof rruleStr === \"object\" && rruleStr !== null) {\n cleanRule = Object.entries(rruleStr)\n .map(([k, v]) => {\n const standardKey = RRULE_KEY_MAP[k.toLowerCase()] || k.toUpperCase();\n return `${standardKey}=${formatRRuleValue(v)}`;\n })\n .join(\";\");\n } else {\n console.warn(`[iCalendar] Invalid rrule type (${typeof rruleStr}) for event \"${icsEvent.summary || \"Untitled\"}\". Treating as non-recurring.`);\n return [icsEvent];\n }\n \n // Parse the stored UTC time (don't add Z, it's already there)\n const dtstart = new Date(icsEvent.start);\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));\n }\n\n const windowEnd = new Date(now.getTime() + windowDays * 86400000);\n \n // Expand from the event's actual start date up to the window end\n const occurrences = set.between(dtstart, windowEnd, true);\n \n // Calculate duration for recurring events\n const duration = icsEvent.end ? \n new Date(icsEvent.end).getTime() - dtstart.getTime() : \n 0;\n \n const mapped = occurrences.map(occurrenceDate => {\n const endDate = duration > 0 ? new Date(occurrenceDate.getTime() + duration) : null;\n \n return {\n ...icsEvent,\n start: occurrenceDate.toISOString(),\n startLocal: dateToTimezoneString(occurrenceDate, displayTimezone),\n end: endDate ? endDate.toISOString() : undefined,\n endLocal: endDate ? dateToTimezoneString(endDate, displayTimezone) : undefined,\n recurrent: true,\n rrule: undefined,\n };\n });\n \n return mapped;\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, displayTimezone = \"America/Los_Angeles\"): Promise {\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 jcalData = ICAL.parse(text);\n const vcalendar = new ICAL.Component(jcalData);\n const vevents = vcalendar.getAllSubcomponents(\"vevent\");\n\n // First pass: map of UID -> Set of ISO strings for RECURRENCE-ID exceptions\n const overrides = new Map>();\n for (const vevent of vevents) {\n const recId = vevent.getFirstPropertyValue(\"recurrence-id\") as ICAL.Time | null;\n const uid = vevent.getFirstPropertyValue(\"uid\") as string | null;\n if (recId && uid) {\n if (!overrides.has(uid)) overrides.set(uid, new Set());\n overrides.get(uid)!.add(recId.toJSDate().toISOString());\n }\n }\n\n const events: any[] = [];\n for (const vevent of vevents) {\n const icsEvent = new ICAL.Event(vevent);\n const status = vevent.getFirstPropertyValue(\"status\") as string | null;\n const summary = icsEvent.summary || \"\";\n \n // 1. Skip explicitly cancelled events\n if (status?.toUpperCase() === \"CANCELLED\") continue;\n if (summary.toLowerCase().startsWith(\"canceled:\") || summary.toLowerCase().startsWith(\"cancelled:\")) continue;\n\n // 2. Skip declined events (look for PARTSTAT=DECLINED in attendees)\n const attendees = vevent.getAllProperties(\"attendee\");\n let declined = false;\n for (const attendee of attendees) {\n const partstat = attendee.getParameter(\"partstat\");\n if (partstat?.toUpperCase() === \"DECLINED\") {\n // Note: In a multi-user environment, we'd need to check if this is *the* user's status.\n // For a personal plug, we assume any DECLINED attendee means the user declined or the event is out.\n declined = true;\n break;\n }\n }\n if (declined) continue;\n\n // Extract raw properties for recurrence expansion\n const uid = icsEvent.uid;\n const description = icsEvent.description;\n const location = icsEvent.location;\n const rrule = vevent.getFirstPropertyValue(\"rrule\");\n const exdates = vevent.getAllProperties(\"exdate\").map((p: any) => p.getFirstValue().toJSDate().toISOString());\n\n // Add recurrence-id overrides to exdates so the Master doesn't expand them\n if (uid && overrides.has(uid) && !vevent.getFirstPropertyValue(\"recurrence-id\")) {\n for (const overDate of overrides.get(uid)!) {\n exdates.push(overDate);\n }\n }\n\n // Resolve start/end times\n const startDateUTC = icsEvent.startDate.toJSDate();\n const endDateUTC = icsEvent.endDate ? icsEvent.endDate.toJSDate() : null;\n \n const rawTz = icsEvent.startDate.timezone || \"UTC\";\n \n const baseEvent = {\n uid,\n summary,\n name: summary || \"Untitled Event\",\n description,\n location,\n // Store both UTC (for sorting/comparison) and local (for display)\n start: startDateUTC.toISOString(),\n startLocal: dateToTimezoneString(startDateUTC, displayTimezone),\n end: endDateUTC ? endDateUTC.toISOString() : undefined,\n endLocal: endDateUTC ? dateToTimezoneString(endDateUTC, displayTimezone) : undefined,\n tag: \"ical-event\",\n sourceName: source.name,\n timezone: rawTz,\n rrule: rrule ? rrule.toString() : undefined,\n exdate: exdates.length > 0 ? exdates : undefined\n };\n\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, displayTimezone);\n for (const occurrence of expanded) {\n // Use summary in key to avoid collisions\n const uniqueKey = `${occurrence.start}${occurrence.uid || ''}${occurrence.summary || ''}`;\n occurrence.ref = await sha256Hash(uniqueKey);\n \n // Save our correctly formatted time strings\n const savedTimes = {\n start: occurrence.start,\n startLocal: occurrence.startLocal,\n end: occurrence.end,\n endLocal: occurrence.endLocal\n };\n \n // Convert any remaining Date objects in other fields\n const converted = convertDatesToStrings(occurrence);\n \n // Restore our time strings (don't let them get reconverted)\n converted.start = savedTimes.start;\n converted.startLocal = savedTimes.startLocal;\n converted.end = savedTimes.end;\n converted.endLocal = savedTimes.endLocal;\n \n events.push(converted);\n }\n }\n return events;\n } catch (err: any) {\n console.error(`[iCalendar] Error fetching/parsing ${source.name}:`, err.message || err, err.stack || \"\");\n return [];\n }\n}\n\nexport async function syncCalendars() {\n try {\n const { sources, syncWindowDays, displayTimezone } = await getSources();\n if (sources.length === 0) return;\n \n console.log(`[iCalendar] Using display timezone: ${displayTimezone}`);\n \n // Test timezone conversion\n const testDate = new Date(\"2026-02-21T14:00:00.000Z\"); // 14:00 UTC\n const converted = dateToTimezoneString(testDate, displayTimezone);\n console.log(`[iCalendar] Timezone test: ${testDate.toISOString()} \u2192 ${converted} (should be 06:00 PST)`);\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, displayTimezone);\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:///home/sstent/Projects/silverbullet-icalendar/icalendar.ts\";\nimport {forceSync as forceSync} from \"file:///home/sstent/Projects/silverbullet-icalendar/icalendar.ts\";\nimport {clearCache as clearCache} from \"file:///home/sstent/Projects/silverbullet-icalendar/icalendar.ts\";\nimport {showVersion as showVersion} from \"file:///home/sstent/Projects/silverbullet-icalendar/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.4.7\",\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/ical.js@2.0.1/denonext/ical.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/414bd343a6706205.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 - ical.js@2.0.1 */\nvar ee=class r{static fromString(e){return new r(e)}constructor(e){this.value=e}icaltype=\"binary\";decodeValue(){return this._b64_decode(this.value)}setEncodedValue(e){this.value=this._b64_encode(e)}_b64_encode(e){let t,i,n,s,a,o,l,h,u=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",c=0,d=0,p=\"\",y=[];if(!e)return e;do t=e.charCodeAt(c++),i=e.charCodeAt(c++),n=e.charCodeAt(c++),h=t<<16|i<<8|n,s=h>>18&63,a=h>>12&63,o=h>>6&63,l=63&h,y[d++]=u.charAt(s)+u.charAt(a)+u.charAt(o)+u.charAt(l);while(c>16&255,i=h>>8&255,n=255&h,y[d++]=o==64?String.fromCharCode(t):l==64?String.fromCharCode(t,i):String.fromCharCode(t,i,n);while(ci)-(t12||(i=[0,31,28,31,30,31,30,31,31,30,31,30,31][e],e==2&&(i+=r.isLeapYear(t))),i}static isLeapYear(e){return e<=1752?e%4==0:e%4==0&&e%100!=0||e%400==0}static fromDayOfYear(e,t){let i=t,n=e,s=new r;s.auto_normalize=!1;let a=r.isLeapYear(i)?1:0;if(n<1)return i--,a=r.isLeapYear(i)?1:0,n+=r.daysInYearPassedMonth[a][12],r.fromDayOfYear(n,i);if(n>r.daysInYearPassedMonth[a][12])return a=r.isLeapYear(i)?1:0,n-=r.daysInYearPassedMonth[a][12],i++,r.fromDayOfYear(n,i);s.year=i,s.isDate=!0;for(let o=11;o>=0;o--)if(n>r.daysInYearPassedMonth[a][o]){s.month=o+1,s.day=n-r.daysInYearPassedMonth[a][o];break}return s.auto_normalize=!0,s}static fromStringv2(e){return new r({year:parseInt(e.slice(0,4),10),month:parseInt(e.slice(5,7),10),day:parseInt(e.slice(8,10),10),isDate:!0})}static fromDateString(e){return new r({year:S(e.slice(0,4)),month:S(e.slice(5,7)),day:S(e.slice(8,10)),isDate:!0})}static fromDateTimeString(e,t){if(e.length<19)throw new Error('invalid date-time value: \"'+e+'\"');let i,n;e[19]&&e[19]===\"Z\"?i=_.utcTimezone:t&&(n=t.getParameter(\"tzid\"),t.parent&&(t.parent.name===\"standard\"||t.parent.name===\"daylight\"?i=_.localTimezone:n&&(i=t.parent.getTimeZoneByID(n))));let s={year:S(e.slice(0,4)),month:S(e.slice(5,7)),day:S(e.slice(8,10)),hour:S(e.slice(11,13)),minute:S(e.slice(14,16)),second:S(e.slice(17,19))};return n&&!i&&(s.timezone=n),new r(s,i)}static fromString(e,t){return e.length>10?r.fromDateTimeString(e,t):r.fromDateString(e)}static fromJSDate(e,t){return new r().fromJSDate(e,t)}static fromData=function(e,t){return new r().fromData(e,t)};static now(){return r.fromJSDate(new Date,!1)}static weekOneStarts(e,t){let i=r.fromData({year:e,month:1,day:1,isDate:!0}),n=i.dayOfWeek(),s=t||r.DEFAULT_WEEK_START;return n>r.THURSDAY&&(i.day+=7),s>r.THURSDAY&&(i.day-=7),i.day-=n-s,i}static getDominicalLetter(e){let t=\"GFEDCBA\",i=(e+(e/4|0)+(e/400|0)-(e/100|0)-1)%7;return r.isLeapYear(e)?t[(i+6)%7]+t[i]:t[i]}static#e=null;static get epochTime(){return this.#e||(this.#e=r.fromData({year:1970,month:1,day:1,hour:0,minute:0,second:0,isDate:!1,timezone:\"Z\"})),this.#e}static _cmp_attr(e,t,i){return e[i]>t[i]?1:e[i]=0){o.day=1,s!=0&&s--,a=o.day;let l=e-o.dayOfWeek();l<0&&(l+=7),a+=l,a-=e,i=e}else o.day=n,s++,i=o.dayOfWeek()-e,i<0&&(i+=7),i=n-i;return i+=7*s,a+i}isNthWeekDay(e,t){let i=this.dayOfWeek();return t===0&&i===e||this.nthWeekDay(e,t)===this.day}weekNumber(e){let t,i=(this.year<<12)+(this.month<<8)+(this.day<<3)+e;if(i in r._wnCache)return r._wnCache[i];let n=this.clone();n.isDate=!0;let s=this.year;n.month==12&&n.day>25?(t=r.weekOneStarts(s+1,e),n.compare(t)<0?t=r.weekOneStarts(s,e):s++):(t=r.weekOneStarts(s,e),n.compare(t)<0&&(t=r.weekOneStarts(--s,e)));let a=O(n.subtractDate(t).toSeconds()/86400/7)+1;return r._wnCache[i]=a,a}addDuration(e){let t=e.isNegative?-1:1,i=this.second,n=this.minute,s=this.hour,a=this.day;i+=t*e.seconds,n+=t*e.minutes,s+=t*e.hours,a+=t*e.days,a+=7*t*e.weeks,this.second=i,this.minute=n,this.hour=s,this.day=a,this._cachedUnixTime=null}subtractDate(e){let t=this.toUnixTime()+this.utcOffset(),i=e.toUnixTime()+e.utcOffset();return v.fromSeconds(t-i)}subtractDateTz(e){let t=this.toUnixTime(),i=e.toUnixTime();return v.fromSeconds(t-i)}compare(e){let t=this.toUnixTime(),i=e.toUnixTime();return t>i?1:i>t?-1:0}compareDateOnlyTz(e,t){let i=this.convertToZone(t),n=e.convertToZone(t),s=0;return(s=r._cmp_attr(i,n,\"year\"))!=0||(s=r._cmp_attr(i,n,\"month\"))!=0||(s=r._cmp_attr(i,n,\"day\")),s}convertToZone(e){let t=this.clone(),i=this.zone.tzid==e.tzid;return this.isDate||i||_.convert_time(t,this.zone,e),t.zone=e,t}utcOffset(){return this.zone==_.localTimezone||this.zone==_.utcTimezone?0:this.zone.utcOffset(this)}toICALString(){let e=this.toString();return e.length>10?b.icalendar.value[\"date-time\"].toICAL(e):b.icalendar.value.date.toICAL(e)}toString(){let e=this.year+\"-\"+x(this.month)+\"-\"+x(this.day);return this.isDate||(e+=\"T\"+x(this.hour)+\":\"+x(this.minute)+\":\"+x(this.second),this.zone===_.utcTimezone&&(e+=\"Z\")),e}toJSDate(){return this.zone==_.localTimezone?this.isDate?new Date(this.year,this.month-1,this.day):new Date(this.year,this.month-1,this.day,this.hour,this.minute,this.second,0):new Date(1e3*this.toUnixTime())}_normalize(){return this._time.isDate&&(this._time.hour=0,this._time.minute=0,this._time.second=0),this.adjust(0,0,0,0),this}adjust(e,t,i,n,s){let a,o,l,h,u,c,d,p=0,y=0,m=s||this._time;if(m.isDate||(l=m.second+n,m.second=l%60,a=O(l/60),m.second<0&&(m.second+=60,a--),h=m.minute+i+a,m.minute=h%60,o=O(h/60),m.minute<0&&(m.minute+=60,o--),u=m.hour+t+o,m.hour=u%24,p=O(u/24),m.hour<0&&(m.hour+=24,p--)),m.month>12?y=O((m.month-1)/12):m.month<1&&(y=O(m.month/12)-1),m.year+=y,m.month-=12*y,c=m.day+e+p,c>0)for(;d=r.daysInMonth(m.month,m.year),!(c<=d);)m.month++,m.month>12&&(m.year++,m.month=1),c-=d;else for(;c<=0;)m.month==1?(m.year--,m.month=12):m.month--,c+=r.daysInMonth(m.month,m.year);return m.day=c,this._cachedUnixTime=null,this}fromUnixTime(e){this.zone=_.utcTimezone;let t=new Date(1e3*e);this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this._time.isDate?(this.hour=0,this.minute=0,this.second=0):(this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()),this._cachedUnixTime=null}toUnixTime(){if(this._cachedUnixTime!==null)return this._cachedUnixTime;let e=this.utcOffset(),t=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second-e);return this._cachedUnixTime=t/1e3,this._cachedUnixTime}toJSON(){let e,t=[\"year\",\"month\",\"day\",\"hour\",\"minute\",\"second\",\"isDate\"],i=Object.create(null),n=0,s=t.length;for(;n1)throw new k(\"invalid ical body. component began but did not end\");return e=null,t.length==1?t[0]:t}D.property=function(r,e){let t={component:[[],[]],designSet:e||b.defaultSet};return D._handleContentLine(r,t),t.component[1][0]},D.component=function(r){return D(r)};var k=class extends Error{constructor(e){super(e),this.name=this.constructor.name;try{throw new Error}catch(t){if(t.stack){let i=t.stack.split(`\n`);i.shift(),this.stack=i.join(`\n`)}}}};D.ParserError=k,D._handleContentLine=function(r,e){let t,i,n,s,a,o,l=r.indexOf(\":\"),h=r.indexOf(\";\"),u={};if(h!==-1&&l!==-1&&h>l&&(h=-1),h!==-1){if(n=r.slice(0,Math.max(0,h)).toLowerCase(),a=D._parseParameters(r.slice(Math.max(0,h)),0,e.designSet),a[2]==-1)throw new k(\"Invalid parameters in '\"+r+\"'\");if(u=a[0],t=a[1].length+a[2]+h,(i=r.slice(Math.max(0,t)).indexOf(\":\"))===-1)throw new k(\"Missing parameter value in '\"+r+\"'\");s=r.slice(Math.max(0,t+i+1))}else{if(l===-1)throw new k('invalid line (no token \";\" or \":\") \"'+r+'\"');if(n=r.slice(0,Math.max(0,l)).toLowerCase(),s=r.slice(Math.max(0,l+1)),n===\"begin\"){let E=[s.toLowerCase(),[],[]];return e.stack.length===1?e.component.push(E):e.component[2].push(E),e.stack.push(e.component),e.component=E,void(e.designSet||(e.designSet=b.getDesignSet(e.component[0])))}if(n===\"end\")return void(e.component=e.stack.pop())}let c,d,p,y,m=!1,A=!1;e.designSet.propertyGroups&&n.indexOf(\".\")!==-1?(d=n.split(\".\"),u.group=d[0],p=d[1]):p=n,p in e.designSet.property&&(c=e.designSet.property[p],\"multiValue\"in c&&(m=c.multiValue),\"structuredValue\"in c&&(A=c.structuredValue),s&&\"detectType\"in c&&(o=c.detectType(s))),o||(o=\"value\"in u?u.value.toLowerCase():c?c.defaultType:\"unknown\"),delete u.value,m&&A?(s=D._parseMultiValue(s,A,o,[],m,e.designSet,A),y=[p,u,o,s]):m?(y=[p,u,o],D._parseMultiValue(s,m,o,y,null,e.designSet,!1)):A?(s=D._parseMultiValue(s,A,o,[],null,e.designSet,A),y=[p,u,o,s]):(s=D._parseValue(s,o,e.designSet,!1),y=[p,u,o,s]),e.component[0]!==\"vcard\"||e.component[1].length!==0||n===\"version\"&&s===\"4.0\"||(e.designSet=b.getDesignSet(\"vcard3\")),e.component[1].push(y)},D._parseValue=function(r,e,t,i){return e in t.value&&\"fromICAL\"in t.value[e]?t.value[e].fromICAL(r,i):r},D._parseParameters=function(r,e,t){let i,n,s,a,o,l,h=e,u=0,c={},d=-1;for(;u!==!1&&(u=M(r,\"=\",u+1))!==-1;){if(i=r.slice(h+1,u),i.length==0)throw new k(\"Empty parameter name in '\"+r+\"'\");if(n=i.toLowerCase(),l=!1,o=!1,a=n in t.param&&t.param[n].valueType?t.param[n].valueType:\"text\",n in t.param&&(o=t.param[n].multiValue,t.param[n].multiValueSeparateDQuote&&(l=D._rfc6868Escape('\"'+o+'\"'))),r[u+1]==='\"'){if(d=u+2,u=M(r,'\"',d),o&&u!=-1){let p=!0;for(;p;)r[u+1]==o&&r[u+2]=='\"'?u=M(r,'\"',u+3):p=!1}if(u===-1)throw new k('invalid line (no matching double quote) \"'+r+'\"');s=r.slice(d,u),h=M(r,\";\",u),h===-1&&(u=!1)}else{d=u+1;let p=M(r,\";\",d),y=M(r,\":\",d);y!==-1&&p>y?(p=y,u=!1):p===-1?(p=y===-1?r.length:y,u=!1):(h=p,u=p),s=r.slice(d,p)}if(s=D._rfc6868Escape(s),o){let p=l||o;s=D._parseMultiValue(s,p,a,[],null,t)}else s=D._parseValue(s,a,t);o&&n in c?Array.isArray(c[n])?c[n].push(s):c[n]=[c[n],s]:c[n]=s}return[c,s,d]},D._rfc6868Escape=function(r){return r.replace(/\\^['n^]/g,(function(e){return xe[e]}))},D._parseMultiValue=function(r,e,t,i,n,s,a){let o,l=0,h=0;if(e.length===0)return r;for(;(l=M(r,e,h))!==-1;)o=r.slice(h,l),o=n?D._parseMultiValue(o,n,t,[],null,s,a):D._parseValue(o,t,s,a),i.push(o),h=l+e.length;return o=r.slice(h),o=n?D._parseMultiValue(o,n,t,[],null,s,a):D._parseValue(o,t,s,a),i.push(o),i.length==1?i[0]:i},D._eachLine=function(r,e){let t,i,n,s=r.length,a=r.search(we),o=a;do o=r.indexOf(`\n`,a)+1,n=o>1&&r[o-2]===\"\\r\"?2:1,o===0&&(o=s,n=0),i=r[a],i===\" \"||i===\"\t\"?t+=r.slice(a+1,o-n):(t&&e(null,t),t=r.slice(a,o-n)),a=o;while(o!==s);t=t.trim(),t.length&&e(null,t)};var ve=[\"tzid\",\"location\",\"tznames\",\"latitude\",\"longitude\"],_=class r{static _compare_change_fn(e,t){return e.yeart.year?1:e.montht.month?1:e.dayt.day?1:e.hourt.hour?1:e.minutet.minute?1:e.secondt.second?1:0}static convert_time(e,t,i){if(e.isDate||t.tzid==i.tzid||t==r.localTimezone||i==r.localTimezone)return e.zone=i,e;let n=t.utcOffset(e);return e.adjust(0,0,0,-n),n=i.utcOffset(e),e.adjust(0,0,0,n),null}static fromData(e){return new r().fromData(e)}static#e=null;static get utcTimezone(){return this.#e||(this.#e=r.fromData({tzid:\"UTC\"})),this.#e}static#t=null;static get localTimezone(){return this.#t||(this.#t=r.fromData({tzid:\"floating\"})),this.#t}static adjust_change(e,t,i,n,s){return f.prototype.adjust.call(e,t,i,n,s,e)}static _minimumExpansionYear=-1;static EXTRA_COVERAGE=5;constructor(e){this.wrappedJSObject=this,this.fromData(e)}tzid=\"\";location=\"\";tznames=\"\";latitude=0;longitude=0;component=null;expandedUntilYear=0;icalclass=\"icaltimezone\";fromData(e){if(this.expandedUntilYear=0,this.changes=[],e instanceof N)this.component=e;else{if(e&&\"component\"in e)if(typeof e.component==\"string\"){let t=D(e.component);this.component=new N(t)}else e.component instanceof N?this.component=e.component:this.component=null;for(let t of ve)e&&t in e&&(this[t]=e[t])}return this.component instanceof N&&!this.tzid&&(this.tzid=this.component.getFirstPropertyValue(\"tzid\")),this}utcOffset(e){if(this==r.utcTimezone||this==r.localTimezone||(this._ensureCoverage(e.year),!this.changes.length))return 0;let t={year:e.year,month:e.month,day:e.day,hour:e.hour,minute:e.minute,second:e.second},i=this._findNearbyChange(t),n=-1,s=1;for(;;){let o=W(this.changes[i],!0);if(o.utcOffset=0?n=i:s=-1,s==-1&&n!=-1)break;if(i+=s,i<0)return 0;if(i>=this.changes.length)break}let a=this.changes[n];if(a.utcOffset-a.prevUtcOffset<0&&n>0){let o=W(a,!0);if(r.adjust_change(o,0,0,0,o.prevUtcOffset),r._compare_change_fn(t,o)<0){let l=this.changes[n-1],h=!1;a.is_daylight!=h&&l.is_daylight==h&&(a=l)}}return a.utcOffset}_findNearbyChange(e){let t=H(this.changes,e,r._compare_change_fn);return t>=this.changes.length?this.changes.length-1:t}_ensureCoverage(e){if(r._minimumExpansionYear==-1){let i=f.now();r._minimumExpansionYear=i.year}let t=e;if(tt)&&u);)n.year=u.year,n.month=u.month,n.day=u.day,n.hour=u.hour,n.minute=u.minute,n.second=u.second,n.isDate=u.isDate,r.adjust_change(n,0,0,0,-n.prevUtcOffset),i.push(n)}}else n=o(),n.year=s.year,n.month=s.month,n.day=s.day,n.hour=s.hour,n.minute=s.minute,n.second=s.second,r.adjust_change(n,0,0,0,-n.prevUtcOffset),i.push(n);return i}toString(){return this.tznames?this.tznames:this.tzid}},C=null,te={get count(){return C===null?0:Object.keys(C).length},reset:function(){C=Object.create(null);let r=_.utcTimezone;C.Z=r,C.UTC=r,C.GMT=r},has:function(r){return C!==null&&!!C[r]},get:function(r){return C===null&&this.reset(),C[r]},register:function(r,e){if(C===null&&this.reset(),r instanceof N&&r.name===\"vtimezone\"&&(r=(e=new _(r)).tzid),!(e instanceof _))throw new TypeError(\"timezone must be ICAL.Timezone or ICAL.Component\");C[r]=e},remove:function(r){return C===null?null:delete C[r]}};function q(r){return typeof r==\"number\"&&isNaN(r)}function S(r){let e=parseInt(r,10);if(q(e))throw new Error('Could not extract integer from \"'+r+'\"');return e}function P(r,e){if(r!==void 0)return r instanceof e?r:new e(r)}function M(r,e,t){for(;(t=r.indexOf(e,t))!==-1;){if(!(t>0&&r[t-1]===\"\\\\\"))return t;t+=1}return-1}function H(r,e,t){if(!r.length)return 0;let i,n,s=0,a=r.length-1;for(;s<=a;)if(i=s+Math.floor((a-s)/2),n=t(e,r[i]),n<0)a=i-1;else{if(!(n>0))break;s=i+1}return n<0?i:n>0?i+1:i}function W(r,e){if(r&&typeof r==\"object\"){if(r instanceof Date)return new Date(r.getTime());if(\"clone\"in r)return r.clone();if(Array.isArray(r)){let t=[];for(let i=0;i65535?2:1:(e+=le.newLineChar+\" \"+t.slice(0,Math.max(0,i)),t=t.slice(Math.max(0,i)),i=n=0)}return e.slice(le.newLineChar.length+1)}function x(r){switch(typeof r!=\"string\"&&(typeof r==\"number\"&&(r=parseInt(r)),r=String(r)),r.length){case 0:return\"00\";case 1:return\"0\"+r;default:return r}}function O(r){return r<0?Math.ceil(r):Math.floor(r)}function F(r,e){for(let t in r){let i=Object.getOwnPropertyDescriptor(r,t);i&&!Object.getOwnPropertyDescriptor(e,t)&&Object.defineProperty(e,t,i)}return e}var Ne=Object.freeze({__proto__:null,updateTimezones:function(r){let e,t,i,n,s;if(!r||r.name!==\"vcalendar\")return r;for(e=r.getAllSubcomponents(),t=[],i={},s=0;si)-(i>t)}_normalize(){let e=this.toSeconds(),t=this.factor;for(;e<-43200;)e+=97200;for(;e>50400;)e-=97200;this.fromSeconds(e),e==0&&(this.factor=t)}toICALString(){return b.icalendar.value[\"utc-offset\"].toICAL(this.toString())}toString(){return(this.factor==1?\"+\":\"-\")+x(this.hours)+\":\"+x(this.minutes)}},V=class r extends f{static fromDateAndOrTimeString(e,t){function i(m,A,E){return m?S(m.slice(A,A+E)):null}let n=e.split(\"T\"),s=n[0],a=n[1],o=a?b.vcard.value.time._splitZone(a):[],l=o[0],h=o[1],u=s?s.length:0,c=h?h.length:0,d=s&&s[0]==\"-\"&&s[1]==\"-\",p=h&&h[0]==\"-\",y={year:d?null:i(s,0,4),month:!d||u!=4&&u!=7?u==7||u==10?i(s,5,2):null:i(s,2,2),day:u==5?i(s,3,2):u==7&&d?i(s,5,2):u==10?i(s,8,2):null,hour:p?null:i(h,0,2),minute:p&&c==3?i(h,1,2):c>4?i(h,p?1:3,2):null,second:c==4?i(h,2,2):c==6?i(h,4,2):c==8?i(h,6,2):null};return l=l==\"Z\"?_.utcTimezone:l&&l[3]==\":\"?U.fromString(l):null,new r(y,l,t)}constructor(e,t,i){super(e,t),this.icaltype=i||\"date-and-or-time\"}icalclass=\"vcardtime\";icaltype=\"date-and-or-time\";clone(){return new r(this._time,this.zone,this.icaltype)}_normalize(){return this}utcOffset(){return this.zone instanceof U?this.zone.toSeconds():f.prototype.utcOffset.apply(this,arguments)}toICALString(){return b.vcard.value[this.icaltype].toICAL(this.toString())}toString(){let e,t=this.year,i=this.month,n=this.day,s=this.hour,a=this.minute,o=this.second,l=i!==null,h=n!==null,u=s!==null,c=a!==null,d=o!==null,p=(t!==null?x(t)+(l||h?\"-\":\"\"):l||h?\"--\":\"\")+(l?x(i):\"\")+(h?\"-\"+x(n):\"\"),y=(u?x(s):\"-\")+(u&&c?\":\":\"\")+(c?x(a):\"\")+(u||c?\"\":\"-\")+(c&&d?\":\":\"\")+(d?x(o):\"\");switch(this.zone===_.utcTimezone?e=\"Z\":this.zone instanceof U?e=this.zone.toString():this.zone===_.localTimezone?e=\"\":this.zone instanceof _?e=U.fromSeconds(this.zone.utcOffset(this)).toString():e=\"\",this.icaltype){case\"time\":return y+e;case\"date-and-or-time\":case\"date-time\":return p+(y==\"--\"?\"\":\"T\"+y+e);case\"date\":return p}return null}},J=class r{static _indexMap={BYSECOND:0,BYMINUTE:1,BYHOUR:2,BYDAY:3,BYMONTHDAY:4,BYYEARDAY:5,BYWEEKNO:6,BYMONTH:7,BYSETPOS:8};static _expandMap={SECONDLY:[1,1,1,1,1,1,1,1],MINUTELY:[2,1,1,1,1,1,1,1],HOURLY:[2,2,1,1,1,1,1,1],DAILY:[2,2,2,1,1,1,1,1],WEEKLY:[2,2,2,2,3,3,1,1],MONTHLY:[2,2,2,2,2,3,3,1],YEARLY:[2,2,2,2,2,2,2,2]};static UNKNOWN=0;static CONTRACT=1;static EXPAND=2;static ILLEGAL=3;constructor(e){this.fromData(e)}completed=!1;rule=null;dtstart=null;last=null;occurrence_number=0;by_indices=null;initialized=!1;by_data=null;days=null;days_index=0;fromData(e){if(this.rule=P(e.rule,z),!this.rule)throw new Error(\"iterator requires a (ICAL.Recur) rule\");if(this.dtstart=P(e.dtstart,f),!this.dtstart)throw new Error(\"iterator requires a (ICAL.Time) dtstart\");e.by_data?this.by_data=e.by_data:this.by_data=W(this.rule.parts,!0),e.occurrence_number&&(this.occurrence_number=e.occurrence_number),this.days=e.days||[],e.last&&(this.last=P(e.last,f)),this.by_indices=e.by_indices,this.by_indices||(this.by_indices={BYSECOND:0,BYMINUTE:0,BYHOUR:0,BYDAY:0,BYMONTH:0,BYWEEKNO:0,BYMONTHDAY:0}),this.initialized=e.initialized||!1,this.initialized||this.init()}init(){this.initialized=!0,this.last=this.dtstart.clone();let e=this.by_data;if(\"BYDAY\"in e&&this.sort_byday_rules(e.BYDAY),\"BYYEARDAY\"in e&&(\"BYMONTH\"in e||\"BYWEEKNO\"in e||\"BYMONTHDAY\"in e||\"BYDAY\"in e))throw new Error(\"Invalid BYYEARDAY rule\");if(\"BYWEEKNO\"in e&&\"BYMONTHDAY\"in e)throw new Error(\"BYWEEKNO does not fit to BYMONTHDAY\");if(this.rule.freq==\"MONTHLY\"&&(\"BYYEARDAY\"in e||\"BYWEEKNO\"in e))throw new Error(\"For MONTHLY recurrences neither BYYEARDAY nor BYWEEKNO may appear\");if(this.rule.freq==\"WEEKLY\"&&(\"BYYEARDAY\"in e||\"BYMONTHDAY\"in e))throw new Error(\"For WEEKLY recurrences neither BYMONTHDAY nor BYYEARDAY may appear\");if(this.rule.freq!=\"YEARLY\"&&\"BYYEARDAY\"in e)throw new Error(\"BYYEARDAY may only appear in YEARLY rules\");this.last.second=this.setup_defaults(\"BYSECOND\",\"SECONDLY\",this.dtstart.second),this.last.minute=this.setup_defaults(\"BYMINUTE\",\"MINUTELY\",this.dtstart.minute),this.last.hour=this.setup_defaults(\"BYHOUR\",\"HOURLY\",this.dtstart.hour);let t=this.last.day=this.setup_defaults(\"BYMONTHDAY\",\"DAILY\",this.dtstart.day);if(this.last.month=this.setup_defaults(\"BYMONTH\",\"MONTHLY\",this.dtstart.month),this.rule.freq==\"WEEKLY\")if(\"BYDAY\"in e){let[,i]=this.ruleDayOfWeek(e.BYDAY[0],this.rule.wkst),n=i-this.last.dayOfWeek(this.rule.wkst);(this.last.dayOfWeek(this.rule.wkst)=0||n<0)&&(this.last.day+=n)}else{let i=z.numericDayToIcalDay(this.dtstart.dayOfWeek());e.BYDAY=[i]}if(this.rule.freq==\"YEARLY\"){for(;this.expand_year_days(this.last.year),!(this.days.length>0);)this.increment_year(this.rule.interval);this._nextByYearDay()}if(this.rule.freq==\"MONTHLY\"&&this.has_by_data(\"BYDAY\")){let i=null,n=this.last.clone(),s=f.daysInMonth(this.last.month,this.last.year);for(let a of this.by_data.BYDAY){this.last=n.clone();let[o,l]=this.ruleDayOfWeek(a),h=this.last.nthWeekDay(l,o);if(o>=6||o<=-6)throw new Error(\"Malformed values in BYDAY part\");if(h>s||h<=0){if(i&&i.month==n.month)continue;for(;h>s||h<=0;)this.increment_month(),s=f.daysInMonth(this.last.month,this.last.year),h=this.last.nthWeekDay(l,o)}this.last.day=h,(!i||this.last.compare(i)<0)&&(i=this.last.clone())}if(this.last=i.clone(),this.has_by_data(\"BYMONTHDAY\")&&this._byDayAndMonthDay(!0),this.last.day>s||this.last.day==0)throw new Error(\"Malformed values in BYDAY part\")}else if(this.has_by_data(\"BYMONTHDAY\")){this.last.day=1;let i=f.daysInMonth(this.last.month,this.last.year);if(t<0)this.last.day=i+t+1;else if(this.by_data.BYMONTHDAY[0]>i){if(!this.next_month()&&!this.next_month()&&!this.next_month())throw new Error(\"No possible occurrences\")}else this.last.day=t}}next(){let e,t=this.last?this.last.clone():null;if(this.rule.count&&this.occurrence_number>=this.rule.count||this.rule.until&&this.last.compare(this.rule.until)>0)return this.completed=!0,null;if(this.occurrence_number==0&&this.last.compare(this.dtstart)>=0)return this.occurrence_number++,this.last;do switch(e=1,this.rule.freq){case\"SECONDLY\":this.next_second();break;case\"MINUTELY\":this.next_minute();break;case\"HOURLY\":this.next_hour();break;case\"DAILY\":this.next_day();break;case\"WEEKLY\":this.next_week();break;case\"MONTHLY\":e=this.next_month();break;case\"YEARLY\":this.next_year();break;default:return null}while(!this.check_contracting_rules()||this.last.compare(this.dtstart)<0||!e);if(this.last.compare(t)==0)throw new Error(\"Same occurrence found twice, protecting you from death by recursion\");return this.rule.until&&this.last.compare(this.rule.until)>0?(this.completed=!0,null):(this.occurrence_number++,this.last)}next_second(){return this.next_generic(\"BYSECOND\",\"SECONDLY\",\"second\",\"minute\")}increment_second(e){return this.increment_generic(e,\"second\",60,\"minute\")}next_minute(){return this.next_generic(\"BYMINUTE\",\"MINUTELY\",\"minute\",\"hour\",\"next_second\")}increment_minute(e){return this.increment_generic(e,\"minute\",60,\"hour\")}next_hour(){return this.next_generic(\"BYHOUR\",\"HOURLY\",\"hour\",\"monthday\",\"next_minute\")}increment_hour(e){this.increment_generic(e,\"hour\",24,\"monthday\")}next_day(){let e=this.rule.freq==\"DAILY\";return this.next_hour()==0||(e?this.increment_monthday(this.rule.interval):this.increment_monthday(1)),0}next_week(){let e=0;if(this.next_weekday_by_week()==0)return e;if(this.has_by_data(\"BYWEEKNO\")){this.by_indices.BYWEEKNO++,this.by_indices.BYWEEKNO==this.by_data.BYWEEKNO.length&&(this.by_indices.BYWEEKNO=0,e=1),this.last.month=1,this.last.day=1;let t=this.by_data.BYWEEKNO[this.by_indices.BYWEEKNO];this.last.day+=7*t,e&&this.increment_year(1)}else this.increment_monthday(7*this.rule.interval);return e}normalizeByMonthDayRules(e,t,i){let n,s=f.daysInMonth(t,e),a=[],o=0,l=i.length;for(;os)){if(n<0)n=s+(n+1);else if(n===0)continue;a.indexOf(n)===-1&&a.push(n)}return a.sort((function(h,u){return h-u}))}_byDayAndMonthDay(e){let t,i,n,s,a=this.by_data.BYDAY,o=0,l=a.length,h=0,u=this,c=this.last.day;function d(){for(s=f.daysInMonth(u.last.month,u.last.year),t=u.normalizeByMonthDayRules(u.last.year,u.last.month,u.by_data.BYMONTHDAY),n=t.length;t[o]<=c&&(!e||t[o]!=c)&&os){p();continue}let m=t[o++];if(m>=i){c=m;for(let A=0;Ai&&(this.last.day=1,this.increment_month(),this.is_day_in_byday(this.last)?this.has_by_data(\"BYSETPOS\")&&!this.check_set_position(1)||(e=1):e=0)}else if(this.has_by_data(\"BYMONTHDAY\")){this.by_indices.BYMONTHDAY++,this.by_indices.BYMONTHDAY>=this.by_data.BYMONTHDAY.length&&(this.by_indices.BYMONTHDAY=0,this.increment_month());let t=f.daysInMonth(this.last.month,this.last.year),i=this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY];i<0&&(i=t+i+1),i>t?(this.last.day=1,e=this.is_day_in_byday(this.last)):this.last.day=i}else{this.increment_month();let t=f.daysInMonth(this.last.month,this.last.year);this.by_data.BYMONTHDAY[0]>t?e=0:this.last.day=this.by_data.BYMONTHDAY[0]}return e}next_weekday_by_week(){let e=0;if(this.next_hour()==0)return e;if(!this.has_by_data(\"BYDAY\"))return 1;for(;;){let t=new f;this.by_indices.BYDAY++,this.by_indices.BYDAY==Object.keys(this.by_data.BYDAY).length&&(this.by_indices.BYDAY=0,e=1);let i=this.by_data.BYDAY[this.by_indices.BYDAY],n=this.ruleDayOfWeek(i)[1];n-=this.rule.wkst,n<0&&(n+=7),t.year=this.last.year,t.month=this.last.month,t.day=this.last.day;let s=t.startDoyWeek(this.rule.wkst);if(n+s<1&&!e)continue;let a=f.fromDayOfYear(s+n,this.last.year);return this.last.year=a.year,this.last.month=a.month,this.last.day=a.day,e}}next_year(){if(this.next_hour()==0)return 0;if(++this.days_index==this.days.length){this.days_index=0;do this.increment_year(this.rule.interval),this.expand_year_days(this.last.year);while(this.days.length==0)}return this._nextByYearDay(),1}_nextByYearDay(){let e=this.days[this.days_index],t=this.last.year;e<1&&(e+=1,t+=1);let i=f.fromDayOfYear(e,t);this.last.day=i.day,this.last.month=i.month}ruleDayOfWeek(e,t){let i=e.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);return i?[parseInt(i[1]||0,10),e=z.icalDayToNumericDay(i[2],t)]:[0,0]}next_generic(e,t,i,n,s){let a=e in this.by_data,o=this.rule.freq==t,l=0;if(s&&this[s]()==0)return l;if(a){this.by_indices[e]++;let h=this.by_data[e];this.by_indices[e]==h.length&&(this.by_indices[e]=0,l=1),this.last[i]=h[this.by_indices[e]]}else o&&this[\"increment_\"+i](this.rule.interval);return a&&l&&o&&this[\"increment_\"+n](1),l}increment_monthday(e){for(let t=0;ti&&(this.last.day-=i,this.increment_month())}}increment_month(){if(this.last.day=1,this.has_by_data(\"BYMONTH\"))this.by_indices.BYMONTH++,this.by_indices.BYMONTH==this.by_data.BYMONTH.length&&(this.by_indices.BYMONTH=0,this.increment_year(1)),this.last.month=this.by_data.BYMONTH[this.by_indices.BYMONTH];else{this.rule.freq==\"MONTHLY\"?this.last.month+=this.rule.interval:this.last.month++,this.last.month--;let e=O(this.last.month/12);this.last.month%=12,this.last.month++,e!=0&&this.increment_year(e)}}increment_year(e){this.last.year+=e}increment_generic(e,t,i,n){this.last[t]+=e;let s=O(this.last[t]/i);this.last[t]%=i,s!=0&&this[\"increment_\"+n](s)}has_by_data(e){return e in this.rule.parts}expand_year_days(e){let t=new f;this.days=[];let i={},n=[\"BYDAY\",\"BYWEEKNO\",\"BYMONTHDAY\",\"BYMONTH\",\"BYYEARDAY\"];for(let a of n)a in this.rule.parts&&(i[a]=this.rule.parts[a]);if(\"BYMONTH\"in i&&\"BYWEEKNO\"in i){let a=1,o={};t.year=e,t.isDate=!0;for(let l=0;l0?(d=A+7*(y-1),d<=o&&this.days.push(h+d)):(d=E+7*(y+1),d>0&&this.days.push(h+d))}}this.days.sort((function(a,o){return a-o}))}else if(s==2&&\"BYDAY\"in i&&\"BYMONTHDAY\"in i){let a=this.expand_by_day(e);for(let o of a){let l=f.fromDayOfYear(o,e);this.by_data.BYMONTHDAY.indexOf(l.day)>=0&&this.days.push(o)}}else if(s==3&&\"BYDAY\"in i&&\"BYMONTHDAY\"in i&&\"BYMONTH\"in i){let a=this.expand_by_day(e);for(let o of a){let l=f.fromDayOfYear(o,e);this.by_data.BYMONTH.indexOf(l.month)>=0&&this.by_data.BYMONTHDAY.indexOf(l.day)>=0&&this.days.push(o)}}else if(s==2&&\"BYDAY\"in i&&\"BYWEEKNO\"in i){let a=this.expand_by_day(e);for(let o of a){let l=f.fromDayOfYear(o,e).weekNumber(this.rule.wkst);this.by_data.BYWEEKNO.indexOf(l)&&this.days.push(o)}}else s==3&&\"BYDAY\"in i&&\"BYWEEKNO\"in i&&\"BYMONTHDAY\"in i||(this.days=s==1&&\"BYYEARDAY\"in i?this.days.concat(this.by_data.BYYEARDAY):[])}return 0}expand_by_day(e){let t=[],i=this.last.clone();i.year=e,i.month=1,i.day=1,i.isDate=!0;let n=i.dayOfWeek();i.month=12,i.day=31,i.isDate=!0;let s=i.dayOfWeek(),a=i.dayOfYear();for(let o of this.by_data.BYDAY){let l=this.ruleDayOfWeek(o),h=l[0],u=l[1];if(h==0)for(let c=(u+7-n)%7+1;c<=a;c+=7)t.push(c);else if(h>0){let c;c=u>=n?u-n+1:u-n+8,t.push(c+7*(h-1))}else{let c;h=-h,c=u<=s?a-s+u:a-s+u-7,t.push(c-7*(h-1))}}return t}is_day_in_byday(e){if(this.by_data.BYDAY)for(let t of this.by_data.BYDAY){let i=this.ruleDayOfWeek(t),n=i[0],s=i[1],a=e.dayOfWeek();if(n==0&&s==a||e.nthWeekDay(s,n)==e.day)return 1}return 0}check_set_position(e){return this.has_by_data(\"BYSETPOS\")?this.by_data.BYSETPOS.indexOf(e)!==-1:!1}sort_byday_rules(e){for(let t=0;tthis.ruleDayOfWeek(e[t],this.rule.wkst)[1]){let n=e[t];e[t]=e[i],e[i]=n}}check_contract_restriction(e,t){let i=r._indexMap[e],n=r._expandMap[this.rule.freq][i],s=!1;if(e in this.by_data&&n==r.CONTRACT){let a=this.by_data[e];for(let o of a)if(o==t){s=!0;break}}else s=!0;return s}check_contracting_rules(){let e=this.last.dayOfWeek(),t=this.last.weekNumber(this.rule.wkst),i=this.last.dayOfYear();return this.check_contract_restriction(\"BYSECOND\",this.last.second)&&this.check_contract_restriction(\"BYMINUTE\",this.last.minute)&&this.check_contract_restriction(\"BYHOUR\",this.last.hour)&&this.check_contract_restriction(\"BYDAY\",z.numericDayToIcalDay(e))&&this.check_contract_restriction(\"BYWEEKNO\",t)&&this.check_contract_restriction(\"BYMONTHDAY\",this.last.day)&&this.check_contract_restriction(\"BYMONTH\",this.last.month)&&this.check_contract_restriction(\"BYYEARDAY\",i)}setup_defaults(e,t,i){let n=r._indexMap[e];return r._expandMap[this.rule.freq][n]!=r.CONTRACT&&(e in this.by_data||(this.by_data[e]=[i]),this.rule.freq!=t)?this.by_data[e][0]:i}toJSON(){let e=Object.create(null);return e.initialized=this.initialized,e.rule=this.rule.toJSON(),e.dtstart=this.dtstart.toJSON(),e.by_data=this.by_data,e.days=this.days,e.last=this.last.toJSON(),e.by_indices=this.by_indices,e.occurrence_number=this.occurrence_number,e}},Ie=/^(SU|MO|TU|WE|TH|FR|SA)$/,Be=/^([+-])?(5[0-3]|[1-4][0-9]|[1-9])?(SU|MO|TU|WE|TH|FR|SA)$/,Oe={SU:f.SUNDAY,MO:f.MONDAY,TU:f.TUESDAY,WE:f.WEDNESDAY,TH:f.THURSDAY,FR:f.FRIDAY,SA:f.SATURDAY},Me=Object.fromEntries(Object.entries(Oe).map((r=>r.reverse()))),de=[\"SECONDLY\",\"MINUTELY\",\"HOURLY\",\"DAILY\",\"WEEKLY\",\"MONTHLY\",\"YEARLY\"],z=class r{static fromString(e){let t=this._stringToData(e,!1);return new r(t)}static fromData(e){return new r(e)}static _stringToData(e,t){let i=Object.create(null),n=e.split(\";\"),s=n.length;for(let a=0;a7&&(i-=7),Me[i]}constructor(e){this.wrappedJSObject=this,this.parts={},e&&typeof e==\"object\"&&this.fromData(e)}parts=null;interval=1;wkst=f.MONDAY;until=null;count=null;freq=null;icalclass=\"icalrecur\";icaltype=\"recur\";iterator(e){return new J({rule:this,dtstart:e})}clone(){return new r(this.toJSON())}isFinite(){return!(!this.count&&!this.until)}isByCount(){return!(!this.count||this.until)}addComponent(e,t){let i=e.toUpperCase();i in this.parts?this.parts[i].push(t):this.parts[i]=[t]}setComponent(e,t){this.parts[e.toUpperCase()]=t.slice()}getComponent(e){let t=e.toUpperCase();return t in this.parts?this.parts[t].slice():[]}getNextOccurrence(e,t){let i,n=this.iterator(e);do i=n.next();while(i&&i.compare(t)<=0);return i&&t.zone&&(i.zone=t.zone),i}fromData(e){for(let t in e){let i=t.toUpperCase();i in oe?Array.isArray(e[t])?this.parts[i]=e[t]:this.parts[i]=[e[t]]:this[t]=e[t]}this.interval&&typeof this.interval!=\"number\"&&ae.INTERVAL(this.interval,this),this.wkst&&typeof this.wkst!=\"number\"&&(this.wkst=r.icalDayToNumericDay(this.wkst)),!this.until||this.until instanceof f||(this.until=f.fromString(this.until))}toJSON(){let e=Object.create(null);e.freq=this.freq,this.count&&(e.count=this.count),this.interval>1&&(e.interval=this.interval);for(let[t,i]of Object.entries(this.parts))Array.isArray(i)&&i.length==1?e[t.toLowerCase()]=i[0]:e[t.toLowerCase()]=W(i);return this.until&&(e.until=this.until.toString()),\"wkst\"in this&&this.wkst!==f.DEFAULT_WEEK_START&&(e.wkst=r.numericDayToIcalDay(this.wkst)),e}toString(){let e=\"FREQ=\"+this.freq;this.count&&(e+=\";COUNT=\"+this.count),this.interval>1&&(e+=\";INTERVAL=\"+this.interval);for(let[t,i]of Object.entries(this.parts))e+=\";\"+t+\"=\"+i;return this.until&&(e+=\";UNTIL=\"+this.until.toICALString()),\"wkst\"in this&&this.wkst!==f.DEFAULT_WEEK_START&&(e+=\";WKST=\"+r.numericDayToIcalDay(this.wkst)),e}};function j(r,e,t,i){let n=i;if(i[0]===\"+\"&&(n=i.slice(1)),n=S(n),e!==void 0&&i '+e);if(t!==void 0&&i>t)throw new Error(r+': invalid value \"'+i+'\" must be < '+e);return n}var ae={FREQ:function(r,e,t){if(de.indexOf(r)===-1)throw new Error('invalid frequency \"'+r+'\" expected: \"'+de.join(\", \")+'\"');e.freq=r},COUNT:function(r,e,t){e.count=S(r)},INTERVAL:function(r,e,t){e.interval=S(r),e.interval<1&&(e.interval=1)},UNTIL:function(r,e,t){r.length>10?e.until=b.icalendar.value[\"date-time\"].fromICAL(r):e.until=b.icalendar.value.date.fromICAL(r),t||(e.until=f.fromString(e.until))},WKST:function(r,e,t){if(!Ie.test(r))throw new Error('invalid WKST value \"'+r+'\"');e.wkst=z.icalDayToNumericDay(r)}},oe={BYSECOND:j.bind(void 0,\"BYSECOND\",0,60),BYMINUTE:j.bind(void 0,\"BYMINUTE\",0,59),BYHOUR:j.bind(void 0,\"BYHOUR\",0,23),BYDAY:function(r){if(Be.test(r))return r;throw new Error('invalid BYDAY value \"'+r+'\"')},BYMONTHDAY:j.bind(void 0,\"BYMONTHDAY\",-31,31),BYYEARDAY:j.bind(void 0,\"BYYEARDAY\",-366,366),BYWEEKNO:j.bind(void 0,\"BYWEEKNO\",-53,53),BYMONTH:j.bind(void 0,\"BYMONTH\",1,12),BYSETPOS:j.bind(void 0,\"BYSETPOS\",-366,366)},ie=class r{static fromString(e,t){let i=e.split(\"/\");if(i.length!==2)throw new Error('Invalid string value: \"'+e+'\" must contain a \"/\" char.');let n={start:f.fromDateTimeString(i[0],t)},s=i[1];return v.isValueString(s)?n.duration=v.fromString(s):n.end=f.fromDateTimeString(s,t),new r(n)}static fromData(e){return new r(e)}static fromJSON(e,t,i){function n(s,a){return i?f.fromString(s,a):f.fromDateTimeString(s,a)}return v.isValueString(e[1])?r.fromData({start:n(e[0],t),duration:v.fromString(e[1])}):r.fromData({start:n(e[0],t),end:n(e[1],t)})}constructor(e){if(this.wrappedJSObject=this,e&&\"start\"in e){if(e.start&&!(e.start instanceof f))throw new TypeError(\".start must be an instance of ICAL.Time\");this.start=e.start}if(e&&e.end&&e.duration)throw new Error(\"cannot accept both end and duration\");if(e&&\"end\"in e){if(e.end&&!(e.end instanceof f))throw new TypeError(\".end must be an instance of ICAL.Time\");this.end=e.end}if(e&&\"duration\"in e){if(e.duration&&!(e.duration instanceof v))throw new TypeError(\".duration must be an instance of ICAL.Duration\");this.duration=e.duration}}start=null;end=null;duration=null;icalclass=\"icalperiod\";icaltype=\"period\";clone(){return r.fromData({start:this.start?this.start.clone():null,end:this.end?this.end.clone():null,duration:this.duration?this.duration.clone():null})}getDuration(){return this.duration?this.duration:this.end.subtractDate(this.start)}getEnd(){if(this.end)return this.end;{let e=this.start.clone();return e.addDuration(this.duration),e}}toString(){return this.start+\"/\"+(this.end||this.duration)}toJSON(){return[this.start.toString(),(this.end||this.duration).toString()]}toICALString(){return this.start.toICALString()+\"/\"+(this.end||this.duration).toICALString()}},fe=/\\\\\\\\|\\\\,|\\\\[Nn]/g,me=/\\\\|,|\\n/g;function he(r,e){return{matches:/.*/,fromICAL:function(t,i){return(function(n,s,a){return n.indexOf(\"\\\\\")===-1?n:(a&&(s=new RegExp(s.source+\"|\\\\\\\\\"+a,s.flags)),n.replace(s,ze))})(t,r,i)},toICAL:function(t,i){let n=e;return i&&(n=new RegExp(n.source+\"|\"+i,n.flags)),t.replace(n,(function(s){switch(s){case\"\\\\\":return\"\\\\\\\\\";case\";\":return\"\\\\;\";case\",\":return\"\\\\,\";case`\n`:return\"\\\\n\";default:return s}}))}}}var g={defaultType:\"text\"},Z={defaultType:\"text\",multiValue:\",\"},re={defaultType:\"text\",structuredValue:\";\"},G={defaultType:\"integer\"},X={defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\"]},Q={defaultType:\"date-time\"},w={defaultType:\"uri\"},pe={defaultType:\"utc-offset\"},ye={defaultType:\"recur\"},ge={defaultType:\"date-and-or-time\",allowedTypes:[\"date-time\",\"date\",\"text\"]};function ze(r){switch(r){case\"\\\\\\\\\":return\"\\\\\";case\"\\\\;\":return\";\";case\"\\\\,\":return\",\";case\"\\\\n\":case\"\\\\N\":return`\n`;default:return r}}var ue={categories:Z,url:w,version:g,uid:g},ce={boolean:{values:[\"TRUE\",\"FALSE\"],fromICAL:function(r){return r===\"TRUE\"},toICAL:function(r){return r?\"TRUE\":\"FALSE\"}},float:{matches:/^[+-]?\\d+\\.\\d+$/,fromICAL:function(r){let e=parseFloat(r);return q(e)?0:e},toICAL:function(r){return String(r)}},integer:{fromICAL:function(r){let e=parseInt(r);return q(e)?0:e},toICAL:function(r){return String(r)}},\"utc-offset\":{toICAL:function(r){return r.length<7?r.slice(0,3)+r.slice(4,6):r.slice(0,3)+r.slice(4,6)+r.slice(7,9)},fromICAL:function(r){return r.length<6?r.slice(0,3)+\":\"+r.slice(3,5):r.slice(0,3)+\":\"+r.slice(3,5)+\":\"+r.slice(5,7)},decorate:function(r){return U.fromString(r)},undecorate:function(r){return r.toString()}}},Y=F(ce,{text:he(/\\\\\\\\|\\\\;|\\\\,|\\\\[Nn]/g,/\\\\|;|,|\\n/g),uri:{},binary:{decorate:function(r){return ee.fromString(r)},undecorate:function(r){return r.toString()}},\"cal-address\":{},date:{decorate:function(r,e){return B.strict?f.fromDateString(r,e):f.fromString(r,e)},undecorate:function(r){return r.toString()},fromICAL:function(r){return!B.strict&&r.length>=15?Y[\"date-time\"].fromICAL(r):r.slice(0,4)+\"-\"+r.slice(4,6)+\"-\"+r.slice(6,8)},toICAL:function(r){let e=r.length;return e==10?r.slice(0,4)+r.slice(5,7)+r.slice(8,10):e>=19?Y[\"date-time\"].toICAL(r):r}},\"date-time\":{fromICAL:function(r){if(B.strict||r.length!=8){let e=r.slice(0,4)+\"-\"+r.slice(4,6)+\"-\"+r.slice(6,8)+\"T\"+r.slice(9,11)+\":\"+r.slice(11,13)+\":\"+r.slice(13,15);return r[15]&&r[15]===\"Z\"&&(e+=\"Z\"),e}return Y.date.fromICAL(r)},toICAL:function(r){let e=r.length;if(e!=10||B.strict){if(e>=19){let t=r.slice(0,4)+r.slice(5,7)+r.slice(8,13)+r.slice(14,16)+r.slice(17,19);return r[19]&&r[19]===\"Z\"&&(t+=\"Z\"),t}return r}return Y.date.toICAL(r)},decorate:function(r,e){return B.strict?f.fromDateTimeString(r,e):f.fromString(r,e)},undecorate:function(r){return r.toString()}},duration:{decorate:function(r){return v.fromString(r)},undecorate:function(r){return r.toString()}},period:{fromICAL:function(r){let e=r.split(\"/\");return e[0]=Y[\"date-time\"].fromICAL(e[0]),v.isValueString(e[1])||(e[1]=Y[\"date-time\"].fromICAL(e[1])),e},toICAL:function(r){return r=r.slice(),B.strict||r[0].length!=10?r[0]=Y[\"date-time\"].toICAL(r[0]):r[0]=Y.date.toICAL(r[0]),v.isValueString(r[1])||(B.strict||r[1].length!=10?r[1]=Y[\"date-time\"].toICAL(r[1]):r[1]=Y.date.toICAL(r[1])),r.join(\"/\")},decorate:function(r,e){return ie.fromJSON(r,e,!B.strict)},undecorate:function(r){return r.toJSON()}},recur:{fromICAL:function(r){return z._stringToData(r,!0)},toICAL:function(r){let e=\"\";for(let[t,i]of Object.entries(r))t==\"until\"?i=i.length>10?Y[\"date-time\"].toICAL(i):Y.date.toICAL(i):t==\"wkst\"?typeof i==\"number\"&&(i=z.numericDayToIcalDay(i)):Array.isArray(i)&&(i=i.join(\",\")),e+=t.toUpperCase()+\"=\"+i+\";\";return e.slice(0,Math.max(0,e.length-1))},decorate:function(r){return z.fromData(r)},undecorate:function(r){return r.toJSON()}},time:{fromICAL:function(r){if(r.length<6)return r;let e=r.slice(0,2)+\":\"+r.slice(2,4)+\":\"+r.slice(4,6);return r[6]===\"Z\"&&(e+=\"Z\"),e},toICAL:function(r){if(r.length<8)return r;let e=r.slice(0,2)+r.slice(3,5)+r.slice(6,8);return r[8]===\"Z\"&&(e+=\"Z\"),e}}}),Le=F(ue,{action:g,attach:{defaultType:\"uri\"},attendee:{defaultType:\"cal-address\"},calscale:g,class:g,comment:g,completed:Q,contact:g,created:Q,description:g,dtend:X,dtstamp:Q,dtstart:X,due:X,duration:{defaultType:\"duration\"},exdate:{defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\"],multiValue:\",\"},exrule:ye,freebusy:{defaultType:\"period\",multiValue:\",\"},geo:{defaultType:\"float\",structuredValue:\";\"},\"last-modified\":Q,location:g,method:g,organizer:{defaultType:\"cal-address\"},\"percent-complete\":G,priority:G,prodid:g,\"related-to\":g,repeat:G,rdate:{defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\",\"period\"],multiValue:\",\",detectType:function(r){return r.indexOf(\"/\")!==-1?\"period\":r.indexOf(\"T\")===-1?\"date\":\"date-time\"}},\"recurrence-id\":X,resources:Z,\"request-status\":re,rrule:ye,sequence:G,status:g,summary:g,transp:g,trigger:{defaultType:\"duration\",allowedTypes:[\"duration\",\"date-time\"]},tzoffsetfrom:pe,tzoffsetto:pe,tzurl:w,tzid:g,tzname:g}),I=F(ce,{text:he(fe,me),uri:he(fe,me),date:{decorate:function(r){return V.fromDateAndOrTimeString(r,\"date\")},undecorate:function(r){return r.toString()},fromICAL:function(r){return r.length==8?Y.date.fromICAL(r):r[0]==\"-\"&&r.length==6?r.slice(0,4)+\"-\"+r.slice(4):r},toICAL:function(r){return r.length==10?Y.date.toICAL(r):r[0]==\"-\"&&r.length==7?r.slice(0,4)+r.slice(5):r}},time:{decorate:function(r){return V.fromDateAndOrTimeString(\"T\"+r,\"time\")},undecorate:function(r){return r.toString()},fromICAL:function(r){let e=I.time._splitZone(r,!0),t=e[0],i=e[1];return i.length==6?i=i.slice(0,2)+\":\"+i.slice(2,4)+\":\"+i.slice(4,6):i.length==4&&i[0]!=\"-\"?i=i.slice(0,2)+\":\"+i.slice(2,4):i.length==5&&(i=i.slice(0,3)+\":\"+i.slice(3,5)),t.length!=5||t[0]!=\"-\"&&t[0]!=\"+\"||(t=t.slice(0,3)+\":\"+t.slice(3)),i+t},toICAL:function(r){let e=I.time._splitZone(r),t=e[0],i=e[1];return i.length==8?i=i.slice(0,2)+i.slice(3,5)+i.slice(6,8):i.length==5&&i[0]!=\"-\"?i=i.slice(0,2)+i.slice(3,5):i.length==6&&(i=i.slice(0,3)+i.slice(4,6)),t.length!=6||t[0]!=\"-\"&&t[0]!=\"+\"||(t=t.slice(0,3)+t.slice(4)),i+t},_splitZone:function(r,e){let t,i,n=r.length-1,s=r.length-(e?5:6),a=r[s];return r[n]==\"Z\"?(t=r[n],i=r.slice(0,Math.max(0,n))):r.length>6&&(a==\"-\"||a==\"+\")?(t=r.slice(s),i=r.slice(0,Math.max(0,s))):(t=\"\",i=r),[t,i]}},\"date-time\":{decorate:function(r){return V.fromDateAndOrTimeString(r,\"date-time\")},undecorate:function(r){return r.toString()},fromICAL:function(r){return I[\"date-and-or-time\"].fromICAL(r)},toICAL:function(r){return I[\"date-and-or-time\"].toICAL(r)}},\"date-and-or-time\":{decorate:function(r){return V.fromDateAndOrTimeString(r,\"date-and-or-time\")},undecorate:function(r){return r.toString()},fromICAL:function(r){let e=r.split(\"T\");return(e[0]?I.date.fromICAL(e[0]):\"\")+(e[1]?\"T\"+I.time.fromICAL(e[1]):\"\")},toICAL:function(r){let e=r.split(\"T\");return I.date.toICAL(e[0])+(e[1]?\"T\"+I.time.toICAL(e[1]):\"\")}},timestamp:Y[\"date-time\"],\"language-tag\":{matches:/^[a-zA-Z0-9-]+$/},\"phone-number\":{fromICAL:function(r){return Array.from(r).filter((function(e){return e===\"\\\\\"?void 0:e})).join(\"\")},toICAL:function(r){return Array.from(r).map((function(e){return e===\",\"||e===\";\"?\"\\\\\"+e:e})).join(\"\")}}}),ke=F(ue,{adr:{defaultType:\"text\",structuredValue:\";\",multiValue:\",\"},anniversary:ge,bday:ge,caladruri:w,caluri:w,clientpidmap:re,email:g,fburl:w,fn:g,gender:re,geo:w,impp:w,key:w,kind:g,lang:{defaultType:\"language-tag\"},logo:w,member:w,n:{defaultType:\"text\",structuredValue:\";\",multiValue:\",\"},nickname:Z,note:g,org:{defaultType:\"text\",structuredValue:\";\"},photo:w,related:w,rev:{defaultType:\"timestamp\"},role:g,sound:w,source:w,tel:{defaultType:\"uri\",allowedTypes:[\"uri\",\"text\"]},title:g,tz:{defaultType:\"text\",allowedTypes:[\"text\",\"utc-offset\",\"uri\"]},xml:g}),Pe=F(ce,{binary:Y.binary,date:I.date,\"date-time\":I[\"date-time\"],\"phone-number\":I[\"phone-number\"],uri:Y.uri,text:Y.text,time:Y.time,vcard:Y.text,\"utc-offset\":{toICAL:function(r){return r.slice(0,7)},fromICAL:function(r){return r.slice(0,7)},decorate:function(r){return U.fromString(r)},undecorate:function(r){return r.toString()}}}),Ue=F(ue,{fn:g,n:{defaultType:\"text\",structuredValue:\";\",multiValue:\",\"},nickname:Z,photo:{defaultType:\"binary\",allowedTypes:[\"binary\",\"uri\"]},bday:{defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\"],detectType:function(r){return r.indexOf(\"T\")===-1?\"date\":\"date-time\"}},adr:{defaultType:\"text\",structuredValue:\";\",multiValue:\",\"},label:g,tel:{defaultType:\"phone-number\"},email:g,mailer:g,tz:{defaultType:\"utc-offset\",allowedTypes:[\"utc-offset\",\"text\"]},geo:{defaultType:\"float\",structuredValue:\";\"},title:g,role:g,logo:{defaultType:\"binary\",allowedTypes:[\"binary\",\"uri\"]},agent:{defaultType:\"vcard\",allowedTypes:[\"vcard\",\"text\",\"uri\"]},org:re,note:Z,prodid:g,rev:{defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\"],detectType:function(r){return r.indexOf(\"T\")===-1?\"date\":\"date-time\"}},\"sort-string\":g,sound:{defaultType:\"binary\",allowedTypes:[\"binary\",\"uri\"]},class:g,key:{defaultType:\"binary\",allowedTypes:[\"binary\",\"text\"]}}),L={value:Y,param:{cutype:{values:[\"INDIVIDUAL\",\"GROUP\",\"RESOURCE\",\"ROOM\",\"UNKNOWN\"],allowXName:!0,allowIanaToken:!0},\"delegated-from\":{valueType:\"cal-address\",multiValue:\",\",multiValueSeparateDQuote:!0},\"delegated-to\":{valueType:\"cal-address\",multiValue:\",\",multiValueSeparateDQuote:!0},encoding:{values:[\"8BIT\",\"BASE64\"]},fbtype:{values:[\"FREE\",\"BUSY\",\"BUSY-UNAVAILABLE\",\"BUSY-TENTATIVE\"],allowXName:!0,allowIanaToken:!0},member:{valueType:\"cal-address\",multiValue:\",\",multiValueSeparateDQuote:!0},partstat:{values:[\"NEEDS-ACTION\",\"ACCEPTED\",\"DECLINED\",\"TENTATIVE\",\"DELEGATED\",\"COMPLETED\",\"IN-PROCESS\"],allowXName:!0,allowIanaToken:!0},range:{values:[\"THISANDFUTURE\"]},related:{values:[\"START\",\"END\"]},reltype:{values:[\"PARENT\",\"CHILD\",\"SIBLING\"],allowXName:!0,allowIanaToken:!0},role:{values:[\"REQ-PARTICIPANT\",\"CHAIR\",\"OPT-PARTICIPANT\",\"NON-PARTICIPANT\"],allowXName:!0,allowIanaToken:!0},rsvp:{values:[\"TRUE\",\"FALSE\"]},\"sent-by\":{valueType:\"cal-address\"},tzid:{matches:/^\\//},value:{values:[\"binary\",\"boolean\",\"cal-address\",\"date\",\"date-time\",\"duration\",\"float\",\"integer\",\"period\",\"recur\",\"text\",\"time\",\"uri\",\"utc-offset\"],allowXName:!0,allowIanaToken:!0}},property:Le,propertyGroups:!1},De={value:I,param:{type:{valueType:\"text\",multiValue:\",\"},value:{values:[\"text\",\"uri\",\"date\",\"time\",\"date-time\",\"date-and-or-time\",\"timestamp\",\"boolean\",\"integer\",\"float\",\"utc-offset\",\"language-tag\"],allowXName:!0,allowIanaToken:!0}},property:ke,propertyGroups:!0},_e={value:Pe,param:{type:{valueType:\"text\",multiValue:\",\"},value:{values:[\"text\",\"uri\",\"date\",\"date-time\",\"phone-number\",\"time\",\"boolean\",\"integer\",\"float\",\"utc-offset\",\"vcard\",\"binary\"],allowXName:!0,allowIanaToken:!0}},property:Ue,propertyGroups:!0},B={strict:!0,defaultSet:L,defaultType:\"unknown\",components:{vcard:De,vcard3:_e,vevent:L,vtodo:L,vjournal:L,valarm:L,vtimezone:L,daylight:L,standard:L},icalendar:L,vcard:De,vcard3:_e,getDesignSet:function(r){return r&&r in B.components?B.components[r]:B.defaultSet}},b=B,$=`\\r\n`,Te=\"unknown\",je={'\"':\"^'\",\"\\n\":\"^n\",\"^\":\"^^\"};function T(r){typeof r[0]==\"string\"&&(r=[r]);let e=0,t=r.length,i=\"\";for(;e0&&(r[1][0][0]!==\"version\"||r[1][0][3]!==\"4.0\")&&(o=\"vcard3\"),e=e||b.getDesignSet(o);s0&&typeof e[0]==\"object\"&&\"icaltype\"in e[0]&&this.resetType(e[0].icaltype),this.isDecorated)for(;i=0;a--)i&&s[a][0]!==i||this._removeObjectByIndex(e,n,a)}addSubcomponent(e){this._components||(this._components=[],this._hydratedComponentCount=0),e.parent&&e.parent.removeSubcomponent(e);let t=this.jCal[2].push(e.jCal);return this._components[t-1]=e,this._hydratedComponentCount++,e.parent=this,e}removeSubcomponent(e){let t=this._removeObject(2,\"_components\",e);return t&&this._hydratedComponentCount--,t}removeAllSubcomponents(e){let t=this._removeAllObjects(2,\"_components\",e);return this._hydratedComponentCount=0,t}addProperty(e){if(!(e instanceof R))throw new TypeError(\"must be instance of ICAL.Property\");this._properties||(this._properties=[],this._hydratedPropertyCount=0),e.parent&&e.parent.removeProperty(e);let t=this.jCal[1].push(e.jCal);return this._properties[t-1]=e,this._hydratedPropertyCount++,e.parent=this,e}addPropertyWithValue(e,t){let i=new R(e);return i.setValue(t),this.addProperty(i),i}updatePropertyWithValue(e,t){let i=this.getFirstProperty(e);return i?i.setValue(t):i=this.addPropertyWithValue(e,t),i}removeProperty(e){let t=this._removeObject(1,\"_properties\",e);return t&&this._hydratedPropertyCount--,t}removeAllProperties(e){let t=this._removeAllObjects(1,\"_properties\",e);return this._hydratedPropertyCount=0,t}toJSON(){return this.jCal}toString(){return T.component(this.jCal,this._designSet)}getTimeZoneByID(e){if(this.parent)return this.parent.getTimeZoneByID(e);if(!this._timezoneCache)return null;if(this._timezoneCache.has(e))return this._timezoneCache.get(e);let t=this.getAllSubcomponents(\"vtimezone\");for(let i of t)if(i.getFirstProperty(\"tzid\").getFirstValue()===e){let n=new _({component:i,tzid:e});return this._timezoneCache.set(e,n),n}return null}},ne=class{constructor(e){this.ruleDates=[],this.exDates=[],this.fromData(e)}complete=!1;ruleIterators=null;ruleDates=null;exDates=null;ruleDateInc=0;exDateInc=0;exDate=null;ruleDate=null;dtstart=null;last=null;fromData(e){let t=P(e.dtstart,f);if(!t)throw new Error(\".dtstart (ICAL.Time) must be given\");if(this.dtstart=t,e.component)this._init(e.component);else{if(this.last=P(e.last,f)||t.clone(),!e.ruleIterators)throw new Error(\".ruleIterators or .component must be given\");this.ruleIterators=e.ruleIterators.map((function(i){return P(i,J)})),this.ruleDateInc=e.ruleDateInc,this.exDateInc=e.exDateInc,e.ruleDates&&(this.ruleDates=e.ruleDates.map((i=>P(i,f))),this.ruleDate=this.ruleDates[this.ruleDateInc]),e.exDates&&(this.exDates=e.exDates.map((i=>P(i,f))),this.exDate=this.exDates[this.exDateInc]),e.complete!==void 0&&(this.complete=e.complete)}}next(){let e,t,i,n=0;for(;;){if(n++>500)throw new Error(\"max tries have occurred, rule may be impossible to fulfill.\");if(t=this.ruleDate,e=this._nextRecurrenceIter(this.last),!t&&!e){this.complete=!0;break}if((!t||e&&t.compare(e.last)>0)&&(t=e.last.clone(),e.next()),this.ruleDate===t&&this._nextRuleDay(),this.last=t,!this.exDate||(i=this.exDate.compare(this.last),i<0&&this._nextExDay(),i!==0))return this.last;this._nextExDay()}}toJSON(){function e(i){return i.toJSON()}let t=Object.create(null);return t.ruleIterators=this.ruleIterators.map(e),this.ruleDates&&(t.ruleDates=this.ruleDates.map(e)),this.exDates&&(t.exDates=this.exDates.map(e)),t.ruleDateInc=this.ruleDateInc,t.exDateInc=this.exDateInc,t.last=this.last.toJSON(),t.dtstart=this.dtstart.toJSON(),t.complete=this.complete,t}_extractDates(e,t){let i=[],n=e.getAllProperties(t);for(let s=0,a=n.length;sh.compare(u)));i.splice(l,0,o)}return i}_init(e){if(this.ruleIterators=[],this.last=this.dtstart.clone(),!e.hasProperty(\"rdate\")&&!e.hasProperty(\"rrule\")&&!e.hasProperty(\"recurrence-id\"))return this.ruleDate=this.last.clone(),void(this.complete=!0);if(e.hasProperty(\"rdate\")&&(this.ruleDates=this._extractDates(e,\"rdate\"),this.ruleDates[0]&&this.ruleDates[0].compare(this.dtstart)<0?(this.ruleDateInc=0,this.last=this.ruleDates[0].clone()):this.ruleDateInc=H(this.ruleDates,this.last,((t,i)=>t.compare(i))),this.ruleDate=this.ruleDates[this.ruleDateInc]),e.hasProperty(\"rrule\")){let t,i,n=e.getAllProperties(\"rrule\"),s=0,a=n.length;for(;st.compare(i))),this.exDate=this.exDates[this.exDateInc])}_nextExDay(){this.exDate=this.exDates[++this.exDateInc]}_nextRuleDay(){this.ruleDate=this.ruleDates[++this.ruleDateInc]}_nextRecurrenceIter(){let e=this.ruleIterators;if(e.length===0)return null;let t,i,n,s=e.length,a=0;for(;a0)&&(n=t);return n}},se=class r{constructor(e,t){e instanceof N||(t=e,e=null),this.component=e||new N(\"vevent\"),this._rangeExceptionCache=Object.create(null),this.exceptions=Object.create(null),this.rangeExceptions=[],t&&t.strictExceptions&&(this.strictExceptions=t.strictExceptions),t&&t.exceptions?t.exceptions.forEach(this.relateException,this):this.component.parent&&!this.isRecurrenceException()&&this.component.parent.getAllSubcomponents(\"vevent\").forEach((function(i){i.hasProperty(\"recurrence-id\")&&this.relateException(i)}),this)}static THISANDFUTURE=\"THISANDFUTURE\";exceptions=null;strictExceptions=!1;relateException(e){if(this.isRecurrenceException())throw new Error(\"cannot relate exception to exceptions\");if(e instanceof N&&(e=new r(e)),this.strictExceptions&&e.uid!==this.uid)throw new Error(\"attempted to relate unrelated exception\");let t=e.recurrenceId.toString();if(this.exceptions[t]=e,e.modifiesFuture()){let i=[e.recurrenceId.toUnixTime(),t],n=H(this.rangeExceptions,i,Ye);this.rangeExceptions.splice(n,0,i)}}modifiesFuture(){return this.component.hasProperty(\"recurrence-id\")?this.component.getFirstProperty(\"recurrence-id\").getParameter(\"range\")===r.THISANDFUTURE:!1}findRangeException(e){if(!this.rangeExceptions.length)return null;let t=e.toUnixTime(),i=H(this.rangeExceptions,[t],Ye);if(i-=1,i<0)return null;let n=this.rangeExceptions[i];return te[0]?1:e[0]>r[0]?-1:0}var le={foldLength:75,debug:!1,newLineChar:`\\r\n`,Binary:ee,Component:N,ComponentParser:class{constructor(r){r===void 0&&(r={});for(let[e,t]of Object.entries(r))this[e]=t}parseEvent=!0;parseTimezone=!0;oncomplete=function(){};onerror=function(r){};ontimezone=function(r){};onevent=function(r){};process(r){typeof r==\"string\"&&(r=D(r)),r instanceof N||(r=new N(r));let e,t=r.getAllSubcomponents(),i=0,n=t.length;for(;i=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 ICAL from \"ical.js\";\nimport { RRule, RRuleSet } from \"rrule\";\nimport { getUtcOffsetMs, resolveIanaName } from \"./timezones.ts\";\n\nconst VERSION = \"0.4.8\";\nconst CACHE_KEY = \"icalendar:lastSync\";\n\nconsole.log(`[iCalendar] Plug script executing at top level (Version ${VERSION})`);\n\n/**\n * Mapping of verbose RRULE object keys to standard iCalendar shortened keys.\n */\nconst RRULE_KEY_MAP: Record = {\n \"frequency\": \"FREQ\",\n \"until\": \"UNTIL\",\n \"count\": \"COUNT\",\n \"interval\": \"INTERVAL\",\n \"bysecond\": \"BYSECOND\",\n \"byminute\": \"BYMINUTE\",\n \"byhour\": \"BYHOUR\",\n \"byday\": \"BYDAY\",\n \"bymonthday\": \"BYMONTHDAY\",\n \"byyearday\": \"BYYEARDAY\",\n \"byweekno\": \"BYWEEKNO\",\n \"bymonth\": \"BYMONTH\",\n \"bysetpos\": \"BYSETPOS\",\n \"wkst\": \"WKST\",\n \"workweekstart\": \"WKST\",\n \"freq\": \"FREQ\",\n};\n\n/**\n * Robustly formats an RRULE value for its string representation.\n */\nfunction formatRRuleValue(v: any): string {\n if (Array.isArray(v)) {\n return v.map((item) => formatRRuleValue(item)).join(\",\");\n }\n if (v instanceof Date) {\n return v.toISOString().replace(/[-:]/g, \"\").split(\".\")[0] + \"Z\";\n }\n if (typeof v === \"object\" && v !== null) {\n const val = v.date || v.day || v.value;\n if (val !== undefined) {\n return formatRRuleValue(val);\n }\n }\n return String(v);\n}\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\n/**\n * Converts UTC Date to a specific timezone string\n * Uses toLocaleString for better compatibility\n */\nexport function dateToTimezoneString(date: Date, timezone: string = \"America/Los_Angeles\"): string {\n try {\n // Use toLocaleString which has better worker support\n const localeString = date.toLocaleString('en-US', {\n timeZone: timezone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n });\n \n console.log(`[iCalendar] Converting ${date.toISOString()} to ${timezone}: ${localeString}`);\n \n // Parse the result: \"MM/DD/YYYY, HH:MM:SS\"\n const match = localeString.match(/(\\d{2})\\/(\\d{2})\\/(\\d{4}),\\s*(\\d{2}):(\\d{2}):(\\d{2})/);\n if (match) {\n const [_, month, day, year, hour, minute, second] = match;\n return `${year}-${month}-${day}T${hour}:${minute}:${second}`;\n }\n \n throw new Error(\"Failed to parse toLocaleString result\");\n } catch (err) {\n console.error(`[iCalendar] Error converting to timezone ${timezone}:`, err);\n // Fallback to UTC\n const pad = (n: number) => String(n).padStart(2, \"0\");\n return date.getUTCFullYear() + \"-\" + \n pad(date.getUTCMonth() + 1) + \"-\" + \n pad(date.getUTCDate()) + \"T\" + \n pad(date.getUTCHours()) + \":\" + \n pad(date.getUTCMinutes()) + \":\" + \n pad(date.getUTCSeconds());\n }\n}\n\n/**\n * Recursively converts all Date objects and ISO date strings to strings\n */\nfunction convertDatesToStrings(obj: T): any {\n if (obj === null || obj === undefined) {\n return obj;\n }\n\n if (obj instanceof Date) {\n return obj.toISOString();\n }\n \n if (typeof obj === 'object' && 'date' in obj && (obj as any).date instanceof Date) {\n return (obj as any).date.toISOString();\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 new Date(obj).toISOString();\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, displayTimezone: string }> {\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 // Get user's display timezone, default to America/Los_Angeles (PST)\n const displayTimezone = rawConfig.displayTimezone || \"America/Los_Angeles\";\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, displayTimezone };\n } catch (e) {\n console.error(\"[iCalendar] Error in getSources:\", e);\n return { sources: [], syncWindowDays: 365, displayTimezone: \"America/Los_Angeles\" };\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 * Resolves event end time\n */\nasync function resolveEventEnd(icsEvent: any): Promise {\n if (!icsEvent.end) return null;\n \n // Create a temporary event object with end as start\n const tempEvent = {\n ...icsEvent,\n start: icsEvent.end\n };\n \n return await resolveEventStart(tempEvent);\n}\n\n/**\n * Expands recurring events into individual occurrences.\n */\nexport function expandRecurrences(icsEvent: any, windowDays = 365, displayTimezone = \"America/Los_Angeles\", now = new Date()): any[] {\n const rruleStr = icsEvent.rrule || (icsEvent as any).recurrenceRule;\n if (!rruleStr) return [icsEvent];\n\n try {\n const set = new RRuleSet();\n \n let cleanRule = \"\";\n if (typeof rruleStr === \"string\") {\n cleanRule = rruleStr.replace(/^RRULE:/i, \"\");\n } else if (typeof rruleStr === \"object\" && rruleStr !== null) {\n cleanRule = Object.entries(rruleStr)\n .map(([k, v]) => {\n const standardKey = RRULE_KEY_MAP[k.toLowerCase()] || k.toUpperCase();\n return `${standardKey}=${formatRRuleValue(v)}`;\n })\n .join(\";\");\n } else {\n console.warn(`[iCalendar] Invalid rrule type (${typeof rruleStr}) for event \"${icsEvent.summary || \"Untitled\"}\". Treating as non-recurring.`);\n return [icsEvent];\n }\n \n // Parse the stored UTC time (don't add Z, it's already there)\n const dtstart = new Date(icsEvent.start);\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));\n }\n\n const windowEnd = new Date(now.getTime() + windowDays * 86400000);\n \n // Expand from the event's actual start date up to the window end\n const occurrences = set.between(dtstart, windowEnd, true);\n \n // Calculate duration for recurring events\n const duration = icsEvent.end ? \n new Date(icsEvent.end).getTime() - dtstart.getTime() : \n 0;\n \n const mapped = occurrences.map(occurrenceDate => {\n const endDate = duration > 0 ? new Date(occurrenceDate.getTime() + duration) : null;\n \n return {\n ...icsEvent,\n start: occurrenceDate.toISOString(),\n startLocal: dateToTimezoneString(occurrenceDate, displayTimezone),\n end: endDate ? endDate.toISOString() : undefined,\n endLocal: endDate ? dateToTimezoneString(endDate, displayTimezone) : undefined,\n recurrent: true,\n rrule: undefined,\n };\n });\n \n return mapped;\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, displayTimezone = \"America/Los_Angeles\"): Promise {\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 jcalData = ICAL.parse(text);\n const vcalendar = new ICAL.Component(jcalData);\n const vevents = vcalendar.getAllSubcomponents(\"vevent\");\n\n // First pass: map of UID -> Set of ISO strings for RECURRENCE-ID exceptions\n const overrides = new Map>();\n for (const vevent of vevents) {\n const recId = vevent.getFirstPropertyValue(\"recurrence-id\") as any | null;\n const uid = vevent.getFirstPropertyValue(\"uid\") as string | null;\n if (recId && uid) {\n if (!overrides.has(uid)) overrides.set(uid, new Set());\n overrides.get(uid)!.add(recId.toJSDate().toISOString());\n }\n }\n\n const events: any[] = [];\n for (const vevent of vevents) {\n const icsEvent = new ICAL.Event(vevent);\n const status = vevent.getFirstPropertyValue(\"status\") as string | null;\n const summary = icsEvent.summary || \"\";\n \n // 1. Skip explicitly cancelled events\n if (status?.toUpperCase() === \"CANCELLED\") continue;\n if (summary.toLowerCase().startsWith(\"canceled:\") || summary.toLowerCase().startsWith(\"cancelled:\")) continue;\n\n // 2. Skip declined events (look for PARTSTAT=DECLINED in attendees)\n const attendees = vevent.getAllProperties(\"attendee\");\n let declined = false;\n for (const attendee of attendees) {\n const partstat = attendee.getParameter(\"partstat\");\n if (partstat?.toUpperCase() === \"DECLINED\") {\n // Note: In a multi-user environment, we'd need to check if this is *the* user's status.\n // For a personal plug, we assume any DECLINED attendee means the user declined or the event is out.\n declined = true;\n break;\n }\n }\n if (declined) continue;\n\n // Extract raw properties for recurrence expansion\n const uid = icsEvent.uid;\n const description = icsEvent.description;\n const location = icsEvent.location;\n const rrule = vevent.getFirstPropertyValue(\"rrule\");\n const exdates = vevent.getAllProperties(\"exdate\").map((p: any) => p.getFirstValue().toJSDate().toISOString());\n\n // Add recurrence-id overrides to exdates so the Master doesn't expand them\n if (uid && overrides.has(uid) && !vevent.getFirstPropertyValue(\"recurrence-id\")) {\n for (const overDate of overrides.get(uid)!) {\n exdates.push(overDate);\n }\n }\n\n // Resolve start/end times\n const startDateUTC = icsEvent.startDate.toJSDate();\n const endDateUTC = icsEvent.endDate ? icsEvent.endDate.toJSDate() : null;\n \n const rawTz = icsEvent.startDate.timezone || \"UTC\";\n \n const baseEvent = {\n uid,\n summary,\n name: summary || \"Untitled Event\",\n description,\n location,\n // Store both UTC (for sorting/comparison) and local (for display)\n start: startDateUTC.toISOString(),\n startLocal: dateToTimezoneString(startDateUTC, displayTimezone),\n end: endDateUTC ? endDateUTC.toISOString() : undefined,\n endLocal: endDateUTC ? dateToTimezoneString(endDateUTC, displayTimezone) : undefined,\n tag: \"ical-event\",\n sourceName: source.name,\n timezone: rawTz,\n rrule: rrule ? rrule.toString() : undefined,\n exdate: exdates.length > 0 ? exdates : undefined\n };\n\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, displayTimezone);\n for (const occurrence of expanded) {\n // Use summary in key to avoid collisions\n const uniqueKey = `${occurrence.start}${occurrence.uid || ''}${occurrence.summary || ''}`;\n occurrence.ref = await sha256Hash(uniqueKey);\n \n // Save our correctly formatted time strings\n const savedTimes = {\n start: occurrence.start,\n startLocal: occurrence.startLocal,\n end: occurrence.end,\n endLocal: occurrence.endLocal\n };\n \n // Convert any remaining Date objects in other fields\n const converted = convertDatesToStrings(occurrence);\n \n // Restore our time strings (don't let them get reconverted)\n converted.start = savedTimes.start;\n converted.startLocal = savedTimes.startLocal;\n converted.end = savedTimes.end;\n converted.endLocal = savedTimes.endLocal;\n \n events.push(converted);\n }\n }\n return events;\n } catch (err: any) {\n console.error(`[iCalendar] Error fetching/parsing ${source.name}:`, err.message || err, err.stack || \"\");\n return [];\n }\n}\n\nexport async function syncCalendars() {\n try {\n const { sources, syncWindowDays, displayTimezone } = await getSources();\n if (sources.length === 0) return;\n \n console.log(`[iCalendar] Using display timezone: ${displayTimezone}`);\n \n // Test timezone conversion\n const testDate = new Date(\"2026-02-21T14:00:00.000Z\"); // 14:00 UTC\n const converted = dateToTimezoneString(testDate, displayTimezone);\n console.log(`[iCalendar] Timezone test: ${testDate.toISOString()} \u2192 ${converted} (should be 06:00 PST)`);\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, displayTimezone);\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:///home/sstent/Projects/silverbullet-icalendar/icalendar.ts\";\nimport {forceSync as forceSync} from \"file:///home/sstent/Projects/silverbullet-icalendar/icalendar.ts\";\nimport {clearCache as clearCache} from \"file:///home/sstent/Projects/silverbullet-icalendar/icalendar.ts\";\nimport {showVersion as showVersion} from \"file:///home/sstent/Projects/silverbullet-icalendar/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.4.8\",\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", "base64Encode", "buffer", "binary", "i", "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", "ee", "r", "e", "t", "i", "n", "s", "a", "o", "l", "h", "u", "c", "d", "p", "m", "Se", "Ee", "v", "Ce", "O", "q", "f", "S", "_", "#e", "b", "x", "we", "xe", "D", "k", "E", "A", "M", "ve", "#t", "N", "W", "H", "C", "P", "Ae", "le", "F", "Ne", "U", "V", "J", "z", "K", "be", "Ie", "Be", "Oe", "Me", "de", "oe", "ae", "j", "ie", "fe", "me", "he", "ze", "g", "Z", "re", "G", "X", "Q", "w", "pe", "ye", "ge", "ue", "ce", "Y", "B", "Le", "I", "ke", "Pe", "Ue", "L", "De", "_e", "$", "Te", "je", "T", "R", "ne", "se", "Ye", "m", "P", "v", "t", "r", "n", "i", "o", "V", "o", "tt", "D", "x", "U", "bt", "S", "L", "b", "Mt", "j", "Ot", "Y", "ft", "A", "T", "w", "_", "pe", "At", "ht", "Lt", "me", "X", "wt", "F", "ve", "et", "lt", "be", "C", "kt", "dt", "ct", "gt", "W", "J", "rt", "Ut", "Rt", "we", "H", "ge", "P", "xt", "xe", "Z", "Nt", "Ee", "Te", "De", "u", "d", "y", "o", "s", "p", "I", "Se", "nt", "c", "v", "g", "k", "E", "m", "it", "_t", "Q", "It", "Ct", "$", "Wt", "Tt", "Pt", "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", "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", "VERSION", "CACHE_KEY", "RRULE_KEY_MAP", "formatRRuleValue", "v", "item", "val", "sha256Hash", "str", "data", "hashBuffer", "b", "dateToTimezoneString", "date", "timezone", "localeString", "match", "_", "month", "day", "year", "hour", "minute", "second", "err", "pad", "n", "convertDatesToStrings", "obj", "result", "key", "getSources", "rawConfig", "config_exports", "sources", "syncWindowDays", "displayTimezone", "sourceArray", "expandRecurrences", "icsEvent", "windowDays", "displayTimezone", "now", "rruleStr", "set", "Yt", "cleanRule", "k", "v", "RRULE_KEY_MAP", "formatRRuleValue", "dtstart", "ruleOptions", "p", "exdate", "windowEnd", "occurrences", "duration", "occurrenceDate", "endDate", "dateToTimezoneString", "err", "fetchAndParseCalendar", "source", "response", "text", "jcalData", "le", "vevents", "overrides", "vevent", "recId", "uid", "events", "status", "summary", "attendees", "declined", "attendee", "description", "location", "rrule", "exdates", "overDate", "startDateUTC", "endDateUTC", "rawTz", "baseEvent", "resolveIanaName", "expanded", "occurrence", "uniqueKey", "sha256Hash", "savedTimes", "converted", "convertDatesToStrings", "syncCalendars", "sources", "syncWindowDays", "getSources", "testDate", "editor_exports", "allEvents", "syscalls_exports", "forceSync", "client_store_exports", "CACHE_KEY", "clearCache", "pageKeys", "datastore_exports", "allKeys", "key", "showVersion", "VERSION", "functionMapping", "syncCalendars", "forceSync", "clearCache", "showVersion", "manifest", "plug", "setupMessageListener"] } diff --git a/icalendar.plug.yaml b/icalendar.plug.yaml index 180603a..6b4894d 100644 --- a/icalendar.plug.yaml +++ b/icalendar.plug.yaml @@ -1,5 +1,5 @@ name: icalendar -version: 0.4.7 +version: 0.4.8 author: sstent index: icalendar.ts # Legacy SilverBullet permission name diff --git a/icalendar.ts b/icalendar.ts index 5670aad..667e83c 100644 --- a/icalendar.ts +++ b/icalendar.ts @@ -3,7 +3,7 @@ import ICAL from "ical.js"; import { RRule, RRuleSet } from "rrule"; import { getUtcOffsetMs, resolveIanaName } from "./timezones.ts"; -const VERSION = "0.4.7"; +const VERSION = "0.4.8"; const CACHE_KEY = "icalendar:lastSync"; console.log(`[iCalendar] Plug script executing at top level (Version ${VERSION})`); @@ -328,7 +328,7 @@ async function fetchAndParseCalendar(source: any, windowDays = 365, displayTimez // First pass: map of UID -> Set of ISO strings for RECURRENCE-ID exceptions const overrides = new Map>(); for (const vevent of vevents) { - const recId = vevent.getFirstPropertyValue("recurrence-id") as ICAL.Time | null; + const recId = vevent.getFirstPropertyValue("recurrence-id") as any | null; const uid = vevent.getFirstPropertyValue("uid") as string | null; if (recId && uid) { if (!overrides.has(uid)) overrides.set(uid, new Set());