accompany 0.25.2 → 0.25.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +9 -9
- package/dist/cli.js.map +3 -3
- package/package.json +5 -5
package/dist/cli.js
CHANGED
|
@@ -27,16 +27,16 @@ ${x.join(`
|
|
|
27
27
|
|
|
28
28
|
`),{leaks:k,details:j}}}function i(A){return v?.trackDisposable(A),A}function S(A){v?.markAsDisposed(A)}function a(A,P){v?.setParent(A,P)}function _(A){return typeof A=="object"&&A!==null&&typeof A.dispose=="function"&&A.dispose.length===0}function c(A){if(u.Iterable.is(A)){let P=[];for(let k of A)if(k)try{k.dispose()}catch(M){P.push(M)}if(P.length===1)throw P[0];if(P.length>1)throw AggregateError(P,"Encountered errors while disposing of store");return Array.isArray(A)?[]:A}if(A)return A.dispose(),A}function w(A){let P=i({dispose:(0,l.createSingleCallFunction)(()=>{S(P),A()})});return P}t.DisposableTracker=n;class C{static{this.DISABLE_DISPOSED_WARNING=!1}constructor(){this._toDispose=new Set,this._isDisposed=!1,i(this)}dispose(){this._isDisposed||(S(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{c(this._toDispose)}finally{this._toDispose.clear()}}add(A){if(!A)return A;if(A===this)throw Error("Cannot register a disposable on itself!");return a(A,this),this._isDisposed?C.DISABLE_DISPOSED_WARNING||console.warn(Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(A),A}delete(A){if(A){if(A===this)throw Error("Cannot dispose a disposable on itself!");this._toDispose.delete(A),A.dispose()}}deleteAndLeak(A){A&&this._toDispose.has(A)&&(this._toDispose.delete(A),a(A,null))}}t.DisposableStore=C;class T{static{this.None=Object.freeze({dispose(){}})}constructor(){this._store=new C,i(this),a(this._store,this)}dispose(){S(this),this._store.dispose()}_register(A){if(A===this)throw Error("Cannot register a disposable on itself!");return this._store.add(A)}}t.Disposable=T;class B{constructor(){this._isDisposed=!1,i(this)}get value(){return this._isDisposed?void 0:this._value}set value(A){this._isDisposed||A===this._value||(this._value?.dispose(),A&&a(A,this),this._value=A)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,S(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let A=this._value;return this._value=void 0,A&&a(A,null),A}}t.MutableDisposable=B,t.MandatoryMutableDisposable=class{constructor(A){this._disposable=new B,this._isDisposed=!1,this._disposable.value=A}get value(){return this._disposable.value}set value(A){this._isDisposed||A===this._disposable.value||(this._disposable.value=A)}dispose(){this._isDisposed=!0,this._disposable.dispose()}},t.RefCountedDisposable=class{constructor(A){this._disposable=A,this._counter=1}acquire(){return this._counter++,this}release(){return--this._counter==0&&this._disposable.dispose(),this}},t.SafeDisposable=class{constructor(){this.dispose=()=>{},this.unset=()=>{},this.isset=()=>!1,i(this)}set(A){let P=A;return this.unset=()=>P=void 0,this.isset=()=>P!==void 0,this.dispose=()=>{P&&(P(),P=void 0,S(this))},this}},t.ReferenceCollection=class{constructor(){this.references=new Map}acquire(A,...P){let k=this.references.get(A);k||(k={counter:0,object:this.createReferencedObject(A,...P)},this.references.set(A,k));let{object:M}=k,W=(0,l.createSingleCallFunction)(()=>{--k.counter==0&&(this.destroyReferencedObject(A,k.object),this.references.delete(A))});return k.counter++,{object:M,dispose:W}}},t.AsyncReferenceCollection=class{constructor(A){this.referenceCollection=A}async acquire(A,...P){let k=this.referenceCollection.acquire(A,...P);try{return{object:await k.object,dispose:()=>k.dispose()}}catch(M){throw k.dispose(),M}}},t.ImmortalReference=class{constructor(A){this.object=A}dispose(){}};class O{constructor(){this._store=new Map,this._isDisposed=!1,i(this)}dispose(){S(this),this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{c(this._store.values())}finally{this._store.clear()}}has(A){return this._store.has(A)}get size(){return this._store.size}get(A){return this._store.get(A)}set(A,P,k=!1){this._isDisposed&&console.warn(Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),k||this._store.get(A)?.dispose(),this._store.set(A,P)}deleteAndDispose(A){this._store.get(A)?.dispose(),this._store.delete(A)}deleteAndLeak(A){let P=this._store.get(A);return this._store.delete(A),P}keys(){return this._store.keys()}values(){return this._store.values()}[Symbol.iterator](){return this._store[Symbol.iterator]()}}t.DisposableMap=O},6317:(y,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkedList=void 0;class o{static{this.Undefined=new o(void 0)}constructor(p){this.element=p,this.next=o.Undefined,this.prev=o.Undefined}}class h{constructor(){this._first=o.Undefined,this._last=o.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===o.Undefined}clear(){let p=this._first;for(;p!==o.Undefined;){let f=p.next;p.prev=o.Undefined,p.next=o.Undefined,p=f}this._first=o.Undefined,this._last=o.Undefined,this._size=0}unshift(p){return this._insert(p,!1)}push(p){return this._insert(p,!0)}_insert(p,f){let l=new o(p);if(this._first===o.Undefined)this._first=l,this._last=l;else if(f){let v=this._last;this._last=l,l.prev=v,v.next=l}else{let v=this._first;this._first=l,l.next=v,v.prev=l}this._size+=1;let u=!1;return()=>{u||(u=!0,this._remove(l))}}shift(){if(this._first!==o.Undefined){let p=this._first.element;return this._remove(this._first),p}}pop(){if(this._last!==o.Undefined){let p=this._last.element;return this._remove(this._last),p}}_remove(p){if(p.prev!==o.Undefined&&p.next!==o.Undefined){let f=p.prev;f.next=p.next,p.next.prev=f}else p.prev===o.Undefined&&p.next===o.Undefined?(this._first=o.Undefined,this._last=o.Undefined):p.next===o.Undefined?(this._last=this._last.prev,this._last.next=o.Undefined):p.prev===o.Undefined&&(this._first=this._first.next,this._first.prev=o.Undefined);this._size-=1}*[Symbol.iterator](){let p=this._first;for(;p!==o.Undefined;)yield p.element,p=p.next}}t.LinkedList=h},2608:(y,t)=>{var o;Object.defineProperty(t,"__esModule",{value:!0}),t.SetMap=t.BidirectionalMap=t.CounterSet=t.Touch=void 0,t.getOrSet=function(h,p,f){let l=h.get(p);return l===void 0&&(l=f,h.set(p,l)),l},t.mapToString=function(h){let p=[];return h.forEach((f,l)=>{p.push(`${l} => ${f}`)}),`Map(${h.size}) {${p.join(", ")}}`},t.setToString=function(h){let p=[];return h.forEach((f)=>{p.push(f)}),`Set(${h.size}) {${p.join(", ")}}`},t.mapsStrictEqualIgnoreOrder=function(h,p){if(h===p)return!0;if(h.size!==p.size)return!1;for(let[f,l]of h)if(!p.has(f)||p.get(f)!==l)return!1;for(let[f]of p)if(!h.has(f))return!1;return!0},function(h){h[h.None=0]="None",h[h.AsOld=1]="AsOld",h[h.AsNew=2]="AsNew"}(o||(t.Touch=o={})),t.CounterSet=class{constructor(){this.map=new Map}add(h){return this.map.set(h,(this.map.get(h)||0)+1),this}delete(h){let p=this.map.get(h)||0;return p!==0&&(p--,p===0?this.map.delete(h):this.map.set(h,p),!0)}has(h){return this.map.has(h)}},t.BidirectionalMap=class{constructor(h){if(this._m1=new Map,this._m2=new Map,h)for(let[p,f]of h)this.set(p,f)}clear(){this._m1.clear(),this._m2.clear()}set(h,p){this._m1.set(h,p),this._m2.set(p,h)}get(h){return this._m1.get(h)}getKey(h){return this._m2.get(h)}delete(h){let p=this._m1.get(h);return p!==void 0&&(this._m1.delete(h),this._m2.delete(p),!0)}forEach(h,p){this._m1.forEach((f,l)=>{h.call(p,f,l,this)})}keys(){return this._m1.keys()}values(){return this._m1.values()}},t.SetMap=class{constructor(){this.map=new Map}add(h,p){let f=this.map.get(h);f||(f=new Set,this.map.set(h,f)),f.add(p)}delete(h,p){let f=this.map.get(h);f&&(f.delete(p),f.size===0&&this.map.delete(h))}forEach(h,p){let f=this.map.get(h);f&&f.forEach(p)}get(h){return this.map.get(h)||new Set}}},9725:(y,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StopWatch=void 0;let o=globalThis.performance&&typeof globalThis.performance.now=="function";class h{static create(p){return new h(p)}constructor(p){this._now=o&&p===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}}t.StopWatch=h}},r={};function s(y){var t=r[y];if(t!==void 0)return t.exports;var o=r[y]={exports:{}};return e[y].call(o.exports,o,o.exports,s),o.exports}var d={};(()=>{var y=d;Object.defineProperty(y,"__esModule",{value:!0}),y.Terminal=void 0;let t=s(5101),o=s(6097),h=s(4335),p=s(5856),f=s(3027),l=s(7150),u=["cols","rows"];class v extends l.Disposable{constructor(n){super(),this._core=this._register(new p.Terminal(n)),this._addonManager=this._register(new f.AddonManager),this._publicOptions={...this._core.options};let i=(a)=>this._core.options[a],S=(a,_)=>{this._checkReadonlyOptions(a),this._core.options[a]=_};for(let a in this._core.options){Object.defineProperty(this._publicOptions,a,{get:()=>this._core.options[a],set:(c)=>{this._checkReadonlyOptions(a),this._core.options[a]=c}});let _={get:i.bind(this,a),set:S.bind(this,a)};Object.defineProperty(this._publicOptions,a,_)}}_checkReadonlyOptions(n){if(u.includes(n))throw Error(`Option "${n}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.options.allowProposedApi)throw Error("You must set the allowProposedApi option to true to use proposed API")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onLineFeed(){return this._core.onLineFeed}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get parser(){return this._checkProposedApi(),this._parser||(this._parser=new o.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new h.UnicodeApi(this._core)}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._checkProposedApi(),this._buffer||(this._buffer=this._register(new t.BufferNamespaceApi(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){let n=this._core.coreService.decPrivateModes,i="none";switch(this._core.coreMouseService.activeProtocol){case"X10":i="x10";break;case"VT200":i="vt200";break;case"DRAG":i="drag";break;case"ANY":i="any"}return{applicationCursorKeysMode:n.applicationCursorKeys,applicationKeypadMode:n.applicationKeypad,bracketedPasteMode:n.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:i,originMode:n.origin,reverseWraparoundMode:n.reverseWraparound,sendFocusMode:n.sendFocus,synchronizedOutputMode:n.synchronizedOutput,wraparoundMode:n.wraparound}}get options(){return this._publicOptions}set options(n){for(let i in n)this._publicOptions[i]=n[i]}input(n,i=!0){this._core.input(n,i)}resize(n,i){this._verifyIntegers(n,i),this._core.resize(n,i)}registerMarker(n=0){return this._checkProposedApi(),this._verifyIntegers(n),this._core.addMarker(n)}addMarker(n){return this.registerMarker(n)}dispose(){super.dispose()}scrollLines(n){this._verifyIntegers(n),this._core.scrollLines(n)}scrollPages(n){this._verifyIntegers(n),this._core.scrollPages(n)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(n){this._verifyIntegers(n),this._core.scrollToLine(n)}clear(){this._core.clear()}write(n,i){this._core.write(n,i)}writeln(n,i){this._core.write(n),this._core.write(`\r
|
|
29
29
|
`,i)}reset(){this._core.reset()}loadAddon(n){this._addonManager.loadAddon(this,n)}_verifyIntegers(...n){for(let i of n)if(i===1/0||isNaN(i)||i%1!=0)throw Error("This API only accepts integers")}}y.Terminal=v})();var m=Er;for(var g in d)m[g]=d[g];d.__esModule&&Object.defineProperty(m,"__esModule",{value:!0})})()});if(!Bun.semver.satisfies(Bun.version,">=1.4.0"))console.error(`Accompany: Bun ${"1.4.0"} \u4EE5\u4E0A\u304C\u5FC5\u8981\u3067\u3059\uFF08\u3044\u307E\u306E Bun: ${Bun.version}\uFF09\u3002
|
|
30
|
-
`+"`bun upgrade` \u3067 Bun \u3092\u4E0A\u3052\u308B\u304B\u3001Bun \u306E\u8981\u3089\u306A\u3044\u5B9F\u884C\u30D5\u30A1\u30A4\u30EB\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044: "+"https://github.com/itsuki-yamada/accompany/releases"),process.exit(1);var Le=(e)=>("server"in e.env)?e.env.server:e.env;var et=(e)=>{let r=e.split("/");if(r[0]==="")r.shift();return r},jt=(e)=>{let{groups:r,path:s}=xs(e),d=et(s);return Es(d,r)},xs=(e)=>{let r=[];return e=e.replace(/\{[^}]+\}/g,(s,d)=>{let m=`@${d}`;return r.push([m,s]),m}),{groups:r,path:e}},Es=(e,r)=>{for(let s=r.length-1;s>=0;s--){let[d]=r[s];for(let m=e.length-1;m>=0;m--)if(e[m].includes(d)){e[m]=e[m].replace(d,r[s][1]);break}}return e},Te={},zt=(e,r)=>{if(e==="*")return"*";let s=e.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(s){let d=`${e}#${r}`;if(!Te[d])if(s[2])Te[d]=r&&r[0]!==":"&&r[0]!=="*"?[d,s[1],new RegExp(`^${s[2]}(?=/${r})`)]:[e,s[1],new RegExp(`^${s[2]}$`)];else Te[d]=[e,s[1],!0];return Te[d]}return null},qt=(e,r)=>{try{return r(e)}catch{return e.replace(/(?:%[0-9A-Fa-f]{2})+/g,(s)=>{try{return r(s)}catch{return s}})}},Gt=(e)=>qt(e,decodeURI),tt=(e)=>{let r=e.url,s=r.indexOf("/",r.indexOf(":")+4),d=s;for(;d<r.length;d++){let m=r.charCodeAt(d);if(m===37){let g=r.indexOf("?",d),y=r.indexOf("#",d),t=g===-1?y===-1?void 0:y:y===-1?g:Math.min(g,y),o=r.slice(s,t);return Gt(o.includes("%25")?o.replace(/%25/g,"%2525"):o)}else if(m===63||m===35)break}return r.slice(s,d)};var Xt=(e)=>{let r=tt(e);return r.length>1&&r.at(-1)==="/"?r.slice(0,-1):r},fe=(e,r,...s)=>{if(s.length)r=fe(r,...s);return`${e?.[0]==="/"?"":"/"}${e}${r==="/"?"":`${e?.at(-1)==="/"?"":"/"}${r?.[0]==="/"?r.slice(1):r}`}`},Re=(e)=>{if(e.charCodeAt(e.length-1)!==63||!e.includes(":"))return null;let r=e.split("/"),s=[],d="";return r.forEach((m)=>{if(m!==""&&!/\:/.test(m))d+="/"+m;else if(/\:/.test(m))if(m.charCodeAt(m.length-1)===63){if(s.length===0&&d==="")s.push("/");else s.push(d);let g=m.slice(0,-1);d+="/"+g,s.push(d)}else d+="/"+m}),s.filter((m,g,y)=>y.indexOf(m)===g)},Be=(e)=>e.indexOf("%")!==-1?qt(e,As):e,Ze=(e)=>{if(e.indexOf("+")!==-1)e=e.replace(/\+/g," ");return Be(e)},Vt=(e,r,s)=>{let d=e.indexOf("#",8);if(d!==-1)e=e.slice(0,d);let m;if(!s&&r&&r.indexOf("%")===-1&&r.indexOf("+")===-1){let t=e.indexOf("?",8),o=t;if(o===-1)return;if(!e.startsWith(r,o+1))o=e.indexOf(`&${r}`,o+1);while(o!==-1){let h=e.charCodeAt(o+r.length+1);if(h===61||h===38||isNaN(h)){if(o>t&&/(?:^|&)[^=&]*[%+]/.test(e.slice(t+1,o)))break;if(h===61){let p=o+r.length+2,f=e.indexOf("&",p);return Ze(e.slice(p,f===-1?void 0:f))}return""}o=e.indexOf(`&${r}`,o+1)}if(m=/[%+]/.test(e),!m)return}let g=Object.create(null);m??=/[%+]/.test(e);let y=e.indexOf("?",8);while(y!==-1){let t=e.indexOf("&",y+1),o=e.indexOf("=",y);if(o>t&&t!==-1)o=-1;let h=e.slice(y+1,o===-1?t===-1?void 0:t:o);if(m)h=Ze(h);if(y=t,h==="")continue;let p;if(o===-1)p="";else if(p=e.slice(o+1,t===-1?void 0:t),m)p=Ze(p);if(s){if(!(g[h]&&Array.isArray(g[h])))g[h]=[];g[h].push(p)}else g[h]??=p}return r?g[r]:g},Qt=Vt,Kt=(e,r)=>Vt(e,r,!0),As=decodeURIComponent;var ks={br:".br",zstd:".zst",gzip:".gz"},yn=Object.keys(ks);var Yt=["get","post","put","delete","options","patch","query"],De="Can not add a route since the matcher is already built.",Pe=class extends Error{};var rt="__COMPOSED_HANDLER";var Jt="x-hono-disable-ssg",Un=(()=>{try{return new Response("SSG is disabled",{status:404,headers:{[Jt]:"true"}})}catch{return null}})();var Zt={Stringify:1,BeforeStream:2,Stream:3},er=(e,r)=>{let s=new String(e);return s.isEscaped=!0,s.callbacks=r,s};var st=async(e,r,s,d,m)=>{if(typeof e==="object"&&!(e instanceof String)){if(!(e instanceof Promise))e=e.toString();if(e instanceof Promise)e=await e}let g=e.callbacks;if(!g?.length)return Promise.resolve(e);if(m)m[0]+=e;else m=[e];let y=Promise.all(g.map((t)=>t({phase:r,buffer:m,context:d}))).then((t)=>Promise.all(t.filter(Boolean).map((o)=>st(o,r,!1,d,m))).then(()=>m[0]));if(s)return er(await y,g);else return y};var{write:Do}=Bun;var tr=class{#e;constructor(e){this.#e=e,this.raw=e.raw,this.url=e.url?new URL(e.url):null,this.protocol=e.protocol??null}send(e,r){this.#e.send(e,r??{})}raw;binaryType="arraybuffer";get readyState(){return this.#e.readyState}url;protocol;close(e,r){this.#e.close(e,r)}},rr=(e)=>new MessageEvent("message",{data:e}),sr=(e)=>(...r)=>{if(typeof r[0]==="function"){let[s,d]=r;return async function(g,y){let t=await e(g,await s(g),d);if(t)return t;await y()}}else{let[s,d,m]=r;return(async()=>{let g=await e(s,d,m);if(!g)throw Error("Failed to upgrade WebSocket");return g})()}};var it=(e)=>new tr({send:(r,s)=>{e.send(r,s?.compress)},raw:e,readyState:e.readyState,url:e.data.url,protocol:e.data.protocol,close(r,s){e.close(r,s)}}),Me=sr((e,r)=>{let s=Le(e);if(!s)throw TypeError("env has to include the 2nd argument of fetch.");if(s.upgrade(e.req.raw,{data:{events:r,url:new URL(e.req.url),protocol:e.req.header("sec-websocket-protocol")?.split(",")[0]?.trim()??""}}))return new Response(null)}),nt={open(e){let r=e.data.events;if(r.onOpen)r.onOpen(new Event("open"),it(e))},close(e,r,s){let d=e.data.events;if(d.onClose)d.onClose(new CloseEvent("close",{code:r,reason:s}),it(e))},message(e,r){let s=e.data.events;if(s.onMessage){let d=typeof r==="string"?r:r.buffer;s.onMessage(rr(d),it(e))}}};var ot=class extends Error{res;status;constructor(e=500,r){super(r?.message,{cause:r?.cause});this.res=r?.res,this.status=e}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}};var ir=Symbol();var nr=(e,r)=>new Response(e,{headers:{"Content-Type":r.replace(/^[^;]+/,(s)=>s.toLowerCase())}}).formData();var Bs=1e4,Oe=(e)=>("headers"in e),cr=async(e,r=Object.create(null))=>{let{all:s=!1,dot:d=!1}=r,m=(Oe(e)?e.headers:e.raw.headers).get("Content-Type")?.split(";")[0].trim().toLowerCase();if(m==="multipart/form-data"||m==="application/x-www-form-urlencoded")return Ds(e,{all:s,dot:d});return{}};async function Ds(e,r){if(!Oe(e)&&e.bodyCache.formData)return or(await e.bodyCache.formData,r);let s=Oe(e)?e.headers:e.raw.headers,d=await e.arrayBuffer(),m=nr(d,s.get("Content-Type")||"");if(!Oe(e))e.bodyCache.formData=m;let g=await m;if(g)return or(g,r);return{}}function or(e,r){let s=Object.create(null),d={count:0};if(e.forEach((m,g)=>{if(!(r.all||g.endsWith("[]")))s[g]=m;else Ps(s,g,m)}),r.dot)Object.entries(s).forEach(([m,g])=>{if(m.includes("."))Ms(s,m,g,d),delete s[m]});return s}var Ps=(e,r,s)=>{if(e[r]!==void 0)if(Array.isArray(e[r]))e[r].push(s);else e[r]=[e[r],s];else if(!r.endsWith("[]"))e[r]=s;else e[r]=[s]},Ms=(e,r,s,d)=>{if(/(?:^|\.)__proto__\./.test(r))return;let m=e,g=r.split(".",34);if(g.length>33)ar();g.forEach((y,t)=>{if(t===g.length-1)m[y]=s;else{if(!m[y]||typeof m[y]!=="object"||Array.isArray(m[y])||m[y]instanceof File){if(d.count++>=Bs)ar();m[y]=Object.create(null)}m=m[y]}})},ar=()=>{throw Error("Nesting limit exceeded")};var hr=class{raw;#e;#t;routeIndex=0;path;bodyCache={};constructor(e,r="/",s=[[]]){this.raw=e,this.path=r,this.#t=s}param(e){return e?this.#r(e):this.#n()}#r(e){let r=this.#t[0][this.routeIndex]?.[1][e],s=this.#s(r);return s&&Be(s)}#n(){let e={},r=Object.keys(this.#t[0][this.routeIndex]?.[1]??{});for(let s of r){let d=this.#s(this.#t[0][this.routeIndex][1][s]);if(d!==void 0)e[s]=Be(d)}return e}#s(e){return this.#t[1]?this.#t[1][e]:e}query(e){return Qt(this.url,e)}queries(e){return Kt(this.url,e)}header(e){if(e)return this.raw.headers.get(e)??void 0;let r=Object.create(null);return this.raw.headers.forEach((s,d)=>{r[d]=s}),r}async parseBody(e){return cr(this,e)}#i=(e)=>{let{bodyCache:r,raw:s}=this,d=r[e];if(d)return d;for(let m in r)return r[m].then((g)=>{if(m==="json")g=JSON.stringify(g);let y=m==="formData"?void 0:s.headers.get("content-type");return new Response(g,{headers:y?{"Content-Type":y}:void 0})[e]()});return r[e]=s[e]()};json(){return this.#i("text").then((e)=>JSON.parse(e))}text(){return this.#i("text")}arrayBuffer(){return this.#i("arrayBuffer")}bytes(){return this.#i("arrayBuffer").then((e)=>new Uint8Array(e))}blob(){return this.#i("blob")}formData(){return this.#i("formData")}addValidatedData(e,r){(this.#e??={})[e]=r}valid(e){return this.#e?.[e]}get url(){return this.raw.url}get method(){return this.raw.method}get[ir](){return this.#t}get matchedRoutes(){return this.#t[0].map(([[,e]])=>e)}get routePath(){return this.#t[0].map(([[,e]])=>e)[this.routeIndex].path}};var Os="text/plain; charset=UTF-8",at=(e,r)=>({"Content-Type":e,...r}),ye=(e,r)=>new Response(e,r),ct=class{#e;#t;env={};#r;finalized=!1;error;#n;#s;#i;#l;#c;#h;#a;#u;#f;constructor(e,r){if(this.#e=e,r)this.#s=r.executionCtx,this.env=r.env,this.#h=r.notFoundHandler,this.#f=r.path,this.#u=r.matchResult}get req(){return this.#t??=new hr(this.#e,this.#f,this.#u),this.#t}get event(){if(this.#s&&"respondWith"in this.#s)return this.#s;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#s)return this.#s;else throw Error("This context has no ExecutionContext")}get res(){return this.#i||=ye(null,{headers:this.#a??=new Headers})}set res(e){if(this.#i&&e){e=ye(e.body,e);for(let[r,s]of this.#i.headers.entries()){if(r==="content-type")continue;if(r==="set-cookie"){let d=this.#i.headers.getSetCookie();e.headers.delete("set-cookie");for(let m of d)e.headers.append("set-cookie",m)}else e.headers.set(r,s)}}this.#i=e,this.finalized=!0}render=(...e)=>(this.#c??=(r)=>this.html(r),this.#c(...e));setLayout=(e)=>this.#l=e;getLayout=()=>this.#l;setRenderer=(e)=>{this.#c=e};header=(e,r,s)=>{if(this.finalized)this.#i=ye(this.#i.body,this.#i);let d=this.#i?this.#i.headers:this.#a??=new Headers;if(r===void 0)d.delete(e);else if(s?.append)d.append(e,r);else d.set(e,r)};status=(e)=>{this.#n=e};set=(e,r)=>{this.#r??=new Map,this.#r.set(e,r)};get=(e)=>this.#r?this.#r.get(e):void 0;get var(){if(!this.#r)return{};return Object.fromEntries(this.#r)}#o(e,r,s){let d=this.#i?new Headers(this.#i.headers):this.#a;if(typeof r==="object"&&r.headers){d??=new Headers;for(let[g,y]of new Headers(r.headers))if(g==="set-cookie")d.append(g,y);else d.set(g,y)}if(s){if(!d){let g=0;for(let y in s)if(++g>1||typeof s[y]!=="string"){d=new Headers;break}}if(d)for(let g in s){let y=s[g];if(typeof y==="string")d.set(g,y);else{d.delete(g);for(let t of y)d.append(g,t)}}}let m=typeof r==="number"?r:r?.status??this.#n;return ye(e,{status:m,headers:d??s})}newResponse=(...e)=>this.#o(...e);body=(e,r,s)=>this.#o(e,r,s);text=(e,r,s)=>!this.#a&&!this.#n&&!r&&!s&&!this.finalized?new Response(e):this.#o(e,r,at(Os,s));json=(e,r,s)=>this.#o(JSON.stringify(e),r,at("application/json",s));html=(e,r,s)=>{let d=(m)=>this.#o(m,r,at("text/html; charset=UTF-8",s));return typeof e==="object"?st(e,Zt.Stringify,!1,{}).then(d):d(e)};redirect=(e,r)=>{let s=String(e);return this.header("Location",!/[^\x00-\xFF]/.test(s)?s:encodeURI(s)),this.newResponse(null,r??302)};notFound=()=>(this.#h??=()=>ye(),this.#h(this))};var ht=(e,r,s)=>(d,m)=>{let g=-1;return y(0);async function y(t){if(t<=g)throw Error("next() called multiple times");g=t;let o,h=!1,p;if(e[t])p=e[t][0][0],d.req.routeIndex=t;else p=t===e.length&&m||void 0;if(p)try{o=await p(d,()=>y(t+1))}catch(f){if(f instanceof Error&&r)d.error=f,o=await r(f,d),h=!0;else throw f}else if(d.finalized===!1&&s)o=await s(d);if(o&&(d.finalized===!1||h))d.res=o;return d}};var Is=(e)=>e.text("404 Not Found",404),lr=(e,r)=>{if("getResponse"in e){let s=e.getResponse();return r.newResponse(s.body,s)}return console.error(e),r.text("Internal Server Error",500)},ur=class e{get;post;put;delete;options;patch;query;all;on;use;router;getPath;_basePath="/";#e="/";routes=[];constructor(r={}){[...Yt,"all"].forEach((m)=>{this[m]=(g,...y)=>{let t=m.toUpperCase();if(typeof g==="string")this.#e=g;else this.#n(t,this.#e,g);return y.forEach((o)=>{this.#n(t,this.#e,o)}),this}}),this.on=(m,g,...y)=>{for(let t of[g].flat()){this.#e=t;for(let o of[m].flat()){let h=o.toUpperCase();for(let p of y)this.#n(h,this.#e,p)}}return this},this.use=(m,...g)=>{if(typeof m==="string")this.#e=m;else this.#e="*",g.unshift(m);return g.forEach((y)=>{this.#n("ALL",this.#e,y)}),this};let{strict:s,...d}=r;Object.assign(this,d),this.getPath=s??!0?r.getPath??tt:Xt}#t(){let r=new e({router:this.router,getPath:this.getPath});return r.errorHandler=this.errorHandler,r.#r=this.#r,r.routes=this.routes,r}#r=Is;errorHandler=lr;route(r,s){let d=this.basePath(r);return s.routes.map((m)=>{let g;if(s.errorHandler===lr)g=m.handler;else g=async(y,t)=>(await ht([],s.errorHandler)(y,()=>m.handler(y,t))).res,g[rt]=m.handler;d.#n(m.method,m.path,g,m.basePath)}),this}basePath(r){let s=this.#t();return s._basePath=fe(this._basePath,r),s}onError=(r)=>(this.errorHandler=r,this);notFound=(r)=>(this.#r=r,this);mount(r,s,d){let m,g;if(d)if(typeof d==="function")g=d;else if(g=d.optionHandler,d.replaceRequest===!1)m=(o)=>o;else m=d.replaceRequest;let y=g?(o)=>{let h=g(o);return Array.isArray(h)?h:[h]}:(o)=>{let h=void 0;try{h=o.executionCtx}catch{}return[o.env,h]};m||=(()=>{let o=fe(this._basePath,r),h=o==="/"?0:o.length;return(p)=>{let f=new URL(p.url);return f.pathname=this.getPath(p).slice(h)||"/",new Request(f,p)}})();let t=async(o,h)=>{let p=await s(m(o.req.raw),...y(o));if(p)return p;await h()};return this.#n("ALL",fe(r,"*"),t),this}#n(r,s,d,m){s=fe(this._basePath,s);let g={basePath:m!==void 0?fe(this._basePath,m):this._basePath,path:s,method:r,handler:d};this.router.add(r,s,[d,g]),this.routes.push(g)}#s(r,s){if(r instanceof Error)return this.errorHandler(r,s);throw r}#i(r,s,d,m){if(m==="HEAD")return(async()=>new Response(null,await this.#i(r,s,d,"GET")))();let g=this.getPath(r,{env:d}),y=this.router.match(m,g),t=new ct(r,{path:g,matchResult:y,env:d,executionCtx:s,notFoundHandler:this.#r});if(y[0].length===1){let h;try{h=y[0][0][0][0](t,async()=>{t.res=await this.#r(t)})}catch(p){return this.#s(p,t)}return h instanceof Promise?h.then((p)=>p||(t.finalized?t.res:this.#r(t))).catch((p)=>this.#s(p,t)):h??this.#r(t)}let o=ht(y[0],this.errorHandler,this.#r);return(async()=>{try{let h=await o(t);if(!h.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return h.res}catch(h){return this.#s(h,t)}})()}fetch=(r,...s)=>this.#i(r,s[1],s[0],r.method);request=(r,s,d,m)=>{if(r instanceof Request)return this.fetch(s?new Request(r,s):r,d,m);return r=r.toString(),this.fetch(new Request(/^https?:\/\//.test(r)?r:`http://localhost${fe("/",r)}`,s),d,m)};fire=()=>{addEventListener("fetch",(r)=>{r.respondWith(this.#i(r.request,r,void 0,r.request.method))})}};var Q=()=>Object.create(null);var Ie=[];function lt(e,r){let s=this.buildAllMatchers(),d=(m,g)=>{let y=s[m]||s.ALL,t=y[2][g];if(t)return t;let o=g.match(y[0]);if(!o)return[[],Ie];let h=o.indexOf("",1);return[y[1][h],o]};return this.match=d,d(e,r)}var ut="[^/]+";var ft="(?:|/.*)",de=Symbol(),fr=new Set(".\\+*[^]$()");function Hs(e,r){if(e.length===1)return r.length===1?e<r?-1:1:-1;if(r.length===1)return 1;if(e===".*"||e==="(?:|/.*)")return r==="(?:|/.*)"?-1:1;else if(r===".*"||r==="(?:|/.*)")return-1;if(e==="[^/]+")return 1;else if(r==="[^/]+")return-1;return e.length===r.length?e<r?-1:1:r.length-e.length}var dr=class e{#e;#t;#r=Q();insert(r,s,d,m,g){let y=this;for(let t=0,o=r.length;t<o;t++){let h=r[t],p=h.length===1?h==="*"?t===o-1?["","",".*"]:["","",ut]:null:h==="/*"?["","",ft]:h.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),f;if(p){let l=p[1],u=p[2]||"[^/]+";if(l&&p[2]){if(u===".*")throw de;if(u=u.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(u))throw de;if(u.length===1&&fr.has(u))throw de}if(f=y.#r[u],!f){if(u!==".*"&&u!=="(?:|/.*)"){for(let v in y.#r)if((u.length>1||v.length>1)&&v!==".*"&&v!=="(?:|/.*)")throw de}f=y.#r[u]=new e}if(l!=="")f.#t??=m.varIndex++,d.push([l,f.#t])}else if(f=y.#r[h],!f){for(let l in y.#r)if(l.length>1&&l!==".*"&&l!=="(?:|/.*)")throw de;f=y.#r[h]=new e}y=f}if(y.#e!==void 0)throw de;y.#e=g?-1:s}buildRegExpStr(){let r=Object.keys(this.#r).sort(Hs).map((s)=>{let d=this.#r[s],m=d.buildRegExpStr();return m===""?"":(typeof d.#t==="number"?`(${s})@${d.#t}`:fr.has(s)?`\\${s}`:s)+m}).filter(Boolean);if(typeof this.#e==="number"&&this.#e!==-1)r.unshift(`#${this.#e}`);if(r.length===0)return"";if(r.length===1)return r[0];return"(?:"+r.join("|")+")"}};var dt=class{#e={varIndex:0};#t=new dr;#r=0;paths=Q();insert(e,r){if(r){this.#t.insert(e.split(""),0,[],this.#e,!0);return}let s=[],d=[],m=e;for(let y=0;;){let t=!1;if(m=m.replace(/\{[^}]+\}/g,(o)=>{let h=`@\\${y}`;return d[y]=[h,o],y++,t=!0,h}),!t)break}let g=m.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let y=d.length-1;y>=0;y--){let[t]=d[y];for(let o=g.length-1;o>=0;o--)if(g[o].indexOf(t)!==-1){g[o]=g[o].replace(t,d[y][1]);break}}this.#t.insert(g,this.#r,s,this.#e,!1),this.paths[e]=[this.#r++,s]}buildRegExp(){let e=this.#t.buildRegExpStr();if(e==="")return[/^$/,[],[]];let r=0,s=[],d=[];return e=e.replace(/#(\d+)|@(\d+)|\.\*\$/g,(m,g,y)=>{if(g!==void 0)return s[++r]=Number(g),"$()";if(y!==void 0)return d[Number(y)]=++r,"";return""}),[new RegExp(`^${e}`),s,d]}};var pr=Q();function _r(e){return pr[e]??=new RegExp(`^${e.replace(/\/:[^/{}]+(?:\{\[\^\/]\+})?(?=[/{]|$)|\/?\*$|([.\\+*[^\]$()?{}|])/g,(r,s)=>s?`\\${s}`:r==="/*"?ft:r==="*"?".*":`/:${ut}`)}$`)}function He(e,r){for(let s of Object.keys(e).sort((d,m)=>m.length-d.length))if(_r(s).test(r))return[...e[s]]}var Ne=class{name="RegExpRouter";#e;#t;#r;constructor(){this.#e={["ALL"]:Q()},this.#t={["ALL"]:Q()},this.#r={["ALL"]:new dt}}#n(e,r){try{this.#r[e].insert(r,!/\*|\/:/.test(r))}catch(s){throw s===de?new Pe(r):s}}add(e,r,s){let d=this.#e,m=this.#t;if(!d)throw Error(De);if(!d[e]){this.#r[e]=new dt;for(let t of[d,m]){t[e]=Q();for(let o in t.ALL)t[e][o]=[...t.ALL[o]],this.#n(e,o)}}if(r==="/*")r="*";let g=e==="ALL"?Object.keys(d):[e];if(/\*$/.test(r)){let t=_r(r);for(let o of g)if(!d[o][r])this.#n(o,r),d[o][r]=He(d[o],r)||He(d.ALL,r)||[];for(let o of[d,m])for(let h of g)for(let p in o[h])t.test(p)&&o[h][p].push([s,r]);return}let y=Re(r)||[r];for(let t of y)for(let o of g){if(!m[o][t])this.#n(o,t),m[o][t]=He(d[o],t)||He(d.ALL,t)||[];m[o][t].push([s,t])}}match=lt;buildAllMatchers(){let e=Q();for(let r of Object.keys(this.#t))e[r]=this.#s(r);return this.#e=this.#t=this.#r=void 0,pr=Q(),e}#s(e){let r=this.#e[e],s=this.#t[e],d=this.#r[e],m=Q(),g=[],[y,t,o]=d.buildRegExp();for(let h of[r,s])for(let p in h){let f=h[p],l=d.paths[p];if(!l){m[p]=[f.map(([u])=>[u,Q()]),Ie];continue}g[l[0]]=f.map(([u,v])=>[u,d.paths[v][1].reduceRight((n,[i],S)=>(n[i]=o[l[1][S][1]],n),Q())])}return[y,t.map((h)=>g[h]),m]}};var gr=class{name="SmartRouter";#e=[];#t=[];constructor(e){this.#e=e.routers}add(e,r,s){if(!this.#t)throw Error(De);this.#t.push([e,r,s])}match(e,r){if(!this.#t)throw Error("Fatal error");let s=this.#e,d=this.#t,m=s.length,g=0,y;for(;g<m;g++){let t=s[g];try{for(let o=0,h=d.length;o<h;o++)t.add(...d[o]);y=t.match(e,r)}catch(o){if(o instanceof Pe)continue;throw o}this.match=t.match.bind(t),this.#e=[t],this.#t=void 0;break}if(g===m)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,y}get activeRouter(){if(this.#t||this.#e.length!==1)throw Error("No active router has been determined yet.");return this.#e[0]}};var pt=Q(),Ns=0,mr=class e{#e=[];#t=Q();#r=[];#n;#s=pt;insert(r,s,d){let m=this,g=jt(s),y=new Set,t=0;for(let o of g){let h=g[++t],p=zt(o,h)||(h===void 0&&o&&o.indexOf("*")===o.length-1?o:null),f=Array.isArray(p),l=f?p[0]:p||o,u=m.#t[l]||=new e;if(p&&!u.#n)u.#n=p,m.#r.push(u);if(m=u,f)y.add(p[1])}m.#e.push({[r]:{handler:d,possibleKeys:[...y],score:++Ns}})}#i(r,s,d,m,g){for(let y=0,t=s.#e.length;y<t;y++){let o=s.#e[y],h=o[d]||o.ALL;if(h){h.params=Q(),r.push(h);for(let p=0,f=h.possibleKeys.length;p<f;p++){let l=h.possibleKeys[p];h.params[l]=g?.[l]&&!p?g[l]:m[l]??g?.[l]}}}}search(r,s){let d=[];this.#s=pt;let m=[this],g=et(s),y=[],t=g.length,o=null;for(let h=0;h<t;h++){let p=g[h],f=h===t-1,l=[];for(let v=0,n=m.length;v<n;v++){let i=m[v],S=i.#t[p];if(S)if(S.#s=i.#s,f){if(S.#t["*"])this.#i(d,S.#t["*"],r,i.#s);this.#i(d,S,r,i.#s)}else l.push(S);for(let a of i.#r){let _=a.#n,c=i.#s===pt?{}:{...i.#s};if(typeof _==="string"){if(_==="*"||p.startsWith(_.slice(0,-1))){if(this.#i(d,a,r,i.#s),_==="*")a.#s=c,l.push(a)}continue}let[,w,C]=_;if(!p&&C===!0)continue;if(C!==!0){if(!o){o=[];let O=s[0]==="/"?1:0;for(let A=0;A<t;A++)o[A]=O,O+=g[A].length+1}let T=s.slice(o[h]),B=C.exec(T);if(B){if(!Object.hasOwn(c,w))c[w]=B[0];if(this.#i(d,a,r,i.#s,c),B[0].length===T.length&&a.#t["*"])this.#i(d,a.#t["*"],r,i.#s,c);for(let O in a.#t){a.#s=c;let A=B[0].match(/\//g)?.length??0;(y[A]||=[]).push(a);break}continue}}if(C===!0||C.test(p)){if(!Object.hasOwn(c,w))c[w]=p;if(f){if(this.#i(d,a,r,c,i.#s),a.#t["*"])this.#i(d,a.#t["*"],r,c,i.#s)}else a.#s=c,l.push(a)}}}let u=y.shift();m=u?l.concat(u):l}if(d[1])d.sort((h,p)=>h.score-p.score);return[d.map(({handler:h,params:p})=>[h,p])]}};var _t=class{name="TrieRouter";#e=new mr;add(e,r,s){for(let d of Re(r)||[r])this.#e.insert(e,d,s)}match(e,r){return this.#e.search(e,r)}};var Fe=class extends ur{constructor(e={}){super(e);this.router=e.router??new gr({routers:[new Ne,new _t]})}};var Fs="Payload Too Large",vr=(e)=>{let r=e.onError||(()=>{let d=new Response(Fs,{status:413});throw new ot(413,{res:d})}),s=e.maxSize;return async function(m,g){if(!m.req.raw.body)return g();let y=m.req.raw.headers.has("transfer-encoding");if(m.req.raw.headers.has("content-length")&&!y)return parseInt(m.req.raw.headers.get("content-length")||"0",10)>s?r(m):g();let t=0,o=[],h=m.req.raw.body.getReader();for(;;){let{done:f,value:l}=await h.read();if(f)break;if(t+=l.length,t>s)return r(m);o.push(l)}let p={body:new ReadableStream({start(f){for(let l of o)f.enqueue(l);f.close()}}),duplex:"half"};return m.req.raw=new Request(m.req.raw,p),g()}};var yr=(e)=>e;var K=0,Y=0,J=0,V=0,ee;((e)=>{function r(m,g,y,t){return t!==void 0?`#${pe(m)}${pe(g)}${pe(y)}${pe(t)}`:`#${pe(m)}${pe(g)}${pe(y)}`}e.toCss=r;function s(m,g,y,t=255){return(m<<24|g<<16|y<<8|t)>>>0}e.toRgba=s;function d(m,g,y,t){return{css:e.toCss(m,g,y,t),rgba:e.toRgba(m,g,y,t)}}e.toColor=d})(ee||={});var Ws;((e)=>{function r(o,h){if(V=(h.rgba&255)/255,V===1)return{css:h.css,rgba:h.rgba};let p=h.rgba>>24&255,f=h.rgba>>16&255,l=h.rgba>>8&255,u=o.rgba>>24&255,v=o.rgba>>16&255,n=o.rgba>>8&255;K=u+Math.round((p-u)*V),Y=v+Math.round((f-v)*V),J=n+Math.round((l-n)*V);let i=ee.toCss(K,Y,J),S=ee.toRgba(K,Y,J);return{css:i,rgba:S}}e.blend=r;function s(o){return(o.rgba&255)===255}e.isOpaque=s;function d(o,h,p){let f=We.ensureContrastRatio(o.rgba,h.rgba,p);if(f)return ee.toColor(f>>24&255,f>>16&255,f>>8&255)}e.ensureContrastRatio=d;function m(o){let h=(o.rgba|255)>>>0;return[K,Y,J]=We.toChannels(h),{css:ee.toCss(K,Y,J),rgba:h}}e.opaque=m;function g(o,h){return V=Math.round(h*255),[K,Y,J]=We.toChannels(o.rgba),{css:ee.toCss(K,Y,J,V),rgba:ee.toRgba(K,Y,J,V)}}e.opacity=g;function y(o,h){return V=o.rgba&255,g(o,V*h/255)}e.multiplyOpacity=y;function t(o){return[o.rgba>>24&255,o.rgba>>16&255,o.rgba>>8&255]}e.toColorRGB=t})(Ws||={});var Z;((e)=>{let r,s;try{let m=document.createElement("canvas");m.width=1,m.height=1;let g=m.getContext("2d",{willReadFrequently:!0});g&&(r=g,r.globalCompositeOperation="copy",s=r.createLinearGradient(0,0,1,1))}catch{}function d(m){if(m.match(/#[\da-f]{3,8}/i))switch(m.length){case 4:return K=parseInt(m.slice(1,2).repeat(2),16),Y=parseInt(m.slice(2,3).repeat(2),16),J=parseInt(m.slice(3,4).repeat(2),16),ee.toColor(K,Y,J);case 5:return K=parseInt(m.slice(1,2).repeat(2),16),Y=parseInt(m.slice(2,3).repeat(2),16),J=parseInt(m.slice(3,4).repeat(2),16),V=parseInt(m.slice(4,5).repeat(2),16),ee.toColor(K,Y,J,V);case 7:return{css:m,rgba:(parseInt(m.slice(1),16)<<8|255)>>>0};case 9:return{css:m,rgba:parseInt(m.slice(1),16)>>>0}}let g=m.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(g)return K=parseInt(g[1]),Y=parseInt(g[2]),J=parseInt(g[3]),V=Math.round((g[5]===void 0?1:parseFloat(g[5]))*255),ee.toColor(K,Y,J,V);if(!r||!s)throw Error("css.toColor: Unsupported css format");if(r.fillStyle=s,r.fillStyle=m,typeof r.fillStyle!="string")throw Error("css.toColor: Unsupported css format");if(r.fillRect(0,0,1,1),[K,Y,J,V]=r.getImageData(0,0,1,1).data,V!==255)throw Error("css.toColor: Unsupported css format");return{rgba:ee.toRgba(K,Y,J,V),css:m}}e.toColor=d})(Z||={});var te;((e)=>{function r(d){return s(d>>16&255,d>>8&255,d&255)}e.relativeLuminance=r;function s(d,m,g){let y=d/255,t=m/255,o=g/255,h=y<=0.03928?y/12.92:Math.pow((y+0.055)/1.055,2.4),p=t<=0.03928?t/12.92:Math.pow((t+0.055)/1.055,2.4),f=o<=0.03928?o/12.92:Math.pow((o+0.055)/1.055,2.4);return h*0.2126+p*0.7152+f*0.0722}e.relativeLuminance2=s})(te||={});var We;((e)=>{function r(y,t){if(V=(t&255)/255,V===1)return t;let o=t>>24&255,h=t>>16&255,p=t>>8&255,f=y>>24&255,l=y>>16&255,u=y>>8&255;return K=f+Math.round((o-f)*V),Y=l+Math.round((h-l)*V),J=u+Math.round((p-u)*V),ee.toRgba(K,Y,J)}e.blend=r;function s(y,t,o){let h=te.relativeLuminance(y>>8),p=te.relativeLuminance(t>>8);if(ce(h,p)<o){if(p<h){let u=d(y,t,o),v=ce(h,te.relativeLuminance(u>>8));if(v<o){let n=m(y,t,o),i=ce(h,te.relativeLuminance(n>>8));return v>i?u:n}return u}let f=m(y,t,o),l=ce(h,te.relativeLuminance(f>>8));if(l<o){let u=d(y,t,o),v=ce(h,te.relativeLuminance(u>>8));return l>v?f:u}return f}}e.ensureContrastRatio=s;function d(y,t,o){let h=y>>24&255,p=y>>16&255,f=y>>8&255,l=t>>24&255,u=t>>16&255,v=t>>8&255,n=ce(te.relativeLuminance2(l,u,v),te.relativeLuminance2(h,p,f));for(;n<o&&(l>0||u>0||v>0);)l-=Math.max(0,Math.ceil(l*0.1)),u-=Math.max(0,Math.ceil(u*0.1)),v-=Math.max(0,Math.ceil(v*0.1)),n=ce(te.relativeLuminance2(l,u,v),te.relativeLuminance2(h,p,f));return(l<<24|u<<16|v<<8|255)>>>0}e.reduceLuminance=d;function m(y,t,o){let h=y>>24&255,p=y>>16&255,f=y>>8&255,l=t>>24&255,u=t>>16&255,v=t>>8&255,n=ce(te.relativeLuminance2(l,u,v),te.relativeLuminance2(h,p,f));for(;n<o&&(l<255||u<255||v<255);)l=Math.min(255,l+Math.ceil((255-l)*0.1)),u=Math.min(255,u+Math.ceil((255-u)*0.1)),v=Math.min(255,v+Math.ceil((255-v)*0.1)),n=ce(te.relativeLuminance2(l,u,v),te.relativeLuminance2(h,p,f));return(l<<24|u<<16|v<<8|255)>>>0}e.increaseLuminance=m;function g(y){return[y>>24&255,y>>16&255,y>>8&255,y&255]}e.toChannels=g})(We||={});function pe(e){let r=e.toString(16);return r.length<2?"0"+r:r}function ce(e,r){return e<r?(r+0.05)/(e+0.05):(e+0.05)/(r+0.05)}var Us=Object.freeze((()=>{let e=[Z.toColor("#2e3436"),Z.toColor("#cc0000"),Z.toColor("#4e9a06"),Z.toColor("#c4a000"),Z.toColor("#3465a4"),Z.toColor("#75507b"),Z.toColor("#06989a"),Z.toColor("#d3d7cf"),Z.toColor("#555753"),Z.toColor("#ef2929"),Z.toColor("#8ae234"),Z.toColor("#fce94f"),Z.toColor("#729fcf"),Z.toColor("#ad7fa8"),Z.toColor("#34e2e2"),Z.toColor("#eeeeec")],r=[0,95,135,175,215,255];for(let s=0;s<216;s++){let d=r[s/36%6|0],m=r[s/6%6|0],g=r[s%6];e.push({css:ee.toCss(d,m,g),rgba:ee.toRgba(d,m,g)})}for(let s=0;s<24;s++){let d=8+s*10;e.push({css:ee.toCss(d,d,d),rgba:ee.toRgba(d,d,d)})}return e})());function br(e,r,s){return Math.max(r,Math.min(e,s))}function $s(e){switch(e){case"&":return"&";case"<":return"<"}return e}var wr=class{constructor(e){this._buffer=e}serialize(e,r){let s=this._buffer.getNullCell(),d=this._buffer.getNullCell(),m=s,g=e.start.y,y=e.end.y,t=e.start.x,o=e.end.x;this._beforeSerialize(y-g,g,y);for(let h=g;h<=y;h++){let p=this._buffer.getLine(h);if(p){let f=h===e.start.y?t:0,l=h===e.end.y?o:p.length;for(let u=f;u<l;u++){let v=p.getCell(u,m===s?d:s);if(!v){console.warn(`Can't get cell at row=${h}, col=${u}`);continue}this._nextCell(v,m,h,u),m=v}}this._rowEnd(h,h===y)}return this._afterSerialize(),this._serializeString(r)}_nextCell(e,r,s,d){}_rowEnd(e,r){}_beforeSerialize(e,r,s){}_afterSerialize(){}_serializeString(e){return""}};function Sr(e,r){return e.getFgColorMode()===r.getFgColorMode()&&e.getFgColor()===r.getFgColor()}function he(e,r){return e.getBgColorMode()===r.getBgColorMode()&&e.getBgColor()===r.getBgColor()}function Cr(e,r){return e.isInverse()===r.isInverse()&&e.isBold()===r.isBold()&&e.isUnderline()===r.isUnderline()&&e.isOverline()===r.isOverline()&&e.isBlink()===r.isBlink()&&e.isInvisible()===r.isInvisible()&&e.isItalic()===r.isItalic()&&e.isDim()===r.isDim()&&e.isStrikethrough()===r.isStrikethrough()}var js=class extends wr{constructor(e,r){super(e);this._terminal=r,this._rowIndex=0,this._allRows=[],this._allRowSeparators=[],this._currentRow="",this._nullCellCount=0,this._cursorStyle=this._buffer.getNullCell(),this._cursorStyleRow=0,this._cursorStyleCol=0,this._backgroundCell=this._buffer.getNullCell(),this._firstRow=0,this._lastCursorRow=0,this._lastCursorCol=0,this._lastContentCursorRow=0,this._lastContentCursorCol=0,this._thisRowLastChar=this._buffer.getNullCell(),this._thisRowLastSecondChar=this._buffer.getNullCell(),this._nextRowFirstChar=this._buffer.getNullCell()}_beforeSerialize(e,r,s){this._allRows=Array(e),this._lastContentCursorRow=r,this._lastCursorRow=r,this._firstRow=r}_rowEnd(e,r){this._nullCellCount>0&&!he(this._cursorStyle,this._backgroundCell)&&(this._currentRow+=`\x1B[${this._nullCellCount}X`);let s="";if(!r){e-this._firstRow>=this._terminal.rows&&this._buffer.getLine(this._cursorStyleRow)?.getCell(this._cursorStyleCol,this._backgroundCell);let d=this._buffer.getLine(e),m=this._buffer.getLine(e+1);if(!m.isWrapped)s=`\r
|
|
30
|
+
`+"`bun upgrade` \u3067 Bun \u3092\u4E0A\u3052\u308B\u304B\u3001Bun \u306E\u8981\u3089\u306A\u3044\u5B9F\u884C\u30D5\u30A1\u30A4\u30EB\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044: "+"https://github.com/itsuki-yamada/accompany/releases"),process.exit(1);var Le=(e)=>("server"in e.env)?e.env.server:e.env;var et=(e)=>{let r=e.split("/");if(r[0]==="")r.shift();return r},jt=(e)=>{let{groups:r,path:s}=xs(e),d=et(s);return Es(d,r)},xs=(e)=>{let r=[];return e=e.replace(/\{[^}]+\}/g,(s,d)=>{let m=`@${d}`;return r.push([m,s]),m}),{groups:r,path:e}},Es=(e,r)=>{for(let s=r.length-1;s>=0;s--){let[d]=r[s];for(let m=e.length-1;m>=0;m--)if(e[m].includes(d)){e[m]=e[m].replace(d,r[s][1]);break}}return e},Te={},zt=(e,r)=>{if(e==="*")return"*";let s=e.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(s){let d=`${e}#${r}`;if(!Te[d])if(s[2])Te[d]=r&&r[0]!==":"&&r[0]!=="*"?[d,s[1],new RegExp(`^${s[2]}(?=/${r})`)]:[e,s[1],new RegExp(`^${s[2]}$`)];else Te[d]=[e,s[1],!0];return Te[d]}return null},qt=(e,r)=>{try{return r(e)}catch{return e.replace(/(?:%[0-9A-Fa-f]{2})+/g,(s)=>{try{return r(s)}catch{return s}})}},Gt=(e)=>qt(e,decodeURI),tt=(e)=>{let r=e.url,s=r.indexOf("/",r.indexOf(":")+4),d=s;for(;d<r.length;d++){let m=r.charCodeAt(d);if(m===37){let g=r.indexOf("?",d),y=r.indexOf("#",d),t=g===-1?y===-1?void 0:y:y===-1?g:Math.min(g,y),o=r.slice(s,t);return Gt(o.includes("%25")?o.replace(/%25/g,"%2525"):o)}else if(m===63||m===35)break}return r.slice(s,d)};var Xt=(e)=>{let r=tt(e);return r.length>1&&r.at(-1)==="/"?r.slice(0,-1):r},fe=(e,r,...s)=>{if(s.length)r=fe(r,...s);return`${e?.[0]==="/"?"":"/"}${e}${r==="/"?"":`${e?.at(-1)==="/"?"":"/"}${r?.[0]==="/"?r.slice(1):r}`}`},Re=(e)=>{if(e.charCodeAt(e.length-1)!==63||!e.includes(":"))return null;let r=e.split("/"),s=[],d="";return r.forEach((m)=>{if(m!==""&&!/\:/.test(m))d+="/"+m;else if(/\:/.test(m))if(m.charCodeAt(m.length-1)===63){if(s.length===0&&d==="")s.push("/");else s.push(d);let g=m.slice(0,-1);d+="/"+g,s.push(d)}else d+="/"+m}),s.filter((m,g,y)=>y.indexOf(m)===g)},Be=(e)=>e.indexOf("%")!==-1?qt(e,As):e,Ze=(e)=>{if(e.indexOf("+")!==-1)e=e.replace(/\+/g," ");return Be(e)},Vt=(e,r,s)=>{let d=e.indexOf("#",8);if(d!==-1)e=e.slice(0,d);let m;if(!s&&r&&r.indexOf("%")===-1&&r.indexOf("+")===-1){let t=e.indexOf("?",8),o=t;if(o===-1)return;if(!e.startsWith(r,o+1))o=e.indexOf(`&${r}`,o+1);while(o!==-1){let h=e.charCodeAt(o+r.length+1);if(h===61||h===38||isNaN(h)){if(o>t&&/(?:^|&)[^=&]*[%+]/.test(e.slice(t+1,o)))break;if(h===61){let p=o+r.length+2,f=e.indexOf("&",p);return Ze(e.slice(p,f===-1?void 0:f))}return""}o=e.indexOf(`&${r}`,o+1)}if(m=/[%+]/.test(e),!m)return}let g=Object.create(null);m??=/[%+]/.test(e);let y=e.indexOf("?",8);while(y!==-1){let t=e.indexOf("&",y+1),o=e.indexOf("=",y);if(o>t&&t!==-1)o=-1;let h=e.slice(y+1,o===-1?t===-1?void 0:t:o);if(m)h=Ze(h);if(y=t,h==="")continue;let p;if(o===-1)p="";else if(p=e.slice(o+1,t===-1?void 0:t),m)p=Ze(p);if(s){if(!(g[h]&&Array.isArray(g[h])))g[h]=[];g[h].push(p)}else g[h]??=p}return r?g[r]:g},Qt=Vt,Kt=(e,r)=>Vt(e,r,!0),As=decodeURIComponent;var ks={br:".br",zstd:".zst",gzip:".gz"},bn=Object.keys(ks);var Yt=["get","post","put","delete","options","patch","query"],De="Can not add a route since the matcher is already built.",Pe=class extends Error{};var rt="__COMPOSED_HANDLER";var Jt="x-hono-disable-ssg",$n=(()=>{try{return new Response("SSG is disabled",{status:404,headers:{[Jt]:"true"}})}catch{return null}})();var Zt={Stringify:1,BeforeStream:2,Stream:3},er=(e,r)=>{let s=new String(e);return s.isEscaped=!0,s.callbacks=r,s};var st=async(e,r,s,d,m)=>{if(typeof e==="object"&&!(e instanceof String)){if(!(e instanceof Promise))e=e.toString();if(e instanceof Promise)e=await e}let g=e.callbacks;if(!g?.length)return Promise.resolve(e);if(m)m[0]+=e;else m=[e];let y=Promise.all(g.map((t)=>t({phase:r,buffer:m,context:d}))).then((t)=>Promise.all(t.filter(Boolean).map((o)=>st(o,r,!1,d,m))).then(()=>m[0]));if(s)return er(await y,g);else return y};var{write:Po}=Bun;var tr=class{#e;constructor(e){this.#e=e,this.raw=e.raw,this.url=e.url?new URL(e.url):null,this.protocol=e.protocol??null}send(e,r){this.#e.send(e,r??{})}raw;binaryType="arraybuffer";get readyState(){return this.#e.readyState}url;protocol;close(e,r){this.#e.close(e,r)}},rr=(e)=>new MessageEvent("message",{data:e}),sr=(e)=>(...r)=>{if(typeof r[0]==="function"){let[s,d]=r;return async function(g,y){let t=await e(g,await s(g),d);if(t)return t;await y()}}else{let[s,d,m]=r;return(async()=>{let g=await e(s,d,m);if(!g)throw Error("Failed to upgrade WebSocket");return g})()}};var it=(e)=>new tr({send:(r,s)=>{e.send(r,s?.compress)},raw:e,readyState:e.readyState,url:e.data.url,protocol:e.data.protocol,close(r,s){e.close(r,s)}}),Me=sr((e,r)=>{let s=Le(e);if(!s)throw TypeError("env has to include the 2nd argument of fetch.");if(s.upgrade(e.req.raw,{data:{events:r,url:new URL(e.req.url),protocol:e.req.header("sec-websocket-protocol")?.split(",")[0]?.trim()??""}}))return new Response(null)}),nt={open(e){let r=e.data.events;if(r.onOpen)r.onOpen(new Event("open"),it(e))},close(e,r,s){let d=e.data.events;if(d.onClose)d.onClose(new CloseEvent("close",{code:r,reason:s}),it(e))},message(e,r){let s=e.data.events;if(s.onMessage){let d=typeof r==="string"?r:r.buffer;s.onMessage(rr(d),it(e))}}};var ot=class extends Error{res;status;constructor(e=500,r){super(r?.message,{cause:r?.cause});this.res=r?.res,this.status=e}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}};var ir=Symbol();var nr=(e,r)=>new Response(e,{headers:{"Content-Type":r.replace(/^[^;]+/,(s)=>s.toLowerCase())}}).formData();var Bs=1e4,Oe=(e)=>("headers"in e),cr=async(e,r=Object.create(null))=>{let{all:s=!1,dot:d=!1}=r,m=(Oe(e)?e.headers:e.raw.headers).get("Content-Type")?.split(";")[0].trim().toLowerCase();if(m==="multipart/form-data"||m==="application/x-www-form-urlencoded")return Ds(e,{all:s,dot:d});return{}};async function Ds(e,r){if(!Oe(e)&&e.bodyCache.formData)return or(await e.bodyCache.formData,r);let s=Oe(e)?e.headers:e.raw.headers,d=await e.arrayBuffer(),m=nr(d,s.get("Content-Type")||"");if(!Oe(e))e.bodyCache.formData=m;let g=await m;if(g)return or(g,r);return{}}function or(e,r){let s=Object.create(null),d={count:0};if(e.forEach((m,g)=>{if(!(r.all||g.endsWith("[]")))s[g]=m;else Ps(s,g,m)}),r.dot)Object.entries(s).forEach(([m,g])=>{if(m.includes("."))Ms(s,m,g,d),delete s[m]});return s}var Ps=(e,r,s)=>{if(e[r]!==void 0)if(Array.isArray(e[r]))e[r].push(s);else e[r]=[e[r],s];else if(!r.endsWith("[]"))e[r]=s;else e[r]=[s]},Ms=(e,r,s,d)=>{if(/(?:^|\.)__proto__\./.test(r))return;let m=e,g=r.split(".",34);if(g.length>33)ar();g.forEach((y,t)=>{if(t===g.length-1)m[y]=s;else{if(!m[y]||typeof m[y]!=="object"||Array.isArray(m[y])||m[y]instanceof File){if(d.count++>=Bs)ar();m[y]=Object.create(null)}m=m[y]}})},ar=()=>{throw Error("Nesting limit exceeded")};var hr=class{raw;#e;#t;routeIndex=0;path;bodyCache={};constructor(e,r="/",s=[[]]){this.raw=e,this.path=r,this.#t=s}param(e){return e?this.#r(e):this.#n()}#r(e){let r=this.#t[0][this.routeIndex]?.[1][e],s=this.#s(r);return s&&Be(s)}#n(){let e={},r=Object.keys(this.#t[0][this.routeIndex]?.[1]??{});for(let s of r){let d=this.#s(this.#t[0][this.routeIndex][1][s]);if(d!==void 0)e[s]=Be(d)}return e}#s(e){return this.#t[1]?this.#t[1][e]:e}query(e){return Qt(this.url,e)}queries(e){return Kt(this.url,e)}header(e){if(e)return this.raw.headers.get(e)??void 0;let r=Object.create(null);return this.raw.headers.forEach((s,d)=>{r[d]=s}),r}async parseBody(e){return cr(this,e)}#i=(e)=>{let{bodyCache:r,raw:s}=this,d=r[e];if(d)return d;for(let m in r)return r[m].then((g)=>{if(m==="json")g=JSON.stringify(g);let y=m==="formData"?void 0:s.headers.get("content-type");return new Response(g,{headers:y?{"Content-Type":y}:void 0})[e]()});return r[e]=s[e]()};json(){return this.#i("text").then((e)=>JSON.parse(e))}text(){return this.#i("text")}arrayBuffer(){return this.#i("arrayBuffer")}bytes(){return this.#i("arrayBuffer").then((e)=>new Uint8Array(e))}blob(){return this.#i("blob")}formData(){return this.#i("formData")}addValidatedData(e,r){(this.#e??={})[e]=r}valid(e){return this.#e?.[e]}get url(){return this.raw.url}get method(){return this.raw.method}get[ir](){return this.#t}get matchedRoutes(){return this.#t[0].map(([[,e]])=>e)}get routePath(){return this.#t[0].map(([[,e]])=>e)[this.routeIndex].path}};var Os="text/plain; charset=UTF-8",at=(e,r)=>({"Content-Type":e,...r}),ye=(e,r)=>new Response(e,r),ct=class{#e;#t;env={};#r;finalized=!1;error;#n;#s;#i;#l;#c;#h;#a;#u;#f;constructor(e,r){if(this.#e=e,r)this.#s=r.executionCtx,this.env=r.env,this.#h=r.notFoundHandler,this.#f=r.path,this.#u=r.matchResult}get req(){return this.#t??=new hr(this.#e,this.#f,this.#u),this.#t}get event(){if(this.#s&&"respondWith"in this.#s)return this.#s;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#s)return this.#s;else throw Error("This context has no ExecutionContext")}get res(){return this.#i||=ye(null,{headers:this.#a??=new Headers})}set res(e){if(this.#i&&e){e=ye(e.body,e);for(let[r,s]of this.#i.headers.entries()){if(r==="content-type")continue;if(r==="set-cookie"){let d=this.#i.headers.getSetCookie();e.headers.delete("set-cookie");for(let m of d)e.headers.append("set-cookie",m)}else e.headers.set(r,s)}}this.#i=e,this.finalized=!0}render=(...e)=>(this.#c??=(r)=>this.html(r),this.#c(...e));setLayout=(e)=>this.#l=e;getLayout=()=>this.#l;setRenderer=(e)=>{this.#c=e};header=(e,r,s)=>{if(this.finalized)this.#i=ye(this.#i.body,this.#i);let d=this.#i?this.#i.headers:this.#a??=new Headers;if(r===void 0)d.delete(e);else if(s?.append)d.append(e,r);else d.set(e,r)};status=(e)=>{this.#n=e};set=(e,r)=>{this.#r??=new Map,this.#r.set(e,r)};get=(e)=>this.#r?this.#r.get(e):void 0;get var(){if(!this.#r)return{};return Object.fromEntries(this.#r)}#o(e,r,s){let d=this.#i?new Headers(this.#i.headers):this.#a;if(typeof r==="object"&&r.headers){d??=new Headers;for(let[g,y]of new Headers(r.headers))if(g==="set-cookie")d.append(g,y);else d.set(g,y)}if(s){if(!d){let g=0;for(let y in s)if(++g>1||typeof s[y]!=="string"){d=new Headers;break}}if(d)for(let g in s){let y=s[g];if(typeof y==="string")d.set(g,y);else{d.delete(g);for(let t of y)d.append(g,t)}}}let m=typeof r==="number"?r:r?.status??this.#n;return ye(e,{status:m,headers:d??s})}newResponse=(...e)=>this.#o(...e);body=(e,r,s)=>this.#o(e,r,s);text=(e,r,s)=>!this.#a&&!this.#n&&!r&&!s&&!this.finalized?new Response(e):this.#o(e,r,at(Os,s));json=(e,r,s)=>this.#o(JSON.stringify(e),r,at("application/json",s));html=(e,r,s)=>{let d=(m)=>this.#o(m,r,at("text/html; charset=UTF-8",s));return typeof e==="object"?st(e,Zt.Stringify,!1,{}).then(d):d(e)};redirect=(e,r)=>{let s=String(e);return this.header("Location",!/[^\x00-\xFF]/.test(s)?s:encodeURI(s)),this.newResponse(null,r??302)};notFound=()=>(this.#h??=()=>ye(),this.#h(this))};var ht=(e,r,s)=>(d,m)=>{let g=-1;return y(0);async function y(t){if(t<=g)throw Error("next() called multiple times");g=t;let o,h=!1,p;if(e[t])p=e[t][0][0],d.req.routeIndex=t;else p=t===e.length&&m||void 0;if(p)try{o=await p(d,()=>y(t+1))}catch(f){if(f instanceof Error&&r)d.error=f,o=await r(f,d),h=!0;else throw f}else if(d.finalized===!1&&s)o=await s(d);if(o&&(d.finalized===!1||h))d.res=o;return d}};var Is=(e)=>e.text("404 Not Found",404),lr=(e,r)=>{if("getResponse"in e){let s=e.getResponse();return r.newResponse(s.body,s)}return console.error(e),r.text("Internal Server Error",500)},ur=class e{get;post;put;delete;options;patch;query;all;on;use;router;getPath;_basePath="/";#e="/";routes=[];constructor(r={}){[...Yt,"all"].forEach((m)=>{this[m]=(g,...y)=>{let t=m.toUpperCase();if(typeof g==="string")this.#e=g;else this.#n(t,this.#e,g);return y.forEach((o)=>{this.#n(t,this.#e,o)}),this}}),this.on=(m,g,...y)=>{for(let t of[g].flat()){this.#e=t;for(let o of[m].flat()){let h=o.toUpperCase();for(let p of y)this.#n(h,this.#e,p)}}return this},this.use=(m,...g)=>{if(typeof m==="string")this.#e=m;else this.#e="*",g.unshift(m);return g.forEach((y)=>{this.#n("ALL",this.#e,y)}),this};let{strict:s,...d}=r;Object.assign(this,d),this.getPath=s??!0?r.getPath??tt:Xt}#t(){let r=new e({router:this.router,getPath:this.getPath});return r.errorHandler=this.errorHandler,r.#r=this.#r,r.routes=this.routes,r}#r=Is;errorHandler=lr;route(r,s){let d=this.basePath(r);return s.routes.map((m)=>{let g;if(s.errorHandler===lr)g=m.handler;else g=async(y,t)=>(await ht([],s.errorHandler)(y,()=>m.handler(y,t))).res,g[rt]=m.handler;d.#n(m.method,m.path,g,m.basePath)}),this}basePath(r){let s=this.#t();return s._basePath=fe(this._basePath,r),s}onError=(r)=>(this.errorHandler=r,this);notFound=(r)=>(this.#r=r,this);mount(r,s,d){let m,g;if(d)if(typeof d==="function")g=d;else if(g=d.optionHandler,d.replaceRequest===!1)m=(o)=>o;else m=d.replaceRequest;let y=g?(o)=>{let h=g(o);return Array.isArray(h)?h:[h]}:(o)=>{let h=void 0;try{h=o.executionCtx}catch{}return[o.env,h]};m||=(()=>{let o=fe(this._basePath,r),h=o==="/"?0:o.length;return(p)=>{let f=new URL(p.url);return f.pathname=this.getPath(p).slice(h)||"/",new Request(f,p)}})();let t=async(o,h)=>{let p=await s(m(o.req.raw),...y(o));if(p)return p;await h()};return this.#n("ALL",fe(r,"*"),t),this}#n(r,s,d,m){s=fe(this._basePath,s);let g={basePath:m!==void 0?fe(this._basePath,m):this._basePath,path:s,method:r,handler:d};this.router.add(r,s,[d,g]),this.routes.push(g)}#s(r,s){if(r instanceof Error)return this.errorHandler(r,s);throw r}#i(r,s,d,m){if(m==="HEAD")return(async()=>new Response(null,await this.#i(r,s,d,"GET")))();let g=this.getPath(r,{env:d}),y=this.router.match(m,g),t=new ct(r,{path:g,matchResult:y,env:d,executionCtx:s,notFoundHandler:this.#r});if(y[0].length===1){let h;try{h=y[0][0][0][0](t,async()=>{t.res=await this.#r(t)})}catch(p){return this.#s(p,t)}return h instanceof Promise?h.then((p)=>p||(t.finalized?t.res:this.#r(t))).catch((p)=>this.#s(p,t)):h??this.#r(t)}let o=ht(y[0],this.errorHandler,this.#r);return(async()=>{try{let h=await o(t);if(!h.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return h.res}catch(h){return this.#s(h,t)}})()}fetch=(r,...s)=>this.#i(r,s[1],s[0],r.method);request=(r,s,d,m)=>{if(r instanceof Request)return this.fetch(s?new Request(r,s):r,d,m);return r=r.toString(),this.fetch(new Request(/^https?:\/\//.test(r)?r:`http://localhost${fe("/",r)}`,s),d,m)};fire=()=>{addEventListener("fetch",(r)=>{r.respondWith(this.#i(r.request,r,void 0,r.request.method))})}};var Q=()=>Object.create(null);var Ie=[];function lt(e,r){let s=this.buildAllMatchers(),d=(m,g)=>{let y=s[m]||s.ALL,t=y[2][g];if(t)return t;let o=g.match(y[0]);if(!o)return[[],Ie];let h=o.indexOf("",1);return[y[1][h],o]};return this.match=d,d(e,r)}var ut="[^/]+";var ft="(?:|/.*)",de=Symbol(),fr=new Set(".\\+*[^]$()");function Hs(e,r){if(e.length===1)return r.length===1?e<r?-1:1:-1;if(r.length===1)return 1;if(e===".*"||e==="(?:|/.*)")return r==="(?:|/.*)"?-1:1;else if(r===".*"||r==="(?:|/.*)")return-1;if(e==="[^/]+")return 1;else if(r==="[^/]+")return-1;return e.length===r.length?e<r?-1:1:r.length-e.length}var dr=class e{#e;#t;#r=Q();insert(r,s,d,m,g){let y=this;for(let t=0,o=r.length;t<o;t++){let h=r[t],p=h.length===1?h==="*"?t===o-1?["","",".*"]:["","",ut]:null:h==="/*"?["","",ft]:h.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),f;if(p){let l=p[1],u=p[2]||"[^/]+";if(l&&p[2]){if(u===".*")throw de;if(u=u.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(u))throw de;if(u.length===1&&fr.has(u))throw de}if(f=y.#r[u],!f){if(u!==".*"&&u!=="(?:|/.*)"){for(let v in y.#r)if((u.length>1||v.length>1)&&v!==".*"&&v!=="(?:|/.*)")throw de}f=y.#r[u]=new e}if(l!=="")f.#t??=m.varIndex++,d.push([l,f.#t])}else if(f=y.#r[h],!f){for(let l in y.#r)if(l.length>1&&l!==".*"&&l!=="(?:|/.*)")throw de;f=y.#r[h]=new e}y=f}if(y.#e!==void 0)throw de;y.#e=g?-1:s}buildRegExpStr(){let r=Object.keys(this.#r).sort(Hs).map((s)=>{let d=this.#r[s],m=d.buildRegExpStr();return m===""?"":(typeof d.#t==="number"?`(${s})@${d.#t}`:fr.has(s)?`\\${s}`:s)+m}).filter(Boolean);if(typeof this.#e==="number"&&this.#e!==-1)r.unshift(`#${this.#e}`);if(r.length===0)return"";if(r.length===1)return r[0];return"(?:"+r.join("|")+")"}};var dt=class{#e={varIndex:0};#t=new dr;#r=0;paths=Q();insert(e,r){if(r){this.#t.insert(e.split(""),0,[],this.#e,!0);return}let s=[],d=[],m=e;for(let y=0;;){let t=!1;if(m=m.replace(/\{[^}]+\}/g,(o)=>{let h=`@\\${y}`;return d[y]=[h,o],y++,t=!0,h}),!t)break}let g=m.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let y=d.length-1;y>=0;y--){let[t]=d[y];for(let o=g.length-1;o>=0;o--)if(g[o].indexOf(t)!==-1){g[o]=g[o].replace(t,d[y][1]);break}}this.#t.insert(g,this.#r,s,this.#e,!1),this.paths[e]=[this.#r++,s]}buildRegExp(){let e=this.#t.buildRegExpStr();if(e==="")return[/^$/,[],[]];let r=0,s=[],d=[];return e=e.replace(/#(\d+)|@(\d+)|\.\*\$/g,(m,g,y)=>{if(g!==void 0)return s[++r]=Number(g),"$()";if(y!==void 0)return d[Number(y)]=++r,"";return""}),[new RegExp(`^${e}`),s,d]}};var pr=Q();function _r(e){return pr[e]??=new RegExp(`^${e.replace(/\/:[^/{}]+(?:\{\[\^\/]\+})?(?=[/{]|$)|\/?\*$|([.\\+*[^\]$()?{}|])/g,(r,s)=>s?`\\${s}`:r==="/*"?ft:r==="*"?".*":`/:${ut}`)}$`)}function He(e,r){for(let s of Object.keys(e).sort((d,m)=>m.length-d.length))if(_r(s).test(r))return[...e[s]]}var Ne=class{name="RegExpRouter";#e;#t;#r;constructor(){this.#e={["ALL"]:Q()},this.#t={["ALL"]:Q()},this.#r={["ALL"]:new dt}}#n(e,r){try{this.#r[e].insert(r,!/\*|\/:/.test(r))}catch(s){throw s===de?new Pe(r):s}}add(e,r,s){let d=this.#e,m=this.#t;if(!d)throw Error(De);if(!d[e]){this.#r[e]=new dt;for(let t of[d,m]){t[e]=Q();for(let o in t.ALL)t[e][o]=[...t.ALL[o]],this.#n(e,o)}}if(r==="/*")r="*";let g=e==="ALL"?Object.keys(d):[e];if(/\*$/.test(r)){let t=_r(r);for(let o of g)if(!d[o][r])this.#n(o,r),d[o][r]=He(d[o],r)||He(d.ALL,r)||[];for(let o of[d,m])for(let h of g)for(let p in o[h])t.test(p)&&o[h][p].push([s,r]);return}let y=Re(r)||[r];for(let t of y)for(let o of g){if(!m[o][t])this.#n(o,t),m[o][t]=He(d[o],t)||He(d.ALL,t)||[];m[o][t].push([s,t])}}match=lt;buildAllMatchers(){let e=Q();for(let r of Object.keys(this.#t))e[r]=this.#s(r);return this.#e=this.#t=this.#r=void 0,pr=Q(),e}#s(e){let r=this.#e[e],s=this.#t[e],d=this.#r[e],m=Q(),g=[],[y,t,o]=d.buildRegExp();for(let h of[r,s])for(let p in h){let f=h[p],l=d.paths[p];if(!l){m[p]=[f.map(([u])=>[u,Q()]),Ie];continue}g[l[0]]=f.map(([u,v])=>[u,d.paths[v][1].reduceRight((n,[i],S)=>(n[i]=o[l[1][S][1]],n),Q())])}return[y,t.map((h)=>g[h]),m]}};var gr=class{name="SmartRouter";#e=[];#t=[];constructor(e){this.#e=e.routers}add(e,r,s){if(!this.#t)throw Error(De);this.#t.push([e,r,s])}match(e,r){if(!this.#t)throw Error("Fatal error");let s=this.#e,d=this.#t,m=s.length,g=0,y;for(;g<m;g++){let t=s[g];try{for(let o=0,h=d.length;o<h;o++)t.add(...d[o]);y=t.match(e,r)}catch(o){if(o instanceof Pe)continue;throw o}this.match=t.match.bind(t),this.#e=[t],this.#t=void 0;break}if(g===m)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,y}get activeRouter(){if(this.#t||this.#e.length!==1)throw Error("No active router has been determined yet.");return this.#e[0]}};var pt=Q(),Ns=0,mr=class e{#e=[];#t=Q();#r=[];#n;#s=pt;insert(r,s,d){let m=this,g=jt(s),y=new Set,t=0;for(let o of g){let h=g[++t],p=zt(o,h)||(h===void 0&&o&&o.indexOf("*")===o.length-1?o:null),f=Array.isArray(p),l=f?p[0]:p||o,u=m.#t[l]||=new e;if(p&&!u.#n)u.#n=p,m.#r.push(u);if(m=u,f)y.add(p[1])}m.#e.push({[r]:{handler:d,possibleKeys:[...y],score:++Ns}})}#i(r,s,d,m,g){for(let y=0,t=s.#e.length;y<t;y++){let o=s.#e[y],h=o[d]||o.ALL;if(h){h.params=Q(),r.push(h);for(let p=0,f=h.possibleKeys.length;p<f;p++){let l=h.possibleKeys[p];h.params[l]=g?.[l]&&!p?g[l]:m[l]??g?.[l]}}}}search(r,s){let d=[];this.#s=pt;let m=[this],g=et(s),y=[],t=g.length,o=null;for(let h=0;h<t;h++){let p=g[h],f=h===t-1,l=[];for(let v=0,n=m.length;v<n;v++){let i=m[v],S=i.#t[p];if(S)if(S.#s=i.#s,f){if(S.#t["*"])this.#i(d,S.#t["*"],r,i.#s);this.#i(d,S,r,i.#s)}else l.push(S);for(let a of i.#r){let _=a.#n,c=i.#s===pt?{}:{...i.#s};if(typeof _==="string"){if(_==="*"||p.startsWith(_.slice(0,-1))){if(this.#i(d,a,r,i.#s),_==="*")a.#s=c,l.push(a)}continue}let[,w,C]=_;if(!p&&C===!0)continue;if(C!==!0){if(!o){o=[];let O=s[0]==="/"?1:0;for(let A=0;A<t;A++)o[A]=O,O+=g[A].length+1}let T=s.slice(o[h]),B=C.exec(T);if(B){if(!Object.hasOwn(c,w))c[w]=B[0];if(this.#i(d,a,r,i.#s,c),B[0].length===T.length&&a.#t["*"])this.#i(d,a.#t["*"],r,i.#s,c);for(let O in a.#t){a.#s=c;let A=B[0].match(/\//g)?.length??0;(y[A]||=[]).push(a);break}continue}}if(C===!0||C.test(p)){if(!Object.hasOwn(c,w))c[w]=p;if(f){if(this.#i(d,a,r,c,i.#s),a.#t["*"])this.#i(d,a.#t["*"],r,c,i.#s)}else a.#s=c,l.push(a)}}}let u=y.shift();m=u?l.concat(u):l}if(d[1])d.sort((h,p)=>h.score-p.score);return[d.map(({handler:h,params:p})=>[h,p])]}};var _t=class{name="TrieRouter";#e=new mr;add(e,r,s){for(let d of Re(r)||[r])this.#e.insert(e,d,s)}match(e,r){return this.#e.search(e,r)}};var Fe=class extends ur{constructor(e={}){super(e);this.router=e.router??new gr({routers:[new Ne,new _t]})}};var Fs="Payload Too Large",vr=(e)=>{let r=e.onError||(()=>{let d=new Response(Fs,{status:413});throw new ot(413,{res:d})}),s=e.maxSize;return async function(m,g){if(!m.req.raw.body)return g();let y=m.req.raw.headers.has("transfer-encoding");if(m.req.raw.headers.has("content-length")&&!y)return parseInt(m.req.raw.headers.get("content-length")||"0",10)>s?r(m):g();let t=0,o=[],h=m.req.raw.body.getReader();for(;;){let{done:f,value:l}=await h.read();if(f)break;if(t+=l.length,t>s)return r(m);o.push(l)}let p={body:new ReadableStream({start(f){for(let l of o)f.enqueue(l);f.close()}}),duplex:"half"};return m.req.raw=new Request(m.req.raw,p),g()}};var yr=(e)=>e;var K=0,Y=0,J=0,V=0,ee;((e)=>{function r(m,g,y,t){return t!==void 0?`#${pe(m)}${pe(g)}${pe(y)}${pe(t)}`:`#${pe(m)}${pe(g)}${pe(y)}`}e.toCss=r;function s(m,g,y,t=255){return(m<<24|g<<16|y<<8|t)>>>0}e.toRgba=s;function d(m,g,y,t){return{css:e.toCss(m,g,y,t),rgba:e.toRgba(m,g,y,t)}}e.toColor=d})(ee||={});var Ws;((e)=>{function r(o,h){if(V=(h.rgba&255)/255,V===1)return{css:h.css,rgba:h.rgba};let p=h.rgba>>24&255,f=h.rgba>>16&255,l=h.rgba>>8&255,u=o.rgba>>24&255,v=o.rgba>>16&255,n=o.rgba>>8&255;K=u+Math.round((p-u)*V),Y=v+Math.round((f-v)*V),J=n+Math.round((l-n)*V);let i=ee.toCss(K,Y,J),S=ee.toRgba(K,Y,J);return{css:i,rgba:S}}e.blend=r;function s(o){return(o.rgba&255)===255}e.isOpaque=s;function d(o,h,p){let f=We.ensureContrastRatio(o.rgba,h.rgba,p);if(f)return ee.toColor(f>>24&255,f>>16&255,f>>8&255)}e.ensureContrastRatio=d;function m(o){let h=(o.rgba|255)>>>0;return[K,Y,J]=We.toChannels(h),{css:ee.toCss(K,Y,J),rgba:h}}e.opaque=m;function g(o,h){return V=Math.round(h*255),[K,Y,J]=We.toChannels(o.rgba),{css:ee.toCss(K,Y,J,V),rgba:ee.toRgba(K,Y,J,V)}}e.opacity=g;function y(o,h){return V=o.rgba&255,g(o,V*h/255)}e.multiplyOpacity=y;function t(o){return[o.rgba>>24&255,o.rgba>>16&255,o.rgba>>8&255]}e.toColorRGB=t})(Ws||={});var Z;((e)=>{let r,s;try{let m=document.createElement("canvas");m.width=1,m.height=1;let g=m.getContext("2d",{willReadFrequently:!0});g&&(r=g,r.globalCompositeOperation="copy",s=r.createLinearGradient(0,0,1,1))}catch{}function d(m){if(m.match(/#[\da-f]{3,8}/i))switch(m.length){case 4:return K=parseInt(m.slice(1,2).repeat(2),16),Y=parseInt(m.slice(2,3).repeat(2),16),J=parseInt(m.slice(3,4).repeat(2),16),ee.toColor(K,Y,J);case 5:return K=parseInt(m.slice(1,2).repeat(2),16),Y=parseInt(m.slice(2,3).repeat(2),16),J=parseInt(m.slice(3,4).repeat(2),16),V=parseInt(m.slice(4,5).repeat(2),16),ee.toColor(K,Y,J,V);case 7:return{css:m,rgba:(parseInt(m.slice(1),16)<<8|255)>>>0};case 9:return{css:m,rgba:parseInt(m.slice(1),16)>>>0}}let g=m.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(g)return K=parseInt(g[1]),Y=parseInt(g[2]),J=parseInt(g[3]),V=Math.round((g[5]===void 0?1:parseFloat(g[5]))*255),ee.toColor(K,Y,J,V);if(!r||!s)throw Error("css.toColor: Unsupported css format");if(r.fillStyle=s,r.fillStyle=m,typeof r.fillStyle!="string")throw Error("css.toColor: Unsupported css format");if(r.fillRect(0,0,1,1),[K,Y,J,V]=r.getImageData(0,0,1,1).data,V!==255)throw Error("css.toColor: Unsupported css format");return{rgba:ee.toRgba(K,Y,J,V),css:m}}e.toColor=d})(Z||={});var te;((e)=>{function r(d){return s(d>>16&255,d>>8&255,d&255)}e.relativeLuminance=r;function s(d,m,g){let y=d/255,t=m/255,o=g/255,h=y<=0.03928?y/12.92:Math.pow((y+0.055)/1.055,2.4),p=t<=0.03928?t/12.92:Math.pow((t+0.055)/1.055,2.4),f=o<=0.03928?o/12.92:Math.pow((o+0.055)/1.055,2.4);return h*0.2126+p*0.7152+f*0.0722}e.relativeLuminance2=s})(te||={});var We;((e)=>{function r(y,t){if(V=(t&255)/255,V===1)return t;let o=t>>24&255,h=t>>16&255,p=t>>8&255,f=y>>24&255,l=y>>16&255,u=y>>8&255;return K=f+Math.round((o-f)*V),Y=l+Math.round((h-l)*V),J=u+Math.round((p-u)*V),ee.toRgba(K,Y,J)}e.blend=r;function s(y,t,o){let h=te.relativeLuminance(y>>8),p=te.relativeLuminance(t>>8);if(ce(h,p)<o){if(p<h){let u=d(y,t,o),v=ce(h,te.relativeLuminance(u>>8));if(v<o){let n=m(y,t,o),i=ce(h,te.relativeLuminance(n>>8));return v>i?u:n}return u}let f=m(y,t,o),l=ce(h,te.relativeLuminance(f>>8));if(l<o){let u=d(y,t,o),v=ce(h,te.relativeLuminance(u>>8));return l>v?f:u}return f}}e.ensureContrastRatio=s;function d(y,t,o){let h=y>>24&255,p=y>>16&255,f=y>>8&255,l=t>>24&255,u=t>>16&255,v=t>>8&255,n=ce(te.relativeLuminance2(l,u,v),te.relativeLuminance2(h,p,f));for(;n<o&&(l>0||u>0||v>0);)l-=Math.max(0,Math.ceil(l*0.1)),u-=Math.max(0,Math.ceil(u*0.1)),v-=Math.max(0,Math.ceil(v*0.1)),n=ce(te.relativeLuminance2(l,u,v),te.relativeLuminance2(h,p,f));return(l<<24|u<<16|v<<8|255)>>>0}e.reduceLuminance=d;function m(y,t,o){let h=y>>24&255,p=y>>16&255,f=y>>8&255,l=t>>24&255,u=t>>16&255,v=t>>8&255,n=ce(te.relativeLuminance2(l,u,v),te.relativeLuminance2(h,p,f));for(;n<o&&(l<255||u<255||v<255);)l=Math.min(255,l+Math.ceil((255-l)*0.1)),u=Math.min(255,u+Math.ceil((255-u)*0.1)),v=Math.min(255,v+Math.ceil((255-v)*0.1)),n=ce(te.relativeLuminance2(l,u,v),te.relativeLuminance2(h,p,f));return(l<<24|u<<16|v<<8|255)>>>0}e.increaseLuminance=m;function g(y){return[y>>24&255,y>>16&255,y>>8&255,y&255]}e.toChannels=g})(We||={});function pe(e){let r=e.toString(16);return r.length<2?"0"+r:r}function ce(e,r){return e<r?(r+0.05)/(e+0.05):(e+0.05)/(r+0.05)}var Us=Object.freeze((()=>{let e=[Z.toColor("#2e3436"),Z.toColor("#cc0000"),Z.toColor("#4e9a06"),Z.toColor("#c4a000"),Z.toColor("#3465a4"),Z.toColor("#75507b"),Z.toColor("#06989a"),Z.toColor("#d3d7cf"),Z.toColor("#555753"),Z.toColor("#ef2929"),Z.toColor("#8ae234"),Z.toColor("#fce94f"),Z.toColor("#729fcf"),Z.toColor("#ad7fa8"),Z.toColor("#34e2e2"),Z.toColor("#eeeeec")],r=[0,95,135,175,215,255];for(let s=0;s<216;s++){let d=r[s/36%6|0],m=r[s/6%6|0],g=r[s%6];e.push({css:ee.toCss(d,m,g),rgba:ee.toRgba(d,m,g)})}for(let s=0;s<24;s++){let d=8+s*10;e.push({css:ee.toCss(d,d,d),rgba:ee.toRgba(d,d,d)})}return e})());function br(e,r,s){return Math.max(r,Math.min(e,s))}function $s(e){switch(e){case"&":return"&";case"<":return"<"}return e}var wr=class{constructor(e){this._buffer=e}serialize(e,r){let s=this._buffer.getNullCell(),d=this._buffer.getNullCell(),m=s,g=e.start.y,y=e.end.y,t=e.start.x,o=e.end.x;this._beforeSerialize(y-g,g,y);for(let h=g;h<=y;h++){let p=this._buffer.getLine(h);if(p){let f=h===e.start.y?t:0,l=h===e.end.y?o:p.length;for(let u=f;u<l;u++){let v=p.getCell(u,m===s?d:s);if(!v){console.warn(`Can't get cell at row=${h}, col=${u}`);continue}this._nextCell(v,m,h,u),m=v}}this._rowEnd(h,h===y)}return this._afterSerialize(),this._serializeString(r)}_nextCell(e,r,s,d){}_rowEnd(e,r){}_beforeSerialize(e,r,s){}_afterSerialize(){}_serializeString(e){return""}};function Sr(e,r){return e.getFgColorMode()===r.getFgColorMode()&&e.getFgColor()===r.getFgColor()}function he(e,r){return e.getBgColorMode()===r.getBgColorMode()&&e.getBgColor()===r.getBgColor()}function Cr(e,r){return e.isInverse()===r.isInverse()&&e.isBold()===r.isBold()&&e.isUnderline()===r.isUnderline()&&e.isOverline()===r.isOverline()&&e.isBlink()===r.isBlink()&&e.isInvisible()===r.isInvisible()&&e.isItalic()===r.isItalic()&&e.isDim()===r.isDim()&&e.isStrikethrough()===r.isStrikethrough()}var js=class extends wr{constructor(e,r){super(e);this._terminal=r,this._rowIndex=0,this._allRows=[],this._allRowSeparators=[],this._currentRow="",this._nullCellCount=0,this._cursorStyle=this._buffer.getNullCell(),this._cursorStyleRow=0,this._cursorStyleCol=0,this._backgroundCell=this._buffer.getNullCell(),this._firstRow=0,this._lastCursorRow=0,this._lastCursorCol=0,this._lastContentCursorRow=0,this._lastContentCursorCol=0,this._thisRowLastChar=this._buffer.getNullCell(),this._thisRowLastSecondChar=this._buffer.getNullCell(),this._nextRowFirstChar=this._buffer.getNullCell()}_beforeSerialize(e,r,s){this._allRows=Array(e),this._lastContentCursorRow=r,this._lastCursorRow=r,this._firstRow=r}_rowEnd(e,r){this._nullCellCount>0&&!he(this._cursorStyle,this._backgroundCell)&&(this._currentRow+=`\x1B[${this._nullCellCount}X`);let s="";if(!r){e-this._firstRow>=this._terminal.rows&&this._buffer.getLine(this._cursorStyleRow)?.getCell(this._cursorStyleCol,this._backgroundCell);let d=this._buffer.getLine(e),m=this._buffer.getLine(e+1);if(!m.isWrapped)s=`\r
|
|
31
31
|
`,this._lastCursorRow=e+1,this._lastCursorCol=0;else{s="";let g=d.getCell(d.length-1,this._thisRowLastChar),y=d.getCell(d.length-2,this._thisRowLastSecondChar),t=m.getCell(0,this._nextRowFirstChar),o=t.getWidth()>1,h=!1;(t.getChars()&&o?this._nullCellCount<=1:this._nullCellCount<=0)&&((g.getChars()||g.getWidth()===0)&&he(g,t)&&(h=!0),o&&(y.getChars()||y.getWidth()===0)&&he(g,t)&&he(y,t)&&(h=!0)),h||(s="-".repeat(this._nullCellCount+1),s+="\x1B[1D\x1B[1X",this._nullCellCount>0&&(s+="\x1B[A",s+=`\x1B[${d.length-this._nullCellCount}C`,s+=`\x1B[${this._nullCellCount}X`,s+=`\x1B[${d.length-this._nullCellCount}D`,s+="\x1B[B"),this._lastContentCursorRow=e+1,this._lastContentCursorCol=0,this._lastCursorRow=e+1,this._lastCursorCol=0)}}this._allRows[this._rowIndex]=this._currentRow,this._allRowSeparators[this._rowIndex++]=s,this._currentRow="",this._nullCellCount=0}_diffStyle(e,r){let s=[],d=!Sr(e,r),m=!he(e,r),g=!Cr(e,r);if(d||m||g)if(e.isAttributeDefault())r.isAttributeDefault()||s.push(0);else{if(d){let y=e.getFgColor();e.isFgRGB()?s.push(38,2,y>>>16&255,y>>>8&255,y&255):e.isFgPalette()?y>=16?s.push(38,5,y):s.push(y&8?90+(y&7):30+(y&7)):s.push(39)}if(m){let y=e.getBgColor();e.isBgRGB()?s.push(48,2,y>>>16&255,y>>>8&255,y&255):e.isBgPalette()?y>=16?s.push(48,5,y):s.push(y&8?100+(y&7):40+(y&7)):s.push(49)}g&&(e.isInverse()!==r.isInverse()&&s.push(e.isInverse()?7:27),e.isBold()!==r.isBold()&&s.push(e.isBold()?1:22),e.isUnderline()!==r.isUnderline()&&s.push(e.isUnderline()?4:24),e.isOverline()!==r.isOverline()&&s.push(e.isOverline()?53:55),e.isBlink()!==r.isBlink()&&s.push(e.isBlink()?5:25),e.isInvisible()!==r.isInvisible()&&s.push(e.isInvisible()?8:28),e.isItalic()!==r.isItalic()&&s.push(e.isItalic()?3:23),e.isDim()!==r.isDim()&&s.push(e.isDim()?2:22),e.isStrikethrough()!==r.isStrikethrough()&&s.push(e.isStrikethrough()?9:29))}return s}_nextCell(e,r,s,d){if(e.getWidth()===0)return;let m=e.getChars()==="",g=this._diffStyle(e,this._cursorStyle);if(m?!he(this._cursorStyle,e):g.length>0){this._nullCellCount>0&&(he(this._cursorStyle,this._backgroundCell)||(this._currentRow+=`\x1B[${this._nullCellCount}X`),this._currentRow+=`\x1B[${this._nullCellCount}C`,this._nullCellCount=0),this._lastContentCursorRow=this._lastCursorRow=s,this._lastContentCursorCol=this._lastCursorCol=d,this._currentRow+=`\x1B[${g.join(";")}m`;let y=this._buffer.getLine(s);y!==void 0&&(y.getCell(d,this._cursorStyle),this._cursorStyleRow=s,this._cursorStyleCol=d)}m?this._nullCellCount+=e.getWidth():(this._nullCellCount>0&&(he(this._cursorStyle,this._backgroundCell)?this._currentRow+=`\x1B[${this._nullCellCount}C`:(this._currentRow+=`\x1B[${this._nullCellCount}X`,this._currentRow+=`\x1B[${this._nullCellCount}C`),this._nullCellCount=0),this._currentRow+=e.getChars(),this._lastContentCursorRow=this._lastCursorRow=s,this._lastContentCursorCol=this._lastCursorCol=d+e.getWidth())}_serializeString(e){let r=this._allRows.length;this._buffer.length-this._firstRow<=this._terminal.rows&&(r=this._lastContentCursorRow+1-this._firstRow,this._lastCursorCol=this._lastContentCursorCol,this._lastCursorRow=this._lastContentCursorRow);let s="";for(let g=0;g<r;g++)s+=this._allRows[g],g+1<r&&(s+=this._allRowSeparators[g]);if(!e){let g=this._buffer.baseY+this._buffer.cursorY,y=this._buffer.cursorX,t=g!==this._lastCursorRow||y!==this._lastCursorCol,o=(h)=>{h>0?s+=`\x1B[${h}C`:h<0&&(s+=`\x1B[${-h}D`)};t&&(((h)=>{h>0?s+=`\x1B[${h}B`:h<0&&(s+=`\x1B[${-h}A`)})(g-this._lastCursorRow),o(y-this._lastCursorCol))}let d=this._terminal._core._inputHandler._curAttrData,m=this._diffStyle(d,this._cursorStyle);return m.length>0&&(s+=`\x1B[${m.join(";")}m`),s}},xr=class{activate(e){this._terminal=e}_serializeBufferByScrollback(e,r,s){let d=r.length,m=s===void 0?d:br(s+e.rows,0,d);return this._serializeBufferByRange(e,r,{start:d-m,end:d-1},!1)}_serializeBufferByRange(e,r,s,d){return new js(r,e).serialize({start:{x:0,y:typeof s.start=="number"?s.start:s.start.line},end:{x:e.cols,y:typeof s.end=="number"?s.end:s.end.line}},d)}_serializeBufferAsHTML(e,r){let s=e.buffer.active,d=new zs(s,e,r),m=r.onlySelection??!1,g=r.range;if(g)return d.serialize({start:{x:g.startCol,y:(g.startLine,g.startLine)},end:{x:e.cols,y:(g.endLine,g.endLine)}});if(!m){let t=s.length,o=r.scrollback,h=o===void 0?t:br(o+e.rows,0,t);return d.serialize({start:{x:0,y:t-h},end:{x:e.cols,y:t-1}})}let y=this._terminal?.getSelectionPosition();return y!==void 0?d.serialize({start:{x:y.start.x,y:y.start.y},end:{x:y.end.x,y:y.end.y}}):""}_serializeModes(e){let r="",s=e.modes;if(s.applicationCursorKeysMode&&(r+="\x1B[?1h"),s.applicationKeypadMode&&(r+="\x1B[?66h"),s.bracketedPasteMode&&(r+="\x1B[?2004h"),s.insertMode&&(r+="\x1B[4h"),s.originMode&&(r+="\x1B[?6h"),s.reverseWraparoundMode&&(r+="\x1B[?45h"),s.sendFocusMode&&(r+="\x1B[?1004h"),s.wraparoundMode===!1&&(r+="\x1B[?7l"),s.mouseTrackingMode!=="none")switch(s.mouseTrackingMode){case"x10":r+="\x1B[?9h";break;case"vt200":r+="\x1B[?1000h";break;case"drag":r+="\x1B[?1002h";break;case"any":r+="\x1B[?1003h";break}return r}serialize(e){if(!this._terminal)throw Error("Cannot use addon until it has been loaded");let r=e?.range?this._serializeBufferByRange(this._terminal,this._terminal.buffer.normal,e.range,!0):this._serializeBufferByScrollback(this._terminal,this._terminal.buffer.normal,e?.scrollback);if(!e?.excludeAltBuffer&&this._terminal.buffer.active.type==="alternate"){let s=this._serializeBufferByScrollback(this._terminal,this._terminal.buffer.alternate,void 0);r+=`\x1B[?1049h\x1B[H${s}`}return e?.excludeModes||(r+=this._serializeModes(this._terminal)),r}serializeAsHTML(e){if(!this._terminal)throw Error("Cannot use addon until it has been loaded");return this._serializeBufferAsHTML(this._terminal,e||{})}dispose(){}},zs=class extends wr{constructor(e,r,s){super(e);this._terminal=r,this._options=s,this._currentRow="",this._htmlContent="",r._core._themeService?this._ansiColors=r._core._themeService.colors.ansi:this._ansiColors=Us}_padStart(e,r,s){return r=r>>0,s=s??" ",e.length>r?e:(r-=e.length,r>s.length&&(s+=s.repeat(r/s.length)),s.slice(0,r)+e)}_beforeSerialize(e,r,s){this._htmlContent+="<html><body><!--StartFragment--><pre>";let d="#000000",m="#ffffff";(this._options.includeGlobalBackground??!1)&&(d=this._terminal.options.theme?.foreground??"#ffffff",m=this._terminal.options.theme?.background??"#000000");let g=[];g.push("color: "+d+";"),g.push("background-color: "+m+";"),g.push("font-family: "+this._terminal.options.fontFamily+";"),g.push("font-size: "+this._terminal.options.fontSize+"px;"),this._htmlContent+="<div style='"+g.join(" ")+"'>"}_afterSerialize(){this._htmlContent+="</div>",this._htmlContent+="</pre><!--EndFragment--></body></html>"}_rowEnd(e,r){this._htmlContent+="<div><span>"+this._currentRow+"</span></div>",this._currentRow=""}_getHexColor(e,r){let s=r?e.getFgColor():e.getBgColor();if(r?e.isFgRGB():e.isBgRGB())return"#"+[s>>16&255,s>>8&255,s&255].map((d)=>this._padStart(d.toString(16),2,"0")).join("");if(r?e.isFgPalette():e.isBgPalette())return this._ansiColors[s].css}_diffStyle(e,r){let s=[],d=!Sr(e,r),m=!he(e,r),g=!Cr(e,r);if(d||m||g){let y=this._getHexColor(e,!0);y&&s.push("color: "+y+";");let t=this._getHexColor(e,!1);return t&&s.push("background-color: "+t+";"),e.isInverse()&&s.push("color: #000000; background-color: #BFBFBF;"),e.isBold()&&s.push("font-weight: bold;"),e.isUnderline()&&e.isOverline()?s.push("text-decoration: overline underline;"):e.isUnderline()?s.push("text-decoration: underline;"):e.isOverline()&&s.push("text-decoration: overline;"),e.isBlink()&&s.push("text-decoration: blink;"),e.isInvisible()&&s.push("visibility: hidden;"),e.isItalic()&&s.push("font-style: italic;"),e.isDim()&&s.push("opacity: 0.5;"),e.isStrikethrough()&&s.push("text-decoration: line-through;"),s}}_nextCell(e,r,s,d){if(e.getWidth()===0)return;let m=e.getChars()==="",g=this._diffStyle(e,r);g&&(this._currentRow+=g.length===0?"</span><span>":"</span><span style='"+g.join(" ")+"'>"),m?this._currentRow+=" ":this._currentRow+=$s(e.getChars())}_serializeString(){return this._htmlContent}};var Br=Ss(Ar(),1);var qs=/\x1b\[M[\s\S]{3}|\x1b\[[0-?]*[ -\/]*[@-~]|\x1bO[\s\S]|\x1b[\]P_^X][\s\S]*?(?:\x07|\x1b\\)/g;function Gs(e){return/[\r\x20-\x7e\u00a0-\uffff]/.test(e.replace(qs,""))}class gt{onChange;status="idle";lastInput=0;burstStart;idleTimer;disposed=!1;constructor(e){this.onChange=e}input(e){if(!Gs(e))return;this.lastInput=Date.now()}output(){let e=Date.now();if(this.disposed||e-this.lastInput<200)return;if(this.burstStart===void 0&&e-this.lastInput>2000)return;if(this.burstStart??=e,clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>this.settle(),2000),this.status==="idle"&&e-this.burstStart>=1000)this.set("working")}reset(){clearTimeout(this.idleTimer),this.lastInput=0,this.burstStart=void 0,this.status="idle"}dispose(){this.disposed=!0,clearTimeout(this.idleTimer)}settle(){this.burstStart=void 0,this.set("idle")}set(e){if(this.status===e)return;this.status=e,this.onChange(e)}}async function Ue(e,r){let s=Bun.spawn(e,{stdout:"pipe",stderr:"ignore"}),d,m=new Promise((g,y)=>{d=setTimeout(()=>{s.kill(),y(Error(`${e[0]} timed out`))},r)});try{let g=Promise.all([new Response(s.stdout).text(),s.exited]).then(([y])=>y);return await Promise.race([g,m])}finally{clearTimeout(d)}}var Xs=new Set(["claude","codex","gemini","opencode","aider","cursor-agent","copilot","qwen","amp"]),Vs=/^(node|nodejs|bun|deno|python[\d.]*)$/,kr=(e)=>e.slice(e.lastIndexOf("/")+1).replace(/\.(js|mjs|cjs|ts|py)$/,"");function mt(e){let r=e.trim().split(/\s+/),s=kr(r[0]??"");if(Vs.test(s)){let d=r.slice(1).find((m)=>!m.startsWith("-"));s=d?kr(d):""}return Xs.has(s)}var Qs=2000;function Lr(e){return Ue(["ps",...e],Qs)}async function $e(e,r){try{if(r??=(await Lr(["-o","tty=","-p",String(e)])).trim(),!r||r.startsWith("?"))return;let s=(await Lr(["-ww","-o","pgid=,tpgid=,args=","-t",r])).split(`
|
|
32
32
|
`).map((g)=>g.trim().match(/^(\d+)\s+(-?\d+)\s+(.*)$/)).filter((g)=>g!==null).map(([,g,y,t])=>({pgid:Number(g),tpgid:Number(y),args:t})),d=s[0]?.tpgid;if(d===void 0||d<=0)return;let m=s.some((g)=>g.pgid===d&&mt(g.args));return{tty:r,foreground:{pgid:d,agent:m}}}catch{return}}class vt{terminal;trimmed;integrated=!1;last;running;constructor(e,r){this.terminal=e;this.trimmed=r;e.parser.registerOscHandler(133,(s)=>{if(this.integrated=!0,e.buffer.active.type!=="normal")return!1;let d=s.split(";")[0];if(d==="C")this.running?.marker.dispose(),this.running=this.here();else if((d==="D"||d==="A")&&this.running){let m=this.here();if(m)this.setLast({start:this.running,end:m});else this.running.marker.dispose();this.running=void 0}return!1}),e.parser.registerEscHandler({final:"c"},()=>(this.setLast(void 0),this.running?.marker.dispose(),this.running=void 0,!1))}lastOutput(){let e=this.unavailable(),r=this.last;if(e||!r)return{unavailable:e??"no-command"};let s=r.start.marker.isDisposed?{x:0,y:0}:{x:r.start.x,y:r.start.marker.line},d={x:r.end.x,y:r.end.marker.line},m=this.terminal.buffer.normal,g="";for(let t=s.y;t<=d.y;t++){let o=t===s.y?s.x:0;if(t===d.y&&d.x===0&&t>s.y)break;let h=m.getLine(t);if(!h)break;if(t>s.y&&!h.isWrapped)g+=`
|
|
33
33
|
`;g+=h.translateToString(!0,o,t===d.y?d.x:void 0)}g=g.replace(/\n+$/,"");let y=g===""?0:g.split(`
|
|
34
34
|
`).length;return{text:g,lines:y,start:s,end:d}}unavailable(){if(!this.integrated)return"no-integration";if(this.terminal.buffer.active.type!=="normal")return"alternate";if(!this.last||this.last.end.marker.isDisposed)return"no-command";return}state(){let e=this.trimmed.count,r=(m)=>m&&!m.marker.isDisposed?{x:m.x,y:m.marker.line+e}:void 0,s=r(this.last?.end),d=this.last?.start.marker.isDisposed?{x:0,y:e}:r(this.last?.start);return{integrated:this.integrated,last:d&&s?{start:d,end:s}:void 0,running:r(this.running)}}restore(e){if(this.integrated||=e.integrated,this.terminal.buffer.active.type!=="normal")return;if(!this.last&&e.last){let r=this.place(e.last.start),s=this.place(e.last.end);if(r&&s)this.setLast({start:r,end:s});else r?.marker.dispose(),s?.marker.dispose()}if(!this.running&&e.running)this.running=this.place(e.running)}setLast(e){this.last?.start.marker.dispose(),this.last?.end.marker.dispose(),this.last=e}here(){let e=this.terminal.registerMarker(0);return e&&{x:this.terminal.buffer.active.cursorX,marker:e}}place({x:e,y:r}){if(r<this.trimmed.count)return;let s=this.terminal.buffer.active,d=this.terminal.registerMarker(r-this.trimmed.count-(s.baseY+s.cursorY));return d&&{x:e,marker:d}}}import{readlink as Ks,stat as Ys}from"fs/promises";var Js=2000;async function yt(e){try{let r=process.platform==="linux"?await Ks(`/proc/${e}/cwd`):await Zs(e);return r&&(await Ys(r)).isDirectory()?r:void 0}catch{return}}async function Zs(e){return(await Ue(["lsof","-a","-p",String(e),"-d","cwd","-Fn"],Js)).split(`
|
|
35
|
-
`).find((s)=>s.startsWith("n"))?.slice(1)}var je=1000;class bt{count;constructor(e,r=0){this.count=r;let s=e._core._bufferService.buffers,d,m,g=()=>{if(s.normal===d)return;m?.dispose(),d=s.normal,m=d.lines.onTrim((y)=>this.count+=y)};g(),s.onBufferActivate(g)}}var be={cols:512,rows:256};function ge({cols:e,rows:r}){return{cols:Math.min(e,be.cols),rows:Math.min(r,be.rows)}}var Tr=new TextEncoder,ei="\u2500\u2500 Accompany \u3092\u518D\u8D77\u52D5\u3057\u307E\u3057\u305F \u2500\u2500",ti=
|
|
35
|
+
`).find((s)=>s.startsWith("n"))?.slice(1)}var je=1000;class bt{count;constructor(e,r=0){this.count=r;let s=e._core._bufferService.buffers,d,m,g=()=>{if(s.normal===d)return;m?.dispose(),d=s.normal,m=d.lines.onTrim((y)=>this.count+=y)};g(),s.onBufferActivate(g)}}var be={cols:512,rows:256};function ge({cols:e,rows:r}){return{cols:Math.min(e,be.cols),rows:Math.min(r,be.rows)}}var Tr=new TextEncoder,ei="\u2500\u2500 Accompany \u3092\u518D\u8D77\u52D5\u3057\u307E\u3057\u305F \u2500\u2500",ti=2000,ri=500,si=1500,ii=200,ni=1000,oi=500;function ai(e){try{return process.kill(-e,0),!0}catch(r){return r.code==="EPERM"}}class wt{command;onExit;onTitleChange;proc;listeners=new Set;size={cols:80,rows:24};requestedSizes=new Map;screen=new Br.Terminal({...this.size,scrollback:je,allowProposedApi:!0});serializer=new xr;trimmed=new bt(this.screen);marks=new vt(this.screen,this.trimmed);cursorHidden=!1;mouseEncoding;title="";activity;onOutput;onStatus;foreground;tty;detectTimer;detecting=!1;detectAgain=!1;killed=!1;startTimer;hangingUp;unseen=!1;startDir;lastCwd;cwdCheckedAt=Number.NEGATIVE_INFINITY;cwdPgid;lastInputAt=Number.NEGATIVE_INFINITY;startedAsAgent;constructor(e,r=()=>{},s=()=>{},d=()=>{},{restored:m,onOutput:g=()=>{},cwd:y}={}){this.command=e;this.onExit=r;this.onTitleChange=s;if(this.startDir=y,this.startedAsAgent=mt(e.join(" ")),this.lastCwd=y,this.onOutput=g,this.onStatus=d,this.activity=new gt((t)=>{if(this.unseen=t==="idle",this.foreground?.agent)d()}),this.screen.loadAddon(this.serializer),m)this.size={cols:m.cols,rows:m.rows},this.screen.resize(m.cols,m.rows),this.screen.write(`${m.scrollback}\x1B[0m\r
|
|
36
36
|
\x1B[2m${ei}\x1B[0m\r
|
|
37
|
-
`);this.screen.onTitleChange((t)=>{let o=
|
|
37
|
+
`);this.screen.onTitleChange((t)=>{let o=ci(t);if(o===this.title)return;this.title=o,this.onTitleChange()});for(let[t,o]of[["h",!0],["l",!1]])this.screen.parser.registerCsiHandler({prefix:"?",final:t},(h)=>{if(h.includes(25))this.cursorHidden=!o;for(let p of[1006,1016])if(h.includes(p))this.mouseEncoding=o?p:void 0;return!1});this.screen.parser.registerEscHandler({final:"c"},()=>{if(this.cursorHidden=!1,this.mouseEncoding=void 0,this.title!=="")this.title="",this.onTitleChange();return!1})}attach(e){let r=[],s=!1,d=(m)=>s?e(m):r.push(m);if(this.listeners.add(d),this.screen.write("",()=>{e({type:"resize",size:this.size}),e({type:"trimmed",lines:this.trimmed.count}),e({type:"marks",...this.marks.state()});let m=this.serializer.serialize()+(this.cursorHidden?"\x1B[?25l":"")+(this.mouseEncoding?`\x1B[?${this.mouseEncoding}h`:"");if(m)e({type:"output",data:Tr.encode(m)});e({type:"restored"}),r.forEach(e),s=!0}),!this.proc&&!this.startTimer)this.startTimer=setTimeout(()=>this.start(),ti);return{resize:(m)=>{this.requestedSizes.set(d,m),this.fitToSmallest(),this.start()},detach:()=>{this.listeners.delete(d),this.requestedSizes.delete(d),this.fitToSmallest()}}}start(){if(clearTimeout(this.startTimer),this.proc||this.killed)return;this.proc=this.spawn((e)=>Bun.spawn(this.command,{cwd:e,terminal:{...this.size,data:(r,s)=>{this.screen.write(s),this.activity.output(),this.scheduleDetect(),this.broadcast({type:"output",data:s}),this.onOutput()}}})),this.proc.exited.then(()=>this.onExit())}spawn(e){if(this.startDir)try{return e(this.startDir)}catch{}return e()}async cwd(){let e=this.proc?.pid;if(e===void 0)return this.startDir;let r=await $e(e,this.tty);return(r&&await yt(r.foreground.pgid))??await yt(e)}async savedCwd({refresh:e=!1}={}){if(this.proc===void 0)return this.lastCwd;if(!e){let s=this.lastInputAt>=this.cwdCheckedAt-ii,d=this.foreground?.agent===!0&&this.foreground.pgid===this.cwdPgid;if(!s||d)return this.lastCwd}this.cwdCheckedAt=performance.now(),this.cwdPgid=this.foreground?.pgid;let r=await Promise.race([this.cwd(),Bun.sleep(si).then(()=>{return})]);if(r)this.lastCwd=r;return this.lastCwd}write(e){this.lastInputAt=performance.now(),this.activity.input(e),this.scheduleDetect(),this.proc?.terminal?.write(e)}reset(){let e=Tr.encode("\x1Bc");this.screen.write(e),this.broadcast({type:"output",data:e})}snapshot(){return new Promise((e)=>this.screen.write("",()=>e({...this.size,scrollback:this.serializer.serialize({excludeAltBuffer:!0,excludeModes:!0})})))}get status(){if(!this.foreground?.agent)return;return this.activity.status==="idle"&&this.unseen?"done":this.activity.status}markSeen(){let e=this.status==="done";return this.unseen=!1,e}kill(){if(this.hangingUp)return this.hangingUp;this.killed=!0,clearTimeout(this.startTimer),clearTimeout(this.detectTimer),this.activity.dispose();let e=this.proc;if(!e||e.exitCode!==null||e.signalCode!==null)return this.hangingUp=Promise.resolve();let r=Bun.sleep(ni);return this.hangingUp=(async()=>{let s=await Promise.race([$e(e.pid,this.tty),Bun.sleep(oi)]);if(e.exitCode!==null||e.signalCode!==null)return;let d=[...new Set([e.pid,s?.foreground.pgid])].filter((t)=>t!==void 0&&t>1);for(let t of d)try{process.kill(-t,"SIGHUP")}catch{}let m=d.filter((t)=>t!==e.pid),g=!1,y=(async()=>{await e.exited;while(!g&&m.some(ai))await Bun.sleep(20)})();await Promise.race([y,r]),g=!0})(),this.hangingUp}scheduleDetect(){if(this.detecting){this.detectAgain=!0;return}if(this.detectTimer||this.killed)return;this.detectTimer=setTimeout(()=>{this.detectTimer=void 0,this.detect()},ri)}async detect(){let e=this.proc?.pid;if(e===void 0)return;this.detecting=!0,this.detectAgain=!1;let r;try{r=await $e(e,this.tty)}finally{if(this.detecting=!1,this.detectAgain)this.scheduleDetect()}if(this.killed||!r)return;this.tty=r.tty;let s=this.foreground,d=r.foreground;if(this.foreground=d,!d.agent){if(this.unseen=!1,s?.agent)this.onStatus();return}if(!s?.agent||s.pgid!==d.pgid){if(!this.startedAsAgent||d.pgid!==e)this.activity.reset(),this.unseen=!1;this.onStatus()}}fitToSmallest(){let e=[...this.requestedSizes.values()];if(e.length===0)return;let r=(d)=>{let m=e.map((t)=>t.fits[d]),g=e.flatMap((t)=>t.min?[t.min[d]]:[]),y=g.length>0?Math.min(...g):0;return Math.min(Math.max(...m),Math.max(Math.min(...m),y))},s=ge({cols:r("cols"),rows:r("rows")});if(s.cols===this.size.cols&&s.rows===this.size.rows)return;this.size=s,this.screen.resize(s.cols,s.rows),this.proc?.terminal?.resize(s.cols,s.rows),this.broadcast({type:"resize",size:s})}broadcast(e){this.listeners.forEach((r)=>r(e))}}var Rr=256;function ci(e){let r=[...St(e)];return r.length>Rr?`${r.slice(0,Rr-1).join("")}\u2026`:r.join("")}function St(e){return e.replace(/[\u2028\u2029\u0085]/g," ").replace(/[\p{Cc}\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/gu,"")}var Dr=32,hi=Dr*32,li=new Intl.Segmenter(void 0,{granularity:"grapheme"}),ui=/[\p{Default_Ignorable_Code_Point}\s\u2800]/gu;function we(e){let r=St(e.slice(0,hi).replace(/[\t\n\v\f\r]/g," ")).replace(/\p{Cs}/gu,"").replace(/\s+/g," ").trim(),s=[...li.segment(r)].slice(0,Dr).map((d)=>d.segment).join("").trim();return s.replace(ui,"")?s:void 0}function Se(e){return e.normalize("NFKC").replace(/[\p{Default_Ignorable_Code_Point}\p{M}]/gu,"")}var Pr={width:480,height:1080},Ce={width:1920,height:1080};function xe(e){if(typeof e!=="object"||e===null)return;let{width:r,height:s}=e,d=(m,g)=>Number.isSafeInteger(m)&&m>=0&&m<=g;return d(r,Ce.width)&&d(s,Ce.height)?{width:r,height:s}:void 0}function Mr(e){let r=/^(\d+)x(\d+)$/.exec(e);return r?xe({width:Number(r[1]),height:Number(r[2])}):void 0}var Ir=100;function Or(e){return e.replace(/[^\P{Cc}\n\t]|\p{Cf}/gu,"")}function Ct(e,r){return[...e].slice(0,r).join("")}function ze(e){if(typeof e.content!=="string"||typeof e.name!=="string")return;let r=Ct(Or(e.content.replace(/\r\n?|[\u2028\u2029\u0085]/g,`
|
|
38
38
|
`)),1e4).replace(/\n+$/,"");if(r.trim()==="")return;return{name:Ct(Or(e.name.replace(/[\r\n\t\u2028\u2029\u0085]/g," ")).trim(),100)||Ct(r.trim().split(`
|
|
39
|
-
`)[0],100),content:r,run:e.run===!0}}import{lstatSync as
|
|
39
|
+
`)[0],100),content:r,run:e.run===!0}}import{lstatSync as fi,mkdirSync as di,mkdtempSync as pi,rmSync as _i,writeFileSync as gi}from"fs";import{tmpdir as mi}from"os";import{join as xt}from"path";var Fr=104857600;class Et{root=Hr();nextId=1;async save(e){let r=await Promise.all(e.map(async(m)=>new Uint8Array(await m.arrayBuffer()))),s=xt(this.currentRoot(),String(this.nextId++));di(s,{mode:448});let d=new Set;return e.map((m,g)=>{let y=Nr(m.name);for(let o=2;d.has(y);o++)y=`${o}-${Nr(m.name)}`;d.add(y);let t=xt(s,y);return gi(t,r[g],{flag:"wx",mode:384}),t})}remove(){_i(this.root,{recursive:!0,force:!0})}currentRoot(){if(!vi(this.root))this.root=Hr();return this.root}}function Hr(){return pi(xt(mi(),"accompany-"))}function vi(e){try{let r=fi(e);return r.isDirectory()&&r.uid===process.getuid?.()&&(r.mode&63)===0}catch{return!1}}function Nr(e){let r=e.split(/[\\/]/).pop()??"";return Array.from(r.replace(/[\x00-\x1f\x7f]/g,"")).slice(-60).join("").replace(/^[.\s-]+/,"")||"file"}var yi=new Set(["localhost","127.0.0.1","[::1]"]),Wr=yr(async(e,r)=>{let s=e.req.header("Host")??"",d=e.req.header("Origin"),m=URL.parse(`http://${s}`)?.hostname??"";if(!yi.has(m)||d!==`http://${s}`)return e.text("Forbidden",403);await r()});function bi(e){let{cols:r,rows:s,minCols:d,minRows:m}=e,g=(t,o)=>Number.isSafeInteger(t)&&t>=o;if(!g(r,1)||!g(s,1))return;let y=ge({cols:r,rows:s});if(d===void 0&&m===void 0)return{fits:y};if(!g(d,0)||!g(m,0))return;return{fits:y,min:ge({cols:d,rows:m})}}var wi=je+be.rows;function Si(e){let{start:r,end:s}=e;if(r===void 0&&s===void 0)return null;let d=(t,o)=>Number.isSafeInteger(t)&&t>=0&&t<=o,m=(t)=>{let{x:o,y:h}=t??{};return d(o,be.cols)&&d(h,Number.MAX_SAFE_INTEGER)?{x:o,y:h}:void 0},g=m(r),y=m(s);if(!g||!y||g.y>y.y||g.y===y.y&&g.x>y.x)return;if(y.y-g.y>=wi)return;return{start:g,end:y}}var Ci=1024;function At(e,r){let s=typeof r==="string"?r.length:r.byteLength;e.send(r,{compress:s>=Ci})}function Ur(e){try{return JSON.parse(String(e))}catch{return}}function $r(e,r){let s=new Fe;return s.use("/ws/*",Wr),s.use("/api/*",Wr),s.get("/ws/workspace",Me(()=>{let d;return{onOpen:(m,g)=>{d=e.join((y)=>At(g,JSON.stringify(y)))},onMessage:(m)=>{let g=Ur(m.data),y=typeof g?.terminal==="string"?g.terminal:void 0;if(g?.type==="split"&&(g.direction==="row"||g.direction==="column"))d?.split(String(g.terminal),g.direction);else if(g?.type==="move-tab"&&typeof g.tab==="string"&&Number.isSafeInteger(g.index))e.moveTab(g.tab,g.index);else if(g?.type==="rename-tab"&&typeof g.tab==="string"&&typeof g.name==="string")e.renameTab(g.tab,we(g.name));else if(g?.type==="close")e.close(String(g.terminal));else if(g?.type==="resize-split"&&typeof g.ratio==="number")d?.resizeSplit(String(g.split),g.ratio);else if(g?.type==="swap-panes"&&typeof g.tab==="string"&&typeof g.with==="string")d?.swapPanes(g.tab,g.with);else if(g?.type==="flip-split"&&typeof g.split==="string")d?.flipSplit(g.split);else if(g?.type==="rotate-split"&&typeof g.split==="string")d?.rotateSplit(g.split);else if(g?.type==="new-tab")d?.newTab(y);else if(g?.type==="select-tab")d?.selectTab(String(g.tab));else if(g?.type==="add-to-view")d?.addToView(String(g.tab),y);else if(g?.type==="remove-from-view")d?.removeFromView(String(g.tab));else if(g?.type==="focus")d?.focus(String(g.terminal));else if(g?.type==="select"){let t=Si(g);if(t!==void 0)d?.select(String(g.terminal),t??void 0)}else if(g?.type==="visibility")d?.visible(g.visible===!0);else if(g?.type==="name"&&typeof g.name==="string")d?.rename(we(g.name));else if(g?.type==="follow")d?.follow(Number.isSafeInteger(g.member)?g.member:void 0);else if(g?.type==="scroll"&&Number.isSafeInteger(g.offset)&&g.offset>=0){let t=String(g.terminal);if(e.terminal(t))d?.scroll(t,g.offset)}else if(g?.type==="add-command"||g?.type==="update-command"){let t=ze(g);if(!t)return;if(g.type==="add-command")e.addCommand(t);else e.updateCommand(String(g.id),t)}else if(g?.type==="remove-command")e.removeCommand(String(g.id));else if(g?.type==="set-min-window"){let t=xe(g);if(t)e.setMinWindow(t)}},onClose:()=>d?.leave()}})),s.get("/ws/terminals/:id",async(d,m)=>e.terminal(d.req.param("id"))?m():d.text("Not Found",404),Me((d)=>{let m=e.terminal(d.req.param("id")),g;return{onOpen:(y,t)=>{g=m.attach((o)=>o.type==="output"?At(t,o.data):At(t,JSON.stringify(o.type==="resize"?{type:"resize",...o.size}:o)))},onMessage:(y)=>{let t=Ur(y.data);if(t?.type==="input"&&typeof t.data==="string")m.write(t.data);else if(t?.type==="reset")m.reset();else if(t?.type==="resize"){let o=bi(t);if(o)g?.resize(o)}},onClose:()=>g?.detach()}})),s.post("/api/uploads",vr({maxSize:Fr,onError:(d)=>d.text("Payload Too Large",413)}),async(d)=>{let g=(await d.req.formData().catch(()=>{return}))?.getAll("files").filter((y)=>y instanceof File)??[];if(g.length===0)return d.text("Bad Request",400);return d.json({paths:await r.save(g)})}),s}import{parseArgs as Xr}from"util";var jr="0.25.3";import{basename as Ei}from"path";var qe=["zsh","bash","fish"];function zr(e){return qe.includes(e)}function qr(e=process.env.SHELL??""){return Ei(e)}var Ai={zsh:`# Accompany \u306E\u30B7\u30A7\u30EB\u306E\u7D71\u5408\uFF08OSC 133\uFF09\u3002~/.zshrc \u306B eval "$(accompany activate zsh)" \u3068\u66F8\u3044\u3066\u8AAD\u307F\u8FBC\u3080
|
|
40
40
|
autoload -Uz add-zsh-hook
|
|
41
41
|
_accompany_hook() {
|
|
42
42
|
local code=$?
|
|
@@ -94,7 +94,7 @@ end
|
|
|
94
94
|
function _accompany_hook --on-event fish_prompt --description 'Accompany: \u30D7\u30ED\u30F3\u30D7\u30C8\u306E\u59CB\u307E\u308A\uFF08OSC 133 A\uFF09'
|
|
95
95
|
printf '\\e]133;A\\a'
|
|
96
96
|
end
|
|
97
|
-
`};function Gr(e){return
|
|
97
|
+
`};function Gr(e){return Ai[e]}var Ge=`\u30B7\u30A7\u30EB\u306E\u7D71\u5408\u306E\u30B9\u30AF\u30EA\u30D7\u30C8\u3092\u8868\u793A\u3059\u308B
|
|
98
98
|
|
|
99
99
|
\u8868\u793A\u3057\u305F\u30B9\u30AF\u30EA\u30D7\u30C8\u3092\u3001\u30B7\u30A7\u30EB\u3067\u8A55\u4FA1\u3057\u3066\u4F7F\u3046\uFF08\u5B9F\u884C\u3059\u308B\u3060\u3051\u3067\u306F\u8868\u793A\u3059\u308B\u3060\u3051\uFF09\u3002
|
|
100
100
|
\u30B7\u30A7\u30EB\u306E\u7D71\u5408\u3092\u5165\u308C\u308B\u3068\u3001\u30B3\u30DE\u30F3\u30C9\u306E\u533A\u5207\u308A\uFF08OSC 133\uFF09\u304C\u5206\u304B\u308A\u3001\u30BF\u30FC\u30DF\u30CA\u30EB\u306E\u53F3\u4E0B\u306E\u300C\u30B3\u30D4\u30FC\u300D\u3084\u53F3\u30AF\u30EA\u30C3\u30AF\u306E\u30E1\u30CB\u30E5\u30FC\u3067\u3001
|
|
@@ -130,15 +130,15 @@ activate \u3068\u3044\u3046\u540D\u524D\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u670
|
|
|
130
130
|
--min-window <\u5E45>x<\u9AD8\u3055> \u7AEF\u672B\u306E\u5927\u304D\u3055\u306E\u4E0B\u9650\u3092\u3001\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u5927\u304D\u3055\uFF08\u30D4\u30AF\u30BB\u30EB\uFF09\u3067\u6307\u5B9A\u3059\u308B\uFF08\u4F8B: 480x1080\u3002\u4FDD\u5B58\u306F\u3057\u306A\u3044\uFF09
|
|
131
131
|
--allow-vscode-webview VS Code \u306E\u62E1\u5F35\u306E\u30D1\u30CD\u30EB\uFF08webview\uFF09\u306E\u4E2D\u306B\u57CB\u3081\u8FBC\u3080\u3053\u3068\u3092\u8A31\u3059\uFF08\u62E1\u5F35\u304C\u8D77\u52D5\u3059\u308B\u3068\u304D\u306B\u4ED8\u3051\u308B\uFF09
|
|
132
132
|
-v, --version \u7248\u3092\u8868\u793A\u3059\u308B
|
|
133
|
-
-h, --help \u3053\u306E\u4F7F\u3044\u65B9\u3092\u8868\u793A\u3059\u308B`;function Vr(e=process.argv.slice(2)){if(e[0]==="activate")
|
|
133
|
+
-h, --help \u3053\u306E\u4F7F\u3044\u65B9\u3092\u8868\u793A\u3059\u308B`;function Vr(e=process.argv.slice(2)){if(e[0]==="activate")ki(e.slice(1));let r;try{r=Xr({args:e,options:{port:{type:"string",default:"3000"},fresh:{type:"boolean",default:!1},"min-window":{type:"string"},"allow-vscode-webview":{type:"boolean",default:!1},version:{type:"boolean",short:"v",default:!1},help:{type:"boolean",short:"h",default:!1}},allowPositionals:!0})}catch(d){console.error(`Accompany: ${Qr(d)}
|
|
134
134
|
|
|
135
135
|
${kt}`),process.exit(1)}if(r.values.help)console.log(kt),process.exit(0);if(r.values.version)console.log(`accompany ${jr}`),process.exit(0);let s=r.values.port;if(!/^\d+$/.test(s)||Number(s)>Ee)console.error(`Accompany: --port \u306F 0\u301C${Ee} \u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${s}
|
|
136
136
|
|
|
137
|
-
${kt}`),process.exit(1);return r}var Ee=65535;function
|
|
137
|
+
${kt}`),process.exit(1);return r}var Ee=65535;function ki(e){let r;try{r=Xr({args:e,options:{help:{type:"boolean",short:"h",default:!1}},allowPositionals:!0})}catch(m){console.error(`Accompany: ${Qr(m)}
|
|
138
138
|
|
|
139
139
|
${Ge}`),process.exit(1)}if(r.values.help)console.log(Ge),process.exit(0);if(r.positionals.length>1)console.error(`Accompany: activate \u306B\u6E21\u305B\u308B\u30B7\u30A7\u30EB\u306F 1 \u3064\u3067\u3059: ${r.positionals.join(" ")}
|
|
140
140
|
|
|
141
|
-
${Ge}`),process.exit(1);let s=r.positionals[0],d=s??qr();if(!zr(d)){let m=`\u5BFE\u5FDC\u3057\u3066\u3044\u308B\u30B7\u30A7\u30EB: ${qe.join("\u30FB")}`;console.error(s===void 0?`Accompany: $SHELL\uFF08${process.env.SHELL??"\u672A\u8A2D\u5B9A"}\uFF09\u306E\u30B7\u30A7\u30EB\u306B\u306F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\u3002accompany activate zsh \u306E\u3088\u3046\u306B\u30B7\u30A7\u30EB\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${m}\uFF09`:`Accompany: \u77E5\u3089\u306A\u3044\u30B7\u30A7\u30EB\u3067\u3059: ${d}\uFF08${m}\uFF09`),process.exit(1)}process.stdout.write(Gr(d)),process.exit(0)}function Qr(e){let r=e instanceof Error?e.message:String(e),s=e?.code;if(s==="ERR_PARSE_ARGS_UNKNOWN_OPTION"){let d=r.match(/Unknown option '([^']+)'/)?.[1];if(d)return`\u77E5\u3089\u306A\u3044\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3059: ${d}`}if(s==="ERR_PARSE_ARGS_INVALID_OPTION_VALUE"){let d=r.match(/Option '(-[^\s']+)/)?.[1];if(d&&/argument missing|argument is ambiguous/.test(r))return`${d} \u306B\u306F\u5024\u304C\u8981\u308A\u307E\u3059`;if(d&&/does not take an argument/.test(r))return`${d} \u306F\u5024\u3092\u53D6\u308A\u307E\u305B\u3093`}return r}var Kr=$t("{\"index\":\"public/index.html\",\"files\":[{\"input\":\"public/index.html\",\"path\":\"./index-5mraxvns.js\",\"loader\":\"js\",\"isEntry\":true,\"headers\":{\"etag\":\"xfSYqj0blVk\",\"content-type\":\"text/javascript;charset=utf-8\"}},{\"input\":\"public/index.html\",\"path\":\"public/index.html\",\"loader\":\"html\",\"isEntry\":true,\"headers\":{\"etag\":\"8ImCxkzKgpw\",\"content-type\":\"text/html;charset=utf-8\"}},{\"input\":\"public/index.html\",\"path\":\"./index-175hbfqz.css\",\"loader\":\"css\",\"isEntry\":true,\"headers\":{\"etag\":\"gYfFMatv198\",\"content-type\":\"text/css;charset=utf-8\"}},{\"input\":\"public/favicon.png\",\"path\":\"./favicon-0wwf4h3c.png\",\"loader\":\"file\",\"isEntry\":false,\"headers\":{\"etag\":\"YHwcDyQxo4w\",\"content-type\":\"image/png\"}},{\"input\":\"public/apple-touch-icon.png\",\"path\":\"./apple-touch-icon-ehhpc4a9.png\",\"loader\":\"file\",\"isEntry\":false,\"headers\":{\"etag\":\"LjHRtszkCok\",\"content-type\":\"image/png\"}}]}");import{createHash as Li}from"crypto";import{chmodSync as Ti,mkdirSync as Ri,readFileSync as Bi,renameSync as Di,rmSync as Yr,writeFileSync as Pi}from"fs";import{homedir as Mi}from"os";import{dirname as Oi,isAbsolute as Zr,join as Lt}from"path";var Jr=448,Ii=384;function es(e=process.env){if(e.ACCOMPANY_STATE_DIR)return e.ACCOMPANY_STATE_DIR;let r=e.XDG_STATE_HOME&&Zr(e.XDG_STATE_HOME)?e.XDG_STATE_HOME:Lt(Mi(),".local","state");return Lt(r,"accompany")}class Tt{dir;file;constructor(e,r){this.dir=e;let s=Li("sha256").update(r).digest("hex").slice(0,16);this.file=Lt(e,"sessions",`${s}.json`)}load(){let e;try{e=Bi(this.file,"utf8")}catch(r){if(r.code!=="ENOENT")console.warn(`Accompany: \u4FDD\u5B58\u3057\u305F\u753B\u9762\u3092\u8AAD\u3081\u307E\u305B\u3093\u3067\u3057\u305F: ${r}`);return}try{let r=Hi(JSON.parse(e));if(!r)console.warn(`Accompany: \u4FDD\u5B58\u3057\u305F\u753B\u9762\u306E\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u306A\u3044\u305F\u3081\u3001\u65B0\u3057\u304F\u59CB\u3081\u307E\u3059: ${this.file}`);return r}catch(r){console.warn(`Accompany: \u4FDD\u5B58\u3057\u305F\u753B\u9762\u3092\u8AAD\u3081\u306A\u3044\u305F\u3081\u3001\u65B0\u3057\u304F\u59CB\u3081\u307E\u3059: ${r}`)}}save(e){let r=Oi(this.file);for(let d of[this.dir,r])Ri(d,{recursive:!0,mode:Jr}),Ti(d,Jr);let s=`${this.file}.${process.pid}.tmp`;Yr(s,{force:!0});try{Pi(s,JSON.stringify(e),{mode:Ii,flag:"wx"}),Di(s,this.file)}catch(d){throw Yr(s,{force:!0}),d}}}function Hi(e){if(!ie(e)||!Array.isArray(e.tabs)||e.tabs.length===0)return;let r=e.version===2?Ni(e.tabs):e.version===1?Fi(e.tabs):void 0;if(!r)return;let s=ie(e.terminals)?e.terminals:{},d={};for(let o of r){let h=s[o];d[o]={...ie(h)&&Ui(h)?ge({cols:h.cols,rows:h.rows}):{cols:80,rows:24},scrollback:ie(h)&&typeof h.scrollback==="string"?h.scrollback:"",initial:ie(h)&&h.initial===!0,...ie(h)&&Wi(h.cwd)&&{cwd:h.cwd}}}let m=[];for(let o of Array.isArray(e.commands)?e.commands:[]){let h=ie(o)&&Rt(o.id)&&ze(o);if(h&&!m.some((p)=>p.id===o.id))m.push({id:o.id,...h})}let g=ie(e.names)?e.names:{},y={};for(let o of r){let h=typeof g[o]==="string"?we(g[o]):void 0;if(h!==void 0)y[o]=h}let t=xe(e.minWindow);return{version:2,cwd:String(e.cwd??""),tabs:r,names:y,terminals:d,commands:m,...t&&{minWindow:t}}}function Ni(e){let r=[];for(let s of e){if(!Rt(s)||r.includes(s))return;r.push(s)}return r}function Fi(e){let r=new Set,s=[];for(let d of e)if(!ie(d)||!ts(d.layout,r,s,0))return;return s}function ts(e,r,s,d){if(!ie(e)||d>100)return!1;if(e.type==="terminal"){if(!Rt(e.id)||r.has(e.id))return!1;return r.add(e.id),s.push(e.id),!0}if(e.type!=="split"||typeof e.id!=="string"||!/^split-[1-9]\d{0,8}$/.test(e.id))return!1;if(r.has(e.id))return!1;if(r.add(e.id),!Array.isArray(e.children)||e.children.length!==2)return!1;return e.children.every((m)=>ts(m,r,s,d+1))}function ie(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Rt(e){return typeof e==="string"&&/^[1-9]\d{0,8}$/.test(e)}function Wi(e){return typeof e==="string"&&Zr(e)&&!e.includes("\x00")}function Ui(e){let r=(s)=>Number.isSafeInteger(s)&&s>=1;return r(e.cols)&&r(e.rows)}import{isAbsolute as $i,resolve as ji}from"path";var zi=0.9;function ns({allowVscodeWebview:e=!1}={}){return`frame-ancestors 'self'${e?" vscode-webview: vscode-file:":""}`}async function os(e,r){let{files:s}=e;if(s?.some((m)=>!$i(m.path)))return rs(Gi(s),r);let d=Bun.serve({hostname:"127.0.0.1",port:0,development:!1,reusePort:!1,routes:{"/":e},fetch:()=>new Response("Not Found",{status:404})});try{return await rs(qi(d.url),r)}finally{d.stop(!0)}}async function rs(e,r){let s=ss(await e("/"),r),d=new TextDecoder().decode(s.body),m=new Set([...d.matchAll(/(?:src|href)="(\/[^"]+)"/g)].map((y)=>y[1])),g={"/":is(s)};for(let y of m){let t=ss(await e(y),r);if(!t.headers.has("cache-control"))t.headers.set("cache-control","public, max-age=31536000, immutable");g[y]=is(t)}return g}function qi(e){return async(r)=>{let s=await fetch(new URL(r,e));if(!s.ok)throw Error(`\u753B\u9762\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u7528\u610F\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${r} (${s.status})`);return{body:new Uint8Array(await s.arrayBuffer()),headers:new Headers(s.headers)}}}function Gi(e){return async(r)=>{let s=r==="/"?e.find((m)=>m.loader==="html"):e.find((m)=>m.loader!=="html"&&`/${m.path.replace(/^\.\//,"")}`===r);if(!s)throw Error(`\u753B\u9762\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u7528\u610F\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${r}\uFF08\u56FA\u3081\u305F JS \u306E\u4E00\u89A7\u306B\u306A\u3044\uFF09`);return{body:await Bun.file(ji(import.meta.dir,s.path)).bytes(),headers:new Headers(s.headers)}}}function ss({body:e,headers:r},s){let d=new Headers(r);d.delete("content-length"),d.delete("date"),d.set("vary","Accept-Encoding"),d.set("content-security-policy",s);let m=Bun.gzipSync(e,{level:9});return{body:e,headers:d,gzip:m.byteLength<e.byteLength*zi?m:void 0}}function is({body:e,gzip:r,headers:s}){let d=s.get("etag");return(m)=>{if(d&&m.headers.get("if-none-match")===d)return new Response(null,{status:304,headers:s});let g=/\bgzip\b/.test(m.headers.get("accept-encoding")??"");if(!r||!g)return new Response(e,{headers:s});let y=new Headers(s);return y.set("content-encoding","gzip"),new Response(r,{headers:y})}}var Xi=3,as=["#4fc3f7","#ffb74d","#81c784","#f06292","#ba68c8","#fff176"];class Mt{shellCommand;terminals=new Map;order=[];tabNames=new Map;members=new Map;views=new Map;chosenNames=new Map;visibleMembers=new Set;nextMemberId=1;nextId=1;nextSplitId=1;titlesQueued=!1;nextCommandId=1;stopping=!1;initialTerminal;commands=[];minWindow;savedMinWindow;onChange=()=>{};constructor(e,r,s,d){this.shellCommand=r;if(this.savedMinWindow=s?.minWindow,this.minWindow=d??s?.minWindow??Pr,!s){this.initialTerminal=this.createTerminal(e??r);return}for(let g of s.tabs){let y=s.terminals[g];if(y.initial)this.initialTerminal=g;let t=y.initial&&e!==void 0;this.addTerminal(g,t?e:r,y,t?void 0:y.cwd)}for(let[g,y]of Object.entries(s.names??{}))this.tabNames.set(g,y);this.commands=s.commands;let m=(g)=>Math.max(0,...g.map(Number))+1;if(this.nextId=m(this.order),this.nextCommandId=m(this.commands.map((g)=>g.id)),e&&!this.initialTerminal)this.initialTerminal=this.createTerminal(e)}async snapshot(e,{refreshCwd:r=!1}={}){let s={};return await Promise.all([...this.terminals].map(async([d,m])=>{let[g,y]=await Promise.all([m.snapshot(),m.savedCwd({refresh:r})]);s[d]={...g,initial:d===this.initialTerminal,...y&&{cwd:y}}})),{version:2,cwd:e,tabs:[...this.order],names:Object.fromEntries(this.tabNames),terminals:s,commands:this.commands,...this.savedMinWindow&&{minWindow:this.savedMinWindow}}}terminal(e){return this.terminals.get(e)}join(e){let r=this.nextMemberId++,s={id:r,name:Bt(r),color:as[(r-1)%as.length],selections:{}};this.members.set(e,s);let d=this.initialTerminal&&this.terminals.has(this.initialTerminal)?this.initialTerminal:this.order[0];return this.views.set(s,ue(d)),e({type:"welcome",you:r}),e(this.tabsEvent()),e({type:"view",layout:this.views.get(s)}),e(this.titlesEvent()),e({type:"status",statuses:this.statuses()}),e(this.commandsEvent()),e(this.minWindowEvent()),this.notifyPresence(),{newTab:async(m)=>{let g=m??s.terminal,y=g===void 0?void 0:await this.terminals.get(g)?.cwd();if(!this.views.has(s))return;let t=this.createTerminal(this.shellCommand,y);this.notifyTabs(),this.changeView(s,()=>ue(t))},split:async(m,g)=>{if(!this.canAdd(s))return;let y=await this.terminals.get(m)?.cwd();if(!this.canAdd(s))return;let t=this.createTerminal(this.shellCommand,y);this.notifyTabs(),this.changeView(s,(o)=>this.placeBeside(o,ue(t),m,g))},selectTab:(m)=>{if(!this.terminals.has(m))return;this.changeView(s,(g)=>g.type==="terminal"&&g.id===m?void 0:ue(m))},addToView:(m,g)=>{if(!this.terminals.has(m)||!this.canAdd(s))return;this.changeView(s,(y)=>le(y).includes(m)?void 0:this.placeBeside(y,ue(m),g,"row"))},removeFromView:(m)=>{this.changeView(s,(g)=>le(g).length>1&&le(g).includes(m)?Ve(g,m):void 0)},resizeSplit:(m,g)=>{this.changeView(s,(y)=>Ae(y,m)?Vi(y,m,Math.min(0.9,Math.max(0.1,g))):void 0)},swapPanes:(m,g)=>{this.changeView(s,(y)=>{let t=le(y);return m!==g&&t.includes(m)&&t.includes(g)?hs(y,m,g):void 0})},flipSplit:(m)=>{this.changeView(s,(g)=>Ae(g,m)?Qe(g,m,(y)=>({...y,ratio:1-y.ratio,children:[y.children[1],y.children[0]]})):void 0)},rotateSplit:(m)=>{this.changeView(s,(g)=>Ae(g,m)?Xe(Qe(g,m,(y)=>({...y,direction:y.direction==="row"?"column":"row"}))):void 0)},focus:(m)=>{s.terminal=m,this.notifyPresence(),this.updateSeen()},visible:(m)=>{if(m)this.visibleMembers.add(s);else this.visibleMembers.delete(s);this.updateSeen()},select:(m,g)=>{if(g&&this.terminals.has(m))s.selections[m]=g;else if(!g&&Object.hasOwn(s.selections,m))delete s.selections[m];else return;this.notifyPresence()},follow:(m)=>{let g=[...this.members.values()].find((t)=>t.id===m&&t!==s);if(s.following===g?.id)return;let y=s.following;if(s.following=g?.id,this.forgetScroll(y),this.notifyPresence(),g)this.setView(s,this.views.get(g))},scroll:(m,g)=>{if(s.scroll?.terminal===m&&s.scroll.offset===g)return;s.scroll={terminal:m,offset:g},this.notifyPresence()},rename:(m)=>{if(this.chosenNames.get(s)===m)return;if(m===void 0)this.chosenNames.delete(s);else this.chosenNames.set(s,m);this.notifyPresence()},leave:()=>{this.members.delete(e),this.views.delete(s),this.chosenNames.delete(s),this.visibleMembers.delete(s),this.members.forEach((m)=>{if(m.following===s.id)m.following=void 0}),this.forgetScroll(s.following),this.notifyPresence()}}}close(e){if(this.stopping)return;let r=this.order.indexOf(e);if(r<0||this.order.length===1)return;this.order.splice(r,1),this.removeTerminal(e);let s=this.order[Math.min(r,this.order.length-1)];this.notifyTabs();for(let[d,m]of this.members){let g=this.views.get(m);if(!g||!le(g).includes(e))continue;let y=Ve(g,e)??ue(s);this.views.set(m,y),d({type:"view",layout:y})}this.updateSeen()}moveTab(e,r){let s=this.order.indexOf(e);if(s<0||!Number.isSafeInteger(r)||r<0||r>=this.order.length||r===s)return;this.order.splice(s,1),this.order.splice(r,0,e),this.notifyTabs()}renameTab(e,r){if(!this.terminals.has(e)||this.tabNames.get(e)===r)return;if(r===void 0)this.tabNames.delete(e);else this.tabNames.set(e,r);this.notifyTabs()}addCommand(e){if(this.commands.length>=Ir)return;this.commands.push({id:String(this.nextCommandId++),...e}),this.notifyCommands()}updateCommand(e,r){let s=this.commands.findIndex((d)=>d.id===e);if(s<0)return;this.commands[s]={id:e,...r},this.notifyCommands()}removeCommand(e){let r=this.commands.length;if(this.commands=this.commands.filter((s)=>s.id!==e),this.commands.length!==r)this.notifyCommands()}setMinWindow(e){if(this.savedMinWindow=e,e.width===this.minWindow.width&&e.height===this.minWindow.height)return this.onChange();this.minWindow=e;let r=this.minWindowEvent();this.members.forEach((s,d)=>d(r)),this.onChange()}async killAll(){this.stopping=!0,await Promise.all([...this.terminals.values()].map((e)=>e.kill()))}createTerminal(e,r){let s=String(this.nextId++);return this.addTerminal(s,e,void 0,r),s}addTerminal(e,r,s,d){this.order.push(e),this.terminals.set(e,new wt(r,()=>this.close(e),()=>this.notifyTitles(),()=>this.notifyStatus(),{restored:s,onOutput:()=>this.onChange(),cwd:d}))}removeTerminal(e){this.terminals.get(e)?.kill(),this.terminals.delete(e),this.tabNames.delete(e);let r=!1;for(let s of this.members.values()){if(!Object.hasOwn(s.selections,e))continue;delete s.selections[e],r=!0}if(r)this.notifyPresence()}canAdd(e){let r=this.views.get(e);return r!==void 0&&le(r).length<Xi}placeBeside(e,r,s,d){let m=(g)=>({type:"split",id:`split-${this.nextSplitId++}`,direction:d,ratio:0.5,children:[g,r]});if(s===void 0||!le(e).includes(s))return Xe(m(e));return Xe(cs(e,s,m(ue(s))))}changeView(e,r){let s=this.views.get(e),d=s&&r(s);if(!d)return;if(e.following!==void 0){let m=e.following;e.following=void 0,this.forgetScroll(m),this.notifyPresence()}this.setView(e,d)}setView(e,r){let s=new Set,d=(m)=>{s.add(m),this.views.set(m,r);for(let[g,y]of this.members)if(y===m)g({type:"view",layout:r});for(let g of this.members.values())if(g.following===m.id&&!s.has(g))d(g)};d(e),this.updateSeen()}tabsEvent(){let e=(d)=>Se(d).replace(/\s/g,""),r=new Map(this.order.map((d)=>[d,e(this.tabNames.get(d)??Dt(d))]));return{type:"tabs",tabs:this.order.map((d)=>{let m=this.tabNames.get(d);if(m===void 0)return{id:d,name:Dt(d)};let g=r.get(d),y=g.match(/^\u30BF\u30FC\u30DF\u30CA\u30EB(\d+)$/),t=y!==null&&y[1]!==d||/\(\u30BF\u30FC\u30DF\u30CA\u30EB\d+\)$/.test(g)||this.order.some((o)=>o!==d&&r.get(o)===g);return{id:d,name:t?`${m}\uFF08${Dt(d)}\uFF09`:m,custom:m}})}}notifyTabs(){let e=this.tabsEvent();this.members.forEach((r,s)=>s(e)),this.onChange()}titlesEvent(){let e={};return this.terminals.forEach((r,s)=>{if(r.title)e[s]=r.title}),{type:"titles",titles:e}}notifyTitles(){if(this.titlesQueued)return;this.titlesQueued=!0,queueMicrotask(()=>{this.titlesQueued=!1;let e=this.titlesEvent();this.members.forEach((r,s)=>s(e))})}statuses(){let e={};return this.terminals.forEach((r,s)=>{if(r.status)e[s]=r.status}),e}notifyStatus(){this.clearSeen();let e=this.statuses();this.members.forEach((r,s)=>s({type:"status",statuses:e}))}updateSeen(){if(this.clearSeen())this.notifyStatus()}clearSeen(){let e=!1;for(let r of this.visibleMembers){let s=r.terminal,d=this.views.get(r);if(s&&d&&le(d).includes(s)&&this.terminals.get(s)?.markSeen())e=!0}return e}commandsEvent(){return{type:"commands",commands:this.commands}}minWindowEvent(){return{type:"min-window",...this.minWindow}}notifyCommands(){let e=this.commandsEvent();this.members.forEach((r,s)=>s(e)),this.onChange()}forgetScroll(e){let r=[...this.members.values()],s=r.find((d)=>d.id===e);if(s&&!r.some((d)=>d.following===e))s.scroll=void 0}updateNames(){let e=[...this.members.values()],r=(d)=>this.chosenNames.get(d)??Bt(d.id),s=new Map;for(let d of e)s.set(Se(r(d)),(s.get(Se(r(d)))??0)+1);for(let d of e){let m=r(d);d.name=s.get(Se(m))>1?`${m}\uFF08${Bt(d.id)}\uFF09`:m}}notifyPresence(){this.updateNames();let e=[...this.members.values()];this.members.forEach((r,s)=>s({type:"presence",members:e}))}}function Bt(e){return`\u53C2\u52A0\u8005 ${e}`}function Dt(e){return`\u30BF\u30FC\u30DF\u30CA\u30EB ${e}`}function ue(e){return{type:"terminal",id:e}}function le(e){return e.type==="terminal"?[e.id]:e.children.flatMap(le)}function Ae(e,r){if(e.type==="terminal")return;return e.id===r?e:Ae(e.children[0],r)??Ae(e.children[1],r)}function Ot(e,r){return{...e,children:[r(e.children[0]),r(e.children[1])]}}function cs(e,r,s){if(e.type==="terminal")return e.id===r?s:e;return Ot(e,(d)=>cs(d,r,s))}function Ve(e,r){if(e.type==="terminal")return e.id===r?void 0:e;let s=Ve(e.children[0],r),d=Ve(e.children[1],r);if(!s||!d)return s??d;return{...e,children:[s,d]}}function Vi(e,r,s){return Qe(e,r,(d)=>({...d,ratio:s}))}function Qe(e,r,s){if(e.type==="terminal")return e;if(e.id===r)return s(e);return Ot(e,(d)=>Qe(d,r,s))}function hs(e,r,s){if(e.type==="terminal")return e.id===r?ue(s):e.id===s?ue(r):e;return Ot(e,(d)=>hs(d,r,s))}function Xe(e){if(e.type==="terminal")return e;let r=e.children.map(Xe),[s,d]=r.map((m)=>Pt(m,e.direction));return{...e,ratio:s/(s+d),children:r}}function Pt(e,r){if(e.type==="terminal"||e.direction!==r)return 1;return Pt(e.children[0],r)+Pt(e.children[1],r)}var{values:Je,positionals:ls}=Vr(),Ye=Je["min-window"],us=Ye===void 0?void 0:Mr(Ye);if(Ye!==void 0&&!us)console.error(`Accompany: --min-window \u306F\u300C\u5E45x\u9AD8\u3055\u300D\uFF08\u4F8B: 480x1080\u3002\u5E45 0\u301C${Ce.width}\u3001\u9AD8\u3055 0\u301C${Ce.height} \u306E\u6574\u6570\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${Ye}`),process.exit(1);var Qi=[process.env.SHELL??"/bin/sh"],fs=process.cwd(),Nt=new Tt(es(),fs),ds=Je.fresh?void 0:Nt.load(),ke=new Mt(ls.length>0?ls:void 0,Qi,ds,us),Ft=new Et,Ki=$r(ke,Ft),ps=10,_e=Number(Je.port),Yi=await os(Kr,ns({allowVscodeWebview:Je["allow-vscode-webview"]})),me;for(let e=_e;e<_e+ps&&e<=Ee;e++)try{me=Bun.serve({hostname:"127.0.0.1",port:e,development:!1,reusePort:!1,routes:Yi,fetch:Ki.fetch,websocket:{...nt,perMessageDeflate:!0}});break}catch(r){if(r.code!=="EADDRINUSE")throw r}if(!me){let e=Math.min(_e+ps-1,Ee);console.error(`Accompany: \u30DD\u30FC\u30C8 ${_e}\u301C${e} \u306F\u3059\u3079\u3066\u4F7F\u308F\u308C\u3066\u3044\u307E\u3059\u3002--port \u3067\u5225\u306E\u30DD\u30FC\u30C8\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`),await ke.killAll(),Ft.remove(),process.exit(1)}if(me.port!==_e&&_e!==0)console.log(`Accompany: \u30DD\u30FC\u30C8 ${_e} \u306F\u4F7F\u308F\u308C\u3066\u3044\u308B\u306E\u3067\u3001${me.port} \u3067\u5F85\u3061\u53D7\u3051\u307E\u3059`);var It=!1;async function _s({stopping:e=!1}={}){try{Nt.save(await ke.snapshot(fs,{refreshCwd:e})),It=!1}catch(r){if(!It)console.warn(`Accompany: \u753B\u9762\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${r}`);It=!0}}var Ji=1000,Ke,Ht=!1;ke.onChange=()=>{if(Ke||Ht)return;Ke=setTimeout(()=>{Ke=void 0,_s()},Ji)};var Zi=3000;for(let e of["SIGINT","SIGTERM","SIGHUP"])process.on(e,async()=>{if(Ht)return;Ht=!0,clearTimeout(Ke),await Promise.race([_s({stopping:!0}),Bun.sleep(Zi)]),await ke.killAll(),Ft.remove(),process.exit(0)});console.log(`Accompany: http://${me.hostname}:${me.port}`);if(ds)console.log(`\u524D\u56DE\u306E\u753B\u9762\u3092\u623B\u3057\u307E\u3057\u305F\uFF08\u65B0\u3057\u304F\u59CB\u3081\u308B\u3068\u304D\u306F --fresh \u3092\u4ED8\u3051\u3066\u8D77\u52D5\u3059\u308B\uFF09: ${Nt.file}`);
|
|
141
|
+
${Ge}`),process.exit(1);let s=r.positionals[0],d=s??qr();if(!zr(d)){let m=`\u5BFE\u5FDC\u3057\u3066\u3044\u308B\u30B7\u30A7\u30EB: ${qe.join("\u30FB")}`;console.error(s===void 0?`Accompany: $SHELL\uFF08${process.env.SHELL??"\u672A\u8A2D\u5B9A"}\uFF09\u306E\u30B7\u30A7\u30EB\u306B\u306F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\u3002accompany activate zsh \u306E\u3088\u3046\u306B\u30B7\u30A7\u30EB\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${m}\uFF09`:`Accompany: \u77E5\u3089\u306A\u3044\u30B7\u30A7\u30EB\u3067\u3059: ${d}\uFF08${m}\uFF09`),process.exit(1)}process.stdout.write(Gr(d)),process.exit(0)}function Qr(e){let r=e instanceof Error?e.message:String(e),s=e?.code;if(s==="ERR_PARSE_ARGS_UNKNOWN_OPTION"){let d=r.match(/Unknown option '([^']+)'/)?.[1];if(d)return`\u77E5\u3089\u306A\u3044\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3059: ${d}`}if(s==="ERR_PARSE_ARGS_INVALID_OPTION_VALUE"){let d=r.match(/Option '(-[^\s']+)/)?.[1];if(d&&/argument missing|argument is ambiguous/.test(r))return`${d} \u306B\u306F\u5024\u304C\u8981\u308A\u307E\u3059`;if(d&&/does not take an argument/.test(r))return`${d} \u306F\u5024\u3092\u53D6\u308A\u307E\u305B\u3093`}return r}var Kr=$t("{\"index\":\"public/index.html\",\"files\":[{\"input\":\"public/index.html\",\"path\":\"./index-5mraxvns.js\",\"loader\":\"js\",\"isEntry\":true,\"headers\":{\"etag\":\"xfSYqj0blVk\",\"content-type\":\"text/javascript;charset=utf-8\"}},{\"input\":\"public/index.html\",\"path\":\"public/index.html\",\"loader\":\"html\",\"isEntry\":true,\"headers\":{\"etag\":\"8ImCxkzKgpw\",\"content-type\":\"text/html;charset=utf-8\"}},{\"input\":\"public/index.html\",\"path\":\"./index-175hbfqz.css\",\"loader\":\"css\",\"isEntry\":true,\"headers\":{\"etag\":\"gYfFMatv198\",\"content-type\":\"text/css;charset=utf-8\"}},{\"input\":\"public/favicon.png\",\"path\":\"./favicon-0wwf4h3c.png\",\"loader\":\"file\",\"isEntry\":false,\"headers\":{\"etag\":\"YHwcDyQxo4w\",\"content-type\":\"image/png\"}},{\"input\":\"public/apple-touch-icon.png\",\"path\":\"./apple-touch-icon-ehhpc4a9.png\",\"loader\":\"file\",\"isEntry\":false,\"headers\":{\"etag\":\"LjHRtszkCok\",\"content-type\":\"image/png\"}}]}");import{createHash as Ti}from"crypto";import{chmodSync as Ri,mkdirSync as Bi,readFileSync as Di,renameSync as Pi,rmSync as Yr,writeFileSync as Mi}from"fs";import{homedir as Oi}from"os";import{dirname as Ii,isAbsolute as Zr,join as Lt}from"path";var Jr=448,Hi=384;function es(e=process.env){if(e.ACCOMPANY_STATE_DIR)return e.ACCOMPANY_STATE_DIR;let r=e.XDG_STATE_HOME&&Zr(e.XDG_STATE_HOME)?e.XDG_STATE_HOME:Lt(Oi(),".local","state");return Lt(r,"accompany")}class Tt{dir;file;constructor(e,r){this.dir=e;let s=Ti("sha256").update(r).digest("hex").slice(0,16);this.file=Lt(e,"sessions",`${s}.json`)}load(){let e;try{e=Di(this.file,"utf8")}catch(r){if(r.code!=="ENOENT")console.warn(`Accompany: \u4FDD\u5B58\u3057\u305F\u753B\u9762\u3092\u8AAD\u3081\u307E\u305B\u3093\u3067\u3057\u305F: ${r}`);return}try{let r=Ni(JSON.parse(e));if(!r)console.warn(`Accompany: \u4FDD\u5B58\u3057\u305F\u753B\u9762\u306E\u5F62\u5F0F\u304C\u6B63\u3057\u304F\u306A\u3044\u305F\u3081\u3001\u65B0\u3057\u304F\u59CB\u3081\u307E\u3059: ${this.file}`);return r}catch(r){console.warn(`Accompany: \u4FDD\u5B58\u3057\u305F\u753B\u9762\u3092\u8AAD\u3081\u306A\u3044\u305F\u3081\u3001\u65B0\u3057\u304F\u59CB\u3081\u307E\u3059: ${r}`)}}save(e){let r=Ii(this.file);for(let d of[this.dir,r])Bi(d,{recursive:!0,mode:Jr}),Ri(d,Jr);let s=`${this.file}.${process.pid}.tmp`;Yr(s,{force:!0});try{Mi(s,JSON.stringify(e),{mode:Hi,flag:"wx"}),Pi(s,this.file)}catch(d){throw Yr(s,{force:!0}),d}}}function Ni(e){if(!ie(e)||!Array.isArray(e.tabs)||e.tabs.length===0)return;let r=e.version===2?Fi(e.tabs):e.version===1?Wi(e.tabs):void 0;if(!r)return;let s=ie(e.terminals)?e.terminals:{},d={};for(let o of r){let h=s[o];d[o]={...ie(h)&&$i(h)?ge({cols:h.cols,rows:h.rows}):{cols:80,rows:24},scrollback:ie(h)&&typeof h.scrollback==="string"?h.scrollback:"",initial:ie(h)&&h.initial===!0,...ie(h)&&Ui(h.cwd)&&{cwd:h.cwd}}}let m=[];for(let o of Array.isArray(e.commands)?e.commands:[]){let h=ie(o)&&Rt(o.id)&&ze(o);if(h&&!m.some((p)=>p.id===o.id))m.push({id:o.id,...h})}let g=ie(e.names)?e.names:{},y={};for(let o of r){let h=typeof g[o]==="string"?we(g[o]):void 0;if(h!==void 0)y[o]=h}let t=xe(e.minWindow);return{version:2,cwd:String(e.cwd??""),tabs:r,names:y,terminals:d,commands:m,...t&&{minWindow:t}}}function Fi(e){let r=[];for(let s of e){if(!Rt(s)||r.includes(s))return;r.push(s)}return r}function Wi(e){let r=new Set,s=[];for(let d of e)if(!ie(d)||!ts(d.layout,r,s,0))return;return s}function ts(e,r,s,d){if(!ie(e)||d>100)return!1;if(e.type==="terminal"){if(!Rt(e.id)||r.has(e.id))return!1;return r.add(e.id),s.push(e.id),!0}if(e.type!=="split"||typeof e.id!=="string"||!/^split-[1-9]\d{0,8}$/.test(e.id))return!1;if(r.has(e.id))return!1;if(r.add(e.id),!Array.isArray(e.children)||e.children.length!==2)return!1;return e.children.every((m)=>ts(m,r,s,d+1))}function ie(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Rt(e){return typeof e==="string"&&/^[1-9]\d{0,8}$/.test(e)}function Ui(e){return typeof e==="string"&&Zr(e)&&!e.includes("\x00")}function $i(e){let r=(s)=>Number.isSafeInteger(s)&&s>=1;return r(e.cols)&&r(e.rows)}import{isAbsolute as ji,resolve as zi}from"path";var qi=0.9;function ns({allowVscodeWebview:e=!1}={}){return`frame-ancestors 'self'${e?" vscode-webview: vscode-file:":""}`}async function os(e,r){let{files:s}=e;if(s?.some((m)=>!ji(m.path)))return rs(Xi(s),r);let d=Bun.serve({hostname:"127.0.0.1",port:0,development:!1,reusePort:!1,routes:{"/":e},fetch:()=>new Response("Not Found",{status:404})});try{return await rs(Gi(d.url),r)}finally{d.stop(!0)}}async function rs(e,r){let s=ss(await e("/"),r),d=new TextDecoder().decode(s.body),m=new Set([...d.matchAll(/(?:src|href)="(\/[^"]+)"/g)].map((y)=>y[1])),g={"/":is(s)};for(let y of m){let t=ss(await e(y),r);if(!t.headers.has("cache-control"))t.headers.set("cache-control","public, max-age=31536000, immutable");g[y]=is(t)}return g}function Gi(e){return async(r)=>{let s=await fetch(new URL(r,e));if(!s.ok)throw Error(`\u753B\u9762\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u7528\u610F\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${r} (${s.status})`);return{body:new Uint8Array(await s.arrayBuffer()),headers:new Headers(s.headers)}}}function Xi(e){return async(r)=>{let s=r==="/"?e.find((m)=>m.loader==="html"):e.find((m)=>m.loader!=="html"&&`/${m.path.replace(/^\.\//,"")}`===r);if(!s)throw Error(`\u753B\u9762\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u7528\u610F\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${r}\uFF08\u56FA\u3081\u305F JS \u306E\u4E00\u89A7\u306B\u306A\u3044\uFF09`);return{body:await Bun.file(zi(import.meta.dir,s.path)).bytes(),headers:new Headers(s.headers)}}}function ss({body:e,headers:r},s){let d=new Headers(r);d.delete("content-length"),d.delete("date"),d.set("vary","Accept-Encoding"),d.set("content-security-policy",s);let m=Bun.gzipSync(e,{level:9});return{body:e,headers:d,gzip:m.byteLength<e.byteLength*qi?m:void 0}}function is({body:e,gzip:r,headers:s}){let d=s.get("etag");return(m)=>{if(d&&m.headers.get("if-none-match")===d)return new Response(null,{status:304,headers:s});let g=/\bgzip\b/.test(m.headers.get("accept-encoding")??"");if(!r||!g)return new Response(e,{headers:s});let y=new Headers(s);return y.set("content-encoding","gzip"),new Response(r,{headers:y})}}var Vi=3,as=["#4fc3f7","#ffb74d","#81c784","#f06292","#ba68c8","#fff176"];class Mt{shellCommand;terminals=new Map;order=[];tabNames=new Map;members=new Map;views=new Map;chosenNames=new Map;visibleMembers=new Set;nextMemberId=1;nextId=1;nextSplitId=1;titlesQueued=!1;nextCommandId=1;stopping=!1;initialTerminal;commands=[];minWindow;savedMinWindow;onChange=()=>{};constructor(e,r,s,d){this.shellCommand=r;if(this.savedMinWindow=s?.minWindow,this.minWindow=d??s?.minWindow??Pr,!s){this.initialTerminal=this.createTerminal(e??r);return}for(let g of s.tabs){let y=s.terminals[g];if(y.initial)this.initialTerminal=g;let t=y.initial&&e!==void 0;this.addTerminal(g,t?e:r,y,t?void 0:y.cwd)}for(let[g,y]of Object.entries(s.names??{}))this.tabNames.set(g,y);this.commands=s.commands;let m=(g)=>Math.max(0,...g.map(Number))+1;if(this.nextId=m(this.order),this.nextCommandId=m(this.commands.map((g)=>g.id)),e&&!this.initialTerminal)this.initialTerminal=this.createTerminal(e)}async snapshot(e,{refreshCwd:r=!1}={}){let s={};return await Promise.all([...this.terminals].map(async([d,m])=>{let[g,y]=await Promise.all([m.snapshot(),m.savedCwd({refresh:r})]);s[d]={...g,initial:d===this.initialTerminal,...y&&{cwd:y}}})),{version:2,cwd:e,tabs:[...this.order],names:Object.fromEntries(this.tabNames),terminals:s,commands:this.commands,...this.savedMinWindow&&{minWindow:this.savedMinWindow}}}terminal(e){return this.terminals.get(e)}join(e){let r=this.nextMemberId++,s={id:r,name:Bt(r),color:as[(r-1)%as.length],selections:{}};this.members.set(e,s);let d=this.initialTerminal&&this.terminals.has(this.initialTerminal)?this.initialTerminal:this.order[0];return this.views.set(s,ue(d)),e({type:"welcome",you:r}),e(this.tabsEvent()),e({type:"view",layout:this.views.get(s)}),e(this.titlesEvent()),e({type:"status",statuses:this.statuses()}),e(this.commandsEvent()),e(this.minWindowEvent()),this.notifyPresence(),{newTab:async(m)=>{let g=m??s.terminal,y=g===void 0?void 0:await this.terminals.get(g)?.cwd();if(!this.views.has(s))return;let t=this.createTerminal(this.shellCommand,y);this.notifyTabs(),this.changeView(s,()=>ue(t))},split:async(m,g)=>{if(!this.canAdd(s))return;let y=await this.terminals.get(m)?.cwd();if(!this.canAdd(s))return;let t=this.createTerminal(this.shellCommand,y);this.notifyTabs(),this.changeView(s,(o)=>this.placeBeside(o,ue(t),m,g))},selectTab:(m)=>{if(!this.terminals.has(m))return;this.changeView(s,(g)=>g.type==="terminal"&&g.id===m?void 0:ue(m))},addToView:(m,g)=>{if(!this.terminals.has(m)||!this.canAdd(s))return;this.changeView(s,(y)=>le(y).includes(m)?void 0:this.placeBeside(y,ue(m),g,"row"))},removeFromView:(m)=>{this.changeView(s,(g)=>le(g).length>1&&le(g).includes(m)?Ve(g,m):void 0)},resizeSplit:(m,g)=>{this.changeView(s,(y)=>Ae(y,m)?Qi(y,m,Math.min(0.9,Math.max(0.1,g))):void 0)},swapPanes:(m,g)=>{this.changeView(s,(y)=>{let t=le(y);return m!==g&&t.includes(m)&&t.includes(g)?hs(y,m,g):void 0})},flipSplit:(m)=>{this.changeView(s,(g)=>Ae(g,m)?Qe(g,m,(y)=>({...y,ratio:1-y.ratio,children:[y.children[1],y.children[0]]})):void 0)},rotateSplit:(m)=>{this.changeView(s,(g)=>Ae(g,m)?Xe(Qe(g,m,(y)=>({...y,direction:y.direction==="row"?"column":"row"}))):void 0)},focus:(m)=>{s.terminal=m,this.notifyPresence(),this.updateSeen()},visible:(m)=>{if(m)this.visibleMembers.add(s);else this.visibleMembers.delete(s);this.updateSeen()},select:(m,g)=>{if(g&&this.terminals.has(m))s.selections[m]=g;else if(!g&&Object.hasOwn(s.selections,m))delete s.selections[m];else return;this.notifyPresence()},follow:(m)=>{let g=[...this.members.values()].find((t)=>t.id===m&&t!==s);if(s.following===g?.id)return;let y=s.following;if(s.following=g?.id,this.forgetScroll(y),this.notifyPresence(),g)this.setView(s,this.views.get(g))},scroll:(m,g)=>{if(s.scroll?.terminal===m&&s.scroll.offset===g)return;s.scroll={terminal:m,offset:g},this.notifyPresence()},rename:(m)=>{if(this.chosenNames.get(s)===m)return;if(m===void 0)this.chosenNames.delete(s);else this.chosenNames.set(s,m);this.notifyPresence()},leave:()=>{this.members.delete(e),this.views.delete(s),this.chosenNames.delete(s),this.visibleMembers.delete(s),this.members.forEach((m)=>{if(m.following===s.id)m.following=void 0}),this.forgetScroll(s.following),this.notifyPresence()}}}close(e){if(this.stopping)return;let r=this.order.indexOf(e);if(r<0||this.order.length===1)return;this.order.splice(r,1),this.removeTerminal(e);let s=this.order[Math.min(r,this.order.length-1)];this.notifyTabs();for(let[d,m]of this.members){let g=this.views.get(m);if(!g||!le(g).includes(e))continue;let y=Ve(g,e)??ue(s);this.views.set(m,y),d({type:"view",layout:y})}this.updateSeen()}moveTab(e,r){let s=this.order.indexOf(e);if(s<0||!Number.isSafeInteger(r)||r<0||r>=this.order.length||r===s)return;this.order.splice(s,1),this.order.splice(r,0,e),this.notifyTabs()}renameTab(e,r){if(!this.terminals.has(e)||this.tabNames.get(e)===r)return;if(r===void 0)this.tabNames.delete(e);else this.tabNames.set(e,r);this.notifyTabs()}addCommand(e){if(this.commands.length>=Ir)return;this.commands.push({id:String(this.nextCommandId++),...e}),this.notifyCommands()}updateCommand(e,r){let s=this.commands.findIndex((d)=>d.id===e);if(s<0)return;this.commands[s]={id:e,...r},this.notifyCommands()}removeCommand(e){let r=this.commands.length;if(this.commands=this.commands.filter((s)=>s.id!==e),this.commands.length!==r)this.notifyCommands()}setMinWindow(e){if(this.savedMinWindow=e,e.width===this.minWindow.width&&e.height===this.minWindow.height)return this.onChange();this.minWindow=e;let r=this.minWindowEvent();this.members.forEach((s,d)=>d(r)),this.onChange()}async killAll(){this.stopping=!0,await Promise.all([...this.terminals.values()].map((e)=>e.kill()))}createTerminal(e,r){let s=String(this.nextId++);return this.addTerminal(s,e,void 0,r),s}addTerminal(e,r,s,d){this.order.push(e),this.terminals.set(e,new wt(r,()=>this.close(e),()=>this.notifyTitles(),()=>this.notifyStatus(),{restored:s,onOutput:()=>this.onChange(),cwd:d}))}removeTerminal(e){this.terminals.get(e)?.kill(),this.terminals.delete(e),this.tabNames.delete(e);let r=!1;for(let s of this.members.values()){if(!Object.hasOwn(s.selections,e))continue;delete s.selections[e],r=!0}if(r)this.notifyPresence()}canAdd(e){let r=this.views.get(e);return r!==void 0&&le(r).length<Vi}placeBeside(e,r,s,d){let m=(g)=>({type:"split",id:`split-${this.nextSplitId++}`,direction:d,ratio:0.5,children:[g,r]});if(s===void 0||!le(e).includes(s))return Xe(m(e));return Xe(cs(e,s,m(ue(s))))}changeView(e,r){let s=this.views.get(e),d=s&&r(s);if(!d)return;if(e.following!==void 0){let m=e.following;e.following=void 0,this.forgetScroll(m),this.notifyPresence()}this.setView(e,d)}setView(e,r){let s=new Set,d=(m)=>{s.add(m),this.views.set(m,r);for(let[g,y]of this.members)if(y===m)g({type:"view",layout:r});for(let g of this.members.values())if(g.following===m.id&&!s.has(g))d(g)};d(e),this.updateSeen()}tabsEvent(){let e=(d)=>Se(d).replace(/\s/g,""),r=new Map(this.order.map((d)=>[d,e(this.tabNames.get(d)??Dt(d))]));return{type:"tabs",tabs:this.order.map((d)=>{let m=this.tabNames.get(d);if(m===void 0)return{id:d,name:Dt(d)};let g=r.get(d),y=g.match(/^\u30BF\u30FC\u30DF\u30CA\u30EB(\d+)$/),t=y!==null&&y[1]!==d||/\(\u30BF\u30FC\u30DF\u30CA\u30EB\d+\)$/.test(g)||this.order.some((o)=>o!==d&&r.get(o)===g);return{id:d,name:t?`${m}\uFF08${Dt(d)}\uFF09`:m,custom:m}})}}notifyTabs(){let e=this.tabsEvent();this.members.forEach((r,s)=>s(e)),this.onChange()}titlesEvent(){let e={};return this.terminals.forEach((r,s)=>{if(r.title)e[s]=r.title}),{type:"titles",titles:e}}notifyTitles(){if(this.titlesQueued)return;this.titlesQueued=!0,queueMicrotask(()=>{this.titlesQueued=!1;let e=this.titlesEvent();this.members.forEach((r,s)=>s(e))})}statuses(){let e={};return this.terminals.forEach((r,s)=>{if(r.status)e[s]=r.status}),e}notifyStatus(){this.clearSeen();let e=this.statuses();this.members.forEach((r,s)=>s({type:"status",statuses:e}))}updateSeen(){if(this.clearSeen())this.notifyStatus()}clearSeen(){let e=!1;for(let r of this.visibleMembers){let s=r.terminal,d=this.views.get(r);if(s&&d&&le(d).includes(s)&&this.terminals.get(s)?.markSeen())e=!0}return e}commandsEvent(){return{type:"commands",commands:this.commands}}minWindowEvent(){return{type:"min-window",...this.minWindow}}notifyCommands(){let e=this.commandsEvent();this.members.forEach((r,s)=>s(e)),this.onChange()}forgetScroll(e){let r=[...this.members.values()],s=r.find((d)=>d.id===e);if(s&&!r.some((d)=>d.following===e))s.scroll=void 0}updateNames(){let e=[...this.members.values()],r=(d)=>this.chosenNames.get(d)??Bt(d.id),s=new Map;for(let d of e)s.set(Se(r(d)),(s.get(Se(r(d)))??0)+1);for(let d of e){let m=r(d);d.name=s.get(Se(m))>1?`${m}\uFF08${Bt(d.id)}\uFF09`:m}}notifyPresence(){this.updateNames();let e=[...this.members.values()];this.members.forEach((r,s)=>s({type:"presence",members:e}))}}function Bt(e){return`\u53C2\u52A0\u8005 ${e}`}function Dt(e){return`\u30BF\u30FC\u30DF\u30CA\u30EB ${e}`}function ue(e){return{type:"terminal",id:e}}function le(e){return e.type==="terminal"?[e.id]:e.children.flatMap(le)}function Ae(e,r){if(e.type==="terminal")return;return e.id===r?e:Ae(e.children[0],r)??Ae(e.children[1],r)}function Ot(e,r){return{...e,children:[r(e.children[0]),r(e.children[1])]}}function cs(e,r,s){if(e.type==="terminal")return e.id===r?s:e;return Ot(e,(d)=>cs(d,r,s))}function Ve(e,r){if(e.type==="terminal")return e.id===r?void 0:e;let s=Ve(e.children[0],r),d=Ve(e.children[1],r);if(!s||!d)return s??d;return{...e,children:[s,d]}}function Qi(e,r,s){return Qe(e,r,(d)=>({...d,ratio:s}))}function Qe(e,r,s){if(e.type==="terminal")return e;if(e.id===r)return s(e);return Ot(e,(d)=>Qe(d,r,s))}function hs(e,r,s){if(e.type==="terminal")return e.id===r?ue(s):e.id===s?ue(r):e;return Ot(e,(d)=>hs(d,r,s))}function Xe(e){if(e.type==="terminal")return e;let r=e.children.map(Xe),[s,d]=r.map((m)=>Pt(m,e.direction));return{...e,ratio:s/(s+d),children:r}}function Pt(e,r){if(e.type==="terminal"||e.direction!==r)return 1;return Pt(e.children[0],r)+Pt(e.children[1],r)}var{values:Je,positionals:ls}=Vr(),Ye=Je["min-window"],us=Ye===void 0?void 0:Mr(Ye);if(Ye!==void 0&&!us)console.error(`Accompany: --min-window \u306F\u300C\u5E45x\u9AD8\u3055\u300D\uFF08\u4F8B: 480x1080\u3002\u5E45 0\u301C${Ce.width}\u3001\u9AD8\u3055 0\u301C${Ce.height} \u306E\u6574\u6570\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${Ye}`),process.exit(1);var Ki=[process.env.SHELL??"/bin/sh"],fs=process.cwd(),Nt=new Tt(es(),fs),ds=Je.fresh?void 0:Nt.load(),ke=new Mt(ls.length>0?ls:void 0,Ki,ds,us),Ft=new Et,Yi=$r(ke,Ft),ps=10,_e=Number(Je.port),Ji=await os(Kr,ns({allowVscodeWebview:Je["allow-vscode-webview"]})),me;for(let e=_e;e<_e+ps&&e<=Ee;e++)try{me=Bun.serve({hostname:"127.0.0.1",port:e,development:!1,reusePort:!1,routes:Ji,fetch:Yi.fetch,websocket:{...nt,perMessageDeflate:!0}});break}catch(r){if(r.code!=="EADDRINUSE")throw r}if(!me){let e=Math.min(_e+ps-1,Ee);console.error(`Accompany: \u30DD\u30FC\u30C8 ${_e}\u301C${e} \u306F\u3059\u3079\u3066\u4F7F\u308F\u308C\u3066\u3044\u307E\u3059\u3002--port \u3067\u5225\u306E\u30DD\u30FC\u30C8\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`),await ke.killAll(),Ft.remove(),process.exit(1)}if(me.port!==_e&&_e!==0)console.log(`Accompany: \u30DD\u30FC\u30C8 ${_e} \u306F\u4F7F\u308F\u308C\u3066\u3044\u308B\u306E\u3067\u3001${me.port} \u3067\u5F85\u3061\u53D7\u3051\u307E\u3059`);var It=!1;async function _s({stopping:e=!1}={}){try{Nt.save(await ke.snapshot(fs,{refreshCwd:e})),It=!1}catch(r){if(!It)console.warn(`Accompany: \u753B\u9762\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${r}`);It=!0}}var Zi=1000,Ke,Ht=!1;ke.onChange=()=>{if(Ke||Ht)return;Ke=setTimeout(()=>{Ke=void 0,_s()},Zi)};var en=3000;for(let e of["SIGINT","SIGTERM","SIGHUP"])process.on(e,async()=>{if(Ht)return;Ht=!0,clearTimeout(Ke),await Promise.race([_s({stopping:!0}),Bun.sleep(en)]),await ke.killAll(),Ft.remove(),process.exit(0)});console.log(`Accompany: http://${me.hostname}:${me.port}`);if(ds)console.log(`\u524D\u56DE\u306E\u753B\u9762\u3092\u623B\u3057\u307E\u3057\u305F\uFF08\u65B0\u3057\u304F\u59CB\u3081\u308B\u3068\u304D\u306F --fresh \u3092\u4ED8\u3051\u3066\u8D77\u52D5\u3059\u308B\uFF09: ${Nt.file}`);
|
|
142
142
|
|
|
143
|
-
//# debugId=
|
|
143
|
+
//# debugId=194F04448B9FFB3664756E2164756E21
|
|
144
144
|
//# sourceMappingURL=/cli.js.map
|