diff --git a/Library/sstent/icalendar.plug.js b/Library/sstent/icalendar.plug.js deleted file mode 100644 index 1946b80..0000000 --- a/Library/sstent/icalendar.plug.js +++ /dev/null @@ -1,4 +0,0 @@ -var ft=Object.defineProperty;var I=(e,t)=>{for(var n in t)ft(e,n,{get:t[n],enumerable:!0})};function pe(e){let t=atob(e),n=t.length,r=new Uint8Array(n);for(let o=0;o(...r)=>{let o=this.prefix?[this.prefix,...r]:r;this.originalConsole[n](...o),this.captureLog(n,r)};console.log=t("log"),console.info=t("info"),console.warn=t("warn"),console.error=t("error"),console.debug=t("debug")}captureLog(t,n){let r={level:t,timestamp:Date.now(),message:n.map(o=>{if(typeof o=="string")return o;try{return JSON.stringify(o)}catch{return String(o)}}).join(" ")};this.logBuffer.push(r),this.logBuffer.length>this.maxCaptureSize&&this.logBuffer.shift()}async postToServer(t,n){if(this.logBuffer.length>0){let o=[...this.logBuffer];this.logBuffer=[];try{if(!(await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o.map(i=>({...i,source:n})))})).ok)throw new Error("Failed to post logs to server")}catch(s){console.warn("Could not post logs to server",s.message),this.logBuffer.unshift(...o)}}}},ye;function fe(e=""){return ye=new Z(e),ye}var L=e=>{throw new Error("Not initialized yet")},ee=typeof window>"u"&&typeof globalThis.WebSocketPair>"u";typeof Deno>"u"&&(self.Deno={args:[],build:{arch:"x86_64"},env:{get(){}}});var X=new Map,Q=0;ee&&(globalThis.syscall=async(e,...t)=>await new Promise((n,r)=>{Q++,X.set(Q,{resolve:n,reject:r}),L({type:"sys",id:Q,name:e,args:t})}));function ge(e,t,n){ee&&(L=n,self.addEventListener("message",r=>{(async()=>{let o=r.data;switch(o.type){case"inv":{let s=e[o.name];if(!s)throw new Error(`Function not loaded: ${o.name}`);try{let i=await Promise.resolve(s(...o.args||[]));L({type:"invr",id:o.id,result:i})}catch(i){console.error("An exception was thrown as a result of invoking function",o.name,"error:",i.message),L({type:"invr",id:o.id,error:i.message})}}break;case"sysr":{let s=o.id,i=X.get(s);if(!i)throw Error("Invalid request id");X.delete(s),o.error?i.reject(new Error(o.error)):i.resolve(o.result)}break}})().catch(console.error)}),L({type:"manifest",manifest:t}),fe(`[${t.name} plug]`))}async function gt(e,t){if(typeof e!="string"){let n=new Uint8Array(await e.arrayBuffer()),r=n.length>0?J(n):void 0;t={method:e.method,headers:Object.fromEntries(e.headers.entries()),base64Body:r},e=e.url}return syscall("sandboxFetch.fetch",e,t)}globalThis.nativeFetch=globalThis.fetch;function vt(){globalThis.fetch=async function(e,t){let n=t&&t.body?J(new Uint8Array(await new Response(t.body).arrayBuffer())):void 0,r=await gt(e,t&&{method:t.method,headers:t.headers,base64Body:n});return new Response(r.base64Body?pe(r.base64Body):null,{status:r.status,headers:r.headers})}}ee&&vt();var b={};I(b,{alert:()=>tr,configureVimMode:()=>Er,confirm:()=>er,copyToClipboard:()=>mr,deleteLine:()=>pr,dispatch:()=>Qt,downloadFile:()=>kt,filterBox:()=>_t,flashNotification:()=>Vt,fold:()=>or,foldAll:()=>ar,getCurrentEditor:()=>At,getCurrentPage:()=>Et,getCurrentPageMeta:()=>Tt,getCurrentPath:()=>St,getCursor:()=>bt,getRecentlyOpenedPages:()=>ht,getSelection:()=>xt,getText:()=>Ct,getUiOption:()=>rr,goHistory:()=>Ft,hidePanel:()=>jt,insertAtCursor:()=>Zt,insertAtPos:()=>qt,invokeCommand:()=>Dt,isMobile:()=>Sr,moveCursor:()=>Gt,moveCursorToLine:()=>Jt,moveLineDown:()=>gr,moveLineUp:()=>fr,navigate:()=>Ot,newWindow:()=>Ut,openCommandPalette:()=>wt,openPageNavigator:()=>Nt,openSearchPanel:()=>dr,openUrl:()=>Yt,prompt:()=>Xt,rebuildEditorState:()=>Kt,redo:()=>cr,reloadConfigAndCommands:()=>zt,reloadPage:()=>It,reloadUI:()=>Lt,replaceRange:()=>Wt,save:()=>Rt,sendMessage:()=>Tr,setSelection:()=>Mt,setText:()=>Pt,setUiOption:()=>nr,showPanel:()=>$t,showProgress:()=>Ht,toggleComment:()=>yr,toggleFold:()=>sr,undo:()=>ur,unfold:()=>ir,unfoldAll:()=>lr,uploadFile:()=>Bt,vimEx:()=>vr});typeof self>"u"&&(self={syscall:()=>{throw new Error("Not implemented here")}});function l(e,...t){return globalThis.syscall(e,...t)}function Et(){return l("editor.getCurrentPage")}function Tt(){return l("editor.getCurrentPageMeta")}function St(){return l("editor.getCurrentPath")}function ht(){return l("editor.getRecentlyOpenedPages")}function At(){return l("editor.getCurrentEditor")}function Ct(){return l("editor.getText")}function Pt(e,t=!1){return l("editor.setText",e,t)}function bt(){return l("editor.getCursor")}function xt(){return l("editor.getSelection")}function Mt(e,t){return l("editor.setSelection",e,t)}function Dt(e,t){return l("editor.invokeCommand",e,t)}function Rt(){return l("editor.save")}function Ot(e,t=!1,n=!1){return l("editor.navigate",e,t,n)}function Nt(e="page"){return l("editor.openPageNavigator",e)}function wt(){return l("editor.openCommandPalette")}function It(){return l("editor.reloadPage")}function Lt(){return l("editor.reloadUI")}function Kt(){return l("editor.rebuildEditorState")}function zt(){return l("editor.reloadConfigAndCommands")}function Yt(e,t=!1){return l("editor.openUrl",e,t)}function Ut(){return l("editor.newWindow")}function Ft(e){return l("editor.goHistory",e)}function kt(e,t){return l("editor.downloadFile",e,t)}function Bt(e,t){return l("editor.uploadFile",e,t)}function Vt(e,t="info"){return l("editor.flashNotification",e,t)}function _t(e,t,n="",r=""){return l("editor.filterBox",e,t,n,r)}function $t(e,t,n,r=""){return l("editor.showPanel",e,t,n,r)}function jt(e){return l("editor.hidePanel",e)}function Ht(e,t){return l("editor.showProgress",e,t)}function qt(e,t){return l("editor.insertAtPos",e,t)}function Wt(e,t,n){return l("editor.replaceRange",e,t,n)}function Gt(e,t=!1){return l("editor.moveCursor",e,t)}function Jt(e,t=1,n=!1){return l("editor.moveCursorToLine",e,t,n)}function Zt(e,t=!1,n=!1){return l("editor.insertAtCursor",e,t,n)}function Qt(e){return l("editor.dispatch",e)}function Xt(e,t=""){return l("editor.prompt",e,t)}function er(e){return l("editor.confirm",e)}function tr(e){return l("editor.alert",e)}function rr(e){return l("editor.getUiOption",e)}function nr(e,t){return l("editor.setUiOption",e,t)}function or(){return l("editor.fold")}function ir(){return l("editor.unfold")}function sr(){return l("editor.toggleFold")}function ar(){return l("editor.foldAll")}function lr(){return l("editor.unfoldAll")}function ur(){return l("editor.undo")}function cr(){return l("editor.redo")}function dr(){return l("editor.openSearchPanel")}function mr(e){return l("editor.copyToClipboard",e)}function pr(){return l("editor.deleteLine")}function yr(){return l("editor.toggleComment")}function fr(){return l("editor.moveLineUp")}function gr(){return l("editor.moveLineDown")}function vr(e){return l("editor.vimEx",e)}function Er(){return l("editor.configureVimMode")}function Tr(e,t){return l("editor.sendMessage",e,t)}function Sr(){return l("editor.isMobile")}var K={};I(K,{del:()=>xr,get:()=>br,set:()=>Pr});function Pr(e,t){return l("clientStore.set",e,t)}function br(e){return l("clientStore.get",e)}function xr(e){return l("clientStore.delete",e)}var di=new Uint8Array(16);var z={};I(z,{batchDel:()=>Fr,batchDeletePrefix:()=>Vr,batchGet:()=>Yr,batchSet:()=>Kr,del:()=>Ur,get:()=>zr,listFunctions:()=>$r,query:()=>kr,queryDelete:()=>_r,queryLua:()=>Br,set:()=>Lr});function Lr(e,t){return l("datastore.set",e,t)}function Kr(e){return l("datastore.batchSet",e)}function zr(e){return l("datastore.get",e)}function Yr(e){return l("datastore.batchGet",e)}function Ur(e){return l("datastore.delete",e)}function Fr(e){return l("datastore.batchDelete",e)}function kr(e){return l("datastore.query",e)}function Br(e,t,n){return l("datastore.queryLua",e,t,n)}function Vr(e){return l("datastore.batchDeletePrefix",e)}function _r(e,t){return l("datastore.queryDelete",e,t)}function $r(){return l("datastore.listFunctions")}var B={};I(B,{define:()=>Zr,get:()=>qr,has:()=>Jr,insert:()=>Gr,set:()=>Wr});function qr(e,t){return l("config.get",e,t)}function Wr(e,t){return l("config.set",e,t)}function Gr(e,t){return l("config.insert",e,t)}function Jr(e){return l("config.has",e)}function Zr(e,t){return l("config.define",e,t)}var V={};I(V,{ensureFullIndex:()=>tn,getObjectByRef:()=>en,indexObjects:()=>Qr,queryLuaObjects:()=>Xr});function Qr(e,t){return l("index.indexObjects",e,t)}function Xr(e,t,n,r){return l("index.queryLuaObjects",e,t,n,r)}function en(e,t,n){return l("index.getObjectByRef",e,t,n)}function tn(){return l("index.ensureFullIndex")}var P=e=>Object.fromEntries(Object.entries(e).map(([t,n])=>[n,t])),v=e=>Object.keys(e),Pe={action:"ACTION",description:"DESCRIPTION",duration:"DURATION",repeat:"REPEAT",summary:"SUMMARY",trigger:"TRIGGER",attachments:"ATTACH",attendees:"ATTENDEE"},be=P(Pe),xi=v(be),Mi=v(Pe),xe={method:"METHOD",prodId:"PRODID",version:"VERSION",name:"X-WR-CALNAME"},Me=P(xe),Di=v(Me),Ri=v(xe),De={alarms:"ALARM",categories:"CATEGORIES",created:"CREATED",description:"DESCRIPTION",lastModified:"LAST-MODIFIED",location:"LOCATION",exceptionDates:"EXDATE",recurrenceRule:"RRULE",stamp:"DTSTAMP",start:"DTSTART",summary:"SUMMARY",uid:"UID",timeTransparent:"TRANSP",url:"URL",end:"DTEND",duration:"DURATION",geo:"GEO",class:"CLASS",organizer:"ORGANIZER",priority:"PRIORITY",sequence:"SEQUENCE",status:"STATUS",attach:"ATTACH",recurrenceId:"RECURRENCE-ID",attendees:"ATTENDEE",comment:"COMMENT"},Re=P(De),Oi=v(Re),Ni=v(De),Oe={id:"TZID",lastModified:"LAST-MODIFIED",url:"TZURL"},Ne=P(Oe),wi=v(Ne),Ii=v(Oe),we={comment:"COMMENT",name:"TZNAME",offsetFrom:"TZOFFSETFROM",offsetTo:"TZOFFSETTO",recurrenceDate:"RDATE",recurrenceRule:"RRULE",start:"DTSTART"},Ie=P(we),Li=v(Ie),Ki=v(we),Le={byDay:"BYDAY",byHour:"BYHOUR",byMinute:"BYMINUTE",byMonth:"BYMONTH",byMonthday:"BYMONTHDAY",bySecond:"BYSECOND",bySetPos:"BYSETPOS",byWeekNo:"BYWEEKNO",byYearday:"BYYEARDAY",count:"COUNT",frequency:"FREQ",interval:"INTERVAL",until:"UNTIL",workweekStart:"WKST"},Ke=P(Le),zi=v(Ke),Yi=v(Le),ze={categories:"CATEGORIES",created:"CREATED",description:"DESCRIPTION",lastModified:"LAST-MODIFIED",location:"LOCATION",exceptionDates:"EXDATE",recurrenceRule:"RRULE",stamp:"DTSTAMP",start:"DTSTART",summary:"SUMMARY",uid:"UID",url:"URL",duration:"DURATION",geo:"GEO",class:"CLASS",organizer:"ORGANIZER",priority:"PRIORITY",sequence:"SEQUENCE",status:"STATUS",attach:"ATTACH",recurrenceId:"RECURRENCE-ID",attendees:"ATTENDEE",comment:"COMMENT",completed:"COMPLETED",due:"DUE",percentComplete:"PERCENT-COMPLETE"},Ye=P(ze),Ui=v(Ye),Fi=v(ze),Ue={categories:"CATEGORIES",created:"CREATED",description:"DESCRIPTION",lastModified:"LAST-MODIFIED",exceptionDates:"EXDATE",recurrenceRule:"RRULE",stamp:"DTSTAMP",start:"DTSTART",summary:"SUMMARY",uid:"UID",url:"URL",geo:"GEO",class:"CLASS",organizer:"ORGANIZER",sequence:"SEQUENCE",status:"STATUS",attach:"ATTACH",recurrenceId:"RECURRENCE-ID",attendees:"ATTENDEE",comment:"COMMENT"},Fe=P(Ue),ki=v(Fe),Bi=v(Ue),ke={stamp:"DTSTAMP",start:"DTSTART",uid:"UID",url:"URL",organizer:"ORGANIZER",attendees:"ATTENDEE",comment:"COMMENT",end:"DTEND",freeBusy:"FREEBUSY"},Be=P(ke),Vi=v(Be),_i=v(ke),Ve="BEGIN",_e="END",rn="VCALENDAR",$e="VTIMEZONE",nn="STANDARD",on="DAYLIGHT",je="VEVENT",He="VALARM",qe="VTODO",We="VJOURNAL",Ge="VFREEBUSY";var ve=e=>new RegExp(`${Ve}:${e}([\\s\\S]*?)${_e}:${e}`,"g"),sn=e=>new RegExp(`${Ve}:${e}|${_e}:${e}`,"g");var re=/\r\n|\r|\n/;var Ee=` -`,an=":",N=",",ln='"',ne=";";var Te="=";var un=Math.pow(10,8)*24*60*60*1e3,$i=-un,cn=6048e5;var Je=6e4,Ze=36e5,dn=3600,Qe=dn*24,ji=Qe*7,mn=Qe*365.2425,pn=mn/12,Hi=pn*3,Se=Symbol.for("constructDateFrom");function A(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&Se in e?e[Se](t):e instanceof Date?new e.constructor(t):new Date(t)}function d(e,t){return A(t||e,e)}function ie(e,t,n){let r=d(e,n?.in);return isNaN(t)?A(n?.in||e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Xe(e,t,n){let r=d(e,n?.in);if(isNaN(t))return A(n?.in||e,NaN);if(!t)return r;let o=r.getDate(),s=A(n?.in||e,r.getTime());s.setMonth(r.getMonth()+t+1,0);let i=s.getDate();return o>=i?s:(r.setFullYear(s.getFullYear(),s.getMonth(),o),r)}function H(e,t,n){return A(n?.in||e,+d(e)+t)}function yn(e,t,n){return H(e,t*Ze,n)}var fn={};function q(){return fn}function $(e,t){var n,r,o,s;let i=q(),a=t?.weekStartsOn??((r=(n=t?.locale)==null?void 0:n.options)==null?void 0:r.weekStartsOn)??i.weekStartsOn??((s=(o=i.locale)==null?void 0:o.options)==null?void 0:s.weekStartsOn)??0,u=d(e,t?.in),c=u.getDay(),m=(ctypeof r=="object"));return t.map(n)}function vn(e,t){let n=d(e,t?.in);return n.setHours(0,0,0,0),n}function et(e,t,n){let r=d(e,n?.in);return r.setTime(r.getTime()+t*Je),r}function En(e,t,n){return H(e,t*1e3,n)}function se(e,t,n){return ie(e,t*7,n)}function tt(e,t,n){return Xe(e,t*12,n)}function ae(e,t){let n=+d(e)-+d(t);return n<0?-1:n>0?1:n}function he(e,t){let n=d(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function Tn(e,t){let[n,r]=gn(e,t.start,t.end);return{start:n,end:r}}function Sn(e,t){let{start:n,end:r}=Tn(t?.in,e),o=+n>+r,s=o?+n:+r,i=o?r:n;i.setHours(0,0,0,0);let a=t?.step??1;if(!a)return[];a<0&&(a=-a,o=!o);let u=[];for(;+i<=s;)u.push(A(n,i)),i.setDate(i.getDate()+a),i.setHours(0,0,0,0);return o?u.reverse():u}function Ae(e,t){let n=d(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function hn(e,t){let n=d(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function An(e,t){let n=d(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function Cn(e,t){var n,r,o,s;let i=d(e,t?.in),a=i.getFullYear(),u=q(),c=t?.firstWeekContainsDate??((r=(n=t?.locale)==null?void 0:n.options)==null?void 0:r.firstWeekContainsDate)??u.firstWeekContainsDate??((s=(o=u.locale)==null?void 0:o.options)==null?void 0:s.firstWeekContainsDate)??1,m=A(t?.in||e,0);m.setFullYear(a+1,0,c),m.setHours(0,0,0,0);let E=$(m,t),y=A(t?.in||e,0);y.setFullYear(a,0,c),y.setHours(0,0,0,0);let T=$(y,t);return+i>=+E?a+1:+i>=+T?a:a-1}function Pn(e,t){var n,r,o,s;let i=q(),a=t?.firstWeekContainsDate??((r=(n=t?.locale)==null?void 0:n.options)==null?void 0:r.firstWeekContainsDate)??i.firstWeekContainsDate??((s=(o=i.locale)==null?void 0:o.options)==null?void 0:s.firstWeekContainsDate)??1,u=Cn(e,t),c=A(t?.in||e,0);return c.setFullYear(u,0,a),c.setHours(0,0,0,0),$(c,t)}function bn(e,t){let n=d(e,t?.in),r=+$(n,t)-+Pn(n,t);return Math.round(r/cn)+1}function _(e,t){return d(e,t?.in).getDay()}function rt(e,t){let n=d(e,t?.in),r=n.getFullYear(),o=n.getMonth(),s=A(n,0);return s.setFullYear(r,o+1,0),s.setHours(0,0,0,0),s.getDate()}function xn(e,t){return d(e,t?.in).getHours()}function Mn(e,t){return d(e,t?.in).getMinutes()}function nt(e,t){return d(e,t?.in).getMonth()}function Dn(e){return d(e).getSeconds()}function Rn(e,t){return d(e,t?.in).getFullYear()}function On(e,t){return+d(e)==+d(t)}function Nn(e,t,n){let r=d(e,n?.in),o=bn(r,n)-t;return r.setDate(r.getDate()-o*7),d(r,n?.in)}function j(e,t,n){var r,o,s,i;let a=q(),u=n?.weekStartsOn??((o=(r=n?.locale)==null?void 0:r.options)==null?void 0:o.weekStartsOn)??a.weekStartsOn??((i=(s=a.locale)==null?void 0:s.options)==null?void 0:i.weekStartsOn)??0,c=d(e,n?.in),m=c.getDay(),E=(t%7+7)%7,y=7-u,T=t<0||t>6?t-(m+y)%7:(E+y)%7-(m+y)%7;return ie(c,T,n)}function ot(e,t,n){let r=+d(e,n?.in),[o,s]=[+d(t.start,n?.in),+d(t.end,n?.in)].sort((i,a)=>i-a);return r>=o&&r<=s}function wn(e){let t=e/Ze;return Math.trunc(t)}function In(e){let t=e/Je;return Math.trunc(t)}function Ln(e,t,n){let r=d(e,n?.in),o=r.getFullYear(),s=r.getDate(),i=A(n?.in||e,0);i.setFullYear(o,t,15),i.setHours(0,0,0,0);let a=rt(i);return r.setMonth(t,Math.min(s,a)),r}function Kn(e,t,n){let r=d(e,n?.in);return r.setDate(t),r}function zn(e,t,n){let r=d(e,n?.in);return r.setMonth(0),r.setDate(t),r}function Yn(e,t,n){let r=d(e,n?.in);return r.setHours(t),r}function Un(e,t,n){let r=d(e,n?.in);return r.setMinutes(t),r}function Fn(e,t,n){let r=d(e,n?.in);return r.setSeconds(t),r}function kn(e,t,n){return H(e,-t,n)}function Bn(e,t,n){return se(e,-t,n)}var Vn=[nn,on];var _n=["SECONDLY","MINUTELY","HOURLY","DAILY","WEEKLY","MONTHLY","YEARLY"];var it=["SU","MO","TU","WE","TH","FR","SA"];var R=(e,t)=>t===void 0?!1:e>=t,$n=(e,{start:t,end:n},r)=>{if(R(r.length,e.count))return;let o=e.frequency,s=e.interval||1;if(!o)return;let i=t;if(o==="SECONDLY"){for(;i{let o=n.map(({day:s,occurrence:i})=>({occurrence:i,day:it.indexOf(s)}));return e.frequency==="YEARLY"?e.byYearday||e.byMonthday?t.map(s=>s.filter(i=>o.find(({day:a})=>a===_(i)))):e.byWeekNo?t.map(s=>s.flatMap(i=>o.map(({day:a})=>j(i,a,{weekStartsOn:r})))):e.byMonth?t.map(s=>s.flatMap(i=>o.flatMap(({day:a,occurrence:u})=>te(x(Ae(i)),x(he(i)),a,r,u)))):t.map(s=>s.flatMap(i=>o.flatMap(({day:a,occurrence:u})=>te(x(An(i)),x(hn(i)),a,r,u)))):e.frequency==="MONTHLY"?e.byMonthday?t.map(s=>s.filter(i=>o.find(({day:a})=>a===_(i)))):t.map(s=>s.flatMap(i=>o.flatMap(({day:a,occurrence:u})=>te(x(Ae(i)),x(he(i)),a,r,u)))):e.frequency==="WEEKLY"?t.map(s=>s.flatMap(i=>o.map(({day:a})=>j(i,a,{weekStartsOn:r})))):t.map(s=>s.filter(i=>o.find(({day:a})=>a===_(i))))},te=(e,t,n,r,o)=>{if(o!==void 0){if(!(o<0)){let a=j(e,n,{weekStartsOn:r}),u=e>a;return se(a,(o||1)-1+(u?1:0))}let s=j(t,n,{weekStartsOn:r}),i=tx(s)).filter(s=>ot(s,{start:e,end:t})).filter(s=>n===_(s))},x=e=>et(e,-e.getTimezoneOffset()),Hn=(e,t,n)=>e.frequency==="YEARLY"||e.frequency==="MONTHLY"||e.frequency==="WEEKLY"||e.frequency==="DAILY"?t.map(r=>r.flatMap(o=>n.map(s=>Yn(o,s)))):t.map(r=>r.filter(o=>n.includes(xn(o)))),qn=(e,t,n)=>e.frequency==="YEARLY"||e.frequency==="MONTHLY"||e.frequency==="WEEKLY"||e.frequency==="DAILY"||e.frequency==="HOURLY"?t.map(r=>r.flatMap(o=>n.map(s=>Un(o,s)))):t.map(r=>r.filter(o=>n.includes(Mn(o)))),Wn=(e,t,n)=>e.frequency==="YEARLY"?t.map(r=>r.flatMap(o=>n.map(s=>Ln(o,s)))):t.map(r=>r.filter(o=>n.includes(nt(o)))),Gn=(e,t,n)=>e.frequency==="YEARLY"||e.frequency==="MONTHLY"?t.map(r=>r.flatMap(o=>{let s=rt(o);return n.map(i=>i>s?void 0:Kn(o,i)).filter(i=>!!i)})):e.frequency==="WEEKLY"?t:t.map(r=>r.filter(o=>n.includes(nt(o)))),Jn=(e,t,n)=>e.frequency==="YEARLY"||e.frequency==="MONTHLY"||e.frequency==="WEEKLY"||e.frequency==="DAILY"||e.frequency==="HOURLY"||e.frequency==="MINUTELY"?t.map(r=>r.flatMap(o=>n.map(s=>Fn(o,s)))):t.map(r=>r.filter(o=>n.includes(Dn(o)))),Zn=(e,t,n)=>!e.byYearday&&!e.byWeekNo&&!e.byMonthday&&!e.byMonth&&!e.byDay&&!e.byHour&&!e.byMinute&&!e.bySecond?t:t.map(r=>r.sort(ae).filter((o,s)=>n.some(i=>i>0?s===0?!1:s%i===0:s===0?r.length-1+i===0:s%(r.length-1+i)===0))),Qn=(e,t,n,r)=>e.frequency==="YEARLY"?t.map(o=>o.flatMap(s=>n.map(i=>Nn(s,i,{weekStartsOn:r})))):t,Xn=(e,t,n)=>e.frequency==="YEARLY"?t.map(r=>r.flatMap(o=>n.map(s=>zn(o,s)))):e.frequency==="MONTHLY"||e.frequency==="WEEKLY"||e.frequency==="DAILY"?t:t.map(r=>r.filter(o=>n.includes(Rn(o)))),eo=(e,t,n)=>{let r=n;return e.byMonth&&(r=Wn(e,r,e.byMonth)),e.byWeekNo&&(r=Qn(e,r,e.byWeekNo,t.weekStartsOn)),e.byYearday&&(r=Xn(e,r,e.byYearday)),e.byMonthday&&(r=Gn(e,r,e.byMonthday)),e.byDay&&(r=jn(e,r,e.byDay,t.weekStartsOn)),e.byHour&&(r=Hn(e,r,e.byHour)),e.byMinute&&(r=qn(e,r,e.byMinute)),e.bySecond&&(r=Jn(e,r,e.bySecond)),e.bySetPos&&(r=Zn(e,r,e.bySetPos)),r.map(o=>o.sort(ae).filter(s=>!(t.exceptions.length>0&&t.exceptions.some(i=>On(i,s))||!ot(s,{start:t.start,end:t.end}))))},to=2,ro=(e,t)=>{var n;let r=t.start,o=((n=e.until)==null?void 0:n.date)||t?.end||tt(r,to),s=t.exceptions||[],i=(e.workweekStart?it.indexOf(e.workweekStart):1)%7,a=[[r]];$n(e,{start:r,end:o},a);let u=eo(e,{start:r,end:o,exceptions:s,weekStartsOn:i},a);return e.count?u.flat().splice(0,e.count):u.flat()},no=(e,t)=>t.flatMap(n=>!n.recurrenceRule||n.recurrenceRule.until&&n.recurrenceRule.until.date({...n,start:r}))),oe=e=>{let t=e[0]==="+"?1:-1,n=Number(e.slice(1,3)),r=e.length>3?Number(e.slice(3,5)):0,o=e.length>5?Number(e.slice(5,7)):0;return((n*60+r)*60+o)*1e3*t},oo=(e,t)=>{let n="en-US",r=new Date(t.toLocaleString(n,{timeZone:"UTC"}));try{return new Date(t.toLocaleString(n,{timeZone:e})).getTime()-r.getTime()}catch{return t.getTime()-r.getTime()}},io=(e,t,n)=>{let r=n?.find(s=>s.id===t);if(r){let s=no(e,r.props).sort((u,c)=>ae(u.start,c.start));for(let u=0;u5?c.substring(0,5):c;return{offset:m,milliseconds:oe(m)}}let i=s[s.length-1].offsetTo,a=i.length>5?i.substring(0,5):i;return{offset:a,milliseconds:oe(a)}}let o=oo(t,e);if(!Number.isNaN(o)){let s=o<0,i=Math.abs(wn(o)),a=Math.abs(In(o))-i*60,u=i.toString().length===1?`0${i}`:i.toString(),c=a.toString().length===1?`0${a}`:a.toString();return{offset:`${s?"-":"+"}${u}${c}`,milliseconds:o}}};var p=(e,t)=>{if(e===void 0)return t;let n=e["~standard"].validate(t);if(n instanceof Promise)throw new TypeError("Schema validation must be synchronous");if(n.issues)throw new Error(JSON.stringify(n.issues,null,2));return n.value},so=(e,t)=>{var n,r,o,s;let i=((n=t.options)==null?void 0:n.VALUE)==="BINARY"?{type:"binary",encoding:((r=t.options)==null?void 0:r.ENCODING)||"BASE64",binary:t.value,value:(o=t.options)==null?void 0:o.VALUE}:{type:"uri",url:t.value,formatType:(s=t.options)==null?void 0:s.FMTTYPE};return p(e,i)},O=e=>e.replace(/mailto:/gi,""),F=(e,t)=>{var n,r,o,s,i,a,u,c,m,E,y;return p(e,{email:O(t.value),delegatedFrom:(n=t.options)!=null&&n["DELEGATED-FROM"]?O((r=t.options)==null?void 0:r["DELEGATED-FROM"]):void 0,dir:(o=t.options)==null?void 0:o.DIR,member:(s=t.options)!=null&&s.MEMBER?O(t.options.MEMBER):void 0,name:(i=t.options)==null?void 0:i.CN,partstat:(a=t.options)==null?void 0:a.PARTSTAT,role:(u=t.options)==null?void 0:u.ROLE,sentBy:(c=t.options)!=null&&c["SENT-BY"]?O(t.options["SENT-BY"]):void 0,rsvp:(m=t.options)!=null&&m.RSVP?((E=t.options)==null?void 0:E.RSVP)==="TRUE"?!0:((y=t.options)==null?void 0:y.RSVP)==="FALSE"?!1:void 0:void 0})},k=(e,t)=>{let n=t.value,r={};n[0]==="-"&&(r.before=!0,n=n.slice(1)),n=n.slice(1);let o=n.split("T"),s=o[0];if(s.includes("D")){let[a,u]=s.split("D");r.days=Number(a),s=u}if(s.includes("W")){let[a,u]=s.split("W");r.weeks=Number(a),s=u}let i=o[1];if(i){if(i.includes("H")){let[a,u]=i.split("H");r.hours=Number(a),i=u}if(i.includes("M")){let[a,u]=i.split("M");r.minutes=Number(a),i=u}if(i.includes("S")){let[a,u]=i.split("S");r.seconds=Number(a),i=u}}return p(e,r)},ao=(e,t)=>{let n=Number.parseInt(t.value.slice(0,4),10),r=Number.parseInt(t.value.slice(4,6),10)-1,o=Number.parseInt(t.value.slice(6,8),10),s=new Date(Date.UTC(n,r,o));return p(e,s)},Y=(e,t)=>{let n=Number.parseInt(t.value.slice(0,4),10),r=Number.parseInt(t.value.slice(4,6),10)-1,o=Number.parseInt(t.value.slice(6,8),10),s=Number.parseInt(t.value.slice(9,11),10),i=Number.parseInt(t.value.slice(11,13),10),a=Number.parseInt(t.value.slice(13,15),10),u=new Date(Date.UTC(n,r,o,s,i,a));return p(e,u)},lo=(e,t,n)=>{let r=oe(n),o=Y(void 0,t),s=kn(o,r);return p(e,s)},uo=(e,t)=>{var n,r,o,s,i,a;if(((n=e.options)==null?void 0:n.VALUE)==="DATE")return{date:ao(void 0,e),type:(r=e.options)==null?void 0:r.VALUE};let u=((o=e.options)==null?void 0:o.VALUE)||"DATE-TIME",c=Y(void 0,e);if(!((s=e.options)!=null&&s.TZID))return{date:c,type:u};let m=io(c,e.options.TZID,t?.timezones);return m?{date:H(c,-m.milliseconds),type:u,local:(i=e.options)!=null&&i.TZID?{date:c,timezone:(a=e.options)==null?void 0:a.TZID,tzoffset:m.offset}:void 0}:{date:c,type:u}},f=(e,t,n)=>p(e,uo(t,n)),co=(e,t,n)=>{var r,o,s,i;let a=((r=t.options)==null?void 0:r.VALUE)==="DATE-TIME"||((o=t.options)==null?void 0:o.VALUE)==="DATE"?{type:"absolute",value:f(void 0,t,n),options:{related:(s=t.options)==null?void 0:s.RELATED}}:{type:"relative",value:k(void 0,t),options:{related:(i=t.options)==null?void 0:i.RELATED}};return p(e,a)},mo=e=>e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e,st=e=>e.map(t=>{let[n,...r]=t.split(Te),o=r.join(Te);return{property:n,value:mo(o)}},{}),po=e=>e.reduce((t,n)=>(t[n.property]=n.value,t),{}),yo=e=>po(st(e)),fo=e=>{let t=!1,n;for(let s=0;s{let{property:t,value:n}=fo(e);if(t.includes(ne)){let[r,...o]=t.split(ne),s=yo(o);return{property:r,line:{options:s,value:n}}}return{property:t,line:{value:n}}},Ce=e=>/^[ \t]/.test(e),vo=e=>/^[A-Z]+(?:-[A-Z]+)*[:;]/.test(e),Eo=e=>{let t=[],n=e.split(re);for(;n[0]==="";)n.shift();let r=n.length;for(;r>0&&n[r-1]==="";)r-=1,n.pop();for(let o=0;oo!=="")},To=(e,t,n)=>{if(!t)return e;let r={};return Object.entries(t).forEach(([o,s])=>{let i=Object.entries(n||{}).find(([c,m])=>m.name===o);if(!i){r[So(o)]=s.value;return}let a=i[1].convert(s),u=i[1].schema;if(!u){r[i[0]]=a;return}r[i[0]]=p(u,a)}),e.nonStandard=r,e},So=e=>{let t=e.startsWith("X-")?e.slice(2):e,n="",r=!1;for(let o of t)o==="-"?r=!0:(n+=r?o.toUpperCase():o.toLowerCase(),r=!1);return n},ho=e=>e.startsWith("X-"),M=(e,t,n)=>{let r=t.replace(sn(n?.icsComponent),""),o=[...new Set(Object.values(n.childComponents||{}).flatMap(({icsComponent:E})=>E))],s=Eo(o.reduce((E,y)=>E.replace(ve(y),""),r)),i=n.defaultValues||{},a={};s.forEach(E=>{var y,T;let{property:S,line:C}=go(E);ho(S)&&(a[S]=C);let g=n.objectKeyMap[S];if(!g)return;let w=(y=n.convertArrayValues)==null?void 0:y[g];if(w){let D=w({line:C});if(!D)return;(i[g]===void 0||i[g]===null||!Array.isArray(i[g]))&&(i[g]=[]),Array.isArray(D)?i[g].push(...D):i[g].push(D);return}let me=(T=n.convertValues)==null?void 0:T[g];if(me){let D=me({line:C});if(!D)return;i[g]=D;return}i[g]=C.value});let u=n.childComponents,c=u?Object.keys(u||{}):[];u&&c.length>0&&c.forEach(E=>{let y=u?.[E];if(!y)return;let T=Array.isArray(y.icsComponent)?y.icsComponent:[y.icsComponent],S=[],C=[];T.forEach(g=>{C.push(...r.matchAll(ve(g)))}),C.map(g=>g[0]).forEach(g=>{let w=y.convert(g,{data:i});w&&S.push(w)}),S.length!==0&&(i[E]=S)});let m=p(e,i);return n!=null&&n.nonStandard?To(m,a,n?.nonStandard):m},W=(e,t)=>{var n,r,o;return p(e,{name:(n=t.options)==null?void 0:n.CN,dir:(r=t.options)==null?void 0:r.DIR,sentBy:(o=t.options)!=null&&o["SENT-BY"]?O(t.options["SENT-BY"]):void 0,email:O(t.value)})},le=(e,t,n)=>{var r;return p(e,{value:f(void 0,t,n),range:(r=t.options)==null?void 0:r.RANGE})},Ao=e=>{if(e.length===2)return{day:e};let t=e.slice(0,-2);return{day:e.replace(t,""),occurrence:Number(t)}},Co=(e,t)=>p(e,Ao(t.value)),Po=(e,t)=>p(e,t.value),bo=["until"],xo=e=>bo.includes(e),Mo=["bySecond","byMinute","byHour","byMonthday","byYearday","byWeekNo","bySetPos"],Do=e=>Mo.includes(e),Ro=["byDay"],Oo=e=>Ro.includes(e),No=["count","interval"],wo=e=>No.includes(e),G=(e,t,n)=>{let r={};return st(t.value.split(ne)).forEach(o=>{let{property:s,value:i}=o,a=Ke[s];if(a){if(xo(a)){r[a]=f(void 0,{value:i,options:{VALUE:i.includes("T")?"DATE-TIME":"DATE"}},{timezones:n?.timezones});return}if(Do(a)){r[a]=i.split(N).map(u=>Number(u));return}if(a==="byMonth"){r[a]=i.split(N).map(u=>Number(u)-1);return}if(Oo(a)){r[a]=i.split(N).map(u=>Co(void 0,{value:u}));return}if(wo(a)){r[a]=Number(i);return}if(a==="frequency"){if(!i||!_n.includes(i))return;r[a]=i;return}if(a==="workweekStart"){r[a]=Po(void 0,{value:i});return}}}),p(e,r)},ue=(e,t)=>p(e,t.value),Io=(e,t)=>p(e,t.value),ce=(e,t,n)=>p(e,t.value.split(",").map(r=>f(void 0,{value:r,options:t.options},n))),Lo=(e,t)=>p(e,t.value),Ko=(e,t)=>p(e,t.value),zo=(e,t)=>p(e,t.value),U=(e,t)=>p(e,Number.parseInt(t.value,10)),Yo=e=>e.replace(/\\(([,;\\])|([nN]))/g,(t,n,r)=>r||` -`),h=(e,t)=>p(e,Yo(t.value)),Uo=(...e)=>{let[t,n,r]=e;return M(t,n,{icsComponent:He,objectKeyMap:be,convertValues:{trigger:({line:o})=>co(void 0,o,{timezones:r?.timezones}),duration:({line:o})=>k(void 0,o),repeat:({line:o})=>U(void 0,o)},convertArrayValues:{attachments:({line:o})=>so(void 0,o),attendees:({line:o})=>F(void 0,o)},nonStandard:r?.nonStandard,timezones:r?.timezones})},Fo=(...e)=>{let[t,n,r]=e,o,s=M(t,n,{icsComponent:je,objectKeyMap:Re,convertValues:{stamp:({line:i})=>f(void 0,i,{timezones:r?.timezones}),start:({line:i})=>f(void 0,i,{timezones:r?.timezones}),end:({line:i})=>f(void 0,i,{timezones:r?.timezones}),created:({line:i})=>f(void 0,i,{timezones:r?.timezones}),lastModified:({line:i})=>f(void 0,i,{timezones:r?.timezones}),categories:({line:i})=>i.value.split(N),description:({line:i})=>{var a;return(a=i.options)!=null&&a.ALTREP&&(o=i.options.ALTREP),h(void 0,i)},location:({line:i})=>h(void 0,i),comment:({line:i})=>h(void 0,i),summary:({line:i})=>h(void 0,i),recurrenceRule:({line:i})=>G(void 0,i,{timezones:r?.timezones}),duration:({line:i})=>k(void 0,i),organizer:({line:i})=>W(void 0,i),sequence:({line:i})=>U(void 0,i),class:({line:i})=>ue(void 0,i),recurrenceId:({line:i})=>le(void 0,i,{timezones:r?.timezones}),status:({line:i})=>Lo(void 0,i),timeTransparent:({line:i})=>Io(void 0,i)},convertArrayValues:{attendees:({line:i})=>F(void 0,i),exceptionDates:({line:i})=>ce(void 0,i,{timezones:r?.timezones})},childComponents:{alarms:{icsComponent:He,convert:i=>Uo(void 0,i,{nonStandard:r?.nonStandard,timezones:r?.timezones})}},timezones:r?.timezones,nonStandard:r?.nonStandard});return o&&(s.descriptionAltRep=o),s},ko=(...e)=>{let[t,n,r]=e,o=n.split("BEGIN:")[1].split(re)[0],s=Vn.includes(o)?o:"STANDARD",i=n.split("TZOFFSETTO:")[1].split(re)[0];return M(t,n,{icsComponent:s,objectKeyMap:Ie,defaultValues:{type:s},convertValues:{start:({line:a})=>lo(void 0,a,i),recurrenceRule:({line:a})=>G(void 0,a,{timezones:r?.timezones}),recurrenceDate:({line:a})=>f(void 0,a,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},Bo=(...e)=>{let[t,n,r]=e;return M(t,n,{icsComponent:$e,objectKeyMap:Ne,convertValues:{lastModified:({line:o})=>Y(void 0,o)},childComponents:{props:{icsComponent:["DAYLIGHT","STANDARD"],convert:o=>ko(void 0,o,{nonStandard:r?.nonStandard,timezones:r?.timezones})}},nonStandard:r?.nonStandard,timezones:r?.timezones})},Vo=(...e)=>{let[t,n,r]=e;return M(t,n,{icsComponent:qe,objectKeyMap:Ye,convertValues:{stamp:({line:o})=>f(void 0,o,{timezones:r?.timezones}),start:({line:o})=>f(void 0,o,{timezones:r?.timezones}),due:({line:o})=>f(void 0,o,{timezones:r?.timezones}),created:({line:o})=>f(void 0,o,{timezones:r?.timezones}),lastModified:({line:o})=>f(void 0,o,{timezones:r?.timezones}),completed:({line:o})=>f(void 0,o,{timezones:r?.timezones}),categories:({line:o})=>o.value.split(N),description:({line:o})=>h(void 0,o),location:({line:o})=>h(void 0,o),comment:({line:o})=>h(void 0,o),summary:({line:o})=>h(void 0,o),recurrenceRule:({line:o})=>G(void 0,o,{timezones:r?.timezones}),duration:({line:o})=>k(void 0,o),organizer:({line:o})=>W(void 0,o),sequence:({line:o})=>U(void 0,o),percentComplete:({line:o})=>U(void 0,o),class:({line:o})=>ue(void 0,o),recurrenceId:({line:o})=>le(void 0,o,{timezones:r?.timezones}),status:({line:o})=>Ko(void 0,o)},convertArrayValues:{attendees:({line:o})=>F(void 0,o),exceptionDates:({line:o})=>ce(void 0,o,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},_o=(...e)=>{let[t,n,r]=e;return M(t,n,{icsComponent:We,objectKeyMap:Fe,convertValues:{stamp:({line:o})=>f(void 0,o,{timezones:r?.timezones}),start:({line:o})=>f(void 0,o,{timezones:r?.timezones}),created:({line:o})=>f(void 0,o,{timezones:r?.timezones}),lastModified:({line:o})=>f(void 0,o,{timezones:r?.timezones}),categories:({line:o})=>o.value.split(N),description:({line:o})=>h(void 0,o),comment:({line:o})=>h(void 0,o),summary:({line:o})=>h(void 0,o),recurrenceRule:({line:o})=>G(void 0,o,{timezones:r?.timezones}),organizer:({line:o})=>W(void 0,o),sequence:({line:o})=>U(void 0,o),class:({line:o})=>ue(void 0,o),recurrenceId:({line:o})=>le(void 0,o,{timezones:r?.timezones}),status:({line:o})=>zo(void 0,o)},convertArrayValues:{attendees:({line:o})=>F(void 0,o),exceptionDates:({line:o})=>ce(void 0,o,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},$o=(e,t)=>{var n;return p(e,{type:(n=t.options)==null?void 0:n.FBTYPE,values:t.value.split(",").map(r=>{let[o,s]=r.split("/"),i=Y(void 0,{value:o});if(s.startsWith("PT")){let u=k(void 0,{value:s});return{start:i,duration:u}}let a=Y(void 0,{value:s});return{start:i,end:a}})})},jo=(...e)=>{let[t,n,r]=e;return M(t,n,{icsComponent:Ge,objectKeyMap:Be,convertValues:{stamp:({line:o})=>f(void 0,o,{timezones:r?.timezones}),start:({line:o})=>f(void 0,o,{timezones:r?.timezones}),end:({line:o})=>f(void 0,o,{timezones:r?.timezones}),comment:({line:o})=>h(void 0,o),organizer:({line:o})=>W(void 0,o)},convertArrayValues:{attendees:({line:o})=>F(void 0,o),freeBusy:({line:o})=>$o(void 0,o)},nonStandard:r?.nonStandard,timezones:r?.timezones})},at=(...e)=>{let[t,n,r]=e;return M(t,n,{icsComponent:rn,objectKeyMap:Me,convertValues:{version:({line:o})=>o.value},childComponents:{timezones:{icsComponent:$e,convert:o=>Bo(void 0,o,{nonStandard:r?.nonStandard})},events:{icsComponent:je,convert:(o,{data:s})=>Fo(void 0,o,{nonStandard:r?.nonStandard,timezones:s.timezones})},todos:{icsComponent:qe,convert:(o,{data:s})=>Vo(void 0,o,{nonStandard:r?.nonStandard,timezones:s.timezones})},journals:{icsComponent:We,convert:(o,{data:s})=>_o(void 0,o,{nonStandard:r?.nonStandard,timezones:s.timezones})},freeBusy:{icsComponent:Ge,convert:(o,{data:s})=>jo(void 0,o,{nonStandard:r?.nonStandard,timezones:s.timezones})}},nonStandard:r?.nonStandard})};var lt="0.3.13",ut="icalendar:lastSync";console.log(`[iCalendar] Plug script executing at top level (Version ${lt})`);var Ho={"GMT Standard Time":0,"W. Europe Standard Time":1,"Central Europe Standard Time":1,"Romance Standard Time":1,"Central European Standard Time":1,"Eastern Standard Time":-5,"Central Standard Time":-6,"Mountain Standard Time":-7,"Pacific Standard Time":-8,UTC:0,None:0};async function qo(){try{let e=await B.get("icalendar",{sources:[]}),t=e.sources||[],n=e.tzShift||0;return{sources:t,tzShift:n}}catch{return{sources:[],tzShift:0}}}async function Wo(e,t=0){console.log(`[iCalendar] Fetching from ${e.url}`);let n=await fetch(e.url);if(!n.ok)return console.error(`[iCalendar] Fetch failed with status ${n.status}`),[];let r=await n.text(),o=at(void 0,r);if(!o.events)return[];let s=[];for(let i of o.events){let a=i.start,u="";if(a.local&&typeof a.local.date=="string"?u=a.local.date:typeof a.date=="string"&&(u=a.date),!u)continue;let c=new Date(u.replace("Z","")+"Z"),m=a.local?.timezone||a.timezone||"UTC",E=Ho[m]??0,y=c.getTime()-E*36e5,T=new Date(y+t*36e5),S=g=>String(g).padStart(2,"0"),C=T.getFullYear()+"-"+S(T.getMonth()+1)+"-"+S(T.getDate())+"T"+S(T.getHours())+":"+S(T.getMinutes())+":"+S(T.getSeconds());s.push({...i,start:C,tag:"ical-event",sourceName:e.name})}return s}async function de(){console.log("[iCalendar] syncCalendars command triggered");try{let{sources:e,tzShift:t}=await qo();if(console.log(`[iCalendar] Found ${e.length} sources, tzShift: ${t}`),e.length===0)return;await b.flashNotification("Syncing calendars...","info");let n=[];for(let r of e){let o=await Wo(r,t);n.push(...o)}await V.indexObjects("$icalendar",n),console.log(`[iCalendar] Successfully indexed ${n.length} events`),await b.flashNotification(`Synced ${n.length} events`,"info")}catch(e){console.error("[iCalendar] Sync failed:",e)}}async function ct(){console.log("[iCalendar] forceSync command triggered"),await K.del(ut),await de()}async function dt(){if(console.log("[iCalendar] clearCache command triggered"),!await b.confirm("Clear all calendar events?"))return;let e=await z.query({prefix:["ridx","$icalendar"]}),t=[];for(let{key:n}of e)t.push(n),t.push(["idx",...n.slice(2),"$icalendar"]);t.length>0&&await z.batchDel(t),await K.del(ut),await b.flashNotification("Calendar index cleared","info")}async function mt(){console.log("[iCalendar] showVersion command triggered"),await b.flashNotification(`iCalendar Plug ${lt}`,"info")}var pt={syncCalendars:de,forceSync:ct,clearCache:dt,showVersion:mt},yt={name:"Library/sstent/icalendar",version:"0.3.13",author:"sstent",index:"icalendar.ts",functions:{syncCalendars:{path:"icalendar.ts:syncCalendars",command:"iCalendar: Sync"},forceSync:{path:"icalendar.ts:forceSync",command:"iCalendar: Force Sync"},clearCache:{path:"icalendar.ts:clearCache",command:"iCalendar: Clear Cache"},showVersion:{path:"icalendar.ts:showVersion",command:"iCalendar: Show Version"}},permissions:["http"],assets:{}},os={manifest:yt,functionMapping:pt};ge(pt,yt,self.postMessage);export{os as plug}; -//# sourceMappingURL=icalendar.plug.js.map diff --git a/Library/sstent/icalendar.plug.js.map b/Library/sstent/icalendar.plug.js.map deleted file mode 100644 index 5917a1f..0000000 --- a/Library/sstent/icalendar.plug.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["https://deno.land/x/silverbullet@2.4.1/plug-api/lib/crypto.ts", "https://deno.land/x/silverbullet@2.4.1/client/lib/logger.ts", "https://deno.land/x/silverbullet@2.4.1/client/plugos/worker_runtime.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/editor.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscall.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/client_store.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/lib/crypto.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/datastore.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/config.ts", "https://jsr.io/@silverbulletmd/silverbullet/2.4.1/plug-api/syscalls/index.ts", "https://esm.sh/ts-ics@2.4.0/denonext/ts-ics.mjs", "../../icalendar.ts", "../../../tmp/eccd96e3387a5e64.js"], - "sourcesContent": ["export function base64Decode(s: string): Uint8Array {\n const binString = atob(s);\n const len = binString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binString.charCodeAt(i);\n }\n return bytes;\n}\n\nexport function base64Encode(buffer: Uint8Array | string): string {\n if (typeof buffer === \"string\") {\n buffer = new TextEncoder().encode(buffer);\n }\n let binary = \"\";\n const len = buffer.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(buffer[i]);\n }\n return btoa(binary);\n}\n\nexport function base64EncodedDataUrl(\n mimeType: string,\n buffer: Uint8Array,\n): string {\n return `data:${mimeType};base64,${base64Encode(buffer)}`;\n}\n\nexport function base64DecodeDataUrl(dataUrl: string): Uint8Array {\n const b64Encoded = dataUrl.split(\",\", 2)[1];\n return base64Decode(b64Encoded);\n}\n\n/**\n * Perform sha256 hash using the browser's crypto APIs\n * Note: this will only work over HTTPS\n * @param message\n */\nexport async function hashSHA256(\n message: string | Uint8Array,\n): Promise {\n // Transform the string into an ArrayBuffer\n const encoder = new TextEncoder();\n const data: Uint8Array = typeof message === \"string\"\n ? encoder.encode(message)\n : message;\n\n // Generate the hash\n const hashBuffer = await globalThis.crypto.subtle.digest(\n \"SHA-256\",\n data as BufferSource,\n );\n\n // Transform the hash into a hex string\n return Array.from(new Uint8Array(hashBuffer)).map((b) =>\n b.toString(16).padStart(2, \"0\")\n ).join(\"\");\n}\n\n/**\n * To avoid database clashes based on space folder path name, base URLs and encryption keys we derive\n * a database name from a hash of all these combined together\n */\nexport async function deriveDbName(\n type: \"data\" | \"files\",\n spaceFolderPath: string,\n baseURI: string,\n encryptionKey?: CryptoKey,\n): Promise {\n let keyPart = \"\";\n if (encryptionKey) {\n keyPart = await exportKey(encryptionKey);\n }\n const spaceHash = await hashSHA256(\n `${spaceFolderPath}:${baseURI}:${keyPart}`,\n );\n return `sb_${type}_${spaceHash}`;\n}\n\n// Fixed counter for AES-CTR all zeroes, for determinism\nconst fixedCounter = new Uint8Array(16);\n\nexport async function encryptStringDeterministic(\n key: CryptoKey,\n clearText: string,\n): Promise {\n const encrypted = await crypto.subtle.encrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n new TextEncoder().encode(clearText),\n );\n return base64Encode(new Uint8Array(encrypted));\n}\n\nexport async function decryptStringDeterministic(\n key: CryptoKey,\n cipherText: string,\n): Promise {\n const decrypted = await crypto.subtle.decrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n base64Decode(cipherText) as BufferSource,\n );\n return new TextDecoder().decode(decrypted);\n}\n\n// Encrypt using AES-GCM with random IV; output = IV + ciphertext\nexport async function encryptAesGcm(\n key: CryptoKey,\n data: Uint8Array,\n): Promise {\n const iv = crypto.getRandomValues(new Uint8Array(12)); // 96-bit IV recommended for GCM\n const encryptedBuffer = await crypto.subtle.encrypt(\n { name: \"AES-GCM\", iv },\n key,\n data as BufferSource,\n );\n const encrypted = new Uint8Array(encryptedBuffer);\n\n // Prepend IV to ciphertext\n const result = new Uint8Array(iv.length + encrypted.length);\n result.set(iv, 0);\n result.set(encrypted, iv.length);\n return result;\n}\n\n// Decrypt using AES-GCM assuming input format IV + ciphertext\nexport async function decryptAesGcm(\n key: CryptoKey,\n encryptedData: Uint8Array,\n): Promise {\n const iv = encryptedData.slice(0, 12); // extract IV (first 12 bytes)\n const ciphertext = encryptedData.slice(12);\n const decryptedBuffer = await crypto.subtle.decrypt(\n { name: \"AES-GCM\", iv },\n key,\n ciphertext,\n );\n return new Uint8Array(decryptedBuffer);\n}\n\nexport async function deriveCTRKeyFromPassword(\n password: string,\n salt: Uint8Array,\n): Promise {\n // Encode password to ArrayBuffer\n const passwordBytes = new TextEncoder().encode(password);\n\n // Import password as a CryptoKey\n const baseKey = await crypto.subtle.importKey(\n \"raw\",\n passwordBytes,\n { name: \"PBKDF2\" },\n false,\n [\"deriveBits\", \"deriveKey\"],\n );\n\n return crypto.subtle.deriveKey(\n {\n name: \"PBKDF2\",\n salt: salt as BufferSource,\n iterations: 100000,\n hash: \"SHA-256\",\n },\n baseKey,\n {\n name: \"AES-CTR\",\n length: 256,\n },\n true, // extractable\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport function importKey(b64EncodedKey: string): Promise {\n return crypto.subtle.importKey(\n \"raw\",\n base64Decode(b64EncodedKey) as BufferSource,\n { name: \"AES-CTR\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport async function exportKey(ctrKey: CryptoKey): Promise {\n const key = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return base64Encode(new Uint8Array(key));\n}\n\nexport async function deriveGCMKeyFromCTR(\n ctrKey: CryptoKey,\n): Promise {\n const rawKey = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return crypto.subtle.importKey(\n \"raw\",\n rawKey,\n { name: \"AES-GCM\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n", "// Logger that monkey patches console methods with prefixes and can capture logs for server transmission\n\nexport interface LogEntry {\n level: \"log\" | \"info\" | \"warn\" | \"error\" | \"debug\";\n timestamp: number;\n message: string;\n}\n\nexport class Logger {\n private originalConsole: {\n log: typeof console.log;\n info: typeof console.info;\n warn: typeof console.warn;\n error: typeof console.error;\n debug: typeof console.debug;\n };\n public logBuffer: LogEntry[] = [];\n\n constructor(\n private prefix: string = \"\",\n private maxCaptureSize: number = 1000,\n ) {\n this.prefix = prefix;\n\n // Store original console methods\n this.originalConsole = {\n log: console.log.bind(console),\n info: console.info.bind(console),\n warn: console.warn.bind(console),\n error: console.error.bind(console),\n debug: console.debug.bind(console),\n };\n\n this.patchConsole();\n }\n\n private patchConsole(): void {\n const createPatchedMethod = (level: keyof typeof this.originalConsole) => {\n return (...args: any[]) => {\n const prefixedArgs = this.prefix ? [this.prefix, ...args] : args;\n\n // Call original console method\n this.originalConsole[level](...prefixedArgs);\n\n // Capture log if capturing is enabled\n this.captureLog(level, args);\n };\n };\n\n console.log = createPatchedMethod(\"log\");\n console.info = createPatchedMethod(\"info\");\n console.warn = createPatchedMethod(\"warn\");\n console.error = createPatchedMethod(\"error\");\n console.debug = createPatchedMethod(\"debug\");\n }\n\n private captureLog(level: LogEntry[\"level\"], args: any[]): void {\n const entry: LogEntry = {\n level,\n timestamp: Date.now(),\n message: args.map((arg) => {\n if (typeof arg === \"string\") {\n return arg;\n }\n try {\n return JSON.stringify(arg);\n } catch {\n // Handle circular references or other JSON.stringify failures\n return String(arg);\n }\n }).join(\" \"),\n };\n\n this.logBuffer.push(entry);\n\n // Maintain max capture size by removing oldest entries\n if (this.logBuffer.length > this.maxCaptureSize) {\n this.logBuffer.shift();\n }\n }\n\n /**\n * Posts all buffered logs to a server endpoint\n */\n async postToServer(logEndpoint: string, source: string) {\n const logs = this.logBuffer;\n if (logs.length > 0) {\n // Flush the buffer\n const logCopy = [...this.logBuffer];\n this.logBuffer = [];\n try {\n const resp = await fetch(logEndpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(logCopy.map((entry) => ({ ...entry, source }))),\n });\n if (!resp.ok) {\n throw new Error(\"Failed to post logs to server\");\n }\n } catch (e: any) {\n console.warn(\"Could not post logs to server\", e.message);\n // Put back the logs into the buffer\n this.logBuffer.unshift(...logCopy);\n }\n }\n }\n}\n\n// Global logger instance\nlet globalLogger: Logger | undefined = undefined;\n\nexport function initLogger(prefix: string = \"\"): Logger {\n globalLogger = new Logger(prefix);\n return globalLogger;\n}\n", "// This is the runtime imported from the compiled plug worker code\nimport type { ControllerMessage, WorkerMessage } from \"./protocol.ts\";\nimport type {\n ProxyFetchRequest64,\n ProxyFetchResponse64,\n} from \"./proxy_fetch.ts\";\nimport { base64Decode, base64Encode } from \"../../plug-api/lib/crypto.ts\";\nimport { initLogger } from \"../lib/logger.ts\";\n\ndeclare global {\n function syscall(name: string, ...args: any[]): Promise;\n}\n\nlet workerPostMessage = (_msg: ControllerMessage): void => {\n throw new Error(\"Not initialized yet\");\n};\n\n// Are we running in a (web) worker?\n\n// Determines if we're running in a web worker environment (Deno or browser)\n// - in a browser's main threads, typeof window is \"object\"\n// - in a browser's worker threads, typeof window === \"undefined\"\n// - in Deno's main thread typeof window === \"object\"\n// - in Deno's workers typeof window === \"undefined\n// - in Cloudflare workers typeof window === \"undefined\", but typeof globalThis.WebSocketPair is defined\nconst runningAsWebWorker = typeof window === \"undefined\" &&\n // @ts-ignore: globalThis\n typeof globalThis.WebSocketPair === \"undefined\";\n\nif (typeof Deno === \"undefined\") {\n // @ts-ignore: Deno hack\n self.Deno = {\n args: [],\n // @ts-ignore: Deno hack\n build: {\n arch: \"x86_64\",\n },\n env: {\n // @ts-ignore: Deno hack\n get() {\n },\n },\n };\n}\n\nconst pendingRequests = new Map<\n number,\n {\n resolve: (result: unknown) => void;\n reject: (e: any) => void;\n }\n>();\n\nlet syscallReqId = 0;\n\nif (runningAsWebWorker) {\n globalThis.syscall = async (name: string, ...args: any[]) => {\n return await new Promise((resolve, reject) => {\n syscallReqId++;\n pendingRequests.set(syscallReqId, { resolve, reject });\n workerPostMessage({\n type: \"sys\",\n id: syscallReqId,\n name,\n args,\n });\n });\n };\n}\n\nexport function setupMessageListener(\n // deno-lint-ignore ban-types\n functionMapping: Record,\n manifest: any,\n postMessageFn: (msg: ControllerMessage) => void,\n) {\n if (!runningAsWebWorker) {\n // Don't do any of this stuff if this is not a web worker\n // This caters to the NoSandbox run mode\n return;\n }\n workerPostMessage = postMessageFn;\n self.addEventListener(\"message\", (event: { data: WorkerMessage }) => {\n (async () => {\n const data = event.data;\n switch (data.type) {\n case \"inv\":\n {\n const fn = functionMapping[data.name!];\n if (!fn) {\n throw new Error(`Function not loaded: ${data.name}`);\n }\n try {\n const result = await Promise.resolve(fn(...(data.args || [])));\n workerPostMessage({\n type: \"invr\",\n id: data.id,\n result: result,\n } as ControllerMessage);\n } catch (e: any) {\n console.error(\n \"An exception was thrown as a result of invoking function\",\n data.name,\n \"error:\",\n e.message,\n );\n workerPostMessage({\n type: \"invr\",\n id: data.id!,\n error: e.message,\n });\n }\n }\n break;\n case \"sysr\":\n {\n const syscallId = data.id;\n const lookup = pendingRequests.get(syscallId);\n if (!lookup) {\n throw Error(\"Invalid request id\");\n }\n pendingRequests.delete(syscallId);\n if (data.error) {\n lookup.reject(new Error(data.error));\n } else {\n lookup.resolve(data.result);\n }\n }\n\n break;\n }\n })().catch(console.error);\n });\n // Signal initialization with manifest\n workerPostMessage({\n type: \"manifest\",\n manifest,\n });\n initLogger(`[${manifest.name} plug]`);\n}\n\nexport async function sandboxFetch(\n reqInfo: RequestInfo,\n options?: ProxyFetchRequest64,\n): Promise {\n if (typeof reqInfo !== \"string\") {\n const body = new Uint8Array(await reqInfo.arrayBuffer());\n const encodedBody = body.length > 0 ? base64Encode(body) : undefined;\n options = {\n method: reqInfo.method,\n headers: Object.fromEntries(reqInfo.headers.entries()),\n base64Body: encodedBody,\n };\n reqInfo = reqInfo.url;\n }\n return syscall(\"sandboxFetch.fetch\", reqInfo, options);\n}\n\n// @ts-ignore: monkey patching fetch\nglobalThis.nativeFetch = globalThis.fetch;\n\n// Monkey patch fetch()\nexport function monkeyPatchFetch() {\n // @ts-ignore: monkey patching fetch\n globalThis.fetch = async function (\n reqInfo: RequestInfo,\n init?: RequestInit,\n ): Promise {\n const encodedBody = init && init.body\n ? base64Encode(\n new Uint8Array(await (new Response(init.body)).arrayBuffer()),\n )\n : undefined;\n const r = await sandboxFetch(\n reqInfo,\n init && {\n method: init.method,\n headers: init.headers as Record,\n base64Body: encodedBody,\n },\n );\n // Casting the response to \"any\" for now, since of weird Deno typing\n return new Response(\n (r.base64Body ? base64Decode(r.base64Body) : null) as any,\n {\n status: r.status,\n headers: r.headers,\n },\n );\n };\n}\n\nif (runningAsWebWorker) {\n monkeyPatchFetch();\n}\n", "import { syscall } from \"../syscall.ts\";\nimport type { FilterOption, UploadFile } from \"../types/client.ts\";\nimport type { Path, Ref } from \"../lib/ref.ts\";\nimport type { PageMeta } from \"../types/index.ts\";\n\n/**\n * Exposes various editor utilities.\n * Important: These syscalls are only available in the client.\n * @module\n */\n\n/**\n * Returns the name of the page or document currently open in the editor.\n * @returns the current page name\n */\nexport function getCurrentPage(): Promise {\n return syscall(\"editor.getCurrentPage\");\n}\n\n/**\n * Returns the meta data of the page or document currently open in the editor.\n * @returns the current page meta data\n */\nexport function getCurrentPageMeta(): Promise {\n return syscall(\"editor.getCurrentPageMeta\");\n}\n\n/**\n * Returns the path of the page or document currently open in the editor.\n * @returns the current page path\n */\nexport function getCurrentPath(): Promise {\n return syscall(\"editor.getCurrentPath\");\n}\n\n/**\n * Returns the names of the pages that have been recently opened\n * @returns the names of the recently opened pages\n */\nexport function getRecentlyOpenedPages(): Promise {\n return syscall(\"editor.getRecentlyOpenedPages\");\n}\n\n/**\n * Returns the name of the currently open editor.\n * @returns the name of the current editor\n */\nexport function getCurrentEditor(): Promise {\n return syscall(\"editor.getCurrentEditor\");\n}\n\n/**\n * Returns the full text of the currently open page\n */\nexport function getText(): Promise {\n return syscall(\"editor.getText\");\n}\n\n/**\n * This updates the editor text, but in a minimal-diff way:\n * it compares the current editor text with the new text, and only sends the changes to the editor, thereby preserving cursor location\n */\nexport function setText(\n newText: string,\n isolateHistory = false,\n): Promise {\n return syscall(\"editor.setText\", newText, isolateHistory);\n}\n\n/**\n * Returns the position (in # of characters from the beginning of the file) of the cursor in the editor\n */\nexport function getCursor(): Promise {\n return syscall(\"editor.getCursor\");\n}\n\n/**\n * Returns the line number and column number of the cursor in the editor\n */\nexport function getSelection(): Promise<\n { from: number; to: number; text: string }\n> {\n return syscall(\"editor.getSelection\");\n}\n\n/**\n * Sets the position of the cursor in the editor\n * @param from the start position of the selection\n * @param to the end position of the selection\n */\nexport function setSelection(from: number, to: number): Promise {\n return syscall(\"editor.setSelection\", from, to);\n}\n\n/**\n * Invoke a client command by name\n * Note: only available on the client\n * @param name name of the command\n * @param args arguments to pass to the command\n */\nexport function invokeCommand(name: string, args?: string[]): Promise {\n return syscall(\"editor.invokeCommand\", name, args);\n}\n\n/**\n * Forces a save of the current page\n */\nexport function save(): Promise {\n return syscall(\"editor.save\");\n}\n\n/**\n * Navigates to the specified page reference\n * @param pageRef the page reference to navigate to\n * @param replaceState whether to replace the current history state in the browser history\n * @param newWindow whether to open the page in a new window\n */\nexport function navigate(\n ref: Ref | string,\n replaceState = false,\n newWindow = false,\n): Promise {\n return syscall(\"editor.navigate\", ref, replaceState, newWindow);\n}\n\n/**\n * Opens the page navigator\n * @param mode the mode to open the navigator in\n */\nexport function openPageNavigator(\n mode: \"page\" | \"meta\" | \"document\" | \"all\" = \"page\",\n): Promise {\n return syscall(\"editor.openPageNavigator\", mode);\n}\n\n/**\n * Opens the command palette\n */\nexport function openCommandPalette(): Promise {\n return syscall(\"editor.openCommandPalette\");\n}\n\n/**\n * Force reloads the current page\n */\nexport function reloadPage(): Promise {\n return syscall(\"editor.reloadPage\");\n}\n\n/**\n * Force reloads the browser UI\n */\nexport function reloadUI(): Promise {\n return syscall(\"editor.reloadUI\");\n}\n\n/**\n * Rebuilds the editor state to ensure the dispatch updates the state.\n */\nexport function rebuildEditorState(): Promise {\n return syscall(\"editor.rebuildEditorState\");\n}\n\n/**\n * Reloads the config and commands, also in the server\n */\nexport function reloadConfigAndCommands(): Promise {\n return syscall(\"editor.reloadConfigAndCommands\");\n}\n\n/**\n * Opens the specified URL in the browser\n * @param url the URL to open\n * @param existingWindow whether to open the URL in an existing window\n */\nexport function openUrl(url: string, existingWindow = false): Promise {\n return syscall(\"editor.openUrl\", url, existingWindow);\n}\n\nexport function newWindow(): Promise {\n return syscall(\"editor.newWindow\");\n}\n\n/**\n * This is calling the `go()` method from the History Web API.\n * @param delta Position in history to move to relative to the current page,\n * where a negative value moves backwards, and positive forwards\n */\nexport function goHistory(delta: number): Promise {\n return syscall(\"editor.goHistory\", delta);\n}\n\n/**\n * Force the client to download the file in dataUrl with filename as file name\n * @param filename the name of the file to download\n * @param dataUrl the dataUrl of the file to download\n */\nexport function downloadFile(filename: string, dataUrl: string): Promise {\n return syscall(\"editor.downloadFile\", filename, dataUrl);\n}\n\n/**\n * Triggers the browser's native file upload dialog/popup\n * @param accept the file types to accept\n * @param capture the capture mode for the file input\n */\nexport function uploadFile(\n accept?: string,\n capture?: string,\n): Promise {\n return syscall(\"editor.uploadFile\", accept, capture);\n}\n\n/**\n * Shows a flash notification to the user (top right corner)\n * @param message the message to show\n * @param type the type of notification to show\n */\nexport function flashNotification(\n message: string,\n type: \"info\" | \"error\" = \"info\",\n): Promise {\n return syscall(\"editor.flashNotification\", message, type);\n}\n\n/**\n * Exposes a filter box UI (similar to the page navigator and command palette)\n * @param label the label to show left of the input box\n * @param options the options to show and to filter on\n * @param helpText the help text to show below the input box\n * @param placeHolder the placeholder text to show in the input box\n */\nexport function filterBox(\n label: string,\n options: FilterOption[],\n helpText = \"\",\n placeHolder = \"\",\n): Promise {\n return syscall(\"editor.filterBox\", label, options, helpText, placeHolder);\n}\n\n/**\n * Shows a panel in the editor\n * @param id the location of the panel to show\n * @param mode the mode or \"size\" of the panel\n * @param html the html content of the panel\n * @param script the script content of the panel\n */\nexport function showPanel(\n id: \"lhs\" | \"rhs\" | \"bhs\" | \"modal\",\n mode: number,\n html: string,\n script = \"\",\n): Promise {\n return syscall(\"editor.showPanel\", id, mode, html, script);\n}\n\n/**\n * Hides a panel in the editor\n * @param id the location of the panel to hide\n */\nexport function hidePanel(\n id: \"lhs\" | \"rhs\" | \"bhs\" | \"modal\",\n): Promise {\n return syscall(\"editor.hidePanel\", id);\n}\n\nexport function showProgress(\n progressPercentage?: number,\n progressType?: string,\n): Promise {\n return syscall(\"editor.showProgress\", progressPercentage, progressType);\n}\n\n/**\n * Insert text at the specified position into the editor\n * @param text the text to insert\n * @param pos\n */\nexport function insertAtPos(text: string, pos: number): Promise {\n return syscall(\"editor.insertAtPos\", text, pos);\n}\n\n/**\n * Replace the text in the specified range in the editor\n * @param from the start position of the range\n * @param to the end position of the range\n * @param text the text to replace with\n */\nexport function replaceRange(\n from: number,\n to: number,\n text: string,\n): Promise {\n return syscall(\"editor.replaceRange\", from, to, text);\n}\n\n/**\n * Move the cursor to the specified position in the editor\n * @param pos the position to move the cursor to\n * @param center whether to center the cursor in the editor after moving\n */\nexport function moveCursor(pos: number, center = false): Promise {\n return syscall(\"editor.moveCursor\", pos, center);\n}\n\n/**\n * Move the cursor to the specified line and column in the editor\n * @param line the line number to move the cursor to\n * @param column the column number to move the cursor to\n * @param center whether to center the cursor in the editor after moving\n */\nexport function moveCursorToLine(\n line: number,\n column = 1,\n center = false,\n): Promise {\n return syscall(\"editor.moveCursorToLine\", line, column, center);\n}\n\n/**\n * Insert text at the cursor position in the editor\n * @param text the text to insert\n */\nexport function insertAtCursor(\n text: string,\n scrollIntoView = false,\n cursorPlaceHolder = false,\n): Promise {\n return syscall(\n \"editor.insertAtCursor\",\n text,\n scrollIntoView,\n cursorPlaceHolder,\n );\n}\n\n/**\n * Dispatch a CodeMirror transaction: https://codemirror.net/docs/ref/#state.Transaction\n */\nexport function dispatch(change: any): Promise {\n return syscall(\"editor.dispatch\", change);\n}\n\n/**\n * Prompt the user for text input\n * @param message the message to show in the prompt\n * @param defaultValue a default value pre-filled in the prompt\n * @returns\n */\nexport function prompt(\n message: string,\n defaultValue = \"\",\n): Promise {\n return syscall(\"editor.prompt\", message, defaultValue);\n}\n\n/**\n * Prompt the user for confirmation\n * @param message the message to show in the confirmation dialog\n * @returns\n */\nexport function confirm(\n message: string,\n): Promise {\n return syscall(\"editor.confirm\", message);\n}\n\n/**\n * Prompt the user for confirmation\n * @param message the message to show in the confirmation dialog\n * @returns\n */\nexport function alert(\n message: string,\n): Promise {\n return syscall(\"editor.alert\", message);\n}\n\n/**\n * Get the value of a UI option\n * @param key the key of the UI option to get\n * @returns\n */\nexport function getUiOption(key: string): Promise {\n return syscall(\"editor.getUiOption\", key);\n}\n\n/**\n * Set the value of a UI option\n * @param key the key of the UI option to set\n * @param value the value to set the UI option to\n */\nexport function setUiOption(key: string, value: any): Promise {\n return syscall(\"editor.setUiOption\", key, value);\n}\n\n/**\n * Perform a fold at the current cursor position\n */\nexport function fold(): Promise {\n return syscall(\"editor.fold\");\n}\n\n/**\n * Perform an unfold at the current cursor position\n */\nexport function unfold(): Promise {\n return syscall(\"editor.unfold\");\n}\n\n/**\n * Toggle the fold at the current cursor position\n */\nexport function toggleFold(): Promise {\n return syscall(\"editor.toggleFold\");\n}\n\n/**\n * Fold all code blocks in the editor\n */\nexport function foldAll(): Promise {\n return syscall(\"editor.foldAll\");\n}\n\n/**\n * Unfold all code blocks in the editor\n */\nexport function unfoldAll(): Promise {\n return syscall(\"editor.unfoldAll\");\n}\n\n/**\n * Perform an undo operation of the last edit in the editor\n */\nexport function undo(): Promise {\n return syscall(\"editor.undo\");\n}\n\n/**\n * Perform a redo operation of the last undo in the editor\n */\nexport function redo(): Promise {\n return syscall(\"editor.redo\");\n}\n\n/**\n * Open the editor's native search panel\n */\nexport function openSearchPanel(): Promise {\n return syscall(\"editor.openSearchPanel\");\n}\n\n/**\n * Copy the specified data to the clipboard\n * @param data the data to copy\n */\nexport function copyToClipboard(data: string | Blob): Promise {\n return syscall(\"editor.copyToClipboard\", data);\n}\n\n/**\n * Delete the current line in the editor\n */\nexport function deleteLine(): Promise {\n return syscall(\"editor.deleteLine\");\n}\n\n/**\n * Comment or uncomment the current line in the editor\n */\nexport function toggleComment(): Promise {\n return syscall(\"editor.toggleComment\");\n}\n\nexport function moveLineUp(): Promise {\n return syscall(\"editor.moveLineUp\");\n}\n\nexport function moveLineDown(): Promise {\n return syscall(\"editor.moveLineDown\");\n}\n\n// Vim-mode specific syscalls\n\n/**\n * Execute a Vim ex command\n * @param exCommand the ex command to execute\n */\nexport function vimEx(exCommand: string): Promise {\n return syscall(\"editor.vimEx\", exCommand);\n}\n\n/**\n * Execute a vim config using the CodeMirror Vim Mode API\n */\nexport function configureVimMode(): Promise {\n return syscall(\"editor.configureVimMode\");\n}\n\n// Document editor specific syscalls\n\n/**\n * Send a message - or event if you will - to the currently used document editor\n * @param type the message type, which can be listend to\n * @param data data attached to the message\n */\nexport function sendMessage(type: string, data?: any): Promise {\n return syscall(\"editor.sendMessage\", type, data);\n}\n\n/**\n * Check if the editor is running on a mobile device\n */\nexport function isMobile(): Promise {\n return syscall(\"editor.isMobile\");\n}\n", "// declare global {\n// function syscall(name: string, ...args: any[]): Promise;\n// }\n\n// This is the case when running tests only, so giving it a dummy syscall function\nif (typeof self === \"undefined\") {\n (self as any) = {\n syscall: () => {\n throw new Error(\"Not implemented here\");\n },\n };\n}\n\n// Late binding syscall\nexport function syscall(name: string, ...args: any[]): Promise {\n return (globalThis as any).syscall(name, ...args);\n}\n", "import { syscall } from \"../syscall.ts\";\n\n/**\n * Implements a very simple (string) key value store for the client.\n * Generally should only be used to set some client-specific states, such as preferences.\n * @module\n */\n\n/**\n * Sets a value in the client store.\n * @param key the key to set\n * @param value the value to set\n */\nexport function set(key: string, value: any): Promise {\n return syscall(\"clientStore.set\", key, value);\n}\n\n/**\n * Gets a value from the client store.\n * @param key the key to get\n * @returns the value associated with the key\n */\nexport function get(key: string): Promise {\n return syscall(\"clientStore.get\", key);\n}\n\n/**\n * Deletes a value from the client store.\n * @param key the key to delete\n */\nexport function del(key: string): Promise {\n return syscall(\"clientStore.delete\", key);\n}\n", "export function base64Decode(s: string): Uint8Array {\n const binString = atob(s);\n const len = binString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binString.charCodeAt(i);\n }\n return bytes;\n}\n\nexport function base64Encode(buffer: Uint8Array | string): string {\n if (typeof buffer === \"string\") {\n buffer = new TextEncoder().encode(buffer);\n }\n let binary = \"\";\n const len = buffer.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(buffer[i]);\n }\n return btoa(binary);\n}\n\nexport function base64EncodedDataUrl(\n mimeType: string,\n buffer: Uint8Array,\n): string {\n return `data:${mimeType};base64,${base64Encode(buffer)}`;\n}\n\nexport function base64DecodeDataUrl(dataUrl: string): Uint8Array {\n const b64Encoded = dataUrl.split(\",\", 2)[1];\n return base64Decode(b64Encoded);\n}\n\n/**\n * Perform sha256 hash using the browser's crypto APIs\n * Note: this will only work over HTTPS\n * @param message\n */\nexport async function hashSHA256(\n message: string | Uint8Array,\n): Promise {\n // Transform the string into an ArrayBuffer\n const encoder = new TextEncoder();\n const data: Uint8Array = typeof message === \"string\"\n ? encoder.encode(message)\n : message;\n\n // Generate the hash\n const hashBuffer = await globalThis.crypto.subtle.digest(\n \"SHA-256\",\n data as BufferSource,\n );\n\n // Transform the hash into a hex string\n return Array.from(new Uint8Array(hashBuffer)).map((b) =>\n b.toString(16).padStart(2, \"0\")\n ).join(\"\");\n}\n\n/**\n * To avoid database clashes based on space folder path name, base URLs and encryption keys we derive\n * a database name from a hash of all these combined together\n */\nexport async function deriveDbName(\n type: \"data\" | \"files\",\n spaceFolderPath: string,\n baseURI: string,\n encryptionKey?: CryptoKey,\n): Promise {\n let keyPart = \"\";\n if (encryptionKey) {\n keyPart = await exportKey(encryptionKey);\n }\n const spaceHash = await hashSHA256(\n `${spaceFolderPath}:${baseURI}:${keyPart}`,\n );\n return `sb_${type}_${spaceHash}`;\n}\n\n// Fixed counter for AES-CTR all zeroes, for determinism\nconst fixedCounter = new Uint8Array(16);\n\nexport async function encryptStringDeterministic(\n key: CryptoKey,\n clearText: string,\n): Promise {\n const encrypted = await crypto.subtle.encrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n new TextEncoder().encode(clearText),\n );\n return base64Encode(new Uint8Array(encrypted));\n}\n\nexport async function decryptStringDeterministic(\n key: CryptoKey,\n cipherText: string,\n): Promise {\n const decrypted = await crypto.subtle.decrypt(\n { name: \"AES-CTR\", counter: fixedCounter, length: fixedCounter.length * 8 },\n key,\n base64Decode(cipherText) as BufferSource,\n );\n return new TextDecoder().decode(decrypted);\n}\n\n// Encrypt using AES-GCM with random IV; output = IV + ciphertext\nexport async function encryptAesGcm(\n key: CryptoKey,\n data: Uint8Array,\n): Promise {\n const iv = crypto.getRandomValues(new Uint8Array(12)); // 96-bit IV recommended for GCM\n const encryptedBuffer = await crypto.subtle.encrypt(\n { name: \"AES-GCM\", iv },\n key,\n data as BufferSource,\n );\n const encrypted = new Uint8Array(encryptedBuffer);\n\n // Prepend IV to ciphertext\n const result = new Uint8Array(iv.length + encrypted.length);\n result.set(iv, 0);\n result.set(encrypted, iv.length);\n return result;\n}\n\n// Decrypt using AES-GCM assuming input format IV + ciphertext\nexport async function decryptAesGcm(\n key: CryptoKey,\n encryptedData: Uint8Array,\n): Promise {\n const iv = encryptedData.slice(0, 12); // extract IV (first 12 bytes)\n const ciphertext = encryptedData.slice(12);\n const decryptedBuffer = await crypto.subtle.decrypt(\n { name: \"AES-GCM\", iv },\n key,\n ciphertext,\n );\n return new Uint8Array(decryptedBuffer);\n}\n\nexport async function deriveCTRKeyFromPassword(\n password: string,\n salt: Uint8Array,\n): Promise {\n // Encode password to ArrayBuffer\n const passwordBytes = new TextEncoder().encode(password);\n\n // Import password as a CryptoKey\n const baseKey = await crypto.subtle.importKey(\n \"raw\",\n passwordBytes,\n { name: \"PBKDF2\" },\n false,\n [\"deriveBits\", \"deriveKey\"],\n );\n\n return crypto.subtle.deriveKey(\n {\n name: \"PBKDF2\",\n salt: salt as BufferSource,\n iterations: 100000,\n hash: \"SHA-256\",\n },\n baseKey,\n {\n name: \"AES-CTR\",\n length: 256,\n },\n true, // extractable\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport function importKey(b64EncodedKey: string): Promise {\n return crypto.subtle.importKey(\n \"raw\",\n base64Decode(b64EncodedKey) as BufferSource,\n { name: \"AES-CTR\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n\nexport async function exportKey(ctrKey: CryptoKey): Promise {\n const key = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return base64Encode(new Uint8Array(key));\n}\n\nexport async function deriveGCMKeyFromCTR(\n ctrKey: CryptoKey,\n): Promise {\n const rawKey = await crypto.subtle.exportKey(\"raw\", ctrKey);\n return crypto.subtle.importKey(\n \"raw\",\n rawKey,\n { name: \"AES-GCM\" },\n true,\n [\"encrypt\", \"decrypt\"],\n );\n}\n", "import type { LuaCollectionQuery } from \"../../client/space_lua/query_collection.ts\";\nimport { syscall } from \"../syscall.ts\";\n\nimport type { KV, KvKey, KvQuery } from \"../types/datastore.ts\";\n\n/**\n * Exposes a key value story with query capabilities.\n * @module\n */\n\n/**\n * Sets a value in the key value store.\n * @param key the key to set\n * @param value the value to set\n */\nexport function set(key: KvKey, value: any): Promise {\n return syscall(\"datastore.set\", key, value);\n}\n\n/**\n * Sets multiple values in the key value store.\n * @param kvs the key value pairs to set\n */\nexport function batchSet(kvs: KV[]): Promise {\n return syscall(\"datastore.batchSet\", kvs);\n}\n\n/**\n * Gets a value from the key value store.\n * @param key the key to get\n * @returns the value associated with the key (or undefined if not found)\n */\nexport function get(key: KvKey): Promise {\n return syscall(\"datastore.get\", key);\n}\n\n/**\n * Gets multiple values from the key value store.\n * @param keys the keys to get\n * @returns the values associated with the keys (or undefined if not found)\n */\nexport function batchGet(keys: KvKey[]): Promise<(any | undefined)[]> {\n return syscall(\"datastore.batchGet\", keys);\n}\n\n/**\n * Deletes a value from the key value store.\n * @param key the key to delete\n */\nexport function del(key: KvKey): Promise {\n return syscall(\"datastore.delete\", key);\n}\n\n/**\n * Deletes multiple values from the key value store.\n * @param keys the keys to delete\n */\nexport function batchDel(keys: KvKey[]): Promise {\n return syscall(\"datastore.batchDelete\", keys);\n}\n\nexport function query(options: KvQuery): Promise {\n return syscall(\"datastore.query\", options);\n}\n\nexport function queryLua(\n prefix: string[],\n query: LuaCollectionQuery,\n scopeVariables?: Record,\n): Promise {\n return syscall(\"datastore.queryLua\", prefix, query, scopeVariables);\n}\n\nexport function batchDeletePrefix(prefix: KvKey): Promise {\n return syscall(\"datastore.batchDeletePrefix\", prefix);\n}\n\n/**\n * Queries the key value store and deletes all matching items\n * @param query the query to run\n * @param variables the variables that can be referenced inside the query\n */\nexport function queryDelete(\n query: KvQuery,\n variables?: Record,\n): Promise {\n return syscall(\"datastore.queryDelete\", query, variables);\n}\n\n/**\n * Lists all functions currently defined and available for use in queries\n * @returns the names of all functions in the key value store\n */\nexport function listFunctions(): Promise {\n return syscall(\"datastore.listFunctions\");\n}\n", "import { syscall } from \"../syscall.ts\";\n\n/**\n * Gets a config value by path, with support for dot notation.\n * @param path The path to get the value from\n * @param defaultValue The default value to return if the path doesn't exist\n * @returns The value at the path, or the default value\n */\nexport function get(path: string, defaultValue: T): Promise {\n return syscall(\"config.get\", path, defaultValue);\n}\n\n/**\n * Sets a config value by path, with support for dot notation.\n * @param path The path to set the value at\n * @param value The value to set\n */\nexport function set(path: string, value: T): Promise;\n/**\n * Sets multiple config values at once.\n * @param values An object containing key-value pairs to set\n */\nexport function set(values: Record): Promise;\nexport function set(\n pathOrValues: string | Record,\n value?: T,\n): Promise {\n return syscall(\"config.set\", pathOrValues, value);\n}\n\n/**\n * Inserts a config value into an array\n */\nexport function insert(\n path: string | string[],\n value: T,\n): Promise {\n return syscall(\"config.insert\", path, value);\n}\n\n/**\n * Checks if a config path exists.\n * @param path The path to check\n * @returns True if the path exists, false otherwise\n */\nexport function has(path: string): Promise {\n return syscall(\"config.has\", path);\n}\n\n/**\n * Defines a JSON schema for a configuration key.\n * The schema will be used to validate values when setting this key.\n * @param key The configuration key to define a schema for\n * @param schema The JSON schema to validate against\n */\nexport function define(key: string, schema: any): Promise {\n return syscall(\"config.define\", key, schema);\n}\n", "import type { LuaCollectionQuery } from \"../../client/space_lua/query_collection.ts\";\nimport { syscall } from \"../syscall.ts\";\nimport type { ObjectValue } from \"../types/index.ts\";\n\n/**\n * Exposes the SilverBullet object indexing system\n * @module\n */\n\n/**\n * Indexes objects for a specific page\n * @param page - The page identifier where objects will be indexed\n * @param objects - Array of objects to be indexed\n * @returns Promise that resolves when indexing is complete\n */\nexport function indexObjects(\n page: string,\n objects: ObjectValue[],\n): Promise {\n return syscall(\"index.indexObjects\", page, objects);\n}\n\n/**\n * Queries objects using a Lua-based collection query\n * @param tag - The tag to filter objects by\n * @param query - Lua query parameters to filter objects\n * @param scopedVariables - Optional variables to be used in the Lua query\n * @returns Promise that resolves with an array of matching objects\n */\nexport function queryLuaObjects(\n tag: string,\n query: LuaCollectionQuery,\n scopedVariables?: Record,\n ttlSecs?: number,\n): Promise[]> {\n return syscall(\"index.queryLuaObjects\", tag, query, scopedVariables, ttlSecs);\n}\n\n/**\n * Retrieves a specific object by its reference\n * @param page - The page identifier where the object is located\n * @param tag - The tag of the object\n * @param ref - The reference identifier of the object\n * @returns Promise that resolves with the matching object or undefined if not found\n */\nexport function getObjectByRef(\n page: string,\n tag: string,\n ref: string,\n): Promise | undefined> {\n return syscall(\"index.getObjectByRef\", page, tag, ref);\n}\n\n/**\n * Ensures that the full index is built and up-to-date\n */\nexport function ensureFullIndex(): Promise {\n return syscall(\"index.ensureFullIndex\");\n}\n", "/* esm.sh - ts-ics@2.4.0 */\nvar g=e=>Object.fromEntries(Object.entries(e).map(([n,t])=>[t,n])),f=e=>Object.keys(e),fe={action:\"ACTION\",description:\"DESCRIPTION\",duration:\"DURATION\",repeat:\"REPEAT\",summary:\"SUMMARY\",trigger:\"TRIGGER\",attachments:\"ATTACH\",attendees:\"ATTENDEE\"},We=g(fe),hr=f(We),br=f(fe),Se={method:\"METHOD\",prodId:\"PRODID\",version:\"VERSION\",name:\"X-WR-CALNAME\"},Je=g(Se),Kr=f(Je),kr=f(Se),Ae={alarms:\"ALARM\",categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",location:\"LOCATION\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",timeTransparent:\"TRANSP\",url:\"URL\",end:\"DTEND\",duration:\"DURATION\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",priority:\"PRIORITY\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\"},Ge=g(Ae),Vr=f(Ge),_r=f(Ae),De={id:\"TZID\",lastModified:\"LAST-MODIFIED\",url:\"TZURL\"},Ze=g(De),Ur=f(Ze),Br=f(De),Oe={comment:\"COMMENT\",name:\"TZNAME\",offsetFrom:\"TZOFFSETFROM\",offsetTo:\"TZOFFSETTO\",recurrenceDate:\"RDATE\",recurrenceRule:\"RRULE\",start:\"DTSTART\"},xe=g(Oe),Fr=f(xe),Pr=f(Oe),Xe={byDay:\"BYDAY\",byHour:\"BYHOUR\",byMinute:\"BYMINUTE\",byMonth:\"BYMONTH\",byMonthday:\"BYMONTHDAY\",bySecond:\"BYSECOND\",bySetPos:\"BYSETPOS\",byWeekNo:\"BYWEEKNO\",byYearday:\"BYYEARDAY\",count:\"COUNT\",frequency:\"FREQ\",interval:\"INTERVAL\",until:\"UNTIL\",workweekStart:\"WKST\"},Qe=g(Xe),Hr=f(Qe),$r=f(Xe),Re={categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",location:\"LOCATION\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",url:\"URL\",duration:\"DURATION\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",priority:\"PRIORITY\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\",completed:\"COMPLETED\",due:\"DUE\",percentComplete:\"PERCENT-COMPLETE\"},en=g(Re),wr=f(en),jr=f(Re),ge={categories:\"CATEGORIES\",created:\"CREATED\",description:\"DESCRIPTION\",lastModified:\"LAST-MODIFIED\",exceptionDates:\"EXDATE\",recurrenceRule:\"RRULE\",stamp:\"DTSTAMP\",start:\"DTSTART\",summary:\"SUMMARY\",uid:\"UID\",url:\"URL\",geo:\"GEO\",class:\"CLASS\",organizer:\"ORGANIZER\",sequence:\"SEQUENCE\",status:\"STATUS\",attach:\"ATTACH\",recurrenceId:\"RECURRENCE-ID\",attendees:\"ATTENDEE\",comment:\"COMMENT\"},nn=g(ge),qr=f(nn),Wr=f(ge),Me={stamp:\"DTSTAMP\",start:\"DTSTART\",uid:\"UID\",url:\"URL\",organizer:\"ORGANIZER\",attendees:\"ATTENDEE\",comment:\"COMMENT\",end:\"DTEND\",freeBusy:\"FREEBUSY\"},tn=g(Me),Jr=f(tn),Gr=f(Me),rn=\"BEGIN\",on=\"END\",Ne=\"VCALENDAR\",X=\"VTIMEZONE\",an=\"STANDARD\",ln=\"DAYLIGHT\",Q=\"VEVENT\",ee=\"VALARM\",ne=\"VTODO\",te=\"VJOURNAL\",re=\"VFREEBUSY\",Zr=[Ne,X,an,ln,Q,ee,ne,te,re],Be=e=>new RegExp(`${rn}:${e}([\\\\s\\\\S]*?)${on}:${e}`,\"g\"),Rn=e=>new RegExp(`${rn}:${e}|${on}:${e}`,\"g\"),gn=/\\r\\n/,pe=/\\r\\n|\\r|\\n/,sn=`\\r\n`,Fe=`\n`,Mn=\":\",V=\",\",Nn='\"',W=\";\",xr=\" \",ye=\"=\",Xr=75,J=e=>`${e}${sn}`,y=(e,n,t)=>t?n==null?\"\":J(`${e};${t}:${n}`):J(`${e}:${n}`),In=e=>J(`BEGIN:${e}`),Yn=e=>J(`END:${e}`),R=e=>{if(!(e.length<1))return`${e.map(n=>`${n.key}${ye}${n.value}`).join(W)}`},zn=e=>{if(e.type===\"uri\"){let n=R([e.formatType&&{key:\"FMTTYPE\",value:e.formatType}].filter(t=>!!t));return y(\"ATTACH\",e.url,n)}if(e.type===\"binary\"){let n=R([e.value&&{key:\"VALUE\",value:e.value},e.encoding&&{key:\"ENCODING\",value:e.encoding}].filter(t=>!!t));return y(\"ATTACH\",e.binary,n)}throw Error(`IcsAttachment has no type! ${JSON.stringify(e)}`)},K=(e,n)=>n?`\"MAILTO:${e}\"`:`MAILTO:${e}`,P=(e,n)=>{let t=R([e.dir&&{key:\"DIR\",value:`\"${e.dir}\"`},e.delegatedFrom&&{key:\"DELEGATED-FROM\",value:K(e.delegatedFrom,!0)},e.member&&{key:\"MEMBER\",value:K(e.member,!0)},e.role&&{key:\"ROLE\",value:e.role},e.name&&{key:\"CN\",value:e.name},e.partstat&&{key:\"PARTSTAT\",value:e.partstat},e.sentBy&&{key:\"SENT-BY\",value:K(e.sentBy,!0)},e.rsvp!==void 0&&(e.rsvp===!0||e.rsvp===!1)&&{key:\"RSVP\",value:e.rsvp===!0?\"TRUE\":\"FALSE\"}].filter(r=>!!r));return y(n,K(e.email),t)},H=e=>{if(Object.values(e).filter(t=>typeof t==\"number\").length===0)return;let n=\"\";return e.before&&(n+=\"-\"),n+=\"P\",e.weeks!==void 0&&(n+=`${e.weeks}W`),e.days!==void 0&&(n+=`${e.days}D`),(e.hours!==void 0||e.minutes!==void 0||e.seconds!==void 0)&&(n+=\"T\",e.hours!==void 0&&(n+=`${e.hours}H`),e.minutes!==void 0&&(n+=`${e.minutes}M`),e.seconds!==void 0&&(n+=`${e.seconds}S`)),n},Cn=Math.pow(10,8)*24*60*60*1e3,Qr=-Cn,Ln=6048e5,hn=864e5,Ie=6e4,Ye=36e5,bn=3600,un=bn*24,eo=un*7,Kn=un*365.2425,kn=Kn/12,no=kn*3,Pe=Symbol.for(\"constructDateFrom\");function O(e,n){return typeof e==\"function\"?e(n):e&&typeof e==\"object\"&&Pe in e?e[Pe](n):e instanceof Date?new e.constructor(n):new Date(n)}function d(e,n){return O(n||e,e)}function oe(e,n,t){let r=d(e,t?.in);return isNaN(n)?O(t?.in||e,NaN):(n&&r.setDate(r.getDate()+n),r)}function dn(e,n,t){let r=d(e,t?.in);if(isNaN(n))return O(t?.in||e,NaN);if(!n)return r;let o=r.getDate(),i=O(t?.in||e,r.getTime());i.setMonth(r.getMonth()+n+1,0);let a=i.getDate();return o>=a?i:(r.setFullYear(i.getFullYear(),i.getMonth(),o),r)}function $(e,n,t){return O(t?.in||e,+d(e)+n)}function cn(e,n,t){return $(e,n*Ye,t)}var Vn={};function ae(){return Vn}function G(e,n){var t,r,o,i;let a=ae(),l=n?.weekStartsOn??((r=(t=n?.locale)==null?void 0:t.options)==null?void 0:r.weekStartsOn)??a.weekStartsOn??((i=(o=a.locale)==null?void 0:o.options)==null?void 0:i.weekStartsOn)??0,s=d(e,n?.in),u=s.getDay(),c=(utypeof r==\"object\"));return n.map(t)}function Te(e,n){let t=d(e,n?.in);return t.setHours(0,0,0,0),t}function _n(e,n,t){let[r,o]=ie(t?.in,e,n),i=Te(r),a=Te(o),l=+i-He(i),s=+a-He(a);return Math.round((l-s)/hn)}function ze(e,n,t){let r=d(e,t?.in);return r.setTime(r.getTime()+n*Ie),r}function vn(e,n,t){return $(e,n*1e3,t)}function le(e,n,t){return oe(e,n*7,t)}function mn(e,n,t){return dn(e,n*12,t)}function Ce(e,n){let t=+d(e)-+d(n);return t<0?-1:t>0?1:t}function Le(e){return e instanceof Date||typeof e==\"object\"&&Object.prototype.toString.call(e)===\"[object Date]\"}function En(e,n,t){let[r,o]=ie(t?.in,e,n),i=$e(r,o),a=Math.abs(_n(r,o));r.setDate(r.getDate()-i*a);let l=+($e(r,o)===-i),s=i*(a-l);return s===0?0:s}function $e(e,n){let t=e.getFullYear()-n.getFullYear()||e.getMonth()-n.getMonth()||e.getDate()-n.getDate()||e.getHours()-n.getHours()||e.getMinutes()-n.getMinutes()||e.getSeconds()-n.getSeconds()||e.getMilliseconds()-n.getMilliseconds();return t<0?-1:t>0?1:t}function se(e){return n=>{let t=(e?Math[e]:Math.trunc)(n);return t===0?0:t}}function Un(e,n,t){let[r,o]=ie(t?.in,e,n),i=(+r-+o)/Ye;return se(t?.roundingMethod)(i)}function pn(e,n){return+d(e)-+d(n)}function Bn(e,n,t){let r=pn(e,n)/Ie;return se(t?.roundingMethod)(r)}function we(e,n){let t=d(e,n?.in),r=t.getMonth();return t.setFullYear(t.getFullYear(),r+1,0),t.setHours(23,59,59,999),t}function Fn(e,n,t){let r=pn(e,n)/1e3;return se(t?.roundingMethod)(r)}function Pn(e,n,t){let r=En(e,n,t)/7;return se(t?.roundingMethod)(r)}function Hn(e,n){let[t,r]=ie(e,n.start,n.end);return{start:t,end:r}}function $n(e,n){let{start:t,end:r}=Hn(n?.in,e),o=+t>+r,i=o?+t:+r,a=o?r:t;a.setHours(0,0,0,0);let l=n?.step??1;if(!l)return[];l<0&&(l=-l,o=!o);let s=[];for(;+a<=i;)s.push(O(t,a)),a.setDate(a.getDate()+l),a.setHours(0,0,0,0);return o?s.reverse():s}function je(e,n){let t=d(e,n?.in);return t.setDate(1),t.setHours(0,0,0,0),t}function wn(e,n){let t=d(e,n?.in),r=t.getFullYear();return t.setFullYear(r+1,0,0),t.setHours(23,59,59,999),t}function jn(e,n){let t=d(e,n?.in);return t.setFullYear(t.getFullYear(),0,1),t.setHours(0,0,0,0),t}function qn(e,n){var t,r,o,i;let a=d(e,n?.in),l=a.getFullYear(),s=ae(),u=n?.firstWeekContainsDate??((r=(t=n?.locale)==null?void 0:t.options)==null?void 0:r.firstWeekContainsDate)??s.firstWeekContainsDate??((i=(o=s.locale)==null?void 0:o.options)==null?void 0:i.firstWeekContainsDate)??1,c=O(n?.in||e,0);c.setFullYear(l+1,0,u),c.setHours(0,0,0,0);let v=G(c,n),E=O(n?.in||e,0);E.setFullYear(l,0,u),E.setHours(0,0,0,0);let M=G(E,n);return+a>=+v?l+1:+a>=+M?l:l-1}function Wn(e,n){var t,r,o,i;let a=ae(),l=n?.firstWeekContainsDate??((r=(t=n?.locale)==null?void 0:t.options)==null?void 0:r.firstWeekContainsDate)??a.firstWeekContainsDate??((i=(o=a.locale)==null?void 0:o.options)==null?void 0:i.firstWeekContainsDate)??1,s=qn(e,n),u=O(n?.in||e,0);return u.setFullYear(s,0,l),u.setHours(0,0,0,0),G(u,n)}function Jn(e,n){let t=d(e,n?.in),r=+G(t,n)-+Wn(t,n);return Math.round(r/Ln)+1}function q(e,n){return d(e,n?.in).getDay()}function yn(e,n){let t=d(e,n?.in),r=t.getFullYear(),o=t.getMonth(),i=O(t,0);return i.setFullYear(r,o+1,0),i.setHours(0,0,0,0),i.getDate()}function Gn(e,n){return d(e,n?.in).getHours()}function Zn(e,n){return d(e,n?.in).getMinutes()}function Tn(e,n){return d(e,n?.in).getMonth()}function xn(e){return d(e).getSeconds()}function Xn(e,n){return d(e,n?.in).getFullYear()}function Qn(e,n){return+d(e)==+d(n)}function et(e,n,t){let r=d(e,t?.in),o=Jn(r,t)-n;return r.setDate(r.getDate()-o*7),d(r,t?.in)}function Z(e,n,t){var r,o,i,a;let l=ae(),s=t?.weekStartsOn??((o=(r=t?.locale)==null?void 0:r.options)==null?void 0:o.weekStartsOn)??l.weekStartsOn??((a=(i=l.locale)==null?void 0:i.options)==null?void 0:a.weekStartsOn)??0,u=d(e,t?.in),c=u.getDay(),v=(n%7+7)%7,E=7-s,M=n<0||n>6?n-(c+E)%7:(v+E)%7-(c+E)%7;return oe(u,M,t)}function fn(e,n,t){let r=+d(e,t?.in),[o,i]=[+d(n.start,t?.in),+d(n.end,t?.in)].sort((a,l)=>a-l);return r>=o&&r<=i}function nt(e){let n=e/Ye;return Math.trunc(n)}function tt(e){let n=e/Ie;return Math.trunc(n)}function rt(e,n,t){let r=d(e,t?.in),o=r.getFullYear(),i=r.getDate(),a=O(t?.in||e,0);a.setFullYear(o,n,15),a.setHours(0,0,0,0);let l=yn(a);return r.setMonth(n,Math.min(i,l)),r}function ot(e,n,t){let r=d(e,t?.in);return r.setDate(n),r}function at(e,n,t){let r=d(e,t?.in);return r.setMonth(0),r.setDate(n),r}function it(e,n,t){let r=d(e,t?.in);return r.setHours(n),r}function lt(e,n,t){let r=d(e,t?.in);return r.setMinutes(n),r}function st(e,n,t){let r=d(e,t?.in);return r.setSeconds(n),r}function ut(e,n,t){return $(e,-n,t)}function dt(e,n,t){return le(e,-n,t)}var to=(e,n)=>{let t=Math.abs(Pn(n,e)),r=Math.abs(En(n,e)),o=r-t*7,i=Math.abs(Un(n,e)),a=i-r*24,l=Math.abs(Bn(n,e)),s=l-i*60,u=Math.abs(Fn(n,e))-l*60;return{before:e>n,weeks:t,days:o,hours:a,minutes:s,seconds:u}},ct=(e,n)=>{let t=n.before?-1:1,r=(n.seconds||0)*t,o=(n.minutes||0)*t,i=(n.hours||0)*t,a=(n.days||0)*t,l=(n.weeks||0)*t;return le(oe(cn(ze(vn(e,r),o),i),a),l)},ro=e=>e.end?e.end.date:ct(e.start.date,e.duration),oo=[\"PUBLISH\"],ao=[\"2.0\"],vt=[an,ln],io=[\"FREE\",\"BUSY\",\"BUSY-UNAVAILABLE\",\"BUSY-TENTATIVE\"],lo=[\"BASE64\"],so=[\"BINARY\"],uo=[\"NEEDS-ACTION\",\"ACCEPTED\",\"DECLINED\",\"TENTATIVE\",\"DELEGATED\"],co=[\"DATE\",\"DATE-TIME\"],mt=[\"SECONDLY\",\"MINUTELY\",\"HOURLY\",\"DAILY\",\"WEEKLY\",\"MONTHLY\",\"YEARLY\"],vo=[\"TENTATIVE\",\"CONFIRMED\",\"CANCELLED\"],mo=[\"NEEDS-ACTION\",\"COMPLETED\",\"IN-PROGRESS\",\"CANCELLED\"],Eo=[\"DRAFT\",\"FINAL\",\"CANCELLED\"],po=[\"START\",\"END\"],Sn=[\"SU\",\"MO\",\"TU\",\"WE\",\"TH\",\"FR\",\"SA\"],yo=[\"PRIVATE\",\"PUBLIC\",\"CONFIDENTIAL\"],To=[\"TRANSPARENT\",\"OPAQUE\"],b=(e,n)=>n===void 0?!1:e>=n,Et=(e,{start:n,end:t},r)=>{if(b(r.length,e.count))return;let o=e.frequency,i=e.interval||1;if(!o)return;let a=n;if(o===\"SECONDLY\"){for(;a{let o=t.map(({day:i,occurrence:a})=>({occurrence:a,day:Sn.indexOf(i)}));return e.frequency===\"YEARLY\"?e.byYearday||e.byMonthday?n.map(i=>i.filter(a=>o.find(({day:l})=>l===q(a)))):e.byWeekNo?n.map(i=>i.flatMap(a=>o.map(({day:l})=>Z(a,l,{weekStartsOn:r})))):e.byMonth?n.map(i=>i.flatMap(a=>o.flatMap(({day:l,occurrence:s})=>me(N(je(a)),N(we(a)),l,r,s)))):n.map(i=>i.flatMap(a=>o.flatMap(({day:l,occurrence:s})=>me(N(jn(a)),N(wn(a)),l,r,s)))):e.frequency===\"MONTHLY\"?e.byMonthday?n.map(i=>i.filter(a=>o.find(({day:l})=>l===q(a)))):n.map(i=>i.flatMap(a=>o.flatMap(({day:l,occurrence:s})=>me(N(je(a)),N(we(a)),l,r,s)))):e.frequency===\"WEEKLY\"?n.map(i=>i.flatMap(a=>o.map(({day:l})=>Z(a,l,{weekStartsOn:r})))):n.map(i=>i.filter(a=>o.find(({day:l})=>l===q(a))))},me=(e,n,t,r,o)=>{if(o!==void 0){if(!(o<0)){let l=Z(e,t,{weekStartsOn:r}),s=e>l;return le(l,(o||1)-1+(s?1:0))}let i=Z(n,t,{weekStartsOn:r}),a=nN(i)).filter(i=>fn(i,{start:e,end:n})).filter(i=>t===q(i))},N=e=>ze(e,-e.getTimezoneOffset()),yt=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"?n.map(r=>r.flatMap(o=>t.map(i=>it(o,i)))):n.map(r=>r.filter(o=>t.includes(Gn(o)))),Tt=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"||e.frequency===\"HOURLY\"?n.map(r=>r.flatMap(o=>t.map(i=>lt(o,i)))):n.map(r=>r.filter(o=>t.includes(Zn(o)))),ft=(e,n,t)=>e.frequency===\"YEARLY\"?n.map(r=>r.flatMap(o=>t.map(i=>rt(o,i)))):n.map(r=>r.filter(o=>t.includes(Tn(o)))),St=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"?n.map(r=>r.flatMap(o=>{let i=yn(o);return t.map(a=>a>i?void 0:ot(o,a)).filter(a=>!!a)})):e.frequency===\"WEEKLY\"?n:n.map(r=>r.filter(o=>t.includes(Tn(o)))),At=(e,n,t)=>e.frequency===\"YEARLY\"||e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"||e.frequency===\"HOURLY\"||e.frequency===\"MINUTELY\"?n.map(r=>r.flatMap(o=>t.map(i=>st(o,i)))):n.map(r=>r.filter(o=>t.includes(xn(o)))),Dt=(e,n,t)=>!e.byYearday&&!e.byWeekNo&&!e.byMonthday&&!e.byMonth&&!e.byDay&&!e.byHour&&!e.byMinute&&!e.bySecond?n:n.map(r=>r.sort(Ce).filter((o,i)=>t.some(a=>a>0?i===0?!1:i%a===0:i===0?r.length-1+a===0:i%(r.length-1+a)===0))),Ot=(e,n,t,r)=>e.frequency===\"YEARLY\"?n.map(o=>o.flatMap(i=>t.map(a=>et(i,a,{weekStartsOn:r})))):n,Rt=(e,n,t)=>e.frequency===\"YEARLY\"?n.map(r=>r.flatMap(o=>t.map(i=>at(o,i)))):e.frequency===\"MONTHLY\"||e.frequency===\"WEEKLY\"||e.frequency===\"DAILY\"?n:n.map(r=>r.filter(o=>t.includes(Xn(o)))),gt=(e,n,t)=>{let r=t;return e.byMonth&&(r=ft(e,r,e.byMonth)),e.byWeekNo&&(r=Ot(e,r,e.byWeekNo,n.weekStartsOn)),e.byYearday&&(r=Rt(e,r,e.byYearday)),e.byMonthday&&(r=St(e,r,e.byMonthday)),e.byDay&&(r=pt(e,r,e.byDay,n.weekStartsOn)),e.byHour&&(r=yt(e,r,e.byHour)),e.byMinute&&(r=Tt(e,r,e.byMinute)),e.bySecond&&(r=At(e,r,e.bySecond)),e.bySetPos&&(r=Dt(e,r,e.bySetPos)),r.map(o=>o.sort(Ce).filter(i=>!(n.exceptions.length>0&&n.exceptions.some(a=>Qn(a,i))||!fn(i,{start:n.start,end:n.end}))))},Mt=2,Nt=(e,n)=>{var t;let r=n.start,o=((t=e.until)==null?void 0:t.date)||n?.end||mn(r,Mt),i=n.exceptions||[],a=(e.workweekStart?Sn.indexOf(e.workweekStart):1)%7,l=[[r]];Et(e,{start:r,end:o},l);let s=gt(e,{start:r,end:o,exceptions:i,weekStartsOn:a},l);return e.count?s.flat().splice(0,e.count):s.flat()},It=(e,n)=>n.flatMap(t=>!t.recurrenceRule||t.recurrenceRule.until&&t.recurrenceRule.until.date({...t,start:r}))),x=e=>{let n=e[0]===\"+\"?1:-1,t=Number(e.slice(1,3)),r=e.length>3?Number(e.slice(3,5)):0,o=e.length>5?Number(e.slice(5,7)):0;return((t*60+r)*60+o)*1e3*n},Yt=(e,n)=>{let t=\"en-US\",r=new Date(n.toLocaleString(t,{timeZone:\"UTC\"}));try{return new Date(n.toLocaleString(t,{timeZone:e})).getTime()-r.getTime()}catch{return n.getTime()-r.getTime()}},An=(e,n,t)=>{let r=t?.find(i=>i.id===n);if(r){let i=It(e,r.props).sort((s,u)=>Ce(s.start,u.start));for(let s=0;s5?u.substring(0,5):u;return{offset:c,milliseconds:x(c)}}let a=i[i.length-1].offsetTo,l=a.length>5?a.substring(0,5):a;return{offset:l,milliseconds:x(l)}}let o=Yt(n,e);if(!Number.isNaN(o)){let i=o<0,a=Math.abs(nt(o)),l=Math.abs(tt(o))-a*60,s=a.toString().length===1?`0${a}`:a.toString(),u=l.toString().length===1?`0${l}`:l.toString();return{offset:`${i?\"-\":\"+\"}${s}${u}`,milliseconds:o}}},Dn=e=>{if(!Le(e))throw Error(`Incorrect date object: ${e}`);let n=e.toISOString(),t=n.slice(0,4),r=n.slice(5,7),o=n.slice(8,10);return`${t}${r}${o}`},h=e=>{if(!Le(e))throw Error(`Incorrect date object: ${e}`);return he(e)},zt=(e,n,t)=>{let r=n.date;if(!Le(r))throw Error(`Incorrect date object: ${r}`);return An(r,n.timezone,t)?he(r,!0):h(e)},he=(e,n)=>{let t=e.toISOString(),r=t.slice(0,4),o=t.slice(5,7),i=t.slice(8,10),a=t.slice(11,13),l=t.slice(14,16),s=t.slice(17,19);return`${r}${o}${i}T${a}${l}${s}${n?\"\":\"Z\"}`},Ct=(e,n)=>{let t=x(n),r=$(e,t);return he(r,!0)},Lt=e=>{var n,t;let r=R([((n=e.options)==null?void 0:n.related)&&{key:\"RELATED\",value:e.options.related}].filter(o=>!!o));if(e.type===\"absolute\")return y(\"TRIGGER\",h((t=e.value)==null?void 0:t.date));if(e.type===\"relative\")return y(\"TRIGGER\",H(e.value),r)},Ee=e=>Object.keys(e),ht=(e,n)=>{if(!e)return\"\";let t=\"\";return Object.entries(e).forEach(([r,o])=>{let i=n?.[r];if(!i){t+=y(bt(r),o?.toString());return}let a=i.generate(o);a&&(t+=y(i.name,a.value,a.options?R(Object.entries(a.options).map(([l,s])=>({key:l,value:s}))):void 0))}),t},bt=e=>{let n=\"X-\";for(let t of e)t===t.toUpperCase()&&(n+=\"-\"),n+=t.toUpperCase();return n},Kt=e=>{let n=(e.match(/\\n/g)||[]).length;return e.length+n},kt=e=>{let n=e.split(gn),t=[];return n.forEach(r=>{if(Kt(r)<75){t.push(r);return}Vt(r,75).forEach(o=>{t.push(o)})}),t.join(sn)},Vt=(e,n)=>{let t=[],r=\"\",o=0;for(let i=0;in?(t.push(t.length===0?r:` ${r}`),r=a,o=l):(r+=a,o+=l)}return r&&t.push(t.length===0?r:` ${r}`),t},I=(e,n)=>{let t=Ee(e),r=n.childComponents,o=r?Ee(r):[],i=n.generateArrayValues,a=i?Ee(i):[],l=\"\";return l+=In(n.icsComponent),t.forEach(s=>{if(o.includes(s)||a.includes(s)||s===\"nonStandard\")return;let u=n.icsKeyMap[s];if(!u)return;let c=e[s];if(c==null)return;let v=n.generateValues[s];if(v){l+=v({icsKey:u,value:c,key:s});return}l+=y(u,String(c))}),r&&o&&o.length>0&&o.forEach(s=>{let u=e[s];!u||!Array.isArray(u)||u.length===0||u.forEach(c=>{let v=r[s];v&&(l+=v(c))})}),i&&a&&a.length>0&&a.forEach(s=>{let u=i[s];if(!u)return;let c=n.icsKeyMap[s];if(!c)return;let v=e[s];!v||!Array.isArray(v)||v.length===0||v.forEach(E=>{l+=u({icsKey:c,value:E})})}),e.nonStandard&&(l+=ht(e.nonStandard,n?.nonStandard)),l+=Yn(n.icsComponent),n!=null&&n.skipFormatLines?l:kt(l)},U=(e,n)=>y(e,Math.trunc(n).toString()),_t=(e,n)=>I(e,{icsComponent:ee,icsKeyMap:fe,generateValues:{trigger:({value:t})=>Lt(t),duration:({icsKey:t,value:r})=>y(t,H(r)),repeat:({icsKey:t,value:r})=>U(t,r)},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),attachments:({value:t})=>zn(t)},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines}),T=(e,n,t=[],r)=>{let o=R([n.type&&{key:\"VALUE\",value:n.type},n.local&&!(r!=null&&r.forceUtc)&&{key:\"TZID\",value:n.local.timezone},...t].filter(a=>!!a)),i=n.type===\"DATE\"?Dn(n.date):n.local&&!(r!=null&&r.forceUtc)?zt(n.date,n.local,r?.timezones):h(n.date);return y(e,i,o)},be=(e,n,t)=>T(n,e,void 0,t),ue=e=>{let n=R([e.dir&&{key:\"DIR\",value:`\"${e.dir}\"`},e.name&&{key:\"CN\",value:e.name},e.sentBy&&{key:\"SENT-BY\",value:K(e.sentBy)}].filter(t=>!!t));return y(\"ORGANIZER\",K(e.email),n)},Ut=e=>e.occurrence?`${e.occurrence}${e.day}`:e.day,de=e=>{var n;let t=\"\",r=R([e.byDay&&{key:\"BYDAY\",value:e.byDay.map(o=>Ut(o)).join(\",\")},e.byHour&&{key:\"BYHOUR\",value:e.byHour.join(\",\")},e.byMinute&&{key:\"BYMINUTE\",value:e.byMinute.join(\",\")},e.byMonth&&{key:\"BYMONTH\",value:e.byMonth.map(o=>o+1).join(\",\")},e.byMonthday&&{key:\"BYMONTHDAY\",value:e.byMonthday.join(\",\")},e.bySecond&&{key:\"BYSECOND\",value:e.bySecond.join(\",\")},e.bySetPos&&{key:\"BYSETPOS\",value:e.bySetPos.join(\",\")},e.byWeekNo&&{key:\"BYWEEKNO\",value:e.byWeekNo.join(\",\")},e.byYearday&&{key:\"BYYEARDAY\",value:e.byYearday.join(\",\")},e.count&&{key:\"COUNT\",value:e.count.toString()},e.frequency&&{key:\"FREQ\",value:e.frequency},e.interval&&{key:\"INTERVAL\",value:e.interval.toString()},e.until&&{key:\"UNTIL\",value:e.until.type===\"DATE\"?Dn(e.until.date):h(((n=e.until.local)==null?void 0:n.date)||e.until.date)},e.workweekStart&&{key:\"WKST\",value:e.workweekStart}].filter(o=>!!o));return t+=y(\"RRULE\",r),t},Ke=(e,n)=>{let t=\"\";return t+=T(\"RECURRENCE-ID\",e.value,e.range?[{key:\"RANGE\",value:e.range}]:void 0,n),t},Bt=e=>e.replace(/([\\\\;,])|(\\n)/g,(n,t)=>t?`\\\\${t}`:\"\\\\n\"),A=(e,n,t)=>y(e,Bt(n),t?R(t):void 0),Ft=(e,n)=>I(e,{icsComponent:Q,icsKeyMap:Ae,omitGenerateKeys:[\"descriptionAltRep\"],generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),end:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),created:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),lastModified:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),categories:({icsKey:t,value:r})=>y(t,r.join(\",\")),description:({icsKey:t,value:r})=>A(t,r,e.descriptionAltRep?[{key:\"ALTREP\",value:`\"${e.descriptionAltRep}\"`}]:void 0),location:({icsKey:t,value:r})=>A(t,r),comment:({icsKey:t,value:r})=>A(t,r),summary:({icsKey:t,value:r})=>A(t,r),recurrenceRule:({value:t})=>de(t),duration:({icsKey:t,value:r})=>y(t,H(r)),organizer:({value:t})=>ue(t),sequence:({icsKey:t,value:r})=>U(t,r),recurrenceId:({value:t})=>Ke(t,{timezones:n?.timezones})},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),exceptionDates:({value:t})=>be(t,\"EXDATE\",{timezones:n?.timezones})},childComponents:{alarms:t=>_t(t,{nonStandard:n?.nonStandard,skipFormatLines:!0})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),Pt=(e,n)=>I(e,{icsComponent:e.type,icsKeyMap:Oe,generateValues:{start:({icsKey:t,value:r})=>y(t,Ct(r,e.offsetTo)),recurrenceRule:({value:t})=>de(t),recurrenceDate:({icsKey:t,value:r})=>T(t,r)},omitGenerateKeys:[\"type\"],nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines}),Ht=(e,n)=>I(e,{icsComponent:X,icsKeyMap:De,generateValues:{lastModified:({icsKey:t,value:r})=>y(t,h(r))},childComponents:{props:t=>Pt(t,{nonStandard:n?.nonStandard,skipFormatLines:!0})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines}),$t=(e,n)=>I(e,{icsComponent:ne,icsKeyMap:Re,generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),due:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),created:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),lastModified:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),completed:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),categories:({icsKey:t,value:r})=>y(t,r.join(\",\")),description:({icsKey:t,value:r})=>A(t,r),location:({icsKey:t,value:r})=>A(t,r),comment:({icsKey:t,value:r})=>A(t,r),summary:({icsKey:t,value:r})=>A(t,r),recurrenceRule:({value:t})=>de(t),duration:({icsKey:t,value:r})=>y(t,H(r)),organizer:({value:t})=>ue(t),sequence:({icsKey:t,value:r})=>U(t,r),percentComplete:({icsKey:t,value:r})=>U(t,r),recurrenceId:({value:t})=>Ke(t,{timezones:n?.timezones})},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),exceptionDates:({value:t})=>be(t,\"EXDATE\",{timezones:n?.timezones})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),wt=(e,n)=>I(e,{icsComponent:te,icsKeyMap:ge,generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),created:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),lastModified:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),categories:({icsKey:t,value:r})=>y(t,r.join(\",\")),description:({icsKey:t,value:r})=>A(t,r),comment:({icsKey:t,value:r})=>A(t,r),summary:({icsKey:t,value:r})=>A(t,r),recurrenceRule:({value:t})=>de(t),organizer:({value:t})=>ue(t),sequence:({icsKey:t,value:r})=>U(t,r),recurrenceId:({value:t})=>Ke(t,{timezones:n?.timezones})},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),exceptionDates:({value:t})=>be(t,\"EXDATE\",{timezones:n?.timezones})},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),jt=(e,n)=>{let t=e.values.map(o=>`${h(o.start)}/${o.end?h(o.end):H(o.duration)}`).join(\",\"),r=R([e.type&&{key:\"FBTYPE\",value:e.type}].filter(o=>!!o));return y(n,t,r)},qt=(e,n)=>I(e,{icsComponent:re,icsKeyMap:Me,generateValues:{stamp:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones,forceUtc:!0}),start:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),end:({icsKey:t,value:r})=>T(t,r,void 0,{timezones:n?.timezones}),comment:({icsKey:t,value:r})=>A(t,r),organizer:({value:t})=>ue(t)},generateArrayValues:{attendees:({value:t})=>P(t,\"ATTENDEE\"),freeBusy:({value:t})=>jt(t,\"FREEBUSY\")},nonStandard:n?.nonStandard,skipFormatLines:n?.skipFormatLines,timezones:n?.timezones}),fo=(e,n)=>I(e,{icsComponent:Ne,icsKeyMap:Se,generateValues:{},childComponents:{timezones:t=>Ht(t,{nonStandard:n?.nonStandard,skipFormatLines:!0}),events:t=>Ft(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard}),todos:t=>$t(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard}),journals:t=>wt(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard}),freeBusy:t=>qt(t,{skipFormatLines:!0,timezones:e.timezones,nonStandard:n?.nonStandard})},nonStandard:n?.nonStandard}),m=(e,n)=>{if(e===void 0)return n;let t=e[\"~standard\"].validate(n);if(t instanceof Promise)throw new TypeError(\"Schema validation must be synchronous\");if(t.issues)throw new Error(JSON.stringify(t.issues,null,2));return t.value},Wt=(e,n)=>{var t,r,o,i;let a=((t=n.options)==null?void 0:t.VALUE)===\"BINARY\"?{type:\"binary\",encoding:((r=n.options)==null?void 0:r.ENCODING)||\"BASE64\",binary:n.value,value:(o=n.options)==null?void 0:o.VALUE}:{type:\"uri\",url:n.value,formatType:(i=n.options)==null?void 0:i.FMTTYPE};return m(e,a)},k=e=>e.replace(/mailto:/gi,\"\"),w=(e,n)=>{var t,r,o,i,a,l,s,u,c,v,E;return m(e,{email:k(n.value),delegatedFrom:(t=n.options)!=null&&t[\"DELEGATED-FROM\"]?k((r=n.options)==null?void 0:r[\"DELEGATED-FROM\"]):void 0,dir:(o=n.options)==null?void 0:o.DIR,member:(i=n.options)!=null&&i.MEMBER?k(n.options.MEMBER):void 0,name:(a=n.options)==null?void 0:a.CN,partstat:(l=n.options)==null?void 0:l.PARTSTAT,role:(s=n.options)==null?void 0:s.ROLE,sentBy:(u=n.options)!=null&&u[\"SENT-BY\"]?k(n.options[\"SENT-BY\"]):void 0,rsvp:(c=n.options)!=null&&c.RSVP?((v=n.options)==null?void 0:v.RSVP)===\"TRUE\"?!0:((E=n.options)==null?void 0:E.RSVP)===\"FALSE\"?!1:void 0:void 0})},j=(e,n)=>{let t=n.value,r={};t[0]===\"-\"&&(r.before=!0,t=t.slice(1)),t=t.slice(1);let o=t.split(\"T\"),i=o[0];if(i.includes(\"D\")){let[l,s]=i.split(\"D\");r.days=Number(l),i=s}if(i.includes(\"W\")){let[l,s]=i.split(\"W\");r.weeks=Number(l),i=s}let a=o[1];if(a){if(a.includes(\"H\")){let[l,s]=a.split(\"H\");r.hours=Number(l),a=s}if(a.includes(\"M\")){let[l,s]=a.split(\"M\");r.minutes=Number(l),a=s}if(a.includes(\"S\")){let[l,s]=a.split(\"S\");r.seconds=Number(l),a=s}}return m(e,r)},Jt=(e,n)=>{let t=Number.parseInt(n.value.slice(0,4),10),r=Number.parseInt(n.value.slice(4,6),10)-1,o=Number.parseInt(n.value.slice(6,8),10),i=new Date(Date.UTC(t,r,o));return m(e,i)},B=(e,n)=>{let t=Number.parseInt(n.value.slice(0,4),10),r=Number.parseInt(n.value.slice(4,6),10)-1,o=Number.parseInt(n.value.slice(6,8),10),i=Number.parseInt(n.value.slice(9,11),10),a=Number.parseInt(n.value.slice(11,13),10),l=Number.parseInt(n.value.slice(13,15),10),s=new Date(Date.UTC(t,r,o,i,a,l));return m(e,s)},Gt=(e,n,t)=>{let r=x(t),o=B(void 0,n),i=ut(o,r);return m(e,i)},Zt=(e,n)=>{var t,r,o,i,a,l;if(((t=e.options)==null?void 0:t.VALUE)===\"DATE\")return{date:Jt(void 0,e),type:(r=e.options)==null?void 0:r.VALUE};let s=((o=e.options)==null?void 0:o.VALUE)||\"DATE-TIME\",u=B(void 0,e);if(!((i=e.options)!=null&&i.TZID))return{date:u,type:s};let c=An(u,e.options.TZID,n?.timezones);return c?{date:$(u,-c.milliseconds),type:s,local:(a=e.options)!=null&&a.TZID?{date:u,timezone:(l=e.options)==null?void 0:l.TZID,tzoffset:c.offset}:void 0}:{date:u,type:s}},p=(e,n,t)=>m(e,Zt(n,t)),xt=(e,n,t)=>{var r,o,i,a;let l=((r=n.options)==null?void 0:r.VALUE)===\"DATE-TIME\"||((o=n.options)==null?void 0:o.VALUE)===\"DATE\"?{type:\"absolute\",value:p(void 0,n,t),options:{related:(i=n.options)==null?void 0:i.RELATED}}:{type:\"relative\",value:j(void 0,n),options:{related:(a=n.options)==null?void 0:a.RELATED}};return m(e,l)},Xt=e=>e.startsWith('\"')&&e.endsWith('\"')?e.slice(1,-1):e,On=e=>e.map(n=>{let[t,...r]=n.split(ye),o=r.join(ye);return{property:t,value:Xt(o)}},{}),Qt=e=>e.reduce((n,t)=>(n[t.property]=t.value,n),{}),er=e=>Qt(On(e)),nr=e=>{let n=!1,t;for(let i=0;i{let{property:n,value:t}=nr(e);if(n.includes(W)){let[r,...o]=n.split(W),i=er(o);return{property:r,line:{options:i,value:t}}}return{property:n,line:{value:t}}},qe=e=>/^[ \\t]/.test(e),rr=e=>/^[A-Z]+(?:-[A-Z]+)*[:;]/.test(e),or=e=>{let n=[],t=e.split(pe);for(;t[0]===\"\";)t.shift();let r=t.length;for(;r>0&&t[r-1]===\"\";)r-=1,t.pop();for(let o=0;oo!==\"\")},ar=(e,n,t)=>{if(!n)return e;let r={};return Object.entries(n).forEach(([o,i])=>{let a=Object.entries(t||{}).find(([u,c])=>c.name===o);if(!a){r[ir(o)]=i.value;return}let l=a[1].convert(i),s=a[1].schema;if(!s){r[a[0]]=l;return}r[a[0]]=m(s,l)}),e.nonStandard=r,e},ir=e=>{let n=e.startsWith(\"X-\")?e.slice(2):e,t=\"\",r=!1;for(let o of n)o===\"-\"?r=!0:(t+=r?o.toUpperCase():o.toLowerCase(),r=!1);return t},lr=e=>e.startsWith(\"X-\"),Y=(e,n,t)=>{let r=n.replace(Rn(t?.icsComponent),\"\"),o=[...new Set(Object.values(t.childComponents||{}).flatMap(({icsComponent:v})=>v))],i=or(o.reduce((v,E)=>v.replace(Be(E),\"\"),r)),a=t.defaultValues||{},l={};i.forEach(v=>{var E,M;let{property:z,line:C}=tr(v);lr(z)&&(l[z]=C);let S=t.objectKeyMap[z];if(!S)return;let _=(E=t.convertArrayValues)==null?void 0:E[S];if(_){let L=_({line:C});if(!L)return;(a[S]===void 0||a[S]===null||!Array.isArray(a[S]))&&(a[S]=[]),Array.isArray(L)?a[S].push(...L):a[S].push(L);return}let Ue=(M=t.convertValues)==null?void 0:M[S];if(Ue){let L=Ue({line:C});if(!L)return;a[S]=L;return}a[S]=C.value});let s=t.childComponents,u=s?Object.keys(s||{}):[];s&&u.length>0&&u.forEach(v=>{let E=s?.[v];if(!E)return;let M=Array.isArray(E.icsComponent)?E.icsComponent:[E.icsComponent],z=[],C=[];M.forEach(S=>{C.push(...r.matchAll(Be(S)))}),C.map(S=>S[0]).forEach(S=>{let _=E.convert(S,{data:a});_&&z.push(_)}),z.length!==0&&(a[v]=z)});let c=m(e,a);return t!=null&&t.nonStandard?ar(c,l,t?.nonStandard):c},ce=(e,n)=>{var t,r,o;return m(e,{name:(t=n.options)==null?void 0:t.CN,dir:(r=n.options)==null?void 0:r.DIR,sentBy:(o=n.options)!=null&&o[\"SENT-BY\"]?k(n.options[\"SENT-BY\"]):void 0,email:k(n.value)})},ke=(e,n,t)=>{var r;return m(e,{value:p(void 0,n,t),range:(r=n.options)==null?void 0:r.RANGE})},sr=e=>{if(e.length===2)return{day:e};let n=e.slice(0,-2);return{day:e.replace(n,\"\"),occurrence:Number(n)}},ur=(e,n)=>m(e,sr(n.value)),dr=(e,n)=>m(e,n.value),cr=[\"until\"],vr=e=>cr.includes(e),mr=[\"bySecond\",\"byMinute\",\"byHour\",\"byMonthday\",\"byYearday\",\"byWeekNo\",\"bySetPos\"],Er=e=>mr.includes(e),pr=[\"byDay\"],yr=e=>pr.includes(e),Tr=[\"count\",\"interval\"],fr=e=>Tr.includes(e),ve=(e,n,t)=>{let r={};return On(n.value.split(W)).forEach(o=>{let{property:i,value:a}=o,l=Qe[i];if(l){if(vr(l)){r[l]=p(void 0,{value:a,options:{VALUE:a.includes(\"T\")?\"DATE-TIME\":\"DATE\"}},{timezones:t?.timezones});return}if(Er(l)){r[l]=a.split(V).map(s=>Number(s));return}if(l===\"byMonth\"){r[l]=a.split(V).map(s=>Number(s)-1);return}if(yr(l)){r[l]=a.split(V).map(s=>ur(void 0,{value:s}));return}if(fr(l)){r[l]=Number(a);return}if(l===\"frequency\"){if(!a||!mt.includes(a))return;r[l]=a;return}if(l===\"workweekStart\"){r[l]=dr(void 0,{value:a});return}}}),m(e,r)},Ve=(e,n)=>m(e,n.value),Sr=(e,n)=>m(e,n.value),_e=(e,n,t)=>m(e,n.value.split(\",\").map(r=>p(void 0,{value:r,options:n.options},t))),Ar=(e,n)=>m(e,n.value),Dr=(e,n)=>m(e,n.value),Or=(e,n)=>m(e,n.value),F=(e,n)=>m(e,Number.parseInt(n.value,10)),Rr=e=>e.replace(/\\\\(([,;\\\\])|([nN]))/g,(n,t,r)=>r||`\n`),D=(e,n)=>m(e,Rr(n.value)),gr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:ee,objectKeyMap:We,convertValues:{trigger:({line:o})=>xt(void 0,o,{timezones:r?.timezones}),duration:({line:o})=>j(void 0,o),repeat:({line:o})=>F(void 0,o)},convertArrayValues:{attachments:({line:o})=>Wt(void 0,o),attendees:({line:o})=>w(void 0,o)},nonStandard:r?.nonStandard,timezones:r?.timezones})},Mr=(...e)=>{let[n,t,r]=e,o,i=Y(n,t,{icsComponent:Q,objectKeyMap:Ge,convertValues:{stamp:({line:a})=>p(void 0,a,{timezones:r?.timezones}),start:({line:a})=>p(void 0,a,{timezones:r?.timezones}),end:({line:a})=>p(void 0,a,{timezones:r?.timezones}),created:({line:a})=>p(void 0,a,{timezones:r?.timezones}),lastModified:({line:a})=>p(void 0,a,{timezones:r?.timezones}),categories:({line:a})=>a.value.split(V),description:({line:a})=>{var l;return(l=a.options)!=null&&l.ALTREP&&(o=a.options.ALTREP),D(void 0,a)},location:({line:a})=>D(void 0,a),comment:({line:a})=>D(void 0,a),summary:({line:a})=>D(void 0,a),recurrenceRule:({line:a})=>ve(void 0,a,{timezones:r?.timezones}),duration:({line:a})=>j(void 0,a),organizer:({line:a})=>ce(void 0,a),sequence:({line:a})=>F(void 0,a),class:({line:a})=>Ve(void 0,a),recurrenceId:({line:a})=>ke(void 0,a,{timezones:r?.timezones}),status:({line:a})=>Ar(void 0,a),timeTransparent:({line:a})=>Sr(void 0,a)},convertArrayValues:{attendees:({line:a})=>w(void 0,a),exceptionDates:({line:a})=>_e(void 0,a,{timezones:r?.timezones})},childComponents:{alarms:{icsComponent:ee,convert:a=>gr(void 0,a,{nonStandard:r?.nonStandard,timezones:r?.timezones})}},timezones:r?.timezones,nonStandard:r?.nonStandard});return o&&(i.descriptionAltRep=o),i},Nr=(...e)=>{let[n,t,r]=e,o=t.split(\"BEGIN:\")[1].split(pe)[0],i=vt.includes(o)?o:\"STANDARD\",a=t.split(\"TZOFFSETTO:\")[1].split(pe)[0];return Y(n,t,{icsComponent:i,objectKeyMap:xe,defaultValues:{type:i},convertValues:{start:({line:l})=>Gt(void 0,l,a),recurrenceRule:({line:l})=>ve(void 0,l,{timezones:r?.timezones}),recurrenceDate:({line:l})=>p(void 0,l,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},Ir=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:X,objectKeyMap:Ze,convertValues:{lastModified:({line:o})=>B(void 0,o)},childComponents:{props:{icsComponent:[\"DAYLIGHT\",\"STANDARD\"],convert:o=>Nr(void 0,o,{nonStandard:r?.nonStandard,timezones:r?.timezones})}},nonStandard:r?.nonStandard,timezones:r?.timezones})},Yr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:ne,objectKeyMap:en,convertValues:{stamp:({line:o})=>p(void 0,o,{timezones:r?.timezones}),start:({line:o})=>p(void 0,o,{timezones:r?.timezones}),due:({line:o})=>p(void 0,o,{timezones:r?.timezones}),created:({line:o})=>p(void 0,o,{timezones:r?.timezones}),lastModified:({line:o})=>p(void 0,o,{timezones:r?.timezones}),completed:({line:o})=>p(void 0,o,{timezones:r?.timezones}),categories:({line:o})=>o.value.split(V),description:({line:o})=>D(void 0,o),location:({line:o})=>D(void 0,o),comment:({line:o})=>D(void 0,o),summary:({line:o})=>D(void 0,o),recurrenceRule:({line:o})=>ve(void 0,o,{timezones:r?.timezones}),duration:({line:o})=>j(void 0,o),organizer:({line:o})=>ce(void 0,o),sequence:({line:o})=>F(void 0,o),percentComplete:({line:o})=>F(void 0,o),class:({line:o})=>Ve(void 0,o),recurrenceId:({line:o})=>ke(void 0,o,{timezones:r?.timezones}),status:({line:o})=>Dr(void 0,o)},convertArrayValues:{attendees:({line:o})=>w(void 0,o),exceptionDates:({line:o})=>_e(void 0,o,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},zr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:te,objectKeyMap:nn,convertValues:{stamp:({line:o})=>p(void 0,o,{timezones:r?.timezones}),start:({line:o})=>p(void 0,o,{timezones:r?.timezones}),created:({line:o})=>p(void 0,o,{timezones:r?.timezones}),lastModified:({line:o})=>p(void 0,o,{timezones:r?.timezones}),categories:({line:o})=>o.value.split(V),description:({line:o})=>D(void 0,o),comment:({line:o})=>D(void 0,o),summary:({line:o})=>D(void 0,o),recurrenceRule:({line:o})=>ve(void 0,o,{timezones:r?.timezones}),organizer:({line:o})=>ce(void 0,o),sequence:({line:o})=>F(void 0,o),class:({line:o})=>Ve(void 0,o),recurrenceId:({line:o})=>ke(void 0,o,{timezones:r?.timezones}),status:({line:o})=>Or(void 0,o)},convertArrayValues:{attendees:({line:o})=>w(void 0,o),exceptionDates:({line:o})=>_e(void 0,o,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},Cr=(e,n)=>{var t;return m(e,{type:(t=n.options)==null?void 0:t.FBTYPE,values:n.value.split(\",\").map(r=>{let[o,i]=r.split(\"/\"),a=B(void 0,{value:o});if(i.startsWith(\"PT\")){let s=j(void 0,{value:i});return{start:a,duration:s}}let l=B(void 0,{value:i});return{start:a,end:l}})})},Lr=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:re,objectKeyMap:tn,convertValues:{stamp:({line:o})=>p(void 0,o,{timezones:r?.timezones}),start:({line:o})=>p(void 0,o,{timezones:r?.timezones}),end:({line:o})=>p(void 0,o,{timezones:r?.timezones}),comment:({line:o})=>D(void 0,o),organizer:({line:o})=>ce(void 0,o)},convertArrayValues:{attendees:({line:o})=>w(void 0,o),freeBusy:({line:o})=>Cr(void 0,o)},nonStandard:r?.nonStandard,timezones:r?.timezones})},So=(...e)=>{let[n,t,r]=e;return Y(n,t,{icsComponent:Ne,objectKeyMap:Je,convertValues:{version:({line:o})=>o.value},childComponents:{timezones:{icsComponent:X,convert:o=>Ir(void 0,o,{nonStandard:r?.nonStandard})},events:{icsComponent:Q,convert:(o,{data:i})=>Mr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})},todos:{icsComponent:ne,convert:(o,{data:i})=>Yr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})},journals:{icsComponent:te,convert:(o,{data:i})=>zr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})},freeBusy:{icsComponent:re,convert:(o,{data:i})=>Lr(void 0,o,{nonStandard:r?.nonStandard,timezones:i.timezones})}},nonStandard:r?.nonStandard})};export{pe as BREAK_REGEX,V as COMMA,sn as CRLF_BREAK,gn as CRLF_BREAK_REGEX,Mt as DEFAULT_END_IN_YEARS,ye as EQUAL_SIGN,Zr as ICS_COMPONENTS,Fe as LF_BREAK,Xr as MAX_LINE_LENGTH,on as OBJECT_END,rn as OBJECT_START,Nn as QUOTE,Hr as RRULE_KEYS,$r as RRULE_OBJECT_KEYS,Xe as RRULE_TO_KEYS,Qe as RRULE_TO_OBJECT_KEYS,W as SEMICOLON,Mn as SEPARATOR,xr as SPACE,vt as TIMEZONE_PROP_COMPONENTS,hr as VALARM_KEYS,ee as VALARM_OBJECT_KEY,br as VALARM_OBJECT_KEYS,fe as VALARM_TO_KEYS,We as VALARM_TO_OBJECT_KEYS,Kr as VCALENDAR_KEYS,Ne as VCALENDAR_OBJECT_KEY,kr as VCALENDAR_OBJECT_KEYS,Se as VCALENDAR_TO_KEYS,Je as VCALENDAR_TO_OBJECT_KEYS,Vr as VEVENT_KEYS,Q as VEVENT_OBJECT_KEY,_r as VEVENT_OBJECT_KEYS,Ae as VEVENT_TO_KEYS,Ge as VEVENT_TO_OBJECT_KEYS,Jr as VFREEBUSY_KEYS,re as VFREEBUSY_OBJECT_KEY,Gr as VFREEBUSY_OBJECT_KEYS,Me as VFREEBUSY_TO_KEYS,tn as VFREEBUSY_TO_OBJECT_KEYS,qr as VJOURNAL_KEYS,te as VJOURNAL_OBJECT_KEY,Wr as VJOURNAL_OBJECT_KEYS,ge as VJOURNAL_TO_KEYS,nn as VJOURNAL_TO_OBJECT_KEYS,ln as VTIMEZONE_DAYLIGHT_OBJECT_KEY,Ur as VTIMEZONE_KEYS,X as VTIMEZONE_OBJECT_KEY,Br as VTIMEZONE_OBJECT_KEYS,Fr as VTIMEZONE_PROP_KEYS,Pr as VTIMEZONE_PROP_OBJECT_KEYS,Oe as VTIMEZONE_PROP_TO_KEYS,xe as VTIMEZONE_PROP_TO_OBJECT_KEYS,an as VTIMEZONE_STANDARD_OBJECT_KEY,De as VTIMEZONE_TO_KEYS,Ze as VTIMEZONE_TO_OBJECT_KEYS,wr as VTODO_KEYS,ne as VTODO_OBJECT_KEY,jr as VTODO_OBJECT_KEYS,Re as VTODO_TO_KEYS,en as VTODO_TO_OBJECT_KEYS,lo as attachmentEncodingTypes,so as attachmentValueTypes,uo as attendeePartStatusTypes,oo as calendarMethods,ao as calendarVersions,yo as classTypes,gr as convertIcsAlarm,Wt as convertIcsAttachment,w as convertIcsAttendee,So as convertIcsCalendar,Ve as convertIcsClass,Jt as convertIcsDate,B as convertIcsDateTime,j as convertIcsDuration,Mr as convertIcsEvent,Ar as convertIcsEventStatus,_e as convertIcsExceptionDates,Lr as convertIcsFreeBusy,F as convertIcsInteger,zr as convertIcsJournal,Or as convertIcsJournalStatus,Gt as convertIcsLocalOnlyDateTime,ce as convertIcsOrganizer,ke as convertIcsRecurrenceId,ve as convertIcsRecurrenceRule,D as convertIcsText,p as convertIcsTimeStamp,Sr as convertIcsTimeTransparent,Ir as convertIcsTimezone,Nr as convertIcsTimezoneProp,Yr as convertIcsTodo,Dr as convertIcsTodoStatus,xt as convertIcsTrigger,dr as convertIcsWeekDay,ur as convertIcsWeekDayNumber,ar as convertNonStandardValues,Be as createGetRegex,Rn as createReplaceRegex,co as dateObjectTypes,vo as eventStatusTypes,Nt as extendByRecurrenceRule,It as extendTimezoneProps,io as freeBusyTypes,_t as generateIcsAlarm,zn as generateIcsAttachment,P as generateIcsAttendee,fo as generateIcsCalendar,Dn as generateIcsDate,H as generateIcsDuration,Ft as generateIcsEvent,qt as generateIcsFreeBusy,U as generateIcsInteger,wt as generateIcsJournal,zt as generateIcsLocalDateTime,Ct as generateIcsLocalOnlyDateTime,K as generateIcsMail,ue as generateIcsOrganizer,de as generateIcsRecurrenceRule,A as generateIcsText,T as generateIcsTimeStamp,Ht as generateIcsTimezone,Pt as generateIcsTimezoneProp,$t as generateIcsTodo,Lt as generateIcsTrigger,h as generateIcsUtcDateTime,Ut as generateIcsWeekdayNumber,ht as generateNonStandardValues,to as getDurationFromInterval,ro as getEventEnd,ct as getEventEndFromDuration,An as getTimezoneObjectOffset,Eo as journalStatusTypes,fr as recurrenceObjectKeyIsNumber,Er as recurrenceObjectKeyIsNumberArray,vr as recurrenceObjectKeyIsTimeStamp,yr as recurrenceObjectKeyIsWeekdayNumberArray,mt as recurrenceRuleFrequencies,To as timeTransparentTypes,x as timeZoneOffsetToMilliseconds,mo as todoStatusTypes,po as triggerRelations,Sn as weekDays};\n//# sourceMappingURL=ts-ics.mjs.map", "import { clientStore, config, datastore, editor, index } from \"@silverbulletmd/silverbullet/syscalls\";\nimport { convertIcsCalendar } from \"https://esm.sh/ts-ics@2.4.0\";\n\nconst VERSION = \"0.3.13\";\nconst CACHE_KEY = \"icalendar:lastSync\";\n\nconsole.log(`[iCalendar] Plug script executing at top level (Version ${VERSION})`);\n\nconst TIMEZONE_OFFSETS: Record = {\n \"GMT Standard Time\": 0,\n \"W. Europe Standard Time\": 1,\n \"Central Europe Standard Time\": 1,\n \"Romance Standard Time\": 1,\n \"Central European Standard Time\": 1,\n \"Eastern Standard Time\": -5,\n \"Central Standard Time\": -6,\n \"Mountain Standard Time\": -7,\n \"Pacific Standard Time\": -8,\n \"UTC\": 0,\n \"None\": 0\n};\n\nasync function getSources(): Promise<{ sources: any[], tzShift: number }> {\n try {\n const rawConfig = await config.get(\"icalendar\", { sources: [] });\n const sources = rawConfig.sources || [];\n const tzShift = rawConfig.tzShift || 0;\n return { sources, tzShift };\n } catch (e) {\n return { sources: [], tzShift: 0 };\n }\n}\n\nasync function fetchAndParseCalendar(source: any, hourShift = 0): Promise {\n console.log(`[iCalendar] Fetching from ${source.url}`);\n const response = await fetch(source.url);\n if (!response.ok) {\n console.error(`[iCalendar] Fetch failed with status ${response.status}`);\n return [];\n }\n const text = await response.text();\n const calendar = convertIcsCalendar(undefined, text);\n if (!calendar.events) return [];\n \n const events: any[] = [];\n for (const icsEvent of calendar.events) {\n const obj = icsEvent.start;\n let wallTimeStr = \"\";\n if (obj.local && typeof obj.local.date === \"string\") wallTimeStr = obj.local.date;\n else if (typeof obj.date === \"string\") wallTimeStr = obj.date;\n if (!wallTimeStr) continue;\n\n const baseDate = new Date(wallTimeStr.replace(\"Z\", \"\") + \"Z\");\n const tzName = obj.local?.timezone || obj.timezone || \"UTC\";\n const sourceOffset = TIMEZONE_OFFSETS[tzName] ?? 0;\n const utcMillis = baseDate.getTime() - (sourceOffset * 3600000);\n const finalDate = new Date(utcMillis + (hourShift * 3600000));\n \n const pad = (n: number) => String(n).padStart(2, \"0\");\n const localIso = finalDate.getFullYear() + \"-\" + pad(finalDate.getMonth() + 1) + \"-\" + pad(finalDate.getDate()) + \"T\" + pad(finalDate.getHours()) + \":\" + pad(finalDate.getMinutes()) + \":\" + pad(finalDate.getSeconds());\n\n events.push({\n ...icsEvent,\n start: localIso,\n tag: \"ical-event\",\n sourceName: source.name\n });\n }\n return events;\n}\n\nexport async function syncCalendars() {\n console.log(`[iCalendar] syncCalendars command triggered`);\n try {\n const { sources, tzShift } = await getSources();\n console.log(`[iCalendar] Found ${sources.length} sources, tzShift: ${tzShift}`);\n if (sources.length === 0) return;\n await editor.flashNotification(\"Syncing calendars...\", \"info\");\n const allEvents: any[] = [];\n for (const source of sources) {\n const events = await fetchAndParseCalendar(source, tzShift);\n allEvents.push(...events);\n }\n await index.indexObjects(\"$icalendar\", allEvents);\n console.log(`[iCalendar] Successfully indexed ${allEvents.length} events`);\n await editor.flashNotification(`Synced ${allEvents.length} events`, \"info\");\n } catch (err) {\n console.error(\"[iCalendar] Sync failed:\", err);\n }\n}\n\nexport async function forceSync() {\n console.log(`[iCalendar] forceSync command triggered`);\n await clientStore.del(CACHE_KEY);\n await syncCalendars();\n}\n\nexport async function clearCache() {\n console.log(`[iCalendar] clearCache command triggered`);\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 console.log(`[iCalendar] showVersion command triggered`);\n await editor.flashNotification(`iCalendar Plug ${VERSION}`, \"info\");\n}\n", "\nimport { setupMessageListener } from \"https://deno.land/x/silverbullet@2.4.1/client/plugos/worker_runtime.ts\";\n\n// Imports\nimport {syncCalendars as syncCalendars} from \"file:///app/icalendar.ts\";\nimport {forceSync as forceSync} from \"file:///app/icalendar.ts\";\nimport {clearCache as clearCache} from \"file:///app/icalendar.ts\";\nimport {showVersion as showVersion} from \"file:///app/icalendar.ts\";\n\n\n// Function mapping\nconst functionMapping = {\n syncCalendars: syncCalendars,\n forceSync: forceSync,\n clearCache: clearCache,\n showVersion: showVersion,\n\n};\n\n// Manifest\nconst manifest = {\n \"name\": \"Library/sstent/icalendar\",\n \"version\": \"0.3.13\",\n \"author\": \"sstent\",\n \"index\": \"icalendar.ts\",\n \"functions\": {\n \"syncCalendars\": {\n \"path\": \"icalendar.ts:syncCalendars\",\n \"command\": \"iCalendar: Sync\"\n },\n \"forceSync\": {\n \"path\": \"icalendar.ts:forceSync\",\n \"command\": \"iCalendar: Force Sync\"\n },\n \"clearCache\": {\n \"path\": \"icalendar.ts:clearCache\",\n \"command\": \"iCalendar: Clear Cache\"\n },\n \"showVersion\": {\n \"path\": \"icalendar.ts:showVersion\",\n \"command\": \"iCalendar: Show Version\"\n }\n },\n \"permissions\": [\n \"http\"\n ],\n \"assets\": {}\n};\n\nexport const plug = {manifest, functionMapping};\n\nsetupMessageListener(functionMapping, manifest, self.postMessage);\n"], - "mappings": "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", - "names": ["base64Decode", "s", "binString", "len", "bytes", "i", "base64Encode", "buffer", "binary", "fixedCounter", "Logger", "prefix", "maxCaptureSize", "createPatchedMethod", "level", "args", "prefixedArgs", "entry", "arg", "logEndpoint", "source", "logCopy", "e", "globalLogger", "initLogger", "workerPostMessage", "_msg", "runningAsWebWorker", "pendingRequests", "syscallReqId", "name", "args", "resolve", "reject", "setupMessageListener", "functionMapping", "manifest", "postMessageFn", "event", "data", "fn", "result", "e", "syscallId", "lookup", "initLogger", "sandboxFetch", "reqInfo", "options", "body", "encodedBody", "base64Encode", "monkeyPatchFetch", "init", "base64Decode", "editor_exports", "__export", "alert", "configureVimMode", "confirm", "copyToClipboard", "deleteLine", "dispatch", "downloadFile", "filterBox", "flashNotification", "fold", "foldAll", "getCurrentEditor", "getCurrentPage", "getCurrentPageMeta", "getCurrentPath", "getCursor", "getRecentlyOpenedPages", "getSelection", "getText", "getUiOption", "goHistory", "hidePanel", "insertAtCursor", "insertAtPos", "invokeCommand", "isMobile", "moveCursor", "moveCursorToLine", "moveLineDown", "moveLineUp", "navigate", "newWindow", "openCommandPalette", "openPageNavigator", "openSearchPanel", "openUrl", "prompt", "rebuildEditorState", "redo", "reloadConfigAndCommands", "reloadPage", "reloadUI", "replaceRange", "save", "sendMessage", "setSelection", "setText", "setUiOption", "showPanel", "showProgress", "toggleComment", "toggleFold", "undo", "unfold", "unfoldAll", "uploadFile", "vimEx", "syscall", "name", "args", "getCurrentPage", "syscall", "getCurrentPageMeta", "getCurrentPath", "getRecentlyOpenedPages", "getCurrentEditor", "getText", "setText", "newText", "isolateHistory", "getCursor", "getSelection", "setSelection", "from", "to", "invokeCommand", "name", "args", "save", "navigate", "ref", "replaceState", "newWindow", "openPageNavigator", "mode", "openCommandPalette", "reloadPage", "reloadUI", "rebuildEditorState", "reloadConfigAndCommands", "openUrl", "url", "existingWindow", "goHistory", "delta", "downloadFile", "filename", "dataUrl", "uploadFile", "accept", "capture", "flashNotification", "message", "type", "filterBox", "label", "options", "helpText", "placeHolder", "showPanel", "id", "html", "script", "hidePanel", "showProgress", "progressPercentage", "progressType", "insertAtPos", "text", "pos", "replaceRange", "moveCursor", "center", "moveCursorToLine", "line", "column", "insertAtCursor", "scrollIntoView", "cursorPlaceHolder", "dispatch", "change", "prompt", "defaultValue", "confirm", "alert", "getUiOption", "key", "setUiOption", "value", "fold", "unfold", "toggleFold", "foldAll", "unfoldAll", "undo", "redo", "openSearchPanel", "copyToClipboard", "data", "deleteLine", "toggleComment", "moveLineUp", "moveLineDown", "vimEx", "exCommand", "configureVimMode", "sendMessage", "isMobile", "client_store_exports", "__export", "del", "get", "set", "set", "key", "value", "syscall", "get", "del", "fixedCounter", "datastore_exports", "__export", "batchDel", "batchDeletePrefix", "batchGet", "batchSet", "del", "get", "listFunctions", "query", "queryDelete", "queryLua", "set", "set", "key", "value", "syscall", "batchSet", "kvs", "get", "batchGet", "keys", "del", "batchDel", "query", "options", "queryLua", "prefix", "scopeVariables", "batchDeletePrefix", "queryDelete", "variables", "listFunctions", "config_exports", "__export", "define", "get", "has", "insert", "set", "get", "path", "defaultValue", "syscall", "set", "pathOrValues", "value", "insert", "has", "define", "key", "schema", "syscalls_exports", "__export", "ensureFullIndex", "getObjectByRef", "indexObjects", "queryLuaObjects", "indexObjects", "page", "objects", "syscall", "queryLuaObjects", "tag", "query", "scopedVariables", "ttlSecs", "getObjectByRef", "ref", "ensureFullIndex", "g", "n", "t", "f", "fe", "We", "hr", "br", "Se", "Je", "Kr", "kr", "Ae", "Ge", "Vr", "_r", "De", "Ze", "Ur", "Br", "Oe", "xe", "Fr", "Pr", "Xe", "Qe", "Hr", "$r", "Re", "en", "wr", "jr", "ge", "nn", "qr", "Wr", "Me", "tn", "Jr", "Gr", "rn", "on", "Ne", "X", "an", "ln", "Q", "ee", "ne", "te", "re", "Be", "rn", "on", "Rn", "pe", "Fe", "Mn", "V", "Nn", "W", "ye", "Cn", "Qr", "Ln", "Ie", "Ye", "bn", "un", "eo", "Kn", "kn", "no", "Pe", "O", "n", "oe", "t", "dn", "i", "a", "$", "cn", "Vn", "ae", "G", "l", "s", "u", "c", "ie", "n", "t", "O", "Te", "ze", "n", "t", "Ie", "vn", "$", "le", "oe", "mn", "dn", "Ce", "we", "n", "t", "Hn", "n", "t", "ie", "$n", "i", "a", "l", "s", "O", "je", "wn", "jn", "qn", "ae", "u", "c", "v", "G", "E", "M", "Wn", "Jn", "Ln", "q", "yn", "Gn", "Zn", "Tn", "xn", "Xn", "Qn", "et", "Z", "oe", "fn", "nt", "Ye", "tt", "Ie", "rt", "ot", "at", "it", "lt", "st", "ut", "$", "dt", "le", "vt", "an", "ln", "mt", "Sn", "b", "n", "Et", "t", "i", "a", "vn", "ze", "cn", "oe", "le", "dn", "mn", "pt", "Sn", "l", "q", "Z", "s", "me", "N", "je", "we", "jn", "wn", "Te", "dt", "$n", "fn", "yt", "it", "Gn", "Tt", "lt", "Zn", "ft", "rt", "Tn", "St", "yn", "ot", "At", "st", "xn", "Dt", "Ce", "Ot", "et", "Rt", "at", "Xn", "gt", "Qn", "Mt", "Nt", "It", "x", "Yt", "An", "u", "c", "nt", "tt", "m", "n", "t", "Wt", "i", "a", "k", "w", "l", "s", "u", "c", "v", "E", "j", "Jt", "B", "Gt", "x", "ut", "Zt", "An", "$", "p", "xt", "Xt", "On", "ye", "Qt", "er", "nr", "Nn", "Mn", "tr", "W", "qe", "rr", "or", "pe", "Fe", "ar", "ir", "lr", "Y", "Rn", "Be", "M", "z", "S", "_", "L", "Ue", "ce", "ke", "sr", "ur", "dr", "cr", "vr", "mr", "Er", "pr", "yr", "Tr", "fr", "ve", "Qe", "V", "mt", "Ve", "Sr", "_e", "Ar", "Dr", "Or", "F", "Rr", "D", "gr", "ee", "We", "Mr", "Q", "Ge", "Nr", "vt", "xe", "Ir", "X", "Ze", "Yr", "ne", "en", "zr", "te", "nn", "Cr", "Lr", "re", "tn", "So", "Ne", "Je", "VERSION", "CACHE_KEY", "TIMEZONE_OFFSETS", "getSources", "rawConfig", "config_exports", "sources", "tzShift", "fetchAndParseCalendar", "source", "hourShift", "response", "text", "calendar", "So", "events", "icsEvent", "obj", "wallTimeStr", "baseDate", "tzName", "sourceOffset", "utcMillis", "finalDate", "pad", "n", "localIso", "syncCalendars", "editor_exports", "allEvents", "syscalls_exports", "err", "forceSync", "client_store_exports", "clearCache", "pageKeys", "datastore_exports", "allKeys", "key", "showVersion", "functionMapping", "syncCalendars", "forceSync", "clearCache", "showVersion", "manifest", "plug", "setupMessageListener"] -} diff --git a/Library/sstent/icalendar/PLUG.md b/Library/sstent/icalendar/PLUG.md deleted file mode 100644 index d3df3b7..0000000 --- a/Library/sstent/icalendar/PLUG.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: Library/sstent/icalendar -version: 0.3.16 -tags: meta/library -files: - - icalendar.plug.js ---- -iCalendar sync plug for SilverBullet. diff --git a/Library/sstent/icalendar/icalendar.plug.js b/Library/sstent/icalendar/icalendar.plug.js deleted file mode 100644 index ed2ae1a..0000000 --- a/Library/sstent/icalendar/icalendar.plug.js +++ /dev/null @@ -1,4 +0,0 @@ -var yt=Object.defineProperty;var I=(e,t)=>{for(var n in t)yt(e,n,{get:t[n],enumerable:!0})};function pe(e){let t=atob(e),n=t.length,r=new Uint8Array(n);for(let o=0;o(...r)=>{let o=this.prefix?[this.prefix,...r]:r;this.originalConsole[n](...o),this.captureLog(n,r)};console.log=t("log"),console.info=t("info"),console.warn=t("warn"),console.error=t("error"),console.debug=t("debug")}captureLog(t,n){let r={level:t,timestamp:Date.now(),message:n.map(o=>{if(typeof o=="string")return o;try{return JSON.stringify(o)}catch{return String(o)}}).join(" ")};this.logBuffer.push(r),this.logBuffer.length>this.maxCaptureSize&&this.logBuffer.shift()}async postToServer(t,n){if(this.logBuffer.length>0){let o=[...this.logBuffer];this.logBuffer=[];try{if(!(await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o.map(i=>({...i,source:n})))})).ok)throw new Error("Failed to post logs to server")}catch(s){console.warn("Could not post logs to server",s.message),this.logBuffer.unshift(...o)}}}},ye;function fe(e=""){return ye=new Z(e),ye}var L=e=>{throw new Error("Not initialized yet")},ee=typeof window>"u"&&typeof globalThis.WebSocketPair>"u";typeof Deno>"u"&&(self.Deno={args:[],build:{arch:"x86_64"},env:{get(){}}});var X=new Map,Q=0;ee&&(globalThis.syscall=async(e,...t)=>await new Promise((n,r)=>{Q++,X.set(Q,{resolve:n,reject:r}),L({type:"sys",id:Q,name:e,args:t})}));function ge(e,t,n){ee&&(L=n,self.addEventListener("message",r=>{(async()=>{let o=r.data;switch(o.type){case"inv":{let s=e[o.name];if(!s)throw new Error(`Function not loaded: ${o.name}`);try{let i=await Promise.resolve(s(...o.args||[]));L({type:"invr",id:o.id,result:i})}catch(i){console.error("An exception was thrown as a result of invoking function",o.name,"error:",i.message),L({type:"invr",id:o.id,error:i.message})}}break;case"sysr":{let s=o.id,i=X.get(s);if(!i)throw Error("Invalid request id");X.delete(s),o.error?i.reject(new Error(o.error)):i.resolve(o.result)}break}})().catch(console.error)}),L({type:"manifest",manifest:t}),fe(`[${t.name} plug]`))}async function ft(e,t){if(typeof e!="string"){let n=new Uint8Array(await e.arrayBuffer()),r=n.length>0?J(n):void 0;t={method:e.method,headers:Object.fromEntries(e.headers.entries()),base64Body:r},e=e.url}return syscall("sandboxFetch.fetch",e,t)}globalThis.nativeFetch=globalThis.fetch;function gt(){globalThis.fetch=async function(e,t){let n=t&&t.body?J(new Uint8Array(await new Response(t.body).arrayBuffer())):void 0,r=await ft(e,t&&{method:t.method,headers:t.headers,base64Body:n});return new Response(r.base64Body?pe(r.base64Body):null,{status:r.status,headers:r.headers})}}ee&>();var x={};I(x,{alert:()=>er,configureVimMode:()=>vr,confirm:()=>Xt,copyToClipboard:()=>dr,deleteLine:()=>mr,dispatch:()=>Zt,downloadFile:()=>Ft,filterBox:()=>Vt,flashNotification:()=>Bt,fold:()=>nr,foldAll:()=>sr,getCurrentEditor:()=>ht,getCurrentPage:()=>vt,getCurrentPageMeta:()=>Et,getCurrentPath:()=>Tt,getCursor:()=>bt,getRecentlyOpenedPages:()=>St,getSelection:()=>xt,getText:()=>At,getUiOption:()=>tr,goHistory:()=>Ut,hidePanel:()=>$t,insertAtCursor:()=>Jt,insertAtPos:()=>Ht,invokeCommand:()=>Mt,isMobile:()=>Tr,moveCursor:()=>Wt,moveCursorToLine:()=>Gt,moveLineDown:()=>fr,moveLineUp:()=>yr,navigate:()=>Rt,newWindow:()=>Yt,openCommandPalette:()=>Nt,openPageNavigator:()=>Ot,openSearchPanel:()=>cr,openUrl:()=>zt,prompt:()=>Qt,rebuildEditorState:()=>Lt,redo:()=>ur,reloadConfigAndCommands:()=>Kt,reloadPage:()=>wt,reloadUI:()=>It,replaceRange:()=>qt,save:()=>Dt,sendMessage:()=>Er,setSelection:()=>Ct,setText:()=>Pt,setUiOption:()=>rr,showPanel:()=>_t,showProgress:()=>jt,toggleComment:()=>pr,toggleFold:()=>ir,undo:()=>lr,unfold:()=>or,unfoldAll:()=>ar,uploadFile:()=>kt,vimEx:()=>gr});typeof self>"u"&&(self={syscall:()=>{throw new Error("Not implemented here")}});function l(e,...t){return globalThis.syscall(e,...t)}function vt(){return l("editor.getCurrentPage")}function Et(){return l("editor.getCurrentPageMeta")}function Tt(){return l("editor.getCurrentPath")}function St(){return l("editor.getRecentlyOpenedPages")}function ht(){return l("editor.getCurrentEditor")}function At(){return l("editor.getText")}function Pt(e,t=!1){return l("editor.setText",e,t)}function bt(){return l("editor.getCursor")}function xt(){return l("editor.getSelection")}function Ct(e,t){return l("editor.setSelection",e,t)}function Mt(e,t){return l("editor.invokeCommand",e,t)}function Dt(){return l("editor.save")}function Rt(e,t=!1,n=!1){return l("editor.navigate",e,t,n)}function Ot(e="page"){return l("editor.openPageNavigator",e)}function Nt(){return l("editor.openCommandPalette")}function wt(){return l("editor.reloadPage")}function It(){return l("editor.reloadUI")}function Lt(){return l("editor.rebuildEditorState")}function Kt(){return l("editor.reloadConfigAndCommands")}function zt(e,t=!1){return l("editor.openUrl",e,t)}function Yt(){return l("editor.newWindow")}function Ut(e){return l("editor.goHistory",e)}function Ft(e,t){return l("editor.downloadFile",e,t)}function kt(e,t){return l("editor.uploadFile",e,t)}function Bt(e,t="info"){return l("editor.flashNotification",e,t)}function Vt(e,t,n="",r=""){return l("editor.filterBox",e,t,n,r)}function _t(e,t,n,r=""){return l("editor.showPanel",e,t,n,r)}function $t(e){return l("editor.hidePanel",e)}function jt(e,t){return l("editor.showProgress",e,t)}function Ht(e,t){return l("editor.insertAtPos",e,t)}function qt(e,t,n){return l("editor.replaceRange",e,t,n)}function Wt(e,t=!1){return l("editor.moveCursor",e,t)}function Gt(e,t=1,n=!1){return l("editor.moveCursorToLine",e,t,n)}function Jt(e,t=!1,n=!1){return l("editor.insertAtCursor",e,t,n)}function Zt(e){return l("editor.dispatch",e)}function Qt(e,t=""){return l("editor.prompt",e,t)}function Xt(e){return l("editor.confirm",e)}function er(e){return l("editor.alert",e)}function tr(e){return l("editor.getUiOption",e)}function rr(e,t){return l("editor.setUiOption",e,t)}function nr(){return l("editor.fold")}function or(){return l("editor.unfold")}function ir(){return l("editor.toggleFold")}function sr(){return l("editor.foldAll")}function ar(){return l("editor.unfoldAll")}function lr(){return l("editor.undo")}function ur(){return l("editor.redo")}function cr(){return l("editor.openSearchPanel")}function dr(e){return l("editor.copyToClipboard",e)}function mr(){return l("editor.deleteLine")}function pr(){return l("editor.toggleComment")}function yr(){return l("editor.moveLineUp")}function fr(){return l("editor.moveLineDown")}function gr(e){return l("editor.vimEx",e)}function vr(){return l("editor.configureVimMode")}function Er(e,t){return l("editor.sendMessage",e,t)}function Tr(){return l("editor.isMobile")}var K={};I(K,{del:()=>xr,get:()=>br,set:()=>Pr});function Pr(e,t){return l("clientStore.set",e,t)}function br(e){return l("clientStore.get",e)}function xr(e){return l("clientStore.delete",e)}var di=new Uint8Array(16);var z={};I(z,{batchDel:()=>Ur,batchDeletePrefix:()=>Br,batchGet:()=>zr,batchSet:()=>Lr,del:()=>Yr,get:()=>Kr,listFunctions:()=>_r,query:()=>Fr,queryDelete:()=>Vr,queryLua:()=>kr,set:()=>Ir});function Ir(e,t){return l("datastore.set",e,t)}function Lr(e){return l("datastore.batchSet",e)}function Kr(e){return l("datastore.get",e)}function zr(e){return l("datastore.batchGet",e)}function Yr(e){return l("datastore.delete",e)}function Ur(e){return l("datastore.batchDelete",e)}function Fr(e){return l("datastore.query",e)}function kr(e,t,n){return l("datastore.queryLua",e,t,n)}function Br(e){return l("datastore.batchDeletePrefix",e)}function Vr(e,t){return l("datastore.queryDelete",e,t)}function _r(){return l("datastore.listFunctions")}var B={};I(B,{define:()=>Jr,get:()=>Hr,has:()=>Gr,insert:()=>Wr,set:()=>qr});function Hr(e,t){return l("config.get",e,t)}function qr(e,t){return l("config.set",e,t)}function Wr(e,t){return l("config.insert",e,t)}function Gr(e){return l("config.has",e)}function Jr(e,t){return l("config.define",e,t)}var V={};I(V,{ensureFullIndex:()=>en,getObjectByRef:()=>Xr,indexObjects:()=>Zr,queryLuaObjects:()=>Qr});function Zr(e,t){return l("index.indexObjects",e,t)}function Qr(e,t,n,r){return l("index.queryLuaObjects",e,t,n,r)}function Xr(e,t,n){return l("index.getObjectByRef",e,t,n)}function en(){return l("index.ensureFullIndex")}var b=e=>Object.fromEntries(Object.entries(e).map(([t,n])=>[n,t])),v=e=>Object.keys(e),be={action:"ACTION",description:"DESCRIPTION",duration:"DURATION",repeat:"REPEAT",summary:"SUMMARY",trigger:"TRIGGER",attachments:"ATTACH",attendees:"ATTENDEE"},xe=b(be),Ci=v(xe),Mi=v(be),Ce={method:"METHOD",prodId:"PRODID",version:"VERSION",name:"X-WR-CALNAME"},Me=b(Ce),Di=v(Me),Ri=v(Ce),De={alarms:"ALARM",categories:"CATEGORIES",created:"CREATED",description:"DESCRIPTION",lastModified:"LAST-MODIFIED",location:"LOCATION",exceptionDates:"EXDATE",recurrenceRule:"RRULE",stamp:"DTSTAMP",start:"DTSTART",summary:"SUMMARY",uid:"UID",timeTransparent:"TRANSP",url:"URL",end:"DTEND",duration:"DURATION",geo:"GEO",class:"CLASS",organizer:"ORGANIZER",priority:"PRIORITY",sequence:"SEQUENCE",status:"STATUS",attach:"ATTACH",recurrenceId:"RECURRENCE-ID",attendees:"ATTENDEE",comment:"COMMENT"},Re=b(De),Oi=v(Re),Ni=v(De),Oe={id:"TZID",lastModified:"LAST-MODIFIED",url:"TZURL"},Ne=b(Oe),wi=v(Ne),Ii=v(Oe),we={comment:"COMMENT",name:"TZNAME",offsetFrom:"TZOFFSETFROM",offsetTo:"TZOFFSETTO",recurrenceDate:"RDATE",recurrenceRule:"RRULE",start:"DTSTART"},Ie=b(we),Li=v(Ie),Ki=v(we),Le={byDay:"BYDAY",byHour:"BYHOUR",byMinute:"BYMINUTE",byMonth:"BYMONTH",byMonthday:"BYMONTHDAY",bySecond:"BYSECOND",bySetPos:"BYSETPOS",byWeekNo:"BYWEEKNO",byYearday:"BYYEARDAY",count:"COUNT",frequency:"FREQ",interval:"INTERVAL",until:"UNTIL",workweekStart:"WKST"},Ke=b(Le),zi=v(Ke),Yi=v(Le),ze={categories:"CATEGORIES",created:"CREATED",description:"DESCRIPTION",lastModified:"LAST-MODIFIED",location:"LOCATION",exceptionDates:"EXDATE",recurrenceRule:"RRULE",stamp:"DTSTAMP",start:"DTSTART",summary:"SUMMARY",uid:"UID",url:"URL",duration:"DURATION",geo:"GEO",class:"CLASS",organizer:"ORGANIZER",priority:"PRIORITY",sequence:"SEQUENCE",status:"STATUS",attach:"ATTACH",recurrenceId:"RECURRENCE-ID",attendees:"ATTENDEE",comment:"COMMENT",completed:"COMPLETED",due:"DUE",percentComplete:"PERCENT-COMPLETE"},Ye=b(ze),Ui=v(Ye),Fi=v(ze),Ue={categories:"CATEGORIES",created:"CREATED",description:"DESCRIPTION",lastModified:"LAST-MODIFIED",exceptionDates:"EXDATE",recurrenceRule:"RRULE",stamp:"DTSTAMP",start:"DTSTART",summary:"SUMMARY",uid:"UID",url:"URL",geo:"GEO",class:"CLASS",organizer:"ORGANIZER",sequence:"SEQUENCE",status:"STATUS",attach:"ATTACH",recurrenceId:"RECURRENCE-ID",attendees:"ATTENDEE",comment:"COMMENT"},Fe=b(Ue),ki=v(Fe),Bi=v(Ue),ke={stamp:"DTSTAMP",start:"DTSTART",uid:"UID",url:"URL",organizer:"ORGANIZER",attendees:"ATTENDEE",comment:"COMMENT",end:"DTEND",freeBusy:"FREEBUSY"},Be=b(ke),Vi=v(Be),_i=v(ke),Ve="BEGIN",_e="END",tn="VCALENDAR",$e="VTIMEZONE",rn="STANDARD",nn="DAYLIGHT",je="VEVENT",He="VALARM",qe="VTODO",We="VJOURNAL",Ge="VFREEBUSY";var ve=e=>new RegExp(`${Ve}:${e}([\\s\\S]*?)${_e}:${e}`,"g"),on=e=>new RegExp(`${Ve}:${e}|${_e}:${e}`,"g");var re=/\r\n|\r|\n/;var Ee=` -`,sn=":",N=",",an='"',ne=";";var Te="=";var ln=Math.pow(10,8)*24*60*60*1e3,$i=-ln,un=6048e5;var Je=6e4,Ze=36e5,cn=3600,Qe=cn*24,ji=Qe*7,dn=Qe*365.2425,mn=dn/12,Hi=mn*3,Se=Symbol.for("constructDateFrom");function A(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&Se in e?e[Se](t):e instanceof Date?new e.constructor(t):new Date(t)}function d(e,t){return A(t||e,e)}function ie(e,t,n){let r=d(e,n?.in);return isNaN(t)?A(n?.in||e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Xe(e,t,n){let r=d(e,n?.in);if(isNaN(t))return A(n?.in||e,NaN);if(!t)return r;let o=r.getDate(),s=A(n?.in||e,r.getTime());s.setMonth(r.getMonth()+t+1,0);let i=s.getDate();return o>=i?s:(r.setFullYear(s.getFullYear(),s.getMonth(),o),r)}function H(e,t,n){return A(n?.in||e,+d(e)+t)}function pn(e,t,n){return H(e,t*Ze,n)}var yn={};function q(){return yn}function $(e,t){var n,r,o,s;let i=q(),a=t?.weekStartsOn??((r=(n=t?.locale)==null?void 0:n.options)==null?void 0:r.weekStartsOn)??i.weekStartsOn??((s=(o=i.locale)==null?void 0:o.options)==null?void 0:s.weekStartsOn)??0,u=d(e,t?.in),c=u.getDay(),m=(ctypeof r=="object"));return t.map(n)}function gn(e,t){let n=d(e,t?.in);return n.setHours(0,0,0,0),n}function et(e,t,n){let r=d(e,n?.in);return r.setTime(r.getTime()+t*Je),r}function vn(e,t,n){return H(e,t*1e3,n)}function se(e,t,n){return ie(e,t*7,n)}function tt(e,t,n){return Xe(e,t*12,n)}function ae(e,t){let n=+d(e)-+d(t);return n<0?-1:n>0?1:n}function he(e,t){let n=d(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function En(e,t){let[n,r]=fn(e,t.start,t.end);return{start:n,end:r}}function Tn(e,t){let{start:n,end:r}=En(t?.in,e),o=+n>+r,s=o?+n:+r,i=o?r:n;i.setHours(0,0,0,0);let a=t?.step??1;if(!a)return[];a<0&&(a=-a,o=!o);let u=[];for(;+i<=s;)u.push(A(n,i)),i.setDate(i.getDate()+a),i.setHours(0,0,0,0);return o?u.reverse():u}function Ae(e,t){let n=d(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function Sn(e,t){let n=d(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function hn(e,t){let n=d(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function An(e,t){var n,r,o,s;let i=d(e,t?.in),a=i.getFullYear(),u=q(),c=t?.firstWeekContainsDate??((r=(n=t?.locale)==null?void 0:n.options)==null?void 0:r.firstWeekContainsDate)??u.firstWeekContainsDate??((s=(o=u.locale)==null?void 0:o.options)==null?void 0:s.firstWeekContainsDate)??1,m=A(t?.in||e,0);m.setFullYear(a+1,0,c),m.setHours(0,0,0,0);let E=$(m,t),y=A(t?.in||e,0);y.setFullYear(a,0,c),y.setHours(0,0,0,0);let T=$(y,t);return+i>=+E?a+1:+i>=+T?a:a-1}function Pn(e,t){var n,r,o,s;let i=q(),a=t?.firstWeekContainsDate??((r=(n=t?.locale)==null?void 0:n.options)==null?void 0:r.firstWeekContainsDate)??i.firstWeekContainsDate??((s=(o=i.locale)==null?void 0:o.options)==null?void 0:s.firstWeekContainsDate)??1,u=An(e,t),c=A(t?.in||e,0);return c.setFullYear(u,0,a),c.setHours(0,0,0,0),$(c,t)}function bn(e,t){let n=d(e,t?.in),r=+$(n,t)-+Pn(n,t);return Math.round(r/un)+1}function _(e,t){return d(e,t?.in).getDay()}function rt(e,t){let n=d(e,t?.in),r=n.getFullYear(),o=n.getMonth(),s=A(n,0);return s.setFullYear(r,o+1,0),s.setHours(0,0,0,0),s.getDate()}function xn(e,t){return d(e,t?.in).getHours()}function Cn(e,t){return d(e,t?.in).getMinutes()}function nt(e,t){return d(e,t?.in).getMonth()}function Mn(e){return d(e).getSeconds()}function Dn(e,t){return d(e,t?.in).getFullYear()}function Rn(e,t){return+d(e)==+d(t)}function On(e,t,n){let r=d(e,n?.in),o=bn(r,n)-t;return r.setDate(r.getDate()-o*7),d(r,n?.in)}function j(e,t,n){var r,o,s,i;let a=q(),u=n?.weekStartsOn??((o=(r=n?.locale)==null?void 0:r.options)==null?void 0:o.weekStartsOn)??a.weekStartsOn??((i=(s=a.locale)==null?void 0:s.options)==null?void 0:i.weekStartsOn)??0,c=d(e,n?.in),m=c.getDay(),E=(t%7+7)%7,y=7-u,T=t<0||t>6?t-(m+y)%7:(E+y)%7-(m+y)%7;return ie(c,T,n)}function ot(e,t,n){let r=+d(e,n?.in),[o,s]=[+d(t.start,n?.in),+d(t.end,n?.in)].sort((i,a)=>i-a);return r>=o&&r<=s}function Nn(e){let t=e/Ze;return Math.trunc(t)}function wn(e){let t=e/Je;return Math.trunc(t)}function In(e,t,n){let r=d(e,n?.in),o=r.getFullYear(),s=r.getDate(),i=A(n?.in||e,0);i.setFullYear(o,t,15),i.setHours(0,0,0,0);let a=rt(i);return r.setMonth(t,Math.min(s,a)),r}function Ln(e,t,n){let r=d(e,n?.in);return r.setDate(t),r}function Kn(e,t,n){let r=d(e,n?.in);return r.setMonth(0),r.setDate(t),r}function zn(e,t,n){let r=d(e,n?.in);return r.setHours(t),r}function Yn(e,t,n){let r=d(e,n?.in);return r.setMinutes(t),r}function Un(e,t,n){let r=d(e,n?.in);return r.setSeconds(t),r}function Fn(e,t,n){return H(e,-t,n)}function kn(e,t,n){return se(e,-t,n)}var Bn=[rn,nn];var Vn=["SECONDLY","MINUTELY","HOURLY","DAILY","WEEKLY","MONTHLY","YEARLY"];var it=["SU","MO","TU","WE","TH","FR","SA"];var R=(e,t)=>t===void 0?!1:e>=t,_n=(e,{start:t,end:n},r)=>{if(R(r.length,e.count))return;let o=e.frequency,s=e.interval||1;if(!o)return;let i=t;if(o==="SECONDLY"){for(;i{let o=n.map(({day:s,occurrence:i})=>({occurrence:i,day:it.indexOf(s)}));return e.frequency==="YEARLY"?e.byYearday||e.byMonthday?t.map(s=>s.filter(i=>o.find(({day:a})=>a===_(i)))):e.byWeekNo?t.map(s=>s.flatMap(i=>o.map(({day:a})=>j(i,a,{weekStartsOn:r})))):e.byMonth?t.map(s=>s.flatMap(i=>o.flatMap(({day:a,occurrence:u})=>te(C(Ae(i)),C(he(i)),a,r,u)))):t.map(s=>s.flatMap(i=>o.flatMap(({day:a,occurrence:u})=>te(C(hn(i)),C(Sn(i)),a,r,u)))):e.frequency==="MONTHLY"?e.byMonthday?t.map(s=>s.filter(i=>o.find(({day:a})=>a===_(i)))):t.map(s=>s.flatMap(i=>o.flatMap(({day:a,occurrence:u})=>te(C(Ae(i)),C(he(i)),a,r,u)))):e.frequency==="WEEKLY"?t.map(s=>s.flatMap(i=>o.map(({day:a})=>j(i,a,{weekStartsOn:r})))):t.map(s=>s.filter(i=>o.find(({day:a})=>a===_(i))))},te=(e,t,n,r,o)=>{if(o!==void 0){if(!(o<0)){let a=j(e,n,{weekStartsOn:r}),u=e>a;return se(a,(o||1)-1+(u?1:0))}let s=j(t,n,{weekStartsOn:r}),i=tC(s)).filter(s=>ot(s,{start:e,end:t})).filter(s=>n===_(s))},C=e=>et(e,-e.getTimezoneOffset()),jn=(e,t,n)=>e.frequency==="YEARLY"||e.frequency==="MONTHLY"||e.frequency==="WEEKLY"||e.frequency==="DAILY"?t.map(r=>r.flatMap(o=>n.map(s=>zn(o,s)))):t.map(r=>r.filter(o=>n.includes(xn(o)))),Hn=(e,t,n)=>e.frequency==="YEARLY"||e.frequency==="MONTHLY"||e.frequency==="WEEKLY"||e.frequency==="DAILY"||e.frequency==="HOURLY"?t.map(r=>r.flatMap(o=>n.map(s=>Yn(o,s)))):t.map(r=>r.filter(o=>n.includes(Cn(o)))),qn=(e,t,n)=>e.frequency==="YEARLY"?t.map(r=>r.flatMap(o=>n.map(s=>In(o,s)))):t.map(r=>r.filter(o=>n.includes(nt(o)))),Wn=(e,t,n)=>e.frequency==="YEARLY"||e.frequency==="MONTHLY"?t.map(r=>r.flatMap(o=>{let s=rt(o);return n.map(i=>i>s?void 0:Ln(o,i)).filter(i=>!!i)})):e.frequency==="WEEKLY"?t:t.map(r=>r.filter(o=>n.includes(nt(o)))),Gn=(e,t,n)=>e.frequency==="YEARLY"||e.frequency==="MONTHLY"||e.frequency==="WEEKLY"||e.frequency==="DAILY"||e.frequency==="HOURLY"||e.frequency==="MINUTELY"?t.map(r=>r.flatMap(o=>n.map(s=>Un(o,s)))):t.map(r=>r.filter(o=>n.includes(Mn(o)))),Jn=(e,t,n)=>!e.byYearday&&!e.byWeekNo&&!e.byMonthday&&!e.byMonth&&!e.byDay&&!e.byHour&&!e.byMinute&&!e.bySecond?t:t.map(r=>r.sort(ae).filter((o,s)=>n.some(i=>i>0?s===0?!1:s%i===0:s===0?r.length-1+i===0:s%(r.length-1+i)===0))),Zn=(e,t,n,r)=>e.frequency==="YEARLY"?t.map(o=>o.flatMap(s=>n.map(i=>On(s,i,{weekStartsOn:r})))):t,Qn=(e,t,n)=>e.frequency==="YEARLY"?t.map(r=>r.flatMap(o=>n.map(s=>Kn(o,s)))):e.frequency==="MONTHLY"||e.frequency==="WEEKLY"||e.frequency==="DAILY"?t:t.map(r=>r.filter(o=>n.includes(Dn(o)))),Xn=(e,t,n)=>{let r=n;return e.byMonth&&(r=qn(e,r,e.byMonth)),e.byWeekNo&&(r=Zn(e,r,e.byWeekNo,t.weekStartsOn)),e.byYearday&&(r=Qn(e,r,e.byYearday)),e.byMonthday&&(r=Wn(e,r,e.byMonthday)),e.byDay&&(r=$n(e,r,e.byDay,t.weekStartsOn)),e.byHour&&(r=jn(e,r,e.byHour)),e.byMinute&&(r=Hn(e,r,e.byMinute)),e.bySecond&&(r=Gn(e,r,e.bySecond)),e.bySetPos&&(r=Jn(e,r,e.bySetPos)),r.map(o=>o.sort(ae).filter(s=>!(t.exceptions.length>0&&t.exceptions.some(i=>Rn(i,s))||!ot(s,{start:t.start,end:t.end}))))},eo=2,to=(e,t)=>{var n;let r=t.start,o=((n=e.until)==null?void 0:n.date)||t?.end||tt(r,eo),s=t.exceptions||[],i=(e.workweekStart?it.indexOf(e.workweekStart):1)%7,a=[[r]];_n(e,{start:r,end:o},a);let u=Xn(e,{start:r,end:o,exceptions:s,weekStartsOn:i},a);return e.count?u.flat().splice(0,e.count):u.flat()},ro=(e,t)=>t.flatMap(n=>!n.recurrenceRule||n.recurrenceRule.until&&n.recurrenceRule.until.date({...n,start:r}))),oe=e=>{let t=e[0]==="+"?1:-1,n=Number(e.slice(1,3)),r=e.length>3?Number(e.slice(3,5)):0,o=e.length>5?Number(e.slice(5,7)):0;return((n*60+r)*60+o)*1e3*t},no=(e,t)=>{let n="en-US",r=new Date(t.toLocaleString(n,{timeZone:"UTC"}));try{return new Date(t.toLocaleString(n,{timeZone:e})).getTime()-r.getTime()}catch{return t.getTime()-r.getTime()}},oo=(e,t,n)=>{let r=n?.find(s=>s.id===t);if(r){let s=ro(e,r.props).sort((u,c)=>ae(u.start,c.start));for(let u=0;u5?c.substring(0,5):c;return{offset:m,milliseconds:oe(m)}}let i=s[s.length-1].offsetTo,a=i.length>5?i.substring(0,5):i;return{offset:a,milliseconds:oe(a)}}let o=no(t,e);if(!Number.isNaN(o)){let s=o<0,i=Math.abs(Nn(o)),a=Math.abs(wn(o))-i*60,u=i.toString().length===1?`0${i}`:i.toString(),c=a.toString().length===1?`0${a}`:a.toString();return{offset:`${s?"-":"+"}${u}${c}`,milliseconds:o}}};var p=(e,t)=>{if(e===void 0)return t;let n=e["~standard"].validate(t);if(n instanceof Promise)throw new TypeError("Schema validation must be synchronous");if(n.issues)throw new Error(JSON.stringify(n.issues,null,2));return n.value},io=(e,t)=>{var n,r,o,s;let i=((n=t.options)==null?void 0:n.VALUE)==="BINARY"?{type:"binary",encoding:((r=t.options)==null?void 0:r.ENCODING)||"BASE64",binary:t.value,value:(o=t.options)==null?void 0:o.VALUE}:{type:"uri",url:t.value,formatType:(s=t.options)==null?void 0:s.FMTTYPE};return p(e,i)},O=e=>e.replace(/mailto:/gi,""),F=(e,t)=>{var n,r,o,s,i,a,u,c,m,E,y;return p(e,{email:O(t.value),delegatedFrom:(n=t.options)!=null&&n["DELEGATED-FROM"]?O((r=t.options)==null?void 0:r["DELEGATED-FROM"]):void 0,dir:(o=t.options)==null?void 0:o.DIR,member:(s=t.options)!=null&&s.MEMBER?O(t.options.MEMBER):void 0,name:(i=t.options)==null?void 0:i.CN,partstat:(a=t.options)==null?void 0:a.PARTSTAT,role:(u=t.options)==null?void 0:u.ROLE,sentBy:(c=t.options)!=null&&c["SENT-BY"]?O(t.options["SENT-BY"]):void 0,rsvp:(m=t.options)!=null&&m.RSVP?((E=t.options)==null?void 0:E.RSVP)==="TRUE"?!0:((y=t.options)==null?void 0:y.RSVP)==="FALSE"?!1:void 0:void 0})},k=(e,t)=>{let n=t.value,r={};n[0]==="-"&&(r.before=!0,n=n.slice(1)),n=n.slice(1);let o=n.split("T"),s=o[0];if(s.includes("D")){let[a,u]=s.split("D");r.days=Number(a),s=u}if(s.includes("W")){let[a,u]=s.split("W");r.weeks=Number(a),s=u}let i=o[1];if(i){if(i.includes("H")){let[a,u]=i.split("H");r.hours=Number(a),i=u}if(i.includes("M")){let[a,u]=i.split("M");r.minutes=Number(a),i=u}if(i.includes("S")){let[a,u]=i.split("S");r.seconds=Number(a),i=u}}return p(e,r)},so=(e,t)=>{let n=Number.parseInt(t.value.slice(0,4),10),r=Number.parseInt(t.value.slice(4,6),10)-1,o=Number.parseInt(t.value.slice(6,8),10),s=new Date(Date.UTC(n,r,o));return p(e,s)},Y=(e,t)=>{let n=Number.parseInt(t.value.slice(0,4),10),r=Number.parseInt(t.value.slice(4,6),10)-1,o=Number.parseInt(t.value.slice(6,8),10),s=Number.parseInt(t.value.slice(9,11),10),i=Number.parseInt(t.value.slice(11,13),10),a=Number.parseInt(t.value.slice(13,15),10),u=new Date(Date.UTC(n,r,o,s,i,a));return p(e,u)},ao=(e,t,n)=>{let r=oe(n),o=Y(void 0,t),s=Fn(o,r);return p(e,s)},lo=(e,t)=>{var n,r,o,s,i,a;if(((n=e.options)==null?void 0:n.VALUE)==="DATE")return{date:so(void 0,e),type:(r=e.options)==null?void 0:r.VALUE};let u=((o=e.options)==null?void 0:o.VALUE)||"DATE-TIME",c=Y(void 0,e);if(!((s=e.options)!=null&&s.TZID))return{date:c,type:u};let m=oo(c,e.options.TZID,t?.timezones);return m?{date:H(c,-m.milliseconds),type:u,local:(i=e.options)!=null&&i.TZID?{date:c,timezone:(a=e.options)==null?void 0:a.TZID,tzoffset:m.offset}:void 0}:{date:c,type:u}},f=(e,t,n)=>p(e,lo(t,n)),uo=(e,t,n)=>{var r,o,s,i;let a=((r=t.options)==null?void 0:r.VALUE)==="DATE-TIME"||((o=t.options)==null?void 0:o.VALUE)==="DATE"?{type:"absolute",value:f(void 0,t,n),options:{related:(s=t.options)==null?void 0:s.RELATED}}:{type:"relative",value:k(void 0,t),options:{related:(i=t.options)==null?void 0:i.RELATED}};return p(e,a)},co=e=>e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e,st=e=>e.map(t=>{let[n,...r]=t.split(Te),o=r.join(Te);return{property:n,value:co(o)}},{}),mo=e=>e.reduce((t,n)=>(t[n.property]=n.value,t),{}),po=e=>mo(st(e)),yo=e=>{let t=!1,n;for(let s=0;s{let{property:t,value:n}=yo(e);if(t.includes(ne)){let[r,...o]=t.split(ne),s=po(o);return{property:r,line:{options:s,value:n}}}return{property:t,line:{value:n}}},Pe=e=>/^[ \t]/.test(e),go=e=>/^[A-Z]+(?:-[A-Z]+)*[:;]/.test(e),vo=e=>{let t=[],n=e.split(re);for(;n[0]==="";)n.shift();let r=n.length;for(;r>0&&n[r-1]==="";)r-=1,n.pop();for(let o=0;oo!=="")},Eo=(e,t,n)=>{if(!t)return e;let r={};return Object.entries(t).forEach(([o,s])=>{let i=Object.entries(n||{}).find(([c,m])=>m.name===o);if(!i){r[To(o)]=s.value;return}let a=i[1].convert(s),u=i[1].schema;if(!u){r[i[0]]=a;return}r[i[0]]=p(u,a)}),e.nonStandard=r,e},To=e=>{let t=e.startsWith("X-")?e.slice(2):e,n="",r=!1;for(let o of t)o==="-"?r=!0:(n+=r?o.toUpperCase():o.toLowerCase(),r=!1);return n},So=e=>e.startsWith("X-"),M=(e,t,n)=>{let r=t.replace(on(n?.icsComponent),""),o=[...new Set(Object.values(n.childComponents||{}).flatMap(({icsComponent:E})=>E))],s=vo(o.reduce((E,y)=>E.replace(ve(y),""),r)),i=n.defaultValues||{},a={};s.forEach(E=>{var y,T;let{property:S,line:P}=fo(E);So(S)&&(a[S]=P);let g=n.objectKeyMap[S];if(!g)return;let w=(y=n.convertArrayValues)==null?void 0:y[g];if(w){let D=w({line:P});if(!D)return;(i[g]===void 0||i[g]===null||!Array.isArray(i[g]))&&(i[g]=[]),Array.isArray(D)?i[g].push(...D):i[g].push(D);return}let me=(T=n.convertValues)==null?void 0:T[g];if(me){let D=me({line:P});if(!D)return;i[g]=D;return}i[g]=P.value});let u=n.childComponents,c=u?Object.keys(u||{}):[];u&&c.length>0&&c.forEach(E=>{let y=u?.[E];if(!y)return;let T=Array.isArray(y.icsComponent)?y.icsComponent:[y.icsComponent],S=[],P=[];T.forEach(g=>{P.push(...r.matchAll(ve(g)))}),P.map(g=>g[0]).forEach(g=>{let w=y.convert(g,{data:i});w&&S.push(w)}),S.length!==0&&(i[E]=S)});let m=p(e,i);return n!=null&&n.nonStandard?Eo(m,a,n?.nonStandard):m},W=(e,t)=>{var n,r,o;return p(e,{name:(n=t.options)==null?void 0:n.CN,dir:(r=t.options)==null?void 0:r.DIR,sentBy:(o=t.options)!=null&&o["SENT-BY"]?O(t.options["SENT-BY"]):void 0,email:O(t.value)})},le=(e,t,n)=>{var r;return p(e,{value:f(void 0,t,n),range:(r=t.options)==null?void 0:r.RANGE})},ho=e=>{if(e.length===2)return{day:e};let t=e.slice(0,-2);return{day:e.replace(t,""),occurrence:Number(t)}},Ao=(e,t)=>p(e,ho(t.value)),Po=(e,t)=>p(e,t.value),bo=["until"],xo=e=>bo.includes(e),Co=["bySecond","byMinute","byHour","byMonthday","byYearday","byWeekNo","bySetPos"],Mo=e=>Co.includes(e),Do=["byDay"],Ro=e=>Do.includes(e),Oo=["count","interval"],No=e=>Oo.includes(e),G=(e,t,n)=>{let r={};return st(t.value.split(ne)).forEach(o=>{let{property:s,value:i}=o,a=Ke[s];if(a){if(xo(a)){r[a]=f(void 0,{value:i,options:{VALUE:i.includes("T")?"DATE-TIME":"DATE"}},{timezones:n?.timezones});return}if(Mo(a)){r[a]=i.split(N).map(u=>Number(u));return}if(a==="byMonth"){r[a]=i.split(N).map(u=>Number(u)-1);return}if(Ro(a)){r[a]=i.split(N).map(u=>Ao(void 0,{value:u}));return}if(No(a)){r[a]=Number(i);return}if(a==="frequency"){if(!i||!Vn.includes(i))return;r[a]=i;return}if(a==="workweekStart"){r[a]=Po(void 0,{value:i});return}}}),p(e,r)},ue=(e,t)=>p(e,t.value),wo=(e,t)=>p(e,t.value),ce=(e,t,n)=>p(e,t.value.split(",").map(r=>f(void 0,{value:r,options:t.options},n))),Io=(e,t)=>p(e,t.value),Lo=(e,t)=>p(e,t.value),Ko=(e,t)=>p(e,t.value),U=(e,t)=>p(e,Number.parseInt(t.value,10)),zo=e=>e.replace(/\\(([,;\\])|([nN]))/g,(t,n,r)=>r||` -`),h=(e,t)=>p(e,zo(t.value)),Yo=(...e)=>{let[t,n,r]=e;return M(t,n,{icsComponent:He,objectKeyMap:xe,convertValues:{trigger:({line:o})=>uo(void 0,o,{timezones:r?.timezones}),duration:({line:o})=>k(void 0,o),repeat:({line:o})=>U(void 0,o)},convertArrayValues:{attachments:({line:o})=>io(void 0,o),attendees:({line:o})=>F(void 0,o)},nonStandard:r?.nonStandard,timezones:r?.timezones})},Uo=(...e)=>{let[t,n,r]=e,o,s=M(t,n,{icsComponent:je,objectKeyMap:Re,convertValues:{stamp:({line:i})=>f(void 0,i,{timezones:r?.timezones}),start:({line:i})=>f(void 0,i,{timezones:r?.timezones}),end:({line:i})=>f(void 0,i,{timezones:r?.timezones}),created:({line:i})=>f(void 0,i,{timezones:r?.timezones}),lastModified:({line:i})=>f(void 0,i,{timezones:r?.timezones}),categories:({line:i})=>i.value.split(N),description:({line:i})=>{var a;return(a=i.options)!=null&&a.ALTREP&&(o=i.options.ALTREP),h(void 0,i)},location:({line:i})=>h(void 0,i),comment:({line:i})=>h(void 0,i),summary:({line:i})=>h(void 0,i),recurrenceRule:({line:i})=>G(void 0,i,{timezones:r?.timezones}),duration:({line:i})=>k(void 0,i),organizer:({line:i})=>W(void 0,i),sequence:({line:i})=>U(void 0,i),class:({line:i})=>ue(void 0,i),recurrenceId:({line:i})=>le(void 0,i,{timezones:r?.timezones}),status:({line:i})=>Io(void 0,i),timeTransparent:({line:i})=>wo(void 0,i)},convertArrayValues:{attendees:({line:i})=>F(void 0,i),exceptionDates:({line:i})=>ce(void 0,i,{timezones:r?.timezones})},childComponents:{alarms:{icsComponent:He,convert:i=>Yo(void 0,i,{nonStandard:r?.nonStandard,timezones:r?.timezones})}},timezones:r?.timezones,nonStandard:r?.nonStandard});return o&&(s.descriptionAltRep=o),s},Fo=(...e)=>{let[t,n,r]=e,o=n.split("BEGIN:")[1].split(re)[0],s=Bn.includes(o)?o:"STANDARD",i=n.split("TZOFFSETTO:")[1].split(re)[0];return M(t,n,{icsComponent:s,objectKeyMap:Ie,defaultValues:{type:s},convertValues:{start:({line:a})=>ao(void 0,a,i),recurrenceRule:({line:a})=>G(void 0,a,{timezones:r?.timezones}),recurrenceDate:({line:a})=>f(void 0,a,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},ko=(...e)=>{let[t,n,r]=e;return M(t,n,{icsComponent:$e,objectKeyMap:Ne,convertValues:{lastModified:({line:o})=>Y(void 0,o)},childComponents:{props:{icsComponent:["DAYLIGHT","STANDARD"],convert:o=>Fo(void 0,o,{nonStandard:r?.nonStandard,timezones:r?.timezones})}},nonStandard:r?.nonStandard,timezones:r?.timezones})},Bo=(...e)=>{let[t,n,r]=e;return M(t,n,{icsComponent:qe,objectKeyMap:Ye,convertValues:{stamp:({line:o})=>f(void 0,o,{timezones:r?.timezones}),start:({line:o})=>f(void 0,o,{timezones:r?.timezones}),due:({line:o})=>f(void 0,o,{timezones:r?.timezones}),created:({line:o})=>f(void 0,o,{timezones:r?.timezones}),lastModified:({line:o})=>f(void 0,o,{timezones:r?.timezones}),completed:({line:o})=>f(void 0,o,{timezones:r?.timezones}),categories:({line:o})=>o.value.split(N),description:({line:o})=>h(void 0,o),location:({line:o})=>h(void 0,o),comment:({line:o})=>h(void 0,o),summary:({line:o})=>h(void 0,o),recurrenceRule:({line:o})=>G(void 0,o,{timezones:r?.timezones}),duration:({line:o})=>k(void 0,o),organizer:({line:o})=>W(void 0,o),sequence:({line:o})=>U(void 0,o),percentComplete:({line:o})=>U(void 0,o),class:({line:o})=>ue(void 0,o),recurrenceId:({line:o})=>le(void 0,o,{timezones:r?.timezones}),status:({line:o})=>Lo(void 0,o)},convertArrayValues:{attendees:({line:o})=>F(void 0,o),exceptionDates:({line:o})=>ce(void 0,o,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},Vo=(...e)=>{let[t,n,r]=e;return M(t,n,{icsComponent:We,objectKeyMap:Fe,convertValues:{stamp:({line:o})=>f(void 0,o,{timezones:r?.timezones}),start:({line:o})=>f(void 0,o,{timezones:r?.timezones}),created:({line:o})=>f(void 0,o,{timezones:r?.timezones}),lastModified:({line:o})=>f(void 0,o,{timezones:r?.timezones}),categories:({line:o})=>o.value.split(N),description:({line:o})=>h(void 0,o),comment:({line:o})=>h(void 0,o),summary:({line:o})=>h(void 0,o),recurrenceRule:({line:o})=>G(void 0,o,{timezones:r?.timezones}),organizer:({line:o})=>W(void 0,o),sequence:({line:o})=>U(void 0,o),class:({line:o})=>ue(void 0,o),recurrenceId:({line:o})=>le(void 0,o,{timezones:r?.timezones}),status:({line:o})=>Ko(void 0,o)},convertArrayValues:{attendees:({line:o})=>F(void 0,o),exceptionDates:({line:o})=>ce(void 0,o,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},_o=(e,t)=>{var n;return p(e,{type:(n=t.options)==null?void 0:n.FBTYPE,values:t.value.split(",").map(r=>{let[o,s]=r.split("/"),i=Y(void 0,{value:o});if(s.startsWith("PT")){let u=k(void 0,{value:s});return{start:i,duration:u}}let a=Y(void 0,{value:s});return{start:i,end:a}})})},$o=(...e)=>{let[t,n,r]=e;return M(t,n,{icsComponent:Ge,objectKeyMap:Be,convertValues:{stamp:({line:o})=>f(void 0,o,{timezones:r?.timezones}),start:({line:o})=>f(void 0,o,{timezones:r?.timezones}),end:({line:o})=>f(void 0,o,{timezones:r?.timezones}),comment:({line:o})=>h(void 0,o),organizer:({line:o})=>W(void 0,o)},convertArrayValues:{attendees:({line:o})=>F(void 0,o),freeBusy:({line:o})=>_o(void 0,o)},nonStandard:r?.nonStandard,timezones:r?.timezones})},at=(...e)=>{let[t,n,r]=e;return M(t,n,{icsComponent:tn,objectKeyMap:Me,convertValues:{version:({line:o})=>o.value},childComponents:{timezones:{icsComponent:$e,convert:o=>ko(void 0,o,{nonStandard:r?.nonStandard})},events:{icsComponent:je,convert:(o,{data:s})=>Uo(void 0,o,{nonStandard:r?.nonStandard,timezones:s.timezones})},todos:{icsComponent:qe,convert:(o,{data:s})=>Bo(void 0,o,{nonStandard:r?.nonStandard,timezones:s.timezones})},journals:{icsComponent:We,convert:(o,{data:s})=>Vo(void 0,o,{nonStandard:r?.nonStandard,timezones:s.timezones})},freeBusy:{icsComponent:Ge,convert:(o,{data:s})=>$o(void 0,o,{nonStandard:r?.nonStandard,timezones:s.timezones})}},nonStandard:r?.nonStandard})};var jo="0.3.16",lt="icalendar:lastSync",Ho={"GMT Standard Time":0,"W. Europe Standard Time":1,"Central Europe Standard Time":1,"Romance Standard Time":1,"Central European Standard Time":1,"Eastern Standard Time":-5,"Central Standard Time":-6,"Mountain Standard Time":-7,"Pacific Standard Time":-8,UTC:0,None:0};async function qo(){try{let e=await B.get("icalendar",{sources:[]}),t=e.sources||[],n=e.tzShift||0;return{sources:t,tzShift:n}}catch{return{sources:[],tzShift:0}}}async function Wo(e,t=0){let n=await fetch(e.url);if(!n.ok)return[];let r=await n.text(),o=at(void 0,r);if(!o.events)return[];let s=[];for(let i of o.events){let a=i.start,u="";if(a.local&&typeof a.local.date=="string"?u=a.local.date:typeof a.date=="string"&&(u=a.date),!u)continue;let c=new Date(u.replace("Z","")+"Z"),m=a.local?.timezone||a.timezone||"UTC",E=Ho[m]??0,y=c.getTime()-E*36e5,T=new Date(y+t*36e5),S=g=>String(g).padStart(2,"0"),P=T.getFullYear()+"-"+S(T.getMonth()+1)+"-"+S(T.getDate())+"T"+S(T.getHours())+":"+S(T.getMinutes())+":"+S(T.getSeconds());s.push({...i,start:P,tag:"ical-event",sourceName:e.name})}return s}async function de(){try{let{sources:e,tzShift:t}=await qo();if(e.length===0)return;await x.flashNotification("Syncing calendars...","info");let n=[];for(let r of e)try{let o=await Wo(r,t);n.push(...o)}catch(o){console.error(`Failed to sync ${r.name}:`,o)}await V.indexObjects("$icalendar",n),await x.flashNotification(`Synced ${n.length} events`,"info")}catch(e){console.error("Sync failed:",e)}}async function ut(){await K.del(lt),await de()}async function ct(){if(!await x.confirm("Clear all calendar events?"))return;let e=await z.query({prefix:["ridx","$icalendar"]}),t=[];for(let{key:n}of e)t.push(n),t.push(["idx",...n.slice(2),"$icalendar"]);t.length>0&&await z.batchDel(t),await K.del(lt),await x.flashNotification("Calendar index cleared","info")}async function dt(){await x.flashNotification(`iCalendar Plug ${jo}`,"info")}var mt={syncCalendars:de,forceSync:ut,clearCache:ct,showVersion:dt},pt={name:"icalendar",version:"0.3.16",author:"sstent",index:"icalendar.ts",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:{}},os={manifest:pt,functionMapping:mt};ge(mt,pt,self.postMessage);export{os as plug}; -//# sourceMappingURL=icalendar.plug.js.map