@dimina-kit/devtools 0.4.0-dev.20260706154125 → 0.4.0-dev.20260707110006
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/main/app/app.js +1 -1
- package/dist/main/index.bundle.js +129 -40
- package/dist/main/ipc/bridge-router.d.ts +1 -1
- package/dist/main/ipc/bridge-router.js +14 -11
- package/dist/main/ipc/project-fs.d.ts +4 -0
- package/dist/main/ipc/project-fs.js +4 -1
- package/dist/main/runtime/miniapp-runtime.d.ts +4 -3
- package/dist/main/services/fs-watch-sse.d.ts +33 -0
- package/dist/main/services/fs-watch-sse.js +99 -0
- package/dist/main/services/http-json.d.ts +9 -0
- package/dist/main/services/http-json.js +6 -0
- package/dist/main/services/render-inspect/index.d.ts +1 -1
- package/dist/main/services/render-inspect/index.js +1 -1
- package/dist/main/services/service-host-pool/pool.d.ts +4 -4
- package/dist/main/services/service-host-pool/pool.js +5 -5
- package/dist/main/services/simulator-temp-files/disk.d.ts +1 -1
- package/dist/main/services/simulator-temp-files/disk.js +1 -1
- package/dist/main/services/simulator-temp-files/fs-channels.d.ts +1 -1
- package/dist/main/services/simulator-temp-files/fs-channels.js +1 -1
- package/dist/main/services/simulator-temp-files/request-handler.d.ts +1 -1
- package/dist/main/services/simulator-temp-files/request-handler.js +1 -1
- package/dist/main/services/workbench-coi-server.js +26 -7
- package/dist/native-host/render/render.js +36 -18
- package/dist/preload/windows/host-toolbar-runtime.cjs +1 -1
- package/dist/preload/windows/host-toolbar-runtime.cjs.map +2 -2
- package/dist/preload/windows/main.cjs.map +1 -1
- package/dist/shared/vpath.d.ts +1 -1
- package/dist/shared/vpath.js +1 -1
- package/dist/vscode-workbench/assets/__vite-browser-external-D6-QnwSb.js +1 -0
- package/dist/vscode-workbench/assets/{dist-TpGpmMGi.js → dist-OuMzPA6f.js} +3 -3
- package/dist/vscode-workbench/assets/fs-core-worker-urls-CLvv1Q_0.js +1 -0
- package/dist/vscode-workbench/assets/fs-core.worker-VoMLk-PY.js +1 -0
- package/dist/vscode-workbench/assets/fs-query.worker-fXLkQK9l.js +2 -0
- package/dist/vscode-workbench/assets/{iconv-lite-umd-C9tiCAJa.js → iconv-lite-umd-a5yQx8hi.js} +1 -1
- package/dist/vscode-workbench/assets/{index-DJ1HyMZ7.js → index-CVEUw5jw.js} +458 -458
- package/dist/vscode-workbench/assets/{jschardet-DE1jV513.js → jschardet-BYkY0M2Q.js} +1 -1
- package/dist/vscode-workbench/index.html +1 -1
- package/package.json +4 -4
- package/dist/vscode-workbench/assets/__vite-browser-external-CXi6Kz9W.js +0 -1
package/dist/shared/vpath.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* vpath resolver.
|
|
3
3
|
*
|
|
4
|
-
* Spec: `docs/file-system.md`
|
|
4
|
+
* Spec: `docs/file-system.md` — single resolver shared by every FSM
|
|
5
5
|
* entry, the renderer-side temp store, and the main-process
|
|
6
6
|
* protocol.handle / disk reader.
|
|
7
7
|
*
|
package/dist/shared/vpath.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* vpath resolver.
|
|
3
3
|
*
|
|
4
|
-
* Spec: `docs/file-system.md`
|
|
4
|
+
* Spec: `docs/file-system.md` — single resolver shared by every FSM
|
|
5
5
|
* entry, the renderer-side temp store, and the main-process
|
|
6
6
|
* protocol.handle / disk reader.
|
|
7
7
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./index-CVEUw5jw.js";var t=e(((e,t)=>{t.exports={}}));export default t();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./__vite-browser-external-
|
|
2
|
-
import{r as e,t}from"./index-DJ1HyMZ7.js";var n=class e{start;endExclusive;static ofLength(t){return new e(0,t)}static ofStartAndLength(t,n){return new e(t,t+n)}constructor(e,t){if(this.start=e,this.endExclusive=t,e>t)throw Error(`Invalid range: [${e}, ${t})`)}get isEmpty(){return this.start===this.endExclusive}get length(){return this.endExclusive-this.start}delta(t){return new e(this.start+t,this.endExclusive+t)}deltaStart(t){return new e(this.start+t,this.endExclusive)}deltaEnd(t){return new e(this.start,this.endExclusive+t)}equals(e){return this.start===e.start&&this.endExclusive===e.endExclusive}containsRange(e){return this.start<=e.start&&e.endExclusive<=this.endExclusive}contains(e){return this.start<=e&&e<this.endExclusive}join(t){return new e(Math.min(this.start,t.start),Math.max(this.endExclusive,t.endExclusive))}intersect(t){let n=Math.max(this.start,t.start),r=Math.min(this.endExclusive,t.endExclusive);if(n<=r)return new e(n,r)}intersects(e){return Math.max(this.start,e.start)<Math.min(this.endExclusive,e.endExclusive)}intersectsOrTouches(e){return Math.max(this.start,e.start)<=Math.min(this.endExclusive,e.endExclusive)}slice(e){return e.slice(this.start,this.endExclusive)}toString(){return`[${this.start}, ${this.endExclusive})`}},r=class e{static instance=new e;isValid(){return!0}},i=class{timeout;startTime=Date.now();valid=!0;constructor(e){if(this.timeout=e,e<=0)throw Error(`timeout must be positive`)}isValid(){return!(Date.now()-this.startTime<this.timeout)&&this.valid&&(this.valid=!1),this.valid}},a=class e{offset1;offset2;static zero=new e(0,0);static max=new e(2**53-1,2**53-1);constructor(e,t){this.offset1=e,this.offset2=t}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(t){return t===0?this:new e(this.offset1+t,this.offset2+t)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}},o=class e{seq1Range;seq2Range;static invert(t,n){let r=[];return c(t,(t,i)=>{r.push(e.fromOffsetPairs(t?t.getEndExclusives():a.zero,i?i.getStarts():new a(n,(t?t.seq2Range.endExclusive-t.seq1Range.endExclusive:0)+n)))}),r}static fromOffsetPairs(t,r){return new e(new n(t.offset1,r.offset1),new n(t.offset2,r.offset2))}static assertSorted(e){let t;for(let n of e){if(t&&!(t.seq1Range.endExclusive<=n.seq1Range.start&&t.seq2Range.endExclusive<=n.seq2Range.start))throw Error(`Sequence diffs must be sorted`);t=n}}constructor(e,t){this.seq1Range=e,this.seq2Range=t}swap(){return new e(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(t){return new e(this.seq1Range.join(t.seq1Range),this.seq2Range.join(t.seq2Range))}delta(t){return t===0?this:new e(this.seq1Range.delta(t),this.seq2Range.delta(t))}deltaStart(t){return t===0?this:new e(this.seq1Range.deltaStart(t),this.seq2Range.deltaStart(t))}deltaEnd(t){return t===0?this:new e(this.seq1Range.deltaEnd(t),this.seq2Range.deltaEnd(t))}intersectsOrTouches(e){return this.seq1Range.intersectsOrTouches(e.seq1Range)||this.seq2Range.intersectsOrTouches(e.seq2Range)}intersect(t){let n=this.seq1Range.intersect(t.seq1Range),r=this.seq2Range.intersect(t.seq2Range);if(!(!n||!r))return new e(n,r)}getStarts(){return new a(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new a(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}},s=class e{diffs;hitTimeout;static trivial(t,r){return new e([new o(n.ofLength(t.length),n.ofLength(r.length))],!1)}static trivialTimedOut(t,r){return new e([new o(n.ofLength(t.length),n.ofLength(r.length))],!0)}constructor(e,t){this.diffs=e,this.hitTimeout=t}};function c(e,t){let n;for(let r of e)t(n,r),n=r;t(n,void 0)}var l=class{width;height;array=[];constructor(e,t){this.width=e,this.height=t,this.array=Array(e*t)}get(e,t){return this.array[e+t*this.width]}set(e,t,n){this.array[e+t*this.width]=n}},u=class{compute(e,t,i=r.instance,a){if(e.length===0||t.length===0)return s.trivial(e,t);let c=new l(e.length,t.length),u=new l(e.length,t.length),d=new l(e.length,t.length);for(let n=0;n<e.length;n++)for(let r=0;r<t.length;r++){if(!i.isValid())return s.trivialTimedOut(e,t);let o=n===0?0:c.get(n-1,r),l=r===0?0:c.get(n,r-1),f;e.getElement(n)===t.getElement(r)?(f=n===0||r===0?0:c.get(n-1,r-1),n>0&&r>0&&u.get(n-1,r-1)===3&&(f+=d.get(n-1,r-1)),f+=a?a(n,r):1):f=-1;let p=Math.max(o,l,f);if(p===f){let e=n>0&&r>0?d.get(n-1,r-1):0;d.set(n,r,e+1),u.set(n,r,3)}else p===o?(d.set(n,r,0),u.set(n,r,1)):p===l&&(d.set(n,r,0),u.set(n,r,2));c.set(n,r,p)}let f=[],p=e.length,m=t.length;function h(e,t){(e+1!==p||t+1!==m)&&f.push(new o(new n(e+1,p),new n(t+1,m))),p=e,m=t}let g=e.length-1,_=t.length-1;for(;g>=0&&_>=0;)u.get(g,_)===3?(h(g,_),g--,_--):u.get(g,_)===1?g--:_--;return h(-1,-1),f.reverse(),new s(f,!1)}},d=class{compute(e,t,i=r.instance){if(e.length===0||t.length===0)return s.trivial(e,t);let a=e,c=t;function l(e,t){for(;e<a.length&&t<c.length&&a.getElement(e)===c.getElement(t);)e++,t++;return e}let u=0,d=new p;d.set(0,l(0,0));let h=new m;h.set(0,d.get(0)===0?null:new f(null,0,0,d.get(0)));let g=0;loop:for(;;){if(u++,!i.isValid())return s.trivialTimedOut(a,c);let e=-Math.min(u,c.length+u%2),t=Math.min(u,a.length+u%2);for(g=e;g<=t;g+=2){let n=g===t?-1:d.get(g+1),r=g===e?-1:d.get(g-1)+1,i=Math.min(Math.max(n,r),a.length),o=i-g;if(i>a.length||o>c.length)continue;let s=l(i,o);d.set(g,s);let u=i===n?h.get(g+1):h.get(g-1);if(h.set(g,s===i?u:new f(u,i,o,s-i)),d.get(g)===a.length&&d.get(g)-g===c.length)break loop}}let _=h.get(g),v=[],y=a.length,b=c.length;for(;;){let e=_?_.x+_.length:0,t=_?_.y+_.length:0;if((e!==y||t!==b)&&v.push(new o(new n(e,y),new n(t,b))),!_)break;y=_.x,b=_.y,_=_.prev}return v.reverse(),new s(v,!1)}},f=class{prev;x;y;length;constructor(e,t,n,r){this.prev=e,this.x=t,this.y=n,this.length=r}},p=class{positiveArr=new Int32Array(10);negativeArr=new Int32Array(10);get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){if(e<0){if(e=-e-1,e>=this.negativeArr.length){let e=this.negativeArr;this.negativeArr=new Int32Array(e.length*2),this.negativeArr.set(e)}this.negativeArr[e]=t}else{if(e>=this.positiveArr.length){let e=this.positiveArr;this.positiveArr=new Int32Array(e.length*2),this.positiveArr.set(e)}this.positiveArr[e]=t}}},m=class{positiveArr=[];negativeArr=[];get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){e<0?(e=-e-1,this.negativeArr[e]=t):this.positiveArr[e]=t}};function h(e,t,n){let r=n;return r=g(e,t,r),r=g(e,t,r),r=_(e,t,r),r}function g(e,t,r){if(r.length===0)return r;let i=[];i.push(r[0]);for(let a=1;a<r.length;a++){let s=i[i.length-1],c=r[a];if(c.seq1Range.isEmpty||c.seq2Range.isEmpty){let r=c.seq1Range.start-s.seq1Range.endExclusive,a;for(a=1;a<=r&&!(e.getElement(c.seq1Range.start-a)!==e.getElement(c.seq1Range.endExclusive-a)||t.getElement(c.seq2Range.start-a)!==t.getElement(c.seq2Range.endExclusive-a));a++);if(a--,a===r){i[i.length-1]=new o(new n(s.seq1Range.start,c.seq1Range.endExclusive-r),new n(s.seq2Range.start,c.seq2Range.endExclusive-r));continue}c=c.delta(-a)}i.push(c)}let a=[];for(let r=0;r<i.length-1;r++){let s=i[r+1],c=i[r];if(c.seq1Range.isEmpty||c.seq2Range.isEmpty){let a=s.seq1Range.start-c.seq1Range.endExclusive,l;for(l=0;l<a&&!(!e.isStronglyEqual(c.seq1Range.start+l,c.seq1Range.endExclusive+l)||!t.isStronglyEqual(c.seq2Range.start+l,c.seq2Range.endExclusive+l));l++);if(l===a){i[r+1]=new o(new n(c.seq1Range.start+a,s.seq1Range.endExclusive),new n(c.seq2Range.start+a,s.seq2Range.endExclusive));continue}l>0&&(c=c.delta(l))}a.push(c)}return i.length>0&&a.push(i[i.length-1]),a}function _(e,t,r){if(!e.getBoundaryScore||!t.getBoundaryScore)return r;for(let i=0;i<r.length;i++){let a=i>0?r[i-1]:void 0,o=r[i],s=i+1<r.length?r[i+1]:void 0,c=new n(a?a.seq1Range.endExclusive+1:0,s?s.seq1Range.start-1:e.length),l=new n(a?a.seq2Range.endExclusive+1:0,s?s.seq2Range.start-1:t.length);o.seq1Range.isEmpty?r[i]=v(o,e,t,c,l):o.seq2Range.isEmpty&&(r[i]=v(o.swap(),t,e,l,c).swap())}return r}function v(e,t,n,r,i){let a=1;for(;e.seq1Range.start-a>=r.start&&e.seq2Range.start-a>=i.start&&n.isStronglyEqual(e.seq2Range.start-a,e.seq2Range.endExclusive-a)&&a<100;)a++;a--;let o=0;for(;e.seq1Range.start+o<r.endExclusive&&e.seq2Range.endExclusive+o<i.endExclusive&&n.isStronglyEqual(e.seq2Range.start+o,e.seq2Range.endExclusive+o)&&o<100;)o++;if(a===0&&o===0)return e;let s=0,c=-1;for(let r=-a;r<=o;r++){let i=e.seq2Range.start+r,a=e.seq2Range.endExclusive+r,o=e.seq1Range.start+r,l=t.getBoundaryScore(o)+n.getBoundaryScore(i)+n.getBoundaryScore(a);l>c&&(c=l,s=r)}return e.delta(s)}function y(e,t,n){let r=[];for(let e of n){let t=r[r.length-1];if(!t){r.push(e);continue}e.seq1Range.start-t.seq1Range.endExclusive<=2||e.seq2Range.start-t.seq2Range.endExclusive<=2?r[r.length-1]=new o(t.seq1Range.join(e.seq1Range),t.seq2Range.join(e.seq2Range)):r.push(e)}return r}function b(e,t,n,r,i=!1){let s=o.invert(n,e.length),c=[],l=new a(0,0);function u(n,a){if(n.offset1<l.offset1||n.offset2<l.offset2)return;let u=r(e,n.offset1),d=r(t,n.offset2);if(!u||!d)return;let f=new o(u,d),p=f.intersect(a),m=p.seq1Range.length,h=p.seq2Range.length;for(;s.length>0;){let n=s[0];if(!(n.seq1Range.intersects(f.seq1Range)||n.seq2Range.intersects(f.seq2Range)))break;let i=new o(r(e,n.seq1Range.start),r(t,n.seq2Range.start)),a=i.intersect(n);if(m+=a.seq1Range.length,h+=a.seq2Range.length,f=f.join(i),f.seq1Range.endExclusive>=n.seq1Range.endExclusive)s.shift();else break}(i&&m+h<f.seq1Range.length+f.seq2Range.length||m+h<(f.seq1Range.length+f.seq2Range.length)*2/3)&&c.push(f),l=f.getEndExclusives()}for(;s.length>0;){let e=s.shift();e.seq1Range.isEmpty||(u(e.getStarts(),e),u(e.getEndExclusives().delta(-1),e))}return x(n,c)}function x(e,t){let n=[];for(;e.length>0||t.length>0;){let r=e[0],i=t[0],a;a=r&&(!i||r.seq1Range.start<i.seq1Range.start)?e.shift():t.shift(),n.length>0&&n[n.length-1].seq1Range.endExclusive>=a.seq1Range.start?n[n.length-1]=n[n.length-1].join(a):n.push(a)}return n}function ee(e,t,r){let i=r;if(i.length===0)return i;let a=0,o;do{o=!1;let t=[i[0]];for(let r=1;r<i.length;r++){let a=i[r],s=t[t.length-1];function c(t,r){let i=new n(s.seq1Range.endExclusive,a.seq1Range.start);return e.getText(i).replace(/\s/g,``).length<=4&&(t.seq1Range.length+t.seq2Range.length>5||r.seq1Range.length+r.seq2Range.length>5)}c(s,a)?(o=!0,t[t.length-1]=t[t.length-1].join(a)):t.push(a)}i=t}while(a++<10&&o);return i}function te(e,t,r){let i=r;if(i.length===0)return i;let s=0,c;do{c=!1;let r=[i[0]];for(let a=1;a<i.length;a++){let o=i[a],s=r[r.length-1];function l(r,i){let a=new n(s.seq1Range.endExclusive,o.seq1Range.start);if(e.countLinesIn(a)>5||a.length>500)return!1;let c=e.getText(a).trim();if(c.length>20||c.split(/\r\n|\r|\n/).length>1)return!1;let l=e.countLinesIn(r.seq1Range),u=r.seq1Range.length,d=t.countLinesIn(r.seq2Range),f=r.seq2Range.length,p=e.countLinesIn(i.seq1Range),m=i.seq1Range.length,h=t.countLinesIn(i.seq2Range),g=i.seq2Range.length;function _(e){return Math.min(e,130)}return(_(l*40+u)**1.5+_(d*40+f)**1.5)**1.5+(_(p*40+m)**1.5+_(h*40+g)**1.5)**1.5>(130**1.5)**1.5*1.3}l(s,o)?(c=!0,r[r.length-1]=r[r.length-1].join(o)):r.push(o)}i=r}while(s++<10&&c);let l=[];return ne(i,(t,r,i)=>{let s=r;function c(e){return e.length>0&&e.trim().length<=3&&r.seq1Range.length+r.seq2Range.length>100}let u=e.extendToFullLines(r.seq1Range),d=e.getText(new n(u.start,r.seq1Range.start));c(d)&&(s=s.deltaStart(-d.length));let f=e.getText(new n(r.seq1Range.endExclusive,u.endExclusive));c(f)&&(s=s.deltaEnd(f.length));let p=o.fromOffsetPairs(t?t.getEndExclusives():a.zero,i?i.getStarts():a.max),m=s.intersect(p);l.length>0&&m.getStarts().equals(l[l.length-1].getEndExclusives())?l[l.length-1]=l[l.length-1].join(m):l.push(m)}),l}function ne(e,t){for(let n=0;n<e.length;n++)t(e[n-1],e[n],e[n+1])}var S={Space:32,Tab:9},re=class{trimmedHash;lines;constructor(e,t){this.trimmedHash=e,this.lines=t}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){return 1e3-((e===0?0:ie(this.lines[e-1]))+(e===this.lines.length?0:ie(this.lines[e])))}getText(e){return this.lines.slice(e.start,e.endExclusive).join(`
|
|
3
|
-
`)}isStronglyEqual(e,t){return this.lines[e]===this.lines[t]}};function ie(e){let t=0;for(;t<e.length&&(e.charCodeAt(t)===S.Space||e.charCodeAt(t)===S.Tab);)t++;return t}var C={LineFeed:10,CarriageReturn:13,Space:32,Tab:9,a:97,z:122,A:65,Z:90,Digit0:48,Digit9:57,Comma:44,Semicolon:59};function ae(e){return e===C.Space||e===C.Tab}var w=class e{startLineNumber;startColumn;endLineNumber;endColumn;constructor(e,t,n,r){this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=r}static fromPositions(t,n){return new e(t.lineNumber,t.column,n.lineNumber,n.column)}},T=class{lineNumber;column;constructor(e,t){this.lineNumber=e,this.column=t}isBefore(e){return this.lineNumber<e.lineNumber?!0:e.lineNumber<this.lineNumber?!1:this.column<e.column}},oe=class{lines;considerWhitespaceChanges;elements=[];firstElementOffsetByLineIdx=[];lineStartOffsets=[];trimmedWsLengthsByLineIdx=[];_range;constructor(e,t,n){this.lines=e,this.considerWhitespaceChanges=n,this._range=t,this.firstElementOffsetByLineIdx.push(0);for(let t=this._range.startLineNumber;t<=this._range.endLineNumber;t++){let r=e[t-1],i=0;t===this._range.startLineNumber&&this._range.startColumn>1&&(i=this._range.startColumn-1,r=r.substring(i)),this.lineStartOffsets.push(i);let a=0;if(!n){let e=r.trimStart();a=r.length-e.length,r=e.trimEnd()}this.trimmedWsLengthsByLineIdx.push(a);let o=t===this._range.endLineNumber?Math.min(this._range.endColumn-1-i-a,r.length):r.length;for(let e=0;e<o;e++)this.elements.push(r.charCodeAt(e));t<this._range.endLineNumber&&(this.elements.push(10),this.firstElementOffsetByLineIdx.push(this.elements.length))}}toString(){return`Slice: "${this.text}"`}get text(){return this.getText(new n(0,this.length))}getText(e){return this.elements.slice(e.start,e.endExclusive).map(e=>String.fromCharCode(e)).join(``)}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){let t=ue(e>0?this.elements[e-1]:-1),n=ue(e<this.elements.length?this.elements[e]:-1);if(t===7&&n===8)return 0;if(t===8)return 150;let r=0;return t!==n&&(r+=10,t===0&&n===1&&(r+=1)),r+=le(t),r+=le(n),r}translateOffset(e,t=`right`){let n=de(this.firstElementOffsetByLineIdx,t=>t<=e),r=e-this.firstElementOffsetByLineIdx[n];return new T(this._range.startLineNumber+n,1+this.lineStartOffsets[n]+r+(r===0&&t===`left`?0:this.trimmedWsLengthsByLineIdx[n]))}translateRange(e){let t=this.translateOffset(e.start,`right`),n=this.translateOffset(e.endExclusive,`left`);return n.isBefore(t)?w.fromPositions(n,n):w.fromPositions(t,n)}findWordContaining(e){if(e<0||e>=this.elements.length||!E(this.elements[e]))return;let t=e;for(;t>0&&E(this.elements[t-1]);)t--;let r=e;for(;r<this.elements.length&&E(this.elements[r]);)r++;return new n(t,r)}findSubWordContaining(e){if(e<0||e>=this.elements.length||!E(this.elements[e]))return;let t=e;for(;t>0&&E(this.elements[t-1])&&!se(this.elements[t]);)t--;let r=e;for(;r<this.elements.length&&E(this.elements[r])&&!se(this.elements[r]);)r++;return new n(t,r)}countLinesIn(e){return this.translateOffset(e.endExclusive).lineNumber-this.translateOffset(e.start).lineNumber}isStronglyEqual(e,t){return this.elements[e]===this.elements[t]}extendToFullLines(e){return new n(fe(this.firstElementOffsetByLineIdx,t=>t<=e.start)??0,pe(this.firstElementOffsetByLineIdx,t=>e.endExclusive<=t)??this.elements.length)}};function E(e){return e>=C.a&&e<=C.z||e>=C.A&&e<=C.Z||e>=C.Digit0&&e<=C.Digit9}function se(e){return e>=C.A&&e<=C.Z}var ce={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function le(e){return ce[e]}function ue(e){return e===C.LineFeed?8:e===C.CarriageReturn?7:ae(e)?6:e>=C.a&&e<=C.z?0:e>=C.A&&e<=C.Z?1:e>=C.Digit0&&e<=C.Digit9?2:e===-1?3:e===C.Comma||e===C.Semicolon?5:4}function de(e,t){let n=0,r=e.length-1;for(;n<=r;){let i=Math.floor((n+r)/2);t(e[i])?n=i+1:r=i-1}return r}function fe(e,t){let n=de(e,t);return n>=0?e[n]:void 0}function pe(e,t){let n=0,r=e.length-1;for(;n<=r;){let i=Math.floor((n+r)/2);t(e[i])?r=i-1:n=i+1}return n<e.length?e[n]:void 0}var D=class e{startLineNumber;endLineNumberExclusive;constructor(e,t){if(this.startLineNumber=e,this.endLineNumberExclusive=t,e>t)throw Error(`Invalid range: ${e} > ${t}`)}get isEmpty(){return this.startLineNumber===this.endLineNumberExclusive}get length(){return this.endLineNumberExclusive-this.startLineNumber}join(t){return new e(Math.min(this.startLineNumber,t.startLineNumber),Math.max(this.endLineNumberExclusive,t.endLineNumberExclusive))}intersectsOrTouches(e){return this.startLineNumber<=e.endLineNumberExclusive&&e.startLineNumber<=this.endLineNumberExclusive}toOffsetRange(){return new n(this.startLineNumber-1,this.endLineNumberExclusive-1)}toString(){return`[${this.startLineNumber}, ${this.endLineNumberExclusive})`}},O=class{originalRange;modifiedRange;constructor(e,t){this.originalRange=e,this.modifiedRange=t}toString(){return`${me(this.originalRange)} <-> ${me(this.modifiedRange)}`}static assertSorted(e){for(let t=1;t<e.length;t++){let n=e[t-1],r=e[t];if(!(n.originalRange.endLineNumber<=r.originalRange.startLineNumber||n.originalRange.endLineNumber===r.originalRange.startLineNumber&&n.originalRange.endColumn<=r.originalRange.startColumn))throw Error(`RangeMappings must be sorted`)}}};function me(e){return`(${e.startLineNumber}:${e.startColumn})-(${e.endLineNumber}:${e.endColumn})`}var k=class{original;modified;constructor(e,t){this.original=e,this.modified=t}toString(){return`${this.original} <-> ${this.modified}`}toRangeMapping2(e,t){let n=(e,t)=>e>=1&&e<=t.length,r=(e,t,n)=>{if(e<1)return new T(1,1);if(e>n.length)return new T(n.length,n[n.length-1].length+1);let r=n[e-1];return t>r.length+1?new T(e,r.length+1):new T(e,t)};if(n(this.original.endLineNumberExclusive,e)&&n(this.modified.endLineNumberExclusive,t))return new O(new w(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new w(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new O(w.fromPositions(new T(this.original.startLineNumber,1),r(this.original.endLineNumberExclusive-1,2**53-1,e)),w.fromPositions(new T(this.modified.startLineNumber,1),r(this.modified.endLineNumberExclusive-1,2**53-1,t)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new O(w.fromPositions(r(this.original.startLineNumber-1,2**53-1,e),r(this.original.endLineNumberExclusive-1,2**53-1,e)),w.fromPositions(r(this.modified.startLineNumber-1,2**53-1,t),r(this.modified.endLineNumberExclusive-1,2**53-1,t)));throw Error(`Invalid diff: cannot convert to range mapping`)}},A=class extends k{innerChanges;constructor(e,t,n){super(e,t),this.innerChanges=n}},j=class{changes;moves;hitTimeout;constructor(e,t,n){this.changes=e,this.moves=t,this.hitTimeout=n}},he=class{lineRangeMapping;changes;constructor(e,t){this.lineRangeMapping=e,this.changes=t}};function ge(e,t,n,r=!1){let i=[];for(let r of ve(e.map(e=>_e(e,t,n)),(e,t)=>e.original.intersectsOrTouches(t.original)||e.modified.intersectsOrTouches(t.modified))){let e=r[0],t=r[r.length-1];i.push(new A(e.original.join(t.original),e.modified.join(t.modified),r.map(e=>e.innerChanges[0])))}if(!r)for(let e=1;e<i.length;e++){let t=i[e-1],n=i[e];if(t.original.endLineNumberExclusive>n.original.startLineNumber||t.modified.endLineNumberExclusive>n.modified.startLineNumber)break}return i}function _e(e,t,n){let r=0,i=0;return e.modifiedRange.endColumn===1&&e.originalRange.endColumn===1&&e.originalRange.startLineNumber+r<=e.originalRange.endLineNumber&&e.modifiedRange.startLineNumber+r<=e.modifiedRange.endLineNumber&&(i=-1),e.modifiedRange.startColumn-1>=(n[e.modifiedRange.startLineNumber-1]?.length??0)&&e.originalRange.startColumn-1>=(t[e.originalRange.startLineNumber-1]?.length??0)&&e.originalRange.startLineNumber<=e.originalRange.endLineNumber+i&&e.modifiedRange.startLineNumber<=e.modifiedRange.endLineNumber+i&&(r=1),new A(new D(e.originalRange.startLineNumber+r,e.originalRange.endLineNumber+1+i),new D(e.modifiedRange.startLineNumber+r,e.modifiedRange.endLineNumber+1+i),[e])}function*ve(e,t){let n,r;for(let i of e)r!==void 0&&t(r,i)?n.push(i):(n&&(yield n),n=[i]),r=i;n&&(yield n)}var ye=class{lines;constructor(e){this.lines=e}get lineCount(){return this.lines.length}getLineContent(e){return this.lines[e-1]}},be=class{_dynamicProgrammingDiffing=new u;_myersDiffingAlgorithm=new d;computeDiff(e,t,a){if(e.length<=1&&Se(e,t))return new j([],[],!1);if(e.length===1&&e[0].length===0||t.length===1&&t[0].length===0)return new j([new A(new D(1,e.length+1),new D(1,t.length+1),[new O(new w(1,1,e.length,e[e.length-1].length+1),new w(1,1,t.length,t[t.length-1].length+1))])],[],!1);let s=a.maxComputationTimeMs===0?r.instance:new i(a.maxComputationTimeMs),c=!a.ignoreTrimWhitespace,l=new Map;function u(e){let t=l.get(e);return t===void 0&&(t=l.size,l.set(e,t)),t}let d=e.map(e=>u(e.trim())),f=t.map(e=>u(e.trim())),p=new re(d,e),m=new re(f,t),g=p.length+m.length<1700?this._dynamicProgrammingDiffing.compute(p,m,s,(n,r)=>e[n]===t[r]?t[r].length===0?.1:1+Math.log(1+t[r].length):.99):this._myersDiffingAlgorithm.compute(p,m,s),_=g.diffs,v=g.hitTimeout;_=h(p,m,_),_=ee(p,m,_);let y=[],b=r=>{if(c)for(let i=0;i<r;i++){let r=x+i,l=te+i;if(e[r]!==t[l]){let i=this._refineDiff(e,t,new o(new n(r,r+1),new n(l,l+1)),s,c,a);for(let e of i.mappings)y.push(e);i.hitTimeout&&(v=!0)}}},x=0,te=0;for(let n of _){b(n.seq1Range.start-x),x=n.seq1Range.endExclusive,te=n.seq2Range.endExclusive;let r=this._refineDiff(e,t,n,s,c,a);r.hitTimeout&&(v=!0);for(let e of r.mappings)y.push(e)}b(e.length-x);let ne=new ye(e),S=new ye(t);return new j(ge(y,ne.lines,S.lines),[],v)}_refineDiff(e,t,n,r,i,a){let o=xe(n).toRangeMapping2(e,t),s=new oe(e,o.originalRange,i),c=new oe(t,o.modifiedRange,i),l=s.length+c.length<500?this._dynamicProgrammingDiffing.compute(s,c,r):this._myersDiffingAlgorithm.compute(s,c,r),u=l.diffs;return u=h(s,c,u),u=b(s,c,u,(e,t)=>e.findWordContaining(t)),a.extendToSubwords&&(u=b(s,c,u,(e,t)=>e.findSubWordContaining(t),!0)),u=y(s,c,u),u=te(s,c,u),{mappings:u.map(e=>new O(s.translateRange(e.seq1Range),c.translateRange(e.seq2Range))),hitTimeout:l.hitTimeout}}};function xe(e){return new k(new D(e.seq1Range.start+1,e.seq1Range.endExclusive+1),new D(e.seq2Range.start+1,e.seq2Range.endExclusive+1))}function Se(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Ce(e,t,n){let r=B(e,K.__wbindgen_malloc,K.__wbindgen_realloc),i=G,a=B(t,K.__wbindgen_malloc,K.__wbindgen_realloc),o=G,s=K.computeDiff(r,i,a,o,n);if(s[2])throw V(s[1]);return V(s[0])}function we(e,t,n){let r=K.computeDiffLines(e,t,n);if(r[2])throw V(r[1]);return V(r[0])}function Te(){K.init()}function Ee(){return{__proto__:null,"./diff_wasm_bg.js":{__proto__:null,__wbg_Error_ef53bc310eb298a0:function(e,t){return Error(F(e,t))},__wbg_Number_6b506e6536831eaa:function(e){return Number(e)},__wbg_String_8564e559799eccda:function(e,t){let n=B(String(t),K.__wbindgen_malloc,K.__wbindgen_realloc),r=G;P().setInt32(e+4,r,!0),P().setInt32(e+0,n,!0)},__wbg___wbindgen_bigint_get_as_i64_38130e98eecd467d:function(e,t){let n=t,r=typeof n==`bigint`?n:void 0;P().setBigInt64(e+8,z(r)?BigInt(0):r,!0),P().setInt32(e+0,!z(r),!0)},__wbg___wbindgen_boolean_get_1a45e2c38d4d41b9:function(e){let t=e,n=typeof t==`boolean`?t:void 0;return z(n)?16777215:+!!n},__wbg___wbindgen_debug_string_0accd80f45e5faa2:function(e,t){let n=B(M(t),K.__wbindgen_malloc,K.__wbindgen_realloc),r=G;P().setInt32(e+4,r,!0),P().setInt32(e+0,n,!0)},__wbg___wbindgen_in_70a403a56e771704:function(e,t){return e in t},__wbg___wbindgen_is_bigint_6ffd6468a9bc44b9:function(e){return typeof e==`bigint`},__wbg___wbindgen_is_function_754e9f305ff6029e:function(e){return typeof e==`function`},__wbg___wbindgen_is_null_87c3bfe968c6a5ad:function(e){return e===null},__wbg___wbindgen_is_object_56732c2bc353f41d:function(e){let t=e;return typeof t==`object`&&!!t},__wbg___wbindgen_is_undefined_67b456be8673d3d7:function(e){return e===void 0},__wbg___wbindgen_jsval_eq_1068e624fa87f6ab:function(e,t){return e===t},__wbg___wbindgen_jsval_loose_eq_2c56564c75129511:function(e,t){return e==t},__wbg___wbindgen_number_get_9bb1761122181af2:function(e,t){let n=t,r=typeof n==`number`?n:void 0;P().setFloat64(e+8,z(r)?0:r,!0),P().setInt32(e+0,!z(r),!0)},__wbg___wbindgen_string_get_72bdf95d3ae505b1:function(e,t){let n=t,r=typeof n==`string`?n:void 0;var i=z(r)?0:B(r,K.__wbindgen_malloc,K.__wbindgen_realloc),a=G;P().setInt32(e+4,a,!0),P().setInt32(e+0,i,!0)},__wbg___wbindgen_throw_1506f2235d1bdba0:function(e,t){throw Error(F(e,t))},__wbg_call_8a89609d89f6608a:function(){return R(function(e,t){return e.call(t)},arguments)},__wbg_done_60cf307fcc680536:function(e){return e.done},__wbg_error_a6fa202b58aa1cd3:function(e,t){let n,r;try{n=e,r=t,console.error(F(e,t))}finally{K.__wbindgen_free(n,r,1)}},__wbg_get_1f8f054ddbaa7db2:function(){return R(function(e,t){return Reflect.get(e,t)},arguments)},__wbg_get_unchecked_33f6e5c9e2f2d6b2:function(e,t){return e[t>>>0]},__wbg_get_with_ref_key_6412cf3094599694:function(e,t){return e[t]},__wbg_instanceof_ArrayBuffer_8f49811467741499:function(e){let t;try{t=e instanceof ArrayBuffer}catch{t=!1}return t},__wbg_instanceof_Uint8Array_86f30649f63ef9c2:function(e){let t;try{t=e instanceof Uint8Array}catch{t=!1}return t},__wbg_isArray_67c2c9c4313f4448:function(e){return Array.isArray(e)},__wbg_isSafeInteger_66acec27e09e99a7:function(e){return Number.isSafeInteger(e)},__wbg_iterator_8732428d309e270e:function(){return Symbol.iterator},__wbg_length_4a591ecaa01354d9:function(e){return e.length},__wbg_length_66f1a4b2e9026940:function(e){return e.length},__wbg_new_227d7c05414eb861:function(){return Error()},__wbg_new_578aeef4b6b94378:function(e){return new Uint8Array(e)},__wbg_new_ce1ab61c1c2b300d:function(){return{}},__wbg_new_d90091b82fdf5b91:function(){return[]},__wbg_next_9e03acdf51c4960d:function(e){return e.next},__wbg_next_eb8ca7351fa27906:function(){return R(function(e){return e.next()},arguments)},__wbg_prototypesetcall_3249fc62a0fafa30:function(e,t,n){Uint8Array.prototype.set.call(Oe(e,t),n)},__wbg_set_6be42768c690e380:function(e,t,n){e[t]=n},__wbg_set_dca99999bba88a9a:function(e,t,n){e[t>>>0]=n},__wbg_stack_3b0d974bbf31e44f:function(e,t){let n=t.stack,r=B(n,K.__wbindgen_malloc,K.__wbindgen_realloc),i=G;P().setInt32(e+4,i,!0),P().setInt32(e+0,r,!0)},__wbg_value_f3625092ee4b37f4:function(e){return e.value},__wbindgen_cast_0000000000000001:function(e){return e},__wbindgen_cast_0000000000000002:function(e,t){return F(e,t)},__wbindgen_cast_0000000000000003:function(e){return BigInt.asUintN(64,e)},__wbindgen_init_externref_table:function(){let e=K.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}function De(e){let t=K.__externref_table_alloc();return K.__wbindgen_externrefs.set(t,e),t}function M(e){let t=typeof e;if(t==`number`||t==`boolean`||e==null)return`${e}`;if(t==`string`)return`"${e}"`;if(t==`symbol`){let t=e.description;return t==null?`Symbol`:`Symbol(${t})`}if(t==`function`){let t=e.name;return typeof t==`string`&&t.length>0?`Function(${t})`:`Function`}if(Array.isArray(e)){let t=e.length,n=`[`;t>0&&(n+=M(e[0]));for(let r=1;r<t;r++)n+=`, `+M(e[r]);return n+=`]`,n}let n=/\[object ([^\]]+)\]/.exec(toString.call(e)),r;if(n&&n.length>1)r=n[1];else return toString.call(e);if(r==`Object`)try{return`Object(`+JSON.stringify(e)+`)`}catch{return`Object`}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:r}function Oe(e,t){return e>>>=0,L().subarray(e/1,e/1+t)}var N=null;function P(){return(N===null||N.buffer.detached===!0||N.buffer.detached===void 0&&N.buffer!==K.memory.buffer)&&(N=new DataView(K.memory.buffer)),N}function F(e,t){return Ae(e>>>0,t)}var I=null;function L(){return(I===null||I.byteLength===0)&&(I=new Uint8Array(K.memory.buffer)),I}function R(e,t){try{return e.apply(this,t)}catch(e){let t=De(e);K.__wbindgen_exn_store(t)}}function z(e){return e==null}function B(e,t,n){if(n===void 0){let n=W.encode(e),r=t(n.length,1)>>>0;return L().subarray(r,r+n.length).set(n),G=n.length,r}let r=e.length,i=t(r,1)>>>0,a=L(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=L().subarray(i+o,i+r),a=W.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return G=o,i}function V(e){let t=K.__wbindgen_externrefs.get(e);return K.__externref_table_dealloc(e),t}var H=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});H.decode();var ke=2146435072,U=0;function Ae(e,t){return U+=t,U>=ke&&(H=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),H.decode(),U=t),H.decode(L().subarray(e,e+t))}var W=new TextEncoder;`encodeInto`in W||(W.encodeInto=function(e,t){let n=W.encode(e);return t.set(n),{read:e.length,written:n.length}});var G=0,K;function je(e,t){return K=e.exports,N=null,I=null,K.__wbindgen_start(),K}async function Me(e,t){if(typeof Response==`function`&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(e.ok&&n(e.type)&&e.headers.get(`Content-Type`)!==`application/wasm`)console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",t);else throw t}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}function n(e){switch(e){case`basic`:case`cors`:case`default`:return!0}return!1}}function Ne(e){if(K!==void 0)return K;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module:e}=e:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let t=Ee();return e instanceof WebAssembly.Module||(e=new WebAssembly.Module(e)),je(new WebAssembly.Instance(e,t))}async function Pe(e){if(K!==void 0)return K;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`)),e===void 0&&(e=new URL(new URL(``+new URL(`diff_wasm_bg-c6YkaZRL-c6YkaZRL.wasm`,import.meta.url).href,``+import.meta.url).href));let t=Ee();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await Me(await e,t);return je(n)}var Fe=Object.freeze({__proto__:null,computeDiff:Ce,computeDiffLines:we,default:Pe,init:Te,initSync:Ne}),q=null,J=null;async function Ie(){return q||J||(J=(async()=>{let n=new URL(new URL(``+new URL(`diff_wasm_bg-c6YkaZRL-c6YkaZRL.wasm`,import.meta.url).href,``+import.meta.url).href),r=n;if(typeof process<`u`&&process.versions?.node){let{readFile:i}=await t(async()=>{let{readFile:t}=await import(`./__vite-browser-external-CXi6Kz9W.js`).then(t=>e(t.default,1));return{readFile:t}},__vite__mapDeps([0,1]),import.meta.url);r=await i(n)}return await Pe({module_or_path:r}),Te(),q=Fe,q})(),J)}function Le(){if(!q)throw Error(`WASM not initialized. Call initWasm() first and await it.`);return q}function Re(e){return new j(e.changes.map(ze),e.moves.map(Ve),e.hitTimeout)}function ze(e){let t=e.innerChanges?.map(Be);return new A(new D(e.original.startLineNumber,e.original.endLineNumberExclusive),new D(e.modified.startLineNumber,e.modified.endLineNumberExclusive),t)}function Be(e){return new O(new w(e.originalStartLine,e.originalStartColumn,e.originalEndLine,e.originalEndColumn),new w(e.modifiedStartLine,e.modifiedStartColumn,e.modifiedEndLine,e.modifiedEndColumn))}function Ve(e){return new he(new k(new D(e.lineRangeMapping.original.startLineNumber,e.lineRangeMapping.original.endLineNumberExclusive),new D(e.lineRangeMapping.modified.startLineNumber,e.lineRangeMapping.modified.endLineNumberExclusive)),e.changes.map(ze))}var He=class{original;modified;constructor(e,t){this.original=e,this.modified=t}toString(){return`${this.original} <-> ${this.modified}`}},Y=class{range;newText;constructor(e,t){this.range=e,this.newText=t}get isEmpty(){return this.range.isEmpty&&this.newText.length===0}toString(){return`${this.range}->${JSON.stringify(this.newText)}`}},Ue=class e{replacements;static empty=new e([]);static single(t){return new e([t])}static of(t){for(let e=1;e<t.length;e++){let n=t[e-1],r=t[e];if(n.range.endExclusive>r.range.start)throw Error(`StringEdit.of: replacements must be sorted and non-overlapping (${n.range} vs ${r.range})`)}return new e(t)}constructor(e){this.replacements=e}get isEmpty(){return this.replacements.length===0}apply(e){if(this.replacements.length===0)return e;let t=[],n=0;for(let r of this.replacements)t.push(e.substring(n,r.range.start)),t.push(r.newText),n=r.range.endExclusive;return t.push(e.substring(n)),t.join(``)}inverse(t){let r=[],i=0;for(let e of this.replacements){let a=e.range.start+i,o=a+e.newText.length,s=t.substring(e.range.start,e.range.endExclusive);r.push(new Y(new n(a,o),s)),i+=e.newText.length-e.range.length}return new e(r)}normalize(){let t=[];for(let e of this.replacements){if(e.isEmpty)continue;let r=t[t.length-1];r&&r.range.endExclusive===e.range.start?t[t.length-1]=new Y(new n(r.range.start,e.range.endExclusive),r.newText+e.newText):t.push(e)}return new e(t)}toString(){return`StringEdit[${this.replacements.map(e=>e.toString()).join(`, `)}]`}},X=class{range;newText;data;constructor(e,t,n){this.range=e,this.newText=t,this.data=n}get isEmpty(){return this.range.isEmpty&&this.newText.length===0}toString(){return`${this.range}->${JSON.stringify(this.newText)}#${this.data}`}},We=class e{replacements;static empty(){return new e([])}static single(t){return new e([t])}static of(t){for(let e=1;e<t.length;e++){let n=t[e-1],r=t[e];if(n.range.endExclusive>r.range.start)throw Error(`AnnotatedStringEdit.of: replacements must be sorted and non-overlapping (${n.range} vs ${r.range})`)}return new e(t)}constructor(e){this.replacements=e}get isEmpty(){return this.replacements.length===0}apply(e){if(this.replacements.length===0)return e;let t=[],n=0;for(let r of this.replacements)t.push(e.substring(n,r.range.start)),t.push(r.newText),n=r.range.endExclusive;return t.push(e.substring(n)),t.join(``)}inverse(t,r){let i=[],a=0;for(let e of this.replacements){let o=e.range.start+a,s=o+e.newText.length,c=t.substring(e.range.start,e.range.endExclusive);i.push(new X(new n(o,s),c,r(e.data))),a+=e.newText.length-e.range.length}return new e(i)}normalize(){let t=[];for(let e of this.replacements){if(e.isEmpty)continue;let r=t[t.length-1];if(r&&r.range.endExclusive===e.range.start){let i=r.data.join(e.data);if(i!==void 0){t[t.length-1]=new X(new n(r.range.start,e.range.endExclusive),r.newText+e.newText,i);continue}}t.push(e)}return new e(t)}mapData(t){return new e(this.replacements.map(e=>new X(e.range,e.newText,t(e.data))))}stripData(){return Ue.of(this.replacements.map(e=>new Y(e.range,e.newText)))}toString(){return`AnnotatedStringEdit[${this.replacements.map(e=>e.toString()).join(`, `)}]`}},Ge=class e{isFormattingChange;static change=new e(!1);static formatting=new e(!0);constructor(e){this.isFormattingChange=e}join(e){if(this.isFormattingChange===e.isFormattingChange)return this}toString(){return this.isFormattingChange?`formatting`:`change`}},Ke=class{range;innerEdit;constructor(e,t){this.range=e,this.innerEdit=t}toString(){return`Move ${this.range}`+(this.innerEdit.isEmpty?``:` (${this.innerEdit})`)}},qe=class{edits;moves;hitTimeout;constructor(e,t,n){this.edits=e,this.moves=t,this.hitTimeout=n}};async function Je(e={}){return e.useWasm?(await Ie(),new Xe(e.algorithm)):new Ye(e.algorithm)}var Ye=class{_algorithm;_impl=new be;constructor(e){this._algorithm=e}computeDiff(e,t,n){let r=e.split(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./__vite-browser-external-D6-QnwSb.js","./index-CVEUw5jw.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e,t}from"./index-CVEUw5jw.js";var n=class e{start;endExclusive;static ofLength(t){return new e(0,t)}static ofStartAndLength(t,n){return new e(t,t+n)}constructor(e,t){if(this.start=e,this.endExclusive=t,e>t)throw Error(`Invalid range: [${e}, ${t})`)}get isEmpty(){return this.start===this.endExclusive}get length(){return this.endExclusive-this.start}delta(t){return new e(this.start+t,this.endExclusive+t)}deltaStart(t){return new e(this.start+t,this.endExclusive)}deltaEnd(t){return new e(this.start,this.endExclusive+t)}equals(e){return this.start===e.start&&this.endExclusive===e.endExclusive}containsRange(e){return this.start<=e.start&&e.endExclusive<=this.endExclusive}contains(e){return this.start<=e&&e<this.endExclusive}join(t){return new e(Math.min(this.start,t.start),Math.max(this.endExclusive,t.endExclusive))}intersect(t){let n=Math.max(this.start,t.start),r=Math.min(this.endExclusive,t.endExclusive);if(n<=r)return new e(n,r)}intersects(e){return Math.max(this.start,e.start)<Math.min(this.endExclusive,e.endExclusive)}intersectsOrTouches(e){return Math.max(this.start,e.start)<=Math.min(this.endExclusive,e.endExclusive)}slice(e){return e.slice(this.start,this.endExclusive)}toString(){return`[${this.start}, ${this.endExclusive})`}},r=class e{static instance=new e;isValid(){return!0}},i=class{timeout;startTime=Date.now();valid=!0;constructor(e){if(this.timeout=e,e<=0)throw Error(`timeout must be positive`)}isValid(){return!(Date.now()-this.startTime<this.timeout)&&this.valid&&(this.valid=!1),this.valid}},a=class e{offset1;offset2;static zero=new e(0,0);static max=new e(2**53-1,2**53-1);constructor(e,t){this.offset1=e,this.offset2=t}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(t){return t===0?this:new e(this.offset1+t,this.offset2+t)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}},o=class e{seq1Range;seq2Range;static invert(t,n){let r=[];return c(t,(t,i)=>{r.push(e.fromOffsetPairs(t?t.getEndExclusives():a.zero,i?i.getStarts():new a(n,(t?t.seq2Range.endExclusive-t.seq1Range.endExclusive:0)+n)))}),r}static fromOffsetPairs(t,r){return new e(new n(t.offset1,r.offset1),new n(t.offset2,r.offset2))}static assertSorted(e){let t;for(let n of e){if(t&&!(t.seq1Range.endExclusive<=n.seq1Range.start&&t.seq2Range.endExclusive<=n.seq2Range.start))throw Error(`Sequence diffs must be sorted`);t=n}}constructor(e,t){this.seq1Range=e,this.seq2Range=t}swap(){return new e(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(t){return new e(this.seq1Range.join(t.seq1Range),this.seq2Range.join(t.seq2Range))}delta(t){return t===0?this:new e(this.seq1Range.delta(t),this.seq2Range.delta(t))}deltaStart(t){return t===0?this:new e(this.seq1Range.deltaStart(t),this.seq2Range.deltaStart(t))}deltaEnd(t){return t===0?this:new e(this.seq1Range.deltaEnd(t),this.seq2Range.deltaEnd(t))}intersectsOrTouches(e){return this.seq1Range.intersectsOrTouches(e.seq1Range)||this.seq2Range.intersectsOrTouches(e.seq2Range)}intersect(t){let n=this.seq1Range.intersect(t.seq1Range),r=this.seq2Range.intersect(t.seq2Range);if(!(!n||!r))return new e(n,r)}getStarts(){return new a(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new a(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}},s=class e{diffs;hitTimeout;static trivial(t,r){return new e([new o(n.ofLength(t.length),n.ofLength(r.length))],!1)}static trivialTimedOut(t,r){return new e([new o(n.ofLength(t.length),n.ofLength(r.length))],!0)}constructor(e,t){this.diffs=e,this.hitTimeout=t}};function c(e,t){let n;for(let r of e)t(n,r),n=r;t(n,void 0)}var l=class{width;height;array=[];constructor(e,t){this.width=e,this.height=t,this.array=Array(e*t)}get(e,t){return this.array[e+t*this.width]}set(e,t,n){this.array[e+t*this.width]=n}},u=class{compute(e,t,i=r.instance,a){if(e.length===0||t.length===0)return s.trivial(e,t);let c=new l(e.length,t.length),u=new l(e.length,t.length),d=new l(e.length,t.length);for(let n=0;n<e.length;n++)for(let r=0;r<t.length;r++){if(!i.isValid())return s.trivialTimedOut(e,t);let o=n===0?0:c.get(n-1,r),l=r===0?0:c.get(n,r-1),f;e.getElement(n)===t.getElement(r)?(f=n===0||r===0?0:c.get(n-1,r-1),n>0&&r>0&&u.get(n-1,r-1)===3&&(f+=d.get(n-1,r-1)),f+=a?a(n,r):1):f=-1;let p=Math.max(o,l,f);if(p===f){let e=n>0&&r>0?d.get(n-1,r-1):0;d.set(n,r,e+1),u.set(n,r,3)}else p===o?(d.set(n,r,0),u.set(n,r,1)):p===l&&(d.set(n,r,0),u.set(n,r,2));c.set(n,r,p)}let f=[],p=e.length,m=t.length;function h(e,t){(e+1!==p||t+1!==m)&&f.push(new o(new n(e+1,p),new n(t+1,m))),p=e,m=t}let g=e.length-1,_=t.length-1;for(;g>=0&&_>=0;)u.get(g,_)===3?(h(g,_),g--,_--):u.get(g,_)===1?g--:_--;return h(-1,-1),f.reverse(),new s(f,!1)}},d=class{compute(e,t,i=r.instance){if(e.length===0||t.length===0)return s.trivial(e,t);let a=e,c=t;function l(e,t){for(;e<a.length&&t<c.length&&a.getElement(e)===c.getElement(t);)e++,t++;return e}let u=0,d=new p;d.set(0,l(0,0));let h=new m;h.set(0,d.get(0)===0?null:new f(null,0,0,d.get(0)));let g=0;loop:for(;;){if(u++,!i.isValid())return s.trivialTimedOut(a,c);let e=-Math.min(u,c.length+u%2),t=Math.min(u,a.length+u%2);for(g=e;g<=t;g+=2){let n=g===t?-1:d.get(g+1),r=g===e?-1:d.get(g-1)+1,i=Math.min(Math.max(n,r),a.length),o=i-g;if(i>a.length||o>c.length)continue;let s=l(i,o);d.set(g,s);let u=i===n?h.get(g+1):h.get(g-1);if(h.set(g,s===i?u:new f(u,i,o,s-i)),d.get(g)===a.length&&d.get(g)-g===c.length)break loop}}let _=h.get(g),v=[],y=a.length,b=c.length;for(;;){let e=_?_.x+_.length:0,t=_?_.y+_.length:0;if((e!==y||t!==b)&&v.push(new o(new n(e,y),new n(t,b))),!_)break;y=_.x,b=_.y,_=_.prev}return v.reverse(),new s(v,!1)}},f=class{prev;x;y;length;constructor(e,t,n,r){this.prev=e,this.x=t,this.y=n,this.length=r}},p=class{positiveArr=new Int32Array(10);negativeArr=new Int32Array(10);get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){if(e<0){if(e=-e-1,e>=this.negativeArr.length){let e=this.negativeArr;this.negativeArr=new Int32Array(e.length*2),this.negativeArr.set(e)}this.negativeArr[e]=t}else{if(e>=this.positiveArr.length){let e=this.positiveArr;this.positiveArr=new Int32Array(e.length*2),this.positiveArr.set(e)}this.positiveArr[e]=t}}},m=class{positiveArr=[];negativeArr=[];get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){e<0?(e=-e-1,this.negativeArr[e]=t):this.positiveArr[e]=t}};function h(e,t,n){let r=n;return r=g(e,t,r),r=g(e,t,r),r=_(e,t,r),r}function g(e,t,r){if(r.length===0)return r;let i=[];i.push(r[0]);for(let a=1;a<r.length;a++){let s=i[i.length-1],c=r[a];if(c.seq1Range.isEmpty||c.seq2Range.isEmpty){let r=c.seq1Range.start-s.seq1Range.endExclusive,a;for(a=1;a<=r&&!(e.getElement(c.seq1Range.start-a)!==e.getElement(c.seq1Range.endExclusive-a)||t.getElement(c.seq2Range.start-a)!==t.getElement(c.seq2Range.endExclusive-a));a++);if(a--,a===r){i[i.length-1]=new o(new n(s.seq1Range.start,c.seq1Range.endExclusive-r),new n(s.seq2Range.start,c.seq2Range.endExclusive-r));continue}c=c.delta(-a)}i.push(c)}let a=[];for(let r=0;r<i.length-1;r++){let s=i[r+1],c=i[r];if(c.seq1Range.isEmpty||c.seq2Range.isEmpty){let a=s.seq1Range.start-c.seq1Range.endExclusive,l;for(l=0;l<a&&!(!e.isStronglyEqual(c.seq1Range.start+l,c.seq1Range.endExclusive+l)||!t.isStronglyEqual(c.seq2Range.start+l,c.seq2Range.endExclusive+l));l++);if(l===a){i[r+1]=new o(new n(c.seq1Range.start+a,s.seq1Range.endExclusive),new n(c.seq2Range.start+a,s.seq2Range.endExclusive));continue}l>0&&(c=c.delta(l))}a.push(c)}return i.length>0&&a.push(i[i.length-1]),a}function _(e,t,r){if(!e.getBoundaryScore||!t.getBoundaryScore)return r;for(let i=0;i<r.length;i++){let a=i>0?r[i-1]:void 0,o=r[i],s=i+1<r.length?r[i+1]:void 0,c=new n(a?a.seq1Range.endExclusive+1:0,s?s.seq1Range.start-1:e.length),l=new n(a?a.seq2Range.endExclusive+1:0,s?s.seq2Range.start-1:t.length);o.seq1Range.isEmpty?r[i]=v(o,e,t,c,l):o.seq2Range.isEmpty&&(r[i]=v(o.swap(),t,e,l,c).swap())}return r}function v(e,t,n,r,i){let a=1;for(;e.seq1Range.start-a>=r.start&&e.seq2Range.start-a>=i.start&&n.isStronglyEqual(e.seq2Range.start-a,e.seq2Range.endExclusive-a)&&a<100;)a++;a--;let o=0;for(;e.seq1Range.start+o<r.endExclusive&&e.seq2Range.endExclusive+o<i.endExclusive&&n.isStronglyEqual(e.seq2Range.start+o,e.seq2Range.endExclusive+o)&&o<100;)o++;if(a===0&&o===0)return e;let s=0,c=-1;for(let r=-a;r<=o;r++){let i=e.seq2Range.start+r,a=e.seq2Range.endExclusive+r,o=e.seq1Range.start+r,l=t.getBoundaryScore(o)+n.getBoundaryScore(i)+n.getBoundaryScore(a);l>c&&(c=l,s=r)}return e.delta(s)}function y(e,t,n){let r=[];for(let e of n){let t=r[r.length-1];if(!t){r.push(e);continue}e.seq1Range.start-t.seq1Range.endExclusive<=2||e.seq2Range.start-t.seq2Range.endExclusive<=2?r[r.length-1]=new o(t.seq1Range.join(e.seq1Range),t.seq2Range.join(e.seq2Range)):r.push(e)}return r}function b(e,t,n,r,i=!1){let s=o.invert(n,e.length),c=[],l=new a(0,0);function u(n,a){if(n.offset1<l.offset1||n.offset2<l.offset2)return;let u=r(e,n.offset1),d=r(t,n.offset2);if(!u||!d)return;let f=new o(u,d),p=f.intersect(a),m=p.seq1Range.length,h=p.seq2Range.length;for(;s.length>0;){let n=s[0];if(!(n.seq1Range.intersects(f.seq1Range)||n.seq2Range.intersects(f.seq2Range)))break;let i=new o(r(e,n.seq1Range.start),r(t,n.seq2Range.start)),a=i.intersect(n);if(m+=a.seq1Range.length,h+=a.seq2Range.length,f=f.join(i),f.seq1Range.endExclusive>=n.seq1Range.endExclusive)s.shift();else break}(i&&m+h<f.seq1Range.length+f.seq2Range.length||m+h<(f.seq1Range.length+f.seq2Range.length)*2/3)&&c.push(f),l=f.getEndExclusives()}for(;s.length>0;){let e=s.shift();e.seq1Range.isEmpty||(u(e.getStarts(),e),u(e.getEndExclusives().delta(-1),e))}return x(n,c)}function x(e,t){let n=[];for(;e.length>0||t.length>0;){let r=e[0],i=t[0],a;a=r&&(!i||r.seq1Range.start<i.seq1Range.start)?e.shift():t.shift(),n.length>0&&n[n.length-1].seq1Range.endExclusive>=a.seq1Range.start?n[n.length-1]=n[n.length-1].join(a):n.push(a)}return n}function ee(e,t,r){let i=r;if(i.length===0)return i;let a=0,o;do{o=!1;let t=[i[0]];for(let r=1;r<i.length;r++){let a=i[r],s=t[t.length-1];function c(t,r){let i=new n(s.seq1Range.endExclusive,a.seq1Range.start);return e.getText(i).replace(/\s/g,``).length<=4&&(t.seq1Range.length+t.seq2Range.length>5||r.seq1Range.length+r.seq2Range.length>5)}c(s,a)?(o=!0,t[t.length-1]=t[t.length-1].join(a)):t.push(a)}i=t}while(a++<10&&o);return i}function te(e,t,r){let i=r;if(i.length===0)return i;let s=0,c;do{c=!1;let r=[i[0]];for(let a=1;a<i.length;a++){let o=i[a],s=r[r.length-1];function l(r,i){let a=new n(s.seq1Range.endExclusive,o.seq1Range.start);if(e.countLinesIn(a)>5||a.length>500)return!1;let c=e.getText(a).trim();if(c.length>20||c.split(/\r\n|\r|\n/).length>1)return!1;let l=e.countLinesIn(r.seq1Range),u=r.seq1Range.length,d=t.countLinesIn(r.seq2Range),f=r.seq2Range.length,p=e.countLinesIn(i.seq1Range),m=i.seq1Range.length,h=t.countLinesIn(i.seq2Range),g=i.seq2Range.length;function _(e){return Math.min(e,130)}return(_(l*40+u)**1.5+_(d*40+f)**1.5)**1.5+(_(p*40+m)**1.5+_(h*40+g)**1.5)**1.5>(130**1.5)**1.5*1.3}l(s,o)?(c=!0,r[r.length-1]=r[r.length-1].join(o)):r.push(o)}i=r}while(s++<10&&c);let l=[];return ne(i,(t,r,i)=>{let s=r;function c(e){return e.length>0&&e.trim().length<=3&&r.seq1Range.length+r.seq2Range.length>100}let u=e.extendToFullLines(r.seq1Range),d=e.getText(new n(u.start,r.seq1Range.start));c(d)&&(s=s.deltaStart(-d.length));let f=e.getText(new n(r.seq1Range.endExclusive,u.endExclusive));c(f)&&(s=s.deltaEnd(f.length));let p=o.fromOffsetPairs(t?t.getEndExclusives():a.zero,i?i.getStarts():a.max),m=s.intersect(p);l.length>0&&m.getStarts().equals(l[l.length-1].getEndExclusives())?l[l.length-1]=l[l.length-1].join(m):l.push(m)}),l}function ne(e,t){for(let n=0;n<e.length;n++)t(e[n-1],e[n],e[n+1])}var S={Space:32,Tab:9},re=class{trimmedHash;lines;constructor(e,t){this.trimmedHash=e,this.lines=t}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){return 1e3-((e===0?0:ie(this.lines[e-1]))+(e===this.lines.length?0:ie(this.lines[e])))}getText(e){return this.lines.slice(e.start,e.endExclusive).join(`
|
|
3
|
+
`)}isStronglyEqual(e,t){return this.lines[e]===this.lines[t]}};function ie(e){let t=0;for(;t<e.length&&(e.charCodeAt(t)===S.Space||e.charCodeAt(t)===S.Tab);)t++;return t}var C={LineFeed:10,CarriageReturn:13,Space:32,Tab:9,a:97,z:122,A:65,Z:90,Digit0:48,Digit9:57,Comma:44,Semicolon:59};function ae(e){return e===C.Space||e===C.Tab}var w=class e{startLineNumber;startColumn;endLineNumber;endColumn;constructor(e,t,n,r){this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=r}static fromPositions(t,n){return new e(t.lineNumber,t.column,n.lineNumber,n.column)}},T=class{lineNumber;column;constructor(e,t){this.lineNumber=e,this.column=t}isBefore(e){return this.lineNumber<e.lineNumber?!0:e.lineNumber<this.lineNumber?!1:this.column<e.column}},oe=class{lines;considerWhitespaceChanges;elements=[];firstElementOffsetByLineIdx=[];lineStartOffsets=[];trimmedWsLengthsByLineIdx=[];_range;constructor(e,t,n){this.lines=e,this.considerWhitespaceChanges=n,this._range=t,this.firstElementOffsetByLineIdx.push(0);for(let t=this._range.startLineNumber;t<=this._range.endLineNumber;t++){let r=e[t-1],i=0;t===this._range.startLineNumber&&this._range.startColumn>1&&(i=this._range.startColumn-1,r=r.substring(i)),this.lineStartOffsets.push(i);let a=0;if(!n){let e=r.trimStart();a=r.length-e.length,r=e.trimEnd()}this.trimmedWsLengthsByLineIdx.push(a);let o=t===this._range.endLineNumber?Math.min(this._range.endColumn-1-i-a,r.length):r.length;for(let e=0;e<o;e++)this.elements.push(r.charCodeAt(e));t<this._range.endLineNumber&&(this.elements.push(10),this.firstElementOffsetByLineIdx.push(this.elements.length))}}toString(){return`Slice: "${this.text}"`}get text(){return this.getText(new n(0,this.length))}getText(e){return this.elements.slice(e.start,e.endExclusive).map(e=>String.fromCharCode(e)).join(``)}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){let t=ue(e>0?this.elements[e-1]:-1),n=ue(e<this.elements.length?this.elements[e]:-1);if(t===7&&n===8)return 0;if(t===8)return 150;let r=0;return t!==n&&(r+=10,t===0&&n===1&&(r+=1)),r+=le(t),r+=le(n),r}translateOffset(e,t=`right`){let n=de(this.firstElementOffsetByLineIdx,t=>t<=e),r=e-this.firstElementOffsetByLineIdx[n];return new T(this._range.startLineNumber+n,1+this.lineStartOffsets[n]+r+(r===0&&t===`left`?0:this.trimmedWsLengthsByLineIdx[n]))}translateRange(e){let t=this.translateOffset(e.start,`right`),n=this.translateOffset(e.endExclusive,`left`);return n.isBefore(t)?w.fromPositions(n,n):w.fromPositions(t,n)}findWordContaining(e){if(e<0||e>=this.elements.length||!E(this.elements[e]))return;let t=e;for(;t>0&&E(this.elements[t-1]);)t--;let r=e;for(;r<this.elements.length&&E(this.elements[r]);)r++;return new n(t,r)}findSubWordContaining(e){if(e<0||e>=this.elements.length||!E(this.elements[e]))return;let t=e;for(;t>0&&E(this.elements[t-1])&&!se(this.elements[t]);)t--;let r=e;for(;r<this.elements.length&&E(this.elements[r])&&!se(this.elements[r]);)r++;return new n(t,r)}countLinesIn(e){return this.translateOffset(e.endExclusive).lineNumber-this.translateOffset(e.start).lineNumber}isStronglyEqual(e,t){return this.elements[e]===this.elements[t]}extendToFullLines(e){return new n(fe(this.firstElementOffsetByLineIdx,t=>t<=e.start)??0,pe(this.firstElementOffsetByLineIdx,t=>e.endExclusive<=t)??this.elements.length)}};function E(e){return e>=C.a&&e<=C.z||e>=C.A&&e<=C.Z||e>=C.Digit0&&e<=C.Digit9}function se(e){return e>=C.A&&e<=C.Z}var ce={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function le(e){return ce[e]}function ue(e){return e===C.LineFeed?8:e===C.CarriageReturn?7:ae(e)?6:e>=C.a&&e<=C.z?0:e>=C.A&&e<=C.Z?1:e>=C.Digit0&&e<=C.Digit9?2:e===-1?3:e===C.Comma||e===C.Semicolon?5:4}function de(e,t){let n=0,r=e.length-1;for(;n<=r;){let i=Math.floor((n+r)/2);t(e[i])?n=i+1:r=i-1}return r}function fe(e,t){let n=de(e,t);return n>=0?e[n]:void 0}function pe(e,t){let n=0,r=e.length-1;for(;n<=r;){let i=Math.floor((n+r)/2);t(e[i])?r=i-1:n=i+1}return n<e.length?e[n]:void 0}var D=class e{startLineNumber;endLineNumberExclusive;constructor(e,t){if(this.startLineNumber=e,this.endLineNumberExclusive=t,e>t)throw Error(`Invalid range: ${e} > ${t}`)}get isEmpty(){return this.startLineNumber===this.endLineNumberExclusive}get length(){return this.endLineNumberExclusive-this.startLineNumber}join(t){return new e(Math.min(this.startLineNumber,t.startLineNumber),Math.max(this.endLineNumberExclusive,t.endLineNumberExclusive))}intersectsOrTouches(e){return this.startLineNumber<=e.endLineNumberExclusive&&e.startLineNumber<=this.endLineNumberExclusive}toOffsetRange(){return new n(this.startLineNumber-1,this.endLineNumberExclusive-1)}toString(){return`[${this.startLineNumber}, ${this.endLineNumberExclusive})`}},O=class{originalRange;modifiedRange;constructor(e,t){this.originalRange=e,this.modifiedRange=t}toString(){return`${me(this.originalRange)} <-> ${me(this.modifiedRange)}`}static assertSorted(e){for(let t=1;t<e.length;t++){let n=e[t-1],r=e[t];if(!(n.originalRange.endLineNumber<=r.originalRange.startLineNumber||n.originalRange.endLineNumber===r.originalRange.startLineNumber&&n.originalRange.endColumn<=r.originalRange.startColumn))throw Error(`RangeMappings must be sorted`)}}};function me(e){return`(${e.startLineNumber}:${e.startColumn})-(${e.endLineNumber}:${e.endColumn})`}var k=class{original;modified;constructor(e,t){this.original=e,this.modified=t}toString(){return`${this.original} <-> ${this.modified}`}toRangeMapping2(e,t){let n=(e,t)=>e>=1&&e<=t.length,r=(e,t,n)=>{if(e<1)return new T(1,1);if(e>n.length)return new T(n.length,n[n.length-1].length+1);let r=n[e-1];return t>r.length+1?new T(e,r.length+1):new T(e,t)};if(n(this.original.endLineNumberExclusive,e)&&n(this.modified.endLineNumberExclusive,t))return new O(new w(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new w(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new O(w.fromPositions(new T(this.original.startLineNumber,1),r(this.original.endLineNumberExclusive-1,2**53-1,e)),w.fromPositions(new T(this.modified.startLineNumber,1),r(this.modified.endLineNumberExclusive-1,2**53-1,t)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new O(w.fromPositions(r(this.original.startLineNumber-1,2**53-1,e),r(this.original.endLineNumberExclusive-1,2**53-1,e)),w.fromPositions(r(this.modified.startLineNumber-1,2**53-1,t),r(this.modified.endLineNumberExclusive-1,2**53-1,t)));throw Error(`Invalid diff: cannot convert to range mapping`)}},A=class extends k{innerChanges;constructor(e,t,n){super(e,t),this.innerChanges=n}},j=class{changes;moves;hitTimeout;constructor(e,t,n){this.changes=e,this.moves=t,this.hitTimeout=n}},he=class{lineRangeMapping;changes;constructor(e,t){this.lineRangeMapping=e,this.changes=t}};function ge(e,t,n,r=!1){let i=[];for(let r of ve(e.map(e=>_e(e,t,n)),(e,t)=>e.original.intersectsOrTouches(t.original)||e.modified.intersectsOrTouches(t.modified))){let e=r[0],t=r[r.length-1];i.push(new A(e.original.join(t.original),e.modified.join(t.modified),r.map(e=>e.innerChanges[0])))}if(!r)for(let e=1;e<i.length;e++){let t=i[e-1],n=i[e];if(t.original.endLineNumberExclusive>n.original.startLineNumber||t.modified.endLineNumberExclusive>n.modified.startLineNumber)break}return i}function _e(e,t,n){let r=0,i=0;return e.modifiedRange.endColumn===1&&e.originalRange.endColumn===1&&e.originalRange.startLineNumber+r<=e.originalRange.endLineNumber&&e.modifiedRange.startLineNumber+r<=e.modifiedRange.endLineNumber&&(i=-1),e.modifiedRange.startColumn-1>=(n[e.modifiedRange.startLineNumber-1]?.length??0)&&e.originalRange.startColumn-1>=(t[e.originalRange.startLineNumber-1]?.length??0)&&e.originalRange.startLineNumber<=e.originalRange.endLineNumber+i&&e.modifiedRange.startLineNumber<=e.modifiedRange.endLineNumber+i&&(r=1),new A(new D(e.originalRange.startLineNumber+r,e.originalRange.endLineNumber+1+i),new D(e.modifiedRange.startLineNumber+r,e.modifiedRange.endLineNumber+1+i),[e])}function*ve(e,t){let n,r;for(let i of e)r!==void 0&&t(r,i)?n.push(i):(n&&(yield n),n=[i]),r=i;n&&(yield n)}var ye=class{lines;constructor(e){this.lines=e}get lineCount(){return this.lines.length}getLineContent(e){return this.lines[e-1]}},be=class{_dynamicProgrammingDiffing=new u;_myersDiffingAlgorithm=new d;computeDiff(e,t,a){if(e.length<=1&&Se(e,t))return new j([],[],!1);if(e.length===1&&e[0].length===0||t.length===1&&t[0].length===0)return new j([new A(new D(1,e.length+1),new D(1,t.length+1),[new O(new w(1,1,e.length,e[e.length-1].length+1),new w(1,1,t.length,t[t.length-1].length+1))])],[],!1);let s=a.maxComputationTimeMs===0?r.instance:new i(a.maxComputationTimeMs),c=!a.ignoreTrimWhitespace,l=new Map;function u(e){let t=l.get(e);return t===void 0&&(t=l.size,l.set(e,t)),t}let d=e.map(e=>u(e.trim())),f=t.map(e=>u(e.trim())),p=new re(d,e),m=new re(f,t),g=p.length+m.length<1700?this._dynamicProgrammingDiffing.compute(p,m,s,(n,r)=>e[n]===t[r]?t[r].length===0?.1:1+Math.log(1+t[r].length):.99):this._myersDiffingAlgorithm.compute(p,m,s),_=g.diffs,v=g.hitTimeout;_=h(p,m,_),_=ee(p,m,_);let y=[],b=r=>{if(c)for(let i=0;i<r;i++){let r=x+i,l=te+i;if(e[r]!==t[l]){let i=this._refineDiff(e,t,new o(new n(r,r+1),new n(l,l+1)),s,c,a);for(let e of i.mappings)y.push(e);i.hitTimeout&&(v=!0)}}},x=0,te=0;for(let n of _){b(n.seq1Range.start-x),x=n.seq1Range.endExclusive,te=n.seq2Range.endExclusive;let r=this._refineDiff(e,t,n,s,c,a);r.hitTimeout&&(v=!0);for(let e of r.mappings)y.push(e)}b(e.length-x);let ne=new ye(e),S=new ye(t);return new j(ge(y,ne.lines,S.lines),[],v)}_refineDiff(e,t,n,r,i,a){let o=xe(n).toRangeMapping2(e,t),s=new oe(e,o.originalRange,i),c=new oe(t,o.modifiedRange,i),l=s.length+c.length<500?this._dynamicProgrammingDiffing.compute(s,c,r):this._myersDiffingAlgorithm.compute(s,c,r),u=l.diffs;return u=h(s,c,u),u=b(s,c,u,(e,t)=>e.findWordContaining(t)),a.extendToSubwords&&(u=b(s,c,u,(e,t)=>e.findSubWordContaining(t),!0)),u=y(s,c,u),u=te(s,c,u),{mappings:u.map(e=>new O(s.translateRange(e.seq1Range),c.translateRange(e.seq2Range))),hitTimeout:l.hitTimeout}}};function xe(e){return new k(new D(e.seq1Range.start+1,e.seq1Range.endExclusive+1),new D(e.seq2Range.start+1,e.seq2Range.endExclusive+1))}function Se(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Ce(e,t,n){let r=B(e,K.__wbindgen_malloc,K.__wbindgen_realloc),i=G,a=B(t,K.__wbindgen_malloc,K.__wbindgen_realloc),o=G,s=K.computeDiff(r,i,a,o,n);if(s[2])throw V(s[1]);return V(s[0])}function we(e,t,n){let r=K.computeDiffLines(e,t,n);if(r[2])throw V(r[1]);return V(r[0])}function Te(){K.init()}function Ee(){return{__proto__:null,"./diff_wasm_bg.js":{__proto__:null,__wbg_Error_ef53bc310eb298a0:function(e,t){return Error(F(e,t))},__wbg_Number_6b506e6536831eaa:function(e){return Number(e)},__wbg_String_8564e559799eccda:function(e,t){let n=B(String(t),K.__wbindgen_malloc,K.__wbindgen_realloc),r=G;P().setInt32(e+4,r,!0),P().setInt32(e+0,n,!0)},__wbg___wbindgen_bigint_get_as_i64_38130e98eecd467d:function(e,t){let n=t,r=typeof n==`bigint`?n:void 0;P().setBigInt64(e+8,z(r)?BigInt(0):r,!0),P().setInt32(e+0,!z(r),!0)},__wbg___wbindgen_boolean_get_1a45e2c38d4d41b9:function(e){let t=e,n=typeof t==`boolean`?t:void 0;return z(n)?16777215:+!!n},__wbg___wbindgen_debug_string_0accd80f45e5faa2:function(e,t){let n=B(M(t),K.__wbindgen_malloc,K.__wbindgen_realloc),r=G;P().setInt32(e+4,r,!0),P().setInt32(e+0,n,!0)},__wbg___wbindgen_in_70a403a56e771704:function(e,t){return e in t},__wbg___wbindgen_is_bigint_6ffd6468a9bc44b9:function(e){return typeof e==`bigint`},__wbg___wbindgen_is_function_754e9f305ff6029e:function(e){return typeof e==`function`},__wbg___wbindgen_is_null_87c3bfe968c6a5ad:function(e){return e===null},__wbg___wbindgen_is_object_56732c2bc353f41d:function(e){let t=e;return typeof t==`object`&&!!t},__wbg___wbindgen_is_undefined_67b456be8673d3d7:function(e){return e===void 0},__wbg___wbindgen_jsval_eq_1068e624fa87f6ab:function(e,t){return e===t},__wbg___wbindgen_jsval_loose_eq_2c56564c75129511:function(e,t){return e==t},__wbg___wbindgen_number_get_9bb1761122181af2:function(e,t){let n=t,r=typeof n==`number`?n:void 0;P().setFloat64(e+8,z(r)?0:r,!0),P().setInt32(e+0,!z(r),!0)},__wbg___wbindgen_string_get_72bdf95d3ae505b1:function(e,t){let n=t,r=typeof n==`string`?n:void 0;var i=z(r)?0:B(r,K.__wbindgen_malloc,K.__wbindgen_realloc),a=G;P().setInt32(e+4,a,!0),P().setInt32(e+0,i,!0)},__wbg___wbindgen_throw_1506f2235d1bdba0:function(e,t){throw Error(F(e,t))},__wbg_call_8a89609d89f6608a:function(){return R(function(e,t){return e.call(t)},arguments)},__wbg_done_60cf307fcc680536:function(e){return e.done},__wbg_error_a6fa202b58aa1cd3:function(e,t){let n,r;try{n=e,r=t,console.error(F(e,t))}finally{K.__wbindgen_free(n,r,1)}},__wbg_get_1f8f054ddbaa7db2:function(){return R(function(e,t){return Reflect.get(e,t)},arguments)},__wbg_get_unchecked_33f6e5c9e2f2d6b2:function(e,t){return e[t>>>0]},__wbg_get_with_ref_key_6412cf3094599694:function(e,t){return e[t]},__wbg_instanceof_ArrayBuffer_8f49811467741499:function(e){let t;try{t=e instanceof ArrayBuffer}catch{t=!1}return t},__wbg_instanceof_Uint8Array_86f30649f63ef9c2:function(e){let t;try{t=e instanceof Uint8Array}catch{t=!1}return t},__wbg_isArray_67c2c9c4313f4448:function(e){return Array.isArray(e)},__wbg_isSafeInteger_66acec27e09e99a7:function(e){return Number.isSafeInteger(e)},__wbg_iterator_8732428d309e270e:function(){return Symbol.iterator},__wbg_length_4a591ecaa01354d9:function(e){return e.length},__wbg_length_66f1a4b2e9026940:function(e){return e.length},__wbg_new_227d7c05414eb861:function(){return Error()},__wbg_new_578aeef4b6b94378:function(e){return new Uint8Array(e)},__wbg_new_ce1ab61c1c2b300d:function(){return{}},__wbg_new_d90091b82fdf5b91:function(){return[]},__wbg_next_9e03acdf51c4960d:function(e){return e.next},__wbg_next_eb8ca7351fa27906:function(){return R(function(e){return e.next()},arguments)},__wbg_prototypesetcall_3249fc62a0fafa30:function(e,t,n){Uint8Array.prototype.set.call(Oe(e,t),n)},__wbg_set_6be42768c690e380:function(e,t,n){e[t]=n},__wbg_set_dca99999bba88a9a:function(e,t,n){e[t>>>0]=n},__wbg_stack_3b0d974bbf31e44f:function(e,t){let n=t.stack,r=B(n,K.__wbindgen_malloc,K.__wbindgen_realloc),i=G;P().setInt32(e+4,i,!0),P().setInt32(e+0,r,!0)},__wbg_value_f3625092ee4b37f4:function(e){return e.value},__wbindgen_cast_0000000000000001:function(e){return e},__wbindgen_cast_0000000000000002:function(e,t){return F(e,t)},__wbindgen_cast_0000000000000003:function(e){return BigInt.asUintN(64,e)},__wbindgen_init_externref_table:function(){let e=K.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}function De(e){let t=K.__externref_table_alloc();return K.__wbindgen_externrefs.set(t,e),t}function M(e){let t=typeof e;if(t==`number`||t==`boolean`||e==null)return`${e}`;if(t==`string`)return`"${e}"`;if(t==`symbol`){let t=e.description;return t==null?`Symbol`:`Symbol(${t})`}if(t==`function`){let t=e.name;return typeof t==`string`&&t.length>0?`Function(${t})`:`Function`}if(Array.isArray(e)){let t=e.length,n=`[`;t>0&&(n+=M(e[0]));for(let r=1;r<t;r++)n+=`, `+M(e[r]);return n+=`]`,n}let n=/\[object ([^\]]+)\]/.exec(toString.call(e)),r;if(n&&n.length>1)r=n[1];else return toString.call(e);if(r==`Object`)try{return`Object(`+JSON.stringify(e)+`)`}catch{return`Object`}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:r}function Oe(e,t){return e>>>=0,L().subarray(e/1,e/1+t)}var N=null;function P(){return(N===null||N.buffer.detached===!0||N.buffer.detached===void 0&&N.buffer!==K.memory.buffer)&&(N=new DataView(K.memory.buffer)),N}function F(e,t){return Ae(e>>>0,t)}var I=null;function L(){return(I===null||I.byteLength===0)&&(I=new Uint8Array(K.memory.buffer)),I}function R(e,t){try{return e.apply(this,t)}catch(e){let t=De(e);K.__wbindgen_exn_store(t)}}function z(e){return e==null}function B(e,t,n){if(n===void 0){let n=W.encode(e),r=t(n.length,1)>>>0;return L().subarray(r,r+n.length).set(n),G=n.length,r}let r=e.length,i=t(r,1)>>>0,a=L(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=L().subarray(i+o,i+r),a=W.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return G=o,i}function V(e){let t=K.__wbindgen_externrefs.get(e);return K.__externref_table_dealloc(e),t}var H=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});H.decode();var ke=2146435072,U=0;function Ae(e,t){return U+=t,U>=ke&&(H=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),H.decode(),U=t),H.decode(L().subarray(e,e+t))}var W=new TextEncoder;`encodeInto`in W||(W.encodeInto=function(e,t){let n=W.encode(e);return t.set(n),{read:e.length,written:n.length}});var G=0,K;function je(e,t){return K=e.exports,N=null,I=null,K.__wbindgen_start(),K}async function Me(e,t){if(typeof Response==`function`&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(e.ok&&n(e.type)&&e.headers.get(`Content-Type`)!==`application/wasm`)console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",t);else throw t}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}function n(e){switch(e){case`basic`:case`cors`:case`default`:return!0}return!1}}function Ne(e){if(K!==void 0)return K;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module:e}=e:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let t=Ee();return e instanceof WebAssembly.Module||(e=new WebAssembly.Module(e)),je(new WebAssembly.Instance(e,t))}async function Pe(e){if(K!==void 0)return K;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`)),e===void 0&&(e=new URL(new URL(``+new URL(`diff_wasm_bg-c6YkaZRL-c6YkaZRL.wasm`,import.meta.url).href,``+import.meta.url).href));let t=Ee();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await Me(await e,t);return je(n)}var Fe=Object.freeze({__proto__:null,computeDiff:Ce,computeDiffLines:we,default:Pe,init:Te,initSync:Ne}),q=null,J=null;async function Ie(){return q||J||(J=(async()=>{let n=new URL(new URL(``+new URL(`diff_wasm_bg-c6YkaZRL-c6YkaZRL.wasm`,import.meta.url).href,``+import.meta.url).href),r=n;if(typeof process<`u`&&process.versions?.node){let{readFile:i}=await t(async()=>{let{readFile:t}=await import(`./__vite-browser-external-D6-QnwSb.js`).then(t=>e(t.default,1));return{readFile:t}},__vite__mapDeps([0,1]),import.meta.url);r=await i(n)}return await Pe({module_or_path:r}),Te(),q=Fe,q})(),J)}function Le(){if(!q)throw Error(`WASM not initialized. Call initWasm() first and await it.`);return q}function Re(e){return new j(e.changes.map(ze),e.moves.map(Ve),e.hitTimeout)}function ze(e){let t=e.innerChanges?.map(Be);return new A(new D(e.original.startLineNumber,e.original.endLineNumberExclusive),new D(e.modified.startLineNumber,e.modified.endLineNumberExclusive),t)}function Be(e){return new O(new w(e.originalStartLine,e.originalStartColumn,e.originalEndLine,e.originalEndColumn),new w(e.modifiedStartLine,e.modifiedStartColumn,e.modifiedEndLine,e.modifiedEndColumn))}function Ve(e){return new he(new k(new D(e.lineRangeMapping.original.startLineNumber,e.lineRangeMapping.original.endLineNumberExclusive),new D(e.lineRangeMapping.modified.startLineNumber,e.lineRangeMapping.modified.endLineNumberExclusive)),e.changes.map(ze))}var He=class{original;modified;constructor(e,t){this.original=e,this.modified=t}toString(){return`${this.original} <-> ${this.modified}`}},Y=class{range;newText;constructor(e,t){this.range=e,this.newText=t}get isEmpty(){return this.range.isEmpty&&this.newText.length===0}toString(){return`${this.range}->${JSON.stringify(this.newText)}`}},Ue=class e{replacements;static empty=new e([]);static single(t){return new e([t])}static of(t){for(let e=1;e<t.length;e++){let n=t[e-1],r=t[e];if(n.range.endExclusive>r.range.start)throw Error(`StringEdit.of: replacements must be sorted and non-overlapping (${n.range} vs ${r.range})`)}return new e(t)}constructor(e){this.replacements=e}get isEmpty(){return this.replacements.length===0}apply(e){if(this.replacements.length===0)return e;let t=[],n=0;for(let r of this.replacements)t.push(e.substring(n,r.range.start)),t.push(r.newText),n=r.range.endExclusive;return t.push(e.substring(n)),t.join(``)}inverse(t){let r=[],i=0;for(let e of this.replacements){let a=e.range.start+i,o=a+e.newText.length,s=t.substring(e.range.start,e.range.endExclusive);r.push(new Y(new n(a,o),s)),i+=e.newText.length-e.range.length}return new e(r)}normalize(){let t=[];for(let e of this.replacements){if(e.isEmpty)continue;let r=t[t.length-1];r&&r.range.endExclusive===e.range.start?t[t.length-1]=new Y(new n(r.range.start,e.range.endExclusive),r.newText+e.newText):t.push(e)}return new e(t)}toString(){return`StringEdit[${this.replacements.map(e=>e.toString()).join(`, `)}]`}},X=class{range;newText;data;constructor(e,t,n){this.range=e,this.newText=t,this.data=n}get isEmpty(){return this.range.isEmpty&&this.newText.length===0}toString(){return`${this.range}->${JSON.stringify(this.newText)}#${this.data}`}},We=class e{replacements;static empty(){return new e([])}static single(t){return new e([t])}static of(t){for(let e=1;e<t.length;e++){let n=t[e-1],r=t[e];if(n.range.endExclusive>r.range.start)throw Error(`AnnotatedStringEdit.of: replacements must be sorted and non-overlapping (${n.range} vs ${r.range})`)}return new e(t)}constructor(e){this.replacements=e}get isEmpty(){return this.replacements.length===0}apply(e){if(this.replacements.length===0)return e;let t=[],n=0;for(let r of this.replacements)t.push(e.substring(n,r.range.start)),t.push(r.newText),n=r.range.endExclusive;return t.push(e.substring(n)),t.join(``)}inverse(t,r){let i=[],a=0;for(let e of this.replacements){let o=e.range.start+a,s=o+e.newText.length,c=t.substring(e.range.start,e.range.endExclusive);i.push(new X(new n(o,s),c,r(e.data))),a+=e.newText.length-e.range.length}return new e(i)}normalize(){let t=[];for(let e of this.replacements){if(e.isEmpty)continue;let r=t[t.length-1];if(r&&r.range.endExclusive===e.range.start){let i=r.data.join(e.data);if(i!==void 0){t[t.length-1]=new X(new n(r.range.start,e.range.endExclusive),r.newText+e.newText,i);continue}}t.push(e)}return new e(t)}mapData(t){return new e(this.replacements.map(e=>new X(e.range,e.newText,t(e.data))))}stripData(){return Ue.of(this.replacements.map(e=>new Y(e.range,e.newText)))}toString(){return`AnnotatedStringEdit[${this.replacements.map(e=>e.toString()).join(`, `)}]`}},Ge=class e{isFormattingChange;static change=new e(!1);static formatting=new e(!0);constructor(e){this.isFormattingChange=e}join(e){if(this.isFormattingChange===e.isFormattingChange)return this}toString(){return this.isFormattingChange?`formatting`:`change`}},Ke=class{range;innerEdit;constructor(e,t){this.range=e,this.innerEdit=t}toString(){return`Move ${this.range}`+(this.innerEdit.isEmpty?``:` (${this.innerEdit})`)}},qe=class{edits;moves;hitTimeout;constructor(e,t,n){this.edits=e,this.moves=t,this.hitTimeout=n}};async function Je(e={}){return e.useWasm?(await Ie(),new Xe(e.algorithm)):new Ye(e.algorithm)}var Ye=class{_algorithm;_impl=new be;constructor(e){this._algorithm=e}computeDiff(e,t,n){let r=e.split(`
|
|
4
4
|
`),i=t.split(`
|
|
5
5
|
`),a={maxComputationTimeMs:n?.maxComputationTimeMs??0,ignoreTrimWhitespace:n?.ignoreTrimWhitespace??!1,computeMoves:n?.computeMoves??!1,extendToSubwords:n?.extendToSubwords??!1},o=this._impl.computeDiff(r,i,a);return this._algorithm,Qe(o,e,t,r,i)}},Xe=class{_algorithm;constructor(e){this._algorithm=e}computeDiff(e,t,n){let r=e.split(`
|
|
6
6
|
`),i=t.split(`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=``+new URL(`fs-core.worker-VoMLk-PY.js`,import.meta.url).href,t=``+new URL(`fs-query.worker-fXLkQK9l.js`,import.meta.url).href;export{e as coreWorkerUrl,t as queryWorkerUrl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=new TextEncoder,t=new TextDecoder,n=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let e=0;e<8;e++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function r(e,t=0,r=e.length){let i=4294967295;for(let a=t;a<r;a++)i=n[(i^e[a])&255]^i>>>8;return(i^4294967295)>>>0}async function i(e){let t=await crypto.subtle.digest(`SHA-256`,e);return[...new Uint8Array(t)].map(e=>e.toString(16).padStart(2,`0`)).join(``)}const a={WRITE:1,RM:2,MV:3,MKDIR:4,CHECKPOINT:5,RESTORE:6},o={1:`write`,2:`rm`,3:`mv`,4:`mkdir`,5:`checkpoint`,6:`restore`},s=new Set([a.WRITE,a.RM,a.MV,a.RESTORE]),c=4*1024*1024,l=4096,u=1146569521,d=[`node_modules/`,`.checkpoints/`];function f(e){let t=new ArrayBuffer(64),n=new DataView(t);return n.setUint32(0,u),n.setUint32(4,e.epoch),n.setFloat64(8,e.compactGen),n.setFloat64(16,e.walStartGen),n.setUint32(24,e.manifestCrc),n.setUint32(60,r(new Uint8Array(t,0,60))),new Uint8Array(t)}function p(e){if(e.length<64)return null;let t=new DataView(e.buffer,e.byteOffset,64);return t.getUint32(60)!==r(e,0,60)||t.getUint32(0)!==u?null:{epoch:t.getUint32(4),compactGen:t.getFloat64(8),walStartGen:t.getFloat64(16),manifestCrc:t.getUint32(24)}}function m(t,n,i,a){let o=e.encode(JSON.stringify(a)),s=15+o.length+4+1,c=new ArrayBuffer(4+s),l=new DataView(c),u=new Uint8Array(c);l.setUint32(0,s),l.setBigUint64(4,BigInt(t)),l.setUint32(12,n),l.setUint8(16,i),l.setUint16(17,o.length),u.set(o,19);let d=19+o.length;return l.setUint32(d,r(u,4,d)),l.setUint8(d+4,193),u}function h(e,n){if(n+4>e.length)return null;let i=new DataView(e.buffer,e.byteOffset),a=i.getUint32(n);if(a<20||n+4+a>e.length)return null;let o=Number(i.getBigUint64(n+4)),s=i.getUint32(n+12),c=i.getUint8(n+16),l=i.getUint16(n+17),u=n+19,d=u+l;if(d+5!==n+4+a||i.getUint32(d)!==r(e,n+4,d)||i.getUint8(d+4)!==193)return null;let f;try{f=JSON.parse(t.decode(e.subarray(u,d)))}catch{return null}return{rec:{gen:o,epoch:s,opcode:c,meta:f},next:n+4+a}}function g(e){if(typeof e!=`string`||!e||e.includes(`\0`)||e.includes(`\\`)||e.startsWith(`/`))return null;let t=[];for(let n of e.split(`/`))if(!(n===``||n===`.`)){if(n===`..`)return null;t.push(n)}return t.length?t.join(`/`):null}var _=class{constructor(){this.mode=`starting`,this.mirror=new Map,this.checkpoints=new Map,this.opIds=new Map,this.appendedGen=0,this.walGen=0,this.memGen=0,this.ackGen=0,this.compactGen=0,this.epoch=0,this.walStartGen=1,this.staged=new Map,this.windowOps=[],this.flushTimer=null,this.chain=Promise.resolve(),this.clientPort=null,this.queryPort=null,this.releaseLock=null,this.walHandle=null,this.walOffset=0,this.sbHandle=null,this.currentSlot=0,this.turn=null,this.auditLog=[],this.agentToken=null}async start(e){this.projectId=e,this.root=await(await navigator.storage.getDirectory()).getDirectoryHandle(e,{create:!0}),this.bc=new BroadcastChannel(`dwc:`+e),this.bc.onmessage=e=>this.onBroadcast(e.data);let t=new Promise(t=>{navigator.locks.request(`dwc:writer:`+e,{mode:`exclusive`},e=>(t(e),new Promise(e=>{this.releaseLock=e}))).catch(()=>t(null))});if(await Promise.race([t,new Promise(e=>setTimeout(()=>e(`timeout`),3e3))])===`timeout`){await this.recover(),this.mode=`readonly`,this.pushFullToQuery(),this.welcome(),t.then(async e=>{!e||this.mode===`dead`||await this.enqueue(async()=>{await this.becomeWriter()})});return}await this.becomeWriter(),this.welcome()}async becomeWriter(){await this.recover(),this.sbHandle=await(await this.root.getFileHandle(`superblock`,{create:!0})).createSyncAccessHandle(),this.epoch+=1,this.writeSuperblock();let e=`wal.`+this.lastSegStart;this.walHandle=await(await this.root.getFileHandle(e,{create:!0})).createSyncAccessHandle(),this.walOffset=this.lastSegValidEnd,this.mode=`writer`,this.pushFullToQuery(),this.event({evt:`writer-granted`,gen:this.memGen}),this.walOffset>c&&this.enqueue(()=>this.compactNow())}writeSuperblock(){let e=1-this.currentSlot,t=f({epoch:this.epoch,compactGen:this.compactGen,walStartGen:this.walStartGen,manifestCrc:this.manifestCrc||0}),n=this.sbHandle.write(t,{at:e*64});if(n!==64)throw Error(`superblock partial write: `+n);this.sbHandle.flush(),this.currentSlot=e}async recover(){this.mirror.clear(),this.checkpoints.clear(),this.opIds.clear(),this.auditLog=[],this.turn=null;let e=null;try{let t=await(await this.root.getFileHandle(`superblock`)).getFile(),n=new Uint8Array(await t.arrayBuffer()),r=p(n.subarray(0,64)),i=n.length>=128?p(n.subarray(64,128)):null;r&&i?(e=i.compactGen>r.compactGen||i.compactGen===r.compactGen&&i.epoch>=r.epoch?i:r,this.currentSlot=+(e===i)):r?(e=r,this.currentSlot=0):i&&(e=i,this.currentSlot=1)}catch{}e||(e={epoch:0,compactGen:0,walStartGen:1,manifestCrc:0},this.currentSlot=1),this.epoch=e.epoch,this.compactGen=e.compactGen,this.walStartGen=e.walStartGen,this.manifestCrc=e.manifestCrc;let n=0;if(this.compactGen>0){let e=await(await(await this.root.getDirectoryHandle(`manifests`)).getFileHandle(this.compactGen+`.json`)).getFile(),i=new Uint8Array(await e.arrayBuffer());if(r(i)!==this.manifestCrc)throw Error(`manifest CRC mismatch (gen `+this.compactGen+`)`);let a=JSON.parse(t.decode(i));for(let[e,t]of Object.entries(a.files))this.mirror.set(e,{content:await this.readBlob(t.h),rev:t.rev});for(let[e,t]of Object.entries(a.checkpoints||{}))this.checkpoints.set(e,t);n=a.gen}let i=[];for await(let[e]of this.root.entries()){let t=/^wal\.(\d+)$/.exec(e);t&&+t[1]>=this.walStartGen&&i.push(+t[1])}i.sort((e,t)=>e-t),this.lastSegStart=i.length?i[i.length-1]:this.walStartGen,this.lastSegValidEnd=0;let a=[];for(let e=0;e<i.length;e++){let t=e+1<i.length?i[e+1]:1/0,r=await(await this.root.getFileHandle(`wal.`+i[e])).getFile(),o=new Uint8Array(await r.arrayBuffer()),s=0;for(;s<o.length;){let r=h(o,s);if(!r||r.rec.gen!==n+1||r.rec.gen>=t||r.rec.epoch<this.epochFloor(a))break;await this.applyRecord(r.rec),n=r.rec.gen,a.push(r.rec);let c=r.rec.meta;this.audit({gen:n,opcode:r.rec.opcode,actor:c.actor,turnId:c.turnId,path:c.path,from:c.from,to:c.to,cpId:c.cpId}),s=r.next,i[e]===this.lastSegStart&&(this.lastSegValidEnd=s)}i[e],this.lastSegStart}this.appendedGen=this.walGen=this.memGen=this.ackGen=n,this.trimCheckpoints();for(let e of a.slice(-1024))e.meta.opId&&this.rememberOpId(e.meta.opId,{gen:e.gen});i.length||await this.root.getFileHandle(`wal.`+this.walStartGen,{create:!0})}epochFloor(e){return e.length?e[e.length-1].epoch:0}async applyRecord(e){let t=e.meta;switch(e.opcode){case a.WRITE:{let n=t.payload.inline===void 0?await this.readBlob(t.payload.h):t.payload.inline;this.mirror.set(t.path,{content:n,rev:e.gen});break}case a.RM:this.mirror.delete(t.path);break;case a.MV:{let n=this.mirror.get(t.from);n&&(this.mirror.delete(t.from),this.mirror.set(t.to,{content:n.content,rev:e.gen}));break}case a.MKDIR:break;case a.CHECKPOINT:this.checkpoints.set(t.cpId,{h:t.h,gen:e.gen});break;case a.RESTORE:{let n=JSON.parse(await this.readBlob(t.h)),r=new Map;for(let[t,i]of Object.entries(n))r.set(t,{content:await this.readBlob(i),rev:e.gen});this.mirror=r;break}}}async ensureBlob(t){let n=e.encode(t),r=await i(n),a=await(await this.root.getDirectoryHandle(`blobs`,{create:!0})).getDirectoryHandle(r.slice(0,2),{create:!0});try{return await a.getFileHandle(r),r}catch{}let o=await(await a.getFileHandle(r,{create:!0})).createSyncAccessHandle();return o.write(n),o.flush(),o.close(),r}async readBlob(e){return(await(await(await(await this.root.getDirectoryHandle(`blobs`)).getDirectoryHandle(e.slice(0,2))).getFileHandle(e)).getFile()).text()}enqueue(e){let t=this.chain.then(e);return this.chain=t.catch(()=>{}),t}appendSync(e,t,n){if(this.mode!==`writer`)throw v(`readonly`,`fs-core is `+this.mode);if(n&&n(),this.walOffset>c)throw v(`rotate-needed`,`internal`);let r=this.appendedGen+1,i=m(r,this.epoch,e,t);if(this.walHandle.write(i,{at:this.walOffset})!==i.length)throw Error(`WAL partial write`);return this.walOffset+=i.length,this.appendedGen=r,this.audit({gen:r,opcode:e,actor:t.actor,turnId:t.turnId,path:t.path,from:t.from,to:t.to,cpId:t.cpId}),r}audit(e){this.auditLog.push(e),this.auditLog.length>l&&this.auditLog.splice(0,this.auditLog.length-l)}checkTurn(e,t,n){if(e!==`agent`)return;let r=this.turn;if(!r||r.turnId!==t)throw v(`turn-closed`,`agent write requires an active turn (got `+t+`)`);if(Date.now()>r.expiresAt)throw this.turn=null,v(`turn-closed`,`turn expired: `+t);if(this.agentToken!==null&&n!==this.agentToken)throw v(`agent-token-required`,`agent write requires a valid agent token`);if(++r.ops>1e3)throw v(`turn-quota`,`per-turn op quota exceeded (1000)`)}armAgentToken(e){if(typeof e!=`string`||!e)throw v(`bad-args`,`agent token must be a non-empty string`);if(this.agentToken===null)return this.agentToken=e,{armed:!0};if(this.agentToken===e)return{armed:!0,idempotent:!0};throw v(`agent-token-gate-armed`,`agent token gate already armed with a different token`)}checkRestoreConflict(e){if((this.auditLog.length?this.auditLog[0].gen:this.appendedGen+1)>e+1)throw v(`restore-conflict`,`audit log does not cover baseGen `+e,{humanPaths:[],auditGap:!0});let t=[],n=new Set;for(let r of this.auditLog){if(r.gen<=e||r.actor!==`human`||!s.has(r.opcode))continue;let i=r.opcode===a.MV?r.to||r.from:r.opcode===a.RESTORE?`(restore:`+r.cpId+`)`:r.path;i&&!n.has(i)&&(n.add(i),t.push(i))}if(t.length)throw v(`restore-conflict`,`human edits since baseGen `+e,{humanPaths:t})}curOf(e){return this.staged.has(e)?this.staged.get(e):this.mirror.get(e)||null}checkWrite(e,t,n){let r=g(e);if(!r)throw v(`bad-path`,`invalid path: `+e);for(let e of d)if(r.startsWith(e))throw v(`derived-readonly`,r+` is derived area`);if(this.mode===`draining`)throw v(`draining`,`writer is handing over`);let i=this.curOf(r);if(t===null&&i)throw v(`cas-mismatch`,r+` already exists`);if(typeof t==`number`&&(!i||i.rev!==t))throw v(`cas-mismatch`,r+` rev=`+(i?i.rev:`none`)+` ifMatch=`+t);return r}async rotateIfNeeded(){this.walOffset<=c||await this.compactNow()}async newSegment(e){let t=`wal.`+e,n=await this.root.getFileHandle(t+`.tmp`,{create:!0}),r=await n.createSyncAccessHandle();if(r.flush(),r.close(),n.move)await n.move(t);else{await this.root.getFileHandle(t,{create:!0});try{await this.root.removeEntry(t+`.tmp`)}catch{}}this.walHandle=await(await this.root.getFileHandle(t)).createSyncAccessHandle(),this.walOffset=0}flushWindow(){if(this.flushTimer&&=(clearTimeout(this.flushTimer),null),!this.windowOps.length)return;this.walHandle.flush(),this.walGen=this.appendedGen;let e={};for(let[t,n]of this.staged)n===null?this.mirror.delete(t):this.mirror.set(t,n),e[t]=n;this.staged.clear(),this.memGen=this.walGen,this.pushDiff(e,this.memGen);let t=[],n=`human`;for(let e of this.windowOps)this.ackGen=Math.max(this.ackGen,e.gen),e.opId&&this.rememberOpId(e.opId,{gen:e.gen}),e.respond({ok:!0,result:{gen:e.gen,rev:e.gen,...e.extra}}),e.path&&t.push(e.path),e.actor===`agent`&&(n=`agent`);this.windowOps=[],this.event({evt:`fs-change`,gen:this.memGen,actor:n,...t.length<=32?{paths:t}:{count:t.length}}),this.bc.postMessage({type:`fs-change`,gen:this.memGen})}rememberOpId(e,t){this.opIds.set(e,t),this.opIds.size>1024&&this.opIds.delete(this.opIds.keys().next().value)}scheduleFlush(e){if(e){this.flushWindow();return}this.flushTimer||=setTimeout(()=>this.enqueue(()=>this.flushWindow()),50)}async opWrite({path:t,content:n,ifMatch:r,actor:i=`human`,turnId:o,agentToken:s,opId:c},l){if(typeof n!=`string`)throw v(`bad-args`,`content must be string`);await this.rotateIfNeeded();let u=e.encode(n).length<=4096?{inline:n}:{h:await this.ensureBlob(n)},d=g(t),f={opId:c,path:d,actor:i,turnId:o,ifMatch:r,payload:u},p;p=this.appendSync(a.WRITE,f,()=>(this.checkTurn(i,o,s),this.checkWrite(t,r,i))),this.staged.set(d,{content:n,rev:p}),this.windowOps.push({respond:l,gen:p,path:d,actor:i,opId:c}),this.scheduleFlush(i===`agent`)}async opEdit({path:e,old:t,next:n,ifMatch:r,actor:i=`human`,turnId:a,agentToken:o,opId:s},c){let l=g(e),u=l&&this.curOf(l);if(!u)throw v(`not-found`,String(e));let d=u.content.indexOf(t);if(d===-1)throw v(`edit-no-match`,`old string not found in `+l);if(u.content.indexOf(t,d+1)!==-1)throw v(`edit-ambiguous`,`old string not unique in `+l);let f=u.content.slice(0,d)+n+u.content.slice(d+t.length);return this.opWrite({path:e,content:f,ifMatch:r===void 0?u.rev:r,actor:i,turnId:a,agentToken:o,opId:s},c)}async opRm({path:e,actor:t=`human`,turnId:n,agentToken:r,opId:i},o){await this.rotateIfNeeded();let s;s=this.appendSync(a.RM,{opId:i,path:g(e),actor:t,turnId:n},()=>{this.checkTurn(t,n,r);let i=this.checkWrite(e,void 0,t);if(!this.curOf(i))throw v(`not-found`,i)}),this.staged.set(g(e),null),this.windowOps.push({respond:o,gen:s,path:g(e),actor:t,opId:i}),this.scheduleFlush(!0)}async opMv({from:e,to:t,actor:n=`human`,turnId:r,agentToken:i,opId:o},s){await this.rotateIfNeeded();let c=g(e),l=g(t),u;u=this.appendSync(a.MV,{opId:o,from:c,to:l,actor:n,turnId:r},()=>{if(this.checkTurn(n,r,i),this.checkWrite(e,void 0,n),this.checkWrite(t,void 0,n),!this.curOf(c))throw v(`not-found`,c);if(this.curOf(l))throw v(`cas-mismatch`,l+` exists`)});let d=this.curOf(c);this.staged.set(c,null),this.staged.set(l,{content:d.content,rev:u}),this.windowOps.push({respond:s,gen:u,path:l,actor:n,opId:o}),this.scheduleFlush(!0)}async makeCheckpoint({opId:e,actor:t,turnId:n}){this.flushWindow(),await this.rotateIfNeeded();let r={};for(let[e,t]of this.mirror)r[e]=await this.ensureBlob(t.content);let i=await this.ensureBlob(JSON.stringify(r)),o=`cp-`+(this.appendedGen+1),s=this.appendSync(a.CHECKPOINT,{opId:e,cpId:o,h:i,actor:t,turnId:n},()=>{if(this.mode===`draining`)throw v(`draining`,`handing over`)});return this.checkpoints.set(o,{h:i,gen:s}),this.trimCheckpoints(),{cpId:o,gen:s}}trimCheckpoints(){for(;this.checkpoints.size>20;)this.checkpoints.delete(this.checkpoints.keys().next().value)}async opCheckpoint({actor:e=`human`,turnId:t,agentToken:n,opId:r},i){this.checkTurn(e,t,n);let{cpId:a,gen:o}=await this.makeCheckpoint({opId:r,actor:e,turnId:t});this.windowOps.push({respond:i,gen:o,actor:e,opId:r,extra:{cpId:a}}),this.scheduleFlush(!0)}async opTurnBegin({turnId:e,ttlMs:t,opId:n},r){if(!e||typeof e!=`string`)throw v(`bad-args`,`turnId required`);if(this.turn&&Date.now()<=this.turn.expiresAt)throw v(`turn-active`,`a turn is already active: `+this.turn.turnId);let{cpId:i,gen:a}=await this.makeCheckpoint({opId:n,actor:`agent`,turnId:e}),o=Date.now()+(t||12e4);this.turn={turnId:e,cpId:i,expiresAt:o,ops:0},this.windowOps.push({respond:r,gen:a,actor:`agent`,opId:n,extra:{turnId:e,cpId:i,expiresAt:o}}),this.scheduleFlush(!0)}opTurnEnd({turnId:e},t){let n=!!(this.turn&&this.turn.turnId===e),r=n?this.turn.ops:0;n&&(this.turn=null),t({ok:!0,result:{turnId:e,closed:n,ops:r}})}opDiff({turnId:e}){return{turnId:e,changes:this.auditLog.filter(t=>t.turnId===e&&t.opcode!==a.CHECKPOINT).map(e=>({gen:e.gen,op:o[e.opcode],path:e.path,from:e.from,to:e.to})),cpId:this.turn&&this.turn.turnId===e?this.turn.cpId:(this.auditLog.find(t=>t.turnId===e&&t.opcode===a.CHECKPOINT)||{}).cpId,auditWindow:{cap:l,sinceGen:this.auditLog.length?this.auditLog[0].gen:this.memGen}}}async opRestore({cpId:e,baseGen:t,force:n=!1,actor:r=`human`,turnId:i,agentToken:o,opId:s},c){this.flushWindow(),await this.rotateIfNeeded();let l=this.checkpoints.get(e);if(!l)throw v(`not-found`,`checkpoint `+e);let u=typeof t==`number`?t:l.gen,d=JSON.parse(await this.readBlob(l.h)),f={};for(let[e,t]of Object.entries(d))f[e]=await this.readBlob(t);let p=this.appendSync(a.RESTORE,{opId:s,cpId:e,h:l.h,actor:r,turnId:i},()=>{if(this.checkTurn(r,i,o),this.mode===`draining`)throw v(`draining`,`handing over`);n||this.checkRestoreConflict(u)});this.walHandle.flush(),this.walGen=p;let m=new Map;for(let[e,t]of Object.entries(f))m.set(e,{content:t,rev:p});this.mirror=m,this.memGen=this.walGen,this.ackGen=p,s&&this.rememberOpId(s,{gen:p}),this.pushFullToQuery(),c({ok:!0,result:{gen:p,restored:Object.keys(f).length}}),this.event({evt:`fs-change`,gen:p,actor:r,count:Object.keys(f).length,restore:e}),this.bc.postMessage({type:`fs-change`,gen:p})}async opCompact(e,t){t({ok:!0,result:await this.compactNow()})}async compactNow(){this.flushWindow();let t=this.memGen;if(t===this.compactGen)return{gen:t,skipped:!0};let n={};for(let[e,t]of this.mirror)n[e]={h:await this.ensureBlob(t.content),rev:t.rev};let i=Object.fromEntries(this.checkpoints),a=e.encode(JSON.stringify({gen:t,epoch:this.epoch,files:n,checkpoints:i})),o=await this.root.getDirectoryHandle(`manifests`,{create:!0}),s=await(await o.getFileHandle(t+`.json`,{create:!0})).createSyncAccessHandle();s.write(a),s.flush(),s.close();let c=[];for await(let[e]of this.root.entries()){let t=/^wal\.(\d+)$/.exec(e);t&&c.push(+t[1])}this.walHandle.close(),await this.newSegment(t+1),this.lastSegStart=t+1,this.manifestCrc=r(a),this.compactGen=t,this.walStartGen=t+1,this.writeSuperblock();for(let e of c)try{await this.root.removeEntry(`wal.`+e)}catch{}let l=new Set(Object.values(n).map(e=>e.h));for(let e of this.checkpoints.values()){l.add(e.h);try{for(let t of Object.values(JSON.parse(await this.readBlob(e.h))))l.add(t)}catch{}}try{let e=await this.root.getDirectoryHandle(`blobs`);for await(let[t,n]of e.entries())if(n.kind===`directory`){for await(let[e]of n.entries())if(!l.has(e))try{await n.removeEntry(e)}catch{}}}catch{}try{for await(let[e]of o.entries())if(e!==t+`.json`)try{await o.removeEntry(e)}catch{}}catch{}return{gen:t}}opRead({path:e}){let t=g(e),n=t&&this.mirror.get(t);if(!n)throw v(`not-found`,String(e));return{content:n.content,rev:n.rev,gen:this.memGen}}opLs(){return{paths:[...this.mirror.keys()].sort(),gen:this.memGen}}opStatus(){let{mode:e,appendedGen:t,walGen:n,memGen:r,ackGen:i,compactGen:a,epoch:o,walStartGen:s}=this;return{mode:e,appendedGen:t,walGen:n,memGen:r,ackGen:i,compactGen:a,epoch:o,walStartGen:s,checkpoints:[...this.checkpoints.keys()],turn:this.turn?{turnId:this.turn.turnId,cpId:this.turn.cpId,expiresAt:this.turn.expiresAt,ops:this.turn.ops}:null}}pushDiff(e,t){if(!this.queryPort)return;let n={};for(let[t,r]of Object.entries(e))n[t]=r?{content:r.content,rev:r.rev}:null;this.queryPort.postMessage({gen:t,diff:n})}pushFullToQuery(){if(!this.queryPort)return;let e={};for(let[t,n]of this.mirror)e[t]={content:n.content,rev:n.rev};this.queryPort.postMessage({gen:this.memGen,full:!0,files:e})}event(e){this.clientPort&&this.clientPort.postMessage(e)}welcome(){this.event({type:`WELCOME`,epoch:this.epoch,memGen:this.memGen,readonly:this.mode!==`writer`,mode:this.mode})}async onBroadcast(e){e.type===`handover-request`&&this.mode===`writer`&&(this.mode=`draining`,await this.enqueue(async()=>{this.flushWindow(),this.walHandle.close(),this.walHandle=null,this.sbHandle.close(),this.sbHandle=null,this.mode=`readonly`,this.releaseLock&&=(this.releaseLock(),null),this.bc.postMessage({type:`handover-done`,gen:this.memGen}),this.event({evt:`writer-lost`,gen:this.memGen})}))}handleRpc(e){let t=t=>this.clientPort.postMessage({id:e.id,...t}),n=e=>t({ok:!1,code:e.code||`internal`,error:e.message||String(e),...e.extra||{}});if(e.opId&&this.opIds.has(e.opId)){t({ok:!0,result:{...this.opIds.get(e.opId),rev:this.opIds.get(e.opId).gen,idempotent:!0}});return}let r={...e.args,opId:e.opId},i={write:()=>this.opWrite(r,t),edit:()=>this.opEdit(r,t),rm:()=>this.opRm(r,t),mv:()=>this.opMv(r,t),mkdir:()=>{t({ok:!0,result:{gen:this.memGen}})},checkpoint:()=>this.opCheckpoint(r,t),restore:()=>this.opRestore(r,t),compact:()=>this.opCompact(r,t),turnBegin:()=>this.opTurnBegin(r,t),turnEnd:()=>this.opTurnEnd(r,t),diff:()=>t({ok:!0,result:this.opDiff(r)}),read:()=>t({ok:!0,result:this.opRead(r)}),ls:()=>t({ok:!0,result:this.opLs()}),status:()=>t({ok:!0,result:this.opStatus()}),armAgentTokenGate:()=>t({ok:!0,result:this.armAgentToken(r.token)})}[e.op];if(!i){n(v(`bad-op`,String(e.op)));return}if([`write`,`edit`,`rm`,`mv`,`checkpoint`,`restore`,`compact`,`turnBegin`,`turnEnd`].includes(e.op))this.enqueue(async()=>{try{await i()}catch(e){n(e)}});else try{i()}catch(e){n(e)}}};function v(e,t,n){let r=Error(t);return r.code=e,n&&(r.extra=n),r}const y=new _;self.onmessage=async e=>{let t=e.data;if(t.type===`HELLO`){y.clientPort=self,y.queryPort=t.queryPort||null;try{await y.start(t.projectId)}catch(e){self.postMessage({type:`FATAL`,error:String(e&&e.stack||e)})}return}if(t.type===`PING`){self.postMessage({type:`PONG`,t:t.t});return}t.id!==void 0&&y.handleRpc(t)};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e={mirror:new Map,gen:-1,waiters:[]};function t(t){if(t.full){e.mirror.clear();for(let[n,r]of Object.entries(t.files))e.mirror.set(n,r)}else for(let[n,r]of Object.entries(t.diff))r===null?e.mirror.delete(n):e.mirror.set(n,r);e.gen=t.gen,e.waiters=e.waiters.filter(t=>e.gen>=t.gen?(clearTimeout(t.timer),t.resolve(),!1):!0)}function n(t){return t===void 0||e.gen>=t?Promise.resolve():new Promise(n=>{let r={gen:t,resolve:n,timer:setTimeout(()=>{e.waiters=e.waiters.filter(e=>e!==r),n()},5e3)};e.waiters.push(r)})}function r(e){let t=``;for(let n=0;n<e.length;n++){let r=e[n];r===`*`?e[n+1]===`*`?(t+=e[n+2]===`/`?`(?:.*/)?`:`.*`,n+=e[n+2]===`/`?2:1):t+=`[^/]*`:r===`?`?t+=`[^/]`:t+=/[.+^${}()|[\]\\]/.test(r)?`\\`+r:r}return RegExp(`^`+t+`$`)}const i={async snapshot({gen:t}){await n(t);let r={};for(let[t,n]of e.mirror)r[t]=n.content;return{files:r,gen:e.gen,stale:t!==void 0&&e.gen<t}},async read({path:t,gen:r}){await n(r);let i=e.mirror.get(t);if(!i)throw Object.assign(Error(t),{code:`not-found`});return{content:i.content,rev:i.rev,gen:e.gen}},async glob({pattern:t,gen:i}){await n(i);let a=r(t);return{paths:[...e.mirror.keys()].filter(e=>a.test(e)).sort(),gen:e.gen}},async grep({pattern:t,flags:i=``,glob:a,gen:o,limit:s=200}){await n(o);let c=new RegExp(t,i.replace(`g`,``)),l=a?r(a):null,u=[];for(let[t,n]of e.mirror){if(l&&!l.test(t))continue;let r=n.content.split(`
|
|
2
|
+
`);for(let n=0;n<r.length;n++)if(c.test(r[n])&&(u.push({path:t,lineNo:n+1,line:r[n].slice(0,500)}),u.length>=s))return{hits:u,gen:e.gen,truncated:!0}}return{hits:u,gen:e.gen,truncated:!1}}};self.onmessage=async e=>{let n=e.data;if(n.type===`init`){n.corePort.onmessage=e=>t(e.data),self.postMessage({type:`ready`});return}if(n.id!==void 0)try{let e=await i[n.op](n.args||{});self.postMessage({id:n.id,ok:!0,result:e})}catch(e){self.postMessage({id:n.id,ok:!1,code:e.code||`internal`,error:e.message||String(e)})}};
|