SharedUserScripts-min
全プロジェクトで使うUserScript
code:script.js
var Ft=!1;scrapbox.addListener("lines:changed",()=>Ft=!1);scrapbox.addListener("layout:changed",()=>Ft=!1);var Kt=(e,t)=>{if(!(e instanceof HTMLTextAreaElement))throw new TypeError("${t}" must be HTMLTextAreaElement but actual is "${e}")};var ve=()=>{let e=document.getElementById("text-input");if(!!e)return Kt(e,"textarea#text-input"),e};var ut=e=>new Promise(t=>setTimeout(()=>t(),e));var qt=async e=>{let t=ve();if(!t)throw Error("#text-input is not ditected.");t.focus(),t.value=e;let r=new InputEvent("input",{bubbles:!0});t.dispatchEvent(r),await ut(1)};var Gt=e=>{if(e===0)return;let t={};return e&1&&(t.capture=!0),e&2&&(t.once=!0),e&4&&(t.passive=!0),t};var wo=new Map,Jl=new Map;scrapbox.on("layout:changed",()=>{let e=ve();if(!!e)for(lett,rof wo)for(letn,oof r)for(let s of o)e.addEventListener(t,n,Gt(s))});var Eo=e=>typeof e=="object"&&e!==null,vo=e=>Eo(e)?(e.name===void 0||typeof e.name=="string")&&typeof e.message=="string":!1,Wt=e=>{try{let t=typeof e=="string"?JSON.parse(e):e;return vo(t)?t:!1}catch(t){if(t instanceof SyntaxError)return!1;throw t}};var Yt=!1;scrapbox.addListener("lines:changed",()=>Yt=!1);scrapbox.addListener("layout:changed",()=>Yt=!1);var Vt=(e,t)=>{if(!(e instanceof HTMLDivElement))throw new TypeError("${t}" must be HTMLDivElememt but actual is "${e}")};var Qt=(e,t)=>{if(!(e instanceof HTMLTextAreaElement))throw new TypeError("${t}" must be HTMLTextAreaElement but actual is "${e}")};var Me=()=>{let e=document.getElementById("text-input");if(!!e)return Qt(e,"textarea#text-input"),e};var Xt=()=>Lo(document.getElementsByClassName("status-bar")?.0,"div.status-bar"),Lo=(e,t)=>{if(!!e)return Vt(e,t),e};var Zt=()=>{let e=Xt();if(!e)throw new Error("div.status-bar can't be found");let t=document.createElement("div");return e.append(t),{render:(...r)=>{t.textContent="";let n=er(...r);n&&t.append(n)},dispose:()=>t.remove()}},er=(...e)=>{let t=e.flatMap(n=>{switch(n.type){case"spinner":returnSo();case"check-circle":return_o();case"exclamation-triangle":returnOo();case"text":returnDe(n.text);case"group":{let o=er(...n.items);return o?o:[]}}});if(t.length===0)return;if(t.length===1)return t0;let r=document.createElement("span");return r.classList.add("item-group"),r.append(...t),r},De=e=>{let t=document.createElement("span");return t.classList.add("item"),t.append(e),t},So=()=>{let e=document.createElement("i");return e.classList.add("fa","fa-spinner"),De(e)},_o=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-check-circle"),De(e)},Oo=()=>{let e=document.createElement("i");return e.classList.add("fas","fa-exclamation-triangle"),De(e)};var we=e=>...e.map((t,r)=>t===" "?"_":!Ao.includes(t)||r===e.length-1&&Io.includes(t)?encodeURIComponent(t):t).join(""),Ao='@$&+=:;",',Io=':;",';var tr=e=>{if(e===0)return;let t={};return e&1&&(t.capture=!0),e&2&&(t.once=!0),e&4&&(t.passive=!0),t};var Uo=new Map,Zp=new Map;scrapbox.on("layout:changed",()=>{let e=Me();if(!!e)for(lett,rof Uo)for(letn,oof r)for(let s of o)e.addEventListener(t,n,tr(s))});var fe=e=>typeof e=="string";var dt=(e,...t)=>{let r=e;for(let n of t){let o=r instanceof Promise?r.then(s=>fe(s)?s:n(s)):n(r);if(fe(o))return o;r=o instanceof URL?new URL(o):o.then(s=>fe(s)?s:new URL(s))}return r instanceof Promise?r.then(n=>${n}):${e}};var Pe=e=>e.ok?void 0:{name:"HTTPError",message:${e.status} ${e.statusText},response:e};var rr=e=>{if(!window.GM_fetch)return;let t=window.GM_fetch;return(async()=>{let r=await t(https://cdn.syndication.twimg.com/tweet-result?id=${e}&token=x),n=Pe(r);if(n)return{ok:!1,value:n};let o=await r.json();return{ok:!0,value:o}})()};var je=e=>{let{fetch:t=globalThis.fetch,...r}=e;return{fetch:t,...r}},nr=e=>typeof e=="object"&&e!==null;var Se=class extends Error{constructor(t){super(${t.status} ${t.statusText} when fetching ${t.path.toString()});this.name="UnexpectedResponseError";this.status=t.status,this.statusText=t.statusText,this.body=t.body,this.path=t.path,Error.captureStackTrace&&Error.captureStackTrace(this,Se)}};var Fe=async e=>{let t=await e.text();if(e.ok)return{ok:!0,value:t};if(e.status===400)return{ok:!1,value:{name:"BadRequestError",message:t}};try{let r=JSON.parse(t);if(!nr(r)||typeof r.message!="string")throw new Se({status:e.status,statusText:e.statusText,body:t,path:new URL(e.url)});switch(e.status){case 401:return{ok:!1,value:{name:"UnauthorizedError",message:r.message}};case 403:return{ok:!1,value:{name:"NotPrivilegeError",message:r.message}};case 404:return{ok:!1,value:{name:"NotFoundError",message:r.message}};case 422:return{ok:!1,value:{name:"InvalidParameterError",message:r.message}};case 429:return{ok:!1,value:{name:"RateLimitError",message:r.message}};default:throw new Se({status:e.status,statusText:e.statusText,body:t,path:new URL(e.url)})}}catch(r){throw r instanceof SyntaxError?new Se({status:e.status,statusText:e.statusText,body:t,path:new URL(e.url)}):r}};var or=async(e,t)=>{let{title:r,description:n,metadataIsPublic:o,collectionId:s,refererURL:a,accessToken:i,created:l,app:u,fetch:p}=je(t),d=new FormData;d.append("imagedata",e),d.append("access_token",i),a&&d.append("referer_url",a.toString()),u!==void 0&&d.append("app",u),r!==void 0&&d.append("title",r),n!=null&&d.append("desc",n),s&&d.append("collection_id",s),o&&d.append("metadata_is_public","true"),l!==void 0&&d.append("created_at",${l});let w=await p("https://upload.gyazo.com/api/upload",{method:"POST",mode:"cors",credentials:"omit",body:d}),E=await Fe(w);return E.ok?{ok:!0,value:JSON.parse(E.value)}:E};var B=e=>{let{fetch:t=globalThis.fetch,hostName:r="scrapbox.io",...n}=e;return{fetch:t,hostName:r,...n}};var ce=class extends Error{constructor(t){super(${t.status} ${t.statusText} when fetching ${t.url});this.response=t;this.name="UnexpectedResponseError";Error.captureStackTrace&&Error.captureStackTrace(this,ce)}},G=async e=>{let t=e.clone(),r=await t.text(),n=Wt(r);if(!n)throw new ce(t);return{ok:!1,value:n}};var sr=async e=>{let{sid:t,hostName:r,fetch:n}=B(e??{}),o=new Request(https://${r}/api/users/me,t?{headers:{Cookie:K(t)}}:void 0),s=await n(o);if(!s.ok)throw new ce(s);return await s.json()};var K=e=>connect.sid=${e},ge=async e=>globalThis._csrf?globalThis._csrf:(await sr(e)).csrfToken;var ir=(e,t,r)=>{let{sid:n,hostName:o,followRename:s,projects:a}=B(r??{}),i=new URLSearchParams;i.append("followRename",${s??!0});for(let u of a??[])i.append("projects",u);let l=https://${o}/api/pages/${e}/${we(t)}?${i.toString()};return new Request(l,n?{headers:{Cookie:K(n)}}:void 0)},ar=async e=>{if(!e.ok)return e.status===414?{ok:!1,value:{name:"TooLongURIError",message:"project ids may be too much."}}:G(e);let t=await e.json();return{ok:!0,value:t}},mt=async(e,t,r)=>{let{fetch:n}=B(r??{}),o=ir(e,t,r),s=await n(o);return await ar(s)};mt.toRequest=ir;mt.fromResponse=ar;var lr=(e,t)=>{let{sid:r,hostName:n,sort:o,limit:s,skip:a}=B(t??{}),i=new URLSearchParams;o!==void 0&&i.append("sort",o),s!==void 0&&i.append("limit",${s}),a!==void 0&&i.append("skip",${a});let l=https://${n}/api/pages/${e}?${i.toString()};return new Request(l,r?{headers:{Cookie:K(r)}}:void 0)},cr=async e=>{if(!e.ok)return G(e);let t=await e.json();return{ok:!0,value:t}},pr=async(e,t)=>{let{fetch:r}=B(t??{}),n=await r(lr(e,t));return await cr(n)};pr.toRequest=lr;pr.fromResponse=cr;var ur=(e,t,r,n)=>{let{sid:o,hostName:s}=B(n??{}),a=https://${s}/api/table/${e}/${we(t)}/${encodeURIComponent(r)}.csv;return new Request(a,o?{headers:{Cookie:K(o)}}:void 0)},dr=async e=>e.ok?{ok:!0,value:await e.text()}:e.status===404?{ok:!1,value:{name:"NotFoundError",message:"Table not found."}}:G(e),mr=async(e,t,r,n)=>{let{fetch:o}=B(n??{}),s=ur(e,t,r,n),a=await o(s);return await dr(a)};mr.toRequest=ur;mr.fromResponse=dr;var fr=(e,t)=>{let{sid:r,hostName:n}=B(t??{});return new Request(https://${n}/api/projects/${e},r?{headers:{Cookie:K(r)}}:void 0)},gr=async e=>{if(!e.ok)return G(e);let t=await e.json();return{ok:!0,value:t}},Ke=async(e,t)=>{let{fetch:r}=B(t??{}),n=fr(e,t),o=await r(n);return gr(o)};Ke.toRequest=fr;Ke.fromResponse=gr;var hr=(e,t)=>{let{sid:r,hostName:n}=B(t??{}),o=new URLSearchParams;for(let s of e)o.append("ids",s);return new Request(https://${n}/api/projects?${o.toString()},r?{headers:{Cookie:K(r)}}:void 0)},xr=async e=>{if(!e.ok)return G(e);let t=await e.json();return{ok:!0,value:t}},br=async(e,t)=>{let{fetch:r}=B(t??{}),n=await r(hr(e,t));return xr(n)};br.toRequest=hr;br.fromResponse=xr;var yr=async(e,t)=>{let{sid:r,hostName:n,fetch:o,csrf:s}=B(t??{}),a=new Request(https://${n}/api/embed-text/url?url=${encodeURIComponent(e.toString())},{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8","X-CSRF-TOKEN":s??await ge(t),...r?{Cookie:K(r)}:{}},body:JSON.stringify({timeout:3e3})}),i=await o(a);if(!i.ok)return i.status===422?{ok:!1,value:{name:"InvalidURLError",message:(await i.json()).message}}:G(i);let{title:l}=await i.json();return{ok:!0,value:l}};var wr=async(e,t)=>{let{sid:r,hostName:n,fetch:o,csrf:s}=B(t??{}),a=new Request(https://${n}/api/embed-text/twitter?url=${encodeURIComponent(e.toString())},{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8","X-CSRF-TOKEN":s??await ge(t),...r?{Cookie:K(r)}:{}},body:JSON.stringify({timeout:3e3})}),i=await o(a);if(!i.ok)return i.status===422?{ok:!1,value:{name:"InvalidURLError",message:(await i.json()).message}}:G(i);let l=await i.json();return{ok:!0,value:l}};var Er=async e=>{let{sid:t,hostName:r,gyazoTeamsName:n}=B(e??{}),o=new Request(https://${r}/api/login/gyazo/oauth-upload/token${n??gyazoTeamsName=${n}:""},t?{headers:{Cookie:K(t)}}:void 0),s=await fetch(o);if(!s.ok)return G(s);let{token:a}=await s.json();return{ok:!0,value:a}};var vr=(e,t,r,n)=>{let{sid:o,hostName:s}=B(n??{}),a=https://${s}/api/code/${e}/${we(t)}/${we(r)};return new Request(a,o?{headers:{Cookie:K(o)}}:void 0)},Lr=async e=>e.ok?{ok:!0,value:await e.text()}:e.status===404&&e.headers.get("Content-Type")?.includes?.("text/plain")?{ok:!1,value:{name:"NotFoundError",message:"Code block is not found"}}:G(e),Tr=async(e,t,r,n)=>{let{fetch:o}=B(n??{}),s=vr(e,t,r,n),a=await o(s);return await Lr(a)};Tr.toRequest=vr;Tr.fromResponse=Lr;var Rr=new TextEncoder().encode("0123456789abcdef");function kr(e){let t=new Uint8Array(e.length*2);for(let r=0;r<t.length;r++){let n=er;tr*2=Rrn>>4,tr*2+1=Rrn&15}return t}var Cr="md5: data is invalid type",Le=64,ze=class{#e;#t;#r;#n;#o;#i;#s;#a;constructor(){this.#e=1732584193,this.#t=4023233417,this.#r=2562383102,this.#n=271733878,this.#o=new Uint8Array(Le),this.#i=0,this.#s=0,this.#a=0}#c(t){let r=this.#s;r+=t,r>4294967295&&(this.#a+=1),this.#s=r>>>0}#l(t){let r=this.#e,n=this.#t,o=this.#r,s=this.#n,a=R=>tR|tR+1<<8|tR+2<<16|tR+3<<24,i=(R,P)=>R<<P|R>>>32-P,l=a(0),u=a(4),p=a(8),d=a(12),w=a(16),E=a(20),$=a(24),j=a(28),O=a(32),F=a(36),z=a(40),v=a(44),x=a(48),g=a(52),m=a(56),T=a(60);r=n+i(((o^s)&n^s)+r+l+3614090360,7),s=r+i(((n^o)&r^o)+s+u+3905402710,12),o=s+i(((r^n)&s^n)+o+p+606105819,17),n=o+i(((s^r)&o^r)+n+d+3250441966,22),r=n+i(((o^s)&n^s)+r+w+4118548399,7),s=r+i(((n^o)&r^o)+s+E+1200080426,12),o=s+i(((r^n)&s^n)+o+$+2821735955,17),n=o+i(((s^r)&o^r)+n+j+4249261313,22),r=n+i(((o^s)&n^s)+r+O+1770035416,7),s=r+i(((n^o)&r^o)+s+F+2336552879,12),o=s+i(((r^n)&s^n)+o+z+4294925233,17),n=o+i(((s^r)&o^r)+n+v+2304563134,22),r=n+i(((o^s)&n^s)+r+x+1804603682,7),s=r+i(((n^o)&r^o)+s+g+4254626195,12),o=s+i(((r^n)&s^n)+o+m+2792965006,17),n=o+i(((s^r)&o^r)+n+T+1236535329,22),r=n+i(((n^o)&s^o)+r+u+4129170786,5),s=r+i(((r^n)&o^n)+s+$+3225465664,9),o=s+i(((s^r)&n^r)+o+v+643717713,14),n=o+i(((o^s)&r^s)+n+l+3921069994,20),r=n+i(((n^o)&s^o)+r+E+3593408605,5),s=r+i(((r^n)&o^n)+s+z+38016083,9),o=s+i(((s^r)&n^r)+o+T+3634488961,14),n=o+i(((o^s)&r^s)+n+w+3889429448,20),r=n+i(((n^o)&s^o)+r+F+568446438,5),s=r+i(((r^n)&o^n)+s+m+3275163606,9),o=s+i(((s^r)&n^r)+o+d+4107603335,14),n=o+i(((o^s)&r^s)+n+O+1163531501,20),r=n+i(((n^o)&s^o)+r+g+2850285829,5),s=r+i(((r^n)&o^n)+s+p+4243563512,9),o=s+i(((s^r)&n^r)+o+j+1735328473,14),n=o+i(((o^s)&r^s)+n+x+2368359562,20),r=n+i((n^o^s)+r+E+4294588738,4),s=r+i((r^n^o)+s+O+2272392833,11),o=s+i((s^r^n)+o+v+1839030562,16),n=o+i((o^s^r)+n+m+4259657740,23),r=n+i((n^o^s)+r+u+2763975236,4),s=r+i((r^n^o)+s+w+1272893353,11),o=s+i((s^r^n)+o+j+4139469664,16),n=o+i((o^s^r)+n+z+3200236656,23),r=n+i((n^o^s)+r+g+681279174,4),s=r+i((r^n^o)+s+l+3936430074,11),o=s+i((s^r^n)+o+d+3572445317,16),n=o+i((o^s^r)+n+$+76029189,23),r=n+i((n^o^s)+r+F+3654602809,4),s=r+i((r^n^o)+s+x+3873151461,11),o=s+i((s^r^n)+o+T+530742520,16),n=o+i((o^s^r)+n+p+3299628645,23),r=n+i((o^(n|~s))+r+l+4096336452,6),s=r+i((n^(r|~o))+s+j+1126891415,10),o=s+i((r^(s|~n))+o+m+2878612391,15),n=o+i((s^(o|~r))+n+E+4237533241,21),r=n+i((o^(n|~s))+r+x+1700485571,6),s=r+i((n^(r|~o))+s+d+2399980690,10),o=s+i((r^(s|~n))+o+z+4293915773,15),n=o+i((s^(o|~r))+n+u+2240044497,21),r=n+i((o^(n|~s))+r+O+1873313359,6),s=r+i((n^(r|~o))+s+T+4264355552,10),o=s+i((r^(s|~n))+o+$+2734768916,15),n=o+i((s^(o|~r))+n+g+1309151649,21),r=n+i((o^(n|~s))+r+w+4149444226,6),s=r+i((n^(r|~o))+s+v+3174756917,10),o=s+i((r^(s|~n))+o+p+718787259,15),n=o+i((s^(o|~r))+n+F+3951481745,21),this.#e=this.#e+r>>>0,this.#t=this.#t+n>>>0,this.#r=this.#r+o>>>0,this.#n=this.#n+s>>>0}update(t){let r;if(typeof t=="string")r=new TextEncoder().encode(t);else if(typeof t=="object")if(t instanceof ArrayBuffer||ArrayBuffer.isView(t))r=new Uint8Array(t);else throw new TypeError(Cr);else throw new TypeError(Cr);let n=this.#i,o=Le-n;if(r.length<o)this.#o.set(r,n),n+=r.length;else{this.#o.set(r.slice(0,o),n),this.#l(this.#o);let s=o;for(;s+Le<=r.length;)this.#l(r.slice(s,s+Le)),s+=Le;this.#o.fill(0).set(r.slice(s),0),n=r.length-s}return this.#i=n,this.#c(r.length),this}digest(){let t=Le-this.#i;t<9&&(t+=Le);let r=new Uint8Array(t);r0=128;let n=this.#s<<3,o=this.#a<<3|this.#s>>>29;rr.length-8=n&255,rr.length-7=n>>>8&255,rr.length-6=n>>>16&255,rr.length-5=n>>>24&255,rr.length-4=o&255,rr.length-3=o>>>8&255,rr.length-2=o>>>16&255,rr.length-1=o>>>24&255,this.update(r.buffer);let s=new ArrayBuffer(16),a=new DataView(s);return a.setUint32(0,this.#e,!0),a.setUint32(4,this.#t,!0),a.setUint32(8,this.#r,!0),a.setUint32(12,this.#n,!0),s}toString(t="hex"){let r=this.digest();switch(t){case"hex":return new TextDecoder().decode(kr(new Uint8Array(r)));case"base64":{let n=new Uint8Array(r),o="";for(let s=0;s<n.length;++s)o+=String.fromCharCode(ns);return btoa(o)}default:throw new Error("md5: invalid format")}}};var Mr=async(e,t,r)=>{let n=new ze().update(await e.arrayBuffer()).toString(),o=await $o(e,t,n,r);if(!o.ok)return o;if("embedUrl"in o.value)return{ok:!0,value:o.value};let s=await Ho(o.value.signedUrl,e,r);return s.ok?Bo(t,o.value.fileId,n,r):s},$o=async(e,t,r,n)=>{let{sid:o,hostName:s,fetch:a,csrf:i}=B(n??{}),l={md5:r,size:e.size,contentType:e.type,name:e.name},u=i??await ge(),p=new Request(https://${s}/api/gcs/${t}/upload-request,{method:"POST",body:JSON.stringify(l),headers:{"Content-Type":"application/json;charset=utf-8","X-CSRF-TOKEN":u,...o?{Cookie:K(o)}:{}}}),d=await a(p);return d.ok?{ok:!0,value:await d.json()}:G(d)},Ho=async(e,t,r)=>{let{sid:n,fetch:o}=B(r??{}),s=await o(e,{method:"PUT",body:t,headers:{"Content-Type":t.type,...n?{Cookie:K(n)}:{}}});if(!s.ok){if(s.headers.get("Content-Type")?.includes?.("/xml"))return{ok:!1,value:{name:"GCSError",message:await s.text()}};throw new ce(s)}return{ok:!0,value:void 0}},Bo=async(e,t,r,n)=>{let{sid:o,hostName:s,fetch:a,csrf:i}=B(n??{}),l=i??await ge(),u=new Request(https://${s}/api/gcs/${e}/verify,{method:"POST",body:JSON.stringify({md5:r,fileId:t}),headers:{"Content-Type":"application/json;charset=utf-8","X-CSRF-TOKEN":l,...o?{Cookie:K(o)}:{}}}),p=await a(u);if(!p.ok){try{if(p.status===404)return{ok:!1,value:{name:"NotFoundError",message:(await p.json()).message}}}catch{throw new ce(p)}throw new ce(p)}let d=await p.json();return{ok:!0,value:d}};var Pr=(e,t)=>{let r=new FormData;return r.append("data",e),r.append("metadata",JSON.stringify({app:"Gyazo",title:e.name})),GM_fetch(https://gif.gyazo.com/${t?.teams?"teams":"gif"}/upload,{method:"POST",body:r,credentials:"include",headers:{Origin:"https://gyazo.com","sec-fetch-site":"same-site"},referrer:"https://gyazo.com/"})};var qe="",Sr=!1,Ge=new Map,_r=async(e,t,r,n)=>{let o=Ge.get(e.href);if(o)return o;if(e.hostname==="video.twimg.com"||${e}.endsWith(".svg")){let l=await GM_fetch(e);if(!l.ok)return;let u=l.headers.get("content-type")?.split?.(";")?.0??${e}.endsWith(".mp4")?"video/mp4":"video/webm",p=new File(await l.blob(),n||${t},{type:u});if(u==="video/mp4"){let E=await Pr(p);if(E.ok){let $=new URL(await E.text());return Ge.set(e.href,$),$}}let d=await Mr(p,r);if(!d.ok)throw Error(d.value.name);let w=new URL(d.value.embedUrl);return Ge.set(e.href,w),w}if(e.hostname!=="pbs.twimg.com"||!e.pathname.startsWith("/media"))return;if(Sr){if(!qe)return}else{let l=await Er();if(Sr=!0,!l.ok){alert("You haven't logged in Gyazo yet, so you can only upload images to scrapbox.io.");return}if(qe=l.value||"",!qe){alert("You haven't connect Gyazo to scrapbox.io yet.");return}}let s=await GM_fetch(e);if(!s.ok)return;let a=await or(await s.blob(),{accessToken:qe,refererURL:t,description:n});if(!a.ok)throw Error(a.value.name);let i=new URL(a.value.permalink_url);return Ge.set(e.href,i),i};var Do={"<":"<",">":">","&":"&",""":'"',"'":"'","`":""},ft=e=>e.replace(/&(lt|gt|amp|quot|#x27|#x60);/g,t=>Do[t]);var _e=e=>{let t={name:e.user.name,screenName:e.user.screen_name},r=new Date(e.created_at),n=[...e.entities.hashtags.map(a=>({type:"hashtag",...a})),...e.entities.symbols.map(a=>({type:"symbol",...a})),...e.entities.user_mentions.map(a=>({type:"mention",name:a.name,screenName:a.screen_name,indices:a.indices})),...e.entities.urls.map(a=>{let i={type:"url",indices:a.indices,url:new URL(a.expanded_url)};if(e.card&&e.card?.url===a.url){let{description:l,title:u}=e.card.binding_values,p="STRING";l?.type===p&&(i.description=l.string_value),u?.type===p&&(i.title=u.string_value)}return i}),...e.entities.media?.map?.(a=>({type:"media",indices:a.indices,media:e.mediaDetails?.flatMap?.(i=>i.url===a.url?[{type:i.type,url:new URL(i.video_info?.variants?.sort?.((l,u)=>(u.bitrate??0)-(l.bitrate??0))?.[0].url??i.media_url_https)}]:[])??[]}))??[]].sort((a,i)=>a.indices[0]-i.indices[0]),o=[];{let a=0,i=e.text;for(let{indices:l,...u}of n){let p=[...i].slice(0,l[0]-a).join("");o.push({type:"plain",text:ft(p)}),o.push(u),i=[...i].slice(l[1]-a).join(""),a=l[1]}i&&o.push({type:"plain",text:ft(i)})}let s={id:e.id_str,content:o,author:t,posted:r,replyCount:"reply_count"in e?e.reply_count:e.conversation_count};return e.self_thread&&(s.rootId=e.self_thread.id_str),e.in_reply_to_status_id_str&&(s.replyId=e.in_reply_to_status_id_str),e.parent&&(s.replyTo=_e(e.parent)),e.quoted_tweet&&(s.quote=_e(e.quoted_tweet)),s};var jo=["landing","product","enterprise","pricing","try-enterprise","contact","terms","privacy","jp-commercial-act","support","case","features","business","auth","login","logout","oauth2","_","api","app.html","assets","file","files","billing","billings","config","feed","index","io","new","opensearch","project","projects","search","setting","settings","setup-profile","slide","socket.io","stream","user","users"],We=(e=scrapbox.Project.name,t=location.host)=>r=>{if(r.host!==t)return r;let[,n,o]=r.pathname.match(/^\/([\w\d][\w\d-]{0,22}[\w\d])(?:\/?|\/(.+))$/)??[];return!n||jo.includes(n)?r:o?n===e?${decodeURIComponent(o)}:/${n}/${decodeURIComponent(o)}:/${n}};var Or=(e=Fo)=>t=>{let[,r]=t.href.match(/^https:\/\/(?:(?:www\.|mobile\.|m\.)?twitter|x)\.com\/[\w\d_]+\/(?:status|statuses)\/(\d+)/)??[];return r?(async()=>{let n=await(rr(r)??wr(t.href));if(!n.ok)throw n.value;return e("images"in n.value?{...n.value,id:r}:n.value,t)})():t},Fo=async e=>{if("images"in e)return he(e);let{quote:t,replyTo:r,...n}=_e(e);return[...r?[...(await he(r)).split( ).map(o=> > ${o}),...r.quote?(await he(r.quote)).split(
).map(o=> > ${o}):[]]:[],...(await he(n)).split(
).map(o=>> ${o}),...t?(await he(t)).split(
).map(o=>> > ${o}):[]].join(
)?.map?.(o=>> ${ht(o)})??["> [/ no description provided]"],...e.images.length>0?[> ${e.images.map(o=>[${o}])}]:[]].join(
);let r=e.content,n=e.author.screenName;return[@${ht(n)} ${t},...(await Promise.all(r.map(async o=>{switch(o.type){case"plain":return o.text;case"hashtag":return #${o.text} ;case"symbol":return #$${o.text} ;case"mention":return@${o.screenName};case"media":{let s=[],a=1;for(;a<o.media.length;a+=2)s.push([${await gt(o.mediaa-1,t)}] [${await gt(o.mediaa,t)}]);return a===o.media.length&&s.push([${await gt(o.mediaa-1,t)}]), ${s.join(`
`)}
}case"url":return${We()(o.url)} }}))).join("").split(
)].join(
)},Ye="",Ko=async()=>{if(Ye)return Ye;let e=await Ke(scrapbox.Project.name);if(!e.ok)throw new Error(e.value.name);return Ye=e.value.id,Ye},gt=async(e,t)=>await _r(e.url,t,await Ko(),"")??e.url,ht=e=>e.replace(/\b/gm,"").replace(/[\s\r\n\u2028\u2029]+/gm," ").replace(/\s*[[\]]\s*/g," ").trim();var Ar=e=>{if(!window.GM_fetch)return;let t=window.GM_fetch;return(async()=>{let r=await t(https://t.co/${e}),n=Pe(r);if(n)return{ok:!1,value:n};let o=new DOMParser().parseFromString(await r.text(),"text/html");return{ok:!0,value:o.title}})()};var Ir=e=>{if("bit.ly","amzn.to","amzn.asia","goo.gl","s.nikkei.com","apple.co","nico.ms","w.wiki".includes(e.hostname)&&window.GM_fetch)return window.GM_fetch(e).then(r=>r.ok?new URL(r.url):e);if(e.hostname!=="t.co")return e;let t=Ar(e.pathname.slice(1));return t?(async()=>{let r=await t;if(!r.ok)throw r.value;try{return new URL(r.value)}catch(n){if(n instanceof TypeError)return e;throw n}})():e};var Nr=e=>{if(!e.pathname.startsWith("/wiki/"))return e;if(!/^\w+\.wikipedia\.org$/.test(e.hostname)){let,o=e.hostname.match(/^(\w+)\.m\.wikipedia\.org$/)??[];if(!o)return e;e.hostname=${o}.wikipedia.org}let t=decodeURIComponent(e.pathname.slice(6)),r=e.hash?decodeURIComponent(e.hash.slice(1)):"",n=${e.origin}/wiki/${t};return r?[${r} | ${t} - Wikipedia ${n}#${r}]:[${t} - Wikipedia ${n}]};var Ur=e=>{if(e.hostname!=="www.wikiwand.com")return e;let,t,r=e.pathname.match(/^\/(^\/+)\/(^\/+)/)??[];return!t||!r||(e.hostname=${t}.wikipedia.org,e.pathname=/wiki/${r},e.hash=e.hash.startsWith("#/")?#${e.hash.slice(2)}:e.hash),e};var xt=e=>{if(!e.hostname.startsWith("www.google."))return e;let t=e.searchParams.get("url");return t?new URL(decodeURIComponent(t)):e};var $r=/charset=(^;+)/,Hr=e=>{if(!window.GM_fetch)return;let t=window.GM_fetch;return(async()=>{let r=await t(${e}),n=Pe(r);if(n)return{ok:!1,value:n};let o=r.headers.get("content-type")?.match?.($r)?.1??await zo(r.clone()),s=new TextDecoder(o).decode(await r.arrayBuffer());return{ok:!0,value:s}})()},zo=async e=>{let t=new DOMParser().parseFromString(await e.text(),"text/html");return t.querySelector("metacharset")?.getAttribute?.("charset")??t.querySelector('metahttp-equiv="content-type"')?.getAttribute?.("content")?.match?.($r)?.1??"utf-8"};var Br=(e=qo)=>async t=>e(await Go(t),t),qo=(e,t)=>{let r=(fe(e)?e:e.title).replace(/\s/g," ").replaceAll("","[").replaceAll("","]");return r?[${t.hash?${decodeURIComponent(t.hash.slice(1))} | :""}${r} ${t}]:${t}},Go=async e=>{let t=Hr(e);if(!t){let n=await yr(e);if(!n.ok)throw n.value;return n.value}let r=await t;if(!r.ok)throw r.value;return new DOMParser().parseFromString(r.value,"text/html")};var Dr=e=>{if(!/^(?:www\.)?amazon(?:\.co|com)?\.(?:au|br|ca|fr|de|in|it|jp|mx|nl|sg|es|tr|ae|uk|cn)$/.test(e.hostname))return e;let,t=e.pathname.match(/\/dp\/(\w\d+)/)??e.pathname.match(/\/gp\/product\/(\w\d+)/)??e.pathname.match(/\/exec\/obidos\/asin\/(\w\d+)/)??e.pathname.match(/\/o\/ASIN\/(\w\d+)/)??[];return t&&(e.hash="",e.search="",e.pathname=/dp/${t}),e};var jr=e=>{if(!/(?:0-9a-z-\.)?gyazo\.com/.test(e.hostname))return e;let,t=e.pathname.match(/^\/(0-9a-f{32})(?:\/raw)?$/)??[];return t?[https://gyazo.com/${t}]:e};var Fr=(e,...t)=>{if(e instanceof URL)return dt(new URL(e),...t);let r=0,n=0,o=0,s=!1,a=e.split(/(https?:\/\/\S+)/g).map(p=>{if(!/^https?:\/\/\S+$/.test(p))return p;r++;try{let d=dt(new URL(p),...t);return fe(d)?(n++,d):(s=!0,d,p)}catch(d){return console.error(d),o++,p}});if(!s)return a.join("");let{render:i,dispose:l}=Zt(),u=()=>i({type:"spinner"},{type:"text",text:URL: ${n}/${r} converted, ${o} failed});return u(),Promise.all(a.map(async p=>{if(fe(p))return p;try{let d=await p0;return n++,d}catch(d){return console.error(d),o++,p1}finally{u()}})).then(p=>(i({type:"check-circle"},{type:"text",text:URL: ${n}/${r} converted, ${o} failed}),p.join(""))).finally(()=>{setTimeout(l,1e3)})};var Kr=async e=>{if("images"in e)return he(e);let{quote:t,...r}=_e(e);return[...t?(await he(t)).split(` ).map(n=>> ${n}):[],...(await he(r)).split(
).map(n=>> ${n})].join(
)};var Wo=[xt,Ir,xt,Ur,Dr,We(),jr,Or(Kr),Nr,e=>{if(e.hostname==="raw.githubusercontent.com")return${e};if(e.hostname!=="github.com")return e;let[t,r,n]=e.pathname.match(/^\/([^\\]+)\/([^\\]+)\/blob\/(.+)$/)?.slice?.(1)??[];if(!t||!r||!n)return e;let[,o,s]=e.hash.match(/L(\d+)-L(\d+)/)??e.hash.match(/L(\d+)/)??[];return[https://code2svg.vercel.app/svg/${o&&s?L${o}-${s}/:o?L${o}/:""}https://raw.githubusercontent.com/${t}/${r}/${n}#.svg ${e}]},Br()];scrapbox.PopupMenu.addButton({title:e=>/https?:\/\/\S+/.test(e)?"URL":"",onClick:e=>{let t=Fr(e,...Wo);if(typeof t=="string")return e===t?void 0:t;t.then(r=>{if(e!==r)return qt(r)})}});scrapbox.PopupMenu.addButton({title:"",onClick:e=>{let t=e.split(/\n/).map(r=>r.replace(/\[([^\[!"#%&'()\*\+,\-\.\/\{\|\}<>_~][^\[\]]*)\]/g,"$1")).join( );if(e!=t)return t}});scrapbox.PopupMenu.addButton({title:"[]",onClick:e=>{let t=e.split(/\n/).map(r=>r.replace(/\[([^\[!"#%&'()\*\+,\-\.\/\{\|\}<>_~][^\[\]]*)\]/g,"$1")).join( );if(e!=t)return t}});scrapbox.PopupMenu.addButton({title:"$",onClick:e=>$ ${e}});scrapbox.PopupMenu.addButton({title:"LaTeX→Scb",onClick:e=>e.replace(/\$(.+?)\$/g,"[$ $1 ]").replace(/\\\((.+?)\\\)/g,"[$ $1 ]").replace(/\$\$(.+?)\$\$/gs,(t,r)=>"[$ "+r.replace(/\n/g," ").replace(/\s*>/g,"")+" ]").replace(/\\\[(.+?)\\\]/gs,(t,r)=>"[$ "+r.replace(/\n/g," ").replace(/\s*>/g,"")+" ]")});function Yo(e){let t=/[,&;]|and|\n/gi,r=new RegExp("[\\d†\\*]|(\\s[a-z])+(\\s*$)|ORCID|View ORCID Profile|Author links open overlay panel|https?:\\/\\/\\S+","gi"),n=s=>s.toLowerCase().split(" ").map(a=>a.charAt(0).toUpperCase()+a.slice(1)).join(" ");return e.replace(t,",").split(",").map(s=>s.replace(r,"").trim()).filter(s=>s.length>1).map(s=>${n(s)}).join(", ")}scrapbox.PopupMenu.addButton({title:"link authors",onClick:Yo});scrapbox.TimeStamp.removeAllFormats();scrapbox.TimeStamp.addFormat("YYYY/M/D");scrapbox.TimeStamp.addFormat("[[]YYYY/M/D[]]");scrapbox.TimeStamp.addFormat("YYYY/M/D HH:mm:ss");var bt=e=>[...e].map((t,r)=>t===" "?"_":!Vo.includes(t)||r===e.length-1&&Qo.includes(t)?encodeURIComponent(t):t).join(""),Vo='@$&+=:;",',Qo=':;",';var Xo=e=>({type:"title",text:e.rows[0].text}),Jo=e=>{let{rows:[t,...r]}=e,{indent:n=0,text:o=""}=t??{},s=o.replace(/^\s*code:/,"");return{indent:n,type:"codeBlock",fileName:s,content:r.map(a=>a.text.substring(n+1)).join( )}},Z=(e,{parseOnNested:t,parseOnQuoted:r,patterns:n})=>(o,s,a)=>{var i,l,u,p,d,w;if(!t&&s.nested)return(i=a?.())!==null&&i!==void 0?i:[];if(!r&&s.quoted)return(l=a?.())!==null&&l!==void 0?l:[];for(let E of n){let $=E.exec(o);if($===null)continue;let j=o.substring(0,$.index),O=o.substring($.index+((p=(u=$[0])===null||u===void 0?void 0:u.length)!==null&&p!==void 0?p:0)),F=e((d=$[0])!==null&&d!==void 0?d:"",s);return[...Ee(j,s),...F,...Ee(O,s)]}return(w=a?.())!==null&&w!==void 0?w:[]},re=e=>[{type:"plain",raw:e,text:e}],Zo=Z(re,{parseOnNested:!0,parseOnQuoted:!0,patterns:[/^()(.*)()$/]}),es=/^>.*$/,ts=(e,t)=>t.context==="table"?re(e,t):[{type:"quote",raw:e,nodes:Ee(e.substring(1),{...t,quoted:!0})}],rs=Z(ts,{parseOnNested:!1,parseOnQuoted:!1,patterns:[es]}),ns=/^\? .+$/,os=(e,t)=>t.context==="table"?re(e,t):[{type:"helpfeel",raw:e,text:e.substring(2)}],ss=Z(os,{parseOnNested:!1,parseOnQuoted:!1,patterns:[ns]}),is=/\[\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)\]\]/i,as=/\[\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}\]\]/,ls=(e,t)=>{if(t.context==="table")return re(e,t);let r=e.substring(2,e.length-2),n=/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}$/.test(r);return[{type:"strongImage",raw:e,src:n?${r}/thumb/1000:r}]},cs=Z(ls,{parseOnNested:!1,parseOnQuoted:!0,patterns:[is,as]}),ps=/\[[^[\]]*\.icon(?:\*[1-9]\d*)?\]/;function zr(e){return(t,r)=>{if(e==="strongIcon"&&r.context==="table")return re(t,r);let n=e==="icon"?t.substring(1,t.length-1):t.substring(2,t.length-2),o=n.lastIndexOf(".icon"),s=n.substring(0,o),a=s.startsWith("/")?"root":"relative",i=n.substring(o+5,n.length),l=i.startsWith("*")?parseInt(i.substring(1),10):1;return new Array(l).fill({}).map(()=>({path:s,pathType:a,type:e,raw:t}))}}var us=zr("icon"),ds=Z(us,{parseOnNested:!0,parseOnQuoted:!0,patterns:[ps]}),ms=/\[\[[^[\]]*\.icon(?:\*\d+)?\]\]/,fs=zr("strongIcon"),gs=Z(fs,{parseOnNested:!1,parseOnQuoted:!0,patterns:[ms]}),hs=/\[\[(?:[^[]|\[[^[]).*?\]*\]\]/,xs=(e,t)=>t.context==="table"?re(e,t):[{type:"strong",raw:e,nodes:Ee(e.substring(2,e.length-2),{...t,nested:!0})}],bs=Z(xs,{parseOnNested:!1,parseOnQuoted:!0,patterns:[hs]}),ys=/\[\$ .+? \]/,ws=/\[\$ [^\]]+\]/,Es=(e,t)=>t.context==="table"?re(e,t):[{type:"formula",raw:e,formula:e.substring(3,e.length-(e.endsWith(" ]")?2:1))}],vs=Z(Es,{parseOnNested:!1,parseOnQuoted:!0,patterns:[ys,ws]}),Ls=/\[[!"#%&'()*+,\-./{|}<>_~]+ (?:\[[^[\]]+\]|[^\]])+\]/,Ts=(e,t)=>{if(t.context==="table")return re(e,t);let r=e.indexOf(" "),n=e.substring(1,r),o=e.substring(r+1,e.length-1),s=new Set(n);if(s.has("*")){let a=n.split("*").length-1;s.delete("*"),s.add(*-${Math.min(a,10)})}return[{type:"decoration",raw:e,rawDecos:n,decos:Array.from(s),nodes:Ee(o,{...t,nested:!0})}]},Rs=Z(Ts,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Ls]}),ks=/.*?/,Cs=(e,t)=>t.context==="table"?re(e,t):[{type:"code",raw:e,text:e.substring(1,e.length-1)}],Ms=Z(Cs,{parseOnNested:!1,parseOnQuoted:!0,patterns:[ks]}),Ps=/^[$%] .+$/,Ss=(e,t)=>{var r;if(t.context==="table")return re(e,t);let n=(r=e[0])!==null&&r!==void 0?r:"",o=e.substring(2);return[{type:"commandLine",raw:e,symbol:n,text:o}]},_s=Z(Ss,{parseOnNested:!1,parseOnQuoted:!1,patterns:[Ps]}),Os=/\[\s+\]/,As=(e,t)=>t.context==="table"?re(e,t):[{type:"blank",raw:e,text:e.substring(1,e.length-1)}],Is=Z(As,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Os]}),Ns=/\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?(?:\s+https?:\/\/[^\s\]]+)?\]/i,Us=/\[https?:\/\/[^\s\]]+\s+https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?\]/i,$s=/\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?(?:\s+https?:\/\/[^\s\]]+)?\]/,Hs=/\[https?:\/\/[^\s\]]+\s+https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?\]/,Bs=e=>/^https?:\/\/[^\s\]]+\.(png|jpe?g|gif|svg)(\?[^\]\s]+)?$/i.test(e)||Ds(e),Ds=e=>/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}(\/raw)?$/.test(e),js=(e,t)=>{if(t.context==="table")return re(e,t);let r=e.search(/\s/),n=r!==-1?e.substring(1,r):e.substring(1,e.length-1),o=r!==-1?e.substring(r,e.length-1).trimLeft():"",[s,a]=Bs(o)?[o,n]:[n,o];return[{type:"image",raw:e,src:/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}$/.test(s)?${s}/thumb/1000:s,link:a}]},Fs=Z(js,{parseOnNested:!0,parseOnQuoted:!0,patterns:[Ns,Us,$s,Hs]}),Ks=/\[https?:\/\/[^\s\]]+\s+[^\]]*[^\s]\]/,zs=/\[[^[\]]*[^\s]\s+https?:\/\/[^\s\]]+\]/,qs=/\[https?:\/\/[^\s\]]+\]/,Gs=/https?:\/\/[^\s]+/,Ws=(e,t)=>{if(t.context==="table")return re(e,t);let r=e.startsWith("[")&&e.endsWith("]")?e.substring(1,e.length-1):e,n=/^https?:\/\/[^\s\]]/.test(r),o=(n?/^https?:\/\/[^\s\]]+/:/https?:\/\/[^\s\]]+$/).exec(r);if(o?.[0]===void 0)return[];let s=n?r.substring(o[0].length):r.substring(0,o.index-1);return[{type:"link",raw:e,pathType:"absolute",href:o[0],content:s.trim()}]},Ys=Z(Ws,{parseOnNested:!0,parseOnQuoted:!0,patterns:[Ks,zs,qs,Gs]}),qr=/\[([^\]]*[^\s])\s+([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)\]/,Gr=/\[([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)(?:\s+([^\]]*[^\s]))?\]/,Vs=e=>{let[t="",r="",n=""]=e.split(","),o=parseFloat(t.replace(/^N/,"").replace(/^S/,"-")),s=parseFloat(r.replace(/^E/,"").replace(/^W/,"-")),a=/^Z\d+$/.test(n)?parseInt(n.replace(/^Z/,""),10):14;return{latitude:o,longitude:s,zoom:a}},Qs=(e,t)=>{var r;if(t.context==="table")return re(e,t);let n=(r=e.match(qr))!==null&&r!==void 0?r:e.match(Gr);if(n===null)return[];let o=e.startsWith("[N")||e.startsWith("[S"),[,s="",a=""]=o?n:[n[0],n[2],n[1]],{latitude:i,longitude:l,zoom:u}=Vs(s),p=a!==""?https://www.google.com/maps/place/${encodeURIComponent(a)}/@${i},${l},${u}z:https://www.google.com/maps/@${i},${l},${u}z;return[{type:"googleMap",raw:e,latitude:i,longitude:l,zoom:u,place:a,url:p}]},Xs=Z(Qs,{parseOnNested:!1,parseOnQuoted:!0,patterns:[qr,Gr]}),Js=/\[\/?[^[\]]+\]/,Zs=e=>{let t=e.substring(1,e.length-1);return[{type:"link",raw:e,pathType:t.startsWith("/")?"root":"relative",href:t,content:""}]},ei=Z(Zs,{parseOnNested:!0,parseOnQuoted:!0,patterns:[Js]}),ti=/(?:^|\s)#\S+/,ri=(e,t)=>{if(t.context==="table")return re(e,t);if(e.startsWith("#"))return[{type:"hashTag",raw:e,href:e.substring(1)}];let r=e.substring(0,1),n=e.substring(1);return[...re(r,t),{type:"hashTag",raw:n,href:n.substring(1)}]},ni=Z(ri,{parseOnNested:!0,parseOnQuoted:!0,patterns:[ti]}),oi=/^[0-9]+\. .*$/,si=(e,t)=>{if(t.context==="table")return re(e,t);let r=e.indexOf(" "),n=e.substring(0,r-1),o=parseInt(n,10),s=e.substring(r+1,e.length);return[{type:"numberList",raw:e,rawNumber:n,number:o,nodes:Ee(s,{...t,nested:!0})}]},ii=Z(si,{parseOnNested:!1,parseOnQuoted:!1,patterns:[oi]}),ai=(e,t,r)=>{var n;return e===""?[]:(n=r?.())!==null&&n!==void 0?n:[]},li=(...e)=>(t,r)=>e.reduceRight((n,o)=>()=>o(t,r,n),()=>Zo(t,r))(),Ee=li(ai,rs,ss,Ms,_s,vs,Is,Rs,cs,gs,bs,Fs,Ys,ds,Xs,ei,ni,ii),ci=e=>{let{rows:[t,...r]}=e,{indent:n=0,text:o=""}=t??{},s=o.replace(/^\s*table:/,"");return{indent:n,type:"table",fileName:s,cells:r.map(a=>a.text.substring(n+1)).map(a=>a.split(" ").map(i=>Ee(i,{nested:!1,quoted:!1,context:"table"})))}},pi=e=>{let{indent:t,text:r}=e.rows[0];return{indent:t,type:"line",nodes:Ee(r.substring(t),{nested:!1,quoted:!1,context:"line"})}},ui=e=>{switch(e.type){case"title":return Xo(e);case"codeBlock":return Jo(e);case"table":return ci(e);case"line":return pi(e)}},di=e=>e.split( ).map(t=>{var r,n,o;return{indent:(o=(n=(r=/^\s+/.exec(t))===null||r===void 0?void 0:r[0])===null||n===void 0?void 0:n.length)!==null&&o!==void 0?o:0,text:t}}),mi=(e,t)=>{var r,n;return(e.type==="codeBlock"||e.type==="table")&&t.indent>((n=(r=e.rows[0])===null||r===void 0?void 0:r.indent)!==null&&n!==void 0?n:0)},Wr=(e,t)=>{let r=e[e.length-1];return r!==void 0&&mi(r,t)?(r.rows.push(t),e):(e.push({type:/^\s*code:/.test(t.text)?"codeBlock":/^\s*table:/.test(t.text)?"table":"line",rows:[t]}),e)},fi=(e,t)=>{var r;if(!((r=t.hasTitle)!==null&&r!==void 0)||r){let[n,...o]=e;return n===void 0?[]:[{type:"title",rows:[n]},...o.reduce(Wr,[])]}return e.reduce(Wr,[])},Yr=(e,t)=>{var r;let n=di(e);return fi(n,{hasTitle:(r=t?.hasTitle)!==null&&r!==void 0?r:!0}).map(ui)};var Vr=(e,t,r)=>{if(r.length===0)return[];let n=r.map(i=>i.text).join(
),o=Yr(n,{hasTitle:!0}),s=new Map,a=0;for(let i of o)switch(i.type){case"title":case"line":{a++;break}case"table":a+=i.cells.length+1;break;case"codeBlock":{let l=s.get(i.fileName);s.set(i.fileName,{dir:l?.dir??https://scrapbox.io/api/code/${e}/${bt(t)},lang:l?.lang??i.fileName.split(".").pop()??"text",startIds:[...l?.startIds??[],r[a].id],lines:[...l?.lines??[],...i.content.split( )]}),a+=i.content.split(
).length+1;break}}return[...s.entries()].map(([i,l])=>({filename:i,...l}))};function yt(e){let t=n=>{if(n===null)r.write8(0);else if(typeof n=="boolean")r.write8(1),r.write8(+n);else if(typeof n=="number")r.write8(2),r.write32(n|0);else if(typeof n=="string")r.write8(3),r.write(ae(n));else if(n instanceof Uint8Array)r.write8(4),r.write(n);else if(n instanceof Array){r.write8(5),r.write32(n.length);for(let o of n)t(o)}else{let o=Object.keys(n);r.write8(6),r.write32(o.length);for(let s of o)r.write(ae(s)),t(n[s])}},r=new wt;return r.write32(0),r.write32(e.id<<1|+!e.isRequest),t(e.value),vt(r.buf,r.len-4,0),r.buf.subarray(0,r.len)}function Qr(e){let t=()=>{switch(r.read8()){case 0:return null;case 1:return!!r.read8();case 2:return r.read32();case 3:return Oe(r.read());case 4:return r.read();case 5:{let a=r.read32(),i=[];for(let l=0;l<a;l++)i.push(t());return i}case 6:{let a=r.read32(),i={};for(let l=0;l<a;l++)i[Oe(r.read())]=t();return i}default:throw new Error("Invalid packet")}},r=new wt(e),n=r.read32(),o=(n&1)==0;n>>>=1;let s=t();if(r.ptr!==e.length)throw new Error("Invalid packet");return{id:n,isRequest:o,value:s}}var wt=class{constructor(t=new Uint8Array(1024)){this.buf=t;this.len=0;this.ptr=0}_write(t){if(this.len+t>this.buf.length){let r=new Uint8Array((this.len+t)*2);r.set(this.buf),this.buf=r}return this.len+=t,this.len-t}write8(t){let r=this._write(1);this.buf[r]=t}write32(t){let r=this._write(4);vt(this.buf,t,r)}write(t){let r=this._write(4+t.length);vt(this.buf,t.length,r),this.buf.set(t,r+4)}_read(t){if(this.ptr+t>this.buf.length)throw new Error("Invalid packet");return this.ptr+=t,this.ptr-t}read8(){return this.buf[this._read(1)]}read32(){return Et(this.buf,this._read(4))}read(){let t=this.read32(),r=new Uint8Array(t),n=this._read(r.length);return r.set(this.buf.subarray(n,n+t)),r}},ae,Oe,Xr;if(typeof TextEncoder!="undefined"&&typeof TextDecoder!="undefined"){let e=new TextEncoder,t=new TextDecoder;ae=r=>e.encode(r),Oe=r=>t.decode(r),Xr='new TextEncoder().encode("")'}else throw new Error("No UTF-8 codec found");if(!(ae("")instanceof Uint8Array))throw new Error(Invariant violation: "${Xr} instanceof Uint8Array" is incorrectly false
This indicates that your JavaScript environment is broken. You cannot use
esbuild in this environment because esbuild relies on this invariant. This
is not a problem with esbuild. You need to fix your environment instead.
);function Et(e,t){return e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24}function vt(e,t,r){e[r++]=t,e[r++]=t>>8,e[r++]=t>>16,e[r++]=t>>24}var Ue="0.21.5";var Q=JSON.stringify,Jr="warning",Zr="silent";function en(e){if(ee(e,"target"),e.indexOf(",")>=0)throw new Error(Invalid target: ${e});return e}var Ve=()=>null,W=e=>typeof e=="boolean"?null:"a boolean",y=e=>typeof e=="string"?null:"a string",Qe=e=>e instanceof RegExp?null:"a RegExp object",Te=e=>typeof e=="number"&&e===(e|0)?null:"an integer",tn=e=>typeof e=="function"?null:"a function",V=e=>Array.isArray(e)?null:"an array",se=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"an object",gi=e=>typeof e=="object"&&e!==null?null:"an array or an object",hi=e=>e instanceof WebAssembly.Module?null:"a WebAssembly.Module",rn=e=>typeof e=="object"&&!Array.isArray(e)?null:"an object or null",nn=e=>typeof e=="string"||typeof e=="boolean"?null:"a string or a boolean",xi=e=>typeof e=="string"||typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"a string or an object",bi=e=>typeof e=="string"||Array.isArray(e)?null:"a string or an array",on=e=>typeof e=="string"||e instanceof Uint8Array?null:"a string or a Uint8Array",yi=e=>typeof e=="string"||e instanceof URL?null:"a string or a URL";function c(e,t,r,n){let o=e[r];if(t[r+""]=!0,o===void 0)return;let s=n(o);if(s!==null)throw new Error(${Q(r)} must be ${s});return o}function X(e,t,r){for(let n in e)if(!(n in t))throw new Error(Invalid option ${r}: ${Q(n)})}function sn(e){let t=Object.create(null),r=c(e,t,"wasmModule",hi),n=c(e,t,"workerURL",yi);return X(e,t,"in initialize() call"),{wasmModule:r,workerURL:n}}function an(e){let t;if(e!==void 0){t=Object.create(null);for(let r in e){let n=e[r];if(typeof n=="string"||n===!1)t[r]=n;else throw new Error(Expected ${Q(r)} in mangle cache to map to either a string or false)}}return t}function Xe(e,t,r,n,o){let s=c(t,r,"color",W),a=c(t,r,"logLevel",y),i=c(t,r,"logLimit",Te);s!==void 0?e.push(--color=${s}):n&&e.push("--color=true"),e.push(--log-level=${a||o}),e.push(--log-limit=${i||0})}function ee(e,t,r){if(typeof e!="string")throw new Error(Expected value for ${t}${r!==void 0?" "+Q(r):""} to be a string, got ${typeof e} instead);return e}function ln(e,t,r){let n=c(t,r,"legalComments",y),o=c(t,r,"sourceRoot",y),s=c(t,r,"sourcesContent",W),a=c(t,r,"target",bi),i=c(t,r,"format",y),l=c(t,r,"globalName",y),u=c(t,r,"mangleProps",Qe),p=c(t,r,"reserveProps",Qe),d=c(t,r,"mangleQuoted",W),w=c(t,r,"minify",W),E=c(t,r,"minifySyntax",W),$=c(t,r,"minifyWhitespace",W),j=c(t,r,"minifyIdentifiers",W),O=c(t,r,"lineLimit",Te),F=c(t,r,"drop",V),z=c(t,r,"dropLabels",V),v=c(t,r,"charset",y),x=c(t,r,"treeShaking",W),g=c(t,r,"ignoreAnnotations",W),m=c(t,r,"jsx",y),T=c(t,r,"jsxFactory",y),R=c(t,r,"jsxFragment",y),P=c(t,r,"jsxImportSource",y),C=c(t,r,"jsxDev",W),f=c(t,r,"jsxSideEffects",W),h=c(t,r,"define",se),L=c(t,r,"logOverride",se),A=c(t,r,"supported",se),N=c(t,r,"pure",V),_=c(t,r,"keepNames",W),M=c(t,r,"platform",y),I=c(t,r,"tsconfigRaw",xi);if(n&&e.push(--legal-comments=${n}),o!==void 0&&e.push(--source-root=${o}),s!==void 0&&e.push(--sources-content=${s}),a&&(Array.isArray(a)?e.push(--target=${Array.from(a).map(en).join(",")}):e.push(--target=${en(a)})),i&&e.push(--format=${i}),l&&e.push(--global-name=${l}),M&&e.push(--platform=${M}),I&&e.push(--tsconfig-raw=${typeof I=="string"?I:JSON.stringify(I)}),w&&e.push("--minify"),E&&e.push("--minify-syntax"),$&&e.push("--minify-whitespace"),j&&e.push("--minify-identifiers"),O&&e.push(--line-limit=${O}),v&&e.push(--charset=${v}),x!==void 0&&e.push(--tree-shaking=${x}),g&&e.push("--ignore-annotations"),F)for(let k of F)e.push(--drop:${ee(k,"drop")});if(z&&e.push(--drop-labels=${Array.from(z).map(k=>ee(k,"dropLabels")).join(",")}),u&&e.push(--mangle-props=${u.source}),p&&e.push(--reserve-props=${p.source}),d!==void 0&&e.push(--mangle-quoted=${d}),m&&e.push(--jsx=${m}),T&&e.push(--jsx-factory=${T}),R&&e.push(--jsx-fragment=${R}),P&&e.push(--jsx-import-source=${P}),C&&e.push("--jsx-dev"),f&&e.push("--jsx-side-effects"),h)for(let k in h){if(k.indexOf("=")>=0)throw new Error(Invalid define: ${k});e.push(--define:${k}=${ee(hk,"define",k)})}if(L)for(let k in L){if(k.indexOf("=")>=0)throw new Error(Invalid log override: ${k});e.push(--log-override:${k}=${ee(Lk,"log override",k)})}if(A)for(let k in A){if(k.indexOf("=")>=0)throw new Error(Invalid supported: ${k});let S=A[k];if(typeof S!="boolean")throw new Error(Expected value for supported ${Q(k)} to be a boolean, got ${typeof S} instead);e.push(--supported:${k}=${S})}if(N)for(let k of N)e.push(--pure:${ee(k,"pure")});_&&e.push("--keep-names")}function wi(e,t,r,n,o){let s=[],a=[],i=Object.create(null),l=null,u=null;Xe(s,t,i,r,n),ln(s,t,i);let p=c(t,i,"sourcemap",nn),d=c(t,i,"bundle",W),w=c(t,i,"splitting",W),E=c(t,i,"preserveSymlinks",W),$=c(t,i,"metafile",W),j=c(t,i,"outfile",y),O=c(t,i,"outdir",y),F=c(t,i,"outbase",y),z=c(t,i,"tsconfig",y),v=c(t,i,"resolveExtensions",V),x=c(t,i,"nodePaths",V),g=c(t,i,"mainFields",V),m=c(t,i,"conditions",V),T=c(t,i,"external",V),R=c(t,i,"packages",y),P=c(t,i,"alias",se),C=c(t,i,"loader",se),f=c(t,i,"outExtension",se),h=c(t,i,"publicPath",y),L=c(t,i,"entryNames",y),A=c(t,i,"chunkNames",y),N=c(t,i,"assetNames",y),_=c(t,i,"inject",V),M=c(t,i,"banner",se),I=c(t,i,"footer",se),k=c(t,i,"entryPoints",gi),S=c(t,i,"absWorkingDir",y),U=c(t,i,"stdin",se),D=c(t,i,"write",W)??o,H=c(t,i,"allowOverwrite",W),ne=c(t,i,"mangleCache",se);if(i.plugins=!0,X(t,i,in ${e}() call),p&&s.push(--sourcemap${p===!0?"":=${p}}),d&&s.push("--bundle"),H&&s.push("--allow-overwrite"),w&&s.push("--splitting"),E&&s.push("--preserve-symlinks"),$&&s.push("--metafile"),j&&s.push(--outfile=${j}),O&&s.push(--outdir=${O}),F&&s.push(--outbase=${F}),z&&s.push(--tsconfig=${z}),R&&s.push(--packages=${R}),v){let b=[];for(let q of v){if(ee(q,"resolve extension"),q.indexOf(",")>=0)throw new Error(Invalid resolve extension: ${q});b.push(q)}s.push(--resolve-extensions=${b.join(",")})}if(h&&s.push(--public-path=${h}),L&&s.push(--entry-names=${L}),A&&s.push(--chunk-names=${A}),N&&s.push(--asset-names=${N}),g){let b=[];for(let q of g){if(ee(q,"main field"),q.indexOf(",")>=0)throw new Error(Invalid main field: ${q});b.push(q)}s.push(--main-fields=${b.join(",")})}if(m){let b=[];for(let q of m){if(ee(q,"condition"),q.indexOf(",")>=0)throw new Error(Invalid condition: ${q});b.push(q)}s.push(--conditions=${b.join(",")})}if(T)for(let b of T)s.push(--external:${ee(b,"external")});if(P)for(let b in P){if(b.indexOf("=")>=0)throw new Error(Invalid package name in alias: ${b});s.push(--alias:${b}=${ee(Pb,"alias",b)})}if(M)for(let b in M){if(b.indexOf("=")>=0)throw new Error(Invalid banner file type: ${b});s.push(--banner:${b}=${ee(Mb,"banner",b)})}if(I)for(let b in I){if(b.indexOf("=")>=0)throw new Error(Invalid footer file type: ${b});s.push(--footer:${b}=${ee(Ib,"footer",b)})}if(_)for(let b of _)s.push(--inject:${ee(b,"inject")});if(C)for(let b in C){if(b.indexOf("=")>=0)throw new Error(Invalid loader extension: ${b});s.push(--loader:${b}=${ee(Cb,"loader",b)})}if(f)for(let b in f){if(b.indexOf("=")>=0)throw new Error(Invalid out extension: ${b});s.push(--out-extension:${b}=${ee(fb,"out extension",b)})}if(k)if(Array.isArray(k))for(let b=0,q=k.length;b<q;b++){let oe=k[b];if(typeof oe=="object"&&oe!==null){let de=Object.create(null),me=c(oe,de,"in",y),le=c(oe,de,"out",y);if(X(oe,de,"in entry point at index "+b),me===void 0)throw new Error('Missing property "in" for entry point at index '+b);if(le===void 0)throw new Error('Missing property "out" for entry point at index '+b);a.push([le,me])}else a.push(["",ee(oe,"entry point at index "+b)])}else for(let b in k)a.push([b,ee(k[b],"entry point",b)]);if(U){let b=Object.create(null),q=c(U,b,"contents",on),oe=c(U,b,"resolveDir",y),de=c(U,b,"sourcefile",y),me=c(U,b,"loader",y);X(U,b,'in "stdin" object'),de&&s.push(--sourcefile=${de}),me&&s.push(--loader=${me}),oe&&(u=oe),typeof q=="string"?l=ae(q):q instanceof Uint8Array&&(l=q)}let Y=[];if(x)for(let b of x)b+="",Y.push(b);return{entries:a,flags:s,write:D,stdinContents:l,stdinResolveDir:u,absWorkingDir:S,nodePaths:Y,mangleCache:an(ne)}}function Ei(e,t,r,n){let o=[],s=Object.create(null);Xe(o,t,s,r,n),ln(o,t,s);let a=c(t,s,"sourcemap",nn),i=c(t,s,"sourcefile",y),l=c(t,s,"loader",y),u=c(t,s,"banner",y),p=c(t,s,"footer",y),d=c(t,s,"mangleCache",se);return X(t,s,in ${e}() call),a&&o.push(--sourcemap=${a===!0?"external":a}),i&&o.push(--sourcefile=${i}),l&&o.push(--loader=${l}),u&&o.push(--banner=${u}),p&&o.push(--footer=${p}),{flags:o,mangleCache:an(d)}}function cn(e){let t={},r={didClose:!1,reason:""},n={},o=0,s=0,a=new Uint8Array(16*1024),i=0,l=v=>{let x=i+v.length;if(x>a.length){let m=new Uint8Array(x*2);m.set(a),a=m}a.set(v,i),i+=v.length;let g=0;for(;g+4<=i;){let m=Et(a,g);if(g+4+m>i)break;g+=4,$(a.subarray(g,g+m)),g+=m}g>0&&(a.copyWithin(0,g,i),i-=g)},u=v=>{r.didClose=!0,v&&(r.reason=": "+(v.message||v));let x="The service was stopped"+r.reason;for(let g in n)n[g](x,null);n={}},p=(v,x,g)=>{if(r.didClose)return g("The service is no longer running"+r.reason,null);let m=o++;n[m]=(T,R)=>{try{g(T,R)}finally{v&&v.unref()}},v&&v.ref(),e.writeToStdin(yt({id:m,isRequest:!0,value:x}))},d=(v,x)=>{if(r.didClose)throw new Error("The service is no longer running"+r.reason);e.writeToStdin(yt({id:v,isRequest:!1,value:x}))},w=async(v,x)=>{try{if(x.command==="ping"){d(v,{});return}if(typeof x.key=="number"){let g=t[x.key];if(!g)return;let m=g[x.command];if(m){await m(v,x);return}}throw new Error("Invalid command: "+x.command)}catch(g){let m=[Re(g,e,null,void 0,"")];try{d(v,{errors:m})}catch{}}},E=!0,$=v=>{if(E){E=!1;let g=String.fromCharCode(...v);if(g!==Ue)throw new Error(Cannot start service: Host version "${Ue}" does not match binary version ${Q(g)});return}let x=Qr(v);if(x.isRequest)w(x.id,x.value);else{let g=n[x.id];delete n[x.id],x.value.error?g(x.value.error,{}):g(null,x.value)}};return{readFromStdout:l,afterClose:u,service:{buildOrContext:({callName:v,refs:x,options:g,isTTY:m,defaultWD:T,callback:R})=>{let P=0,C=s++,f={},h={ref(){++P==1&&x&&x.ref()},unref(){--P==0&&(delete t[C],x&&x.unref())}};t[C]=f,h.ref(),vi(v,C,p,d,h,e,f,g,m,T,(L,A)=>{try{R(L,A)}finally{h.unref()}})},transform:({callName:v,refs:x,input:g,options:m,isTTY:T,fs:R,callback:P})=>{let C=pn(),f=h=>{try{if(typeof g!="string"&&!(g instanceof Uint8Array))throw new Error('The input to "transform" must be a string or a Uint8Array');let{flags:L,mangleCache:A}=Ei(v,m,T,Zr),N={command:"transform",flags:L,inputFS:h!==null,input:h!==null?ae(h):typeof g=="string"?ae(g):g};A&&(N.mangleCache=A),p(x,N,(_,M)=>{if(_)return P(new Error(_),null);let I=Ae(M.errors,C),k=Ae(M.warnings,C),S=1,U=()=>{if(--S==0){let D={warnings:k,code:M.code,map:M.map,mangleCache:void 0,legalComments:void 0};"legalComments"in M&&(D.legalComments=M?.legalComments),M.mangleCache&&(D.mangleCache=M?.mangleCache),P(null,D)}};if(I.length>0)return P($e("Transform failed",I,k),null);M.codeFS&&(S++,R.readFile(M.code,(D,H)=>{D!==null?P(D,null):(M.code=H,U())})),M.mapFS&&(S++,R.readFile(M.map,(D,H)=>{D!==null?P(D,null):(M.map=H,U())})),U()})}catch(L){let A=[];try{Xe(A,m,{},T,Zr)}catch{}let N=Re(L,e,C,void 0,"");p(x,{command:"error",flags:A,error:N},()=>{N.detail=C.load(N.detail),P($e("Transform failed",[N],[]),null)})}};if((typeof g=="string"||g instanceof Uint8Array)&&g.length>1024*1024){let h=f;f=()=>R.writeFile(g,h)}f(null)},formatMessages:({callName:v,refs:x,messages:g,options:m,callback:T})=>{if(!m)throw new Error(Missing second argument in ${v}() call);let R={},P=c(m,R,"kind",y),C=c(m,R,"color",W),f=c(m,R,"terminalWidth",Te);if(X(m,R,in ${v}() call),P===void 0)throw new Error(Missing "kind" in ${v}() call);if(P!=="error"&&P!=="warning")throw new Error(Expected "kind" to be "error" or "warning" in ${v}() call);let h={command:"format-msgs",messages:xe(g,"messages",null,"",f),isWarning:P==="warning"};C!==void 0&&(h.color=C),f!==void 0&&(h.terminalWidth=f),p(x,h,(L,A)=>{if(L)return T(new Error(L),null);T(null,A.messages)})},analyzeMetafile:({callName:v,refs:x,metafile:g,options:m,callback:T})=>{m===void 0&&(m={});let R={},P=c(m,R,"color",W),C=c(m,R,"verbose",W);X(m,R,in ${v}() call);let f={command:"analyze-metafile",metafile:g};P!==void 0&&(f.color=P),C!==void 0&&(f.verbose=C),p(x,f,(h,L)=>{if(h)return T(new Error(h),null);T(null,L.result)})}}}}function vi(e,t,r,n,o,s,a,i,l,u,p){let d=pn(),w=e==="context",E=(O,F)=>{let z=[];try{Xe(z,i,{},l,Jr)}catch{}let v=Re(O,s,d,void 0,F);r(o,{command:"error",flags:z,error:v},()=>{v.detail=d.load(v.detail),p($e(w?"Context failed":"Build failed",[v],[]),null)})},$;if(typeof i=="object"){let O=i.plugins;if(O!==void 0){if(!Array.isArray(O))return E(new Error('"plugins" must be an array'),"");$=O}}if($&&$.length>0){if(s.isSync)return E(new Error("Cannot use plugins in synchronous API calls"),"");Li(t,r,n,o,s,a,i,$,d).then(O=>{if(!O.ok)return E(O.error,O.pluginName);try{j(O.requestPlugins,O.runOnEndCallbacks,O.scheduleOnDisposeCallbacks)}catch(F){E(F,"")}},O=>E(O,""));return}try{j(null,(O,F)=>F([],[]),()=>{})}catch(O){E(O,"")}function j(O,F,z){let v=s.hasFS,{entries:x,flags:g,write:m,stdinContents:T,stdinResolveDir:R,absWorkingDir:P,nodePaths:C,mangleCache:f}=wi(e,i,l,Jr,v);if(m&&!s.hasFS)throw new Error('The "write" option is unavailable in this environment');let h={command:"build",key:t,entries:x,flags:g,write:m,stdinContents:T,stdinResolveDir:R,absWorkingDir:P||u,nodePaths:C,context:w};O&&(h.plugins=O),f&&(h.mangleCache=f);let L=(_,M)=>{let I={errors:Ae(_.errors,d),warnings:Ae(_.warnings,d),outputFiles:void 0,metafile:void 0,mangleCache:void 0},k=I.errors.slice(),S=I.warnings.slice();_.outputFiles&&(I.outputFiles=_.outputFiles.map(Ri)),_.metafile&&(I.metafile=JSON.parse(_.metafile)),_.mangleCache&&(I.mangleCache=_.mangleCache),_.writeToStdout!==void 0&&console.log(Oe(_.writeToStdout).replace(/\n$/,"")),F(I,(U,D)=>{if(k.length>0||U.length>0){let H=$e("Build failed",k.concat(U),S.concat(D));return M(H,null,U,D)}M(null,I,U,D)})},A,N;w&&(a["on-end"]=(_,M)=>new Promise(I=>{L(M,(k,S,U,D)=>{let H={errors:U,warnings:D};N&&N(k,S),A=void 0,N=void 0,n(_,H),I()})})),r(o,h,(_,M)=>{if(_)return p(new Error(_),null);if(!w)return L(M,(S,U)=>(z(),p(S,U)));if(M.errors.length>0)return p($e("Context failed",M.errors,M.warnings),null);let I=!1,k={rebuild:()=>(A||(A=new Promise((S,U)=>{let D;N=(ne,Y)=>{D||(D=()=>ne?U(ne):S(Y))};let H=()=>{r(o,{command:"rebuild",key:t},(Y,b)=>{Y?U(new Error(Y)):D?D():H()})};H()})),A),watch:(S={})=>new Promise((U,D)=>{if(!s.hasFS)throw new Error('Cannot use the "watch" API in this environment');X(S,{},"in watch() call"),r(o,{command:"watch",key:t},Y=>{Y?D(new Error(Y)):U(void 0)})}),serve:(S={})=>new Promise((U,D)=>{if(!s.hasFS)throw new Error('Cannot use the "serve" API in this environment');let H={},ne=c(S,H,"port",Te),Y=c(S,H,"host",y),b=c(S,H,"servedir",y),q=c(S,H,"keyfile",y),oe=c(S,H,"certfile",y),de=c(S,H,"fallback",y),me=c(S,H,"onRequest",tn);X(S,H,"in serve() call");let le={command:"serve",key:t,onRequest:!!me};ne!==void 0&&(le.port=ne),Y!==void 0&&(le.host=Y),b!==void 0&&(le.servedir=b),q!==void 0&&(le.keyfile=q),oe!==void 0&&(le.certfile=oe),de!==void 0&&(le.fallback=de),r(o,le,(jt,po)=>{if(jt)return D(new Error(jt));me&&(a["serve-request"]=(uo,mo)=>{me(mo.args),n(uo,{})}),U(po)})}),cancel:()=>new Promise(S=>{if(I)return S();r(o,{command:"cancel",key:t},()=>{S()})}),dispose:()=>new Promise(S=>{if(I)return S();I=!0,r(o,{command:"dispose",key:t},()=>{S(),z(),o.unref()})})};o.ref(),p(null,k)})}}var Li=async(e,t,r,n,o,s,a,i,l)=>{let u=[],p=[],d={},w={},E=[],$=0,j=0,O=[],F=!1;i=[...i];for(let x of i){let g={};if(typeof x!="object")throw new Error(Plugin at index ${j} must be an object);let m=c(x,g,"name",y);if(typeof m!="string"||m==="")throw new Error(Plugin at index ${j} is missing a name);try{let T=c(x,g,"setup",tn);if(typeof T!="function")throw new Error("Plugin is missing a setup function");X(x,g,on plugin ${Q(m)});let R={name:m,onStart:!1,onEnd:!1,onResolve:[],onLoad:[]};j++;let C=T({initialOptions:a,resolve:(f,h={})=>{if(!F)throw new Error('Cannot call "resolve" before plugin setup has completed');if(typeof f!="string")throw new Error("The path to resolve must be a string");let L=Object.create(null),A=c(h,L,"pluginName",y),N=c(h,L,"importer",y),_=c(h,L,"namespace",y),M=c(h,L,"resolveDir",y),I=c(h,L,"kind",y),k=c(h,L,"pluginData",Ve),S=c(h,L,"with",se);return X(h,L,"in resolve() call"),new Promise((U,D)=>{let H={command:"resolve",path:f,key:e,pluginName:m};if(A!=null&&(H.pluginName=A),N!=null&&(H.importer=N),_!=null&&(H.namespace=_),M!=null&&(H.resolveDir=M),I!=null)H.kind=I;else throw new Error('Must specify "kind" when calling "resolve"');k!=null&&(H.pluginData=l.store(k)),S!=null&&(H.with=Ti(S,"with")),t(n,H,(ne,Y)=>{ne!==null?D(new Error(ne)):U({errors:Ae(Y.errors,l),warnings:Ae(Y.warnings,l),path:Y.path,external:Y.external,sideEffects:Y.sideEffects,namespace:Y.namespace,suffix:Y.suffix,pluginData:l.load(Y.pluginData)})})})},onStart(f){let h='This error came from the "onStart" callback registered here:',L=Je(new Error(h),o,"onStart");u.push({name:m,callback:f,note:L}),R.onStart=!0},onEnd(f){let h='This error came from the "onEnd" callback registered here:',L=Je(new Error(h),o,"onEnd");p.push({name:m,callback:f,note:L}),R.onEnd=!0},onResolve(f,h){let L='This error came from the "onResolve" callback registered here:',A=Je(new Error(L),o,"onResolve"),N={},_=c(f,N,"filter",Qe),M=c(f,N,"namespace",y);if(X(f,N,in onResolve() call for plugin ${Q(m)}),_==null)throw new Error("onResolve() call is missing a filter");let I=$++;d[I]={name:m,callback:h,note:A},R.onResolve.push({id:I,filter:_.source,namespace:M||""})},onLoad(f,h){let L='This error came from the "onLoad" callback registered here:',A=Je(new Error(L),o,"onLoad"),N={},_=c(f,N,"filter",Qe),M=c(f,N,"namespace",y);if(X(f,N,in onLoad() call for plugin ${Q(m)}),_==null)throw new Error("onLoad() call is missing a filter");let I=$++;w[I]={name:m,callback:h,note:A},R.onLoad.push({id:I,filter:_.source,namespace:M||""})},onDispose(f){E.push(f)},esbuild:o.esbuild});C&&await C,O.push(R)}catch(T){return{ok:!1,error:T,pluginName:m}}}s["on-start"]=async(x,g)=>{let m={errors:[],warnings:[]};await Promise.all(u.map(async({name:T,callback:R,note:P})=>{try{let C=await R();if(C!=null){if(typeof C!="object")throw new Error(Expected onStart() callback in plugin ${Q(T)} to return an object);let f={},h=c(C,f,"errors",V),L=c(C,f,"warnings",V);X(C,f,from onStart() callback in plugin ${Q(T)}),h!=null&&m.errors.push(...xe(h,"errors",l,T,void 0)),L!=null&&m.warnings.push(...xe(L,"warnings",l,T,void 0))}}catch(C){m.errors.push(Re(C,o,l,P&&P(),T))}})),r(x,m)},s["on-resolve"]=async(x,g)=>{let m={},T="",R,P;for(let C of g.ids)try{({name:T,callback:R,note:P}=d[C]);let f=await R({path:g.path,importer:g.importer,namespace:g.namespace,resolveDir:g.resolveDir,kind:g.kind,pluginData:l.load(g.pluginData),with:g.with});if(f!=null){if(typeof f!="object")throw new Error(Expected onResolve() callback in plugin ${Q(T)} to return an object);let h={},L=c(f,h,"pluginName",y),A=c(f,h,"path",y),N=c(f,h,"namespace",y),_=c(f,h,"suffix",y),M=c(f,h,"external",W),I=c(f,h,"sideEffects",W),k=c(f,h,"pluginData",Ve),S=c(f,h,"errors",V),U=c(f,h,"warnings",V),D=c(f,h,"watchFiles",V),H=c(f,h,"watchDirs",V);X(f,h,from onResolve() callback in plugin ${Q(T)}),m.id=C,L!=null&&(m.pluginName=L),A!=null&&(m.path=A),N!=null&&(m.namespace=N),_!=null&&(m.suffix=_),M!=null&&(m.external=M),I!=null&&(m.sideEffects=I),k!=null&&(m.pluginData=l.store(k)),S!=null&&(m.errors=xe(S,"errors",l,T,void 0)),U!=null&&(m.warnings=xe(U,"warnings",l,T,void 0)),D!=null&&(m.watchFiles=Ze(D,"watchFiles")),H!=null&&(m.watchDirs=Ze(H,"watchDirs"));break}}catch(f){m={id:C,errors:[Re(f,o,l,P&&P(),T)]};break}r(x,m)},s["on-load"]=async(x,g)=>{let m={},T="",R,P;for(let C of g.ids)try{({name:T,callback:R,note:P}=w[C]);let f=await R({path:g.path,namespace:g.namespace,suffix:g.suffix,pluginData:l.load(g.pluginData),with:g.with});if(f!=null){if(typeof f!="object")throw new Error(Expected onLoad() callback in plugin ${Q(T)} to return an object);let h={},L=c(f,h,"pluginName",y),A=c(f,h,"contents",on),N=c(f,h,"resolveDir",y),_=c(f,h,"pluginData",Ve),M=c(f,h,"loader",y),I=c(f,h,"errors",V),k=c(f,h,"warnings",V),S=c(f,h,"watchFiles",V),U=c(f,h,"watchDirs",V);X(f,h,from onLoad() callback in plugin ${Q(T)}),m.id=C,L!=null&&(m.pluginName=L),A instanceof Uint8Array?m.contents=A:A!=null&&(m.contents=ae(A)),N!=null&&(m.resolveDir=N),_!=null&&(m.pluginData=l.store(_)),M!=null&&(m.loader=M),I!=null&&(m.errors=xe(I,"errors",l,T,void 0)),k!=null&&(m.warnings=xe(k,"warnings",l,T,void 0)),S!=null&&(m.watchFiles=Ze(S,"watchFiles")),U!=null&&(m.watchDirs=Ze(U,"watchDirs"));break}}catch(f){m={id:C,errors:[Re(f,o,l,P&&P(),T)]};break}r(x,m)};let z=(x,g)=>g([],[]);p.length>0&&(z=(x,g)=>{(async()=>{let m=[],T=[];for(let{name:R,callback:P,note:C}of p){let f,h;try{let L=await P(x);if(L!=null){if(typeof L!="object")throw new Error(Expected onEnd() callback in plugin ${Q(R)} to return an object);let A={},N=c(L,A,"errors",V),_=c(L,A,"warnings",V);X(L,A,from onEnd() callback in plugin ${Q(R)}),N!=null&&(f=xe(N,"errors",l,R,void 0)),_!=null&&(h=xe(_,"warnings",l,R,void 0))}}catch(L){f=[Re(L,o,l,C&&C(),R)]}if(f){m.push(...f);try{x.errors.push(...f)}catch{}}if(h){T.push(...h);try{x.warnings.push(...h)}catch{}}}g(m,T)})()});let v=()=>{for(let x of E)setTimeout(()=>x(),0)};return F=!0,{ok:!0,requestPlugins:O,runOnEndCallbacks:z,scheduleOnDisposeCallbacks:v}};function pn(){let e=new Map,t=0;return{load(r){return e.get(r)},store(r){if(r===void 0)return-1;let n=t++;return e.set(n,r),n}}}function Je(e,t,r){let n,o=!1;return()=>{if(o)return n;o=!0;try{let s=(e.stack+"").split( );s.splice(1,1);let a=un(t,s,r);if(a)return n={text:e.message,location:a},n}catch{}}}function Re(e,t,r,n,o){let s="Internal error",a=null;try{s=(e&&e.message||e)+""}catch{}try{a=un(t,(e.stack+"").split(
),"")}catch{}return{id:"",pluginName:o,text:s,location:a,notes:n?[n]:[],detail:r?r.store(e):-1}}function un(e,t,r){let n=" at ";if(e.readFileSync&&!t[0].startsWith(n)&&t[1].startsWith(n))for(let o=1;o<t.length;o++){let s=t[o];if(!!s.startsWith(n))for(s=s.slice(n.length);;){let a=/^(?:new |async )?\S+ \((.*)\)$/.exec(s);if(a){s=a[1];continue}if(a=/^eval at \S+ \((.*)\)(?:, \S+:\d+:\d+)?$/.exec(s),a){s=a[1];continue}if(a=/^(\S+):(\d+):(\d+)$/.exec(s),a){let i;try{i=e.readFileSync(a[1],"utf8")}catch{break}let l=i.split(/\r\n|\r|\n|\u2028|\u2029/)[+a[2]-1]||"",u=+a[3]-1,p=l.slice(u,u+r.length)===r?r.length:0;return{file:a[1],namespace:"file",line:+a[2],column:ae(l.slice(0,u)).length,length:ae(l.slice(u,u+p)).length,lineText:l+
+t.slice(1).join(
),suggestion:""}}break}}return null}function $e(e,t,r){let n=5;e+=t.length<1?"": with ${t.length} error${t.length<2?"":"s"}:+t.slice(0,n+1).map((s,a)=>{if(a===n)return
...;if(!s.location)return
${i}:${l}:${u}: ERROR: ${p}${s.text}}).join("");let o=new Error(e);for(let[s,a]of[["errors",t],["warnings",r]])Object.defineProperty(o,s,{configurable:!0,enumerable:!0,get:()=>a,set:i=>Object.defineProperty(o,s,{configurable:!0,enumerable:!0,value:i})});return o}function Ae(e,t){for(let r of e)r.detail=t.load(r.detail);return e}function dn(e,t,r){if(e==null)return null;let n={},o=c(e,n,"file",y),s=c(e,n,"namespace",y),a=c(e,n,"line",Te),i=c(e,n,"column",Te),l=c(e,n,"length",Te),u=c(e,n,"lineText",y),p=c(e,n,"suggestion",y);if(X(e,n,t),u){let d=u.slice(0,(i&&i>0?i:0)+(l&&l>0?l:0)+(r&&r>0?r:80));!/[\x7F-\uFFFF]/.test(d)&&!/\n/.test(u)&&(u=d)}return{file:o||"",namespace:s||"",line:a||0,column:i||0,length:l||0,lineText:u||"",suggestion:p||""}}function xe(e,t,r,n,o){let s=[],a=0;for(let i of e){let l={},u=c(i,l,"id",y),p=c(i,l,"pluginName",y),d=c(i,l,"text",y),w=c(i,l,"location",rn),E=c(i,l,"notes",V),$=c(i,l,"detail",Ve),j=in element ${a} of "${t}";X(i,l,j);let O=[];if(E)for(let F of E){let z={},v=c(F,z,"text",y),x=c(F,z,"location",rn);X(F,z,j),O.push({text:v||"",location:dn(x,j,o)})}s.push({id:u||"",pluginName:p||n,text:d||"",location:dn(w,j,o),notes:O,detail:r?r.store($):-1}),a++}return s}function Ze(e,t){let r=[];for(let n of e){if(typeof n!="string")throw new Error(${Q(t)} must be an array of strings);r.push(n)}return r}function Ti(e,t){let r=Object.create(null);for(let n in e){let o=e[n];if(typeof o!="string")throw new Error(key ${Q(n)} in object ${Q(t)} must be a string);r[n]=o}return r}function Ri({path:e,contents:t,hash:r}){let n=null;return{path:e,contents:t,hash:r,get text(){let o=this.contents;return(n===null||o!==t)&&(t=o,n=Oe(o)),n}}}var ki=Ue,et=e=>rt().build(e),Ci=(e,t)=>rt().transform(e,t),Mi=(e,t)=>rt().formatMessages(e,t),Pi=(e,t)=>rt().analyzeMetafile(e,t);var ke,mn,tt,rt=()=>{if(tt)return tt;throw ke?new Error('You need to wait for the promise returned from "initialize" to be resolved before calling this'):new Error('You need to call "initialize" before calling this')},nt=e=>{e=sn(e||{});let t=e.wasmModule,r=e.workerURL;if(!t)throw new Error('Must provide the "wasmModule" option');if(ke)throw new Error('Cannot call "initialize" more than once');return ke=Si(t,r),ke.catch(()=>{ke=void 0}),ke},Si=async(e,t)=>{let r=new Worker(t.toString(),{type:"module"}),n,o,s=new Promise((l,u)=>{n=l,o=u});r.onmessage=({data:l})=>{r.onmessage=({data:u})=>a(u),l?o(l):n()},r.postMessage(e);let{readFromStdout:a,service:i}=cn({writeToStdin(l){r.postMessage(l)},isSync:!1,hasFS:!1,esbuild:{build:et,transform:Ci,formatMessages:Mi,analyzeMetafile:Pi,version:ki,initialize:nt}});await s,mn=()=>{r.terminate(),ke=void 0,mn=void 0,tt=void 0},tt={build:l=>new Promise((u,p)=>i.buildOrContext({callName:"build",refs:null,options:l,isTTY:!1,defaultWD:"/",callback:(d,w)=>d?p(d):u(w)})),transform:(l,u)=>new Promise((p,d)=>i.transform({callName:"transform",refs:null,input:l,options:u||{},isTTY:!1,fs:{readFile(w,E){E(new Error("Internal error"),null)},writeFile(w,E){E(null)}},callback:(w,E)=>w?d(w):p(E)})),formatMessages:(l,u)=>new Promise((p,d)=>i.formatMessages({callName:"formatMessages",refs:null,messages:l,options:u,callback:(w,E)=>w?d(w):p(E)})),analyzeMetafile:(l,u)=>new Promise((p,d)=>i.analyzeMetafile({callName:"analyzeMetafile",refs:null,metafile:typeof l=="string"?l:JSON.stringify(l),options:u,callback:(w,E)=>w?d(w):p(E)}))}};var fn=!1;scrapbox.addListener("lines:changed",()=>fn=!1);scrapbox.addListener("layout:changed",()=>fn=!1);var gn=(e,t)=>{if(!(e instanceof HTMLDivElement))throw new TypeError("${t}" must be HTMLDivElememt but actual is "${e}")};var hn=(e,t)=>{if(!(e instanceof HTMLTextAreaElement))throw new TypeError("${t}" must be HTMLTextAreaElement but actual is "${e}")};var Lt=()=>_i(document.getElementsByClassName("lines").item(0),"div.lines");var Ie=()=>{let e=document.getElementById("text-input");if(!!e)return hn(e,"textarea#text-input"),e};var _i=(e,t)=>{if(!!e)return gn(e,t),e};var Tt=()=>{let e=Lt();if(!e)throw Error("div.lines is not found.");let t=Object.keys(e).find(r=>r.startsWith("__reactFiber"));if(!t)throw Error('div.lines must has the property whose name starts with "__reactFiber"');return e[t].return.stateNode.props.lines};var Rt=async(e,t)=>{let r=await globalThis.caches.keys();for(let n of r.sort().reverse()){let s=await(await caches.open(n)).match(e,t);if(s)return s}},bn=async(e,t)=>{let r=t.clone();return r.headers.set("X-Serviceworker-Cached",${new Date(r.headers.get("date")??new Date).getTime()}),await(await caches.open($i(new Date))).put(e,r)},$i=e=>api-${e.getFullYear()}-${${e.getMonth()+1}.padStart(2,"0")}-${${e.getDate()}.padStart(2,"0")};var yn=e=>{if(e===0)return;let t={};return e&1&&(t.capture=!0),e&2&&(t.once=!0),e&4&&(t.passive=!0),t};var Bi=new Map,mb=new Map;scrapbox.on("layout:changed",()=>{let e=Ie();if(!!e)for(let[t,r]of Bi)for(let[n,o]of r)for(let s of o)e.addEventListener(t,n,yn(s))});var wn=e=>["ts","js","tsx","jsx","mjs","javascript","typescript"].includes(e),En=e=>{switch(e){case"javascript":case"js":case"mjs":return"js";case"typescript":case"ts":return"ts";case"jsx":return"jsx";case"tsx":return"tsx"}};var vn=e=>!!(Di.includes(e.hostname)||e.hostname.endsWith(".openai.azure.com")),Di=["i.gyazo.com","t.gyazo.com","scrapbox.io","api.openai.com","*.openai.azure.com","maps.googleapis.com","upload.gyazo.com","storage.googleapis.com","sentry.io"];function ot(e){return typeof e=="object"&&e!==null&&e.constructor===Object}function st(e){let t={},r=Object.keys(e).sort((n,o)=>o.length-n.length);for(let n of r)t[n]=e[n];return t}function Ln(e){return ot(e)&&(e.imports!==void 0?kt(e.imports):!0)&&(e.scopes!==void 0?Ct(e.scopes):!0)}function kt(e){return ot(e)}function Ct(e){return ot(e)&&Object.values(e).every(t=>Mt(t))}function Mt(e){return ot(e)}function it(e){try{return new URL(e),!0}catch{return!1}}function Tn(e,t){let r={};for(let[n,o]of Object.entries(e)){let s=Fi(n,t);if(s===null)continue;if(typeof o!="string"){console.warn("addresses need to be strings."),r[s]=null;continue}let a=Pt(o,t);if(a===null){console.warn("the address was invalid."),r[s]=null;continue}if(n.endsWith("/")&&!pe(a).endsWith("/")){console.warn("an invalid address was given for the specifier key specifierKey; since specifierKey ended in a slash, the address needs to as well."),r[s]=null;continue}r[s]=pe(a)}return st(r)}function pe(e){return e.href}function ji(e,t){let r={};for(let[o,s]of Object.entries(e)){if(!Mt(s))throw new TypeError("the value of the scope with prefix scopePrefix needs to be an object.");let a;try{a=new URL(o,t)}catch{console.warn("the scope prefix URL was not parseable.");continue}let i=pe(a);r[i]=Tn(s,t)}let n={};for(let o of Object.keys(r))n[o]=st(r[o]);return st(n)}function Fi(e,t){if(!e.length)return console.warn("specifier key cannot be an empty string."),null;let r=Pt(e,t);return r!==null?pe(r):e}function Pt(e,t){if(t&&(e.startsWith("/")||e.startsWith("./")||e.startsWith("../")))try{return new URL(e,t)}catch{return null}try{return new URL(e)}catch{return null}}var Ki=["ftp","file","http","https","ws","wss"];function zi(e){return Ki.some(t=>pe(e).startsWith(t))}function Rn(e,t,r){for(let[n,o]of Object.entries(r))if(n===e){if(o===null)throw new TypeError("resolution of specifierKey was blocked by a null entry.");if(!it(o))throw new TypeError("resolutionResult must be an URL.");return o}else if(n.endsWith("/")&&e.startsWith(n)&&(t===null||zi(t))){if(o===null)throw new TypeError("resolution of specifierKey was blocked by a null entry.");if(!it(o))throw new TypeError("resolutionResult must be an URL.");let s=e.slice(n.length);if(!o.endsWith("/"))throw new TypeError('resolutionResult does not end with "/"');try{let a=new URL(s,o);if(!it(a))throw new TypeError("url must be an URL.");if(!pe(a).startsWith(o))throw new TypeError("resolution of normalizedSpecifier was blocked due to it backtracking above its prefix specifierKey.");return pe(a)}catch{throw new TypeError("resolution of normalizedSpecifier was blocked since the afterPrefix portion could not be URL-parsed relative to the resolutionResult mapped to by the specifierKey prefix.")}}return null}function St(e,t){let r={};if(!Ln(e))throw new TypeError("the top-level value needs to be a JSON object.");let{imports:n,scopes:o}=e;if(n!==void 0){if(!kt(n))throw new TypeError('"imports" top-level key needs to be an object.');r=Tn(n,t)}let s={};if(o!==void 0){if(!Ct(o))throw new TypeError('"scopes" top-level key needs to be an object.');s=ji(o,t)}return Object.keys(e).find(a=>a!=="imports"&&a!=="scopes")&&console.warn("an invalid top-level key was present in the import map."),{imports:r,scopes:s}}function _t(e,{imports:t={},scopes:r={}},n){let o=pe(n),s=Pt(e,n),a=s!==null?pe(s):e;for(let[l,u]of Object.entries(r))if(l===o||l.endsWith("/")&&o.startsWith(l)){let p=Rn(a,s,u);if(p!==null)return p}let i=Rn(a,s,t);if(i!==null)return i;if(s!==null)return pe(s);throw new TypeError("specifier was a bare specifier, but was not remapped to anything by importMap.")}function te(e){if(typeof e!="string")throw new TypeError(Path must be a string. Received ${JSON.stringify(e)})}function Ot(e,t){if(t.length>=e.length)return e;let r=e.length-t.length;for(let n=t.length-1;n>=0;--n)if(e.charCodeAt(r+n)!==t.charCodeAt(n))return e;return e.slice(0,-t.length)}function At(e,t,r=0){let n=!1,o=e.length;for(let s=e.length-1;s>=r;--s)if(t(e.charCodeAt(s))){if(n){r=s+1;break}}else n||(n=!0,o=s+1);return e.slice(r,o)}function It(e,t){if(te(e),e.length===0)return e;if(typeof t!="string")throw new TypeError(Suffix must be a string. Received ${JSON.stringify(t)})}var kn=65,Cn=97,Mn=90,Pn=122,Ce=46,He=47,at=92;var be=58;function Ne(e,t){if(e.length<=1)return e;let r=e.length;for(let n=e.length-1;n>0&&t(e.charCodeAt(n));n--)r=n;return e.slice(0,r)}function ue(e){return e===He||e===at}function ye(e){return e>=Cn&&e<=Pn||e>=kn&&e<=Mn}function lt(e){if(e=e instanceof URL?e:new URL(e),e.protocol!=="file:")throw new TypeError("Must be a file URL.");return e}function Sn(e){e=lt(e);let t=decodeURIComponent(e.pathname.replace(/\//g,"\\").replace(/%(?![0-9A-Fa-f]{2})/g,"%25")).replace(/^\\*([A-Za-z]:)(\\|$)/,"$1\\");return e.hostname!==""&&(t=\\\\${e.hostname}${t}),t}function Nt(e){te(e);let t=e.length;if(t===0)return!1;let r=e.charCodeAt(0);return ue(r)?!0:!!(ye(r)&&t>2&&e.charCodeAt(1)===be&&ue(e.charCodeAt(2)))}var Qi={" ":"%09","\n":"%0A","\v":"%0B","\f":"%0C","\r":"%0D"," ":"%20"};function ct(e){return e.replaceAll(/[\s]/g,t=>Qi[t]??t)}function An(e){if(!Nt(e))throw new TypeError("Must be an absolute path.");let[,t,r]=e.match(/^(?:[/\\]{2}([^/\\]+)(?=[/\\](?:[^/\\]|$)))?(.*)/),n=new URL("file:///");if(n.pathname=ct(r.replace(/%/g,"%25")),t!==void 0&&t!=="localhost"&&(n.hostname=t,!n.hostname))throw new TypeError("Invalid hostname.");return n}function ie(e){return e===He}function $t(e,t=""){It(e,t);let r=At(e,ie),n=Ne(r,ie);return t?Ot(n,t):n}function Ht(e){te(e);let t=-1,r=0,n=-1,o=!0,s=0;for(let a=e.length-1;a>=0;--a){let i=e.charCodeAt(a);if(ie(i)){if(!o){r=a+1;break}continue}n===-1&&(o=!1,n=a+1),i===Ce?t===-1?t=a:s!==1&&(s=1):t!==-1&&(s=-1)}return t===-1||n===-1||s===0||s===1&&t===n-1&&t===r+1?"":e.slice(t,n)}function Nn(e){return e=lt(e),decodeURIComponent(e.pathname.replace(/%(?![0-9A-Fa-f]{2})/g,"%25"))}function Bt(e){return te(e),e.length>0&&ie(e.charCodeAt(0))}function Un(e){if(!Bt(e))throw new TypeError("Must be an absolute path.");let t=new URL("file:///");return t.pathname=ct(e.replace(/%/g,"%25").replace(/\\/g,"%5C")),t}var aa=(()=>{let{Deno:e}=globalThis;if(typeof e?.build?.os=="string")return e.build.os;let{navigator:t}=globalThis;return t?.appVersion?.includes?.("Win")?"windows":"linux"})(),J=aa==="windows";function Hn(e){return J?Sn(e):Nn(e)}function pt(e){return J?An(e):Un(e)}var Bn={"&":"\\x26","!":"\\x21","#":"\\x23",$:"\\$","%":"\\x25","*":"\\*","+":"\\+",",":"\\x2c",".":"\\.",":":"\\x3a",";":"\\x3b","<":"\\x3c","=":"\\x3d",">":"\\x3e","?":"\\?","@":"\\x40","^":"\\^","":"\\x60","~":"\\x7e","(":"\\(",")":"\\)","[":"\\","":"\\]","{":"\\{","}":"\\}","/":"\\/","-":"\\x2d","\\":"\\\\","|":"\\|"},ca=new RegExp([${Object.values(Bn).join("")}],"gu");function Dn(e){return e.replaceAll(ca,t=>Bnt)}var jn=e=>{if(e.protocol==="file:")return{path:Hn(e),namespace:"file"};let t=e.protocol.slice(0,-1);return{path:e.href.slice(t.length+1),namespace:t}},Fn=e=>e.namespace==="file"?pt(e.path):new URL(${e.namespace}:${e.path});function Be(e){e.hash="",e.search=""}function Kn(e,t){return e=new URL(e),Be(e),$t(e.href,t)}function zn(e){return e=new URL(e),Be(e),Ht(e.pathname)}var pa="base64","binary","copy","css","dataurl","default","empty","file","js","json","jsx","local-css","text","ts","tsx",qn=e=>pa.includes(e),Gn=e=>{let t=e.url,r=Kn(t);if(qn(r))return r;if(r==="mjs")return"js";let n=zn(t).slice(1);if(qn(n))return n;if(n==="mjs")return"js";let s=(e.headers.get("Content-Type")??"text/plain").split(";")0?.trim?.()??"text/plain";return ua(s)},ua=e=>{let t=e.split("/")1??"plain";if(/(?:^plain$|^xml|^svg|^x?html)/.test(t))return"text";if(t.startsWith("json"))return"json";switch(t){case"javascript":return"js";case"typescript":return"ts";case"css":return"css";default:return"text"}};var Wn=e=>({name:"remote-resource",setup({onStart:t,onResolve:r,onLoad:n,initialOptions:o}){let{importMapURL:s,sources:a=[],progressCallback:i}=e??{},l={};t(async()=>{if(!s)return;let d=await Yn(${s},e.fetch,a,e.reload,i);l=St(JSON.parse(d.contents),s)});let u=(o.external??[]).map(d=>new RegExp(Dn(d).replace(/\\\*/g,".*")));r({filter:/.*/},d=>{let w;if(d.importer!==""){if(d.namespace==="")throw new Error("assert namespace is empty");w=new URL(${d.namespace}:${d.importer})}else if(d.resolveDir!=="")w=new URL(${pt(d.resolveDir).href}/);else return;let E;if(l!==null){let j=_t(d.path,l,new URL(w));E=new URL(j)}else E=new URL(d.path,w);let $={type:"resolve",external:!1,path:E.href};d.kind!=="entry-point"&&($.parent=w.href);for(let j of u)if(j.test(E.href))return $.external=!0,i?.($),$;return i?.($),jn(E)});let p=d=>Yn(Fn(d).href,e.fetch,a,e.reload,i);n({filter:/.*/,namespace:"file"},p),n({filter:/.*/,namespace:"http"},p),n({filter:/.*/,namespace:"https"},p),n({filter:/.*/,namespace:"data"},p)}}),Yn=async(e,t,r,n,o)=>{let s=r.find(u=>u.path===e);if(s!==void 0)return o?.({type:"load",path:e,done:Promise.resolve({size:new Blob(s.contents).size,isCache:!0})}),{contents:s.contents,loader:s.loader};let a=n?n===!0?!1:n.some(u=>u.test(e)):!0,i=t(new Request(e),a);o?.({type:"load",path:e,done:i.then((u,p)=>({size:parseInt(u.headers.get("Content-Length")??"0"),isCache:p}))});letl=await i;return{contents:await l.text(),loader:Gn(l)}};var Vn,Qn=async(e,t)=>(Vn??=nt({wasmModule:e,workerURL:t}),await Vn,async(r,{extension:n,fileName:o,dirURL:s})=>{o??=codeblock-${Math.floor(16777214*Math.random()).toString(16)}.${En(n)};let a=${s}${o},{outputFiles:i}=await et({entryPoints:a,format:"esm",bundle:!0,minify:!0,charset:"utf8",plugins:[Wn({fetch:da,reload:new URLPattern({hostname:location.hostname}),new URLPattern({hostname:"scrapbox.io"}),sources:{path:a,contents:r}})],write:!1});return i0.text}),da=async(e,t)=>{let r=vn(new URL(e.url))||!GM_fetch?globalThis.fetch:GM_fetch;if(t){let n=await Rt(e);if(n)return n.url||Object.defineProperty(n,"url",{value:e.url}),n,!0}try{let n=await r(e);if(n.ok)return r===GM_fetch&&await bn(e,n),n,!1;throw new TypeError(${n.status} ${n.statusText})}catch(n){if(!(n instanceof TypeError))throw n;let o=await Rt(e);if(o)return o.url||Object.defineProperty(o,"url",{value:e.url}),o,!0;throw n}};var Xn=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-check-circle-fill"),e.style.color="hsl(133, 46.1%, 47.3%)",e},Jn=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-cross-circle"),e.style.color="hsl(1.7, 64.5%, 58%)",e},Zn=()=>{let e=document.createElement("i");return e.classList.add("i","fa","fa-spinner"),e},eo=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-play"),e};var to=()=>{let e;return{show:(n,{x:o,y:s})=>{e=ma(),e.append(fa(n)),e.style.visibility="hidden",document.body.append(e);let{height:a}=e.getBoundingClientRect();e.style.top=${s-a}px,e.style.left=${o}px,e.style.removeProperty("visibility")},hide:async()=>{e?.classList?.remove?.("in"),await new Promise(n=>setTimeout(n,150)),e?.remove?.()}}},ma=()=>{let e=document.createElement("div");return e.setAttribute("role","tooltip"),e.classList.add("fade","in","tooltip","top"),e},fa=e=>{let t=document.createElement("pre");return t.classList.add("tooltip-inner"),t.style.textAlign="unset",t.style.maxWidth="70vw",t.style.margin="unset",t.innerText=e,t};var ro=()=>{let e=document.createElement("a");e.classList.add("tool-btn"),e.type="button",e.setAttribute("aria-haspopup","true");let t=!1,{show:r,hide:n}=to();return{component:e,setStatus:async(s,a)=>{switch(e.textContent="",await n(),s){case"loading":e.append(Zn());break;case"pass":e.append(Xn());break;case"fail":e.append(Jn());break;case"none":break}a!==void 0&&s!=="none"?(e.style.removeProperty("pointer-events"),e.onclick=async()=>{if(t)await n();else{let{top:i,left:l}=e.getBoundingClientRect();r(a,{y:i+globalThis.scrollY,x:l})}t=!t}):e.style.pointerEvents="none"}}};var no=e=>{let t=document.createElement("a");return t.classList.add("tool-btn"),t.type="button",t.setAttribute("aria-haspopup","true"),t.append(eo()),t.addEventListener("click",e),t};var oo=e=>{let{component:t,setStatus:r}=ro(),n=document.createElement("div");return n.style.position="absolute",n.style.left="-2em",n.style.zIndex="1",n.style.display="flex",n.style.flexFlow="column",n.append(no(e),t),{menu:n,setStatus:r}};function so(e){return new Promise(t=>setTimeout(t,e))}function io(e,t){let{trailing:r=!1,interval:n=0}=t??{},o,s=!1,a=u=>{o?.resolve?.({executed:!1}),o=u},i=()=>{let{...u}=o;return o=void 0,u},l=async()=>{if(s||!o)return;s=!0,n>0&&await so(n);let{parameters:u,resolve:p,reject:d}=i();try{let w=await e(...u);s=!1,p({result:w,executed:!0})}catch(w){s=!1,d(w)}finally{r?await l():(a(),await Promise.resolve())}};return(...u)=>new Promise((p,d)=>{a({parameters:u,resolve:p,reject:d}),l()})}var ao=async(e,t)=>{let r=await Qn(e,t),n=[],s=io(async()=>{let a=Vr(scrapbox.Project.name,scrapbox.Page.title??"",Tt());n.forEach(({menu:i,setStatus:l})=>{l("none"),i.remove()}),a.forEach(i=>{let l=i.lang.toLowerCase();!wn(l)||i.startIds.forEach(u=>{let p=document.getElementById(L${u}),{menu:d,setStatus:w}=oo(async()=>{await w("loading");try{let E=await r(i.lines.join(` ),{extension:l,fileName:i.filename,dirURL:${i.dir}/});console.log("execute:",E),await Function(return (async()=>{${E}})()`)(),await w("pass")}catch(E){await w("fail",E.toString())}});n.push({menu:d,setStatus:w}),p?.insertBefore?.(d,p?.firstElementChild)})}),await Promise.resolve()},{interval:100,trailing:!0});return await s(),scrapbox.addListener("lines:changed",s),()=>{scrapbox.removeListener("lines:changed",s),n.forEach(({menu:a,setStatus:i})=>{i("none"),a.remove()})}};var lo=async(e,t)=>{let r=await globalThis.caches.keys();for(let n of r.sort().reverse()){let s=await(await caches.open(n)).match(e,t);if(s)return s}},co=async(e,t)=>{let n=(await globalThis.caches.keys()).filter(s=>s.startsWith("api")).sort().reverse().at(0);if(!n)return;await(await caches.open(n)).put(e,t.clone())};var ga="https://scrapbox.io/files/666e81c5c7e6f0001c6ab8db.wasm",ha="https://scrapbox.io/api/code/yosider-scripts/esbuild-wasm-no-blob/worker.js";(async()=>{let e=new Request(ga),t=await lo(e)||await xa(e);await ao(await WebAssembly.compileStreaming(t),ha)})();async function xa(e){let t=await fetch(e);return await co(e,t),t} /** @license
* esbuild-wasm@v0.21.5
*
* MIT License
*
* Copyright (c) 2020 Evan Wallace
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/