solve-engine 2.38.24 → 2.38.26

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.
@@ -1,3 +1,3 @@
1
- 'use strict';var chunkEFJCC6FJ_cjs=require('./chunk-EFJCC6FJ.cjs'),chunkKR5O4DVG_cjs=require('./chunk-KR5O4DVG.cjs'),chunkCR7IHPA2_cjs=require('./chunk-CR7IHPA2.cjs'),chunkY5ZY6DPX_cjs=require('./chunk-Y5ZY6DPX.cjs'),chunkUURM7P3P_cjs=require('./chunk-UURM7P3P.cjs'),chunk54QMY2VL_cjs=require('./chunk-54QMY2VL.cjs'),chunkNH74IT7B_cjs=require('./chunk-NH74IT7B.cjs'),chunkRIWKV5YZ_cjs=require('./chunk-RIWKV5YZ.cjs'),chunk3MG7VIPL_cjs=require('./chunk-3MG7VIPL.cjs'),chunk6SYU4MH7_cjs=require('./chunk-6SYU4MH7.cjs');var H=class{constructor(){this.root=null;}get length(){return this.root?this.root.size:0}get isEmpty(){return this.root===null}getAt(e){if(!(e<0||e>=(this.root?.size??0)))return this.nodeAt(this.root,e).lineId}insertAt(e,t){let[n,i]=A(this.root,e);this.root=R(R(n,fe(t)),i);}deleteAt(e){if(e<0||e>=(this.root?.size??0))return;let[t,n]=A(this.root,e),[i,r]=A(n,1),s=i?i.lineId:void 0;return this.root=R(t,r),s}spliceAt(e,t,n){let i=Math.max(0,e),r=Math.min(Math.max(0,t),(this.root?.size??0)-i),[s,o]=A(this.root,i),[u,a]=A(o,r),l=ge(u),c=z(n,0,n.length);return this.root=R(R(s,c),a),l}replaceAll(e){this.root=z(e,0,e.length);}getRange(e,t){let n=Math.max(0,e),i=Math.min((this.root?.size??0)-1,t);if(n>i)return [];let r=[];return this.collectRange(this.root,n,i,0,r),r}clear(){this.root=null;}*[Symbol.iterator](){yield*this.inOrder(this.root);}*inOrder(e){e&&(yield*this.inOrder(e.left),yield e.lineId,yield*this.inOrder(e.right));}nodeAt(e,t){let n=e.left?e.left.size:0;return t<n?this.nodeAt(e.left,t):t===n?e:this.nodeAt(e.right,t-n-1)}collectRange(e,t,n,i,r){if(!e)return;let s=e.left?e.left.size:0,o=i+s;o>t&&e.left&&this.collectRange(e.left,t,n,i,r),o>=t&&o<=n&&r.push(e.lineId),o<n&&e.right&&this.collectRange(e.right,t,n,o+1,r);}};function fe(d){return {lineId:d,size:1,priority:Math.random(),left:null,right:null}}function U(d){d.size=1+(d.left?d.left.size:0)+(d.right?d.right.size:0);}function R(d,e){return d?e?d.priority>e.priority?(d.right=R(d.right,e),U(d),d):(e.left=R(d,e.left),U(e),e):d:e}function A(d,e){if(!d)return [null,null];let t=d.left?d.left.size:0;if(e<=t){let[n,i]=A(d.left,e);return d.left=i,U(d),[n,d]}else {let[n,i]=A(d.right,e-t-1);return d.right=n,U(d),[d,i]}}function ge(d){let e=[];return Z(d,e),e}function Z(d,e){d&&(Z(d.left,e),e.push(d.lineId),Z(d.right,e));}function z(d,e,t){if(e>=t)return null;let n=Math.floor((e+t)/2),i=pe(d[n]);return {lineId:d[n],size:t-e,priority:i,left:z(d,e,n),right:z(d,n+1,t)}}function pe(d){let e=d+2654435769|0;return e=Math.imul(e>>>16^e,73244475),e=Math.imul(e>>>16^e,73244475),e=(e>>>16^e)>>>0,e/4294967296}var M=class{constructor(e=chunkRIWKV5YZ_cjs.b.performance.maxDocumentLines){this.lines=new Map;this.orderTree=new H;this.nextLineId=1;this._positionCache=null;this.dirtyLineIds=new Set;this.tagIndex=null;this.maxLines=e;}setDocument(e){if(chunkUURM7P3P_cjs.b(e,this.maxLines)>this.maxLines)throw chunk6SYU4MH7_cjs.c.execution("DOCUMENT_TOO_LARGE",`This document has more than ${this.maxLines.toLocaleString("en-US")} lines, which is the most the engine will hold at once`,{maxLines:this.maxLines});this.lines.clear(),this.orderTree.clear(),this._positionCache=null,this.dirtyLineIds.clear(),this.nextLineId=1,this.tagIndex=null;let n=e.split(`
2
- `),i=new Array(n.length);for(let r=0;r<n.length;r++){let s=this.nextLineId++;i[r]=s,this.lines.set(s,{lineId:s,textHash:chunkEFJCC6FJ_cjs.a(n[r]),text:n[r],expressions:[],bytecodes:[],reads:[],writes:[],results:[],result:null,dirty:true,isVariableDef:false,isEmpty:n[r].trim().length===0,inlineSolveCount:0});}this.orderTree.replaceAll(i);for(let r of i)this.dirtyLineIds.add(r);}applyChanges(e){let t=[],n=[],i=[...e].sort((r,s)=>s.startLine-r.startLine);for(let r of i){let s=r.startLine-1,o=[];for(let a of r.insertLines){let l=this.nextLineId++;o.push(l),t.push(l),this.lines.set(l,{lineId:l,textHash:chunkEFJCC6FJ_cjs.a(a),text:a,expressions:[],bytecodes:[],reads:[],writes:[],results:[],result:null,dirty:true,isVariableDef:false,isEmpty:a.trim().length===0,inlineSolveCount:0});}for(let a of o)this.dirtyLineIds.add(a);if(this.tagIndex!==null)for(let a of o)this.indexTags(a,this.lines.get(a).text);let u=this.orderTree.spliceAt(s,r.deleteCount,o);for(let a of u)n.push(a),this.tagIndex!==null&&this.unindexTags(a,this.lines.get(a)?.text??""),this.lines.delete(a),this.dirtyLineIds.delete(a);}return this._positionCache=null,{inserted:t,removed:n}}insertLines(e,t){let n={startLine:e,deleteCount:0,insertLines:t};return this.applyChanges([n]).inserted}deleteLines(e,t){let n={startLine:e,deleteCount:t-e+1,insertLines:[]};return this.applyChanges([n]).removed}editLine(e,t){let n=this.getLineAt(e);if(!n)return false;let i=chunkEFJCC6FJ_cjs.a(t);return i===n.textHash?false:(this.tagIndex!==null&&(this.unindexTags(n.lineId,n.text),this.indexTags(n.lineId,t)),n.text=t,n.textHash=i,n.expressions=[],n.bytecodes=[],n.results=[],n.result=null,n.inlineSolveCount=0,n.dirty=true,this.dirtyLineIds.add(n.lineId),n.isEmpty=t.trim().length===0,true)}linesCarryingTag(e){let t=this.ensureTagIndex().get(e.toLowerCase());if(t===void 0||t.size===0)return [];let n=[];for(let i of t){let r=this.getLinePosition(i);r>0&&n.push(r);}return n.sort((i,r)=>i-r),n}ensureTagIndex(){if(this.tagIndex!==null)return this.tagIndex;this.tagIndex=new Map;for(let e of this.lines.values())this.indexTags(e.lineId,e.text);return this.tagIndex}indexTags(e,t){if(!(t.indexOf("#")<0))for(let n of chunkY5ZY6DPX_cjs.b(t)){let i=this.tagIndex.get(n);i===void 0?this.tagIndex.set(n,new Set([e])):i.add(e);}}unindexTags(e,t){if(!(t.indexOf("#")<0))for(let n of chunkY5ZY6DPX_cjs.b(t)){let i=this.tagIndex.get(n);i!==void 0&&(i.delete(e),i.size===0&&this.tagIndex.delete(n));}}getLineAt(e){let t=e-1,n=this.orderTree.getAt(t);if(n!==void 0)return this.lines.get(n)}getLinePosition(e){if(this._positionCache)return this._positionCache.get(e)??-1;this._positionCache=new Map;let t=1;for(let n of this.orderTree)this._positionCache.set(n,t++);return this._positionCache.get(e)??-1}getVisibleLines(e,t){let n=this.orderTree.getRange(e-1,t-1),i=[];for(let r of n){let s=this.lines.get(r);s&&i.push(s);}return i}getLineStatesInRange(e,t){let n=this.orderTree.getRange(e-1,t-1),i=new Array(n.length);for(let r=0;r<n.length;r++)i[r]=this.lines.get(n[r]);return i}getAllLines(){return this.getVisibleLines(1,this.lineCount)}getLineById(e){return this.lines.get(e)}getDirtyLines(){let e=[];for(let t of this.lines.values())t.dirty&&e.push(t);return e}hasAnyDirtyLineBefore(e){for(let t of this.dirtyLineIds){let n=this.getLinePosition(t);if(n>=1&&n<e)return true}return false}hasAnyDirtyVariableDefLineBefore(e){for(let t of this.dirtyLineIds){let n=this.lines.get(t);if(!n||!n.isVariableDef)continue;let i=this.getLinePosition(t);if(i>=1&&i<e)return true}return false}get dirtyCount(){return this.dirtyLineIds.size}isBytecodeValid(e,t){let n=this.lines.get(e);return n!==void 0&&n.textHash===t}forgetResult(e){let t=this.lines.get(e);t&&(t.result=null,t.results=[]);}markClean(e){let t=this.lines.get(e);t&&(t.dirty=false,this.dirtyLineIds.delete(e));}markDirtyByLineNumber(e){let t=this.getLineAt(e);t&&(t.dirty=true,this.dirtyLineIds.add(t.lineId));}markDirty(e){let t=this.lines.get(e);t&&(t.dirty=true,this.dirtyLineIds.add(e));}invalidateAll(){for(let e of this.lines.values())e.dirty=true;this.dirtyLineIds=new Set(this.lines.keys());}updateLineResult(e,t,n,i,r,s,o,u=0){let a=this.lines.get(e);a&&(a.results=t,a.result=t[0]?.[0]??null,a.bytecodes=n,a.expressions=i,a.reads=r,a.writes=s,a.isVariableDef=o,a.inlineSolveCount=u,a.dirty=false,this.dirtyLineIds.delete(e));}updateLineCompiled(e,t,n,i,r,s,o=0){let u=this.lines.get(e);u&&(u.expressions=t,u.bytecodes=n,u.reads=i,u.writes=r,u.isVariableDef=s,u.inlineSolveCount=o);}get lineCount(){return this.orderTree.length}get isEmpty(){return this.orderTree.isEmpty}*[Symbol.iterator](){for(let e of this.orderTree){let t=this.lines.get(e);t&&(yield t);}}clear(){this.lines.clear(),this.orderTree.clear(),this._positionCache=null,this.nextLineId=1,this.tagIndex=null;}toJSON(){return {lineCount:this.lineCount,lines:this.getAllLines().map(e=>({lineId:e.lineId,text:e.text.substring(0,80),textHash:e.textHash,dirty:e.dirty,isVariableDef:e.isVariableDef,isEmpty:e.isEmpty,hasBytecode:e.bytecodes.length>0,hasResult:e.results.length>0,inlineSolveCount:e.inlineSolveCount,reads:e.reads,writes:e.writes}))}}};var T=class{constructor(){this.worker=null;this.nextId=1;this.pending=new Map;}ensureWorker(){if(this.worker)return this.worker;let e=chunkKR5O4DVG_cjs.h();if(e===null)throw new Error("no engine worker factory registered, so compilation stays on the main thread");return this.worker=e(),this.worker.onmessage=t=>{let n=t.data;if(!n||n.type!=="COMPILE_RESULT")return;let i=this.pending.get(n.id);if(!i)return;this.pending.delete(n.id);let r=[];for(let s of n.results)r.push(this.reconstructResult(s));i.resolve(r);},this.worker.onerror=t=>{for(let[n,i]of this.pending)i.reject(new Error(`Compilation worker error: ${t.message}`)),this.pending.delete(n);},this.worker}async compileBatch(e){if(e.length===0)return [];let t=this.ensureWorker(),n=this.nextId++;return new Promise((i,r)=>{this.pending.set(n,{resolve:i,reject:r}),t.postMessage({type:"COMPILE_BATCH",id:n,items:e});})}storeResults(e,t){let n=new Map;for(let s of e){if(s.error)continue;let o=t.getLineById(s.lineId);if(!o||o.textHash!==s.compiledAgainstHash)continue;let u=n.get(s.lineId);u||(u={bytecodes:[],reads:new Set,writes:new Set,isVariableDef:false,expressions:o.expressions.length>0?[...o.expressions]:[],textHash:s.compiledAgainstHash},n.set(s.lineId,u)),u.bytecodes.push(s.program);for(let a of s.reads)u.reads.add(a);for(let a of s.writes)u.writes.add(a);s.isVariableDef&&(u.isVariableDef=true);}let r=0;for(let[s,o]of n){if(o.bytecodes.length===0)continue;let a=t.getLineById(s)?.inlineSolveCount??0;t.updateLineCompiled(s,o.expressions,o.bytecodes,[...o.reads],[...o.writes],o.isVariableDef,a),r+=o.bytecodes.length;}return r}terminate(){this.worker&&(this.worker.terminate(),this.worker=null,this.pending.clear());}get isActive(){return this.worker!==null}reconstructResult(e){if(e.error)return {lineId:e.lineId,compiledAgainstHash:e.compiledAgainstHash,program:{opcodes:new Uint8Array(0),numbers:new Float64Array(0),strings:[],hasAsync:false},reads:[],writes:[],isVariableDef:false,error:e.error};let t=e.opcodesLength>0?new Uint8Array(e.opcodesBuffer,0,e.opcodesLength):new Uint8Array(0),n=e.numbersLength>0?new Float64Array(e.numbersBuffer,0,e.numbersLength):new Float64Array(0),i={opcodes:t,numbers:n,strings:e.strings,hasAsync:false};return {lineId:e.lineId,compiledAgainstHash:e.compiledAgainstHash,program:i,reads:e.reads,writes:e.writes,isVariableDef:e.isVariableDef,error:null}}};var J=128,V=3,ae=6,ue=2,de=V,_=class d{constructor(){this.lastViewportStart=null;this.savedDirection=null;this.pageAccess=new Map;this.accessSeq=0;}static pageForLine(e){return Math.floor((e-1)/J)}static pageRange(e,t){return {startLine:e*J+1,endLine:Math.min((e+1)*J,t)}}detectDirection(e){return this.lastViewportStart===null?null:e.startLine>this.lastViewportStart?"down":e.startLine<this.lastViewportStart?"up":null}maintainAfterEval(e,t){this.savedDirection=this.detectDirection(e),this.lastViewportStart=e.startLine;let n=t.lineCount,i=d.pageForLine(e.startLine),r=d.pageForLine(e.endLine),s=d.pageForLine(n),o=Math.max(0,i-V),u=Math.min(s,r+V),a=Math.max(0,i-ae),l=Math.min(s,r+ae);for(let f=o;f<=u;f++)this.touchPage(f);for(let f=a;f<=l;f++)f>=o&&f<=u||this.evictPageResults(f,t,n);let c=a-1,h=Math.max(0,c-de+1);for(let f=h;f<=c;f++)this.evictPageBytecode(f,t,n);let m=l+1,g=Math.min(s,m+de-1);for(let f=m;f<=g;f++)this.evictPageBytecode(f,t,n);}getPreloadTargets(e,t){let n=this.savedDirection;if(!n)return [];let i=[],r=d.pageForLine(e.endLine),s=d.pageForLine(e.startLine),o=d.pageForLine(t.lineCount),u=[];if(n==="down"){let a=r+V+1,l=Math.min(a+ue-1,o);for(let c=a;c<=l&&c<=o;c++)u.push(c);}else {let a=s-V-1;for(let l=a;l>a-ue&&l>=0;l--)u.push(l);}for(let a of u){let l=d.pageRange(a,t.lineCount);for(let c=l.startLine;c<=l.endLine;c++){let h=t.getLineAt(c);if(h&&h.dirty&&!(h.bytecodes.length>0&&!h.isVariableDef)&&!h.isEmpty)if(h.expressions.length>0)for(let m of h.expressions)m.trim()&&i.push({lineId:h.lineId,expression:m,textHash:h.textHash});else {let m=chunk3MG7VIPL_cjs.c.findInlineSolves(h.text);if(m.length>0)for(let g of m)g.expression.trim()&&i.push({lineId:h.lineId,expression:g.expression,textHash:h.textHash});else {let g=h.text.trim();g&&i.push({lineId:h.lineId,expression:g,textHash:h.textHash});}}}}return i}clear(){this.pageAccess.clear(),this.accessSeq=0,this.lastViewportStart=null,this.savedDirection=null;}touchPage(e){this.pageAccess.set(e,++this.accessSeq);}evictPageResults(e,t,n){let i=d.pageRange(e,n);for(let r=i.startLine;r<=i.endLine;r++){let s=t.getLineAt(r);s&&!s.isVariableDef&&s.results.length>0&&(s.results=[],s.result=null);}}evictPageBytecode(e,t,n){let i=d.pageRange(e,n);for(let r=i.startLine;r<=i.endLine;r++){let s=t.getLineAt(r);!s||s.isVariableDef||(s.bytecodes.length>0||s.results.length>0)&&(s.bytecodes=[],s.results=[],s.result=null,t.markDirty(s.lineId));}}};var ce=(i=>(i[i.Tier1=1]="Tier1",i[i.Tier2=2]="Tier2",i[i.Tier3=3]="Tier3",i[i.Skipped=0]="Skipped",i))(ce||{});function Q(d){let e=new Set;for(let t of d)if(t.userFunctionBodies!==void 0)for(let n of t.userFunctionBodies)e.add(n.name);return e}function Y(d,e){let t=0;for(let n of d)if(n===e&&++t===2)return true;return false}var P=class{constructor(e,t,n){this.compilationWorker=null;this.textHashOfRecordedEdges=new Map;this.selfReadingWrites=new Map;this.cycleMemberIds=new Set;this.movedFloor=Number.MAX_SAFE_INTEGER;this.globalUnsubscribe=null;this.doc=e,this.engine=t,this.dag=t.getDag(),this.checkpointer=n??new chunkCR7IHPA2_cjs.a(t.getVM()),this.pageManager=new _,this.engine.getBatcher().checkpointer=this.checkpointer,this.engine.setDocumentModel(this.doc),this.globalUnsubscribe=chunk54QMY2VL_cjs.N.subscribe(i=>{for(let r of this.dag.getAffectedLines(chunk54QMY2VL_cjs.O(i)))this.doc.markDirtyByLineNumber(r);});}evaluate(e,t){this.engine.setKeystrokeSignal(t??null),chunkNH74IT7B_cjs.h();try{this.reseedAccumulators();let n=this.engine.userUnitNames(),i=[],r=new Map,s={tier1:0,tier2:0,tier3:0,skipped:0},o=this.doc.lineCount,u=Math.min(e.endLine,o);this.forgetMovedBelowViewport(u);let a=this.doc.getLineStatesInRange(1,u);for(let c=1;c<=u;c++){let h=a[c-1];if(!h){s.skipped++;continue}let m=c>=e.startLine&&c<=e.endLine,g=this.evaluateSingleLine(h,c,m);i.push(g),g.tier===1?s.tier1++:g.tier===2?s.tier2++:g.tier===3?s.tier3++:s.skipped++,g.results&&m&&r.set(c,g.results.flat());}this.settleCycles(),this.pageManager.maintainAfterEval(e,this.doc),this.engine.settleOrphanedNames();let l=new Set(this.engine.userUnitNames());return n.some(c=>!l.has(c))&&this.engine.invalidateForRemovedUserUnits(),{lines:i,resultMap:r,tierCounts:s}}finally{this.engine.setKeystrokeSignal(null),chunkNH74IT7B_cjs.i();}}backgroundCompile(e){let t=[],n=this.doc.lineCount,i=e.endLine+1;for(let r=i;r<=n;r++){let s=this.doc.getLineAt(r);if(!s||!s.dirty||s.bytecodes.length>0&&!s.isVariableDef)continue;let o=this.evaluateSingleLine(s,r,false);t.push(o);}return t}dispatchBackgroundCompiles(e){let t=this.collectInvisibleCompileTargets(e);t.length!==0&&(this.compilationWorker||(this.compilationWorker=new T),this.compilationWorker.compileBatch(t).then(n=>{this.compilationWorker.storeResults(n,this.doc);}).catch(n=>{}));}terminateWorker(){this.compilationWorker&&(this.compilationWorker.terminate(),this.compilationWorker=null),this.globalUnsubscribe&&(this.globalUnsubscribe(),this.globalUnsubscribe=null);}getDoc(){return this.doc}evaluateAll(e){let t={startLine:1,endLine:this.doc.lineCount};return this.evaluate(t,e)}setViewport(e,t){if(this.engine.setKeystrokeSignal(t??null),e.startLine>1&&this.hasDirtyLinesBefore(e.startLine))return this.evaluate(e,t);this.reseedAccumulators(),this.pageManager.maintainAfterEval(e,this.doc),this.preloadNextPages(e),this.restoreTo(e.startLine-1),chunkNH74IT7B_cjs.h();try{return this.collectEvalResults(e.startLine,e.endLine)}finally{this.engine.setKeystrokeSignal(null),chunkNH74IT7B_cjs.i();}}applyTransaction(e){let t=new Set;for(let o of e)for(let u=0;u<o.deleteCount;u++){let a=o.startLine+u,l=this.dag.getWrites(a);for(let c of l)t.add(c);this.undefineOrphans(this.dag.removeLine(a)),this.engine.undefineUserUnitsFrom(this.doc.getLineAt(a)?.lineId??-1)&&this.engine.invalidateForRemovedUserUnits(),this.engine.getLineCache().removeAllForLine(a);}let n=new Set,i=new Set;for(let o of this.dag.linesReadingAPosition()){let u=this.doc.getLineAt(o);u&&(n.add(u.lineId),i.add(u.lineId));}for(let o of t){let u=this.dag.getAffectedLines(o);for(let a of u){let l=this.doc.getLineAt(a);l&&n.add(l.lineId);}}let r=this.doc.applyChanges(e);this.checkpointer?.renumber(o=>this.doc.getLinePosition(o));for(let o of t)this.engine.restoreToPrefix(o,Number.MAX_SAFE_INTEGER);for(let o of n)this.doc.markDirty(o);for(let o of i)this.doc.forgetResult(o);let s=e.reduce((o,u)=>Math.min(o,u.startLine),Number.MAX_SAFE_INTEGER);this.movedFloor=Math.min(this.movedFloor,s),this.dag.clear();for(let o of r.removed)this.textHashOfRecordedEdges.delete(o),this.selfReadingWrites.delete(o),this.cycleMemberIds.delete(o);return {inserted:r.inserted,removed:r.removed}}forgetPositionsOfEditedText(e,t){let n=this.textHashOfRecordedEdges.get(e.lineId);n!==e.textHash&&(n!==void 0&&this.dag.forgetPositionReads(t),this.textHashOfRecordedEdges.set(e.lineId,e.textHash));}settleCycles(){let e=this.dag.takeReadersThatGainedAPosition(),t=this.dag.takeEdgeChanges(),n=new Set(e);for(let i of t.lines)n.add(i);for(let i of t.keys)if(!chunk54QMY2VL_cjs.b(i))for(let r of this.dag.directConsumersOf(i))n.add(r);if(n.size!==0){if(this.cycleMemberIds.size>0){let i=this.doc.lineCount;for(let r=1;r<=i;r++){let s=this.doc.getLineAt(r);s!==void 0&&this.cycleMemberIds.has(s.lineId)&&n.add(r);}}this.recomputeCycleMembership(n);}}recomputeCycleMembership(e){let t=new Map,n=new Map,i=new Set,r=[],s=[],o=0,u=l=>{t.set(l,o),n.set(l,o),o++,r.push(l),i.add(l),s.push({line:l,targets:this.dependantsOf(l),next:0});},a=(l,c)=>{let h=this.doc.getLineAt(l);h!==void 0&&c!==this.cycleMemberIds.has(h.lineId)&&(c?this.cycleMemberIds.add(h.lineId):this.cycleMemberIds.delete(h.lineId),this.doc.markDirty(h.lineId));};for(let l of e)if(!t.has(l))for(u(l);s.length>0;){let c=s[s.length-1];if(c.next<c.targets.length){let g=c.targets[c.next++];t.has(g)?i.has(g)&&n.set(c.line,Math.min(n.get(c.line),t.get(g))):u(g);continue}if(s.pop(),s.length>0){let g=s[s.length-1].line;n.set(g,Math.min(n.get(g),n.get(c.line)));}if(n.get(c.line)!==t.get(c.line))continue;let h=[],m;do m=r.pop(),i.delete(m),h.push(m);while(m!==c.line);for(let g of h)a(g,h.length>1);}}dependantsOf(e){let t=[...this.dag.getAffectedLinesByPosition(e)];for(let n of this.dag.getWrites(e))if(!chunk54QMY2VL_cjs.b(n)){for(let i of this.dag.directConsumersOf(n))t.push(i);if(this.engine.isAccumulatorName(n))for(let i of this.dag.getProducers(n))i>e&&t.push(i);}return t}reseedAccumulators(){let e=this.engine.resetAccumulators();if(e.size===0)return;let t=this.doc.lineCount;for(let n=1;n<=t;n++){let i=this.doc.getLineAt(n);if(!(i===void 0||i.writes.length===0)){for(let r of i.writes)if(e.has(r)){this.doc.markDirtyByLineNumber(n);break}}}}forgetMovedBelowViewport(e){if(this.movedFloor===Number.MAX_SAFE_INTEGER)return;let t=Math.max(e+1,this.movedFloor),n=this.doc.lineCount;for(let i=t;i<=n;i++){let r=this.doc.getLineAt(i);r&&this.doc.forgetResult(r.lineId);}this.movedFloor=Number.MAX_SAFE_INTEGER;}collectEvalResults(e,t){let n=[],i=new Map,r={tier1:0,tier2:0,tier3:0,skipped:0},s=this.doc.lineCount,o=Math.min(t,s);this.forgetMovedBelowViewport(o);for(let u=e;u<=o;u++){let a=this.doc.getLineAt(u);if(!a)continue;let l=this.evaluateSingleLine(a,u,true);n.push(l),l.tier===1?r.tier1++:l.tier===2?r.tier2++:l.tier===3?r.tier3++:r.skipped++,l.results&&i.set(u,l.results.flat());}return this.settleCycles(),{lines:n,resultMap:i,tierCounts:r}}hasDirtyLinesBefore(e){return this.doc.hasAnyDirtyVariableDefLineBefore(e)}evaluateSingleLine(e,t,n){e.dirty&&this.forgetPositionsOfEditedText(e,t);let i=this.cycleMemberIds.has(e.lineId);if(this.engine.setLineOnCycle(i),i)for(let s of e.reads)chunk54QMY2VL_cjs.b(s)||this.engine.restoreToPrefix(s,t);let r=this.dispatchLine(e,t,n);return (r.tier===1||r.tier===2)&&this.dag.reconcilePositionReads(t),r}dispatchLine(e,t,n){let i={lineId:e.lineId,lineNumber:t};if(!e.dirty&&!n)return {...i,tier:0,result:null,error:null};if(e.isEmpty||chunkKR5O4DVG_cjs.m(e.text))return this.deregisterIfDirty(e,t),e.isEmpty=true,this.doc.markClean(e.lineId),{...i,tier:0,result:null,error:null};let{expressions:r,inlineSolveCount:s}=this.extractExpressions(e);return r.length===0?(this.deregisterIfDirty(e,t),e.isEmpty=true,this.doc.markClean(e.lineId),{...i,tier:0,result:null,error:null}):e.dirty?n?this.evaluateTier1(e,t,r,s,i):e.bytecodes.length>0&&e.bytecodes.length===r.length&&!e.isVariableDef?{...i,tier:0,result:null,error:null}:this.evaluateTier3(e,t,r,s,i):n&&e.bytecodes.length>0?this.evaluateTier2(e,t,i):{...i,tier:0,result:null,error:null}}deregisterIfDirty(e,t){if(e.dirty){for(let n of e.writes)this.engine.restoreToPrefix(n,t);e.reads=[],e.writes=[],this.registerWithTags(t,[],[]),this.engine.undefineUserUnitsFrom(e.lineId),this.checkpointer?.dropCheckpointAt(t);}}registerWithTags(e,t,n){let i=this.doc.getLineAt(e)?.text??"",r=chunkY5ZY6DPX_cjs.a(i,t,n);this.undefineOrphans(this.dag.registerLine(e,r.reads,r.writes));}undefineOrphans(e){this.engine.forgetOrphanedNames(e);}evaluateTier1(e,t,n,i,r){this.engine.undefineUserUnitsFrom(e.lineId);let s=[],o=[],u=new Set,a=new Set,l=false,c=null,h=null,m=false,g=false;for(let w of e.writes)this.engine.restoreToPrefix(w,t);let f=new Set,x=[];for(let w of n){if(!w.trim())continue;let I=null,b;try{let p=this.engine.evaluateLine(t,w);I=[p],c=p,b=this.engine.getLineCache().get(t,w);}catch(p){let C=p instanceof Error?p.message:String(p);h||(h=C),m=true,I=null;}I&&I.some(p=>p.type===12)&&(g=true),I?s.push(I):s.push([chunkNH74IT7B_cjs.P("eval_failed",h??"unknown error")]);let L=I===null;if(b){o.push(b.bytecode);for(let p of b.readVariables)u.add(p);b.writeVariable&&(a.add(b.writeVariable),l=true,Y(b.readVariables,b.writeVariable)&&x.push(b.writeVariable),L&&!f.has(b.writeVariable)?this.engine.restoreToPrefix(b.writeVariable,t):L||f.add(b.writeVariable));}else try{let{program:p,reads:C,writes:E}=this.engine.compileExpression(w);o.push(p);for(let y of C)u.add(y);for(let y of E)a.add(y);E.length>0&&(l=!0);for(let y of E)Y(C,y)&&x.push(y);for(let y of E)L&&!f.has(y)?this.engine.restoreToPrefix(y,t):L||f.add(y);}catch(p){if(o.push({opcodes:new Uint8Array(0),numbers:new Float64Array(0),strings:[],hasAsync:false}),p instanceof chunk6SYU4MH7_cjs.b&&p.context){let C=p.context.reads,E=p.context.writes;if(Array.isArray(C))for(let y of C)u.add(y);if(Array.isArray(E))for(let y of E)a.add(y),f.has(y)||this.engine.restoreToPrefix(y,t);}}}let S=[...u],v=[...a];return m||g?(this.doc.updateLineCompiled(e.lineId,n,o,S,v,l,i),e.results=s,e.result=s[0]?.[0]??null,e.inlineSolveCount=i,e.expressions=n):this.doc.updateLineResult(e.lineId,s,o,n,S,v,l,i),x.length>0?this.selfReadingWrites.set(e.lineId,x):this.selfReadingWrites.delete(e.lineId),this.registerWithTags(t,S,v),this.checkpointer&&v.length>0&&!g?this.checkpointer.snapshot(t,e.lineId,v,Q(o)):this.checkpointer&&v.length===0&&this.checkpointer.dropCheckpointAt(t),{...r,tier:1,result:c,results:s,error:h}}evaluateTier2(e,t,n){if(e.bytecodes.length===0)return {...n,tier:0,result:null,error:null};let i=[],r=null,s=null,o=false;for(let l of this.selfReadingWrites.get(e.lineId)??[])this.engine.restoreToPrefix(l,t);let u=this.engine.getLineCache(),a=new Set;for(let l=0;l<e.bytecodes.length;l++){let c=e.bytecodes[l];if(c.opcodes.length===0)continue;let h=u.get(t,e.expressions[l]??""),m=h!==void 0?h.writeVariable===null?[]:[h.writeVariable]:e.writes,g=false;try{let f=this.engine.executeCached(c,t);r=f,i.push([f]);}catch(f){let x=f instanceof Error?f.message:String(f);s||(s=x),o=true,g=true,i.push([chunkNH74IT7B_cjs.P("exec_failed",x)]);}for(let f of m)g&&!a.has(f)?this.engine.restoreToPrefix(f,t):g||a.add(f);}return this.registerWithTags(t,e.reads,e.writes),i.length>0?(e.results=i,e.result=i[0][0]??null):e.result!==null&&chunkNH74IT7B_cjs.j()&&(e.results=e.results.map(l=>l.map(chunkNH74IT7B_cjs.k)),e.result=e.results[0]?.[0]??chunkNH74IT7B_cjs.k(e.result)),o&&this.doc.markDirty(e.lineId),this.checkpointer&&e.writes.length>0&&!o&&this.checkpointer.snapshot(t,e.lineId,e.writes,Q(e.bytecodes)),{...n,tier:2,result:i.length>0?r:e.result,results:i.length>0?i:e.results,error:s}}evaluateTier3(e,t,n,i,r){let s=[],o=new Set,u=new Set,a=false,l=null,c=null,h=false,m=false;for(let v of e.writes)this.engine.restoreToPrefix(v,t);let g=new Set,f=[];for(let v of n){if(!v.trim())continue;let w;try{w=this.engine.compileExpression(v);}catch(p){let C=p instanceof Error?p.message:String(p);if(c||(c=C),h=true,s.push({opcodes:new Uint8Array(0),numbers:new Float64Array(0),strings:[],hasAsync:false}),p instanceof chunk6SYU4MH7_cjs.b&&p.context){let E=p.context.reads,y=p.context.writes;if(Array.isArray(E))for(let k of E)o.add(k);if(Array.isArray(y))for(let k of y)u.add(k),g.has(k)||this.engine.restoreToPrefix(k,t);}continue}let{program:I,reads:b,writes:L}=w;s.push(I);for(let p of b)o.add(p);for(let p of L)u.add(p);L.length>0&&(a=true);for(let p of L)Y(b,p)&&f.push(p);if(L.length>0&&I.opcodes.length>0)try{l=this.engine.executeCached(I,t),l&&l.type===12&&(m=!0);for(let p of L)g.add(p);}catch(p){let C=p instanceof Error?p.message:String(p);c||(c=C),h=true;for(let E of L)g.has(E)||this.engine.restoreToPrefix(E,t);}}let x=[...o],S=[...u];return this.doc.updateLineCompiled(e.lineId,n,s,x,S,a,i),this.registerWithTags(t,x,S),f.length>0?this.selfReadingWrites.set(e.lineId,f):this.selfReadingWrites.delete(e.lineId),a&&l&&!h&&!m&&(e.results=[[l]],e.result=l,this.doc.markClean(e.lineId)),this.checkpointer&&S.length>0&&!m?this.checkpointer.snapshot(t,e.lineId,S,Q(s)):this.checkpointer&&S.length===0&&this.checkpointer.dropCheckpointAt(t),{...r,tier:3,result:l,results:a&&l&&!h&&!m?[[l]]:void 0,error:c}}restoreTo(e){this.checkpointer&&this.checkpointer.restoreTo(e);}getCheckpointer(){return this.checkpointer}getPageManager(){return this.pageManager}preloadNextPages(e){let t=this.pageManager.getPreloadTargets(e,this.doc);t.length!==0&&(this.compilationWorker||(this.compilationWorker=new T),this.compilationWorker.compileBatch(t).then(n=>{this.compilationWorker.storeResults(n,this.doc);}).catch(n=>{}));}collectInvisibleCompileTargets(e){let t=[],n=this.doc.lineCount,i=e.endLine+1;for(let r=i;r<=n;r++){let s=this.doc.getLineAt(r);if(!s||!s.dirty||s.bytecodes.length>0&&!s.isVariableDef||s.isEmpty||chunkKR5O4DVG_cjs.m(s.text))continue;let{expressions:o}=this.extractExpressions(s);if(o.length!==0)for(let u of o)u.trim()&&t.push({lineId:s.lineId,expression:u,textHash:s.textHash});}return t}extractExpressions(e){if(e.expressions.length>0)return {expressions:e.expressions,inlineSolveCount:e.inlineSolveCount};let t=e.text.trim();if(t.length===0)return {expressions:[],inlineSolveCount:0};let n=chunk3MG7VIPL_cjs.c.findInlineSolves(e.text);return n.length>0?{expressions:n.map(i=>i.expression),inlineSolveCount:n.length}:{expressions:[t],inlineSolveCount:0}}};function he(d){return typeof d.unit=="string"?d.unit:String(d.value)}function me(d,e,t={inputType:"markdown"}){let n=d.getDocumentModel(),i=new M;i.setDocument(e);let r=new P(i,d,new chunkCR7IHPA2_cjs.a(d.getVM()));try{let s=i.lineCount;r.evaluate({startLine:1,endLine:s});let o=[],u=[],a=0;for(let l=1;l<=s;l++){let c=i.getLineAt(l),h=c.text,m=a,g=a+h.length;a=g+1;let f=c.inlineSolveCount>0,x=[],S=null,v=null;c.isEmpty||(f?x=chunkKR5O4DVG_cjs.n(h,l).map((w,I)=>{let b=c.results[I]?.[0]??null;if(b&&b.type===13){let L=he(b);return u.push(`Line ${l}: ${L}`),{...w,result:null,error:L}}return {...w,result:b,error:null}}):(S=c.expressions[0]??null,v=c.result??null,v&&v.type===13&&u.push(`Line ${l}: ${he(v)}`))),o.push({lineNumber:l,text:h,startPosition:m,endPosition:g,isEmpty:c.isEmpty,hasInlineSolves:f,inlineSolves:x,expression:S,error:null,result:v});}return {lines:o,totalLines:s,errors:u}}finally{r.terminateWorker(),d.setDocumentModel(n);}}exports.a=M;exports.b=ce;exports.c=P;exports.d=me;//# sourceMappingURL=chunk-DFPKBQSS.cjs.map
3
- //# sourceMappingURL=chunk-DFPKBQSS.cjs.map
1
+ 'use strict';var chunkEFJCC6FJ_cjs=require('./chunk-EFJCC6FJ.cjs'),chunkZWDLC4MR_cjs=require('./chunk-ZWDLC4MR.cjs'),chunkCR7IHPA2_cjs=require('./chunk-CR7IHPA2.cjs'),chunkY5ZY6DPX_cjs=require('./chunk-Y5ZY6DPX.cjs'),chunkUURM7P3P_cjs=require('./chunk-UURM7P3P.cjs'),chunk54QMY2VL_cjs=require('./chunk-54QMY2VL.cjs'),chunkNH74IT7B_cjs=require('./chunk-NH74IT7B.cjs'),chunkR6NGKIBC_cjs=require('./chunk-R6NGKIBC.cjs'),chunk3MG7VIPL_cjs=require('./chunk-3MG7VIPL.cjs'),chunk6SYU4MH7_cjs=require('./chunk-6SYU4MH7.cjs');var H=class{constructor(){this.root=null;}get length(){return this.root?this.root.size:0}get isEmpty(){return this.root===null}getAt(e){if(!(e<0||e>=(this.root?.size??0)))return this.nodeAt(this.root,e).lineId}insertAt(e,t){let[n,i]=A(this.root,e);this.root=R(R(n,fe(t)),i);}deleteAt(e){if(e<0||e>=(this.root?.size??0))return;let[t,n]=A(this.root,e),[i,r]=A(n,1),s=i?i.lineId:void 0;return this.root=R(t,r),s}spliceAt(e,t,n){let i=Math.max(0,e),r=Math.min(Math.max(0,t),(this.root?.size??0)-i),[s,o]=A(this.root,i),[u,a]=A(o,r),l=ge(u),c=z(n,0,n.length);return this.root=R(R(s,c),a),l}replaceAll(e){this.root=z(e,0,e.length);}getRange(e,t){let n=Math.max(0,e),i=Math.min((this.root?.size??0)-1,t);if(n>i)return [];let r=[];return this.collectRange(this.root,n,i,0,r),r}clear(){this.root=null;}*[Symbol.iterator](){yield*this.inOrder(this.root);}*inOrder(e){e&&(yield*this.inOrder(e.left),yield e.lineId,yield*this.inOrder(e.right));}nodeAt(e,t){let n=e.left?e.left.size:0;return t<n?this.nodeAt(e.left,t):t===n?e:this.nodeAt(e.right,t-n-1)}collectRange(e,t,n,i,r){if(!e)return;let s=e.left?e.left.size:0,o=i+s;o>t&&e.left&&this.collectRange(e.left,t,n,i,r),o>=t&&o<=n&&r.push(e.lineId),o<n&&e.right&&this.collectRange(e.right,t,n,o+1,r);}};function fe(d){return {lineId:d,size:1,priority:Math.random(),left:null,right:null}}function U(d){d.size=1+(d.left?d.left.size:0)+(d.right?d.right.size:0);}function R(d,e){return d?e?d.priority>e.priority?(d.right=R(d.right,e),U(d),d):(e.left=R(d,e.left),U(e),e):d:e}function A(d,e){if(!d)return [null,null];let t=d.left?d.left.size:0;if(e<=t){let[n,i]=A(d.left,e);return d.left=i,U(d),[n,d]}else {let[n,i]=A(d.right,e-t-1);return d.right=n,U(d),[d,i]}}function ge(d){let e=[];return Z(d,e),e}function Z(d,e){d&&(Z(d.left,e),e.push(d.lineId),Z(d.right,e));}function z(d,e,t){if(e>=t)return null;let n=Math.floor((e+t)/2),i=pe(d[n]);return {lineId:d[n],size:t-e,priority:i,left:z(d,e,n),right:z(d,n+1,t)}}function pe(d){let e=d+2654435769|0;return e=Math.imul(e>>>16^e,73244475),e=Math.imul(e>>>16^e,73244475),e=(e>>>16^e)>>>0,e/4294967296}var M=class{constructor(e=chunkR6NGKIBC_cjs.b.performance.maxDocumentLines){this.lines=new Map;this.orderTree=new H;this.nextLineId=1;this._positionCache=null;this.dirtyLineIds=new Set;this.tagIndex=null;this.maxLines=e;}setDocument(e){if(chunkUURM7P3P_cjs.b(e,this.maxLines)>this.maxLines)throw chunk6SYU4MH7_cjs.c.execution("DOCUMENT_TOO_LARGE",`This document has more than ${this.maxLines.toLocaleString("en-US")} lines, which is the most the engine will hold at once`,{maxLines:this.maxLines});this.lines.clear(),this.orderTree.clear(),this._positionCache=null,this.dirtyLineIds.clear(),this.nextLineId=1,this.tagIndex=null;let n=e.split(`
2
+ `),i=new Array(n.length);for(let r=0;r<n.length;r++){let s=this.nextLineId++;i[r]=s,this.lines.set(s,{lineId:s,textHash:chunkEFJCC6FJ_cjs.a(n[r]),text:n[r],expressions:[],bytecodes:[],reads:[],writes:[],results:[],result:null,dirty:true,isVariableDef:false,isEmpty:n[r].trim().length===0,inlineSolveCount:0});}this.orderTree.replaceAll(i);for(let r of i)this.dirtyLineIds.add(r);}applyChanges(e){let t=[],n=[],i=[...e].sort((r,s)=>s.startLine-r.startLine);for(let r of i){let s=r.startLine-1,o=[];for(let a of r.insertLines){let l=this.nextLineId++;o.push(l),t.push(l),this.lines.set(l,{lineId:l,textHash:chunkEFJCC6FJ_cjs.a(a),text:a,expressions:[],bytecodes:[],reads:[],writes:[],results:[],result:null,dirty:true,isVariableDef:false,isEmpty:a.trim().length===0,inlineSolveCount:0});}for(let a of o)this.dirtyLineIds.add(a);if(this.tagIndex!==null)for(let a of o)this.indexTags(a,this.lines.get(a).text);let u=this.orderTree.spliceAt(s,r.deleteCount,o);for(let a of u)n.push(a),this.tagIndex!==null&&this.unindexTags(a,this.lines.get(a)?.text??""),this.lines.delete(a),this.dirtyLineIds.delete(a);}return this._positionCache=null,{inserted:t,removed:n}}insertLines(e,t){let n={startLine:e,deleteCount:0,insertLines:t};return this.applyChanges([n]).inserted}deleteLines(e,t){let n={startLine:e,deleteCount:t-e+1,insertLines:[]};return this.applyChanges([n]).removed}editLine(e,t){let n=this.getLineAt(e);if(!n)return false;let i=chunkEFJCC6FJ_cjs.a(t);return i===n.textHash?false:(this.tagIndex!==null&&(this.unindexTags(n.lineId,n.text),this.indexTags(n.lineId,t)),n.text=t,n.textHash=i,n.expressions=[],n.bytecodes=[],n.results=[],n.result=null,n.inlineSolveCount=0,n.dirty=true,this.dirtyLineIds.add(n.lineId),n.isEmpty=t.trim().length===0,true)}linesCarryingTag(e){let t=this.ensureTagIndex().get(e.toLowerCase());if(t===void 0||t.size===0)return [];let n=[];for(let i of t){let r=this.getLinePosition(i);r>0&&n.push(r);}return n.sort((i,r)=>i-r),n}ensureTagIndex(){if(this.tagIndex!==null)return this.tagIndex;this.tagIndex=new Map;for(let e of this.lines.values())this.indexTags(e.lineId,e.text);return this.tagIndex}indexTags(e,t){if(!(t.indexOf("#")<0))for(let n of chunkY5ZY6DPX_cjs.b(t)){let i=this.tagIndex.get(n);i===void 0?this.tagIndex.set(n,new Set([e])):i.add(e);}}unindexTags(e,t){if(!(t.indexOf("#")<0))for(let n of chunkY5ZY6DPX_cjs.b(t)){let i=this.tagIndex.get(n);i!==void 0&&(i.delete(e),i.size===0&&this.tagIndex.delete(n));}}getLineAt(e){let t=e-1,n=this.orderTree.getAt(t);if(n!==void 0)return this.lines.get(n)}getLinePosition(e){if(this._positionCache)return this._positionCache.get(e)??-1;this._positionCache=new Map;let t=1;for(let n of this.orderTree)this._positionCache.set(n,t++);return this._positionCache.get(e)??-1}getVisibleLines(e,t){let n=this.orderTree.getRange(e-1,t-1),i=[];for(let r of n){let s=this.lines.get(r);s&&i.push(s);}return i}getLineStatesInRange(e,t){let n=this.orderTree.getRange(e-1,t-1),i=new Array(n.length);for(let r=0;r<n.length;r++)i[r]=this.lines.get(n[r]);return i}getAllLines(){return this.getVisibleLines(1,this.lineCount)}getLineById(e){return this.lines.get(e)}getDirtyLines(){let e=[];for(let t of this.lines.values())t.dirty&&e.push(t);return e}hasAnyDirtyLineBefore(e){for(let t of this.dirtyLineIds){let n=this.getLinePosition(t);if(n>=1&&n<e)return true}return false}hasAnyDirtyVariableDefLineBefore(e){for(let t of this.dirtyLineIds){let n=this.lines.get(t);if(!n||!n.isVariableDef)continue;let i=this.getLinePosition(t);if(i>=1&&i<e)return true}return false}get dirtyCount(){return this.dirtyLineIds.size}isBytecodeValid(e,t){let n=this.lines.get(e);return n!==void 0&&n.textHash===t}forgetResult(e){let t=this.lines.get(e);t&&(t.result=null,t.results=[]);}markClean(e){let t=this.lines.get(e);t&&(t.dirty=false,this.dirtyLineIds.delete(e));}markDirtyByLineNumber(e){let t=this.getLineAt(e);t&&(t.dirty=true,this.dirtyLineIds.add(t.lineId));}markDirty(e){let t=this.lines.get(e);t&&(t.dirty=true,this.dirtyLineIds.add(e));}invalidateAll(){for(let e of this.lines.values())e.dirty=true;this.dirtyLineIds=new Set(this.lines.keys());}updateLineResult(e,t,n,i,r,s,o,u=0){let a=this.lines.get(e);a&&(a.results=t,a.result=t[0]?.[0]??null,a.bytecodes=n,a.expressions=i,a.reads=r,a.writes=s,a.isVariableDef=o,a.inlineSolveCount=u,a.dirty=false,this.dirtyLineIds.delete(e));}updateLineCompiled(e,t,n,i,r,s,o=0){let u=this.lines.get(e);u&&(u.expressions=t,u.bytecodes=n,u.reads=i,u.writes=r,u.isVariableDef=s,u.inlineSolveCount=o);}get lineCount(){return this.orderTree.length}get isEmpty(){return this.orderTree.isEmpty}*[Symbol.iterator](){for(let e of this.orderTree){let t=this.lines.get(e);t&&(yield t);}}clear(){this.lines.clear(),this.orderTree.clear(),this._positionCache=null,this.nextLineId=1,this.tagIndex=null;}toJSON(){return {lineCount:this.lineCount,lines:this.getAllLines().map(e=>({lineId:e.lineId,text:e.text.substring(0,80),textHash:e.textHash,dirty:e.dirty,isVariableDef:e.isVariableDef,isEmpty:e.isEmpty,hasBytecode:e.bytecodes.length>0,hasResult:e.results.length>0,inlineSolveCount:e.inlineSolveCount,reads:e.reads,writes:e.writes}))}}};var T=class{constructor(){this.worker=null;this.nextId=1;this.pending=new Map;}ensureWorker(){if(this.worker)return this.worker;let e=chunkZWDLC4MR_cjs.h();if(e===null)throw new Error("no engine worker factory registered, so compilation stays on the main thread");return this.worker=e(),this.worker.onmessage=t=>{let n=t.data;if(!n||n.type!=="COMPILE_RESULT")return;let i=this.pending.get(n.id);if(!i)return;this.pending.delete(n.id);let r=[];for(let s of n.results)r.push(this.reconstructResult(s));i.resolve(r);},this.worker.onerror=t=>{for(let[n,i]of this.pending)i.reject(new Error(`Compilation worker error: ${t.message}`)),this.pending.delete(n);},this.worker}async compileBatch(e){if(e.length===0)return [];let t=this.ensureWorker(),n=this.nextId++;return new Promise((i,r)=>{this.pending.set(n,{resolve:i,reject:r}),t.postMessage({type:"COMPILE_BATCH",id:n,items:e});})}storeResults(e,t){let n=new Map;for(let s of e){if(s.error)continue;let o=t.getLineById(s.lineId);if(!o||o.textHash!==s.compiledAgainstHash)continue;let u=n.get(s.lineId);u||(u={bytecodes:[],reads:new Set,writes:new Set,isVariableDef:false,expressions:o.expressions.length>0?[...o.expressions]:[],textHash:s.compiledAgainstHash},n.set(s.lineId,u)),u.bytecodes.push(s.program);for(let a of s.reads)u.reads.add(a);for(let a of s.writes)u.writes.add(a);s.isVariableDef&&(u.isVariableDef=true);}let r=0;for(let[s,o]of n){if(o.bytecodes.length===0)continue;let a=t.getLineById(s)?.inlineSolveCount??0;t.updateLineCompiled(s,o.expressions,o.bytecodes,[...o.reads],[...o.writes],o.isVariableDef,a),r+=o.bytecodes.length;}return r}terminate(){this.worker&&(this.worker.terminate(),this.worker=null,this.pending.clear());}get isActive(){return this.worker!==null}reconstructResult(e){if(e.error)return {lineId:e.lineId,compiledAgainstHash:e.compiledAgainstHash,program:{opcodes:new Uint8Array(0),numbers:new Float64Array(0),strings:[],hasAsync:false},reads:[],writes:[],isVariableDef:false,error:e.error};let t=e.opcodesLength>0?new Uint8Array(e.opcodesBuffer,0,e.opcodesLength):new Uint8Array(0),n=e.numbersLength>0?new Float64Array(e.numbersBuffer,0,e.numbersLength):new Float64Array(0),i={opcodes:t,numbers:n,strings:e.strings,hasAsync:false};return {lineId:e.lineId,compiledAgainstHash:e.compiledAgainstHash,program:i,reads:e.reads,writes:e.writes,isVariableDef:e.isVariableDef,error:null}}};var J=128,V=3,ae=6,ue=2,de=V,_=class d{constructor(){this.lastViewportStart=null;this.savedDirection=null;this.pageAccess=new Map;this.accessSeq=0;}static pageForLine(e){return Math.floor((e-1)/J)}static pageRange(e,t){return {startLine:e*J+1,endLine:Math.min((e+1)*J,t)}}detectDirection(e){return this.lastViewportStart===null?null:e.startLine>this.lastViewportStart?"down":e.startLine<this.lastViewportStart?"up":null}maintainAfterEval(e,t){this.savedDirection=this.detectDirection(e),this.lastViewportStart=e.startLine;let n=t.lineCount,i=d.pageForLine(e.startLine),r=d.pageForLine(e.endLine),s=d.pageForLine(n),o=Math.max(0,i-V),u=Math.min(s,r+V),a=Math.max(0,i-ae),l=Math.min(s,r+ae);for(let f=o;f<=u;f++)this.touchPage(f);for(let f=a;f<=l;f++)f>=o&&f<=u||this.evictPageResults(f,t,n);let c=a-1,h=Math.max(0,c-de+1);for(let f=h;f<=c;f++)this.evictPageBytecode(f,t,n);let m=l+1,g=Math.min(s,m+de-1);for(let f=m;f<=g;f++)this.evictPageBytecode(f,t,n);}getPreloadTargets(e,t){let n=this.savedDirection;if(!n)return [];let i=[],r=d.pageForLine(e.endLine),s=d.pageForLine(e.startLine),o=d.pageForLine(t.lineCount),u=[];if(n==="down"){let a=r+V+1,l=Math.min(a+ue-1,o);for(let c=a;c<=l&&c<=o;c++)u.push(c);}else {let a=s-V-1;for(let l=a;l>a-ue&&l>=0;l--)u.push(l);}for(let a of u){let l=d.pageRange(a,t.lineCount);for(let c=l.startLine;c<=l.endLine;c++){let h=t.getLineAt(c);if(h&&h.dirty&&!(h.bytecodes.length>0&&!h.isVariableDef)&&!h.isEmpty)if(h.expressions.length>0)for(let m of h.expressions)m.trim()&&i.push({lineId:h.lineId,expression:m,textHash:h.textHash});else {let m=chunk3MG7VIPL_cjs.c.findInlineSolves(h.text);if(m.length>0)for(let g of m)g.expression.trim()&&i.push({lineId:h.lineId,expression:g.expression,textHash:h.textHash});else {let g=h.text.trim();g&&i.push({lineId:h.lineId,expression:g,textHash:h.textHash});}}}}return i}clear(){this.pageAccess.clear(),this.accessSeq=0,this.lastViewportStart=null,this.savedDirection=null;}touchPage(e){this.pageAccess.set(e,++this.accessSeq);}evictPageResults(e,t,n){let i=d.pageRange(e,n);for(let r=i.startLine;r<=i.endLine;r++){let s=t.getLineAt(r);s&&!s.isVariableDef&&s.results.length>0&&(s.results=[],s.result=null);}}evictPageBytecode(e,t,n){let i=d.pageRange(e,n);for(let r=i.startLine;r<=i.endLine;r++){let s=t.getLineAt(r);!s||s.isVariableDef||(s.bytecodes.length>0||s.results.length>0)&&(s.bytecodes=[],s.results=[],s.result=null,t.markDirty(s.lineId));}}};var ce=(i=>(i[i.Tier1=1]="Tier1",i[i.Tier2=2]="Tier2",i[i.Tier3=3]="Tier3",i[i.Skipped=0]="Skipped",i))(ce||{});function Q(d){let e=new Set;for(let t of d)if(t.userFunctionBodies!==void 0)for(let n of t.userFunctionBodies)e.add(n.name);return e}function Y(d,e){let t=0;for(let n of d)if(n===e&&++t===2)return true;return false}var P=class{constructor(e,t,n){this.compilationWorker=null;this.textHashOfRecordedEdges=new Map;this.selfReadingWrites=new Map;this.cycleMemberIds=new Set;this.movedFloor=Number.MAX_SAFE_INTEGER;this.globalUnsubscribe=null;this.doc=e,this.engine=t,this.dag=t.getDag(),this.checkpointer=n??new chunkCR7IHPA2_cjs.a(t.getVM()),this.pageManager=new _,this.engine.getBatcher().checkpointer=this.checkpointer,this.engine.setDocumentModel(this.doc),this.globalUnsubscribe=chunk54QMY2VL_cjs.N.subscribe(i=>{for(let r of this.dag.getAffectedLines(chunk54QMY2VL_cjs.O(i)))this.doc.markDirtyByLineNumber(r);});}evaluate(e,t){this.engine.setKeystrokeSignal(t??null),chunkNH74IT7B_cjs.h();try{this.reseedAccumulators();let n=this.engine.userUnitNames(),i=[],r=new Map,s={tier1:0,tier2:0,tier3:0,skipped:0},o=this.doc.lineCount,u=Math.min(e.endLine,o);this.forgetMovedBelowViewport(u);let a=this.doc.getLineStatesInRange(1,u);for(let c=1;c<=u;c++){let h=a[c-1];if(!h){s.skipped++;continue}let m=c>=e.startLine&&c<=e.endLine,g=this.evaluateSingleLine(h,c,m);i.push(g),g.tier===1?s.tier1++:g.tier===2?s.tier2++:g.tier===3?s.tier3++:s.skipped++,g.results&&m&&r.set(c,g.results.flat());}this.settleCycles(),this.pageManager.maintainAfterEval(e,this.doc),this.engine.settleOrphanedNames();let l=new Set(this.engine.userUnitNames());return n.some(c=>!l.has(c))&&this.engine.invalidateForRemovedUserUnits(),{lines:i,resultMap:r,tierCounts:s}}finally{this.engine.setKeystrokeSignal(null),chunkNH74IT7B_cjs.i();}}backgroundCompile(e){let t=[],n=this.doc.lineCount,i=e.endLine+1;for(let r=i;r<=n;r++){let s=this.doc.getLineAt(r);if(!s||!s.dirty||s.bytecodes.length>0&&!s.isVariableDef)continue;let o=this.evaluateSingleLine(s,r,false);t.push(o);}return t}dispatchBackgroundCompiles(e){let t=this.collectInvisibleCompileTargets(e);t.length!==0&&(this.compilationWorker||(this.compilationWorker=new T),this.compilationWorker.compileBatch(t).then(n=>{this.compilationWorker.storeResults(n,this.doc);}).catch(n=>{}));}terminateWorker(){this.compilationWorker&&(this.compilationWorker.terminate(),this.compilationWorker=null),this.globalUnsubscribe&&(this.globalUnsubscribe(),this.globalUnsubscribe=null);}getDoc(){return this.doc}evaluateAll(e){let t={startLine:1,endLine:this.doc.lineCount};return this.evaluate(t,e)}setViewport(e,t){if(this.engine.setKeystrokeSignal(t??null),e.startLine>1&&this.hasDirtyLinesBefore(e.startLine))return this.evaluate(e,t);this.reseedAccumulators(),this.pageManager.maintainAfterEval(e,this.doc),this.preloadNextPages(e),this.restoreTo(e.startLine-1),chunkNH74IT7B_cjs.h();try{return this.collectEvalResults(e.startLine,e.endLine)}finally{this.engine.setKeystrokeSignal(null),chunkNH74IT7B_cjs.i();}}applyTransaction(e){let t=new Set;for(let o of e)for(let u=0;u<o.deleteCount;u++){let a=o.startLine+u,l=this.dag.getWrites(a);for(let c of l)t.add(c);this.undefineOrphans(this.dag.removeLine(a)),this.engine.undefineUserUnitsFrom(this.doc.getLineAt(a)?.lineId??-1)&&this.engine.invalidateForRemovedUserUnits(),this.engine.getLineCache().removeAllForLine(a);}let n=new Set,i=new Set;for(let o of this.dag.linesReadingAPosition()){let u=this.doc.getLineAt(o);u&&(n.add(u.lineId),i.add(u.lineId));}for(let o of t){let u=this.dag.getAffectedLines(o);for(let a of u){let l=this.doc.getLineAt(a);l&&n.add(l.lineId);}}let r=this.doc.applyChanges(e);this.checkpointer?.renumber(o=>this.doc.getLinePosition(o));for(let o of t)this.engine.restoreToPrefix(o,Number.MAX_SAFE_INTEGER);for(let o of n)this.doc.markDirty(o);for(let o of i)this.doc.forgetResult(o);let s=e.reduce((o,u)=>Math.min(o,u.startLine),Number.MAX_SAFE_INTEGER);this.movedFloor=Math.min(this.movedFloor,s),this.dag.clear();for(let o of r.removed)this.textHashOfRecordedEdges.delete(o),this.selfReadingWrites.delete(o),this.cycleMemberIds.delete(o);return {inserted:r.inserted,removed:r.removed}}forgetPositionsOfEditedText(e,t){let n=this.textHashOfRecordedEdges.get(e.lineId);n!==e.textHash&&(n!==void 0&&this.dag.forgetPositionReads(t),this.textHashOfRecordedEdges.set(e.lineId,e.textHash));}settleCycles(){let e=this.dag.takeReadersThatGainedAPosition(),t=this.dag.takeEdgeChanges(),n=new Set(e);for(let i of t.lines)n.add(i);for(let i of t.keys)if(!chunk54QMY2VL_cjs.b(i))for(let r of this.dag.directConsumersOf(i))n.add(r);if(n.size!==0){if(this.cycleMemberIds.size>0){let i=this.doc.lineCount;for(let r=1;r<=i;r++){let s=this.doc.getLineAt(r);s!==void 0&&this.cycleMemberIds.has(s.lineId)&&n.add(r);}}this.recomputeCycleMembership(n);}}recomputeCycleMembership(e){let t=new Map,n=new Map,i=new Set,r=[],s=[],o=0,u=l=>{t.set(l,o),n.set(l,o),o++,r.push(l),i.add(l),s.push({line:l,targets:this.dependantsOf(l),next:0});},a=(l,c)=>{let h=this.doc.getLineAt(l);h!==void 0&&c!==this.cycleMemberIds.has(h.lineId)&&(c?this.cycleMemberIds.add(h.lineId):this.cycleMemberIds.delete(h.lineId),this.doc.markDirty(h.lineId));};for(let l of e)if(!t.has(l))for(u(l);s.length>0;){let c=s[s.length-1];if(c.next<c.targets.length){let g=c.targets[c.next++];t.has(g)?i.has(g)&&n.set(c.line,Math.min(n.get(c.line),t.get(g))):u(g);continue}if(s.pop(),s.length>0){let g=s[s.length-1].line;n.set(g,Math.min(n.get(g),n.get(c.line)));}if(n.get(c.line)!==t.get(c.line))continue;let h=[],m;do m=r.pop(),i.delete(m),h.push(m);while(m!==c.line);for(let g of h)a(g,h.length>1);}}dependantsOf(e){let t=[...this.dag.getAffectedLinesByPosition(e)];for(let n of this.dag.getWrites(e))if(!chunk54QMY2VL_cjs.b(n)){for(let i of this.dag.directConsumersOf(n))t.push(i);if(this.engine.isAccumulatorName(n))for(let i of this.dag.getProducers(n))i>e&&t.push(i);}return t}reseedAccumulators(){let e=this.engine.resetAccumulators();if(e.size===0)return;let t=this.doc.lineCount;for(let n=1;n<=t;n++){let i=this.doc.getLineAt(n);if(!(i===void 0||i.writes.length===0)){for(let r of i.writes)if(e.has(r)){this.doc.markDirtyByLineNumber(n);break}}}}forgetMovedBelowViewport(e){if(this.movedFloor===Number.MAX_SAFE_INTEGER)return;let t=Math.max(e+1,this.movedFloor),n=this.doc.lineCount;for(let i=t;i<=n;i++){let r=this.doc.getLineAt(i);r&&this.doc.forgetResult(r.lineId);}this.movedFloor=Number.MAX_SAFE_INTEGER;}collectEvalResults(e,t){let n=[],i=new Map,r={tier1:0,tier2:0,tier3:0,skipped:0},s=this.doc.lineCount,o=Math.min(t,s);this.forgetMovedBelowViewport(o);for(let u=e;u<=o;u++){let a=this.doc.getLineAt(u);if(!a)continue;let l=this.evaluateSingleLine(a,u,true);n.push(l),l.tier===1?r.tier1++:l.tier===2?r.tier2++:l.tier===3?r.tier3++:r.skipped++,l.results&&i.set(u,l.results.flat());}return this.settleCycles(),{lines:n,resultMap:i,tierCounts:r}}hasDirtyLinesBefore(e){return this.doc.hasAnyDirtyVariableDefLineBefore(e)}evaluateSingleLine(e,t,n){e.dirty&&this.forgetPositionsOfEditedText(e,t);let i=this.cycleMemberIds.has(e.lineId);if(this.engine.setLineOnCycle(i),i)for(let s of e.reads)chunk54QMY2VL_cjs.b(s)||this.engine.restoreToPrefix(s,t);let r=this.dispatchLine(e,t,n);return (r.tier===1||r.tier===2)&&this.dag.reconcilePositionReads(t),r}dispatchLine(e,t,n){let i={lineId:e.lineId,lineNumber:t};if(!e.dirty&&!n)return {...i,tier:0,result:null,error:null};if(e.isEmpty||chunkZWDLC4MR_cjs.m(e.text))return this.deregisterIfDirty(e,t),e.isEmpty=true,this.doc.markClean(e.lineId),{...i,tier:0,result:null,error:null};let{expressions:r,inlineSolveCount:s}=this.extractExpressions(e);return r.length===0?(this.deregisterIfDirty(e,t),e.isEmpty=true,this.doc.markClean(e.lineId),{...i,tier:0,result:null,error:null}):e.dirty?n?this.evaluateTier1(e,t,r,s,i):e.bytecodes.length>0&&e.bytecodes.length===r.length&&!e.isVariableDef?{...i,tier:0,result:null,error:null}:this.evaluateTier3(e,t,r,s,i):n&&e.bytecodes.length>0?this.evaluateTier2(e,t,i):{...i,tier:0,result:null,error:null}}deregisterIfDirty(e,t){if(e.dirty){for(let n of e.writes)this.engine.restoreToPrefix(n,t);e.reads=[],e.writes=[],this.registerWithTags(t,[],[]),this.engine.undefineUserUnitsFrom(e.lineId),this.checkpointer?.dropCheckpointAt(t);}}registerWithTags(e,t,n){let i=this.doc.getLineAt(e)?.text??"",r=chunkY5ZY6DPX_cjs.a(i,t,n);this.undefineOrphans(this.dag.registerLine(e,r.reads,r.writes));}undefineOrphans(e){this.engine.forgetOrphanedNames(e);}evaluateTier1(e,t,n,i,r){this.engine.undefineUserUnitsFrom(e.lineId);let s=[],o=[],u=new Set,a=new Set,l=false,c=null,h=null,m=false,g=false;for(let w of e.writes)this.engine.restoreToPrefix(w,t);let f=new Set,x=[];for(let w of n){if(!w.trim())continue;let I=null,b;try{let p=this.engine.evaluateLine(t,w);I=[p],c=p,b=this.engine.getLineCache().get(t,w);}catch(p){let C=p instanceof Error?p.message:String(p);h||(h=C),m=true,I=null;}I&&I.some(p=>p.type===12)&&(g=true),I?s.push(I):s.push([chunkNH74IT7B_cjs.P("eval_failed",h??"unknown error")]);let L=I===null;if(b){o.push(b.bytecode);for(let p of b.readVariables)u.add(p);b.writeVariable&&(a.add(b.writeVariable),l=true,Y(b.readVariables,b.writeVariable)&&x.push(b.writeVariable),L&&!f.has(b.writeVariable)?this.engine.restoreToPrefix(b.writeVariable,t):L||f.add(b.writeVariable));}else try{let{program:p,reads:C,writes:E}=this.engine.compileExpression(w);o.push(p);for(let y of C)u.add(y);for(let y of E)a.add(y);E.length>0&&(l=!0);for(let y of E)Y(C,y)&&x.push(y);for(let y of E)L&&!f.has(y)?this.engine.restoreToPrefix(y,t):L||f.add(y);}catch(p){if(o.push({opcodes:new Uint8Array(0),numbers:new Float64Array(0),strings:[],hasAsync:false}),p instanceof chunk6SYU4MH7_cjs.b&&p.context){let C=p.context.reads,E=p.context.writes;if(Array.isArray(C))for(let y of C)u.add(y);if(Array.isArray(E))for(let y of E)a.add(y),f.has(y)||this.engine.restoreToPrefix(y,t);}}}let S=[...u],v=[...a];return m||g?(this.doc.updateLineCompiled(e.lineId,n,o,S,v,l,i),e.results=s,e.result=s[0]?.[0]??null,e.inlineSolveCount=i,e.expressions=n):this.doc.updateLineResult(e.lineId,s,o,n,S,v,l,i),x.length>0?this.selfReadingWrites.set(e.lineId,x):this.selfReadingWrites.delete(e.lineId),this.registerWithTags(t,S,v),this.checkpointer&&v.length>0&&!g?this.checkpointer.snapshot(t,e.lineId,v,Q(o)):this.checkpointer&&v.length===0&&this.checkpointer.dropCheckpointAt(t),{...r,tier:1,result:c,results:s,error:h}}evaluateTier2(e,t,n){if(e.bytecodes.length===0)return {...n,tier:0,result:null,error:null};let i=[],r=null,s=null,o=false;for(let l of this.selfReadingWrites.get(e.lineId)??[])this.engine.restoreToPrefix(l,t);let u=this.engine.getLineCache(),a=new Set;for(let l=0;l<e.bytecodes.length;l++){let c=e.bytecodes[l];if(c.opcodes.length===0)continue;let h=u.get(t,e.expressions[l]??""),m=h!==void 0?h.writeVariable===null?[]:[h.writeVariable]:e.writes,g=false;try{let f=this.engine.executeCached(c,t);r=f,i.push([f]);}catch(f){let x=f instanceof Error?f.message:String(f);s||(s=x),o=true,g=true,i.push([chunkNH74IT7B_cjs.P("exec_failed",x)]);}for(let f of m)g&&!a.has(f)?this.engine.restoreToPrefix(f,t):g||a.add(f);}return this.registerWithTags(t,e.reads,e.writes),i.length>0?(e.results=i,e.result=i[0][0]??null):e.result!==null&&chunkNH74IT7B_cjs.j()&&(e.results=e.results.map(l=>l.map(chunkNH74IT7B_cjs.k)),e.result=e.results[0]?.[0]??chunkNH74IT7B_cjs.k(e.result)),o&&this.doc.markDirty(e.lineId),this.checkpointer&&e.writes.length>0&&!o&&this.checkpointer.snapshot(t,e.lineId,e.writes,Q(e.bytecodes)),{...n,tier:2,result:i.length>0?r:e.result,results:i.length>0?i:e.results,error:s}}evaluateTier3(e,t,n,i,r){let s=[],o=new Set,u=new Set,a=false,l=null,c=null,h=false,m=false;for(let v of e.writes)this.engine.restoreToPrefix(v,t);let g=new Set,f=[];for(let v of n){if(!v.trim())continue;let w;try{w=this.engine.compileExpression(v);}catch(p){let C=p instanceof Error?p.message:String(p);if(c||(c=C),h=true,s.push({opcodes:new Uint8Array(0),numbers:new Float64Array(0),strings:[],hasAsync:false}),p instanceof chunk6SYU4MH7_cjs.b&&p.context){let E=p.context.reads,y=p.context.writes;if(Array.isArray(E))for(let k of E)o.add(k);if(Array.isArray(y))for(let k of y)u.add(k),g.has(k)||this.engine.restoreToPrefix(k,t);}continue}let{program:I,reads:b,writes:L}=w;s.push(I);for(let p of b)o.add(p);for(let p of L)u.add(p);L.length>0&&(a=true);for(let p of L)Y(b,p)&&f.push(p);if(L.length>0&&I.opcodes.length>0)try{l=this.engine.executeCached(I,t),l&&l.type===12&&(m=!0);for(let p of L)g.add(p);}catch(p){let C=p instanceof Error?p.message:String(p);c||(c=C),h=true;for(let E of L)g.has(E)||this.engine.restoreToPrefix(E,t);}}let x=[...o],S=[...u];return this.doc.updateLineCompiled(e.lineId,n,s,x,S,a,i),this.registerWithTags(t,x,S),f.length>0?this.selfReadingWrites.set(e.lineId,f):this.selfReadingWrites.delete(e.lineId),a&&l&&!h&&!m&&(e.results=[[l]],e.result=l,this.doc.markClean(e.lineId)),this.checkpointer&&S.length>0&&!m?this.checkpointer.snapshot(t,e.lineId,S,Q(s)):this.checkpointer&&S.length===0&&this.checkpointer.dropCheckpointAt(t),{...r,tier:3,result:l,results:a&&l&&!h&&!m?[[l]]:void 0,error:c}}restoreTo(e){this.checkpointer&&this.checkpointer.restoreTo(e);}getCheckpointer(){return this.checkpointer}getPageManager(){return this.pageManager}preloadNextPages(e){let t=this.pageManager.getPreloadTargets(e,this.doc);t.length!==0&&(this.compilationWorker||(this.compilationWorker=new T),this.compilationWorker.compileBatch(t).then(n=>{this.compilationWorker.storeResults(n,this.doc);}).catch(n=>{}));}collectInvisibleCompileTargets(e){let t=[],n=this.doc.lineCount,i=e.endLine+1;for(let r=i;r<=n;r++){let s=this.doc.getLineAt(r);if(!s||!s.dirty||s.bytecodes.length>0&&!s.isVariableDef||s.isEmpty||chunkZWDLC4MR_cjs.m(s.text))continue;let{expressions:o}=this.extractExpressions(s);if(o.length!==0)for(let u of o)u.trim()&&t.push({lineId:s.lineId,expression:u,textHash:s.textHash});}return t}extractExpressions(e){if(e.expressions.length>0)return {expressions:e.expressions,inlineSolveCount:e.inlineSolveCount};let t=e.text.trim();if(t.length===0)return {expressions:[],inlineSolveCount:0};let n=chunk3MG7VIPL_cjs.c.findInlineSolves(e.text);return n.length>0?{expressions:n.map(i=>i.expression),inlineSolveCount:n.length}:{expressions:[t],inlineSolveCount:0}}};function he(d){return typeof d.unit=="string"?d.unit:String(d.value)}function me(d,e,t={inputType:"markdown"}){let n=d.getDocumentModel(),i=new M;i.setDocument(e);let r=new P(i,d,new chunkCR7IHPA2_cjs.a(d.getVM()));try{let s=i.lineCount;r.evaluate({startLine:1,endLine:s});let o=[],u=[],a=0;for(let l=1;l<=s;l++){let c=i.getLineAt(l),h=c.text,m=a,g=a+h.length;a=g+1;let f=c.inlineSolveCount>0,x=[],S=null,v=null;c.isEmpty||(f?x=chunkZWDLC4MR_cjs.n(h,l).map((w,I)=>{let b=c.results[I]?.[0]??null;if(b&&b.type===13){let L=he(b);return u.push(`Line ${l}: ${L}`),{...w,result:null,error:L}}return {...w,result:b,error:null}}):(S=c.expressions[0]??null,v=c.result??null,v&&v.type===13&&u.push(`Line ${l}: ${he(v)}`))),o.push({lineNumber:l,text:h,startPosition:m,endPosition:g,isEmpty:c.isEmpty,hasInlineSolves:f,inlineSolves:x,expression:S,error:null,result:v});}return {lines:o,totalLines:s,errors:u}}finally{r.terminateWorker(),d.setDocumentModel(n);}}exports.a=M;exports.b=ce;exports.c=P;exports.d=me;//# sourceMappingURL=chunk-QT4IQADG.cjs.map
3
+ //# sourceMappingURL=chunk-QT4IQADG.cjs.map