worker
code:worker.js
var Br=Object.create;var lt=Object.defineProperty;var jr=Object.getOwnPropertyDescriptor;var Gr=Object.getOwnPropertyNames;var qr=Object.getPrototypeOf,zr=Object.prototype.hasOwnProperty;var le=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)r}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var ut=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Hr=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Gr(t))!zr.call(e,n)&&n!==r&<(e,n,{get:()=>tn,enumerable:!(o=jr(t,n))||o.enumerable});return e};var ft=(e,t,r)=>(r=e!=null?Br(qr(e)):{},Hr(t||!e||!e.__esModule?lt(r,"default",{value:e,enumerable:!0}):r,e));var kt=ut((Ln,St)=>{var Ve=null;if(typeof window>"u"&&("process"in globalThis&&"versions"in globalThis.process&&"node"in globalThis.process.versions&&typeof globalThis.caches>"u"&&typeof globalThis.addEventListener!="function"||"Bun"in globalThis))try{Ve=le0(${["node","util"].join(":")})}catch{Ve=null}St.exports=Ve});var Ct=ut((zn,Mt)=>{var je=null;if(typeof window>"u"&&("process"in globalThis&&"versions"in globalThis.process&&"node"in globalThis.process.versions&&typeof globalThis.caches>"u"&&typeof globalThis.addEventListener!="function"||"Bun"in globalThis))try{je=le0(${["node","fs"].join(":")})}catch{je=null}Mt.exports=je});var pt=(e,t)=>{if(e.length!==t.length)return!1;let r=...e.sort(),o=...t.sort();return r.every((n,a)=>n===oa)};function dt(e,t={}){let{signal:r,persistent:o=!0}=t;return r?.aborted?Promise.reject(r.reason):new Promise((n,a)=>{let s=()=>{clearTimeout(+i),a(r?.reason)},i=Yr(()=>{r?.removeEventListener("abort",s),n()},e);if(r?.addEventListener("abort",s,{once:!0}),o===!1)try{Deno.unrefTimer(i)}catch(l){if(!(l instanceof ReferenceError))throw l;console.error("persistent option is only available in Deno")}})}var mt=2**31-1;function Yr(e,t){let r=t=Math.trunc(Math.max(t,0)||0),o=Date.now(),n,a=()=>{r=t-(Date.now()-o),n=r>mt?setTimeout(a,mt):setTimeout(e,r)};return a(),{valueOf:()=>n}}var ht=Symbol("Comlink.proxy"),Kr=Symbol("Comlink.endpoint"),Jr=Symbol("Comlink.releaseProxy"),Le=Symbol("Comlink.finalizer"),fe=Symbol("Comlink.thrown"),Et=e=>typeof e=="object"&&e!==null||typeof e=="function",Zr={canHandle:e=>Et(e)&&eht,serialize(e){let{port1:t,port2:r}=new MessageChannel;return se(e,t),[r,r]},deserialize(e){return e.start(),to(e)}},Xr={canHandle:e=>Et(e)&&fe in e,serialize({value:e}){let t;return e instanceof Error?t={isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:t={isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(new Error(e.value.message),e.value):e.value}},gt=new Map("proxy",Zr],["throw",Xr);function Qr(e,t){for(let r of e)if(t===r||r==="*"||r instanceof RegExp&&r.test(t))return!0;return!1}function se(e,t=globalThis,r="*"){t.addEventListener("message",function o(n){if(!n||!n.data)return;if(!Qr(r,n.origin)){console.warn(Invalid origin '${n.origin}' for comlink proxy);return}let{id:a,type:s,path:c}=Object.assign({path:[]},n.data),i=(n.data.argumentList||[]).map(q),l;try{let f=c.slice(0,-1).reduce((u,m)=>um,e),p=c.reduce((u,m)=>um,e);switch(s){case"GET":l=p;break;case"SET":f[c.slice(-1)0]=q(n.data.value),l=!0;break;case"APPLY":l=p.apply(f,i);break;case"CONSTRUCT":{let u=new p(...i);l=ao(u)}break;case"ENDPOINT":{let{port1:u,port2:m}=new MessageChannel;se(e,m),l=so(u,u)}break;case"RELEASE":l=void 0;break;default:return}}catch(f){l={value:f,fe:0}}Promise.resolve(l).catch(f=>({value:f,fe:0})).then(f=>{letp,u=de(f);t.postMessage(Object.assign(Object.assign({},p),{id:a}),u),s==="RELEASE"&&(t.removeEventListener("message",o),_t(t),Le in e&&typeof eLe=="function"&&eLe())}).catch(f=>{letp,u=de({value:new TypeError("Unserializable return value"),fe:0});t.postMessage(Object.assign(Object.assign({},p),{id:a}),u)})}),t.start&&t.start()}function eo(e){return e.constructor.name==="MessagePort"}function _t(e){eo(e)&&e.close()}function to(e,t){let r=new Map;return e.addEventListener("message",function(n){let{data:a}=n;if(!a||!a.id)return;let s=r.get(a.id);if(s)try{s(a)}finally{r.delete(a.id)}}),Ie(e,r,[],t)}function ue(e){if(e)throw new Error("Proxy has been released and is not useable")}function yt(e){return J(e,new Map,{type:"RELEASE"}).then(()=>{_t(e)})}var pe=new WeakMap,me="FinalizationRegistry"in globalThis&&new FinalizationRegistry(e=>{let t=(pe.get(e)||0)-1;pe.set(e,t),t===0&&yt(e)});function ro(e,t){let r=(pe.get(t)||0)+1;pe.set(t,r),me&&me.register(e,t,e)}function oo(e){me&&me.unregister(e)}function Ie(e,t,r=[],o=function(){}){let n=!1,a=new Proxy(o,{get(s,c){if(ue(n),c===Jr)return()=>{oo(a),yt(e),t.clear(),n=!0};if(c==="then"){if(r.length===0)return{then:()=>a};let i=J(e,t,{type:"GET",path:r.map(l=>l.toString())}).then(q);return i.then.bind(i)}return Ie(e,t,...r,c)},set(s,c,i){ue(n);letl,f=de(i);return J(e,t,{type:"SET",path:...r,c.map(p=>p.toString()),value:l},f).then(q)},apply(s,c,i){ue(n);let l=rr.length-1;if(l===Kr)return J(e,t,{type:"ENDPOINT"}).then(q);if(l==="bind")return Ie(e,t,r.slice(0,-1));letf,p=Rt(i);return J(e,t,{type:"APPLY",path:r.map(u=>u.toString()),argumentList:f},p).then(q)},construct(s,c){ue(n);leti,l=Rt(c);return J(e,t,{type:"CONSTRUCT",path:r.map(f=>f.toString()),argumentList:i},l).then(q)}});return ro(a,e),a}function no(e){return Array.prototype.concat.apply([],e)}function Rt(e){let t=e.map(de);return[t.map(r=>r0),no(t.map(r=>r1))]}var xt=new WeakMap;function so(e,t){return xt.set(e,t),e}function ao(e){return Object.assign(e,{ht:!0})}function de(e){for(lett,rof gt)if(r.canHandle(e)){leto,n=r.serialize(e);return{type:"HANDLER",name:t,value:o},n}return[{type:"RAW",value:e},xt.get(e)||[]]}function q(e){switch(e.type){case"HANDLER":return gt.get(e.name).deserialize(e.value);case"RAW":return e.value}}function J(e,t,r,o){return new Promise(n=>{let a=io();t.set(a,n),e.start&&e.start(),e.postMessage(Object.assign({id:a},r),o)})}function io(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}var I=!1;var wt=e=>Object.fromEntries(...Object.entries(console).map((t,r)=>{if(typeof r!="function")returnt,r;switch(t){case"warn":case"error":return[t,(...o)=>r(%c${e},Me,...o)];case"log":case"info":case"debug":return[t,(...o)=>{I!==!0&&(!I||!I.has(e))||r(%c${e},Me,...o)}];case"assert":return[t,(o,...n)=>{I!==!0&&(!I||!I.has(e))||r(o,%c${e},Me,...n)}];case"time":case"timeEnd":return[t,o=>{I!==!0&&(!I||!I.has(e))||r(${e} ${o})}];default:returnt,(...o)=>{if(!(I!==!0&&(!I||!I.has(e))))return r(...o)}}})),Me="color: gray";var co={},z=lo(globalThis,co);function lo(e,t){return new Proxy(e,{get(r,o,n){return o in t?to:eo},set(r,o,n){return o in t&&delete to,eo=n,!0},deleteProperty(r,o){let n=!1;return o in t&&(delete to,n=!0),o in e&&(delete eo,n=!0),n},ownKeys(r){let o=Reflect.ownKeys(e),n=Reflect.ownKeys(t),a=new Set(n);return...o.filter(s=>!a.has(s)),...n},defineProperty(r,o,n){return o in t&&delete to,Reflect.defineProperty(e,o,n),!0},getOwnPropertyDescriptor(r,o){return o in t?Reflect.getOwnPropertyDescriptor(t,o):Reflect.getOwnPropertyDescriptor(e,o)},has(r,o){return o in t||o in e}})}var Tt="debug","info","warning","error","fatal";function Re(e,t){let r=Tt.indexOf(e);if(r<0)throw new TypeError(Invalid log level: ${JSON.stringify(e)}.);let o=Tt.indexOf(t);if(o<0)throw new TypeError(Invalid log level: ${JSON.stringify(t)}.);return r-o}function X(e=[]){return Z.getLogger(e)}var ve=Symbol.for("logtape.rootLogger"),Z=class e{static getLogger(t=[]){let r=ve in z?zve??null:null;return r==null&&(r=new e(null,[]),zve=r),typeof t=="string"?r.getChild(t):t.length===0?r:r.getChild(t)}constructor(t,r){Object.defineProperty(this,"parent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"children",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"category",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sinks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"parentSinks",{enumerable:!0,configurable:!0,writable:!0,value:"inherit"}),Object.defineProperty(this,"filters",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lowestLevel",{enumerable:!0,configurable:!0,writable:!0,value:"debug"}),Object.defineProperty(this,"contextLocalStorage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.parent=t,this.children={},this.category=r,this.sinks=[],this.filters=[]}getChild(t){let r=typeof t=="string"?t:t0,o=this.childrenr,n=o instanceof e?o:o?.deref();return n==null&&(n=new e(this,...this.category,r),this.childrenr="WeakRef"in z?new WeakRef(n):n),typeof t=="string"||t.length===1?n:n.getChild(t.slice(1))}reset(){for(;this.sinks.length>0;)this.sinks.shift();for(this.parentSinks="inherit";this.filters.length>0;)this.filters.shift();this.lowestLevel="debug"}resetDescendants(){for(let t of Object.values(this.children)){let r=t instanceof e?t:t.deref();r?.resetDescendants()}this.reset()}with(t){return new Pe(this,{...t})}filter(t){for(let r of this.filters)if(!r(t))return!1;return this.filters.length<1?this.parent?.filter(t)??!0:!0}*getSinks(t){if(!(this.lowestLevel===null||Re(t,this.lowestLevel)<0)){if(this.parent!=null&&this.parentSinks==="inherit")for(let r of this.parent.getSinks(t))yield r;for(let r of this.sinks)yield r}}emit(t,r){if(!(this.lowestLevel===null||Re(t.level,this.lowestLevel)<0||!this.filter(t))){for(let o of this.getSinks(t.level))if(!r?.has(o))try{o(t)}catch(n){let a=new Set(r);a.add(o),uo.log("fatal","Failed to emit a log record to sink {sink}: {error}",{sink:o,error:n,record:t},a)}}}log(t,r,o,n){let a=e.getLogger().contextLocalStorage?.getStore()??{},s,c=typeof o=="function"?{category:this.category,level:t,timestamp:Date.now(),get message(){return Ot(r,this.properties)},rawMessage:r,get properties(){return s==null&&(s={...a,...o()}),s}}:{category:this.category,level:t,timestamp:Date.now(),message:Ot(r,{...a,...o}),rawMessage:r,properties:{...a,...o}};this.emit(c,n)}logLazily(t,r,o={}){let n=e.getLogger().contextLocalStorage?.getStore()??{},a,s;function c(){if((s==null||a==null)&&(s=r((i,...l)=>(a=i,Nt(i,l))),a==null))throw new TypeError("No log record was made.");returns,a}this.emit({category:this.category,level:t,get message(){return c()0},get rawMessage(){return c()1},timestamp:Date.now(),properties:{...n,...o}})}logTemplate(t,r,o,n={}){let a=e.getLogger().contextLocalStorage?.getStore()??{};this.emit({category:this.category,level:t,message:Nt(r,o),rawMessage:r,timestamp:Date.now(),properties:{...a,...n}})}debug(t,...r){typeof t=="string"?this.log("debug",t,r0??{}):typeof t=="function"?this.logLazily("debug",t):this.logTemplate("debug",t,r)}info(t,...r){typeof t=="string"?this.log("info",t,r0??{}):typeof t=="function"?this.logLazily("info",t):this.logTemplate("info",t,r)}warn(t,...r){typeof t=="string"?this.log("warning",t,r0??{}):typeof t=="function"?this.logLazily("warning",t):this.logTemplate("warning",t,r)}error(t,...r){typeof t=="string"?this.log("error",t,r0??{}):typeof t=="function"?this.logLazily("error",t):this.logTemplate("error",t,r)}fatal(t,...r){typeof t=="string"?this.log("fatal",t,r0??{}):typeof t=="function"?this.logLazily("fatal",t):this.logTemplate("fatal",t,r)}},Pe=class e{constructor(t,r){Object.defineProperty(this,"logger",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"properties",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.logger=t,this.properties=r}get category(){return this.logger.category}get parent(){return this.logger.parent}getChild(t){return this.logger.getChild(t).with(this.properties)}with(t){return new e(this.logger,{...this.properties,...t})}log(t,r,o,n){this.logger.log(t,r,typeof o=="function"?()=>({...this.properties,...o()}):{...this.properties,...o},n)}logLazily(t,r){this.logger.logLazily(t,r,this.properties)}logTemplate(t,r,o){this.logger.logTemplate(t,r,o,this.properties)}debug(t,...r){typeof t=="string"?this.log("debug",t,r0??{}):typeof t=="function"?this.logLazily("debug",t):this.logTemplate("debug",t,r)}info(t,...r){typeof t=="string"?this.log("info",t,r0??{}):typeof t=="function"?this.logLazily("info",t):this.logTemplate("info",t,r)}warn(t,...r){typeof t=="string"?this.log("warning",t,r0??{}):typeof t=="function"?this.logLazily("warning",t):this.logTemplate("warning",t,r)}error(t,...r){typeof t=="string"?this.log("error",t,r0??{}):typeof t=="function"?this.logLazily("error",t):this.logTemplate("error",t,r)}fatal(t,...r){typeof t=="string"?this.log("fatal",t,r0??{}):typeof t=="function"?this.logLazily("fatal",t):this.logTemplate("fatal",t,r)}},uo=Z.getLogger("logtape","meta");function Ot(e,t){let r=[],o="";for(let n=0;n<e.length;n++){let a=e.charAt(n),s=e.charAt(n+1);if(a==="{"&&s==="{")o=o+a,n++;else if(a==="}"&&s==="}")o=o+a,n++;else if(a==="{")r.push(o),o="";else if(a==="}"){let c;o.match(/^\s|\s$/)?c=o in t?to:to.trim():c=to,r.push(c),o=""}else o=o+a}return r.push(o),r}function Nt(e,t){let r=[];for(let o=0;o<e.length;o++)r.push(eo),o<t.length&&r.push(to);return r}var At=ft(kt()),ae=At.default;var bt={debug:"DBG",info:"INF",warning:"WRN",error:"ERR",fatal:"FTL"},Ut="Deno"in globalThis&&"inspect"in globalThis.Deno&&typeof globalThis.Deno.inspect=="function"?(e,t)=>globalThis.Deno.inspect(e,{strAbbreviateSize:1/0,iterableLimit:1/0,...t}):ae!=null&&"inspect"in ae&&typeof ae.inspect=="function"?(e,t)=>ae.inspect(e,{maxArrayLength:1/0,maxStringLength:1/0,...t}):e=>JSON.stringify(e);function Be(e={}){let t=e.timestamp==null||e.timestamp==="date-time-timezone"?s=>new Date(s).toISOString().replace("T"," ").replace("Z"," +00:00"):e.timestamp==="date-time-tz"?s=>new Date(s).toISOString().replace("T"," ").replace("Z"," +00"):e.timestamp==="date-time"?s=>new Date(s).toISOString().replace("T"," ").replace("Z",""):e.timestamp==="time-timezone"?s=>new Date(s).toISOString().replace(/.*T/,"").replace("Z"," +00:00"):e.timestamp==="time-tz"?s=>new Date(s).toISOString().replace(/.*T/,"").replace("Z"," +00"):e.timestamp==="time"?s=>new Date(s).toISOString().replace(/.*T/,"").replace("Z",""):e.timestamp==="date"?s=>new Date(s).toISOString().replace(/T.*/,""):e.timestamp==="rfc3339"?s=>new Date(s).toISOString():e.timestamp,r=e.category??"\xB7",o=e.value??Ut,n=e.level==null||e.level==="ABBR"?s=>bts:e.level==="abbr"?s=>bts.toLowerCase():e.level==="FULL"?s=>s.toUpperCase():e.level==="full"?s=>s:e.level==="L"?s=>s.charAt(0).toUpperCase():e.level==="l"?s=>s.charAt(0):e.level,a=e.format??(({timestamp:s,level:c,category:i,message:l})=>${s} [${c}] ${i}: ${l});return s=>{let c="";for(let u=0;u<s.message.length;u++)u%2===0?c+=s.messageu:c+=o(s.messageu);let i=t(s.timestamp),l=n(s.level),f=typeof r=="function"?r(s.category):s.category.join(r);return`${a({timestamp:i,level:l,category:f,message:c,record:s})} }}var Ft=Be(),We="\x1B[0m",De={black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m"},$e={bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",strikethrough:"\x1B[9m"},fo={debug:"blue",info:"green",warning:"yellow",error:"red",fatal:"magenta"};function Lt(e={}){let t=e.format,r=typeof e.timestampStyle>"u"?"dim":e.timestampStyle,o=e.timestampColor??null,n=${r==null?"":$er}${o==null?"":Deo},a=r==null&&o==null?"":We,s=typeof e.levelStyle>"u"?"bold":e.levelStyle,c=e.levelColors??fo,i=typeof e.categoryStyle>"u"?"dim":e.categoryStyle,l=e.categoryColor??null,f=${i==null?"":$ei}${l==null?"":Del},p=i==null&&l==null?"":We;return Be({timestamp:"date-time-tz",value(u){return Ut(u,{colors:!0})},...e,format({timestamp:u,level:m,category:R,message:w,record:S}){let C=c[S.level];return u=${n}${u}${a},m=${s==null?"":$es}${C==null?"":DeC}${m}${s==null&&C==null?"":We},t==null?${u} ${m} ${f}${R}:${p} ${w}:t({timestamp:u,level:m,category:${f}${R}${p},message:w,record:S})}})}var po=Lt();var vt=ft(Ct()),Pt=vt.default;function Q(){throw new Error("File sink is not available in the browser.")}var Vt={openSync:Q,writeSync:Q,flushSync:Q,closeSync:Q,statSync:Q,renameSync:Q};var H=Pt,ts=H==null?Vt:{openSync(e){return H.openSync(e,"a")},writeSync:H.writeSync,flushSync:H.fsyncSync,closeSync:H.closeSync,statSync:H.statSync,renameSync:H.renameSync};var Wt=" must not return ",ho="transformer",Eo="recoverer",go="defaultValue",ee=ho+Wt,W="called with ",te=go+" must not be ",re=Eo+Wt;var _o="Ok",Dt="Err",$t=W+Dt,yo=W+_o,xo="Carrying E in "+Dt+" instead of throwing it directly. See .cause",Ge="an instance of Error of the current realm.",ks="The thrown value is not "+Ge,As="The contained E should be "+Ge,wo="This .cause is not "+Ge;function _(e){return e.ok}function h(e){return{ok:!0,val:e,err:null}}function d(e){return!e.ok}function k(e){return{ok:!1,val:null,err:e}}function y(e){return Bt(e,$t)}function Bt(e,t){if(d(e))throw new TypeError(t);return e.val}function A(e){return e.val}function b(e){return e.err}async function x(e,t){if(d(e))return e;let r=A(e),o=await t(r);return h(o)}async function T(e,t){if(_(e))return e;let r=b(e),o=await t(r);return k(o)}var he="null",$a=ee+he,No=W+he,Ba=te+he,ja=re+he;var Ee="undefined",Ya=ee+Ee,So=W+Ee,Ka=te+Ee,Ja=re+Ee;var O=e=>e.ok?h(e):k({name:"HTTPError",message:${e.status} ${e.statusText},response:e});var qt=async(e,t)=>{let r=new Request(e,t);try{return h(await globalThis.fetch(r))}catch(o){if(o instanceof DOMException&&o.name==="AbortError")return k({name:"AbortError",message:o.message,request:r});if(o instanceof TypeError)return k({name:"NetworkError",message:o.message,request:r});throw o}};var E=e=>{let{fetch:t=qt,hostName:r="scrapbox.io",...o}=e;return{fetch:t,hostName:r,...o}};var N=e=>connect.sid=${e};function ge(e,t={}){if(e===null)return"null";if(Array.isArray(e))return Uo(e,t);switch(typeof e){case"string":return JSON.stringify(e);case"bigint":return${e}n;case"object":return e.constructor?.name!=="Object"?e.constructor?.name:Fo(e,t);case"function":return e.name||"(anonymous)"}return e?.toString()??"undefined"}function Uo(e,t){let{threshold:r=20}=t,o=e.map(s=>ge(s,t)),n=o.join(", ");if(n.length<=r)return${n};let a=o.join(, );return[
${zt(2,a)}
]}function Fo(e,t){let{threshold:r=20}=t,o=[...Object.keys(e),...Object.getOwnPropertySymbols(e)].map(s=>${s.toString()}: ${ge(es,t)}),n=o.join(", ");if(n.length<=r)return{${n}};let a=o.join(, );return{
${zt(2,a)}
}}function zt(e,t){let r=" ".repeat(e);return t.split(
).map(o=>${r}${o}).join(
)}function _e(e,t,...r){let o;return Object.defineProperties(e,{name:{get:()=>o||(o=${t}(${r.map(n=>ge(n)).join(", ")}),o)}})}function Ht(e){return Array.isArray(e)}function Yt(e){return _e(t=>Ht(t)&&t.every(r=>e(r)),"isArrayOf",e)}function qe(e){let t=new Set(e);return _e(r=>t.has(r),"isLiteralOneOf",e)}function ze(e){return e!=null&&!Array.isArray(e)&&typeof e=="object"}function ye(e){return typeof e=="string"}var U=async(e,t)=>{let r=e.response.clone(),o=qe(t);try{let n=await r.json();if(!ze(n))return;if(r.status===422){if(!ye(n.message))return;for(let a of["NoQueryError","InvalidURLError"])if(t.includes(a))return{name:a,message:n.message}}return!o(n.name)||!ye(n.message)?void 0:n.name==="NotLoggedInError"?!ze(n.detals)||!ye(n.detals.project)||!Yt(Lo)(n.detals.loginStrategies)?void 0:{name:n.name,message:n.message,details:{project:n.detals.project,loginStrategies:n.detals.loginStrategies}}:{name:n.name,message:n.message}}catch(n){if(n instanceof SyntaxError)return;throw n}},Lo=qe(["google","github","microsoft","gyazo","email","saml","easy-trial"]);var xe="null or undefined",oe=ee+xe,Io=W+xe,He=te+xe,we=re+xe;var Jt=(e,t)=>{let{sid:r,hostName:o}=E(t??{});return new Request(https://${o}/api/projects/${e},r?{headers:{Cookie:N(r)}}:void 0)},Zt=async e=>x(await T(O(e),async t=>await U(t,["NotFoundError","NotLoggedInError","NotMemberError"])??t),t=>t.json()),er=(()=>{let e=async(t,r)=>{let{fetch:o}=E(r??{}),n=Jt(t,r),a=await o(n);return d(a)?a:Zt(y(a))};return e.toRequest=Jt,e.fromResponse=Zt,e})(),Xt=(e,t)=>{let{sid:r,hostName:o}=E(t??{}),n=new URLSearchParams(e.map(a=>["ids",a]));return new Request(https://${o}/api/projects?${n},r?{headers:{Cookie:N(r)}}:void 0)},Qt=async e=>x(await T(O(e),async t=>await U(t,["NotLoggedInError"])??t),t=>t.json()),tr=(()=>{let e=async(t,r)=>{let{fetch:o}=E(r??{}),n=await o(Xt(t,r));return d(n)?n:Qt(y(n))};return e.toRequest=Xt,e.fromResponse=Qt,e})();var rr=(e,t)=>{let{sid:r,hostName:o,followingId:n}=E(t??{});return new Request(https://${o}/api/pages/${e}/search/titles${n??followingId=${n}:""},r?{headers:{Cookie:N(r)}}:void 0)},or=async e=>x(await T(O(e),async t=>t.response.status===422?{name:"InvalidFollowingIdError",message:await t.response.text()}:await U(t,["NotFoundError","NotLoggedInError"])??t),t=>t.json().then(r=>({pages:r,followingId:t.headers.get("X-following-id")??""}))),vo=(()=>{let e=async(t,r)=>{let o=await E(r??{}).fetch(rr(t,r));return d(o)?o:or(y(o))};return e.toRequest=rr,e.fromResponse=or,e})();async function*nr(e,t){let r;do{let o=await vo(e,{followingId:r,...t});if(d(o)){yield o;return}let n=y(o);yield h(n.pages),r=n.followingId}while(r)}var Po=new TextEncoder().encode("0123456789abcdef"),sr=new Uint8Array(128).fill(16);Po.forEach((e,t)=>sr[e]=t);new TextEncoder().encode("ABCDEF").forEach((e,t)=>sr[e]=t+10);var Vo=new TextEncoder().encode("0123456789abcdef"),ar=new Uint8Array(128).fill(16);Vo.forEach((e,t)=>ar[e]=t);new TextEncoder().encode("ABCDEF").forEach((e,t)=>ar[e]=t+10);var ir=" must not return ",Wo="transformer",Do="recoverer",$o="defaultValue",Oe=Wo+ir,Y="called with ",Ne=$o+" must not be ",Se=Do+ir;var Bo="Ok",cr="Err",lr=Y+cr,ur=Y+Bo,jo="Carrying E in "+cr+" instead of throwing it directly. See .cause",Ye="an instance of Error of the current realm.",xm="The thrown value is not "+Ye,wm="The contained E should be "+Ye,Go="This .cause is not "+Ye;function g(e){return e.ok}function v(e){return{ok:!0,val:e,err:null}}function F(e){return!e.ok}function j(e){return{ok:!1,val:null,err:e}}function K(e){return fr(e,lr)}function ne(e){return pr(e,ur)}function fr(e,t){if(F(e))throw new TypeError(t);return e.val}function pr(e,t){if(g(e))throw new TypeError(t);return e.err}var ke="null",bd=Oe+ke,Ho=Y+ke,Ud=Ne+ke,Fd=Se+ke;var Ae="undefined",vd=Oe+Ae,Yo=Y+Ae,Pd=Ne+Ae,Vd=Se+Ae;async function*dr(e){let t=[],r=[],o=new Map,n=[];for(let a of e)a.isValid&&(a.id?a.isMember||t.push(a.id):r.push(a.name),n.push(a.name),o.set(a.name,a.checked));for(let a=0;a<t.length;a+=50){let s=t.slice(a,a+50);if(s.length===0)break;s.length===1&&s.push(s[0]);let c=await tr(s);if(F(c)){r=n;break}for(let i of K(c).projects)o.has(i.name)&&(yield v({...i,checked:o.get(i.name)??0}))}for(let a of r){let s=await er(a);yield g(s)?v({...K(s),checked:o.get(a)??0}):j({...ne(s),project:a})}}var Ze=(e,t)=>t.some(r=>e instanceof r),Rr,hr;function Jo(){return Rr||(Rr=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Zo(){return hr||(hr=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var Xe=new WeakMap,Ke=new WeakMap,be=new WeakMap;function Xo(e){let t=new Promise((r,o)=>{let n=()=>{e.removeEventListener("success",a),e.removeEventListener("error",s)},a=()=>{r(G(e.result)),n()},s=()=>{o(e.error),n()};e.addEventListener("success",a),e.addEventListener("error",s)});return be.set(t,e),t}function Qo(e){if(Xe.has(e))return;let t=new Promise((r,o)=>{let n=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",s),e.removeEventListener("abort",s)},a=()=>{r(),n()},s=()=>{o(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",a),e.addEventListener("error",s),e.addEventListener("abort",s)});Xe.set(e,t)}var Qe={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return Xe.get(e);if(t==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return G(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&(t==="done"||t==="store")?!0:t in e}};function yr(e){Qe=e(Qe)}function en(e){return Zo().includes(e)?function(...t){return e.apply(et(this),t),G(this.request)}:function(...t){return G(e.apply(et(this),t))}}function tn(e){return typeof e=="function"?en(e):(e instanceof IDBTransaction&&Qo(e),Ze(e,Jo())?new Proxy(e,Qe):e)}function G(e){if(e instanceof IDBRequest)return Xo(e);if(Ke.has(e))return Ke.get(e);let t=tn(e);return t!==e&&(Ke.set(e,t),be.set(t,e)),t}var et=e=>be.get(e);function xr(e,t,{blocked:r,upgrade:o,blocking:n,terminated:a}={}){let s=indexedDB.open(e,t),c=G(s);return o&&s.addEventListener("upgradeneeded",i=>{o(G(s.result),i.oldVersion,i.newVersion,G(s.transaction),i)}),r&&s.addEventListener("blocked",i=>r(i.oldVersion,i.newVersion,i)),c.then(i=>{a&&i.addEventListener("close",()=>a()),n&&i.addEventListener("versionchange",l=>n(l.oldVersion,l.newVersion,l))}).catch(()=>{}),c}function wr(e,{blocked:t}={}){let r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",o=>t(o.oldVersion,o)),G(r).then(()=>{})}var rn=["get","getKey","getAll","getAllKeys","count"],on=["put","add","delete","clear"],Je=new Map;function Er(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(Je.get(t))return Je.get(t);let r=t.replace(/FromIndex$/,""),o=t!==r,n=on.includes(r);if(!(r in(o?IDBIndex:IDBObjectStore).prototype)||!(n||rn.includes(r)))return;let a=async function(s,...c){let i=this.transaction(s,n?"readwrite":"readonly"),l=i.store;return o&&(l=l.index(c.shift())),(await Promise.all([l[r](...c),n&&i.done]))[0]};return Je.set(t,a),a}yr(e=>({...e,get:(t,r,o)=>Er(t,r)||e.get(t,r,o),has:(t,r)=>!!Er(t,r)||e.has(t,r)}));var nn=["continue","continuePrimaryKey","advance"],gr={},tt=new WeakMap,Tr=new WeakMap,sn={get(e,t){if(!nn.includes(t))return e[t];let r=gr[t];return r||(r=gr[t]=function(...o){tt.set(this,Tr.get(this)[t](...o))}),r}};async function*an(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;t=t;let r=new Proxy(t,sn);for(Tr.set(r,t),be.set(r,et(t));t;)yield r,t=await(tt.get(r)||t.continue()),tt.delete(r)}function _r(e,t){return t===Symbol.asyncIterator&&Ze(e,[IDBIndex,IDBObjectStore,IDBCursor])||t==="iterate"&&Ze(e,[IDBIndex,IDBObjectStore])}yr(e=>({...e,get(t,r,o){return _r(t,r)?an:e.get(t,r,o)},has(t,r){return _r(t,r)||e.has(t,r)}}));var Or,rt=async()=>{let e=X(["@takker/cosense-storage","open"]);return Or??=await xr("scrapbox-storage",4,{upgrade(t,r,o){e.infostart updating DB: ${r} -> ${o};let n=Date.now();for(let c of t.objectStoreNames)t.deleteObjectStore(c);t.createObjectStore("titles",{keyPath:"id"}).createIndex("project","project");let s=t.createObjectStore("projects",{keyPath:"id"});s.createIndex("checked","checked"),s.createIndex("name","name"),e.infofinish updating DB: ${Date.now()-n}ms},blocked(t,r){let o=The database "@takker/cosense-storage"(v${r}) is blocked because the older one (v${t}) is opened in other tabs. Please close the other tabs and reload this page.;e.error(o),alert(o)},blocking(t,r){let o=The database "@takker/cosense-storage"(v${t}) is blocking the newer one (v${r}) opened.
Please close this page.;e.error(o),alert(o)}}),Or};var Nr=(e,t)=>(ot||(ot=new BroadcastChannel(kr),ot.addEventListener("message",r=>Sr(r.data))),Ue.set(t,new Set(e).union(Ue.get(t)??new Set)),()=>Ue.delete(t)),nt=(e,t)=>{if((t.added?.size??0)+(t.updated?.size??0)+(t.deleted?.size??0)===0)return;let r={type:"links:changed",project:e,diff:t};Sr(r);let o=new BroadcastChannel(kr);o.postMessage(r),o.close()},Sr=e=>{for(let[t,r]of Ue)r.has(e.project)&&t(e)},kr="scrapbox-storage-notify",ot,Ue=new Map;var cn=Math.pow(10,8)*24*60*60*1e3,Lh=-cn;var ln=3600;var Ar=ln*24,Ih=Ar*7,un=Ar*365.2425,fn=un/12,Mh=fn*3,st=Symbol.for("constructDateFrom");function br(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&st in e?e[st](t):e instanceof Date?new e.constructor(t):new Date(t)}function Ur(e,t){return br(t||e,e)}function at(e){return Math.trunc(+Ur(e)/1e3)}var Fr=async(e,t)=>{let r=await rt(),o=X(["@takker/cosense-storage","check"]),n=new Map;try{{o.debugcheck updates of links...;let s=new Set,c=r.transaction("projects","readwrite"),i=at(new Date),l=i-600;for await(let u of c.store.index("checked").iterate(IDBKeyRange.lowerBound(l,!0))){let m=u.value;if(m.isValid===!1){s.add(m.id);continue}s.add(m.name);let R=m.checked;if(R+t>i||m?.updating&&R>l)continue;let w=structuredClone(m);w.updating=!0,n.set(m.id,w),u.update(w)}let f=[],p=c.store.index("name");for(let u of e)s.has(u)||f.push(p.get(u).then(m=>{m?.updating&&(m?.checked??0)>l||n.set(u,m??pn(u))}));if(await Promise.all(f),await c.done,n.size===0){o.debugchecked. No project needs upgrade.;return}o.debugchecked. ${n.size} projects maybe need upgrade.}let a=at(new Date);for await(let s of dr(n.values())){if(F(s)){let{project:R,name:w}=ne(s);switch(w){default:continue;case"NotFoundError":o.warn("${R}" is not found.);break;case"NotMemberError":o.warn(You are not a member of "${R}".);break;case"NotLoggedInError":o.warn(You are not a member of "${R}" or You are not logged in yet.);break}n.set(R,{id:R,name:R,checked:a,updating:!1,isValid:!1,reason:w});continue}let{checked:c,...i}=K(s);if(i.updated<c){o.debugno updates in "${i.name}",n.set(i.name,{...i,isValid:!0,checked:a,updating:!1});continue}o.debugstart downloading and storing links of "${i.name}";let l=new Set(await r.getAllKeysFromIndex("titles","project",i.name)),f=0,p=0;for await(let R of nr(i.name)){if(F(R)){let{name:P,message:V}=ne(R);o.errorFailed to get links of "${i.name}" with ${P}: ${V};break}let w=K(R),S={},C=r.transaction("titles","readwrite");await Promise.all(w.map(async P=>{let V={...P,project:i.name},ce=await C.store.get(P.id);if(!ce)return S.added?.set?.(P.id,V)??(S.added=new Map([[P.id,V]])),C.store.add(V);if(l.delete(P.id),!!mn(V,ce))return S.updated?.set?.(P.id,[ce,V])??(S.updated=new Map([[P.id,[ce,V]]])),C.store.put(V)})),await C.done,f+=S.added?.size??0,p+=S.updated?.size??0,o.debugUpdating "/${i.name}": +${f} pages, ~${p} pages,nt(i.name,S)}let u=r.transaction("titles","readwrite"),m=new Map((await Promise.all([...l].map(async R=>{let w=await u.store.get(R);if(!w)return[];let S=[[R,w]];return await u.store.delete(R),S}))).flat());await u.done,o.debugFinish downloading and storing links of "${i.name}",o.debugUpdate "/${i.name}": +${f} pages, ~${p} pages, -${m.size} pages,n.set(i.name,{...i,isValid:!0,checked:a,updating:!1}),nt(i.name,{deleted:m})}}finally{let a=r.transaction("projects","readwrite");await Promise.all([...n].map(([,s])=>(s.updating=!1,a.store.put({...s})))),await a.done}},Lr=async e=>{let t=[...new Set(e)];if(t.length===0)return[];let r=Date.now(),n=(await rt()).transaction("titles","readonly"),a=n.store.index("project"),s=(await Promise.all(t.map(i=>a.getAll(i)))).flat();return await n.done,X(["@takker/cosense-storage","load"]).debugRead ${s.length} links from ${t.length} projects in ${Date.now()-r}ms,s},pn=e=>({name:e,displayName:e,id:"",isValid:!0,publicVisible:!0,isMember:!0,loginStrategies:[],theme:"default",gyazoTeamsName:null,translation:!0,infobox:!0,checked:0,updated:0,created:0,updating:!0}),mn=(e,t)=>e.updated>t.updated||e.links.sort().join()!==t.links.sort().join();globalThis.Deno||wr("userscript-links").catch(e=>console.error(e));var ie=e=>e.replaceAll(" ","_").toLowerCase(),Ir=e=>e.replaceAll("_"," ");var Mr=e=>{let t=new Map,r=[...e].reverse();{let s=1;for(let c of r){t.set(c,(t.get(c)??0)|s);let i=c.toLowerCase();t.set(i,(t.get(i)??0)|s);let l=c.toUpperCase();t.set(l,(t.get(l)??0)|s),s<<=1}}let o=r.length,n=~(-1<<o),a=1<<o-1;return s=>{let c=0,i=n,l=[...s].reverse(),f=[],p=l.length;f[p]=o;for(let u of l){let m=t.get(u)??0,R=m|c,w=(m&i)+i^i|m,S=c|~(w|i),C=i&w;f[p-1]=f[p]+((S&a)!==0?1:(C&a)!==0?-1:0),i=C<<1|~(R|S<<1),c=S<<1&R,p--}return f}};var dn=[0,0,0,1,1,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6],Cr=e=>{let t=Ir(e.trim()).split(/\s+/).sort((r,o)=>o.length-r.length);if(!(t.length===0||t.every(r=>r==="")))return r=>t.reduce((o,n)=>Rn(n,o),r)},Rn=(e,t)=>{let r=[...e].length,o=dn[r],n=Mr(e);return t.flatMap(({title:a,dist:s,matches:c,...i})=>{c??=[],s??=0;let l=n(a).flatMap((p,u)=>p<=o&&c.every(([m,R])=>u+r<=m||R<u)?[[u,p]]:[]);if(l.length===0)return[];let f=l.reduce((p,[u,m])=>(p.dist<=m||(p.dist=m,p.start=u),p),{dist:r,start:0});return c.push([f.start,f.start+r-1]),[{title:a,dist:f.dist+s,matches:c,...i}]})};var Pr=e=>{let t=new Map;for(let r of e)it(t,r);return t},Vr=(e,t)=>{let r=new Map(e);if(t.added)for(let[,o]of t.added)it(r,o);if(t.updated)for(let[,[o,n]]of t.updated)vr(r,o),it(r,n);if(t.deleted)for(let[,o]of t.deleted)vr(r,o);return r},it=(e,t)=>{let r=ie(t.title),o=e.get(r);if((o?.updated??0)>t.updated)return;let n=o?.metadata??new Map;n.set(t.project,{image:t.image}),e.set(r,{title:t.title,titleLc:r,updated:t.updated,linked:o?.linked??0,metadata:n});for(let a of t.links){let s=ie(a),c=e.get(s),i=c?.metadata??new Map;i.set(t.project,i.get(t.project)??{image:t.image}),e.set(s,{title:c?.title??a,titleLc:s,updated:c?.updated??0,linked:(c?.linked??0)+1,metadata:i})}},vr=(e,t)=>{let r=ie(t.title),o=e.get(r);if(!o||(o.updated??0)>t.updated)return;let n=o.metadata;n.delete(t.project),n.size<=0?e.delete(r):e.set(r,{title:o.title,titleLc:r,updated:t.updated,linked:o.linked,metadata:n});for(let a of t.links){let s=ie(a),c=e.get(s);if(!c)continue;let i=c.metadata;i.delete(t.project),i.size<=0?e.delete(s):e.set(s,{title:c.title,titleLc:s,updated:t.updated,linked:c.linked-1,metadata:i})}};var ct=wt("scrapbox-select-suggestion:search.worker.ts"),Fe=[],Wr=[],Dr=()=>{},$r={async load(e){if(ct.debug("start loading source"),!pt(Wr,e)){Wr=[...e],Dr();let r=await Lr(e),o=Pr(r);Fe=[...o.values()],await Fr(e,600),Dr=Nr(e,({diff:n})=>{o=Vr(o,n),Fe=[...o.values()]})}return Fe.length},async search(e,t,r){if(ct.debug("start searching: ",e),!e.trim())return;let o=Cr(e);if(!o){r([],1);return}let n=[...Fe],a=Math.ceil(n.length/t);for(let s=0;s<a;s++){let c=(s+1)/a,i=[...o(n.values().drop(s*t).take(t))];if(ct.debug(${s}/${a} search result:`,i),await r(i,c))return;await dt(0)}}},hn=e=>typeof e=="object"&&!!e&&"SharedWorkerGlobalScope"in e;hn(self)?self.addEventListener("connect",e=>se($r,e.ports0)):se($r); /**
* @license
* Copyright 2019 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/