From 76be84b4878abbd7778bb7a187074ec2534d2855 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Tue, 17 Feb 2026 22:40:24 +0000 Subject: [PATCH] Build and update icalendar.plug.js [skip ci] --- icalendar.plug.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/icalendar.plug.js b/icalendar.plug.js index 838a56f..9ec6247 100644 --- a/icalendar.plug.js +++ b/icalendar.plug.js @@ -1,4 +1,4 @@ -var dt=Object.defineProperty;var F=(e,t)=>{for(var n in t)dt(e,n,{get:t[n],enumerable:!0})};function me(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)}}}},pe;function ye(e=""){return pe=new Z(e),pe}var w=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}),w({type:"sys",id:Q,name:e,args:t})}));function fe(e,t,n){ee&&(w=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||[]));w({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),w({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)}),w({type:"manifest",manifest:t}),ye(`[${t.name} plug]`))}async function mt(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 pt(){globalThis.fetch=async function(e,t){let n=t&&t.body?J(new Uint8Array(await new Response(t.body).arrayBuffer())):void 0,r=await mt(e,t&&{method:t.method,headers:t.headers,base64Body:n});return new Response(r.base64Body?me(r.base64Body):null,{status:r.status,headers:r.headers})}}ee&&pt();var R={};F(R,{alert:()=>Zt,configureVimMode:()=>yr,confirm:()=>Jt,copyToClipboard:()=>ur,deleteLine:()=>lr,dispatch:()=>Wt,downloadFile:()=>zt,filterBox:()=>Ft,flashNotification:()=>Ut,fold:()=>er,foldAll:()=>nr,getCurrentEditor:()=>Et,getCurrentPage:()=>yt,getCurrentPageMeta:()=>ft,getCurrentPath:()=>gt,getCursor:()=>ht,getRecentlyOpenedPages:()=>vt,getSelection:()=>At,getText:()=>Tt,getUiOption:()=>Qt,goHistory:()=>Kt,hidePanel:()=>Bt,insertAtCursor:()=>qt,insertAtPos:()=>_t,invokeCommand:()=>bt,isMobile:()=>gr,moveCursor:()=>$t,moveCursorToLine:()=>Ht,moveLineDown:()=>mr,moveLineUp:()=>dr,navigate:()=>Ct,newWindow:()=>Lt,openCommandPalette:()=>Dt,openPageNavigator:()=>Mt,openSearchPanel:()=>ar,openUrl:()=>wt,prompt:()=>Gt,rebuildEditorState:()=>Nt,redo:()=>sr,reloadConfigAndCommands:()=>It,reloadPage:()=>Rt,reloadUI:()=>Ot,replaceRange:()=>jt,save:()=>xt,sendMessage:()=>fr,setSelection:()=>Pt,setText:()=>St,setUiOption:()=>Xt,showPanel:()=>kt,showProgress:()=>Vt,toggleComment:()=>cr,toggleFold:()=>rr,undo:()=>ir,unfold:()=>tr,unfoldAll:()=>or,uploadFile:()=>Yt,vimEx:()=>pr});typeof self>"u"&&(self={syscall:()=>{throw new Error("Not implemented here")}});function u(e,...t){return globalThis.syscall(e,...t)}function yt(){return u("editor.getCurrentPage")}function ft(){return u("editor.getCurrentPageMeta")}function gt(){return u("editor.getCurrentPath")}function vt(){return u("editor.getRecentlyOpenedPages")}function Et(){return u("editor.getCurrentEditor")}function Tt(){return u("editor.getText")}function St(e,t=!1){return u("editor.setText",e,t)}function ht(){return u("editor.getCursor")}function At(){return u("editor.getSelection")}function Pt(e,t){return u("editor.setSelection",e,t)}function bt(e,t){return u("editor.invokeCommand",e,t)}function xt(){return u("editor.save")}function Ct(e,t=!1,n=!1){return u("editor.navigate",e,t,n)}function Mt(e="page"){return u("editor.openPageNavigator",e)}function Dt(){return u("editor.openCommandPalette")}function Rt(){return u("editor.reloadPage")}function Ot(){return u("editor.reloadUI")}function Nt(){return u("editor.rebuildEditorState")}function It(){return u("editor.reloadConfigAndCommands")}function wt(e,t=!1){return u("editor.openUrl",e,t)}function Lt(){return u("editor.newWindow")}function Kt(e){return u("editor.goHistory",e)}function zt(e,t){return u("editor.downloadFile",e,t)}function Yt(e,t){return u("editor.uploadFile",e,t)}function Ut(e,t="info"){return u("editor.flashNotification",e,t)}function Ft(e,t,n="",r=""){return u("editor.filterBox",e,t,n,r)}function kt(e,t,n,r=""){return u("editor.showPanel",e,t,n,r)}function Bt(e){return u("editor.hidePanel",e)}function Vt(e,t){return u("editor.showProgress",e,t)}function _t(e,t){return u("editor.insertAtPos",e,t)}function jt(e,t,n){return u("editor.replaceRange",e,t,n)}function $t(e,t=!1){return u("editor.moveCursor",e,t)}function Ht(e,t=1,n=!1){return u("editor.moveCursorToLine",e,t,n)}function qt(e,t=!1,n=!1){return u("editor.insertAtCursor",e,t,n)}function Wt(e){return u("editor.dispatch",e)}function Gt(e,t=""){return u("editor.prompt",e,t)}function Jt(e){return u("editor.confirm",e)}function Zt(e){return u("editor.alert",e)}function Qt(e){return u("editor.getUiOption",e)}function Xt(e,t){return u("editor.setUiOption",e,t)}function er(){return u("editor.fold")}function tr(){return u("editor.unfold")}function rr(){return u("editor.toggleFold")}function nr(){return u("editor.foldAll")}function or(){return u("editor.unfoldAll")}function ir(){return u("editor.undo")}function sr(){return u("editor.redo")}function ar(){return u("editor.openSearchPanel")}function ur(e){return u("editor.copyToClipboard",e)}function lr(){return u("editor.deleteLine")}function cr(){return u("editor.toggleComment")}function dr(){return u("editor.moveLineUp")}function mr(){return u("editor.moveLineDown")}function pr(e){return u("editor.vimEx",e)}function yr(){return u("editor.configureVimMode")}function fr(e,t){return u("editor.sendMessage",e,t)}function gr(){return u("editor.isMobile")}var k={};F(k,{del:()=>Ar,get:()=>hr,set:()=>Sr});function Sr(e,t){return u("clientStore.set",e,t)}function hr(e){return u("clientStore.get",e)}function Ar(e){return u("clientStore.delete",e)}var Zo=new Uint8Array(16);var B={};F(B,{define:()=>Yr,get:()=>wr,has:()=>zr,insert:()=>Kr,set:()=>Lr});function wr(e,t){return u("config.get",e,t)}function Lr(e,t){return u("config.set",e,t)}function Kr(e,t){return u("config.insert",e,t)}function zr(e){return u("config.has",e)}function Yr(e,t){return u("config.define",e,t)}var V={};F(V,{ensureFullIndex:()=>Br,getObjectByRef:()=>kr,indexObjects:()=>Ur,queryLuaObjects:()=>Fr});function Ur(e,t){return u("index.indexObjects",e,t)}function Fr(e,t,n,r){return u("index.queryLuaObjects",e,t,n,r)}function kr(e,t,n){return u("index.getObjectByRef",e,t,n)}function Br(){return u("index.ensureFullIndex")}var b=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=b(Pe),mi=v(be),pi=v(Pe),xe={method:"METHOD",prodId:"PRODID",version:"VERSION",name:"X-WR-CALNAME"},Ce=b(xe),yi=v(Ce),fi=v(xe),Me={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"},De=b(Me),gi=v(De),vi=v(Me),Re={id:"TZID",lastModified:"LAST-MODIFIED",url:"TZURL"},Oe=b(Re),Ei=v(Oe),Ti=v(Re),Ne={comment:"COMMENT",name:"TZNAME",offsetFrom:"TZOFFSETFROM",offsetTo:"TZOFFSETTO",recurrenceDate:"RDATE",recurrenceRule:"RRULE",start:"DTSTART"},Ie=b(Ne),Si=v(Ie),hi=v(Ne),we={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"},Le=b(we),Ai=v(Le),Pi=v(we),Ke={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"},ze=b(Ke),bi=v(ze),xi=v(Ke),Ye={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"},Ue=b(Ye),Ci=v(Ue),Mi=v(Ye),Fe={stamp:"DTSTAMP",start:"DTSTART",uid:"UID",url:"URL",organizer:"ORGANIZER",attendees:"ATTENDEE",comment:"COMMENT",end:"DTEND",freeBusy:"FREEBUSY"},ke=b(Fe),Di=v(ke),Ri=v(Fe),Be="BEGIN",Ve="END",Vr="VCALENDAR",_e="VTIMEZONE",_r="STANDARD",jr="DAYLIGHT",je="VEVENT",$e="VALARM",He="VTODO",qe="VJOURNAL",We="VFREEBUSY";var ge=e=>new RegExp(`${Be}:${e}([\\s\\S]*?)${Ve}:${e}`,"g"),$r=e=>new RegExp(`${Be}:${e}|${Ve}:${e}`,"g");var re=/\r\n|\r|\n/;var ve=` -`,Hr=":",I=",",qr='"',ne=";";var Ee="=";var Wr=Math.pow(10,8)*24*60*60*1e3,Oi=-Wr,Gr=6048e5;var Ge=6e4,Je=36e5,Jr=3600,Ze=Jr*24,Ni=Ze*7,Zr=Ze*365.2425,Qr=Zr/12,Ii=Qr*3,Te=Symbol.for("constructDateFrom");function h(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&Te in e?e[Te](t):e instanceof Date?new e.constructor(t):new Date(t)}function d(e,t){return h(t||e,e)}function ie(e,t,n){let r=d(e,n?.in);return isNaN(t)?h(n?.in||e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Qe(e,t,n){let r=d(e,n?.in);if(isNaN(t))return h(n?.in||e,NaN);if(!t)return r;let o=r.getDate(),s=h(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 h(n?.in||e,+d(e)+t)}function Xr(e,t,n){return H(e,t*Je,n)}var en={};function q(){return en}function j(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,l=d(e,t?.in),c=l.getDay(),m=(ctypeof r=="object"));return t.map(n)}function rn(e,t){let n=d(e,t?.in);return n.setHours(0,0,0,0),n}function Xe(e,t,n){let r=d(e,n?.in);return r.setTime(r.getTime()+t*Ge),r}function nn(e,t,n){return H(e,t*1e3,n)}function se(e,t,n){return ie(e,t*7,n)}function et(e,t,n){return Qe(e,t*12,n)}function ae(e,t){let n=+d(e)-+d(t);return n<0?-1:n>0?1:n}function Se(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 on(e,t){let[n,r]=tn(e,t.start,t.end);return{start:n,end:r}}function sn(e,t){let{start:n,end:r}=on(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 l=[];for(;+i<=s;)l.push(h(n,i)),i.setDate(i.getDate()+a),i.setHours(0,0,0,0);return o?l.reverse():l}function he(e,t){let n=d(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function an(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 un(e,t){let n=d(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function ln(e,t){var n,r,o,s;let i=d(e,t?.in),a=i.getFullYear(),l=q(),c=t?.firstWeekContainsDate??((r=(n=t?.locale)==null?void 0:n.options)==null?void 0:r.firstWeekContainsDate)??l.firstWeekContainsDate??((s=(o=l.locale)==null?void 0:o.options)==null?void 0:s.firstWeekContainsDate)??1,m=h(t?.in||e,0);m.setFullYear(a+1,0,c),m.setHours(0,0,0,0);let E=j(m,t),y=h(t?.in||e,0);y.setFullYear(a,0,c),y.setHours(0,0,0,0);let A=j(y,t);return+i>=+E?a+1:+i>=+A?a:a-1}function cn(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,l=ln(e,t),c=h(t?.in||e,0);return c.setFullYear(l,0,a),c.setHours(0,0,0,0),j(c,t)}function dn(e,t){let n=d(e,t?.in),r=+j(n,t)-+cn(n,t);return Math.round(r/Gr)+1}function _(e,t){return d(e,t?.in).getDay()}function tt(e,t){let n=d(e,t?.in),r=n.getFullYear(),o=n.getMonth(),s=h(n,0);return s.setFullYear(r,o+1,0),s.setHours(0,0,0,0),s.getDate()}function mn(e,t){return d(e,t?.in).getHours()}function pn(e,t){return d(e,t?.in).getMinutes()}function rt(e,t){return d(e,t?.in).getMonth()}function yn(e){return d(e).getSeconds()}function fn(e,t){return d(e,t?.in).getFullYear()}function gn(e,t){return+d(e)==+d(t)}function vn(e,t,n){let r=d(e,n?.in),o=dn(r,n)-t;return r.setDate(r.getDate()-o*7),d(r,n?.in)}function $(e,t,n){var r,o,s,i;let a=q(),l=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-l,A=t<0||t>6?t-(m+y)%7:(E+y)%7-(m+y)%7;return ie(c,A,n)}function nt(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 En(e){let t=e/Je;return Math.trunc(t)}function Tn(e){let t=e/Ge;return Math.trunc(t)}function Sn(e,t,n){let r=d(e,n?.in),o=r.getFullYear(),s=r.getDate(),i=h(n?.in||e,0);i.setFullYear(o,t,15),i.setHours(0,0,0,0);let a=tt(i);return r.setMonth(t,Math.min(s,a)),r}function hn(e,t,n){let r=d(e,n?.in);return r.setDate(t),r}function An(e,t,n){let r=d(e,n?.in);return r.setMonth(0),r.setDate(t),r}function Pn(e,t,n){let r=d(e,n?.in);return r.setHours(t),r}function bn(e,t,n){let r=d(e,n?.in);return r.setMinutes(t),r}function xn(e,t,n){let r=d(e,n?.in);return r.setSeconds(t),r}function Cn(e,t,n){return H(e,-t,n)}function Mn(e,t,n){return se(e,-t,n)}var Dn=[_r,jr];var Rn=["SECONDLY","MINUTELY","HOURLY","DAILY","WEEKLY","MONTHLY","YEARLY"];var ot=["SU","MO","TU","WE","TH","FR","SA"];var O=(e,t)=>t===void 0?!1:e>=t,On=(e,{start:t,end:n},r)=>{if(O(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:ot.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})=>$(i,a,{weekStartsOn:r})))):e.byMonth?t.map(s=>s.flatMap(i=>o.flatMap(({day:a,occurrence:l})=>te(x(he(i)),x(Se(i)),a,r,l)))):t.map(s=>s.flatMap(i=>o.flatMap(({day:a,occurrence:l})=>te(x(un(i)),x(an(i)),a,r,l)))):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:l})=>te(x(he(i)),x(Se(i)),a,r,l)))):e.frequency==="WEEKLY"?t.map(s=>s.flatMap(i=>o.map(({day:a})=>$(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=$(e,n,{weekStartsOn:r}),l=e>a;return se(a,(o||1)-1+(l?1:0))}let s=$(t,n,{weekStartsOn:r}),i=tx(s)).filter(s=>nt(s,{start:e,end:t})).filter(s=>n===_(s))},x=e=>Xe(e,-e.getTimezoneOffset()),In=(e,t,n)=>e.frequency==="YEARLY"||e.frequency==="MONTHLY"||e.frequency==="WEEKLY"||e.frequency==="DAILY"?t.map(r=>r.flatMap(o=>n.map(s=>Pn(o,s)))):t.map(r=>r.filter(o=>n.includes(mn(o)))),wn=(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=>bn(o,s)))):t.map(r=>r.filter(o=>n.includes(pn(o)))),Ln=(e,t,n)=>e.frequency==="YEARLY"?t.map(r=>r.flatMap(o=>n.map(s=>Sn(o,s)))):t.map(r=>r.filter(o=>n.includes(rt(o)))),Kn=(e,t,n)=>e.frequency==="YEARLY"||e.frequency==="MONTHLY"?t.map(r=>r.flatMap(o=>{let s=tt(o);return n.map(i=>i>s?void 0:hn(o,i)).filter(i=>!!i)})):e.frequency==="WEEKLY"?t:t.map(r=>r.filter(o=>n.includes(rt(o)))),zn=(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=>xn(o,s)))):t.map(r=>r.filter(o=>n.includes(yn(o)))),Yn=(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))),Un=(e,t,n,r)=>e.frequency==="YEARLY"?t.map(o=>o.flatMap(s=>n.map(i=>vn(s,i,{weekStartsOn:r})))):t,Fn=(e,t,n)=>e.frequency==="YEARLY"?t.map(r=>r.flatMap(o=>n.map(s=>An(o,s)))):e.frequency==="MONTHLY"||e.frequency==="WEEKLY"||e.frequency==="DAILY"?t:t.map(r=>r.filter(o=>n.includes(fn(o)))),kn=(e,t,n)=>{let r=n;return e.byMonth&&(r=Ln(e,r,e.byMonth)),e.byWeekNo&&(r=Un(e,r,e.byWeekNo,t.weekStartsOn)),e.byYearday&&(r=Fn(e,r,e.byYearday)),e.byMonthday&&(r=Kn(e,r,e.byMonthday)),e.byDay&&(r=Nn(e,r,e.byDay,t.weekStartsOn)),e.byHour&&(r=In(e,r,e.byHour)),e.byMinute&&(r=wn(e,r,e.byMinute)),e.bySecond&&(r=zn(e,r,e.bySecond)),e.bySetPos&&(r=Yn(e,r,e.bySetPos)),r.map(o=>o.sort(ae).filter(s=>!(t.exceptions.length>0&&t.exceptions.some(i=>gn(i,s))||!nt(s,{start:t.start,end:t.end}))))},Bn=2,Vn=(e,t)=>{var n;let r=t.start,o=((n=e.until)==null?void 0:n.date)||t?.end||et(r,Bn),s=t.exceptions||[],i=(e.workweekStart?ot.indexOf(e.workweekStart):1)%7,a=[[r]];On(e,{start:r,end:o},a);let l=kn(e,{start:r,end:o,exceptions:s,weekStartsOn:i},a);return e.count?l.flat().splice(0,e.count):l.flat()},_n=(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},jn=(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()}},$n=(e,t,n)=>{let r=n?.find(s=>s.id===t);if(r){let s=_n(e,r.props).sort((l,c)=>ae(l.start,c.start));for(let l=0;l5?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=jn(t,e);if(!Number.isNaN(o)){let s=o<0,i=Math.abs(En(o)),a=Math.abs(Tn(o))-i*60,l=i.toString().length===1?`0${i}`:i.toString(),c=a.toString().length===1?`0${a}`:a.toString();return{offset:`${s?"-":"+"}${l}${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},Hn=(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)},N=e=>e.replace(/mailto:/gi,""),z=(e,t)=>{var n,r,o,s,i,a,l,c,m,E,y;return p(e,{email:N(t.value),delegatedFrom:(n=t.options)!=null&&n["DELEGATED-FROM"]?N((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?N(t.options.MEMBER):void 0,name:(i=t.options)==null?void 0:i.CN,partstat:(a=t.options)==null?void 0:a.PARTSTAT,role:(l=t.options)==null?void 0:l.ROLE,sentBy:(c=t.options)!=null&&c["SENT-BY"]?N(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})},Y=(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,l]=s.split("D");r.days=Number(a),s=l}if(s.includes("W")){let[a,l]=s.split("W");r.weeks=Number(a),s=l}let i=o[1];if(i){if(i.includes("H")){let[a,l]=i.split("H");r.hours=Number(a),i=l}if(i.includes("M")){let[a,l]=i.split("M");r.minutes=Number(a),i=l}if(i.includes("S")){let[a,l]=i.split("S");r.seconds=Number(a),i=l}}return p(e,r)},qn=(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)},L=(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),l=new Date(Date.UTC(n,r,o,s,i,a));return p(e,l)},Wn=(e,t,n)=>{let r=oe(n),o=L(void 0,t),s=Cn(o,r);return p(e,s)},Gn=(e,t)=>{var n,r,o,s,i,a;if(((n=e.options)==null?void 0:n.VALUE)==="DATE")return{date:qn(void 0,e),type:(r=e.options)==null?void 0:r.VALUE};let l=((o=e.options)==null?void 0:o.VALUE)||"DATE-TIME",c=L(void 0,e);if(!((s=e.options)!=null&&s.TZID))return{date:c,type:l};let m=$n(c,e.options.TZID,t?.timezones);return m?{date:H(c,-m.milliseconds),type:l,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:l}},g=(e,t,n)=>p(e,Gn(t,n)),Jn=(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:g(void 0,t,n),options:{related:(s=t.options)==null?void 0:s.RELATED}}:{type:"relative",value:Y(void 0,t),options:{related:(i=t.options)==null?void 0:i.RELATED}};return p(e,a)},Zn=e=>e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e,it=e=>e.map(t=>{let[n,...r]=t.split(Ee),o=r.join(Ee);return{property:n,value:Zn(o)}},{}),Qn=e=>e.reduce((t,n)=>(t[n.property]=n.value,t),{}),Xn=e=>Qn(it(e)),eo=e=>{let t=!1,n;for(let s=0;s{let{property:t,value:n}=eo(e);if(t.includes(ne)){let[r,...o]=t.split(ne),s=Xn(o);return{property:r,line:{options:s,value:n}}}return{property:t,line:{value:n}}},Ae=e=>/^[ \t]/.test(e),ro=e=>/^[A-Z]+(?:-[A-Z]+)*[:;]/.test(e),no=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!=="")},oo=(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[io(o)]=s.value;return}let a=i[1].convert(s),l=i[1].schema;if(!l){r[i[0]]=a;return}r[i[0]]=p(l,a)}),e.nonStandard=r,e},io=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-"),C=(e,t,n)=>{let r=t.replace($r(n?.icsComponent),""),o=[...new Set(Object.values(n.childComponents||{}).flatMap(({icsComponent:E})=>E))],s=no(o.reduce((E,y)=>E.replace(ge(y),""),r)),i=n.defaultValues||{},a={};s.forEach(E=>{var y,A;let{property:P,line:T}=to(E);so(P)&&(a[P]=T);let f=n.objectKeyMap[P];if(!f)return;let M=(y=n.convertArrayValues)==null?void 0:y[f];if(M){let D=M({line:T});if(!D)return;(i[f]===void 0||i[f]===null||!Array.isArray(i[f]))&&(i[f]=[]),Array.isArray(D)?i[f].push(...D):i[f].push(D);return}let U=(A=n.convertValues)==null?void 0:A[f];if(U){let D=U({line:T});if(!D)return;i[f]=D;return}i[f]=T.value});let l=n.childComponents,c=l?Object.keys(l||{}):[];l&&c.length>0&&c.forEach(E=>{let y=l?.[E];if(!y)return;let A=Array.isArray(y.icsComponent)?y.icsComponent:[y.icsComponent],P=[],T=[];A.forEach(f=>{T.push(...r.matchAll(ge(f)))}),T.map(f=>f[0]).forEach(f=>{let M=y.convert(f,{data:i});M&&P.push(M)}),P.length!==0&&(i[E]=P)});let m=p(e,i);return n!=null&&n.nonStandard?oo(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"]?N(t.options["SENT-BY"]):void 0,email:N(t.value)})},ue=(e,t,n)=>{var r;return p(e,{value:g(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)}},uo=(e,t)=>p(e,ao(t.value)),lo=(e,t)=>p(e,t.value),co=["until"],mo=e=>co.includes(e),po=["bySecond","byMinute","byHour","byMonthday","byYearday","byWeekNo","bySetPos"],yo=e=>po.includes(e),fo=["byDay"],go=e=>fo.includes(e),vo=["count","interval"],Eo=e=>vo.includes(e),G=(e,t,n)=>{let r={};return it(t.value.split(ne)).forEach(o=>{let{property:s,value:i}=o,a=Le[s];if(a){if(mo(a)){r[a]=g(void 0,{value:i,options:{VALUE:i.includes("T")?"DATE-TIME":"DATE"}},{timezones:n?.timezones});return}if(yo(a)){r[a]=i.split(I).map(l=>Number(l));return}if(a==="byMonth"){r[a]=i.split(I).map(l=>Number(l)-1);return}if(go(a)){r[a]=i.split(I).map(l=>uo(void 0,{value:l}));return}if(Eo(a)){r[a]=Number(i);return}if(a==="frequency"){if(!i||!Rn.includes(i))return;r[a]=i;return}if(a==="workweekStart"){r[a]=lo(void 0,{value:i});return}}}),p(e,r)},le=(e,t)=>p(e,t.value),To=(e,t)=>p(e,t.value),ce=(e,t,n)=>p(e,t.value.split(",").map(r=>g(void 0,{value:r,options:t.options},n))),So=(e,t)=>p(e,t.value),ho=(e,t)=>p(e,t.value),Ao=(e,t)=>p(e,t.value),K=(e,t)=>p(e,Number.parseInt(t.value,10)),Po=e=>e.replace(/\\(([,;\\])|([nN]))/g,(t,n,r)=>r||` -`),S=(e,t)=>p(e,Po(t.value)),bo=(...e)=>{let[t,n,r]=e;return C(t,n,{icsComponent:$e,objectKeyMap:be,convertValues:{trigger:({line:o})=>Jn(void 0,o,{timezones:r?.timezones}),duration:({line:o})=>Y(void 0,o),repeat:({line:o})=>K(void 0,o)},convertArrayValues:{attachments:({line:o})=>Hn(void 0,o),attendees:({line:o})=>z(void 0,o)},nonStandard:r?.nonStandard,timezones:r?.timezones})},xo=(...e)=>{let[t,n,r]=e,o,s=C(t,n,{icsComponent:je,objectKeyMap:De,convertValues:{stamp:({line:i})=>g(void 0,i,{timezones:r?.timezones}),start:({line:i})=>g(void 0,i,{timezones:r?.timezones}),end:({line:i})=>g(void 0,i,{timezones:r?.timezones}),created:({line:i})=>g(void 0,i,{timezones:r?.timezones}),lastModified:({line:i})=>g(void 0,i,{timezones:r?.timezones}),categories:({line:i})=>i.value.split(I),description:({line:i})=>{var a;return(a=i.options)!=null&&a.ALTREP&&(o=i.options.ALTREP),S(void 0,i)},location:({line:i})=>S(void 0,i),comment:({line:i})=>S(void 0,i),summary:({line:i})=>S(void 0,i),recurrenceRule:({line:i})=>G(void 0,i,{timezones:r?.timezones}),duration:({line:i})=>Y(void 0,i),organizer:({line:i})=>W(void 0,i),sequence:({line:i})=>K(void 0,i),class:({line:i})=>le(void 0,i),recurrenceId:({line:i})=>ue(void 0,i,{timezones:r?.timezones}),status:({line:i})=>So(void 0,i),timeTransparent:({line:i})=>To(void 0,i)},convertArrayValues:{attendees:({line:i})=>z(void 0,i),exceptionDates:({line:i})=>ce(void 0,i,{timezones:r?.timezones})},childComponents:{alarms:{icsComponent:$e,convert:i=>bo(void 0,i,{nonStandard:r?.nonStandard,timezones:r?.timezones})}},timezones:r?.timezones,nonStandard:r?.nonStandard});return o&&(s.descriptionAltRep=o),s},Co=(...e)=>{let[t,n,r]=e,o=n.split("BEGIN:")[1].split(re)[0],s=Dn.includes(o)?o:"STANDARD",i=n.split("TZOFFSETTO:")[1].split(re)[0];return C(t,n,{icsComponent:s,objectKeyMap:Ie,defaultValues:{type:s},convertValues:{start:({line:a})=>Wn(void 0,a,i),recurrenceRule:({line:a})=>G(void 0,a,{timezones:r?.timezones}),recurrenceDate:({line:a})=>g(void 0,a,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},Mo=(...e)=>{let[t,n,r]=e;return C(t,n,{icsComponent:_e,objectKeyMap:Oe,convertValues:{lastModified:({line:o})=>L(void 0,o)},childComponents:{props:{icsComponent:["DAYLIGHT","STANDARD"],convert:o=>Co(void 0,o,{nonStandard:r?.nonStandard,timezones:r?.timezones})}},nonStandard:r?.nonStandard,timezones:r?.timezones})},Do=(...e)=>{let[t,n,r]=e;return C(t,n,{icsComponent:He,objectKeyMap:ze,convertValues:{stamp:({line:o})=>g(void 0,o,{timezones:r?.timezones}),start:({line:o})=>g(void 0,o,{timezones:r?.timezones}),due:({line:o})=>g(void 0,o,{timezones:r?.timezones}),created:({line:o})=>g(void 0,o,{timezones:r?.timezones}),lastModified:({line:o})=>g(void 0,o,{timezones:r?.timezones}),completed:({line:o})=>g(void 0,o,{timezones:r?.timezones}),categories:({line:o})=>o.value.split(I),description:({line:o})=>S(void 0,o),location:({line:o})=>S(void 0,o),comment:({line:o})=>S(void 0,o),summary:({line:o})=>S(void 0,o),recurrenceRule:({line:o})=>G(void 0,o,{timezones:r?.timezones}),duration:({line:o})=>Y(void 0,o),organizer:({line:o})=>W(void 0,o),sequence:({line:o})=>K(void 0,o),percentComplete:({line:o})=>K(void 0,o),class:({line:o})=>le(void 0,o),recurrenceId:({line:o})=>ue(void 0,o,{timezones:r?.timezones}),status:({line:o})=>ho(void 0,o)},convertArrayValues:{attendees:({line:o})=>z(void 0,o),exceptionDates:({line:o})=>ce(void 0,o,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},Ro=(...e)=>{let[t,n,r]=e;return C(t,n,{icsComponent:qe,objectKeyMap:Ue,convertValues:{stamp:({line:o})=>g(void 0,o,{timezones:r?.timezones}),start:({line:o})=>g(void 0,o,{timezones:r?.timezones}),created:({line:o})=>g(void 0,o,{timezones:r?.timezones}),lastModified:({line:o})=>g(void 0,o,{timezones:r?.timezones}),categories:({line:o})=>o.value.split(I),description:({line:o})=>S(void 0,o),comment:({line:o})=>S(void 0,o),summary:({line:o})=>S(void 0,o),recurrenceRule:({line:o})=>G(void 0,o,{timezones:r?.timezones}),organizer:({line:o})=>W(void 0,o),sequence:({line:o})=>K(void 0,o),class:({line:o})=>le(void 0,o),recurrenceId:({line:o})=>ue(void 0,o,{timezones:r?.timezones}),status:({line:o})=>Ao(void 0,o)},convertArrayValues:{attendees:({line:o})=>z(void 0,o),exceptionDates:({line:o})=>ce(void 0,o,{timezones:r?.timezones})},nonStandard:r?.nonStandard,timezones:r?.timezones})},Oo=(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=L(void 0,{value:o});if(s.startsWith("PT")){let l=Y(void 0,{value:s});return{start:i,duration:l}}let a=L(void 0,{value:s});return{start:i,end:a}})})},No=(...e)=>{let[t,n,r]=e;return C(t,n,{icsComponent:We,objectKeyMap:ke,convertValues:{stamp:({line:o})=>g(void 0,o,{timezones:r?.timezones}),start:({line:o})=>g(void 0,o,{timezones:r?.timezones}),end:({line:o})=>g(void 0,o,{timezones:r?.timezones}),comment:({line:o})=>S(void 0,o),organizer:({line:o})=>W(void 0,o)},convertArrayValues:{attendees:({line:o})=>z(void 0,o),freeBusy:({line:o})=>Oo(void 0,o)},nonStandard:r?.nonStandard,timezones:r?.timezones})},st=(...e)=>{let[t,n,r]=e;return C(t,n,{icsComponent:Vr,objectKeyMap:Ce,convertValues:{version:({line:o})=>o.value},childComponents:{timezones:{icsComponent:_e,convert:o=>Mo(void 0,o,{nonStandard:r?.nonStandard})},events:{icsComponent:je,convert:(o,{data:s})=>xo(void 0,o,{nonStandard:r?.nonStandard,timezones:s.timezones})},todos:{icsComponent:He,convert:(o,{data:s})=>Do(void 0,o,{nonStandard:r?.nonStandard,timezones:s.timezones})},journals:{icsComponent:qe,convert:(o,{data:s})=>Ro(void 0,o,{nonStandard:r?.nonStandard,timezones:s.timezones})},freeBusy:{icsComponent:We,convert:(o,{data:s})=>No(void 0,o,{nonStandard:r?.nonStandard,timezones:s.timezones})}},nonStandard:r?.nonStandard})};var Io="0.3.11",wo="icalendar:lastSync",Lo={"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 de(){let e=await B.get("icalendar",{sources:[]}),t=e.sources||[],n=e.tzShift||0;if(t.length===0)return;await R.flashNotification("Syncing calendars...","info");let r=[];for(let o of t){let i=await(await fetch(o.url)).text(),a=st(void 0,i);if(a.events)for(let l of a.events){let c=l.start,m="";c.local&&typeof c.local.date=="string"?m=c.local.date:typeof c.date=="string"&&(m=c.date);let E=new Date(m.replace("Z","")+"Z"),y=c.local?.timezone||c.timezone||"UTC",A=Lo[y]??0,P=E.getTime()-A*36e5,T=new Date(P+n*36e5),f=U=>String(U).padStart(2,"0"),M=T.getFullYear()+"-"+f(T.getMonth()+1)+"-"+f(T.getDate())+"T"+f(T.getHours())+":"+f(T.getMinutes())+":"+f(T.getSeconds());r.push({...l,start:M,tag:"ical-event",sourceName:o.name})}}await V.indexObjects("$icalendar",r),await R.flashNotification(`Synced ${r.length} events`,"info")}async function at(){await k.del(wo),await de()}async function ut(){await R.flashNotification(`iCalendar Plug ${Io}`,"info")}var lt={syncCalendars:de,forceSync:at,showVersion:ut},ct={name:"icalendar",version:"0.3.11",functions:{syncCalendars:{path:"main.ts:syncCalendars",command:"iCalendar: Sync"},forceSync:{path:"main.ts:forceSync",command:"iCalendar: Force Sync"},showVersion:{path:"main.ts:showVersion",command:"iCalendar: Show Version"}},permissions:["http"],assets:{}},ji={manifest:ct,functionMapping:lt};fe(lt,ct,self.postMessage);export{ji as plug}; +var dt=Object.defineProperty;var F=(e,t)=>{for(var r in t)dt(e,r,{get:t[r],enumerable:!0})};function pe(e){let t=atob(e),r=t.length,n=new Uint8Array(r);for(let o=0;o(...n)=>{let o=this.prefix?[this.prefix,...n]:n;this.originalConsole[r](...o),this.captureLog(r,n)};console.log=t("log"),console.info=t("info"),console.warn=t("warn"),console.error=t("error"),console.debug=t("debug")}captureLog(t,r){let n={level:t,timestamp:Date.now(),message:r.map(o=>{if(typeof o=="string")return o;try{return JSON.stringify(o)}catch{return String(o)}}).join(" ")};this.logBuffer.push(n),this.logBuffer.length>this.maxCaptureSize&&this.logBuffer.shift()}async postToServer(t,r){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(a=>({...a,source:r})))})).ok)throw new Error("Failed to post logs to server")}catch(i){console.warn("Could not post logs to server",i.message),this.logBuffer.unshift(...o)}}}},fe;function me(e=""){return fe=new Z(e),fe}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((r,n)=>{Q++,X.set(Q,{resolve:r,reject:n}),L({type:"sys",id:Q,name:e,args:t})}));function ye(e,t,r){ee&&(L=r,self.addEventListener("message",n=>{(async()=>{let o=n.data;switch(o.type){case"inv":{let i=e[o.name];if(!i)throw new Error(`Function not loaded: ${o.name}`);try{let a=await Promise.resolve(i(...o.args||[]));L({type:"invr",id:o.id,result:a})}catch(a){console.error("An exception was thrown as a result of invoking function",o.name,"error:",a.message),L({type:"invr",id:o.id,error:a.message})}}break;case"sysr":{let i=o.id,a=X.get(i);if(!a)throw Error("Invalid request id");X.delete(i),o.error?a.reject(new Error(o.error)):a.resolve(o.result)}break}})().catch(console.error)}),L({type:"manifest",manifest:t}),me(`[${t.name} plug]`))}async function pt(e,t){if(typeof e!="string"){let r=new Uint8Array(await e.arrayBuffer()),n=r.length>0?J(r):void 0;t={method:e.method,headers:Object.fromEntries(e.headers.entries()),base64Body:n},e=e.url}return syscall("sandboxFetch.fetch",e,t)}globalThis.nativeFetch=globalThis.fetch;function ft(){globalThis.fetch=async function(e,t){let r=t&&t.body?J(new Uint8Array(await new Response(t.body).arrayBuffer())):void 0,n=await pt(e,t&&{method:t.method,headers:t.headers,base64Body:r});return new Response(n.base64Body?pe(n.base64Body):null,{status:n.status,headers:n.headers})}}ee&&ft();var O={};F(O,{alert:()=>Zt,configureVimMode:()=>yn,confirm:()=>Jt,copyToClipboard:()=>ln,deleteLine:()=>cn,dispatch:()=>Gt,downloadFile:()=>Kt,filterBox:()=>Ft,flashNotification:()=>Ut,fold:()=>en,foldAll:()=>rn,getCurrentEditor:()=>gt,getCurrentPage:()=>mt,getCurrentPageMeta:()=>yt,getCurrentPath:()=>Et,getCursor:()=>ht,getRecentlyOpenedPages:()=>vt,getSelection:()=>At,getText:()=>Tt,getUiOption:()=>Qt,goHistory:()=>Yt,hidePanel:()=>Pt,insertAtCursor:()=>qt,insertAtPos:()=>_t,invokeCommand:()=>Dt,isMobile:()=>vn,moveCursor:()=>Ht,moveCursorToLine:()=>jt,moveLineDown:()=>fn,moveLineUp:()=>pn,navigate:()=>Ct,newWindow:()=>zt,openCommandPalette:()=>Rt,openPageNavigator:()=>Mt,openSearchPanel:()=>un,openUrl:()=>Lt,prompt:()=>Wt,rebuildEditorState:()=>It,redo:()=>sn,reloadConfigAndCommands:()=>wt,reloadPage:()=>Ot,reloadUI:()=>Nt,replaceRange:()=>$t,save:()=>bt,sendMessage:()=>En,setSelection:()=>xt,setText:()=>St,setUiOption:()=>Xt,showPanel:()=>Bt,showProgress:()=>Vt,toggleComment:()=>dn,toggleFold:()=>nn,undo:()=>an,unfold:()=>tn,unfoldAll:()=>on,uploadFile:()=>kt,vimEx:()=>mn});typeof self>"u"&&(self={syscall:()=>{throw new Error("Not implemented here")}});function u(e,...t){return globalThis.syscall(e,...t)}function mt(){return u("editor.getCurrentPage")}function yt(){return u("editor.getCurrentPageMeta")}function Et(){return u("editor.getCurrentPath")}function vt(){return u("editor.getRecentlyOpenedPages")}function gt(){return u("editor.getCurrentEditor")}function Tt(){return u("editor.getText")}function St(e,t=!1){return u("editor.setText",e,t)}function ht(){return u("editor.getCursor")}function At(){return u("editor.getSelection")}function xt(e,t){return u("editor.setSelection",e,t)}function Dt(e,t){return u("editor.invokeCommand",e,t)}function bt(){return u("editor.save")}function Ct(e,t=!1,r=!1){return u("editor.navigate",e,t,r)}function Mt(e="page"){return u("editor.openPageNavigator",e)}function Rt(){return u("editor.openCommandPalette")}function Ot(){return u("editor.reloadPage")}function Nt(){return u("editor.reloadUI")}function It(){return u("editor.rebuildEditorState")}function wt(){return u("editor.reloadConfigAndCommands")}function Lt(e,t=!1){return u("editor.openUrl",e,t)}function zt(){return u("editor.newWindow")}function Yt(e){return u("editor.goHistory",e)}function Kt(e,t){return u("editor.downloadFile",e,t)}function kt(e,t){return u("editor.uploadFile",e,t)}function Ut(e,t="info"){return u("editor.flashNotification",e,t)}function Ft(e,t,r="",n=""){return u("editor.filterBox",e,t,r,n)}function Bt(e,t,r,n=""){return u("editor.showPanel",e,t,r,n)}function Pt(e){return u("editor.hidePanel",e)}function Vt(e,t){return u("editor.showProgress",e,t)}function _t(e,t){return u("editor.insertAtPos",e,t)}function $t(e,t,r){return u("editor.replaceRange",e,t,r)}function Ht(e,t=!1){return u("editor.moveCursor",e,t)}function jt(e,t=1,r=!1){return u("editor.moveCursorToLine",e,t,r)}function qt(e,t=!1,r=!1){return u("editor.insertAtCursor",e,t,r)}function Gt(e){return u("editor.dispatch",e)}function Wt(e,t=""){return u("editor.prompt",e,t)}function Jt(e){return u("editor.confirm",e)}function Zt(e){return u("editor.alert",e)}function Qt(e){return u("editor.getUiOption",e)}function Xt(e,t){return u("editor.setUiOption",e,t)}function en(){return u("editor.fold")}function tn(){return u("editor.unfold")}function nn(){return u("editor.toggleFold")}function rn(){return u("editor.foldAll")}function on(){return u("editor.unfoldAll")}function an(){return u("editor.undo")}function sn(){return u("editor.redo")}function un(){return u("editor.openSearchPanel")}function ln(e){return u("editor.copyToClipboard",e)}function cn(){return u("editor.deleteLine")}function dn(){return u("editor.toggleComment")}function pn(){return u("editor.moveLineUp")}function fn(){return u("editor.moveLineDown")}function mn(e){return u("editor.vimEx",e)}function yn(){return u("editor.configureVimMode")}function En(e,t){return u("editor.sendMessage",e,t)}function vn(){return u("editor.isMobile")}var B={};F(B,{del:()=>xn,get:()=>An,set:()=>hn});function hn(e,t){return u("clientStore.set",e,t)}function An(e){return u("clientStore.get",e)}function xn(e){return u("clientStore.delete",e)}var Zo=new Uint8Array(16);var P={};F(P,{define:()=>Un,get:()=>zn,has:()=>kn,insert:()=>Kn,set:()=>Yn});function zn(e,t){return u("config.get",e,t)}function Yn(e,t){return u("config.set",e,t)}function Kn(e,t){return u("config.insert",e,t)}function kn(e){return u("config.has",e)}function Un(e,t){return u("config.define",e,t)}var V={};F(V,{ensureFullIndex:()=>Vn,getObjectByRef:()=>Pn,indexObjects:()=>Fn,queryLuaObjects:()=>Bn});function Fn(e,t){return u("index.indexObjects",e,t)}function Bn(e,t,r,n){return u("index.queryLuaObjects",e,t,r,n)}function Pn(e,t,r){return u("index.getObjectByRef",e,t,r)}function Vn(){return u("index.ensureFullIndex")}var D=e=>Object.fromEntries(Object.entries(e).map(([t,r])=>[r,t])),v=e=>Object.keys(e),xe={action:"ACTION",description:"DESCRIPTION",duration:"DURATION",repeat:"REPEAT",summary:"SUMMARY",trigger:"TRIGGER",attachments:"ATTACH",attendees:"ATTENDEE"},De=D(xe),pa=v(De),fa=v(xe),be={method:"METHOD",prodId:"PRODID",version:"VERSION",name:"X-WR-CALNAME"},Ce=D(be),ma=v(Ce),ya=v(be),Me={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=D(Me),Ea=v(Re),va=v(Me),Oe={id:"TZID",lastModified:"LAST-MODIFIED",url:"TZURL"},Ne=D(Oe),ga=v(Ne),Ta=v(Oe),Ie={comment:"COMMENT",name:"TZNAME",offsetFrom:"TZOFFSETFROM",offsetTo:"TZOFFSETTO",recurrenceDate:"RDATE",recurrenceRule:"RRULE",start:"DTSTART"},we=D(Ie),Sa=v(we),ha=v(Ie),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"},ze=D(Le),Aa=v(ze),xa=v(Le),Ye={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"},Ke=D(Ye),Da=v(Ke),ba=v(Ye),ke={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"},Ue=D(ke),Ca=v(Ue),Ma=v(ke),Fe={stamp:"DTSTAMP",start:"DTSTART",uid:"UID",url:"URL",organizer:"ORGANIZER",attendees:"ATTENDEE",comment:"COMMENT",end:"DTEND",freeBusy:"FREEBUSY"},Be=D(Fe),Ra=v(Be),Oa=v(Fe),Pe="BEGIN",Ve="END",_n="VCALENDAR",_e="VTIMEZONE",$n="STANDARD",Hn="DAYLIGHT",$e="VEVENT",He="VALARM",je="VTODO",qe="VJOURNAL",Ge="VFREEBUSY";var Ee=e=>new RegExp(`${Pe}:${e}([\\s\\S]*?)${Ve}:${e}`,"g"),jn=e=>new RegExp(`${Pe}:${e}|${Ve}:${e}`,"g");var ne=/\r\n|\r|\n/;var ve=` +`,qn=":",w=",",Gn='"',re=";";var ge="=";var Wn=Math.pow(10,8)*24*60*60*1e3,Na=-Wn,Jn=6048e5;var We=6e4,Je=36e5,Zn=3600,Ze=Zn*24,Ia=Ze*7,Qn=Ze*365.2425,Xn=Qn/12,wa=Xn*3,Te=Symbol.for("constructDateFrom");function h(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&Te in e?e[Te](t):e instanceof Date?new e.constructor(t):new Date(t)}function d(e,t){return h(t||e,e)}function ae(e,t,r){let n=d(e,r?.in);return isNaN(t)?h(r?.in||e,NaN):(t&&n.setDate(n.getDate()+t),n)}function Qe(e,t,r){let n=d(e,r?.in);if(isNaN(t))return h(r?.in||e,NaN);if(!t)return n;let o=n.getDate(),i=h(r?.in||e,n.getTime());i.setMonth(n.getMonth()+t+1,0);let a=i.getDate();return o>=a?i:(n.setFullYear(i.getFullYear(),i.getMonth(),o),n)}function j(e,t,r){return h(r?.in||e,+d(e)+t)}function er(e,t,r){return j(e,t*Je,r)}var tr={};function q(){return tr}function $(e,t){var r,n,o,i;let a=q(),s=t?.weekStartsOn??((n=(r=t?.locale)==null?void 0:r.options)==null?void 0:n.weekStartsOn)??a.weekStartsOn??((i=(o=a.locale)==null?void 0:o.options)==null?void 0:i.weekStartsOn)??0,l=d(e,t?.in),c=l.getDay(),p=(ctypeof n=="object"));return t.map(r)}function rr(e,t){let r=d(e,t?.in);return r.setHours(0,0,0,0),r}function Xe(e,t,r){let n=d(e,r?.in);return n.setTime(n.getTime()+t*We),n}function or(e,t,r){return j(e,t*1e3,r)}function ie(e,t,r){return ae(e,t*7,r)}function et(e,t,r){return Qe(e,t*12,r)}function se(e,t){let r=+d(e)-+d(t);return r<0?-1:r>0?1:r}function Se(e,t){let r=d(e,t?.in),n=r.getMonth();return r.setFullYear(r.getFullYear(),n+1,0),r.setHours(23,59,59,999),r}function ar(e,t){let[r,n]=nr(e,t.start,t.end);return{start:r,end:n}}function ir(e,t){let{start:r,end:n}=ar(t?.in,e),o=+r>+n,i=o?+r:+n,a=o?n:r;a.setHours(0,0,0,0);let s=t?.step??1;if(!s)return[];s<0&&(s=-s,o=!o);let l=[];for(;+a<=i;)l.push(h(r,a)),a.setDate(a.getDate()+s),a.setHours(0,0,0,0);return o?l.reverse():l}function he(e,t){let r=d(e,t?.in);return r.setDate(1),r.setHours(0,0,0,0),r}function sr(e,t){let r=d(e,t?.in),n=r.getFullYear();return r.setFullYear(n+1,0,0),r.setHours(23,59,59,999),r}function ur(e,t){let r=d(e,t?.in);return r.setFullYear(r.getFullYear(),0,1),r.setHours(0,0,0,0),r}function lr(e,t){var r,n,o,i;let a=d(e,t?.in),s=a.getFullYear(),l=q(),c=t?.firstWeekContainsDate??((n=(r=t?.locale)==null?void 0:r.options)==null?void 0:n.firstWeekContainsDate)??l.firstWeekContainsDate??((i=(o=l.locale)==null?void 0:o.options)==null?void 0:i.firstWeekContainsDate)??1,p=h(t?.in||e,0);p.setFullYear(s+1,0,c),p.setHours(0,0,0,0);let g=$(p,t),m=h(t?.in||e,0);m.setFullYear(s,0,c),m.setHours(0,0,0,0);let A=$(m,t);return+a>=+g?s+1:+a>=+A?s:s-1}function cr(e,t){var r,n,o,i;let a=q(),s=t?.firstWeekContainsDate??((n=(r=t?.locale)==null?void 0:r.options)==null?void 0:n.firstWeekContainsDate)??a.firstWeekContainsDate??((i=(o=a.locale)==null?void 0:o.options)==null?void 0:i.firstWeekContainsDate)??1,l=lr(e,t),c=h(t?.in||e,0);return c.setFullYear(l,0,s),c.setHours(0,0,0,0),$(c,t)}function dr(e,t){let r=d(e,t?.in),n=+$(r,t)-+cr(r,t);return Math.round(n/Jn)+1}function _(e,t){return d(e,t?.in).getDay()}function tt(e,t){let r=d(e,t?.in),n=r.getFullYear(),o=r.getMonth(),i=h(r,0);return i.setFullYear(n,o+1,0),i.setHours(0,0,0,0),i.getDate()}function pr(e,t){return d(e,t?.in).getHours()}function fr(e,t){return d(e,t?.in).getMinutes()}function nt(e,t){return d(e,t?.in).getMonth()}function mr(e){return d(e).getSeconds()}function yr(e,t){return d(e,t?.in).getFullYear()}function Er(e,t){return+d(e)==+d(t)}function vr(e,t,r){let n=d(e,r?.in),o=dr(n,r)-t;return n.setDate(n.getDate()-o*7),d(n,r?.in)}function H(e,t,r){var n,o,i,a;let s=q(),l=r?.weekStartsOn??((o=(n=r?.locale)==null?void 0:n.options)==null?void 0:o.weekStartsOn)??s.weekStartsOn??((a=(i=s.locale)==null?void 0:i.options)==null?void 0:a.weekStartsOn)??0,c=d(e,r?.in),p=c.getDay(),g=(t%7+7)%7,m=7-l,A=t<0||t>6?t-(p+m)%7:(g+m)%7-(p+m)%7;return ae(c,A,r)}function rt(e,t,r){let n=+d(e,r?.in),[o,i]=[+d(t.start,r?.in),+d(t.end,r?.in)].sort((a,s)=>a-s);return n>=o&&n<=i}function gr(e){let t=e/Je;return Math.trunc(t)}function Tr(e){let t=e/We;return Math.trunc(t)}function Sr(e,t,r){let n=d(e,r?.in),o=n.getFullYear(),i=n.getDate(),a=h(r?.in||e,0);a.setFullYear(o,t,15),a.setHours(0,0,0,0);let s=tt(a);return n.setMonth(t,Math.min(i,s)),n}function hr(e,t,r){let n=d(e,r?.in);return n.setDate(t),n}function Ar(e,t,r){let n=d(e,r?.in);return n.setMonth(0),n.setDate(t),n}function xr(e,t,r){let n=d(e,r?.in);return n.setHours(t),n}function Dr(e,t,r){let n=d(e,r?.in);return n.setMinutes(t),n}function br(e,t,r){let n=d(e,r?.in);return n.setSeconds(t),n}function Cr(e,t,r){return j(e,-t,r)}function Mr(e,t,r){return ie(e,-t,r)}var Rr=[$n,Hn];var Or=["SECONDLY","MINUTELY","HOURLY","DAILY","WEEKLY","MONTHLY","YEARLY"];var ot=["SU","MO","TU","WE","TH","FR","SA"];var N=(e,t)=>t===void 0?!1:e>=t,Nr=(e,{start:t,end:r},n)=>{if(N(n.length,e.count))return;let o=e.frequency,i=e.interval||1;if(!o)return;let a=t;if(o==="SECONDLY"){for(;a{let o=r.map(({day:i,occurrence:a})=>({occurrence:a,day:ot.indexOf(i)}));return e.frequency==="YEARLY"?e.byYearday||e.byMonthday?t.map(i=>i.filter(a=>o.find(({day:s})=>s===_(a)))):e.byWeekNo?t.map(i=>i.flatMap(a=>o.map(({day:s})=>H(a,s,{weekStartsOn:n})))):e.byMonth?t.map(i=>i.flatMap(a=>o.flatMap(({day:s,occurrence:l})=>te(b(he(a)),b(Se(a)),s,n,l)))):t.map(i=>i.flatMap(a=>o.flatMap(({day:s,occurrence:l})=>te(b(ur(a)),b(sr(a)),s,n,l)))):e.frequency==="MONTHLY"?e.byMonthday?t.map(i=>i.filter(a=>o.find(({day:s})=>s===_(a)))):t.map(i=>i.flatMap(a=>o.flatMap(({day:s,occurrence:l})=>te(b(he(a)),b(Se(a)),s,n,l)))):e.frequency==="WEEKLY"?t.map(i=>i.flatMap(a=>o.map(({day:s})=>H(a,s,{weekStartsOn:n})))):t.map(i=>i.filter(a=>o.find(({day:s})=>s===_(a))))},te=(e,t,r,n,o)=>{if(o!==void 0){if(!(o<0)){let s=H(e,r,{weekStartsOn:n}),l=e>s;return ie(s,(o||1)-1+(l?1:0))}let i=H(t,r,{weekStartsOn:n}),a=tb(i)).filter(i=>rt(i,{start:e,end:t})).filter(i=>r===_(i))},b=e=>Xe(e,-e.getTimezoneOffset()),wr=(e,t,r)=>e.frequency==="YEARLY"||e.frequency==="MONTHLY"||e.frequency==="WEEKLY"||e.frequency==="DAILY"?t.map(n=>n.flatMap(o=>r.map(i=>xr(o,i)))):t.map(n=>n.filter(o=>r.includes(pr(o)))),Lr=(e,t,r)=>e.frequency==="YEARLY"||e.frequency==="MONTHLY"||e.frequency==="WEEKLY"||e.frequency==="DAILY"||e.frequency==="HOURLY"?t.map(n=>n.flatMap(o=>r.map(i=>Dr(o,i)))):t.map(n=>n.filter(o=>r.includes(fr(o)))),zr=(e,t,r)=>e.frequency==="YEARLY"?t.map(n=>n.flatMap(o=>r.map(i=>Sr(o,i)))):t.map(n=>n.filter(o=>r.includes(nt(o)))),Yr=(e,t,r)=>e.frequency==="YEARLY"||e.frequency==="MONTHLY"?t.map(n=>n.flatMap(o=>{let i=tt(o);return r.map(a=>a>i?void 0:hr(o,a)).filter(a=>!!a)})):e.frequency==="WEEKLY"?t:t.map(n=>n.filter(o=>r.includes(nt(o)))),Kr=(e,t,r)=>e.frequency==="YEARLY"||e.frequency==="MONTHLY"||e.frequency==="WEEKLY"||e.frequency==="DAILY"||e.frequency==="HOURLY"||e.frequency==="MINUTELY"?t.map(n=>n.flatMap(o=>r.map(i=>br(o,i)))):t.map(n=>n.filter(o=>r.includes(mr(o)))),kr=(e,t,r)=>!e.byYearday&&!e.byWeekNo&&!e.byMonthday&&!e.byMonth&&!e.byDay&&!e.byHour&&!e.byMinute&&!e.bySecond?t:t.map(n=>n.sort(se).filter((o,i)=>r.some(a=>a>0?i===0?!1:i%a===0:i===0?n.length-1+a===0:i%(n.length-1+a)===0))),Ur=(e,t,r,n)=>e.frequency==="YEARLY"?t.map(o=>o.flatMap(i=>r.map(a=>vr(i,a,{weekStartsOn:n})))):t,Fr=(e,t,r)=>e.frequency==="YEARLY"?t.map(n=>n.flatMap(o=>r.map(i=>Ar(o,i)))):e.frequency==="MONTHLY"||e.frequency==="WEEKLY"||e.frequency==="DAILY"?t:t.map(n=>n.filter(o=>r.includes(yr(o)))),Br=(e,t,r)=>{let n=r;return e.byMonth&&(n=zr(e,n,e.byMonth)),e.byWeekNo&&(n=Ur(e,n,e.byWeekNo,t.weekStartsOn)),e.byYearday&&(n=Fr(e,n,e.byYearday)),e.byMonthday&&(n=Yr(e,n,e.byMonthday)),e.byDay&&(n=Ir(e,n,e.byDay,t.weekStartsOn)),e.byHour&&(n=wr(e,n,e.byHour)),e.byMinute&&(n=Lr(e,n,e.byMinute)),e.bySecond&&(n=Kr(e,n,e.bySecond)),e.bySetPos&&(n=kr(e,n,e.bySetPos)),n.map(o=>o.sort(se).filter(i=>!(t.exceptions.length>0&&t.exceptions.some(a=>Er(a,i))||!rt(i,{start:t.start,end:t.end}))))},Pr=2,Vr=(e,t)=>{var r;let n=t.start,o=((r=e.until)==null?void 0:r.date)||t?.end||et(n,Pr),i=t.exceptions||[],a=(e.workweekStart?ot.indexOf(e.workweekStart):1)%7,s=[[n]];Nr(e,{start:n,end:o},s);let l=Br(e,{start:n,end:o,exceptions:i,weekStartsOn:a},s);return e.count?l.flat().splice(0,e.count):l.flat()},_r=(e,t)=>t.flatMap(r=>!r.recurrenceRule||r.recurrenceRule.until&&r.recurrenceRule.until.date({...r,start:n}))),oe=e=>{let t=e[0]==="+"?1:-1,r=Number(e.slice(1,3)),n=e.length>3?Number(e.slice(3,5)):0,o=e.length>5?Number(e.slice(5,7)):0;return((r*60+n)*60+o)*1e3*t},$r=(e,t)=>{let r="en-US",n=new Date(t.toLocaleString(r,{timeZone:"UTC"}));try{return new Date(t.toLocaleString(r,{timeZone:e})).getTime()-n.getTime()}catch{return t.getTime()-n.getTime()}},Hr=(e,t,r)=>{let n=r?.find(i=>i.id===t);if(n){let i=_r(e,n.props).sort((l,c)=>se(l.start,c.start));for(let l=0;l5?c.substring(0,5):c;return{offset:p,milliseconds:oe(p)}}let a=i[i.length-1].offsetTo,s=a.length>5?a.substring(0,5):a;return{offset:s,milliseconds:oe(s)}}let o=$r(t,e);if(!Number.isNaN(o)){let i=o<0,a=Math.abs(gr(o)),s=Math.abs(Tr(o))-a*60,l=a.toString().length===1?`0${a}`:a.toString(),c=s.toString().length===1?`0${s}`:s.toString();return{offset:`${i?"-":"+"}${l}${c}`,milliseconds:o}}};var f=(e,t)=>{if(e===void 0)return t;let r=e["~standard"].validate(t);if(r instanceof Promise)throw new TypeError("Schema validation must be synchronous");if(r.issues)throw new Error(JSON.stringify(r.issues,null,2));return r.value},jr=(e,t)=>{var r,n,o,i;let a=((r=t.options)==null?void 0:r.VALUE)==="BINARY"?{type:"binary",encoding:((n=t.options)==null?void 0:n.ENCODING)||"BASE64",binary:t.value,value:(o=t.options)==null?void 0:o.VALUE}:{type:"uri",url:t.value,formatType:(i=t.options)==null?void 0:i.FMTTYPE};return f(e,a)},I=e=>e.replace(/mailto:/gi,""),K=(e,t)=>{var r,n,o,i,a,s,l,c,p,g,m;return f(e,{email:I(t.value),delegatedFrom:(r=t.options)!=null&&r["DELEGATED-FROM"]?I((n=t.options)==null?void 0:n["DELEGATED-FROM"]):void 0,dir:(o=t.options)==null?void 0:o.DIR,member:(i=t.options)!=null&&i.MEMBER?I(t.options.MEMBER):void 0,name:(a=t.options)==null?void 0:a.CN,partstat:(s=t.options)==null?void 0:s.PARTSTAT,role:(l=t.options)==null?void 0:l.ROLE,sentBy:(c=t.options)!=null&&c["SENT-BY"]?I(t.options["SENT-BY"]):void 0,rsvp:(p=t.options)!=null&&p.RSVP?((g=t.options)==null?void 0:g.RSVP)==="TRUE"?!0:((m=t.options)==null?void 0:m.RSVP)==="FALSE"?!1:void 0:void 0})},k=(e,t)=>{let r=t.value,n={};r[0]==="-"&&(n.before=!0,r=r.slice(1)),r=r.slice(1);let o=r.split("T"),i=o[0];if(i.includes("D")){let[s,l]=i.split("D");n.days=Number(s),i=l}if(i.includes("W")){let[s,l]=i.split("W");n.weeks=Number(s),i=l}let a=o[1];if(a){if(a.includes("H")){let[s,l]=a.split("H");n.hours=Number(s),a=l}if(a.includes("M")){let[s,l]=a.split("M");n.minutes=Number(s),a=l}if(a.includes("S")){let[s,l]=a.split("S");n.seconds=Number(s),a=l}}return f(e,n)},qr=(e,t)=>{let r=Number.parseInt(t.value.slice(0,4),10),n=Number.parseInt(t.value.slice(4,6),10)-1,o=Number.parseInt(t.value.slice(6,8),10),i=new Date(Date.UTC(r,n,o));return f(e,i)},z=(e,t)=>{let r=Number.parseInt(t.value.slice(0,4),10),n=Number.parseInt(t.value.slice(4,6),10)-1,o=Number.parseInt(t.value.slice(6,8),10),i=Number.parseInt(t.value.slice(9,11),10),a=Number.parseInt(t.value.slice(11,13),10),s=Number.parseInt(t.value.slice(13,15),10),l=new Date(Date.UTC(r,n,o,i,a,s));return f(e,l)},Gr=(e,t,r)=>{let n=oe(r),o=z(void 0,t),i=Cr(o,n);return f(e,i)},Wr=(e,t)=>{var r,n,o,i,a,s;if(((r=e.options)==null?void 0:r.VALUE)==="DATE")return{date:qr(void 0,e),type:(n=e.options)==null?void 0:n.VALUE};let l=((o=e.options)==null?void 0:o.VALUE)||"DATE-TIME",c=z(void 0,e);if(!((i=e.options)!=null&&i.TZID))return{date:c,type:l};let p=Hr(c,e.options.TZID,t?.timezones);return p?{date:j(c,-p.milliseconds),type:l,local:(a=e.options)!=null&&a.TZID?{date:c,timezone:(s=e.options)==null?void 0:s.TZID,tzoffset:p.offset}:void 0}:{date:c,type:l}},E=(e,t,r)=>f(e,Wr(t,r)),Jr=(e,t,r)=>{var n,o,i,a;let s=((n=t.options)==null?void 0:n.VALUE)==="DATE-TIME"||((o=t.options)==null?void 0:o.VALUE)==="DATE"?{type:"absolute",value:E(void 0,t,r),options:{related:(i=t.options)==null?void 0:i.RELATED}}:{type:"relative",value:k(void 0,t),options:{related:(a=t.options)==null?void 0:a.RELATED}};return f(e,s)},Zr=e=>e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e,at=e=>e.map(t=>{let[r,...n]=t.split(ge),o=n.join(ge);return{property:r,value:Zr(o)}},{}),Qr=e=>e.reduce((t,r)=>(t[r.property]=r.value,t),{}),Xr=e=>Qr(at(e)),eo=e=>{let t=!1,r;for(let i=0;i{let{property:t,value:r}=eo(e);if(t.includes(re)){let[n,...o]=t.split(re),i=Xr(o);return{property:n,line:{options:i,value:r}}}return{property:t,line:{value:r}}},Ae=e=>/^[ \t]/.test(e),no=e=>/^[A-Z]+(?:-[A-Z]+)*[:;]/.test(e),ro=e=>{let t=[],r=e.split(ne);for(;r[0]==="";)r.shift();let n=r.length;for(;n>0&&r[n-1]==="";)n-=1,r.pop();for(let o=0;oo!=="")},oo=(e,t,r)=>{if(!t)return e;let n={};return Object.entries(t).forEach(([o,i])=>{let a=Object.entries(r||{}).find(([c,p])=>p.name===o);if(!a){n[ao(o)]=i.value;return}let s=a[1].convert(i),l=a[1].schema;if(!l){n[a[0]]=s;return}n[a[0]]=f(l,s)}),e.nonStandard=n,e},ao=e=>{let t=e.startsWith("X-")?e.slice(2):e,r="",n=!1;for(let o of t)o==="-"?n=!0:(r+=n?o.toUpperCase():o.toLowerCase(),n=!1);return r},io=e=>e.startsWith("X-"),C=(e,t,r)=>{let n=t.replace(jn(r?.icsComponent),""),o=[...new Set(Object.values(r.childComponents||{}).flatMap(({icsComponent:g})=>g))],i=ro(o.reduce((g,m)=>g.replace(Ee(m),""),n)),a=r.defaultValues||{},s={};i.forEach(g=>{var m,A;let{property:x,line:T}=to(g);io(x)&&(s[x]=T);let y=r.objectKeyMap[x];if(!y)return;let M=(m=r.convertArrayValues)==null?void 0:m[y];if(M){let R=M({line:T});if(!R)return;(a[y]===void 0||a[y]===null||!Array.isArray(a[y]))&&(a[y]=[]),Array.isArray(R)?a[y].push(...R):a[y].push(R);return}let U=(A=r.convertValues)==null?void 0:A[y];if(U){let R=U({line:T});if(!R)return;a[y]=R;return}a[y]=T.value});let l=r.childComponents,c=l?Object.keys(l||{}):[];l&&c.length>0&&c.forEach(g=>{let m=l?.[g];if(!m)return;let A=Array.isArray(m.icsComponent)?m.icsComponent:[m.icsComponent],x=[],T=[];A.forEach(y=>{T.push(...n.matchAll(Ee(y)))}),T.map(y=>y[0]).forEach(y=>{let M=m.convert(y,{data:a});M&&x.push(M)}),x.length!==0&&(a[g]=x)});let p=f(e,a);return r!=null&&r.nonStandard?oo(p,s,r?.nonStandard):p},G=(e,t)=>{var r,n,o;return f(e,{name:(r=t.options)==null?void 0:r.CN,dir:(n=t.options)==null?void 0:n.DIR,sentBy:(o=t.options)!=null&&o["SENT-BY"]?I(t.options["SENT-BY"]):void 0,email:I(t.value)})},ue=(e,t,r)=>{var n;return f(e,{value:E(void 0,t,r),range:(n=t.options)==null?void 0:n.RANGE})},so=e=>{if(e.length===2)return{day:e};let t=e.slice(0,-2);return{day:e.replace(t,""),occurrence:Number(t)}},uo=(e,t)=>f(e,so(t.value)),lo=(e,t)=>f(e,t.value),co=["until"],po=e=>co.includes(e),fo=["bySecond","byMinute","byHour","byMonthday","byYearday","byWeekNo","bySetPos"],mo=e=>fo.includes(e),yo=["byDay"],Eo=e=>yo.includes(e),vo=["count","interval"],go=e=>vo.includes(e),W=(e,t,r)=>{let n={};return at(t.value.split(re)).forEach(o=>{let{property:i,value:a}=o,s=ze[i];if(s){if(po(s)){n[s]=E(void 0,{value:a,options:{VALUE:a.includes("T")?"DATE-TIME":"DATE"}},{timezones:r?.timezones});return}if(mo(s)){n[s]=a.split(w).map(l=>Number(l));return}if(s==="byMonth"){n[s]=a.split(w).map(l=>Number(l)-1);return}if(Eo(s)){n[s]=a.split(w).map(l=>uo(void 0,{value:l}));return}if(go(s)){n[s]=Number(a);return}if(s==="frequency"){if(!a||!Or.includes(a))return;n[s]=a;return}if(s==="workweekStart"){n[s]=lo(void 0,{value:a});return}}}),f(e,n)},le=(e,t)=>f(e,t.value),To=(e,t)=>f(e,t.value),ce=(e,t,r)=>f(e,t.value.split(",").map(n=>E(void 0,{value:n,options:t.options},r))),So=(e,t)=>f(e,t.value),ho=(e,t)=>f(e,t.value),Ao=(e,t)=>f(e,t.value),Y=(e,t)=>f(e,Number.parseInt(t.value,10)),xo=e=>e.replace(/\\(([,;\\])|([nN]))/g,(t,r,n)=>n||` +`),S=(e,t)=>f(e,xo(t.value)),Do=(...e)=>{let[t,r,n]=e;return C(t,r,{icsComponent:He,objectKeyMap:De,convertValues:{trigger:({line:o})=>Jr(void 0,o,{timezones:n?.timezones}),duration:({line:o})=>k(void 0,o),repeat:({line:o})=>Y(void 0,o)},convertArrayValues:{attachments:({line:o})=>jr(void 0,o),attendees:({line:o})=>K(void 0,o)},nonStandard:n?.nonStandard,timezones:n?.timezones})},bo=(...e)=>{let[t,r,n]=e,o,i=C(t,r,{icsComponent:$e,objectKeyMap:Re,convertValues:{stamp:({line:a})=>E(void 0,a,{timezones:n?.timezones}),start:({line:a})=>E(void 0,a,{timezones:n?.timezones}),end:({line:a})=>E(void 0,a,{timezones:n?.timezones}),created:({line:a})=>E(void 0,a,{timezones:n?.timezones}),lastModified:({line:a})=>E(void 0,a,{timezones:n?.timezones}),categories:({line:a})=>a.value.split(w),description:({line:a})=>{var s;return(s=a.options)!=null&&s.ALTREP&&(o=a.options.ALTREP),S(void 0,a)},location:({line:a})=>S(void 0,a),comment:({line:a})=>S(void 0,a),summary:({line:a})=>S(void 0,a),recurrenceRule:({line:a})=>W(void 0,a,{timezones:n?.timezones}),duration:({line:a})=>k(void 0,a),organizer:({line:a})=>G(void 0,a),sequence:({line:a})=>Y(void 0,a),class:({line:a})=>le(void 0,a),recurrenceId:({line:a})=>ue(void 0,a,{timezones:n?.timezones}),status:({line:a})=>So(void 0,a),timeTransparent:({line:a})=>To(void 0,a)},convertArrayValues:{attendees:({line:a})=>K(void 0,a),exceptionDates:({line:a})=>ce(void 0,a,{timezones:n?.timezones})},childComponents:{alarms:{icsComponent:He,convert:a=>Do(void 0,a,{nonStandard:n?.nonStandard,timezones:n?.timezones})}},timezones:n?.timezones,nonStandard:n?.nonStandard});return o&&(i.descriptionAltRep=o),i},Co=(...e)=>{let[t,r,n]=e,o=r.split("BEGIN:")[1].split(ne)[0],i=Rr.includes(o)?o:"STANDARD",a=r.split("TZOFFSETTO:")[1].split(ne)[0];return C(t,r,{icsComponent:i,objectKeyMap:we,defaultValues:{type:i},convertValues:{start:({line:s})=>Gr(void 0,s,a),recurrenceRule:({line:s})=>W(void 0,s,{timezones:n?.timezones}),recurrenceDate:({line:s})=>E(void 0,s,{timezones:n?.timezones})},nonStandard:n?.nonStandard,timezones:n?.timezones})},Mo=(...e)=>{let[t,r,n]=e;return C(t,r,{icsComponent:_e,objectKeyMap:Ne,convertValues:{lastModified:({line:o})=>z(void 0,o)},childComponents:{props:{icsComponent:["DAYLIGHT","STANDARD"],convert:o=>Co(void 0,o,{nonStandard:n?.nonStandard,timezones:n?.timezones})}},nonStandard:n?.nonStandard,timezones:n?.timezones})},Ro=(...e)=>{let[t,r,n]=e;return C(t,r,{icsComponent:je,objectKeyMap:Ke,convertValues:{stamp:({line:o})=>E(void 0,o,{timezones:n?.timezones}),start:({line:o})=>E(void 0,o,{timezones:n?.timezones}),due:({line:o})=>E(void 0,o,{timezones:n?.timezones}),created:({line:o})=>E(void 0,o,{timezones:n?.timezones}),lastModified:({line:o})=>E(void 0,o,{timezones:n?.timezones}),completed:({line:o})=>E(void 0,o,{timezones:n?.timezones}),categories:({line:o})=>o.value.split(w),description:({line:o})=>S(void 0,o),location:({line:o})=>S(void 0,o),comment:({line:o})=>S(void 0,o),summary:({line:o})=>S(void 0,o),recurrenceRule:({line:o})=>W(void 0,o,{timezones:n?.timezones}),duration:({line:o})=>k(void 0,o),organizer:({line:o})=>G(void 0,o),sequence:({line:o})=>Y(void 0,o),percentComplete:({line:o})=>Y(void 0,o),class:({line:o})=>le(void 0,o),recurrenceId:({line:o})=>ue(void 0,o,{timezones:n?.timezones}),status:({line:o})=>ho(void 0,o)},convertArrayValues:{attendees:({line:o})=>K(void 0,o),exceptionDates:({line:o})=>ce(void 0,o,{timezones:n?.timezones})},nonStandard:n?.nonStandard,timezones:n?.timezones})},Oo=(...e)=>{let[t,r,n]=e;return C(t,r,{icsComponent:qe,objectKeyMap:Ue,convertValues:{stamp:({line:o})=>E(void 0,o,{timezones:n?.timezones}),start:({line:o})=>E(void 0,o,{timezones:n?.timezones}),created:({line:o})=>E(void 0,o,{timezones:n?.timezones}),lastModified:({line:o})=>E(void 0,o,{timezones:n?.timezones}),categories:({line:o})=>o.value.split(w),description:({line:o})=>S(void 0,o),comment:({line:o})=>S(void 0,o),summary:({line:o})=>S(void 0,o),recurrenceRule:({line:o})=>W(void 0,o,{timezones:n?.timezones}),organizer:({line:o})=>G(void 0,o),sequence:({line:o})=>Y(void 0,o),class:({line:o})=>le(void 0,o),recurrenceId:({line:o})=>ue(void 0,o,{timezones:n?.timezones}),status:({line:o})=>Ao(void 0,o)},convertArrayValues:{attendees:({line:o})=>K(void 0,o),exceptionDates:({line:o})=>ce(void 0,o,{timezones:n?.timezones})},nonStandard:n?.nonStandard,timezones:n?.timezones})},No=(e,t)=>{var r;return f(e,{type:(r=t.options)==null?void 0:r.FBTYPE,values:t.value.split(",").map(n=>{let[o,i]=n.split("/"),a=z(void 0,{value:o});if(i.startsWith("PT")){let l=k(void 0,{value:i});return{start:a,duration:l}}let s=z(void 0,{value:i});return{start:a,end:s}})})},Io=(...e)=>{let[t,r,n]=e;return C(t,r,{icsComponent:Ge,objectKeyMap:Be,convertValues:{stamp:({line:o})=>E(void 0,o,{timezones:n?.timezones}),start:({line:o})=>E(void 0,o,{timezones:n?.timezones}),end:({line:o})=>E(void 0,o,{timezones:n?.timezones}),comment:({line:o})=>S(void 0,o),organizer:({line:o})=>G(void 0,o)},convertArrayValues:{attendees:({line:o})=>K(void 0,o),freeBusy:({line:o})=>No(void 0,o)},nonStandard:n?.nonStandard,timezones:n?.timezones})},it=(...e)=>{let[t,r,n]=e;return C(t,r,{icsComponent:_n,objectKeyMap:Ce,convertValues:{version:({line:o})=>o.value},childComponents:{timezones:{icsComponent:_e,convert:o=>Mo(void 0,o,{nonStandard:n?.nonStandard})},events:{icsComponent:$e,convert:(o,{data:i})=>bo(void 0,o,{nonStandard:n?.nonStandard,timezones:i.timezones})},todos:{icsComponent:je,convert:(o,{data:i})=>Ro(void 0,o,{nonStandard:n?.nonStandard,timezones:i.timezones})},journals:{icsComponent:qe,convert:(o,{data:i})=>Oo(void 0,o,{nonStandard:n?.nonStandard,timezones:i.timezones})},freeBusy:{icsComponent:Ge,convert:(o,{data:i})=>Io(void 0,o,{nonStandard:n?.nonStandard,timezones:i.timezones})}},nonStandard:n?.nonStandard})};var wo="0.3.11",Lo="icalendar:lastSync",zo={"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 de(){let e=await P.get("icalendar",{sources:[]}),t=e.sources||[],r=e.tzShift||0;if(t.length===0)return;await O.flashNotification("Syncing calendars...","info");let n=[];for(let o of t){let a=await(await fetch(o.url)).text(),s=it(void 0,a);if(s.events)for(let l of s.events){let c=l.start,p="";c.local&&typeof c.local.date=="string"?p=c.local.date:typeof c.date=="string"&&(p=c.date);let g=new Date(p.replace("Z","")+"Z"),m=c.local?.timezone||c.timezone||"UTC",A=zo[m]??0,x=g.getTime()-A*36e5,T=new Date(x+r*36e5),y=U=>String(U).padStart(2,"0"),M=T.getFullYear()+"-"+y(T.getMonth()+1)+"-"+y(T.getDate())+"T"+y(T.getHours())+":"+y(T.getMinutes())+":"+y(T.getSeconds());n.push({...l,start:M,tag:"ical-event",sourceName:o.name})}}await V.indexObjects("$icalendar",n),await O.flashNotification(`Synced ${n.length} events`,"info")}async function st(){await B.del(Lo),await de()}async function ut(){await O.flashNotification(`iCalendar Plug ${wo}`,"info")}var lt={syncCalendars:de,forceSync:st,showVersion:ut},ct={name:"icalendar",version:"0.3.11",functions:{syncCalendars:{path:"icalendar.ts:syncCalendars",command:"iCalendar: Sync"},forceSync:{path:"icalendar.ts:forceSync",command:"iCalendar: Force Sync"},showVersion:{path:"icalendar.ts:showVersion",command:"iCalendar: Show Version"}},permissions:["http"],assets:{}},_a={manifest:ct,functionMapping:lt};ye(lt,ct,self.postMessage);export{_a as plug}; //# sourceMappingURL=icalendar.plug.js.map