Deploying to gh-pages from @ sehugg/8bitworkshop@5c1ee18694 🚀

This commit is contained in:
sehugg committed 2026-08-18 08:41:36 +00:00
1 parent 079116cb2f
commit 28ed945fe9
80 files changed
+3432 -2609

No files matched your search

@@ -1,4 +1,4 @@
import{b as S}from"./chunk-3FIVEUG2.js";import{s as E}from"./chunk-KP2LCIGE.js";import"./chunk-7GWCUXYG.js";import"./chunk-LNOKARBD.js";import"./chunk-A7SWO6EA.js";import"./chunk-LVDMCWZP.js";import"./chunk-AA227H53.js";import{B as c,J as f,S as d,T as v,a as g}from"./chunk-BNFOPPUS.js";import"./chunk-KT7KMEQC.js";function k(u){return u.value!=null}function y(u){return u.name!=null}function N(u){return u.op!=null&&u.left!=null&&u.right!=null}function O(u){return u.op!=null&&u.expr!=null}var m=class{randomize(){this.seed(Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647)}constructor(){(()=>{var r,e,i,n;this.seed=function(s,a,h,o){r=s,e=a,i=h,n=o},this.seedfloat=function(s){this.seed(s,s*4294,s*429496,s*4294967296),this.next(),this.next(),this.next()},this.next=function(){r>>>=0,e>>>=0,i>>>=0,n>>>=0;var s=r+e|0;return r=e^e>>>9,e=i+(i<<3)|0,i=i<<21|i>>>11,n=n+1|0,s=s+n|0,i=i+s|0,(s>>>0)/4294967296}})(),this.seedfloat(-1)}},I=1024*1024,l=class u{constructor(){this.margin=80;this.running=!1;this.exited=!0;this.trace=!1}load(t){let r=null,e=0;if(this.pc2label!=null){let s=this.curpc;for(;s>0&&(r=this.pc2label.get(s))==null;)s--;e=this.curpc-s,console.log("oldpc=",this.curpc,"restart @ label",r,"+",e)}this.program=t,this.opts=t.opts,this.opts.maxArrayElements||(this.opts.maxArrayElements=I),this.allstmts=t.stmts,this.label2pc=t.labels,this.label2dataptr={},this.pc2label=new Map,this.datums=[],this.subroutines={},this.builtins=this.getBuiltinFunctions();for(var i in t.labels){var n=t.labels[i];this.pc2label.set(n,i)}return this.allstmts.forEach((s,a)=>{this.curpc=a+1,this.compileStatement(s),s.command=="DATA"&&(this.label2dataptr[s.$loc.label]=this.datums.length,s.datums.forEach(h=>{this.curpc=s.$loc.offset,this.datums.push(h)}))}),this.label2pc[r]!=null?(this.curpc=this.label2pc[r]+e,!0):(this.curpc=0,!1)}reset(){this.curpc=0,this.dataptr=0,this.clearVars(),this.returnStack=[],this.column=0,this.running=!0,this.exited=!1}clearVars(){this.globals=this.vars={},this.arrays={},this.defs={},this.forLoops={},this.forLoopStack=[],this.whileLoops=[],this.rng=new m,this.opts&&this.opts.staticArrays&&this.allstmts.filter(t=>t.command=="DIM").forEach(t=>{t.args.forEach(r=>this.compileJS(this._DIM(r))())})}saveState(){return $.extend(!0,{},this)}loadState(t){$.extend(!0,this,t)}getBuiltinFunctions(){var t=this.program&&this.opts.validFunctions;t||(t=Object.getOwnPropertyNames(u.prototype).filter(i=>/^[A-Z]{3,}[$]?$/.test(i)));var r={};for(var e of t)this.supportsFunction(e)&&(r[e]=this[e].bind(this));return r}supportsFunction(t){return typeof this[t]=="function"}runtimeError(t){throw this.curpc--,new d(t,this.getCurrentSourceLocation())}dialectError(t){this.runtimeError(`I can't ${t} in this dialect of BASIC.`)}getLineForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.line}getLabelForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.label}getCurrentSourceLocation(){var t=this.getStatement();return t&&t.$loc}getCurrentLabel(){var t=this.getCurrentSourceLocation();return t&&t.label}getStatement(){return this.allstmts[this.curpc]}step(){if(!this.running)return!1;var t=this.getStatement();return t?(this.trace&&console.log(this.curpc,t,this.vars,Object.keys(this.arrays)),this.curpc++,this.executeStatement(t),this.running):(this.running=!1,this.exited=!0,!1)}compileStatement(t){if(t.$run==null)try{var r=this["do__"+t.command];r==null&&this.runtimeError(`I don't know how to "${t.command}".`);var e=r.bind(this)(t);this.trace&&console.log(e),t.$run=this.compileJS(e)}catch(i){throw e&&console.log(e),i}}compileJS(t){return new Function(t).bind(this)}executeStatement(t){this.compileStatement(t),t.$run()}skipToEOL(){do this.curpc++;while(this.curpc<this.allstmts.length&&!this.pc2label.get(this.curpc))}skipToElse(){for(;this.curpc<this.allstmts.length;){var t=this.allstmts[this.curpc].command;if(t=="ELSE"){this.curpc++;break}else if(t=="IF")return this.skipToEOL();if(this.curpc++,this.pc2label.get(this.curpc))break}}skipToEOF(){this.curpc=this.allstmts.length}skipToAfterNext(t){for(var r=this.curpc;r<this.allstmts.length;){var e=this.allstmts[r];if(e.command=="NEXT"){var i=e.lexpr;if(i&&i.name==t){this.curpc=r+1;return}}r++}this.runtimeError(`I couldn't find a matching NEXT ${t} to skip this for loop.`)}skipToAfterWend(){for(var t=this.curpc-1,r=0;t<this.allstmts.length;){var e=this.allstmts[t];if(e.command=="WHILE")r++;else if(e.command=="WEND"&&(r--,r==0)){this.curpc=t+1;return}t++}this.runtimeError("I couldn't find a matching WEND for this WHILE.")}gotoLabel(t){var r=this.label2pc[t];r>=0?this.curpc=r:this.runtimeError(`I tried to go to the label "${t}" but couldn't find it.`)}newLocalScope(){this.vars=Object.create(this.vars)}popLocalScope(){this.vars!==this.globals&&(this.vars=Object.getPrototypeOf(this.vars))}gosubLabel(t){this.returnStack.length>32767&&this.runtimeError("I did too many GOSUBs without a RETURN."),this.returnStack.push(this.curpc),this.gotoLabel(t)}returnFrLine truncated
import{b as S}from"./chunk-3FIVEUG2.js";import{s as E}from"./chunk-LXSSE5FC.js";import"./chunk-7GWCUXYG.js";import"./chunk-LNOKARBD.js";import"./chunk-A7SWO6EA.js";import"./chunk-73C6ISBD.js";import"./chunk-AA227H53.js";import{B as c,J as f,S as d,T as v,a as g}from"./chunk-BNFOPPUS.js";import"./chunk-KT7KMEQC.js";function k(u){return u.value!=null}function y(u){return u.name!=null}function N(u){return u.op!=null&&u.left!=null&&u.right!=null}function O(u){return u.op!=null&&u.expr!=null}var m=class{randomize(){this.seed(Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647)}constructor(){(()=>{var r,e,i,n;this.seed=function(s,a,h,o){r=s,e=a,i=h,n=o},this.seedfloat=function(s){this.seed(s,s*4294,s*429496,s*4294967296),this.next(),this.next(),this.next()},this.next=function(){r>>>=0,e>>>=0,i>>>=0,n>>>=0;var s=r+e|0;return r=e^e>>>9,e=i+(i<<3)|0,i=i<<21|i>>>11,n=n+1|0,s=s+n|0,i=i+s|0,(s>>>0)/4294967296}})(),this.seedfloat(-1)}},I=1024*1024,l=class u{constructor(){this.margin=80;this.running=!1;this.exited=!0;this.trace=!1}load(t){let r=null,e=0;if(this.pc2label!=null){let s=this.curpc;for(;s>0&&(r=this.pc2label.get(s))==null;)s--;e=this.curpc-s,console.log("oldpc=",this.curpc,"restart @ label",r,"+",e)}this.program=t,this.opts=t.opts,this.opts.maxArrayElements||(this.opts.maxArrayElements=I),this.allstmts=t.stmts,this.label2pc=t.labels,this.label2dataptr={},this.pc2label=new Map,this.datums=[],this.subroutines={},this.builtins=this.getBuiltinFunctions();for(var i in t.labels){var n=t.labels[i];this.pc2label.set(n,i)}return this.allstmts.forEach((s,a)=>{this.curpc=a+1,this.compileStatement(s),s.command=="DATA"&&(this.label2dataptr[s.$loc.label]=this.datums.length,s.datums.forEach(h=>{this.curpc=s.$loc.offset,this.datums.push(h)}))}),this.label2pc[r]!=null?(this.curpc=this.label2pc[r]+e,!0):(this.curpc=0,!1)}reset(){this.curpc=0,this.dataptr=0,this.clearVars(),this.returnStack=[],this.column=0,this.running=!0,this.exited=!1}clearVars(){this.globals=this.vars={},this.arrays={},this.defs={},this.forLoops={},this.forLoopStack=[],this.whileLoops=[],this.rng=new m,this.opts&&this.opts.staticArrays&&this.allstmts.filter(t=>t.command=="DIM").forEach(t=>{t.args.forEach(r=>this.compileJS(this._DIM(r))())})}saveState(){return $.extend(!0,{},this)}loadState(t){$.extend(!0,this,t)}getBuiltinFunctions(){var t=this.program&&this.opts.validFunctions;t||(t=Object.getOwnPropertyNames(u.prototype).filter(i=>/^[A-Z]{3,}[$]?$/.test(i)));var r={};for(var e of t)this.supportsFunction(e)&&(r[e]=this[e].bind(this));return r}supportsFunction(t){return typeof this[t]=="function"}runtimeError(t){throw this.curpc--,new d(t,this.getCurrentSourceLocation())}dialectError(t){this.runtimeError(`I can't ${t} in this dialect of BASIC.`)}getLineForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.line}getLabelForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.label}getCurrentSourceLocation(){var t=this.getStatement();return t&&t.$loc}getCurrentLabel(){var t=this.getCurrentSourceLocation();return t&&t.label}getStatement(){return this.allstmts[this.curpc]}step(){if(!this.running)return!1;var t=this.getStatement();return t?(this.trace&&console.log(this.curpc,t,this.vars,Object.keys(this.arrays)),this.curpc++,this.executeStatement(t),this.running):(this.running=!1,this.exited=!0,!1)}compileStatement(t){if(t.$run==null)try{var r=this["do__"+t.command];r==null&&this.runtimeError(`I don't know how to "${t.command}".`);var e=r.bind(this)(t);this.trace&&console.log(e),t.$run=this.compileJS(e)}catch(i){throw e&&console.log(e),i}}compileJS(t){return new Function(t).bind(this)}executeStatement(t){this.compileStatement(t),t.$run()}skipToEOL(){do this.curpc++;while(this.curpc<this.allstmts.length&&!this.pc2label.get(this.curpc))}skipToElse(){for(;this.curpc<this.allstmts.length;){var t=this.allstmts[this.curpc].command;if(t=="ELSE"){this.curpc++;break}else if(t=="IF")return this.skipToEOL();if(this.curpc++,this.pc2label.get(this.curpc))break}}skipToEOF(){this.curpc=this.allstmts.length}skipToAfterNext(t){for(var r=this.curpc;r<this.allstmts.length;){var e=this.allstmts[r];if(e.command=="NEXT"){var i=e.lexpr;if(i&&i.name==t){this.curpc=r+1;return}}r++}this.runtimeError(`I couldn't find a matching NEXT ${t} to skip this for loop.`)}skipToAfterWend(){for(var t=this.curpc-1,r=0;t<this.allstmts.length;){var e=this.allstmts[t];if(e.command=="WHILE")r++;else if(e.command=="WEND"&&(r--,r==0)){this.curpc=t+1;return}t++}this.runtimeError("I couldn't find a matching WEND for this WHILE.")}gotoLabel(t){var r=this.label2pc[t];r>=0?this.curpc=r:this.runtimeError(`I tried to go to the label "${t}" but couldn't find it.`)}newLocalScope(){this.vars=Object.create(this.vars)}popLocalScope(){this.vars!==this.globals&&(this.vars=Object.getPrototypeOf(this.vars))}gosubLabel(t){this.returnStack.length>32767&&this.runtimeError("I did too many GOSUBs without a RETURN."),this.returnStack.push(this.curpc),this.gotoLabel(t)}returnFrLine truncated
`)this.column=0,e=t;else if(t==" "){var n=this.opts.printZoneLength,s=Math.floor(this.column/n),a=(s+1)*this.opts.printZoneLength;a+n>this.margin?(this.column=0,e=`
`):e=this.TAB(a)}else e=`${t}`;return e}float2str(t,r){var e=t.toString().toUpperCase();if(r>0){for(var i=r;e.length>r;)e=t.toPrecision(i--);e.startsWith("0.")?e=e.substr(1):e.startsWith("-0.")&&(e="-"+e.substr(2))}return e}printExpr(t){var r=this.valueToString(t,this.opts.numericPadding);this.column+=r.length,this.print(r)}print(t){console.log(t)}async input(t,r){return{line:"",vals:[]}}resume(){}expr2js(t,r){if(r||(r={}),k(t))return JSON.stringify(t.value);if(y(t)){if(!t.args&&r.locals&&r.locals.indexOf(t.name)>=0)return t.name;{r.isconst&&this.runtimeError("I expected a constant value here.");var e="",i=JSON.stringify(t.name);let h=t.args?t.args.map(o=>this.expr2js(o,r)).join(", "):[];return t.name.startsWith("FN")?e+=`this.getDef(${i})(${h})`:this.builtins[t.name]?(this.checkFuncArgs(t,this.builtins[t.name]),e+=`this.builtins.${t.name}(${h})`):t.args?this.opts.arraysContainChars&&t.name.endsWith("$")?e+=`this.getStringSlice(this.vars.${t.name}, ${h})`:e+=`this.arrayGet(${i}, ${h})`:e+=`this.vars.${t.name}`,r.novalid?e:`this.checkValue(${e}, ${i})`}}else if(N(t)){var n=this.expr2js(t.left,r),s=this.expr2js(t.right,r);return`this.${t.op}(${n}, ${s})`}else if(O(t)){var a=this.expr2js(t.expr,r);return`this.${t.op}(${a})`}}assign2js(t,r){r||(r={});var e="";return(t.name.startsWith("FN")||this.builtins[t.name])&&this.runtimeError("I can't call a function here."),t.args?this.opts.arraysContainChars&&t.name.endsWith("$")?this.runtimeError("I can't set array slices via this command yet."):e+=this.array2js(t,r):e=`this.globals.${t.name}`,e}array2js(t,r){var e=JSON.stringify(t.name),i=t.args||[];return this.expr2js(t,{novalid:!0})+`;this.getArray(${e}, ${i.length})`+i.map(n=>"[this.ROUND("+this.expr2js(n,r)+")]").join("")}checkFuncArgs(t,r){var e=t.args?t.args.length:0;t.name=="RND"&&e==0||t.name=="MID$"&&e==2||t.name=="INSTR"&&e==2||r.length!=e&&this.runtimeError(`I expected ${r.length} arguments for the ${t.name} function, but I got ${e}.`)}startForLoop(t,r,e,i,n){var s=this.curpc-1,a=this.pc2label.get(s);i||(i=1),this.vars[t]=r,this.trace&&console.log(`FOR ${t} = ${r} TO ${e} STEP ${i}`);var h=()=>i>=0?this.vars[t]>e:this.vars[t]<e;this.opts.testInitialFor&&h()&&(n!=null?this.curpc=n+1:this.skipToAfterNext(t)),this.forLoopStack[t]!=null&&(this.forLoopStack=this.forLoopStack.filter(o=>o==t)),this.forLoopStack.push(t),this.forLoops[t]={$next:o=>{o&&t!=o&&this.runtimeError(`I executed NEXT "${o}", but the last FOR was for "${t}".`),this.vars[t]+=i;var b=h();b?(this.forLoopStack.pop(),delete this.forLoops[t]):this.curpc=(a!=null&&this.label2pc[a]||s)+1,this.trace&&console.log(`NEXT ${t}: ${this.vars[t]} TO ${e} STEP ${i} DONE=${b}`)}}}nextForLoop(t){var r=this.forLoops[t||this.opts.optionalNextVar&&this.forLoopStack[this.forLoopStack.length-1]];r||this.runtimeError("I couldn't find a matching FOR for this NEXT."),r.$next(t)}whileLoop(t){t?this.whileLoops.push(this.curpc-1):this.skipToAfterWend()}nextWhileLoop(){var t=this.whileLoops.pop();t==null?this.runtimeError("I couldn't find a matching WHILE for this WEND."):this.curpc=t}assign(t,r,e){return e&&t.endsWith("$")?this.checkValue(this.convert(t,r),t):t.endsWith("$")?this.convertToString(r,t):this.convertToNumber(r,t)}convert(t,r){return t.endsWith("$")?r==null?"":r.toString():typeof r=="number"?r:parseFloat(r+"")}convertToString(t,r){if(typeof t!="string")this.runtimeError(`I can't convert ${t} to a string.`);else return t}convertToNumber(t,r){if(typeof t!="number")this.runtimeError(`I can't convert ${t} to a number.`);else return this.checkNum(t)}dimArray(t,...r){if(r=r.map(Math.round),this.arrays[t]!=null){if(this.opts.staticArrays)return;this.runtimeError(`I already dimensioned this array (${t}) earlier.`)}var e=this.getTotalArrayLength(r);e>this.opts.maxArrayElements&&this.runtimeError("I can't create an array with this many elements.");var i=t.endsWith("$"),n=i?Array:Float64Array;if(r.length==1)this.arrays[t]=new n(r[0]+1);else if(r.length==2){this.arrays[t]=new Array(r[0]+1);for(var s=0;s<r[0]+1;s++)this.arrays[t][s]=new n(r[1]+1)}else this.runtimeError("I only support arrays of one or two dimensions.")}getTotalArrayLength(t){for(var r=1,e=0;e<t.length;e++)t[e]<this.opts.defaultArrayBase&&this.runtimeError(`I can't create an array with a dimension less than ${this.opts.defaultArrayBase}.`),r*=t[e];return r}getArray(t,r){return this.arrays[t]||(this.opts.defaultArraySize==0&&this.dialectError("automatically declare arrays without a DIM statement (or did you mean to call a function?)"),r==1?this.dimArray(t,this.opts.defaultArraySize-1):r==2?this.dimArray(t,this.opts.defaultArraySize-1,this.opts.defaultArraySize-1):this.runtimeError("I only support arrays of one or two dimensions.")),this.arrays[t]}arrayGet(t,...r){var e=this.getArray(t,r.length);r=r.map(this.ROUND.bind(this));for(var i=e,n=0;n<r.length;n++){var s=r[n];c(i)||this.runtimeError(`I tried to lookup ${t}(${r}) but used too many dimensions.`),s<this.opts.defaultArrayBase&&this.runtimeError(`I triedLine truncated
var value = this.convert(${JSON.stringify(n.name)}, response.vals[${s}]);
@@ -34,4 +34,4 @@ import{b as S}from"./chunk-3FIVEUG2.js";import{s as E}from"./chunk-KP2LCIGE.js";
`),this.tty.addtext("*** END OF PROGRAM ***",1),this.tty.showPrintHead(!1)}loadROM(t,r){var e=this.runtime.exited;this.program=r;var i=this.runtime.load(r);this.tty.uppercaseOnly=!0,(!this.hotReload||e||!i)&&this.reset()}getROMExtension(){return".json"}reset(){this.tty.clear(),this.runtime.reset(),this.clock=0,this.transcript=[]}pause(){this.timer.stop()}resume(){this.isBlocked()||(this.animcount=0,this.timer.start())}isBlocked(){return this.tty.waitingfor!=null||this.runtime.exited}isRunning(){return this.timer.isRunning()}getDefaultExtensions(){return[".bas"]}getToolForFilename(){return"basic"}getPresets(){return L}getPC(){return this.runtime.curpc}getSP(){return 4096-this.runtime.returnStack.length}isStable(){return!0}getCPUState(){return{PC:this.getPC(),SP:this.getSP()}}saveState(){return{c:this.getCPUState(),rt:this.runtime.saveState()}}loadState(t){this.runtime.loadState(t)}getDebugTree(){return{CurrentLine:this.runtime.getCurrentLabel(),Variables:this.runtime.vars,Arrays:this.runtime.arrays,Functions:this.runtime.defs,ForLoops:this.runtime.forLoops,WhileLoops:this.runtime.whileLoops,ReturnStack:this.runtime.returnStack,NextDatum:this.runtime.datums[this.runtime.dataptr],Clock:this.clock,Options:this.runtime.opts,Internals:this.runtime}}inspect(t){let r=this.runtime.vars[t];if(r!=null)return`${t} = ${r}`}showHelp(){return"https://8bitworkshop.com/docs/platforms/basic/"}getDebugCategories(){return["Variables"]}getDebugInfo(t,r){switch(t){case"Variables":return this.varsToLongString()}}varsToLongString(){var t="",r=Object.keys(this.runtime.vars);r.sort();for(var e of r){var i=this.runtime.vars[e],n=JSON.stringify(i);n.length>24&&(n=`${n.substr(0,24)}...(${n.length})`),t+=g(e,3)+" = "+n+`
`}return t}setupDebug(t){this.onBreakpointHit=t}clearDebug(){this.onBreakpointHit=null,this.debugTrap=null}checkDebugTrap(){return this.debugTrap&&this.debugTrap()?(this.pause(),this.break(),!0):!1}break(){this.onBreakpointHit&&this.onBreakpointHit(this.saveState())}step(){var t=this.clock;this.debugTrap=()=>this.clock>t,this.resume()}stepOver(){var t=this.runtime.getStatement();if(t&&(t.command=="GOSUB"||t.command=="ONGOSUB")){var r=this.getPC()+1;this.runEval(()=>this.getPC()==r)}else this.step()}runUntilReturn(){var t=this.getSP();this.runEval(()=>this.getSP()>t)}runEval(t){this.debugTrap=()=>t(this.getCPUState()),this.resume()}restartAtPC(t){return t=Math.round(t),t>=0&&t<this.runtime.allstmts.length?(this.runtime.curpc=t,this.tty.cancelinput(),this.clock=0,!0):!1}readFile(t){return this.internalFiles[t]}writeFile(t,r){return this.internalFiles[t]=r,!0}didExit(){this.internalFiles["stdout.txt"]=this.transcript.join(""),E()}};f.basic=p;
//# sourceMappingURL=basic-N2UCUE33.js.map
//# sourceMappingURL=basic-4DSOKLQV.js.map
File renamed without changes.
@@ -1,2 +1,2 @@
import{L as b,M as w}from"./chunk-BNFOPPUS.js";import{d as E}from"./chunk-KT7KMEQC.js";var y=E((d,v)=>{(function(l,e){typeof define=="function"&&define.amd?define([],e):typeof d!="undefined"?e():(e(),l.FileSaver={})})(d,function(){"use strict";function l(t,r){return typeof r=="undefined"?r={autoBom:!1}:typeof r!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),r={autoBom:!r}),r.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(t.type)?new Blob(["\uFEFF",t],{type:t.type}):t}function e(t,r,c){var a=new XMLHttpRequest;a.open("GET",t),a.responseType="blob",a.onload=function(){h(a.response,r,c)},a.onerror=function(){console.error("could not download file")},a.send()}function o(t){var r=new XMLHttpRequest;r.open("HEAD",t,!1);try{r.send()}catch(c){}return 200<=r.status&&299>=r.status}function i(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(c){var r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(r)}}var n=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:void 0,u=n.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),h=n.saveAs||(typeof window!="object"||window!==n?function(){}:"download"in HTMLAnchorElement.prototype&&!u?function(t,r,c){var a=n.URL||n.webkitURL,s=document.createElement("a");r=r||t.name||"download",s.download=r,s.rel="noopener",typeof t=="string"?(s.href=t,s.origin===location.origin?i(s):o(s.href)?e(t,r,c):i(s,s.target="_blank")):(s.href=a.createObjectURL(t),setTimeout(function(){a.revokeObjectURL(s.href)},4e4),setTimeout(function(){i(s)},0))}:"msSaveOrOpenBlob"in navigator?function(t,r,c){if(r=r||t.name||"download",typeof t!="string")navigator.msSaveOrOpenBlob(l(t,c),r);else if(o(t))e(t,r,c);else{var a=document.createElement("a");a.href=t,a.target="_blank",setTimeout(function(){i(a)})}}:function(t,r,c,a){if(a=a||open("","_blank"),a&&(a.document.title=a.document.body.innerText="downloading..."),typeof t=="string")return e(t,r,c);var s=t.type==="application/octet-stream",C=/constructor/i.test(n.HTMLElement)||n.safari,S=/CriOS\/[\d]+/.test(navigator.userAgent);if((S||s&&C||u)&&typeof FileReader!="undefined"){var p=new FileReader;p.onloadend=function(){var m=p.result;m=S?m:m.replace(/^data:[^;]*;/,"data:attachment/file;"),a?a.location.href=m:location=m,a=null},p.readAsDataURL(t)}else{var k=n.URL||n.webkitURL,f=k.createObjectURL(t);a?a.location=f:location.href=f,a=null,setTimeout(function(){k.revokeObjectURL(f)},4e4)}});n.saveAs=h.saveAs=h,typeof v!="undefined"&&(v.exports=h)})});var g=class{constructor(e){this.checkpointInterval=10;this.maxCheckpoints=300;this.reset(),this.platform=e}reset(){this.checkpoints=[],this.framerecs=[],this.frameCount=0,this.lastSeekFrame=0,this.lastSeekStep=0,this.lastStepCount=0,this.callbackStateChanged&&this.callbackStateChanged()}frameRequested(){var e={controls:this.platform.saveControlsState(),seed:b()},o=!1;return this.lastSeekFrame<this.frameCount?this.loadControls(this.lastSeekFrame):(this.platform.saveControlsState&&this.framerecs.push(e),o=this.frameCount++%this.checkpointInterval==0),this.lastSeekFrame++,this.lastSeekStep=0,this.callbackStateChanged&&this.callbackStateChanged(),o}numFrames(){return this.frameCount}currentFrame(){return this.lastSeekFrame}currentStep(){return this.lastSeekStep}recordFrame(e){this.checkpoints.push(e),this.callbackNewCheckpoint&&this.callbackNewCheckpoint(e),this.checkpoints.length>this.maxCheckpoints&&(this.checkpoints.shift(),this.framerecs=this.framerecs.slice(this.checkpointInterval),this.lastSeekFrame-=this.checkpointInterval,this.frameCount-=this.checkpointInterval,this.callbackStateChanged&&this.callbackStateChanged())}getStateAtOrBefore(e){if(e<=0&&this.checkpoints.length>0)return{frame:0,state:this.checkpoints[0]};var o=Math.floor(e/this.checkpointInterval),i=o<this.checkpoints.length?o:this.checkpoints.length-1,n=i*this.checkpointInterval;return{frame:n,state:this.checkpoints[i]}}loadFrame(e,o){if(e|=0,o|=0,e==this.lastSeekFrame&&o==this.lastSeekStep)return e;let{frame:i,state:n}=this.getStateAtOrBefore(e-1);if(n){var u=0;for(this.platform.pause(),this.platform.loadState(n);i<e;)i<this.framerecs.length&&this.loadControls(i),i++,u=this.platform.advance(i<e);return i==0&&(u=this.platform.advance(!0),this.platform.loadState(n)),o>0&&this.platform.advanceFrameClock&&(o=this.platform.advanceFrameClock(null,o)),this.lastSeekFrame=e,this.lastSeekStep=o,this.lastStepCount=u,e}else return-1}loadControls(e){this.platform.loadControlsState&&this.platform.loadControlsState(this.framerecs[e].controls),w(this.framerecs[e].seed)}getLastCheckpoint(){return this.checkpoints.length&&this.checkpoints[this.checkpoints.length-1]}};function R(l){switch(l){case"apple2":return import("./apple2-X6MJKSIN.js");case"arm32"Line truncated
//# sourceMappingURL=chunk-LVDMCWZP.js.map
import{L as b,M as w}from"./chunk-BNFOPPUS.js";import{d as E}from"./chunk-KT7KMEQC.js";var y=E((d,v)=>{(function(l,e){typeof define=="function"&&define.amd?define([],e):typeof d!="undefined"?e():(e(),l.FileSaver={})})(d,function(){"use strict";function l(t,r){return typeof r=="undefined"?r={autoBom:!1}:typeof r!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),r={autoBom:!r}),r.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(t.type)?new Blob(["\uFEFF",t],{type:t.type}):t}function e(t,r,c){var a=new XMLHttpRequest;a.open("GET",t),a.responseType="blob",a.onload=function(){h(a.response,r,c)},a.onerror=function(){console.error("could not download file")},a.send()}function o(t){var r=new XMLHttpRequest;r.open("HEAD",t,!1);try{r.send()}catch(c){}return 200<=r.status&&299>=r.status}function i(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(c){var r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(r)}}var n=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:void 0,u=n.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),h=n.saveAs||(typeof window!="object"||window!==n?function(){}:"download"in HTMLAnchorElement.prototype&&!u?function(t,r,c){var a=n.URL||n.webkitURL,s=document.createElement("a");r=r||t.name||"download",s.download=r,s.rel="noopener",typeof t=="string"?(s.href=t,s.origin===location.origin?i(s):o(s.href)?e(t,r,c):i(s,s.target="_blank")):(s.href=a.createObjectURL(t),setTimeout(function(){a.revokeObjectURL(s.href)},4e4),setTimeout(function(){i(s)},0))}:"msSaveOrOpenBlob"in navigator?function(t,r,c){if(r=r||t.name||"download",typeof t!="string")navigator.msSaveOrOpenBlob(l(t,c),r);else if(o(t))e(t,r,c);else{var a=document.createElement("a");a.href=t,a.target="_blank",setTimeout(function(){i(a)})}}:function(t,r,c,a){if(a=a||open("","_blank"),a&&(a.document.title=a.document.body.innerText="downloading..."),typeof t=="string")return e(t,r,c);var s=t.type==="application/octet-stream",C=/constructor/i.test(n.HTMLElement)||n.safari,S=/CriOS\/[\d]+/.test(navigator.userAgent);if((S||s&&C||u)&&typeof FileReader!="undefined"){var p=new FileReader;p.onloadend=function(){var m=p.result;m=S?m:m.replace(/^data:[^;]*;/,"data:attachment/file;"),a?a.location.href=m:location=m,a=null},p.readAsDataURL(t)}else{var k=n.URL||n.webkitURL,f=k.createObjectURL(t);a?a.location=f:location.href=f,a=null,setTimeout(function(){k.revokeObjectURL(f)},4e4)}});n.saveAs=h.saveAs=h,typeof v!="undefined"&&(v.exports=h)})});var g=class{constructor(e){this.checkpointInterval=10;this.maxCheckpoints=300;this.reset(),this.platform=e}reset(){this.checkpoints=[],this.framerecs=[],this.frameCount=0,this.lastSeekFrame=0,this.lastSeekStep=0,this.lastStepCount=0,this.callbackStateChanged&&this.callbackStateChanged()}frameRequested(){var e={controls:this.platform.saveControlsState(),seed:b()},o=!1;return this.lastSeekFrame<this.frameCount?this.loadControls(this.lastSeekFrame):(this.platform.saveControlsState&&this.framerecs.push(e),o=this.frameCount++%this.checkpointInterval==0),this.lastSeekFrame++,this.lastSeekStep=0,this.callbackStateChanged&&this.callbackStateChanged(),o}numFrames(){return this.frameCount}currentFrame(){return this.lastSeekFrame}currentStep(){return this.lastSeekStep}recordFrame(e){this.checkpoints.push(e),this.callbackNewCheckpoint&&this.callbackNewCheckpoint(e),this.checkpoints.length>this.maxCheckpoints&&(this.checkpoints.shift(),this.framerecs=this.framerecs.slice(this.checkpointInterval),this.lastSeekFrame-=this.checkpointInterval,this.frameCount-=this.checkpointInterval,this.callbackStateChanged&&this.callbackStateChanged())}getStateAtOrBefore(e){if(e<=0&&this.checkpoints.length>0)return{frame:0,state:this.checkpoints[0]};var o=Math.floor(e/this.checkpointInterval),i=o<this.checkpoints.length?o:this.checkpoints.length-1,n=i*this.checkpointInterval;return{frame:n,state:this.checkpoints[i]}}loadFrame(e,o){if(e|=0,o|=0,e==this.lastSeekFrame&&o==this.lastSeekStep)return e;let{frame:i,state:n}=this.getStateAtOrBefore(e-1);if(n){var u=0;for(this.platform.pause(),this.platform.loadState(n);i<e;)i<this.framerecs.length&&this.loadControls(i),i++,u=this.platform.advance(i<e);return i==0&&(u=this.platform.advance(!0),this.platform.loadState(n)),o>0&&this.platform.advanceFrameClock&&(o=this.platform.advanceFrameClock(null,o)),this.lastSeekFrame=e,this.lastSeekStep=o,this.lastStepCount=u,e}else return-1}loadControls(e){this.platform.loadControlsState&&this.platform.loadControlsState(this.framerecs[e].controls),w(this.framerecs[e].seed)}getLastCheckpoint(){return this.checkpoints.length&&this.checkpoints[this.checkpoints.length-1]}};function R(l){switch(l){case"apple2":return import("./apple2-X6MJKSIN.js");case"arm32"Line truncated
//# sourceMappingURL=chunk-73C6ISBD.js.map
@@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../node_modules/file-saver/src/FileSaver.js", "../src/common/recorder.ts", "../src/platform/_index.ts"],
"sourcesContent": ["/*\n* FileSaver.js\n* A saveAs() FileSaver implementation.\n*\n* By Eli Grey, http://eligrey.com\n*\n* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n* source : http://purl.eligrey.com/github/FileSaver.js\n*/\n\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nvar _global = typeof window === 'object' && window.window === window\n ? window : typeof self === 'object' && self.self === self\n ? self : typeof global === 'object' && global.global === global\n ? global\n : this\n\nfunction bom (blob, opts) {\n if (typeof opts === 'undefined') opts = { autoBom: false }\n else if (typeof opts !== 'object') {\n console.warn('Deprecated: Expected third argument to be a object')\n opts = { autoBom: !opts }\n }\n\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (opts.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type })\n }\n return blob\n}\n\nfunction download (url, name, opts) {\n var xhr = new XMLHttpRequest()\n xhr.open('GET', url)\n xhr.responseType = 'blob'\n xhr.onload = function () {\n saveAs(xhr.response, name, opts)\n }\n xhr.onerror = function () {\n console.error('could not download file')\n }\n xhr.send()\n}\n\nfunction corsEnabled (url) {\n var xhr = new XMLHttpRequest()\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false)\n try {\n xhr.send()\n } catch (e) {}\n return xhr.status >= 200 && xhr.status <= 299\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click (node) {\n try {\n node.dispatchEvent(new MouseEvent('click'))\n } catch (e) {\n var evt = document.createEvent('MouseEvents')\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,\n 20, false, false, false, false, 0, null)\n node.dispatchEvent(evt)\n }\n}\n\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nvar isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)\n\nvar saveAs = _global.saveAs || (\n // probably in some web worker\n (typeof window !== 'object' || window !== _global)\n ? function saveAs () { /* noop */ }\n\n // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView\n : ('download' in HTMLAnchorElement.prototype && !isMacOSWebView)\n ? function saveAs (blob, name, opts) {\n var URL = _global.URL || _global.webkitURL\n var a = document.createElement('a')\n name = name || blob.name || 'download'\n\n a.download = name\n a.rel = 'noopener' // tabnabbing\n\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob\n if (a.origin !== location.origin) {\n corsEnabled(a.href)\n ? download(blob, name, opts)\n : click(a, a.target = '_blank')\n } else {\n click(a)\n }\n } else {\n // Support blobs\n a.href = URL.createObjectURL(blob)\n setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s\n setTimeout(function () { click(a) }, 0)\n }\n }\n\n // Use msSaveOrOpenBlob as a second approach\n : 'msSaveOrOpenBlob' in navigator\n ? function saveAs (blob, name, opts) {\n name = name || blob.name || 'download'\n\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts)\n } else {\n var a = document.createElement('a')\n a.href = blob\n a.target = '_blank'\n setTimeout(function () { click(a) })\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name)\n }\n }\n\n // Fallback to using FileReader and a popup\n : function saveAs (blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank')\n if (popup) {\n popup.document.title =\n popup.document.body.innerText = 'downloading...'\n }\n\n if (typeof blob === 'string') return download(blob, name, opts)\n\n var force = blob.type === 'application/octet-stream'\n var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari\n var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent)\n\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefiLine truncated
"mappings": "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 truncated
"sourcesContent": ["/*\n* FileSaver.js\n* A saveAs() FileSaver implementation.\n*\n* By Eli Grey, http://eligrey.com\n*\n* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n* source : http://purl.eligrey.com/github/FileSaver.js\n*/\n\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nvar _global = typeof window === 'object' && window.window === window\n ? window : typeof self === 'object' && self.self === self\n ? self : typeof global === 'object' && global.global === global\n ? global\n : this\n\nfunction bom (blob, opts) {\n if (typeof opts === 'undefined') opts = { autoBom: false }\n else if (typeof opts !== 'object') {\n console.warn('Deprecated: Expected third argument to be a object')\n opts = { autoBom: !opts }\n }\n\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (opts.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type })\n }\n return blob\n}\n\nfunction download (url, name, opts) {\n var xhr = new XMLHttpRequest()\n xhr.open('GET', url)\n xhr.responseType = 'blob'\n xhr.onload = function () {\n saveAs(xhr.response, name, opts)\n }\n xhr.onerror = function () {\n console.error('could not download file')\n }\n xhr.send()\n}\n\nfunction corsEnabled (url) {\n var xhr = new XMLHttpRequest()\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false)\n try {\n xhr.send()\n } catch (e) {}\n return xhr.status >= 200 && xhr.status <= 299\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click (node) {\n try {\n node.dispatchEvent(new MouseEvent('click'))\n } catch (e) {\n var evt = document.createEvent('MouseEvents')\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,\n 20, false, false, false, false, 0, null)\n node.dispatchEvent(evt)\n }\n}\n\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nvar isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)\n\nvar saveAs = _global.saveAs || (\n // probably in some web worker\n (typeof window !== 'object' || window !== _global)\n ? function saveAs () { /* noop */ }\n\n // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView\n : ('download' in HTMLAnchorElement.prototype && !isMacOSWebView)\n ? function saveAs (blob, name, opts) {\n var URL = _global.URL || _global.webkitURL\n var a = document.createElement('a')\n name = name || blob.name || 'download'\n\n a.download = name\n a.rel = 'noopener' // tabnabbing\n\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob\n if (a.origin !== location.origin) {\n corsEnabled(a.href)\n ? download(blob, name, opts)\n : click(a, a.target = '_blank')\n } else {\n click(a)\n }\n } else {\n // Support blobs\n a.href = URL.createObjectURL(blob)\n setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s\n setTimeout(function () { click(a) }, 0)\n }\n }\n\n // Use msSaveOrOpenBlob as a second approach\n : 'msSaveOrOpenBlob' in navigator\n ? function saveAs (blob, name, opts) {\n name = name || blob.name || 'download'\n\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts)\n } else {\n var a = document.createElement('a')\n a.href = blob\n a.target = '_blank'\n setTimeout(function () { click(a) })\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name)\n }\n }\n\n // Fallback to using FileReader and a popup\n : function saveAs (blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank')\n if (popup) {\n popup.document.title =\n popup.document.body.innerText = 'downloading...'\n }\n\n if (typeof blob === 'string') return download(blob, name, opts)\n\n var force = blob.type === 'application/octet-stream'\n var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari\n var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent)\n\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefiLine truncated
"mappings": "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 truncated
"names": ["b", "a", "c", "d", "g", "e", "f", "h", "i", "j", "k", "l", "m", "module", "StateRecorderImpl", "platform", "controls", "getNoiseSeed", "requested", "state", "frame", "bufidx", "foundidx", "foundframe", "seekframe", "seekstep", "numSteps", "setNoiseSeed", "importPlatform", "name"]
}
-7
View File
@@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../node_modules/localforage/dist/localforage.js", "../node_modules/jquery/dist/jquery.js", "../node_modules/dompurify/src/utils.ts", "../node_modules/dompurify/src/tags.ts", "../node_modules/dompurify/src/attrs.ts", "../node_modules/dompurify/src/regexp.ts", "../node_modules/dompurify/src/purify.ts", "../src/ide/ui.ts", "../src/ide/dialogs.ts", "../node_modules/@marijn/find-cluster-break/src/index.js", "../node_modules/@codemirror/state/dist/index.js", "../node_modules/style-mod/src/style-mod.js", "../node_modules/w3c-keyname/index.js", "../node_modules/crelt/index.js", "../node_modules/@codemirror/view/dist/index.js", "../node_modules/@lezer/common/dist/index.js", "../node_modules/@lezer/highlight/dist/index.js", "../node_modules/@codemirror/language/dist/index.js", "../node_modules/@codemirror/autocomplete/dist/index.js", "../src/ide/views/debug.ts", "../node_modules/@codemirror/commands/dist/index.js", "../src/ide/views/tabs.ts", "../src/ide/settings.ts", "../src/ide/project.ts", "../src/common/workertypes.ts", "../src/ide/services.ts", "../src/common/audio/CommodoreTape.ts", "../src/ide/shareexport.ts", "../src/ide/sync.ts", "../src/ide/pixeleditor.ts", "../src/ide/views/baseviews.ts", "../src/ide/views/asseteditor.ts", "../src/common/vtextscroller.ts", "../src/ide/views/debugviews.ts", "../node_modules/@lezer/lr/dist/index.js", "../node_modules/@lezer/cpp/dist/index.js", "../node_modules/@codemirror/lang-cpp/dist/index.js", "../node_modules/@lezer/markdown/dist/index.js", "../node_modules/@lezer/html/dist/index.js", "../node_modules/@lezer/css/dist/index.js", "../node_modules/@codemirror/lang-css/dist/index.js", "../node_modules/@lezer/javascript/dist/index.js", "../node_modules/@codemirror/lang-javascript/dist/index.js", "../node_modules/@codemirror/lang-html/dist/index.js", "../node_modules/@codemirror/lang-markdown/dist/index.js", "../node_modules/@codemirror/search/dist/index.js", "../src/parser/tokens-6502.ts", "parser/lang-6502.grammar.js", "../src/parser/lang-6502.ts", "../src/parser/lang-basic.ts", "../src/parser/lang-bataribasic.ts", "../src/parser/lang-dialog.ts", "../src/parser/lang-fastbasic.ts", "../src/parser/lang-inform6.ts", "../src/parser/lang-verilog.ts", "../src/parser/lang-wiz.ts", "../src/parser/tokens-z80.ts", "parser/lang-z80.grammar.js", "../src/parser/lang-z80.ts", "../src/themes/cobalt.ts", "../src/themes/disassemblyTheme.ts", "../src/themes/editorTheme.ts", "../src/themes/mbo.ts", "../src/ide/views/assetdecorations.ts", "../src/ide/views/filters.ts", "../src/ide/views/gutter.ts", "../src/ide/views/visuals.ts", "../src/ide/views/editors.ts", "../src/ide/views/treeviews.ts", "../src/ide/windows.ts"],
"sourcesContent": ["/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callLine truncated
"mappings": "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 truncated
"names": ["require_localforage", "__commonJSMin", "exports", "module", "f", "g", "define", "e", "t", "n", "r", "s", "o", "u", "a", "__require", "i", "l", "_dereq_", "global", "Mutation", "scheduleDrain", "called", "observer", "nextTick", "element", "channel", "scriptEl", "draining", "queue", "oldQueue", "len", "immediate", "task", "INTERNAL", "handlers", "REJECTED", "FULFILLED", "PENDING", "Promise", "resolver", "safelyResolveThenable", "onRejected", "onFulfilled", "promise", "unwrap", "QueueItem", "value", "func", "returnValue", "self", "result", "tryCatch", "getThen", "thenable", "error", "obj", "then", "onError", "onSuccess", "tryToUnwrap", "out", "resolve", "reject", "reason", "all", "iterable", "values", "resolved", "allResolver", "resolveFromAll", "outValue", "race", "response", "_typeof", "_classCallCheck", "instance", "Constructor", "getIDB", "idb", "isIndexedDBValid", "isSafari", "hasFetch", "createBlob", "parts", "properties", "Builder", "builder", "Promise$1", "executeCallback", "callback", "executeTwoCallbacks", "errorCallback", "normalizeKey", "key", "getCallback", "DETECT_BLOB_SUPPORT_STORE", "supportsBlobs", "dbContexts", "toString", "READ_ONLY", "READ_WRITE", "_binStringToArrayBuffer", "bin", "length", "buf", "arr", "_checkBlobSupportWithoutCaching", "txn", "blob", "matchedChrome", "matchedEdge", "_checkBlobSupport", "_deferReadiness", "dbInfo", "dbContext", "deferredOperation", "_advanceReadiness", "_rejectReadiness", "err", "_getConnection", "upgradeNeeded", "createDbContext", "dbArgs", "openreq", "db", "ex", "_getOriginalConnection", "_getUpgradedConnection", "_isUpgradeNeeded", "defaultVersion", "isNewStore", "isDowngrade", "isUpgrade", "incVersion", "_encodeBlob", "reader", "base64", "_decodeBlob", "encodedBlob", "arrayBuff", "_isEncodedBlob", "_fullyReady", "_tryReconnect", "forages", "forage", "createTransaction", "mode", "retries", "tx", "_initStorage", "options", "initPromises", "ignoreErrors", "j", "k", "getItem", "transaction", "store", "req", "iterate", "iterator", "iterationNumber", "cursor", "setItem", "blobSupport", "removeItem", "clear", "advanced", "keys", "dropInstance", "currentConfig", "isCurrentDb", "dbPromise", "newVersion", "dropObjectPromise", "_forage2", "dropDBPromise", "_forage", "asyncStorage", "isWebSQLValid", "BASE_CHARS", "BLOB_TYPE_PREFIX", "BLOB_TYPE_PREFIX_REGEX", "SERIALIZED_MARKER", "SERIALIZED_MARKER_LENGTH", "TYPE_ARRAYBUFFER", "TYPE_BLOB", "TYPE_INT8ARRAY", "TYPE_UINT8ARRAY", "TYPE_UINT8CLAMPEDARRAY", "TYPE_INT16ARRAY", "TYPE_INT32ARRAY", "TYPE_UINT16ARRAY", "TYPE_UINT32ARRAY", "TYPE_FLOAT32ARRAY", "TYPE_FLOAT64ARRAY", "TYPE_SERIALIZED_MARKER_LENGTH", "toString$1", "stringToBuffer", "serializedString", "bufferLength", "p", "encoded1", "encoded2", "encoded3", "encoded4", "buffer", "bytes", "bufferToString", "base64String", "serialize", "valueType", "marker", "fileReader", "str", "deserialize", "type", "blobType", "matcher", "localforageSerializer", "createDbTable", "_initStorage$1", "dbInfoPromise", "tryExecuteSql", "sqlStatement", "args", "results", "getItem$1", "iterate$1", "rows", "item", "_setItem", "retriesLeft", "originalValue", "sqlError", "setItem$1", "removeItem$1", "clear$1", "length$1", "key$1", "keys$1", "getAllStoreNames", "storeNames", "dropInstance$1", "operationInfo", "dropTable", "storeName", "operations", "webSQLStorage", "isLocalStorageValid", "_getKeyPrefix", "defaultConfig", "keyPrefix", "checkIfLocalStorageThrows", "localStorageTestKey", "_isLocalStorageUsable", "_initStorage$2", "clear$2", "getItem$2", "iterate$2", "keyPrefixLength", "key$2", "keys$2", "itemKey", "length$2", "removeItem$2", "setItem$2", "dropInstance$2", "localStorageWrapper", "sameValue", "x", "y", "includes", "array", "searchElement", "isArray", "arg", "DefinedDrivers", "DriverSupport", "DefaultDrivers", "DefaultDriverOrder", "OptionalDriverMethods", "LibraryMethods", "DefaultConfig", "callWhenReady", "localForageInstance", "libraryMethod", "_args", "extend", "_key", "LocalForage", "driverTypeKey", "driver", "driverName", "driverObject", "complianceError", "driverMethods", "driverMethodName", "isRequired", "configureMissingMethods", "methodNotImplementedFactory", "methodName", "_i", "_len", "optionalDriverMethod", "setDriverSupport", "support", "getDriverPromise", "serializerPromise", "drivers", "supportedDrivers", "setDriverToConfig", "extendSelfWithDriver", "initDriver", "currentDriverIndex", "driverPromiseLoop", "oldDriverSetDone", "libraryMethodsAndProperties", "localforage_js", "require_jquery", "__commonJSMin", "exports", "module", "global", "factory", "w", "window", "noGlobal", "arr", "getProto", "slice", "flat", "array", "push", "indexOf", "class2type", "toString", "hasOwn", "fnToString", "ObjectFunctionString", "support", "isFunction", "obj", "isWindow", "document", "preservedScriptAttributes", "DOMEval", "code", "node", "doc", "i", "val", "script", "toType", "version", "rhtmlSuffix", "jQuery", "selector", "context", "num", "elems", "ret", "callback",Line truncated
}
+47 -47
View File
@@ -1,24 +1,24 @@
import{a as yc,b as Sc,c as Lo,d as z1}from"./chunk-7GWCUXYG.js";import{a as E1}from"./chunk-LNOKARBD.js";import{a as vc}from"./chunk-A7SWO6EA.js";import{a as r0,b as n0,c as Y1}from"./chunk-LVDMCWZP.js";import{D as Yu,J as ju,t as t0,u as i0}from"./chunk-AA227H53.js";import{A as Gs,E as gr,F as Au,G as jo,I as bc,J as Eu,S as zu,U as e0,a as fn,aa as xc,b as Ua,d as xi,e as Cu,f as vi,g as pt,h as Zu,i as Fg,k as Hg,m as dc,n as pc,o as mc,p as Ns,q as Kg,t as gc,w as Jg,x as Uu,y as Aa,z as Zi}from"./chunk-BNFOPPUS.js";import{a as Vt,b as Oc,c as Za,d as _u,e as Ru}from"./chunk-KT7KMEQC.js";var Wu=_u((s0,Lu)=>{(function(i){if(typeof s0=="object"&&typeof Lu!="undefined")Lu.exports=i();else if(typeof define=="function"&&define.amd)define([],i);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=i()}})(function(){var i,e,t;return(function r(n,s,o){function a(f,O){if(!s[f]){if(!n[f]){var p=typeof Za=="function"&&Za;if(!O&&p)return p(f,!0);if(l)return l(f,!0);var b=new Error("Cannot find module '"+f+"'");throw b.code="MODULE_NOT_FOUND",b}var S=s[f]={exports:{}};n[f][0].call(S.exports,function(P){var X=n[f][1][P];return a(X||P)},S,S.exports,r,n,s,o)}return s[f].exports}for(var l=typeof Za=="function"&&Za,c=0;c<o.length;c++)a(o[c]);return a})({1:[function(r,n,s){(function(o){"use strict";var a=o.MutationObserver||o.WebKitMutationObserver,l;if(a){var c=0,f=new a(P),O=o.document.createTextNode("");f.observe(O,{characterData:!0}),l=function(){O.data=c=++c%2}}else if(!o.setImmediate&&typeof o.MessageChannel!="undefined"){var p=new o.MessageChannel;p.port1.onmessage=P,l=function(){p.port2.postMessage(0)}}else"document"in o&&"onreadystatechange"in o.document.createElement("script")?l=function(){var A=o.document.createElement("script");A.onreadystatechange=function(){P(),A.onreadystatechange=null,A.parentNode.removeChild(A),A=null},o.document.documentElement.appendChild(A)}:l=function(){setTimeout(P,0)};var b,S=[];function P(){b=!0;for(var A,H,q=S.length;q;){for(H=S,S=[],A=-1;++A<q;)H[A]();q=S.length}b=!1}n.exports=X;function X(A){S.push(A)===1&&!b&&l()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(r,n,s){"use strict";var o=r(1);function a(){}var l={},c=["REJECTED"],f=["FULFILLED"],O=["PENDING"];n.exports=p;function p(d){if(typeof d!="function")throw new TypeError("resolver must be a function");this.state=O,this.queue=[],this.outcome=void 0,d!==a&&X(this,d)}p.prototype.catch=function(d){return this.then(null,d)},p.prototype.then=function(d,M){if(typeof d!="function"&&this.state===f||typeof M!="function"&&this.state===c)return this;var F=new this.constructor(a);if(this.state!==O){var de=this.state===f?d:M;S(F,de,this.outcome)}else this.queue.push(new b(F,d,M));return F};function b(d,M,F){this.promise=d,typeof M=="function"&&(this.onFulfilled=M,this.callFulfilled=this.otherCallFulfilled),typeof F=="function"&&(this.onRejected=F,this.callRejected=this.otherCallRejected)}b.prototype.callFulfilled=function(d){l.resolve(this.promise,d)},b.prototype.otherCallFulfilled=function(d){S(this.promise,this.onFulfilled,d)},b.prototype.callRejected=function(d){l.reject(this.promise,d)},b.prototype.otherCallRejected=function(d){S(this.promise,this.onRejected,d)};function S(d,M,F){o(function(){var de;try{de=M(F)}catch(Ue){return l.reject(d,Ue)}de===d?l.reject(d,new TypeError("Cannot resolve promise with itself")):l.resolve(d,de)})}l.resolve=function(d,M){var F=A(P,M);if(F.status==="error")return l.reject(d,F.value);var de=F.value;if(de)X(d,de);else{d.state=f,d.outcome=M;for(var Ue=-1,Pe=d.queue.length;++Ue<Pe;)d.queue[Ue].callFulfilled(M)}return d},l.reject=function(d,M){d.state=c,d.outcome=M;for(var F=-1,de=d.queue.length;++F<de;)d.queue[F].callRejected(M);return d};function P(d){var M=d&&d.then;if(d&&(typeof d=="object"||typeof d=="function")&&typeof M=="function")return function(){M.apply(d,arguments)}}function X(d,M){var F=!1;function de(Xe){F||(F=!0,l.reject(d,Xe))}function Ue(Xe){F||(F=!0,l.resolve(d,Xe))}function Pe(){M(Ue,de)}var oe=A(Pe);oe.status==="error"&&de(oe.value)}function A(d,M){var F={};try{F.value=d(M),F.status="success"}catch(de){F.status="error",F.value=de}return F}p.resolve=H;function H(d){return d instanceof this?d:l.resolve(new this(a),d)}p.reject=q;function q(d){var M=new this(a);return l.reject(M,d)}p.all=B;function B(d){var M=this;if(Object.prototype.toString.call(d)!=="[object Array]")return this.reject(new TypeError("must be an array"));var F=d.length,de=!1;if(!F)return this.resolve([]);for(var Ue=new Array(F),Pe=0,oe=-1,Xe=new this(a);++oe<F;)Ve(d[oe],oe);return Xe;function Ve(He,ie){M.resolve(He).then(ve,function(ue){de||(de=!0,l.reject(Xe,ue))});function ve(ue){Ue[ie]=ue,++Pe===F&&!de&&(de=!0,l.resolve(Xe,Ue))}}}p.race=L;function L(d){var M=this;if(Object.prototype.toString.call(d)!=="[object Array]")return this.reject(new TypeError("musLine truncated
`):h)),u};var mt=/^(?:focusinfocus|focusoutblur)$/,St=function(h){h.stopPropagation()};d.extend(d.event,{trigger:function(h,u,m,g){var x,v,Q,C,R,Y,G,te,I=[m||X],ce=f.call(h,"type")?h.type:h,Ie=f.call(h,"namespace")?h.namespace.split("."):[];if(v=te=Q=m=m||X,!(m.nodeType===3||m.nodeType===8)&&!mt.test(ce+d.event.triggered)&&(ce.indexOf(".")>-1&&(Ie=ce.split("."),ce=Ie.shift(),Ie.sort()),R=ce.indexOf(":")<0&&"on"+ce,h=h[d.expando]?h:new d.Event(ce,typeof h=="object"&&h),h.isTrigger=g?2:3,h.namespace=Ie.join("."),h.rnamespace=h.namespace?new RegExp("(^|\\.)"+Ie.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h.result=void 0,h.target||(h.target=m),u=u==null?[h]:d.makeArray(u,[h]),G=d.event.special[ce]||{},!(!g&&G.trigger&&G.trigger.apply(m,u)===!1))){if(!g&&!G.noBubble&&!P(m)){for(C=G.delegateType||ce,mt.test(C+ce)||(v=v.parentNode);v;v=v.parentNode)I.push(v),Q=v;Q===(m.ownerDocument||X)&&I.push(Q.defaultView||Q.parentWindow||i)}for(x=0;(v=I[x++])&&!h.isPropagationStopped();)te=v,h.type=x>1?C:G.bindType||ce,Y=(we.get(v,"events")||Object.create(null))[h.type]&&we.get(v,"handle"),Y&&Y.apply(v,u),Y=R&&v[R],Y&&Y.apply&&lr(v)&&(h.result=Y.apply(v,u),h.result===!1&&h.preventDefault());return h.type=ce,!g&&!h.isDefaultPrevented()&&(!G._default||G._default.apply(I.pop(),u)===!1)&&lr(m)&&R&&S(m[ce])&&!P(m)&&(Q=m[R],Q&&(m[R]=null),d.event.triggered=ce,h.isPropagationStopped()&&te.addEventListener(ce,St),m[ce](),h.isPropagationStopped()&&te.removeEventListener(ce,St),d.event.triggered=void 0,Q&&(m[R]=Q)),h.result}},simulate:function(h,u,m){var g=d.extend(new d.Event,m,{type:h,isSimulated:!0});d.event.trigger(g,null,u)}}),d.fn.extend({trigger:function(h,u){return this.each(function(){d.event.trigger(h,u,this)})},triggerHandler:function(h,u){var m=this[0];if(m)return d.event.trigger(h,u,m,!0)}});var ri=/\[\]$/,Wt=/\r?\n/g,Ta=/^(?:submit|button|image|reset|file)$/i,hi=/^(?:input|select|textarea|keygen)/i;function bu(h,u,m,g){var x;if(Array.isArray(u))d.each(u,function(v,Q){m||ri.test(h)?g(h,Q):bu(h+"["+(typeof Q=="object"&&Q!=null?v:"")+"]",Q,m,g)});else if(!m&&q(u)==="object")for(x in u)bu(h+"["+x+"]",u[x],m,g);else g(h,u)}d.param=function(h,u){var m,g=[],x=function(v,Q){var C=S(Q)?Q():Q;g[g.length]=encodeURIComponent(v)+"="+encodeURIComponent(C==null?"":C)};if(h==null)return"";if(Array.isArray(h)||h.jquery&&!d.isPlainObject(h))d.each(h,function(){x(this.name,this.value)});else for(m in h)bu(m,h[m],u,x);return g.join("&")},d.fn.extend({serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var h=d.prop(this,"elements");return h?d.makeArray(h):this}).filter(function(){var h=this.type;return this.name&&!d(this).is(":disabled")&&hi.test(this.nodeName)&&!Ta.test(h)&&(this.checked||!ii.test(h))}).map(function(h,u){var m=d(this).val();return m==null?null:Array.isArray(m)?d.map(m,function(g){return{name:u.name,value:g.replace(Wt,`\r
`)}}):{name:u.name,value:m.replace(Wt,`\r
`)}}).get()}});var m1=/%20/g,g1=/#.*$/,b1=/([?&])_=[^&]*/,x1=/^(.*?):[ \t]*([^\r\n]*)$/mg,v1=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,y1=/^(?:GET|HEAD)$/,S1=/^\/\//,Vg={},xu={},Mg="*/".concat("*"),vu=X.createElement("a");vu.href=Qe.href;function qg(h){return function(u,m){typeof u!="string"&&(m=u,u="*");var g,x=0,v=u.toLowerCase().match(Pi)||[];if(S(m))for(;g=v[x++];)g[0]==="+"?(g=g.slice(1)||"*",(h[g]=h[g]||[]).unshift(m)):(h[g]=h[g]||[]).push(m)}}function Dg(h,u,m,g){var x={},v=h===xu;function Q(C){var R;return x[C]=!0,d.each(h[C]||[],function(Y,G){var te=G(u,m,g);if(typeof te=="string"&&!v&&!x[te])return u.dataTypes.unshift(te),Q(te),!1;if(v)return!(R=te)}),R}return Q(u.dataTypes[0])||!x["*"]&&Q("*")}function yu(h,u){var m,g,x=d.ajaxSettings.flatOptions||{};for(m in u)u[m]!==void 0&&((x[m]?h:g||(g={}))[m]=u[m]);return g&&d.extend(!0,h,g),h}function Q1(h,u,m){for(var g,x,v,Q,C=h.contents,R=h.dataTypes;R[0]==="*";)R.shift(),g===void 0&&(g=h.mimeType||u.getResponseHeader("Content-Type"));if(g){for(x in C)if(C[x]&&C[x].test(g)){R.unshift(x);break}}if(R[0]in m)v=R[0];else{for(x in m){if(!R[0]||h.converters[x+" "+R[0]]){v=x;break}Q||(Q=x)}v=v||Q}if(v)return v!==R[0]&&R.unshift(v),m[v]}function w1(h,u,m,g){var x,v,Q,C,R,Y={},G=h.dataTypes.slice();if(G[1])for(Q in h.converters)Y[Q.toLowerCase()]=h.converters[Q];for(v=G.shift();v;)if(h.responseFields[v]&&(m[h.responseFields[v]]=u),!R&&g&&h.dataFilter&&(u=h.dataFilter(u,h.dataType)),R=v,v=G.shift(),v){if(v==="*")v=R;else if(R!=="*"&&R!==v){if(Q=Y[R+" "+v]||Y["* "+v],!Q){for(x in Y)if(C=x.split(" "),C[1]===v&&(Q=Y[R+" "+C[0]]||Y["* "+C[0]],Q)){Q===!0?Q=Y[x]:Y[x]!==!0&&(v=C[0],G.unshift(C[1]));break}}if(Q!==!0)if(Q&&h.throws)u=Q(u);else try{u=Q(u)}catch(te){return{state:"parsererror",error:Q?te:"No conversion from "+R+" to "+v}}}}return{state:"success",data:u}}d.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Qe.href,type:"GET",isLocal:v1.test(Qe.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Mg,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":d.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(h,u){return u?yu(yu(h,d.ajaxSettings),u):yu(d.ajaxSettings,h)},ajaxPrefilter:qg(Vg),ajaxTransport:qg(xu),ajax:function(h,u){typeof h=="object"&&(u=h,h=void 0),u=u||{};var m,g,x,v,Q,C,R,Y,G,te,I=d.ajaxSetup({},u),ce=I.context||I,Ie=I.context&&(ce.nodeType||ce.jquery)?d(ce):d.event,ht=d.Deferred(),Be=d.Callbacks("once memory"),fi=I.statusCode||{},Ft={},on={},an="canceled",st={readyState:0,getResponseHeader:function(dt){var Et;if(R){if(!v)for(v={};Et=x1.exec(x);)v[Et[1].toLowerCase()+" "]=(v[Et[1].toLowerCase()+" "]||[]).concat(Et[2]);Et=v[dt.toLowerCase()+" "]}return Et==null?null:Et.join(", ")},getAllResponseHeaders:function(){return R?x:null},setRequestHeader:function(dt,Et){return R==null&&(dt=on[dt.toLowerCase()]=on[dt.toLowerCase()]||dt,Ft[dt]=Et),this},overrideMimeType:function(dt){return R==null&&(I.mimeType=dt),this},statusCode:function(dt){var Et;if(dt)if(R)st.always(dt[st.status]);else for(Et in dt)fi[Et]=[fi[Et],dt[Et]];return this},abort:function(dt){var Et=dt||an;return m&&m.abort(Et),Ds(0,Et),this}};if(ht.promise(st),I.url=((h||I.url||Qe.href)+"").replace(S1,Qe.protocol+"//"),I.type=u.method||u.type||I.method||I.type,I.dataTypes=(I.dataType||"*").toLowerCase().match(Pi)||[""],I.crossDomain==null){C=X.createElement("a");try{C.href=I.url,C.href=C.href,I.crossDomain=vu.protocol+"//"+vu.host!=C.protocol+"//"+C.host}catch(dt){I.crossDomain=!0}}if(I.data&&I.processData&&typeof I.data!="string"&&(I.data=d.param(I.data,I.traditional)),Dg(Vg,I,u,st),R)return st;Y=d.event&&I.global,Y&&d.active++===0&&d.event.trigger("ajaxStart"),I.type=I.type.toUpperCase(),I.hasContent=!y1.test(I.type),g=I.url.replace(g1,""),I.hasContent?I.data&&I.processData&&(I.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&(I.data=I.data.replace(m1,"+")):(te=I.url.slice(g.length),I.data&&(I.processData||typeof I.data=="string")&&(g+=(Le.test(g)?"&":"?")+I.data,delete I.data),I.cache===!1&&(g=g.replace(b1,"$1"),te=(Le.test(g)?"&":"?")+"_="+Re.guid+++te),I.url=g+te),I.ifModified&&(d.lastModified[g]&&st.setRequestHeader("If-Modified-Since",d.lastModified[g]),d.etag[g]&&st.setRequestHeader("If-None-Match",d.etag[g])),(I.data&&I.hasContent&&I.contentType!==!1||u.contentType)&&st.setRequestHeader("Content-Type",I.contentType),st.setRequestHeader("Accept",I.dataTypes[0]&&I.accepts[I.dataTypes[0]]?I.accepts[I.dataTypes[0]]+(I.dataTypes[0]!=="*"?", "+Mg+"; q=0.01":""):I.accepts["*"]);for(G in I.headers)st.setRequestHeader(G,I.headers[G]);if(I.beforeSend&&(I.beforeSend.call(ce,st,I)===!1||R))return st.abort();if(an="ab Line truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bA(i,e){return pA(i)||mA(i,e)||xA(i,e)||gA()}function xA(i,e){if(i){if(typeof i=="string")return X$(i,e);var t={}.toString.call(i).slice(8,-1);return t==="Object"&&i.constructor&&(t=i.constructor.name),t==="Map"||t==="Set"?Array.from(i):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?X$(i,e):void 0}}var q$=Object.entries,_$=Object.setPrototypeOf,vA=Object.isFrozen,yA=Object.getPrototypeOf,SA=Object.getOwnPropertyDescriptor,pi=Object.freeze,mi=Object.seal,Qa=Object.create,D$=typeof Reflect!="undefined"&&Reflect,Pg=D$.apply,kg=D$.construct;pi||(pi=function(e){return e});mi||(mi=function(e){return e});Pg||(Pg=function(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),s=2;s<r;s++)n[s-2]=arguments[s];return e.apply(t,n)});kg||(kg=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return new e(...r)});var ya=Dt(Array.prototype.forEach),QA=Dt(Array.prototype.lastIndexOf),R$=Dt(Array.prototype.pop),Sa=Dt(Array.prototype.push),wA=Dt(Array.prototype.splice),_s=Array.isArray,ec=Dt(String.prototype.toLowerCase),yg=Dt(String.prototype.toString),C$=Dt(String.prototype.match),Kl=Dt(String.prototype.replace),Z$=Dt(String.prototype.indexOf),$A=Dt(String.prototype.trim),PA=Dt(Number.prototype.toString),kA=Dt(Boolean.prototype.toString),U$=typeof BigInt=="undefined"?null:Dt(BigInt.prototype.toString),A$=typeof Symbol=="undefined"?null:Dt(Symbol.prototype.toString),oi=Dt(Object.prototype.hasOwnProperty),Jl=Dt(Object.prototype.toString),si=Dt(RegExp.prototype.test),To=TA(TypeError);function Dt(i){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return Pg(i,e,r)}}function TA(i){return function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return kg(i,t)}}function Ot(i,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ec;if(_$&&_$(i,null),!_s(e))return i;let r=e.length;for(;r--;){let n=e[r];if(typeof n=="string"){let s=t(n);s!==n&&(vA(e)||(e[r]=s),n=s)}i[n]=!0}return i}function XA(i){for(let e=0;e<i.length;e++)oi(i,e)||(i[e]=null);return i}function $i(i){let e=Qa(null);for(let r of q$(i)){var t=bA(r,2);let n=t[0],s=t[1];oi(i,n)&&(_s(s)?e[n]=XA(s):s&&typeof s=="object"&&s.constructor===Object?e[n]=$i(s):e[n]=s)}return e}function _A(i){switch(typeof i){case"string":return i;case"number":return PA(i);case"boolean":return kA(i);case"bigint":return U$?U$(i):"0";case"symbol":return A$?A$(i):"Symbol()";case"undefined":return Jl(i);case"function":case"object":{if(i===null)return Jl(i);let e=i,t=Kr(e,"toString");if(typeof t=="function"){let r=t(e);return typeof r=="string"?r:Jl(r)}return Jl(i)}default:return Jl(i)}}function Kr(i,e){for(;i!==null;){let r=SA(i,e);if(r){if(r.get)return Dt(r.get);if(typeof r.value=="function")return Dt(r.value)}i=yA(i)}function t(){return null}return t}function RA(i){try{return si(i,""),!0}catch(e){return!1}}var E$=pi(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Sg=pi(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Qg=pi(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),CA=pi(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-gly Line truncated
`+St),we&&(St=dr(St)),M&&Xi?Xe(St):St},e.setConfig=function(){let re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Xn(re),Jn=!0,wn=gt,rn=yt},e.clearConfig=function(){Ri=null,Jn=!1,wn=null,rn=null,M=de,F=""},e.isValidAttribute=function(re,k,V){Ri||Xn({});let ne=$t(re),Qe=$t(k);return se(ne,Qe,V)},e.addHook=function(re,k){typeof k=="function"&&oi(je,re)&&Sa(je[re],k)},e.removeHook=function(re,k){if(oi(je,re)){if(k!==void 0){let V=QA(je[re],k);return V===-1?void 0:wA(je[re],V,1)[0]}return R$(je[re])}},e.removeHooks=function(re){oi(je,re)&&(je[re]=[])},e.removeAllHooks=function(){je=M$()},e}var NA=I$();N$.exports=NA});var Zg=Ru(Wu());function Pt(i){i?(jr(0),$("#pleaseWaitModal").modal("show")):(jr(1),$("#pleaseWaitModal").modal("hide"))}function jr(i){$("#pleaseWaitProgressBar").css("width",i*100+"%").show()}function Ke(i){Pt(!1),bootbox.alert({title:'<span class="glyphicon glyphicon-alert" aria-hidden="true"></span> Alert',message:Lo.sanitize(i)})}function qi(i){Pt(!1),bootbox.alert(Lo.sanitize(i))}function o0(i){throw Ke(i),new Error(i)}var Mu=[],h0=[];(()=>{let i="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e<i.length;e++)(e%2?h0:Mu).push(t=t+i[e])})();function j1(i){if(i<768)return!1;for(let e=0,t=Mu.length;;){let r=e+t>>1;if(i<Mu[r])t=r;else if(i>=h0[r])e=r+1;else return!0;if(e==t)return!1}}function a0(i){return i>=127462&&i<=127487}var l0=8205;function f0(i,e,t=!0,r=!0){return(t?u0:L1)(i,e,r)}function u0(i,e,t){if(e==i.length)return e;e&&O0(i.charCodeAt(e))&&d0(i.charCodeAt(e-1))&&e--;let r=Vu(i,e);for(e+=c0(r);e<i.length;){let n=Vu(i,e);if(r==l0||n==l0||t&&j1(n))e+=c0(n),r=n;else if(a0(n)){let s=0,o=e-2;for(;o>=0&&a0(Vu(i,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function L1(i,e,t){for(;e>1;){let r=u0(i,e-2,t);if(r<e)return r;e--}return 0}function Vu(i,e){let t=i.charCodeAt(e);if(!d0(t)||e+1==i.length)return t;let r=i.charCodeAt(e+1);return O0(r)?(t-55296<<10)+(r-56320)+65536:t}function O0(i){return i>=56320&&i<57344}function d0(i){return i>=55296&&i<56320}function c0(i){return i<65536?1:2}var it=class i{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,r){[e,t]=qo(this,e,t);let n=[];return this.decompose(0,e,n,2),r.length&&r.decompose(0,r.length,n,3),this.decompose(t,this.length,n,1),Wo.from(n,this.length-(t-e)+r.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=qo(this,e,t);let r=[];return this.decompose(e,t,r,0),Wo.from(r,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),r=this.length-this.scanIdentical(e,-1),n=new Ks(this),s=new Ks(e);for(let o=t,a=t;;){if(n.next(o),s.next(o),o=0,n.lineBreak!=s.lineBreak||n.done!=s.done||n.value!=s.value)return!1;if(a+=n.value.length,n.done||a>=r)return!0}}iter(e=1){return new Ks(this,e)}iterRange(e,t=this.length){return new kc(this,e,t)}iterLines(e,t){let r;if(e==null)r=this.iter();else{t==null&&(t=this.lines+1);let n=this.line(e).from;r=this.iterRange(n,Math.max(n,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Tc(r)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?i.empty:e.length<=32?new Ki(e):Wo.from(Ki.split(e,[]))}},Ki=class i extends it{constructor(e,t=W1(e)){super(),this.text=e,this.length Line truncated
`){[e,t]=qo(this,e,t);let n="";for(let s=0,o=0;s<=t&&o<this.text.length;o++){let a=this.text[o],l=s+a.length;s>e&&o&&(n+=r),e<l&&t>s&&(n+=a.slice(Math.max(0,e-s),t-s)),s=l+1}return n}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let r=[],n=-1;for(let s of e)r.push(s),n+=s.length+1,r.length==32&&(t.push(new i(r,n)),r=[],n=-1);return n>-1&&t.push(new i(r,n)),t}},Wo=class i extends it{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let r of e)this.lines+=r.lines}lineInner(e,t,r,n){for(let s=0;;s++){let o=this.children[s],a=n+o.length,l=r+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,r,n);n=a+1,r=l+1}}decompose(e,t,r,n){for(let s=0,o=0;o<=t&&s<this.children.length;s++){let a=this.children[s],l=o+a.length;if(e<=l&&t>=o){let c=n&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!c?r.push(a):a.decompose(e-o,t-o,r,c)}o=l+1}}replace(e,t,r){if([e,t]=qo(this,e,t),r.lines<this.lines)for(let n=0,s=0;n<this.children.length;n++){let o=this.children[n],a=s+o.length;if(e>=s&&t<=a){let l=o.replace(e-s,t-s,r),c=this.lines-o.lines+l.lines;if(l.lines<c>>4&&l.lines>c>>6){let f=this.children.slice();return f[n]=l,new i(f,this.length-(t-e)+r.length)}return super.replace(s,a,l)}s=a+1}return super.replace(e,t,r)}sliceString(e,t=this.length,r=`
`){[e,t]=qo(this,e,t);let n="";for(let s=0,o=0;s<this.children.length&&o<=t;s++){let a=this.children[s],l=o+a.length;o>e&&s&&(n+=r),e<l&&t>o&&(n+=a.sliceString(e-o,t-o,r)),o=l+1}return n}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof i))return 0;let r=0,[n,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=t,s+=t){if(n==o||s==a)return r;let l=this.children[n],c=e.children[s];if(l!=c)return r+l.scanIdentical(c,t);r+=l.length+1}}static from(e,t=e.reduce((r,n)=>r+n.length+1,-1)){let r=0;for(let b of e)r+=b.lines;if(r<32){let b=[];for(let S of e)S.flatten(b);return new Ki(b,t)}let n=Math.max(32,r>>5),s=n<<1,o=n>>1,a=[],l=0,c=-1,f=[];function O(b){let S;if(b.lines>s&&b instanceof i)for(let P of b.children)O(P);else b.lines>o&&(l>o||!l)?(p(),a.push(b)):b instanceof Ki&&l&&(S=f[f.length-1])instanceof Ki&&b.lines+S.lines<=32?(l+=b.lines,c+=b.length+1,f[f.length-1]=new Ki(S.text.concat(b.text),S.length+1+b.length)):(l+b.lines>n&&p(),l+=b.lines,c+=b.length+1,f.push(b))}function p(){l!=0&&(a.push(f.length==1?f[0]:i.from(f,c)),c=-1,l=f.length=0)}for(let b of e)O(b);return p(),a.length==1?a[0]:new i(a,t)}};it.empty=new Ki([""],0);function W1(i){let e=-1;for(let t of i)e+=t.length+1;return e}function Pc(i,e,t=0,r=1e9){for(let n=0,s=0,o=!0;s<i.length&&n<=r;s++){let a=i[s],l=n+a.length;l>=t&&(l>r&&(a=a.slice(0,r-n)),n<t&&(a=a.slice(t-n)),o?(e[e.length-1]+=a,o=!1):e.push(a)),n=l+1}return e}function p0(i,e,t){return Pc(i,[""],e,t)}var Ks=class{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof Ki?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,n=this.nodes[r],s=this.offsets[r],o=s>>1,a=n instanceof Ki?n.text.length:n.children.length;if(o==(t>0?a:0)){if(r==0)return this.done=!0,this.value="",this;t>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[r]+=t,e==0)return this.lineBreak=!0,this.value=`
`,this;e--}else if(n instanceof Ki){let l=n.text[o+(t<0?-1:0)];if(this.offsets[r]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=n.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[r]+=t):(t<0&&this.offsets[r]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof Ki?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},kc=class{constructor(e,t,r){this.value="",this.done=!1,this.cursor=new Ks(e,t>r?-1:1),this.pos=t>r?e.length:0,this.from=Math.min(t,r),this.to=Math.max(t,r)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let r=t<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*t,this.value=n.length<=r?n:t<0?n.slice(n.length-r):n.slice(0,r),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},Tc=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:r,value:n}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&(it.prototype[Symbol.iterator]=function(){return this.iter()},Ks.prototype[Symbol.iterator]=kc.prototype[Symbol.iterator]=Tc.prototype[Symbol.iterator]=function(){return this});var Du=class{constructor(e,t,r,n){this.from=e,this.to=t,this.number=r,this.text=n}get length(){return this.to-this.from}};function qo(i,e,t){return e=Math.max(0,Math.min(i.length,e)),[e,Math.max(e,Math.min(i.length,t))]}function Yt(i,e,t=!0,r=!0){return f0(i,e,t,r)}function V1(i){return i>=56320&&i<57344}function M1(i){return i>=55296&&i<56320}function Wr(i,e){let t=i.charCodeAt(e);if(!M1(t)||e+1==i.length)return t;let r=i.charCodeAt(e+1);return V1(r)?(t-55296<<10)+(r-56320)+65536:t}function Zc(i){return i<=65535?String.fromCharCode(i):(i-=65536,String.fromCharCode((i>>10)+55296,(i&1023)+56320))}function cs(i){return i<65536?1:2}var Iu=/\r\n?|\n/,Ht=(function(i){return i[i.Simple=0]="Simple",i[i.TrackDel=1]="TrackDel",i[i.TrackBefore=2]="TrackBefore",i[i.TrackAfter=3]="TrackAfter",i})(Ht||(Ht={})),Un=class i{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let r=this.sections[t+1];e+=r<0?this.sections[t]:r}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,r=0,n=0;t<this.sections.length;){let s=this.sections[t++],o=this.sections[t++];o<0?(e(r,n,s),n+=s):n+=o,r+=s}}iterChangedRanges(e,t=!1){Nu(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let r=this.sections[t++],n=this.sections[t++];n<0?e.push(r,n):e.push(n,r)}return new i(e)}composeDesc(e){return this.empty?e:e.empty?this:v0(this,e)}mapDesc(e,t=!1){return e.empty?this:Gu(this,e,t)}mapPos(e,t=-1,r=Ht.Simple){let n=0,s=0;for(let o=0;o<this.sections.length;){let a=this.sections[o++],l=this.sections[o++],c=n+a;if(l<0){if(c>e)return s+(e-n);s+=a}else{if(r!=Ht.Simple&&c>=e&&(r==Ht.TrackDel&&n<e&&c>e||r==Ht.TrackBefore&&n<e||r==Ht.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!a)return e==n||t<0?s:s+l;s+=l}n=c}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return s}touchesRange(e,t=e){for(let r=0,n=0;r<this.sections.length&&n<=t;){let s=this.sections[r++],o=this.sections[r++],a=n+s;if(o>=0&&n<=t&&a>=e)return n<e&&a>t?"cover":!0;n=a}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let r=this.sections[t++],n=this.sections[t++];e+=(e?" ":"")+r+(n>=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new i(e)}static create(e){return new i(e)}},Ui=class i extends Un{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Nu(this,(t,r,n,s,o)=>e=e.replace(n,n+(r-t),o),!1),e}mapDesc(e,t=!1){return Gu(this,e,t,!0)}invert(e){let t=this.sections.slice(),r=[];for(let n=0,s=0;n<t.length;n+=2){let o=t[n],a=t[n+1];if(a>=0){t[n]=a,t[n+1]=o;let l=n>>1;for(;r.length<l;)r.push(it.empty);r.push(o?e.slice(s,s+o):it.empty)}s+=o}return new i(t,r)}compose(e){return this.empty?e:e.empty?this:v0(this,e,!0)}map(e,t=!1){return e.empty?this:Gu(this,e,t,!0)}iterChanges(e,t=!1){Nu(this,e,t)}get desc Line truncated
`}get readOnly(){return this.facet(k0)}phrase(e,...t){for(let r of this.facet(i.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(r,n)=>{if(n=="$")return"$";let s=+(n||1);return!s||s>t.length?r:t[s-1]})),e}languageDataAt(e,t,r=-1){let n=[];for(let s of this.facet(S0))for(let o of s(this,t,r))Object.prototype.hasOwnProperty.call(o,e)&&n.push(o[e]);return n}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return K1(t.length?t[0]:"")}wordAt(e){let{text:t,from:r,length:n}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-r,a=e-r;for(;o>0;){let l=Yt(t,o,!1);if(s(t.slice(l,o))!=Qt.Word)break;o=l}for(;a<n;){let l=Yt(t,a);if(s(t.slice(a,l))!=Qt.Word)break;a=l}return o==a?null:K.range(o+r,a+r)}};at.allowMultipleSelections=Fu;at.tabSize=be.define({combine:i=>i.length?i[0]:4});at.lineSeparator=Q0;at.readOnly=k0;at.phrases=be.define({compare(i,e){let t=Object.keys(i),r=Object.keys(e);return t.length==r.length&&t.every(n=>i[n]==e[n])}});at.languageData=S0;at.changeFilter=w0;at.transactionFilter=$0;at.transactionExtender=P0;Di.reconfigure=Ce.define();function Ji(i,e,t={}){let r={};for(let n of i)for(let s of Object.keys(n)){let o=n[s],a=r[s];if(a===void 0)r[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))r[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let n in e)r[n]===void 0&&(r[n]=e[n]);return r}var br=class{eq(e){return this==e}range(e,t=e){return ja.create(e,t,this)}};br.prototype.startSide=br.prototype.endSide=0;br.prototype.point=!1;br.prototype.mapMode=Ht.TrackDel;function oO(i,e){return i==e||i.constructor==e.constructor&&i.eq(e)}var ja=class i{constructor(e,t,r){this.from=e,this.to=t,this.value=r}static create(e,t,r){return new i(e,t,r)}};function tO(i,e){return i.from-e.from||i.value.startSide-e.value.startSide}var iO=class i{constructor(e,t,r,n){this.from=e,this.to=t,this.value=r,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,t,r,n=0){let s=r?this.to:this.from;for(let o=n,a=s.length;;){if(o==a)return o;let l=o+a>>1,c=s[l]-e||(r?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,r,n){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(r,1e9,!1,s);s<o;s++)if(n(this.from[s]+e,this.to[s]+e,this.value[s])===!1)return!1}map(e,t){let r=[],n=[],s=[],o=-1,a=-1;for(let l=0;l<this.value.length;l++){let c=this.value[l],f=this.from[l]+e,O=this.to[l]+e,p,b;if(f==O){let S=t.mapPos(f,c.startSide,c.mapMode);if(S==null||(p=b=S,c.startSide!=c.endSide&&(b=t.mapPos(f,c.endSide),b<p)))continue}else if(p=t.mapPos(f,c.startSide),b=t.mapPos(O,c.endSide),p>b||p==b&&c.startSide>0&&c.endSide<=0)continue;(b-p||c.endSide-c.startSide)<0||(o<0&&(o=p),c.point&&(a=Math.max(a,b-p)),r.push(c),n.push(p-o),s.push(b-o))}return{mapped:r.length?new i(n,s,r,a):null,pos:o}}},qe=class i{constructor(e,t,r,n){this.chunkPos=e,this.chunk=t,this.nextLayer=r,this.maxPoint=n}static create(e,t,r,n){return new i(e,t,r,n)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:r=!1,filterFrom:n=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(r&&(t=t.slice().sort(tO)),this.isEmpty)return t.length?i.of(t):this;let a=new Cc(this,null,-1).goto(0),l=0,c=[],f=new Lr;for(;a.value||l<t.length;)if(l<t.length&&(a.from-t[l].from||a.startSide-t[l].value.startSide)>=0){let O=t[l++];f.addInner(O.from,O.to,O.value)||c.push(O)}else a.rangeIndex==1&&a.chunkIndex<this.chunk.length&&(l==t.length||this.chunkEnd(a.chunkIndex)<t[l].from)&&(!o||n>this.chunkEnd(a.chunkIndex)||s<this.chunkPos[a.chunkIndex])&&f.addChunk(this.chunkPos[a.chunkIndex],this.chunk[a.chunkIndex])?a.nextChunk():((!o||n>a.to||s<a.from||o(a.from,a.to,a.value))&&(f.addInner(a.from,a.to,a.value)||c.push(ja.create(a.from,a.to,a.value))),a.next());return f.finishInner(this.nextLayer.isEmpty&&!c.length?i.empty:this.nextLayer.update({add:c,filter:o,filterFrom:n,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],r=[],n=-1;for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],l=this.chunk[o],c=e.touchesRange(a,a+l.length);if(c===!1)n=Math.max(n,l.maxPoint),t.push(l),r.push(e.mapPos(a));else if(c===!0){let{mapped:f,pos:O}=l.map(a,e);f&&(n=Math.max(n,f.maxPoint),t.push(f),r.push(O))}}let s=this.nextLayer.map(e);return t.length==0?s:new i(r,t,s||i.empty,n)}between(e,t,r){if(!this.isEmpty){for(let n=0;n<this.chunk.length;n++){let s=this.chunkPos[n],o=this.chunk[n];if(t>=s&&e<=s+o.length&&o.between(s,e-s,t-s,r)===!1)return}this.nextLayer.between(e,t,r)}}iter(e=0){return La.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return La.from(e).goto(t)}static compare(e,t,r,n,s=-1){let o=e.filter(O=>O.maxPoint>0||!O.is Line truncated
`)}static newName(){let e=R0[_0]||1;return R0[_0]=e+1,"\u037C"+e.toString(36)}static mount(e,t,r){let n=e[aO],s=r&&r.nonce;n?s&&n.setNonce(s):n=new lO(e,s),n.mount(Array.isArray(t)?t:[t],e)}},C0=new Map,lO=class{constructor(e,t){let r=e.ownerDocument||e,n=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let s=C0.get(r);if(s)return e[aO]=s;this.sheet=new n.CSSStyleSheet,C0.set(r,this)}else this.styleTag=r.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[aO]=this}mount(e,t){let r=this.sheet,n=0,s=0;for(let o=0;o<e.length;o++){let a=e[o],l=this.modules.indexOf(a);if(l<s&&l>-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,a),r)for(let c=0;c<a.rules.length;c++)r.insertRule(a.rules[c],n++)}else{for(;s<l;)n+=this.modules[s++].rules.length;n+=a.rules.length,s++}}if(r)t.adoptedStyleSheets.indexOf(this.sheet)<0&&(t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets]);else{let o="";for(let l=0;l<this.modules.length;l++)o+=this.modules[l].getRules()+`
`;this.styleTag.textContent=o;let a=t.head||t;this.styleTag.parentNode!=a&&a.insertBefore(this.styleTag,a.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}};var An={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Do={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},eP=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),tP=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(Mt=0;Mt<10;Mt++)An[48+Mt]=An[96+Mt]=String(Mt);var Mt;for(Mt=1;Mt<=24;Mt++)An[Mt+111]="F"+Mt;var Mt;for(Mt=65;Mt<=90;Mt++)An[Mt]=String.fromCharCode(Mt+32),Do[Mt]=String.fromCharCode(Mt);var Mt;for(Ac in An)Do.hasOwnProperty(Ac)||(Do[Ac]=An[Ac]);var Ac;function Z0(i){var e=eP&&i.metaKey&&i.shiftKey&&!i.ctrlKey&&!i.altKey||tP&&i.shiftKey&&i.key&&i.key.length==1||i.key=="Unidentified",t=!e&&i.key||(i.shiftKey?Do:An)[i.keyCode]||i.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function jt(){var i=arguments[0];typeof i=="string"&&(i=document.createElement(i));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var n=t[r];typeof n=="string"?i.setAttribute(r,n):n!=null&&(i[r]=n)}e++}for(;e<arguments.length;e++)U0(i,arguments[e]);return i}function U0(i,e){if(typeof e=="string")i.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)i.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)U0(i,e[t]);else throw new RangeError("Unsupported child node: "+e)}var Ei=typeof navigator!="undefined"?navigator:{userAgent:"",vendor:"",platform:""},bO=typeof document!="undefined"?document:{documentElement:{style:{}}},xO=/Edge\/(\d+)/.exec(Ei.userAgent),xb=/MSIE \d/.test(Ei.userAgent),vO=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Ei.userAgent),dh=!!(xb||vO||xO),A0=!dh&&/gecko\/(\d+)/i.test(Ei.userAgent),cO=!dh&&/Chrome\/(\d+)/.exec(Ei.userAgent),E0="webkitFontSmoothing"in bO.documentElement.style,yO=!dh&&/Apple Computer/.test(Ei.vendor),z0=yO&&(/Mobile\/\w+/.test(Ei.userAgent)||Ei.maxTouchPoints>2),xe={mac:z0||/Mac/.test(Ei.platform),windows:/Win/.test(Ei.platform),linux:/Linux|X11/.test(Ei.platform),ie:dh,ie_version:xb?bO.documentMode||6:vO?+vO[1]:xO?+xO[1]:0,gecko:A0,gecko_version:A0?+(/Firefox\/(\d+)/.exec(Ei.userAgent)||[0,0])[1]:0,chrome:!!cO,chrome_version:cO?+cO[1]:0,ios:z0,android:/Android\b/.test(Ei.userAgent),webkit:E0,webkit_version:E0?+(/\bAppleWebKit\/(\d+)/.exec(Ei.userAgent)||[0,0])[1]:0,safari:yO,safari_version:yO?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Ei.userAgent)||[0,0])[1]:0,tabSize:bO.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function ud(i,e){for(let t in i)t=="class"&&e.class?e.class+=" "+i.class:t=="style"&&e.style?e.style+=";"+i.style:e[t]=i[t];return e}var Fc=Object.create(null);function Od(i,e,t){if(i==e)return!0;i||(i=Fc),e||(e=Fc);let r=Object.keys(i),n=Object.keys(e);if(r.length-(t&&r.indexOf(t)>-1?1:0)!=n.length-(t&&n.indexOf(t)>-1?1:0))return!1;for(let s of r)if(s!=t&&(n.indexOf(s)==-1||i[s]!==e[s]))return!1;return!0}function iP(i,e){for(let t=i.attributes.length-1;t>=0;t--){let r=i.attributes[t].name;e[r]==null&&i.removeAttribute(r)}for(let t in e){let r=e[t];t=="style"?i.style.cssText=r:i.getAttribute(t)!=r&&i.setAttribute(t,r)}}function Y0(i,e,t){let r=!1;if(e)for(let n in e)t&&n in t||(r=!0,n=="style"?i.style.cssText="":i.removeAttribute(n));if(t)for(let n in t)e&&e[n]==t[n]||(r=!0,n=="style"?i.style.cssText=t[n]:i.setAttribute(n,t[n]));return r}function rP(i){let e=Object.create(null);for(let t=0;t<i.attributes.length;t++){let r=i.attributes[t];e[r.name]=r.value}return e}var ni=class{eq(e){return!1}updateDOM(e,t,r){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,r){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}},ui=(function(i){return i[i.Text=0]="Text",i[i.WidgetBefore=1]="WidgetBefore",i[i.WidgetAfter=2]="WidgetAfter",i[i.WidgetRange=3]="WidgetRange",i})(ui||(ui={})),pe=class extends br{constructor(e,t,r,n){super(),this.startSide=e,this.enLine truncated
`,n=i.state.doc.line(n.number+(t?1:-1)),s=i.bidiSpans(n),c=i.visualLineSide(n,!t)}if(l){if(!l(f))return a}else{if(!r)return c;l=r(f)}a=c}}function EP(i,e,t){let r=i.state.charCategorizer(e),n=r(t);return s=>{let o=r(s);return n==Qt.Space&&(n=o),n==o}}function zP(i,e,t,r){let n=e.head,s=t?1:-1;if(n==(t?i.state.doc.length:0))return K.cursor(n,e.assoc);let o=e.goalColumn,a,l=i.contentDOM.getBoundingClientRect(),c=i.coordsAtPos(n,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),f=i.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let S=i.viewState.lineBlockAt(n);o==null&&(o=Math.min(l.right-l.left,i.defaultCharacterWidth*(n-S.from))),a=(s<0?S.top:S.bottom)+f}let O=l.left+o,p=i.viewState.heightOracle.textHeight>>1,b=r!=null?r:p;for(let S=0;;S+=p){let P=a+(b+S)*s,X=zO(i,{x:O,y:P},!1,s);if(t?P>l.bottom:P<l.top)return K.cursor(X.pos,X.assoc);let A=i.coordsAtPos(X.pos,X.assoc),H=A?(A.top+A.bottom)/2:0;if(!A||(t?H>a:H<a))return K.cursor(X.pos,X.assoc,void 0,o)}}function Ba(i,e,t){for(;;){let r=0;for(let n of i)n.between(e-1,e+1,(s,o,a)=>{if(e>s&&e<o){let l=r||t||(e-s<o-e?-1:1);e=l<0?s:o,r=l}});if(!r)return e}}function Fb(i,e){let t=null;for(let r=0;r<e.ranges.length;r++){let n=e.ranges[r],s=null;if(n.empty){let o=Ba(i,n.from,0);o!=n.from&&(s=K.cursor(o,-1))}else{let o=Ba(i,n.from,-1),a=Ba(i,n.to,1);(o!=n.from||a!=n.to)&&(n.undirectional?s=K.undirectionalRange(n.from,n.to):s=K.range(n.from==n.anchor?o:a,n.from==n.head?o:a))}s&&(t||(t=e.ranges.slice()),t[r]=s)}return t?K.create(t,e.mainIndex):e}function uO(i,e,t){let r=Ba(i.state.facet(sl).map(n=>n(i)),t.from,e.head>t.from?-1:1);return r==t.from?t:K.cursor(r,r<t.from?1:-1)}var Sr=class{constructor(e,t){this.pos=e,this.assoc=t}};function zO(i,e,t,r){let n=i.contentDOM.getBoundingClientRect(),s=n.top+i.viewState.paddingTop,{x:o,y:a}=e,l=a-s,c;for(;;){if(l<0)return new Sr(0,1);if(l>i.viewState.docHeight)return new Sr(i.state.doc.length,-1);if(c=i.elementAtHeight(l),r==null)break;if(c.type==ui.Text){if(r<0?c.to<i.viewport.from:c.from>i.viewport.to)break;let p=i.docView.coordsAt(r<0?c.from:c.to,r>0?-1:1);if(p&&(r<0?p.top<=l+s:p.bottom>=l+s))break}let O=i.viewState.heightOracle.textHeight/2;l=r>0?c.bottom+O:c.top-O}if(i.viewport.from>=c.to||i.viewport.to<=c.from){if(t)return null;if(c.type==ui.Text){let O=UP(i,n,c,o,a);return new Sr(O,O==c.from?1:-1)}}if(c.type!=ui.Text)return l<(c.top+c.bottom)/2?new Sr(c.from,1):new Sr(c.to,-1);let f=i.docView.lineAt(c.from,2);return(!f||f.length!=c.length)&&(f=i.docView.lineAt(c.from,-2)),new YO(i,o,a,i.textDirectionAt(c.from)).scanTile(f,c.from)}var YO=class{constructor(e,t,r,n){this.view=e,this.x=t,this.y=r,this.baseDir=n,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to<e)&&(this.line=this.view.state.doc.lineAt(e),this.spans=this.view.bidiSpans(this.line)),this}baseDirAt(e,t){let{line:r,spans:n}=this.bidiSpansAt(e);return n[Qr.find(n,e-r.from,-1,t)].level==this.baseDir}dirAt(e,t){let{line:r,spans:n}=this.bidiSpansAt(e);return n[Qr.find(n,e-r.from,-1,t)].dir}bidiIn(e,t){let{spans:r,line:n}=this.bidiSpansAt(e);return r.length>1||r.length&&(r[0].level!=this.baseDir||r[0].to+n.from<t)}scan(e,t,r=!1){let n=0,s=e.length-1,o=new Set,a=this.bidiIn(e[0],e[s]),l,c,f=-1,O=1e9,p;e:for(;n<s;){let S=s-n,P=n+s>>1;t:if(o.has(P)){for(let H=1;H<S;H++){let q=P+H;if(q>=s&&(q-=S),!o.has(q)){P=q;break t}}break e}o.add(P);let X=t(P),A=0;if(X)for(let H=0;H<X.length;H++){let q=X[H];if(!(q.width==0&&X.length>1))if(q.bottom<this.y)(!l||l.bottom<q.bottom)&&(l=q),A=1;else if(q.top>this.y)(!c||c.top>q.top)&&(c=q),A=-1;else{let B=q.left>this.x?this.x-q.left:q.right<this.x?this.x-q.right:0,L=Math.abs(B);L<O&&(f=P,O=L,p=q),B&&(A=B<0==(this.baseDir==vt.LTR)?-1:1)}}A==-1&&(!a||this.baseDirAt(e[P],1))?s=P:A==1&&(!a||this.baseDirAt(e[P+1],-1))&&(n=P+1)}if(!p){if(!c&&!l)return{i:e[0],after:!1};let S=l&&(!c||this.y-l.bottom<c.top-this.y)?l:c;return this.y=(S.top+S.bottom)/2,this.scan(e,t,!0)}if(O&&!r){let{top:S,bottom:P}=p;if(l&&l.bottom>(S+S+P)/3)return this.y=l.bottom-1,this.scan(e,t,!0);if(c&&c.top<(S+P+P)/3)return this.y=c.top+1,this.scan(e,t,!0)}let b=(a?this.dirAt(e[f],1):this.baseDir)==vt.LTR;return{i:f,after:this.x>(p.left+p.right)/2==b}}scanText(e,t){let r=[];for(let s=0;s<e.length;s=Yt(e.text,s))r.push(t+s);r.push(t+e.length);let n=this.scan(r,s=>{let o=r[s]-t,a=r[s+1]-t;return il(e.dom,o,a).getClientRects()});return n.after?new Sr(r[n.i+1],-1):new Sr(r[n.i],1)}scanTile(e,t){if(!e.length)return new Sr(t,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,t);if(a.isComposite())return this.scanTile(a,t)}let r=[t];for(let a=0,l=t;a<e.children.length;a++)r.push(l+=e.children[a].length);let n=this.scan(r,a=>{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:il(l.dom,0,l.length)).getClientRects()}),s=e.children[n.i],o=r[n.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):n.after?new Sr(r[n.i+1],-1):new Sr(o,1)}},Io="\uFFFF",jO=class{ Line truncated
`&&i.lineWrapping&&(r&&(r=K.single(r.main.anchor-1,r.main.head-1)),t={from:s.from,to:s.to,insert:it.of([" "])}),t)return vd(i,t,r,o);if(r&&!nh(r,s)){let a=!1,l="select";return i.inputState.lastSelectionTime>Date.now()-50&&(i.inputState.lastSelectionOrigin=="select"&&(a=!0),l=i.inputState.lastSelectionOrigin,l=="select.pointer"&&(r=Fb(n.facet(sl).map(c=>c(i)),r))),i.dispatch({selection:r,scrollIntoView:a,userEvent:l}),!0}else return!1}function vd(i,e,t,r=-1){if(xe.ios&&i.inputState.flushIOSKey(e))return!0;let n=i.state.selection.main;if(xe.android&&(e.to==n.to&&(e.from==n.from||e.from==n.from-1&&i.state.sliceDoc(e.from,n.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Ko(i.contentDOM,"Enter",13)||(e.from==n.from-1&&e.to==n.to&&e.insert.length==0||r==8&&e.insert.length<e.to-e.from&&e.to>n.head)&&Ko(i.contentDOM,"Backspace",8)||e.from==n.from&&e.to==n.to+1&&e.insert.length==0&&Ko(i.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();i.inputState.composing>=0&&i.inputState.composing++;let o,a=()=>o||(o=LP(i,e,t));return i.state.facet(Yb).some(l=>l(i,e.from,e.to,s,a))||i.dispatch(a()),!0}function LP(i,e,t){let r,n=i.state,s=n.selection.main,o=-1;if(e.from==e.to&&e.from<s.from||e.from>s.to){let l=e.from<s.from?-1:1,c=l<0?s.from:s.to,f=Ba(n.facet(sl).map(O=>O(i)),c,l);e.from==f&&(o=f)}if(o>-1)r={changes:e,selection:K.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&i.inputState.composing<0){let l=s.from<e.from?n.sliceDoc(s.from,e.from):"",c=s.to>e.to?n.sliceDoc(e.to,s.to):"";r=n.replaceSelection(i.state.toText(l+e.insert.sliceString(0,void 0,i.state.lineBreak)+c))}else{let l=n.changes(e),c=t&&t.main.to<=l.newLength?t.main:void 0;if(n.selection.ranges.length>1&&(i.inputState.composing>=0||i.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let f=i.state.sliceDoc(e.from,e.to),O,p=t&&Bb(i,t.main.head);if(p){let S=e.insert.length-(e.to-e.from);O={from:p.from,to:p.to-S}}else O=i.state.doc.lineAt(s.head);let b=s.to-e.to;r=n.changeByRange(S=>{if(S.from==s.from&&S.to==s.to)return{changes:l,range:c||S.map(l)};let P=S.to-b,X=P-f.length;if(i.state.sliceDoc(X,P)!=f||P>=O.from&&X<=O.to)return{range:S};let A=n.changes({from:X,to:P,insert:e.insert}),H=S.to-s.to;return{changes:A,range:c?K.range(Math.max(0,c.anchor+H),Math.max(0,c.head+H)):S.map(A)}})}else r={changes:l,selection:c&&n.selection.replaceRange(c)}}let a="input.type";return(i.composing||i.inputState.compositionPendingChange&&i.inputState.compositionEndedAt>Date.now()-50)&&(i.inputState.compositionPendingChange=!1,a+=".compose",i.inputState.compositionFirstChange&&(a+=".start",i.inputState.compositionFirstChange=!1)),n.update(r,{userEvent:a,scrollIntoView:!0})}function Jb(i,e,t,r){let n=Math.min(i.length,e.length),s=0;for(;s<n&&i.charCodeAt(s)==e.charCodeAt(s);)s++;if(s==n&&i.length==e.length)return null;let o=i.length,a=e.length;for(;o>0&&a>0&&i.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(r=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o<s&&i.length<e.length){let l=t<=s&&t>=o?s-t:0;s-=l,a=s+(a-o),o=s}else if(a<s){let l=t<=s&&t>=a?s-t:0;s-=l,o=s+(o-a),a=s}return{from:s,toA:o,toB:a}}function WP(i){let e=[];if(i.root.activeElement!=i.contentDOM)return e;let{anchorNode:t,anchorOffset:r,focusNode:n,focusOffset:s}=i.observer.selectionRange;return t&&(e.push(new rh(t,r)),(n!=t||s!=r)&&e.push(new rh(n,s))),e}function VP(i,e){if(i.length==0)return null;let t=i[0].pos,r=i.length==2?i[1].pos:t;return t>-1&&r>-1?K.single(t+e,r+e):null}function nh(i,e){return e.head==i.main.head&&e.anchor==i.main.anchor}var WO=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,xe.safari&&e.contentDOM.addEventListener("input",()=>null),xe.gecko&&rk(e.contentDOM.ownerDocument)}handleEvent(e){!FP(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let r=this.handlers[e];if(r){for(let n of r.observers)n(this.view,t);for(let n of r.handlers){if(t.defaultPrevented)break;if(n(this.view,t)){t.preventDefault();break}}}}ensureHandl Line truncated
`))};if((xe.mac||xe.android)&&O.from==o-1&&/^\. ?$/.test(r.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(O={from:a,to:l,insert:it.of([r.text.replace("."," ")])}),this.pendingContextChange=O,!e.state.readOnly){let p=this.to-this.from+(O.to-O.from+O.insert.length);vd(e,O,K.single(this.toEditorPos(r.selectionStart,p),this.toEditorPos(r.selectionEnd,p)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),O.from<O.to&&!O.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,r.updateRangeStart-1),Math.min(t.text.length,r.updateRangeStart+1)))&&this.handlers.compositionend(r)},this.handlers.characterboundsupdate=r=>{let n=[],s=null;for(let o=this.toEditorPos(r.rangeStart),a=this.toEditorPos(r.rangeEnd);o<a;o++){let l=e.coordsForChar(o);s=l&&new DOMRect(l.left,l.top,l.right-l.left,l.bottom-l.top)||s||new DOMRect,n.push(s)}t.updateCharacterBounds(r.rangeStart,n)},this.handlers.textformatupdate=r=>{let n=[];for(let s of r.getTextFormats()){let o=s.underlineStyle,a=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(l<c){let f=`text-decoration: underline ${/^[a-z]/.test(o)?o+" ":o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${/thin/i.test(a)?1:2}px`;n.push(pe.mark({attributes:{style:f}}).range(l,c))}}}e.dispatch({effects:Mb.of(pe.set(n))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:r}=this.composing;this.composing=null,r&&this.reset(e.state)}};for(let r in this.handlers)t.addEventListener(r,this.handlers[r]);this.measureReq={read:r=>{let n=tl(r.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,r=!1,n=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(r)return;let f=c.length-(o-s);if(n&&o>=n.to)if(n.from==s&&n.to==o&&n.insert.eq(c)){n=this.pendingContextChange=null,t+=f,this.to+=f;return}else n=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=f,this.to+=f;else if(s<this.to){if(s<this.from||o>this.to||this.to-this.from+c.length>3e4){r=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=f}t+=f}),n&&!r&&this.revertPending(e.state),!r}update(e){let t=this.pendingContextChange,r=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(r.from,r.to)&&e.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,r=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),n=this.toContextPos(t.head);(this.editContext.selectionStart!=r||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(r,n)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to<e.doc.length&&this.to-t<500||this.to-this.from>1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let r=this.composing;return r&&r.drifted?r.editorBase+(e-r.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},ae=class i{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDO Line truncated
-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,nd),_k={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},dO=null;function Rk(){var i;if(dO==null&&typeof document!="undefined"&&document.body){let e=document.body.style;dO=((i=e.tabSize)!==null&&i!==void 0?i:e.MozTabSize)!=null}return dO||!1}var Gc=be.define({combine(i){let e=Ji(i,{render:null,specialChars:Xk,addSpecialChars:null});return(e.replaceTabs=!Rk())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,nd)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,nd)),e}});function xx(i={}){return[Gc.of(i),Ck()]}var fb=null;function Ck(){return fb||(fb=Ct.fromClass(class{constructor(i){this.view=i,this.decorations=pe.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(i.state.facet(Gc)),this.decorations=this.decorator.createDeco(i)}makeDecorator(i){return new rl({regexp:i.specialChars,decoration:(e,t,r)=>{let{doc:n}=t.state,s=Wr(e[0],0);if(s==9){let o=n.lineAt(r),a=t.state.tabSize,l=Ai(o.text,a,r-o.from);return pe.replace({widget:new od((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=pe.replace({widget:new sd(i,s)}))},boundary:i.replaceTabs?void 0:/[^]/})}update(i){let e=i.state.facet(Gc);i.startState.facet(Gc)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(i.view)):this.decorations=this.decorator.updateDeco(i,this.decorations)}},{decorations:i=>i.decorations}))}var Zk="\u2022";function Uk(i){return i>=32?Zk:i==10?"\u2424":String.fromCharCode(9216+i)}var sd=class extends ni{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=Uk(this.code),r=e.state.phrase("Control character")+" "+(_k[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,r,t);if(n)return n;let s=document.createElement("span");return s.textContent=t,s.title=r,s.setAttribute("aria-label",r),s.className="cm-specialChar",s}ignoreEvent(){return!1}},od=class extends ni{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function Sd(){return Ek}var Ak=pe.line({class:"cm-activeLine"}),Ek=Ct.fromClass(class{constructor(i){this.decorations=this.getDeco(i)}update(i){(i.docChanged||i.selectionSet)&&(this.decorations=this.getDeco(i.view))}getDeco(i){let e=-1,t=[];for(let r of i.state.selection.ranges){let n=i.lineBlockAt(r.head);n.from>e&&(t.push(Ak.range(n.from)),e=n.from)}return pe.set(t)}},{decorations:i=>i.decorations});var ad=2e3;function zk(i,e,t){let r=Math.min(e.line,t.line),n=Math.max(e.line,t.line),s=[];if(e.off>ad||t.off>ad||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=r;l<=n;l++){let c=i.doc.line(l);c.length<=a&&s.push(K.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=r;l<=n;l++){let c=i.doc.line(l),f=Uc(c.text,o,i.tabSize,!0);if(f<0)s.push(K.cursor(c.to));else{let O=Uc(c.text,a,i.tabSize);s.push(K.range(c.from+f,c.from+O))}}}return s}function Yk(i,e){let t=i.coordsAtPos(i.viewport.from);return t?Math.round(Math.abs((t.left-e)/i.defaultCharacterWidth)):-1}function ub(i,e){let t=i.posAtCoords({x:e.clientX,y:e.clientY},!1),r=i.state.doc.lineAt(t),n=t-r.from,s=n>ad?-1:n==r.length?Yk(i,e.clientX):Ai(r.text,i.state.tabSize,t-r.from);return{line:r.number,col:s,off:n}}function jk(i,e){let t=ub(i,e),r=i.state.selection;return t?{update(n){if(n.docChanged){let s=n.changes.mapPos(n.startState.doc.line(t.line).from),o=n.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},r=r.map(n.changes)}},get(n,s,o){let a=ub(i,n);if(!a)return r;let l=zk(i.state,t,a);return l.length?o?K.create(l.concat(r.ranges)):K.create(l):r}}:null}function Qd(i){let e=(i==null?void 0:i.eventFilter)||(t=>t.altKey&&t.button==0);return ae.mouseSelectionStyle.of((t,r)=>e(r)?jk(t,r):null)}var Lk={Alt:[18,i=>!!i.altKey],Control:[17,i=>!!i.ctrlKey],Shift:[16,i=>!!i.shiftKey],Meta:[91,i=>!!i.metaKey]},Wk={style:"cursor: crosshair"};function wd(i={}){let[e,t]=Lk[i.key||"Alt"],r=Ct.fromClass(class{constructor(n){this.view=n,this.isDown=!1}set(n){this.isDown!=n&&(this.isDown=n,this.view.update([]))}},{eventObservers:{keydown(n){this.set(n.keyCode==e||t(n))},keyup(n){(n.keyCode==e||!t(n))&&this.set(!1)},mousemove(n){this.set(t(n))}}} Line truncated
import{a as $c,b as Pc,c as Wo,d as N1}from"./chunk-7GWCUXYG.js";import{a as I1}from"./chunk-LNOKARBD.js";import{a as wc}from"./chunk-A7SWO6EA.js";import{a as c0,b as h0,c as F1}from"./chunk-73C6ISBD.js";import{D as Wu,J as Vu,t as a0,u as l0}from"./chunk-AA227H53.js";import{A as Gs,E as xr,F as ju,G as Mo,I as yc,J as Lu,S as Mu,U as o0,a as On,aa as Qc,b as za,d as Si,e as Eu,f as yi,g as pt,h as zu,i as i0,k as r0,m as bc,n as xc,o as vc,p as Bs,q as n0,t as Sc,w as s0,x as Yu,y as Ya,z as Ai}from"./chunk-BNFOPPUS.js";import{a as qt,b as gc,c as Ea,d as Uu,e as Au}from"./chunk-KT7KMEQC.js";var Du=Uu((f0,qu)=>{(function(i){if(typeof f0=="object"&&typeof qu!="undefined")qu.exports=i();else if(typeof define=="function"&&define.amd)define([],i);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=i()}})(function(){var i,e,t;return(function r(n,s,o){function a(f,O){if(!s[f]){if(!n[f]){var p=typeof Ea=="function"&&Ea;if(!O&&p)return p(f,!0);if(l)return l(f,!0);var b=new Error("Cannot find module '"+f+"'");throw b.code="MODULE_NOT_FOUND",b}var y=s[f]={exports:{}};n[f][0].call(y.exports,function(P){var X=n[f][1][P];return a(X||P)},y,y.exports,r,n,s,o)}return s[f].exports}for(var l=typeof Ea=="function"&&Ea,c=0;c<o.length;c++)a(o[c]);return a})({1:[function(r,n,s){(function(o){"use strict";var a=o.MutationObserver||o.WebKitMutationObserver,l;if(a){var c=0,f=new a(P),O=o.document.createTextNode("");f.observe(O,{characterData:!0}),l=function(){O.data=c=++c%2}}else if(!o.setImmediate&&typeof o.MessageChannel!="undefined"){var p=new o.MessageChannel;p.port1.onmessage=P,l=function(){p.port2.postMessage(0)}}else"document"in o&&"onreadystatechange"in o.document.createElement("script")?l=function(){var A=o.document.createElement("script");A.onreadystatechange=function(){P(),A.onreadystatechange=null,A.parentNode.removeChild(A),A=null},o.document.documentElement.appendChild(A)}:l=function(){setTimeout(P,0)};var b,y=[];function P(){b=!0;for(var A,H,q=y.length;q;){for(H=y,y=[],A=-1;++A<q;)H[A]();q=y.length}b=!1}n.exports=X;function X(A){y.push(A)===1&&!b&&l()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(r,n,s){"use strict";var o=r(1);function a(){}var l={},c=["REJECTED"],f=["FULFILLED"],O=["PENDING"];n.exports=p;function p(d){if(typeof d!="function")throw new TypeError("resolver must be a function");this.state=O,this.queue=[],this.outcome=void 0,d!==a&&X(this,d)}p.prototype.catch=function(d){return this.then(null,d)},p.prototype.then=function(d,V){if(typeof d!="function"&&this.state===f||typeof V!="function"&&this.state===c)return this;var G=new this.constructor(a);if(this.state!==O){var de=this.state===f?d:V;y(G,de,this.outcome)}else this.queue.push(new b(G,d,V));return G};function b(d,V,G){this.promise=d,typeof V=="function"&&(this.onFulfilled=V,this.callFulfilled=this.otherCallFulfilled),typeof G=="function"&&(this.onRejected=G,this.callRejected=this.otherCallRejected)}b.prototype.callFulfilled=function(d){l.resolve(this.promise,d)},b.prototype.otherCallFulfilled=function(d){y(this.promise,this.onFulfilled,d)},b.prototype.callRejected=function(d){l.reject(this.promise,d)},b.prototype.otherCallRejected=function(d){y(this.promise,this.onRejected,d)};function y(d,V,G){o(function(){var de;try{de=V(G)}catch(Ue){return l.reject(d,Ue)}de===d?l.reject(d,new TypeError("Cannot resolve promise with itself")):l.resolve(d,de)})}l.resolve=function(d,V){var G=A(P,V);if(G.status==="error")return l.reject(d,G.value);var de=G.value;if(de)X(d,de);else{d.state=f,d.outcome=V;for(var Ue=-1,Pe=d.queue.length;++Ue<Pe;)d.queue[Ue].callFulfilled(V)}return d},l.reject=function(d,V){d.state=c,d.outcome=V;for(var G=-1,de=d.queue.length;++G<de;)d.queue[G].callRejected(V);return d};function P(d){var V=d&&d.then;if(d&&(typeof d=="object"||typeof d=="function")&&typeof V=="function")return function(){V.apply(d,arguments)}}function X(d,V){var G=!1;function de(Xe){G||(G=!0,l.reject(d,Xe))}function Ue(Xe){G||(G=!0,l.resolve(d,Xe))}function Pe(){V(Ue,de)}var oe=A(Pe);oe.status==="error"&&de(oe.value)}function A(d,V){var G={};try{G.value=d(V),G.status="success"}catch(de){G.status="error",G.value=de}return G}p.resolve=H;function H(d){return d instanceof this?d:l.resolve(new this(a),d)}p.reject=q;function q(d){var V=new this(a);return l.reject(V,d)}p.all=B;function B(d){var V=this;if(Object.prototype.toString.call(d)!=="[object Array]")return this.reject(new TypeError("must be an array"));var G=d.length,de=!1;if(!G)return this.resolve([]);for(var Ue=new Array(G),Pe=0,oe=-1,Xe=new this(a);++oe<G;)We(d[oe],oe);return Xe;function We(He,ie){V.resolve(He).then(ve,function(ue){de||(de=!0,l.reject(Xe,ue))});function ve(ue){Ue[ie]=ue,++Pe===G&&!de&&(de=!0,l.resolve(Xe,Ue))}}}p.race=L;function L(d){var V=this;if(Object.prototype.toString.call(d)!=="[object Array]")return this.reject(new TypeError("musLine truncated
`):h)),u};var mt=/^(?:focusinfocus|focusoutblur)$/,yt=function(h){h.stopPropagation()};d.extend(d.event,{trigger:function(h,u,m,g){var x,v,Q,C,R,Y,F,te,I=[m||X],ce=f.call(h,"type")?h.type:h,Ie=f.call(h,"namespace")?h.namespace.split("."):[];if(v=te=Q=m=m||X,!(m.nodeType===3||m.nodeType===8)&&!mt.test(ce+d.event.triggered)&&(ce.indexOf(".")>-1&&(Ie=ce.split("."),ce=Ie.shift(),Ie.sort()),R=ce.indexOf(":")<0&&"on"+ce,h=h[d.expando]?h:new d.Event(ce,typeof h=="object"&&h),h.isTrigger=g?2:3,h.namespace=Ie.join("."),h.rnamespace=h.namespace?new RegExp("(^|\\.)"+Ie.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h.result=void 0,h.target||(h.target=m),u=u==null?[h]:d.makeArray(u,[h]),F=d.event.special[ce]||{},!(!g&&F.trigger&&F.trigger.apply(m,u)===!1))){if(!g&&!F.noBubble&&!P(m)){for(C=F.delegateType||ce,mt.test(C+ce)||(v=v.parentNode);v;v=v.parentNode)I.push(v),Q=v;Q===(m.ownerDocument||X)&&I.push(Q.defaultView||Q.parentWindow||i)}for(x=0;(v=I[x++])&&!h.isPropagationStopped();)te=v,h.type=x>1?C:F.bindType||ce,Y=(we.get(v,"events")||Object.create(null))[h.type]&&we.get(v,"handle"),Y&&Y.apply(v,u),Y=R&&v[R],Y&&Y.apply&&hr(v)&&(h.result=Y.apply(v,u),h.result===!1&&h.preventDefault());return h.type=ce,!g&&!h.isDefaultPrevented()&&(!F._default||F._default.apply(I.pop(),u)===!1)&&hr(m)&&R&&y(m[ce])&&!P(m)&&(Q=m[R],Q&&(m[R]=null),d.event.triggered=ce,h.isPropagationStopped()&&te.addEventListener(ce,yt),m[ce](),h.isPropagationStopped()&&te.removeEventListener(ce,yt),d.event.triggered=void 0,Q&&(m[R]=Q)),h.result}},simulate:function(h,u,m){var g=d.extend(new d.Event,m,{type:h,isSimulated:!0});d.event.trigger(g,null,u)}}),d.fn.extend({trigger:function(h,u){return this.each(function(){d.event.trigger(h,u,this)})},triggerHandler:function(h,u){var m=this[0];if(m)return d.event.trigger(h,u,m,!0)}});var si=/\[\]$/,Vt=/\r?\n/g,Ra=/^(?:submit|button|image|reset|file)$/i,ui=/^(?:input|select|textarea|keygen)/i;function yu(h,u,m,g){var x;if(Array.isArray(u))d.each(u,function(v,Q){m||si.test(h)?g(h,Q):yu(h+"["+(typeof Q=="object"&&Q!=null?v:"")+"]",Q,m,g)});else if(!m&&q(u)==="object")for(x in u)yu(h+"["+x+"]",u[x],m,g);else g(h,u)}d.param=function(h,u){var m,g=[],x=function(v,Q){var C=y(Q)?Q():Q;g[g.length]=encodeURIComponent(v)+"="+encodeURIComponent(C==null?"":C)};if(h==null)return"";if(Array.isArray(h)||h.jquery&&!d.isPlainObject(h))d.each(h,function(){x(this.name,this.value)});else for(m in h)yu(m,h[m],u,x);return g.join("&")},d.fn.extend({serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var h=d.prop(this,"elements");return h?d.makeArray(h):this}).filter(function(){var h=this.type;return this.name&&!d(this).is(":disabled")&&ui.test(this.nodeName)&&!Ra.test(h)&&(this.checked||!ni.test(h))}).map(function(h,u){var m=d(this).val();return m==null?null:Array.isArray(m)?d.map(m,function(g){return{name:u.name,value:g.replace(Vt,`\r
`)}}):{name:u.name,value:m.replace(Vt,`\r
`)}}).get()}});var P1=/%20/g,k1=/#.*$/,T1=/([?&])_=[^&]*/,X1=/^(.*?):[ \t]*([^\r\n]*)$/mg,_1=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,R1=/^(?:GET|HEAD)$/,C1=/^\/\//,Fg={},Qu={},Bg="*/".concat("*"),wu=X.createElement("a");wu.href=Qe.href;function Gg(h){return function(u,m){typeof u!="string"&&(m=u,u="*");var g,x=0,v=u.toLowerCase().match(Ti)||[];if(y(m))for(;g=v[x++];)g[0]==="+"?(g=g.slice(1)||"*",(h[g]=h[g]||[]).unshift(m)):(h[g]=h[g]||[]).push(m)}}function Hg(h,u,m,g){var x={},v=h===Qu;function Q(C){var R;return x[C]=!0,d.each(h[C]||[],function(Y,F){var te=F(u,m,g);if(typeof te=="string"&&!v&&!x[te])return u.dataTypes.unshift(te),Q(te),!1;if(v)return!(R=te)}),R}return Q(u.dataTypes[0])||!x["*"]&&Q("*")}function $u(h,u){var m,g,x=d.ajaxSettings.flatOptions||{};for(m in u)u[m]!==void 0&&((x[m]?h:g||(g={}))[m]=u[m]);return g&&d.extend(!0,h,g),h}function Z1(h,u,m){for(var g,x,v,Q,C=h.contents,R=h.dataTypes;R[0]==="*";)R.shift(),g===void 0&&(g=h.mimeType||u.getResponseHeader("Content-Type"));if(g){for(x in C)if(C[x]&&C[x].test(g)){R.unshift(x);break}}if(R[0]in m)v=R[0];else{for(x in m){if(!R[0]||h.converters[x+" "+R[0]]){v=x;break}Q||(Q=x)}v=v||Q}if(v)return v!==R[0]&&R.unshift(v),m[v]}function U1(h,u,m,g){var x,v,Q,C,R,Y={},F=h.dataTypes.slice();if(F[1])for(Q in h.converters)Y[Q.toLowerCase()]=h.converters[Q];for(v=F.shift();v;)if(h.responseFields[v]&&(m[h.responseFields[v]]=u),!R&&g&&h.dataFilter&&(u=h.dataFilter(u,h.dataType)),R=v,v=F.shift(),v){if(v==="*")v=R;else if(R!=="*"&&R!==v){if(Q=Y[R+" "+v]||Y["* "+v],!Q){for(x in Y)if(C=x.split(" "),C[1]===v&&(Q=Y[R+" "+C[0]]||Y["* "+C[0]],Q)){Q===!0?Q=Y[x]:Y[x]!==!0&&(v=C[0],F.unshift(C[1]));break}}if(Q!==!0)if(Q&&h.throws)u=Q(u);else try{u=Q(u)}catch(te){return{state:"parsererror",error:Q?te:"No conversion from "+R+" to "+v}}}}return{state:"success",data:u}}d.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Qe.href,type:"GET",isLocal:_1.test(Qe.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Bg,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":d.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(h,u){return u?$u($u(h,d.ajaxSettings),u):$u(d.ajaxSettings,h)},ajaxPrefilter:Gg(Fg),ajaxTransport:Gg(Qu),ajax:function(h,u){typeof h=="object"&&(u=h,h=void 0),u=u||{};var m,g,x,v,Q,C,R,Y,F,te,I=d.ajaxSetup({},u),ce=I.context||I,Ie=I.context&&(ce.nodeType||ce.jquery)?d(ce):d.event,ht=d.Deferred(),Be=d.Callbacks("once memory"),Oi=I.statusCode||{},Kt={},ln={},cn="canceled",st={readyState:0,getResponseHeader:function(dt){var Yt;if(R){if(!v)for(v={};Yt=X1.exec(x);)v[Yt[1].toLowerCase()+" "]=(v[Yt[1].toLowerCase()+" "]||[]).concat(Yt[2]);Yt=v[dt.toLowerCase()+" "]}return Yt==null?null:Yt.join(", ")},getAllResponseHeaders:function(){return R?x:null},setRequestHeader:function(dt,Yt){return R==null&&(dt=ln[dt.toLowerCase()]=ln[dt.toLowerCase()]||dt,Kt[dt]=Yt),this},overrideMimeType:function(dt){return R==null&&(I.mimeType=dt),this},statusCode:function(dt){var Yt;if(dt)if(R)st.always(dt[st.status]);else for(Yt in dt)Oi[Yt]=[Oi[Yt],dt[Yt]];return this},abort:function(dt){var Yt=dt||cn;return m&&m.abort(Yt),Ns(0,Yt),this}};if(ht.promise(st),I.url=((h||I.url||Qe.href)+"").replace(C1,Qe.protocol+"//"),I.type=u.method||u.type||I.method||I.type,I.dataTypes=(I.dataType||"*").toLowerCase().match(Ti)||[""],I.crossDomain==null){C=X.createElement("a");try{C.href=I.url,C.href=C.href,I.crossDomain=wu.protocol+"//"+wu.host!=C.protocol+"//"+C.host}catch(dt){I.crossDomain=!0}}if(I.data&&I.processData&&typeof I.data!="string"&&(I.data=d.param(I.data,I.traditional)),Hg(Fg,I,u,st),R)return st;Y=d.event&&I.global,Y&&d.active++===0&&d.event.trigger("ajaxStart"),I.type=I.type.toUpperCase(),I.hasContent=!R1.test(I.type),g=I.url.replace(k1,""),I.hasContent?I.data&&I.processData&&(I.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&(I.data=I.data.replace(P1,"+")):(te=I.url.slice(g.length),I.data&&(I.processData||typeof I.data=="string")&&(g+=(Le.test(g)?"&":"?")+I.data,delete I.data),I.cache===!1&&(g=g.replace(T1,"$1"),te=(Le.test(g)?"&":"?")+"_="+Re.guid+++te),I.url=g+te),I.ifModified&&(d.lastModified[g]&&st.setRequestHeader("If-Modified-Since",d.lastModified[g]),d.etag[g]&&st.setRequestHeader("If-None-Match",d.etag[g])),(I.data&&I.hasContent&&I.contentType!==!1||u.contentType)&&st.setRequestHeader("Content-Type",I.contentType),st.setRequestHeader("Accept",I.dataTypes[0]&&I.accepts[I.dataTypes[0]]?I.accepts[I.dataTypes[0]]+(I.dataTypes[0]!=="*"?", "+Bg+"; q=0.01":""):I.accepts["*"]);for(F in I.headers)st.setRequestHeader(F,I.headers[F]);if(I.beforeSend&&(I.beforeSend.call(ce,st,I)===!1||R))return st.abort();if(cn="ab Line truncated
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ZA(i,e){return _A(i)||RA(i,e)||UA(i,e)||CA()}function UA(i,e){if(i){if(typeof i=="string")return j$(i,e);var t={}.toString.call(i).slice(8,-1);return t==="Object"&&i.constructor&&(t=i.constructor.name),t==="Map"||t==="Set"?Array.from(i):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?j$(i,e):void 0}}var e1=Object.entries,L$=Object.setPrototypeOf,AA=Object.isFrozen,EA=Object.getPrototypeOf,zA=Object.getOwnPropertyDescriptor,gi=Object.freeze,bi=Object.seal,Pa=Object.create,t1=typeof Reflect!="undefined"&&Reflect,Cg=t1.apply,Zg=t1.construct;gi||(gi=function(e){return e});bi||(bi=function(e){return e});Cg||(Cg=function(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),s=2;s<r;s++)n[s-2]=arguments[s];return e.apply(t,n)});Zg||(Zg=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return new e(...r)});var wa=Nt(Array.prototype.forEach),YA=Nt(Array.prototype.lastIndexOf),M$=Nt(Array.prototype.pop),$a=Nt(Array.prototype.push),jA=Nt(Array.prototype.splice),Cs=Array.isArray,nc=Nt(String.prototype.toLowerCase),kg=Nt(String.prototype.toString),W$=Nt(String.prototype.match),ic=Nt(String.prototype.replace),V$=Nt(String.prototype.indexOf),LA=Nt(String.prototype.trim),MA=Nt(Number.prototype.toString),WA=Nt(Boolean.prototype.toString),q$=typeof BigInt=="undefined"?null:Nt(BigInt.prototype.toString),D$=typeof Symbol=="undefined"?null:Nt(Symbol.prototype.toString),li=Nt(Object.prototype.hasOwnProperty),rc=Nt(Object.prototype.toString),ai=Nt(RegExp.prototype.test),_o=VA(TypeError);function Nt(i){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return Cg(i,e,r)}}function VA(i){return function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return Zg(i,t)}}function Ot(i,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:nc;if(L$&&L$(i,null),!Cs(e))return i;let r=e.length;for(;r--;){let n=e[r];if(typeof n=="string"){let s=t(n);s!==n&&(AA(e)||(e[r]=s),n=s)}i[n]=!0}return i}function qA(i){for(let e=0;e<i.length;e++)li(i,e)||(i[e]=null);return i}function ki(i){let e=Pa(null);for(let r of e1(i)){var t=ZA(r,2);let n=t[0],s=t[1];li(i,n)&&(Cs(s)?e[n]=qA(s):s&&typeof s=="object"&&s.constructor===Object?e[n]=ki(s):e[n]=s)}return e}function DA(i){switch(typeof i){case"string":return i;case"number":return MA(i);case"boolean":return WA(i);case"bigint":return q$?q$(i):"0";case"symbol":return D$?D$(i):"Symbol()";case"undefined":return rc(i);case"function":case"object":{if(i===null)return rc(i);let e=i,t=en(e,"toString");if(typeof t=="function"){let r=t(e);return typeof r=="string"?r:rc(r)}return rc(i)}default:return rc(i)}}function en(i,e){for(;i!==null;){let r=zA(i,e);if(r){if(r.get)return Nt(r.get);if(typeof r.value=="function")return Nt(r.value)}i=EA(i)}function t(){return null}return t}function IA(i){try{return ai(i,""),!0}catch(e){return!1}}var I$=gi(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Tg=gi(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Xg=gi(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),NA=gi(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-gly Line truncated
`+yt),we&&(yt=mr(yt)),V&&Ri?Xe(yt):yt},e.setConfig=function(){let re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Rn(re),ts=!0,Pn=gt,sn=St},e.clearConfig=function(){Zi=null,ts=!1,Pn=null,sn=null,V=de,G=""},e.isValidAttribute=function(re,k,W){Zi||Rn({});let ne=$t(re),Qe=$t(k);return se(ne,Qe,W)},e.addHook=function(re,k){typeof k=="function"&&li(je,re)&&$a(je[re],k)},e.removeHook=function(re,k){if(li(je,re)){if(k!==void 0){let W=YA(je[re],k);return W===-1?void 0:jA(je[re],W,1)[0]}return M$(je[re])}},e.removeHooks=function(re){li(je,re)&&(je[re]=[])},e.removeAllHooks=function(){je=J$()},e}var lE=i1();r1.exports=lE});var jg=Au(Du());var Pt=[/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi,/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm],Rt=[/^\s*([;]|[/][/])#link\s+"(.+?)"/gm],ja=[/^\s*(`include|[.]include)\s+"(.+?)"/gmi,/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi,{re:/^\s*([.]arch)\s+(\w+)/gmi,suffix:".json"},/\$readmem[bh]\("(.+?)"/gmi],u0=[/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm],B1=[/^[!]src\s+"(.+?)"/gmi],G1=[{re:/^\s*import\s*"(.+?)";/gmi,suffix:".wiz"},/^\s*embed\s*"(.+?)";/gmi],H1=[/^\s*(import)\s*"(.+?)"/gmi],K1=[/^\s*%%\s*#include\s+"(.+?)"/gm],O0={apple2:{preloadFS:"65-apple2"},c64:{preloadFS:"65-c64"},vic20:{preloadFS:"65-vic20"},nes:{preloadFS:"65-nes"},atari8:{preloadFS:"65-atari8"},vector:{preloadFS:"65-none"},atari7800:{preloadFS:"65-none"},devel:{preloadFS:"65-none"},vcs:{preloadFS:"65-atari2600"},pce:{preloadFS:"65-pce"},exidy:{preloadFS:"65-none"}},J1={dasm:{id:"dasm",name:"DASM",kind:"assembler",arch:"6502",extensions:[".dasm"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/sehugg/dasm/master/doc/dasm.txt",wasmModule:"dasm",includePatterns:Pt,linkPatterns:Rt},acme:{id:"acme",name:"ACME",kind:"assembler",arch:"6502",extensions:[".acme"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/sehugg/acme/main/docs/QuickRef.txt",wasmModule:"acme",includePatterns:[...Pt,...B1],linkPatterns:Rt},xa:{id:"xa",name:"XA",kind:"assembler",arch:"6502",extensions:[".xa"],editorStyle:"6502",helpURL:"https://www.floodgap.com/retrotech/xa/",wasmModule:"xa",includePatterns:Pt,linkPatterns:Rt},nesasm:{id:"nesasm",name:"NESASM",kind:"assembler",arch:"6502",extensions:[".nesasm"],editorStyle:"6502",wasmModule:"nesasm",includePatterns:Pt,linkPatterns:Rt},merlin32:{id:"merlin32",name:"Merlin 32",kind:"assembler",arch:"6502",extensions:[".lnk"],editorStyle:"6502",wasmModule:"merlin32",includePatterns:[...Pt,...u0],linkPatterns:Rt},cc65:{id:"cc65",name:"cc65",kind:"compiler",arch:"6502",extensions:[".c",".h"],editorStyle:"text/x-csrc",helpURL:"https://cc65.github.io/doc/cc65.html",wasmModule:"cc65",platforms:O0,includePatterns:Pt,linkPatterns:Rt},ca65:{id:"ca65",name:"ca65",kind:"assembler",arch:"6502",extensions:[".s",".ca65"],editorStyle:"6502",helpURL:"https://cc65.github.io/doc/ca65.html",wasmModule:"ca65",platforms:O0,includePatterns:Pt,linkPatterns:Rt},ld65:{id:"ld65",name:"ld65",kind:"linker",arch:"6502",extensions:[],wasmModule:"ld65"},sdcc:{id:"sdcc",name:"SDCC",kind:"compiler",arch:"z80",extensions:[".c",".h"],editorStyle:"text/x-csrc",helpURL:"http://sdcc.sourceforge.net/doc/sdccman.pdf",wasmModule:"sdcc",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Pt,linkPatterns:Rt},sdasz80:{id:"sdasz80",name:"sdasz80",kind:"assembler",arch:"z80",extensions:[".s"],editorStyle:"z80",wasmModule:"sdasz80",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Pt,linkPatterns:Rt},sdasgb:{id:"sdasgb",name:"sdasgb",kind:"assembler",arch:"gbz80",extensions:[".sgb"],editorStyle:"z80",wasmModule:"sdasgb",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Pt,linkPatterns:Rt},sdldz80:{id:"sdldz80",name:"sdldz80",kind:"linker",arch:"z80",extensions:[],wasmModule:"sdldz80"},sccz80:{id:"sccz80",name:"sccz80",kind:"compiler",arch:"z80",extensions:[".scc"],platforms:{default:{preloadFS:"sccz80"}},noWorkerBuild:!0},naken:{id:"naken",name:"Naken",kind:"assembler",extensions:[".ns"],noWorkerBuild:!0},zmac:{id:"zmac",name:"zmac",kind:"assembler",arch:"z80",extensions:[".z"],editorStyle:"z80",helpURL:"https://raw.githubusercontent.com/sehugg/zmac/master/doc.txt",wasmModule:"zmac",includePatterns:Pt,linkPatterns:Rt},jsasm:{id:"jsasm",name:"JSASM",kind:"assembler",extensions:[".asm"],editorStyle:"z80",includePatterns:ja,linkPatterns:[]},xasm6809:{id:"xasm6809",name:"XASM6809",kind:"assembler",arch:"6809",extensions:[".xasm"],editorStyle:"6809",wasmModule:"xasm6809",includePatterns:[...Pt,...u0],linkPatterns:Rt},cmoc:{id:"cmoc",name:"CMOC",kind:"compiler",arch:"6809",extensions:[".c",".h"],editorStyle:"text/x-csrc",helpURL:"http://perso.b2b2c.ca/~sarrazip/dev/cmoc.html",wasmModule:"cmoc",includePatterns:Pt,linkPatterns:Rt},lwasm:{id:"lwasm",name:"LWASM",kind:"assembler",arch:"6809",extensions:[".lwasm"],wasmModule:"lwasm",includePatterns:Pt,linkPatterns:Rt},lwlink:{id:"lwlink",name:"LWLINK",kind:"linker",arch:"6809",extensions:[],wasmModule:"lwlink"},vasmarm:{id:"vasmarm",name:"vasm (ARM)"Line truncated
`){[e,t]=No(this,e,t);let n="";for(let s=0,o=0;s<=t&&o<this.text.length;o++){let a=this.text[o],l=s+a.length;s>e&&o&&(n+=r),e<l&&t>s&&(n+=a.slice(Math.max(0,e-s),t-s)),s=l+1}return n}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let r=[],n=-1;for(let s of e)r.push(s),n+=s.length+1,r.length==32&&(t.push(new i(r,n)),r=[],n=-1);return n>-1&&t.push(new i(r,n)),t}},qo=class i extends it{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let r of e)this.lines+=r.lines}lineInner(e,t,r,n){for(let s=0;;s++){let o=this.children[s],a=n+o.length,l=r+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,r,n);n=a+1,r=l+1}}decompose(e,t,r,n){for(let s=0,o=0;o<=t&&s<this.children.length;s++){let a=this.children[s],l=o+a.length;if(e<=l&&t>=o){let c=n&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!c?r.push(a):a.decompose(e-o,t-o,r,c)}o=l+1}}replace(e,t,r){if([e,t]=No(this,e,t),r.lines<this.lines)for(let n=0,s=0;n<this.children.length;n++){let o=this.children[n],a=s+o.length;if(e>=s&&t<=a){let l=o.replace(e-s,t-s,r),c=this.lines-o.lines+l.lines;if(l.lines<c>>4&&l.lines>c>>6){let f=this.children.slice();return f[n]=l,new i(f,this.length-(t-e)+r.length)}return super.replace(s,a,l)}s=a+1}return super.replace(e,t,r)}sliceString(e,t=this.length,r=`
`){[e,t]=No(this,e,t);let n="";for(let s=0,o=0;s<this.children.length&&o<=t;s++){let a=this.children[s],l=o+a.length;o>e&&s&&(n+=r),e<l&&t>o&&(n+=a.sliceString(e-o,t-o,r)),o=l+1}return n}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof i))return 0;let r=0,[n,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=t,s+=t){if(n==o||s==a)return r;let l=this.children[n],c=e.children[s];if(l!=c)return r+l.scanIdentical(c,t);r+=l.length+1}}static from(e,t=e.reduce((r,n)=>r+n.length+1,-1)){let r=0;for(let b of e)r+=b.lines;if(r<32){let b=[];for(let y of e)y.flatten(b);return new er(b,t)}let n=Math.max(32,r>>5),s=n<<1,o=n>>1,a=[],l=0,c=-1,f=[];function O(b){let y;if(b.lines>s&&b instanceof i)for(let P of b.children)O(P);else b.lines>o&&(l>o||!l)?(p(),a.push(b)):b instanceof er&&l&&(y=f[f.length-1])instanceof er&&b.lines+y.lines<=32?(l+=b.lines,c+=b.length+1,f[f.length-1]=new er(y.text.concat(b.text),y.length+1+b.length)):(l+b.lines>n&&p(),l+=b.lines,c+=b.length+1,f.push(b))}function p(){l!=0&&(a.push(f.length==1?f[0]:i.from(f,c)),c=-1,l=f.length=0)}for(let b of e)O(b);return p(),a.length==1?a[0]:new i(a,t)}};it.empty=new er([""],0);function iP(i){let e=-1;for(let t of i)e+=t.length+1;return e}function _c(i,e,t=0,r=1e9){for(let n=0,s=0,o=!0;s<i.length&&n<=r;s++){let a=i[s],l=n+a.length;l>=t&&(l>r&&(a=a.slice(0,r-n)),n<t&&(a=a.slice(t-n)),o?(e[e.length-1]+=a,o=!1):e.push(a)),n=l+1}return e}function $0(i,e,t){return _c(i,[""],e,t)}var eo=class{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof er?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,n=this.nodes[r],s=this.offsets[r],o=s>>1,a=n instanceof er?n.text.length:n.children.length;if(o==(t>0?a:0)){if(r==0)return this.done=!0,this.value="",this;t>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[r]+=t,e==0)return this.lineBreak=!0,this.value=`
`,this;e--}else if(n instanceof er){let l=n.text[o+(t<0?-1:0)];if(this.offsets[r]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=n.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[r]+=t):(t<0&&this.offsets[r]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof er?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},Rc=class{constructor(e,t,r){this.value="",this.done=!1,this.cursor=new eo(e,t>r?-1:1),this.pos=t>r?e.length:0,this.from=Math.min(t,r),this.to=Math.max(t,r)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let r=t<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*t,this.value=n.length<=r?n:t<0?n.slice(n.length-r):n.slice(0,r),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},Cc=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:r,value:n}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&(it.prototype[Symbol.iterator]=function(){return this.iter()},eo.prototype[Symbol.iterator]=Rc.prototype[Symbol.iterator]=Cc.prototype[Symbol.iterator]=function(){return this});var Hu=class{constructor(e,t,r,n){this.from=e,this.to=t,this.number=r,this.text=n}get length(){return this.to-this.from}};function No(i,e,t){return e=Math.max(0,Math.min(i.length,e)),[e,Math.max(e,Math.min(i.length,t))]}function Lt(i,e,t=!0,r=!0){return S0(i,e,t,r)}function rP(i){return i>=56320&&i<57344}function nP(i){return i>=55296&&i<56320}function Vr(i,e){let t=i.charCodeAt(e);if(!nP(t)||e+1==i.length)return t;let r=i.charCodeAt(e+1);return rP(r)?(t-55296<<10)+(r-56320)+65536:t}function zc(i){return i<=65535?String.fromCharCode(i):(i-=65536,String.fromCharCode((i>>10)+55296,(i&1023)+56320))}function fs(i){return i<65536?1:2}var Ku=/\r\n?|\n/,Jt=(function(i){return i[i.Simple=0]="Simple",i[i.TrackDel=1]="TrackDel",i[i.TrackBefore=2]="TrackBefore",i[i.TrackAfter=3]="TrackAfter",i})(Jt||(Jt={})),En=class i{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let r=this.sections[t+1];e+=r<0?this.sections[t]:r}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,r=0,n=0;t<this.sections.length;){let s=this.sections[t++],o=this.sections[t++];o<0?(e(r,n,s),n+=s):n+=o,r+=s}}iterChangedRanges(e,t=!1){Ju(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let r=this.sections[t++],n=this.sections[t++];n<0?e.push(r,n):e.push(n,r)}return new i(e)}composeDesc(e){return this.empty?e:e.empty?this:_0(this,e)}mapDesc(e,t=!1){return e.empty?this:eO(this,e,t)}mapPos(e,t=-1,r=Jt.Simple){let n=0,s=0;for(let o=0;o<this.sections.length;){let a=this.sections[o++],l=this.sections[o++],c=n+a;if(l<0){if(c>e)return s+(e-n);s+=a}else{if(r!=Jt.Simple&&c>=e&&(r==Jt.TrackDel&&n<e&&c>e||r==Jt.TrackBefore&&n<e||r==Jt.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!a)return e==n||t<0?s:s+l;s+=l}n=c}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return s}touchesRange(e,t=e){for(let r=0,n=0;r<this.sections.length&&n<=t;){let s=this.sections[r++],o=this.sections[r++],a=n+s;if(o>=0&&n<=t&&a>=e)return n<e&&a>t?"cover":!0;n=a}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let r=this.sections[t++],n=this.sections[t++];e+=(e?" ":"")+r+(n>=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new i(e)}static create(e){return new i(e)}},Ei=class i extends En{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Ju(this,(t,r,n,s,o)=>e=e.replace(n,n+(r-t),o),!1),e}mapDesc(e,t=!1){return eO(this,e,t,!0)}invert(e){let t=this.sections.slice(),r=[];for(let n=0,s=0;n<t.length;n+=2){let o=t[n],a=t[n+1];if(a>=0){t[n]=a,t[n+1]=o;let l=n>>1;for(;r.length<l;)r.push(it.empty);r.push(o?e.slice(s,s+o):it.empty)}s+=o}return new i(t,r)}compose(e){return this.empty?e:e.empty?this:_0(this,e,!0)}map(e,t=!1){return e.empty?this:eO(this,e,t,!0)}iterChanges(e,t=!1){Ju(this,e,t)}get desc Line truncated
`}get readOnly(){return this.facet(z0)}phrase(e,...t){for(let r of this.facet(i.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(r,n)=>{if(n=="$")return"$";let s=+(n||1);return!s||s>t.length?r:t[s-1]})),e}languageDataAt(e,t,r=-1){let n=[];for(let s of this.facet(C0))for(let o of s(this,t,r))Object.prototype.hasOwnProperty.call(o,e)&&n.push(o[e]);return n}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return OP(t.length?t[0]:"")}wordAt(e){let{text:t,from:r,length:n}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-r,a=e-r;for(;o>0;){let l=Lt(t,o,!1);if(s(t.slice(l,o))!=Qt.Word)break;o=l}for(;a<n;){let l=Lt(t,a);if(s(t.slice(a,l))!=Qt.Word)break;a=l}return o==a?null:K.range(o+r,a+r)}};at.allowMultipleSelections=iO;at.tabSize=be.define({combine:i=>i.length?i[0]:4});at.lineSeparator=Z0;at.readOnly=z0;at.phrases=be.define({compare(i,e){let t=Object.keys(i),r=Object.keys(e);return t.length==r.length&&t.every(n=>i[n]==e[n])}});at.languageData=C0;at.changeFilter=U0;at.transactionFilter=A0;at.transactionExtender=E0;Ni.reconfigure=Ce.define();function tr(i,e,t={}){let r={};for(let n of i)for(let s of Object.keys(n)){let o=n[s],a=r[s];if(a===void 0)r[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))r[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let n in e)r[n]===void 0&&(r[n]=e[n]);return r}var vr=class{eq(e){return this==e}range(e,t=e){return Va.create(e,t,this)}};vr.prototype.startSide=vr.prototype.endSide=0;vr.prototype.point=!1;vr.prototype.mapMode=Jt.TrackDel;function uO(i,e){return i==e||i.constructor==e.constructor&&i.eq(e)}var Va=class i{constructor(e,t,r){this.from=e,this.to=t,this.value=r}static create(e,t,r){return new i(e,t,r)}};function aO(i,e){return i.from-e.from||i.value.startSide-e.value.startSide}var lO=class i{constructor(e,t,r,n){this.from=e,this.to=t,this.value=r,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,t,r,n=0){let s=r?this.to:this.from;for(let o=n,a=s.length;;){if(o==a)return o;let l=o+a>>1,c=s[l]-e||(r?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,r,n){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(r,1e9,!1,s);s<o;s++)if(n(this.from[s]+e,this.to[s]+e,this.value[s])===!1)return!1}map(e,t){let r=[],n=[],s=[],o=-1,a=-1;for(let l=0;l<this.value.length;l++){let c=this.value[l],f=this.from[l]+e,O=this.to[l]+e,p,b;if(f==O){let y=t.mapPos(f,c.startSide,c.mapMode);if(y==null||(p=b=y,c.startSide!=c.endSide&&(b=t.mapPos(f,c.endSide),b<p)))continue}else if(p=t.mapPos(f,c.startSide),b=t.mapPos(O,c.endSide),p>b||p==b&&c.startSide>0&&c.endSide<=0)continue;(b-p||c.endSide-c.startSide)<0||(o<0&&(o=p),c.point&&(a=Math.max(a,b-p)),r.push(c),n.push(p-o),s.push(b-o))}return{mapped:r.length?new i(n,s,r,a):null,pos:o}}},qe=class i{constructor(e,t,r,n){this.chunkPos=e,this.chunk=t,this.nextLayer=r,this.maxPoint=n}static create(e,t,r,n){return new i(e,t,r,n)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:r=!1,filterFrom:n=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(r&&(t=t.slice().sort(aO)),this.isEmpty)return t.length?i.of(t):this;let a=new Ec(this,null,-1).goto(0),l=0,c=[],f=new Wr;for(;a.value||l<t.length;)if(l<t.length&&(a.from-t[l].from||a.startSide-t[l].value.startSide)>=0){let O=t[l++];f.addInner(O.from,O.to,O.value)||c.push(O)}else a.rangeIndex==1&&a.chunkIndex<this.chunk.length&&(l==t.length||this.chunkEnd(a.chunkIndex)<t[l].from)&&(!o||n>this.chunkEnd(a.chunkIndex)||s<this.chunkPos[a.chunkIndex])&&f.addChunk(this.chunkPos[a.chunkIndex],this.chunk[a.chunkIndex])?a.nextChunk():((!o||n>a.to||s<a.from||o(a.from,a.to,a.value))&&(f.addInner(a.from,a.to,a.value)||c.push(Va.create(a.from,a.to,a.value))),a.next());return f.finishInner(this.nextLayer.isEmpty&&!c.length?i.empty:this.nextLayer.update({add:c,filter:o,filterFrom:n,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],r=[],n=-1;for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],l=this.chunk[o],c=e.touchesRange(a,a+l.length);if(c===!1)n=Math.max(n,l.maxPoint),t.push(l),r.push(e.mapPos(a));else if(c===!0){let{mapped:f,pos:O}=l.map(a,e);f&&(n=Math.max(n,f.maxPoint),t.push(f),r.push(O))}}let s=this.nextLayer.map(e);return t.length==0?s:new i(r,t,s||i.empty,n)}between(e,t,r){if(!this.isEmpty){for(let n=0;n<this.chunk.length;n++){let s=this.chunkPos[n],o=this.chunk[n];if(t>=s&&e<=s+o.length&&o.between(s,e-s,t-s,r)===!1)return}this.nextLayer.between(e,t,r)}}iter(e=0){return qa.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return qa.from(e).goto(t)}static compare(e,t,r,n,s=-1){let o=e.filter(O=>O.maxPoint>0||!O.is Line truncated
`)}static newName(){let e=M0[L0]||1;return M0[L0]=e+1,"\u037C"+e.toString(36)}static mount(e,t,r){let n=e[OO],s=r&&r.nonce;n?s&&n.setNonce(s):n=new dO(e,s),n.mount(Array.isArray(t)?t:[t],e)}},W0=new Map,dO=class{constructor(e,t){let r=e.ownerDocument||e,n=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let s=W0.get(r);if(s)return e[OO]=s;this.sheet=new n.CSSStyleSheet,W0.set(r,this)}else this.styleTag=r.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[OO]=this}mount(e,t){let r=this.sheet,n=0,s=0;for(let o=0;o<e.length;o++){let a=e[o],l=this.modules.indexOf(a);if(l<s&&l>-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,a),r)for(let c=0;c<a.rules.length;c++)r.insertRule(a.rules[c],n++)}else{for(;s<l;)n+=this.modules[s++].rules.length;n+=a.rules.length,s++}}if(r)t.adoptedStyleSheets.indexOf(this.sheet)<0&&(t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets]);else{let o="";for(let l=0;l<this.modules.length;l++)o+=this.modules[l].getRules()+`
`;this.styleTag.textContent=o;let a=t.head||t;this.styleTag.parentNode!=a&&a.insertBefore(this.styleTag,a.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}};var zn={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Fo={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},pP=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),mP=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(Dt=0;Dt<10;Dt++)zn[48+Dt]=zn[96+Dt]=String(Dt);var Dt;for(Dt=1;Dt<=24;Dt++)zn[Dt+111]="F"+Dt;var Dt;for(Dt=65;Dt<=90;Dt++)zn[Dt]=String.fromCharCode(Dt+32),Fo[Dt]=String.fromCharCode(Dt);var Dt;for(jc in zn)Fo.hasOwnProperty(jc)||(Fo[jc]=zn[jc]);var jc;function V0(i){var e=pP&&i.metaKey&&i.shiftKey&&!i.ctrlKey&&!i.altKey||mP&&i.shiftKey&&i.key&&i.key.length==1||i.key=="Unidentified",t=!e&&i.key||(i.shiftKey?Fo:zn)[i.keyCode]||i.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function Mt(){var i=arguments[0];typeof i=="string"&&(i=document.createElement(i));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var n=t[r];typeof n=="string"?i.setAttribute(r,n):n!=null&&(i[r]=n)}e++}for(;e<arguments.length;e++)q0(i,arguments[e]);return i}function q0(i,e){if(typeof e=="string")i.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)i.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)q0(i,e[t]);else throw new RangeError("Unsupported child node: "+e)}var Yi=typeof navigator!="undefined"?navigator:{userAgent:"",vendor:"",platform:""},wO=typeof document!="undefined"?document:{documentElement:{style:{}}},$O=/Edge\/(\d+)/.exec(Yi.userAgent),Xb=/MSIE \d/.test(Yi.userAgent),PO=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Yi.userAgent),bh=!!(Xb||PO||$O),D0=!bh&&/gecko\/(\d+)/i.test(Yi.userAgent),pO=!bh&&/Chrome\/(\d+)/.exec(Yi.userAgent),I0="webkitFontSmoothing"in wO.documentElement.style,kO=!bh&&/Apple Computer/.test(Yi.vendor),N0=kO&&(/Mobile\/\w+/.test(Yi.userAgent)||Yi.maxTouchPoints>2),xe={mac:N0||/Mac/.test(Yi.platform),windows:/Win/.test(Yi.platform),linux:/Linux|X11/.test(Yi.platform),ie:bh,ie_version:Xb?wO.documentMode||6:PO?+PO[1]:$O?+$O[1]:0,gecko:D0,gecko_version:D0?+(/Firefox\/(\d+)/.exec(Yi.userAgent)||[0,0])[1]:0,chrome:!!pO,chrome_version:pO?+pO[1]:0,ios:N0,android:/Android\b/.test(Yi.userAgent),webkit:I0,webkit_version:I0?+(/\bAppleWebKit\/(\d+)/.exec(Yi.userAgent)||[0,0])[1]:0,safari:kO,safari_version:kO?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Yi.userAgent)||[0,0])[1]:0,tabSize:wO.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function bd(i,e){for(let t in i)t=="class"&&e.class?e.class+=" "+i.class:t=="style"&&e.style?e.style+=";"+i.style:e[t]=i[t];return e}var eh=Object.create(null);function xd(i,e,t){if(i==e)return!0;i||(i=eh),e||(e=eh);let r=Object.keys(i),n=Object.keys(e);if(r.length-(t&&r.indexOf(t)>-1?1:0)!=n.length-(t&&n.indexOf(t)>-1?1:0))return!1;for(let s of r)if(s!=t&&(n.indexOf(s)==-1||i[s]!==e[s]))return!1;return!0}function gP(i,e){for(let t=i.attributes.length-1;t>=0;t--){let r=i.attributes[t].name;e[r]==null&&i.removeAttribute(r)}for(let t in e){let r=e[t];t=="style"?i.style.cssText=r:i.getAttribute(t)!=r&&i.setAttribute(t,r)}}function F0(i,e,t){let r=!1;if(e)for(let n in e)t&&n in t||(r=!0,n=="style"?i.style.cssText="":i.removeAttribute(n));if(t)for(let n in t)e&&e[n]==t[n]||(r=!0,n=="style"?i.style.cssText=t[n]:i.setAttribute(n,t[n]));return r}function bP(i){let e=Object.create(null);for(let t=0;t<i.attributes.length;t++){let r=i.attributes[t];e[r.name]=r.value}return e}var oi=class{eq(e){return!1}updateDOM(e,t,r){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,r){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}},di=(function(i){return i[i.Text=0]="Text",i[i.WidgetBefore=1]="WidgetBefore",i[i.WidgetAfter=2]="WidgetAfter",i[i.WidgetRange=3]="WidgetRange",i})(di||(di={})),pe=class extends vr{constructor(e,t,r,n){super(),this.startSide=e,this.enLine truncated
`,n=i.state.doc.line(n.number+(t?1:-1)),s=i.bidiSpans(n),c=i.visualLineSide(n,!t)}if(l){if(!l(f))return a}else{if(!r)return c;l=r(f)}a=c}}function HP(i,e,t){let r=i.state.charCategorizer(e),n=r(t);return s=>{let o=r(s);return n==Qt.Space&&(n=o),n==o}}function KP(i,e,t,r){let n=e.head,s=t?1:-1;if(n==(t?i.state.doc.length:0))return K.cursor(n,e.assoc);let o=e.goalColumn,a,l=i.contentDOM.getBoundingClientRect(),c=i.coordsAtPos(n,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),f=i.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let y=i.viewState.lineBlockAt(n);o==null&&(o=Math.min(l.right-l.left,i.defaultCharacterWidth*(n-y.from))),a=(s<0?y.top:y.bottom)+f}let O=l.left+o,p=i.viewState.heightOracle.textHeight>>1,b=r!=null?r:p;for(let y=0;;y+=p){let P=a+(b+y)*s,X=VO(i,{x:O,y:P},!1,s);if(t?P>l.bottom:P<l.top)return K.cursor(X.pos,X.assoc);let A=i.coordsAtPos(X.pos,X.assoc),H=A?(A.top+A.bottom)/2:0;if(!A||(t?H>a:H<a))return K.cursor(X.pos,X.assoc,void 0,o)}}function Ja(i,e,t){for(;;){let r=0;for(let n of i)n.between(e-1,e+1,(s,o,a)=>{if(e>s&&e<o){let l=r||t||(e-s<o-e?-1:1);e=l<0?s:o,r=l}});if(!r)return e}}function ox(i,e){let t=null;for(let r=0;r<e.ranges.length;r++){let n=e.ranges[r],s=null;if(n.empty){let o=Ja(i,n.from,0);o!=n.from&&(s=K.cursor(o,-1))}else{let o=Ja(i,n.from,-1),a=Ja(i,n.to,1);(o!=n.from||a!=n.to)&&(n.undirectional?s=K.undirectionalRange(n.from,n.to):s=K.range(n.from==n.anchor?o:a,n.from==n.head?o:a))}s&&(t||(t=e.ranges.slice()),t[r]=s)}return t?K.create(t,e.mainIndex):e}function bO(i,e,t){let r=Ja(i.state.facet(cl).map(n=>n(i)),t.from,e.head>t.from?-1:1);return r==t.from?t:K.cursor(r,r<t.from?1:-1)}var wr=class{constructor(e,t){this.pos=e,this.assoc=t}};function VO(i,e,t,r){let n=i.contentDOM.getBoundingClientRect(),s=n.top+i.viewState.paddingTop,{x:o,y:a}=e,l=a-s,c;for(;;){if(l<0)return new wr(0,1);if(l>i.viewState.docHeight)return new wr(i.state.doc.length,-1);if(c=i.elementAtHeight(l),r==null)break;if(c.type==di.Text){if(r<0?c.to<i.viewport.from:c.from>i.viewport.to)break;let p=i.docView.coordsAt(r<0?c.from:c.to,r>0?-1:1);if(p&&(r<0?p.top<=l+s:p.bottom>=l+s))break}let O=i.viewState.heightOracle.textHeight/2;l=r>0?c.bottom+O:c.top-O}if(i.viewport.from>=c.to||i.viewport.to<=c.from){if(t)return null;if(c.type==di.Text){let O=BP(i,n,c,o,a);return new wr(O,O==c.from?1:-1)}}if(c.type!=di.Text)return l<(c.top+c.bottom)/2?new wr(c.from,1):new wr(c.to,-1);let f=i.docView.lineAt(c.from,2);return(!f||f.length!=c.length)&&(f=i.docView.lineAt(c.from,-2)),new qO(i,o,a,i.textDirectionAt(c.from)).scanTile(f,c.from)}var qO=class{constructor(e,t,r,n){this.view=e,this.x=t,this.y=r,this.baseDir=n,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to<e)&&(this.line=this.view.state.doc.lineAt(e),this.spans=this.view.bidiSpans(this.line)),this}baseDirAt(e,t){let{line:r,spans:n}=this.bidiSpansAt(e);return n[$r.find(n,e-r.from,-1,t)].level==this.baseDir}dirAt(e,t){let{line:r,spans:n}=this.bidiSpansAt(e);return n[$r.find(n,e-r.from,-1,t)].dir}bidiIn(e,t){let{spans:r,line:n}=this.bidiSpansAt(e);return r.length>1||r.length&&(r[0].level!=this.baseDir||r[0].to+n.from<t)}scan(e,t,r=!1){let n=0,s=e.length-1,o=new Set,a=this.bidiIn(e[0],e[s]),l,c,f=-1,O=1e9,p;e:for(;n<s;){let y=s-n,P=n+s>>1;t:if(o.has(P)){for(let H=1;H<y;H++){let q=P+H;if(q>=s&&(q-=y),!o.has(q)){P=q;break t}}break e}o.add(P);let X=t(P),A=0;if(X)for(let H=0;H<X.length;H++){let q=X[H];if(!(q.width==0&&X.length>1))if(q.bottom<this.y)(!l||l.bottom<q.bottom)&&(l=q),A=1;else if(q.top>this.y)(!c||c.top>q.top)&&(c=q),A=-1;else{let B=q.left>this.x?this.x-q.left:q.right<this.x?this.x-q.right:0,L=Math.abs(B);L<O&&(f=P,O=L,p=q),B&&(A=B<0==(this.baseDir==vt.LTR)?-1:1)}}A==-1&&(!a||this.baseDirAt(e[P],1))?s=P:A==1&&(!a||this.baseDirAt(e[P+1],-1))&&(n=P+1)}if(!p){if(!c&&!l)return{i:e[0],after:!1};let y=l&&(!c||this.y-l.bottom<c.top-this.y)?l:c;return this.y=(y.top+y.bottom)/2,this.scan(e,t,!0)}if(O&&!r){let{top:y,bottom:P}=p;if(l&&l.bottom>(y+y+P)/3)return this.y=l.bottom-1,this.scan(e,t,!0);if(c&&c.top<(y+P+P)/3)return this.y=c.top+1,this.scan(e,t,!0)}let b=(a?this.dirAt(e[f],1):this.baseDir)==vt.LTR;return{i:f,after:this.x>(p.left+p.right)/2==b}}scanText(e,t){let r=[];for(let s=0;s<e.length;s=Lt(e.text,s))r.push(t+s);r.push(t+e.length);let n=this.scan(r,s=>{let o=r[s]-t,a=r[s+1]-t;return ol(e.dom,o,a).getClientRects()});return n.after?new wr(r[n.i+1],-1):new wr(r[n.i],1)}scanTile(e,t){if(!e.length)return new wr(t,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,t);if(a.isComposite())return this.scanTile(a,t)}let r=[t];for(let a=0,l=t;a<e.children.length;a++)r.push(l+=e.children[a].length);let n=this.scan(r,a=>{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:ol(l.dom,0,l.length)).getClientRects()}),s=e.children[n.i],o=r[n.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):n.after?new wr(r[n.i+1],-1):new wr(o,1)}},Bo="\uFFFF",DO=class{ Line truncated
`&&i.lineWrapping&&(r&&(r=K.single(r.main.anchor-1,r.main.head-1)),t={from:s.from,to:s.to,insert:it.of([" "])}),t)return Pd(i,t,r,o);if(r&&!lh(r,s)){let a=!1,l="select";return i.inputState.lastSelectionTime>Date.now()-50&&(i.inputState.lastSelectionOrigin=="select"&&(a=!0),l=i.inputState.lastSelectionOrigin,l=="select.pointer"&&(r=ox(n.facet(cl).map(c=>c(i)),r))),i.dispatch({selection:r,scrollIntoView:a,userEvent:l}),!0}else return!1}function Pd(i,e,t,r=-1){if(xe.ios&&i.inputState.flushIOSKey(e))return!0;let n=i.state.selection.main;if(xe.android&&(e.to==n.to&&(e.from==n.from||e.from==n.from-1&&i.state.sliceDoc(e.from,n.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&ta(i.contentDOM,"Enter",13)||(e.from==n.from-1&&e.to==n.to&&e.insert.length==0||r==8&&e.insert.length<e.to-e.from&&e.to>n.head)&&ta(i.contentDOM,"Backspace",8)||e.from==n.from&&e.to==n.to+1&&e.insert.length==0&&ta(i.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();i.inputState.composing>=0&&i.inputState.composing++;let o,a=()=>o||(o=tk(i,e,t));return i.state.facet(Fb).some(l=>l(i,e.from,e.to,s,a))||i.dispatch(a()),!0}function tk(i,e,t){let r,n=i.state,s=n.selection.main,o=-1;if(e.from==e.to&&e.from<s.from||e.from>s.to){let l=e.from<s.from?-1:1,c=l<0?s.from:s.to,f=Ja(n.facet(cl).map(O=>O(i)),c,l);e.from==f&&(o=f)}if(o>-1)r={changes:e,selection:K.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&i.inputState.composing<0){let l=s.from<e.from?n.sliceDoc(s.from,e.from):"",c=s.to>e.to?n.sliceDoc(e.to,s.to):"";r=n.replaceSelection(i.state.toText(l+e.insert.sliceString(0,void 0,i.state.lineBreak)+c))}else{let l=n.changes(e),c=t&&t.main.to<=l.newLength?t.main:void 0;if(n.selection.ranges.length>1&&(i.inputState.composing>=0||i.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let f=i.state.sliceDoc(e.from,e.to),O,p=t&&sx(i,t.main.head);if(p){let y=e.insert.length-(e.to-e.from);O={from:p.from,to:p.to-y}}else O=i.state.doc.lineAt(s.head);let b=s.to-e.to;r=n.changeByRange(y=>{if(y.from==s.from&&y.to==s.to)return{changes:l,range:c||y.map(l)};let P=y.to-b,X=P-f.length;if(i.state.sliceDoc(X,P)!=f||P>=O.from&&X<=O.to)return{range:y};let A=n.changes({from:X,to:P,insert:e.insert}),H=y.to-s.to;return{changes:A,range:c?K.range(Math.max(0,c.anchor+H),Math.max(0,c.head+H)):y.map(A)}})}else r={changes:l,selection:c&&n.selection.replaceRange(c)}}let a="input.type";return(i.composing||i.inputState.compositionPendingChange&&i.inputState.compositionEndedAt>Date.now()-50)&&(i.inputState.compositionPendingChange=!1,a+=".compose",i.inputState.compositionFirstChange&&(a+=".start",i.inputState.compositionFirstChange=!1)),n.update(r,{userEvent:a,scrollIntoView:!0})}function cx(i,e,t,r){let n=Math.min(i.length,e.length),s=0;for(;s<n&&i.charCodeAt(s)==e.charCodeAt(s);)s++;if(s==n&&i.length==e.length)return null;let o=i.length,a=e.length;for(;o>0&&a>0&&i.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(r=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o<s&&i.length<e.length){let l=t<=s&&t>=o?s-t:0;s-=l,a=s+(a-o),o=s}else if(a<s){let l=t<=s&&t>=a?s-t:0;s-=l,o=s+(o-a),a=s}return{from:s,toA:o,toB:a}}function ik(i){let e=[];if(i.root.activeElement!=i.contentDOM)return e;let{anchorNode:t,anchorOffset:r,focusNode:n,focusOffset:s}=i.observer.selectionRange;return t&&(e.push(new ah(t,r)),(n!=t||s!=r)&&e.push(new ah(n,s))),e}function rk(i,e){if(i.length==0)return null;let t=i[0].pos,r=i.length==2?i[1].pos:t;return t>-1&&r>-1?K.single(t+e,r+e):null}function lh(i,e){return e.head==i.main.head&&e.anchor==i.main.anchor}var NO=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,xe.safari&&e.contentDOM.addEventListener("input",()=>null),xe.gecko&&bk(e.contentDOM.ownerDocument)}handleEvent(e){!fk(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let r=this.handlers[e];if(r){for(let n of r.observers)n(this.view,t);for(let n of r.handlers){if(t.defaultPrevented)break;if(n(this.view,t)){t.preventDefault();break}}}}ensureHandl Line truncated
`))};if((xe.mac||xe.android)&&O.from==o-1&&/^\. ?$/.test(r.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(O={from:a,to:l,insert:it.of([r.text.replace("."," ")])}),this.pendingContextChange=O,!e.state.readOnly){let p=this.to-this.from+(O.to-O.from+O.insert.length);Pd(e,O,K.single(this.toEditorPos(r.selectionStart,p),this.toEditorPos(r.selectionEnd,p)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),O.from<O.to&&!O.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,r.updateRangeStart-1),Math.min(t.text.length,r.updateRangeStart+1)))&&this.handlers.compositionend(r)},this.handlers.characterboundsupdate=r=>{let n=[],s=null;for(let o=this.toEditorPos(r.rangeStart),a=this.toEditorPos(r.rangeEnd);o<a;o++){let l=e.coordsForChar(o);s=l&&new DOMRect(l.left,l.top,l.right-l.left,l.bottom-l.top)||s||new DOMRect,n.push(s)}t.updateCharacterBounds(r.rangeStart,n)},this.handlers.textformatupdate=r=>{let n=[];for(let s of r.getTextFormats()){let o=s.underlineStyle,a=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(l<c){let f=`text-decoration: underline ${/^[a-z]/.test(o)?o+" ":o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${/thin/i.test(a)?1:2}px`;n.push(pe.mark({attributes:{style:f}}).range(l,c))}}}e.dispatch({effects:Jb.of(pe.set(n))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:r}=this.composing;this.composing=null,r&&this.reset(e.state)}};for(let r in this.handlers)t.addEventListener(r,this.handlers[r]);this.measureReq={read:r=>{let n=sl(r.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,r=!1,n=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(r)return;let f=c.length-(o-s);if(n&&o>=n.to)if(n.from==s&&n.to==o&&n.insert.eq(c)){n=this.pendingContextChange=null,t+=f,this.to+=f;return}else n=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=f,this.to+=f;else if(s<this.to){if(s<this.from||o>this.to||this.to-this.from+c.length>3e4){r=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=f}t+=f}),n&&!r&&this.revertPending(e.state),!r}update(e){let t=this.pendingContextChange,r=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(r.from,r.to)&&e.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,r=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),n=this.toContextPos(t.head);(this.editContext.selectionStart!=r||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(r,n)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to<e.doc.length&&this.to-t<500||this.to-this.from>1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let r=this.composing;return r&&r.drifted?r.editorBase+(e-r.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},ae=class i{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDO Line truncated
-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,hd),Dk={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},vO=null;function Ik(){var i;if(vO==null&&typeof document!="undefined"&&document.body){let e=document.body.style;vO=((i=e.tabSize)!==null&&i!==void 0?i:e.MozTabSize)!=null}return vO||!1}var Kc=be.define({combine(i){let e=tr(i,{render:null,specialChars:qk,addSpecialChars:null});return(e.replaceTabs=!Ik())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,hd)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,hd)),e}});function Xx(i={}){return[Kc.of(i),Nk()]}var Sb=null;function Nk(){return Sb||(Sb=Ut.fromClass(class{constructor(i){this.view=i,this.decorations=pe.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(i.state.facet(Kc)),this.decorations=this.decorator.createDeco(i)}makeDecorator(i){return new al({regexp:i.specialChars,decoration:(e,t,r)=>{let{doc:n}=t.state,s=Vr(e[0],0);if(s==9){let o=n.lineAt(r),a=t.state.tabSize,l=zi(o.text,a,r-o.from);return pe.replace({widget:new ud((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=pe.replace({widget:new fd(i,s)}))},boundary:i.replaceTabs?void 0:/[^]/})}update(i){let e=i.state.facet(Kc);i.startState.facet(Kc)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(i.view)):this.decorations=this.decorator.updateDeco(i,this.decorations)}},{decorations:i=>i.decorations}))}var Fk="\u2022";function Bk(i){return i>=32?Fk:i==10?"\u2424":String.fromCharCode(9216+i)}var fd=class extends oi{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=Bk(this.code),r=e.state.phrase("Control character")+" "+(Dk[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,r,t);if(n)return n;let s=document.createElement("span");return s.textContent=t,s.title=r,s.setAttribute("aria-label",r),s.className="cm-specialChar",s}ignoreEvent(){return!1}},ud=class extends oi{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function Td(){return Hk}var Gk=pe.line({class:"cm-activeLine"}),Hk=Ut.fromClass(class{constructor(i){this.decorations=this.getDeco(i)}update(i){(i.docChanged||i.selectionSet)&&(this.decorations=this.getDeco(i.view))}getDeco(i){let e=-1,t=[];for(let r of i.state.selection.ranges){let n=i.lineBlockAt(r.head);n.from>e&&(t.push(Gk.range(n.from)),e=n.from)}return pe.set(t)}},{decorations:i=>i.decorations});var Od=2e3;function Kk(i,e,t){let r=Math.min(e.line,t.line),n=Math.max(e.line,t.line),s=[];if(e.off>Od||t.off>Od||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=r;l<=n;l++){let c=i.doc.line(l);c.length<=a&&s.push(K.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=r;l<=n;l++){let c=i.doc.line(l),f=Yc(c.text,o,i.tabSize,!0);if(f<0)s.push(K.cursor(c.to));else{let O=Yc(c.text,a,i.tabSize);s.push(K.range(c.from+f,c.from+O))}}}return s}function Jk(i,e){let t=i.coordsAtPos(i.viewport.from);return t?Math.round(Math.abs((t.left-e)/i.defaultCharacterWidth)):-1}function yb(i,e){let t=i.posAtCoords({x:e.clientX,y:e.clientY},!1),r=i.state.doc.lineAt(t),n=t-r.from,s=n>Od?-1:n==r.length?Jk(i,e.clientX):zi(r.text,i.state.tabSize,t-r.from);return{line:r.number,col:s,off:n}}function eT(i,e){let t=yb(i,e),r=i.state.selection;return t?{update(n){if(n.docChanged){let s=n.changes.mapPos(n.startState.doc.line(t.line).from),o=n.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},r=r.map(n.changes)}},get(n,s,o){let a=yb(i,n);if(!a)return r;let l=Kk(i.state,t,a);return l.length?o?K.create(l.concat(r.ranges)):K.create(l):r}}:null}function Xd(i){let e=(i==null?void 0:i.eventFilter)||(t=>t.altKey&&t.button==0);return ae.mouseSelectionStyle.of((t,r)=>e(r)?eT(t,r):null)}var tT={Alt:[18,i=>!!i.altKey],Control:[17,i=>!!i.ctrlKey],Shift:[16,i=>!!i.shiftKey],Meta:[91,i=>!!i.metaKey]},iT={style:"cursor: crosshair"};function _d(i={}){let[e,t]=tT[i.key||"Alt"],r=Ut.fromClass(class{constructor(n){this.view=n,this.isDown=!1}set(n){this.isDown!=n&&(this.isDown=n,this.view.update([]))}},{eventObservers:{keydown(n){this.set(n.keyCode==e||t(n))},keyup(n){(n.keyCode==e||!t(n))&&this.set(!1)},mousemove(n){this.set(t(n))}}} Line truncated
`&&(t="");else{let r=t.indexOf(`
`);r>-1&&(t=t.slice(0,r))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),r=e+t.length;for(let n=this.rangeIndex;;){let s=this.ranges[n].to;if(s>=r||(t=t.slice(0,s-(r-t.length)),n++,n==this.ranges.length))break;let o=this.ranges[n].from,a=this.lineAfter(o);t+=a,r=o+a.length}return{line:t,end:r}}skipGapsTo(e,t,r){for(;;){let n=this.ranges[this.rangeIndex].to,s=e+t;if(r>0?n>s:n>=s)break;let o=this.ranges[++this.rangeIndex].from;t+=o-n}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(e,t,r,n){let s=4;if(this.ranges.length>1){n=this.skipGapsTo(t,n,1),t+=n;let a=this.chunk.length;n=this.skipGapsTo(r,n,-1),r+=n,s+=this.chunk.length-a}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=r:this.chunk.push(e,t,r,s),n}parseLine(e){let{line:t,end:r}=this.nextLine(),n=0,{streamParser:s}=this.lang,o=new Th(t,e?e.state.tabSize:4,e?xs(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let a=pv(s.token,o,this.state);if(a&&(n=this.emitToken(this.lang.tokenTable.resolve(a),this.parsedPos+o.start,this.parsedPos+o.pos,n)),o.start>1e4)break}this.parsedPos=r,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let e=Fe.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:BT,topID:0,maxBufferLength:512,reused:this.chunkReused});e=new Fe(e.type,e.children,e.positions,e.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(e),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new Fe(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}};function pv(i,e,t){e.start=e.pos;for(let r=0;r<10;r++){let n=i(e,t);if(e.pos>e.start)return n}throw new Error("Stream parser failed to advance stream.")}var lp=Object.create(null),ul=[Ut.none],BT=new jn(ul),Jx=[],ev=Object.create(null),mv=Object.create(null);for(let[i,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])mv[i]=gv(lp,e);var Xh=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),mv)}resolve(e){return e?this.table[e]||(this.table[e]=gv(this.extra,e)):0}},FT=new Xh(lp);function Id(i,e){Jx.indexOf(i)>-1||(Jx.push(i),console.warn(e))}function gv(i,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let f=i[c]||y[c];f?typeof f=="function"?l.length?l=l.map(f):Id(c,`Modifier ${c} used at start of tag`):l.length?Id(c,`Tag ${c} used as modifier`):l=Array.isArray(f)?f:[f]:Id(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let r=e.replace(/ /g,"_"),n=r+" "+t.map(a=>a.id),s=ev[n];if(s)return s.id;let o=ev[n]=Ut.define({id:ul.length,name:r,props:[Oi({[r]:t})]});return ul.push(o),o.id}function HT(i,e){let t=Ut.define({id:ul.length,name:"Document",props:[Vn.add(()=>i),Pr.add(()=>r=>e.getIndent(r))],top:!0});return ul.push(t),t}var F5={rtl:pe.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:vt.RTL}),ltr:pe.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:vt.LTR}),auto:pe.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var Ah=class{constructor(e,t,r,n){this.state=e,this.pos=t,this.explicit=r,this.view=n,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=ct(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),r=Math.max(t.from,this.pos-250),n=t.text.slice(r-t.from,this.pos-t.from),s=n.search(JT(e,!1));return s<0?null:{from:r+s,to:this.pos,text:n.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,r){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),r&&r.onDocChange&&(this.abortOnDocChange=!0))}};function bv(i){let e=Object.keys(i).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function KT(i){let e=Object.create(null),t=Object.create(null);for(let{label:n}of i){e[n[0]]=!0;for(let s=1;s<n.length;s++)t[n[s]]=!0}let r=bv(e)+bv(t)+"*$";return[new RegExp("^"+r),new RegExp(r)]}function Sv(i){let e=i.map(n=>typeof n=="string"?{label:n}:n),[t,r]=e.every(n=>/^\w+$/.test(n.label))?[/\w*$/,/\w+$/]:KT(e);return n=>{let s=n.matchBefore(r);return s||n.explicit?{from:s?s.from:n.pos,options:e,validFor:t}:null}}function Qv(i,e){return t=>{for(let r=ct(t.state).reso Line truncated
`;let o=i.state.facet(gn),a=o instanceof di?"Lezer LRLanguage":o instanceof Kt?"StreamLanguage":"Unknown",l=o instanceof di?"AST ":o instanceof Kt?"Token ":"Name ";return{pos:e,above:!0,arrow:!0,create(c){let f=document.createElement("div");f.style.overflow="visible",f.style.height="0",f.style.width="0";let O=document.createElement("div");return O.className="cm-debug-tooltip",O.textContent=`Parser: ${a}
`);r>-1&&(t=t.slice(0,r))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),r=e+t.length;for(let n=this.rangeIndex;;){let s=this.ranges[n].to;if(s>=r||(t=t.slice(0,s-(r-t.length)),n++,n==this.ranges.length))break;let o=this.ranges[n].from,a=this.lineAfter(o);t+=a,r=o+a.length}return{line:t,end:r}}skipGapsTo(e,t,r){for(;;){let n=this.ranges[this.rangeIndex].to,s=e+t;if(r>0?n>s:n>=s)break;let o=this.ranges[++this.rangeIndex].from;t+=o-n}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(e,t,r,n){let s=4;if(this.ranges.length>1){n=this.skipGapsTo(t,n,1),t+=n;let a=this.chunk.length;n=this.skipGapsTo(r,n,-1),r+=n,s+=this.chunk.length-a}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=r:this.chunk.push(e,t,r,s),n}parseLine(e){let{line:t,end:r}=this.nextLine(),n=0,{streamParser:s}=this.lang,o=new Ch(t,e?e.state.tabSize:4,e?Ss(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let a=$v(s.token,o,this.state);if(a&&(n=this.emitToken(this.lang.tokenTable.resolve(a),this.parsedPos+o.start,this.parsedPos+o.pos,n)),o.start>1e4)break}this.parsedPos=r,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let e=Ge.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:hX,topID:0,maxBufferLength:512,reused:this.chunkReused});e=new Ge(e.type,e.children,e.positions,e.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(e),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new Ge(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}};function $v(i,e,t){e.start=e.pos;for(let r=0;r<10;r++){let n=i(e,t);if(e.pos>e.start)return n}throw new Error("Stream parser failed to advance stream.")}var dp=Object.create(null),ml=[Et.none],hX=new Mn(ml),cv=[],hv=Object.create(null),Pv=Object.create(null);for(let[i,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Pv[i]=kv(dp,e);var Zh=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),Pv)}resolve(e){return e?this.table[e]||(this.table[e]=kv(this.extra,e)):0}},fX=new Zh(dp);function Kd(i,e){cv.indexOf(i)>-1||(cv.push(i),console.warn(e))}function kv(i,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let f=i[c]||S[c];f?typeof f=="function"?l.length?l=l.map(f):Kd(c,`Modifier ${c} used at start of tag`):l.length?Kd(c,`Tag ${c} used as modifier`):l=Array.isArray(f)?f:[f]:Kd(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let r=e.replace(/ /g,"_"),n=r+" "+t.map(a=>a.id),s=hv[n];if(s)return s.id;let o=hv[n]=Et.define({id:ml.length,name:r,props:[pi({[r]:t})]});return ml.push(o),o.id}function uX(i,e){let t=Et.define({id:ml.length,name:"Document",props:[qn.add(()=>i),Tr.add(()=>r=>e.getIndent(r))],top:!0});return ml.push(t),t}var hz={rtl:pe.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:vt.RTL}),ltr:pe.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:vt.LTR}),auto:pe.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var jh=class{constructor(e,t,r,n){this.state=e,this.pos=t,this.explicit=r,this.view=n,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=ct(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),r=Math.max(t.from,this.pos-250),n=t.text.slice(r-t.from,this.pos-t.from),s=n.search(dX(e,!1));return s<0?null:{from:r+s,to:this.pos,text:n.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,r){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),r&&r.onDocChange&&(this.abortOnDocChange=!0))}};function Tv(i){let e=Object.keys(i).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function OX(i){let e=Object.create(null),t=Object.create(null);for(let{label:n}of i){e[n[0]]=!0;for(let s=1;s<n.length;s++)t[n[s]]=!0}let r=Tv(e)+Tv(t)+"*$";return[new RegExp("^"+r),new RegExp(r)]}function Cv(i){let e=i.map(n=>typeof n=="string"?{label:n}:n),[t,r]=e.every(n=>/^\w+$/.test(n.label))?[/\w*$/,/\w+$/]:OX(e);return n=>{let s=n.matchBefore(r);return s||n.explicit?{from:s?s.from:n.pos,options:e,validFor:t}:null}}function Zv(i,e){return t=>{for(let r=ct(t.state).reso Line truncated
`;let o=i.state.facet(xn),a=o instanceof mi?"Lezer LRLanguage":o instanceof ei?"StreamLanguage":"Unknown",l=o instanceof mi?"AST ":o instanceof ei?"Token ":"Name ";return{pos:e,above:!0,arrow:!0,create(c){let f=document.createElement("div");f.style.overflow="visible",f.style.height="0",f.style.width="0";let O=document.createElement("div");return O.className="cm-debug-tooltip",O.textContent=`Parser: ${a}
${l}: ${r.name}
Tags : ${s}`,O.style.whiteSpace="pre-wrap",O.style.fontFamily="monospace",O.style.background="#333",O.style.color="white",O.style.padding="2px 8px",O.style.borderRadius="4px",O.style.fontSize="12px",O.style.border="1px solid #555",O.style.pointerEvents="none",O.style.position="absolute",O.style.bottom="0",O.style.width="max-content",f.appendChild(O),{dom:f}}}},{hoverTime:10,hideOnChange:!0});var vX=i=>{let{state:e}=i,t=e.doc.lineAt(e.selection.main.from),r=vp(i.state,t.from);return r.line?yX(i):r.block?QX(i):!1};function xp(i,e){return({state:t,dispatch:r})=>{if(t.readOnly)return!1;let n=i(e,t);return n?(r(t.update(n)),!0):!1}}var yX=xp(PX,0);var SX=xp(Lv,0);var QX=xp((i,e)=>Lv(i,e,$X(e)),0);function vp(i,e){let t=i.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var ml=50;function wX(i,{open:e,close:t},r,n){let s=i.sliceDoc(r-ml,r),o=i.sliceDoc(n,n+ml),a=/\s*$/.exec(s)[0].length,l=/^\s*/.exec(o)[0].length,c=s.length-a;if(s.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:r-a,margin:a&&1},close:{pos:n+l,margin:l&&1}};let f,O;n-r<=2*ml?f=O=i.sliceDoc(r,n):(f=i.sliceDoc(r,r+ml),O=i.sliceDoc(n-ml,n));let p=/^\s*/.exec(f)[0].length,b=/\s*$/.exec(O)[0].length,S=O.length-b-t.length;return f.slice(p,p+e.length)==e&&O.slice(S,S+t.length)==t?{open:{pos:r+p+e.length,margin:/\s/.test(f.charAt(p+e.length))?1:0},close:{pos:n-b-t.length,margin:/\s/.test(O.charAt(S-1))?1:0}}:null}function $X(i){let e=[];for(let t of i.selection.ranges){let r=i.doc.lineAt(t.from),n=t.to<=r.to?r:i.doc.lineAt(t.to);n.from>r.from&&n.from==t.to&&(n=t.to==r.to+1?r:i.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>r.from?e[s].to=n.to:e.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:n.to})}return e}function Lv(i,e,t=e.selection.ranges){let r=t.map(s=>vp(e,s.from).block);if(!r.every(s=>s))return null;let n=t.map((s,o)=>wX(e,r[o],s.from,s.to));if(i!=2&&!n.every(s=>s))return{changes:e.changes(t.map((s,o)=>n[o]?[]:[{from:s.from,insert:r[o].open+" "},{from:s.to,insert:" "+r[o].close}]))};if(i!=1&&n.some(s=>s)){let s=[];for(let o=0,a;o<n.length;o++)if(a=n[o]){let l=r[o],{open:c,close:f}=a;s.push({from:c.pos-l.open.length,to:c.pos+c.margin},{from:f.pos-f.margin,to:f.pos+l.close.length})}return{changes:s}}return null}function PX(i,e,t=e.selection.ranges){let r=[],n=-1;e:for(let{from:s,to:o}of t){let a=r.length,l=1e9,c;for(let f=s;f<=o;){let O=e.doc.lineAt(f);if(c==null&&(c=vp(e,O.from).line,!c))continue e;if(O.from>n&&(s==o||o>O.from)){n=O.from;let p=/^\s*/.exec(O.text)[0].length,b=p==O.length,S=O.text.slice(p,p+c.length)==c?p:-1;p<O.text.length&&p<l&&(l=p),r.push({line:O,comment:S,token:c,indent:p,empty:b,single:!1})}f=O.to+1}if(l<1e9)for(let f=a;f<r.length;f++)r[f].indent<r[f].line.text.length&&(r[f].indent=l);r.length==a+1&&(r[a].single=!0)}if(i!=2&&r.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:f,single:O}of r)(O||!f)&&s.push({from:a.from+c,insert:l+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(i!=1&&r.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of r)if(a>=0){let c=o.from+a,f=c+l.length;o.text[f-o.from]==" "&&f++,s.push({from:c,to:f})}return{changes:s}}return null}var mp=Ii.define(),jh=Ii.define(),kX=be.define(),Wv=be.define({combine(i){return Ji(i,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(r,n)=>e(r,n)||t(r,n)})}}),Vv=ot.define({create(){return uo.empty},update(i,e){let t=e.state.facet(Wv),r=e.annotation(mp);if(r){let l=Ir.fromTransaction(e,r.selection),c=r.side,f=c==0?i.undone:i.done;return l?f=Yh(f,f.length,t.minDepth,l):f=Dv(f,e.startState.selection),new uo(c==0?r.rest:f,c==0?f:r.rest)}let n=e.annotation(jh);if((n=="full"||n=="before")&&(i=i.isolate()),e.annotation(Rt.addToHistory)===!1)return e.changes.empty?i:i.addMapping(e.changes.desc);let s=Ir.fromTransaction(e),o=e.annotation(Rt.time),a=e.annotation(Rt.userEvent);return s?i=i.addChanges(s,o,a,t,e):e.selection&&(i=i.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(n=="full"||n=="after")&&(i=i.isolate()),i},toJSON(i){return{done:i.done.map(e=>e.toJSON()),undone:i.undone.map(e=>e.toJSON())}},fromJSON(i){return new uo(i.done.map(Ir.fromJSON),i.undone.map(Ir.fromJSON))}});function Mv(i={}){return[Vv,Wv.of(i),ae.domEventHandlers({beforeinput(e,t){let r=e.inputType=="historyUndo"?Wh:e.inputType=="historyRedo"?gl:null;return r?(e.preventDefault(),r(t)):!1}})]}function Lh(i,e){return function({state:t,dispatch:r}){if(!e&&t.readOnly)return!1;let n=t.field(Vv,!1);if(!n)return!1;let s=n.pop(i,t,e);return s?(r(s),!0):!1}}var Wh=Lh(0,!1),gl=Lh(1,!1),TX=Lh(0,!0),XX=Lh(1,!0);var Ir=class i{constructor(e,t,r,n,s){this.changes=e,this.effects=t,this.mapped=r,this.startSelection=n,this.selectionsAfter=s}setSelAfter(e){return new i(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,r;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=thi Line truncated
Tags : ${s}`,O.style.whiteSpace="pre-wrap",O.style.fontFamily="monospace",O.style.background="#333",O.style.color="white",O.style.padding="2px 8px",O.style.borderRadius="4px",O.style.fontSize="12px",O.style.border="1px solid #555",O.style.pointerEvents="none",O.style.position="absolute",O.style.bottom="0",O.style.width="max-content",f.appendChild(O),{dom:f}}}},{hoverTime:10,hideOnChange:!0});var AX=i=>{let{state:e}=i,t=e.doc.lineAt(e.selection.main.from),r=Pp(i.state,t.from);return r.line?EX(i):r.block?YX(i):!1};function $p(i,e){return({state:t,dispatch:r})=>{if(t.readOnly)return!1;let n=i(e,t);return n?(r(t.update(n)),!0):!1}}var EX=$p(MX,0);var zX=$p(Gv,0);var YX=$p((i,e)=>Gv(i,e,LX(e)),0);function Pp(i,e){let t=i.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var vl=50;function jX(i,{open:e,close:t},r,n){let s=i.sliceDoc(r-vl,r),o=i.sliceDoc(n,n+vl),a=/\s*$/.exec(s)[0].length,l=/^\s*/.exec(o)[0].length,c=s.length-a;if(s.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:r-a,margin:a&&1},close:{pos:n+l,margin:l&&1}};let f,O;n-r<=2*vl?f=O=i.sliceDoc(r,n):(f=i.sliceDoc(r,r+vl),O=i.sliceDoc(n-vl,n));let p=/^\s*/.exec(f)[0].length,b=/\s*$/.exec(O)[0].length,y=O.length-b-t.length;return f.slice(p,p+e.length)==e&&O.slice(y,y+t.length)==t?{open:{pos:r+p+e.length,margin:/\s/.test(f.charAt(p+e.length))?1:0},close:{pos:n-b-t.length,margin:/\s/.test(O.charAt(y-1))?1:0}}:null}function LX(i){let e=[];for(let t of i.selection.ranges){let r=i.doc.lineAt(t.from),n=t.to<=r.to?r:i.doc.lineAt(t.to);n.from>r.from&&n.from==t.to&&(n=t.to==r.to+1?r:i.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>r.from?e[s].to=n.to:e.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:n.to})}return e}function Gv(i,e,t=e.selection.ranges){let r=t.map(s=>Pp(e,s.from).block);if(!r.every(s=>s))return null;let n=t.map((s,o)=>jX(e,r[o],s.from,s.to));if(i!=2&&!n.every(s=>s))return{changes:e.changes(t.map((s,o)=>n[o]?[]:[{from:s.from,insert:r[o].open+" "},{from:s.to,insert:" "+r[o].close}]))};if(i!=1&&n.some(s=>s)){let s=[];for(let o=0,a;o<n.length;o++)if(a=n[o]){let l=r[o],{open:c,close:f}=a;s.push({from:c.pos-l.open.length,to:c.pos+c.margin},{from:f.pos-f.margin,to:f.pos+l.close.length})}return{changes:s}}return null}function MX(i,e,t=e.selection.ranges){let r=[],n=-1;e:for(let{from:s,to:o}of t){let a=r.length,l=1e9,c;for(let f=s;f<=o;){let O=e.doc.lineAt(f);if(c==null&&(c=Pp(e,O.from).line,!c))continue e;if(O.from>n&&(s==o||o>O.from)){n=O.from;let p=/^\s*/.exec(O.text)[0].length,b=p==O.length,y=O.text.slice(p,p+c.length)==c?p:-1;p<O.text.length&&p<l&&(l=p),r.push({line:O,comment:y,token:c,indent:p,empty:b,single:!1})}f=O.to+1}if(l<1e9)for(let f=a;f<r.length;f++)r[f].indent<r[f].line.text.length&&(r[f].indent=l);r.length==a+1&&(r[a].single=!0)}if(i!=2&&r.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:f,single:O}of r)(O||!f)&&s.push({from:a.from+c,insert:l+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(i!=1&&r.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of r)if(a>=0){let c=o.from+a,f=c+l.length;o.text[f-o.from]==" "&&f++,s.push({from:c,to:f})}return{changes:s}}return null}var yp=Fi.define(),Vh=Fi.define(),WX=be.define(),Hv=be.define({combine(i){return tr(i,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(r,n)=>e(r,n)||t(r,n)})}}),Kv=ot.define({create(){return po.empty},update(i,e){let t=e.state.facet(Hv),r=e.annotation(yp);if(r){let l=Fr.fromTransaction(e,r.selection),c=r.side,f=c==0?i.undone:i.done;return l?f=Wh(f,f.length,t.minDepth,l):f=tS(f,e.startState.selection),new po(c==0?r.rest:f,c==0?f:r.rest)}let n=e.annotation(Vh);if((n=="full"||n=="before")&&(i=i.isolate()),e.annotation(Zt.addToHistory)===!1)return e.changes.empty?i:i.addMapping(e.changes.desc);let s=Fr.fromTransaction(e),o=e.annotation(Zt.time),a=e.annotation(Zt.userEvent);return s?i=i.addChanges(s,o,a,t,e):e.selection&&(i=i.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(n=="full"||n=="after")&&(i=i.isolate()),i},toJSON(i){return{done:i.done.map(e=>e.toJSON()),undone:i.undone.map(e=>e.toJSON())}},fromJSON(i){return new po(i.done.map(Fr.fromJSON),i.undone.map(Fr.fromJSON))}});function Jv(i={}){return[Kv,Hv.of(i),ae.domEventHandlers({beforeinput(e,t){let r=e.inputType=="historyUndo"?Dh:e.inputType=="historyRedo"?Sl:null;return r?(e.preventDefault(),r(t)):!1}})]}function qh(i,e){return function({state:t,dispatch:r}){if(!e&&t.readOnly)return!1;let n=t.field(Kv,!1);if(!n)return!1;let s=n.pop(i,t,e);return s?(r(s),!0):!1}}var Dh=qh(0,!1),Sl=qh(1,!1),VX=qh(0,!0),qX=qh(1,!0);var Fr=class i{constructor(e,t,r,n,s){this.changes=e,this.effects=t,this.mapped=r,this.startSelection=n,this.selectionsAfter=s}setSelAfter(e){return new i(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,r;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=thi Line truncated
<h5>Editor preferences</h5>
<div class="form-group"><label>Tab size: <input type="number" id="setting_tabSize" min="1" max="40" value="${i.tabSize}" style="width:4em"></label></div>
<div class="checkbox"><label><input type="checkbox" id="setting_tabsToSpaces" ${i.tabsToSpaces?"checked":""}> Insert spaces when pressing TAB</label></div>
@@ -29,63 +29,63 @@ Tags : ${s}`,O.style.whiteSpace="pre-wrap",O.style.fontFamily="monospace",O.sty
<hr>
<h5>8bitworkshop IDE internal settings</h5>
<div class="checkbox"><label><input type="checkbox" id="setting_debugHighlightTags" ${i.debugHighlightTags?"checked":""}> Debug editor syntax highlighting tags</label></div>
</form>`,buttons:{cancel:{label:"Cancel",className:"btn-default"},ok:{label:"Save",className:"btn-primary",callback:()=>{i.tabSize=parseInt($("#setting_tabSize").val())||8,i.tabsToSpaces=$("#setting_tabsToSpaces").is(":checked"),i.highlightSpecialChars=$("#setting_highlightSpecialChars").is(":checked"),i.highlightWhitespace=$("#setting_highlightWhitespace").is(":checked"),i.highlightTrailingWhitespace=$("#setting_highlightTrailingWhitespace").is(":checked"),i.closeBrackets=$("#setting_closeBrackets").is(":checked"),i.debugHighlightTags=$("#setting_debugHighlightTags").is(":checked"),A_(i),E_(i)}}}})}var Ry=Ru(Wu());var xl=class{constructor(e,t){e=e||[],this.lines=e,this.text=t,this.offset2loc=new Map,this.line2offset=new Map;for(var r of e)r.offset>=0&&(this.offset2loc[r.offset]||(this.offset2loc[r.offset]=r),this.line2offset[r.line]||(this.line2offset[r.line]=r.offset))}findLineForOffset(e,t){if(this.offset2loc)for(var r=0;r<=t;r++){var n=this.offset2loc[e];if(n)return n;e--}return null}lineCount(){return this.lines.length}};function Xy(i){return"errors"in i}function _y(i){return"output"in i}var Nh=class{constructor(e){this.preset_id=Zi(e)}async getRemoteFile(e){return new Promise((t,r)=>Aa(e,t,Ns(e)?"arraybuffer":"text"))}async getFileData(e){var t="presets/"+this.preset_id+"/"+e,r=await this.getRemoteFile(t);return r&&console.log("read",t,r.length,"bytes"),r}async setFileData(e,t){}onFileSystemUpdate(e){}};var fa=class{constructor(e,t){this.basefs=e,this.overlayfs=t}async getFileData(e){var t=await this.overlayfs.getFileData(e);return t==null?this.basefs.getFileData(e):t}async setFileData(e,t){return await this.overlayfs.setFileData(e,t),this.basefs.setFileData(e,t)}onFileSystemUpdate(e){this.overlayfs.onFileSystemUpdate(e),this.basefs.onFileSystemUpdate(e)}},Gh=class{constructor(e){this.store=e}async getFileData(e){return this.store.getItem(e)}async setFileData(e,t){return this.store.setItem(e,t)}onFileSystemUpdate(e){}};var Bh=class{constructor(e,t,r,n){this.filedata={};this.pendingWorkerMessages=0;this.tools_preloaded={};this.isCompiling=!1;this.filename2path={};this.worker=e,this.platform_id=t,this.platform=r,this.filesystem=n,e.onmessage=s=>{this.receiveWorkerMessage(s.data)},n.onFileSystemUpdate(async s=>{if(s in this.filedata){var o=await this.filesystem.getFileData(s);o&&(this.updateFile(s,o),this.onFileChanged&&this.onFileChanged(s,o))}})}receiveWorkerMessage(e){var t=this.pendingWorkerMessages>1;t?(this.sendBuild(),this.pendingWorkerMessages=1):(this.callbackBuildStatus&&this.callbackBuildStatus(!1),this.isCompiling||(console.log(this.pendingWorkerMessages),console.trace()),this.isCompiling=!1,this.pendingWorkerMessages=0),e&&_y(e)?this.processBuildResult(e):Xy(e)&&this.processBuildListings(e),this.callbackBuildResult(e)}getToolForFilename(e){return this.remoteTool?"remote:"+this.remoteTool:this.platform.getToolForFilename(e)}preloadWorker(e){var t=this.getToolForFilename(e);t&&!this.tools_preloaded[t]&&(this.worker.postMessage({preload:t,platform:this.platform_id}),this.tools_preloaded[t]=!0)}pushAllFiles(e,t){e.push(t);var r=Cu(this.mainPath);r.length>0&&r!="local"&&e.push(r+"/"+t)}parseIncludeDependencies(e){let t=[],r;if(this.platform_id.startsWith("verilog")){let n=/^\s*(`include|[.]include)\s+"(.+?)"/gmi;for(;r=n.exec(e);)this.pushAllFiles(t,r[2]);let s=/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi;for(;r=s.exec(e);)this.pushAllFiles(t,r[2]);let o=/^\s*([.]arch)\s+(\w+)/gmi;for(;r=o.exec(e);)this.pushAllFiles(t,r[2]+".json");let a=/\$readmem[bh]\("(.+?)"/gmi;for(;r=a.exec(e);)this.pushAllFiles(t,r[1])}else{let n=/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi;for(;r=n.exec(e);)this.pushAllFiles(t,r[2]);let s=/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm;for(;r=s.exec(e);)this.pushAllFiles(t,r[3]);let o=/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm;for(;r=o.exec(e);)this.pushAllFiles(t,r[2]);let a=/^\s*(import|embed)\s*"(.+?)";/gmi;for(;r=a.exec(e);)r[1]=="import"?this.pushAllFiles(t,r[2]+".wiz"):this.pushAllFiles(t,r[2]);let l=/^\s*(import)\s*"(.+?)"/gmi;for(;r=l.exec(e);)this.pushAllFiles(t,r[2]);let c=/^[!]src\s+"(.+?)"/gmi;for(;r=c.exec(e);)this.pushAllFiles(t,r[1]);let f=/^\s*%%\s*#include\s+"(.+?)"/gm;for(;r=f.exec(e);)this.pushAllFiles(t,r[1])}return t}parseLinkDependencies(e){let t=[],r;if(!this.platform_id.startsWith("verilog")){let n=/^\s*([;]|[/][/])#link\s+"(.+?)"/gm;for(;r=n.exec(e);)this.pushAllFiles(t,r[2])}return t}loadFileDependencies(e){let t=this.parseIncludeDependencies(e),r=this.parseLinkDependencies(e),n=t.concat(r);return this.loadFiles(n).then(s=>{if(s)for(let o of s)o.link=r.indexOf(o.path)>=0;return s})}okToSend(){return this.pendingWorkerMessages++==0&&this.mainPath!=null}updateFileInStore(e,t){this.filesystem.setFileData(e,t)}buildWorkerMessage(e){this.preloadWorker(this.mainPath);var t={updates:[],buildsteps:[]},r=this.stripLocalPath(this.mainPath),n=this.getFile(this.mainPath),s=[];t.updates.push({path:r,data:n}),this.filename2path[r]=this.mainPath;let aLine truncated
</form>`,buttons:{cancel:{label:"Cancel",className:"btn-default"},ok:{label:"Save",className:"btn-primary",callback:()=>{i.tabSize=parseInt($("#setting_tabSize").val())||8,i.tabsToSpaces=$("#setting_tabsToSpaces").is(":checked"),i.highlightSpecialChars=$("#setting_highlightSpecialChars").is(":checked"),i.highlightWhitespace=$("#setting_highlightWhitespace").is(":checked"),i.highlightTrailingWhitespace=$("#setting_highlightTrailingWhitespace").is(":checked"),i.closeBrackets=$("#setting_closeBrackets").is(":checked"),i.debugHighlightTags=$("#setting_debugHighlightTags").is(":checked"),G_(i),H_(i)}}}})}var MS=Au(Du());var Ql=class{constructor(e,t){e=e||[],this.lines=e,this.text=t,this.offset2loc=new Map,this.line2offset=new Map;for(var r of e)r.offset>=0&&(this.offset2loc[r.offset]||(this.offset2loc[r.offset]=r),this.line2offset[r.line]||(this.line2offset[r.line]=r.offset))}findLineForOffset(e,t){if(this.offset2loc)for(var r=0;r<=t;r++){var n=this.offset2loc[e];if(n)return n;e--}return null}lineCount(){return this.lines.length}};function jS(i){return"errors"in i}function LS(i){return"output"in i}var Hh=class{constructor(e){this.preset_id=Ai(e)}async getRemoteFile(e){return new Promise((t,r)=>Ya(e,t,Bs(e)?"arraybuffer":"text"))}async getFileData(e){var t="presets/"+this.preset_id+"/"+e,r=await this.getRemoteFile(t);return r&&console.log("read",t,r.length,"bytes"),r}async setFileData(e,t){}onFileSystemUpdate(e){}};var da=class{constructor(e,t){this.basefs=e,this.overlayfs=t}async getFileData(e){var t=await this.overlayfs.getFileData(e);return t==null?this.basefs.getFileData(e):t}async setFileData(e,t){return await this.overlayfs.setFileData(e,t),this.basefs.setFileData(e,t)}onFileSystemUpdate(e){this.overlayfs.onFileSystemUpdate(e),this.basefs.onFileSystemUpdate(e)}},Kh=class{constructor(e){this.store=e}async getFileData(e){return this.store.getItem(e)}async setFileData(e,t){return this.store.setItem(e,t)}onFileSystemUpdate(e){}};var Jh=class{constructor(e,t,r,n){this.filedata={};this.pendingWorkerMessages=0;this.tools_preloaded={};this.isCompiling=!1;this.filename2path={};this.worker=e,this.platform_id=t,this.platform=r,this.filesystem=n,e.onmessage=s=>{this.receiveWorkerMessage(s.data)},n.onFileSystemUpdate(async s=>{if(s in this.filedata){var o=await this.filesystem.getFileData(s);o&&(this.updateFile(s,o),this.onFileChanged&&this.onFileChanged(s,o))}})}receiveWorkerMessage(e){var t=this.pendingWorkerMessages>1;t?(this.sendBuild(),this.pendingWorkerMessages=1):(this.callbackBuildStatus&&this.callbackBuildStatus(!1),this.isCompiling||(console.log(this.pendingWorkerMessages),console.trace()),this.isCompiling=!1,this.pendingWorkerMessages=0),e&&LS(e)?this.processBuildResult(e):jS(e)&&this.processBuildListings(e),this.callbackBuildResult(e)}getToolForFilename(e){return this.remoteTool?"remote:"+this.remoteTool:this.platform.getToolForFilename(e)}preloadWorker(e){var t=this.getToolForFilename(e);t&&!this.tools_preloaded[t]&&(this.worker.postMessage({preload:t,platform:this.platform_id}),this.tools_preloaded[t]=!0)}pushAllFiles(e,t){e.push(t);var r=Eu(this.mainPath);r.length>0&&r!="local"&&e.push(r+"/"+t)}parseIncludeDependencies(e){let t=this.mainPath&&this.getToolForFilename(this.mainPath),r=[];for(let n of Nu(e,d0(t,this.platform_id)))this.pushAllFiles(r,n);return r}parseLinkDependencies(e){let t=this.mainPath&&this.getToolForFilename(this.mainPath),r=[];for(let n of Nu(e,p0(t,this.platform_id)))this.pushAllFiles(r,n);return r}loadFileDependencies(e){let t=this.parseIncludeDependencies(e),r=this.parseLinkDependencies(e),n=t.concat(r);return this.loadFiles(n).then(s=>{if(s)for(let o of s)o.link=r.indexOf(o.path)>=0;return s})}okToSend(){return this.pendingWorkerMessages++==0&&this.mainPath!=null}updateFileInStore(e,t){this.filesystem.setFileData(e,t)}buildWorkerMessage(e){this.preloadWorker(this.mainPath);var t={updates:[],buildsteps:[]},r=this.stripLocalPath(this.mainPath),n=this.getFile(this.mainPath),s=[];t.updates.push({path:r,data:n}),this.filename2path[r]=this.mainPath;let a=this.getToolForFilename(this.mainPath).startsWith("remote:");for(var l of e)(!l.link||a)&&(t.updates.push({path:l.filename,data:l.data}),s.push(l.filename)),this.filename2path[l.filename]=l.path;t.buildsteps.push({path:r,files:[r].concat(s),platform:this.platform_id,tool:this.getToolForFilename(this.mainPath),mainfile:!0});for(var l of e)l.data&&l.link&&(this.preloadWorker(l.filename),t.updates.push({path:l.filename,data:l.data}),t.buildsteps.push({path:l.filename,files:[l.filename].concat(s),platform:this.platform_id,tool:this.getToolForFilename(l.path)}));return this.dataItems&&(t.setitems=this.dataItems),t}async loadFiles(e){var t=[],r=(o,a)=>{t.push({path:o,filename:this.stripLocalPath(o),link:!0,data:a})};for(var n of e)if(n in this.filedata){var s=this.filedata[n];s&&r(n,s)}else{var s=await this.filesystem.getFileData(n);s?(this.filedata[n]=s,r(n,s)):this.filedata[n]=null}return t}getFile(e){return this.filedata[e]}iterateFiLine truncated
=====
[Open this project in 8bitworkshop](http://8bitworkshop.com/redir.html?platform=$PLATFORM&githubURL=$GITHUBURL&file=$MAINFILE).
`;function ua(){for(var i={},e=0;e<localStorage.length;e++){var t=localStorage.key(e);if(t.startsWith("__repo__")){var r=JSON.parse(localStorage.getItem(t)),n=t.substring(8);i[n]=r}}return i}function vl(i){var e=i.split("/",8);return e.length<5||e[0]!="https:"||e[2]!="github.com"||e[5]&&e[5]!="tree"?null:{user:e[3],repo:e[4],repopath:e[3]+"/"+e[4],branch:e[6],subtreepath:e[7]}}var Hh=class{constructor(e,t,r,n){this.githubCons=e,this.githubToken=t,this.store=r,this.project=n,this.recreateGithub()}recreateGithub(){this.github=new this.githubCons({token:this.githubToken})}login(){if(this.githubToken&&this.githubToken.length)return new Promise((t,r)=>{t()});var e=new firebase.auth.GithubAuthProvider;return e.addScope("repo"),firebase.auth().signInWithPopup(e).then(t=>{this.githubToken=t.credential.accessToken;var r=t.user;this.recreateGithub(),document.cookie="__github_key="+this.githubToken+";path=/;max-age=31536000",console.log("Stored GitHub OAUTH key")})}logout(){return this.githubToken&&this.githubToken.length?firebase.auth().signOut().then(()=>{document.cookie="__github_key=;path=/;max-age=0",this.githubToken=null,this.recreateGithub()}):new Promise((e,t)=>{e()})}isFileIgnored(e){return e=e.toUpperCase(),!!(e.startsWith("LICENSE")||e.startsWith("README")||e.startsWith("."))}async getGithubSession(e){var t=vl(e);if(!t)throw new Error("Please enter a valid GitHub URL.");var r=ua()[t.repopath],n=t.branch||r&&r.branch,s=this.github.repos(t.user,t.repo);try{n=(await s.fetch()).defaultBranch||"master"}catch(a){console.log("could not fetch default branch: "+a),n="main"}console.log("branch =",n);var o={url:e,user:t.user,reponame:t.repo,repopath:t.repopath,branch:n,subtreepath:t.subtreepath,prefix:"",repo:s,platform_id:this.project?this.project.platform_id:r?r.platform_id:null};return o}getGithubHEADTree(e){var t;return this.getGithubSession(e).then(r=>(t=r,t.repo.git.refs.heads(t.branch).fetch())).then(r=>(t.head=r,t.sha=r.object.sha,t.repo.git.trees(t.sha).fetch())).then(r=>{if(t.subtreepath){for(let n of r.tree)if(n.type=="tree"&&n.path==t.subtreepath&&n.sha)return t.repo.git.trees(n.sha).fetch();throw Error("Cannot find subtree '"+t.subtreepath+"' in tree "+r.sha)}return r}).then(r=>(t.tree=r,t))}bind(e,t){var r="__repo__"+e.repopath;if(t){var n={url:e.url,branch:e.branch,platform_id:e.platform_id,mainPath:e.mainPath,sha:e.sha};console.log("storing",n),localStorage.setItem(r,JSON.stringify(n))}else localStorage.removeItem(r)}import(e){var t;return this.getGithubSession(e).then(r=>(t=r,t.repo.contents("README.md").read())).catch(r=>(console.log(r),console.log("no README.md found"),t.repo.fetch().then(n=>""))).then(r=>{var n;if(n=/8bitworkshop.com[^)]+file=([^)&]+)/.exec(r),n&&n[1]&&(console.log("main path: '"+n[1]+"'"),t.mainPath=n[1]),n=/8bitworkshop.com[^)]+platform=([A-Za-z0-9._\-]+)/.exec(r),n){if(console.log("platform id: '"+n[1]+"'"),t.platform_id&&!t.platform_id.startsWith(n[1]))throw Error("Platform mismatch: Repository is '"+n[1]+"', you have '"+t.platform_id+"' selected.");t.platform_id=n[1]}return this.bind(t,!0),t})}pull(e,t){var r;return this.getGithubHEADTree(e).then(n=>{r=n;let s=[];return r.paths=[],r.tree.tree.forEach(o=>{if(console.log(o.path,o.type,o.size),r.paths.push(o.path),o.type=="blob"&&!this.isFileIgnored(o.path)){var a=r.repo.git.blobs(o.sha).fetch().then(l=>{var c=r.prefix+o.path,f=o.size,O=l.encoding,p=l.content;if(l.encoding=="base64"){var b=dc(atob(p)),S=Ns(o.path,b);p=S?b:mc(b)}return l.size!=p.length&&(p=p.slice(0,l.size)),(t||this.store).setItem(c,p)});s.push(a)}else console.log("ignoring "+o.path)}),Promise.all(s)}).then(n=>r)}importAndPull(e){return this.import(e).then(t=>this.pull(e))}publish(e,t,r,n){var s,o=this.project.platform_id,a=this.project.stripLocalPath(this.project.mainPath);return this.github.user.repos.create({name:e,description:t,private:n,auto_init:!1,license_template:r}).then(l=>{s=l;var c=z_;c=c.replace(/\$NAME/g,encodeURIComponent(e)),c=c.replace(/\$PLATFORM/g,encodeURIComponent(o)),c=c.replace(/\$GITHUBURL/g,encodeURIComponent(s.htmlUrl)),c=c.replace(/\$MAINFILE/g,encodeURIComponent(a));var f={message:"8bitworkshop: updated metadata in README.md",content:btoa(c)};return s.contents("README.md").add(f)}).then(()=>this.getGithubSession(s.htmlUrl))}commit(e,t,r){var n;return t||(t="updated from 8bitworkshop.com"),this.getGithubHEADTree(e).then(s=>{if(n=s,n.subtreepath)throw Error("Sorry, right now you can only commit files to the root directory of a repository.");return Promise.all(r.map(o=>typeof o.data=="string"?n.repo.git.blobs.create({content:o.data,encoding:"utf-8"}):n.repo.git.blobs.create({content:btoa(pc(o.data)),encoding:"base64"})))}).then(s=>n.repo.git.trees.create({tree:r.map((o,a)=>({path:o.path,mode:"100644",type:"blob",sha:s[a].sha})),base_tree:n.tree.sha})).then(s=>n.repo.git.commits.create({message:t,tree:s.sha,parents:[n.head.object.sha]})).then(s=>n.repo.commits(s.sha).fetch()).then(s=>(n.commit=s,n))}push(e){return e.head.update({sha:e.com Line truncated
`},s=window.c2t({noInitialRun:!0,print:n,printErr:n}),o=s.FS,a=Jt()+".bin",l=Jt()+".wav";o.writeFile(a,ji(),{encoding:"binary"});var c=["-2bc",a+","+e.toString(16),l];s.callMain(c);var f=o.readFile(l,{encoding:"binary"});if(f){var O=new Blob([f],{type:"audio/wav"});(0,xn.saveAs)(O,l),r+="Then connect your audio output to the cassette input, turn up the volume, and play the audio file.",qi(r)}})}function W_(i){gr("lib/makewav.js").then(()=>{let e="",t=function(a){e+=a+`
`};var r=vi(Jt());let n=r+".bin",s=r+".wav";window.makewav({noInitialRun:!1,print:t,printErr:t,arguments:["-ts","-f0","-v10",n],preRun:a=>{a.FS.writeFile(n,ji(),{encoding:"binary"})}}).ready.then(a=>{let l=[n];a.run(l),console.log(e);let f=a.FS.readFile(s,{encoding:"binary"});if(f){let O=new Blob([f],{type:"audio/wav"});(0,xn.saveAs)(O,s),e+=`
Connect your audio output to the SuperCharger input, turn up the volume, and play the audio file.`,qi(e)}})})}function V_(i){var e=vi(Jt());let t=e+".tap",r=new Oo(e),n=new Kh({sine_wave:!0}),s=ji(),o=s[0]+s[1]*256;s=s.slice(2),r.setContent({data:s,startAddress:o,type:Oo.FILE_TYPE_NON_RELOCATABLE}),r.generateSound(n);let a=n.getTAPData();if(a){let l=new Blob([a],{type:"application/octet-stream"});(0,xn.saveAs)(l,t)}}function wp(){switch(Zi(Ae)){case"vcs":return W_;case"apple2":return L_;case"c64":return V_}}function Zy(i){if(ji()==null)return Ke("Please fix errors before exporting."),!0;var e=wp();if(e===void 0)return Ke("Cassette export is not supported on this platform."),!0;e(i)}function Uy(i){if(ji()==null)return Ke("Please finish compiling with no errors before downloading ROM."),!0;var e=vi(Jt());if(j.getDownloadFile){var t=j.getDownloadFile(),e=vi(Jt());(0,xn.saveAs)(t.blob,e+t.extension)}else if(ji()instanceof Uint8Array){var r=new Blob([ji()],{type:"application/octet-stream"}),n=j.getROMExtension&&j.getROMExtension(ji())||"-"+Zi(Ae)+".bin";(0,xn.saveAs)(r,e+n)}else Ke(`The "${Ae}" platform doesn't have downloadable ROMs.`)}function Ay(i){var e=$e.getCurrentText();if(!e)return!1;var t=new Blob([e],{type:"text/plain;charset=utf-8"});(0,xn.saveAs)(t,Wy(),{autoBom:!1})}async function Ey(){let i=(await import("./jszip.min-HOLYP7RC.js")).default;return new i}async function zy(i){var e=await Ey();Mn().iterateFiles((t,r)=>{r&&e.file(xi(t),r)}),e.generateAsync({type:"blob"}).then(t=>{(0,xn.saveAs)(t,Jt()+"-"+Zi(Ae)+".zip")})}function Yy(i){let e=j.getDebugSymbolFile&&j.getDebugSymbolFile();if(!e){Ke("This project does not have debug information.");return}var t=vi(Jt());(0,xn.saveAs)(e.blob,t+e.extension,{autoBom:!1})}async function jy(i){var e=await Ey(),t=await Ss().keys();Pt(!0);try{var r=0;await Promise.all(t.map(s=>Ss().getItem(s).then(o=>{jr(r++/(t.length+1)),o&&e.file(s,o)})));var n=await e.generateAsync({type:"blob"});(0,xn.saveAs)(n,Zi(Ae)+"-all.zip")}finally{Pt(!1)}}var Qp=!1;function Ly(){Qp||gr("lib/gif.js").then(()=>{var i=$("#emulator").find("canvas")[0];if(!i){Ke("Could not find canvas element to record video!");return}var e=0;i.style&&i.style.transform&&(i.style.transform.indexOf("rotate(-90deg)")>=0?e=-1:i.style.transform.indexOf("rotate(90deg)")>=0&&(e=1));var t=new GIF({workerScript:"lib/gif.worker.js",workers:4,quality:10,rotate:e}),r=$("#videoPreviewImage");t.on("progress",l=>{jr(l)}),t.on("finished",l=>{r.attr("src",URL.createObjectURL(l)),Pt(!1),j.resume(),$("#videoPreviewModal").modal("show")});var n=20,s=300,o=0;console.log("Recording video",i),$("#emulator").css("backgroundColor","#cc3333");var a=()=>{o++>s?(console.log("Rendering video"),$("#emulator").css("backgroundColor","inherit"),Pt(!0),j.pause(),t.render(),Qp=!1):(t.addFrame(i,{delay:n,copy:!0}),setTimeout(a,n),Qp=!0)};a()})}var $p;async function po(){if(!$p){await gr("lib/octokat.js"),await gr("https://www.gstatic.com/firebasejs/8.8.1/firebase-app.js"),await gr("https://www.gstatic.com/firebasejs/8.8.1/firebase-auth.js"),await gr("https://8bitworkshop.com/config.js");var i=bc("__github_key");$p=new Hh(Octokat,i,Ss(),Mn()),console.log("loaded github service")}return $p}function Sl(){var i=(qt||"").split("/");return i.length!=2?(Ke("You are not in a GitHub repository. Choose one from the pulldown, or Import or Publish one."),null):"https://github.com/"+i[0]+"/"+i[1]}async function Jh(i,e){var t,r=vl(i);if(!r){Ke("Could not parse GitHub URL.");return}var n=ua()[r.repopath];if(!(n&&!confirm("You've already imported "+r.repopath+" -- do you want to replace all local files?"))){Pt(!0);var s=Fh(r.repopath);jr(.25);var o=await po();return o.import(i).then(a=>(t=a,jr(.75),o.pull(i,s))).then(a=>{Pt(!1),mo(e,{repo:r.repopath})}).catch(a=>{Pt(!1),console.log(a),Ke("Could not import "+i+". "+a)})}}async function Vy(i){var e=await po();e.login().then(()=>{qi("You are signed in to GitHub.")}).catch(t=>{Ke("Could not sign in."+t)})}async function My(i){var e=await po();e.logout().then(()=>{qi("You are logged out of GitHub.")})}function qy(i){var e=$("#importGithubModal"),t=$("#importGithubButton");e.modal("show"),e.off("shown.bs.modal").on("shown.bs.modal",()=>$("#importGithubURL").trigger("focus")),$("#importGithubURL").off("keydown").on("keydown",r=>{r.key==="Enter"&&(r.preventDefault(),t.trigger("click"))}),t.off("click").on("click",()=>{var r=$("#importGithubURL").val()+"";e.modal("hide"),Jh(r,!1)})}function Dy(i){if(!(qt&&!confirm("This project ("+Mn().mainPath+") is already bound to a GitHub repository. Do you want to re-publish to a new repository? (You can instead choose 'Push Changes' to update files in the existing repository.)"))){var e=$("#publishGithubModal"),t=$("#publishGithubButton");$("#githubRepoName").val(vi(xi(Mn().mainPath))),e.modal("show"),t.off("click").on("click",async()=>{var r=$("#githubRepoName").val()+"",n=$("#githubRepoDesc").val()+"",s=$("#githubRepoPrivate").val()=="private",o=$("#githubRepoLicense").val()+"Line truncated
`&&t++;return t}function sS(i,e){for(var t=/[/;][*;]([{].+[}])[*;][/;]/g,r=[],n;n=t.exec(i);){var s=n.index+n[0].length,o;e?o=i.indexOf("end",s):n[0].startsWith(";;")?(o=i.indexOf(";;",s),o==i.indexOf(";;{",s)&&(o=-1)):o=i.indexOf(";",s);var a=Hy(i,n.index),l=n[0],c=o>=0?Hy(i,o):"???";if(o<0){var f=e?'"end"':n[0].startsWith(";;")?'";;"':'";"';r.push({header:l,startline:a,endline:c,error:`No closing ${f} found after asset header`})}else if(o<=s)r.push({header:l,startline:a,endline:c,error:"Empty data block after asset header"});else try{var O=n[1].replace(/([A-Za-z]+):/g,'"$1":'),p=JSON.parse(O),b=/#embed\s+"(.+?)"/.exec(i.substring(s,o)),S=b?b[1]:void 0;r.push({header:l,startline:a,endline:c,fmt:p,start:s,end:o,embedFile:S})}catch(P){r.push({header:l,startline:a,endline:c,error:`Invalid asset format: ${P.message}`})}}return r}function oS(i,e,t){if(t(e))return e;var r=i.lastIndexOf("/");if(r>=0){var n=i.substring(0,r+1)+e;if(t(n))return n}return null}function iR(i,e){if(e.destfmt&&(e=e.destfmt),e.pacstrip)return eR(i,e);var t=e.w,r=e.h,n=e.count||1,s=e.bpp||1,o=e.np||1,a=e.bpw||8,l=e.sl||Math.ceil(e.w*s/a),c=(1<<s)-1,f=e.pofs||l*r*n,O=e.skip||0,p=e.wpimg||l*r,b=l;e.il&&(p=l,b=l*n);var S=e.il?b*r:p*n,P;o>0&&e.sl?P=new Uint8Array(S):a<=8?P=new Uint8Array(S*o):P=new Uint32Array(S*o);for(var X=0;X<n;X++)for(var A=i[X],H=0,q=0;q<r;q++)for(var B=e.flip?r-1-q:q,L=X*p+B*b,d=0,M=0;M<t;M++){var F=A[H++],de=_p(L,e.remap);e.reindex&&([de,d]=Rp(M,e.reindex),de+=L);for(var Ue=0;Ue<o;Ue++){var Pe=F>>Ue*s&c;P[de+Ue*f+O]|=e.brev?Pe<<a-d-s:Pe<<d}d+=s,d>=a&&!e.reindex&&(L+=1,d=0)}return P}function Ky(i,e,t,r,n,s,o){for(var a=[],l=0;l<i.length;l++){var c=i[l],f=4278190080;f|=(c>>e&(1<<t)-1)<<8-t,f|=(c>>r&(1<<n)-1)<<16-n,f|=(c>>s&(1<<o)-1)<<24-o,a.push(f)}return a}function rR(i){var e=(i>>0&1)*33+(i>>1&1)*71+(i>>2&1)*151,t=(i>>3&1)*33+(i>>4&1)*71+(i>>5&1)*151,r=(i>>6&1)*81+(i>>7&1)*174;return 4278190080|r<<16|t<<8|e}function nR(i){var e=i.pal;if(typeof e=="number"){var t=Math.floor(Math.abs(e/100)%10),r=Math.floor(Math.abs(e/10)%10),n=Math.floor(Math.abs(e)%10);return 1<<t+r+n}else{if(e==="pacman")return 256;var s=aS[e];if(s)return s.length;throw new Error("No palette named "+e)}}function Jy(i,e){var t=e.pal,r;if(typeof t=="number"){var n=Math.floor(Math.abs(t/100)%10),s=Math.floor(Math.abs(t/10)%10),o=Math.floor(Math.abs(t)%10);t>=0?r=Ky(i,0,n,n,s,n+s,o):r=Ky(i,n+s,o,n,s,0,n)}else if(t==="pacman"){r=[];for(var a=0;a<i.length;a++)r.push(rR(i[a]))}else{var l=aS[t];if(l)r=new Uint32Array(i).map(c=>l[c&l.length-1]|4278190080);else throw new Error("No palette named "+t)}return r}var aS={gb:[13686916,8890444,5401396,2961698],nes:[5395026,11796480,10485760,11599933,7602281,91,95,6208,12048,543240,26368,1196544,7153664,0,0,0,12899815,16728064,14421538,16729963,14090399,6818519,6588,21681,27227,35843,43776,2918400,10777088,0,0,0,16316664,16755516,16742785,16735173,16730354,14633471,4681215,46327,57599,58229,259115,7911470,15065624,7895160,0,0,16777215,16773822,16300216,16300248,16758527,16761855,13095423,10148607,8973816,8650717,12122296,16119980,16777136,16308472,0,0],ap2lores:[0,16711935,127,8323199,32512,8355711,191,255,12549888,16760576,12566463,16744319,65280,16776960,49023,16777215],vcs:[0,0,4210752,4210752,7105644,7105644,9474192,9474192,11579568,11579568,13158600,13158600,14474460,14474460,16053492,16053492,17476,17476,1074276,1074276,2393220,2393220,3448992,3448992,4241592,4241592,5296336,5296336,6088936,6088936,6880508,6880508,10352,10352,1328260,1328260,2645144,2645144,3963052,3963052,5016764,5016764,6070476,6070476,6862044,6862044,7915756,7915756,6276,6276,1586328,1586328,3166380,3166380,4745408,4745408,6062288,6062288,7378144,7378144,8431852,8431852,9747708,9747708,136,136,2105500,2105500,3947696,3947696,5789888,5789888,7368912,7368912,8947936,8947936,10526956,10526956,11842812,11842812,6029432,6029432,7610508,7610508,8928416,8928416,10246320,10246320,11563200,11563200,12616912,12616912,13671644,13671644,14725356,14725356,7864392,7864392,9445472,9445472,10763384,10763384,12081292,12081292,13398176,13398176,14451892,14451892,15506628,15506628,16560340,16560340,8650772,8650772,9969712,9969712,11287628,11287628,12605544,12605544,13660284,13660284,14715028,14715028,15507624,15507624,16561340,16561340,8912896,8912896,10231836,10231836,11550776,11550776,12606544,12606544,13661288,13661288,14716028,14716028,15508624,15508624,16562340,16562340,8132608,8132608,9451548,9451548,11031608,11031608,12349520,12349520,13404264,13404264,14457980,14457980,15512720,15512720,16566436,16566436,6040576,6040576,7883804,7883804,9463864,9463864,11306064,11306064,12622952,12622952,13939836,13939836,15256720,15256720,16572580,16572580,2898944,2898944,4742172,4742172,6585400,6585400,8428624,8428624,9745512,9745512,11325564,11325564,12641424,12641424,13958308,13958308,15360,15360,2120736,2120736,4226112,4226112,6069340,6069340,7648372,7648372,9228428,9228428,10806436,10806436,12123320,12123320,14356,14356,1858612,1858612,3701840,3701840,5281900,528190 Line truncated
`;function pa(){for(var i={},e=0;e<localStorage.length;e++){var t=localStorage.key(e);if(t.startsWith("__repo__")){var r=JSON.parse(localStorage.getItem(t)),n=t.substring(8);i[n]=r}}return i}function wl(i){var e=i.split("/",8);return e.length<5||e[0]!="https:"||e[2]!="github.com"||e[5]&&e[5]!="tree"?null:{user:e[3],repo:e[4],repopath:e[3]+"/"+e[4],branch:e[6],subtreepath:e[7]}}var tf=class{constructor(e,t,r,n){this.githubCons=e,this.githubToken=t,this.store=r,this.project=n,this.recreateGithub()}recreateGithub(){this.github=new this.githubCons({token:this.githubToken})}login(){if(this.githubToken&&this.githubToken.length)return new Promise((t,r)=>{t()});var e=new firebase.auth.GithubAuthProvider;return e.addScope("repo"),firebase.auth().signInWithPopup(e).then(t=>{this.githubToken=t.credential.accessToken;var r=t.user;this.recreateGithub(),document.cookie="__github_key="+this.githubToken+";path=/;max-age=31536000",console.log("Stored GitHub OAUTH key")})}logout(){return this.githubToken&&this.githubToken.length?firebase.auth().signOut().then(()=>{document.cookie="__github_key=;path=/;max-age=0",this.githubToken=null,this.recreateGithub()}):new Promise((e,t)=>{e()})}isFileIgnored(e){return e=e.toUpperCase(),!!(e.startsWith("LICENSE")||e.startsWith("README")||e.startsWith("."))}async getGithubSession(e){var t=wl(e);if(!t)throw new Error("Please enter a valid GitHub URL.");var r=pa()[t.repopath],n=t.branch||r&&r.branch,s=this.github.repos(t.user,t.repo);try{n=(await s.fetch()).defaultBranch||"master"}catch(a){console.log("could not fetch default branch: "+a),n="main"}console.log("branch =",n);var o={url:e,user:t.user,reponame:t.repo,repopath:t.repopath,branch:n,subtreepath:t.subtreepath,prefix:"",repo:s,platform_id:this.project?this.project.platform_id:r?r.platform_id:null};return o}getGithubHEADTree(e){var t;return this.getGithubSession(e).then(r=>(t=r,t.repo.git.refs.heads(t.branch).fetch())).then(r=>(t.head=r,t.sha=r.object.sha,t.repo.git.trees(t.sha).fetch())).then(r=>{if(t.subtreepath){for(let n of r.tree)if(n.type=="tree"&&n.path==t.subtreepath&&n.sha)return t.repo.git.trees(n.sha).fetch();throw Error("Cannot find subtree '"+t.subtreepath+"' in tree "+r.sha)}return r}).then(r=>(t.tree=r,t))}bind(e,t){var r="__repo__"+e.repopath;if(t){var n={url:e.url,branch:e.branch,platform_id:e.platform_id,mainPath:e.mainPath,sha:e.sha};console.log("storing",n),localStorage.setItem(r,JSON.stringify(n))}else localStorage.removeItem(r)}import(e){var t;return this.getGithubSession(e).then(r=>(t=r,t.repo.contents("README.md").read())).catch(r=>(console.log(r),console.log("no README.md found"),t.repo.fetch().then(n=>""))).then(r=>{var n;if(n=/8bitworkshop.com[^)]+file=([^)&]+)/.exec(r),n&&n[1]&&(console.log("main path: '"+n[1]+"'"),t.mainPath=n[1]),n=/8bitworkshop.com[^)]+platform=([A-Za-z0-9._\-]+)/.exec(r),n){if(console.log("platform id: '"+n[1]+"'"),t.platform_id&&!t.platform_id.startsWith(n[1]))throw Error("Platform mismatch: Repository is '"+n[1]+"', you have '"+t.platform_id+"' selected.");t.platform_id=n[1]}return this.bind(t,!0),t})}pull(e,t){var r;return this.getGithubHEADTree(e).then(n=>{r=n;let s=[];return r.paths=[],r.tree.tree.forEach(o=>{if(console.log(o.path,o.type,o.size),r.paths.push(o.path),o.type=="blob"&&!this.isFileIgnored(o.path)){var a=r.repo.git.blobs(o.sha).fetch().then(l=>{var c=r.prefix+o.path,f=o.size,O=l.encoding,p=l.content;if(l.encoding=="base64"){var b=bc(atob(p)),y=Bs(o.path,b);p=y?b:vc(b)}return l.size!=p.length&&(p=p.slice(0,l.size)),(t||this.store).setItem(c,p)});s.push(a)}else console.log("ignoring "+o.path)}),Promise.all(s)}).then(n=>r)}importAndPull(e){return this.import(e).then(t=>this.pull(e))}publish(e,t,r,n){var s,o=this.project.platform_id,a=this.project.stripLocalPath(this.project.mainPath);return this.github.user.repos.create({name:e,description:t,private:n,auto_init:!1,license_template:r}).then(l=>{s=l;var c=K_;c=c.replace(/\$NAME/g,encodeURIComponent(e)),c=c.replace(/\$PLATFORM/g,encodeURIComponent(o)),c=c.replace(/\$GITHUBURL/g,encodeURIComponent(s.htmlUrl)),c=c.replace(/\$MAINFILE/g,encodeURIComponent(a));var f={message:"8bitworkshop: updated metadata in README.md",content:btoa(c)};return s.contents("README.md").add(f)}).then(()=>this.getGithubSession(s.htmlUrl))}commit(e,t,r){var n;return t||(t="updated from 8bitworkshop.com"),this.getGithubHEADTree(e).then(s=>{if(n=s,n.subtreepath)throw Error("Sorry, right now you can only commit files to the root directory of a repository.");return Promise.all(r.map(o=>typeof o.data=="string"?n.repo.git.blobs.create({content:o.data,encoding:"utf-8"}):n.repo.git.blobs.create({content:btoa(xc(o.data)),encoding:"base64"})))}).then(s=>n.repo.git.trees.create({tree:r.map((o,a)=>({path:o.path,mode:"100644",type:"blob",sha:s[a].sha})),base_tree:n.tree.sha})).then(s=>n.repo.git.commits.create({message:t,tree:s.sha,parents:[n.head.object.sha]})).then(s=>n.repo.commits(s.sha).fetch()).then(s=>(n.commit=s,n))}push(e){return e.head.update({sha:e.com Line truncated
`},s=window.c2t({noInitialRun:!0,print:n,printErr:n}),o=s.FS,a=ti()+".bin",l=ti()+".wav";o.writeFile(a,Mi(),{encoding:"binary"});var c=["-2bc",a+","+e.toString(16),l];s.callMain(c);var f=o.readFile(l,{encoding:"binary"});if(f){var O=new Blob([f],{type:"audio/wav"});(0,Sn.saveAs)(O,l),r+="Then connect your audio output to the cassette input, turn up the volume, and play the audio file.",Ii(r)}})}function iR(i){xr("lib/makewav.js").then(()=>{let e="",t=function(a){e+=a+`
`};var r=yi(ti());let n=r+".bin",s=r+".wav";window.makewav({noInitialRun:!1,print:t,printErr:t,arguments:["-ts","-f0","-v10",n],preRun:a=>{a.FS.writeFile(n,Mi(),{encoding:"binary"})}}).ready.then(a=>{let l=[n];a.run(l),console.log(e);let f=a.FS.readFile(s,{encoding:"binary"});if(f){let O=new Blob([f],{type:"audio/wav"});(0,Sn.saveAs)(O,s),e+=`
Connect your audio output to the SuperCharger input, turn up the volume, and play the audio file.`,Ii(e)}})})}function rR(i){var e=yi(ti());let t=e+".tap",r=new mo(e),n=new rf({sine_wave:!0}),s=Mi(),o=s[0]+s[1]*256;s=s.slice(2),r.setContent({data:s,startAddress:o,type:mo.FILE_TYPE_NON_RELOCATABLE}),r.generateSound(n);let a=n.getTAPData();if(a){let l=new Blob([a],{type:"application/octet-stream"});(0,Sn.saveAs)(l,t)}}function _p(){switch(Ai(Ae)){case"vcs":return iR;case"apple2":return tR;case"c64":return rR}}function VS(i){if(Mi()==null)return Ke("Please fix errors before exporting."),!0;var e=_p();if(e===void 0)return Ke("Cassette export is not supported on this platform."),!0;e(i)}function qS(i){if(Mi()==null)return Ke("Please finish compiling with no errors before downloading ROM."),!0;var e=yi(ti());if(j.getDownloadFile){var t=j.getDownloadFile(),e=yi(ti());(0,Sn.saveAs)(t.blob,e+t.extension)}else if(Mi()instanceof Uint8Array){var r=new Blob([Mi()],{type:"application/octet-stream"}),n=j.getROMExtension&&j.getROMExtension(Mi())||"-"+Ai(Ae)+".bin";(0,Sn.saveAs)(r,e+n)}else Ke(`The "${Ae}" platform doesn't have downloadable ROMs.`)}function DS(i){var e=$e.getCurrentText();if(!e)return!1;var t=new Blob([e],{type:"text/plain;charset=utf-8"});(0,Sn.saveAs)(t,HS(),{autoBom:!1})}async function IS(){let i=(await import("./jszip.min-HOLYP7RC.js")).default;return new i}async function NS(i){var e=await IS();Dn().iterateFiles((t,r)=>{r&&e.file(Si(t),r)}),e.generateAsync({type:"blob"}).then(t=>{(0,Sn.saveAs)(t,ti()+"-"+Ai(Ae)+".zip")})}function FS(i){let e=j.getDebugSymbolFile&&j.getDebugSymbolFile();if(!e){Ke("This project does not have debug information.");return}var t=yi(ti());(0,Sn.saveAs)(e.blob,t+e.extension,{autoBom:!1})}async function BS(i){var e=await IS(),t=await ws().keys();kt(!0);try{var r=0;await Promise.all(t.map(s=>ws().getItem(s).then(o=>{Mr(r++/(t.length+1)),o&&e.file(s,o)})));var n=await e.generateAsync({type:"blob"});(0,Sn.saveAs)(n,Ai(Ae)+"-all.zip")}finally{kt(!1)}}var Xp=!1;function GS(){Xp||xr("lib/gif.js").then(()=>{var i=$("#emulator").find("canvas")[0];if(!i){Ke("Could not find canvas element to record video!");return}var e=0;i.style&&i.style.transform&&(i.style.transform.indexOf("rotate(-90deg)")>=0?e=-1:i.style.transform.indexOf("rotate(90deg)")>=0&&(e=1));var t=new GIF({workerScript:"lib/gif.worker.js",workers:4,quality:10,rotate:e}),r=$("#videoPreviewImage");t.on("progress",l=>{Mr(l)}),t.on("finished",l=>{r.attr("src",URL.createObjectURL(l)),kt(!1),j.resume(),$("#videoPreviewModal").modal("show")});var n=20,s=300,o=0;console.log("Recording video",i),$("#emulator").css("backgroundColor","#cc3333");var a=()=>{o++>s?(console.log("Rendering video"),$("#emulator").css("backgroundColor","inherit"),kt(!0),j.pause(),t.render(),Xp=!1):(t.addFrame(i,{delay:n,copy:!0}),setTimeout(a,n),Xp=!0)};a()})}var Rp;async function go(){if(!Rp){await xr("lib/octokat.js"),await xr("https://www.gstatic.com/firebasejs/8.8.1/firebase-app.js"),await xr("https://www.gstatic.com/firebasejs/8.8.1/firebase-auth.js"),await xr("https://8bitworkshop.com/config.js");var i=yc("__github_key");Rp=new tf(Octokat,i,ws(),Dn()),console.log("loaded github service")}return Rp}function Pl(){var i=(It||"").split("/");return i.length!=2?(Ke("You are not in a GitHub repository. Choose one from the pulldown, or Import or Publish one."),null):"https://github.com/"+i[0]+"/"+i[1]}async function nf(i,e){var t,r=wl(i);if(!r){Ke("Could not parse GitHub URL.");return}var n=pa()[r.repopath];if(!(n&&!confirm("You've already imported "+r.repopath+" -- do you want to replace all local files?"))){kt(!0);var s=ef(r.repopath);Mr(.25);var o=await go();return o.import(i).then(a=>(t=a,Mr(.75),o.pull(i,s))).then(a=>{kt(!1),bo(e,{repo:r.repopath})}).catch(a=>{kt(!1),console.log(a),Ke("Could not import "+i+". "+a)})}}async function KS(i){var e=await go();e.login().then(()=>{Ii("You are signed in to GitHub.")}).catch(t=>{Ke("Could not sign in."+t)})}async function JS(i){var e=await go();e.logout().then(()=>{Ii("You are logged out of GitHub.")})}function ey(i){var e=$("#importGithubModal"),t=$("#importGithubButton");e.modal("show"),e.off("shown.bs.modal").on("shown.bs.modal",()=>$("#importGithubURL").trigger("focus")),$("#importGithubURL").off("keydown").on("keydown",r=>{r.key==="Enter"&&(r.preventDefault(),t.trigger("click"))}),t.off("click").on("click",()=>{var r=$("#importGithubURL").val()+"";e.modal("hide"),nf(r,!1)})}function ty(i){if(!(It&&!confirm("This project ("+Dn().mainPath+") is already bound to a GitHub repository. Do you want to re-publish to a new repository? (You can instead choose 'Push Changes' to update files in the existing repository.)"))){var e=$("#publishGithubModal"),t=$("#publishGithubButton");$("#githubRepoName").val(yi(Si(Dn().mainPath))),e.modal("show"),t.off("click").on("click",async()=>{var r=$("#githubRepoName").val()+"",n=$("#githubRepoDesc").val()+"",s=$("#githubRepoPrivate").val()=="private",o=$("#githubRepoLicense").val()+"Line truncated
`&&t++;return t}function py(i,e){for(var t=/[/;][*;]([{].+[}])[*;][/;]/g,r=[],n;n=t.exec(i);){var s=n.index+n[0].length,o;e?o=i.indexOf("end",s):n[0].startsWith(";;")?(o=i.indexOf(";;",s),o==i.indexOf(";;{",s)&&(o=-1)):o=i.indexOf(";",s);var a=ay(i,n.index),l=n[0],c=o>=0?ay(i,o):"???";if(o<0){var f=e?'"end"':n[0].startsWith(";;")?'";;"':'";"';r.push({header:l,startline:a,endline:c,error:`No closing ${f} found after asset header`})}else if(o<=s)r.push({header:l,startline:a,endline:c,error:"Empty data block after asset header"});else try{var O=n[1].replace(/([A-Za-z]+):/g,'"$1":'),p=JSON.parse(O),b=/#embed\s+"(.+?)"/.exec(i.substring(s,o)),y=b?b[1]:void 0;r.push({header:l,startline:a,endline:c,fmt:p,start:s,end:o,embedFile:y})}catch(P){r.push({header:l,startline:a,endline:c,error:`Invalid asset format: ${P.message}`})}}return r}function my(i,e,t){if(t(e))return e;var r=i.lastIndexOf("/");if(r>=0){var n=i.substring(0,r+1)+e;if(t(n))return n}return null}function gR(i,e){if(e.destfmt&&(e=e.destfmt),e.pacstrip)return pR(i,e);var t=e.w,r=e.h,n=e.count||1,s=e.bpp||1,o=e.np||1,a=e.bpw||8,l=e.sl||Math.ceil(e.w*s/a),c=(1<<s)-1,f=e.pofs||l*r*n,O=e.skip||0,p=e.wpimg||l*r,b=l;e.il&&(p=l,b=l*n);var y=e.il?b*r:p*n,P;o>0&&e.sl?P=new Uint8Array(y):a<=8?P=new Uint8Array(y*o):P=new Uint32Array(y*o);for(var X=0;X<n;X++)for(var A=i[X],H=0,q=0;q<r;q++)for(var B=e.flip?r-1-q:q,L=X*p+B*b,d=0,V=0;V<t;V++){var G=A[H++],de=Ep(L,e.remap);e.reindex&&([de,d]=zp(V,e.reindex),de+=L);for(var Ue=0;Ue<o;Ue++){var Pe=G>>Ue*s&c;P[de+Ue*f+O]|=e.brev?Pe<<a-d-s:Pe<<d}d+=s,d>=a&&!e.reindex&&(L+=1,d=0)}return P}function ly(i,e,t,r,n,s,o){for(var a=[],l=0;l<i.length;l++){var c=i[l],f=4278190080;f|=(c>>e&(1<<t)-1)<<8-t,f|=(c>>r&(1<<n)-1)<<16-n,f|=(c>>s&(1<<o)-1)<<24-o,a.push(f)}return a}function bR(i){var e=(i>>0&1)*33+(i>>1&1)*71+(i>>2&1)*151,t=(i>>3&1)*33+(i>>4&1)*71+(i>>5&1)*151,r=(i>>6&1)*81+(i>>7&1)*174;return 4278190080|r<<16|t<<8|e}function xR(i){var e=i.pal;if(typeof e=="number"){var t=Math.floor(Math.abs(e/100)%10),r=Math.floor(Math.abs(e/10)%10),n=Math.floor(Math.abs(e)%10);return 1<<t+r+n}else{if(e==="pacman")return 256;var s=gy[e];if(s)return s.length;throw new Error("No palette named "+e)}}function cy(i,e){var t=e.pal,r;if(typeof t=="number"){var n=Math.floor(Math.abs(t/100)%10),s=Math.floor(Math.abs(t/10)%10),o=Math.floor(Math.abs(t)%10);t>=0?r=ly(i,0,n,n,s,n+s,o):r=ly(i,n+s,o,n,s,0,n)}else if(t==="pacman"){r=[];for(var a=0;a<i.length;a++)r.push(bR(i[a]))}else{var l=gy[t];if(l)r=new Uint32Array(i).map(c=>l[c&l.length-1]|4278190080);else throw new Error("No palette named "+t)}return r}var gy={gb:[13686916,8890444,5401396,2961698],nes:[5395026,11796480,10485760,11599933,7602281,91,95,6208,12048,543240,26368,1196544,7153664,0,0,0,12899815,16728064,14421538,16729963,14090399,6818519,6588,21681,27227,35843,43776,2918400,10777088,0,0,0,16316664,16755516,16742785,16735173,16730354,14633471,4681215,46327,57599,58229,259115,7911470,15065624,7895160,0,0,16777215,16773822,16300216,16300248,16758527,16761855,13095423,10148607,8973816,8650717,12122296,16119980,16777136,16308472,0,0],ap2lores:[0,16711935,127,8323199,32512,8355711,191,255,12549888,16760576,12566463,16744319,65280,16776960,49023,16777215],vcs:[0,0,4210752,4210752,7105644,7105644,9474192,9474192,11579568,11579568,13158600,13158600,14474460,14474460,16053492,16053492,17476,17476,1074276,1074276,2393220,2393220,3448992,3448992,4241592,4241592,5296336,5296336,6088936,6088936,6880508,6880508,10352,10352,1328260,1328260,2645144,2645144,3963052,3963052,5016764,5016764,6070476,6070476,6862044,6862044,7915756,7915756,6276,6276,1586328,1586328,3166380,3166380,4745408,4745408,6062288,6062288,7378144,7378144,8431852,8431852,9747708,9747708,136,136,2105500,2105500,3947696,3947696,5789888,5789888,7368912,7368912,8947936,8947936,10526956,10526956,11842812,11842812,6029432,6029432,7610508,7610508,8928416,8928416,10246320,10246320,11563200,11563200,12616912,12616912,13671644,13671644,14725356,14725356,7864392,7864392,9445472,9445472,10763384,10763384,12081292,12081292,13398176,13398176,14451892,14451892,15506628,15506628,16560340,16560340,8650772,8650772,9969712,9969712,11287628,11287628,12605544,12605544,13660284,13660284,14715028,14715028,15507624,15507624,16561340,16561340,8912896,8912896,10231836,10231836,11550776,11550776,12606544,12606544,13661288,13661288,14716028,14716028,15508624,15508624,16562340,16562340,8132608,8132608,9451548,9451548,11031608,11031608,12349520,12349520,13404264,13404264,14457980,14457980,15512720,15512720,16566436,16566436,6040576,6040576,7883804,7883804,9463864,9463864,11306064,11306064,12622952,12622952,13939836,13939836,15256720,15256720,16572580,16572580,2898944,2898944,4742172,4742172,6585400,6585400,8428624,8428624,9745512,9745512,11325564,11325564,12641424,12641424,13958308,13958308,15360,15360,2120736,2120736,4226112,4226112,6069340,6069340,7648372,7648372,9228428,9228428,10806436,10806436,12123320,12123320,14356,14356,1858612,1858612,3701840,3701840,5281900,528190 Line truncated
`+s),n+=`
`+this.opToString(l,c,b))}),"X: "+t+" Y: "+r+" "+n}refresh(){this.tick(),this.datau32.fill(Fr)}tick(){super.tick(),this.drawImage()}drawImage(){this.ctx.putImageData(this.imageData,0,0)}clear(){this.datau32.fill(Fr)}},mf=class extends pf{createDiv(e){return this.createCanvas(e,256,256)}initCanvas(){super.initCanvas(),this.canvas.onclick=e=>{var t=xc(this.canvas,e),r=Math.floor(t.x)+Math.floor(t.y)*256,n=-1,s=-1;this.redraw((o,a)=>{s<0&&n>=0&&a==r&&(s=n),o==16777216&&(n=a)}),s>=0&&vo([s])}}clear(){for(var e=0;e<=65535;e++){var t=j.readAddress(e),r=t>>2|t&31;r|=r<<8|r<<16,this.datau32[e]=r|Fr}}drawEvent(e,t,r,n){var s=this.getOpRGB(e,t);if(s){var o=t&255,a=t>>8&255,l=this.datau32[t&65535];l=l|s|Fr,this.datau32[t&65535]=l}}getTooltipText(e,t){var r=(e&255)+(t<<8),n="",s=-1,o={},a=null,l=[];return this.redraw((c,f,O,p,b,S)=>{switch(c){case 16777216:s=f,a=this.addr2symbol(f)||a;break;case 167772160:l.push(a);break;case 184549376:a=l.pop();break}var P=c|s;f==r&&!o[P]&&(n==""&&a&&(n+=`
`+this.opToString(l,c,b))}),"X: "+t+" Y: "+r+" "+n}refresh(){this.tick(),this.datau32.fill(Kr)}tick(){super.tick(),this.drawImage()}drawImage(){this.ctx.putImageData(this.imageData,0,0)}clear(){this.datau32.fill(Kr)}},vf=class extends xf{createDiv(e){return this.createCanvas(e,256,256)}initCanvas(){super.initCanvas(),this.canvas.onclick=e=>{var t=Qc(this.canvas,e),r=Math.floor(t.x)+Math.floor(t.y)*256,n=-1,s=-1;this.redraw((o,a)=>{s<0&&n>=0&&a==r&&(s=n),o==16777216&&(n=a)}),s>=0&&yo([s])}}clear(){for(var e=0;e<=65535;e++){var t=j.readAddress(e),r=t>>2|t&31;r|=r<<8|r<<16,this.datau32[e]=r|Kr}}drawEvent(e,t,r,n){var s=this.getOpRGB(e,t);if(s){var o=t&255,a=t>>8&255,l=this.datau32[t&65535];l=l|s|Kr,this.datau32[t&65535]=l}}getTooltipText(e,t){var r=(e&255)+(t<<8),n="",s=-1,o={},a=null,l=[];return this.redraw((c,f,O,p,b,y)=>{switch(c){case 16777216:s=f,a=this.addr2symbol(f)||a;break;case 167772160:l.push(a);break;case 184549376:a=l.pop();break}var P=c|s;f==r&&!o[P]&&(n==""&&a&&(n+=`
`+a),n+=`
PC `+this.addr2str(s)+" "+this.opToString(c,null,S),o[P]=1)}),this.addr2str(r)+n}},Ap=class extends pf{initCanvas(){super.initCanvas(),this.canvas.onclick=e=>{var t=xc(this.canvas,e),r=Math.floor(t.x),n=Math.floor(t.y),s=this.getOpAtPos(t.x,t.y,16777216);s&&(vn("toline"),j.runEval(()=>{let o=j.getRasterScanline&&j.getRasterScanline()>=n;return o&&j.getRasterLineClock?o&&j.getRasterLineClock()>r:o}))}}drawEvent(e,t,r,n){var s=this.getOpRGB(e,t);if(s){var o=r+n*this.canvas.width,a=s|Fr;this.datau32[o]|=a}}drawImage(){let e=Fr;for(let t=0;t<this.datau32.length;t++)this.datau32[t]==Fr?this.datau32[t]=e:e=this.datau32[t];super.drawImage()}},gf=class extends Ap{constructor(){super(...arguments);this.interrupt=0;this.rgb=0;this.lastpc=0}drawEvent(t,r,n,s){var o=n+s*this.canvas.width;if(t==134217728&&(this.interrupt=1),this.interrupt==1&&t==167772160&&(this.interrupt=r),this.interrupt>1&&this.sp>this.interrupt&&(this.interrupt=0),t==318767104&&(this.rgb|=47),t==385875968&&(this.rgb|=16256),t==352321536&&(this.rgb|=2047872),t==335544320&&(this.rgb|=7936),t==520093696&&(this.rgb=32768),t==150994944||t==402653184)this.datau32[o]=4279176975;else{let a=this.rgb;if(t==16777216){let l=this.sp&15;l>=8&&(l=16-l),Math.abs(this.lastpc)-r>16&&(l+=1),Math.abs(this.lastpc)-r>256&&(l+=1),a=this.rgb=526344*l+2105376,this.lastpc=r}this.interrupt&&(a|=8388672),this.datau32[o]==Fr&&(this.datau32[o]=a|Fr)}}},bf=class extends Qs{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new xo(t),this.vlist.create(t,this.cyclesPerLine*this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){var r="",n="seg_data",s=this.dumplines&&this.dumplines[t];if(s!=null){var o=s.info.join(", ");r="("+fn(s.row,4)+", "+fn(s.col,4)+") "+Ua(s.asm||"",20)+o,o.indexOf("Write ")>=0&&(n="seg_io")}return{text:r,clas:n}}refresh(){this.tick()}tick(){let t=j instanceof ju||j instanceof Yu;this.dumplines={},this.redraw((r,n,s,o,a,l)=>{t&&(a>>=2);var c=this.dumplines[a];switch(c==null&&(c={op:r,addr:n,row:o,col:s,asm:null,info:[]},this.dumplines[a]=c),r){case 16777216:if(j.disassemble){var f=j.disassemble(n,j.readAddress.bind(j));c.asm=f&&f.line}break;default:var O=this.opToString(r,n,l);O!=""&&c.info.push(O);break}}),this.vlist.refresh()}},xf=class extends Qs{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new xo(t),this.vlist.create(t,this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){for(var r=fn(t+"",3)+" ",n="seg_code",s=this.dumplines&&this.dumplines[t]||[],o=Math.round(this.cyclesPerLine/3.3),a=0;a<this.cyclesPerLine;a++){var l=s[a];if(l!==void 0){var c=l&65535,f=f&Fr;if(f==16777216)r+=",";else{var O=pt(c);r+=O,a+=O.length-1}}else r+=a==o?"|":"."}return s[-1]&&(r+=" "+s[-1]),{text:r,clas:n}}refresh(){this.tick()}tick(){let t=j instanceof ju||j instanceof Yu;this.dumplines={},this.redraw((r,n,s,o,a,l)=>{var c=this.dumplines[o];switch(c==null&&(this.dumplines[o]=c=[]),r){case 16777216:var f=j.debugSymbols.addr2symbol[n];f&&(c[-1]=f);break;case 335544320:case 352321536:case 369098752:case 385875968:c[s]=r|n;break}}),this.vlist.refresh()}},vf=class extends Qs{constructor(){super(...arguments);this.recreateOnResize=!0;this.cumulativeData=!0}createDiv(t){return j.debugSymbols&&j.debugSymbols.symbolmap?this.keys=Array.from(Object.keys(j.debugSymbols.symbolmap).filter(r=>!fS(r))):this.keys=["no symbols defined"],this.vlist=new xo(t),this.vlist.create(t,this.keys.length+1,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){if(t==0)return{text:fn("Symbol",35)+fn("Reads",8)+fn("Writes",8)};var r=this.keys[t-1],n=this.dumplines&&this.dumplines[r];function s(l){var c=n[l]|0;return fn(c?c.toString():"",8)}var o,a;return n!=null?(o=fn(r,35)+s(301989888)+s(318767104),n[16777216]?a="seg_code":n[335544320]||n[352321536]?a="seg_io":a="seg_data"):(o=fn(r,35),a="seg_unknown"),{text:o,clas:a}}refresh(){this.tick()}tick(){this.dumplines={},this.redraw((t,r,n,s,o,a)=>{var l=j.debugSymbols.addr2symbol[r];if(l!=null){var c=this.dumplines[l];c==null&&(c={},this.dumplines[l]=c),c[t]=(c[t]|0)+1}}),this.vlist.refresh(),this.probe&&this.probe.clear()}};var Yp=class i{constructor(e,t,r,n,s,o,a,l,c,f=0,O){this.p=e,this.stack=t,this.state=r,this.reducePos=n,this.pos=s,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=c,this.lookAhead=f,this.parent=O}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,r=0){let n=e.parser.context;return new i(e,[],t,r,r,0,[],0,n?new yf(n,n.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let r=e>>19,n=e&65535,{parser:s}=this.p,o=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),a=s.dynamicPrecedence(n);if(a&&(this.score+=a),r==0){n<s.minRepeatTerm&& Line truncated
`+t.scrub(),s=this.advance(n);return s>-1&&s<n.length?this.complete(e,r,s):!1}finish(e,t){return(this.stage==2||this.stage==3)&&Cl(t.content,this.pos)==t.content.length?this.complete(e,t,t.content.length):!1}complete(e,t,r){return e.addLeafElement(t,ut(Oe.LinkReference,this.start,this.start+r,this.elts)),!0}nextStage(e){return e?(this.pos=e.to-this.start,this.elts.push(e),this.stage++,!0):(e===!1&&(this.stage=-1),!1)}advance(e){for(;;){if(this.stage==-1)return-1;if(this.stage==0){if(!this.nextStage(HS(e,this.pos,this.start,!0)))return-1;if(e.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(ut(Oe.LinkMark,this.pos+this.start,this.pos+this.start+1)),this.pos++}else if(this.stage==1){if(!this.nextStage(BS(e,Cl(e,this.pos),this.start)))return-1}else if(this.stage==2){let t=Cl(e,this.pos),r=0;if(t>this.pos){let n=FS(e,t,this.start);if(n){let s=Np(e,n.to-this.start);s>0&&(this.nextStage(n),r=s)}}return r||(r=Np(e,this.pos)),r>0&&r<e.length?r:-1}else return Np(e,this.pos)}}};function Np(i,e){for(;e<i.length;e++){let t=i.charCodeAt(e);if(t==10)break;if(!_r(t))return-1}return e}var em=class{nextLine(e,t,r){let n=t.depth<e.stack.length?-1:LS(t),s=t.next;if(n<0)return!1;let o=ut(Oe.HeaderMark,e.lineStart+t.pos,e.lineStart+n);return e.nextLine(),e.addLeafElement(r,ut(s==61?Oe.SetextHeading1:Oe.SetextHeading2,r.start,e.prevLineEnd(),[...e.parser.parseInline(r.content,r.start),o])),!0}finish(){return!1}},qS={LinkReference(i,e){return e.content.charCodeAt(0)==91?new Jp(e):null},SetextHeading(){return new em}},AR=[(i,e)=>jS(e)>=0,(i,e)=>ES(e)>=0,(i,e)=>zS(e)>=0,(i,e)=>am(e,i,!0)>=0,(i,e)=>lm(e,i,!0)>=0,(i,e)=>om(e,i,!0)>=0,(i,e)=>MS(e,i,!0)>=0],ER={text:"",end:0},tm=class{constructor(e,t,r,n){this.parser=e,this.input=t,this.ranges=n,this.line=new Fp,this.atEnd=!1,this.reusePlaceholders=new Map,this.stoppedAt=null,this.rangeI=0,this.to=n[n.length-1].to,this.lineStart=this.absoluteLineStart=this.absoluteLineEnd=n[0].from,this.block=wf.create(Oe.Document,0,this.lineStart,0,0),this.stack=[this.block],this.fragments=r.length?new nm(r,t):null,this.readLine()}get parsedPos(){return this.absoluteLineStart}advance(){if(this.stoppedAt!=null&&this.absoluteLineStart>this.stoppedAt)return this.finish();let{line:e}=this;for(;;){for(let r=0;;){let n=e.depth<this.stack.length?this.stack[this.stack.length-1]:null;for(;r<e.markers.length&&(!n||e.markers[r].from<n.end);){let s=e.markers[r++];this.addNode(s.type,s.from,s.to)}if(!n)break;this.finishContext()}if(e.pos<e.text.length)break;if(!this.nextLine())return this.finish()}if(this.fragments&&this.reuseFragment(e.basePos))return null;e:for(;;){for(let r of this.parser.blockParsers)if(r){let n=r(this,e);if(n!=!1){if(n==!0)return null;e.forward();continue e}}break}if(e.pos==e.text.length)return this.nextLine()?null:this.finish();let t=new Bp(this.lineStart+e.pos,e.text.slice(e.pos));for(let r of this.parser.leafBlockParsers)if(r){let n=r(this,t);n&&t.parsers.push(n)}e:for(;this.nextLine()&&e.pos!=e.text.length;){if(e.indent<e.baseIndent+4){for(let r of this.parser.endLeafBlock)if(r(this,e,t))break e}for(let r of t.parsers)if(r.nextLine(this,e,t))return null;t.content+=`
`+e.scrub();for(let r of e.markers)t.marks.push(r)}return this.finishLeaf(t),null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}reuseFragment(e){if(!this.fragments.moveTo(this.absoluteLineStart+e,this.absoluteLineStart)||!this.fragments.matches(this.block.hash))return!1;let t=this.fragments.takeNodes(this);return t?(this.absoluteLineStart+=t,this.lineStart=KS(this.absoluteLineStart,this.ranges),this.moveRangeI(),this.absoluteLineStart<this.to?(this.lineStart++,this.absoluteLineStart++,this.readLine()):(this.atEnd=!0,this.readLine()),!0):!1}get depth(){return this.stack.length}parentType(e=this.depth-1){return this.parser.nodeSet.types[this.stack[e].type]}nextLine(){return this.lineStart+=this.line.text.length,this.absoluteLineEnd>=this.to?(this.absoluteLineStart=this.absoluteLineEnd,this.atEnd=!0,this.readLine(),!1):(this.lineStart++,this.absoluteLineStart=this.absoluteLineEnd+1,this.moveRangeI(),this.readLine(),!0)}peekLine(){return this.scanLine(this.absoluteLineEnd+1).text}moveRangeI(){for(;this.rangeI<this.ranges.length-1&&this.absoluteLineStart>=this.ranges[this.rangeI].to;)this.rangeI++,this.absoluteLineStart=Math.max(this.absoluteLineStart,this.ranges[this.rangeI].from)}scanLine(e){let t=ER;if(t.end=e,e>=this.to)t.text="";else if(t.text=this.lineChunkAt(e),t.end+=t.text.length,this.ranges.length>1){let r=this.absoluteLineStart,n=this.rangeI;for(;this.ranges[n].to<t.end;){n++;let s=this.ranges[n].from,o=this.lineChunkAt(s);t.end=s+o.length,t.text=t.text.slice(0,this.ranges[n-1].to-r)+o,r=t.end-t.text.length}}return t}readLine(){let{line:e}=this,{text:t,end:r}=this.scanLine(this.absoluteLineStart);for(this.absoluteLineEnd=r,e.reset(t);e.depth<this.stack.length;e.depth++){let n=this.stack[e.depth],s=this.parser.skipContextMarkup[n.type];if(!s)throw new Error("Unhandled block context "+Oe[n.type]);let o=this.line.markers.length;if(!s(n,this,e)){this.line.markers.length>o&&(n.end=this.line.markers[this.line.markers.length-1].to),e.forward();break}e.forward()}}lineChunkAt(e){let t=this.input.chunk(e),r;if(this.input.lineChunks)r=t==`
PC `+this.addr2str(s)+" "+this.opToString(c,null,y),o[P]=1)}),this.addr2str(r)+n}},Mp=class extends xf{initCanvas(){super.initCanvas(),this.canvas.onclick=e=>{var t=Qc(this.canvas,e),r=Math.floor(t.x),n=Math.floor(t.y),s=this.getOpAtPos(t.x,t.y,16777216);s&&(yn("toline"),j.runEval(()=>{let o=j.getRasterScanline&&j.getRasterScanline()>=n;return o&&j.getRasterLineClock?o&&j.getRasterLineClock()>r:o}))}}drawEvent(e,t,r,n){var s=this.getOpRGB(e,t);if(s){var o=r+n*this.canvas.width,a=s|Kr;this.datau32[o]|=a}}drawImage(){let e=Kr;for(let t=0;t<this.datau32.length;t++)this.datau32[t]==Kr?this.datau32[t]=e:e=this.datau32[t];super.drawImage()}},Sf=class extends Mp{constructor(){super(...arguments);this.interrupt=0;this.rgb=0;this.lastpc=0}drawEvent(t,r,n,s){var o=n+s*this.canvas.width;if(t==134217728&&(this.interrupt=1),this.interrupt==1&&t==167772160&&(this.interrupt=r),this.interrupt>1&&this.sp>this.interrupt&&(this.interrupt=0),t==318767104&&(this.rgb|=47),t==385875968&&(this.rgb|=16256),t==352321536&&(this.rgb|=2047872),t==335544320&&(this.rgb|=7936),t==520093696&&(this.rgb=32768),t==150994944||t==402653184)this.datau32[o]=4279176975;else{let a=this.rgb;if(t==16777216){let l=this.sp&15;l>=8&&(l=16-l),Math.abs(this.lastpc)-r>16&&(l+=1),Math.abs(this.lastpc)-r>256&&(l+=1),a=this.rgb=526344*l+2105376,this.lastpc=r}this.interrupt&&(a|=8388672),this.datau32[o]==Kr&&(this.datau32[o]=a|Kr)}}},yf=class extends $s{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new So(t),this.vlist.create(t,this.cyclesPerLine*this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){var r="",n="seg_data",s=this.dumplines&&this.dumplines[t];if(s!=null){var o=s.info.join(", ");r="("+On(s.row,4)+", "+On(s.col,4)+") "+za(s.asm||"",20)+o,o.indexOf("Write ")>=0&&(n="seg_io")}return{text:r,clas:n}}refresh(){this.tick()}tick(){let t=j instanceof Vu||j instanceof Wu;this.dumplines={},this.redraw((r,n,s,o,a,l)=>{t&&(a>>=2);var c=this.dumplines[a];switch(c==null&&(c={op:r,addr:n,row:o,col:s,asm:null,info:[]},this.dumplines[a]=c),r){case 16777216:if(j.disassemble){var f=j.disassemble(n,j.readAddress.bind(j));c.asm=f&&f.line}break;default:var O=this.opToString(r,n,l);O!=""&&c.info.push(O);break}}),this.vlist.refresh()}},Qf=class extends $s{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new So(t),this.vlist.create(t,this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){for(var r=On(t+"",3)+" ",n="seg_code",s=this.dumplines&&this.dumplines[t]||[],o=Math.round(this.cyclesPerLine/3.3),a=0;a<this.cyclesPerLine;a++){var l=s[a];if(l!==void 0){var c=l&65535,f=f&Kr;if(f==16777216)r+=",";else{var O=pt(c);r+=O,a+=O.length-1}}else r+=a==o?"|":"."}return s[-1]&&(r+=" "+s[-1]),{text:r,clas:n}}refresh(){this.tick()}tick(){let t=j instanceof Vu||j instanceof Wu;this.dumplines={},this.redraw((r,n,s,o,a,l)=>{var c=this.dumplines[o];switch(c==null&&(this.dumplines[o]=c=[]),r){case 16777216:var f=j.debugSymbols.addr2symbol[n];f&&(c[-1]=f);break;case 335544320:case 352321536:case 369098752:case 385875968:c[s]=r|n;break}}),this.vlist.refresh()}},wf=class extends $s{constructor(){super(...arguments);this.recreateOnResize=!0;this.cumulativeData=!0}createDiv(t){return j.debugSymbols&&j.debugSymbols.symbolmap?this.keys=Array.from(Object.keys(j.debugSymbols.symbolmap).filter(r=>!Sy(r))):this.keys=["no symbols defined"],this.vlist=new So(t),this.vlist.create(t,this.keys.length+1,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){if(t==0)return{text:On("Symbol",35)+On("Reads",8)+On("Writes",8)};var r=this.keys[t-1],n=this.dumplines&&this.dumplines[r];function s(l){var c=n[l]|0;return On(c?c.toString():"",8)}var o,a;return n!=null?(o=On(r,35)+s(301989888)+s(318767104),n[16777216]?a="seg_code":n[335544320]||n[352321536]?a="seg_io":a="seg_data"):(o=On(r,35),a="seg_unknown"),{text:o,clas:a}}refresh(){this.tick()}tick(){this.dumplines={},this.redraw((t,r,n,s,o,a)=>{var l=j.debugSymbols.addr2symbol[r];if(l!=null){var c=this.dumplines[l];c==null&&(c={},this.dumplines[l]=c),c[t]=(c[t]|0)+1}}),this.vlist.refresh(),this.probe&&this.probe.clear()}};var qp=class i{constructor(e,t,r,n,s,o,a,l,c,f=0,O){this.p=e,this.stack=t,this.state=r,this.reducePos=n,this.pos=s,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=c,this.lookAhead=f,this.parent=O}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,r=0){let n=e.parser.context;return new i(e,[],t,r,r,0,[],0,n?new $f(n,n.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let r=e>>19,n=e&65535,{parser:s}=this.p,o=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),a=s.dynamicPrecedence(n);if(a&&(this.score+=a),r==0){n<s.minRepeatTerm&& Line truncated
`+t.scrub(),s=this.advance(n);return s>-1&&s<n.length?this.complete(e,r,s):!1}finish(e,t){return(this.stage==2||this.stage==3)&&El(t.content,this.pos)==t.content.length?this.complete(e,t,t.content.length):!1}complete(e,t,r){return e.addLeafElement(t,ut(Oe.LinkReference,this.start,this.start+r,this.elts)),!0}nextStage(e){return e?(this.pos=e.to-this.start,this.elts.push(e),this.stage++,!0):(e===!1&&(this.stage=-1),!1)}advance(e){for(;;){if(this.stage==-1)return-1;if(this.stage==0){if(!this.nextStage(aQ(e,this.pos,this.start,!0)))return-1;if(e.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(ut(Oe.LinkMark,this.pos+this.start,this.pos+this.start+1)),this.pos++}else if(this.stage==1){if(!this.nextStage(sQ(e,El(e,this.pos),this.start)))return-1}else if(this.stage==2){let t=El(e,this.pos),r=0;if(t>this.pos){let n=oQ(e,t,this.start);if(n){let s=Jp(e,n.to-this.start);s>0&&(this.nextStage(n),r=s)}}return r||(r=Jp(e,this.pos)),r>0&&r<e.length?r:-1}else return Jp(e,this.pos)}}};function Jp(i,e){for(;e<i.length;e++){let t=i.charCodeAt(e);if(t==10)break;if(!Cr(t))return-1}return e}var om=class{nextLine(e,t,r){let n=t.depth<e.stack.length?-1:Gy(t),s=t.next;if(n<0)return!1;let o=ut(Oe.HeaderMark,e.lineStart+t.pos,e.lineStart+n);return e.nextLine(),e.addLeafElement(r,ut(s==61?Oe.SetextHeading1:Oe.SetextHeading2,r.start,e.prevLineEnd(),[...e.parser.parseInline(r.content,r.start),o])),!0}finish(){return!1}},eQ={LinkReference(i,e){return e.content.charCodeAt(0)==91?new sm(e):null},SetextHeading(){return new om}},GR=[(i,e)=>By(e)>=0,(i,e)=>Iy(e)>=0,(i,e)=>Ny(e)>=0,(i,e)=>Om(e,i,!0)>=0,(i,e)=>dm(e,i,!0)>=0,(i,e)=>um(e,i,!0)>=0,(i,e)=>Jy(e,i,!0)>=0],HR={text:"",end:0},am=class{constructor(e,t,r,n){this.parser=e,this.input=t,this.ranges=n,this.line=new im,this.atEnd=!1,this.reusePlaceholders=new Map,this.stoppedAt=null,this.rangeI=0,this.to=n[n.length-1].to,this.lineStart=this.absoluteLineStart=this.absoluteLineEnd=n[0].from,this.block=Tf.create(Oe.Document,0,this.lineStart,0,0),this.stack=[this.block],this.fragments=r.length?new hm(r,t):null,this.readLine()}get parsedPos(){return this.absoluteLineStart}advance(){if(this.stoppedAt!=null&&this.absoluteLineStart>this.stoppedAt)return this.finish();let{line:e}=this;for(;;){for(let r=0;;){let n=e.depth<this.stack.length?this.stack[this.stack.length-1]:null;for(;r<e.markers.length&&(!n||e.markers[r].from<n.end);){let s=e.markers[r++];this.addNode(s.type,s.from,s.to)}if(!n)break;this.finishContext()}if(e.pos<e.text.length)break;if(!this.nextLine())return this.finish()}if(this.fragments&&this.reuseFragment(e.basePos))return null;e:for(;;){for(let r of this.parser.blockParsers)if(r){let n=r(this,e);if(n!=!1){if(n==!0)return null;e.forward();continue e}}break}if(e.pos==e.text.length)return this.nextLine()?null:this.finish();let t=new tm(this.lineStart+e.pos,e.text.slice(e.pos));for(let r of this.parser.leafBlockParsers)if(r){let n=r(this,t);n&&t.parsers.push(n)}e:for(;this.nextLine()&&e.pos!=e.text.length;){if(e.indent<e.baseIndent+4){for(let r of this.parser.endLeafBlock)if(r(this,e,t))break e}for(let r of t.parsers)if(r.nextLine(this,e,t))return null;t.content+=`
`+e.scrub();for(let r of e.markers)t.marks.push(r)}return this.finishLeaf(t),null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}reuseFragment(e){if(!this.fragments.moveTo(this.absoluteLineStart+e,this.absoluteLineStart)||!this.fragments.matches(this.block.hash))return!1;let t=this.fragments.takeNodes(this);return t?(this.absoluteLineStart+=t,this.lineStart=lQ(this.absoluteLineStart,this.ranges),this.moveRangeI(),this.absoluteLineStart<this.to?(this.lineStart++,this.absoluteLineStart++,this.readLine()):(this.atEnd=!0,this.readLine()),!0):!1}get depth(){return this.stack.length}parentType(e=this.depth-1){return this.parser.nodeSet.types[this.stack[e].type]}nextLine(){return this.lineStart+=this.line.text.length,this.absoluteLineEnd>=this.to?(this.absoluteLineStart=this.absoluteLineEnd,this.atEnd=!0,this.readLine(),!1):(this.lineStart++,this.absoluteLineStart=this.absoluteLineEnd+1,this.moveRangeI(),this.readLine(),!0)}peekLine(){return this.scanLine(this.absoluteLineEnd+1).text}moveRangeI(){for(;this.rangeI<this.ranges.length-1&&this.absoluteLineStart>=this.ranges[this.rangeI].to;)this.rangeI++,this.absoluteLineStart=Math.max(this.absoluteLineStart,this.ranges[this.rangeI].from)}scanLine(e){let t=HR;if(t.end=e,e>=this.to)t.text="";else if(t.text=this.lineChunkAt(e),t.end+=t.text.length,this.ranges.length>1){let r=this.absoluteLineStart,n=this.rangeI;for(;this.ranges[n].to<t.end;){n++;let s=this.ranges[n].from,o=this.lineChunkAt(s);t.end=s+o.length,t.text=t.text.slice(0,this.ranges[n-1].to-r)+o,r=t.end-t.text.length}}return t}readLine(){let{line:e}=this,{text:t,end:r}=this.scanLine(this.absoluteLineStart);for(this.absoluteLineEnd=r,e.reset(t);e.depth<this.stack.length;e.depth++){let n=this.stack[e.depth],s=this.parser.skipContextMarkup[n.type];if(!s)throw new Error("Unhandled block context "+Oe[n.type]);let o=this.line.markers.length;if(!s(n,this,e)){this.line.markers.length>o&&(n.end=this.line.markers[this.line.markers.length-1].to),e.forward();break}e.forward()}}lineChunkAt(e){let t=this.input.chunk(e),r;if(this.input.lineChunks)r=t==`
`?"":t;else{let n=t.indexOf(`
`);r=n<0?t:t.slice(0,n)}return e+r.length>this.to?r.slice(0,this.to-e):r}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(e,t,r=0){this.block=wf.create(e,r,this.lineStart+t,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(e,t,r=0){this.startContext(this.parser.getNodeType(e),t,r)}addNode(e,t,r){typeof e=="number"&&(e=new Fe(this.parser.nodeSet.types[e],ma,ma,(r!=null?r:this.prevLineEnd())-t)),this.block.addChild(e,t-this.block.from)}addElement(e){this.block.addChild(e.toTree(this.parser.nodeSet),e.from-this.block.from)}addLeafElement(e,t){this.addNode(this.buffer.writeElements(rm(t.children,e.marks),-t.from).finish(t.type,t.to-t.from),t.from)}finishContext(){let e=this.stack.pop(),t=this.stack[this.stack.length-1];t.addChild(e.toTree(this.parser.nodeSet),e.from-t.from),this.block=t}finish(){for(;this.stack.length>1;)this.finishContext();return this.addGaps(this.block.toTree(this.parser.nodeSet,this.lineStart))}addGaps(e){return this.ranges.length>1?DS(this.ranges,0,e.topNode,this.ranges[0].from,this.reusePlaceholders):e}finishLeaf(e){for(let r of e.parsers)if(r.finish(this,e))return;let t=rm(this.parser.parseInline(e.content,e.start),e.marks);this.addNode(this.buffer.writeElements(t,-e.start).finish(Oe.Paragraph,e.content.length),e.start)}elt(e,t,r,n){return typeof e=="string"?ut(this.parser.getNodeType(e),t,r,n):new Pf(e,t)}get buffer(){return new $f(this.parser.nodeSet)}};function DS(i,e,t,r,n){let s=i[e].to,o=[],a=[],l=t.from+r;function c(f,O){for(;O?f>=s:f>s;){let p=i[e+1].from-s;r+=p,f+=p,e++,s=i[e].to}}for(let f=t.firstChild;f;f=f.nextSibling){c(f.from+r,!0);let O=f.from+r,p,b=n.get(f.tree);b?p=b:f.to+r>s?(p=DS(i,e,f,r,n),c(f.to+r,!1)):p=f.toTree(),o.push(p),a.push(O-l)}return c(t.to+r,!1),new Fe(t.type,o,a,t.to+r-l,t.tree?t.tree.propValues:void 0)}var Ul=class i extends Wn{constructor(e,t,r,n,s,o,a,l,c){super(),this.nodeSet=e,this.blockParsers=t,this.leafBlockParsers=r,this.blockNames=n,this.endLeafBlock=s,this.skipContextMarkup=o,this.inlineParsers=a,this.inlineNames=l,this.wrappers=c,this.nodeTypes=Object.create(null);for(let f of e.types)this.nodeTypes[f.name]=f.id}createParse(e,t,r){let n=new tm(this,e,t,r);for(let s of this.wrappers)n=s(n,e,t,r);return n}configure(e){let t=im(e);if(!t)return this;let{nodeSet:r,skipContextMarkup:n}=this,s=this.blockParsers.slice(),o=this.leafBlockParsers.slice(),a=this.blockNames.slice(),l=this.inlineParsers.slice(),c=this.inlineNames.slice(),f=this.endLeafBlock.slice(),O=this.wrappers;if(Rl(t.defineNodes)){n=Object.assign({},n);let p=r.types.slice(),b;for(let S of t.defineNodes){let{name:P,block:X,composite:A,style:H}=typeof S=="string"?{name:S}:S;if(p.some(L=>L.name==P))continue;A&&(n[p.length]=(L,d,M)=>A(d,M,L.value));let q=p.length,B=A?["Block","BlockContext"]:X?q>=Oe.ATXHeading1&&q<=Oe.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;p.push(Ut.define({id:q,name:P,props:B&&[[Ee.group,B]]})),H&&(b||(b={}),Array.isArray(H)||H instanceof ir?b[P]=H:Object.assign(b,H))}r=new jn(p),b&&(r=r.extend(Oi(b)))}if(Rl(t.props)&&(r=r.extend(...t.props)),Rl(t.remove))for(let p of t.remove){let b=this.blockNames.indexOf(p),S=this.inlineNames.indexOf(p);b>-1&&(s[b]=o[b]=void 0),S>-1&&(l[S]=void 0)}if(Rl(t.parseBlock))for(let p of t.parseBlock){let b=a.indexOf(p.name);if(b>-1)s[b]=p.parse,o[b]=p.leaf;else{let S=p.before?Qf(a,p.before):p.after?Qf(a,p.after)+1:a.length-1;s.splice(S,0,p.parse),o.splice(S,0,p.leaf),a.splice(S,0,p.name)}p.endLeaf&&f.push(p.endLeaf)}if(Rl(t.parseInline))for(let p of t.parseInline){let b=c.indexOf(p.name);if(b>-1)l[b]=p.parse;else{let S=p.before?Qf(c,p.before):p.after?Qf(c,p.after)+1:c.length-1;l.splice(S,0,p.parse),c.splice(S,0,p.name)}}return t.wrap&&(O=O.concat(t.wrap)),new i(r,s,o,a,f,n,l,c,O)}getNodeType(e){let t=this.nodeTypes[e];if(t==null)throw new RangeError(`Unknown node type '${e}'`);return t}parseInline(e,t){let r=new El(this,e,t);e:for(let n=t;n<r.end;){let s=r.char(n);for(let o of this.inlineParsers)if(o){let a=o(r,s,n);if(a>=0){n=a;continue e}}n++}return r.resolveMarkers(0)}};function Rl(i){return i!=null&&i.length>0}function im(i){if(!Array.isArray(i))return i;if(i.length==0)return null;let e=im(i[0]);if(i.length==1)return e;let t=im(i.slice(1));if(!t||!e)return e||t;let r=(o,a)=>(o||ma).concat(a||ma),n=e.wrap,s=t.wrap;return{props:r(e.props,t.props),defineNodes:r(e.defineNodes,t.defineNodes),parseBlock:r(e.parseBlock,t.parseBlock),parseInline:r(e.parseInline,t.parseInline),remove:r(e.remove,t.remove),wrap:n?s?(o,a,l,c)=>n(s(o,a,l,c),a,l,c):n:s}}function Qf(i,e){let t=i.indexOf(e);if(t<0)throw new RangeError(`Position specified relative to unknown parser ${e}`);return t}var IS=[Ut.none];for(let i=1,e;e=Oe[i];i++)IS[i]=Ut.define({id:i,name:e,props:i>=Oe.Escape?[]:[[Ee.group,i in AS?["Block","BlockContext"]:["Block","LeafBlock"]]],top:e=="Document"});var ma=[],$f=class{constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}write(e Line truncated
`;)s--;this.fragmentEnd=s?s-1:0}let r=this.cursor;r||(r=this.cursor=this.fragment.tree.cursor(),r.firstChild());let n=e+this.fragment.offset;for(;r.to<=n;)if(!r.parent())return!1;for(;;){if(r.from>=n)return this.fragment.from<=t;if(!r.childAfter(n))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(Ee.contextHash)==e}takeNodes(e){let t=this.cursor,r=this.fragment.offset,n=this.fragmentEnd-(this.fragment.openEnd?1:0),s=e.absoluteLineStart,o=s,a=e.block.children.length,l=o,c=a;for(;;){if(t.to-r>n){if(t.type.isAnonymous&&t.firstChild())continue;break}let f=KS(t.from-r,e.ranges);if(t.to-r<=e.ranges[e.rangeI].to)e.addNode(t.tree,f);else{let O=new Fe(e.parser.nodeSet.types[Oe.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(O,t.tree),e.addNode(O,f)}if(t.type.is("Block")&&(YR.indexOf(t.type.id)<0?(o=t.to-r,a=e.block.children.length):(o=l,a=c),l=t.to-r,c=e.block.children.length),!t.nextSibling())break}for(;e.block.children.length>a;)e.block.children.pop(),e.block.positions.pop();return o-s}};function KS(i,e){let t=i;for(let r=1;r<e.length;r++){let n=e[r-1].to,s=e[r].from;n<i&&(t-=s-n)}return t}var jR=Oi({"Blockquote/...":y.quote,HorizontalRule:y.contentSeparator,"ATXHeading1/... SetextHeading1/...":y.heading1,"ATXHeading2/... SetextHeading2/...":y.heading2,"ATXHeading3/...":y.heading3,"ATXHeading4/...":y.heading4,"ATXHeading5/...":y.heading5,"ATXHeading6/...":y.heading6,"Comment CommentBlock":y.comment,Escape:y.escape,Entity:y.character,"Emphasis/...":y.emphasis,"StrongEmphasis/...":y.strong,"Link/... Image/...":y.link,"OrderedList/... BulletList/...":y.list,"BlockQuote/...":y.quote,"InlineCode CodeText":y.monospace,"URL Autolink":y.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":y.processingInstruction,"CodeInfo LinkLabel":y.labelName,LinkTitle:y.string,Paragraph:y.content}),JS=new Ul(new jn(IS).extend(jR),Object.keys(Sf).map(i=>Sf[i]),Object.keys(Sf).map(i=>qS[i]),Object.keys(Sf),AR,AS,Object.keys(Gp).map(i=>Gp[i]),Object.keys(Gp),[]);function LR(i,e,t){let r=[];for(let n=i.firstChild,s=e;;n=n.nextSibling){let o=n?n.from:t;if(o>s&&r.push({from:s,to:o}),!n)break;s=n.to}return r}function eQ(i){let{codeParser:e,htmlParser:t}=i;return{wrap:Sh((n,s)=>{let o=n.type.id;if(e&&(o==Oe.CodeBlock||o==Oe.FencedCode)){let a="";if(o==Oe.FencedCode){let c=n.node.getChild(Oe.CodeInfo);c&&(a=s.read(c.from,c.to))}let l=e(a);if(l)return{parser:l,overlay:c=>c.type.id==Oe.CodeText,bracketed:o==Oe.FencedCode}}else if(t&&(o==Oe.HTMLBlock||o==Oe.HTMLTag||o==Oe.CommentBlock))return{parser:t,overlay:LR(n.node,n.from,n.to)};return null})}}var WR={resolve:"Strikethrough",mark:"StrikethroughMark"},VR={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":y.strikethrough}},{name:"StrikethroughMark",style:y.processingInstruction}],parseInline:[{name:"Strikethrough",parse(i,e,t){if(e!=126||i.char(t+1)!=126||i.char(t+2)==126)return-1;let r=i.slice(t-1,t),n=i.slice(t+2,t+3),s=/\s|^$/.test(r),o=/\s|^$/.test(n),a=Al.test(r),l=Al.test(n);return i.addDelimiter(WR,t,t+2,!o&&(!l||s||a),!s&&(!a||o||l))},after:"Emphasis"}]};function Zl(i,e,t=0,r,n=0){let s=0,o=!0,a=-1,l=-1,c=!1,f=()=>{r.push(i.elt("TableCell",n+a,n+l,i.parser.parseInline(e.slice(a,l),n+a)))};for(let O=t;O<e.length;O++){let p=e.charCodeAt(O);p==124&&!c?((!o||a>-1)&&s++,o=!1,r&&(a>-1&&f(),r.push(i.elt("TableDelimiter",O+n,O+n+1))),a=l=-1):(c||p!=32&&p!=9)&&(a<0&&(a=O),l=O+1),c=!c&&p==92}return a>-1&&(s++,r&&f()),s}function TS(i,e){for(let t=e;t<i.length;t++){let r=i.charCodeAt(t);if(r==124)return!0;r==92&&t++}return!1}var tQ=/^[>\s]*\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/,Tf=class{constructor(){this.rows=null}nextLine(e,t,r){if(this.rows==null){this.rows=!1;let n;if((t.next==45||t.next==58||t.next==124)&&tQ.test(n=t.text.slice(t.pos))){let s=[];Zl(e,r.content,0,s,r.start)==Zl(e,n,0)&&(this.rows=[e.elt("TableHeader",r.start,r.start+r.content.length,s),e.elt("TableDelimiter",e.lineStart+t.pos,e.lineStart+t.text.length)])}}else if(this.rows){let n=[];Zl(e,t.text,t.pos,n,e.lineStart),this.rows.push(e.elt("TableRow",e.lineStart+t.pos,e.lineStart+t.text.length,n))}return!1}finish(e,t){return this.rows?(e.addLeafElement(t,e.elt("Table",t.start,t.start+t.content.length,this.rows)),!0):!1}},MR={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":y.heading}},"TableRow",{name:"TableCell",style:y.content},{name:"TableDelimiter",style:y.processingInstruction}],parseBlock:[{name:"Table",leaf(i,e){return TS(e.content,0)?new Tf:null},endLeaf(i,e,t){if(t.parsers.some(n=>n instanceof Tf)||!TS(e.text,e.basePos))return!1;let r=i.peekLine();return tQ.test(r)&&Zl(i,e.text,e.basePos)==Zl(i,r,e.basePos)},before:"SetextHeading"}]},sm=class{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}},qR={defineNodes:[{name:"Task",block:!0,style:y.list},{name:"TaskMarker",style:y.atom}],pa Line truncated
`);r=n<0?t:t.slice(0,n)}return e+r.length>this.to?r.slice(0,this.to-e):r}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(e,t,r=0){this.block=Tf.create(e,r,this.lineStart+t,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(e,t,r=0){this.startContext(this.parser.getNodeType(e),t,r)}addNode(e,t,r){typeof e=="number"&&(e=new Ge(this.parser.nodeSet.types[e],xa,xa,(r!=null?r:this.prevLineEnd())-t)),this.block.addChild(e,t-this.block.from)}addElement(e){this.block.addChild(e.toTree(this.parser.nodeSet),e.from-this.block.from)}addLeafElement(e,t){this.addNode(this.buffer.writeElements(cm(t.children,e.marks),-t.from).finish(t.type,t.to-t.from),t.from)}finishContext(){let e=this.stack.pop(),t=this.stack[this.stack.length-1];t.addChild(e.toTree(this.parser.nodeSet),e.from-t.from),this.block=t}finish(){for(;this.stack.length>1;)this.finishContext();return this.addGaps(this.block.toTree(this.parser.nodeSet,this.lineStart))}addGaps(e){return this.ranges.length>1?tQ(this.ranges,0,e.topNode,this.ranges[0].from,this.reusePlaceholders):e}finishLeaf(e){for(let r of e.parsers)if(r.finish(this,e))return;let t=cm(this.parser.parseInline(e.content,e.start),e.marks);this.addNode(this.buffer.writeElements(t,-e.start).finish(Oe.Paragraph,e.content.length),e.start)}elt(e,t,r,n){return typeof e=="string"?ut(this.parser.getNodeType(e),t,r,n):new _f(e,t)}get buffer(){return new Xf(this.parser.nodeSet)}};function tQ(i,e,t,r,n){let s=i[e].to,o=[],a=[],l=t.from+r;function c(f,O){for(;O?f>=s:f>s;){let p=i[e+1].from-s;r+=p,f+=p,e++,s=i[e].to}}for(let f=t.firstChild;f;f=f.nextSibling){c(f.from+r,!0);let O=f.from+r,p,b=n.get(f.tree);b?p=b:f.to+r>s?(p=tQ(i,e,f,r,n),c(f.to+r,!1)):p=f.toTree(),o.push(p),a.push(O-l)}return c(t.to+r,!1),new Ge(t.type,o,a,t.to+r-l,t.tree?t.tree.propValues:void 0)}var Yl=class i extends Vn{constructor(e,t,r,n,s,o,a,l,c){super(),this.nodeSet=e,this.blockParsers=t,this.leafBlockParsers=r,this.blockNames=n,this.endLeafBlock=s,this.skipContextMarkup=o,this.inlineParsers=a,this.inlineNames=l,this.wrappers=c,this.nodeTypes=Object.create(null);for(let f of e.types)this.nodeTypes[f.name]=f.id}createParse(e,t,r){let n=new am(this,e,t,r);for(let s of this.wrappers)n=s(n,e,t,r);return n}configure(e){let t=lm(e);if(!t)return this;let{nodeSet:r,skipContextMarkup:n}=this,s=this.blockParsers.slice(),o=this.leafBlockParsers.slice(),a=this.blockNames.slice(),l=this.inlineParsers.slice(),c=this.inlineNames.slice(),f=this.endLeafBlock.slice(),O=this.wrappers;if(Al(t.defineNodes)){n=Object.assign({},n);let p=r.types.slice(),b;for(let y of t.defineNodes){let{name:P,block:X,composite:A,style:H}=typeof y=="string"?{name:y}:y;if(p.some(L=>L.name==P))continue;A&&(n[p.length]=(L,d,V)=>A(d,V,L.value));let q=p.length,B=A?["Block","BlockContext"]:X?q>=Oe.ATXHeading1&&q<=Oe.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;p.push(Et.define({id:q,name:P,props:B&&[[Ee.group,B]]})),H&&(b||(b={}),Array.isArray(H)||H instanceof nr?b[P]=H:Object.assign(b,H))}r=new Mn(p),b&&(r=r.extend(pi(b)))}if(Al(t.props)&&(r=r.extend(...t.props)),Al(t.remove))for(let p of t.remove){let b=this.blockNames.indexOf(p),y=this.inlineNames.indexOf(p);b>-1&&(s[b]=o[b]=void 0),y>-1&&(l[y]=void 0)}if(Al(t.parseBlock))for(let p of t.parseBlock){let b=a.indexOf(p.name);if(b>-1)s[b]=p.parse,o[b]=p.leaf;else{let y=p.before?kf(a,p.before):p.after?kf(a,p.after)+1:a.length-1;s.splice(y,0,p.parse),o.splice(y,0,p.leaf),a.splice(y,0,p.name)}p.endLeaf&&f.push(p.endLeaf)}if(Al(t.parseInline))for(let p of t.parseInline){let b=c.indexOf(p.name);if(b>-1)l[b]=p.parse;else{let y=p.before?kf(c,p.before):p.after?kf(c,p.after)+1:c.length-1;l.splice(y,0,p.parse),c.splice(y,0,p.name)}}return t.wrap&&(O=O.concat(t.wrap)),new i(r,s,o,a,f,n,l,c,O)}getNodeType(e){let t=this.nodeTypes[e];if(t==null)throw new RangeError(`Unknown node type '${e}'`);return t}parseInline(e,t){let r=new Ll(this,e,t);e:for(let n=t;n<r.end;){let s=r.char(n);for(let o of this.inlineParsers)if(o){let a=o(r,s,n);if(a>=0){n=a;continue e}}n++}return r.resolveMarkers(0)}};function Al(i){return i!=null&&i.length>0}function lm(i){if(!Array.isArray(i))return i;if(i.length==0)return null;let e=lm(i[0]);if(i.length==1)return e;let t=lm(i.slice(1));if(!t||!e)return e||t;let r=(o,a)=>(o||xa).concat(a||xa),n=e.wrap,s=t.wrap;return{props:r(e.props,t.props),defineNodes:r(e.defineNodes,t.defineNodes),parseBlock:r(e.parseBlock,t.parseBlock),parseInline:r(e.parseInline,t.parseInline),remove:r(e.remove,t.remove),wrap:n?s?(o,a,l,c)=>n(s(o,a,l,c),a,l,c):n:s}}function kf(i,e){let t=i.indexOf(e);if(t<0)throw new RangeError(`Position specified relative to unknown parser ${e}`);return t}var iQ=[Et.none];for(let i=1,e;e=Oe[i];i++)iQ[i]=Et.define({id:i,name:e,props:i>=Oe.Escape?[]:[[Ee.group,i in Dy?["Block","BlockContext"]:["Block","LeafBlock"]]],top:e=="Document"});var xa=[],Xf=class{constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}write(e Line truncated
`;)s--;this.fragmentEnd=s?s-1:0}let r=this.cursor;r||(r=this.cursor=this.fragment.tree.cursor(),r.firstChild());let n=e+this.fragment.offset;for(;r.to<=n;)if(!r.parent())return!1;for(;;){if(r.from>=n)return this.fragment.from<=t;if(!r.childAfter(n))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(Ee.contextHash)==e}takeNodes(e){let t=this.cursor,r=this.fragment.offset,n=this.fragmentEnd-(this.fragment.openEnd?1:0),s=e.absoluteLineStart,o=s,a=e.block.children.length,l=o,c=a;for(;;){if(t.to-r>n){if(t.type.isAnonymous&&t.firstChild())continue;break}let f=lQ(t.from-r,e.ranges);if(t.to-r<=e.ranges[e.rangeI].to)e.addNode(t.tree,f);else{let O=new Ge(e.parser.nodeSet.types[Oe.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(O,t.tree),e.addNode(O,f)}if(t.type.is("Block")&&(JR.indexOf(t.type.id)<0?(o=t.to-r,a=e.block.children.length):(o=l,a=c),l=t.to-r,c=e.block.children.length),!t.nextSibling())break}for(;e.block.children.length>a;)e.block.children.pop(),e.block.positions.pop();return o-s}};function lQ(i,e){let t=i;for(let r=1;r<e.length;r++){let n=e[r-1].to,s=e[r].from;n<i&&(t-=s-n)}return t}var eC=pi({"Blockquote/...":S.quote,HorizontalRule:S.contentSeparator,"ATXHeading1/... SetextHeading1/...":S.heading1,"ATXHeading2/... SetextHeading2/...":S.heading2,"ATXHeading3/...":S.heading3,"ATXHeading4/...":S.heading4,"ATXHeading5/...":S.heading5,"ATXHeading6/...":S.heading6,"Comment CommentBlock":S.comment,Escape:S.escape,Entity:S.character,"Emphasis/...":S.emphasis,"StrongEmphasis/...":S.strong,"Link/... Image/...":S.link,"OrderedList/... BulletList/...":S.list,"BlockQuote/...":S.quote,"InlineCode CodeText":S.monospace,"URL Autolink":S.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":S.processingInstruction,"CodeInfo LinkLabel":S.labelName,LinkTitle:S.string,Paragraph:S.content}),cQ=new Yl(new Mn(iQ).extend(eC),Object.keys(Pf).map(i=>Pf[i]),Object.keys(Pf).map(i=>eQ[i]),Object.keys(Pf),GR,Dy,Object.keys(em).map(i=>em[i]),Object.keys(em),[]);function tC(i,e,t){let r=[];for(let n=i.firstChild,s=e;;n=n.nextSibling){let o=n?n.from:t;if(o>s&&r.push({from:s,to:o}),!n)break;s=n.to}return r}function hQ(i){let{codeParser:e,htmlParser:t}=i;return{wrap:Ph((n,s)=>{let o=n.type.id;if(e&&(o==Oe.CodeBlock||o==Oe.FencedCode)){let a="";if(o==Oe.FencedCode){let c=n.node.getChild(Oe.CodeInfo);c&&(a=s.read(c.from,c.to))}let l=e(a);if(l)return{parser:l,overlay:c=>c.type.id==Oe.CodeText,bracketed:o==Oe.FencedCode}}else if(t&&(o==Oe.HTMLBlock||o==Oe.HTMLTag||o==Oe.CommentBlock))return{parser:t,overlay:tC(n.node,n.from,n.to)};return null})}}var iC={resolve:"Strikethrough",mark:"StrikethroughMark"},rC={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":S.strikethrough}},{name:"StrikethroughMark",style:S.processingInstruction}],parseInline:[{name:"Strikethrough",parse(i,e,t){if(e!=126||i.char(t+1)!=126||i.char(t+2)==126)return-1;let r=i.slice(t-1,t),n=i.slice(t+2,t+3),s=/\s|^$/.test(r),o=/\s|^$/.test(n),a=jl.test(r),l=jl.test(n);return i.addDelimiter(iC,t,t+2,!o&&(!l||s||a),!s&&(!a||o||l))},after:"Emphasis"}]};function zl(i,e,t=0,r,n=0){let s=0,o=!0,a=-1,l=-1,c=!1,f=()=>{r.push(i.elt("TableCell",n+a,n+l,i.parser.parseInline(e.slice(a,l),n+a)))};for(let O=t;O<e.length;O++){let p=e.charCodeAt(O);p==124&&!c?((!o||a>-1)&&s++,o=!1,r&&(a>-1&&f(),r.push(i.elt("TableDelimiter",O+n,O+n+1))),a=l=-1):(c||p!=32&&p!=9)&&(a<0&&(a=O),l=O+1),c=!c&&p==92}return a>-1&&(s++,r&&f()),s}function Yy(i,e){for(let t=e;t<i.length;t++){let r=i.charCodeAt(t);if(r==124)return!0;r==92&&t++}return!1}var fQ=/^[>\s]*\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/,Cf=class{constructor(){this.rows=null}nextLine(e,t,r){if(this.rows==null){this.rows=!1;let n;if((t.next==45||t.next==58||t.next==124)&&fQ.test(n=t.text.slice(t.pos))){let s=[];zl(e,r.content,0,s,r.start)==zl(e,n,0)&&(this.rows=[e.elt("TableHeader",r.start,r.start+r.content.length,s),e.elt("TableDelimiter",e.lineStart+t.pos,e.lineStart+t.text.length)])}}else if(this.rows){let n=[];zl(e,t.text,t.pos,n,e.lineStart),this.rows.push(e.elt("TableRow",e.lineStart+t.pos,e.lineStart+t.text.length,n))}return!1}finish(e,t){return this.rows?(e.addLeafElement(t,e.elt("Table",t.start,t.start+t.content.length,this.rows)),!0):!1}},nC={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":S.heading}},"TableRow",{name:"TableCell",style:S.content},{name:"TableDelimiter",style:S.processingInstruction}],parseBlock:[{name:"Table",leaf(i,e){return Yy(e.content,0)?new Cf:null},endLeaf(i,e,t){if(t.parsers.some(n=>n instanceof Cf)||!Yy(e.text,e.basePos))return!1;let r=i.peekLine();return fQ.test(r)&&zl(i,e.text,e.basePos)==zl(i,r,e.basePos)},before:"SetextHeading"}]},fm=class{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}},sC={defineNodes:[{name:"Task",block:!0,style:S.list},{name:"TaskMarker",style:S.atom}],pa Line truncated
\${}
} catch (\${error}) {
\${}
}`,{label:"try",detail:"/ catch block",type:"keyword"}),Yi("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),Yi(`if (\${}) {
}`,{label:"try",detail:"/ catch block",type:"keyword"}),Li("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),Li(`if (\${}) {
\${}
} else {
\${}
}`,{label:"if",detail:"/ else block",type:"keyword"}),Yi(`class \${name} {
}`,{label:"if",detail:"/ else block",type:"keyword"}),Li(`class \${name} {
constructor(\${params}) {
\${}
}
}`,{label:"class",detail:"definition",type:"keyword"}),Yi('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Yi('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],WZ=MQ.concat([Yi("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Yi("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Yi("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),LQ=new oa,qQ=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function jl(i){return(e,t)=>{let r=e.node.getChild("VariableDefinition");return r&&t(r,i),!0}}var VZ=["FunctionDeclaration"],MZ={FunctionDeclaration:jl("function"),ClassDeclaration:jl("class"),ClassExpression:()=>!0,EnumDeclaration:jl("constant"),TypeAliasDeclaration:jl("type"),NamespaceDeclaration:jl("namespace"),VariableDefinition(i,e){i.matchContext(VZ)||e(i,"variable")},TypeDefinition(i,e){e(i,"type")},__proto__:null};function DQ(i,e){let t=LQ.get(e);if(t)return t;let r=[],n=!0;function s(o,a){let l=i.sliceString(o.from,o.to);r.push({label:l,type:a})}return e.cursor(ft.IncludeAnonymous).iterate(o=>{if(n)n=!1;else if(o.name){let a=MZ[o.name];if(a&&a(o,s)||qQ.has(o.name))return!1}else if(o.to-o.from>8192){for(let a of DQ(i,o.node))r.push(a);return!1}}),LQ.set(e,r),r}var WQ=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,IQ=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function qZ(i){let e=ct(i.state).resolveInner(i.pos,-1);if(IQ.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&WQ.test(i.state.sliceDoc(e.from,e.to));if(!t&&!i.explicit)return null;let r=[];for(let n=e;n;n=n.parent)qQ.has(n.name)&&(r=r.concat(DQ(i.state.doc,n)));return{options:r,from:t?e.from:i.pos,validFor:WQ}}var Hr=di.define({name:"javascript",parser:jQ.configure({props:[Pr.add({IfStatement:bn({except:/^\s*({|else\b)/}),TryStatement:bn({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:Zh,SwitchBody:i=>{let e=i.textAfter,t=/^\s*\}/.test(e),r=/^\s*(case|default)\b/.test(e);return i.baseIndent+(t?0:r?1:2)*i.unit},Block:Ch({closing:"}"}),ArrowFunction:i=>i.baseIndent+i.unit,"TemplateString BlockComment":()=>null,"Statement Property":bn({except:/^\s*{/}),JSXElement(i){let e=/^\s*<\//.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},JSXEscape(i){let e=/\s*\}/.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},"JSXOpenTag JSXSelfClosingTag"(i){return i.column(i.node.from)+i.unit}}),Qi.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":kr,BlockComment(i){return{from:i.from+2,to:i.to-2}},JSXElement(i){let e=i.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=i.lastChild;return{from:e.to,to:t.type.isError?i.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(i){var e;let t=(e=i.firstChild)===null||e===void 0?void 0:e.nextSibling,r=i.lastChild;return!t||t.type.isError?null:{from:t.to,to:r.type.isError?i.to:r.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),NQ={test:i=>/^JSX/.test(i.name),facet:aa({commentTokens:{block:{open:"{/*",close:"*/}"}}})},Qm=Hr.configure({dialect:"ts"},"typescript"),wm=Hr.configure({dialect:"jsx",props:[_h.add(i=>i.isTop?[NQ]:void 0)]}),$m=Hr.configure({dialect:"jsx ts",props:[_h.add(i=>i.isTop?[NQ]:void 0)]},"typescript"),GQ=i=>({label:i,type:"keyword"}),BQ="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(GQ),DZ=BQ.concat(["declare","implements","private","protected","public"].map(GQ));function FQ(i={}){let e=i.jsx?i.typescript?$m:wm:i.typescript?Qm:Hr,t=i.typescript?WZ.concat(DZ):MQ.concat(BQ);return new bt(e,[Hr.data.of({autocomplete:Qv(IQ,Sv(t))}),Hr.data.of({autocomplete:qZ}),i.jsx?GZ:[]])}function IZ(i){for(;;){if(i.name=="JSXOpenTag"||i.name=="JSXSelfClosingTag"||i.name=="JSXFragmentTag")return i;if(i.name=="JSXEscape"||!i.parent)return null;i=i.parent}}function VQ(i,e,t=i.length){for(let r=e==null?void 0:e.firstChild;r;r=r.nextSibling)if(r.name=="JSXIdentifier"||r.name=="JSXBuiltin"||r.name=="JSXNamespacedName"||r.name=="JSXMemberExpression")return i.sliceString(r.from,Math.min(r.to,t));return""}var NZ=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),GZ=ae.inputHandler.of((i,e,t,r,n)=>{if((NZ?i.composing:i.compositionStarted)||i.state.readOnly||e!=t||r!=">"&&r!="/"||!Hr.isActiveAt(i.state,e,-1))return!1;let s=n(),{state:o}=s,a=o.changeByRange(l=>{var c;let{head:f}=l,O=ct(o).reso Line truncated
`:r=="r"?"\r":r=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new zm(this):new Em(this)}getCursor(e,t=0,r){let n=e.doc?e:at.create({doc:e});return r==null&&(r=n.doc.length),this.regexp?xa(this,n,t,r):ba(this,n,t,r)}},Lf=class{constructor(e){this.spec=e}};function _2(i,e,t){return(r,n,s,o)=>{if(t&&!t(r,n,s,o))return!1;let a=r>=o&&n<=o+s.length?s.slice(r-o,n-o):e.doc.sliceString(r,n);return i(a,e,r,n)}}function ba(i,e,t,r){let n;return i.wholeWord&&(n=R2(e.doc,e.charCategorizer(e.selection.main.head))),i.test&&(n=_2(i.test,e,n)),new ks(e.doc,i.unquoted,t,r,i.caseSensitive?void 0:s=>s.toLowerCase(),n)}function R2(i,e){return(t,r,n,s)=>((s>t||s+n.length<r)&&(s=Math.max(0,t-2),n=i.sliceString(s,Math.min(i.length,r+2))),(e(Wf(n,t-s))!=Qt.Word||e(Vf(n,t-s))!=Qt.Word)&&(e(Vf(n,r-s))!=Qt.Word||e(Wf(n,r-s))!=Qt.Word))}var Em=class extends Lf{constructor(e){super(e)}nextMatch(e,t,r){let n=ba(this.spec,e,r,e.doc.length).nextOverlapping();if(n.done){let s=Math.min(e.doc.length,t+this.spec.unquoted.length);n=ba(this.spec,e,0,s).nextOverlapping()}return n.done||n.value.from==t&&n.value.to==r?null:n.value}prevMatchInRange(e,t,r){for(let n=r;;){let s=Math.max(t,n-1e4-this.spec.unquoted.length),o=ba(this.spec,e,s,n),a=null;for(;!o.nextOverlapping().done;)a=o.value;if(a)return a;if(s==t)return null;n-=1e4}}prevMatch(e,t,r){let n=this.prevMatchInRange(e,0,t);return n||(n=this.prevMatchInRange(e,Math.max(0,r-this.spec.unquoted.length),e.doc.length)),n&&(n.from!=t||n.to!=r)?n:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let r=ba(this.spec,e,0,e.doc.length),n=[];for(;!r.next().done;){if(n.length>=t)return null;n.push(r.value)}return n}highlight(e,t,r,n){let s=ba(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)n(s.value.from,s.value.to)}};function C2(i,e,t){return(r,n,s)=>(!t||t(r,n,s))&&i(s[0],e,r,n)}function xa(i,e,t,r){let n;return i.wholeWord&&(n=Z2(e.charCategorizer(e.selection.main.head))),i.test&&(n=C2(i.test,e,n)),new Af(e.doc,i.search,{ignoreCase:!i.caseSensitive,test:n},t,r)}function Wf(i,e){return i.slice(Yt(i,e,!1),e)}function Vf(i,e){return i.slice(e,Yt(i,e))}function Z2(i){return(e,t,r)=>!r[0].length||(i(Wf(r.input,r.index))!=Qt.Word||i(Vf(r.input,r.index))!=Qt.Word)&&(i(Vf(r.input,r.index+r[0].length))!=Qt.Word||i(Wf(r.input,r.index+r[0].length))!=Qt.Word)}var zm=class extends Lf{nextMatch(e,t,r){let n=xa(this.spec,e,r,e.doc.length).next();return n.done&&(n=xa(this.spec,e,0,t).next()),n.done?null:n.value}prevMatchInRange(e,t,r){for(let n=1;;n++){let s=Math.max(t,r-n*1e4),o=xa(this.spec,e,s,r),a=null;for(;!o.next().done;)a=o.value;if(a&&(s==t||a.from>s+10))return a;if(s==t)return null}}prevMatch(e,t,r){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,r,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,r)=>{if(r=="&")return e.match[0];if(r=="$")return"$";for(let n=r.length;n>0;n--){let s=+r.slice(0,n);if(s>0&&s<e.match.length)return e.match[s]+r.slice(n)}return t})}matchAll(e,t){let r=xa(this.spec,e,0,e.doc.length),n=[];for(;!r.next().done;){if(n.length>=t)return null;n.push(r.value)}return n}highlight(e,t,r,n){let s=xa(this.spec,e,Math.max(0,t-250),Math.min(r+250,e.doc.length));for(;!s.next().done;)n(s.value.from,s.value.to)}},Ml=Ce.define(),Mm=Ce.define(),Ps=ot.define({create(i){return new Vl(Ym(i).create(),null)},update(i,e){for(let t of e.effects)t.is(Ml)?i=new Vl(t.value.create(),i.panel):t.is(Mm)&&(i=new Vl(i.query,t.value?qm:null));return i},provide:i=>nl.from(i,e=>e.panel)});var Vl=class{constructor(e,t){this.query=e,this.panel=t}},U2=pe.mark({class:"cm-searchMatch"}),A2=pe.mark({class:"cm-searchMatch cm-searchMatch-selected"}),E2=Ct.fromClass(class{constructor(i){this.view=i,this.decorations=this.highlight(i.state.field(Ps))}update(i){let e=i.state.field(Ps);(e!=i.startState.field(Ps)||i.docChanged||i.selectionSet||i.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:i,panel:e}){if(!e||!i.spec.valid)return pe.none;let{view:t}=this,r=new Lr;for(let n=0,s=t.visibleRanges,o=s.length;n<o;n++){let{from:a,to:l}=s[n];for(;n<o-1&&l>s[n+1].from-500;)l=s[++n].to;i.highlight(t.state,a,l,(c,f)=>{let O=t.state.selection.ranges.some(p=>p.from==c&&p.to==f);r.add(c,f,O?A2:U2)})}return r.finish()}},{decorations:i=>i.decorations});function ql(i){return e=>{let t=e.state.field(Ps,!1);return t&&t.query.spec.valid?i(e,t):kw(e)}}var Mf=ql((i,{query:e})=>{let{to:t}=i.state.selection.main,r=e.nextMatch(i.state,t,t);if(!r)return!1;let n=K.single(r.from,r.to),s=i.state.facet($o);return i.dispatch({selection:n,effects:[Dm(i,r),s.scrollToMatch(n.main,i)],userEvent:"select.search"}),Pw(i),!0}),qf=ql((i,{query:e})=>{let{state:t}=i,{from:r}=t.selection.main,n=e.prevMatch(t,r,r);if( Line truncated
`);for(let l of a){Fw.lastIndex=0;let c=Fw.exec(l);if(c){let f=o+c.index+c[0].length;t.push(pe.widget({widget:new hg(c[0],e),side:-1}).range(f))}o+=l.length+1}}return pe.set(t,!0)}function Kw(i){let e;function t(r){let n=e.posAtDOM(r);i(e.state.doc.lineAt(n).number)}return Ct.fromClass(class{constructor(r){e=r,this.decorations=Hw(r,t)}update(r){e=r.view,(r.docChanged||r.viewportChanged)&&(this.decorations=Hw(r.view,t))}},{decorations:r=>r.decorations})}function FU(i){return at.transactionFilter.of(e=>{if(!e.docChanged||!e.isUserEvent("input")||!i.input)return e;let t=[],r=!1;if(e.changes.iterChanges((o,a,l,c,f)=>{let O=f.toString(),p=i.input(O);t.push({from:o,to:a,insert:p}),p!==O&&(r=!0)}),!r)return e;let n=e.annotation(Rt.userEvent),s=e.annotation(Rt.addToHistory);return{changes:t,selection:e.selection,effects:e.effects,scrollIntoView:e.scrollIntoView,annotations:[...n!=null?[Rt.userEvent.of(n)]:[],...s!=null?[Rt.addToHistory.of(s)]:[]]}})}var fg=new Di;function Jw(i){return fg.reconfigure(FU(i))}var e$=Ce.define(),t$=Ce.define(),i$=Ce.define(),Og=Ce.define(),r$=Ce.define(),n$=Ce.define(),dg=Ce.define(),s$=Ce.define(),o$=ot.define({create(){return qe.empty},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(e$)){let r=t.value,n=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;n.push(new If(pt(o,4)).range(a))}i=qe.of(n,!0)}return i}}),a$=ot.define({create(){return qe.empty},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(t$)){let r=t.value,n=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;n.push(new Nf(o).range(a))}i=qe.of(n,!0)}return i}}),l$=ot.define({create(){return qe.empty},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(i$)){let r=t.value,n=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;n.push(new Gf(o).range(a))}i=qe.of(n,!0)}return i}}),c$=ot.define({create(){return qe.empty},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(Og))if(t.value===null)i=qe.empty;else{let r=t.value;if(r>=1&&r<=e.state.doc.lines){let n=e.state.doc.line(r).from,s=!1;i.between(n,n,()=>(s=!0,!1)),s?i=i.update({filter:o=>o!==n}):i=i.update({add:[KU.range(n)]})}}return i}}),ug=ot.define({create(){return qe.empty},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(r$)){let r=t.value,n=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;n.push(new Bf(s,o).range(a))}i=qe.of(n,!0)}return i}}),h$=ot.define({create(){return qe.empty},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(n$))if(t.value===null)i=qe.empty;else{let r=t.value;if(r>=1&&r<=e.state.doc.lines){let n=e.state.doc.line(r).from;i=qe.of(f$.range(n))}}return i}}),If=class extends Lt{constructor(t){super();this.hex=t}toDOM(){let t=document.createElement("span");return t.textContent=this.hex,t.style.cursor="pointer",t.title="Click to run to here",t.addEventListener("mouseenter",()=>{t.style.textDecoration="underline"}),t.addEventListener("mouseleave",()=>{t.style.textDecoration="none"}),t}eq(t){return this.hex==t.hex}},Nf=class extends Lt{constructor(t){super();this.bytes=t}toDOM(){return document.createTextNode(this.bytes)}eq(t){return this.bytes==t.bytes}},Gf=class extends Lt{constructor(t){super();this.clock=t}toDOM(){return document.createTextNode(this.clock)}eq(t){return this.clock==t.clock}},HU=new class extends Lt{toDOM(){let i=document.createElement("span");return i.textContent="\u25CF",i.style.color="transparent",i.style.cursor="pointer",i.addEventListener("mouseenter",()=>{i.style.color="rgba(255, 0, 0, 0.5)"}),i.addEventListener("mouseleave",()=>{i.style.color="transparent"}),i}},KU=new class extends Lt{toDOM(){let i=document.createElement("span");return i.innerHTML="\u25CF",i.style.color="rgba(255, 0, 0, 1.0)",i.style.cursor="pointer",i.title="Click to run to here",i}},Bf=class extends Lt{constructor(t,r){super();this.line=t;this.msg=r}toDOM(){let t=document.createElement("span");return t.innerHTML="\u24E7",t.style.color="red",t.style.cursor="pointer",t.title=this.msg,t}eq(t){return this.line==t.line&&this.msg==t.msg}},JU=new class extends Lt{toDOM(){let i=document.createElement("span");return i.textContent="\u25B6",i.style.color="transparent",i.style.cursor="pointer",i.title="Click to run to here",i.addEventListener("mouseenter",()=>{i.style.color="#ffee66"}),i.addEventListener("mouseleave",()=>{i.style.color="transparent"}),i}},f$=new class extends Lt{toDOM(){let i=document.createElement("span");return i.innerHTML="\u25B6",i.style.color="#ff66ee",i.style.cursor="pointer",i.title="Current PC",i}},eA=ds({class:"gutter-offset",markers:i=>i.state.field(o$),initialSpacer:()=>new If("0000"),domEventHandlers:{click(i,e){let t=i.state.doc.lineAt(e.from).number;return i.dispatch({effects:dg.of(t)}),!0}}}),tA=ds({class:"gutter-bytes",markers:i=>i.state.field(a$),initialSpacer:()=>new Nf("00 00 00")}),iA=ds({class:"gutter-c Line truncated
}`,{label:"class",detail:"definition",type:"keyword"}),Li('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Li('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],i2=JQ.concat([Li("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Li("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Li("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),GQ=new ca,ew=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Vl(i){return(e,t)=>{let r=e.node.getChild("VariableDefinition");return r&&t(r,i),!0}}var r2=["FunctionDeclaration"],n2={FunctionDeclaration:Vl("function"),ClassDeclaration:Vl("class"),ClassExpression:()=>!0,EnumDeclaration:Vl("constant"),TypeAliasDeclaration:Vl("type"),NamespaceDeclaration:Vl("namespace"),VariableDefinition(i,e){i.matchContext(r2)||e(i,"variable")},TypeDefinition(i,e){e(i,"type")},__proto__:null};function tw(i,e){let t=GQ.get(e);if(t)return t;let r=[],n=!0;function s(o,a){let l=i.sliceString(o.from,o.to);r.push({label:l,type:a})}return e.cursor(ft.IncludeAnonymous).iterate(o=>{if(n)n=!1;else if(o.name){let a=n2[o.name];if(a&&a(o,s)||ew.has(o.name))return!1}else if(o.to-o.from>8192){for(let a of tw(i,o.node))r.push(a);return!1}}),GQ.set(e,r),r}var HQ=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,iw=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function s2(i){let e=ct(i.state).resolveInner(i.pos,-1);if(iw.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&HQ.test(i.state.sliceDoc(e.from,e.to));if(!t&&!i.explicit)return null;let r=[];for(let n=e;n;n=n.parent)ew.has(n.name)&&(r=r.concat(tw(i.state.doc,n)));return{options:r,from:t?e.from:i.pos,validFor:HQ}}var Jr=mi.define({name:"javascript",parser:BQ.configure({props:[Tr.add({IfStatement:vn({except:/^\s*({|else\b)/}),TryStatement:vn({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:zh,SwitchBody:i=>{let e=i.textAfter,t=/^\s*\}/.test(e),r=/^\s*(case|default)\b/.test(e);return i.baseIndent+(t?0:r?1:2)*i.unit},Block:Eh({closing:"}"}),ArrowFunction:i=>i.baseIndent+i.unit,"TemplateString BlockComment":()=>null,"Statement Property":vn({except:/^\s*{/}),JSXElement(i){let e=/^\s*<\//.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},JSXEscape(i){let e=/\s*\}/.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},"JSXOpenTag JSXSelfClosingTag"(i){return i.column(i.node.from)+i.unit}}),$i.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Xr,BlockComment(i){return{from:i.from+2,to:i.to-2}},JSXElement(i){let e=i.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=i.lastChild;return{from:e.to,to:t.type.isError?i.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(i){var e;let t=(e=i.firstChild)===null||e===void 0?void 0:e.nextSibling,r=i.lastChild;return!t||t.type.isError?null:{from:t.to,to:r.type.isError?i.to:r.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),rw={test:i=>/^JSX/.test(i.name),facet:ha({commentTokens:{block:{open:"{/*",close:"*/}"}}})},Xm=Jr.configure({dialect:"ts"},"typescript"),_m=Jr.configure({dialect:"jsx",props:[Uh.add(i=>i.isTop?[rw]:void 0)]}),Rm=Jr.configure({dialect:"jsx ts",props:[Uh.add(i=>i.isTop?[rw]:void 0)]},"typescript"),nw=i=>({label:i,type:"keyword"}),sw="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(nw),o2=sw.concat(["declare","implements","private","protected","public"].map(nw));function ow(i={}){let e=i.jsx?i.typescript?Rm:_m:i.typescript?Xm:Jr,t=i.typescript?i2.concat(o2):JQ.concat(sw);return new bt(e,[Jr.data.of({autocomplete:Zv(iw,Cv(t))}),Jr.data.of({autocomplete:s2}),i.jsx?c2:[]])}function a2(i){for(;;){if(i.name=="JSXOpenTag"||i.name=="JSXSelfClosingTag"||i.name=="JSXFragmentTag")return i;if(i.name=="JSXEscape"||!i.parent)return null;i=i.parent}}function KQ(i,e,t=i.length){for(let r=e==null?void 0:e.firstChild;r;r=r.nextSibling)if(r.name=="JSXIdentifier"||r.name=="JSXBuiltin"||r.name=="JSXNamespacedName"||r.name=="JSXMemberExpression")return i.sliceString(r.from,Math.min(r.to,t));return""}var l2=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),c2=ae.inputHandler.of((i,e,t,r,n)=>{if((l2?i.composing:i.compositionStarted)||i.state.readOnly||e!=t||r!=">"&&r!="/"||!Jr.isActiveAt(i.state,e,-1))return!1;let s=n(),{state:o}=s,a=o.changeByRange(l=>{var c;let{head:f}=l,O=ct(o).reso Line truncated
`:r=="r"?"\r":r=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new Vm(this):new Wm(this)}getCursor(e,t=0,r){let n=e.doc?e:at.create({doc:e});return r==null&&(r=n.doc.length),this.regexp?ya(this,n,t,r):Sa(this,n,t,r)}},qf=class{constructor(e){this.spec=e}};function D2(i,e,t){return(r,n,s,o)=>{if(t&&!t(r,n,s,o))return!1;let a=r>=o&&n<=o+s.length?s.slice(r-o,n-o):e.doc.sliceString(r,n);return i(a,e,r,n)}}function Sa(i,e,t,r){let n;return i.wholeWord&&(n=I2(e.doc,e.charCategorizer(e.selection.main.head))),i.test&&(n=D2(i.test,e,n)),new Xs(e.doc,i.unquoted,t,r,i.caseSensitive?void 0:s=>s.toLowerCase(),n)}function I2(i,e){return(t,r,n,s)=>((s>t||s+n.length<r)&&(s=Math.max(0,t-2),n=i.sliceString(s,Math.min(i.length,r+2))),(e(Df(n,t-s))!=Qt.Word||e(If(n,t-s))!=Qt.Word)&&(e(If(n,r-s))!=Qt.Word||e(Df(n,r-s))!=Qt.Word))}var Wm=class extends qf{constructor(e){super(e)}nextMatch(e,t,r){let n=Sa(this.spec,e,r,e.doc.length).nextOverlapping();if(n.done){let s=Math.min(e.doc.length,t+this.spec.unquoted.length);n=Sa(this.spec,e,0,s).nextOverlapping()}return n.done||n.value.from==t&&n.value.to==r?null:n.value}prevMatchInRange(e,t,r){for(let n=r;;){let s=Math.max(t,n-1e4-this.spec.unquoted.length),o=Sa(this.spec,e,s,n),a=null;for(;!o.nextOverlapping().done;)a=o.value;if(a)return a;if(s==t)return null;n-=1e4}}prevMatch(e,t,r){let n=this.prevMatchInRange(e,0,t);return n||(n=this.prevMatchInRange(e,Math.max(0,r-this.spec.unquoted.length),e.doc.length)),n&&(n.from!=t||n.to!=r)?n:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let r=Sa(this.spec,e,0,e.doc.length),n=[];for(;!r.next().done;){if(n.length>=t)return null;n.push(r.value)}return n}highlight(e,t,r,n){let s=Sa(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)n(s.value.from,s.value.to)}};function N2(i,e,t){return(r,n,s)=>(!t||t(r,n,s))&&i(s[0],e,r,n)}function ya(i,e,t,r){let n;return i.wholeWord&&(n=F2(e.charCategorizer(e.selection.main.head))),i.test&&(n=N2(i.test,e,n)),new jf(e.doc,i.search,{ignoreCase:!i.caseSensitive,test:n},t,r)}function Df(i,e){return i.slice(Lt(i,e,!1),e)}function If(i,e){return i.slice(e,Lt(i,e))}function F2(i){return(e,t,r)=>!r[0].length||(i(Df(r.input,r.index))!=Qt.Word||i(If(r.input,r.index))!=Qt.Word)&&(i(If(r.input,r.index+r[0].length))!=Qt.Word||i(Df(r.input,r.index+r[0].length))!=Qt.Word)}var Vm=class extends qf{nextMatch(e,t,r){let n=ya(this.spec,e,r,e.doc.length).next();return n.done&&(n=ya(this.spec,e,0,t).next()),n.done?null:n.value}prevMatchInRange(e,t,r){for(let n=1;;n++){let s=Math.max(t,r-n*1e4),o=ya(this.spec,e,s,r),a=null;for(;!o.next().done;)a=o.value;if(a&&(s==t||a.from>s+10))return a;if(s==t)return null}}prevMatch(e,t,r){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,r,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,r)=>{if(r=="&")return e.match[0];if(r=="$")return"$";for(let n=r.length;n>0;n--){let s=+r.slice(0,n);if(s>0&&s<e.match.length)return e.match[s]+r.slice(n)}return t})}matchAll(e,t){let r=ya(this.spec,e,0,e.doc.length),n=[];for(;!r.next().done;){if(n.length>=t)return null;n.push(r.value)}return n}highlight(e,t,r,n){let s=ya(this.spec,e,Math.max(0,t-250),Math.min(r+250,e.doc.length));for(;!s.next().done;)n(s.value.from,s.value.to)}},Nl=Ce.define(),Bm=Ce.define(),Ts=ot.define({create(i){return new Il(qm(i).create(),null)},update(i,e){for(let t of e.effects)t.is(Nl)?i=new Il(t.value.create(),i.panel):t.is(Bm)&&(i=new Il(i.query,t.value?Gm:null));return i},provide:i=>ll.from(i,e=>e.panel)});var Il=class{constructor(e,t){this.query=e,this.panel=t}},B2=pe.mark({class:"cm-searchMatch"}),G2=pe.mark({class:"cm-searchMatch cm-searchMatch-selected"}),H2=Ut.fromClass(class{constructor(i){this.view=i,this.decorations=this.highlight(i.state.field(Ts))}update(i){let e=i.state.field(Ts);(e!=i.startState.field(Ts)||i.docChanged||i.selectionSet||i.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:i,panel:e}){if(!e||!i.spec.valid)return pe.none;let{view:t}=this,r=new Wr;for(let n=0,s=t.visibleRanges,o=s.length;n<o;n++){let{from:a,to:l}=s[n];for(;n<o-1&&l>s[n+1].from-500;)l=s[++n].to;i.highlight(t.state,a,l,(c,f)=>{let O=t.state.selection.ranges.some(p=>p.from==c&&p.to==f);r.add(c,f,O?G2:B2)})}return r.finish()}},{decorations:i=>i.decorations});function Fl(i){return e=>{let t=e.state.field(Ts,!1);return t&&t.query.spec.valid?i(e,t):zw(e)}}var Nf=Fl((i,{query:e})=>{let{to:t}=i.state.selection.main,r=e.nextMatch(i.state,t,t);if(!r)return!1;let n=K.single(r.from,r.to),s=i.state.facet(ko);return i.dispatch({selection:n,effects:[Hm(i,r),s.scrollToMatch(n.main,i)],userEvent:"select.search"}),Ew(i),!0}),Ff=Fl((i,{query:e})=>{let{state:t}=i,{from:r}=t.selection.main,n=e.prevMatch(t,r,r);if( Line truncated
`);for(let l of a){o$.lastIndex=0;let c=o$.exec(l);if(c){let f=o+c.index+c[0].length;t.push(pe.widget({widget:new mg(c[0],e),side:-1}).range(f))}o+=l.length+1}}return pe.set(t,!0)}function l$(i){let e;function t(r){let n=e.posAtDOM(r);i(e.state.doc.lineAt(n).number)}return Ut.fromClass(class{constructor(r){e=r,this.decorations=a$(r,t)}update(r){e=r.view,(r.docChanged||r.viewportChanged)&&(this.decorations=a$(r.view,t))}},{decorations:r=>r.decorations})}function fA(i){return at.transactionFilter.of(e=>{if(!e.docChanged||!e.isUserEvent("input")||!i.input)return e;let t=[],r=!1;if(e.changes.iterChanges((o,a,l,c,f)=>{let O=f.toString(),p=i.input(O);t.push({from:o,to:a,insert:p}),p!==O&&(r=!0)}),!r)return e;let n=e.annotation(Zt.userEvent),s=e.annotation(Zt.addToHistory);return{changes:t,selection:e.selection,effects:e.effects,scrollIntoView:e.scrollIntoView,annotations:[...n!=null?[Zt.userEvent.of(n)]:[],...s!=null?[Zt.addToHistory.of(s)]:[]]}})}var gg=new Ni;function c$(i){return gg.reconfigure(fA(i))}var h$=Ce.define(),f$=Ce.define(),u$=Ce.define(),xg=Ce.define(),O$=Ce.define(),d$=Ce.define(),vg=Ce.define(),p$=Ce.define(),m$=ot.define({create(){return qe.empty},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(h$)){let r=t.value,n=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;n.push(new Gf(pt(o,4)).range(a))}i=qe.of(n,!0)}return i}}),g$=ot.define({create(){return qe.empty},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(f$)){let r=t.value,n=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;n.push(new Hf(o).range(a))}i=qe.of(n,!0)}return i}}),b$=ot.define({create(){return qe.empty},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(u$)){let r=t.value,n=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;n.push(new Kf(o).range(a))}i=qe.of(n,!0)}return i}}),x$=ot.define({create(){return qe.empty},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(xg))if(t.value===null)i=qe.empty;else{let r=t.value;if(r>=1&&r<=e.state.doc.lines){let n=e.state.doc.line(r).from,s=!1;i.between(n,n,()=>(s=!0,!1)),s?i=i.update({filter:o=>o!==n}):i=i.update({add:[OA.range(n)]})}}return i}}),bg=ot.define({create(){return qe.empty},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(O$)){let r=t.value,n=[];for(let[s,o]of r.entries())if(s>=1&&s<=e.state.doc.lines){let a=e.state.doc.line(s).from;n.push(new Jf(s,o).range(a))}i=qe.of(n,!0)}return i}}),v$=ot.define({create(){return qe.empty},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(d$))if(t.value===null)i=qe.empty;else{let r=t.value;if(r>=1&&r<=e.state.doc.lines){let n=e.state.doc.line(r).from;i=qe.of(S$.range(n))}}return i}}),Gf=class extends Wt{constructor(t){super();this.hex=t}toDOM(){let t=document.createElement("span");return t.textContent=this.hex,t.style.cursor="pointer",t.title="Click to run to here",t.addEventListener("mouseenter",()=>{t.style.textDecoration="underline"}),t.addEventListener("mouseleave",()=>{t.style.textDecoration="none"}),t}eq(t){return this.hex==t.hex}},Hf=class extends Wt{constructor(t){super();this.bytes=t}toDOM(){return document.createTextNode(this.bytes)}eq(t){return this.bytes==t.bytes}},Kf=class extends Wt{constructor(t){super();this.clock=t}toDOM(){return document.createTextNode(this.clock)}eq(t){return this.clock==t.clock}},uA=new class extends Wt{toDOM(){let i=document.createElement("span");return i.textContent="\u25CF",i.style.color="transparent",i.style.cursor="pointer",i.addEventListener("mouseenter",()=>{i.style.color="rgba(255, 0, 0, 0.5)"}),i.addEventListener("mouseleave",()=>{i.style.color="transparent"}),i}},OA=new class extends Wt{toDOM(){let i=document.createElement("span");return i.innerHTML="\u25CF",i.style.color="rgba(255, 0, 0, 1.0)",i.style.cursor="pointer",i.title="Click to run to here",i}},Jf=class extends Wt{constructor(t,r){super();this.line=t;this.msg=r}toDOM(){let t=document.createElement("span");return t.innerHTML="\u24E7",t.style.color="red",t.style.cursor="pointer",t.title=this.msg,t}eq(t){return this.line==t.line&&this.msg==t.msg}},dA=new class extends Wt{toDOM(){let i=document.createElement("span");return i.textContent="\u25B6",i.style.color="transparent",i.style.cursor="pointer",i.title="Click to run to here",i.addEventListener("mouseenter",()=>{i.style.color="#ffee66"}),i.addEventListener("mouseleave",()=>{i.style.color="transparent"}),i}},S$=new class extends Wt{toDOM(){let i=document.createElement("span");return i.innerHTML="\u25B6",i.style.color="#ff66ee",i.style.cursor="pointer",i.title="Current PC",i}},pA=ms({class:"gutter-offset",markers:i=>i.state.field(m$),initialSpacer:()=>new Gf("0000"),domEventHandlers:{click(i,e){let t=i.state.doc.lineAt(e.from).number;return i.dispatch({effects:vg.of(t)}),!0}}}),mA=ms({class:"gutter-bytes",markers:i=>i.state.field(g$),initialSpacer:()=>new Hf("00 00 00")}),gA=ms({class:"gutter-c Line truncated
color: #ff6666;
background-color: #330000;
padding: 4px 8px;
margin: 2px 0;
border-left: 3px solid #ff0000;
font-family: monospace;
`,t}},oA=ot.define({create(){return pe.none},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(Po.showMessage)){if(t.value===null||!t.value)return pe.none;if(t.value.toggle){let r=[],n=new Map;return i.between(0,e.state.doc.length,(a,l,c)=>{try{let f=e.state.doc.lineAt(l).number;c.spec.widget instanceof Il&&n.set(f,c.spec.widget.message)}catch(f){}}),n.has(t.value.line)?n.delete(t.value.line):n.set(t.value.line,t.value.msg),Array.from(n.keys()).sort((a,l)=>a-l).forEach(a=>{try{let l=e.state.doc.line(a);r.push(pe.widget({widget:new Il(n.get(a)),block:!0,side:1}).range(l.to))}catch(l){}}),pe.set(r,!0)}}return i},provide:i=>ae.decorations.from(i)}),pg=class extends ni{constructor(t){super();this.value=t}toDOM(){let t=document.createElement("div");return t.textContent=`${this.value}`,t.style.cssText=`
`,t}},SA=ot.define({create(){return pe.none},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(To.showMessage)){if(t.value===null||!t.value)return pe.none;if(t.value.toggle){let r=[],n=new Map;return i.between(0,e.state.doc.length,(a,l,c)=>{try{let f=e.state.doc.lineAt(l).number;c.spec.widget instanceof Gl&&n.set(f,c.spec.widget.message)}catch(f){}}),n.has(t.value.line)?n.delete(t.value.line):n.set(t.value.line,t.value.msg),Array.from(n.keys()).sort((a,l)=>a-l).forEach(a=>{try{let l=e.state.doc.line(a);r.push(pe.widget({widget:new Gl(n.get(a)),block:!0,side:1}).range(l.to))}catch(l){}}),pe.set(r,!0)}}return i},provide:i=>ae.decorations.from(i)}),Sg=class extends oi{constructor(t){super();this.value=t}toDOM(){let t=document.createElement("div");return t.textContent=`${this.value}`,t.style.cssText=`
color: #ccccff;
background-color: #000066;
display: inline-block;
`,t.className="cm-line",t}},p$=Ce.define(),aA=ot.define({create(){return pe.none},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(p$)){if(t.value===null||!t.value)return pe.none;let r=e.state.doc.lineAt(t.value.range.to);return pe.set([pe.widget({widget:new pg(t.value.val),block:!0,side:1}).range(r.to)])}return i},provide:i=>ae.decorations.from(i)}),m$=Ce.define(),lA=pe.mark({attributes:{class:"cm-error-span"}}),cA=ot.define({create(){return pe.none},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(m$)){if(t.value===null)return pe.none;let r=[];for(let n of t.value)try{let s=e.state.doc.line(n.line),o=s.from+n.start,a=s.from+n.end;o>=s.from&&a<=s.to&&o<a&&r.push(lA.range(o,a))}catch(s){}return pe.set(r,!0)}return i},provide:i=>ae.decorations.from(i)}),g$=Ce.define(),hA=pe.line({attributes:{class:"highlight-lines"}}),fA=ot.define({create(){return pe.none},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(g$)){if(t.value===null)return pe.none;let{start:r,end:n}=t.value,s=[];for(let o=r;o<=n;o++)try{let a=e.state.doc.line(o);s.push(hA.range(a.from))}catch(a){}return pe.set(s)}return i!==pe.none&&(e.docChanged||e.selection)?pe.none:i},provide:i=>ae.decorations.from(i)}),b$={field:oA,widget:Il},Nl={effect:O$,decoration:d$,field:sA},Jf={effect:p$,field:aA},eu={effect:m$,field:cA},tu={effect:g$,field:fA},x$=Ce.define(),uA=pe.line({attributes:{class:"cm-traced-line"}}),OA=ot.define({create(){return pe.none},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(x$)){let r=[];for(let n of t.value)try{let s=e.state.doc.line(n);r.push(uA.range(s.from))}catch(s){}return pe.set(r,!0)}return i},provide:i=>ae.decorations.from(i)}),iu={effect:x$,field:OA};var Bl=64,v$=Ce.define(),y$=Ce.define(),mg=ot.define({create(){return new Map},update(i,e){let t=i;for(let r of e.effects)if(r.is(y$))t=new Map;else if(r.is(v$)){t===i&&(t=new Map(i));for(let n of r.value)t.set(n.id,{from:n.from,to:n.to})}if(!e.changes.empty){let r=new Map;for(let[n,s]of t)r.set(n,{from:e.changes.mapPos(s.from,-1),to:e.changes.mapPos(s.to,1)});return r}return t}}),dA=200,gg={default:{theme:cg},6502:{isAsm:!0},z80:{isAsm:!0},jsasm:{isAsm:!0},gas:{isAsm:!0},vasm:{isAsm:!0},inform6:{theme:Df},dialog:{theme:Df,lineWrap:!0},markdown:{lineWrap:!0},fastbasic:{noGutters:!0},basic:{noGutters:!0},ecs:{theme:cg}},S$={input:null};function Q$(i){S$.input=i?e=>e.toUpperCase():null}var Gl=class Gl{constructor(e,t){this.updateTimer=null;this.dirtylisting=!0;this.refreshDelayMsec=300;this.probe=null;this.path=e,this.mode=t}createDiv(e){var t=document.createElement("div");t.setAttribute("class","editor"),e.appendChild(t);var r=Ye.getFile(this.path),n=r&&this.mode=="verilog"&&/__asm\b([\s\S]+?)\b__endasm\b/.test(r);return this.newEditor(t,r,n),this.editor.dispatch({effects:Jw(S$)}),Ye.getToolForFilename(this.path).startsWith("remote:")&&(this.refreshDelayMsec=1e3),t}setVisible(e){e?(this.editor.focus(),Gl.tracingEnabled&&this.startTracing()):this.stopTracing()}startTracing(){!this.probe&&j.startProbing&&(this.probe=j.startProbing(),this.probe.singleFrame=!1,this.probe.clear())}stopTracing(){this.probe&&(j.stopProbing(),this.probe=null),this.editor.dispatch({effects:iu.effect.of([])})}setTracingEnabled(e){Gl.tracingEnabled=e,e?this.startTracing():this.stopTracing()}newEditor(e,t,r){var n=gg[this.mode]||gg.default,s=r||n.isAsm,o=!!n.lineWrap,a=n.theme||gg.default.theme,l=n.useLineNumbers&&!kl;Te.embed&&(l=!1,s=!1);let c=n.noGutters||kl;var f;switch(this.mode){case"6502":f=zw();break;case"basic":f=Yw();break;case"bataribasic":f=jw();break;case"fastbasic":f=Ww();break;case"dialog":f=Lw();break;case"inform6":f=Vw();break;case"markdown":f=bw();break;case"text/x-csrc":f=QS();break;case"text/x-wiz":f=qw();break;case"verilog":f=Mw();break;case"z80":f=Nw();break;default:console.warn("Unknown mode: "+this.mode);break}this.editor=new ae({parent:e,doc:t,extensions:[s?[]:$r.of(" "),s?ip.of((O,p)=>{let b=O.state.doc.lineAt(p).number;if(b>=0){let S=O.state.doc.line(b);if(S.text.trim())return O.lineIndent(S.from)}return 0}):[],...$y(Sp()),wr.of(xy),l?kx():[],Mv(),wr.of(Iv),lv(),bx(),at.allowMultipleSelections.of(!0),yd(),nv(),Ov(),Qd(),wd(),Sd(),Tx(),Vm(),ww({top:!0}),wr.of(Xw),f||[],a,Bw,o?ae.lineWrapping:[],Nl.field,c?[]:[Ff.field,Ff.gutter],s&&!c?[Dl.field,Dl.gutter,Hf.field,Hf.gutter]:[],Kf.field,u$.gutter,ae.updateListener.of(O=>{for(let p of O.transactions.flatMap(b=>b.effects))if(p.is(Kf.set)&&j.isRunning()&&this.runToBreakpoints(O.state),p.is(va.runToLine)){let b=p.value;if(this.sourcefile&&this.sourcefile.line2offset){let S=this.sourcefile.line2offset[b];S>=0&&vo([S])}}}),Po.field,b$.field,eu.field,va.field,va.gutter,tu.field,iu.field,mg,Kw(O=>{window.location.hash="asseteditor/"+encodeURIComponent(this.path)+"/"+O}),fg.of([]),ae.updateListener.of(O=>{O.docChanged&&this.editorChanged()}),Jf.field,ae.updateListener.of(O=>{O.selectionSet&&this.inspectUnderCursor(O)})]}),ky(this.editor)}editorChanged(){clearTimeout(this.updateTimer), Line truncated
`).length-1;this.editor.dispatch({changes:{from:n,insert:e}}),this.highlightLines(r-1,r+s-2)}highlightLines(e,t){let r=this.editor.state.doc.line(e+1);this.editor.dispatch({effects:[tu.effect.of({start:e+1,end:t+1}),ae.scrollIntoView(r.from,{y:"start",yMargin:100})]})}navigateToLine(e){if(e<1||e>this.editor.state.doc.lines)return;let t=this.editor.state.doc.line(e);this.editor.dispatch({selection:{anchor:t.from},effects:[tu.effect.of({start:e,end:e}),ae.scrollIntoView(t.from,{y:"center"})]}),this.editor.focus()}getValue(){return this.editor.state.doc.toString()}getPath(){return this.path}markErrors(e){this.clearErrors(),e=e.slice(0,dA);let t=new Map,r=[];for(var n of e)if(!n.path||this.path.endsWith(n.path)){var s=this.editor.state.doc.lines,o=n.line;(isNaN(o)||o<1||o>s)&&(o=1),t.set(o,n.msg),n.start!=null&&n.end!=null&&n.end>n.start&&r.push({line:o,start:n.start,end:n.end})}this.editor.dispatch({effects:[Po.set.of(t),eu.effect.of(r.length>0?r:null)]})}clearErrors(){this.dirtylisting=!0,this.editor.dispatch({effects:[Po.set.of(new Map),Po.showMessage.of(null),eu.effect.of(null)]})}getSourceFile(){return this.sourcefile}updateListing(){this.clearErrors();var e=this.sourcefile.lines||[];let t=new Map,r=new Map,n=new Map;for(var s of e)if(s.offset>=0&&t.set(s.line,pt(s.offset&65535,4)),s.insns){var o=s.insns.length>9?"...":s.insns;if(r.set(s.line,o),s.iscode){if(s.cycles)n.set(s.line,s.cycles+"");else if(j.getOpcodeMetadata){var a=parseInt(s.insns.split(" ")[0],16),l=j.getOpcodeMetadata(a,s.offset);if(l&&l.minCycles){var c=l.minCycles+"";n.set(s.line,c)}}}}this.editor.dispatch({effects:[Ff.set.of(t),Dl.set.of(r),Hf.set.of(n)]})}setTimingResult(e){if(this.sourcefile!=null){var t=new Map;for(let o of Object.keys(this.sourcefile.line2offset)){let a=this.sourcefile.line2offset[o],l=e.pc2clockrange[a];var r=l&&l.minclocks,n=l&&l.maxclocks;if(r>=0&&n>=0){var s;n==r?s=r+"":s=r+"-"+n,n==e.MAX_CLOCKS&&(s+="+"),t.set(parseInt(o),s)}}this.editor.dispatch({effects:[Dl.set.of(t)]})}}setCurrentLine(e,t){var r=n=>{this.editor.dispatch({effects:[va.set.of(n.line),Nl.effect.of(n.line),...t?[ae.scrollIntoView(this.editor.state.doc.line(n.line).from,{y:"center"})]:[]]})};if(this.clearCurrentLine(t),e){if(e.line<1||e.line>this.editor.state.doc.lines)return;if(r(e),t){let s=this.editor.state.doc.line(e.line).from+(e.start||0);this.editor.dispatch({selection:{anchor:s,head:s},effects:ae.scrollIntoView(s,{y:"center"})})}this.currentDebugLine=e}}clearCurrentLine(e){if(this.currentDebugLine){if(e){let t=this.editor.state.selection.main.head;this.editor.dispatch({selection:{anchor:t,head:t}})}this.currentDebugLine=null}this.editor.dispatch({effects:[va.set.of(null),Nl.effect.of(null)]})}getActiveLine(){if(this.sourcefile){var e=Nn&&Nn.c;if(!e&&j.getCPUState&&!j.isRunning()&&(e=j.getCPUState()),e){var t=e&&(e.EPC||e.PC),r=this.sourcefile.findLineForOffset(t,Bl);return r}}}refreshDebugState(e){var t=this.getActiveLine();!e&&(t===this.currentDebugLine||!t&&!this.currentDebugLine)||this.setCurrentLine(t,e)}refreshListing(){var e=Ye.getListingForFile(this.path);e&&e.sourcefile&&e.sourcefile!==this.sourcefile&&(this.sourcefile=e.sourcefile,this.dirtylisting=!0),!(!this.sourcefile||!this.dirtylisting)&&(this.updateListing(),this.dirtylisting=!1)}refresh(e){this.refreshListing(),this.refreshDebugState(e)}tick(){this.refreshDebugState(!1),this.updateTracedLines()}updateTracedLines(){let e=this.probe;if(!e||!e.idx||!this.sourcefile)return;let t=new Set;for(let r=0;r<e.idx;r++){let n=e.buf[r];if((n&4278190080)===16777216){let s=this.sourcefile.findLineForOffset(n&65535,Bl);s&&t.add(s.line)}}e.clear(),this.editor.dispatch({effects:iu.effect.of(Array.from(t))})}getLine(e){return this.editor.state.doc.line(e).text}getCurrentLine(){let e=this.editor.state.selection.main.head;return this.editor.state.doc.lineAt(e).number}getCursorPC(){for(var e=this.getCurrentLine();this.sourcefile&&e>=0;){var t=this.sourcefile.line2offset[e];if(t>=0)return t;e--}return-1}undoStep(){Wh(this.editor)}redoStep(){gl(this.editor)}getBreakpointPCs(){if(this.sourcefile==null)return[];let e=[],r=this.editor.state.field(Kf.field).iter();for(;r.value;){let n=this.editor.state.doc.lineAt(r.from).number,s=this.sourcefile.line2offset[n];s>=0&&e.push(s),r.next()}return e}runToBreakpoints(e){let t=this.getBreakpointPCs();t.length>0?vo(t):ko()}};Gl.tracingEnabled=!1;var Sn=Gl,bg=1024,Fl=class{createDiv(e){var t=document.createElement("div");return t.setAttribute("class","editor"),e.appendChild(t),this.newEditor(t),t}newEditor(e){this.disasmview=new ae({parent:e,extensions:[Qd(),wd(),at.allowMultipleSelections.of(!0),yd(),Sd(),Vm(),Gw,Df,Nl.field,at.tabSize.of(8),at.readOnly.of(!0)]})}refresh(e){let t=Nn||j.saveState(),r=t.c?t.c.PC:0,n=0,s=0,o=j.debugSymbols&&j.debugSymbols.addr2symbol||{},a=(f,O)=>{let p="",b=0;for(;b<O;){let S=f+b|0,P=j.disassemble(S,j.readAddress.bind(j)),X="",A="";for(let B=0;B<P.nbytes;B++)X+=pt(j.readAddress(S+B));for(;X.length<14;)X+=" ";let H=P.line;if(o&&P.i Line truncated
`;p+=q,S==r&&(s=n),n++,b+=P.nbytes||1}return p};var l=r<0?r-bg:Math.max(0,r-bg);let c=a(l,r-l)+a(r,bg);if(this.disasmview.dispatch({changes:{from:0,to:this.disasmview.state.doc.length,insert:c}}),e){let f=this.disasmview.state.doc.line(s+1);this.disasmview.dispatch({selection:{anchor:f.from,head:f.from},effects:ae.scrollIntoView(f.from,{y:"center"})})}}getCursorPC(){let e=this.disasmview.state.selection.main.head,t=this.disasmview.state.doc.lineAt(e).number;if(t>=0){let n=this.disasmview.state.doc.line(t).text.trim().split(/\s+/);if(n&&n.length>=1){let s=parseInt(n[0],16);if(console.log("getCursorPC",s),s>=0)return s}}return-1}},ru=class extends Fl{constructor(e){super(),this.path=e}refreshListing(){var e=Ye.getListingForFile(this.path);this.assemblyfile=e&&(e.assemblyfile||e.sourcefile)}refresh(e){if(this.refreshListing(),!!this.assemblyfile){var t=this.assemblyfile.text;if(this.disasmview.dispatch({changes:{from:0,to:this.disasmview.state.doc.length,insert:t}}),!!j.saveState){var r=Nn||j.saveState(),n=r.c?r.c.EPC||r.c.PC:0;if(n>=0&&this.assemblyfile){var s=this.assemblyfile.findLineForOffset(n,Bl);if(s&&e){let o=this.disasmview.state.doc.line(s.line);this.disasmview.dispatch({selection:{anchor:o.from,head:o.from},effects:ae.scrollIntoView(o.from,{y:"center"})})}}}}}};var Hl=256,w$=100,$$=!1,nu=class i{constructor(e,t){this.expanded=!1;this.parent=e,this.name=t,this.children=new Map,this.level=e?e.level+1:-1,this.view=e?e.view:null}getDiv(){return this._div==null&&(this._div=document.createElement("div"),this._div.classList.add("vertical-scroll"),this._div.classList.add("tree-content"),this._header=document.createElement("div"),this._header.classList.add("tree-header"),this._header.classList.add("tree-level-"+this.level),this._header.append(this.name),this._inline=document.createElement("span"),this._inline.classList.add("tree-value"),this._header.append(this._inline),this._div.append(this._header),this.parent._content.append(this._div),this._header.onclick=e=>{this.toggleExpanded()}),this.expanded&&this._content==null?(this._content=document.createElement("div"),this._div.append(this._content)):!this.expanded&&this._content!=null&&(this._content.remove(),this._content=null,this.children.clear()),this._div}toggleExpanded(){this.expanded=!this.expanded,this.view.tick()}remove(){this._div.remove(),this._div=null}update(e){this.getDiv();var t="";if(e&&e.$$&&typeof e.$$=="function"&&this._content!=null&&(e=e.$$()),e==null)t=e+"";else if(typeof e=="number")e!=(e|0)?t=e.toString():t=e+" ($"+pt(e)+")";else if(typeof e=="boolean")t=e.toString();else if(typeof e=="string")e.length<w$?t=e:t=e.substring(0,w$)+"...";else if(e.buffer&&e.length<=Hl)t=e0(e,0,e.length);else if(typeof e=="object"||typeof e=="function")if(this._content!=null){if(e.slice&&e.length>Hl){let l={},c=e;for(var r=Hl;e.length/r>Hl;)r*=2;for(let f=0;f<c.length;f+=r)l["$"+pt(f)]={$$:()=>c.slice(f,f+r)};e=l}if(e instanceof Map){let l={};for(let[c,f]of e.entries())l[c]=f;e=l}let o=e instanceof Array?Array.from(e.keys()):Object.getOwnPropertyNames(e);if(o.length>Hl){let l={},c=e;for(var r=100;o.length/r>100;)r*=2;for(let O=0;O<o.length;O+=r){for(var n={},s=O;s<O+r;s++)n[o[s]]=c[o[s]];l["["+O+"...]"]=n}e=l,o=Object.getOwnPropertyNames(e)}let a=new Set(this.children.keys());o.forEach(l=>{var c=!$$&&typeof l=="string"&&l.startsWith("$$");if(!c){let f=this.children.get(l);f==null&&(f=new i(this,l),this.children.set(l,f)),f.update(e[l])}a.delete(l)}),a.forEach(l=>{this.children.get(l).remove(),this.children.delete(l)}),this._header.classList.add("tree-expanded"),this._header.classList.remove("tree-collapsed")}else this._header.classList.add("tree-collapsed"),this._header.classList.remove("tree-expanded");else t=typeof e;this._inline.innerText!=t&&(this._inline.innerText=t)}};function P$(i,e){var t=new nu(null,null);t.view=e,t._content=i;var r=new nu(t,"/");return r.expanded=!0,r.getDiv(),r._div.style.padding="0px",r}var xg=class{createDiv(e){return this.root=P$(e,this),this.root.getDiv()}refresh(){this.tick()}tick(){this.root.update(this.getRootObject())}};var su=class extends xg{getRootObject(){return j.getDebugTree()}},ou=class extends Qs{constructor(){super(...arguments);this.cumulativeData=!0}createDiv(t){return this.clear(),this.treeroot=P$(t,this),this.treeroot.getDiv()}refresh(){this.tick()}tick(){this.treeroot.update(this.getRootObject()),this.probe&&this.probe.clear()}clear(){this.graph=null,this.reset()}reset(){this.stack=[],this.lastsp=-1,this.lastpc=0,this.jsr=!1,this.rts=!1}newNode(t,r){return{$$SP:r,$$PC:t,count:0,startLine:null,endLine:null,calls:{}}}newRoot(t,r){this.stack.length==0?(this.graph=this.newNode(null,r),this.stack.unshift(this.graph)):r>this.stack[0].$$SP&&(this.graph=this.newNode(null,r),this.graph.calls[this.addr2str(t)]=this.stack[0],this.stack.unshift(this.graph))}getRootObject(){return this.redraw((t,r,n,s,o,a)=>{switch(t){case 184549376:this.newRoot(this.lastpc,this.lastsp);case 167772160:if(this.stack.length){let c=this.st Line truncated
`,await B$(i),Te.newfile?!r&&!t?Ke('No build tool for "'+i+'" on this platform; project will not build.'):r?Ag(!0,!0):qi("No skeleton file for "+t+" on this platform; using blank file."):qi('Could not find file "'+i+'"<br><br>Creating new '+(r?t:"blank")+" file."),delete Te.newfile,gu()}}function Eg(i){if(i=="/")Te={repo:"/"};else if(i.indexOf("://")>=0){var e=vl(i);e&&(Te={repo:e.repopath})}else Te.platform=Ae,Te.file=i;mo()}async function nE(i){var e=j.getToolForFilename(i).replace(/^remote:/,"");try{return await $.get("presets/"+Zi(Ae)+"/skeleton."+e,"text")}catch(t){return console.log(t+""),null}}function zg(i){return i.indexOf(" ")>=0?(Ke("No spaces in filenames, please."),!1):!0}async function sE(i){var e=Zi(Ae),t={},r=[];for(var n of i){var s=j.getToolForFilename("test"+n);t[s]||(t[s]=[],r.push(s)),t[s].push(n)}var o=r.map(f=>$.ajax({url:"presets/"+e+"/skeleton."+f,type:"HEAD"}).then(()=>f,()=>null)),a=await Promise.all(o),l=[];for(var c of a)c!=null&&l.push({tool:c,extensions:t[c]});return l}async function oE(i){var e=await sE(j.getDefaultExtensions()),t,r;return e.length===0?(t=j.getDefaultExtensions(),r=t.join(" ")):(t=e.reduce((n,s)=>n.concat(s.extensions),[]),r=e.map(n=>n.extensions.join(" ")).join("<br>")),bootbox.prompt({title:"Enter the name of your new main source file.<br><br><span class='dialog-help'>"+r+"</span>",placeholder:"newfile"+t[0],callback:n=>{if(n&&n.trim().length>0){if(!zg(n))return;n.indexOf(".")<0&&(n+=t[0]);var s=n;Te.newfile="1",Eg(s)}}}),!0}function aE(i){let e=$('<input type="file" multiple accept="*" style="display:none">'),t=e[0];e.change(r=>{lE(t.files)}),e.click()}function lE(i){console.log(i);var e=0;function t(){var r=i[e++];if(!r)console.log("Done uploading",e),e>2?(qi("Files uploaded."),setTimeout(oc,1e3)):(Te.file=i[0].name,bootbox.confirm({message:"Open '"+_o.sanitize(Te.file)+"' as main project file?",buttons:{confirm:{label:"Open As New Project"},cancel:{label:"Include/Link With Project Later"}},callback:o=>{o?mo():setTimeout(oc,1e3)}}));else{var n=r.name,s=new FileReader;s.onload=function(o){var a=o.target.result,l=new Uint8Array(a);Ns(n,l)||(l=mc(l).replace(`\r
`,t.className="cm-line",t}},$$=Ce.define(),yA=ot.define({create(){return pe.none},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is($$)){if(t.value===null||!t.value)return pe.none;let r=e.state.doc.lineAt(t.value.range.to);return pe.set([pe.widget({widget:new Sg(t.value.val),block:!0,side:1}).range(r.to)])}return i},provide:i=>ae.decorations.from(i)}),P$=Ce.define(),QA=pe.mark({attributes:{class:"cm-error-span"}}),wA=ot.define({create(){return pe.none},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(P$)){if(t.value===null)return pe.none;let r=[];for(let n of t.value)try{let s=e.state.doc.line(n.line),o=s.from+n.start,a=s.from+n.end;o>=s.from&&a<=s.to&&o<a&&r.push(QA.range(o,a))}catch(s){}return pe.set(r,!0)}return i},provide:i=>ae.decorations.from(i)}),k$=Ce.define(),$A=pe.line({attributes:{class:"highlight-lines"}}),PA=ot.define({create(){return pe.none},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(k$)){if(t.value===null)return pe.none;let{start:r,end:n}=t.value,s=[];for(let o=r;o<=n;o++)try{let a=e.state.doc.line(o);s.push($A.range(a.from))}catch(a){}return pe.set(s)}return i!==pe.none&&(e.docChanged||e.selection)?pe.none:i},provide:i=>ae.decorations.from(i)}),T$={field:SA,widget:Gl},Hl={effect:Q$,decoration:w$,field:vA},ru={effect:$$,field:yA},nu={effect:P$,field:wA},su={effect:k$,field:PA},X$=Ce.define(),kA=pe.line({attributes:{class:"cm-traced-line"}}),TA=ot.define({create(){return pe.none},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(X$)){let r=[];for(let n of t.value)try{let s=e.state.doc.line(n);r.push(kA.range(s.from))}catch(s){}return pe.set(r,!0)}return i},provide:i=>ae.decorations.from(i)}),ou={effect:X$,field:TA};var Jl=64,_$=Ce.define(),R$=Ce.define(),yg=ot.define({create(){return new Map},update(i,e){let t=i;for(let r of e.effects)if(r.is(R$))t=new Map;else if(r.is(_$)){t===i&&(t=new Map(i));for(let n of r.value)t.set(n.id,{from:n.from,to:n.to})}if(!e.changes.empty){let r=new Map;for(let[n,s]of t)r.set(n,{from:e.changes.mapPos(s.from,-1),to:e.changes.mapPos(s.to,1)});return r}return t}}),XA=200,Qg={default:{theme:pg},6502:{isAsm:!0},z80:{isAsm:!0},jsasm:{isAsm:!0},gas:{isAsm:!0},vasm:{isAsm:!0},inform6:{theme:Bf},dialog:{theme:Bf,lineWrap:!0},markdown:{lineWrap:!0},fastbasic:{noGutters:!0},basic:{noGutters:!0},ecs:{theme:pg}},C$={input:null};function Z$(i){C$.input=i?e=>e.toUpperCase():null}var Kl=class Kl{constructor(e,t){this.updateTimer=null;this.dirtylisting=!0;this.refreshDelayMsec=300;this.probe=null;this.path=e,this.mode=t}createDiv(e){var t=document.createElement("div");t.setAttribute("class","editor"),e.appendChild(t);var r=Ye.getFile(this.path),n=r&&this.mode=="verilog"&&/__asm\b([\s\S]+?)\b__endasm\b/.test(r);return this.newEditor(t,r,n),this.editor.dispatch({effects:c$(C$)}),Ye.getToolForFilename(this.path).startsWith("remote:")&&(this.refreshDelayMsec=1e3),t}setVisible(e){e?(this.editor.focus(),Kl.tracingEnabled&&this.startTracing()):this.stopTracing()}startTracing(){!this.probe&&j.startProbing&&(this.probe=j.startProbing(),this.probe.singleFrame=!1,this.probe.clear())}stopTracing(){this.probe&&(j.stopProbing(),this.probe=null),this.editor.dispatch({effects:ou.effect.of([])})}setTracingEnabled(e){Kl.tracingEnabled=e,e?this.startTracing():this.stopTracing()}newEditor(e,t,r){var n=Qg[this.mode]||Qg.default,s=r||n.isAsm,o=!!n.lineWrap,a=n.theme||Qg.default.theme,l=n.useLineNumbers&&!Rl;Te.embed&&(l=!1,s=!1);let c=n.noGutters||Rl;var f;switch(this.mode){case"6502":f=Nw();break;case"basic":f=Fw();break;case"bataribasic":f=Bw();break;case"fastbasic":f=Hw();break;case"dialog":f=Gw();break;case"inform6":f=Kw();break;case"markdown":f=Tw();break;case"text/x-csrc":f=Zy();break;case"text/x-wiz":f=e$();break;case"verilog":f=Jw();break;case"z80":f=r$();break;default:console.warn("Unknown mode: "+this.mode);break}this.editor=new ae({parent:e,doc:t,extensions:[s?[]:kr.of(" "),s?lp.of((O,p)=>{let b=O.state.doc.lineAt(p).number;if(b>=0){let y=O.state.doc.line(b);if(y.text.trim())return O.lineIndent(y.from)}return 0}):[],...AS(Tp()),Pr.of(XS),l?zx():[],Jv(),Pr.of(iS),bv(),Tx(),at.allowMultipleSelections.of(!0),kd(),dv(),Qv(),Xd(),_d(),Td(),Yx(),Fm(),Uw({top:!0}),Pr.of(jw),f||[],a,s$,o?ae.lineWrapping:[],Hl.field,c?[]:[eu.field,eu.gutter],s&&!c?[Bl.field,Bl.gutter,tu.field,tu.gutter]:[],iu.field,y$.gutter,ae.updateListener.of(O=>{for(let p of O.transactions.flatMap(b=>b.effects))if(p.is(iu.set)&&j.isRunning()&&this.runToBreakpoints(O.state),p.is(Qa.runToLine)){let b=p.value;if(this.sourcefile&&this.sourcefile.line2offset){let y=this.sourcefile.line2offset[b];y>=0&&yo([y])}}}),To.field,T$.field,nu.field,Qa.field,Qa.gutter,su.field,ou.field,yg,l$(O=>{window.location.hash="asseteditor/"+encodeURIComponent(this.path)+"/"+O}),gg.of([]),ae.updateListener.of(O=>{O.docChanged&&this.editorChanged()}),ru.field,ae.updateListener.of(O=>{O.selectionSet&&this.inspectUnderCursor(O)})]}),zS(this.editor)}editorChanged(){clearTimeout(this.updateTimer), Line truncated
`).length-1;this.editor.dispatch({changes:{from:n,insert:e}}),this.highlightLines(r-1,r+s-2)}highlightLines(e,t){let r=this.editor.state.doc.line(e+1);this.editor.dispatch({effects:[su.effect.of({start:e+1,end:t+1}),ae.scrollIntoView(r.from,{y:"start",yMargin:100})]})}navigateToLine(e){if(e<1||e>this.editor.state.doc.lines)return;let t=this.editor.state.doc.line(e);this.editor.dispatch({selection:{anchor:t.from},effects:[su.effect.of({start:e,end:e}),ae.scrollIntoView(t.from,{y:"center"})]}),this.editor.focus()}getValue(){return this.editor.state.doc.toString()}getPath(){return this.path}markErrors(e){this.clearErrors(),e=e.slice(0,XA);let t=new Map,r=[];for(var n of e)if(!n.path||this.path.endsWith(n.path)){var s=this.editor.state.doc.lines,o=n.line;(isNaN(o)||o<1||o>s)&&(o=1),t.set(o,n.msg),n.start!=null&&n.end!=null&&n.end>n.start&&r.push({line:o,start:n.start,end:n.end})}this.editor.dispatch({effects:[To.set.of(t),nu.effect.of(r.length>0?r:null)]})}clearErrors(){this.dirtylisting=!0,this.editor.dispatch({effects:[To.set.of(new Map),To.showMessage.of(null),nu.effect.of(null)]})}getSourceFile(){return this.sourcefile}updateListing(){this.clearErrors();var e=this.sourcefile.lines||[];let t=new Map,r=new Map,n=new Map;for(var s of e)if(s.offset>=0&&t.set(s.line,pt(s.offset&65535,4)),s.insns){var o=s.insns.length>9?"...":s.insns;if(r.set(s.line,o),s.iscode){if(s.cycles)n.set(s.line,s.cycles+"");else if(j.getOpcodeMetadata){var a=parseInt(s.insns.split(" ")[0],16),l=j.getOpcodeMetadata(a,s.offset);if(l&&l.minCycles){var c=l.minCycles+"";n.set(s.line,c)}}}}this.editor.dispatch({effects:[eu.set.of(t),Bl.set.of(r),tu.set.of(n)]})}setTimingResult(e){if(this.sourcefile!=null){var t=new Map;for(let o of Object.keys(this.sourcefile.line2offset)){let a=this.sourcefile.line2offset[o],l=e.pc2clockrange[a];var r=l&&l.minclocks,n=l&&l.maxclocks;if(r>=0&&n>=0){var s;n==r?s=r+"":s=r+"-"+n,n==e.MAX_CLOCKS&&(s+="+"),t.set(parseInt(o),s)}}this.editor.dispatch({effects:[Bl.set.of(t)]})}}setCurrentLine(e,t){var r=n=>{this.editor.dispatch({effects:[Qa.set.of(n.line),Hl.effect.of(n.line),...t?[ae.scrollIntoView(this.editor.state.doc.line(n.line).from,{y:"center"})]:[]]})};if(this.clearCurrentLine(t),e){if(e.line<1||e.line>this.editor.state.doc.lines)return;if(r(e),t){let s=this.editor.state.doc.line(e.line).from+(e.start||0);this.editor.dispatch({selection:{anchor:s,head:s},effects:ae.scrollIntoView(s,{y:"center"})})}this.currentDebugLine=e}}clearCurrentLine(e){if(this.currentDebugLine){if(e){let t=this.editor.state.selection.main.head;this.editor.dispatch({selection:{anchor:t,head:t}})}this.currentDebugLine=null}this.editor.dispatch({effects:[Qa.set.of(null),Hl.effect.of(null)]})}getActiveLine(){if(this.sourcefile){var e=Bn&&Bn.c;if(!e&&j.getCPUState&&!j.isRunning()&&(e=j.getCPUState()),e){var t=e&&(e.EPC||e.PC),r=this.sourcefile.findLineForOffset(t,Jl);return r}}}refreshDebugState(e){var t=this.getActiveLine();!e&&(t===this.currentDebugLine||!t&&!this.currentDebugLine)||this.setCurrentLine(t,e)}refreshListing(){var e=Ye.getListingForFile(this.path);e&&e.sourcefile&&e.sourcefile!==this.sourcefile&&(this.sourcefile=e.sourcefile,this.dirtylisting=!0),!(!this.sourcefile||!this.dirtylisting)&&(this.updateListing(),this.dirtylisting=!1)}refresh(e){this.refreshListing(),this.refreshDebugState(e)}tick(){this.refreshDebugState(!1),this.updateTracedLines()}updateTracedLines(){let e=this.probe;if(!e||!e.idx||!this.sourcefile)return;let t=new Set;for(let r=0;r<e.idx;r++){let n=e.buf[r];if((n&4278190080)===16777216){let s=this.sourcefile.findLineForOffset(n&65535,Jl);s&&t.add(s.line)}}e.clear(),this.editor.dispatch({effects:ou.effect.of(Array.from(t))})}getLine(e){return this.editor.state.doc.line(e).text}getCurrentLine(){let e=this.editor.state.selection.main.head;return this.editor.state.doc.lineAt(e).number}getCursorPC(){for(var e=this.getCurrentLine();this.sourcefile&&e>=0;){var t=this.sourcefile.line2offset[e];if(t>=0)return t;e--}return-1}undoStep(){Dh(this.editor)}redoStep(){Sl(this.editor)}getBreakpointPCs(){if(this.sourcefile==null)return[];let e=[],r=this.editor.state.field(iu.field).iter();for(;r.value;){let n=this.editor.state.doc.lineAt(r.from).number,s=this.sourcefile.line2offset[n];s>=0&&e.push(s),r.next()}return e}runToBreakpoints(e){let t=this.getBreakpointPCs();t.length>0?yo(t):Xo()}};Kl.tracingEnabled=!1;var wn=Kl,wg=1024,ec=class{createDiv(e){var t=document.createElement("div");return t.setAttribute("class","editor"),e.appendChild(t),this.newEditor(t),t}newEditor(e){this.disasmview=new ae({parent:e,extensions:[Xd(),_d(),at.allowMultipleSelections.of(!0),kd(),Td(),Fm(),n$,Bf,Hl.field,at.tabSize.of(8),at.readOnly.of(!0)]})}refresh(e){let t=Bn||j.saveState(),r=t.c?t.c.PC:0,n=0,s=0,o=j.debugSymbols&&j.debugSymbols.addr2symbol||{},a=(f,O)=>{let p="",b=0;for(;b<O;){let y=f+b|0,P=j.disassemble(y,j.readAddress.bind(j)),X="",A="";for(let B=0;B<P.nbytes;B++)X+=pt(j.readAddress(y+B));for(;X.length<14;)X+=" ";let H=P.line;if(o&&P.i Line truncated
`;p+=q,y==r&&(s=n),n++,b+=P.nbytes||1}return p};var l=r<0?r-wg:Math.max(0,r-wg);let c=a(l,r-l)+a(r,wg);if(this.disasmview.dispatch({changes:{from:0,to:this.disasmview.state.doc.length,insert:c}}),e){let f=this.disasmview.state.doc.line(s+1);this.disasmview.dispatch({selection:{anchor:f.from,head:f.from},effects:ae.scrollIntoView(f.from,{y:"center"})})}}getCursorPC(){let e=this.disasmview.state.selection.main.head,t=this.disasmview.state.doc.lineAt(e).number;if(t>=0){let n=this.disasmview.state.doc.line(t).text.trim().split(/\s+/);if(n&&n.length>=1){let s=parseInt(n[0],16);if(console.log("getCursorPC",s),s>=0)return s}}return-1}},au=class extends ec{constructor(e){super(),this.path=e}refreshListing(){var e=Ye.getListingForFile(this.path);this.assemblyfile=e&&(e.assemblyfile||e.sourcefile)}refresh(e){if(this.refreshListing(),!!this.assemblyfile){var t=this.assemblyfile.text;if(this.disasmview.dispatch({changes:{from:0,to:this.disasmview.state.doc.length,insert:t}}),!!j.saveState){var r=Bn||j.saveState(),n=r.c?r.c.EPC||r.c.PC:0;if(n>=0&&this.assemblyfile){var s=this.assemblyfile.findLineForOffset(n,Jl);if(s&&e){let o=this.disasmview.state.doc.line(s.line);this.disasmview.dispatch({selection:{anchor:o.from,head:o.from},effects:ae.scrollIntoView(o.from,{y:"center"})})}}}}}};var tc=256,U$=100,A$=!1,lu=class i{constructor(e,t){this.expanded=!1;this.parent=e,this.name=t,this.children=new Map,this.level=e?e.level+1:-1,this.view=e?e.view:null}getDiv(){return this._div==null&&(this._div=document.createElement("div"),this._div.classList.add("vertical-scroll"),this._div.classList.add("tree-content"),this._header=document.createElement("div"),this._header.classList.add("tree-header"),this._header.classList.add("tree-level-"+this.level),this._header.append(this.name),this._inline=document.createElement("span"),this._inline.classList.add("tree-value"),this._header.append(this._inline),this._div.append(this._header),this.parent._content.append(this._div),this._header.onclick=e=>{this.toggleExpanded()}),this.expanded&&this._content==null?(this._content=document.createElement("div"),this._div.append(this._content)):!this.expanded&&this._content!=null&&(this._content.remove(),this._content=null,this.children.clear()),this._div}toggleExpanded(){this.expanded=!this.expanded,this.view.tick()}remove(){this._div.remove(),this._div=null}update(e){this.getDiv();var t="";if(e&&e.$$&&typeof e.$$=="function"&&this._content!=null&&(e=e.$$()),e==null)t=e+"";else if(typeof e=="number")e!=(e|0)?t=e.toString():t=e+" ($"+pt(e)+")";else if(typeof e=="boolean")t=e.toString();else if(typeof e=="string")e.length<U$?t=e:t=e.substring(0,U$)+"...";else if(e.buffer&&e.length<=tc)t=o0(e,0,e.length);else if(typeof e=="object"||typeof e=="function")if(this._content!=null){if(e.slice&&e.length>tc){let l={},c=e;for(var r=tc;e.length/r>tc;)r*=2;for(let f=0;f<c.length;f+=r)l["$"+pt(f)]={$$:()=>c.slice(f,f+r)};e=l}if(e instanceof Map){let l={};for(let[c,f]of e.entries())l[c]=f;e=l}let o=e instanceof Array?Array.from(e.keys()):Object.getOwnPropertyNames(e);if(o.length>tc){let l={},c=e;for(var r=100;o.length/r>100;)r*=2;for(let O=0;O<o.length;O+=r){for(var n={},s=O;s<O+r;s++)n[o[s]]=c[o[s]];l["["+O+"...]"]=n}e=l,o=Object.getOwnPropertyNames(e)}let a=new Set(this.children.keys());o.forEach(l=>{var c=!A$&&typeof l=="string"&&l.startsWith("$$");if(!c){let f=this.children.get(l);f==null&&(f=new i(this,l),this.children.set(l,f)),f.update(e[l])}a.delete(l)}),a.forEach(l=>{this.children.get(l).remove(),this.children.delete(l)}),this._header.classList.add("tree-expanded"),this._header.classList.remove("tree-collapsed")}else this._header.classList.add("tree-collapsed"),this._header.classList.remove("tree-expanded");else t=typeof e;this._inline.innerText!=t&&(this._inline.innerText=t)}};function E$(i,e){var t=new lu(null,null);t.view=e,t._content=i;var r=new lu(t,"/");return r.expanded=!0,r.getDiv(),r._div.style.padding="0px",r}var $g=class{createDiv(e){return this.root=E$(e,this),this.root.getDiv()}refresh(){this.tick()}tick(){this.root.update(this.getRootObject())}};var cu=class extends $g{getRootObject(){return j.getDebugTree()}},hu=class extends $s{constructor(){super(...arguments);this.cumulativeData=!0}createDiv(t){return this.clear(),this.treeroot=E$(t,this),this.treeroot.getDiv()}refresh(){this.tick()}tick(){this.treeroot.update(this.getRootObject()),this.probe&&this.probe.clear()}clear(){this.graph=null,this.reset()}reset(){this.stack=[],this.lastsp=-1,this.lastpc=0,this.jsr=!1,this.rts=!1}newNode(t,r){return{$$SP:r,$$PC:t,count:0,startLine:null,endLine:null,calls:{}}}newRoot(t,r){this.stack.length==0?(this.graph=this.newNode(null,r),this.stack.unshift(this.graph)):r>this.stack[0].$$SP&&(this.graph=this.newNode(null,r),this.graph.calls[this.addr2str(t)]=this.stack[0],this.stack.unshift(this.graph))}getRootObject(){return this.redraw((t,r,n,s,o,a)=>{switch(t){case 184549376:this.newRoot(this.lastpc,this.lastsp);case 167772160:if(this.stack.length){let c=this.st Line truncated
`,await s1(i),Te.newfile?!r&&!t?Ke('No build tool for "'+i+'" on this platform; project will not build.'):r?Mg(!0,!0):Ii("No skeleton file for "+t+" on this platform; using blank file."):Ii('Could not find file "'+i+'"<br><br>Creating new '+(r?t:"blank")+" file."),delete Te.newfile,Su()}}function Wg(i){if(i=="/")Te={repo:"/"};else if(i.indexOf("://")>=0){var e=wl(i);e&&(Te={repo:e.repopath})}else Te.platform=Ae,Te.file=i;bo()}async function gE(i){var e=Iu(j.getToolForFilename(i));try{return await $.get("presets/"+Ai(Ae)+"/skeleton."+e,"text")}catch(t){return console.log(t+""),null}}function Vg(i){return i.indexOf(" ")>=0?(Ke("No spaces in filenames, please."),!1):!0}async function bE(i){var e=Ai(Ae),t={},r=[];for(var n of i){var s=j.getToolForFilename("test"+n);t[s]||(t[s]=[],r.push(s)),t[s].push(n)}var o=r.map(f=>$.ajax({url:"presets/"+e+"/skeleton."+Iu(f),type:"HEAD"}).then(()=>f,()=>null)),a=await Promise.all(o),l=[];for(var c of a)c!=null&&l.push({tool:c,extensions:t[c]});return l}async function xE(i){var e=await bE(j.getDefaultExtensions()),t,r;return e.length===0?(t=j.getDefaultExtensions(),r=t.join(" ")):(t=e.reduce((n,s)=>n.concat(s.extensions),[]),r=e.map(n=>n.extensions.join(" ")).join("<br>")),bootbox.prompt({title:"Enter the name of your new main source file.<br><br><span class='dialog-help'>"+r+"</span>",placeholder:"newfile"+t[0],callback:n=>{if(n&&n.trim().length>0){if(!Vg(n))return;n.indexOf(".")<0&&(n+=t[0]);var s=n;Te.newfile="1",Wg(s)}}}),!0}function vE(i){let e=$('<input type="file" multiple accept="*" style="display:none">'),t=e[0];e.change(r=>{SE(t.files)}),e.click()}function SE(i){console.log(i);var e=0;function t(){var r=i[e++];if(!r)console.log("Done uploading",e),e>2?(Ii("Files uploaded."),setTimeout(hc,1e3)):(Te.file=i[0].name,bootbox.confirm({message:"Open '"+Co.sanitize(Te.file)+"' as main project file?",buttons:{confirm:{label:"Open As New Project"},cancel:{label:"Include/Link With Project Later"}},callback:o=>{o?bo():setTimeout(hc,1e3)}}));else{var n=r.name,s=new FileReader;s.onload=function(o){var a=o.target.result,l=new Uint8Array(a);Bs(n,l)||(l=vc(l).replace(`\r
`,`
`)),$e.updateFile(n,l),console.log("Uploaded "+n+" "+l.length+" bytes"),t()},s.readAsArrayBuffer(r)}}i&&t()}async function cE(i){var e=window.showDirectoryPicker;e||Ke("This browser can't open local files on your computer, yet. Try Chrome.");var t=await e(),r=t.name,n="__localfs__"+r,s={handle:t},o=Zg.createInstance({name:n,version:2});await o.setItem(n,s),Te={localfs:r},mo(!0)}async function hE(i){return new Promise((e,t)=>{bootbox.prompt(_o.sanitize(i),r=>{e(r)})})}async function fE(i){let e={mode:"readwrite"};var t="__localfs__"+i,r=Zg.createInstance({name:t,version:2}),n=await r.getItem(t),s=n.handle;console.log(n,s);var o=await s.queryPermission(e);if(console.log(o),o!=="granted"&&(await hE("Request permissions to access filesystem?"),o=await s.requestPermission(e)),o!=="granted"){Ke("Could not get permission to access filesystem.");return}let a={};return{getFileData:async l=>{console.log("getFileData",l);let f=await(await s.getFileHandle(l,{create:!1})).getFile(),O=await(Ns(l)?f.arrayBuffer():f.text());return O instanceof ArrayBuffer?new Uint8Array(O):O},setFileData:async(l,c)=>{a[l]=Date.now();let O=await(await s.getFileHandle(l,{create:!0})).createWritable();await O.write(c),await O.close()},onFileSystemUpdate:l=>{if(typeof window.FileSystemObserver=="undefined")return;new window.FileSystemObserver((f,O)=>{for(let p of f)if(p.changedHandle){let b=p.changedHandle.name;if(Date.now()-(a[b]||0)<2e3)continue;l(b)}}).observe(s,{recursive:!0})}}}function Jt(){return xi(Ye.mainPath)}function Wy(){return xi($e.getActiveID())}function uE(i){var e=$e.getActive(),t=$e.getActiveID(),r=e&&e.setData&&!e.setText;if(e&&(e.setText||e.setData)){var n="presets/"+Zi(Ae)+"/"+t;Aa(n,s=>{if(s==null){qt?Ke("Can only revert built-in examples. If you want to revert all files, You can pull from the repository."):Ke("Can only revert built-in examples.");return}bootbox.confirm("Reset '"+_o.sanitize(t)+"' to default?",o=>{o&&(r?(e.setData(s),Ye.updateFile(t,s)):e.setText(s))})},r?"arraybuffer":"text")}else Ke("Cannot revert the active window. Please choose a text file.")}function OE(i){var e=$e.getActive();if(e&&e.getPath){var t=$e.getActiveID();bootbox.confirm("Delete '"+_o.sanitize(t)+"'?",r=>{r&&Cr.removeItem(t).then(()=>{Te.file==t?(Ro.unsetLastPreset(),mo()):(oc(),qi("Deleted "+t))})})}else Ke("Cannot delete the active window.")}function dE(i){var e=$e.getActive();if(e&&e.getPath&&Ye.getFile(e.getPath())){var t=$e.getActiveID();bootbox.prompt({title:"Rename '"+_o.sanitize(t)+"' to?",value:t,callback:r=>{var n=Ye.getFile(e.getPath());if(r&&r!=t&&n){if(!zg(r))return;Cr.removeItem(t).then(()=>Cr.setItem(r,n)).then(()=>{oc(),alert("Renamed "+t+" to "+r),t==Ye.mainPath&&Eg(r)})}}})}else Ke("Cannot rename the active window.")}function pE(i){let e={},t,r=j.getPresets?j.getPresets():[];for(var n=0;n<r.length;n++){var s=r[n],o=s.chapter?s.chapter+". "+s.name:s.name,a=s.id==Ye.mainPath;s.category?t=$("<optgroup />").attr("label","Examples: "+s.category).appendTo(i):t||(t=$("<optgroup />").attr("label","Examples").appendTo(i)),t.append($("<option />").val(s.id).text(o).attr("selected",a?"selected":null)),a&&(hu=s),e[s.id]=o}return e}function mE(i){if(Rr&&!ac){var e=0,t=ua();if(t){let n=$("<optgroup />").attr("label","Repositories").appendTo(i);for(let s in t){var r=t[s];r.platform_id&&Zi(r.platform_id)==Zi(Ae)&&n.append($("<option />").val(r.url).text(r.url.substring(r.url.indexOf("/"))))}}}}async function F$(i,e,t,r){let n=await Cr.keys();n||(n=[]);let s;for(var o=0;o<n.length;o++){let a=n[o];if(a.startsWith(t)&&!r[a]){s||(s=$("<optgroup />").attr("label",e).appendTo(i));let l=a.substring(t.length);s.append($("<option />").val(a).text(l).attr("selected",a==Ye.mainPath?"selected":null))}}}function H$(i){i.css("visibility","visible");var e=Ye.mainPath;i.val()!=e&&i.append($("<option />").val(e).text(e).attr("selected","selected"))}async function oc(){var i=$("#preset_select").empty();if(qt)i.append($("<option />").val("/").text("Leave Repository")),$("#repo_name").text(xi(qt)+"/").show(),await F$(i,qt,"",{}),H$(i);else{mE(i);var e=pE(i);await F$(i,"Local Files","",e),H$(i)}i.off("change").change(function(t){Eg($(this).val().toString())})}function gE(i){var e=$("<p/>");if(i.path!=null){var t=i.line?i.label?`(${i.path} @ ${i.label})`:`(${i.path}:${i.line})`:`(${i.path})`,r=$("<a/>").text(t),n=i.path;n==Jt()&&(n=Ye.mainPath),$e.isWindow(n)&&r.click(s=>{var o=$e.createOrShow(n);o instanceof Sn&&o.navigateToLine(i.line)}),e.append(r),e.append("&nbsp;")}return e.append($("<span/>").text(i.msg)),e}function t1(){$("#error_alert").hide(),Ug=!1}function Yg(i,e){var t=$("#error_alert_msg").empty();for(var r of i.slice(0,10))t.append(gE(r));$("#error_alert").show(),Ug=e}function i1(i,e){if(e!=null){var t={msg:e,line:0};i instanceof zu&&i.$loc&&(t=Object.create(i.$loc),t.msg=e,console.log(t)),Yg([t],!0)}}async function bE(i){if("uppercaseOnly"in i&&Q$(i.uppercaseOnly),"errors"in i&&i.errors.length>0)rc.addClass("has-errors"),$e.setErrors(i.errors), Line truncated
`)),$e.updateFile(n,l),console.log("Uploaded "+n+" "+l.length+" bytes"),t()},s.readAsArrayBuffer(r)}}i&&t()}async function yE(i){var e=window.showDirectoryPicker;e||Ke("This browser can't open local files on your computer, yet. Try Chrome.");var t=await e(),r=t.name,n="__localfs__"+r,s={handle:t},o=jg.createInstance({name:n,version:2});await o.setItem(n,s),Te={localfs:r},bo(!0)}async function QE(i){return new Promise((e,t)=>{bootbox.prompt(Co.sanitize(i),r=>{e(r)})})}async function wE(i){let e={mode:"readwrite"};var t="__localfs__"+i,r=jg.createInstance({name:t,version:2}),n=await r.getItem(t),s=n.handle;console.log(n,s);var o=await s.queryPermission(e);if(console.log(o),o!=="granted"&&(await QE("Request permissions to access filesystem?"),o=await s.requestPermission(e)),o!=="granted"){Ke("Could not get permission to access filesystem.");return}let a={};return{getFileData:async l=>{console.log("getFileData",l);let f=await(await s.getFileHandle(l,{create:!1})).getFile(),O=await(Bs(l)?f.arrayBuffer():f.text());return O instanceof ArrayBuffer?new Uint8Array(O):O},setFileData:async(l,c)=>{a[l]=Date.now();let O=await(await s.getFileHandle(l,{create:!0})).createWritable();await O.write(c),await O.close()},onFileSystemUpdate:l=>{if(typeof window.FileSystemObserver=="undefined")return;new window.FileSystemObserver((f,O)=>{for(let p of f)if(p.changedHandle){let b=p.changedHandle.name;if(Date.now()-(a[b]||0)<2e3)continue;l(b)}}).observe(s,{recursive:!0})}}}function ti(){return Si(Ye.mainPath)}function HS(){return Si($e.getActiveID())}function $E(i){var e=$e.getActive(),t=$e.getActiveID(),r=e&&e.setData&&!e.setText;if(e&&(e.setText||e.setData)){var n="presets/"+Ai(Ae)+"/"+t;Ya(n,s=>{if(s==null){It?Ke("Can only revert built-in examples. If you want to revert all files, You can pull from the repository."):Ke("Can only revert built-in examples.");return}bootbox.confirm("Reset '"+Co.sanitize(t)+"' to default?",o=>{o&&(r?(e.setData(s),Ye.updateFile(t,s)):e.setText(s))})},r?"arraybuffer":"text")}else Ke("Cannot revert the active window. Please choose a text file.")}function PE(i){var e=$e.getActive();if(e&&e.getPath){var t=$e.getActiveID();bootbox.confirm("Delete '"+Co.sanitize(t)+"'?",r=>{r&&Ur.removeItem(t).then(()=>{Te.file==t?(Zo.unsetLastPreset(),bo()):(hc(),Ii("Deleted "+t))})})}else Ke("Cannot delete the active window.")}function kE(i){var e=$e.getActive();if(e&&e.getPath&&Ye.getFile(e.getPath())){var t=$e.getActiveID();bootbox.prompt({title:"Rename '"+Co.sanitize(t)+"' to?",value:t,callback:r=>{var n=Ye.getFile(e.getPath());if(r&&r!=t&&n){if(!Vg(r))return;Ur.removeItem(t).then(()=>Ur.setItem(r,n)).then(()=>{hc(),alert("Renamed "+t+" to "+r),t==Ye.mainPath&&Wg(r)})}}})}else Ke("Cannot rename the active window.")}function TE(i){let e={},t,r=j.getPresets?j.getPresets():[];for(var n=0;n<r.length;n++){var s=r[n],o=s.chapter?s.chapter+". "+s.name:s.name,a=s.id==Ye.mainPath;s.category?t=$("<optgroup />").attr("label","Examples: "+s.category).appendTo(i):t||(t=$("<optgroup />").attr("label","Examples").appendTo(i)),t.append($("<option />").val(s.id).text(o).attr("selected",a?"selected":null)),a&&(du=s),e[s.id]=o}return e}function XE(i){if(Zr&&!fc){var e=0,t=pa();if(t){let n=$("<optgroup />").attr("label","Repositories").appendTo(i);for(let s in t){var r=t[s];r.platform_id&&Ai(r.platform_id)==Ai(Ae)&&n.append($("<option />").val(r.url).text(r.url.substring(r.url.indexOf("/"))))}}}}async function o1(i,e,t,r){let n=await Ur.keys();n||(n=[]);let s;for(var o=0;o<n.length;o++){let a=n[o];if(a.startsWith(t)&&!r[a]){s||(s=$("<optgroup />").attr("label",e).appendTo(i));let l=a.substring(t.length);s.append($("<option />").val(a).text(l).attr("selected",a==Ye.mainPath?"selected":null))}}}function a1(i){i.css("visibility","visible");var e=Ye.mainPath;i.val()!=e&&i.append($("<option />").val(e).text(e).attr("selected","selected"))}async function hc(){var i=$("#preset_select").empty();if(It)i.append($("<option />").val("/").text("Leave Repository")),$("#repo_name").text(Si(It)+"/").show(),await o1(i,It,"",{}),a1(i);else{XE(i);var e=TE(i);await o1(i,"Local Files","",e),a1(i)}i.off("change").change(function(t){Wg($(this).val().toString())})}function _E(i){var e=$("<p/>");if(i.path!=null){var t=i.line?i.label?`(${i.path} @ ${i.label})`:`(${i.path}:${i.line})`:`(${i.path})`,r=$("<a/>").text(t),n=i.path;n==ti()&&(n=Ye.mainPath),$e.isWindow(n)&&r.click(s=>{var o=$e.createOrShow(n);o instanceof wn&&o.navigateToLine(i.line)}),e.append(r),e.append("&nbsp;")}return e.append($("<span/>").text(i.msg)),e}function f1(){$("#error_alert").hide(),Lg=!1}function qg(i,e){var t=$("#error_alert_msg").empty();for(var r of i.slice(0,10))t.append(_E(r));$("#error_alert").show(),Lg=e}function u1(i,e){if(e!=null){var t={msg:e,line:0};i instanceof Mu&&i.$loc&&(t=Object.create(i.$loc),t.msg=e,console.log(t)),qg([t],!0)}}async function RE(i){if("uppercaseOnly"in i&&Z$(i.uppercaseOnly),"errors"in i&&i.errors.length>0)ac.addClass("has-errors"),$e.setErrors(i.errors), Line truncated
`),e.SP&&(t+="c.SP < 0x"+pt(e.SP)+`
`),e.HL&&(t+=`c.HL == 0x4000
`),j.readAddress&&(t+=`this.readAddress(0x1234) == 0x0
`),j.readVRAMAddress&&(t+=`this.readVRAMAddress(0x1234) != 0x80
`),j.getRasterScanline&&(t+=`this.getRasterScanline() > 222
`),t}function ZE(i){var e=new Function("c","return ("+i+");").bind(j);vn(),j.runEval(e),e1=i}function o1(){j.isRunning()?($e.tick(),fu=!1):fu||($e.tick(),fu=!0),setTimeout(o1,100)}function mu(i){j.setFrameRate(i),i>.01?$("#fps_label").text(i.toFixed(2)):$("#fps_label").text("1/"+Math.round(1/i))}function UE(){var i=j.getFrameRate();i=i/2,i>1e-5&&mu(i)}function AE(){var i=j.getFrameRate();i=Math.min(60,i*2),mu(i)}function EE(){mu(60/65536)}function zE(){Bn(),mu(60)}function YE(){$e.refresh(!1);var i=$e.getActive();if(i.getSourceFile&&i.setTimingResult){var e=j.newCodeAnalyzer();e.showLoopTimingForPC(0),i.setTimingResult(e)}}function Lg(){wa&&(j.setRecorder(null),$("#dbg_record").removeClass("btn_recording"),$("#replaydiv").hide(),jg(),wa=!1)}function a1(){wa&&Wi.reset()}function l1(){Wi.reset(),j.setRecorder(Wi),$("#dbg_record").addClass("btn_recording"),$("#replaydiv").show(),wa=!0}function jE(){wa?Lg():l1()}function LE(){var i=!Sn.tracingEnabled;$("#dbg_tracelines").toggleClass("btn_active",i);var e=$e.getActive();e instanceof Sn?e.setTracingEnabled(i):Sn.tracingEnabled=i}function Jr(i,e,t){var r=$e.getActive();r&&r.insertLinesBefore?bootbox.prompt({title:"Add "+_o.sanitize(i)+" File to Project",value:"filename"+_o.sanitize(e),callback:n=>{if(n&&n.trim().length>0){if(!zg(n))return;var s=n,o=`
`),t}function IE(i){var e=new Function("c","return ("+i+");").bind(j);yn(),j.runEval(e),h1=i}function m1(){j.isRunning()?($e.tick(),pu=!1):pu||($e.tick(),pu=!0),setTimeout(m1,100)}function vu(i){j.setFrameRate(i),i>.01?$("#fps_label").text(i.toFixed(2)):$("#fps_label").text("1/"+Math.round(1/i))}function NE(){var i=j.getFrameRate();i=i/2,i>1e-5&&vu(i)}function FE(){var i=j.getFrameRate();i=Math.min(60,i*2),vu(i)}function BE(){vu(60/65536)}function GE(){Hn(),vu(60)}function HE(){$e.refresh(!1);var i=$e.getActive();if(i.getSourceFile&&i.setTimingResult){var e=j.newCodeAnalyzer();e.showLoopTimingForPC(0),i.setTimingResult(e)}}function Ig(){ka&&(j.setRecorder(null),$("#dbg_record").removeClass("btn_recording"),$("#replaydiv").hide(),Dg(),ka=!1)}function g1(){ka&&Vi.reset()}function b1(){Vi.reset(),j.setRecorder(Vi),$("#dbg_record").addClass("btn_recording"),$("#replaydiv").show(),ka=!0}function KE(){ka?Ig():b1()}function JE(){var i=!wn.tracingEnabled;$("#dbg_tracelines").toggleClass("btn_active",i);var e=$e.getActive();e instanceof wn?e.setTracingEnabled(i):wn.tracingEnabled=i}function tn(i,e,t){var r=$e.getActive();r&&r.insertLinesBefore?bootbox.prompt({title:"Add "+Co.sanitize(i)+" File to Project",value:"filename"+Co.sanitize(e),callback:n=>{if(n&&n.trim().length>0){if(!Vg(n))return;var s=n,o=`
`+t(n)+`
`;Ye.loadFiles([s]).then(a=>{a&&a.length?Ke(n+" already exists; including anyway"):Ye.updateFile(s,`
`),r.insertLinesBefore(o),nc()})}}}):Ke("Can't insert text in this window -- switch back to main file")}function WE(){var i=Jt(),e=j.getToolForFilename(i);i.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"?Jr("Header",".h",t=>'#include "'+t+'"'):e=="dasm"||e=="zmac"?Jr("Include",".inc",t=>' include "'+t+'"'):e=="ca65"||e=="sdasz80"||e=="vasm"||e=="armips"?Jr("Include",".inc",t=>' .include "'+t+'"'):e=="verilator"?Jr("Verilog",".v",t=>'`include "'+t+'"'):e=="wiz"?Jr("Include",".wiz",t=>'import "'+t+'";'):e=="ecs"?Jr("Include",".ecs",t=>'import "'+t+'"'):e=="acme"?Jr("Include",".acme",t=>'!src "'+t+'"'):e=="xa"?Jr("Include",".xa",t=>'#include "'+t+'"'):e=="dialog"?Jr("Include",".dg",t=>'%% #include "'+t+'"'):Ke("Can't add include file to this project type ("+e+")")}function VE(){var i=Jt(),e=j.getToolForFilename(i);i.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"?Jr("Linked C (or .s)",".c",t=>'//#link "'+t+'"'):i.endsWith("asm")||i.endsWith(".s")||e=="ca65"||e=="lwasm"?Jr("Linked ASM",".inc",t=>';#link "'+t+'"'):Ke("Can't add linked file to this project type ("+e+")")}function ME(){if(It=new yc($("#toolbar")[0],null),It.grp.prop("id","run_bar"),It.add("ctrl+alt+r","Reset","glyphicon-refresh",XE).prop("id","dbg_reset"),It.add("ctrl+alt+,","Pause","glyphicon-pause",yE).prop("id","dbg_pause"),It.add("ctrl+alt+.","Resume","glyphicon-play",n1).prop("id","dbg_go"),j.restartAtPC&&It.add("ctrl+alt+/","Restart at Cursor","glyphicon-play-circle",$E).prop("id","dbg_restartatline"),It.newGroup(),It.grp.prop("id","debug_bar"),j.runEval&&It.add("ctrl+alt+e","Reset and Debug","glyphicon-fast-backward",_E).prop("id","dbg_restart"),j.stepBack&&It.add("ctrl+alt+b","Step Backwards","glyphicon-step-backward",TE).prop("id","dbg_stepback"),j.step&&It.add("ctrl+alt+s","Single Step","glyphicon-step-forward",SE).prop("id","dbg_step"),j.stepOver&&It.add("ctrl+alt+t","Step Over","glyphicon-hand-right",QE).prop("id","dbg_stepover"),j.runUntilReturn&&It.add("ctrl+alt+o","Step Out of Subroutine","glyphicon-hand-up",kE).prop("id","dbg_stepout"),j.runToVsync&&It.add("ctrl+alt+n","Next Frame/Interrupt","glyphicon-forward",wE).prop("id","dbg_tovsync"),(j.runEval||j.runToPC)&&!Ae.startsWith("verilog")&&It.add("ctrl+alt+l","Run To Line","glyphicon-save",PE).prop("id","dbg_toline"),It.newGroup(),It.grp.prop("id","xtra_bar"),$(".dropdown-menu").collapse({toggle:!1}),$("#item_new_file").click(oE),$("#item_upload_file").click(aE),$("#item_open_directory").click(cE),$("#item_github_login").click(Vy),$("#item_github_logout").click(My),$("#item_github_import").click(qy),$("#item_github_publish").click(Dy),$("#item_github_push").click(Iy),$("#item_github_pull").click(Ny),$("#item_repo_delete").click(By),$("#item_share_file").click(Cy),$("#item_reset_file").click(uE),$("#item_rename_file").click(dE),$("#item_delete_file").click(OE),j.runEval?$("#item_debug_expr").click(RE).show():$("#item_debug_expr").hide(),$("#item_download_rom").click(Uy),$("#item_download_file").click(Ay),$("#item_download_zip").click(zy),j.getDebugSymbolFile?$("#item_download_sym").click(Yy):$("#item_download_sym").hide(),$("#item_download_allzip").click(jy),$("#item_record_video").click(Ly),wp()?$("#item_export_cassette").click(Zy):$("#item_export_cassette").hide(),j.setFrameRate&&j.getFrameRate&&($("#dbg_slower").click(UE),$("#dbg_faster").click(AE),$("#dbg_slowest").click(EE),$("#dbg_fastest").click(zE)),$("#item_addfile_include").click(WE),$("#item_addfile_link").click(VE),$("#item_request_persist").click(()=>Ag(!0,!1)),$("#item_settings").click(Ty),$("#item_keyboard_shortcuts").click(qE),$("#item_asset_editor_help").click(DE),o1(),j.newCodeAnalyzer&&It.add(null,"Analyze CPU Timing","glyphicon-time",YE),j.startProbing&&It.add(null,"Highlight Executed Lines","glyphicon-fire",LE).prop("id","dbg_tracelines"),j.setRecorder&&j.advance&&IE(),j.showHelp){let{li:t,a:r}=_g("help__"+Ae,Tg+" Help");$("#help_menu").append(t),$(r).click(()=>window.open(j.showHelp(),"_8bws_help"))}let i=j.getToolForFilename(Jt()),e=FA[i];if(e){let{li:t,a:r}=_g("help__"+i,i+" Help");$("#help_menu").append(t),$(r).click(()=>window.open(e,"_8bws_help"))}}function qE(){let i=/Mac|iPhone|iPad/.test(navigator.platform),e=i?"&#8984;":"Ctrl",t=i?"&#8997;":"Alt",r=i?"&#8679;":"Shift",n=(s,o)=>`<tr><td><kbd>${s}</kbd></td><td>${o}</td></tr>`;bootbox.dialog({title:"Keyboard shortcuts",onEscape:!0,message:`
`),r.insertLinesBefore(o),lc()})}}}):Ke("Can't insert text in this window -- switch back to main file")}function e5(){var i=ti(),e=j.getToolForFilename(i);i.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"?tn("Header",".h",t=>'#include "'+t+'"'):e=="dasm"||e=="zmac"?tn("Include",".inc",t=>' include "'+t+'"'):e=="ca65"||e=="sdasz80"||e=="vasm"||e=="armips"?tn("Include",".inc",t=>' .include "'+t+'"'):e=="verilator"?tn("Verilog",".v",t=>'`include "'+t+'"'):e=="wiz"?tn("Include",".wiz",t=>'import "'+t+'";'):e=="ecs"?tn("Include",".ecs",t=>'import "'+t+'"'):e=="acme"?tn("Include",".acme",t=>'!src "'+t+'"'):e=="xa"?tn("Include",".xa",t=>'#include "'+t+'"'):e=="dialog"?tn("Include",".dg",t=>'%% #include "'+t+'"'):Ke("Can't add include file to this project type ("+e+")")}function t5(){var i=ti(),e=j.getToolForFilename(i);i.endsWith(".c")||e=="sdcc"||e=="cc65"||e=="cmoc"||e=="smlrc"?tn("Linked C (or .s)",".c",t=>'//#link "'+t+'"'):i.endsWith("asm")||i.endsWith(".s")||e=="ca65"||e=="lwasm"?tn("Linked ASM",".inc",t=>';#link "'+t+'"'):Ke("Can't add linked file to this project type ("+e+")")}function i5(){var t;if(Ft=new $c($("#toolbar")[0],null),Ft.grp.prop("id","run_bar"),Ft.add("ctrl+alt+r","Reset","glyphicon-refresh",WE).prop("id","dbg_reset"),Ft.add("ctrl+alt+,","Pause","glyphicon-pause",UE).prop("id","dbg_pause"),Ft.add("ctrl+alt+.","Resume","glyphicon-play",d1).prop("id","dbg_go"),j.restartAtPC&&Ft.add("ctrl+alt+/","Restart at Cursor","glyphicon-play-circle",YE).prop("id","dbg_restartatline"),Ft.newGroup(),Ft.grp.prop("id","debug_bar"),j.runEval&&Ft.add("ctrl+alt+e","Reset and Debug","glyphicon-fast-backward",VE).prop("id","dbg_restart"),j.stepBack&&Ft.add("ctrl+alt+b","Step Backwards","glyphicon-step-backward",ME).prop("id","dbg_stepback"),j.step&&Ft.add("ctrl+alt+s","Single Step","glyphicon-step-forward",AE).prop("id","dbg_step"),j.stepOver&&Ft.add("ctrl+alt+t","Step Over","glyphicon-hand-right",EE).prop("id","dbg_stepover"),j.runUntilReturn&&Ft.add("ctrl+alt+o","Step Out of Subroutine","glyphicon-hand-up",LE).prop("id","dbg_stepout"),j.runToVsync&&Ft.add("ctrl+alt+n","Next Frame/Interrupt","glyphicon-forward",zE).prop("id","dbg_tovsync"),(j.runEval||j.runToPC)&&!Ae.startsWith("verilog")&&Ft.add("ctrl+alt+l","Run To Line","glyphicon-save",jE).prop("id","dbg_toline"),Ft.newGroup(),Ft.grp.prop("id","xtra_bar"),$(".dropdown-menu").collapse({toggle:!1}),$("#item_new_file").click(xE),$("#item_upload_file").click(vE),$("#item_open_directory").click(yE),$("#item_github_login").click(KS),$("#item_github_logout").click(JS),$("#item_github_import").click(ey),$("#item_github_publish").click(ty),$("#item_github_push").click(iy),$("#item_github_pull").click(ry),$("#item_repo_delete").click(sy),$("#item_share_file").click(WS),$("#item_reset_file").click($E),$("#item_rename_file").click(kE),$("#item_delete_file").click(PE),j.runEval?$("#item_debug_expr").click(qE).show():$("#item_debug_expr").hide(),$("#item_download_rom").click(qS),$("#item_download_file").click(DS),$("#item_download_zip").click(NS),j.getDebugSymbolFile?$("#item_download_sym").click(FS):$("#item_download_sym").hide(),$("#item_download_allzip").click(BS),$("#item_record_video").click(GS),_p()?$("#item_export_cassette").click(VS):$("#item_export_cassette").hide(),j.setFrameRate&&j.getFrameRate&&($("#dbg_slower").click(NE),$("#dbg_faster").click(FE),$("#dbg_slowest").click(BE),$("#dbg_fastest").click(GE)),$("#item_addfile_include").click(e5),$("#item_addfile_link").click(t5),$("#item_request_persist").click(()=>Mg(!0,!1)),$("#item_settings").click(YS),$("#item_keyboard_shortcuts").click(r5),$("#item_asset_editor_help").click(n5),m1(),j.newCodeAnalyzer&&Ft.add(null,"Analyze CPU Timing","glyphicon-time",HE),j.startProbing&&Ft.add(null,"Highlight Executed Lines","glyphicon-fire",JE).prop("id","dbg_tracelines"),j.setRecorder&&j.advance&&s5(),j.showHelp){let{li:r,a:n}=Eg("help__"+Ae,Ug+" Help");$("#help_menu").append(r),$(n).click(()=>window.open(j.showHelp(),"_8bws_help"))}let i=j.getToolForFilename(ti()),e=i&&((t=Vo(i))==null?void 0:t.helpURL);if(e){let{li:r,a:n}=Eg("help__"+i,i+" Help");$("#help_menu").append(r),$(n).click(()=>window.open(e,"_8bws_help"))}}function r5(){let i=/Mac|iPhone|iPad/.test(navigator.platform),e=i?"&#8984;":"Ctrl",t=i?"&#8997;":"Alt",r=i?"&#8679;":"Shift",n=(s,o)=>`<tr><td><kbd>${s}</kbd></td><td>${o}</td></tr>`;bootbox.dialog({title:"Keyboard shortcuts",onEscape:!0,message:`
<table class="help">
<tr><th colspan="2">Custom</th></tr>
${n(`${r}+${t}+F`,"Format document, or selected range(s)")}
@@ -103,7 +103,7 @@ PC `+this.addr2str(s)+" "+this.opToString(c,null,S),o[P]=1)}),this.addr2str(r)+n
<a target="_blank" href="https://codemirror.net/docs/ref/#search.searchKeymap">searchKeymap</a>
</td>
</tr>
</table>`,buttons:{ok:{label:"OK",className:"btn-primary"}}})}function DE(){let i=(e,t,r)=>`<tr><td><code>${e}</code></td><td>${t}</td><td>${r}</td></tr>`;bootbox.dialog({title:"Asset Editor Reference",onEscape:!0,message:`
</table>`,buttons:{ok:{label:"OK",className:"btn-primary"}}})}function n5(){let i=(e,t,r)=>`<tr><td><code>${e}</code></td><td>${t}</td><td>${r}</td></tr>`;bootbox.dialog({title:"Asset Editor Reference",onEscape:!0,message:`
<p>Add asset headers in source code as comments containing JSON format descriptors:</p>
<p>
C: <code>/*{w:8,h:8}*/</code> followed by data, terminated by <code>;</code><br>
@@ -142,7 +142,7 @@ PC `+this.addr2str(s)+" "+this.opToString(c,null,S),o[P]=1)}),this.addr2str(r)+n
<tr><td colspan="2"><code>;;{w:8,h:8,art:true};;</code></td><td>8x8 with artifact color (Apple II HGR, bit 7 toggle)</td></tr>
<tr><td colspan="2"><code>/*{w:16,h:16,bpp:4,np:1}*/</code></td><td>16x16 4bpp</td></tr>
<tr><td colspan="2"><code>/*{pal:332,n:16}*/</code></td><td>16-entry RGB332 palette</pre></td></tr>
</table>`,buttons:{ok:{label:"OK",className:"btn-primary"}},size:"large"})}function IE(){var i=$("#replayslider"),e=$("#clockslider"),t=$("#replay_frame"),r=$("#replay_clock");j.advanceFrameClock||$("#clockdiv").hide();var n=()=>{t.text(Wi.lastSeekFrame+""),r.text(Wi.lastSeekStep+"")},s=l=>{Rs();var c=parseInt(i.val().toString()),f=parseInt(e.val().toString());Wi.loadFrame(c,f)>=0&&(e.attr("min",0),e.attr("max",Wi.lastStepCount),n(),uu(j.saveState()))},o=l=>{Rs(),Wi.loadFrame(l)>=0&&(i.val(l),n(),uu(j.saveState()))},a=l=>{Rs();var c=parseInt(i.val().toString());Wi.loadFrame(c,l)>=0&&(e.val(l),n(),uu(j.saveState()))};Wi.callbackStateChanged=()=>{i.attr("min",0),i.attr("max",Wi.numFrames()),i.val(Wi.currentFrame()),e.val(Wi.currentStep()),n(),lc(j.saveState())},i.on("input",s),e.on("input",s),$("#replay_min").click(()=>{o(1)}),$("#replay_max").click(()=>{o(Wi.numFrames())}),$("#replay_back").click(()=>{o(parseInt(i.val().toString())-1)}),$("#replay_fwd").click(()=>{o(parseInt(i.val().toString())+1)}),$("#clock_back").click(()=>{a(parseInt(e.val().toString())-1)}),$("#clock_fwd").click(()=>{a(parseInt(e.val().toString())+1)}),$("#replay_bar").show(),It.add("ctrl+alt+0","Start/Stop Replay Recording","glyphicon-record",jE).prop("id","dbg_record")}function NE(){try{var i=window.screen.orientation||window.screen.msOrientation||window.screen.mozOrientation||null;if(i){if(i.type.indexOf("landscape")!==-1)return!0;if(i.type.indexOf("portrait")!==-1)return!1}if("orientation"in window){var e=window.orientation;if(e===0||e===180)return!1;if(e===90||e===270)return!0}}catch(t){}return window.innerWidth>window.innerHeight}async function GE(){if(Ro.shouldCompleteTour()){await gr("lib/bootstrap-tourist.js");var i=Ae.startsWith("vcs"),e=[{element:"#platformsMenuButton",placement:"right",title:"Platform Selector",content:`You're currently on the "<b>`+Ae+'</b>" platform. You can choose a different one from the menu.'},{element:"#preset_select",title:"Project Selector",content:"You can choose different code examples, create your own files, or import projects from GitHub."},{element:"#workspace",title:"Code Editor",content:i?"Type your 6502 assembly code into the editor, and it'll be assembled in real-time.":"Type your source code into the editor, and it'll be compiled in real-time."},{element:"#emulator",placement:"left",title:"Emulator",content:"We'll load your compiled code into the emulator whenever you make changes."},{element:"#debug_bar",placement:"bottom",title:"Debug Tools",content:"Use these buttons to set breakpoints, single step through code, pause/resume, and use debugging tools."},{element:"#dropdownMenuButton",title:"Main Menu",content:"Click the menu to create new files, download your code, or share your work with others."},{element:"#sidebar",title:"Sidebar",content:"Pull right to expose the sidebar. It lets you switch between source files, view assembly listings, and use other tools like Disassembler, Memory Browser, and Asset Editor."}];NE()||e.unshift({element:"#controls_top",placement:"bottom",title:"Portrait mode detected",content:"This site works best on desktop browsers. For best results, rotate your device to landscape orientation."}),window.location.host.endsWith("8bitworkshop.com")&&(e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Cookie Consent",content:'Before we start, we should tell you that this website stores cookies and other data in your browser. You can review our <a href="/privacy.html" target="_new">privacy policy</a>.'}),e.push({element:"#booksMenuButton",placement:"left",title:"Books",content:"Get some books that explain how to program all of this stuff, and write some games!"})),ac&&(e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Developer Analytics",content:"BTW, we send stack traces to sentry.io when exceptions are thrown. Hope that's ok."}),e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Welcome to 8bitworkshop Desktop!",content:'The directory "~/8bitworkshop" contains all of your file edits and built ROM images. You can create new projects under the platform directories (e.g. "c64/myproject")'}));var t=new Tour({autoscroll:!1,steps:e,onEnd:()=>{Ro.completedTour()}});setTimeout(()=>{t.start()},2500)}}function du(i){var e=(i.message||i.error||i)+"";if(e.indexOf("QuotaExceededError")>=0)Ag(!1,!1);else{var t=i.error||i.reason;t!=null&&t instanceof zu&&BE(t)}}function BE(i){console.log("haltEmulation"),Rs(),f5(i)}function FE(){window.addEventListener("error",du),window.addEventListener("unhandledrejection",du)}function c1(){window.removeEventListener("error",du),window.removeEventListener("unhandledrejection",du)}function mo(i,e){e&&(Te=e),c1(),i?window.location.replace("?"+$.param(Te)):window.location.href="?"+$.param(Te)}function gu(){Ae&&(Te.platform=Ae),delete Te[""],history.replaceState({},"","?"+$.param(Te)+window.location.hash)}function h1(i){if(!i||i==="#")return null;var e=decodeURIComponent(i.substring(1));return e.startLine truncated
</table>`,buttons:{ok:{label:"OK",className:"btn-primary"}},size:"large"})}function s5(){var i=$("#replayslider"),e=$("#clockslider"),t=$("#replay_frame"),r=$("#replay_clock");j.advanceFrameClock||$("#clockdiv").hide();var n=()=>{t.text(Vi.lastSeekFrame+""),r.text(Vi.lastSeekStep+"")},s=l=>{Zs();var c=parseInt(i.val().toString()),f=parseInt(e.val().toString());Vi.loadFrame(c,f)>=0&&(e.attr("min",0),e.attr("max",Vi.lastStepCount),n(),mu(j.saveState()))},o=l=>{Zs(),Vi.loadFrame(l)>=0&&(i.val(l),n(),mu(j.saveState()))},a=l=>{Zs();var c=parseInt(i.val().toString());Vi.loadFrame(c,l)>=0&&(e.val(l),n(),mu(j.saveState()))};Vi.callbackStateChanged=()=>{i.attr("min",0),i.attr("max",Vi.numFrames()),i.val(Vi.currentFrame()),e.val(Vi.currentStep()),n(),uc(j.saveState())},i.on("input",s),e.on("input",s),$("#replay_min").click(()=>{o(1)}),$("#replay_max").click(()=>{o(Vi.numFrames())}),$("#replay_back").click(()=>{o(parseInt(i.val().toString())-1)}),$("#replay_fwd").click(()=>{o(parseInt(i.val().toString())+1)}),$("#clock_back").click(()=>{a(parseInt(e.val().toString())-1)}),$("#clock_fwd").click(()=>{a(parseInt(e.val().toString())+1)}),$("#replay_bar").show(),Ft.add("ctrl+alt+0","Start/Stop Replay Recording","glyphicon-record",KE).prop("id","dbg_record")}function o5(){try{var i=window.screen.orientation||window.screen.msOrientation||window.screen.mozOrientation||null;if(i){if(i.type.indexOf("landscape")!==-1)return!0;if(i.type.indexOf("portrait")!==-1)return!1}if("orientation"in window){var e=window.orientation;if(e===0||e===180)return!1;if(e===90||e===270)return!0}}catch(t){}return window.innerWidth>window.innerHeight}async function a5(){if(Zo.shouldCompleteTour()){await xr("lib/bootstrap-tourist.js");var i=Ae.startsWith("vcs"),e=[{element:"#platformsMenuButton",placement:"right",title:"Platform Selector",content:`You're currently on the "<b>`+Ae+'</b>" platform. You can choose a different one from the menu.'},{element:"#preset_select",title:"Project Selector",content:"You can choose different code examples, create your own files, or import projects from GitHub."},{element:"#workspace",title:"Code Editor",content:i?"Type your 6502 assembly code into the editor, and it'll be assembled in real-time.":"Type your source code into the editor, and it'll be compiled in real-time."},{element:"#emulator",placement:"left",title:"Emulator",content:"We'll load your compiled code into the emulator whenever you make changes."},{element:"#debug_bar",placement:"bottom",title:"Debug Tools",content:"Use these buttons to set breakpoints, single step through code, pause/resume, and use debugging tools."},{element:"#dropdownMenuButton",title:"Main Menu",content:"Click the menu to create new files, download your code, or share your work with others."},{element:"#sidebar",title:"Sidebar",content:"Pull right to expose the sidebar. It lets you switch between source files, view assembly listings, and use other tools like Disassembler, Memory Browser, and Asset Editor."}];o5()||e.unshift({element:"#controls_top",placement:"bottom",title:"Portrait mode detected",content:"This site works best on desktop browsers. For best results, rotate your device to landscape orientation."}),window.location.host.endsWith("8bitworkshop.com")&&(e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Cookie Consent",content:'Before we start, we should tell you that this website stores cookies and other data in your browser. You can review our <a href="/privacy.html" target="_new">privacy policy</a>.'}),e.push({element:"#booksMenuButton",placement:"left",title:"Books",content:"Get some books that explain how to program all of this stuff, and write some games!"})),fc&&(e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Developer Analytics",content:"BTW, we send stack traces to sentry.io when exceptions are thrown. Hope that's ok."}),e.unshift({element:"#dropdownMenuButton",placement:"right",title:"Welcome to 8bitworkshop Desktop!",content:'The directory "~/8bitworkshop" contains all of your file edits and built ROM images. You can create new projects under the platform directories (e.g. "c64/myproject")'}));var t=new Tour({autoscroll:!1,steps:e,onEnd:()=>{Zo.completedTour()}});setTimeout(()=>{t.start()},2500)}}function bu(i){var e=(i.message||i.error||i)+"";if(e.indexOf("QuotaExceededError")>=0)Mg(!1,!1);else{var t=i.error||i.reason;t!=null&&t instanceof Mu&&l5(t)}}function l5(i){console.log("haltEmulation"),Zs(),w5(i)}function c5(){window.addEventListener("error",bu),window.addEventListener("unhandledrejection",bu)}function x1(){window.removeEventListener("error",bu),window.removeEventListener("unhandledrejection",bu)}function bo(i,e){e&&(Te=e),x1(),i?window.location.replace("?"+$.param(Te)):window.location.href="?"+$.param(Te)}function Su(){Ae&&(Te.platform=Ae),delete Te[""],history.replaceState({},"","?"+$.param(Te)+window.location.hash)}function v1(i){if(!i||i==="#")return null;var e=decodeURIComponent(i.substring(1));return e.startLine truncated
/*! Bundled license information:
localforage/dist/localforage.js:
@@ -168,4 +168,4 @@ jquery/dist/jquery.js:
dompurify/dist/purify.cjs.js:
(*! @license DOMPurify 3.4.13 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.13/LICENSE *)
*/
//# sourceMappingURL=chunk-KP2LCIGE.js.map
//# sourceMappingURL=chunk-LXSSE5FC.js.map
+7
View File
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../node_modules/localforage/dist/localforage.js", "../node_modules/jquery/dist/jquery.js", "../node_modules/dompurify/src/utils.ts", "../node_modules/dompurify/src/tags.ts", "../node_modules/dompurify/src/attrs.ts", "../node_modules/dompurify/src/regexp.ts", "../node_modules/dompurify/src/purify.ts", "../src/ide/ui.ts", "../src/common/toolmeta.ts", "../src/ide/dialogs.ts", "../node_modules/@marijn/find-cluster-break/src/index.js", "../node_modules/@codemirror/state/dist/index.js", "../node_modules/style-mod/src/style-mod.js", "../node_modules/w3c-keyname/index.js", "../node_modules/crelt/index.js", "../node_modules/@codemirror/view/dist/index.js", "../node_modules/@lezer/common/dist/index.js", "../node_modules/@lezer/highlight/dist/index.js", "../node_modules/@codemirror/language/dist/index.js", "../node_modules/@codemirror/autocomplete/dist/index.js", "../src/ide/views/debug.ts", "../node_modules/@codemirror/commands/dist/index.js", "../src/ide/views/tabs.ts", "../src/ide/settings.ts", "../src/ide/project.ts", "../src/common/workertypes.ts", "../src/ide/services.ts", "../src/common/audio/CommodoreTape.ts", "../src/ide/shareexport.ts", "../src/ide/sync.ts", "../src/ide/pixeleditor.ts", "../src/ide/views/baseviews.ts", "../src/ide/views/asseteditor.ts", "../src/common/vtextscroller.ts", "../src/ide/views/debugviews.ts", "../node_modules/@lezer/lr/dist/index.js", "../node_modules/@lezer/cpp/dist/index.js", "../node_modules/@codemirror/lang-cpp/dist/index.js", "../node_modules/@lezer/markdown/dist/index.js", "../node_modules/@lezer/html/dist/index.js", "../node_modules/@lezer/css/dist/index.js", "../node_modules/@codemirror/lang-css/dist/index.js", "../node_modules/@lezer/javascript/dist/index.js", "../node_modules/@codemirror/lang-javascript/dist/index.js", "../node_modules/@codemirror/lang-html/dist/index.js", "../node_modules/@codemirror/lang-markdown/dist/index.js", "../node_modules/@codemirror/search/dist/index.js", "../src/parser/tokens-6502.ts", "parser/lang-6502.grammar.js", "../src/parser/lang-6502.ts", "../src/parser/lang-basic.ts", "../src/parser/lang-bataribasic.ts", "../src/parser/lang-dialog.ts", "../src/parser/lang-fastbasic.ts", "../src/parser/lang-inform6.ts", "../src/parser/lang-verilog.ts", "../src/parser/lang-wiz.ts", "../src/parser/tokens-z80.ts", "parser/lang-z80.grammar.js", "../src/parser/lang-z80.ts", "../src/themes/cobalt.ts", "../src/themes/disassemblyTheme.ts", "../src/themes/editorTheme.ts", "../src/themes/mbo.ts", "../src/ide/views/assetdecorations.ts", "../src/ide/views/filters.ts", "../src/ide/views/gutter.ts", "../src/ide/views/visuals.ts", "../src/ide/views/editors.ts", "../src/ide/views/treeviews.ts", "../src/ide/windows.ts"],
"sourcesContent": ["/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callLine truncated
"mappings": "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 truncated
"names": ["require_localforage", "__commonJSMin", "exports", "module", "f", "g", "define", "e", "t", "n", "r", "s", "o", "u", "a", "__require", "i", "l", "_dereq_", "global", "Mutation", "scheduleDrain", "called", "observer", "nextTick", "element", "channel", "scriptEl", "draining", "queue", "oldQueue", "len", "immediate", "task", "INTERNAL", "handlers", "REJECTED", "FULFILLED", "PENDING", "Promise", "resolver", "safelyResolveThenable", "onRejected", "onFulfilled", "promise", "unwrap", "QueueItem", "value", "func", "returnValue", "self", "result", "tryCatch", "getThen", "thenable", "error", "obj", "then", "onError", "onSuccess", "tryToUnwrap", "out", "resolve", "reject", "reason", "all", "iterable", "values", "resolved", "allResolver", "resolveFromAll", "outValue", "race", "response", "_typeof", "_classCallCheck", "instance", "Constructor", "getIDB", "idb", "isIndexedDBValid", "isSafari", "hasFetch", "createBlob", "parts", "properties", "Builder", "builder", "Promise$1", "executeCallback", "callback", "executeTwoCallbacks", "errorCallback", "normalizeKey", "key", "getCallback", "DETECT_BLOB_SUPPORT_STORE", "supportsBlobs", "dbContexts", "toString", "READ_ONLY", "READ_WRITE", "_binStringToArrayBuffer", "bin", "length", "buf", "arr", "_checkBlobSupportWithoutCaching", "txn", "blob", "matchedChrome", "matchedEdge", "_checkBlobSupport", "_deferReadiness", "dbInfo", "dbContext", "deferredOperation", "_advanceReadiness", "_rejectReadiness", "err", "_getConnection", "upgradeNeeded", "createDbContext", "dbArgs", "openreq", "db", "ex", "_getOriginalConnection", "_getUpgradedConnection", "_isUpgradeNeeded", "defaultVersion", "isNewStore", "isDowngrade", "isUpgrade", "incVersion", "_encodeBlob", "reader", "base64", "_decodeBlob", "encodedBlob", "arrayBuff", "_isEncodedBlob", "_fullyReady", "_tryReconnect", "forages", "forage", "createTransaction", "mode", "retries", "tx", "_initStorage", "options", "initPromises", "ignoreErrors", "j", "k", "getItem", "transaction", "store", "req", "iterate", "iterator", "iterationNumber", "cursor", "setItem", "blobSupport", "removeItem", "clear", "advanced", "keys", "dropInstance", "currentConfig", "isCurrentDb", "dbPromise", "newVersion", "dropObjectPromise", "_forage2", "dropDBPromise", "_forage", "asyncStorage", "isWebSQLValid", "BASE_CHARS", "BLOB_TYPE_PREFIX", "BLOB_TYPE_PREFIX_REGEX", "SERIALIZED_MARKER", "SERIALIZED_MARKER_LENGTH", "TYPE_ARRAYBUFFER", "TYPE_BLOB", "TYPE_INT8ARRAY", "TYPE_UINT8ARRAY", "TYPE_UINT8CLAMPEDARRAY", "TYPE_INT16ARRAY", "TYPE_INT32ARRAY", "TYPE_UINT16ARRAY", "TYPE_UINT32ARRAY", "TYPE_FLOAT32ARRAY", "TYPE_FLOAT64ARRAY", "TYPE_SERIALIZED_MARKER_LENGTH", "toString$1", "stringToBuffer", "serializedString", "bufferLength", "p", "encoded1", "encoded2", "encoded3", "encoded4", "buffer", "bytes", "bufferToString", "base64String", "serialize", "valueType", "marker", "fileReader", "str", "deserialize", "type", "blobType", "matcher", "localforageSerializer", "createDbTable", "_initStorage$1", "dbInfoPromise", "tryExecuteSql", "sqlStatement", "args", "results", "getItem$1", "iterate$1", "rows", "item", "_setItem", "retriesLeft", "originalValue", "sqlError", "setItem$1", "removeItem$1", "clear$1", "length$1", "key$1", "keys$1", "getAllStoreNames", "storeNames", "dropInstance$1", "operationInfo", "dropTable", "storeName", "operations", "webSQLStorage", "isLocalStorageValid", "_getKeyPrefix", "defaultConfig", "keyPrefix", "checkIfLocalStorageThrows", "localStorageTestKey", "_isLocalStorageUsable", "_initStorage$2", "clear$2", "getItem$2", "iterate$2", "keyPrefixLength", "key$2", "keys$2", "itemKey", "length$2", "removeItem$2", "setItem$2", "dropInstance$2", "localStorageWrapper", "sameValue", "x", "y", "includes", "array", "searchElement", "isArray", "arg", "DefinedDrivers", "DriverSupport", "DefaultDrivers", "DefaultDriverOrder", "OptionalDriverMethods", "LibraryMethods", "DefaultConfig", "callWhenReady", "localForageInstance", "libraryMethod", "_args", "extend", "_key", "LocalForage", "driverTypeKey", "driver", "driverName", "driverObject", "complianceError", "driverMethods", "driverMethodName", "isRequired", "configureMissingMethods", "methodNotImplementedFactory", "methodName", "_i", "_len", "optionalDriverMethod", "setDriverSupport", "support", "getDriverPromise", "serializerPromise", "drivers", "supportedDrivers", "setDriverToConfig", "extendSelfWithDriver", "initDriver", "currentDriverIndex", "driverPromiseLoop", "oldDriverSetDone", "libraryMethodsAndProperties", "localforage_js", "require_jquery", "__commonJSMin", "exports", "module", "global", "factory", "w", "window", "noGlobal", "arr", "getProto", "slice", "flat", "array", "push", "indexOf", "class2type", "toString", "hasOwn", "fnToString", "ObjectFunctionString", "support", "isFunction", "obj", "isWindow", "document", "preservedScriptAttributes", "DOMEval", "code", "node", "doc", "i", "val", "script", "toType", "version", "rhtmlSuffix", "jQuery", "selector", "context", "num", "elems", "ret", "callback",Line truncated
}
+531
View File
@@ -0,0 +1,531 @@
"use strict";
/*
* Tool metadata registry.
*
* Single source of truth for declarative (data-only) metadata about every
* build tool, keyed by tool id. Both the IDE (src/ide) and the worker
* (src/worker) import this module.
*
* What lives here:
* - extension -> tool selection hints
* - editor (CodeMirror) styles and help URLs (was TOOL_TO_SOURCE_STYLE/HELPURL in src/ide/ui.ts)
* - preload filesystem names per platform (was TOOL_PRELOADFS in src/worker/workertools.ts)
* - wasm module names (was loadNative() args in src/worker/tools/*.ts)
* - include/link dependency patterns (was parseIncludeDependencies in src/ide/project.ts)
* - remote/server tool config (was ServerBuildTool in src/worker/server/buildenv.ts)
*
* What stays OUT of this module (behavior cannot cross the worker boundary):
* - build functions (src/worker/workertools.ts `TOOLS` map)
* - error matchers, listing parsers (src/worker/tools/*.ts)
* - machine layout params (code_start, rom_size, ... -> src/worker/platforms.ts PLATFORM_PARAMS)
*
* A unit test cross-checks that every id in TOOL_META has a worker build fn
* (unless noWorkerBuild) and vice versa.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.TOOL_META = exports.DIALOG_INCLUDE_PATTERNS = exports.ECS_INCLUDE_PATTERNS = exports.WIZ_INCLUDE_PATTERNS = exports.ACME_INCLUDE_PATTERNS = exports.USE_ASM_INCLUDE_PATTERNS = exports.VERILOG_INCLUDE_PATTERNS = exports.SHARED_LINK_PATTERNS = exports.SHARED_INCLUDE_PATTERNS = void 0;
exports.getToolMeta = getToolMeta;
exports.getToolMetaForFilename = getToolMetaForFilename;
exports.getPreloadFSName = getPreloadFSName;
exports.getSkeletonName = getSkeletonName;
exports.getIncludePatterns = getIncludePatterns;
exports.getLinkPatterns = getLinkPatterns;
exports.matchDependencyPatterns = matchDependencyPatterns;
//// shared dependency-parsing patterns (from src/ide/project.ts)
// C / most assemblers: [.#%]?include|incbin|embed "file", //#resource "file"
exports.SHARED_INCLUDE_PATTERNS = [
/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi,
/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm,
];
// C / most assemblers: //#link "file" (or ;link)
exports.SHARED_LINK_PATTERNS = [
/^\s*([;]|[/][/])#link\s+"(.+?)"/gm,
];
// Verilog family: `include/.include, $include/$dofile/$write_image_in_table,
// .arch json, $readmem[bh]
exports.VERILOG_INCLUDE_PATTERNS = [
/^\s*(`include|[.]include)\s+"(.+?)"/gmi,
/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi,
{ re: /^\s*([.]arch)\s+(\w+)/gmi, suffix: '.json' },
/\$readmem[bh]\("(.+?)"/gmi,
];
// xasm6809 (USE) and merlin32 (ASM): " USE file.ext"
exports.USE_ASM_INCLUDE_PATTERNS = [
/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm,
];
// acme: !src "file"
exports.ACME_INCLUDE_PATTERNS = [
/^[!]src\s+"(.+?)"/gmi,
];
// wiz: import "file"; (implicit .wiz extension) / embed "file";
exports.WIZ_INCLUDE_PATTERNS = [
{ re: /^\s*import\s*"(.+?)";/gmi, suffix: '.wiz' },
/^\s*embed\s*"(.+?)";/gmi,
];
// ecs: import "file"
exports.ECS_INCLUDE_PATTERNS = [
/^\s*(import)\s*"(.+?)"/gmi,
];
// dialog: %% #include "file" (comment directive)
exports.DIALOG_INCLUDE_PATTERNS = [
/^\s*%%\s*#include\s+"(.+?)"/gm,
];
//// preload filesystem names per tool/platform (was TOOL_PRELOADFS)
const CC65_PRELOADFS = {
'apple2': { preloadFS: '65-apple2' },
'c64': { preloadFS: '65-c64' },
'vic20': { preloadFS: '65-vic20' },
'nes': { preloadFS: '65-nes' },
'atari8': { preloadFS: '65-atari8' },
'vector': { preloadFS: '65-none' },
'atari7800': { preloadFS: '65-none' },
'devel': { preloadFS: '65-none' },
'vcs': { preloadFS: '65-atari2600' },
'pce': { preloadFS: '65-pce' },
'exidy': { preloadFS: '65-none' },
};
//// tool registry
exports.TOOL_META = {
// ---- 6502 assemblers ----
dasm: {
id: 'dasm', name: 'DASM', kind: 'assembler', arch: '6502',
extensions: ['.dasm'],
editorStyle: '6502',
helpURL: 'https://raw.githubusercontent.com/sehugg/dasm/master/doc/dasm.txt',
wasmModule: 'dasm',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
acme: {
id: 'acme', name: 'ACME', kind: 'assembler', arch: '6502',
extensions: ['.acme'],
editorStyle: '6502',
helpURL: 'https://raw.githubusercontent.com/sehugg/acme/main/docs/QuickRef.txt',
wasmModule: 'acme',
includePatterns: [...exports.SHARED_INCLUDE_PATTERNS, ...exports.ACME_INCLUDE_PATTERNS],
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
xa: {
id: 'xa', name: 'XA', kind: 'assembler', arch: '6502',
extensions: ['.xa'],
editorStyle: '6502',
helpURL: 'https://www.floodgap.com/retrotech/xa/',
wasmModule: 'xa',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
nesasm: {
id: 'nesasm', name: 'NESASM', kind: 'assembler', arch: '6502',
extensions: ['.nesasm'],
editorStyle: '6502',
wasmModule: 'nesasm',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
merlin32: {
id: 'merlin32', name: 'Merlin 32', kind: 'assembler', arch: '6502',
extensions: ['.lnk'],
editorStyle: '6502',
wasmModule: 'merlin32',
includePatterns: [...exports.SHARED_INCLUDE_PATTERNS, ...exports.USE_ASM_INCLUDE_PATTERNS],
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
// ---- cc65 toolchain ----
cc65: {
id: 'cc65', name: 'cc65', kind: 'compiler', arch: '6502',
extensions: ['.c', '.h'],
editorStyle: 'text/x-csrc',
helpURL: 'https://cc65.github.io/doc/cc65.html',
wasmModule: 'cc65',
platforms: CC65_PRELOADFS,
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
ca65: {
id: 'ca65', name: 'ca65', kind: 'assembler', arch: '6502',
extensions: ['.s', '.ca65'],
editorStyle: '6502',
helpURL: 'https://cc65.github.io/doc/ca65.html',
wasmModule: 'ca65',
platforms: CC65_PRELOADFS,
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
ld65: {
id: 'ld65', name: 'ld65', kind: 'linker', arch: '6502',
extensions: [],
wasmModule: 'ld65',
},
// ---- SDCC toolchain (z80) ----
sdcc: {
id: 'sdcc', name: 'SDCC', kind: 'compiler', arch: 'z80',
extensions: ['.c', '.h'],
editorStyle: 'text/x-csrc',
helpURL: 'http://sdcc.sourceforge.net/doc/sdccman.pdf',
wasmModule: 'sdcc',
platforms: { default: { preloadFS: 'sdcc' } },
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
sdasz80: {
id: 'sdasz80', name: 'sdasz80', kind: 'assembler', arch: 'z80',
extensions: ['.s'],
editorStyle: 'z80',
wasmModule: 'sdasz80',
platforms: { default: { preloadFS: 'sdcc' } },
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
sdasgb: {
id: 'sdasgb', name: 'sdasgb', kind: 'assembler', arch: 'gbz80',
extensions: ['.sgb'],
editorStyle: 'z80',
wasmModule: 'sdasgb',
platforms: { default: { preloadFS: 'sdcc' } },
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
sdldz80: {
id: 'sdldz80', name: 'sdldz80', kind: 'linker', arch: 'z80',
extensions: [],
wasmModule: 'sdldz80',
},
sccz80: {
id: 'sccz80', name: 'sccz80', kind: 'compiler', arch: 'z80',
extensions: ['.scc'],
platforms: { default: { preloadFS: 'sccz80' } },
noWorkerBuild: true,
},
naken: {
id: 'naken', name: 'Naken', kind: 'assembler',
extensions: ['.ns'],
noWorkerBuild: true,
},
// ---- z80 assemblers ----
zmac: {
id: 'zmac', name: 'zmac', kind: 'assembler', arch: 'z80',
extensions: ['.z'],
editorStyle: 'z80',
helpURL: 'https://raw.githubusercontent.com/sehugg/zmac/master/doc.txt',
wasmModule: 'zmac',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
jsasm: {
id: 'jsasm', name: 'JSASM', kind: 'assembler',
extensions: ['.asm'],
editorStyle: 'z80',
// pure JS assembler, no wasm module. Only used on the verilog platform,
// where .asm files pull in .v modules and name a CPU with '.arch'.
includePatterns: exports.VERILOG_INCLUDE_PATTERNS,
linkPatterns: [],
},
// ---- 6809 toolchain ----
xasm6809: {
id: 'xasm6809', name: 'XASM6809', kind: 'assembler', arch: '6809',
extensions: ['.xasm'],
editorStyle: '6809',
wasmModule: 'xasm6809',
includePatterns: [...exports.SHARED_INCLUDE_PATTERNS, ...exports.USE_ASM_INCLUDE_PATTERNS],
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
cmoc: {
id: 'cmoc', name: 'CMOC', kind: 'compiler', arch: '6809',
extensions: ['.c', '.h'],
editorStyle: 'text/x-csrc',
helpURL: 'http://perso.b2b2c.ca/~sarrazip/dev/cmoc.html',
wasmModule: 'cmoc',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
lwasm: {
id: 'lwasm', name: 'LWASM', kind: 'assembler', arch: '6809',
extensions: ['.lwasm'],
wasmModule: 'lwasm',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
lwlink: {
id: 'lwlink', name: 'LWLINK', kind: 'linker', arch: '6809',
extensions: [],
wasmModule: 'lwlink',
},
// ---- ARM ----
vasmarm: {
id: 'vasmarm', name: 'vasm (ARM)', kind: 'assembler', arch: 'arm32',
extensions: ['.vasm'],
editorStyle: 'vasm',
wasmModule: 'vasmarm_std',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
armips: {
id: 'armips', name: 'armips', kind: 'assembler', arch: 'arm32',
extensions: ['.armips'],
editorStyle: 'vasm',
wasmModule: 'armips',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
armtcc: {
id: 'armtcc', name: 'TCC (ARM)', kind: 'compiler', arch: 'arm32',
extensions: ['.c', '.s'],
editorStyle: 'text/x-csrc',
wasmModule: 'arm-tcc',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
armtcclink: {
id: 'armtcclink', name: 'TCC (ARM) link', kind: 'linker', arch: 'arm32',
extensions: [],
wasmModule: 'arm-tcc',
},
// ---- x86 ----
smlrc: {
id: 'smlrc', name: 'SmallerC', kind: 'compiler', arch: 'x86',
extensions: ['.c'],
editorStyle: 'text/x-csrc',
wasmModule: 'smlrc',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
yasm: {
id: 'yasm', name: 'YASM', kind: 'assembler', arch: 'x86',
extensions: ['.asm'],
editorStyle: 'gas',
wasmModule: 'yasm',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
// ---- 6502 C compilers / BASIC dialects ----
oscar64: {
id: 'oscar64', name: 'Oscar64', kind: 'compiler', arch: '6502',
extensions: ['.c', '.cpp', '.cc', '.o64'],
editorStyle: 'text/x-csrc',
helpURL: 'https://github.com/drmortalwombat/oscar64/blob/main/oscar64.md',
wasmModule: 'oscar64',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
bataribasic: {
id: 'bataribasic', name: 'batari Basic', kind: 'compiler', arch: '6502',
extensions: ['.bb', '.bas'],
editorStyle: 'bataribasic',
helpURL: 'help/bataribasic/manual.html',
wasmModule: 'bb2600basic',
platforms: { default: { preloadFS: '2600basic' } },
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
fastbasic: {
id: 'fastbasic', name: 'FastBasic', kind: 'compiler', arch: '6502',
extensions: ['.bas', '.fb', '.fbi'],
editorStyle: 'fastbasic',
helpURL: 'https://github.com/dmsc/fastbasic/blob/master/manual.md',
wasmModule: 'fastbasic-int',
platforms: { default: { preloadFS: '65-atari8' } },
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
cc2600: {
id: 'cc2600', name: 'CC2600', kind: 'compiler', arch: '6502',
extensions: ['.cc2600'],
editorStyle: 'text/x-csrc',
wasmModule: 'cc2600',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
cc7800: {
id: 'cc7800', name: 'CC7800', kind: 'compiler', arch: '6502',
extensions: ['.cc7800', '.c78'],
editorStyle: 'text/x-csrc',
wasmModule: 'cc7800',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
// ---- other languages ----
basic: {
id: 'basic', name: 'BASIC', kind: 'interpreter',
extensions: ['.bas'],
editorStyle: 'basic',
},
wiz: {
id: 'wiz', name: 'wiz', kind: 'compiler',
extensions: ['.wiz'],
editorStyle: 'text/x-wiz',
helpURL: 'https://github.com/wiz-lang/wiz/blob/master/readme.md#wiz',
wasmModule: 'wiz',
platforms: { default: { preloadFS: 'wiz' } },
includePatterns: exports.WIZ_INCLUDE_PATTERNS,
},
ecs: {
id: 'ecs', name: 'ECS', kind: 'assembler', arch: '6502',
extensions: ['.ecs'],
editorStyle: 'ecs',
platforms: {
vcs: { preloadFS: '65-atari2600' },
nes: { preloadFS: '65-nes' },
c64: { preloadFS: '65-c64' },
},
includePatterns: [...exports.SHARED_INCLUDE_PATTERNS, ...exports.ECS_INCLUDE_PATTERNS],
},
inform6: {
id: 'inform6', name: 'Inform 6', kind: 'compiler', arch: 'zmachine',
extensions: ['.inf'],
editorStyle: 'inform6',
wasmModule: 'inform',
platforms: { default: { preloadFS: 'inform' } },
},
dialog: {
id: 'dialog', name: 'Dialog', kind: 'compiler', arch: 'zmachine',
extensions: ['.dg'],
editorStyle: 'dialog',
helpURL: 'https://linusakesson.net/dialog/docs/',
wasmModule: 'dialogc',
includePatterns: exports.DIALOG_INCLUDE_PATTERNS,
},
// ---- verilog / HDL ----
verilator: {
id: 'verilator', name: 'Verilator', kind: 'hdl', arch: 'verilog',
extensions: ['.v'],
editorStyle: 'verilog',
helpURL: 'https://www.veripool.org/ftp/verilator_doc.pdf',
wasmModule: 'verilator_bin',
includePatterns: exports.VERILOG_INCLUDE_PATTERNS,
linkPatterns: [],
},
yosys: {
id: 'yosys', name: 'Yosys', kind: 'hdl', arch: 'verilog',
extensions: [],
wasmModule: 'yosys',
includePatterns: exports.VERILOG_INCLUDE_PATTERNS,
linkPatterns: [],
},
silice: {
id: 'silice', name: 'Silice', kind: 'hdl', arch: 'verilog',
extensions: ['.ice'],
editorStyle: 'verilog',
helpURL: 'https://github.com/sylefeb/Silice',
wasmModule: 'silice',
platforms: { default: { preloadFS: 'Silice' } },
includePatterns: exports.VERILOG_INCLUDE_PATTERNS,
linkPatterns: [],
},
// ---- remote / server ----
'llvm-mos': {
id: 'llvm-mos', name: 'LLVM-MOS', kind: 'compiler', arch: '6502',
extensions: ['.c', '.cpp', '.s', '.S', '.C'],
editorStyle: 'text/x-csrc', // used as 'remote:llvm-mos' in the IDE
helpURL: 'https://llvm-mos.org/wiki/Welcome',
remote: true,
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
server: {
version: 'latest',
platforms: ['atari8', 'c64', 'nes', 'pce', 'vcs'],
binpath: 'llvm-mos/bin',
command: 'mos-clang',
args: ['-Os', '-g', '-D', '__8BITWORKSHOP__', '-o', '$OUTFILE', '$INFILES'],
},
},
// TODO: do we need this too?
remote: {
id: 'remote', name: 'Remote build', kind: 'remote',
extensions: [],
remote: true,
},
};
//// helpers
/**
* Look up tool metadata by tool id. Tolerates the 'remote:' transport prefix
* used in build steps (e.g. 'remote:llvm-mos' -> 'llvm-mos').
*/
function getToolMeta(id) {
return exports.TOOL_META[id.replace(/^remote:/, '')];
}
/**
* Return all tools that consume the given filename (longest extension match
* first). Ambiguity is resolved by the platform, which picks from these.
*/
function getToolMetaForFilename(fn) {
let matches = [];
for (let id in exports.TOOL_META) {
let meta = exports.TOOL_META[id];
for (let ext of meta.extensions) {
if (ext && fn.endsWith(ext)) {
matches.push({ meta, len: ext.length });
break;
}
}
}
return matches.sort((a, b) => b.len - a.len).map(m => m.meta);
}
/**
* Resolve the preload filesystem name for a tool on a platform
* (was TOOL_PRELOADFS, including compound 'tool-platform' keys).
*/
function getPreloadFSName(tool, platform) {
let meta = getToolMeta(tool);
if (!meta)
return undefined;
if (meta.platforms) {
if (platform) {
let p = meta.platforms[platform];
if (p && p.preloadFS)
return p.preloadFS;
}
let d = meta.platforms['default'];
if (d && d.preloadFS)
return d.preloadFS;
}
return undefined;
}
/** Skeleton filename in presets/<platform>/, defaults to tool id. */
function getSkeletonName(tool) {
let meta = getToolMeta(tool);
return (meta && meta.skeleton) ? meta.skeleton : tool.replace(/^remote:/, '');
}
/**
* Include patterns to use when scanning a source file for dependencies.
* Falls back to the platform (verilog vs. everything else) when the tool is
* unknown or declares no patterns of its own, which is how dependency parsing
* worked before this registry. A tool that really has no include directives
* says so with an explicit empty list.
*/
function getIncludePatterns(tool, platform) {
let meta = tool && getToolMeta(tool);
if (meta && meta.includePatterns)
return meta.includePatterns;
if (platform && platform.startsWith('verilog'))
return exports.VERILOG_INCLUDE_PATTERNS;
return exports.SHARED_INCLUDE_PATTERNS;
}
/** Link patterns ("//#link") to use when scanning a source file. */
function getLinkPatterns(tool, platform) {
let meta = tool && getToolMeta(tool);
if (meta && meta.linkPatterns)
return meta.linkPatterns;
if (platform && platform.startsWith('verilog'))
return [];
return exports.SHARED_LINK_PATTERNS;
}
/**
* Run a set of include/link patterns over source text, returning the
* referenced filenames. The filename comes from the pattern's `group`, or
* from the last capture group if unspecified, plus any implicit `suffix`.
*/
function matchDependencyPatterns(text, patterns) {
let files = [];
for (let pat of patterns || []) {
let p = pat instanceof RegExp ? { re: pat } : pat;
let m;
p.re.lastIndex = 0; // patterns are shared and global, so rewind first
while (m = p.re.exec(text)) {
let fn = m[p.group != null ? p.group : m.length - 1];
if (fn)
files.push(p.suffix ? fn + p.suffix : fn);
}
}
return files;
}
//# sourceMappingURL=toolmeta.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"toolmeta.js","sourceRoot":"","sources":["../../src/common/toolmeta.ts"],"names":[],"mappings":"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 truncated
@@ -1,2 +1,2 @@
import{a as x}from"./chunk-3FIVEUG2.js";import{s as y}from"./chunk-KP2LCIGE.js";import"./chunk-7GWCUXYG.js";import"./chunk-LNOKARBD.js";import"./chunk-A7SWO6EA.js";import"./chunk-LVDMCWZP.js";import{I as m,m as c,p}from"./chunk-AA227H53.js";import{$ as a,C as d,J as f,n as h}from"./chunk-BNFOPPUS.js";import"./chunk-KT7KMEQC.js";var n=31,s=class extends p{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=32768;this.cpu=new c;this.ram=new Uint8Array(16384);this.read=a([[0,16383,16383,e=>this.ram[e]],[16384,16384,65535,e=>this.serial.byteAvailable()?128:0],[16385,16385,65535,e=>this.serial.recvByte()],[16386,16386,65535,e=>this.serial.clearToSend()?128:0],[32768,65535,32767,e=>this.rom&&this.rom[e]]]);this.write=a([[0,16383,16383,(e,r)=>{this.ram[e]=r}],[16387,16387,65535,(e,r)=>this.serial.sendByte(r)],[16399,16399,65535,(e,r)=>{this.inputs[n]=1}]]);this.connectCPUMemoryBus(this)}connectSerialIO(e){this.serial=e}readConst(e){return this.read(e)}advanceFrame(e){for(var r=0;r<this.cpuFrequency/60&&!(e&&e());)r+=this.advanceCPU();return r}advanceCPU(){if(this.isHalted())return 1;var e=super.advanceCPU();return this.serial&&this.serial.advance(e),e}reset(){this.inputs[n]=0,super.reset(),this.serial&&this.serial.reset()}isHalted(){return this.inputs[n]!=0}};var S=[{id:"hello.dasm",name:"Hello World (ASM)"}],l=class{constructor(t){t.style.overflowY="auto";var e=$('<div id="gameport"/>').appendTo(t);$('<p class="transcript-header">Serial Output</p>').appendTo(e);var r=$('<div id="windowport" class="transcript"/>').appendTo(e);this.div=r[0]}start(){this.tty=new x(this.div,!1)}reset(){this.tty.clear()}saveState(){return this.tty.saveState()}loadState(t){this.tty.loadState(t)}};function v(i){return i==10?"":i<32?String.fromCharCode(i+9216):String.fromCharCode(i)}var u=class{constructor(){this.bufferedRead=!0;this.cyclesPerByte=1e6/(57600/8);this.maxOutputBytes=4096}clearToSend(){return this.outputBytes.length<this.maxOutputBytes}sendByte(t){this.clearToSend()&&(this.outputBytes.push(t),this.viewer.tty.addtext(v(t),34),t==10&&this.viewer.tty.newline(),this.clearToSend()||(this.viewer.tty.newline(),this.viewer.tty.addtext("\u26A0\uFE0F OUTPUT BUFFER FULL \u26A0\uFE0F",4)))}byteAvailable(){return this.readIndex()>this.inputIndex}recvByte(){var t=this.readIndex();this.inputIndex=t;var e=(this.inputBytes&&this.inputBytes[t])|0;return this.viewer.tty.addtext(v(e),18),e==10&&this.viewer.tty.newline(),e}readIndex(){return this.bufferedRead?this.inputIndex+1:Math.floor(this.clk/this.cyclesPerByte)}reset(){this.inputIndex=-1,this.clk=0,this.outputBytes=[],this.bufin=""}advance(t){this.clk+=t}saveState(){return{clk:this.clk,idx:this.inputIndex,out:this.outputBytes.slice()}}loadState(t){this.clk=t.clk,this.inputIndex=t.idx,this.outputBytes=t.out.slice()}},o=class extends m{constructor(e){super(e);this.getMemoryMap=function(){return{main:[{name:"RAM",start:0,size:16384,type:"ram"},{name:"ROM",start:32768,size:32768,type:"rom"}]}};this.serview=new l(e)}async start(){super.start(),this.serial=new u,this.serial.viewer=this.serview,this.serview.start(),this.machine.connectSerialIO(this.serial)}reset(){this.serial.inputBytes=d(this.internalFiles["serialin.dat"]),super.reset(),this.serview.reset()}isBlocked(){return this.machine.isHalted()}advance(e){return this.isBlocked()?(this.internalFiles["serialout.dat"]=h(this.serial.outputBytes),y(),0):super.advance(e)}saveState(){var e=super.saveState();return e.serial=this.serial.saveState(),e.serview=this.serview.saveState(),e}loadState(e){super.loadState(e),this.serial.loadState(e.serial),this.serview.loadState(e.serview)}newMachine(){return new s}getPresets(){return S}readAddress(e){return this.machine.readConst(e)}};f["devel-6502"]=o;export{u as SerialTestHarness};
//# sourceMappingURL=devel-OVXJLQ7D.js.map
import{a as x}from"./chunk-3FIVEUG2.js";import{s as y}from"./chunk-LXSSE5FC.js";import"./chunk-7GWCUXYG.js";import"./chunk-LNOKARBD.js";import"./chunk-A7SWO6EA.js";import"./chunk-73C6ISBD.js";import{I as m,m as c,p}from"./chunk-AA227H53.js";import{$ as a,C as d,J as f,n as h}from"./chunk-BNFOPPUS.js";import"./chunk-KT7KMEQC.js";var n=31,s=class extends p{constructor(){super();this.cpuFrequency=1e6;this.defaultROMSize=32768;this.cpu=new c;this.ram=new Uint8Array(16384);this.read=a([[0,16383,16383,e=>this.ram[e]],[16384,16384,65535,e=>this.serial.byteAvailable()?128:0],[16385,16385,65535,e=>this.serial.recvByte()],[16386,16386,65535,e=>this.serial.clearToSend()?128:0],[32768,65535,32767,e=>this.rom&&this.rom[e]]]);this.write=a([[0,16383,16383,(e,r)=>{this.ram[e]=r}],[16387,16387,65535,(e,r)=>this.serial.sendByte(r)],[16399,16399,65535,(e,r)=>{this.inputs[n]=1}]]);this.connectCPUMemoryBus(this)}connectSerialIO(e){this.serial=e}readConst(e){return this.read(e)}advanceFrame(e){for(var r=0;r<this.cpuFrequency/60&&!(e&&e());)r+=this.advanceCPU();return r}advanceCPU(){if(this.isHalted())return 1;var e=super.advanceCPU();return this.serial&&this.serial.advance(e),e}reset(){this.inputs[n]=0,super.reset(),this.serial&&this.serial.reset()}isHalted(){return this.inputs[n]!=0}};var S=[{id:"hello.dasm",name:"Hello World (ASM)"}],l=class{constructor(t){t.style.overflowY="auto";var e=$('<div id="gameport"/>').appendTo(t);$('<p class="transcript-header">Serial Output</p>').appendTo(e);var r=$('<div id="windowport" class="transcript"/>').appendTo(e);this.div=r[0]}start(){this.tty=new x(this.div,!1)}reset(){this.tty.clear()}saveState(){return this.tty.saveState()}loadState(t){this.tty.loadState(t)}};function v(i){return i==10?"":i<32?String.fromCharCode(i+9216):String.fromCharCode(i)}var u=class{constructor(){this.bufferedRead=!0;this.cyclesPerByte=1e6/(57600/8);this.maxOutputBytes=4096}clearToSend(){return this.outputBytes.length<this.maxOutputBytes}sendByte(t){this.clearToSend()&&(this.outputBytes.push(t),this.viewer.tty.addtext(v(t),34),t==10&&this.viewer.tty.newline(),this.clearToSend()||(this.viewer.tty.newline(),this.viewer.tty.addtext("\u26A0\uFE0F OUTPUT BUFFER FULL \u26A0\uFE0F",4)))}byteAvailable(){return this.readIndex()>this.inputIndex}recvByte(){var t=this.readIndex();this.inputIndex=t;var e=(this.inputBytes&&this.inputBytes[t])|0;return this.viewer.tty.addtext(v(e),18),e==10&&this.viewer.tty.newline(),e}readIndex(){return this.bufferedRead?this.inputIndex+1:Math.floor(this.clk/this.cyclesPerByte)}reset(){this.inputIndex=-1,this.clk=0,this.outputBytes=[],this.bufin=""}advance(t){this.clk+=t}saveState(){return{clk:this.clk,idx:this.inputIndex,out:this.outputBytes.slice()}}loadState(t){this.clk=t.clk,this.inputIndex=t.idx,this.outputBytes=t.out.slice()}},o=class extends m{constructor(e){super(e);this.getMemoryMap=function(){return{main:[{name:"RAM",start:0,size:16384,type:"ram"},{name:"ROM",start:32768,size:32768,type:"rom"}]}};this.serview=new l(e)}async start(){super.start(),this.serial=new u,this.serial.viewer=this.serview,this.serview.start(),this.machine.connectSerialIO(this.serial)}reset(){this.serial.inputBytes=d(this.internalFiles["serialin.dat"]),super.reset(),this.serview.reset()}isBlocked(){return this.machine.isHalted()}advance(e){return this.isBlocked()?(this.internalFiles["serialout.dat"]=h(this.serial.outputBytes),y(),0):super.advance(e)}saveState(){var e=super.saveState();return e.serial=this.serial.saveState(),e.serview=this.serview.saveState(),e}loadState(e){super.loadState(e),this.serial.loadState(e.serial),this.serview.loadState(e.serview)}newMachine(){return new s}getPresets(){return S}readAddress(e){return this.machine.readConst(e)}};f["devel-6502"]=o;export{u as SerialTestHarness};
//# sourceMappingURL=devel-OIFON4XD.js.map
File renamed without changes.
+1 -1
View File
@@ -1,2 +1,2 @@
import{b as v,c as P}from"./chunk-LVDMCWZP.js";import{A as p,E as w,J as c,l as u,m,y as g}from"./chunk-BNFOPPUS.js";import{e as I}from"./chunk-KT7KMEQC.js";var k=I(P()),i,a,l,h=(function(e){if(!e||e.length==0)return{};for(var r={},t=0;t<e.length;++t){var o=e[t].split("=",2);o.length==1?r[o[0]]="":r[o[0]]=decodeURIComponent(o[1].replace(/\+/g," "))}return r})(window.location.search.substr(1).split("&"));function x(){typeof window.onerror=="object"&&(window.onerror=function(e,r,t,o,n){var s=e+" "+r+" "+t+":"+o+", "+n;$.get("/error?msg="+encodeURIComponent(s),"text")})}function M(){var e=!1;document.addEventListener("visibilitychange",function(r){document.visibilityState=="hidden"&&a.isRunning()?(a.pause(),e=!0):document.visibilityState=="visible"&&e&&(a.resume(),e=!1)}),$(window).on("focus",function(){e&&(a.resume(),e=!1)}),$(window).on("blur",function(){a.isRunning()&&(a.pause(),e=!0)})}async function y(e,r){if(!r){alert("No ROM found.");return}console.log(r.length+" bytes"),await a.loadROM(e,r),a.resume()}function R(){return $("#emulator").find("canvas")}function E(e,r,t){w("gif.js/dist/gif.js").then(()=>{var o=R()[0];if(!o){alert("Could not find canvas element to record video!");return}var n=0;o.style&&o.style.transform&&(o.style.transform.indexOf("rotate(-90deg)")>=0?n=-1:o.style.transform.indexOf("rotate(90deg)")>=0&&(n=1));var s=new GIF({workerScript:"gif.js/dist/gif.worker.js",workers:4,quality:10,rotate:n});s.on("finished",function(C){console.log("finished encoding GIF"),t(C)}),e=e||100+(Math.random()*256&3),r=r||100+(Math.random()*256&15);var f=0;console.log("Recording video",o);var d=()=>{f++>r?(console.log("Rendering video"),s.render()):(s.addFrame(o,{delay:e,copy:!0}),setTimeout(d,e))};d()})}async function S(e){if(!c[i])throw Error("Invalid platform '"+i+"'.");a=new c[i]($("#emuscreen")[0]),await a.start(),e.rec&&R().on("focus",()=>{a.resume()});var r=e.n||"Game",t,o=e.url,n=e.r;if(o)return console.log(o),g(o,f=>{y(r,f)},"arraybuffer"),!0;if(n){var s=m(atob(n));t=new u().decode(s)}return M(),y(r,t),!0}async function b(e){if(e.data&&(e=e.data),i=e.p,!i)throw new Error("No platform variable!");try{var r=await v(p(i));console.log("starting platform",i),await S(e)}catch(t){console.log(t),alert('Platform "'+i+'" not supported.')}}function F(){x(),h.p&&b(h)}window.addEventListener("message",O,!1);function O(e){if(e.data){var r=e.data.cmd;if(r=="start"&&!a)b(e);else if(r=="reset")a.reset(),l.reset();else if(r=="getReplay"){var t={frameCount:l.frameCount,checkpoints:l.checkpoints,framerecs:l.framerecs,checkpointInterval:l.checkpointInterval,maxCheckpoints:l.maxCheckpoints};e.source.postMessage({ack:r,replay:t},e.origin)}else if(r=="watchState"){var o=new Function("platform","state",e.data.fn);l.callbackNewCheckpoint=n=>{e.source.postMessage({ack:r,state:o(a,n)},e.origin)}}else r=="recordVideo"?E(e.data.intervalMsec,e.data.maxFrames,function(n){e.data.filename&&(0,k.saveAs)(n,e.data.filename),e.source.postMessage({ack:r,gif:n},e.origin)}):console.log("Unknown data.cmd: "+r)}}self===top&&(document.body.style.backgroundColor="#555");F();export{a as platform,i as platform_id,F as startEmbed,l as stateRecorder};
import{b as v,c as P}from"./chunk-73C6ISBD.js";import{A as p,E as w,J as c,l as u,m,y as g}from"./chunk-BNFOPPUS.js";import{e as I}from"./chunk-KT7KMEQC.js";var k=I(P()),i,a,l,h=(function(e){if(!e||e.length==0)return{};for(var r={},t=0;t<e.length;++t){var o=e[t].split("=",2);o.length==1?r[o[0]]="":r[o[0]]=decodeURIComponent(o[1].replace(/\+/g," "))}return r})(window.location.search.substr(1).split("&"));function x(){typeof window.onerror=="object"&&(window.onerror=function(e,r,t,o,n){var s=e+" "+r+" "+t+":"+o+", "+n;$.get("/error?msg="+encodeURIComponent(s),"text")})}function M(){var e=!1;document.addEventListener("visibilitychange",function(r){document.visibilityState=="hidden"&&a.isRunning()?(a.pause(),e=!0):document.visibilityState=="visible"&&e&&(a.resume(),e=!1)}),$(window).on("focus",function(){e&&(a.resume(),e=!1)}),$(window).on("blur",function(){a.isRunning()&&(a.pause(),e=!0)})}async function y(e,r){if(!r){alert("No ROM found.");return}console.log(r.length+" bytes"),await a.loadROM(e,r),a.resume()}function R(){return $("#emulator").find("canvas")}function E(e,r,t){w("gif.js/dist/gif.js").then(()=>{var o=R()[0];if(!o){alert("Could not find canvas element to record video!");return}var n=0;o.style&&o.style.transform&&(o.style.transform.indexOf("rotate(-90deg)")>=0?n=-1:o.style.transform.indexOf("rotate(90deg)")>=0&&(n=1));var s=new GIF({workerScript:"gif.js/dist/gif.worker.js",workers:4,quality:10,rotate:n});s.on("finished",function(C){console.log("finished encoding GIF"),t(C)}),e=e||100+(Math.random()*256&3),r=r||100+(Math.random()*256&15);var f=0;console.log("Recording video",o);var d=()=>{f++>r?(console.log("Rendering video"),s.render()):(s.addFrame(o,{delay:e,copy:!0}),setTimeout(d,e))};d()})}async function S(e){if(!c[i])throw Error("Invalid platform '"+i+"'.");a=new c[i]($("#emuscreen")[0]),await a.start(),e.rec&&R().on("focus",()=>{a.resume()});var r=e.n||"Game",t,o=e.url,n=e.r;if(o)return console.log(o),g(o,f=>{y(r,f)},"arraybuffer"),!0;if(n){var s=m(atob(n));t=new u().decode(s)}return M(),y(r,t),!0}async function b(e){if(e.data&&(e=e.data),i=e.p,!i)throw new Error("No platform variable!");try{var r=await v(p(i));console.log("starting platform",i),await S(e)}catch(t){console.log(t),alert('Platform "'+i+'" not supported.')}}function F(){x(),h.p&&b(h)}window.addEventListener("message",O,!1);function O(e){if(e.data){var r=e.data.cmd;if(r=="start"&&!a)b(e);else if(r=="reset")a.reset(),l.reset();else if(r=="getReplay"){var t={frameCount:l.frameCount,checkpoints:l.checkpoints,framerecs:l.framerecs,checkpointInterval:l.checkpointInterval,maxCheckpoints:l.maxCheckpoints};e.source.postMessage({ack:r,replay:t},e.origin)}else if(r=="watchState"){var o=new Function("platform","state",e.data.fn);l.callbackNewCheckpoint=n=>{e.source.postMessage({ack:r,state:o(a,n)},e.origin)}}else r=="recordVideo"?E(e.data.intervalMsec,e.data.maxFrames,function(n){e.data.filename&&(0,k.saveAs)(n,e.data.filename),e.source.postMessage({ack:r,gif:n},e.origin)}):console.log("Unknown data.cmd: "+r)}}self===top&&(document.body.style.backgroundColor="#555");F();export{a as platform,i as platform_id,F as startEmbed,l as stateRecorder};
//# sourceMappingURL=embedui.js.map
+9 -77
View File
@@ -7,6 +7,7 @@ exports.CodeProject = exports.LocalForageFilesystem = exports.OverlayFilesystem
exports.createNewPersistentStore = createNewPersistentStore;
const localforage_1 = __importDefault(require("localforage"));
const util_1 = require("../common/util");
const toolmeta_1 = require("../common/toolmeta");
const workertypes_1 = require("../common/workertypes");
class WebPresetsFileSystem {
constructor(platform_id) {
@@ -165,90 +166,21 @@ class CodeProject {
if (dir.length > 0 && dir != 'local') // TODO
files.push(dir + '/' + fn);
}
// TODO: use tool id to parse files, not platform
/** Patterns come from the tool registry (src/common/toolmeta.ts), keyed by
* the tool that builds the main file; the platform is only a fallback. */
parseIncludeDependencies(text) {
let tool = this.mainPath && this.getToolForFilename(this.mainPath);
let files = [];
let m;
if (this.platform_id.startsWith('verilog')) {
// include verilog includes
let re1 = /^\s*(`include|[.]include)\s+"(.+?)"/gmi;
while (m = re1.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// for Silice
let re1a = /^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi;
while (m = re1a.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// include .arch (json) statements
let re2 = /^\s*([.]arch)\s+(\w+)/gmi;
while (m = re2.exec(text)) {
this.pushAllFiles(files, m[2] + ".json");
}
// include $readmem[bh] (TODO)
let re3 = /\$readmem[bh]\("(.+?)"/gmi;
while (m = re3.exec(text)) {
this.pushAllFiles(files, m[1]);
}
}
else {
// for .asm -- [.%]include "file"
// for .c -- #include "file"
let re2 = /^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi;
while (m = re2.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// for .c -- //#resource "file" (or ;resource or #resource)
let re3 = /^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm;
while (m = re3.exec(text)) {
this.pushAllFiles(files, m[3]);
}
// for XASM only (USE include.ext)
// for merlin32 (ASM include.ext)
let re4 = /^\s+(USE|ASM)\s+(\S+[.]\S+)/gm;
while (m = re4.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// for wiz
let re5 = /^\s*(import|embed)\s*"(.+?)";/gmi;
while (m = re5.exec(text)) {
if (m[1] == 'import')
this.pushAllFiles(files, m[2] + ".wiz");
else
this.pushAllFiles(files, m[2]);
}
// for ecs
let re6 = /^\s*(import)\s*"(.+?)"/gmi;
while (m = re6.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// for acme
let re7 = /^[!]src\s+"(.+?)"/gmi;
while (m = re7.exec(text)) {
this.pushAllFiles(files, m[1]);
}
// for dialog -- %% #include "file" (dialog has no include directive,
// so the compiler is handed every file listed in a comment instead)
let re8 = /^\s*%%\s*#include\s+"(.+?)"/gm;
while (m = re8.exec(text)) {
this.pushAllFiles(files, m[1]);
}
// TODO: for xa assembler
for (let fn of (0, toolmeta_1.matchDependencyPatterns)(text, (0, toolmeta_1.getIncludePatterns)(tool, this.platform_id))) {
this.pushAllFiles(files, fn);
}
return files;
}
parseLinkDependencies(text) {
let tool = this.mainPath && this.getToolForFilename(this.mainPath);
let files = [];
let m;
if (this.platform_id.startsWith('verilog')) {
//
}
else {
// for .c -- //#link "file" (or ;link or #link)
let re = /^\s*([;]|[/][/])#link\s+"(.+?)"/gm;
while (m = re.exec(text)) {
this.pushAllFiles(files, m[2]);
}
for (let fn of (0, toolmeta_1.matchDependencyPatterns)(text, (0, toolmeta_1.getLinkPatterns)(tool, this.platform_id))) {
this.pushAllFiles(files, fn);
}
return files;
}
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/ide/project.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/ide/project.ts"],"names":[],"mappings":"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 truncated
+8 -61
View File
@@ -60,6 +60,7 @@ const baseplatform_1 = require("../common/baseplatform");
const emu_1 = require("../common/emu");
const recorder_1 = require("../common/recorder");
const util_1 = require("../common/util");
const toolmeta_1 = require("../common/toolmeta");
const _index_1 = require("../platform/_index");
const dialogs_1 = require("./dialogs");
const settings_1 = require("./settings");
@@ -110,63 +111,7 @@ function getCurrentOutput() {
function getWorkerParams() {
return compparams;
}
// TODO: codemirror multiplex support?
// TODO: move to views.ts?
const TOOL_TO_SOURCE_STYLE = {
'dasm': '6502',
'acme': '6502',
'xa': '6502',
'cc65': 'text/x-csrc',
'ca65': '6502',
'nesasm': '6502',
'z80asm': 'z80',
'sdasz80': 'z80',
'sdasgb': 'z80',
'sdcc': 'text/x-csrc',
'verilator': 'verilog',
'jsasm': 'z80',
'zmac': 'z80',
'bataribasic': 'bataribasic',
'markdown': 'markdown',
'js': 'javascript',
'xasm6809': '6809',
'cmoc': 'text/x-csrc',
'yasm': 'gas',
'smlrc': 'text/x-csrc',
'inform6': 'inform6',
'dialog': 'dialog',
'fastbasic': 'fastbasic',
'basic': 'basic',
'silice': 'verilog',
'wiz': 'text/x-wiz',
'vasmarm': 'vasm',
'armips': 'vasm',
'ecs': 'ecs',
'remote:llvm-mos': 'text/x-csrc',
'cc2600': 'text/x-csrc',
'cc7800': 'text/x-csrc',
'armtcc': 'text/x-csrc',
'oscar64': 'text/x-csrc',
};
// TODO: move into tool class
const TOOL_TO_HELPURL = {
'dasm': 'https://raw.githubusercontent.com/sehugg/dasm/master/doc/dasm.txt',
'cc65': 'https://cc65.github.io/doc/cc65.html',
'ca65': 'https://cc65.github.io/doc/ca65.html',
'sdcc': 'http://sdcc.sourceforge.net/doc/sdccman.pdf',
'verilator': 'https://www.veripool.org/ftp/verilator_doc.pdf',
'fastbasic': 'https://github.com/dmsc/fastbasic/blob/master/manual.md',
'bataribasic': "help/bataribasic/manual.html",
'wiz': "https://github.com/wiz-lang/wiz/blob/master/readme.md#wiz",
'silice': "https://github.com/sylefeb/Silice",
'zmac': "https://raw.githubusercontent.com/sehugg/zmac/master/doc.txt",
'cmoc': "http://perso.b2b2c.ca/~sarrazip/dev/cmoc.html",
'remote:llvm-mos': 'https://llvm-mos.org/wiki/Welcome',
'acme': 'https://raw.githubusercontent.com/sehugg/acme/main/docs/QuickRef.txt',
'xa': 'https://www.floodgap.com/retrotech/xa/',
'dialog': 'https://linusakesson.net/dialog/docs/',
'oscar64': 'https://github.com/drmortalwombat/oscar64/blob/main/oscar64.md',
};
// editor styles and help URLs live in the tool registry (src/common/toolmeta.ts)
function newWorker() {
// TODO: return new Worker("https://8bitworkshop.com.s3-website-us-east-1.amazonaws.com/dev/gen/worker/bundle.js");
return new Worker("./gen/worker/bundle.js");
@@ -331,12 +276,13 @@ function refreshWindowList() {
}
}
function loadEditor(path) {
var _a;
var tool = exports.platform.getToolForFilename(path);
// hack because .h files can be DASM or CC65
if (tool == 'dasm' && path.endsWith(".h") && getCurrentMainFilename().endsWith(".c")) {
tool = 'cc65';
}
var mode = tool && TOOL_TO_SOURCE_STYLE[tool];
var mode = tool && ((_a = (0, toolmeta_1.getToolMeta)(tool)) === null || _a === void 0 ? void 0 : _a.editorStyle);
return new editors_1.SourceEditor(path, mode);
}
function addEditorItem(id) {
@@ -505,7 +451,7 @@ function reloadProject(id) {
gotoNewLocation();
}
async function getSkeletonFile(fileid) {
var ext = exports.platform.getToolForFilename(fileid).replace(/^remote:/, "");
var ext = (0, toolmeta_1.getSkeletonName)(exports.platform.getToolForFilename(fileid));
try {
return await $.get("presets/" + (0, util_1.getBasePlatform)(exports.platform_id) + "/skeleton." + ext, 'text');
}
@@ -536,7 +482,7 @@ async function _getToolsWithSkeletons(extensions) {
}
// check each tool in parallel
var checks = toolOrder.map(tool => $.ajax({
url: "presets/" + basePlatform + "/skeleton." + tool,
url: "presets/" + basePlatform + "/skeleton." + (0, toolmeta_1.getSkeletonName)(tool),
type: "HEAD"
}).then(() => tool, () => null));
var validTools = await Promise.all(checks);
@@ -1480,6 +1426,7 @@ function _addLinkFile() {
(0, dialogs_1.alertError)("Can't add linked file to this project type (" + tool + ")");
}
function setupDebugControls() {
var _a;
// create toolbar buttons
uitoolbar = new toolbar_1.Toolbar($("#toolbar")[0], null);
uitoolbar.grp.prop('id', 'run_bar');
@@ -1581,7 +1528,7 @@ function setupDebugControls() {
}
// tool help
let tool = exports.platform.getToolForFilename(getCurrentMainFilename());
let toolhelpurl = TOOL_TO_HELPURL[tool];
let toolhelpurl = tool && ((_a = (0, toolmeta_1.getToolMeta)(tool)) === null || _a === void 0 ? void 0 : _a.helpURL);
if (toolhelpurl) {
let { li, a } = newDropdownListItem('help__' + tool, tool + ' Help');
$("#help_menu").append(li);
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/ide/ui.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/ide/ui.ts"],"names":[],"mappings":"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 truncated
-2
View File
@@ -1,2 +0,0 @@
import{J as r}from"./chunk-BNFOPPUS.js";import"./chunk-KT7KMEQC.js";var t=class{constructor(e){this.mainElement=e,this.iframe=$('<iframe sandbox="allow-same-origin" width="100%" height="100%"/>').appendTo(e)[0],this.iframe.style.backgroundColor="white",e.classList.add("vertical-scroll"),e.style.overflowY="auto"}start(){}reset(){}pause(){}resume(){}loadROM(e,s){$(this.iframe).contents().find("body").html(s)}isRunning(){return!1}isDebugging(){return!1}getToolForFilename(e){return"markdown"}getDefaultExtensions(){return[".md"]}getPresets(){return[{id:"hello.md",name:"Hello"}]}showHelp(){return"https://github.com/showdownjs/showdown/wiki/Showdown's-Markdown-syntax"}};r.markdown=t;
//# sourceMappingURL=markdown-6K4JYWE2.js.map
-7
View File
@@ -1,7 +0,0 @@
{
"version": 3,
"sources": ["../src/platform/markdown.ts"],
"sourcesContent": ["\nimport { PLATFORMS } from \"../common/emu\";\nimport { Platform } from \"../common/baseplatform\";\n\nclass MarkdownPlatform implements Platform {\n mainElement : HTMLElement;\n iframe : HTMLIFrameElement;\n\n constructor(mainElement:HTMLElement) {\n this.mainElement = mainElement;\n this.iframe = $('<iframe sandbox=\"allow-same-origin\" width=\"100%\" height=\"100%\"/>').appendTo(mainElement)[0] as HTMLIFrameElement;\n this.iframe.style.backgroundColor = 'white';\n mainElement.classList.add(\"vertical-scroll\"); //100% height\n mainElement.style.overflowY = 'auto';\n }\n start() {\n }\n reset() {\n }\n pause() {\n }\n resume() {\n }\n loadROM(title, data:string) {\n $(this.iframe).contents().find('body').html(data);\n }\n isRunning() {\n return false;\n }\n isDebugging() : boolean {\n return false;\n }\n getToolForFilename(fn : string) : string {\n return \"markdown\";\n }\n getDefaultExtensions() {\n return [\".md\"];\n }\n getPresets() {\n return [\n {id:'hello.md', name:'Hello'},\n ];\n }\n showHelp() {\n return \"https://github.com/showdownjs/showdown/wiki/Showdown's-Markdown-syntax\";\n }\n}\n\nPLATFORMS['markdown'] = MarkdownPlatform;\n"],
"mappings": "oEAIA,IAAMA,EAAN,KAA2C,CAIzC,YAAYC,EAAyB,CACnC,KAAK,YAAcA,EACnB,KAAK,OAAS,EAAE,kEAAkE,EAAE,SAASA,CAAW,EAAE,CAAC,EAC3G,KAAK,OAAO,MAAM,gBAAkB,QACpCA,EAAY,UAAU,IAAI,iBAAiB,EAC3CA,EAAY,MAAM,UAAY,MAChC,CACA,OAAQ,CACR,CACA,OAAQ,CACR,CACA,OAAQ,CACR,CACA,QAAS,CACT,CACA,QAAQC,EAAOC,EAAa,CAC1B,EAAE,KAAK,MAAM,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,KAAKA,CAAI,CAClD,CACA,WAAY,CACV,MAAO,EACT,CACA,aAAwB,CACtB,MAAO,EACT,CACA,mBAAmBC,EAAsB,CACvC,MAAO,UACT,CACA,sBAAuB,CACrB,MAAO,CAAC,KAAK,CACf,CACA,YAAa,CACX,MAAO,CACL,CAAC,GAAG,WAAY,KAAK,OAAO,CAC9B,CACF,CACA,UAAW,CACT,MAAO,wEACT,CACF,EAEAC,EAAU,SAAcL",
"names": ["MarkdownPlatform", "mainElement", "title", "data", "fn", "PLATFORMS"]
}
-1
View File
@@ -53,7 +53,6 @@ function importPlatform(name) {
case "gb": return Promise.resolve().then(() => __importStar(require("../platform/gb")));
case "gameboy": return Promise.resolve().then(() => __importStar(require("../platform/gb")));
case "kim1": return Promise.resolve().then(() => __importStar(require("../platform/kim1")));
case "markdown": return Promise.resolve().then(() => __importStar(require("../platform/markdown")));
case "mcr": return Promise.resolve().then(() => __importStar(require("../platform/mcr")));
case "msx": return Promise.resolve().then(() => __importStar(require("../platform/msx")));
case "mw8080bw": return Promise.resolve().then(() => __importStar(require("../platform/mw8080bw")));
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"_index.js","sourceRoot":"","sources":["../../src/platform/_index.ts"],"names":[],"mappings":";AAAA,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtD,wCAwCG;AAxCH,SAAgB,cAAc,CAAC,IAAY;IACvC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,WAAW,CAAC,CAAC,yDAAc,uBAAuB,IAAE;QACzD,KAAK,WAAW,CAAC,CAAC,yDAAc,uBAAuB,IAAE;QACzD,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,IAAI,CAAC,CAAC,yDAAc,gBAAgB,IAAE;QAC3C,KAAK,SAAS,CAAC,CAAC,yDAAc,gBAAgB,IAAE;QAChD,KAAK,MAAM,CAAC,CAAC,yDAAc,kBAAkB,IAAE;QAC/C,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,cAAc,CAAC,CAAC,yDAAc,0BAA0B,IAAE;QAC/D,KAAK,gBAAgB,CAAC,CAAC,yDAAc,4BAA4B,IAAE;QACnE,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,SAAS,CAAC,CAAC,yDAAc,qBAAqB,IAAE;QACrD,KAAK,SAAS,CAAC,CAAC,yDAAc,qBAAqB,IAAE;QACrD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,SAAS,CAAC,CAAC,yDAAc,qBAAqB,IAAE;QACrD,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,IAAI,CAAC,CAAC,yDAAc,gBAAgB,IAAE;QAC3C,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,GAAG,CAAC,CAAA;IAChE,CAAC;AACH,CAAC"}
{"version":3,"file":"_index.js","sourceRoot":"","sources":["../../src/platform/_index.ts"],"names":[],"mappings":";AAAA,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtD,wCAuCG;AAvCH,SAAgB,cAAc,CAAC,IAAY;IACvC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,WAAW,CAAC,CAAC,yDAAc,uBAAuB,IAAE;QACzD,KAAK,WAAW,CAAC,CAAC,yDAAc,uBAAuB,IAAE;QACzD,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,IAAI,CAAC,CAAC,yDAAc,gBAAgB,IAAE;QAC3C,KAAK,SAAS,CAAC,CAAC,yDAAc,gBAAgB,IAAE;QAChD,KAAK,MAAM,CAAC,CAAC,yDAAc,kBAAkB,IAAE;QAC/C,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,cAAc,CAAC,CAAC,yDAAc,0BAA0B,IAAE;QAC/D,KAAK,gBAAgB,CAAC,CAAC,yDAAc,4BAA4B,IAAE;QACnE,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,SAAS,CAAC,CAAC,yDAAc,qBAAqB,IAAE;QACrD,KAAK,SAAS,CAAC,CAAC,yDAAc,qBAAqB,IAAE;QACrD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,SAAS,CAAC,CAAC,yDAAc,qBAAqB,IAAE;QACrD,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,IAAI,CAAC,CAAC,yDAAc,gBAAgB,IAAE;QAC3C,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,GAAG,CAAC,CAAA;IAChE,CAAC;AACH,CAAC"}
-45
View File
@@ -1,45 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const emu_1 = require("../common/emu");
class MarkdownPlatform {
constructor(mainElement) {
this.mainElement = mainElement;
this.iframe = $('<iframe sandbox="allow-same-origin" width="100%" height="100%"/>').appendTo(mainElement)[0];
this.iframe.style.backgroundColor = 'white';
mainElement.classList.add("vertical-scroll"); //100% height
mainElement.style.overflowY = 'auto';
}
start() {
}
reset() {
}
pause() {
}
resume() {
}
loadROM(title, data) {
$(this.iframe).contents().find('body').html(data);
}
isRunning() {
return false;
}
isDebugging() {
return false;
}
getToolForFilename(fn) {
return "markdown";
}
getDefaultExtensions() {
return [".md"];
}
getPresets() {
return [
{ id: 'hello.md', name: 'Hello' },
];
}
showHelp() {
return "https://github.com/showdownjs/showdown/wiki/Showdown's-Markdown-syntax";
}
}
emu_1.PLATFORMS['markdown'] = MarkdownPlatform;
//# sourceMappingURL=markdown.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/platform/markdown.ts"],"names":[],"mappings":";;AACA,uCAA0C;AAG1C,MAAM,gBAAgB;IAIpB,YAAY,WAAuB;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,kEAAkE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAsB,CAAC;QAClI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC;QAC5C,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa;QAC3D,WAAW,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IACvC,CAAC;IACD,KAAK;IACL,CAAC;IACD,KAAK;IACL,CAAC;IACD,KAAK;IACL,CAAC;IACD,MAAM;IACN,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,IAAW;QACxB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IACD,SAAS;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,WAAW;QACT,OAAO,KAAK,CAAC;IACf,CAAC;IACD,kBAAkB,CAAC,EAAW;QAC5B,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,oBAAoB;QAClB,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IACD,UAAU;QACR,OAAO;YACL,EAAC,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,OAAO,EAAC;SAC9B,CAAC;IACJ,CAAC;IACD,QAAQ;QACN,OAAO,wEAAwE,CAAC;IAClF,CAAC;CACF;AAED,eAAS,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC"}
+531
View File
@@ -0,0 +1,531 @@
"use strict";
/*
* Tool metadata registry.
*
* Single source of truth for declarative (data-only) metadata about every
* build tool, keyed by tool id. Both the IDE (src/ide) and the worker
* (src/worker) import this module.
*
* What lives here:
* - extension -> tool selection hints
* - editor (CodeMirror) styles and help URLs (was TOOL_TO_SOURCE_STYLE/HELPURL in src/ide/ui.ts)
* - preload filesystem names per platform (was TOOL_PRELOADFS in src/worker/workertools.ts)
* - wasm module names (was loadNative() args in src/worker/tools/*.ts)
* - include/link dependency patterns (was parseIncludeDependencies in src/ide/project.ts)
* - remote/server tool config (was ServerBuildTool in src/worker/server/buildenv.ts)
*
* What stays OUT of this module (behavior cannot cross the worker boundary):
* - build functions (src/worker/workertools.ts `TOOLS` map)
* - error matchers, listing parsers (src/worker/tools/*.ts)
* - machine layout params (code_start, rom_size, ... -> src/worker/platforms.ts PLATFORM_PARAMS)
*
* A unit test cross-checks that every id in TOOL_META has a worker build fn
* (unless noWorkerBuild) and vice versa.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.TOOL_META = exports.DIALOG_INCLUDE_PATTERNS = exports.ECS_INCLUDE_PATTERNS = exports.WIZ_INCLUDE_PATTERNS = exports.ACME_INCLUDE_PATTERNS = exports.USE_ASM_INCLUDE_PATTERNS = exports.VERILOG_INCLUDE_PATTERNS = exports.SHARED_LINK_PATTERNS = exports.SHARED_INCLUDE_PATTERNS = void 0;
exports.getToolMeta = getToolMeta;
exports.getToolMetaForFilename = getToolMetaForFilename;
exports.getPreloadFSName = getPreloadFSName;
exports.getSkeletonName = getSkeletonName;
exports.getIncludePatterns = getIncludePatterns;
exports.getLinkPatterns = getLinkPatterns;
exports.matchDependencyPatterns = matchDependencyPatterns;
//// shared dependency-parsing patterns (from src/ide/project.ts)
// C / most assemblers: [.#%]?include|incbin|embed "file", //#resource "file"
exports.SHARED_INCLUDE_PATTERNS = [
/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi,
/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm,
];
// C / most assemblers: //#link "file" (or ;link)
exports.SHARED_LINK_PATTERNS = [
/^\s*([;]|[/][/])#link\s+"(.+?)"/gm,
];
// Verilog family: `include/.include, $include/$dofile/$write_image_in_table,
// .arch json, $readmem[bh]
exports.VERILOG_INCLUDE_PATTERNS = [
/^\s*(`include|[.]include)\s+"(.+?)"/gmi,
/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi,
{ re: /^\s*([.]arch)\s+(\w+)/gmi, suffix: '.json' },
/\$readmem[bh]\("(.+?)"/gmi,
];
// xasm6809 (USE) and merlin32 (ASM): " USE file.ext"
exports.USE_ASM_INCLUDE_PATTERNS = [
/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm,
];
// acme: !src "file"
exports.ACME_INCLUDE_PATTERNS = [
/^[!]src\s+"(.+?)"/gmi,
];
// wiz: import "file"; (implicit .wiz extension) / embed "file";
exports.WIZ_INCLUDE_PATTERNS = [
{ re: /^\s*import\s*"(.+?)";/gmi, suffix: '.wiz' },
/^\s*embed\s*"(.+?)";/gmi,
];
// ecs: import "file"
exports.ECS_INCLUDE_PATTERNS = [
/^\s*(import)\s*"(.+?)"/gmi,
];
// dialog: %% #include "file" (comment directive)
exports.DIALOG_INCLUDE_PATTERNS = [
/^\s*%%\s*#include\s+"(.+?)"/gm,
];
//// preload filesystem names per tool/platform (was TOOL_PRELOADFS)
const CC65_PRELOADFS = {
'apple2': { preloadFS: '65-apple2' },
'c64': { preloadFS: '65-c64' },
'vic20': { preloadFS: '65-vic20' },
'nes': { preloadFS: '65-nes' },
'atari8': { preloadFS: '65-atari8' },
'vector': { preloadFS: '65-none' },
'atari7800': { preloadFS: '65-none' },
'devel': { preloadFS: '65-none' },
'vcs': { preloadFS: '65-atari2600' },
'pce': { preloadFS: '65-pce' },
'exidy': { preloadFS: '65-none' },
};
//// tool registry
exports.TOOL_META = {
// ---- 6502 assemblers ----
dasm: {
id: 'dasm', name: 'DASM', kind: 'assembler', arch: '6502',
extensions: ['.dasm'],
editorStyle: '6502',
helpURL: 'https://raw.githubusercontent.com/sehugg/dasm/master/doc/dasm.txt',
wasmModule: 'dasm',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
acme: {
id: 'acme', name: 'ACME', kind: 'assembler', arch: '6502',
extensions: ['.acme'],
editorStyle: '6502',
helpURL: 'https://raw.githubusercontent.com/sehugg/acme/main/docs/QuickRef.txt',
wasmModule: 'acme',
includePatterns: [...exports.SHARED_INCLUDE_PATTERNS, ...exports.ACME_INCLUDE_PATTERNS],
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
xa: {
id: 'xa', name: 'XA', kind: 'assembler', arch: '6502',
extensions: ['.xa'],
editorStyle: '6502',
helpURL: 'https://www.floodgap.com/retrotech/xa/',
wasmModule: 'xa',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
nesasm: {
id: 'nesasm', name: 'NESASM', kind: 'assembler', arch: '6502',
extensions: ['.nesasm'],
editorStyle: '6502',
wasmModule: 'nesasm',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
merlin32: {
id: 'merlin32', name: 'Merlin 32', kind: 'assembler', arch: '6502',
extensions: ['.lnk'],
editorStyle: '6502',
wasmModule: 'merlin32',
includePatterns: [...exports.SHARED_INCLUDE_PATTERNS, ...exports.USE_ASM_INCLUDE_PATTERNS],
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
// ---- cc65 toolchain ----
cc65: {
id: 'cc65', name: 'cc65', kind: 'compiler', arch: '6502',
extensions: ['.c', '.h'],
editorStyle: 'text/x-csrc',
helpURL: 'https://cc65.github.io/doc/cc65.html',
wasmModule: 'cc65',
platforms: CC65_PRELOADFS,
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
ca65: {
id: 'ca65', name: 'ca65', kind: 'assembler', arch: '6502',
extensions: ['.s', '.ca65'],
editorStyle: '6502',
helpURL: 'https://cc65.github.io/doc/ca65.html',
wasmModule: 'ca65',
platforms: CC65_PRELOADFS,
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
ld65: {
id: 'ld65', name: 'ld65', kind: 'linker', arch: '6502',
extensions: [],
wasmModule: 'ld65',
},
// ---- SDCC toolchain (z80) ----
sdcc: {
id: 'sdcc', name: 'SDCC', kind: 'compiler', arch: 'z80',
extensions: ['.c', '.h'],
editorStyle: 'text/x-csrc',
helpURL: 'http://sdcc.sourceforge.net/doc/sdccman.pdf',
wasmModule: 'sdcc',
platforms: { default: { preloadFS: 'sdcc' } },
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
sdasz80: {
id: 'sdasz80', name: 'sdasz80', kind: 'assembler', arch: 'z80',
extensions: ['.s'],
editorStyle: 'z80',
wasmModule: 'sdasz80',
platforms: { default: { preloadFS: 'sdcc' } },
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
sdasgb: {
id: 'sdasgb', name: 'sdasgb', kind: 'assembler', arch: 'gbz80',
extensions: ['.sgb'],
editorStyle: 'z80',
wasmModule: 'sdasgb',
platforms: { default: { preloadFS: 'sdcc' } },
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
sdldz80: {
id: 'sdldz80', name: 'sdldz80', kind: 'linker', arch: 'z80',
extensions: [],
wasmModule: 'sdldz80',
},
sccz80: {
id: 'sccz80', name: 'sccz80', kind: 'compiler', arch: 'z80',
extensions: ['.scc'],
platforms: { default: { preloadFS: 'sccz80' } },
noWorkerBuild: true,
},
naken: {
id: 'naken', name: 'Naken', kind: 'assembler',
extensions: ['.ns'],
noWorkerBuild: true,
},
// ---- z80 assemblers ----
zmac: {
id: 'zmac', name: 'zmac', kind: 'assembler', arch: 'z80',
extensions: ['.z'],
editorStyle: 'z80',
helpURL: 'https://raw.githubusercontent.com/sehugg/zmac/master/doc.txt',
wasmModule: 'zmac',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
jsasm: {
id: 'jsasm', name: 'JSASM', kind: 'assembler',
extensions: ['.asm'],
editorStyle: 'z80',
// pure JS assembler, no wasm module. Only used on the verilog platform,
// where .asm files pull in .v modules and name a CPU with '.arch'.
includePatterns: exports.VERILOG_INCLUDE_PATTERNS,
linkPatterns: [],
},
// ---- 6809 toolchain ----
xasm6809: {
id: 'xasm6809', name: 'XASM6809', kind: 'assembler', arch: '6809',
extensions: ['.xasm'],
editorStyle: '6809',
wasmModule: 'xasm6809',
includePatterns: [...exports.SHARED_INCLUDE_PATTERNS, ...exports.USE_ASM_INCLUDE_PATTERNS],
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
cmoc: {
id: 'cmoc', name: 'CMOC', kind: 'compiler', arch: '6809',
extensions: ['.c', '.h'],
editorStyle: 'text/x-csrc',
helpURL: 'http://perso.b2b2c.ca/~sarrazip/dev/cmoc.html',
wasmModule: 'cmoc',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
lwasm: {
id: 'lwasm', name: 'LWASM', kind: 'assembler', arch: '6809',
extensions: ['.lwasm'],
wasmModule: 'lwasm',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
lwlink: {
id: 'lwlink', name: 'LWLINK', kind: 'linker', arch: '6809',
extensions: [],
wasmModule: 'lwlink',
},
// ---- ARM ----
vasmarm: {
id: 'vasmarm', name: 'vasm (ARM)', kind: 'assembler', arch: 'arm32',
extensions: ['.vasm'],
editorStyle: 'vasm',
wasmModule: 'vasmarm_std',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
armips: {
id: 'armips', name: 'armips', kind: 'assembler', arch: 'arm32',
extensions: ['.armips'],
editorStyle: 'vasm',
wasmModule: 'armips',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
armtcc: {
id: 'armtcc', name: 'TCC (ARM)', kind: 'compiler', arch: 'arm32',
extensions: ['.c', '.s'],
editorStyle: 'text/x-csrc',
wasmModule: 'arm-tcc',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
armtcclink: {
id: 'armtcclink', name: 'TCC (ARM) link', kind: 'linker', arch: 'arm32',
extensions: [],
wasmModule: 'arm-tcc',
},
// ---- x86 ----
smlrc: {
id: 'smlrc', name: 'SmallerC', kind: 'compiler', arch: 'x86',
extensions: ['.c'],
editorStyle: 'text/x-csrc',
wasmModule: 'smlrc',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
yasm: {
id: 'yasm', name: 'YASM', kind: 'assembler', arch: 'x86',
extensions: ['.asm'],
editorStyle: 'gas',
wasmModule: 'yasm',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
// ---- 6502 C compilers / BASIC dialects ----
oscar64: {
id: 'oscar64', name: 'Oscar64', kind: 'compiler', arch: '6502',
extensions: ['.c', '.cpp', '.cc', '.o64'],
editorStyle: 'text/x-csrc',
helpURL: 'https://github.com/drmortalwombat/oscar64/blob/main/oscar64.md',
wasmModule: 'oscar64',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
bataribasic: {
id: 'bataribasic', name: 'batari Basic', kind: 'compiler', arch: '6502',
extensions: ['.bb', '.bas'],
editorStyle: 'bataribasic',
helpURL: 'help/bataribasic/manual.html',
wasmModule: 'bb2600basic',
platforms: { default: { preloadFS: '2600basic' } },
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
fastbasic: {
id: 'fastbasic', name: 'FastBasic', kind: 'compiler', arch: '6502',
extensions: ['.bas', '.fb', '.fbi'],
editorStyle: 'fastbasic',
helpURL: 'https://github.com/dmsc/fastbasic/blob/master/manual.md',
wasmModule: 'fastbasic-int',
platforms: { default: { preloadFS: '65-atari8' } },
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
cc2600: {
id: 'cc2600', name: 'CC2600', kind: 'compiler', arch: '6502',
extensions: ['.cc2600'],
editorStyle: 'text/x-csrc',
wasmModule: 'cc2600',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
cc7800: {
id: 'cc7800', name: 'CC7800', kind: 'compiler', arch: '6502',
extensions: ['.cc7800', '.c78'],
editorStyle: 'text/x-csrc',
wasmModule: 'cc7800',
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
},
// ---- other languages ----
basic: {
id: 'basic', name: 'BASIC', kind: 'interpreter',
extensions: ['.bas'],
editorStyle: 'basic',
},
wiz: {
id: 'wiz', name: 'wiz', kind: 'compiler',
extensions: ['.wiz'],
editorStyle: 'text/x-wiz',
helpURL: 'https://github.com/wiz-lang/wiz/blob/master/readme.md#wiz',
wasmModule: 'wiz',
platforms: { default: { preloadFS: 'wiz' } },
includePatterns: exports.WIZ_INCLUDE_PATTERNS,
},
ecs: {
id: 'ecs', name: 'ECS', kind: 'assembler', arch: '6502',
extensions: ['.ecs'],
editorStyle: 'ecs',
platforms: {
vcs: { preloadFS: '65-atari2600' },
nes: { preloadFS: '65-nes' },
c64: { preloadFS: '65-c64' },
},
includePatterns: [...exports.SHARED_INCLUDE_PATTERNS, ...exports.ECS_INCLUDE_PATTERNS],
},
inform6: {
id: 'inform6', name: 'Inform 6', kind: 'compiler', arch: 'zmachine',
extensions: ['.inf'],
editorStyle: 'inform6',
wasmModule: 'inform',
platforms: { default: { preloadFS: 'inform' } },
},
dialog: {
id: 'dialog', name: 'Dialog', kind: 'compiler', arch: 'zmachine',
extensions: ['.dg'],
editorStyle: 'dialog',
helpURL: 'https://linusakesson.net/dialog/docs/',
wasmModule: 'dialogc',
includePatterns: exports.DIALOG_INCLUDE_PATTERNS,
},
// ---- verilog / HDL ----
verilator: {
id: 'verilator', name: 'Verilator', kind: 'hdl', arch: 'verilog',
extensions: ['.v'],
editorStyle: 'verilog',
helpURL: 'https://www.veripool.org/ftp/verilator_doc.pdf',
wasmModule: 'verilator_bin',
includePatterns: exports.VERILOG_INCLUDE_PATTERNS,
linkPatterns: [],
},
yosys: {
id: 'yosys', name: 'Yosys', kind: 'hdl', arch: 'verilog',
extensions: [],
wasmModule: 'yosys',
includePatterns: exports.VERILOG_INCLUDE_PATTERNS,
linkPatterns: [],
},
silice: {
id: 'silice', name: 'Silice', kind: 'hdl', arch: 'verilog',
extensions: ['.ice'],
editorStyle: 'verilog',
helpURL: 'https://github.com/sylefeb/Silice',
wasmModule: 'silice',
platforms: { default: { preloadFS: 'Silice' } },
includePatterns: exports.VERILOG_INCLUDE_PATTERNS,
linkPatterns: [],
},
// ---- remote / server ----
'llvm-mos': {
id: 'llvm-mos', name: 'LLVM-MOS', kind: 'compiler', arch: '6502',
extensions: ['.c', '.cpp', '.s', '.S', '.C'],
editorStyle: 'text/x-csrc', // used as 'remote:llvm-mos' in the IDE
helpURL: 'https://llvm-mos.org/wiki/Welcome',
remote: true,
includePatterns: exports.SHARED_INCLUDE_PATTERNS,
linkPatterns: exports.SHARED_LINK_PATTERNS,
server: {
version: 'latest',
platforms: ['atari8', 'c64', 'nes', 'pce', 'vcs'],
binpath: 'llvm-mos/bin',
command: 'mos-clang',
args: ['-Os', '-g', '-D', '__8BITWORKSHOP__', '-o', '$OUTFILE', '$INFILES'],
},
},
// TODO: do we need this too?
remote: {
id: 'remote', name: 'Remote build', kind: 'remote',
extensions: [],
remote: true,
},
};
//// helpers
/**
* Look up tool metadata by tool id. Tolerates the 'remote:' transport prefix
* used in build steps (e.g. 'remote:llvm-mos' -> 'llvm-mos').
*/
function getToolMeta(id) {
return exports.TOOL_META[id.replace(/^remote:/, '')];
}
/**
* Return all tools that consume the given filename (longest extension match
* first). Ambiguity is resolved by the platform, which picks from these.
*/
function getToolMetaForFilename(fn) {
let matches = [];
for (let id in exports.TOOL_META) {
let meta = exports.TOOL_META[id];
for (let ext of meta.extensions) {
if (ext && fn.endsWith(ext)) {
matches.push({ meta, len: ext.length });
break;
}
}
}
return matches.sort((a, b) => b.len - a.len).map(m => m.meta);
}
/**
* Resolve the preload filesystem name for a tool on a platform
* (was TOOL_PRELOADFS, including compound 'tool-platform' keys).
*/
function getPreloadFSName(tool, platform) {
let meta = getToolMeta(tool);
if (!meta)
return undefined;
if (meta.platforms) {
if (platform) {
let p = meta.platforms[platform];
if (p && p.preloadFS)
return p.preloadFS;
}
let d = meta.platforms['default'];
if (d && d.preloadFS)
return d.preloadFS;
}
return undefined;
}
/** Skeleton filename in presets/<platform>/, defaults to tool id. */
function getSkeletonName(tool) {
let meta = getToolMeta(tool);
return (meta && meta.skeleton) ? meta.skeleton : tool.replace(/^remote:/, '');
}
/**
* Include patterns to use when scanning a source file for dependencies.
* Falls back to the platform (verilog vs. everything else) when the tool is
* unknown or declares no patterns of its own, which is how dependency parsing
* worked before this registry. A tool that really has no include directives
* says so with an explicit empty list.
*/
function getIncludePatterns(tool, platform) {
let meta = tool && getToolMeta(tool);
if (meta && meta.includePatterns)
return meta.includePatterns;
if (platform && platform.startsWith('verilog'))
return exports.VERILOG_INCLUDE_PATTERNS;
return exports.SHARED_INCLUDE_PATTERNS;
}
/** Link patterns ("//#link") to use when scanning a source file. */
function getLinkPatterns(tool, platform) {
let meta = tool && getToolMeta(tool);
if (meta && meta.linkPatterns)
return meta.linkPatterns;
if (platform && platform.startsWith('verilog'))
return [];
return exports.SHARED_LINK_PATTERNS;
}
/**
* Run a set of include/link patterns over source text, returning the
* referenced filenames. The filename comes from the pattern's `group`, or
* from the last capture group if unspecified, plus any implicit `suffix`.
*/
function matchDependencyPatterns(text, patterns) {
let files = [];
for (let pat of patterns || []) {
let p = pat instanceof RegExp ? { re: pat } : pat;
let m;
p.re.lastIndex = 0; // patterns are shared and global, so rewind first
while (m = p.re.exec(text)) {
let fn = m[p.group != null ? p.group : m.length - 1];
if (fn)
files.push(p.suffix ? fn + p.suffix : fn);
}
}
return files;
}
//# sourceMappingURL=toolmeta.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"toolmeta.js","sourceRoot":"","sources":["../../../src/common/toolmeta.ts"],"names":[],"mappings":"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 truncated
+9 -77
View File
@@ -7,6 +7,7 @@ exports.CodeProject = exports.LocalForageFilesystem = exports.OverlayFilesystem
exports.createNewPersistentStore = createNewPersistentStore;
const localforage_1 = __importDefault(require("localforage"));
const util_1 = require("../common/util");
const toolmeta_1 = require("../common/toolmeta");
const workertypes_1 = require("../common/workertypes");
class WebPresetsFileSystem {
constructor(platform_id) {
@@ -165,90 +166,21 @@ class CodeProject {
if (dir.length > 0 && dir != 'local') // TODO
files.push(dir + '/' + fn);
}
// TODO: use tool id to parse files, not platform
/** Patterns come from the tool registry (src/common/toolmeta.ts), keyed by
* the tool that builds the main file; the platform is only a fallback. */
parseIncludeDependencies(text) {
let tool = this.mainPath && this.getToolForFilename(this.mainPath);
let files = [];
let m;
if (this.platform_id.startsWith('verilog')) {
// include verilog includes
let re1 = /^\s*(`include|[.]include)\s+"(.+?)"/gmi;
while (m = re1.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// for Silice
let re1a = /^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi;
while (m = re1a.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// include .arch (json) statements
let re2 = /^\s*([.]arch)\s+(\w+)/gmi;
while (m = re2.exec(text)) {
this.pushAllFiles(files, m[2] + ".json");
}
// include $readmem[bh] (TODO)
let re3 = /\$readmem[bh]\("(.+?)"/gmi;
while (m = re3.exec(text)) {
this.pushAllFiles(files, m[1]);
}
}
else {
// for .asm -- [.%]include "file"
// for .c -- #include "file"
let re2 = /^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi;
while (m = re2.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// for .c -- //#resource "file" (or ;resource or #resource)
let re3 = /^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm;
while (m = re3.exec(text)) {
this.pushAllFiles(files, m[3]);
}
// for XASM only (USE include.ext)
// for merlin32 (ASM include.ext)
let re4 = /^\s+(USE|ASM)\s+(\S+[.]\S+)/gm;
while (m = re4.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// for wiz
let re5 = /^\s*(import|embed)\s*"(.+?)";/gmi;
while (m = re5.exec(text)) {
if (m[1] == 'import')
this.pushAllFiles(files, m[2] + ".wiz");
else
this.pushAllFiles(files, m[2]);
}
// for ecs
let re6 = /^\s*(import)\s*"(.+?)"/gmi;
while (m = re6.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// for acme
let re7 = /^[!]src\s+"(.+?)"/gmi;
while (m = re7.exec(text)) {
this.pushAllFiles(files, m[1]);
}
// for dialog -- %% #include "file" (dialog has no include directive,
// so the compiler is handed every file listed in a comment instead)
let re8 = /^\s*%%\s*#include\s+"(.+?)"/gm;
while (m = re8.exec(text)) {
this.pushAllFiles(files, m[1]);
}
// TODO: for xa assembler
for (let fn of (0, toolmeta_1.matchDependencyPatterns)(text, (0, toolmeta_1.getIncludePatterns)(tool, this.platform_id))) {
this.pushAllFiles(files, fn);
}
return files;
}
parseLinkDependencies(text) {
let tool = this.mainPath && this.getToolForFilename(this.mainPath);
let files = [];
let m;
if (this.platform_id.startsWith('verilog')) {
//
}
else {
// for .c -- //#link "file" (or ;link or #link)
let re = /^\s*([;]|[/][/])#link\s+"(.+?)"/gm;
while (m = re.exec(text)) {
this.pushAllFiles(files, m[2]);
}
for (let fn of (0, toolmeta_1.matchDependencyPatterns)(text, (0, toolmeta_1.getLinkPatterns)(tool, this.platform_id))) {
this.pushAllFiles(files, fn);
}
return files;
}
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/ide/project.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/ide/project.ts"],"names":[],"mappings":";;;;;;AAgbA,4DAMC;AArbD,8DAAsC;AAEtC,yCAAuH;AACvH,iDAAkG;AAClG,uDAAoO;AAQpO,MAAa,oBAAoB;IAE/B,YAAY,WAAmB;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAA,sBAAe,EAAC,WAAW,CAAC,CAAC,CAAC,kCAAkC;IACnF,CAAC;IACD,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;YAC7B,OAAO,IAAA,oBAAa,EAAC,IAAI,EAAE,GAAG,EAAE,IAAA,uBAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,yBAAyB;QACzB,IAAI,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;QACvD,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,IAAc;QAC5C,kBAAkB;IACpB,CAAC;IACD,kBAAkB,CAAC,QAAgC;QACjD,kBAAkB;IACpB,CAAC;CACF;AAvBD,oDAuBC;AAED,MAAa,cAAc;IAA3B;QACE,SAAI,GAAG,EAAE,CAAC;QACV,SAAI,GAAG,EAAE,CAAC;IAYZ,CAAC;IAXC,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,WAAW,CAAC,IAAY,EAAE,IAAc;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,kBAAkB,CAAC,QAAgC;QACjD,kBAAkB;IACpB,CAAC;CACF;AAdD,wCAcC;AAED,MAAa,iBAAiB;IAG5B,YAAY,MAAyB,EAAE,SAA4B;QACjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,IAAc;QAC5C,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,kBAAkB,CAAC,QAAgC;QACjD,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;CACF;AAvBD,8CAuBC;AAED,MAAa,qBAAqB;IAEhC,YAAY,KAAU;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,IAAc;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,kBAAkB,CAAC,QAAgC;QACjD,kBAAkB;IACpB,CAAC;CACF;AAdD,sDAcC;AAMD,SAAS,aAAa,CAAC,IAAc;IACnC,OAAO,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC;AACzE,CAAC;AAED,MAAa,WAAW;IAoBtB,YAAY,MAAM,EAAE,WAAmB,EAAE,QAAQ,EAAE,UAA6B;QAnBhF,aAAQ,GAAiC,EAAE,CAAC;QAI5C,0BAAqB,GAAG,CAAC,CAAC;QAC1B,oBAAe,GAAG,EAAE,CAAC;QAIrB,gBAAW,GAAY,KAAK,CAAC;QAC7B,kBAAa,GAAG,EAAE,CAAC,CAAC,mCAAmC;QAUrD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE;YACvB,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,UAAU,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;YACnD,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC1B,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACnD,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC5B,IAAI,IAAI,CAAC,aAAa;wBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,IAAkB;QACrC,IAAI,QAAQ,GAAG,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,mBAAmB;gBAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC,CAAC,yBAAyB;YAC9G,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,IAAI,IAAA,4BAAc,EAAC,IAAI,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,IAAA,2BAAa,EAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,kBAAkB,CAAC,IAAI;QACrB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACpC,CAAC;IACH,CAAC;IAED,YAAY,CAAC,KAAe,EAAE,EAAU;QACtC,kCAAkC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,+CAA+C;QAC/C,IAAI,GAAG,GAAG,IAAA,uBAAgB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,OAAO,EAAE,OAAO;YAC3C,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED;+EAC2E;IAC3E,wBAAwB,CAAC,IAAY;QACnC,IAAILine truncated
+8 -61
View File
@@ -60,6 +60,7 @@ const baseplatform_1 = require("../common/baseplatform");
const emu_1 = require("../common/emu");
const recorder_1 = require("../common/recorder");
const util_1 = require("../common/util");
const toolmeta_1 = require("../common/toolmeta");
const _index_1 = require("../platform/_index");
const dialogs_1 = require("./dialogs");
const settings_1 = require("./settings");
@@ -110,63 +111,7 @@ function getCurrentOutput() {
function getWorkerParams() {
return compparams;
}
// TODO: codemirror multiplex support?
// TODO: move to views.ts?
const TOOL_TO_SOURCE_STYLE = {
'dasm': '6502',
'acme': '6502',
'xa': '6502',
'cc65': 'text/x-csrc',
'ca65': '6502',
'nesasm': '6502',
'z80asm': 'z80',
'sdasz80': 'z80',
'sdasgb': 'z80',
'sdcc': 'text/x-csrc',
'verilator': 'verilog',
'jsasm': 'z80',
'zmac': 'z80',
'bataribasic': 'bataribasic',
'markdown': 'markdown',
'js': 'javascript',
'xasm6809': '6809',
'cmoc': 'text/x-csrc',
'yasm': 'gas',
'smlrc': 'text/x-csrc',
'inform6': 'inform6',
'dialog': 'dialog',
'fastbasic': 'fastbasic',
'basic': 'basic',
'silice': 'verilog',
'wiz': 'text/x-wiz',
'vasmarm': 'vasm',
'armips': 'vasm',
'ecs': 'ecs',
'remote:llvm-mos': 'text/x-csrc',
'cc2600': 'text/x-csrc',
'cc7800': 'text/x-csrc',
'armtcc': 'text/x-csrc',
'oscar64': 'text/x-csrc',
};
// TODO: move into tool class
const TOOL_TO_HELPURL = {
'dasm': 'https://raw.githubusercontent.com/sehugg/dasm/master/doc/dasm.txt',
'cc65': 'https://cc65.github.io/doc/cc65.html',
'ca65': 'https://cc65.github.io/doc/ca65.html',
'sdcc': 'http://sdcc.sourceforge.net/doc/sdccman.pdf',
'verilator': 'https://www.veripool.org/ftp/verilator_doc.pdf',
'fastbasic': 'https://github.com/dmsc/fastbasic/blob/master/manual.md',
'bataribasic': "help/bataribasic/manual.html",
'wiz': "https://github.com/wiz-lang/wiz/blob/master/readme.md#wiz",
'silice': "https://github.com/sylefeb/Silice",
'zmac': "https://raw.githubusercontent.com/sehugg/zmac/master/doc.txt",
'cmoc': "http://perso.b2b2c.ca/~sarrazip/dev/cmoc.html",
'remote:llvm-mos': 'https://llvm-mos.org/wiki/Welcome',
'acme': 'https://raw.githubusercontent.com/sehugg/acme/main/docs/QuickRef.txt',
'xa': 'https://www.floodgap.com/retrotech/xa/',
'dialog': 'https://linusakesson.net/dialog/docs/',
'oscar64': 'https://github.com/drmortalwombat/oscar64/blob/main/oscar64.md',
};
// editor styles and help URLs live in the tool registry (src/common/toolmeta.ts)
function newWorker() {
// TODO: return new Worker("https://8bitworkshop.com.s3-website-us-east-1.amazonaws.com/dev/gen/worker/bundle.js");
return new Worker("./gen/worker/bundle.js");
@@ -331,12 +276,13 @@ function refreshWindowList() {
}
}
function loadEditor(path) {
var _a;
var tool = exports.platform.getToolForFilename(path);
// hack because .h files can be DASM or CC65
if (tool == 'dasm' && path.endsWith(".h") && getCurrentMainFilename().endsWith(".c")) {
tool = 'cc65';
}
var mode = tool && TOOL_TO_SOURCE_STYLE[tool];
var mode = tool && ((_a = (0, toolmeta_1.getToolMeta)(tool)) === null || _a === void 0 ? void 0 : _a.editorStyle);
return new editors_1.SourceEditor(path, mode);
}
function addEditorItem(id) {
@@ -505,7 +451,7 @@ function reloadProject(id) {
gotoNewLocation();
}
async function getSkeletonFile(fileid) {
var ext = exports.platform.getToolForFilename(fileid).replace(/^remote:/, "");
var ext = (0, toolmeta_1.getSkeletonName)(exports.platform.getToolForFilename(fileid));
try {
return await $.get("presets/" + (0, util_1.getBasePlatform)(exports.platform_id) + "/skeleton." + ext, 'text');
}
@@ -536,7 +482,7 @@ async function _getToolsWithSkeletons(extensions) {
}
// check each tool in parallel
var checks = toolOrder.map(tool => $.ajax({
url: "presets/" + basePlatform + "/skeleton." + tool,
url: "presets/" + basePlatform + "/skeleton." + (0, toolmeta_1.getSkeletonName)(tool),
type: "HEAD"
}).then(() => tool, () => null));
var validTools = await Promise.all(checks);
@@ -1480,6 +1426,7 @@ function _addLinkFile() {
(0, dialogs_1.alertError)("Can't add linked file to this project type (" + tool + ")");
}
function setupDebugControls() {
var _a;
// create toolbar buttons
uitoolbar = new toolbar_1.Toolbar($("#toolbar")[0], null);
uitoolbar.grp.prop('id', 'run_bar');
@@ -1581,7 +1528,7 @@ function setupDebugControls() {
}
// tool help
let tool = exports.platform.getToolForFilename(getCurrentMainFilename());
let toolhelpurl = TOOL_TO_HELPURL[tool];
let toolhelpurl = tool && ((_a = (0, toolmeta_1.getToolMeta)(tool)) === null || _a === void 0 ? void 0 : _a.helpURL);
if (toolhelpurl) {
let { li, a } = newDropdownListItem('help__' + tool, tool + ' Help');
$("#help_menu").append(li);
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/ide/ui.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/ide/ui.ts"],"names":[],"mappings":"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 truncated
-1
View File
@@ -53,7 +53,6 @@ function importPlatform(name) {
case "gb": return Promise.resolve().then(() => __importStar(require("../platform/gb")));
case "gameboy": return Promise.resolve().then(() => __importStar(require("../platform/gb")));
case "kim1": return Promise.resolve().then(() => __importStar(require("../platform/kim1")));
case "markdown": return Promise.resolve().then(() => __importStar(require("../platform/markdown")));
case "mcr": return Promise.resolve().then(() => __importStar(require("../platform/mcr")));
case "msx": return Promise.resolve().then(() => __importStar(require("../platform/msx")));
case "mw8080bw": return Promise.resolve().then(() => __importStar(require("../platform/mw8080bw")));
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"_index.js","sourceRoot":"","sources":["../../../src/platform/_index.ts"],"names":[],"mappings":";AAAA,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtD,wCAwCG;AAxCH,SAAgB,cAAc,CAAC,IAAY;IACvC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,WAAW,CAAC,CAAC,yDAAc,uBAAuB,IAAE;QACzD,KAAK,WAAW,CAAC,CAAC,yDAAc,uBAAuB,IAAE;QACzD,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,IAAI,CAAC,CAAC,yDAAc,gBAAgB,IAAE;QAC3C,KAAK,SAAS,CAAC,CAAC,yDAAc,gBAAgB,IAAE;QAChD,KAAK,MAAM,CAAC,CAAC,yDAAc,kBAAkB,IAAE;QAC/C,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,cAAc,CAAC,CAAC,yDAAc,0BAA0B,IAAE;QAC/D,KAAK,gBAAgB,CAAC,CAAC,yDAAc,4BAA4B,IAAE;QACnE,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,SAAS,CAAC,CAAC,yDAAc,qBAAqB,IAAE;QACrD,KAAK,SAAS,CAAC,CAAC,yDAAc,qBAAqB,IAAE;QACrD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,SAAS,CAAC,CAAC,yDAAc,qBAAqB,IAAE;QACrD,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,IAAI,CAAC,CAAC,yDAAc,gBAAgB,IAAE;QAC3C,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,GAAG,CAAC,CAAA;IAChE,CAAC;AACH,CAAC"}
{"version":3,"file":"_index.js","sourceRoot":"","sources":["../../../src/platform/_index.ts"],"names":[],"mappings":";AAAA,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtD,wCAuCG;AAvCH,SAAgB,cAAc,CAAC,IAAY;IACvC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,WAAW,CAAC,CAAC,yDAAc,uBAAuB,IAAE;QACzD,KAAK,WAAW,CAAC,CAAC,yDAAc,uBAAuB,IAAE;QACzD,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,IAAI,CAAC,CAAC,yDAAc,gBAAgB,IAAE;QAC3C,KAAK,SAAS,CAAC,CAAC,yDAAc,gBAAgB,IAAE;QAChD,KAAK,MAAM,CAAC,CAAC,yDAAc,kBAAkB,IAAE;QAC/C,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,cAAc,CAAC,CAAC,yDAAc,0BAA0B,IAAE;QAC/D,KAAK,gBAAgB,CAAC,CAAC,yDAAc,4BAA4B,IAAE;QACnE,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,QAAQ,CAAC,CAAC,yDAAc,oBAAoB,IAAE;QACnD,KAAK,SAAS,CAAC,CAAC,yDAAc,qBAAqB,IAAE;QACrD,KAAK,SAAS,CAAC,CAAC,yDAAc,qBAAqB,IAAE;QACrD,KAAK,OAAO,CAAC,CAAC,yDAAc,mBAAmB,IAAE;QACjD,KAAK,SAAS,CAAC,CAAC,yDAAc,qBAAqB,IAAE;QACrD,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,KAAK,CAAC,CAAC,yDAAc,iBAAiB,IAAE;QAC7C,KAAK,UAAU,CAAC,CAAC,yDAAc,sBAAsB,IAAE;QACvD,KAAK,IAAI,CAAC,CAAC,yDAAc,gBAAgB,IAAE;QAC3C,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,GAAG,CAAC,CAAA;IAChE,CAAC;AACH,CAAC"}
-45
View File
@@ -1,45 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const emu_1 = require("../common/emu");
class MarkdownPlatform {
constructor(mainElement) {
this.mainElement = mainElement;
this.iframe = $('<iframe sandbox="allow-same-origin" width="100%" height="100%"/>').appendTo(mainElement)[0];
this.iframe.style.backgroundColor = 'white';
mainElement.classList.add("vertical-scroll"); //100% height
mainElement.style.overflowY = 'auto';
}
start() {
}
reset() {
}
pause() {
}
resume() {
}
loadROM(title, data) {
$(this.iframe).contents().find('body').html(data);
}
isRunning() {
return false;
}
isDebugging() {
return false;
}
getToolForFilename(fn) {
return "markdown";
}
getDefaultExtensions() {
return [".md"];
}
getPresets() {
return [
{ id: 'hello.md', name: 'Hello' },
];
}
showHelp() {
return "https://github.com/showdownjs/showdown/wiki/Showdown's-Markdown-syntax";
}
}
emu_1.PLATFORMS['markdown'] = MarkdownPlatform;
//# sourceMappingURL=markdown.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../src/platform/markdown.ts"],"names":[],"mappings":";;AACA,uCAA0C;AAG1C,MAAM,gBAAgB;IAIpB,YAAY,WAAuB;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,kEAAkE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAsB,CAAC;QAClI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC;QAC5C,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa;QAC3D,WAAW,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IACvC,CAAC;IACD,KAAK;IACL,CAAC;IACD,KAAK;IACL,CAAC;IACD,KAAK;IACL,CAAC;IACD,MAAM;IACN,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,IAAW;QACxB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IACD,SAAS;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,WAAW;QACT,OAAO,KAAK,CAAC;IACf,CAAC;IACD,kBAAkB,CAAC,EAAW;QAC5B,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,oBAAoB;QAClB,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IACD,UAAU;QACR,OAAO;YACL,EAAC,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,OAAO,EAAC;SAC9B,CAAC;IACJ,CAAC;IACD,QAAQ;QACN,OAAO,wEAAwE,CAAC;IAClF,CAAC;CACF;AAED,eAAS,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC"}
-4
View File
@@ -270,10 +270,6 @@ async function doCompile(args, positional, checkOnly) {
process.exit(1);
}
// Preload the tool's filesystem if needed
var preloadKey = tool;
if (testlib_1.TOOL_PRELOADFS[tool + '-' + platform]) {
preloadKey = tool;
}
await (0, testlib_1.preload)(tool, platform);
var result = await (0, testlib_1.compileSourceFile)(tool, platform, sourceFile);
if (!result.success) {
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"8bws.js","sourceRoot":"","sources":["../../../src/tools/8bws.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"8bws.js","sourceRoot":"","sources":["../../../src/tools/8bws.ts"],"names":[],"mappings":"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 truncated
+16 -69
View File
@@ -36,7 +36,7 @@ var __importStar = (this && this.__importStar) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.TOOLS = exports.PLATFORM_PARAMS = exports.TOOL_PRELOADFS = exports.store = void 0;
exports.TOOLS = exports.PLATFORM_PARAMS = exports.store = void 0;
exports.initialize = initialize;
exports.preload = preload;
exports.compile = compile;
@@ -51,9 +51,9 @@ const fs = __importStar(require("fs"));
const path = __importStar(require("path"));
const util_1 = require("../common/util");
const baseplatform_1 = require("../common/baseplatform");
const toolmeta_1 = require("../common/toolmeta");
const workerlib_1 = require("../worker/workerlib");
Object.defineProperty(exports, "store", { enumerable: true, get: function () { return workerlib_1.store; } });
Object.defineProperty(exports, "TOOL_PRELOADFS", { enumerable: true, get: function () { return workerlib_1.TOOL_PRELOADFS; } });
const platforms_1 = require("../worker/platforms");
Object.defineProperty(exports, "PLATFORM_PARAMS", { enumerable: true, get: function () { return platforms_1.PLATFORM_PARAMS; } });
const workertools_1 = require("../worker/workertools");
@@ -126,83 +126,26 @@ async function compileFile(tool, platform, presetPath) {
}
/**
* Parse include and link dependencies from source text.
* Extracted from CodeProject.parseIncludeDependencies / parseLinkDependencies.
* TODO: project.ts should be refactored so we don't have to duplicate the logic
* Patterns come from the tool registry (src/common/toolmeta.ts), the same
* ones CodeProject uses in the IDE.
*/
function parseIncludeDependencies(text, platformId, mainPath) {
function parseDependencies(text, platformId, mainPath, patterns) {
let files = [];
let m;
var dir = (0, util_1.getFolderForPath)(mainPath);
function pushFile(fn) {
for (let fn of (0, toolmeta_1.matchDependencyPatterns)(text, patterns)) {
files.push(fn);
if (dir.length > 0 && dir != 'local')
files.push(dir + '/' + fn);
}
if (platformId.startsWith('verilog')) {
let re1 = /^\s*(`include|[.]include)\s+"(.+?)"/gmi;
while (m = re1.exec(text)) {
pushFile(m[2]);
}
let re1a = /^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi;
while (m = re1a.exec(text)) {
pushFile(m[2]);
}
let re2 = /^\s*([.]arch)\s+(\w+)/gmi;
while (m = re2.exec(text)) {
pushFile(m[2] + ".json");
}
let re3 = /\$readmem[bh]\("(.+?)"/gmi;
while (m = re3.exec(text)) {
pushFile(m[1]);
}
}
else {
let re2 = /^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi;
while (m = re2.exec(text)) {
pushFile(m[2]);
}
let re3 = /^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm;
while (m = re3.exec(text)) {
pushFile(m[3]);
}
let re4 = /^\s+(USE|ASM)\s+(\S+[.]\S+)/gm;
while (m = re4.exec(text)) {
pushFile(m[2]);
}
let re5 = /^\s*(import|embed)\s*"(.+?)";/gmi;
while (m = re5.exec(text)) {
if (m[1] == 'import')
pushFile(m[2] + ".wiz");
else
pushFile(m[2]);
}
let re6 = /^\s*(import)\s*"(.+?)"/gmi;
while (m = re6.exec(text)) {
pushFile(m[2]);
}
let re7 = /^[!]src\s+"(.+?)"/gmi;
while (m = re7.exec(text)) {
pushFile(m[1]);
}
}
return files;
}
function parseIncludeDependencies(text, platformId, mainPath) {
let tool = getToolForFilename(mainPath, platformId);
return parseDependencies(text, platformId, mainPath, (0, toolmeta_1.getIncludePatterns)(tool, platformId));
}
function parseLinkDependencies(text, platformId, mainPath) {
let files = [];
let m;
var dir = (0, util_1.getFolderForPath)(mainPath);
function pushFile(fn) {
files.push(fn);
if (dir.length > 0 && dir != 'local')
files.push(dir + '/' + fn);
}
if (!platformId.startsWith('verilog')) {
let re = /^\s*([;]|[/][/])#link\s+"(.+?)"/gm;
while (m = re.exec(text)) {
pushFile(m[2]);
}
}
return files;
let tool = getToolForFilename(mainPath, platformId);
return parseDependencies(text, platformId, mainPath, (0, toolmeta_1.getLinkPatterns)(tool, platformId));
}
/**
* Try to resolve a file path by searching the source directory,
@@ -296,6 +239,10 @@ function getToolForFilename(fn, platform) {
return (0, baseplatform_1.getToolForFilename_6502)(fn);
case '6809':
return (0, baseplatform_1.getToolForFilename_6809)(fn);
case 'verilog':
if (fn.endsWith('.asm'))
return 'jsasm';
return fn.endsWith('.ice') ? 'silice' : 'verilator';
default:
return (0, baseplatform_1.getToolForFilename_z80)(fn); // fallback
}
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"testlib.js","sourceRoot":"","sources":["../../../src/tools/testlib.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"testlib.js","sourceRoot":"","sources":["../../../src/tools/testlib.ts"],"names":[],"mappings":"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 truncated
-19
View File
@@ -33,7 +33,6 @@ var __importStar = (this && this.__importStar) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.translateShowdown = translateShowdown;
exports.compileInform6 = compileInform6;
exports.compileBASIC = compileBASIC;
exports.compileWiz = compileWiz;
@@ -42,24 +41,6 @@ const util_1 = require("../../common/util");
const wasmutils_1 = require("../wasmutils");
const builder_1 = require("../builder");
const listingutils_1 = require("../listingutils");
const workermain_1 = require("../workermain");
function translateShowdown(step) {
(0, workermain_1.setupRequireFunction)();
(0, wasmutils_1.load)("showdown.min");
var showdown = wasmutils_1.emglobal['showdown'];
var converter = new showdown.Converter({
tables: 'true',
smoothLivePreview: 'true',
requireSpaceBeforeHeadingText: 'true',
emoji: 'true',
});
var code = (0, builder_1.getWorkFileAsString)(step.path);
var html = converter.makeHtml(code);
delete wasmutils_1.emglobal['require'];
return {
output: html
};
}
function compileInform6(step) {
(0, wasmutils_1.loadNative)("inform");
var errors = [];
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../../src/worker/tools/misc.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../../src/worker/tools/misc.ts"],"names":[],"mappings":"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 truncated
+6 -10
View File
@@ -36,14 +36,13 @@ var __importStar = (this && this.__importStar) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.TOOLS = exports.PLATFORM_PARAMS = exports.TOOL_PRELOADFS = exports.builder = exports.store = void 0;
exports.TOOLS = exports.PLATFORM_PARAMS = exports.builder = exports.store = void 0;
exports.setupNodeEnvironment = setupNodeEnvironment;
exports.handleMessage = handleMessage;
const fs = __importStar(require("fs"));
const path = __importStar(require("path"));
const util_1 = require("../common/util");
const workertools_1 = require("./workertools");
Object.defineProperty(exports, "TOOL_PRELOADFS", { enumerable: true, get: function () { return workertools_1.TOOL_PRELOADFS; } });
const toolmeta_1 = require("../common/toolmeta");
const builder_1 = require("./builder");
Object.defineProperty(exports, "store", { enumerable: true, get: function () { return builder_1.store; } });
Object.defineProperty(exports, "builder", { enumerable: true, get: function () { return builder_1.builder; } });
@@ -51,8 +50,8 @@ const wasmutils_1 = require("./wasmutils");
const workermain_1 = require("./workermain");
var platforms_1 = require("./platforms");
Object.defineProperty(exports, "PLATFORM_PARAMS", { enumerable: true, get: function () { return platforms_1.PLATFORM_PARAMS; } });
var workertools_2 = require("./workertools");
Object.defineProperty(exports, "TOOLS", { enumerable: true, get: function () { return workertools_2.TOOLS; } });
var workertools_1 = require("./workertools");
Object.defineProperty(exports, "TOOLS", { enumerable: true, get: function () { return workertools_1.TOOLS; } });
class Blob {
constructor(data) {
this.data = data;
@@ -165,11 +164,8 @@ function setupNodeEnvironment() {
async function handleMessage(data) {
// preload file system
if (data.preload) {
var fsName = workertools_1.TOOL_PRELOADFS[data.preload];
if (!fsName && data.platform)
fsName = workertools_1.TOOL_PRELOADFS[data.preload + '-' + (0, util_1.getBasePlatform)(data.platform)];
if (!fsName && data.platform)
fsName = workertools_1.TOOL_PRELOADFS[data.preload + '-' + (0, util_1.getRootBasePlatform)(data.platform)];
var fsName = (0, toolmeta_1.getPreloadFSName)(data.preload, data.platform && (0, util_1.getBasePlatform)(data.platform))
|| (0, toolmeta_1.getPreloadFSName)(data.preload, data.platform && (0, util_1.getRootBasePlatform)(data.platform));
if (fsName && !wasmutils_1.fsMeta[fsName])
(0, wasmutils_1.loadFilesystem)(fsName);
return;
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"workerlib.js","sourceRoot":"","sources":["../../../src/worker/workerlib.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"workerlib.js","sourceRoot":"","sources":["../../../src/worker/workerlib.ts"],"names":[],"mappings":"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"}
+3 -6
View File
@@ -2,7 +2,7 @@
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupRequireFunction = setupRequireFunction;
const util_1 = require("../common/util");
const workertools_1 = require("./workertools");
const toolmeta_1 = require("../common/toolmeta");
const builder_1 = require("./builder");
const wasmutils_1 = require("./wasmutils");
function setupRequireFunction() {
@@ -22,11 +22,8 @@ function setupRequireFunction() {
async function handleMessage(data) {
// preload file system
if (data.preload) {
var fs = workertools_1.TOOL_PRELOADFS[data.preload];
if (!fs && data.platform)
fs = workertools_1.TOOL_PRELOADFS[data.preload + '-' + (0, util_1.getBasePlatform)(data.platform)];
if (!fs && data.platform)
fs = workertools_1.TOOL_PRELOADFS[data.preload + '-' + (0, util_1.getRootBasePlatform)(data.platform)];
var fs = (0, toolmeta_1.getPreloadFSName)(data.preload, data.platform && (0, util_1.getBasePlatform)(data.platform))
|| (0, toolmeta_1.getPreloadFSName)(data.preload, data.platform && (0, util_1.getRootBasePlatform)(data.platform));
if (fs && !wasmutils_1.fsMeta[fs])
(0, wasmutils_1.loadFilesystem)(fs);
return;
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"workermain.js","sourceRoot":"","sources":["../../../src/worker/workermain.ts"],"names":[],"mappings":";;AAUA,oDAWC;AAnBD,yCAAsE;AACtE,+CAA+C;AAC/C,uCAA6E;AAC7E,2CAA+D;AAK/D,SAAgB,oBAAoB;IAClC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,OAAO,CAAC,OAAO,CAAC,GAAG;QACjB,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;KACF,CAAC;IACF,oBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,OAAe,EAAE,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAA;AACH,CAAC;AAED,4BAA4B;AAE5B,6FAA6F;AAE7F,KAAK,UAAU,aAAa,CAAC,IAAmB;IAC9C,sBAAsB;IACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,EAAE,GAAG,4BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ;YACtB,EAAE,GAAG,4BAAc,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ;YACtB,EAAE,GAAG,4BAAc,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,IAAA,0BAAmB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/E,IAAI,EAAE,IAAI,CAAC,kBAAM,CAAC,EAAE,CAAC;YACnB,IAAA,0BAAc,EAAC,EAAE,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,qCAAqC;IACrC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,eAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,OAAO,iBAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,qBAAqB,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC;AAClE,IAAI,qBAAqB,EAAE,CAAC;IAC1B,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,SAAS,GAAG,KAAK,WAAW,CAAC;QAC3B,MAAM,WAAW,CAAC,CAAC,wCAAwC;QAC3D,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAAM,GAAG,MAAM,WAAW,CAAC;QAC/B,WAAW,GAAG,IAAI,CAAC;QACnB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,WAAW,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACf,WAAW,CAAC,IAAA,qBAAW,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
{"version":3,"file":"workermain.js","sourceRoot":"","sources":["../../../src/worker/workermain.ts"],"names":[],"mappings":";;AAUA,oDAWC;AAnBD,yCAAsE;AACtE,iDAAsD;AACtD,uCAA6E;AAC7E,2CAA+D;AAK/D,SAAgB,oBAAoB;IAClC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,OAAO,CAAC,OAAO,CAAC,GAAG;QACjB,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;KACF,CAAC;IACF,oBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,OAAe,EAAE,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAA;AACH,CAAC;AAED,4BAA4B;AAE5B,6FAA6F;AAE7F,KAAK,UAAU,aAAa,CAAC,IAAmB;IAC9C,sBAAsB;IACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,EAAE,GAAG,IAAA,2BAAgB,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAA,sBAAe,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;eACnF,IAAA,2BAAgB,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAA,0BAAmB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzF,IAAI,EAAE,IAAI,CAAC,kBAAM,CAAC,EAAE,CAAC;YACnB,IAAA,0BAAc,EAAC,EAAE,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,qCAAqC;IACrC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,eAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,OAAO,iBAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,qBAAqB,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC;AAClE,IAAI,qBAAqB,EAAE,CAAC;IAC1B,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,SAAS,GAAG,KAAK,WAAW,CAAC;QAC3B,MAAM,WAAW,CAAC,CAAC,wCAAwC;QAC3D,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAAM,GAAG,MAAM,WAAW,CAAC;QAC/B,WAAW,GAAG,IAAI,CAAC;QACnB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,WAAW,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACf,WAAW,CAAC,IAAA,qBAAW,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
+1 -38
View File
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.TOOL_PRELOADFS = exports.TOOLS = void 0;
exports.TOOLS = void 0;
const misc = __importStar(require("./tools/misc"));
const cc65 = __importStar(require("./tools/cc65"));
const dasm = __importStar(require("./tools/dasm"));
@@ -78,7 +78,6 @@ exports.TOOLS = {
'smlrc': x86.compileSmallerC,
'yasm': x86.assembleYASM,
'bataribasic': bataribasic.compileBatariBasic,
'markdown': misc.translateShowdown,
'inform6': misc.compileInform6,
'merlin32': m6502.assembleMerlin32,
'fastbasic': m6502.compileFastBasic,
@@ -97,40 +96,4 @@ exports.TOOLS = {
'xa': xa.assembleXA,
'dialog': dialog.compileDialog,
};
exports.TOOL_PRELOADFS = {
'cc65-apple2': '65-apple2',
'ca65-apple2': '65-apple2',
'cc65-c64': '65-c64',
'ca65-c64': '65-c64',
'cc65-vic20': '65-vic20',
'ca65-vic20': '65-vic20',
'cc65-nes': '65-nes',
'ca65-nes': '65-nes',
'cc65-atari8': '65-atari8',
'ca65-atari8': '65-atari8',
'cc65-vector': '65-none',
'ca65-vector': '65-none',
'cc65-atari7800': '65-none',
'ca65-atari7800': '65-none',
'cc65-devel': '65-none',
'ca65-devel': '65-none',
'cc65-vcs': '65-atari2600',
'ca65-vcs': '65-atari2600',
'cc65-pce': '65-pce',
'ca65-pce': '65-pce',
'cc65-exidy': '65-none',
'ca65-exidy': '65-none',
'sdasz80': 'sdcc',
'sdasgb': 'sdcc',
'sdcc': 'sdcc',
'sccz80': 'sccz80',
'bataribasic': '2600basic',
'inform6': 'inform',
'fastbasic': '65-atari8',
'silice': 'Silice',
'wiz': 'wiz',
'ecs-vcs': '65-atari2600', // TODO: support multiple platforms
'ecs-nes': '65-nes', // TODO: support multiple platforms
'ecs-c64': '65-c64', // TODO: support multiple platforms
};
//# sourceMappingURL=workertools.js.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"workertools.js","sourceRoot":"","sources":["../../../src/worker/workertools.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"workertools.js","sourceRoot":"","sources":["../../../src/worker/workertools.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mDAAoC;AACpC,mDAAoC;AACpC,mDAAoC;AACpC,mDAAoC;AACpC,yDAA0C;AAC1C,qDAAsC;AACtC,qDAAsC;AACtC,iDAAkC;AAClC,iDAAkC;AAClC,iDAAkC;AAClC,iDAAkC;AAClC,uDAAwC;AACxC,mDAAoC;AACpC,uDAAwC;AACxC,uDAAwC;AACxC,iEAAkD;AAClD,yDAA0C;AAC1C,+CAAgC;AAChC,uDAAwC;AAI3B,QAAA,KAAK,GAAG;IACnB,MAAM,EAAE,IAAI,CAAC,YAAY;IACzB,MAAM,EAAE,IAAI,CAAC,YAAY;IACzB,MAAM,EAAE,IAAI,CAAC,WAAW;IACxB,MAAM,EAAE,IAAI,CAAC,YAAY;IACzB,MAAM,EAAE,IAAI,CAAC,QAAQ;IACrB,2BAA2B;IAC3B,0BAA0B;IAC1B,SAAS,EAAE,IAAI,CAAC,eAAe;IAC/B,QAAQ,EAAE,IAAI,CAAC,cAAc;IAC7B,SAAS,EAAE,IAAI,CAAC,WAAW;IAC3B,MAAM,EAAE,IAAI,CAAC,WAAW;IACxB,UAAU,EAAE,KAAK,CAAC,gBAAgB;IAClC,MAAM,EAAE,KAAK,CAAC,WAAW;IACzB,OAAO,EAAE,KAAK,CAAC,aAAa;IAC5B,QAAQ,EAAE,KAAK,CAAC,UAAU;IAC1B,yBAAyB;IACzB,WAAW,EAAE,OAAO,CAAC,gBAAgB;IACrC,OAAO,EAAE,OAAO,CAAC,YAAY;IAC7B,OAAO,EAAE,OAAO,CAAC,gBAAgB;IACjC,MAAM,EAAE,GAAG,CAAC,YAAY;IACxB,QAAQ,EAAE,KAAK,CAAC,cAAc;IAC9B,OAAO,EAAE,GAAG,CAAC,eAAe;IAC5B,MAAM,EAAE,GAAG,CAAC,YAAY;IACxB,aAAa,EAAE,WAAW,CAAC,kBAAkB;IAC7C,SAAS,EAAE,IAAI,CAAC,cAAc;IAC9B,UAAU,EAAE,KAAK,CAAC,gBAAgB;IAClC,WAAW,EAAE,KAAK,CAAC,gBAAgB;IACnC,OAAO,EAAE,IAAI,CAAC,YAAY;IAC1B,QAAQ,EAAE,OAAO,CAAC,aAAa;IAC/B,KAAK,EAAE,IAAI,CAAC,UAAU;IACtB,QAAQ,EAAE,GAAG,CAAC,cAAc;IAC5B,SAAS,EAAE,GAAG,CAAC,eAAe;IAC9B,KAAK,EAAE,GAAG,CAAC,WAAW;IACtB,QAAQ,EAAE,MAAM,CAAC,WAAW;IAC5B,QAAQ,EAAE,MAAM,CAAC,aAAa;IAC9B,QAAQ,EAAE,MAAM,CAAC,aAAa;IAC9B,QAAQ,EAAE,GAAG,CAAC,aAAa;IAC3B,YAAY,EAAE,GAAG,CAAC,UAAU;IAC5B,SAAS,EAAE,OAAO,CAAC,cAAc;IACjC,IAAI,EAAE,EAAE,CAAC,UAAU;IACnB,QAAQ,EAAE,MAAM,CAAC,aAAa;CAC/B,CAAA"}
+1 -1
View File
@@ -1 +1 @@
{"root":["../../test/unit/testanalysis.ts","../../test/unit/testassembler.ts","../../test/unit/testassetscan.ts","../../test/unit/testbaseplatform.ts","../../test/unit/testcommon.ts","../../test/unit/testcommon_ext.ts","../../test/unit/testecs.ts","../../test/unit/testelfparser.ts","../../test/unit/testemu.ts","../../test/unit/testlibretro.ts","../../test/unit/testutil.ts","../../test/unit/testwasishim.ts","../../src/common/analysis.ts","../../src/common/audio.ts","../../src/common/baseplatform.ts","../../src/common/binutils.ts","../../src/common/devices.ts","../../src/common/emu.ts","../../src/common/gbpalette.ts","../../src/common/mameplatform.ts","../../src/common/probe.ts","../../src/common/recorder.ts","../../src/common/teletype.ts","../../src/common/tokenizer.ts","../../src/common/util.ts","../../src/common/vlist.ts","../../src/common/vtextscroller.ts","../../src/common/wasmplatform.ts","../../src/common/workertypes.ts","../../src/common/audio/CommodoreTape.ts","../../src/common/basic/compiler.ts","../../src/common/basic/fuzz.ts","../../src/common/basic/run.ts","../../src/common/basic/runtime.ts","../../src/common/cpu/6809.ts","../../src/common/cpu/ARM.ts","../../src/common/cpu/F8.ts","../../src/common/cpu/MOS6502.ts","../../src/common/cpu/SM83.ts","../../src/common/cpu/ZilogZ80.ts","../../src/common/cpu/disasm6502.ts","../../src/common/cpu/disasmF8.ts","../../src/common/cpu/disasmHuC6280.ts","../../src/common/cpu/disasmSM83.ts","../../src/common/cpu/disasmz80.ts","../../src/common/ecs/binpack.ts","../../src/common/ecs/compiler.ts","../../src/common/ecs/decoder.ts","../../src/common/ecs/ecs.ts","../../src/common/ecs/main.ts","../../src/common/hdl/fuzz.ts","../../src/common/hdl/hdlruntime.ts","../../src/common/hdl/hdltypes.ts","../../src/common/hdl/hdlwasm.ts","../../src/common/hdl/vxmlparser.ts","../../src/common/hdl/vxmltest.ts","../../src/common/wasi/libretro.ts","../../src/common/wasi/wasishim.ts","../../src/ide/dialogs.ts","../../src/ide/embedui.ts","../../src/ide/pixeleditor.ts","../../src/ide/project.ts","../../src/ide/services.ts","../../src/ide/settings.ts","../../src/ide/shareexport.ts","../../src/ide/sync.ts","../../src/ide/toolbar.ts","../../src/ide/ui.ts","../../src/ide/waveform.ts","../../src/ide/windows.ts","../../src/ide/views/assetdecorations.ts","../../src/ide/views/asseteditor.ts","../../src/ide/views/baseviews.ts","../../src/ide/views/debug.ts","../../src/ide/views/debugviews.ts","../../src/ide/views/editors.ts","../../src/ide/views/filters.ts","../../src/ide/views/gutter.ts","../../src/ide/views/tabs.ts","../../src/ide/views/traceviews.ts","../../src/ide/views/treeviews.ts","../../src/ide/views/visuals.ts","../../src/machine/apple2.ts","../../src/machine/arm32.ts","../../src/machine/astrocade.ts","../../src/machine/atari7800.ts","../../src/machine/atari8.ts","../../src/machine/c64.ts","../../src/machine/channelf.ts","../../src/machine/coleco.ts","../../src/machine/cpc.ts","../../src/machine/devel.ts","../../src/machine/exidy.ts","../../src/machine/galaxian.ts","../../src/machine/gb.ts","../../src/machine/kim1.ts","../../src/machine/mcr.ts","../../src/machine/msx.ts","../../src/machine/mw8080bw.ts","../../src/machine/pacman.ts","../../src/machine/sms.ts","../../src/machine/vdp_z80.ts","../../src/machine/vic20.ts","../../src/machine/vicdual.ts","../../src/machine/williams.ts","../../src/machine/zx.ts","../../src/machine/chips/antic.ts","../../src/machine/chips/gtia.ts","../../src/machine/chips/pokey.ts","../../src/machine/chips/tms9918a.ts","../../src/parser/lang-6502.ts","../../src/parser/lang-basic.ts","../../src/parser/lang-bataribasic.ts","../../src/parser/lang-dialog.ts","../../src/parser/lang-fastbasic.ts","../../src/parser/lang-inform6.ts","../../src/parser/lang-verilog.ts","../../src/parser/lang-wiz.ts","../../src/parser/lang-z80.ts","../../src/parser/tokens-6502.ts","../../src/parser/tokens-6809.ts","../../src/parser/tokens-z80.ts","../../src/platform/_index.ts","../../src/platform/apple2.ts","../../src/platform/arm32.ts","../../src/platform/astrocade.ts","../../src/platform/atari7800.ts","../../src/platform/atari8.ts","../../src/platform/basic.ts","../../src/platform/c64.ts","../../src/platform/channelf.ts","../../src/platform/coleco.ts","../../src/platform/cpc.ts","../../src/platform/devel.ts","../../src/platform/exidy.ts","../../src/platform/galaxian.ts","../../src/platform/gb.ts","../../src/platform/kim1.ts","../../src/platform/markdown.ts","../../src/platform/mcr.ts","../../src/platform/msx.ts","../../src/platform/mw8080bw.ts","../../src/platform/nes.ts","../../src/platform/pacman.ts","../../src/platform/pce.ts","../../src/platform/sms.ts","../../src/platform/sound_konami.ts","../../src/platform/sound_williams.ts","../../src/platform/vcs.ts","../../src/platform/vector.ts","../../src/platform/vectrex.ts","../../src/platform/verilog.ts","../../src/platform/vic20.ts","../../src/platform/vicdual.ts","../../src/platform/williams.ts","../../src/platform/x86.ts","../../src/plLine truncated
{"root":["../../test/unit/testanalysis.ts","../../test/unit/testassembler.ts","../../test/unit/testassetscan.ts","../../test/unit/testbaseplatform.ts","../../test/unit/testcommon.ts","../../test/unit/testcommon_ext.ts","../../test/unit/testecs.ts","../../test/unit/testelfparser.ts","../../test/unit/testemu.ts","../../test/unit/testlibretro.ts","../../test/unit/testpixelclipboard.ts","../../test/unit/testtoolmeta.ts","../../test/unit/testutil.ts","../../test/unit/testwasishim.ts","../../src/common/analysis.ts","../../src/common/audio.ts","../../src/common/baseplatform.ts","../../src/common/binutils.ts","../../src/common/devices.ts","../../src/common/emu.ts","../../src/common/gbpalette.ts","../../src/common/mameplatform.ts","../../src/common/probe.ts","../../src/common/recorder.ts","../../src/common/teletype.ts","../../src/common/tokenizer.ts","../../src/common/toolmeta.ts","../../src/common/util.ts","../../src/common/vlist.ts","../../src/common/vtextscroller.ts","../../src/common/wasmplatform.ts","../../src/common/workertypes.ts","../../src/common/audio/CommodoreTape.ts","../../src/common/basic/compiler.ts","../../src/common/basic/fuzz.ts","../../src/common/basic/run.ts","../../src/common/basic/runtime.ts","../../src/common/cpu/6809.ts","../../src/common/cpu/ARM.ts","../../src/common/cpu/F8.ts","../../src/common/cpu/MOS6502.ts","../../src/common/cpu/SM83.ts","../../src/common/cpu/ZilogZ80.ts","../../src/common/cpu/disasm6502.ts","../../src/common/cpu/disasmF8.ts","../../src/common/cpu/disasmHuC6280.ts","../../src/common/cpu/disasmSM83.ts","../../src/common/cpu/disasmz80.ts","../../src/common/ecs/binpack.ts","../../src/common/ecs/compiler.ts","../../src/common/ecs/decoder.ts","../../src/common/ecs/ecs.ts","../../src/common/ecs/main.ts","../../src/common/hdl/fuzz.ts","../../src/common/hdl/hdlruntime.ts","../../src/common/hdl/hdltypes.ts","../../src/common/hdl/hdlwasm.ts","../../src/common/hdl/vxmlparser.ts","../../src/common/hdl/vxmltest.ts","../../src/common/wasi/libretro.ts","../../src/common/wasi/wasishim.ts","../../src/ide/dialogs.ts","../../src/ide/embedui.ts","../../src/ide/pixeleditor.ts","../../src/ide/project.ts","../../src/ide/services.ts","../../src/ide/settings.ts","../../src/ide/shareexport.ts","../../src/ide/sync.ts","../../src/ide/toolbar.ts","../../src/ide/ui.ts","../../src/ide/waveform.ts","../../src/ide/windows.ts","../../src/ide/views/assetdecorations.ts","../../src/ide/views/asseteditor.ts","../../src/ide/views/baseviews.ts","../../src/ide/views/debug.ts","../../src/ide/views/debugviews.ts","../../src/ide/views/editors.ts","../../src/ide/views/filters.ts","../../src/ide/views/gutter.ts","../../src/ide/views/tabs.ts","../../src/ide/views/traceviews.ts","../../src/ide/views/treeviews.ts","../../src/ide/views/visuals.ts","../../src/machine/apple2.ts","../../src/machine/arm32.ts","../../src/machine/astrocade.ts","../../src/machine/atari7800.ts","../../src/machine/atari8.ts","../../src/machine/c64.ts","../../src/machine/channelf.ts","../../src/machine/coleco.ts","../../src/machine/cpc.ts","../../src/machine/devel.ts","../../src/machine/exidy.ts","../../src/machine/galaxian.ts","../../src/machine/gb.ts","../../src/machine/kim1.ts","../../src/machine/mcr.ts","../../src/machine/msx.ts","../../src/machine/mw8080bw.ts","../../src/machine/pacman.ts","../../src/machine/sms.ts","../../src/machine/vdp_z80.ts","../../src/machine/vic20.ts","../../src/machine/vicdual.ts","../../src/machine/williams.ts","../../src/machine/zx.ts","../../src/machine/chips/antic.ts","../../src/machine/chips/gtia.ts","../../src/machine/chips/pokey.ts","../../src/machine/chips/tms9918a.ts","../../src/parser/lang-6502.ts","../../src/parser/lang-basic.ts","../../src/parser/lang-bataribasic.ts","../../src/parser/lang-dialog.ts","../../src/parser/lang-fastbasic.ts","../../src/parser/lang-inform6.ts","../../src/parser/lang-verilog.ts","../../src/parser/lang-wiz.ts","../../src/parser/lang-z80.ts","../../src/parser/tokens-6502.ts","../../src/parser/tokens-6809.ts","../../src/parser/tokens-z80.ts","../../src/platform/_index.ts","../../src/platform/apple2.ts","../../src/platform/arm32.ts","../../src/platform/astrocade.ts","../../src/platform/atari7800.ts","../../src/platform/atari8.ts","../../src/platform/basic.ts","../../src/platform/c64.ts","../../src/platform/channelf.ts","../../src/platform/coleco.ts","../../src/platform/cpc.ts","../../src/platform/devel.ts","../../src/platform/exidy.ts","../../src/platform/galaxian.ts","../../src/platform/gb.ts","../../src/platform/kim1.ts","../../src/platform/mcr.ts","../../src/platform/msx.ts","../../src/platform/mw8080bw.ts","../../src/platform/nes.ts","../../src/platform/pacman.ts","../../src/platform/pce.ts","../../src/platform/sms.ts","../../src/platform/sound_konami.ts","../../src/platform/sound_williams.ts","../../src/platform/vcs.ts","../../src/platform/vector.ts","../../src/platform/vectrex.ts","../../src/platform/verilog.ts","../../src/platform/vic20.ts","../../src/platform/vicdual.ts",".Line truncated
+70
View File
@@ -0,0 +1,70 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = __importDefault(require("assert"));
const mocha_1 = require("mocha");
const pixeleditor_1 = require("../../src/ide/pixeleditor");
const PAL_A = new Uint32Array([0xff000000, 0xff0000ff, 0xff00ff00, 0xffff0000]);
const PAL_B = new Uint32Array([0xff111111, 0xff222222, 0xff333333, 0xff444444]);
function clip(width, height, indexes, palette) {
return {
width: width,
height: height,
pixels: new Uint32Array(indexes.map((i) => palette[i])),
palette: palette.slice()
};
}
function indexesOf(pixels, palette) {
return Array.from(pixels).map((rgba) => palette.indexOf(rgba));
}
(0, mocha_1.describe)('Pixel editor clipboard', function () {
(0, mocha_1.it)('should paste over the whole image when sizes match', function () {
var src = clip(2, 2, [0, 1, 2, 3], PAL_A);
var dst = new Uint32Array([PAL_A[3], PAL_A[3], PAL_A[3], PAL_A[3]]);
var out = (0, pixeleditor_1.pasteClipboardPixels)(src, dst, 2, 2, PAL_A);
assert_1.default.deepEqual(indexesOf(out, PAL_A), [0, 1, 2, 3]);
});
(0, mocha_1.it)('should not modify the destination array in place', function () {
var src = clip(1, 1, [1], PAL_A);
var dst = new Uint32Array([PAL_A[0]]);
(0, pixeleditor_1.pasteClipboardPixels)(src, dst, 1, 1, PAL_A);
assert_1.default.equal(dst[0], PAL_A[0]);
});
(0, mocha_1.it)('should remap colors by palette index when palettes differ', function () {
var src = clip(2, 2, [0, 1, 2, 3], PAL_A);
var dst = new Uint32Array(4).fill(PAL_B[0]);
var out = (0, pixeleditor_1.pasteClipboardPixels)(src, dst, 2, 2, PAL_B);
assert_1.default.deepEqual(indexesOf(out, PAL_B), [0, 1, 2, 3]);
});
(0, mocha_1.it)('should wrap palette indexes when the destination palette is smaller', function () {
var pal2 = PAL_B.slice(0, 2);
var src = clip(2, 2, [0, 1, 2, 3], PAL_A);
var dst = new Uint32Array(4).fill(pal2[0]);
var out = (0, pixeleditor_1.pasteClipboardPixels)(src, dst, 2, 2, pal2);
assert_1.default.deepEqual(indexesOf(out, pal2), [0, 1, 0, 1]);
});
(0, mocha_1.it)('should clip a larger source and leave the rest of the destination alone', function () {
var src = clip(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], PAL_A);
var dst = new Uint32Array(4).fill(PAL_A[3]);
var out = (0, pixeleditor_1.pasteClipboardPixels)(src, dst, 2, 2, PAL_A);
assert_1.default.deepEqual(indexesOf(out, PAL_A), [1, 1, 1, 1]);
});
(0, mocha_1.it)('should keep destination pixels outside a smaller source', function () {
var src = clip(1, 1, [1], PAL_A);
var dst = new Uint32Array(4).fill(PAL_A[3]);
var out = (0, pixeleditor_1.pasteClipboardPixels)(src, dst, 2, 2, PAL_A);
assert_1.default.deepEqual(indexesOf(out, PAL_A), [1, 3, 3, 3]);
});
(0, mocha_1.it)('should pass through colors that are not in the source palette', function () {
var src = {
width: 1, height: 1,
pixels: new Uint32Array([0xff123456]),
palette: PAL_A.slice()
};
var out = (0, pixeleditor_1.pasteClipboardPixels)(src, new Uint32Array([PAL_B[0]]), 1, 1, PAL_B);
assert_1.default.equal(out[0], 0xff123456);
});
});
//# sourceMappingURL=testpixelclipboard.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"testpixelclipboard.js","sourceRoot":"","sources":["../../../test/unit/testpixelclipboard.ts"],"names":[],"mappings":"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"}
+120
View File
@@ -0,0 +1,120 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = __importDefault(require("assert"));
const mocha_1 = require("mocha");
const toolmeta_1 = require("../../src/common/toolmeta");
// Node-friendly worker entry point (re-exports TOOLS without Worker wiring)
const workerlib_1 = require("../../src/worker/workerlib");
(0, mocha_1.describe)('Tool metadata registry', function () {
(0, mocha_1.it)('every registry key matches its tool id', function () {
for (let id in toolmeta_1.TOOL_META) {
assert_1.default.strictEqual(toolmeta_1.TOOL_META[id].id, id, `TOOL_META['${id}'].id mismatch`);
}
});
(0, mocha_1.it)('every worker build tool is registered (and vice versa)', function () {
// worker TOOLS -> must exist in registry
for (let id of Object.keys(workerlib_1.TOOLS)) {
assert_1.default.ok(toolmeta_1.TOOL_META[id], `worker TOOLS['${id}'] missing from TOOL_META`);
}
// registry -> must have a worker build fn, unless explicitly deferred
// or built on a remote server (llvm-mos)
for (let id in toolmeta_1.TOOL_META) {
let meta = toolmeta_1.TOOL_META[id];
if (meta.noWorkerBuild || meta.remote)
continue;
assert_1.default.ok(workerlib_1.TOOLS[id], `TOOL_META['${id}'] missing from worker TOOLS`);
}
});
(0, mocha_1.it)('getToolMeta strips the remote: transport prefix', function () {
assert_1.default.strictEqual((0, toolmeta_1.getToolMeta)('remote:llvm-mos'), toolmeta_1.TOOL_META['llvm-mos']);
assert_1.default.strictEqual((0, toolmeta_1.getToolMeta)('llvm-mos'), toolmeta_1.TOOL_META['llvm-mos']);
assert_1.default.strictEqual((0, toolmeta_1.getToolMeta)('bogus'), undefined);
});
(0, mocha_1.it)('getToolMetaForFilename finds tools by extension', function () {
assert_1.default.ok((0, toolmeta_1.getToolMetaForFilename)('foo.c').some(m => m.id === 'cc65'));
assert_1.default.ok((0, toolmeta_1.getToolMetaForFilename)('foo.s').some(m => m.id === 'ca65'));
assert_1.default.ok((0, toolmeta_1.getToolMetaForFilename)('foo.wiz').some(m => m.id === 'wiz'));
assert_1.default.ok((0, toolmeta_1.getToolMetaForFilename)('foo.ecs').some(m => m.id === 'ecs'));
assert_1.default.ok((0, toolmeta_1.getToolMetaForFilename)('foo.dg').some(m => m.id === 'dialog'));
// unknown extension -> no matches
assert_1.default.deepStrictEqual((0, toolmeta_1.getToolMetaForFilename)('foo.xyz'), []);
});
(0, mocha_1.it)('getPreloadFSName resolves per-platform filesystems', function () {
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('cc65', 'nes'), '65-nes');
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('cc65', 'c64'), '65-c64');
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('cc65', 'nonexistent'), undefined);
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('sdcc'), 'sdcc'); // default config
assert_1.default.strictEqual((0, toolmeta_1.getPreloadFSName)('dasm'), undefined);
});
(0, mocha_1.it)('getSkeletonName defaults to the tool id', function () {
assert_1.default.strictEqual((0, toolmeta_1.getSkeletonName)('dasm'), 'dasm');
assert_1.default.strictEqual((0, toolmeta_1.getSkeletonName)('remote:llvm-mos'), 'llvm-mos');
});
(0, mocha_1.it)('covers the previously-scattered editor styles and help URLs', function () {
// spot-check ids that used to live in TOOL_TO_SOURCE_STYLE / TOOL_TO_HELPURL
for (let id of ['dasm', 'acme', 'cc65', 'ca65', 'sdcc', 'cmoc', 'zmac',
'nesasm', 'bataribasic', 'fastbasic', 'wiz', 'silice', 'ecs', 'dialog']) {
assert_1.default.ok(toolmeta_1.TOOL_META[id], `expected tool '${id}' in registry`);
}
assert_1.default.strictEqual(toolmeta_1.TOOL_META['cc65'].editorStyle, 'text/x-csrc');
assert_1.default.strictEqual(toolmeta_1.TOOL_META['ca65'].editorStyle, '6502');
assert_1.default.ok(toolmeta_1.TOOL_META['dasm'].helpURL);
});
(0, mocha_1.it)('include patterns exist for tools that do dependency parsing', function () {
assert_1.default.ok(toolmeta_1.TOOL_META['cc65'].includePatterns.length > 0);
assert_1.default.ok(toolmeta_1.TOOL_META['verilator'].includePatterns.length > 0);
assert_1.default.ok(toolmeta_1.TOOL_META['acme'].includePatterns.length > 0);
assert_1.default.ok(toolmeta_1.TOOL_META['dialog'].includePatterns.length > 0);
assert_1.default.ok(toolmeta_1.TOOL_META['wiz'].includePatterns.length > 0);
});
(0, mocha_1.it)('matches include directives for the tool that builds the file', function () {
let deps = (text, tool, platform) => (0, toolmeta_1.matchDependencyPatterns)(text, (0, toolmeta_1.getIncludePatterns)(tool, platform));
assert_1.default.deepStrictEqual(deps('#include "foo.h"\n', 'cc65'), ['foo.h']);
assert_1.default.deepStrictEqual(deps('\t.include "foo.inc"\n', 'ca65'), ['foo.inc']);
assert_1.default.deepStrictEqual(deps('//#resource "foo.bin"\n', 'dasm'), ['foo.bin']);
assert_1.default.deepStrictEqual(deps('!src "foo.acme"\n', 'acme'), ['foo.acme']);
assert_1.default.deepStrictEqual(deps('%% #include "foo.dg"\n', 'dialog'), ['foo.dg']);
assert_1.default.deepStrictEqual(deps(' USE foo.xasm\n', 'xasm6809'), ['foo.xasm']);
// ecs uses both its own import and the shared .include directive
assert_1.default.deepStrictEqual(deps('.include "vcs.h"\nimport "lib.ecs"\n', 'ecs'), ['vcs.h', 'lib.ecs']);
// wiz: import gets an implicit .wiz extension, embed does not
assert_1.default.deepStrictEqual(deps('import "nes";\nembed "map.bin";\n', 'wiz'), ['nes.wiz', 'map.bin']);
// verilog: .arch names a .json file
assert_1.default.deepStrictEqual(deps('`include "hvsync.v"\n.arch mynes\n', 'verilator'), ['hvsync.v', 'mynes.json']);
// unknown tool falls back to the platform
assert_1.default.deepStrictEqual(deps('`include "hvsync.v"\n', null, 'verilog'), ['hvsync.v']);
assert_1.default.deepStrictEqual(deps('#include "foo.h"\n', null, 'c64'), ['foo.h']);
});
(0, mocha_1.it)('matches link directives only for tools that link', function () {
let deps = (text, tool, platform) => (0, toolmeta_1.matchDependencyPatterns)(text, (0, toolmeta_1.getLinkPatterns)(tool, platform));
assert_1.default.deepStrictEqual(deps('//#link "foo.c"\n', 'cc65'), ['foo.c']);
assert_1.default.deepStrictEqual(deps(';#link "foo.s"\n', 'ca65'), ['foo.s']);
assert_1.default.deepStrictEqual(deps('//#link "foo.v"\n', 'verilator'), []); // hdl tools don't link
assert_1.default.deepStrictEqual(deps('//#link "foo.v"\n', null, 'verilog'), []);
});
(0, mocha_1.it)('parses verilog directives in .asm files built by jsasm', function () {
// presets/verilog/test2.asm: .include "*.v" plus ".arch femto16"
let text = '.include "cpu16.v"\n.arch femto16\n';
let files = (0, toolmeta_1.matchDependencyPatterns)(text, (0, toolmeta_1.getIncludePatterns)('jsasm', 'verilog'));
assert_1.default.deepStrictEqual(files, ['cpu16.v', 'femto16.json']);
// and no shared-pattern duplicate of the .include
assert_1.default.strictEqual(files.filter(f => f == 'cpu16.v').length, 1);
});
(0, mocha_1.it)('falls back to the platform when a tool declares no patterns', function () {
// 'basic' has no includePatterns of its own -> platform default
assert_1.default.deepStrictEqual((0, toolmeta_1.matchDependencyPatterns)('#include "foo.h"\n', (0, toolmeta_1.getIncludePatterns)('basic', 'c64')), ['foo.h']);
// an explicit empty list means "this tool has no such directives"
assert_1.default.deepStrictEqual((0, toolmeta_1.getLinkPatterns)('jsasm', 'verilog'), []);
});
(0, mocha_1.it)('rewinds shared global patterns between files', function () {
// patterns are shared between tools and have the /g flag, so a stale
// lastIndex would make the second scan miss the directive
let pats = (0, toolmeta_1.getIncludePatterns)('cc65');
assert_1.default.deepStrictEqual((0, toolmeta_1.matchDependencyPatterns)('#include "a.h"\n', pats), ['a.h']);
assert_1.default.deepStrictEqual((0, toolmeta_1.matchDependencyPatterns)('#include "b.h"\n', pats), ['b.h']);
});
});
//# sourceMappingURL=testtoolmeta.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"testtoolmeta.js","sourceRoot":"","sources":["../../../test/unit/testtoolmeta.ts"],"names":[],"mappings":"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 truncated
-4
View File
@@ -270,10 +270,6 @@ async function doCompile(args, positional, checkOnly) {
process.exit(1);
}
// Preload the tool's filesystem if needed
var preloadKey = tool;
if (testlib_1.TOOL_PRELOADFS[tool + '-' + platform]) {
preloadKey = tool;
}
await (0, testlib_1.preload)(tool, platform);
var result = await (0, testlib_1.compileSourceFile)(tool, platform, sourceFile);
if (!result.success) {
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"8bws.js","sourceRoot":"","sources":["../../src/tools/8bws.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"8bws.js","sourceRoot":"","sources":["../../src/tools/8bws.ts"],"names":[],"mappings":"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 truncated
+16 -69
View File
@@ -36,7 +36,7 @@ var __importStar = (this && this.__importStar) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.TOOLS = exports.PLATFORM_PARAMS = exports.TOOL_PRELOADFS = exports.store = void 0;
exports.TOOLS = exports.PLATFORM_PARAMS = exports.store = void 0;
exports.initialize = initialize;
exports.preload = preload;
exports.compile = compile;
@@ -51,9 +51,9 @@ const fs = __importStar(require("fs"));
const path = __importStar(require("path"));
const util_1 = require("../common/util");
const baseplatform_1 = require("../common/baseplatform");
const toolmeta_1 = require("../common/toolmeta");
const workerlib_1 = require("../worker/workerlib");
Object.defineProperty(exports, "store", { enumerable: true, get: function () { return workerlib_1.store; } });
Object.defineProperty(exports, "TOOL_PRELOADFS", { enumerable: true, get: function () { return workerlib_1.TOOL_PRELOADFS; } });
const platforms_1 = require("../worker/platforms");
Object.defineProperty(exports, "PLATFORM_PARAMS", { enumerable: true, get: function () { return platforms_1.PLATFORM_PARAMS; } });
const workertools_1 = require("../worker/workertools");
@@ -126,83 +126,26 @@ async function compileFile(tool, platform, presetPath) {
}
/**
* Parse include and link dependencies from source text.
* Extracted from CodeProject.parseIncludeDependencies / parseLinkDependencies.
* TODO: project.ts should be refactored so we don't have to duplicate the logic
* Patterns come from the tool registry (src/common/toolmeta.ts), the same
* ones CodeProject uses in the IDE.
*/
function parseIncludeDependencies(text, platformId, mainPath) {
function parseDependencies(text, platformId, mainPath, patterns) {
let files = [];
let m;
var dir = (0, util_1.getFolderForPath)(mainPath);
function pushFile(fn) {
for (let fn of (0, toolmeta_1.matchDependencyPatterns)(text, patterns)) {
files.push(fn);
if (dir.length > 0 && dir != 'local')
files.push(dir + '/' + fn);
}
if (platformId.startsWith('verilog')) {
let re1 = /^\s*(`include|[.]include)\s+"(.+?)"/gmi;
while (m = re1.exec(text)) {
pushFile(m[2]);
}
let re1a = /^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi;
while (m = re1a.exec(text)) {
pushFile(m[2]);
}
let re2 = /^\s*([.]arch)\s+(\w+)/gmi;
while (m = re2.exec(text)) {
pushFile(m[2] + ".json");
}
let re3 = /\$readmem[bh]\("(.+?)"/gmi;
while (m = re3.exec(text)) {
pushFile(m[1]);
}
}
else {
let re2 = /^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi;
while (m = re2.exec(text)) {
pushFile(m[2]);
}
let re3 = /^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm;
while (m = re3.exec(text)) {
pushFile(m[3]);
}
let re4 = /^\s+(USE|ASM)\s+(\S+[.]\S+)/gm;
while (m = re4.exec(text)) {
pushFile(m[2]);
}
let re5 = /^\s*(import|embed)\s*"(.+?)";/gmi;
while (m = re5.exec(text)) {
if (m[1] == 'import')
pushFile(m[2] + ".wiz");
else
pushFile(m[2]);
}
let re6 = /^\s*(import)\s*"(.+?)"/gmi;
while (m = re6.exec(text)) {
pushFile(m[2]);
}
let re7 = /^[!]src\s+"(.+?)"/gmi;
while (m = re7.exec(text)) {
pushFile(m[1]);
}
}
return files;
}
function parseIncludeDependencies(text, platformId, mainPath) {
let tool = getToolForFilename(mainPath, platformId);
return parseDependencies(text, platformId, mainPath, (0, toolmeta_1.getIncludePatterns)(tool, platformId));
}
function parseLinkDependencies(text, platformId, mainPath) {
let files = [];
let m;
var dir = (0, util_1.getFolderForPath)(mainPath);
function pushFile(fn) {
files.push(fn);
if (dir.length > 0 && dir != 'local')
files.push(dir + '/' + fn);
}
if (!platformId.startsWith('verilog')) {
let re = /^\s*([;]|[/][/])#link\s+"(.+?)"/gm;
while (m = re.exec(text)) {
pushFile(m[2]);
}
}
return files;
let tool = getToolForFilename(mainPath, platformId);
return parseDependencies(text, platformId, mainPath, (0, toolmeta_1.getLinkPatterns)(tool, platformId));
}
/**
* Try to resolve a file path by searching the source directory,
@@ -296,6 +239,10 @@ function getToolForFilename(fn, platform) {
return (0, baseplatform_1.getToolForFilename_6502)(fn);
case '6809':
return (0, baseplatform_1.getToolForFilename_6809)(fn);
case 'verilog':
if (fn.endsWith('.asm'))
return 'jsasm';
return fn.endsWith('.ice') ? 'silice' : 'verilator';
default:
return (0, baseplatform_1.getToolForFilename_z80)(fn); // fallback
}
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"testlib.js","sourceRoot":"","sources":["../../src/tools/testlib.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"testlib.js","sourceRoot":"","sources":["../../src/tools/testlib.ts"],"names":[],"mappings":"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 truncated
+1 -1
View File
@@ -1 +1 @@
{"root":["../src/common/analysis.ts","../src/common/audio.ts","../src/common/baseplatform.ts","../src/common/binutils.ts","../src/common/devices.ts","../src/common/emu.ts","../src/common/gbpalette.ts","../src/common/mameplatform.ts","../src/common/probe.ts","../src/common/recorder.ts","../src/common/teletype.ts","../src/common/tokenizer.ts","../src/common/util.ts","../src/common/vlist.ts","../src/common/vtextscroller.ts","../src/common/wasmplatform.ts","../src/common/workertypes.ts","../src/common/audio/CommodoreTape.ts","../src/common/basic/compiler.ts","../src/common/basic/fuzz.ts","../src/common/basic/run.ts","../src/common/basic/runtime.ts","../src/common/cpu/6809.ts","../src/common/cpu/ARM.ts","../src/common/cpu/F8.ts","../src/common/cpu/MOS6502.ts","../src/common/cpu/SM83.ts","../src/common/cpu/ZilogZ80.ts","../src/common/cpu/disasm6502.ts","../src/common/cpu/disasmF8.ts","../src/common/cpu/disasmHuC6280.ts","../src/common/cpu/disasmSM83.ts","../src/common/cpu/disasmz80.ts","../src/common/ecs/binpack.ts","../src/common/ecs/compiler.ts","../src/common/ecs/decoder.ts","../src/common/ecs/ecs.ts","../src/common/ecs/main.ts","../src/common/hdl/fuzz.ts","../src/common/hdl/hdlruntime.ts","../src/common/hdl/hdltypes.ts","../src/common/hdl/hdlwasm.ts","../src/common/hdl/vxmlparser.ts","../src/common/hdl/vxmltest.ts","../src/common/wasi/libretro.ts","../src/common/wasi/wasishim.ts","../src/ide/dialogs.ts","../src/ide/embedui.ts","../src/ide/pixeleditor.ts","../src/ide/project.ts","../src/ide/services.ts","../src/ide/settings.ts","../src/ide/shareexport.ts","../src/ide/sync.ts","../src/ide/toolbar.ts","../src/ide/ui.ts","../src/ide/waveform.ts","../src/ide/windows.ts","../src/ide/views/assetdecorations.ts","../src/ide/views/asseteditor.ts","../src/ide/views/baseviews.ts","../src/ide/views/debug.ts","../src/ide/views/debugviews.ts","../src/ide/views/editors.ts","../src/ide/views/filters.ts","../src/ide/views/gutter.ts","../src/ide/views/tabs.ts","../src/ide/views/traceviews.ts","../src/ide/views/treeviews.ts","../src/ide/views/visuals.ts","../src/machine/apple2.ts","../src/machine/arm32.ts","../src/machine/astrocade.ts","../src/machine/atari7800.ts","../src/machine/atari8.ts","../src/machine/c64.ts","../src/machine/channelf.ts","../src/machine/coleco.ts","../src/machine/cpc.ts","../src/machine/devel.ts","../src/machine/exidy.ts","../src/machine/galaxian.ts","../src/machine/gb.ts","../src/machine/kim1.ts","../src/machine/mcr.ts","../src/machine/msx.ts","../src/machine/mw8080bw.ts","../src/machine/pacman.ts","../src/machine/sms.ts","../src/machine/vdp_z80.ts","../src/machine/vic20.ts","../src/machine/vicdual.ts","../src/machine/williams.ts","../src/machine/zx.ts","../src/machine/chips/antic.ts","../src/machine/chips/gtia.ts","../src/machine/chips/pokey.ts","../src/machine/chips/tms9918a.ts","../src/parser/lang-6502.ts","../src/parser/lang-basic.ts","../src/parser/lang-bataribasic.ts","../src/parser/lang-dialog.ts","../src/parser/lang-fastbasic.ts","../src/parser/lang-inform6.ts","../src/parser/lang-verilog.ts","../src/parser/lang-wiz.ts","../src/parser/lang-z80.ts","../src/parser/tokens-6502.ts","../src/parser/tokens-6809.ts","../src/parser/tokens-z80.ts","../src/platform/_index.ts","../src/platform/apple2.ts","../src/platform/arm32.ts","../src/platform/astrocade.ts","../src/platform/atari7800.ts","../src/platform/atari8.ts","../src/platform/basic.ts","../src/platform/c64.ts","../src/platform/channelf.ts","../src/platform/coleco.ts","../src/platform/cpc.ts","../src/platform/devel.ts","../src/platform/exidy.ts","../src/platform/galaxian.ts","../src/platform/gb.ts","../src/platform/kim1.ts","../src/platform/markdown.ts","../src/platform/mcr.ts","../src/platform/msx.ts","../src/platform/mw8080bw.ts","../src/platform/nes.ts","../src/platform/pacman.ts","../src/platform/pce.ts","../src/platform/sms.ts","../src/platform/sound_konami.ts","../src/platform/sound_williams.ts","../src/platform/vcs.ts","../src/platform/vector.ts","../src/platform/vectrex.ts","../src/platform/verilog.ts","../src/platform/vic20.ts","../src/platform/vicdual.ts","../src/platform/williams.ts","../src/platform/x86.ts","../src/platform/zmachine.ts","../src/platform/zx.ts","../src/themes/cobalt.ts","../src/themes/disassemblyTheme.ts","../src/themes/editorTheme.ts","../src/themes/mbo.ts","../src/tools/8bws.ts","../src/tools/nodemock.ts","../src/tools/runmachine.ts","../src/tools/sim6502.ts","../src/tools/termimage.ts","../src/tools/testlib.ts","../src/worker/assembler.ts","../src/worker/builder.ts","../src/worker/listingutils.ts","../src/worker/platforms.ts","../src/worker/wasiutils.ts","../src/worker/wasmutils.ts","../src/worker/workerlib.ts","../src/worker/workermain.ts","../src/worker/workertools.ts","../src/worker/server/buildenv.ts","../src/worker/server/clang.ts","../src/worker/server/server.ts","../src/worker/tools/acme.ts","../src/worker/tools/arm.ts","../src/worker/tools/bataribasic.ts","../src/worker/tools/cc2600.ts","../src/worker/tools/cc6Line truncated
{"root":["../src/common/analysis.ts","../src/common/audio.ts","../src/common/baseplatform.ts","../src/common/binutils.ts","../src/common/devices.ts","../src/common/emu.ts","../src/common/gbpalette.ts","../src/common/mameplatform.ts","../src/common/probe.ts","../src/common/recorder.ts","../src/common/teletype.ts","../src/common/tokenizer.ts","../src/common/toolmeta.ts","../src/common/util.ts","../src/common/vlist.ts","../src/common/vtextscroller.ts","../src/common/wasmplatform.ts","../src/common/workertypes.ts","../src/common/audio/CommodoreTape.ts","../src/common/basic/compiler.ts","../src/common/basic/fuzz.ts","../src/common/basic/run.ts","../src/common/basic/runtime.ts","../src/common/cpu/6809.ts","../src/common/cpu/ARM.ts","../src/common/cpu/F8.ts","../src/common/cpu/MOS6502.ts","../src/common/cpu/SM83.ts","../src/common/cpu/ZilogZ80.ts","../src/common/cpu/disasm6502.ts","../src/common/cpu/disasmF8.ts","../src/common/cpu/disasmHuC6280.ts","../src/common/cpu/disasmSM83.ts","../src/common/cpu/disasmz80.ts","../src/common/ecs/binpack.ts","../src/common/ecs/compiler.ts","../src/common/ecs/decoder.ts","../src/common/ecs/ecs.ts","../src/common/ecs/main.ts","../src/common/hdl/fuzz.ts","../src/common/hdl/hdlruntime.ts","../src/common/hdl/hdltypes.ts","../src/common/hdl/hdlwasm.ts","../src/common/hdl/vxmlparser.ts","../src/common/hdl/vxmltest.ts","../src/common/wasi/libretro.ts","../src/common/wasi/wasishim.ts","../src/ide/dialogs.ts","../src/ide/embedui.ts","../src/ide/pixeleditor.ts","../src/ide/project.ts","../src/ide/services.ts","../src/ide/settings.ts","../src/ide/shareexport.ts","../src/ide/sync.ts","../src/ide/toolbar.ts","../src/ide/ui.ts","../src/ide/waveform.ts","../src/ide/windows.ts","../src/ide/views/assetdecorations.ts","../src/ide/views/asseteditor.ts","../src/ide/views/baseviews.ts","../src/ide/views/debug.ts","../src/ide/views/debugviews.ts","../src/ide/views/editors.ts","../src/ide/views/filters.ts","../src/ide/views/gutter.ts","../src/ide/views/tabs.ts","../src/ide/views/traceviews.ts","../src/ide/views/treeviews.ts","../src/ide/views/visuals.ts","../src/machine/apple2.ts","../src/machine/arm32.ts","../src/machine/astrocade.ts","../src/machine/atari7800.ts","../src/machine/atari8.ts","../src/machine/c64.ts","../src/machine/channelf.ts","../src/machine/coleco.ts","../src/machine/cpc.ts","../src/machine/devel.ts","../src/machine/exidy.ts","../src/machine/galaxian.ts","../src/machine/gb.ts","../src/machine/kim1.ts","../src/machine/mcr.ts","../src/machine/msx.ts","../src/machine/mw8080bw.ts","../src/machine/pacman.ts","../src/machine/sms.ts","../src/machine/vdp_z80.ts","../src/machine/vic20.ts","../src/machine/vicdual.ts","../src/machine/williams.ts","../src/machine/zx.ts","../src/machine/chips/antic.ts","../src/machine/chips/gtia.ts","../src/machine/chips/pokey.ts","../src/machine/chips/tms9918a.ts","../src/parser/lang-6502.ts","../src/parser/lang-basic.ts","../src/parser/lang-bataribasic.ts","../src/parser/lang-dialog.ts","../src/parser/lang-fastbasic.ts","../src/parser/lang-inform6.ts","../src/parser/lang-verilog.ts","../src/parser/lang-wiz.ts","../src/parser/lang-z80.ts","../src/parser/tokens-6502.ts","../src/parser/tokens-6809.ts","../src/parser/tokens-z80.ts","../src/platform/_index.ts","../src/platform/apple2.ts","../src/platform/arm32.ts","../src/platform/astrocade.ts","../src/platform/atari7800.ts","../src/platform/atari8.ts","../src/platform/basic.ts","../src/platform/c64.ts","../src/platform/channelf.ts","../src/platform/coleco.ts","../src/platform/cpc.ts","../src/platform/devel.ts","../src/platform/exidy.ts","../src/platform/galaxian.ts","../src/platform/gb.ts","../src/platform/kim1.ts","../src/platform/mcr.ts","../src/platform/msx.ts","../src/platform/mw8080bw.ts","../src/platform/nes.ts","../src/platform/pacman.ts","../src/platform/pce.ts","../src/platform/sms.ts","../src/platform/sound_konami.ts","../src/platform/sound_williams.ts","../src/platform/vcs.ts","../src/platform/vector.ts","../src/platform/vectrex.ts","../src/platform/verilog.ts","../src/platform/vic20.ts","../src/platform/vicdual.ts","../src/platform/williams.ts","../src/platform/x86.ts","../src/platform/zmachine.ts","../src/platform/zx.ts","../src/themes/cobalt.ts","../src/themes/disassemblyTheme.ts","../src/themes/editorTheme.ts","../src/themes/mbo.ts","../src/tools/8bws.ts","../src/tools/nodemock.ts","../src/tools/runmachine.ts","../src/tools/sim6502.ts","../src/tools/termimage.ts","../src/tools/testlib.ts","../src/worker/assembler.ts","../src/worker/builder.ts","../src/worker/listingutils.ts","../src/worker/platforms.ts","../src/worker/wasiutils.ts","../src/worker/wasmutils.ts","../src/worker/workerlib.ts","../src/worker/workermain.ts","../src/worker/workertools.ts","../src/worker/server/buildenv.ts","../src/worker/server/clang.ts","../src/worker/server/server.ts","../src/worker/tools/acme.ts","../src/worker/tools/arm.ts","../src/worker/tools/bataribasic.ts","../src/worker/tools/cc2600.ts","../src/worker/tools/cc65.Line truncated
+1 -1
View File
@@ -1,2 +1,2 @@
import{A,B,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-KP2LCIGE.js";import"./chunk-7GWCUXYG.js";import"./chunk-LNOKARBD.js";import"./chunk-A7SWO6EA.js";import"./chunk-LVDMCWZP.js";import"./chunk-AA227H53.js";import"./chunk-BNFOPPUS.js";import"./chunk-KT7KMEQC.js";export{q as clearBreakpoint,f as current_project,A as emulationHalted,n as getCurrentEditorFilename,m as getCurrentMainFilename,k as getCurrentOutput,j as getCurrentProject,v as getPlatformAndRepo,i as getPlatformStore,z as getSaveState,y as getTestOutput,l as getWorkerParams,t as gotoNewLocation,s as haltEmulation,h as lastDebugState,e as platform,b as platform_id,g as projectWindows,a as qs,B as reloadWorkspaceFile,d as repo_id,p as runToPC,r as setFrameRateUI,x as setTestInput,o as setupBreakpoint,u as setupSplits,w as startUI,c as store_id};
import{A,B,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-LXSSE5FC.js";import"./chunk-7GWCUXYG.js";import"./chunk-LNOKARBD.js";import"./chunk-A7SWO6EA.js";import"./chunk-73C6ISBD.js";import"./chunk-AA227H53.js";import"./chunk-BNFOPPUS.js";import"./chunk-KT7KMEQC.js";export{q as clearBreakpoint,f as current_project,A as emulationHalted,n as getCurrentEditorFilename,m as getCurrentMainFilename,k as getCurrentOutput,j as getCurrentProject,v as getPlatformAndRepo,i as getPlatformStore,z as getSaveState,y as getTestOutput,l as getWorkerParams,t as gotoNewLocation,s as haltEmulation,h as lastDebugState,e as platform,b as platform_id,g as projectWindows,a as qs,B as reloadWorkspaceFile,d as repo_id,p as runToPC,r as setFrameRateUI,x as setTestInput,o as setupBreakpoint,u as setupSplits,w as startUI,c as store_id};
//# sourceMappingURL=ui.js.map
+1290 -822
View File
File diff suppressed because it is too large. Load diff
+3 -3
View File
@@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../../node_modules/jszip/dist/jszip.min.js", "../../src/common/util.ts", "../../src/common/basic/compiler.ts", "../../src/worker/platforms.ts", "../../src/worker/builder.ts", "../../src/worker/wasmutils.ts", "../../src/worker/listingutils.ts", "../../src/worker/tools/misc.ts", "../../src/worker/tools/cc65.ts", "../../src/common/wasi/wasishim.ts", "../../src/worker/tools/dasm.ts", "../../src/worker/tools/mcpp.ts", "../../src/worker/tools/sdcc.ts", "../../src/worker/assembler.ts", "../../src/common/hdl/hdltypes.ts", "../../src/common/hdl/vxmlparser.ts", "../../src/worker/tools/verilog.ts", "../../src/worker/tools/m6809.ts", "../../src/worker/tools/m6502.ts", "../../src/worker/tools/z80.ts", "../../src/worker/tools/x86.ts", "../../src/common/binutils.ts", "../../src/worker/wasiutils.ts", "../../src/worker/tools/arm.ts", "../../src/common/tokenizer.ts", "../../src/common/ecs/binpack.ts", "../../src/common/ecs/ecs.ts", "../../src/common/ecs/decoder.ts", "../../src/common/ecs/compiler.ts", "../../src/worker/tools/ecs.ts", "../../src/common/workertypes.ts", "../../src/worker/tools/remote.ts", "../../src/worker/tools/acme.ts", "../../src/worker/tools/cc7800.ts", "../../src/worker/tools/cc2600.ts", "../../src/worker/tools/bataribasic.ts", "../../src/worker/tools/oscar64parse.ts", "../../src/worker/tools/oscar64.ts", "../../src/worker/tools/xa.ts", "../../src/worker/tools/dialog.ts", "../../src/worker/workertools.ts", "../../src/worker/workermain.ts"],
"sourcesContent": ["/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){\"use strict\";var d=e(\"./utils\"),c=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c=\"string\"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u=\"data:\";if(e.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoActioLine truncated
"mappings": "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 truncated
"sources": ["../../node_modules/jszip/dist/jszip.min.js", "../../src/common/util.ts", "../../src/common/toolmeta.ts", "../../src/worker/platforms.ts", "../../src/common/basic/compiler.ts", "../../src/worker/wasmutils.ts", "../../src/worker/listingutils.ts", "../../src/worker/tools/misc.ts", "../../src/worker/tools/cc65.ts", "../../src/common/wasi/wasishim.ts", "../../src/worker/tools/dasm.ts", "../../src/worker/tools/mcpp.ts", "../../src/worker/tools/sdcc.ts", "../../src/worker/assembler.ts", "../../src/common/hdl/hdltypes.ts", "../../src/common/hdl/vxmlparser.ts", "../../src/worker/tools/verilog.ts", "../../src/worker/tools/m6809.ts", "../../src/worker/tools/m6502.ts", "../../src/worker/tools/z80.ts", "../../src/worker/tools/x86.ts", "../../src/common/binutils.ts", "../../src/worker/wasiutils.ts", "../../src/worker/tools/arm.ts", "../../src/common/tokenizer.ts", "../../src/common/ecs/binpack.ts", "../../src/common/ecs/ecs.ts", "../../src/common/ecs/decoder.ts", "../../src/common/ecs/compiler.ts", "../../src/worker/tools/ecs.ts", "../../src/common/workertypes.ts", "../../src/worker/tools/remote.ts", "../../src/worker/tools/acme.ts", "../../src/worker/tools/cc7800.ts", "../../src/worker/tools/cc2600.ts", "../../src/worker/tools/bataribasic.ts", "../../src/worker/tools/oscar64parse.ts", "../../src/worker/tools/oscar64.ts", "../../src/worker/tools/xa.ts", "../../src/worker/tools/dialog.ts", "../../src/worker/workertools.ts", "../../src/worker/builder.ts", "../../src/worker/workermain.ts"],
"sourcesContent": ["/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){\"use strict\";var d=e(\"./utils\"),c=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c=\"string\"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u=\"data:\";if(e.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoActioLine truncated
"mappings": "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 truncated
"names": ["exports", "e", "t", "r", "c", "n", "i", "s", "a", "o", "h", "u", "l", "f", "d", "p", "m", "attrs", "s", "debug", "s", "s", "hex", "CompileError", "s", "code", "s", "re_error", "s", "m", "lst", "DwarfTag", "DwarfAttribute", "JSZip", "line", "m", "CompileError", "mergeLocs", "CompileError", "debug", "debug", "isLiteral", "isBinOp", "isUnOp", "e", "isLiteral", "OPERATORS", "getOperator", "getPrecedence", "mergeLocs", "tok", "isLiteral", "getPrecedence", "getOperator", "valtype", "CompileError", "wasiModule", "hex", "wasiModule", "wasiModule", "wasiModule", "re_error", "exports", "ENVIRONMENT_IS_WORKER", "e"]
}
-19
View File
@@ -33,7 +33,6 @@ var __importStar = (this && this.__importStar) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.translateShowdown = translateShowdown;
exports.compileInform6 = compileInform6;
exports.compileBASIC = compileBASIC;
exports.compileWiz = compileWiz;
@@ -42,24 +41,6 @@ const util_1 = require("../../common/util");
const wasmutils_1 = require("../wasmutils");
const builder_1 = require("../builder");
const listingutils_1 = require("../listingutils");
const workermain_1 = require("../workermain");
function translateShowdown(step) {
(0, workermain_1.setupRequireFunction)();
(0, wasmutils_1.load)("showdown.min");
var showdown = wasmutils_1.emglobal['showdown'];
var converter = new showdown.Converter({
tables: 'true',
smoothLivePreview: 'true',
requireSpaceBeforeHeadingText: 'true',
emoji: 'true',
});
var code = (0, builder_1.getWorkFileAsString)(step.path);
var html = converter.makeHtml(code);
delete wasmutils_1.emglobal['require'];
return {
output: html
};
}
function compileInform6(step) {
(0, wasmutils_1.loadNative)("inform");
var errors = [];
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/worker/tools/misc.ts"],"names":[],"mappings":"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 truncated
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/worker/tools/misc.ts"],"names":[],"mappings":"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 truncated
+6 -10
View File
@@ -36,14 +36,13 @@ var __importStar = (this && this.__importStar) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.TOOLS = exports.PLATFORM_PARAMS = exports.TOOL_PRELOADFS = exports.builder = exports.store = void 0;
exports.TOOLS = exports.PLATFORM_PARAMS = exports.builder = exports.store = void 0;
exports.setupNodeEnvironment = setupNodeEnvironment;
exports.handleMessage = handleMessage;
const fs = __importStar(require("fs"));
const path = __importStar(require("path"));
const util_1 = require("../common/util");
const workertools_1 = require("./workertools");
Object.defineProperty(exports, "TOOL_PRELOADFS", { enumerable: true, get: function () { return workertools_1.TOOL_PRELOADFS; } });
const toolmeta_1 = require("../common/toolmeta");
const builder_1 = require("./builder");
Object.defineProperty(exports, "store", { enumerable: true, get: function () { return builder_1.store; } });
Object.defineProperty(exports, "builder", { enumerable: true, get: function () { return builder_1.builder; } });
@@ -51,8 +50,8 @@ const wasmutils_1 = require("./wasmutils");
const workermain_1 = require("./workermain");
var platforms_1 = require("./platforms");
Object.defineProperty(exports, "PLATFORM_PARAMS", { enumerable: true, get: function () { return platforms_1.PLATFORM_PARAMS; } });
var workertools_2 = require("./workertools");
Object.defineProperty(exports, "TOOLS", { enumerable: true, get: function () { return workertools_2.TOOLS; } });
var workertools_1 = require("./workertools");
Object.defineProperty(exports, "TOOLS", { enumerable: true, get: function () { return workertools_1.TOOLS; } });
class Blob {
constructor(data) {
this.data = data;
@@ -165,11 +164,8 @@ function setupNodeEnvironment() {
async function handleMessage(data) {
// preload file system
if (data.preload) {
var fsName = workertools_1.TOOL_PRELOADFS[data.preload];
if (!fsName && data.platform)
fsName = workertools_1.TOOL_PRELOADFS[data.preload + '-' + (0, util_1.getBasePlatform)(data.platform)];
if (!fsName && data.platform)
fsName = workertools_1.TOOL_PRELOADFS[data.preload + '-' + (0, util_1.getRootBasePlatform)(data.platform)];
var fsName = (0, toolmeta_1.getPreloadFSName)(data.preload, data.platform && (0, util_1.getBasePlatform)(data.platform))
|| (0, toolmeta_1.getPreloadFSName)(data.preload, data.platform && (0, util_1.getRootBasePlatform)(data.platform));
if (fsName && !wasmutils_1.fsMeta[fsName])
(0, wasmutils_1.loadFilesystem)(fsName);
return;
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"workerlib.js","sourceRoot":"","sources":["../../src/worker/workerlib.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"workerlib.js","sourceRoot":"","sources":["../../src/worker/workerlib.ts"],"names":[],"mappings":"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"}
+3 -6
View File
@@ -2,7 +2,7 @@
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupRequireFunction = setupRequireFunction;
const util_1 = require("../common/util");
const workertools_1 = require("./workertools");
const toolmeta_1 = require("../common/toolmeta");
const builder_1 = require("./builder");
const wasmutils_1 = require("./wasmutils");
function setupRequireFunction() {
@@ -22,11 +22,8 @@ function setupRequireFunction() {
async function handleMessage(data) {
// preload file system
if (data.preload) {
var fs = workertools_1.TOOL_PRELOADFS[data.preload];
if (!fs && data.platform)
fs = workertools_1.TOOL_PRELOADFS[data.preload + '-' + (0, util_1.getBasePlatform)(data.platform)];
if (!fs && data.platform)
fs = workertools_1.TOOL_PRELOADFS[data.preload + '-' + (0, util_1.getRootBasePlatform)(data.platform)];
var fs = (0, toolmeta_1.getPreloadFSName)(data.preload, data.platform && (0, util_1.getBasePlatform)(data.platform))
|| (0, toolmeta_1.getPreloadFSName)(data.preload, data.platform && (0, util_1.getRootBasePlatform)(data.platform));
if (fs && !wasmutils_1.fsMeta[fs])
(0, wasmutils_1.loadFilesystem)(fs);
return;
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"workermain.js","sourceRoot":"","sources":["../../src/worker/workermain.ts"],"names":[],"mappings":";;AAUA,oDAWC;AAnBD,yCAAsE;AACtE,+CAA+C;AAC/C,uCAA6E;AAC7E,2CAA+D;AAK/D,SAAgB,oBAAoB;IAClC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,OAAO,CAAC,OAAO,CAAC,GAAG;QACjB,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;KACF,CAAC;IACF,oBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,OAAe,EAAE,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAA;AACH,CAAC;AAED,4BAA4B;AAE5B,6FAA6F;AAE7F,KAAK,UAAU,aAAa,CAAC,IAAmB;IAC9C,sBAAsB;IACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,EAAE,GAAG,4BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ;YACtB,EAAE,GAAG,4BAAc,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ;YACtB,EAAE,GAAG,4BAAc,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,IAAA,0BAAmB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/E,IAAI,EAAE,IAAI,CAAC,kBAAM,CAAC,EAAE,CAAC;YACnB,IAAA,0BAAc,EAAC,EAAE,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,qCAAqC;IACrC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,eAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,OAAO,iBAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,qBAAqB,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC;AAClE,IAAI,qBAAqB,EAAE,CAAC;IAC1B,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,SAAS,GAAG,KAAK,WAAW,CAAC;QAC3B,MAAM,WAAW,CAAC,CAAC,wCAAwC;QAC3D,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAAM,GAAG,MAAM,WAAW,CAAC;QAC/B,WAAW,GAAG,IAAI,CAAC;QACnB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,WAAW,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACf,WAAW,CAAC,IAAA,qBAAW,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
{"version":3,"file":"workermain.js","sourceRoot":"","sources":["../../src/worker/workermain.ts"],"names":[],"mappings":";;AAUA,oDAWC;AAnBD,yCAAsE;AACtE,iDAAsD;AACtD,uCAA6E;AAC7E,2CAA+D;AAK/D,SAAgB,oBAAoB;IAClC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,OAAO,CAAC,OAAO,CAAC,GAAG;QACjB,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;KACF,CAAC;IACF,oBAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,OAAe,EAAE,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAA;AACH,CAAC;AAED,4BAA4B;AAE5B,6FAA6F;AAE7F,KAAK,UAAU,aAAa,CAAC,IAAmB;IAC9C,sBAAsB;IACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,EAAE,GAAG,IAAA,2BAAgB,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAA,sBAAe,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;eACnF,IAAA,2BAAgB,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAA,0BAAmB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzF,IAAI,EAAE,IAAI,CAAC,kBAAM,CAAC,EAAE,CAAC;YACnB,IAAA,0BAAc,EAAC,EAAE,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,qCAAqC;IACrC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,eAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,OAAO,iBAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,qBAAqB,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC;AAClE,IAAI,qBAAqB,EAAE,CAAC;IAC1B,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,SAAS,GAAG,KAAK,WAAW,CAAC;QAC3B,MAAM,WAAW,CAAC,CAAC,wCAAwC;QAC3D,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAAM,GAAG,MAAM,WAAW,CAAC;QAC/B,WAAW,GAAG,IAAI,CAAC;QACnB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,WAAW,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACf,WAAW,CAAC,IAAA,qBAAW,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
+1 -38
View File
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.TOOL_PRELOADFS = exports.TOOLS = void 0;
exports.TOOLS = void 0;
const misc = __importStar(require("./tools/misc"));
const cc65 = __importStar(require("./tools/cc65"));
const dasm = __importStar(require("./tools/dasm"));
@@ -78,7 +78,6 @@ exports.TOOLS = {
'smlrc': x86.compileSmallerC,
'yasm': x86.assembleYASM,
'bataribasic': bataribasic.compileBatariBasic,
'markdown': misc.translateShowdown,
'inform6': misc.compileInform6,
'merlin32': m6502.assembleMerlin32,
'fastbasic': m6502.compileFastBasic,
@@ -97,40 +96,4 @@ exports.TOOLS = {
'xa': xa.assembleXA,
'dialog': dialog.compileDialog,
};
exports.TOOL_PRELOADFS = {
'cc65-apple2': '65-apple2',
'ca65-apple2': '65-apple2',
'cc65-c64': '65-c64',
'ca65-c64': '65-c64',
'cc65-vic20': '65-vic20',
'ca65-vic20': '65-vic20',
'cc65-nes': '65-nes',
'ca65-nes': '65-nes',
'cc65-atari8': '65-atari8',
'ca65-atari8': '65-atari8',
'cc65-vector': '65-none',
'ca65-vector': '65-none',
'cc65-atari7800': '65-none',
'ca65-atari7800': '65-none',
'cc65-devel': '65-none',
'ca65-devel': '65-none',
'cc65-vcs': '65-atari2600',
'ca65-vcs': '65-atari2600',
'cc65-pce': '65-pce',
'ca65-pce': '65-pce',
'cc65-exidy': '65-none',
'ca65-exidy': '65-none',
'sdasz80': 'sdcc',
'sdasgb': 'sdcc',
'sdcc': 'sdcc',
'sccz80': 'sccz80',
'bataribasic': '2600basic',
'inform6': 'inform',
'fastbasic': '65-atari8',
'silice': 'Silice',
'wiz': 'wiz',
'ecs-vcs': '65-atari2600', // TODO: support multiple platforms
'ecs-nes': '65-nes', // TODO: support multiple platforms
'ecs-c64': '65-c64', // TODO: support multiple platforms
};
//# sourceMappingURL=workertools.js.map
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"workertools.js","sourceRoot":"","sources":["../../src/worker/workertools.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"workertools.js","sourceRoot":"","sources":["../../src/worker/workertools.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mDAAoC;AACpC,mDAAoC;AACpC,mDAAoC;AACpC,mDAAoC;AACpC,yDAA0C;AAC1C,qDAAsC;AACtC,qDAAsC;AACtC,iDAAkC;AAClC,iDAAkC;AAClC,iDAAkC;AAClC,iDAAkC;AAClC,uDAAwC;AACxC,mDAAoC;AACpC,uDAAwC;AACxC,uDAAwC;AACxC,iEAAkD;AAClD,yDAA0C;AAC1C,+CAAgC;AAChC,uDAAwC;AAI3B,QAAA,KAAK,GAAG;IACnB,MAAM,EAAE,IAAI,CAAC,YAAY;IACzB,MAAM,EAAE,IAAI,CAAC,YAAY;IACzB,MAAM,EAAE,IAAI,CAAC,WAAW;IACxB,MAAM,EAAE,IAAI,CAAC,YAAY;IACzB,MAAM,EAAE,IAAI,CAAC,QAAQ;IACrB,2BAA2B;IAC3B,0BAA0B;IAC1B,SAAS,EAAE,IAAI,CAAC,eAAe;IAC/B,QAAQ,EAAE,IAAI,CAAC,cAAc;IAC7B,SAAS,EAAE,IAAI,CAAC,WAAW;IAC3B,MAAM,EAAE,IAAI,CAAC,WAAW;IACxB,UAAU,EAAE,KAAK,CAAC,gBAAgB;IAClC,MAAM,EAAE,KAAK,CAAC,WAAW;IACzB,OAAO,EAAE,KAAK,CAAC,aAAa;IAC5B,QAAQ,EAAE,KAAK,CAAC,UAAU;IAC1B,yBAAyB;IACzB,WAAW,EAAE,OAAO,CAAC,gBAAgB;IACrC,OAAO,EAAE,OAAO,CAAC,YAAY;IAC7B,OAAO,EAAE,OAAO,CAAC,gBAAgB;IACjC,MAAM,EAAE,GAAG,CAAC,YAAY;IACxB,QAAQ,EAAE,KAAK,CAAC,cAAc;IAC9B,OAAO,EAAE,GAAG,CAAC,eAAe;IAC5B,MAAM,EAAE,GAAG,CAAC,YAAY;IACxB,aAAa,EAAE,WAAW,CAAC,kBAAkB;IAC7C,SAAS,EAAE,IAAI,CAAC,cAAc;IAC9B,UAAU,EAAE,KAAK,CAAC,gBAAgB;IAClC,WAAW,EAAE,KAAK,CAAC,gBAAgB;IACnC,OAAO,EAAE,IAAI,CAAC,YAAY;IAC1B,QAAQ,EAAE,OAAO,CAAC,aAAa;IAC/B,KAAK,EAAE,IAAI,CAAC,UAAU;IACtB,QAAQ,EAAE,GAAG,CAAC,cAAc;IAC5B,SAAS,EAAE,GAAG,CAAC,eAAe;IAC9B,KAAK,EAAE,GAAG,CAAC,WAAW;IACtB,QAAQ,EAAE,MAAM,CAAC,WAAW;IAC5B,QAAQ,EAAE,MAAM,CAAC,aAAa;IAC9B,QAAQ,EAAE,MAAM,CAAC,aAAa;IAC9B,QAAQ,EAAE,GAAG,CAAC,aAAa;IAC3B,YAAY,EAAE,GAAG,CAAC,UAAU;IAC5B,SAAS,EAAE,OAAO,CAAC,cAAc;IACjC,IAAI,EAAE,EAAE,CAAC,UAAU;IACnB,QAAQ,EAAE,MAAM,CAAC,aAAa;CAC/B,CAAA"}
+1 -1
View File
@@ -1,6 +1,6 @@
import "c64.wiz";
import "c64";
bank zeropage @ 0x02 : [vardata; 254];
bank stackpage @ 0x100 : [vardata; 256];
-709
View File
@@ -1,709 +0,0 @@

# Syntax
(from the [Showdown](https://github.com/showdownjs/showdown) docs)
## Table of contents
- [Introduction](#introduction)
- [Paragraphs](#paragraphs)
- [Headings](#headings)
* [Atx Style](#atx-style)
* [Setext style](#setext-style)
* [Header IDs](#header-ids)
- [Blockquotes](#blockquotes)
- [Bold and Italic](#bold-and-italic)
- [Strikethrough](#strikethrough)
- [Emojis](#emojis)
- [Code formatting](#code-formatting)
* [Inline formats](#inline-formats)
* [Multiple lines](#multiple-lines)
- [Lists](#lists)
* [Unordered lists](#unordered-lists)
* [Ordered lists](#ordered-lists)
* [TaskLists (GFM Style)](#tasklists--gfm-style-)
* [List syntax](#list-syntax)
* [Nested blocks](#nested-blocks)
* [Nested lists](#nested-lists)
* [Nested code blocks](#nested-code-blocks)
- [Links](#links)
* [Simple](#simple)
* [Inline](#inline)
* [Reference Style](#reference-style)
- [Images](#images)
* [Inline](#inline-1)
* [Reference Style](#reference-style-1)
* [Image dimensions](#image-dimensions)
* [Base64 encoded images](#base64-encoded-images)
- [Tables](#tables)
- [Mentions](#mentions)
- [Handling HTML in markdown documents](#handling-html-in-markdown-documents)
- [Escaping entities](#escaping-entities)
* [Escaping markdown entities](#escaping-markdown-entities)
* [Escaping html tags](#escaping-html-tags)
- [Known differences and Gotchas](#known-differences-and-gotchas)
## Introduction
Showdown was created by John Fraser as a direct port of the original parser written by markdown's creator, John Gruber. Although Showdown has evolved since its inception, in "vanilla mode", it tries to follow the [original markdown spec][md-spec] (henceforth refereed as vanilla) as much as possible. There are, however, a few important differences, mainly due to inconsistencies in the original spec, which we addressed following the author's advice as stated in the [markdown's "official" newsletter][md-newsletter].
Showdown also support "extra" syntax not defined in the original spec as opt-in features. This means new syntax elements are not enabled by default and require users to enable them through options.
This document provides a quick description the syntax supported and the differences in output from the original markdown.pl implementation.
## Paragraphs
Paragraphs in Showdown are just **one or more lines of consecutive text** followed by one or more blank lines.
```md
On July 2, an alien mothership entered Earth's orbit and deployed several dozen
saucer-shaped "destroyer" spacecraft, each 15 miles (24 km) wide.
On July 3, the Black Knights, a squadron of Marine Corps F/A-18 Hornets,
participated in an assault on a destroyer near the city of Los Angeles.
```
The implication of the “one or more consecutive lines of text” is that Showdown supports
“hard-wrapped” text paragraphs. This means the following examples produce the same output:
```md
A very long line of text
```
```md
A very
long line
of text
```
If you DO want to add soft line breaks (which translate to `<br>` in HTML) to a paragraph,
you can do so by adding 3 space characters to the end of the line (` `).
You can also force every line break in paragraphs to translate to `<br>` (as GitHub does) by
enabling the option **`simpleLineBreaks`**.
## Headings
### Atx Style
You can create a heading by adding one or more # symbols before your heading text. The number of # you use will determine the size of the heading. This is similar to [**atx style**][atx].
```md
# The largest heading (an <h1> tag)
## The second largest heading (an <h2> tag)
…
###### The 6th largest heading (an <h6> tag)
```
The space between `#` and the heading text is not required but you can make that space mandatory by enabling the option **`requireSpaceBeforeHeadingText`**.
You can wrap the headings in `#`. Both leading and trailing `#` will be removed.
```md
## My Heading ##
```
If, for some reason, you need to keep a leading or trailing `#`, you can either add a space or escape it:
```md
# # My header # #
#\# My Header \# #
```
### Setext style
You can also use [**setext style**][setext] headings, although only two levels are available.
```md
This is an H1
=============
This is an H2
-------------
```
**Note:**
In live preview editors, when a paragraph is followed by a list it can cause an awkward effect.
![awkward effect][]
You can prevent this by enabling the option **`smoothPreview`**.
### Header IDs
Showdown generates bookmarks anchors in titles automatically, by adding an id property to an heading.
```md
# My cool header with ID
```
```html
<h1 id="mycoolheaderwithid">My cool header with ID</h1>
```
This behavior can be modified with options:
- **`noHeaderId`** disables automatic id generation;
- **`ghCompatibleHeaderId`** generates header ids compatible with github style (spaces are replaced with dashes and a bunch of non alphanumeric chars are removed)
- **`prefixHeaderId`** adds a prefix to the generated header ids (either automatic or custom).
- **`headerLevelStart`** sets the header starting level. For instance, setting this to 3 means that `# header` will be converted to `<h3>`.
Read the [README.md][readme] for more info
## Blockquotes
You can indicate blockquotes with a >.
```md
In the words of Abraham Lincoln:
> Pardon my french
```
Blockquotes can have multiple paragraphs and can have other block elements inside.
```md
> A paragraph of text
>
> Another paragraph
>
> - A list
> - with items
```
## Bold and Italic
You can make text bold or italic.
*This text will be italic*
**This text will be bold**
Both bold and italic can use either a \* or an \_ around the text for styling. This allows you to combine both bold and italic if needed.
**Everyone _must_ attend the meeting at 5 o'clock today.**
## Strikethrough
With the option **`strikethrough`** enabled, Showdown supports strikethrough elements.
The syntax is the same as GFM, that is, by adding two tilde (`~~`) characters around
a word or groups of words.
```md
a ~~strikethrough~~ element
```
a ~~strikethrough~~ element
## Emojis
Since version 1.8.0, showdown supports github's emojis. A complete list of available emojis can be found [here][emoji list].
```md
this is a :smile: smile emoji
```
this is a :smile: smile emoji
## Code formatting
### Inline formats
Use single backticks (`) to format text in a special monospace format. Everything within the backticks appear as-is, with no other special formatting.
```md
Here's an idea: why don't we take `SuperiorProject` and turn it into `**Reasonable**Project`.
```
```html
<p>Here's an idea: why don't we take <code>SuperiorProject</code> and turn it into <code>**Reasonable**Project</code>.</p>
```
### Multiple lines
To create blocks of code you should indent it by four spaces.
```md
this is a piece
of
code
```
If the options **`ghCodeBlocks`** is activated (which is by default), you can use triple backticks (```) to format text as its own distinct block.
Check out this neat program I wrote:
```
x = 0
x = 2 + 2
what is x
```
## Lists
Showdown supports ordered (numbered) and unordered (bulleted) lists.
### Unordered lists
You can make an unordered list by preceding list items with either a *, a - or a +. Markers are interchangeable too.
```md
* Item
+ Item
- Item
```
### Ordered lists
You can make an ordered list by preceding list items with a number.
```md
1. Item 1
2. Item 2
3. Item 3
```
It’s important to note that the actual numbers you use to mark the list have no effect on the HTML output Showdown produces. So you can use the same number in all items if you wish to.
### TaskLists (GFM Style)
Showdown also supports GFM styled takslists if the **`tasklists`** option is enabled.
```md
- [x] checked list item
- [ ] unchecked list item
```
- [x] checked list item
- [ ] unchecked list item
### List syntax
List markers typically start at the left margin, but may be indented by up to three spaces.
```md
* this is valid
* this is too
```
List markers must be followed by one or more spaces or a tab.
To make lists look nice, you can wrap items with hanging indents:
```md
* Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
viverra nec, fringilla in, laoreet vitae, risus.
* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
Suspendisse id sem consectetuer libero luctus adipiscing.
```
But if you want to be lazy, you don’t have to
If one list item is separated by a blank line, Showdown will wrap all the list items in `<p>` tags in the HTML output.
So this input:
```md
* Bird
* Magic
* Johnson
```
Results in:
```html
<ul>
<li><p>Bird</p></li>
<li><p>Magic</p></li>
<li><p>Johnson</p></li>
</ul>
```
This differs from other markdown implementations such as GFM (github) or commonmark.
### Nested blocks
List items may consist of multiple paragraphs. Each subsequent paragraph in a list item must be indented by either 4 spaces or one tab:
```md
1. This is a list item with two paragraphs. Lorem ipsum dolor
sit amet, consectetuer adipiscing elit. Aliquam hendrerit
mi posuere lectus.
Vestibulum enim wisi, viverra nec, fringilla in, laoreet
vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
sit amet velit.
2. Suspendisse id sem consectetuer libero luctus adipiscing.
```
This is valid for other block elements such as blockquotes:
```md
* A list item with a blockquote:
> This is a blockquote
> inside a list item.
```
or event other lists.
### Nested lists
You can create nested lists by indenting list items by **four** spaces.
```md
1. Item 1
1. A corollary to the above item.
2. Yet another point to consider.
2. Item 2
* A corollary that does not need to be ordered.
* This is indented four spaces
* You might want to consider making a new list.
3. Item 3
```
This behavior is consistent with the original spec but differs from other implementations suck as GFM or commonmark. Prior to version 1.5, you just needed to indent two spaces for it to be considered a sublist.
You can disable the **four spaces requirement** with option **`disableForced4SpacesIndentedSublists`**
To nest a third (or more) sublist level, you need to indent 4 extra spaces (or 1 extra tab) for each level.
```md
1. level 1
1. Level 2
* Level 3
2. level 2
1. Level 3
1. Level 1
```
### Nested code blocks
You can nest fenced codeblocks the same way you nest other block elements, by indenting by fours spaces or a tab:
```md
1. Some code:
```js
var foo = 'bar';
console.log(foo);
```
```
To put a *indented style* code block within a list item, the code block needs to be indented twice — 8 spaces or two tabs:
```md
1. Some code:
var foo = 'bar';
console.log(foo);
```
## Links
### Simple
If you wrap a valid URL or email in `<>` it will be turned into a link whose text is the link itself.
```md
link to <http://www.google.com/>
this is my email <somedude@mail.com>
```
In the case of email addreses, Showdown will also perform a bit of randomized decimal and hex entity-encoding to help obscure your address from address-harvesting spambots.
You can disable this obfuscation setting **`encodeEmails`** option to `false`.
With the option **`simplifiedAutoLink`** enabled, Showdown will automagically turn every valid URL it finds in the text body to links for you, without the need to wrap them in `<>`.
```md
link to http://www.google.com/
this is my email somedude@mail.com
```
### Inline
You can create an inline link by wrapping link text in brackets ( `[ ]` ), and then wrapping the link in parentheses ( `( )` ).
For example, to create a hyperlink to github.com/showdownjs/showdown, with a link text that says, Get Showdown!, you'd write this in Markdown: `[Get Showdown!](https://github.com/showdownjs/showdown)`.
### Reference Style
You can also use the reference style, like this:
```md
this is a [link to google][1]
[1]: www.google.com
```
Showdown also supports implicit link references:
```md
this is a link to [google][]
[google]: www.google.com
```
## Images
Markdown uses an image syntax that is intended to resemble the syntax for links, also allowing for two styles: inline and reference.
### Inline
Inline image syntax looks like this:
```md
![Alt text](url/to/image)
![Alt text](url/to/image "Optional title")
```
That is:
+ An exclamation mark: !;
+ followed by a set of square brackets, containing the alt attribute text for the image;
+ followed by a set of parentheses, containing the URL or path to the image, and an optional title attribute enclosed in double or single quotes.
### Reference Style
Reference-style image syntax looks like this:
```md
![Alt text][id]
```
Where “id” is the name of a defined image reference. Image references are defined using syntax identical to link references:
```md
[id]: url/to/image "Optional title attribute"
```
Implicit references are also supported in images, similar to what happens with links:
```md
![showdown logo][]
[showdown logo]: http://showdownjs.github.io/demo/img/editor.logo.white.png
```
### Image dimensions
When the option **`parseImgDimension`** is activated, you can also define the image dimensions, like this:
```md
![Alt text](url/to/image =250x250 "Optional title")
```
or in reference style:
```md
![Alt text][id]
[id]: url/to/image =250x250
```
### Base64 encoded images
Showdown also supports Base64 encoded images, both reference and inline style.
**Since version 1.7.4**, wrapping base64 strings, which are usually extremely long lines of text, is supported.
You can add newlines arbitrarily, as long as they are added after the `,` character.
**inline style**
```md
![Alt text](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7l
jmRAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAY
SURBVBhXYwCC/2AAZYEoOAMs8Z+BgQEAXdcR7/Q1gssAAAAASUVORK5CYII=)
```
**reference style**
```md
![Alt text][id]
[id]:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7l
jmRAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7D
AcdvqGQAAAAYSURBVBhXYwCC/2AAZYEoOAMs8Z+BgQEAXdcR7/Q1gssAAAAASUVORK5CYII=
```
Please note that with reference style base64 image sources, regardless of "wrapping", a double newline is needed after the base64 string to separate them from a paragraph or other text block (but references can be adjacent).
**wrapped reference style**
```md
![Alt text][id]
![Alt text][id2]
[id]:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7l
jmRAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7D
AcdvqGQAAAAYSURBVBhXYwCC/2AAZYEoOAMs8Z+BgQEAXdcR7/Q1gssAAAAASUVORK5CYII=
[id2]:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7l
jmRAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7D
AcdvqGQAAAAYSURBVBhXYwCC/2AAZYEoOAMs8Z+BgQEAXdcR7/Q1gssAAAAASUVORK5CYII=
this text needs to be separated from the references by 2 newlines
```
## Tables
Tables aren't part of the core Markdown spec, but they are part of GFM and Showdown supports them by turning on the option `tables`.
Colons can be used to align columns.
In the new version, the outer pipes (`|`) are optional, matching GFM spec.
You also don't need to make the raw Markdown line up prettily.
You can also use other markdown syntax inside them.
```md
| Tables | Are | Cool |
| ------------- |:-------------:| -----:|
| **col 3 is** | right-aligned | $1600 |
| col 2 is | *centered* | $12 |
| zebra stripes | ~~are neat~~ | $1 |
```
| Tables | Are | Cool |
| ------------- |:-------------:| -----:|
| **col 3 is** | right-aligned | $1600 |
| col 2 is | *centered* | $12 |
| zebra stripes | ~~are neat~~ | $1 |
## Mentions
Showdown supports github mentions by enabling the option **`ghMentions`**. This will turn every `@username` into a link to their github profile.
```md
hey @tivie, check this out
```
Since version 1.6.2 you can customize the generated link in mentions with the option **`ghMentionsLink`**.
For instance, setting this option to `http://mysite.com/{u}/profile`:
```html
<p>hey <a href="http://mysite.com/tivie/profile">@tivie</a>, check this out</p>
```
## Handling HTML in markdown documents
Showdown, in most cases, leaves HTML tags alone, leaving them untouched in the output document.
```md
some markdown **here**
<div>this is *not* **parsed**</div>
```
```html
<p>some markdown <strong>here</strong></p>
<div>this is *not* **parsed**</div>
```
However, there are exceptions to this. With `<code>` and `<pre><code>` tags, their contents are always escaped.
```md
some markdown **here** with <code>foo & bar <baz></baz></code>
```
```html
<p>some markdown <strong>here</strong> with <code>foo &amp; bar &lt;baz&gt;&lt;/baz&gt;</code></p>
```
If you wish to enable markdown parsing inside a specific HTML tag, you can enable it by using the html attribute **`markdown`** or **`markdown="1"`** or **`data-markdown="1"`**.
```md
some markdown **here**
<div markdown="1">this is *not* **parsed**</div>
```
```html
<p>some markdown <strong>here</strong></p>
<div markdown="1"><p>this is <em>not</em> <strong>parsed</strong></p></div>
```
## Escaping entities
### Escaping markdown entities
Showdown allows you to use backslash (`\`) escapes to generate literal characters which would otherwise have special meaning in markdown’s syntax. For example, if you wanted to surround a word with literal underscores (instead of an HTML `<em>` tag), you can use backslashes before the unserscores, like this:
```md
\_literal underscores\_
```
Showdown provides backslash escapes for the following characters:
```
\ backslash
` backtick
* asterisk
_ underscore
{} curly braces
[] square brackets
() parentheses
# hash mark
+ plus sign
- minus sign (hyphen)
. dot
! exclamation mark
```
### Escaping HTML tags
Since [version 1.7.2](https://github.com/showdownjs/showdown/tree/1.7.2) backslash escaping HTML tags is supported when `backslashEscapesHTMLTags` option is enabled.
```md
\<div>a literal div\</div>
```
## Known differences and Gotchas
In most cases, Showdown's output is identical to that of Perl Markdown v1.0.2b7. What follows is a list of all known deviations. Please file an issue if you find more.
* **Since version 1.4.0, showdown supports the markdown="1" attribute**, but for older versions, this attribute is ignored. This means:
<div markdown="1">
Markdown does *not* work in here.
</div>
* You can only nest square brackets in link titles to a depth of two levels:
[[fine]](http://www.github.com/)
[[[broken]]](http://www.github.com/)
If you need more, you can escape them with backslashes.
* A list is **single paragraph** if it has only **1 line-break separating items** and it becomes **multi paragraph if ANY of its items is separated by 2 line-breaks**:
```md
- foo
- bar
- baz
```
becomes
```html
<ul>
<li><p>foo</p></li>
<li><p>bar</p></li>
<li><p>baz</p></li>
</ul>
```
This new ruleset is based on the comments of Markdown's author John Gruber in the [Markdown discussion list][md-newsletter].
[md-spec]: http://daringfireball.net/projects/markdown/
[md-newsletter]: https://pairlist6.pair.net/mailman/listinfo/markdown-discuss
[atx]: http://www.aaronsw.com/2002/atx/intro
[setext]: https://en.wikipedia.org/wiki/Setext
[readme]: https://github.com/showdownjs/showdown/blob/master/README.md
[awkward effect]: http://i.imgur.com/YQ9iHTL.gif
[emoji list]: https://github.com/showdownjs/showdown/wiki/emojis
-4
View File
@@ -1,4 +0,0 @@
### Heading
(see [Showdown syntax](https://github.com/showdownjs/showdown/wiki/Showdown%27s-Markdown-syntax))
+671
View File
@@ -0,0 +1,671 @@
/*
* Tool metadata registry.
*
* Single source of truth for declarative (data-only) metadata about every
* build tool, keyed by tool id. Both the IDE (src/ide) and the worker
* (src/worker) import this module.
*
* What lives here:
* - extension -> tool selection hints
* - editor (CodeMirror) styles and help URLs (was TOOL_TO_SOURCE_STYLE/HELPURL in src/ide/ui.ts)
* - preload filesystem names per platform (was TOOL_PRELOADFS in src/worker/workertools.ts)
* - wasm module names (was loadNative() args in src/worker/tools/*.ts)
* - include/link dependency patterns (was parseIncludeDependencies in src/ide/project.ts)
* - remote/server tool config (was ServerBuildTool in src/worker/server/buildenv.ts)
*
* What stays OUT of this module (behavior cannot cross the worker boundary):
* - build functions (src/worker/workertools.ts `TOOLS` map)
* - error matchers, listing parsers (src/worker/tools/*.ts)
* - machine layout params (code_start, rom_size, ... -> src/worker/platforms.ts PLATFORM_PARAMS)
*
* A unit test cross-checks that every id in TOOL_META has a worker build fn
* (unless noWorkerBuild) and vice versa.
*/
export type ToolKind =
| 'compiler' // source -> object/output (cc65, sdcc, cmoc, oscar64, ...)
| 'assembler' // asm -> object (dasm, acme, ca65, ...)
| 'linker' // object(s) -> binary (ld65, sdldz80, lwlink, ...)
| 'interpreter' // e.g. BASIC
| 'hdl' // hardware description (verilator, yosys, silice)
| 'remote' // builds on a remote server (llvm-mos)
export type ToolArch =
| '6502' | 'z80' | '6809' | 'arm32' | 'x86' | 'gbz80' | 'verilog' | 'zmachine';
export interface PlatformToolConfig {
/** preload filesystem name for this platform (was TOOL_PRELOADFS compound keys) */
preloadFS?: string;
/** skeleton filename override (defaults to tool id) */
skeleton?: string;
/** library args for this platform (was PLATFORM_PARAMS.libargs) */
libargs?: string[];
/** linker config filename (was PLATFORM_PARAMS.cfgfile) */
cfgfile?: string;
/** extra compiler args (was PLATFORM_PARAMS.extra_compile_args) */
extraCompileArgs?: string[];
/** default output filename (was server buildenv platform_configs.outfile) */
defaultOutput?: string;
}
export interface ServerToolConfig {
version?: string;
/** platforms this tool supports on the remote server */
platforms: string[];
binpath: string;
command: string;
args: string[];
}
export interface ToolIncludePattern {
re: RegExp;
group?: number;
suffix?: string;
}
export interface ToolMeta {
/** join key, e.g. 'cc65', 'dasm', 'llvm-mos'. Note: 'remote:' is a transport
* prefix, not part of the id -- getToolMeta() strips it. */
id: string;
/** human-readable display name */
name: string;
kind: ToolKind;
/** CPU architecture the tool targets (helps disambiguate ambiguous extensions) */
arch?: ToolArch;
// ---- tool-global metadata (same on every platform) ----
/** filename extensions this tool consumes (explicit ones; fallback/default
* selection is still the platform's job) */
extensions: string[];
/** CodeMirror editor mode (was TOOL_TO_SOURCE_STYLE) */
editorStyle?: string;
/** documentation URL (was TOOL_TO_HELPURL) */
helpURL?: string;
/** skeleton filename in presets/<platform>/, defaults to tool id */
skeleton?: string;
/** wasm/emscripten module name loaded by the worker (was loadNative() arg) */
wasmModule?: string;
/** regexes matching include directives, used for dependency parsing */
includePatterns?: (RegExp | ToolIncludePattern)[];
/** regexes matching link directives, used for dependency parsing */
linkPatterns?: (RegExp | ToolIncludePattern)[];
// ---- per-platform metadata (was TOOL_PRELOADFS / PLATFORM_PARAMS) ----
/** platform id -> config overrides */
platforms?: { [platform: string]: PlatformToolConfig };
// ---- remote/server metadata (was ServerBuildTool in buildenv.ts) ----
/** true if this tool builds on a remote server (llvm-mos) */
remote?: boolean;
/** remote server build config */
server?: ServerToolConfig;
/** true if the id is registered here but has no worker build fn yet
* (sccz80, naken) -- tolerated by the TOOLS <-> TOOL_META cross-check */
noWorkerBuild?: boolean;
}
//// shared dependency-parsing patterns (from src/ide/project.ts)
// C / most assemblers: [.#%]?include|incbin|embed "file", //#resource "file"
export const SHARED_INCLUDE_PATTERNS: RegExp[] = [
/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi,
/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm,
];
// C / most assemblers: //#link "file" (or ;link)
export const SHARED_LINK_PATTERNS: RegExp[] = [
/^\s*([;]|[/][/])#link\s+"(.+?)"/gm,
];
// Verilog family: `include/.include, $include/$dofile/$write_image_in_table,
// .arch json, $readmem[bh]
export const VERILOG_INCLUDE_PATTERNS: (RegExp | ToolIncludePattern)[] = [
/^\s*(`include|[.]include)\s+"(.+?)"/gmi,
/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi,
{ re: /^\s*([.]arch)\s+(\w+)/gmi, suffix: '.json' },
/\$readmem[bh]\("(.+?)"/gmi,
];
// xasm6809 (USE) and merlin32 (ASM): " USE file.ext"
export const USE_ASM_INCLUDE_PATTERNS: RegExp[] = [
/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm,
];
// acme: !src "file"
export const ACME_INCLUDE_PATTERNS: RegExp[] = [
/^[!]src\s+"(.+?)"/gmi,
];
// wiz: import "file"; (implicit .wiz extension) / embed "file";
export const WIZ_INCLUDE_PATTERNS: (RegExp | ToolIncludePattern)[] = [
{ re: /^\s*import\s*"(.+?)";/gmi, suffix: '.wiz' },
/^\s*embed\s*"(.+?)";/gmi,
];
// ecs: import "file"
export const ECS_INCLUDE_PATTERNS: RegExp[] = [
/^\s*(import)\s*"(.+?)"/gmi,
];
// dialog: %% #include "file" (comment directive)
export const DIALOG_INCLUDE_PATTERNS: RegExp[] = [
/^\s*%%\s*#include\s+"(.+?)"/gm,
];
//// preload filesystem names per tool/platform (was TOOL_PRELOADFS)
const CC65_PRELOADFS: { [platform: string]: PlatformToolConfig } = {
'apple2': { preloadFS: '65-apple2' },
'c64': { preloadFS: '65-c64' },
'vic20': { preloadFS: '65-vic20' },
'nes': { preloadFS: '65-nes' },
'atari8': { preloadFS: '65-atari8' },
'vector': { preloadFS: '65-none' },
'atari7800': { preloadFS: '65-none' },
'devel': { preloadFS: '65-none' },
'vcs': { preloadFS: '65-atari2600' },
'pce': { preloadFS: '65-pce' },
'exidy': { preloadFS: '65-none' },
};
//// tool registry
export const TOOL_META: { [id: string]: ToolMeta } = {
// ---- 6502 assemblers ----
dasm: {
id: 'dasm', name: 'DASM', kind: 'assembler', arch: '6502',
extensions: ['.dasm'],
editorStyle: '6502',
helpURL: 'https://raw.githubusercontent.com/sehugg/dasm/master/doc/dasm.txt',
wasmModule: 'dasm',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
acme: {
id: 'acme', name: 'ACME', kind: 'assembler', arch: '6502',
extensions: ['.acme'],
editorStyle: '6502',
helpURL: 'https://raw.githubusercontent.com/sehugg/acme/main/docs/QuickRef.txt',
wasmModule: 'acme',
includePatterns: [...SHARED_INCLUDE_PATTERNS, ...ACME_INCLUDE_PATTERNS],
linkPatterns: SHARED_LINK_PATTERNS,
},
xa: {
id: 'xa', name: 'XA', kind: 'assembler', arch: '6502',
extensions: ['.xa'],
editorStyle: '6502',
helpURL: 'https://www.floodgap.com/retrotech/xa/',
wasmModule: 'xa',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
nesasm: {
id: 'nesasm', name: 'NESASM', kind: 'assembler', arch: '6502',
extensions: ['.nesasm'],
editorStyle: '6502',
wasmModule: 'nesasm',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
merlin32: {
id: 'merlin32', name: 'Merlin 32', kind: 'assembler', arch: '6502',
extensions: ['.lnk'],
editorStyle: '6502',
wasmModule: 'merlin32',
includePatterns: [...SHARED_INCLUDE_PATTERNS, ...USE_ASM_INCLUDE_PATTERNS],
linkPatterns: SHARED_LINK_PATTERNS,
},
// ---- cc65 toolchain ----
cc65: {
id: 'cc65', name: 'cc65', kind: 'compiler', arch: '6502',
extensions: ['.c', '.h'],
editorStyle: 'text/x-csrc',
helpURL: 'https://cc65.github.io/doc/cc65.html',
wasmModule: 'cc65',
platforms: CC65_PRELOADFS,
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
ca65: {
id: 'ca65', name: 'ca65', kind: 'assembler', arch: '6502',
extensions: ['.s', '.ca65'],
editorStyle: '6502',
helpURL: 'https://cc65.github.io/doc/ca65.html',
wasmModule: 'ca65',
platforms: CC65_PRELOADFS,
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
ld65: {
id: 'ld65', name: 'ld65', kind: 'linker', arch: '6502',
extensions: [],
wasmModule: 'ld65',
},
// ---- SDCC toolchain (z80) ----
sdcc: {
id: 'sdcc', name: 'SDCC', kind: 'compiler', arch: 'z80',
extensions: ['.c', '.h'],
editorStyle: 'text/x-csrc',
helpURL: 'http://sdcc.sourceforge.net/doc/sdccman.pdf',
wasmModule: 'sdcc',
platforms: { default: { preloadFS: 'sdcc' } },
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
sdasz80: {
id: 'sdasz80', name: 'sdasz80', kind: 'assembler', arch: 'z80',
extensions: ['.s'],
editorStyle: 'z80',
wasmModule: 'sdasz80',
platforms: { default: { preloadFS: 'sdcc' } },
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
sdasgb: {
id: 'sdasgb', name: 'sdasgb', kind: 'assembler', arch: 'gbz80',
extensions: ['.sgb'],
editorStyle: 'z80',
wasmModule: 'sdasgb',
platforms: { default: { preloadFS: 'sdcc' } },
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
sdldz80: {
id: 'sdldz80', name: 'sdldz80', kind: 'linker', arch: 'z80',
extensions: [],
wasmModule: 'sdldz80',
},
sccz80: {
id: 'sccz80', name: 'sccz80', kind: 'compiler', arch: 'z80',
extensions: ['.scc'],
platforms: { default: { preloadFS: 'sccz80' } },
noWorkerBuild: true,
},
naken: {
id: 'naken', name: 'Naken', kind: 'assembler',
extensions: ['.ns'],
noWorkerBuild: true,
},
// ---- z80 assemblers ----
zmac: {
id: 'zmac', name: 'zmac', kind: 'assembler', arch: 'z80',
extensions: ['.z'],
editorStyle: 'z80',
helpURL: 'https://raw.githubusercontent.com/sehugg/zmac/master/doc.txt',
wasmModule: 'zmac',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
jsasm: {
id: 'jsasm', name: 'JSASM', kind: 'assembler',
extensions: ['.asm'],
editorStyle: 'z80',
// pure JS assembler, no wasm module. Only used on the verilog platform,
// where .asm files pull in .v modules and name a CPU with '.arch'.
includePatterns: VERILOG_INCLUDE_PATTERNS,
linkPatterns: [],
},
// ---- 6809 toolchain ----
xasm6809: {
id: 'xasm6809', name: 'XASM6809', kind: 'assembler', arch: '6809',
extensions: ['.xasm'],
editorStyle: '6809',
wasmModule: 'xasm6809',
includePatterns: [...SHARED_INCLUDE_PATTERNS, ...USE_ASM_INCLUDE_PATTERNS],
linkPatterns: SHARED_LINK_PATTERNS,
},
cmoc: {
id: 'cmoc', name: 'CMOC', kind: 'compiler', arch: '6809',
extensions: ['.c', '.h'],
editorStyle: 'text/x-csrc',
helpURL: 'http://perso.b2b2c.ca/~sarrazip/dev/cmoc.html',
wasmModule: 'cmoc',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
lwasm: {
id: 'lwasm', name: 'LWASM', kind: 'assembler', arch: '6809',
extensions: ['.lwasm'],
wasmModule: 'lwasm',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
lwlink: {
id: 'lwlink', name: 'LWLINK', kind: 'linker', arch: '6809',
extensions: [],
wasmModule: 'lwlink',
},
// ---- ARM ----
vasmarm: {
id: 'vasmarm', name: 'vasm (ARM)', kind: 'assembler', arch: 'arm32',
extensions: ['.vasm'],
editorStyle: 'vasm',
wasmModule: 'vasmarm_std',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
armips: {
id: 'armips', name: 'armips', kind: 'assembler', arch: 'arm32',
extensions: ['.armips'],
editorStyle: 'vasm',
wasmModule: 'armips',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
armtcc: {
id: 'armtcc', name: 'TCC (ARM)', kind: 'compiler', arch: 'arm32',
extensions: ['.c', '.s'],
editorStyle: 'text/x-csrc',
wasmModule: 'arm-tcc',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
armtcclink: {
id: 'armtcclink', name: 'TCC (ARM) link', kind: 'linker', arch: 'arm32',
extensions: [],
wasmModule: 'arm-tcc',
},
// ---- x86 ----
smlrc: {
id: 'smlrc', name: 'SmallerC', kind: 'compiler', arch: 'x86',
extensions: ['.c'],
editorStyle: 'text/x-csrc',
wasmModule: 'smlrc',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
yasm: {
id: 'yasm', name: 'YASM', kind: 'assembler', arch: 'x86',
extensions: ['.asm'],
editorStyle: 'gas',
wasmModule: 'yasm',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
// ---- 6502 C compilers / BASIC dialects ----
oscar64: {
id: 'oscar64', name: 'Oscar64', kind: 'compiler', arch: '6502',
extensions: ['.c', '.cpp', '.cc', '.o64'],
editorStyle: 'text/x-csrc',
helpURL: 'https://github.com/drmortalwombat/oscar64/blob/main/oscar64.md',
wasmModule: 'oscar64',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
bataribasic: {
id: 'bataribasic', name: 'batari Basic', kind: 'compiler', arch: '6502',
extensions: ['.bb', '.bas'],
editorStyle: 'bataribasic',
helpURL: 'help/bataribasic/manual.html',
wasmModule: 'bb2600basic',
platforms: { default: { preloadFS: '2600basic' } },
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
fastbasic: {
id: 'fastbasic', name: 'FastBasic', kind: 'compiler', arch: '6502',
extensions: ['.bas', '.fb', '.fbi'],
editorStyle: 'fastbasic',
helpURL: 'https://github.com/dmsc/fastbasic/blob/master/manual.md',
wasmModule: 'fastbasic-int',
platforms: { default: { preloadFS: '65-atari8' } },
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
cc2600: {
id: 'cc2600', name: 'CC2600', kind: 'compiler', arch: '6502',
extensions: ['.cc2600'],
editorStyle: 'text/x-csrc',
wasmModule: 'cc2600',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
cc7800: {
id: 'cc7800', name: 'CC7800', kind: 'compiler', arch: '6502',
extensions: ['.cc7800', '.c78'],
editorStyle: 'text/x-csrc',
wasmModule: 'cc7800',
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
},
// ---- other languages ----
basic: {
id: 'basic', name: 'BASIC', kind: 'interpreter',
extensions: ['.bas'],
editorStyle: 'basic',
},
wiz: {
id: 'wiz', name: 'wiz', kind: 'compiler',
extensions: ['.wiz'],
editorStyle: 'text/x-wiz',
helpURL: 'https://github.com/wiz-lang/wiz/blob/master/readme.md#wiz',
wasmModule: 'wiz',
platforms: { default: { preloadFS: 'wiz' } },
includePatterns: WIZ_INCLUDE_PATTERNS,
},
ecs: {
id: 'ecs', name: 'ECS', kind: 'assembler', arch: '6502',
extensions: ['.ecs'],
editorStyle: 'ecs',
platforms: {
vcs: { preloadFS: '65-atari2600' },
nes: { preloadFS: '65-nes' },
c64: { preloadFS: '65-c64' },
},
includePatterns: [...SHARED_INCLUDE_PATTERNS, ...ECS_INCLUDE_PATTERNS],
},
inform6: {
id: 'inform6', name: 'Inform 6', kind: 'compiler', arch: 'zmachine',
extensions: ['.inf'],
editorStyle: 'inform6',
wasmModule: 'inform',
platforms: { default: { preloadFS: 'inform' } },
},
dialog: {
id: 'dialog', name: 'Dialog', kind: 'compiler', arch: 'zmachine',
extensions: ['.dg'],
editorStyle: 'dialog',
helpURL: 'https://linusakesson.net/dialog/docs/',
wasmModule: 'dialogc',
includePatterns: DIALOG_INCLUDE_PATTERNS,
},
// ---- verilog / HDL ----
verilator: {
id: 'verilator', name: 'Verilator', kind: 'hdl', arch: 'verilog',
extensions: ['.v'],
editorStyle: 'verilog',
helpURL: 'https://www.veripool.org/ftp/verilator_doc.pdf',
wasmModule: 'verilator_bin',
includePatterns: VERILOG_INCLUDE_PATTERNS,
linkPatterns: [],
},
yosys: {
id: 'yosys', name: 'Yosys', kind: 'hdl', arch: 'verilog',
extensions: [],
wasmModule: 'yosys',
includePatterns: VERILOG_INCLUDE_PATTERNS,
linkPatterns: [],
},
silice: {
id: 'silice', name: 'Silice', kind: 'hdl', arch: 'verilog',
extensions: ['.ice'],
editorStyle: 'verilog',
helpURL: 'https://github.com/sylefeb/Silice',
wasmModule: 'silice',
platforms: { default: { preloadFS: 'Silice' } },
includePatterns: VERILOG_INCLUDE_PATTERNS,
linkPatterns: [],
},
// ---- remote / server ----
'llvm-mos': {
id: 'llvm-mos', name: 'LLVM-MOS', kind: 'compiler', arch: '6502',
extensions: ['.c', '.cpp', '.s', '.S', '.C'],
editorStyle: 'text/x-csrc', // used as 'remote:llvm-mos' in the IDE
helpURL: 'https://llvm-mos.org/wiki/Welcome',
remote: true,
includePatterns: SHARED_INCLUDE_PATTERNS,
linkPatterns: SHARED_LINK_PATTERNS,
server: {
version: 'latest',
platforms: ['atari8', 'c64', 'nes', 'pce', 'vcs'],
binpath: 'llvm-mos/bin',
command: 'mos-clang',
args: ['-Os', '-g', '-D', '__8BITWORKSHOP__', '-o', '$OUTFILE', '$INFILES'],
},
},
// TODO: do we need this too?
remote: {
id: 'remote', name: 'Remote build', kind: 'remote',
extensions: [],
remote: true,
},
};
//// helpers
/**
* Look up tool metadata by tool id. Tolerates the 'remote:' transport prefix
* used in build steps (e.g. 'remote:llvm-mos' -> 'llvm-mos').
*/
export function getToolMeta(id: string): ToolMeta | undefined {
return TOOL_META[id.replace(/^remote:/, '')];
}
/**
* Return all tools that consume the given filename (longest extension match
* first). Ambiguity is resolved by the platform, which picks from these.
*/
export function getToolMetaForFilename(fn: string): ToolMeta[] {
let matches: { meta: ToolMeta, len: number }[] = [];
for (let id in TOOL_META) {
let meta = TOOL_META[id];
for (let ext of meta.extensions) {
if (ext && fn.endsWith(ext)) {
matches.push({ meta, len: ext.length });
break;
}
}
}
return matches.sort((a, b) => b.len - a.len).map(m => m.meta);
}
/**
* Resolve the preload filesystem name for a tool on a platform
* (was TOOL_PRELOADFS, including compound 'tool-platform' keys).
*/
export function getPreloadFSName(tool: string, platform?: string): string | undefined {
let meta = getToolMeta(tool);
if (!meta) return undefined;
if (meta.platforms) {
if (platform) {
let p = meta.platforms[platform];
if (p && p.preloadFS) return p.preloadFS;
}
let d = meta.platforms['default'];
if (d && d.preloadFS) return d.preloadFS;
}
return undefined;
}
/** Skeleton filename in presets/<platform>/, defaults to tool id. */
export function getSkeletonName(tool: string): string {
let meta = getToolMeta(tool);
return (meta && meta.skeleton) ? meta.skeleton : tool.replace(/^remote:/, '');
}
/**
* Include patterns to use when scanning a source file for dependencies.
* Falls back to the platform (verilog vs. everything else) when the tool is
* unknown or declares no patterns of its own, which is how dependency parsing
* worked before this registry. A tool that really has no include directives
* says so with an explicit empty list.
*/
export function getIncludePatterns(tool?: string, platform?: string): (RegExp | ToolIncludePattern)[] {
let meta = tool && getToolMeta(tool);
if (meta && meta.includePatterns) return meta.includePatterns;
if (platform && platform.startsWith('verilog')) return VERILOG_INCLUDE_PATTERNS;
return SHARED_INCLUDE_PATTERNS;
}
/** Link patterns ("//#link") to use when scanning a source file. */
export function getLinkPatterns(tool?: string, platform?: string): (RegExp | ToolIncludePattern)[] {
let meta = tool && getToolMeta(tool);
if (meta && meta.linkPatterns) return meta.linkPatterns;
if (platform && platform.startsWith('verilog')) return [];
return SHARED_LINK_PATTERNS;
}
/**
* Run a set of include/link patterns over source text, returning the
* referenced filenames. The filename comes from the pattern's `group`, or
* from the last capture group if unspecified, plus any implicit `suffix`.
*/
export function matchDependencyPatterns(text: string, patterns: (RegExp | ToolIncludePattern)[]): string[] {
let files: string[] = [];
for (let pat of patterns || []) {
let p: ToolIncludePattern = pat instanceof RegExp ? { re: pat } : pat;
let m;
p.re.lastIndex = 0; // patterns are shared and global, so rewind first
while (m = p.re.exec(text)) {
let fn = m[p.group != null ? p.group : m.length - 1];
if (fn) files.push(p.suffix ? fn + p.suffix : fn);
}
}
return files;
}
+9 -75
View File
@@ -2,6 +2,7 @@
import localforage from "localforage";
import { Platform } from "../common/baseplatform";
import { getBasePlatform, getFilenamePrefix, getFolderForPath, getWithBinary, isProbablyBinary } from "../common/util";
import { getIncludePatterns, getLinkPatterns, matchDependencyPatterns } from "../common/toolmeta";
import { CodeListing, CodeListingMap, Dependency, FileData, Segment, SourceFile, WorkerErrorResult, WorkerItemUpdate, WorkerMessage, WorkerOutputResult, WorkerResult, isErrorResult, isOutputResult } from "../common/workertypes";
export interface ProjectFilesystem {
@@ -185,89 +186,22 @@ export class CodeProject {
files.push(dir + '/' + fn);
}
// TODO: use tool id to parse files, not platform
/** Patterns come from the tool registry (src/common/toolmeta.ts), keyed by
* the tool that builds the main file; the platform is only a fallback. */
parseIncludeDependencies(text: string): string[] {
let tool = this.mainPath && this.getToolForFilename(this.mainPath);
let files = [];
let m;
if (this.platform_id.startsWith('verilog')) {
// include verilog includes
let re1 = /^\s*(`include|[.]include)\s+"(.+?)"/gmi;
while (m = re1.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// for Silice
let re1a = /^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi;
while (m = re1a.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// include .arch (json) statements
let re2 = /^\s*([.]arch)\s+(\w+)/gmi;
while (m = re2.exec(text)) {
this.pushAllFiles(files, m[2] + ".json");
}
// include $readmem[bh] (TODO)
let re3 = /\$readmem[bh]\("(.+?)"/gmi;
while (m = re3.exec(text)) {
this.pushAllFiles(files, m[1]);
}
} else {
// for .asm -- [.%]include "file"
// for .c -- #include "file"
let re2 = /^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi;
while (m = re2.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// for .c -- //#resource "file" (or ;resource or #resource)
let re3 = /^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm;
while (m = re3.exec(text)) {
this.pushAllFiles(files, m[3]);
}
// for XASM only (USE include.ext)
// for merlin32 (ASM include.ext)
let re4 = /^\s+(USE|ASM)\s+(\S+[.]\S+)/gm;
while (m = re4.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// for wiz
let re5 = /^\s*(import|embed)\s*"(.+?)";/gmi;
while (m = re5.exec(text)) {
if (m[1] == 'import')
this.pushAllFiles(files, m[2] + ".wiz");
else
this.pushAllFiles(files, m[2]);
}
// for ecs
let re6 = /^\s*(import)\s*"(.+?)"/gmi;
while (m = re6.exec(text)) {
this.pushAllFiles(files, m[2]);
}
// for acme
let re7 = /^[!]src\s+"(.+?)"/gmi;
while (m = re7.exec(text)) {
this.pushAllFiles(files, m[1]);
}
// for dialog -- %% #include "file" (dialog has no include directive,
// so the compiler is handed every file listed in a comment instead)
let re8 = /^\s*%%\s*#include\s+"(.+?)"/gm;
while (m = re8.exec(text)) {
this.pushAllFiles(files, m[1]);
}
// TODO: for xa assembler
for (let fn of matchDependencyPatterns(text, getIncludePatterns(tool, this.platform_id))) {
this.pushAllFiles(files, fn);
}
return files;
}
parseLinkDependencies(text: string): string[] {
let tool = this.mainPath && this.getToolForFilename(this.mainPath);
let files = [];
let m;
if (this.platform_id.startsWith('verilog')) {
//
} else {
// for .c -- //#link "file" (or ;link or #link)
let re = /^\s*([;]|[/][/])#link\s+"(.+?)"/gm;
while (m = re.exec(text)) {
this.pushAllFiles(files, m[2]);
}
for (let fn of matchDependencyPatterns(text, getLinkPatterns(tool, this.platform_id))) {
this.pushAllFiles(files, fn);
}
return files;
}
+6 -62
View File
@@ -9,6 +9,7 @@ import {
arrayCompare, byteArrayToUTF8, decodeQueryString, getBasePlatform, getCookie, getFilenameForPath, getFilenamePrefix,
getRootBasePlatform, getWithBinary, hex, highlightDifferences, isProbablyBinary, loadScript, parseBool, stringToByteArray
} from "../common/util";
import { getSkeletonName, getToolMeta } from "../common/toolmeta";
import { FileData, WorkerError, WorkerResult } from "../common/workertypes";
import { importPlatform } from "../platform/_index";
import { alertError, alertInfo, fatalError, setWaitDialog } from "./dialogs";
@@ -107,64 +108,7 @@ export function getWorkerParams() {
return compparams;
}
// TODO: codemirror multiplex support?
// TODO: move to views.ts?
const TOOL_TO_SOURCE_STYLE = {
'dasm': '6502',
'acme': '6502',
'xa': '6502',
'cc65': 'text/x-csrc',
'ca65': '6502',
'nesasm': '6502',
'z80asm': 'z80',
'sdasz80': 'z80',
'sdasgb': 'z80',
'sdcc': 'text/x-csrc',
'verilator': 'verilog',
'jsasm': 'z80',
'zmac': 'z80',
'bataribasic': 'bataribasic',
'markdown': 'markdown',
'js': 'javascript',
'xasm6809': '6809',
'cmoc': 'text/x-csrc',
'yasm': 'gas',
'smlrc': 'text/x-csrc',
'inform6': 'inform6',
'dialog': 'dialog',
'fastbasic': 'fastbasic',
'basic': 'basic',
'silice': 'verilog',
'wiz': 'text/x-wiz',
'vasmarm': 'vasm',
'armips': 'vasm',
'ecs': 'ecs',
'remote:llvm-mos': 'text/x-csrc',
'cc2600': 'text/x-csrc',
'cc7800': 'text/x-csrc',
'armtcc': 'text/x-csrc',
'oscar64': 'text/x-csrc',
}
// TODO: move into tool class
const TOOL_TO_HELPURL = {
'dasm': 'https://raw.githubusercontent.com/sehugg/dasm/master/doc/dasm.txt',
'cc65': 'https://cc65.github.io/doc/cc65.html',
'ca65': 'https://cc65.github.io/doc/ca65.html',
'sdcc': 'http://sdcc.sourceforge.net/doc/sdccman.pdf',
'verilator': 'https://www.veripool.org/ftp/verilator_doc.pdf',
'fastbasic': 'https://github.com/dmsc/fastbasic/blob/master/manual.md',
'bataribasic': "help/bataribasic/manual.html",
'wiz': "https://github.com/wiz-lang/wiz/blob/master/readme.md#wiz",
'silice': "https://github.com/sylefeb/Silice",
'zmac': "https://raw.githubusercontent.com/sehugg/zmac/master/doc.txt",
'cmoc': "http://perso.b2b2c.ca/~sarrazip/dev/cmoc.html",
'remote:llvm-mos': 'https://llvm-mos.org/wiki/Welcome',
'acme': 'https://raw.githubusercontent.com/sehugg/acme/main/docs/QuickRef.txt',
'xa': 'https://www.floodgap.com/retrotech/xa/',
'dialog': 'https://linusakesson.net/dialog/docs/',
'oscar64': 'https://github.com/drmortalwombat/oscar64/blob/main/oscar64.md',
}
// editor styles and help URLs live in the tool registry (src/common/toolmeta.ts)
function newWorker(): Worker {
// TODO: return new Worker("https://8bitworkshop.com.s3-website-us-east-1.amazonaws.com/dev/gen/worker/bundle.js");
@@ -338,7 +282,7 @@ function refreshWindowList() {
if (tool == 'dasm' && path.endsWith(".h") && getCurrentMainFilename().endsWith(".c")) {
tool = 'cc65';
}
var mode = tool && TOOL_TO_SOURCE_STYLE[tool];
var mode = tool && getToolMeta(tool)?.editorStyle;
return new SourceEditor(path, mode);
}
@@ -511,7 +455,7 @@ function reloadProject(id: string) {
}
async function getSkeletonFile(fileid: string): Promise<string> {
var ext = platform.getToolForFilename(fileid).replace(/^remote:/, "");
var ext = getSkeletonName(platform.getToolForFilename(fileid));
try {
return await $.get("presets/" + getBasePlatform(platform_id) + "/skeleton." + ext, 'text');
} catch (e) {
@@ -549,7 +493,7 @@ async function _getToolsWithSkeletons(extensions: string[]): Promise<ToolExtensi
// check each tool in parallel
var checks = toolOrder.map(tool =>
$.ajax({
url: "presets/" + basePlatform + "/skeleton." + tool,
url: "presets/" + basePlatform + "/skeleton." + getSkeletonName(tool),
type: "HEAD"
}).then(() => tool, () => null)
);
@@ -1596,7 +1540,7 @@ function setupDebugControls() {
}
// tool help
let tool = platform.getToolForFilename(getCurrentMainFilename());
let toolhelpurl = TOOL_TO_HELPURL[tool];
let toolhelpurl = tool && getToolMeta(tool)?.helpURL;
if (toolhelpurl) {
let { li, a } = newDropdownListItem('help__' + tool, tool + ' Help');
$("#help_menu").append(li);
-1
View File
@@ -18,7 +18,6 @@ export function importPlatform(name: string) : Promise<any> {
case "gb": return import("../platform/gb");
case "gameboy": return import("../platform/gb");
case "kim1": return import("../platform/kim1");
case "markdown": return import("../platform/markdown");
case "mcr": return import("../platform/mcr");
case "msx": return import("../platform/msx");
case "mw8080bw": return import("../platform/mw8080bw");
-49
View File
@@ -1,49 +0,0 @@
import { PLATFORMS } from "../common/emu";
import { Platform } from "../common/baseplatform";
class MarkdownPlatform implements Platform {
mainElement : HTMLElement;
iframe : HTMLIFrameElement;
constructor(mainElement:HTMLElement) {
this.mainElement = mainElement;
this.iframe = $('<iframe sandbox="allow-same-origin" width="100%" height="100%"/>').appendTo(mainElement)[0] as HTMLIFrameElement;
this.iframe.style.backgroundColor = 'white';
mainElement.classList.add("vertical-scroll"); //100% height
mainElement.style.overflowY = 'auto';
}
start() {
}
reset() {
}
pause() {
}
resume() {
}
loadROM(title, data:string) {
$(this.iframe).contents().find('body').html(data);
}
isRunning() {
return false;
}
isDebugging() : boolean {
return false;
}
getToolForFilename(fn : string) : string {
return "markdown";
}
getDefaultExtensions() {
return [".md"];
}
getPresets() {
return [
{id:'hello.md', name:'Hello'},
];
}
showHelp() {
return "https://github.com/showdownjs/showdown/wiki/Showdown's-Markdown-syntax";
}
}
PLATFORMS['markdown'] = MarkdownPlatform;
+1 -5
View File
@@ -4,7 +4,7 @@
import * as fs from 'fs';
import * as path from 'path';
import { initialize, compile, compileSourceFile, preload, listTools, listPlatforms, getToolForFilename, PLATFORM_PARAMS, TOOLS, TOOL_PRELOADFS, store } from './testlib';
import { initialize, compile, compileSourceFile, preload, listTools, listPlatforms, getToolForFilename, PLATFORM_PARAMS, TOOLS, store } from './testlib';
import { isDebuggable } from '../common/baseplatform';
import { hex } from '../common/util';
@@ -252,10 +252,6 @@ async function doCompile(args: { [key: string]: string }, positional: string[],
}
// Preload the tool's filesystem if needed
var preloadKey = tool;
if (TOOL_PRELOADFS[tool + '-' + platform]) {
preloadKey = tool;
}
await preload(tool, platform);
var result = await compileSourceFile(tool, platform, sourceFile);
+18 -50
View File
@@ -8,11 +8,12 @@ import * as path from 'path';
import type { WorkerResult, WorkerMessage, WorkerErrorResult, WorkerOutputResult, Dependency } from "../common/workertypes";
import { getFolderForPath, isProbablyBinary, getBasePlatform } from "../common/util";
import { getToolForFilename_z80, getToolForFilename_6502, getToolForFilename_6809 } from "../common/baseplatform";
import { setupNodeEnvironment, handleMessage, store, TOOL_PRELOADFS } from "../worker/workerlib";
import { ToolIncludePattern, getIncludePatterns, getLinkPatterns, matchDependencyPatterns } from "../common/toolmeta";
import { setupNodeEnvironment, handleMessage, store } from "../worker/workerlib";
import { PLATFORM_PARAMS } from "../worker/platforms";
import { TOOLS } from "../worker/workertools";
export { store, TOOL_PRELOADFS, PLATFORM_PARAMS, TOOLS };
export { store, PLATFORM_PARAMS, TOOLS };
export interface CompileOptions {
tool: string;
@@ -110,65 +111,29 @@ export async function compileFile(tool: string, platform: string, presetPath: st
/**
* Parse include and link dependencies from source text.
* Extracted from CodeProject.parseIncludeDependencies / parseLinkDependencies.
* TODO: project.ts should be refactored so we don't have to duplicate the logic
* Patterns come from the tool registry (src/common/toolmeta.ts), the same
* ones CodeProject uses in the IDE.
*/
function parseIncludeDependencies(text: string, platformId: string, mainPath: string): string[] {
function parseDependencies(text: string, platformId: string, mainPath: string,
patterns: (RegExp | ToolIncludePattern)[]): string[] {
let files: string[] = [];
let m;
var dir = getFolderForPath(mainPath);
function pushFile(fn: string) {
for (let fn of matchDependencyPatterns(text, patterns)) {
files.push(fn);
if (dir.length > 0 && dir != 'local')
files.push(dir + '/' + fn);
}
if (platformId.startsWith('verilog')) {
let re1 = /^\s*(`include|[.]include)\s+"(.+?)"/gmi;
while (m = re1.exec(text)) { pushFile(m[2]); }
let re1a = /^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi;
while (m = re1a.exec(text)) { pushFile(m[2]); }
let re2 = /^\s*([.]arch)\s+(\w+)/gmi;
while (m = re2.exec(text)) { pushFile(m[2] + ".json"); }
let re3 = /\$readmem[bh]\("(.+?)"/gmi;
while (m = re3.exec(text)) { pushFile(m[1]); }
} else {
let re2 = /^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi;
while (m = re2.exec(text)) { pushFile(m[2]); }
let re3 = /^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm;
while (m = re3.exec(text)) { pushFile(m[3]); }
let re4 = /^\s+(USE|ASM)\s+(\S+[.]\S+)/gm;
while (m = re4.exec(text)) { pushFile(m[2]); }
let re5 = /^\s*(import|embed)\s*"(.+?)";/gmi;
while (m = re5.exec(text)) {
if (m[1] == 'import') pushFile(m[2] + ".wiz");
else pushFile(m[2]);
}
let re6 = /^\s*(import)\s*"(.+?)"/gmi;
while (m = re6.exec(text)) { pushFile(m[2]); }
let re7 = /^[!]src\s+"(.+?)"/gmi;
while (m = re7.exec(text)) { pushFile(m[1]); }
}
return files;
}
function parseIncludeDependencies(text: string, platformId: string, mainPath: string): string[] {
let tool = getToolForFilename(mainPath, platformId);
return parseDependencies(text, platformId, mainPath, getIncludePatterns(tool, platformId));
}
function parseLinkDependencies(text: string, platformId: string, mainPath: string): string[] {
let files: string[] = [];
let m;
var dir = getFolderForPath(mainPath);
function pushFile(fn: string) {
files.push(fn);
if (dir.length > 0 && dir != 'local')
files.push(dir + '/' + fn);
}
if (!platformId.startsWith('verilog')) {
let re = /^\s*([;]|[/][/])#link\s+"(.+?)"/gm;
while (m = re.exec(text)) { pushFile(m[2]); }
}
return files;
let tool = getToolForFilename(mainPath, platformId);
return parseDependencies(text, platformId, mainPath, getLinkPatterns(tool, platformId));
}
type FileData = string | Uint8Array;
@@ -283,6 +248,9 @@ export function getToolForFilename(fn: string, platform: string): string {
return getToolForFilename_6502(fn);
case '6809':
return getToolForFilename_6809(fn);
case 'verilog':
if (fn.endsWith('.asm')) return 'jsasm';
return fn.endsWith('.ice') ? 'silice' : 'verilator';
default:
return getToolForFilename_z80(fn); // fallback
}
-3
View File
@@ -1,3 +0,0 @@
/*! showdown v 2.0.0-alpha1 - 24-10-2018 */
(function(){function a(e){"use strict";var r={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:"Remove only spaces, ' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids",type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse midword asterisks as literal asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,description:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,description:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,description:"Parses simple line breaks as <br> (GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,description:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,description:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",description:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,description:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,description:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,description:"Support for HTML Tag escaping. ex: <div>foo</div>",type:"boolean"},emoji:{defaultValue:!1,description:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,description:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `<em>` and `<strong>`",type:"boolean"},completeHTMLDocument:{defaultValue:!1,description:"Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags",type:"boolean"},metadata:{defaultValue:!1,description:"Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,description:"Split adjacent blockquote blocks",type:"boolean"}};if(!1===e)return JSON.parse(JSON.stringify(r));var t={};for(var a in r)r.hasOwnProperty(a)&&(t[a]=r[a].defaultValue);return t}var b={},t={},h={},m=a(!0),d="vanilla",p={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeLine truncated
//# sourceMappingURL=showdown.min.js.map
-18
View File
@@ -6,24 +6,6 @@ import { BuildStep, BuildStepResult, getWorkFileAsString, gatherFiles, staleFile
import { msvcErrorMatcher, parseListing, makeErrorMatcher } from "../listingutils";
import { setupRequireFunction } from "../workermain";
export function translateShowdown(step: BuildStep): BuildStepResult {
setupRequireFunction();
load("showdown.min");
var showdown = emglobal['showdown'];
var converter = new showdown.Converter({
tables: 'true',
smoothLivePreview: 'true',
requireSpaceBeforeHeadingText: 'true',
emoji: 'true',
});
var code = getWorkFileAsString(step.path);
var html = converter.makeHtml(code);
delete emglobal['require'];
return {
output: html
};
}
export function compileInform6(step: BuildStep): BuildStepResult {
loadNative("inform");
var errors = [];
+4 -7
View File
@@ -7,12 +7,12 @@ import * as fs from 'fs';
import * as path from 'path';
import type { WorkerResult, WorkerMessage } from "../common/workertypes";
import { getBasePlatform, getRootBasePlatform } from "../common/util";
import { TOOL_PRELOADFS } from "./workertools";
import { getPreloadFSName } from "../common/toolmeta";
import { store, builder } from "./builder";
import { emglobal, fsMeta, loadFilesystem } from "./wasmutils";
import { setupRequireFunction } from "./workermain";
export { store, builder, TOOL_PRELOADFS };
export { store, builder };
export { PLATFORM_PARAMS } from "./platforms";
export { TOOLS } from "./workertools";
@@ -131,11 +131,8 @@ export function setupNodeEnvironment() {
export async function handleMessage(data: WorkerMessage): Promise<WorkerResult> {
// preload file system
if (data.preload) {
var fsName = TOOL_PRELOADFS[data.preload];
if (!fsName && data.platform)
fsName = TOOL_PRELOADFS[data.preload + '-' + getBasePlatform(data.platform)];
if (!fsName && data.platform)
fsName = TOOL_PRELOADFS[data.preload + '-' + getRootBasePlatform(data.platform)];
var fsName = getPreloadFSName(data.preload, data.platform && getBasePlatform(data.platform))
|| getPreloadFSName(data.preload, data.platform && getRootBasePlatform(data.platform));
if (fsName && !fsMeta[fsName])
loadFilesystem(fsName);
return;
+3 -6
View File
@@ -1,7 +1,7 @@
import type { WorkerResult, WorkerMessage, WorkerError, SourceLine } from "../common/workertypes";
import { getBasePlatform, getRootBasePlatform } from "../common/util";
import { TOOL_PRELOADFS } from "./workertools";
import { getPreloadFSName } from "../common/toolmeta";
import { store, builder, errorResult, getWorkFileAsString } from "./builder";
import { emglobal, fsMeta, loadFilesystem } from "./wasmutils";
@@ -28,11 +28,8 @@ export function setupRequireFunction() {
async function handleMessage(data: WorkerMessage): Promise<WorkerResult> {
// preload file system
if (data.preload) {
var fs = TOOL_PRELOADFS[data.preload];
if (!fs && data.platform)
fs = TOOL_PRELOADFS[data.preload + '-' + getBasePlatform(data.platform)];
if (!fs && data.platform)
fs = TOOL_PRELOADFS[data.preload + '-' + getRootBasePlatform(data.platform)];
var fs = getPreloadFSName(data.preload, data.platform && getBasePlatform(data.platform))
|| getPreloadFSName(data.preload, data.platform && getRootBasePlatform(data.platform));
if (fs && !fsMeta[fs])
loadFilesystem(fs);
return;
-39
View File
@@ -46,7 +46,6 @@ export const TOOLS = {
'smlrc': x86.compileSmallerC,
'yasm': x86.assembleYASM,
'bataribasic': bataribasic.compileBatariBasic,
'markdown': misc.translateShowdown,
'inform6': misc.compileInform6,
'merlin32': m6502.assembleMerlin32,
'fastbasic': m6502.compileFastBasic,
@@ -65,41 +64,3 @@ export const TOOLS = {
'xa': xa.assembleXA,
'dialog': dialog.compileDialog,
}
export const TOOL_PRELOADFS = {
'cc65-apple2': '65-apple2',
'ca65-apple2': '65-apple2',
'cc65-c64': '65-c64',
'ca65-c64': '65-c64',
'cc65-vic20': '65-vic20',
'ca65-vic20': '65-vic20',
'cc65-nes': '65-nes',
'ca65-nes': '65-nes',
'cc65-atari8': '65-atari8',
'ca65-atari8': '65-atari8',
'cc65-vector': '65-none',
'ca65-vector': '65-none',
'cc65-atari7800': '65-none',
'ca65-atari7800': '65-none',
'cc65-devel': '65-none',
'ca65-devel': '65-none',
'cc65-vcs': '65-atari2600',
'ca65-vcs': '65-atari2600',
'cc65-pce': '65-pce',
'ca65-pce': '65-pce',
'cc65-exidy': '65-none',
'ca65-exidy': '65-none',
'sdasz80': 'sdcc',
'sdasgb': 'sdcc',
'sdcc': 'sdcc',
'sccz80': 'sccz80',
'bataribasic': '2600basic',
'inform6': 'inform',
'fastbasic': '65-atari8',
'silice': 'Silice',
'wiz': 'wiz',
'ecs-vcs': '65-atari2600', // TODO: support multiple platforms
'ecs-nes': '65-nes', // TODO: support multiple platforms
'ecs-c64': '65-c64', // TODO: support multiple platforms
}