@dimina-kit/devtools 0.4.0-dev.20260711062001 → 0.4.0-dev.20260711140249
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/ipc/project-fs.d.ts +2 -2
- package/dist/main/ipc/project-fs.js +1 -1
- package/dist/main/services/workbench-coi-server.js +2 -2
- package/dist/vscode-workbench/assets/__vite-browser-external-BON7qP59.js +1 -0
- package/dist/vscode-workbench/assets/{dist-UYlh9rWP.js → dist-oHcwN53f.js} +3 -3
- package/dist/vscode-workbench/assets/fs-core-worker-urls-DZ1nod84.js +1 -0
- package/dist/vscode-workbench/assets/fs-core.worker-Bnmpp6fo.js +1 -0
- package/dist/vscode-workbench/assets/{iconv-lite-umd-P85lbjJb.js → iconv-lite-umd-CLMLpdGm.js} +1 -1
- package/dist/vscode-workbench/assets/{index-nrKFi46w.js → index-BE3UJdoH.js} +3 -3
- package/dist/vscode-workbench/assets/{jschardet-CLQONAKz.js → jschardet-BICW8PLJ.js} +1 -1
- package/dist/vscode-workbench/index.html +1 -1
- package/package.json +7 -7
- package/dist/vscode-workbench/assets/__vite-browser-external-B1y6A_ue.js +0 -1
- package/dist/vscode-workbench/assets/fs-core-worker-urls-BGhWkdqX.js +0 -1
- package/dist/vscode-workbench/assets/fs-core.worker-Bs1XABE2.js +0 -1
|
@@ -91,7 +91,7 @@ export declare function statWithin(root: string, rel: string): Promise<import('n
|
|
|
91
91
|
* instead of being compared). `size`/`mtimeMs` are omitted (not `null`) when
|
|
92
92
|
* the entry raced a concurrent delete between `readdir` and `stat` — the
|
|
93
93
|
* bridge wire format then drops them too, which the sync engine's watch
|
|
94
|
-
* expansion (dimina-kit
|
|
94
|
+
* expansion (@dimina-kit/fs-core/sync/watch-expander) treats as
|
|
95
95
|
* "always changed" rather than risking a false stat match.
|
|
96
96
|
*/
|
|
97
97
|
export interface ReaddirStatEntry {
|
|
@@ -103,7 +103,7 @@ export interface ReaddirStatEntry {
|
|
|
103
103
|
/**
|
|
104
104
|
* Realpath-contained `fs.readdir` twin (see {@link statWithin}) that also
|
|
105
105
|
* `fs.stat`s every FILE entry (size + mtimeMs) — the disk-side half of the
|
|
106
|
-
* sync engine's stat-diffing (see
|
|
106
|
+
* sync engine's stat-diffing (see @dimina-kit/fs-core/sync/watch-expander's module doc):
|
|
107
107
|
* a watch-reported directory is only worth a full content re-read when a
|
|
108
108
|
* file's stat inside it actually moved, and the `/__fs/readdir` bridge is
|
|
109
109
|
* the one HTTP round trip cheap enough to do that check on every watch
|
|
@@ -329,7 +329,7 @@ export async function statWithin(root, rel) {
|
|
|
329
329
|
/**
|
|
330
330
|
* Realpath-contained `fs.readdir` twin (see {@link statWithin}) that also
|
|
331
331
|
* `fs.stat`s every FILE entry (size + mtimeMs) — the disk-side half of the
|
|
332
|
-
* sync engine's stat-diffing (see
|
|
332
|
+
* sync engine's stat-diffing (see @dimina-kit/fs-core/sync/watch-expander's module doc):
|
|
333
333
|
* a watch-reported directory is only worth a full content re-read when a
|
|
334
334
|
* file's stat inside it actually moved, and the `/__fs/readdir` bridge is
|
|
335
335
|
* the one HTTP round trip cheap enough to do that check on every watch
|
|
@@ -208,8 +208,8 @@ async function fsReaddir(ctx) {
|
|
|
208
208
|
// editor memfs and the OPFS ledger. Same-named FILES stay visible.
|
|
209
209
|
const visible = entries.filter((e) => !(e.isDirectory && SKIP_DIRS.has(e.name)));
|
|
210
210
|
// Wire shape: `[name, type]` for a directory, `[name, type, size, mtimeMs]`
|
|
211
|
-
// for a file — the sync engine's watch-batch stat-diffing
|
|
212
|
-
//
|
|
211
|
+
// for a file — the sync engine's watch-batch stat-diffing
|
|
212
|
+
// (@dimina-kit/fs-core/sync/watch-expander) needs size+mtimeMs to tell a stat-unchanged
|
|
213
213
|
// survivor from an actually-modified file without re-reading its content.
|
|
214
214
|
// `size`/`mtimeMs` are simply absent (not `null`) for a stat-less entry
|
|
215
215
|
// (readdirWithin's readdir/stat race) — the client side then always
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./index-BE3UJdoH.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-nrKFi46w.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-B1y6A_ue.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-BON7qP59.js","./index-BE3UJdoH.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e,t}from"./index-BE3UJdoH.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-BON7qP59.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-Bnmpp6fo.js`,import.meta.url).href,t=``+new URL(`fs-query.worker-cZ-7Fjch.js`,import.meta.url).href;export{e as coreWorkerUrl,t as queryWorkerUrl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var 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(``)}var a=1146569521,o=64;function s(e){let t=new ArrayBuffer(o),n=new DataView(t);return n.setUint32(0,a),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 c(e){if(e.length<o)return null;let t=new DataView(e.buffer,e.byteOffset,o);return t.getUint32(60)!==r(e,0,60)||t.getUint32(0)!==a?null:{epoch:t.getUint32(4),compactGen:t.getFloat64(8),walStartGen:t.getFloat64(16),manifestCrc:t.getUint32(24)}}function l(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 u(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}}var d=[`node_modules/`,`.checkpoints/`];function f(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 p={WRITE:1,RM:2,MV:3,MKDIR:4,CHECKPOINT:5,RESTORE:6},m={1:`write`,2:`rm`,3:`mv`,4:`mkdir`,5:`checkpoint`,6:`restore`},h=new Set([p.WRITE,p.RM,p.MV,p.RESTORE]),ee=50,g=4*1024*1024,_=1024,te=12e4,v=1e3,y=4096,ne=20;function b(e,t,n){let r=Error(t);return r.code=e,n&&(r.extra=n),r}function x(e){return e.length?e[e.length-1].epoch:0}function S(e){return e.writerLockQueued=!0,new Promise((t,n)=>{navigator.locks.request(`dwc:writer:`+e.projectId,{mode:`exclusive`},n=>(e.writerLockQueued=!1,e.writerLockHeld=!0,t(n),new Promise(t=>{e.releaseLock=t}))).catch(t=>{e.writerLockQueued=!1,n(t instanceof Error?t:Error(String(t)))})})}function C(e){try{e.sbHandle?.close()}catch{}try{e.walHandle?.close()}catch{}e.sbHandle=null,e.walHandle=null,e.releaseLock&&=(e.releaseLock(),null),e.writerLockHeld=!1,e.mode=`dead`}function w(e,t){t.then(async t=>{if(!(!t||e.mode===`dead`))try{await e.enqueue(async()=>{await e.becomeWriter()})}catch(t){C(e),e.event({type:`FATAL`,error:`writer upgrade failed: `+String(t)})}},t=>{e.mode=`dead`,e.event({type:`FATAL`,error:`writer lock arbitration failed: `+String(t)})})}async function T(e,t){e.projectId=t,e.root=await(await navigator.storage.getDirectory()).getDirectoryHandle(t,{create:!0}),e.bc=new BroadcastChannel(`dwc:`+t),e.bc.onmessage=t=>e.onBroadcast(t.data);let n=S(e);if(await Promise.race([n,new Promise(e=>setTimeout(()=>e(`timeout`),3e3))])===`timeout`){await e.recover(),e.mode=`readonly`,e.pushFullToQuery(),e.welcome(),w(e,n);return}try{await e.becomeWriter()}catch(t){throw C(e),t}e.welcome()}function E(e){if(e.mode===`writer`)return{mode:`writer`};if(e.mode===`draining`)throw b(`draining`,`writer is handing over`);return e.mode===`readonly`?e.handoverRequested||e.writerLockHeld?{requested:!0}:(e.handoverRequested=!0,e.writerLockQueued||w(e,S(e)),e.bc.postMessage({type:`handover-request`}),{requested:!0}):{mode:e.mode}}async function D(e){e.handoverRequested=!1,await e.recover(),e.sbHandle=await(await e.root.getFileHandle(`superblock`,{create:!0})).createSyncAccessHandle(),e.epoch+=1,e.writeSuperblock();let t=`wal.`+e.lastSegStart;e.walHandle=await(await e.root.getFileHandle(t,{create:!0})).createSyncAccessHandle(),e.walOffset=e.lastSegValidEnd,e.mode=`writer`,e.pushFullToQuery(),e.event({evt:`writer-granted`,gen:e.memGen}),e.walOffset>g&&e.enqueue(()=>e.compactNow())}function O(e){let t=1-e.currentSlot,n=s({epoch:e.epoch,compactGen:e.compactGen,walStartGen:e.walStartGen,manifestCrc:e.manifestCrc||0}),r=e.sbHandle.write(n,{at:t*o});if(r!==o)throw Error(`superblock partial write: `+r);e.sbHandle.flush(),e.currentSlot=t}async function k(e){let t=null;try{let n=await(await e.root.getFileHandle(`superblock`)).getFile(),r=new Uint8Array(await n.arrayBuffer()),i=c(r.subarray(0,o)),a=r.length>=128?c(r.subarray(o,2*o)):null;i&&a?(t=a.compactGen>i.compactGen||a.compactGen===i.compactGen&&a.epoch>=i.epoch?a:i,e.currentSlot=+(t===a)):i?(t=i,e.currentSlot=0):a&&(t=a,e.currentSlot=1)}catch{}return t||(t={epoch:0,compactGen:0,walStartGen:1,manifestCrc:0},e.currentSlot=1),t}async function A(e,n){if(n<=0)return 0;let i=await(await(await e.root.getDirectoryHandle(`manifests`)).getFileHandle(n+`.json`)).getFile(),a=new Uint8Array(await i.arrayBuffer());if(r(a)!==e.manifestCrc)throw Error(`manifest CRC mismatch (gen `+n+`)`);let o=JSON.parse(t.decode(a));for(let[t,n]of Object.entries(o.files))e.mirror.set(t,{content:await e.readBlob(n.h),rev:n.rev});for(let[t,n]of Object.entries(o.checkpoints||{}))e.checkpoints.set(t,n);return o.gen}async function j(e){let t=[];for await(let[n]of e.root.entries()){let r=/^wal\.(\d+)$/.exec(n);r&&+r[1]>=e.walStartGen&&t.push(+r[1])}return t.sort((e,t)=>e-t),t}function M(e,t,n,r){return!e||e.rec.gen!==t+1||e.rec.gen>=n||e.rec.epoch<x(r)}async function N(e,t,n,r,i,a){let o=await(await e.root.getFileHandle(`wal.`+t)).getFile(),s=new Uint8Array(await o.arrayBuffer()),c=0;for(;c<s.length;){let t=u(s,c);if(M(t,r,n,i))break;await e.applyRecord(t.rec),r=t.rec.gen,i.push(t.rec);let o=t.rec.meta;e.audit({gen:r,opcode:t.rec.opcode,actor:o.actor,turnId:o.turnId,path:o.path,from:o.from,to:o.to,cpId:o.cpId}),c=t.next,a&&(e.lastSegValidEnd=c)}return r}async function P(e,t,n){let r=n,i=[];for(let n=0;n<t.length;n++){let a=n+1<t.length?t[n+1]:1/0;r=await N(e,t[n],a,r,i,t[n]===e.lastSegStart)}return{finalGen:r,replayed:i}}async function F(e){e.mirror.clear(),e.checkpoints.clear(),e.opIds.clear(),e.auditLog=[],e.turn=null;let t=await k(e);e.epoch=t.epoch,e.compactGen=t.compactGen,e.walStartGen=t.walStartGen,e.manifestCrc=t.manifestCrc;let n=await A(e,e.compactGen),r=await j(e);e.lastSegStart=r.length?r[r.length-1]:e.walStartGen,e.lastSegValidEnd=0;let{finalGen:i,replayed:a}=await P(e,r,n);n=i,e.appendedGen=e.walGen=e.memGen=e.ackGen=n,e.trimCheckpoints();for(let t of a.slice(-_))t.meta.opId&&e.rememberOpId(t.meta.opId,{gen:t.gen});r.length||await e.root.getFileHandle(`wal.`+e.walStartGen,{create:!0})}async function I(e,t){let n=t.meta;switch(t.opcode){case p.WRITE:{let r=n.payload?.inline===void 0?await e.readBlob(n.payload.h):n.payload.inline;e.mirror.set(n.path,{content:r,rev:t.gen});break}case p.RM:e.mirror.delete(n.path);break;case p.MV:{let r=e.mirror.get(n.from);r&&(e.mirror.delete(n.from),e.mirror.set(n.to,{content:r.content,rev:t.gen}));break}case p.MKDIR:break;case p.CHECKPOINT:e.checkpoints.set(n.cpId,{h:n.h,gen:t.gen});break;case p.RESTORE:{let r=JSON.parse(await e.readBlob(n.h)),i=new Map;for(let[n,a]of Object.entries(r))i.set(n,{content:await e.readBlob(a),rev:t.gen});e.mirror=i;break}}}async function L(t,n){let r=e.encode(n),a=await i(r),o=await(await t.root.getDirectoryHandle(`blobs`,{create:!0})).getDirectoryHandle(a.slice(0,2),{create:!0});try{return await o.getFileHandle(a),a}catch{}let s=await(await o.getFileHandle(a,{create:!0})).createSyncAccessHandle();return s.write(r),s.flush(),s.close(),a}async function R(e,t){return(await(await(await(await e.root.getDirectoryHandle(`blobs`)).getDirectoryHandle(t.slice(0,2))).getFileHandle(t)).getFile()).text()}function z(e,{path:t}){let n=f(t),r=n&&e.mirror.get(n);if(!r)throw b(`not-found`,String(t));return{content:r.content,rev:r.rev,gen:e.memGen}}function B(e){return{paths:[...e.mirror.keys()].sort(),gen:e.memGen}}function V(e){let{mode:t,appendedGen:n,walGen:r,memGen:i,ackGen:a,compactGen:o,epoch:s,walStartGen:c}=e;return{mode:t,appendedGen:n,walGen:r,memGen:i,ackGen:a,compactGen:o,epoch:s,walStartGen:c,checkpoints:[...e.checkpoints.keys()],turn:e.turn?{turnId:e.turn.turnId,cpId:e.turn.cpId,expiresAt:e.turn.expiresAt,ops:e.turn.ops}:null}}function H(e,t,n){if(!e.queryPort)return;let r={};for(let[e,n]of Object.entries(t))r[e]=n?{content:n.content,rev:n.rev}:null;e.queryPort.postMessage({gen:n,diff:r})}function U(e){if(!e.queryPort)return;let t={};for(let[n,r]of e.mirror)t[n]={content:r.content,rev:r.rev};e.queryPort.postMessage({gen:e.memGen,full:!0,files:t})}function W(e,t){e.clientPort&&e.clientPort.postMessage(t)}function G(e){e.event({type:`WELCOME`,epoch:e.epoch,memGen:e.memGen,readonly:e.mode!==`writer`,mode:e.mode})}async function K(e,t){if(t.type===`handover-done`&&e.mode!==`writer`){e.handoverRequested=!1;return}t.type===`handover-request`&&e.mode===`writer`&&(e.mode=`draining`,await e.enqueue(async()=>{e.flushWindow(),e.walHandle.close(),e.walHandle=null,e.sbHandle.close(),e.sbHandle=null,e.mode=`readonly`,e.releaseLock&&=(e.releaseLock(),null),e.writerLockHeld=!1,e.bc.postMessage({type:`handover-done`,gen:e.memGen}),e.event({evt:`writer-lost`,gen:e.memGen})}))}function q(e,t){let n=e.chain.then(t);return e.chain=n.catch(()=>{}),n}function J(e,t,n,r){if(e.mode!==`writer`)throw b(`readonly`,`fs-core is `+e.mode);if(r&&r(),e.walOffset>g)throw b(`rotate-needed`,`internal`);let i=e.appendedGen+1,a=l(i,e.epoch,t,n);if(e.walHandle.write(a,{at:e.walOffset})!==a.length)throw Error(`WAL partial write`);return e.walOffset+=a.length,e.appendedGen=i,e.audit({gen:i,opcode:t,actor:n.actor,turnId:n.turnId,path:n.path,from:n.from,to:n.to,cpId:n.cpId}),i}function Y(e,t){e.auditLog.push(t),e.auditLog.length>y&&e.auditLog.splice(0,e.auditLog.length-y)}function X(e,t,n,r){if(t!==`agent`)return;let i=e.turn;if(!i||i.turnId!==n)throw b(`turn-closed`,`agent write requires an active turn (got `+n+`)`);if(Date.now()>i.expiresAt)throw e.turn=null,b(`turn-closed`,`turn expired: `+n);if(e.agentToken!==null&&r!==e.agentToken)throw b(`agent-token-required`,`agent write requires a valid agent token`);if(++i.ops>v)throw b(`turn-quota`,`per-turn op quota exceeded (`+v+`)`)}function Z(e,t){if(typeof t!=`string`||!t)throw b(`bad-args`,`agent token must be a non-empty string`);if(e.agentToken===null)return e.agentToken=t,{armed:!0};if(e.agentToken===t)return{armed:!0,idempotent:!0};throw b(`agent-token-gate-armed`,`agent token gate already armed with a different token`)}function re(e,t){if((e.auditLog.length?e.auditLog[0].gen:e.appendedGen+1)>t+1)throw b(`restore-conflict`,`audit log does not cover baseGen `+t,{humanPaths:[],auditGap:!0});let n=[],r=new Set;for(let i of e.auditLog){if(i.gen<=t||i.actor!==`human`||!h.has(i.opcode))continue;let e=i.opcode===p.MV?i.to||i.from:i.opcode===p.RESTORE?`(restore:`+i.cpId+`)`:i.path;e&&!r.has(e)&&(r.add(e),n.push(e))}if(n.length)throw b(`restore-conflict`,`human edits since baseGen `+t,{humanPaths:n})}function ie(e,t){return e.staged.has(t)?e.staged.get(t)??null:e.mirror.get(t)||null}function ae(e,t,n,r){let i=f(t);if(!i)throw b(`bad-path`,`invalid path: `+t);for(let e of d)if(i.startsWith(e))throw b(`derived-readonly`,i+` is derived area`);if(e.mode===`draining`)throw b(`draining`,`writer is handing over`);let a=e.curOf(i);if(n===null&&a)throw b(`cas-mismatch`,i+` already exists`);if(typeof n==`number`&&(!a||a.rev!==n))throw b(`cas-mismatch`,i+` rev=`+(a?a.rev:`none`)+` ifMatch=`+n);return i}async function oe(e){e.walOffset<=g||await e.compactNow()}async function se(e,t){let n=`wal.`+t,r=await e.root.getFileHandle(n+`.tmp`,{create:!0}),i=await r.createSyncAccessHandle();if(i.flush(),i.close(),r.move)await r.move(n);else{await e.root.getFileHandle(n,{create:!0});try{await e.root.removeEntry(n+`.tmp`)}catch{}}e.walHandle=await(await e.root.getFileHandle(n)).createSyncAccessHandle(),e.walOffset=0}function ce(e){if(e.flushTimer&&=(clearTimeout(e.flushTimer),null),!e.windowOps.length)return;e.walHandle.flush(),e.walGen=e.appendedGen;let t={};for(let[n,r]of e.staged)r===null?e.mirror.delete(n):e.mirror.set(n,r),t[n]=r;e.staged.clear(),e.memGen=e.walGen,e.pushDiff(t,e.memGen);let n=[],r=`human`;for(let t of e.windowOps)e.ackGen=Math.max(e.ackGen,t.gen),t.opId&&e.rememberOpId(t.opId,{gen:t.gen,rev:t.gen,...t.extra}),t.respond({ok:!0,result:{gen:t.gen,rev:t.gen,...t.extra}}),t.path&&n.push(t.path),t.actor===`agent`&&(r=`agent`);e.windowOps=[],e.event({evt:`fs-change`,gen:e.memGen,actor:r,...n.length<=32?{paths:n}:{count:n.length}}),e.bc.postMessage({type:`fs-change`,gen:e.memGen})}function le(e,t,n){e.opIds.set(t,n),e.opIds.size>_&&e.opIds.delete(e.opIds.keys().next().value)}function ue(e,t){if(t){e.flushWindow();return}e.flushTimer||=setTimeout(()=>e.enqueue(()=>e.flushWindow()),ee)}async function de(t,{path:n,content:r,ifMatch:i,actor:a=`human`,turnId:o,agentToken:s,opId:c},l){if(typeof r!=`string`)throw b(`bad-args`,`content must be string`);await t.rotateIfNeeded();let u=e.encode(r).length<=4096?{inline:r}:{h:await t.ensureBlob(r)},d=f(n),m={opId:c,path:d,actor:a,turnId:o,ifMatch:i,payload:u},h=t.appendSync(p.WRITE,m,()=>{t.checkTurn(a,o,s),t.checkWrite(n,i,a)});t.staged.set(d,{content:r,rev:h}),t.windowOps.push({respond:l,gen:h,path:d,actor:a,opId:c}),t.scheduleFlush(a===`agent`)}async function fe(e,{path:t,old:n,next:r,ifMatch:i,actor:a=`human`,turnId:o,agentToken:s,opId:c},l){let u=f(t),d=u&&e.curOf(u);if(!d)throw b(`not-found`,String(t));let p=d.content.indexOf(n);if(p===-1)throw b(`edit-no-match`,`old string not found in `+u);if(d.content.indexOf(n,p+1)!==-1)throw b(`edit-ambiguous`,`old string not unique in `+u);let m=d.content.slice(0,p)+r+d.content.slice(p+n.length);return e.opWrite({path:t,content:m,ifMatch:i===void 0?d.rev:i,actor:a,turnId:o,agentToken:s,opId:c},l)}async function pe(e,{path:t,actor:n=`human`,turnId:r,agentToken:i,opId:a},o){await e.rotateIfNeeded();let s=e.appendSync(p.RM,{opId:a,path:f(t),actor:n,turnId:r},()=>{e.checkTurn(n,r,i);let a=e.checkWrite(t,void 0,n);if(!e.curOf(a))throw b(`not-found`,a)});e.staged.set(f(t),null),e.windowOps.push({respond:o,gen:s,path:f(t),actor:n,opId:a}),e.scheduleFlush(!0)}async function me(e,{from:t,to:n,actor:r=`human`,turnId:i,agentToken:a,opId:o},s){await e.rotateIfNeeded();let c=f(t),l=f(n),u=e.appendSync(p.MV,{opId:o,from:c,to:l,actor:r,turnId:i},()=>{if(e.checkTurn(r,i,a),e.checkWrite(t,void 0,r),e.checkWrite(n,void 0,r),!e.curOf(c))throw b(`not-found`,c);if(e.curOf(l))throw b(`cas-mismatch`,l+` exists`)}),d=e.curOf(c);e.staged.set(c,null),e.staged.set(l,{content:d.content,rev:u}),e.windowOps.push({respond:s,gen:u,path:l,actor:r,opId:o}),e.scheduleFlush(!0)}async function he(e,{opId:t,actor:n,turnId:r}){e.flushWindow(),await e.rotateIfNeeded();let i={};for(let[t,n]of e.mirror)i[t]=await e.ensureBlob(n.content);let a=await e.ensureBlob(JSON.stringify(i)),o=`cp-`+(e.appendedGen+1),s=e.appendSync(p.CHECKPOINT,{opId:t,cpId:o,h:a,actor:n,turnId:r},()=>{if(e.mode===`draining`)throw b(`draining`,`handing over`)});return e.checkpoints.set(o,{h:a,gen:s}),e.trimCheckpoints(),{cpId:o,gen:s}}function ge(e){for(;e.checkpoints.size>ne;)e.checkpoints.delete(e.checkpoints.keys().next().value)}async function _e(e,{actor:t=`human`,turnId:n,agentToken:r,opId:i},a){e.checkTurn(t,n,r);let{cpId:o,gen:s}=await e.makeCheckpoint({opId:i,actor:t,turnId:n});e.windowOps.push({respond:a,gen:s,actor:t,opId:i,extra:{cpId:o}}),e.scheduleFlush(!0)}async function ve(e,{turnId:t,ttlMs:n,opId:r},i){if(!t||typeof t!=`string`)throw b(`bad-args`,`turnId required`);if(e.turn&&Date.now()<=e.turn.expiresAt)throw b(`turn-active`,`a turn is already active: `+e.turn.turnId);let{cpId:a,gen:o}=await e.makeCheckpoint({opId:r,actor:`agent`,turnId:t}),s=Date.now()+(n||te);e.turn={turnId:t,cpId:a,expiresAt:s,ops:0},e.windowOps.push({respond:i,gen:o,actor:`agent`,opId:r,extra:{turnId:t,cpId:a,expiresAt:s}}),e.scheduleFlush(!0)}function ye(e,{turnId:t},n){let r=!!(e.turn&&e.turn.turnId===t),i=r?e.turn.ops:0;r&&(e.turn=null),n({ok:!0,result:{turnId:t,closed:r,ops:i}})}function be(e,{turnId:t}){return{turnId:t,changes:e.auditLog.filter(e=>e.turnId===t&&e.opcode!==p.CHECKPOINT).map(e=>({gen:e.gen,op:m[e.opcode],path:e.path,from:e.from,to:e.to})),cpId:e.turn&&e.turn.turnId===t?e.turn.cpId:(e.auditLog.find(e=>e.turnId===t&&e.opcode===p.CHECKPOINT)||{}).cpId,auditWindow:{cap:y,sinceGen:e.auditLog.length?e.auditLog[0].gen:e.memGen}}}async function xe(e,{cpId:t,baseGen:n,force:r=!1,actor:i=`human`,turnId:a,agentToken:o,opId:s},c){e.flushWindow(),await e.rotateIfNeeded();let l=e.checkpoints.get(t);if(!l)throw b(`not-found`,`checkpoint `+t);let u=typeof n==`number`?n:l.gen,d=JSON.parse(await e.readBlob(l.h)),f={};for(let[t,n]of Object.entries(d))f[t]=await e.readBlob(n);let m=e.appendSync(p.RESTORE,{opId:s,cpId:t,h:l.h,actor:i,turnId:a},()=>{if(e.checkTurn(i,a,o),e.mode===`draining`)throw b(`draining`,`handing over`);r||e.checkRestoreConflict(u)});e.walHandle.flush(),e.walGen=m;let h=new Map;for(let[e,t]of Object.entries(f))h.set(e,{content:t,rev:m});e.mirror=h,e.memGen=e.walGen,e.ackGen=m,s&&e.rememberOpId(s,{gen:m,restored:Object.keys(f).length}),e.pushFullToQuery(),c({ok:!0,result:{gen:m,restored:Object.keys(f).length}}),e.event({evt:`fs-change`,gen:m,actor:i,count:Object.keys(f).length,restore:t}),e.bc.postMessage({type:`fs-change`,gen:m})}async function Q(e,t,n){n({ok:!0,result:await e.compactNow()})}async function Se(e){let t={};for(let[n,r]of e.mirror)t[n]={h:await e.ensureBlob(r.content),rev:r.rev};return t}async function Ce(e,t,n){let r=await e.root.getDirectoryHandle(`manifests`,{create:!0}),i=await(await r.getFileHandle(t+`.json`,{create:!0})).createSyncAccessHandle();return i.write(n),i.flush(),i.close(),r}async function we(e){let t=[];for await(let[n]of e.root.entries()){let e=/^wal\.(\d+)$/.exec(n);e&&t.push(+e[1])}return t}async function Te(e,t){for(let n of t)try{await e.root.removeEntry(`wal.`+n)}catch{}}async function Ee(e,t){let n=new Set(Object.values(t).map(e=>e.h));for(let t of e.checkpoints.values()){n.add(t.h);try{for(let r of Object.values(JSON.parse(await e.readBlob(t.h))))n.add(r)}catch{}}return n}async function De(e,t){try{let n=await e.root.getDirectoryHandle(`blobs`);for await(let[e,r]of n.entries())if(r.kind===`directory`){for await(let[e]of r.entries())if(!t.has(e))try{await r.removeEntry(e)}catch{}}}catch{}}async function Oe(e,t,n){try{for await(let[e]of t.entries())if(e!==n)try{await t.removeEntry(e)}catch{}}catch{}}async function ke(t){t.flushWindow();let n=t.memGen;if(n===t.compactGen)return{gen:n,skipped:!0};let i=await Se(t),a=Object.fromEntries(t.checkpoints),o=e.encode(JSON.stringify({gen:n,epoch:t.epoch,files:i,checkpoints:a})),s=await Ce(t,n,o),c=await we(t);return t.walHandle.close(),await t.newSegment(n+1),t.lastSegStart=n+1,t.manifestCrc=r(o),t.compactGen=n,t.walStartGen=n+1,t.writeSuperblock(),await Te(t,c),await De(t,await Ee(t,i)),await Oe(t,s,n+`.json`),{gen:n}}var $=new class{mode=`starting`;mirror=new Map;checkpoints=new Map;opIds=new Map;appendedGen=0;walGen=0;memGen=0;ackGen=0;compactGen=0;epoch=0;walStartGen=1;staged=new Map;windowOps=[];flushTimer=null;chain=Promise.resolve();clientPort=null;queryPort=null;releaseLock=null;walHandle=null;walOffset=0;sbHandle=null;currentSlot=0;turn=null;auditLog=[];agentToken=null;projectId;root;bc;lastSegStart;lastSegValidEnd;manifestCrc;writerLockQueued=!1;writerLockHeld=!1;handoverRequested=!1;start(e){return T(this,e)}becomeWriter(){return D(this)}writeSuperblock(){O(this)}recover(){return F(this)}applyRecord(e){return I(this,e)}epochFloor(e){return x(e)}ensureBlob(e){return L(this,e)}readBlob(e){return R(this,e)}opRead(e){return z(this,e)}opLs(){return B(this)}opStatus(){return V(this)}pushDiff(e,t){H(this,e,t)}pushFullToQuery(){U(this)}event(e){W(this,e)}welcome(){G(this)}onBroadcast(e){return K(this,e)}requestHandover(){return E(this)}enqueue(e){return q(this,e)}appendSync(e,t,n){return J(this,e,t,n)}audit(e){Y(this,e)}checkTurn(e,t,n){X(this,e,t,n)}armAgentToken(e){return Z(this,e)}checkRestoreConflict(e){re(this,e)}curOf(e){return ie(this,e)}checkWrite(e,t,n){return ae(this,e,t,n)}rotateIfNeeded(){return oe(this)}newSegment(e){return se(this,e)}flushWindow(){ce(this)}rememberOpId(e,t){le(this,e,t)}scheduleFlush(e){ue(this,e)}opWrite(e,t){return de(this,e,t)}opEdit(e,t){return fe(this,e,t)}opRm(e,t){return pe(this,e,t)}opMv(e,t){return me(this,e,t)}makeCheckpoint(e){return he(this,e)}trimCheckpoints(){ge(this)}opCheckpoint(e,t){return _e(this,e,t)}opTurnBegin(e,t){return ve(this,e,t)}opTurnEnd(e,t){ye(this,e,t)}opDiff(e){return be(this,e)}opRestore(e,t){return xe(this,e,t)}opCompact(e,t){return Q(this,e,t)}compactNow(){return ke(this)}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)){let n=this.opIds.get(e.opId);t({ok:!0,result:{rev:n.gen,...n,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)}),requestHandover:()=>t({ok:!0,result:this.requestHandover()})}[e.op];if(!i){n(b(`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)}}};self.onmessage=async e=>{let t=e.data;if(t.type===`HELLO`){$.clientPort=self,$.queryPort=t.queryPort||null;try{await $.start(t.projectId)}catch(e){let t=e instanceof Error?e.stack:void 0;self.postMessage({type:`FATAL`,error:String(t||e)})}return}if(t.type===`PING`){self.postMessage({type:`PONG`,t:t.t});return}t.id!==void 0&&$.handleRpc(t)};
|