@webqit/oohtml 4.3.5 → 4.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +2 -2
- package/dist/main.js.map +2 -2
- package/dist/main.lite.js +1 -1
- package/dist/main.lite.js.map +2 -2
- package/package.json +2 -2
package/dist/main.js
CHANGED
|
@@ -5,10 +5,10 @@ Defaulting to 2020, but this will stop working in the future.`)),t.ecmaVersion=1
|
|
|
5
5
|
`;break;default:e+=String.fromCharCode(i);break}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}};N.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case"\\":++this.pos;break;case"$":if(this.input[this.pos+1]!=="{")break;case"`":return this.finishToken(h.invalidTemplate,this.input.slice(this.start,this.pos))}this.raise(this.start,"Unterminated template")};N.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return`
|
|
6
6
|
`;case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return Rt(this.readCodePoint());case 116:return" ";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";case 56:case 57:if(this.strict&&this.invalidStringToken(this.pos-1,"Invalid escape sequence"),e){var i=this.pos-1;this.invalidStringToken(i,"Invalid escape sequence in template string")}default:if(t>=48&&t<=55){var r=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],s=parseInt(r,8);return s>255&&(r=r.slice(0,-1),s=parseInt(r,8)),this.pos+=r.length-1,t=this.input.charCodeAt(this.pos),(r!=="0"||t===56||t===57)&&(this.strict||e)&&this.invalidStringToken(this.pos-1-r.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(s)}return ne(t)?"":String.fromCharCode(t)}};N.readHexChar=function(e){var t=this.pos,i=this.readInt(16,e);return i===null&&this.invalidStringToken(t,"Bad character escape sequence"),i};N.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,i=this.pos,r=this.options.ecmaVersion>=6;this.pos<this.input.length;){var s=this.fullCharCodeAtPos();if(se(s,r))this.pos+=s<=65535?1:2;else if(s===92){this.containsEsc=!0,e+=this.input.slice(i,this.pos);var n=this.pos;this.input.charCodeAt(++this.pos)!==117&&this.invalidStringToken(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos;var a=this.readCodePoint();(t?Pt:se)(a,r)||this.invalidStringToken(n,"Invalid Unicode escape"),e+=Rt(a),i=this.pos}else break;t=!1}return e+this.input.slice(i,this.pos)};N.readWord=function(){var e=this.readWord1(),t=h.name;return this.keywords.test(e)&&(t=Ui[e]),this.finishToken(t,e)};var ea="8.8.2";z.acorn={Parser:z,version:ea,defaultOptions:Bi,Position:Ae,SourceLocation:ri,getLineInfo:qr,Node:ni,TokenType:M,tokTypes:h,keywordTypes:Ui,TokContext:pt,tokContexts:B,isIdentifierChar:se,isIdentifierStart:Pt,Token:Yi,isNewLine:ne,lineBreak:lt,lineBreakG:Nn,nonASCIIwhitespace:Vr};var gs=z.extend(function(e){return class extends e{static parse(t,i){let r=super.parse(t,i);return r.isQuantumProgram=i.quantumMode!==!1,r.originalSource=t,r}constructor(...t){super(...t),this.isQuantumFunction=!1,this.functionStack=[]}isQuantumToekn(){return this.value==="quantum"}nextToken(){let t=this.type;if(super.nextToken(),this.type===h.name&&this.value==="async"&&this.input.slice(this.pos).trim().startsWith("quantum")){t===h.name?this.functionStack[0].isQuantumFunction=!0:this.isQuantumFunction=!0;let{type:i,value:r,start:s,end:n,startLoc:a,endLoc:o}=this;super.nextToken(),Object.assign(this,{type:i,value:r,start:s,end:n,startLoc:a,endLoc:o})}else this.isQuantumToekn()&&this.input.slice(this.pos).trim().startsWith("function")?(super.nextToken(),this.isQuantumFunction=!0):t===h.name&&this.functionStack[0]?.type==="classElement"&&this.isQuantumToekn()?(super.nextToken(),this.functionStack[0].isQuantumFunction=!0):this.isQuantumToekn()&&/^(\(|[\w$]+(\s+)?=>)/.test(this.input.slice(this.pos).trim())?(super.nextToken(),this.isQuantumFunction=!0):this.type===h.starstar&&(t===h._function?this.isQuantumFunction||(super.nextToken(),this.isQuantumFunction=!0):["property","classElement"].includes(this.functionStack[0]?.type)&&(this.functionStack[0].isQuantumFunction||(this.functionStack[0].isQuantumFunction=!0,super.nextToken())))}parseArrowExpression(...t){let i=this.isQuantumFunction;this.isQuantumFunction=!1,this.functionStack.unshift({type:"arrowFunction",isQuantumFunction:i});let r=super.parseArrowExpression(...t);return this.functionStack[0].isQuantumFunction&&(r.isQuantumFunction=!0),this.functionStack.shift(),r}parseFunction(t,i,r,s,n){let a=this.isQuantumFunction;this.isQuantumFunction=!1,this.functionStack.unshift({type:"function",isQuantumFunction:a}),this.functionStack[0].isQuantumFunction&&(t.isQuantumFunction=!0);let o=super.parseFunction(t,i,r,s,n);return this.functionStack.shift(),o}parseProperty(t,i){let r=this.isQuantumFunction;this.isQuantumFunction=!1,this.functionStack.unshift({type:"property",isQuantumFunction:r}),(this.type===h.starstar||this.isQuantumToekn())&&(this.functionStack[0].isQuantumFunction=!0,super.nextToken());let s=super.parseProperty(t,i);return this.functionStack[0].isQuantumFunction&&(s.value.isQuantumFunction=!0),this.functionStack.shift(),s}parseClassElement(t){let i=this.isQuantumFunction;this.isQuantumFunction=!1,this.functionStack.unshift({type:"classElement",isQuantumFunction:i}),(this.type===h.starstar||this.isQuantumToekn())&&(this.functionStack[0].isQuantumFunction=!0,super.nextToken());let r=super.parseClassElement(t);return this.functionStack[0].isQuantumFunction&&(r.value.isQuantumFunction=!0),this.functionStack.shift(),r}}});var{stringify:ia}=JSON;if(!String.prototype.repeat)throw new Error("String.prototype.repeat is undefined, see https://github.com/davidbonnet/astring#installation");if(!String.prototype.endsWith)throw new Error("String.prototype.endsWith is undefined, see https://github.com/davidbonnet/astring#installation");var oi={"||":2,"??":3,"&&":4,"|":5,"^":6,"&":7,"==":8,"!=":8,"===":8,"!==":8,"<":9,">":9,"<=":9,">=":9,in:9,instanceof:9,"<<":10,">>":10,">>>":10,"+":11,"-":11,"*":12,"%":12,"/":12,"**":13},mt=17,ra={ArrayExpression:20,TaggedTemplateExpression:20,ThisExpression:20,Identifier:20,PrivateIdentifier:20,Literal:18,TemplateLiteral:20,Super:20,SequenceExpression:20,MemberExpression:19,ChainExpression:19,CallExpression:19,NewExpression:19,ArrowFunctionExpression:mt,ClassExpression:mt,FunctionExpression:mt,ObjectExpression:mt,UpdateExpression:16,UnaryExpression:15,AwaitExpression:15,BinaryExpression:14,LogicalExpression:13,ConditionalExpression:4,AssignmentExpression:3,YieldExpression:2,RestElement:1};function ue(e,t){let{generator:i}=e;if(e.write("("),t!=null&&t.length>0){i[t[0].type](t[0],e);let{length:r}=t;for(let s=1;s<r;s++){let n=t[s];e.write(", "),i[n.type](n,e)}}e.write(")")}function _s(e,t,i,r){let s=e.expressionsPrecedence[t.type];if(s===mt)return!0;let n=e.expressionsPrecedence[i.type];return s!==n?!r&&s===15&&n===14&&i.operator==="**"||s<n:s!==13&&s!==14?!1:t.operator==="**"&&i.operator==="**"?!r:s===13&&n===13&&(t.operator==="??"||i.operator==="??")?!0:r?oi[t.operator]<=oi[i.operator]:oi[t.operator]<oi[i.operator]}function ui(e,t,i,r){let{generator:s}=e;_s(e,t,i,r)?(e.write("("),s[t.type](t,e),e.write(")")):s[t.type](t,e)}function sa(e,t,i,r){let s=t.split(`
|
|
7
7
|
`),n=s.length-1;if(e.write(s[0].trim()),n>0){e.write(r);for(let a=1;a<n;a++)e.write(i+s[a].trim()+r);e.write(i+s[n].trim())}}function tt(e,t,i,r){let{length:s}=t;for(let n=0;n<s;n++){let a=t[n];e.write(i),a.type[0]==="L"?e.write("// "+a.value.trim()+`
|
|
8
|
-
`,a):(e.write("/*"),sa(e,a.value,i,r),e.write("*/"+r))}}function na(e){let t=e;for(;t!=null;){let{type:i}=t;if(i[0]==="C"&&i[1]==="a")return!0;if(i[0]==="M"&&i[1]==="e"&&i[2]==="m")t=t.object;else return!1}}function Ji(e,t){let{generator:i}=e,{declarations:r}=t;e.write(t.kind+" ");let{length:s}=r;if(s>0){i.VariableDeclarator(r[0],e);for(let n=1;n<s;n++)e.write(", "),i.VariableDeclarator(r[n],e)}}var xs,ys,bs,ws,vs,Ss,aa={Program(e,t){let i=t.indent.repeat(t.indentLevel),{lineEnd:r,writeComments:s}=t;s&&e.comments!=null&&tt(t,e.comments,i,r);let n=e.body,{length:a}=n;for(let o=0;o<a;o++){let u=n[o];s&&u.comments!=null&&tt(t,u.comments,i,r),t.write(i),this[u.type](u,t),t.write(r)}s&&e.trailingComments!=null&&tt(t,e.trailingComments,i,r)},BlockStatement:Ss=function(e,t){let i=t.indent.repeat(t.indentLevel++),{lineEnd:r,writeComments:s}=t,n=i+t.indent;t.write("{");let a=e.body;if(a!=null&&a.length>0){t.write(r),s&&e.comments!=null&&tt(t,e.comments,n,r);let{length:o}=a;for(let u=0;u<o;u++){let c=a[u];s&&c.comments!=null&&tt(t,c.comments,n,r),t.write(n),this[c.type](c,t),t.write(r)}t.write(i)}else s&&e.comments!=null&&(t.write(r),tt(t,e.comments,n,r),t.write(i));s&&e.trailingComments!=null&&tt(t,e.trailingComments,n,r),t.write("}"),t.indentLevel--},ClassBody:Ss,StaticBlock(e,t){t.write("static "),this.BlockStatement(e,t)},EmptyStatement(e,t){t.write(";")},ExpressionStatement(e,t){let i=t.expressionsPrecedence[e.expression.type];i===mt||i===3&&e.expression.left.type[0]==="O"?(t.write("("),this[e.expression.type](e.expression,t),t.write(")")):this[e.expression.type](e.expression,t),t.write(";")},IfStatement(e,t){t.write("if ("),this[e.test.type](e.test,t),t.write(") "),this[e.consequent.type](e.consequent,t),e.alternate!=null&&(t.write(" else "),this[e.alternate.type](e.alternate,t))},LabeledStatement(e,t){this[e.label.type](e.label,t),t.write(": "),this[e.body.type](e.body,t)},BreakStatement(e,t){t.write("break"),e.label!=null&&(t.write(" "),this[e.label.type](e.label,t)),t.write(";")},ContinueStatement(e,t){t.write("continue"),e.label!=null&&(t.write(" "),this[e.label.type](e.label,t)),t.write(";")},WithStatement(e,t){t.write("with ("),this[e.object.type](e.object,t),t.write(") "),this[e.body.type](e.body,t)},SwitchStatement(e,t){let i=t.indent.repeat(t.indentLevel++),{lineEnd:r,writeComments:s}=t;t.indentLevel++;let n=i+t.indent,a=n+t.indent;t.write("switch ("),this[e.discriminant.type](e.discriminant,t),t.write(") {"+r);let{cases:o}=e,{length:u}=o;for(let c=0;c<u;c++){let l=o[c];s&&l.comments!=null&&tt(t,l.comments,n,r),l.test?(t.write(n+"case "),this[l.test.type](l.test,t),t.write(":"+r)):t.write(n+"default:"+r);let{consequent:f}=l,{length:p}=f;for(let m=0;m<p;m++){let g=f[m];s&&g.comments!=null&&tt(t,g.comments,a,r),t.write(a),this[g.type](g,t),t.write(r)}}t.indentLevel-=2,t.write(i+"}")},ReturnStatement(e,t){t.write("return"),e.argument&&(t.write(" "),this[e.argument.type](e.argument,t)),t.write(";")},ThrowStatement(e,t){t.write("throw "),this[e.argument.type](e.argument,t),t.write(";")},TryStatement(e,t){if(t.write("try "),this[e.block.type](e.block,t),e.handler){let{handler:i}=e;i.param==null?t.write(" catch "):(t.write(" catch ("),this[i.param.type](i.param,t),t.write(") ")),this[i.body.type](i.body,t)}e.finalizer&&(t.write(" finally "),this[e.finalizer.type](e.finalizer,t))},WhileStatement(e,t){t.write("while ("),this[e.test.type](e.test,t),t.write(") "),this[e.body.type](e.body,t)},DoWhileStatement(e,t){t.write("do "),this[e.body.type](e.body,t),t.write(" while ("),this[e.test.type](e.test,t),t.write(");")},ForStatement(e,t){if(t.write("for ("),e.init!=null){let{init:i}=e;i.type[0]==="V"?Ji(t,i):this[i.type](i,t)}t.write("; "),e.test&&this[e.test.type](e.test,t),t.write("; "),e.update&&this[e.update.type](e.update,t),t.write(") "),this[e.body.type](e.body,t)},ForInStatement:xs=function(e,t){t.write(`for ${e.await?"await ":""}(`);let{left:i}=e;i.type[0]==="V"?Ji(t,i):this[i.type](i,t),t.write(e.type[3]==="I"?" in ":" of "),this[e.right.type](e.right,t),t.write(") "),this[e.body.type](e.body,t)},ForOfStatement:xs,DebuggerStatement(e,t){t.write("debugger;",e)},FunctionDeclaration:ys=function(e,t){t.write((e.async?"async ":"")+(e.generator?"function* ":"function ")+(e.id?e.id.name:""),e),ue(t,e.params),t.write(" "),this[e.body.type](e.body,t)},FunctionExpression:ys,VariableDeclaration(e,t){Ji(t,e),t.write(";")},VariableDeclarator(e,t){this[e.id.type](e.id,t),e.init!=null&&(t.write(" = "),this[e.init.type](e.init,t))},ClassDeclaration(e,t){if(t.write("class "+(e.id?`${e.id.name} `:""),e),e.superClass){t.write("extends ");let{superClass:i}=e,{type:r}=i,s=t.expressionsPrecedence[r];(r[0]!=="C"||r[1]!=="l"||r[5]!=="E")&&(s===mt||s<t.expressionsPrecedence.ClassExpression)?(t.write("("),this[e.superClass.type](i,t),t.write(")")):this[i.type](i,t),t.write(" ")}this.ClassBody(e.body,t)},ImportDeclaration(e,t){t.write("import ");let{specifiers:i}=e,{length:r}=i,s=0;if(r>0){for(;s<r;){s>0&&t.write(", ");let n=i[s],a=n.type[6];if(a==="D")t.write(n.local.name,n),s++;else if(a==="N")t.write("* as "+n.local.name,n),s++;else break}if(s<r){for(t.write("{");;){let n=i[s],{name:a}=n.imported;if(t.write(a,n),a!==n.local.name&&t.write(" as "+n.local.name),++s<r)t.write(", ");else break}t.write("}")}t.write(" from ")}this.Literal(e.source,t),t.write(";")},ImportExpression(e,t){t.write("import("),this[e.source.type](e.source,t),t.write(")")},ExportDefaultDeclaration(e,t){t.write("export default "),this[e.declaration.type](e.declaration,t),t.expressionsPrecedence[e.declaration.type]!=null&&e.declaration.type[0]!=="F"&&t.write(";")},ExportNamedDeclaration(e,t){if(t.write("export "),e.declaration)this[e.declaration.type](e.declaration,t);else{t.write("{");let{specifiers:i}=e,{length:r}=i;if(r>0)for(let s=0;;){let n=i[s],{name:a}=n.local;if(t.write(a,n),a!==n.exported.name&&t.write(" as "+n.exported.name),++s<r)t.write(", ");else break}t.write("}"),e.source&&(t.write(" from "),this.Literal(e.source,t)),t.write(";")}},ExportAllDeclaration(e,t){e.exported!=null?t.write("export * as "+e.exported.name+" from "):t.write("export * from "),this.Literal(e.source,t),t.write(";")},MethodDefinition(e,t){e.static&&t.write("static ");let i=e.kind[0];(i==="g"||i==="s")&&t.write(e.kind+" "),e.value.async&&t.write("async "),e.value.generator&&t.write("*"),e.computed?(t.write("["),this[e.key.type](e.key,t),t.write("]")):this[e.key.type](e.key,t),ue(t,e.value.params),t.write(" "),this[e.value.body.type](e.value.body,t)},ClassExpression(e,t){this.ClassDeclaration(e,t)},ArrowFunctionExpression(e,t){t.write(e.async?"async ":"",e);let{params:i}=e;i!=null&&(i.length===1&&i[0].type[0]==="I"?t.write(i[0].name,i[0]):ue(t,e.params)),t.write(" => "),e.body.type[0]==="O"?(t.write("("),this.ObjectExpression(e.body,t),t.write(")")):this[e.body.type](e.body,t)},ThisExpression(e,t){t.write("this",e)},Super(e,t){t.write("super",e)},RestElement:bs=function(e,t){t.write("..."),this[e.argument.type](e.argument,t)},SpreadElement:bs,YieldExpression(e,t){t.write(e.delegate?"yield*":"yield"),e.argument&&(t.write(" "),this[e.argument.type](e.argument,t))},AwaitExpression(e,t){t.write("await ",e),ui(t,e.argument,e)},TemplateLiteral(e,t){let{quasis:i,expressions:r}=e;t.write("`");let{length:s}=r;for(let a=0;a<s;a++){let o=r[a],u=i[a];t.write(u.value.raw,u),t.write("${"),this[o.type](o,t),t.write("}")}let n=i[i.length-1];t.write(n.value.raw,n),t.write("`")},TemplateElement(e,t){t.write(e.value.raw,e)},TaggedTemplateExpression(e,t){ui(t,e.tag,e),this[e.quasi.type](e.quasi,t)},ArrayExpression:vs=function(e,t){if(t.write("["),e.elements.length>0){let{elements:i}=e,{length:r}=i;for(let s=0;;){let n=i[s];if(n!=null&&this[n.type](n,t),++s<r)t.write(", ");else{n==null&&t.write(", ");break}}}t.write("]")},ArrayPattern:vs,ObjectExpression(e,t){let i=t.indent.repeat(t.indentLevel++),{lineEnd:r,writeComments:s}=t,n=i+t.indent;if(t.write("{"),e.properties.length>0){t.write(r),s&&e.comments!=null&&tt(t,e.comments,n,r);let a=","+r,{properties:o}=e,{length:u}=o;for(let c=0;;){let l=o[c];if(s&&l.comments!=null&&tt(t,l.comments,n,r),t.write(n),this[l.type](l,t),++c<u)t.write(a);else break}t.write(r),s&&e.trailingComments!=null&&tt(t,e.trailingComments,n,r),t.write(i+"}")}else s?e.comments!=null?(t.write(r),tt(t,e.comments,n,r),e.trailingComments!=null&&tt(t,e.trailingComments,n,r),t.write(i+"}")):e.trailingComments!=null?(t.write(r),tt(t,e.trailingComments,n,r),t.write(i+"}")):t.write("}"):t.write("}");t.indentLevel--},Property(e,t){e.method||e.kind[0]!=="i"?this.MethodDefinition(e,t):(e.shorthand||(e.computed?(t.write("["),this[e.key.type](e.key,t),t.write("]")):this[e.key.type](e.key,t),t.write(": ")),this[e.value.type](e.value,t))},PropertyDefinition(e,t){if(e.static&&t.write("static "),e.computed&&t.write("["),this[e.key.type](e.key,t),e.computed&&t.write("]"),e.value==null){e.key.type[0]!=="F"&&t.write(";");return}t.write(" = "),this[e.value.type](e.value,t),t.write(";")},ObjectPattern(e,t){if(t.write("{"),e.properties.length>0){let{properties:i}=e,{length:r}=i;for(let s=0;this[i[s].type](i[s],t),++s<r;)t.write(", ")}t.write("}")},SequenceExpression(e,t){ue(t,e.expressions)},UnaryExpression(e,t){if(e.prefix){let{operator:i,argument:r,argument:{type:s}}=e;t.write(i);let n=_s(t,r,e);!n&&(i.length>1||s[0]==="U"&&(s[1]==="n"||s[1]==="p")&&r.prefix&&r.operator[0]===i&&(i==="+"||i==="-"))&&t.write(" "),n?(t.write(i.length>1?" (":"("),this[s](r,t),t.write(")")):this[s](r,t)}else this[e.argument.type](e.argument,t),t.write(e.operator)},UpdateExpression(e,t){e.prefix?(t.write(e.operator),this[e.argument.type](e.argument,t)):(this[e.argument.type](e.argument,t),t.write(e.operator))},AssignmentExpression(e,t){this[e.left.type](e.left,t),t.write(" "+e.operator+" "),this[e.right.type](e.right,t)},AssignmentPattern(e,t){this[e.left.type](e.left,t),t.write(" = "),this[e.right.type](e.right,t)},BinaryExpression:ws=function(e,t){let i=e.operator==="in";i&&t.write("("),ui(t,e.left,e,!1),t.write(" "+e.operator+" "),ui(t,e.right,e,!0),i&&t.write(")")},LogicalExpression:ws,ConditionalExpression(e,t){let{test:i}=e,r=t.expressionsPrecedence[i.type];r===mt||r<=t.expressionsPrecedence.ConditionalExpression?(t.write("("),this[i.type](i,t),t.write(")")):this[i.type](i,t),t.write(" ? "),this[e.consequent.type](e.consequent,t),t.write(" : "),this[e.alternate.type](e.alternate,t)},NewExpression(e,t){t.write("new ");let i=t.expressionsPrecedence[e.callee.type];i===mt||i<t.expressionsPrecedence.CallExpression||na(e.callee)?(t.write("("),this[e.callee.type](e.callee,t),t.write(")")):this[e.callee.type](e.callee,t),ue(t,e.arguments)},CallExpression(e,t){let i=t.expressionsPrecedence[e.callee.type];i===mt||i<t.expressionsPrecedence.CallExpression?(t.write("("),this[e.callee.type](e.callee,t),t.write(")")):this[e.callee.type](e.callee,t),e.optional&&t.write("?."),ue(t,e.arguments)},ChainExpression(e,t){this[e.expression.type](e.expression,t)},MemberExpression(e,t){let i=t.expressionsPrecedence[e.object.type];i===mt||i<t.expressionsPrecedence.MemberExpression?(t.write("("),this[e.object.type](e.object,t),t.write(")")):this[e.object.type](e.object,t),e.computed?(e.optional&&t.write("?."),t.write("["),this[e.property.type](e.property,t),t.write("]")):(e.optional?t.write("?."):t.write("."),this[e.property.type](e.property,t))},MetaProperty(e,t){t.write(e.meta.name+"."+e.property.name,e)},Identifier(e,t){t.write(e.name,e)},PrivateIdentifier(e,t){t.write(`#${e.name}`,e)},Literal(e,t){e.raw!=null?t.write(e.raw,e):e.regex!=null?this.RegExpLiteral(e,t):e.bigint!=null?t.write(e.bigint+"n",e):t.write(ia(e.value),e)},RegExpLiteral(e,t){let{regex:i}=e;t.write(`/${i.pattern}/${i.flags}`,e)}},oa={};var Zi=class{constructor(t){let i=t??oa;this.output="",i.output!=null?(this.output=i.output,this.write=this.writeToStream):this.output="",this.generator=i.generator!=null?i.generator:aa,this.expressionsPrecedence=i.expressionsPrecedence!=null?i.expressionsPrecedence:ra,this.indent=i.indent!=null?i.indent:" ",this.lineEnd=i.lineEnd!=null?i.lineEnd:`
|
|
8
|
+
`,a):(e.write("/*"),sa(e,a.value,i,r),e.write("*/"+r))}}function na(e){let t=e;for(;t!=null;){let{type:i}=t;if(i[0]==="C"&&i[1]==="a")return!0;if(i[0]==="M"&&i[1]==="e"&&i[2]==="m")t=t.object;else return!1}}function Ji(e,t){let{generator:i}=e,{declarations:r}=t;e.write(t.kind+" ");let{length:s}=r;if(s>0){i.VariableDeclarator(r[0],e);for(let n=1;n<s;n++)e.write(", "),i.VariableDeclarator(r[n],e)}}var xs,ys,bs,ws,vs,Ss,aa={Program(e,t){let i=t.indent.repeat(t.indentLevel),{lineEnd:r,writeComments:s}=t;s&&e.comments!=null&&tt(t,e.comments,i,r);let n=e.body,{length:a}=n;for(let o=0;o<a;o++){let u=n[o];s&&u.comments!=null&&tt(t,u.comments,i,r),t.write(i),this[u.type](u,t),t.write(r)}s&&e.trailingComments!=null&&tt(t,e.trailingComments,i,r)},BlockStatement:Ss=function(e,t){let i=t.indent.repeat(t.indentLevel++),{lineEnd:r,writeComments:s}=t,n=i+t.indent;t.write("{");let a=e.body;if(a!=null&&a.length>0){t.write(r),s&&e.comments!=null&&tt(t,e.comments,n,r);let{length:o}=a;for(let u=0;u<o;u++){let c=a[u];s&&c.comments!=null&&tt(t,c.comments,n,r),t.write(n),this[c.type](c,t),t.write(r)}t.write(i)}else s&&e.comments!=null&&(t.write(r),tt(t,e.comments,n,r),t.write(i));s&&e.trailingComments!=null&&tt(t,e.trailingComments,n,r),t.write("}"),t.indentLevel--},ClassBody:Ss,StaticBlock(e,t){t.write("static "),this.BlockStatement(e,t)},EmptyStatement(e,t){t.write(";")},ExpressionStatement(e,t){let i=t.expressionsPrecedence[e.expression.type];i===mt||i===3&&e.expression.left.type[0]==="O"?(t.write("("),this[e.expression.type](e.expression,t),t.write(")")):this[e.expression.type](e.expression,t),t.write(";")},IfStatement(e,t){t.write("if ("),this[e.test.type](e.test,t),t.write(") "),this[e.consequent.type](e.consequent,t),e.alternate!=null&&(t.write(" else "),this[e.alternate.type](e.alternate,t))},LabeledStatement(e,t){this[e.label.type](e.label,t),t.write(": "),this[e.body.type](e.body,t)},BreakStatement(e,t){t.write("break"),e.label!=null&&(t.write(" "),this[e.label.type](e.label,t)),t.write(";")},ContinueStatement(e,t){t.write("continue"),e.label!=null&&(t.write(" "),this[e.label.type](e.label,t)),t.write(";")},WithStatement(e,t){t.write("with ("),this[e.object.type](e.object,t),t.write(") "),this[e.body.type](e.body,t)},SwitchStatement(e,t){let i=t.indent.repeat(t.indentLevel++),{lineEnd:r,writeComments:s}=t;t.indentLevel++;let n=i+t.indent,a=n+t.indent;t.write("switch ("),this[e.discriminant.type](e.discriminant,t),t.write(") {"+r);let{cases:o}=e,{length:u}=o;for(let c=0;c<u;c++){let l=o[c];s&&l.comments!=null&&tt(t,l.comments,n,r),l.test?(t.write(n+"case "),this[l.test.type](l.test,t),t.write(":"+r)):t.write(n+"default:"+r);let{consequent:f}=l,{length:p}=f;for(let m=0;m<p;m++){let g=f[m];s&&g.comments!=null&&tt(t,g.comments,a,r),t.write(a),this[g.type](g,t),t.write(r)}}t.indentLevel-=2,t.write(i+"}")},ReturnStatement(e,t){t.write("return"),e.argument&&(t.write(" "),this[e.argument.type](e.argument,t)),t.write(";")},ThrowStatement(e,t){t.write("throw "),this[e.argument.type](e.argument,t),t.write(";")},TryStatement(e,t){if(t.write("try "),this[e.block.type](e.block,t),e.handler){let{handler:i}=e;i.param==null?t.write(" catch "):(t.write(" catch ("),this[i.param.type](i.param,t),t.write(") ")),this[i.body.type](i.body,t)}e.finalizer&&(t.write(" finally "),this[e.finalizer.type](e.finalizer,t))},WhileStatement(e,t){t.write("while ("),this[e.test.type](e.test,t),t.write(") "),this[e.body.type](e.body,t)},DoWhileStatement(e,t){t.write("do "),this[e.body.type](e.body,t),t.write(" while ("),this[e.test.type](e.test,t),t.write(");")},ForStatement(e,t){if(t.write("for ("),e.init!=null){let{init:i}=e;i.type[0]==="V"?Ji(t,i):this[i.type](i,t)}t.write("; "),e.test&&this[e.test.type](e.test,t),t.write("; "),e.update&&this[e.update.type](e.update,t),t.write(") "),this[e.body.type](e.body,t)},ForInStatement:xs=function(e,t){t.write(`for ${e.await?"await ":""}(`);let{left:i}=e;i.type[0]==="V"?Ji(t,i):this[i.type](i,t),t.write(e.type[3]==="I"?" in ":" of "),this[e.right.type](e.right,t),t.write(") "),this[e.body.type](e.body,t)},ForOfStatement:xs,DebuggerStatement(e,t){t.write("debugger;",e)},FunctionDeclaration:ys=function(e,t){t.write((e.async?"async ":"")+(e.generator?"function* ":"function ")+(e.id?e.id.name:""),e),ue(t,e.params),t.write(" "),this[e.body.type](e.body,t)},FunctionExpression:ys,VariableDeclaration(e,t){Ji(t,e),t.write(";")},VariableDeclarator(e,t){this[e.id.type](e.id,t),e.init!=null&&(t.write(" = "),this[e.init.type](e.init,t))},ClassDeclaration(e,t){if(t.write("class "+(e.id?`${e.id.name} `:""),e),e.superClass){t.write("extends ");let{superClass:i}=e,{type:r}=i,s=t.expressionsPrecedence[r];(r[0]!=="C"||r[1]!=="l"||r[5]!=="E")&&(s===mt||s<t.expressionsPrecedence.ClassExpression)?(t.write("("),this[e.superClass.type](i,t),t.write(")")):this[i.type](i,t),t.write(" ")}this.ClassBody(e.body,t)},ImportDeclaration(e,t){t.write("import ");let{specifiers:i,attributes:r}=e,{length:s}=i,n=0;if(s>0){for(;n<s;){n>0&&t.write(", ");let a=i[n],o=a.type[6];if(o==="D")t.write(a.local.name,a),n++;else if(o==="N")t.write("* as "+a.local.name,a),n++;else break}if(n<s){for(t.write("{");;){let a=i[n],{name:o}=a.imported;if(t.write(o,a),o!==a.local.name&&t.write(" as "+a.local.name),++n<s)t.write(", ");else break}t.write("}")}t.write(" from ")}if(this.Literal(e.source,t),r&&r.length>0){t.write(" with { ");for(let a=0;a<r.length;a++)this.ImportAttribute(r[a],t),a<r.length-1&&t.write(", ");t.write(" }")}t.write(";")},ImportAttribute(e,t){this.Identifier(e.key,t),t.write(": "),this.Literal(e.value,t)},ImportExpression(e,t){t.write("import("),this[e.source.type](e.source,t),t.write(")")},ExportDefaultDeclaration(e,t){t.write("export default "),this[e.declaration.type](e.declaration,t),t.expressionsPrecedence[e.declaration.type]!=null&&e.declaration.type[0]!=="F"&&t.write(";")},ExportNamedDeclaration(e,t){if(t.write("export "),e.declaration)this[e.declaration.type](e.declaration,t);else{t.write("{");let{specifiers:i}=e,{length:r}=i;if(r>0)for(let s=0;;){let n=i[s],{name:a}=n.local;if(t.write(a,n),a!==n.exported.name&&t.write(" as "+n.exported.name),++s<r)t.write(", ");else break}if(t.write("}"),e.source&&(t.write(" from "),this.Literal(e.source,t)),e.attributes&&e.attributes.length>0){t.write(" with { ");for(let s=0;s<e.attributes.length;s++)this.ImportAttribute(e.attributes[s],t),s<e.attributes.length-1&&t.write(", ");t.write(" }")}t.write(";")}},ExportAllDeclaration(e,t){if(e.exported!=null?t.write("export * as "+e.exported.name+" from "):t.write("export * from "),this.Literal(e.source,t),e.attributes&&e.attributes.length>0){t.write(" with { ");for(let i=0;i<e.attributes.length;i++)this.ImportAttribute(e.attributes[i],t),i<e.attributes.length-1&&t.write(", ");t.write(" }")}t.write(";")},MethodDefinition(e,t){e.static&&t.write("static ");let i=e.kind[0];(i==="g"||i==="s")&&t.write(e.kind+" "),e.value.async&&t.write("async "),e.value.generator&&t.write("*"),e.computed?(t.write("["),this[e.key.type](e.key,t),t.write("]")):this[e.key.type](e.key,t),ue(t,e.value.params),t.write(" "),this[e.value.body.type](e.value.body,t)},ClassExpression(e,t){this.ClassDeclaration(e,t)},ArrowFunctionExpression(e,t){t.write(e.async?"async ":"",e);let{params:i}=e;i!=null&&(i.length===1&&i[0].type[0]==="I"?t.write(i[0].name,i[0]):ue(t,e.params)),t.write(" => "),e.body.type[0]==="O"?(t.write("("),this.ObjectExpression(e.body,t),t.write(")")):this[e.body.type](e.body,t)},ThisExpression(e,t){t.write("this",e)},Super(e,t){t.write("super",e)},RestElement:bs=function(e,t){t.write("..."),this[e.argument.type](e.argument,t)},SpreadElement:bs,YieldExpression(e,t){t.write(e.delegate?"yield*":"yield"),e.argument&&(t.write(" "),this[e.argument.type](e.argument,t))},AwaitExpression(e,t){t.write("await ",e),ui(t,e.argument,e)},TemplateLiteral(e,t){let{quasis:i,expressions:r}=e;t.write("`");let{length:s}=r;for(let a=0;a<s;a++){let o=r[a],u=i[a];t.write(u.value.raw,u),t.write("${"),this[o.type](o,t),t.write("}")}let n=i[i.length-1];t.write(n.value.raw,n),t.write("`")},TemplateElement(e,t){t.write(e.value.raw,e)},TaggedTemplateExpression(e,t){ui(t,e.tag,e),this[e.quasi.type](e.quasi,t)},ArrayExpression:vs=function(e,t){if(t.write("["),e.elements.length>0){let{elements:i}=e,{length:r}=i;for(let s=0;;){let n=i[s];if(n!=null&&this[n.type](n,t),++s<r)t.write(", ");else{n==null&&t.write(", ");break}}}t.write("]")},ArrayPattern:vs,ObjectExpression(e,t){let i=t.indent.repeat(t.indentLevel++),{lineEnd:r,writeComments:s}=t,n=i+t.indent;if(t.write("{"),e.properties.length>0){t.write(r),s&&e.comments!=null&&tt(t,e.comments,n,r);let a=","+r,{properties:o}=e,{length:u}=o;for(let c=0;;){let l=o[c];if(s&&l.comments!=null&&tt(t,l.comments,n,r),t.write(n),this[l.type](l,t),++c<u)t.write(a);else break}t.write(r),s&&e.trailingComments!=null&&tt(t,e.trailingComments,n,r),t.write(i+"}")}else s?e.comments!=null?(t.write(r),tt(t,e.comments,n,r),e.trailingComments!=null&&tt(t,e.trailingComments,n,r),t.write(i+"}")):e.trailingComments!=null?(t.write(r),tt(t,e.trailingComments,n,r),t.write(i+"}")):t.write("}"):t.write("}");t.indentLevel--},Property(e,t){e.method||e.kind[0]!=="i"?this.MethodDefinition(e,t):(e.shorthand||(e.computed?(t.write("["),this[e.key.type](e.key,t),t.write("]")):this[e.key.type](e.key,t),t.write(": ")),this[e.value.type](e.value,t))},PropertyDefinition(e,t){if(e.static&&t.write("static "),e.computed&&t.write("["),this[e.key.type](e.key,t),e.computed&&t.write("]"),e.value==null){e.key.type[0]!=="F"&&t.write(";");return}t.write(" = "),this[e.value.type](e.value,t),t.write(";")},ObjectPattern(e,t){if(t.write("{"),e.properties.length>0){let{properties:i}=e,{length:r}=i;for(let s=0;this[i[s].type](i[s],t),++s<r;)t.write(", ")}t.write("}")},SequenceExpression(e,t){ue(t,e.expressions)},UnaryExpression(e,t){if(e.prefix){let{operator:i,argument:r,argument:{type:s}}=e;t.write(i);let n=_s(t,r,e);!n&&(i.length>1||s[0]==="U"&&(s[1]==="n"||s[1]==="p")&&r.prefix&&r.operator[0]===i&&(i==="+"||i==="-"))&&t.write(" "),n?(t.write(i.length>1?" (":"("),this[s](r,t),t.write(")")):this[s](r,t)}else this[e.argument.type](e.argument,t),t.write(e.operator)},UpdateExpression(e,t){e.prefix?(t.write(e.operator),this[e.argument.type](e.argument,t)):(this[e.argument.type](e.argument,t),t.write(e.operator))},AssignmentExpression(e,t){this[e.left.type](e.left,t),t.write(" "+e.operator+" "),this[e.right.type](e.right,t)},AssignmentPattern(e,t){this[e.left.type](e.left,t),t.write(" = "),this[e.right.type](e.right,t)},BinaryExpression:ws=function(e,t){let i=e.operator==="in";i&&t.write("("),ui(t,e.left,e,!1),t.write(" "+e.operator+" "),ui(t,e.right,e,!0),i&&t.write(")")},LogicalExpression:ws,ConditionalExpression(e,t){let{test:i}=e,r=t.expressionsPrecedence[i.type];r===mt||r<=t.expressionsPrecedence.ConditionalExpression?(t.write("("),this[i.type](i,t),t.write(")")):this[i.type](i,t),t.write(" ? "),this[e.consequent.type](e.consequent,t),t.write(" : "),this[e.alternate.type](e.alternate,t)},NewExpression(e,t){t.write("new ");let i=t.expressionsPrecedence[e.callee.type];i===mt||i<t.expressionsPrecedence.CallExpression||na(e.callee)?(t.write("("),this[e.callee.type](e.callee,t),t.write(")")):this[e.callee.type](e.callee,t),ue(t,e.arguments)},CallExpression(e,t){let i=t.expressionsPrecedence[e.callee.type];i===mt||i<t.expressionsPrecedence.CallExpression?(t.write("("),this[e.callee.type](e.callee,t),t.write(")")):this[e.callee.type](e.callee,t),e.optional&&t.write("?."),ue(t,e.arguments)},ChainExpression(e,t){this[e.expression.type](e.expression,t)},MemberExpression(e,t){let i=t.expressionsPrecedence[e.object.type];i===mt||i<t.expressionsPrecedence.MemberExpression?(t.write("("),this[e.object.type](e.object,t),t.write(")")):this[e.object.type](e.object,t),e.computed?(e.optional&&t.write("?."),t.write("["),this[e.property.type](e.property,t),t.write("]")):(e.optional?t.write("?."):t.write("."),this[e.property.type](e.property,t))},MetaProperty(e,t){t.write(e.meta.name+"."+e.property.name,e)},Identifier(e,t){t.write(e.name,e)},PrivateIdentifier(e,t){t.write(`#${e.name}`,e)},Literal(e,t){e.raw!=null?t.write(e.raw,e):e.regex!=null?this.RegExpLiteral(e,t):e.bigint!=null?t.write(e.bigint+"n",e):t.write(ia(e.value),e)},RegExpLiteral(e,t){let{regex:i}=e;t.write(`/${i.pattern}/${i.flags}`,e)}},oa={};var Zi=class{constructor(t){let i=t??oa;this.output="",i.output!=null?(this.output=i.output,this.write=this.writeToStream):this.output="",this.generator=i.generator!=null?i.generator:aa,this.expressionsPrecedence=i.expressionsPrecedence!=null?i.expressionsPrecedence:ra,this.indent=i.indent!=null?i.indent:" ",this.lineEnd=i.lineEnd!=null?i.lineEnd:`
|
|
9
9
|
`,this.indentLevel=i.startingIndentLevel!=null?i.startingIndentLevel:0,this.writeComments=i.comments?i.comments:!1,i.sourceMap!=null&&(this.write=i.output==null?this.writeAndMap:this.writeToStreamAndMap,this.sourceMap=i.sourceMap,this.line=1,this.column=0,this.lineEndSize=this.lineEnd.split(`
|
|
10
10
|
`).length-1,this.mapping={original:null,generated:this,name:void 0,source:i.sourceMap.file||i.sourceMap._file})}write(t){this.output+=t}writeToStream(t){this.output.write(t)}writeAndMap(t,i){this.output+=t,this.map(t,i)}writeToStreamAndMap(t,i){this.output.write(t),this.map(t,i)}map(t,i){if(i!=null){let{type:n}=i;if(n[0]==="L"&&n[2]==="n"){this.column=0,this.line++;return}if(i.loc!=null){let{mapping:a}=this;a.original=i.loc.start,a.name=i.name,this.sourceMap.addMapping(a)}if(n[0]==="T"&&n[8]==="E"||n[0]==="L"&&n[1]==="i"&&typeof i.value=="string"){let{length:a}=t,{column:o,line:u}=this;for(let c=0;c<a;c++)t[c]===`
|
|
11
|
-
`?(o=0,u++):o++;this.column=o,this.line=u;return}}let{length:r}=t,{lineEnd:s}=this;r>0&&(this.lineEndSize>0&&(s.length===1?t[r-1]===s:t.endsWith(s))?(this.line+=this.lineEndSize,this.column=0):this.column+=r)}toString(){return this.output}};function Es(e,t){let i=new Zi(t);return i.generator[e.type](e,i),i.output}var Ot=class{type="Identifier";whitelist=[];blacklist=[];constructor(t){this.whitelist[0]=t}get name(){return this.whitelist[0]}noConflict(t){let i=this.whitelist.indexOf(t);if(i===-1)return!1;this.blacklist.push(this.whitelist.splice(i,1)),this.whitelist.length||(this.whitelist=this.blacklist.map(r=>{let s;do{let n=String.fromCharCode(0|Math.random()*26+97);s=`${r}${n}`}while(this.blacklist.includes(s));return s}))}};var d={throwStmt(e){return{type:"ThrowStatement",argument:e}},tryStmt(e,t,i,r){return{type:"TryStatement",block:e,handler:t,finalizer:i,guardedHandlers:r}},catchClause(e,t){return{type:"CatchClause",param:e,body:t}},exprStmt(e){return{type:"ExpressionStatement",expression:e}},blockStmt(e){return{type:"BlockStatement",body:e}},labeledStmt(e,t){return{type:"LabeledStatement",label:e,body:t}},withStmt(e,t){return{type:"WithStatement",object:e,body:t}},ifStmt(e,t,i){return this.conditionalExpr(e,t,i,"IfStatement")},switchStmt(e,t,i=!1){return{type:"SwitchStatement",discriminant:e,cases:t}},switchCase(e,t){return{type:"SwitchCase",test:e,consequent:t}},whileStmt(e,t){return{type:"WhileStatement",test:e,body:t}},doWhileStmt(e,t){return{type:"DoWhileStatement",test:e,body:t}},forStmt(e,t,i,r){return{type:"ForStatement",init:e,test:t,update:i,body:r}},forInStmt(e,t,i){return{type:"ForInStatement",left:e,right:t,body:i}},forOfStmt(e,t,i){return{type:"ForOfStatement",left:e,right:t,body:i}},breakStmt(e=null){return{type:"BreakStatement",label:e}},continueStmt(e=null){return{type:"ContinueStatement",label:e}},returnStmt(e){return{type:"ReturnStatement",argument:e}},yieldExpr(e,t=!1){return{type:"YieldExpression",argument:e,delegate:t}},awaitExpr(e){return{type:"AwaitExpression",argument:e}},varDeclaration(e,t){return{type:"VariableDeclaration",kind:e,declarations:t}},varDeclarator(e,t=null){return{type:"VariableDeclarator",id:e,init:t}},funcDeclaration(e,t,i,r=!1,s=!1,n=!1){return this.func("FunctionDeclaration",...arguments)},sequenceExpr(e){return{type:"SequenceExpression",expressions:e}},parensExpr(e){return{type:"ParenthesizedExpression",expression:e}},logicalExpr(e,t,i){return{type:"LogicalExpression",operator:e,left:t,right:i}},binaryExpr(e,t,i){return{type:"BinaryExpression",operator:e,left:t,right:i}},unaryExpr(e,t,i=!0){return{type:"UnaryExpression",operator:e,argument:t,prefix:i}},updateExpr(e,t,i=!1){return{type:"UpdateExpression",operator:e,argument:t,prefix:i}},assignmentExpr(e,t,i="="){return{type:"AssignmentExpression",operator:i,left:e,right:t}},assignmentPattern(e,t){return{type:"AssignmentPattern",left:e,right:t}},thisExpr(){return{type:"ThisExpression"}},conditionalExpr(e,t,i,r="ConditionalExpression"){return{type:r,test:e,consequent:t,alternate:i}},arrayExpr(e){return{type:"ArrayExpression",elements:e}},arrayPattern(e){return{type:"ArrayPattern",elements:e}},objectExpr(e){return{type:"ObjectExpression",properties:e}},objectPattern(e){return{type:"ObjectPattern",properties:e}},chainExpr(e){return{type:"ChainExpression",expression:e}},callExpr(e,t,i=!1){return{type:"CallExpression",callee:e,arguments:t,optional:i}},newExpr(e,t){return{type:"NewExpression",callee:e,arguments:t}},taggedTemplateExpr(e,t){return{type:"TaggedTemplateExpression",tag:e,quasi:t}},memberExpr(e,t,i=!1,r=!1){return{type:"MemberExpression",object:e,property:t,computed:i,optional:r}},funcExpr(e,t,i,r=!1,s=!1,n=!1){return this.func("FunctionExpression",...arguments)},arrowFuncExpr(e,t,i,r=!1,s=!1,n=!1){return this.func("ArrowFunctionExpression",...arguments)},func(e,t,i,r,s=!1,n=!1,a=!1){return{type:e,id:t,params:i,body:r,async:s,expression:n,generator:a}},identifier(e){return{type:"Identifier",name:e}},property(e,t,i="init",r=!1,s=!1,n=!1){return{type:"Property",key:e,value:t,kind:i,shorthand:r,computed:s,method:n}},classDeclaration(e,t,i=null){return this.class("ClassDeclaration",...arguments)},classExpression(e,t,i=null){return this.class("ClassExpression",...arguments)},class(e,t,i,r=null){return{type:e,id:t,body:i,superClass:r}},methodDefinition(e,t,i="method",r=!1,s=!1){return{type:"MethodDefinition",key:e,value:t,kind:i,static:r,computed:s}},propertyDefinition(e,t,i=!1,r=!1){return{type:"PropertyDefinition",key:e,value:t,static:i,computed:r}},spreadElement(e){return{type:"SpreadElement",argument:e}},literal(e){if(typeof e=="object"&&!("name"in e)&&!("value"in e))throw new Error('Objects that convert to literals must have a "name" or "value" property.');return typeof e=="object"?{type:"Literal",get value(){return"name"in e?e.name:e.value}}:{type:"Literal",value:e}},templateLiteral(e,t){return{type:"TemplateLiteral",quasis:e,expressions:t}},comments(e){let t={};return Object.defineProperty(t,"toString",{value:()=>e}),Object.defineProperty(t,"trim",{value:function(){return this.toString()}}),[{type:"Line",value:t}]},withLoc(e,...t){return["start","end"].forEach(i=>{let r=i==="start"?t[0]:t[t.length-1];e[i]=r[i],r.loc&&(e.loc=e.loc||{},e.loc[i]=r.loc?.[i])}),e},invert(e){return this.unaryExpr("!",e)},clone(e){return e={...e},delete e.start,delete e.end,e}};var ce=class{type="BlockStatement";$body=[];constructor(t){this.body=t}get body(){return this.$body}set body(t){this.$body=t,d.withLoc(this,...t)}};var Ne=class{constructor(t,{type:i}){this.context=t,Object.assign(this,{type:i}),this.vars=new Set,this.$qIdentifiers=new Map,this.$qIdentifiersCursors={...this.context?.$qIdentifiersCursors||{}},this.locations=[]}index(t,i=!1){if(!this.type.includes("Function")&&this.context)return this.context.index(...arguments);let r=["start","end"].map(s=>{let n=[d.literal(t[s])];return i&&t.loc&&(n.push(d.literal(t.loc[s].line)),n.push(d.literal(t.loc[s].column))),d.arrayExpr(n)});return this.locations.push(d.arrayExpr(r)),d.literal(this.locations.length-1)}get$qIdentifier(t,i=!0,r=!1){let s=this.$qIdentifiers.get(t);if(!s){if(i&&this.context)return this.context.get$qIdentifier(t,i);r&&(typeof this.$qIdentifiersCursors[t]>"u"&&(this.$qIdentifiersCursors[t]=0),t+=this.$qIdentifiersCursors[t]++),this.$qIdentifiers.set(t,s=new Ot(t))}return s}getRandomIdentifier(t,i=!0){return this.get$qIdentifier(t,i,!0)}$qIdentifiersNoConflict(t){for(let[,i]of this.$qIdentifiers)i.noConflict(t);this.context&&this.context.$qIdentifiersNoConflict(t)}push(t,i,r=!1){let s;return["var","update"].includes(i)&&(s=this.find(t,!1))&&s.type!=="const"?s.willUpdate=!0:(i!=="update"||!this.context)&&(t instanceof Ot||this.$qIdentifiersNoConflict(t.name+""),this.vars.add({identifier:t,type:i,willUpdate:r||i==="update"})),this.context&&(i==="update"||i==="var"&&!this.type.includes("Function"))?this.context.push(t,i):!0}find(t,i=!0){let r;for(let s of this.vars)if(s.identifier.name+""==t.name+""){r=s;break}return!r&&i?this.context?.find(t,i):r}};var $e=class{history=[];scopes=[];functionTypes=["FunctionDeclaration","FunctionExpression","ArrowFunctionExpression"];loopTypes=["DoWhileStatement","WhileStatement","ForStatement","ForOfStatement","ForInStatement"];labeledTypes=["SwitchStatement","LabeledStatement"];topLevelAwait=!1;topLevelArgsKeyword=!1;constructor(t={}){this.params=t}pushScope(t,i){let r=new Ne(this.currentScope,t);this.scopes.unshift(r);let s=i();return this.scopes.shift(),s}get currentScope(){return this.scopes[0]}pushHistory(t,i){this.history.unshift(t);let r=i();return this.history.shift(),r}get currentEntry(){return this.history[0]}serialize(t,i={}){return Es(t,{comments:!0,...i})}transform(t){if(t.type!=="Program")throw new Error('AST must be of type "Program".');return this.pushScope(t,()=>{let i=this.transformNodes(t.body,{static:!t.isQuantumProgram}),r={...t,body:i};r.body.length&&(r.body[0].comments=d.comments("Program body"));let s=d.exprStmt(d.assignmentExpr(this.$path("locations"),d.arrayExpr(this.currentScope.locations)));if(s.comments=d.comments("Location data"),r.body.unshift(s),this.exports.size){this.exports.forEach(c=>{r.body.push(d.exprStmt(this.$call("export",...c)))});let u=d.memberExpr(d.identifier("Promise"),d.identifier("all"));r.body.push(d.exprStmt(d.awaitExpr(d.callExpr(u,[this.$path("$promises.exports")]))))}let n=this.currentScope.get$qIdentifier("$q").name,a=this.serialize(r,{startingIndentLevel:this.params.startingIndentLevel}),o=this.params.base64?btoa(this.params.base64.replace("%0",n+"").replace("%1",a)):"";return{identifier:n,compiledSource:a,compiledSourceBase64:o,originalSource:t.originalSource,isQuantumProgram:t.isQuantumProgram,topLevelAwait:this.topLevelAwait,toString(u=void 0){return u==="base64"?this.compiledSourceBase64:this.compiledSource}}})}transformNodes(t,i={}){let r=(t=t.filter(o=>o)).length,[s,n,a]=t.reduce(([o,u,c],l)=>l?.type==="ImportDeclaration"?[o.concat(l),u,c]:l?.type==="FunctionDeclaration"?[o,u.concat(l),c]:[o,u,c.concat(l)],[[],[],[]]);return t=[...s,...n,...a],function o(u,c){if(c===r)return u;let[l,f]=this.transformNode(t[c],i,!0);if(u=u.concat(l||[]),c===s.length-1){let p=d.memberExpr(d.identifier("Promise"),d.identifier("all"));u=u.concat(d.exprStmt(d.awaitExpr(d.callExpr(p,[this.$path("$promises.imports")]))))}if(["ReturnStatement","BreakStatement","ContinueStatement"].includes(t[c].type))return u;if(f.flowControl?.size&&f.node.type==="IfStatement"){let p=t.slice(c+1);if(p.length){let m=new ce(p);return u.concat(this.transformNode(m))}}return o.call(this,u,c+1)}.call(this,[],0)}transformNode(t,i={},r=!1){if(typeof t!="object"||!t)return t;let s={static:this.currentEntry?.static,mode:this.currentEntry?.mode,...i,parentNode:this.currentEntry?.node,node:t,hoistedAwaitKeyword:!1,flowControl:new Map},n=this.pushHistory(s,()=>this[`transform${t.type}`]?this[`transform${t.type}`].call(this,t):Object.keys(t).reduce((a,o)=>{let u=Array.isArray(t[o])?this.transformNodes(t[o],i):this.transformNode(t[o],i);return{...a,[o]:u}},{}));return r?[n,s]:n}$serial(t){return this.currentScope.index(t,this.params.locations)}$path(t){return t.split(".").reduce((i,r)=>d.memberExpr(i,d.identifier(r)),this.currentScope.get$qIdentifier("$q"))}$trail(){return this.currentEntry.trail?[d.literal(this.currentEntry.trail)]:[]}$call(t,...i){return d.callExpr(this.$path(t),i)}$typed(t,i,r=null){let s=r?[d.literal(r)]:[];return this.$call("typed",d.literal(t),i,...s)}$obj(t){let i=Object.entries(t).map(([r,s])=>d.property(d.identifier(r),Array.isArray(s)?d.arrayExpr(s):s));return d.objectExpr(i)}$closure(...t){let i=t.pop(),r=t.pop()||[];return i.type==="EmptyStatement"&&(i=d.blockStmt([])),d.arrowFuncExpr(null,r,i,this.currentEntry.hoistedAwaitKeyword)}$var(t,i,r,s,...n){let a=s?this.$closure([this.currentScope.get$qIdentifier("$q")],s):d.identifier("undefined"),o=this.$call(t,d.literal(r),i,a,...n);return a.async&&(o=d.awaitExpr(o)),d.exprStmt(o)}$update(t,i,...r){let s=this.$closure(i);return this.$call("update",d.literal(t.name),s,...r)}$autorun(t,...i){let r=i.pop(),s=i.pop(),n=i.pop()||{},a=Object.keys(n).length?[this.$obj(n)]:[],o=this.$closure([this.currentScope.get$qIdentifier("$q")],r),u=this.$call("autorun",d.literal(t),...a,s,o);return o.async&&(u=d.awaitExpr(u)),d.exprStmt(u)}$iteration(t,i,r){let s=d.literal(t),n=this.currentEntry.parentNode?.label?d.literal(this.currentEntry.parentNode.label.name):d.identifier("null"),a={kind:s,label:n},o=d.blockStmt(r);return this.$autorun("iteration",a,i,o)}hoistAwaitKeyword(){for(let t of this.history)if(t.hoistedAwaitKeyword=!0,t.node.type.includes("Function"))return;this.topLevelAwait=!0}hoistArgumentsKeyword(){let t=["FunctionDeclaration","FunctionExpression"];if(!this.history.some(i=>t.includes(i.node.type)))return this.topLevelArgsKeyword=!0,!0}hoistExitStatement(t,i={}){for(let r of this.history){let s=()=>r.node?.type==="SwitchStatement"&&t.value==="break"&&i.name==="null",n=()=>r.parentNode?.type==="LabeledStatement"&&this.loopTypes.includes(r.parentNode.body.type)&&i.value===r.parentNode.label.name,a=()=>this.loopTypes.includes(r.node.type)&&i.name==="null";if(s())return r.node;if(n()||a())return r.flowControl.set(t,{...i,endpoint:!0}),r.node;if(r.node.type.includes("Function"))return;r.flowControl.set(t,i)}}transformFunctionDeclaration(t){return this.transformFunction(d.funcDeclaration,...arguments)}transformFunctionExpression(t){return this.transformFunction(d.funcExpr,...arguments)}transformArrowFunctionExpression(t){return this.transformFunction(d.arrowFuncExpr,...arguments)}transformFunction(t,i){if(i.generator&&i.isQuantumFunction)throw new Error("Generator functions cannot be quantum functions.");let r=this.$serial(i),{id:s,params:n,body:a}=i;[s,n,a]=this.pushScope(i,()=>{let g=[];s&&this.currentScope.push(s,"self");let w=n.map(b=>{if(b.type==="AssignmentPattern"&&i.isQuantumFunction){let C=this.currentScope.getRandomIdentifier("$rand",!1),v=this.transformSignal(C,"param"),y=d.varDeclarator(b.left,d.withLoc(d.logicalExpr("||",C,b.right),b));return g.push(...this.transformNode(d.varDeclaration("let",[d.withLoc(y,b)]),{static:!i.isQuantumFunction})),v}return this.transformSignal(b,"param")}),E=this.transformNode(a,{static:!i.isQuantumFunction});g.push(...E.type==="BlockStatement"?E.body:[d.returnStmt(E)]),g.length&&(g[0].comments=d.comments("Function body"));let x=d.exprStmt(d.assignmentExpr(this.$path("locations"),d.arrayExpr(this.currentScope.locations)));return x.comments=d.comments("Location data"),g.unshift(x),[s,w,d.blockStmt(g)]});let o=this.currentScope.get$qIdentifier("$q"),u=this.$closure([o],a),c=d.identifier(i.isQuantumFunction||!1),l=d.identifier(i.type==="FunctionDeclaration"),f=d.blockStmt([d.returnStmt(this.$call("runtime.spawn",c,d.thisExpr(),u))]),p=g=>this.$call("function",l,c,r,g),m=t.call(d,s,n,f,i.async,i.expresion,i.generator);if(i.type==="FunctionDeclaration"){if(this.currentScope.push(s,"static"),m=[m,d.exprStmt(p(s))],this.currentEntry.isExport){let g=[d.literal(s),r];this.currentEntry.isExport==="as-default"&&g.push(d.literal("default")),this.exports.add([d.arrayExpr(g)])}}else this.currentEntry.isMethod||(m=p(m));return m}transformClassDeclaration(t){return this.transformClass(d.classDeclaration,...arguments)}transformClassExpression(t){return this.transformClass(d.classExpression,...arguments)}transformClass(t,i){let{id:r,body:s,superClass:n}=i;n&&(n=this.transformNode(n));let a=new Set;s=this.pushScope(i,()=>(r&&this.currentScope.push(r,"self"),this.transformNode(s,{methods:a})));let o=d.identifier(i.type==="ClassDeclaration"),u=l=>{let f=d.arrayExpr([...a].map(p=>this.$obj(p)));return this.$call("class",o,l,f)},c=t.call(d,r,s,n);if(i.type==="ClassDeclaration"){if(this.currentScope.push(r,"static"),c=[c,d.exprStmt(u(r))],this.currentEntry.isExport){let l=[d.literal(r),this.$serial(i)];this.currentEntry.isExport==="as-default"&&l.push(d.literal("default")),this.exports.add([d.arrayExpr(l)])}}else c=u(c);return c}transformMethodDefinition(t){let{key:i,value:r}=t;t.computed&&(i=this.transformNode(i));let s=this.transformNode(r,{static:!0,isMethod:!0});return this.currentEntry.methods.add({name:t.computed?i:d.literal(i),static:d.identifier(t.static),isQuantumFunction:d.identifier(r.isQuantumFunction||!1),serial:this.$serial(t)}),d.methodDefinition(i,s,t.kind,t.static,t.computed)}transformPropertyDefinition(t){let{key:i,value:r}=t;return t.computed&&(i=this.transformNode(i)),r=this.transformNode(r),d.exprStmt(d.propertyDefinition(i,r,t.static,t.computed))}exports=new Set;transformExportDefaultDeclaration(t){return this.handleExports(...arguments)}transformExportNamedDeclaration(t){return this.handleExports(...arguments)}transformExportAllDeclaration(t){return this.handleExports(...arguments)}handleExports(t){if(t.type==="ExportAllDeclaration"){let r=[d.literal("*"),this.$serial(t.exported||t),d.literal(t.exported?.name||t.exported?.value||"")];this.exports.add([d.arrayExpr(r),this.$obj({source:t.source,serial:this.$serial(t)})]);return}let i=r=>r.map(s=>{let n=[d.literal(s.local.name),this.$serial(s)],a=s.exported.name||s.exported.value;return a!==s.local.name&&n.push(d.literal(a)),d.arrayExpr(n)});if(t.source){this.exports.add(i(t.specifiers).concat(this.$obj({source:t.source,serial:this.$serial(t)})));return}if(t.type==="ExportNamedDeclaration"&&t.specifiers.length){this.exports.add(i(t.specifiers));return}if(t.type==="ExportDefaultDeclaration"&&["Identifier","ThisExpression"].includes(t.declaration.type)){let r=[d.literal(t.declaration.name||"this"),this.$serial(t),d.literal("default")];this.exports.add([d.arrayExpr(r)]);return}return this.transformNode(t.declaration,{isExport:t.type==="ExportDefaultDeclaration"?"as-default":!0})}transformImportDeclaration(t){let i=t.specifiers.map(r=>{let{imported:s,local:n}=r;this.transformSignal(n,"import"),r.type==="ImportNamespaceSpecifier"?s=d.identifier("*"):r.type==="ImportDefaultSpecifier"&&(s=d.identifier("default"));let a=s.name||s.value||"",o=[d.literal(a),this.$serial(r)];return a!==r.local.name&&o.push(d.literal(r.local.name)),d.arrayExpr(o)});return d.exprStmt(this.$call("import",...i.concat(this.$obj({source:t.source,serial:this.$serial(t)}))))}transformImportExpression(t){return this.$call("import",this.$obj({source:t.source,isDynamic:d.identifier("true"),serial:this.$serial(t)}))}transformSignal(t,i,r=null){return t.type==="Identifier"?(this.currentScope.push(t,i,["let","param"].includes(i)),r?.add(t),t):this.transformNode(t,{mode:i,static:!0,signals:r})}transformThisExpression(t){return this.transformIdentifier(...arguments)}transformIdentifier(t){let i=this.currentScope.find(t);!i&&t.name&&this.currentScope.$qIdentifiersNoConflict(t.name);let r=[];return t.hint?r.push(this.$obj({[t.hint]:d.identifier(!0)})):this.currentEntry.mode,t.type==="ThisExpression"||["param","self"].includes(i?.type)||["arguments"].includes(t.name)?this.currentEntry.trail?this.$call("obj",t,...this.$trail(),...r):t:(this.history.forEach(s=>s.refs?.add(t)),this.$call("ref",d.literal(t),...this.$trail(),...r))}transformMemberExpression(t){let{object:i,property:r,computed:s,optional:n}=t;s&&(r=this.transformNode(r));let a=this.transformNode(i,{trail:(this.currentEntry.trail||0)+1});return i.typed&&(a=this.$typed(i.typed,a,d.literal(r))),d.memberExpr(a,r,s,n)}transformVariableDeclaration(t){let i=this.currentEntry.isExport;return t.declarations.reduce((s,n)=>["ObjectPattern","ArrayPattern"].includes(n.id.type)?s.concat(this.expandPattern(n.id,n.init)):s.concat(n),[]).reduce((s,n)=>{let a=this.$serial(n),o=this.transformNode(n.init);this.transformSignal(n.id,t.kind,this.currentEntry.signals);let u=[];n.restOf&&(o=this.$typed(n.init.typed,o),u.push(this.$obj({restOf:n.restOf,type:d.literal(n.init.typed==="iterable"?"array":"object")})));let c=s.concat(this.$var(t.kind,a,n.id,o,...u));if(i&&!(n.id instanceof Ot)){let l=[d.literal(n.id),a];this.exports.add([d.arrayExpr(l)])}return c},[])}transformAssignmentExpression(t){let r=!this.currentEntry.static&&this.history[1].node.type==="ExpressionStatement",{left:s,right:n}=t,a=(u,c)=>(c=this.transformNode(c),u=this.transformNode(u),d.assignmentExpr(u,c,t.operator));if(["MemberExpression","ChainExpression"].includes(s.type))return a(s,n);if(["ObjectPattern","ArrayPattern"].includes(s.type)){let u=n,c=this.expandPattern(s,n,r).reduce((l,f)=>{if(f.id.originalB&&(u=f.id),f.type==="AssignmentExpression")return l.concat(a(f.left,f.right));let p=this.transformNode(f.init);if(f.id instanceof Ot){let g=this.$serial(f);return l.concat(this.$var("let",g,f.id,p))}this.transformSignal(f.id,"update",this.currentEntry.signals);let m=[];return f.restOf&&(p=this.$typed(f.init.typed,p),m.push(this.$obj({restOf:f.restOf,type:d.literal(f.init.typed==="iterable"?"array":"object")}))),l.concat(this.$update(f.id,p,...m))},[]);return r?c:d.sequenceExpr(c.concat(u))}n=this.transformNode(n),this.transformSignal(s,"update",this.currentEntry.signals);let o=this.currentScope.getRandomIdentifier("$current",!1);return this.$call("update",d.literal(s),this.$closure([o],d.assignmentExpr(o,n,t.operator.replace("====",""))))}transformAssignmentPattern(t){let{left:i,right:r}=t;return r=this.transformNode(r),["MemberExpression","ChainExpression"].includes(i.type)?i=this.transformNode(i,{static:!0}):i=this.transformSignal(i,this.currentEntry.mode,this.currentEntry.signals),d.assignmentPattern(i,r)}expandPattern(t,i,r=!0){let s=[],n=this;if(!["Identifier","Literal"].includes(i.type)&&r){let a=d.withLoc(n.currentScope.getRandomIdentifier("$rand",!1),i);a.originalB=!0,i.typed=t.type==="ObjectPattern"?"desctructurable":"iterable",s.push(d.withLoc(d.varDeclarator(a,i),i)),i=a}return function a(o,u,c){u.typed=c?"desctructurable":"iterable";let l=[];for(let f=0;f<o.length;f++){let p=o[f],m=f,g=p;if(p===null){l.push(f);continue}if(p.type==="RestElement"){let b=d.withLoc(d.varDeclarator(p.argument,u),p);b.restOf=l.map(C=>d.literal(C)),s.push(b);continue}c?{key:m,value:g}=p:m=d.literal(m);let w,E;g.type==="AssignmentPattern"?(w=g.right,g.left.type==="Identifier"?E=g.left:g=g.left):g.type==="Identifier"&&(E=g);let x=d.memberExpr(u,m,c?p.computed:!0);if(w&&(x=d.logicalExpr("||",x,w)),E)s.push(d.withLoc(d.varDeclarator(E,x),p)),l.push(m);else if(g.type==="MemberExpression"||g.type==="ChainExpression"&&(g=g.expression))s.push(d.withLoc(d.assignmentExpr(g,x),p));else if(g.elements||g.properties){let b=(g.properties?g.properties:g.elements).length>1;if(r&&b){let C=n.currentScope.getRandomIdentifier("$rand",!1);s.push(d.withLoc(d.varDeclarator(C,x),p)),x=C}a(g.elements||g.properties,x,g.properties&&!0)}}}(t.elements||t.properties,i,t.properties&&!0),s}transformUpdateExpression(t){if(t.argument.type==="Identifier"){this.transformSignal(t.argument,"update",this.currentEntry.signals);let i=this.currentScope.getRandomIdentifier("$current",!1),r=d.binaryExpr(t.operator==="--"?"-":"+",i,d.literal(1),!0),s=(t.prefix?"pre":"post")+(t.operator==="--"?"dec":"inc");return this.$call("update",d.literal(t.argument.name),this.$closure([i],r),this.$obj({kind:d.literal(s)}))}return d.updateExpr(t.operator,this.transformNode(t.argument),t.prefix)}transformUnaryExpression(t){return t.operator==="typeof"&&t.argument.type==="Identifier"&&(t.argument.hint="isTypeCheck"),d.unaryExpr(t.operator,this.transformNode(t.argument))}transformIfStatement(t){let i=this.$serial(t),{test:r,consequent:s,alternate:n}=t;r=this.transformNode(t.test),s=this.pushScope(t,()=>this.transformNodes([t.consequent])),s[0].type!=="BlockStatement"&&s.length>1?s=d.blockStmt(s):s=s[0],n&&(n=this.pushScope(t,()=>this.transformNodes([t.alternate])),n[0]&&n[0].type!=="BlockStatement"&&n.length>1?n=d.blockStmt(n):n=n[0],n.type==="BlockStatement"&&(n=this.$autorun("block",this.$serial(t.alternate),n)));let a=d.ifStmt(r,s,n);return this.currentEntry.static?a:this.$autorun("block",i,d.blockStmt([a]))}transformSwitchStatement(t){let i=this.$serial(t);return this.pushScope(t,()=>{let r=this.transformNode(t.discriminant),s=t.cases.map(a=>{let o=this.transformNode(a.test),u=this.transformNodes(a.consequent);return d.switchCase(o,u)}),n=d.switchStmt(r,s);return this.currentEntry.static?n:this.$autorun("block",i,d.blockStmt([n]))})}transformWhileStatement(t){return this.transformLoopStmtA(d.whileStmt,...arguments)}transformDoWhileStatement(t){return this.transformLoopStmtA(d.doWhileStmt,...arguments)}transformForStatement(t){return this.transformLoopStmtA(d.forStmt,...arguments)}transformLoopStmtA(t,i){let r=i.type==="WhileStatement"?"while":i.type==="DoWhileStatement"?"do-while":"for",s=this.$serial(i);return this.pushScope(i,()=>{let n=this.currentScope.get$qIdentifier("$q"),a,o={kind:d.literal(r),label:this.currentEntry.parentNode?.label?d.literal(this.currentEntry.parentNode.label.name):d.identifier("null")};if(r==="for"){let c=d.blockStmt([].concat(this.transformNode(i.init)||[]));o.init=this.$closure([n],c);let l=this.transformNode(i.test);o.test=this.$closure([n],l);let f=this.transformNode(i.update);o.advance=this.$closure([n],f),a=p=>t.call(d,c,l,f,p)}else{let c=this.transformNode(i.test);o.test=this.$closure([n],c),a=l=>t.call(d,c,l)}let u=this.transformNode(i.body);return this.$autorun("iteration",o,s,u)})}transformForOfStatement(t){return this.transformLoopStmtB(d.forOfStmt,...arguments)}transformForInStatement(t){return this.transformLoopStmtB(d.forInStmt,...arguments)}transformLoopStmtB(t,i){let r=i.type==="ForInStatement"?"for-in":"for-of",s=this.$serial(i),n=this.transformNode(i.right);return this.pushScope(i,()=>{let a=this.currentScope.get$qIdentifier("$q"),o=this.currentScope.get$qIdentifier(r==="for-of"?"$val":"$key",!1),u={kind:d.literal(r),label:this.currentEntry.parentNode?.label?d.literal(this.currentEntry.parentNode.label.name):d.identifier("null"),parameters:this.$closure([a],d.arrayExpr([d.literal(o),n]))},c;if(i.left.type==="VariableDeclaration"){let f=d.withLoc(d.varDeclarator(i.left.declarations[0].id,o),i.left);c=d.varDeclaration(i.left.kind,[f])}else c=d.withLoc(d.assignmentExpr(i.left,o),i.left);let l=d.blockStmt(this.transformNodes([c].concat(i.body.body)));return this.$autorun("iteration",u,s,l)})}transformBreakStatement(t){return this.transformExitStmt(d.breakStmt,...arguments)}transformContinueStatement(t){return this.transformExitStmt(d.continueStmt,...arguments)}transformExitStmt(t,i){let r=i.type==="BreakStatement"?"break":"continue",s=d.literal(r),n=i.label?d.literal(i.label.name):d.identifier("null");return this.hoistExitStatement(s,n)?.type==="SwitchStatement"?t.call(d):d.exprStmt(this.$call(r,n))}transformReturnStatement(t){let i=new Set,r=this.transformNode(t.argument,{refs:i});if(this.currentEntry.static)return d.returnStmt(r);let s=d.literal("return"),n=r?[s,r]:[s];this.hoistExitStatement(...n);let a=this.$call("return",...n.slice(1));if(!i.size)return d.exprStmt(a);let o=this.$serial(t);return this.$autorun("return",o,a)}transformBlockStatement(t){if(t instanceof ce){let r=this.$serial(t),s=this.transformNodes(t.body);return this.$autorun("downstream",r,d.blockStmt(s))}let i=this.pushScope(t,()=>this.transformNodes(t.body));return d.blockStmt(i)}transformLabeledStatement(t){this.currentScope.push(t.label,"const");let i=[].concat(this.transformNode(t.body));return[d.labeledStmt(t.label,i.shift()),...i]}transformExpressionStatement(t){let i=this.$serial(t);return[].concat(this.transformNode(t.expression)||[]).reduce((s,n)=>n.type==="VariableDeclaration"||n.type.endsWith("Statement")?s.concat(n):this.currentEntry.static?d.exprStmt(n):s.concat(this.$autorun("stmt",i,n)),[])}transformAwaitExpression(t){this.hoistAwaitKeyword();let i=this.transformNode(t.argument);return d.awaitExpr(i)}transformSequenceExpression(t){let i=t.expressions.reduce((r,s,n)=>r.concat(this.transformNode(s,{trail:n===t.expressions.length-1?this.currentEntry.trail:void 0})),[]);return this.history[1].node.type==="ExpressionStatement"?i:d.sequenceExpr(i)}transformConditionalExpression(t){let{test:i,consequent:r,alternate:s}=t;return i=this.transformNode(i),r=this.transformNode(r,{trail:this.currentEntry.trail}),s=this.transformNode(s,{trail:this.currentEntry.trail}),d.conditionalExpr(i,r,s)}transformLogicalExpression(t){let{left:i,right:r}=t;return i=this.transformNode(i,{trail:this.currentEntry.trail}),r=this.transformNode(r,{trail:this.currentEntry.trail}),d.logicalExpr(t.operator,i,r)}transformBinaryExpression(t){let{left:i,right:r}=t;i=this.transformNode(i),r=this.transformNode(r);let s=d.binaryExpr(t.operator,i,r);return this.currentEntry.trail?this.$call("obj",s,...this.$trail()):s}transformCallExpression(t){return this.transformCallExpr(d.callExpr,...arguments)}transformNewExpression(t){return this.transformCallExpr(d.newExpr,...arguments)}transformCallExpr(t,i){let r=this.transformNode(i.callee,{mode:"callee"}),s=i.arguments.map(a=>this.transformNode(a)),n=t.call(d,r,s,i.optional);return this.currentEntry.trail?this.$call("obj",n,...this.$trail()):n}transformObjectExpression(t){let i=d.objectExpr(t.properties.map(r=>this.transformNode(r)));return this.currentEntry.trail?this.$call("obj",i,...this.$trail()):i}transformProperty(t){let{key:i,value:r}=t;return t.computed&&(i=this.transformNode(i)),r=this.transformNode(r),d.property(i,r,t.kind,!1,t.computed,!1)}transformArrayExpression(t){let i=d.arrayExpr(t.elements.map(r=>this.transformNode(r)));return this.currentEntry.trail?this.$call("obj",i,...this.$trail()):i}transformTaggedTemplateExpression(t){let[i,r]=this.transformNodes([t.tag,t.quasi]),s=d.taggedTemplateExpr(i,r);return this.currentEntry.trail?this.$call("obj",s,...this.$trail()):s}transformTemplateLiteral(t){let i=t.expressions.map(s=>this.transformNode(s)),r=d.templateLiteral(t.quasis,i);return this.currentEntry.trail?this.$call("obj",r,...this.$trail()):r}};var Cs=new Map;function ks(e,t={}){let i=`${e}${JSON.stringify(t)}`,r=Cs.get(i);if(!r){try{r=gs.parse(e,t)}catch(s){let n=`${s.message||s}`,{pos:a,loc:{line:o,column:u}={}}=s,l=[{expr:e.slice(Math.max(0,a-15),a+15),line:o,column:u},{source:e}];throw t.inBrowser&&console.error(l),new(globalThis[s.name]||Error)(n,{cause:l})}Cs.set(i,r)}return r}function As(e,t={}){return new $e(t).transform(e)}function ci(...e){let t,i={runtimeParams:la,compilerParams:ca,parserParams:ua};for(;t=e.shift();){let{runtimeParams:r={},compilerParams:{globalsNoObserve:s=[],globalsOnlyPathsExcept:n=[],...a}={},parserParams:o={}}=t;i={runtimeParams:{...i.runtimeParams,...r},compilerParams:{...i.compilerParams,globalsNoObserve:[...i.compilerParams.globalsNoObserve,...s],globalsOnlyPathsExcept:[...i.compilerParams.globalsOnlyPathsExcept,...n],...a},parserParams:{...i.parserParams,...o}},e.devMode}return i}var ua={ecmaVersion:"latest",allowReturnOutsideFunction:!0,allowAwaitOutsideFunction:!1,allowSuperOutsideMethod:!1,preserveParens:!1,locations:!0},ca={globalsNoObserve:["arguments","debugger"],globalsOnlyPathsExcept:[],originalSource:!0,locations:!0,compact:2},la={apiVersion:3};var Le=Object.create(null);var Ut=class extends EventTarget{managedAlways=new Set;managedOnce=new Set;constructor(){super(),Or.setMaxListeners?.(0,this)}fire(t){return this.dispatchEvent(new Event(t,{cancelable:!0}))}on(...t){return this.addEventListener(...t),()=>this.removeEventListener(...t)}abort(t=!1){this.managedAlways.forEach(i=>i.abort?i.abort(t):i(t)),this.managedOnce.forEach(i=>i.abort?i.abort(t):i(t)),this.managedOnce.clear(),this.fire("abort")}manage(t){this.managedAlways.add(t)}once(t){this.managedOnce.add(t)}};var Wt=class extends Ut{subscribers=new Set;signals=new Map;constructor(t,i,r){super(),this.context=t,this.context?.once(()=>this.abort()),this.once(()=>this.watchMode(!1)),this.type=i,this.state=r}get name(){return[...this.context?.signals.keys()||[]].find(t=>this.context.signals.get(t)===this)}signal(t,i="prop"){let r=this.signals.get(t);return r||(r=new Wt(this,i,i==="object"?t:Mi(this.state)?R.get(this.state,t):void 0),this.signals.set(t,r),this.signals.size===1&&this.watchMode(),r.once(()=>{this.signals.delete(t),this.signals.size||this.watchMode(!1)})),r}subscribe(t){this.subscribers.add(t),t.once(()=>{this.subscribers.delete(t),this.subscribers.size||this.abort()})}watchMode(t=!0){this.mutationsWatch?.abort(),!(!t||!this.signals.size||!Mi(this.state))&&(this.mutationsWatch=R.observe(this.state,i=>{let r={map:new Map,add(n,a){for(let o of n)o.spec.beforeSchedule?.(a)!==!1&&(this.map.has(o.runtime)||this.map.set(o.runtime,new Set),this.map.get(o.runtime).add(o))}};for(let n of i){let a=this.signals.get(n.key);!a||(r.add(a.subscribers,n),a.refresh(n.value))}let s=r.map.size?[...r.map].sort((n,a)=>n.$serial>a.$serial?-1:1):r.map;for(let[n,a]of s)n.state!=="aborted"&&n.schedule(...a)},{recursions:"force-sync"}))}refresh(t){this.state=t;for(let[i,r]of this.signals)r.refresh(R.get(this.state??{},i));this.watchMode()}};var et=class extends Wt{symbols=new Map;constructor(t,i,r=void 0){super(t,i,r||Object.create(null))}};var wt=class extends Ut{state;constructor(t,i,r,s,n,a){super(),t?.once(this),this.context=t,this.type=i,this.spec=r,this.scope=n,t?.scope!==n&&this.manage(n),this.serial=s,a&&(this.closure=a),t?.type==="iteration"?this.path=t.path.concat(this.spec.index):t?.type==="round"?this.path=t.path.concat(this.serial):this.path=(t?.path||[]).slice(0,-1).concat(this.serial),this.flowControl=new Map}get runtime(){return this.context.runtime}contains(t){return this===t.context||t.context&&this.contains(t.context)}order(t){if(!t)return this;let[i,r]=t.path.length<this.path.length?[t,this]:[this,t];return i.path.reduce((s,n,a)=>s&&n<=r.path[a],!0)&&i||r}beforeExecute(){this.state="running";let t=this.flowControl;return this.flowControl=new Map,t}execute(t=null){try{return this.runtime.thread.unshift(this),nt(this.beforeExecute(),i=>Ri(this.closure,this,this,r=>(this.spec.complete&&(r=this.spec.complete(r,this)),this.afterExecute(i),this.runtime.thread.shift(),t?t(r,this):r)))}catch(i){if(i.cause)throw i;let r=`${i.message||i}`;this.runtime.throw(r,[this.serial,this.context?.serial],globalThis[i.name])}}afterExecute(t){this.state="complete";let i=this.flowControl;this.handleDownstream(i.size,t.size),this.handleRightstream(i.size,t.size);for(let r of["break","continue","return"])i.has(r)&&!i.get(r).endpoint?this.hoistFlowControl(r,i.get(r).arg):t.has(r)&&!t.get(r).endpoint&&this.hoistFlowControl(r,t.get(r).arg,!0)}typed(t,i,r=void 0){let s=Array.isArray(i)?"array":i===null?"null":typeof i;if(s===t||t==="iterable"&&i?.[Symbol.iterator]||t==="desctructurable"&&!["undefined","null"].includes(s))return i;throw t==="iterable"?new Error("value is not iterable."):t==="desctructurable"?new Error((r?`Cannot access ${r}; `:"")+"object not desctructurable."):new Error(`value must be of type ${t}.`)}let(t,i,r,s={}){return this.var(t,i,r,{...s,kind:"let"})}const(t,i,r,s={}){return this.var(t,i,r,{...s,kind:"const"})}var(t,i,r,s={}){s={kind:"var",...s},r||(r=()=>{});let n=s.restOf?(...o)=>{try{return r(...o)}catch(u){throw new Error(`Cannot declare ${t}; ${u.message}`)}}:r,a=(o,u)=>{let c=u.scope;if(s.kind==="var")for(;!["module","function"].includes(c.type)&&!R.has(c.state,t)&&c.context;)c=c.context;else c.type==="this"&&c.context&&(c=c.context);let l=c.symbols.get(t);if(l&&(l.kind!==s.kind||s.kind==="let"&&l.serial!==i))throw new Error(`Identifier "${t}" has already been declared.`);l?.reader?.abort(),l={serial:i,kind:s.kind};let f=o;return s.restOf&&(s.type==="array"?f=[]:f={},l.reader=R.map(o,f,{except:s.restOf,spread:s.type==="array"}),u.once(l.reader)),c.symbols.set(t,l),R.set(c.state,t,f),f};return this.autorun(s.kind,{complete:a,...s},i,n)}update(t,i,r={}){let s=this.scope;for(;s&&!R.has(s.state,t);)s=s.context;if(!s)throw new ReferenceError(`${t} is not defined.`);let n=s.symbols.get(t);if(n?.kind==="const")throw new ReferenceError(`Assignment to constant variable "${t}".`);let a=R.get(s.state,t),o=r.restOf?(...u)=>{try{return i(...u)}catch(c){throw new Error(`Cannot update ${t}; ${c.message}`)}}:i;return Ri(o,void 0,a,u=>{n?.reader?.abort();let c=u;return r.restOf&&(n=n||{},r.type==="array"?c=[]:c={},n.reader=R.map(u,c,{except:r.restOf,spread:r.type==="array"}),this.once(n.reader)),R.set(s.state,t,c),["postinc","postdec"].includes(r.kind)?a:c})}ref(t,...i){let r=0,s={};typeof i[0]=="number"?(r=i.shift(),s=i.shift()||{}):typeof i[0]=="object"&&(s=i.shift());let n=this.scope;for(;n&&!R.has(n.state,t);)n=n.context;if(!n){if(s.isTypeCheck)return;throw new Error(`${t} is not defined.`)}let a=n.symbols.get(t)?.kind,o=n.signal(t,a);return s.typed&&this.typed(s.typed,o.state,t),this.autobind(o,r,s)}obj(t,...i){let r=0,s={};return typeof i[0]=="number"?(r=i.shift(),s=i.shift()||{}):typeof i[0]=="object"&&(s=i.shift()),this.autobind(this.runtime.$objects.signal(t,"object"),r,s)}autobind(t,i,r){let s=this.runtime.$params.quantumMode,n=t.type==="const",a=this===this.runtime,o=this.state==="aborted",u=this;return function c(l,f){if(s&&!n&&!a&&!o&&l.subscribe(u),!f||!l.state||typeof l.state!="object"){let m=l.state;return typeof l.state=="function"&&(m=R.proxy(l.state,{membrane:l})),m}let p;return R.proxy(l.state,{},m=>({...m,get(g,w,E=null){return p?m.get(g,w,E):(p=!0,c(l.signal(w),f-1))}}))}(t,i)}autorun(t,...i){let r=i.pop(),s=i.pop(),n=i.pop()||{},a=wt,o=this.scope;if(t==="iteration"){let c=this.runtime.constructor;a=r.constructor.name==="AsyncFunction"?c.AutoAsyncIterator:c.AutoIterator}["block","iteration"].includes(t)&&(o=new et(o,t));let u=new a(this,t,n,s,o,r);if(!(t==="downstream"&&(this.downstream=u,this.flowControlApplied())))return u.execute()}function(t,i,r,s){t&&R.set(this.scope.state,s.name,s);let n=this;return Object.defineProperty(s,"toString",{value:function(a=!1){if(a&&i)return Function.prototype.toString.call(s);let o=n.runtime.extractSource(r);return o.startsWith("static ")?o.replace("static ",""):o}}),s}class(t,i,r){return t&&R.set(this.scope.state,i.name,i),r.forEach(({name:s,static:n,isQuantumFunction:a,serial:o})=>{this.function(!1,a,o,n?i[s]:i.prototype[s])}),i}async import(...t){return this.runtime.import(...t)}async export(...t){return this.runtime.export(...t)}continue(t){return this.applyFlowControl("continue",t)}break(t){return this.applyFlowControl("break",t)}return(t){return this.applyFlowControl("return",t)}applyFlowControl(t,i,r=!1){let s=this.flowControl.size;if(r?this.flowControl.delete(t):this.flowControl.set(t,{arg:i}),this.type==="round"&&(this.context.breakpoint=this),this.type==="round"&&["break","continue"].includes(t)&&i===this.context?.spec.label){r||(this.flowControl.get(t).endpoint=!0),this.state!=="running"&&this.handleRightstream(this.flowControl.size,s);return}this.state!=="running"&&(this.handleDownstream(this.flowControl.size,s),this.hoistFlowControl(...arguments))}hoistFlowControl(...t){return this.context?.applyFlowControl(...t)}flowControlApplied(t,i){return arguments.length?arguments.length===1?this.flowControl.has(t):this.flowControl.get(t)?.arg===i:this.flowControl.size||!1}handleDownstream(t,i){let r;this.type!=="block"||!(r=this.context?.downstream)||(t?r.abort():i&&(r.state="resuming",this.runtime.schedule(r)))}handleRightstream(t,i){if(this.type!=="round")return;let r=this,s=new Set;for(;r=r.nextRound;)t?r.abort():i&&r.state!=="inert"&&(r.state="resuming",s.add(r));s.size&&this.runtime.schedule(...s),!t&&i&&this.runtime.on("reflection",()=>{this.context.iterating||this.context.iterate()},{once:!0})}abort(t=!1){return t&&(this.context?.breakpoint===this&&delete this.context.breakpoint,this.flowControl.clear()),this.state=t?"inert":"aborted",super.abort(t)}};var zt=class extends wt{rounds=new Map;constructor(t,i,r,s,n,a){r.$closure=a,super(t,i,r,s,n),this.manage(()=>{delete this.breakpoint,this.rounds.clear()})}pseudorun(t){return this.runtime.iThread.unshift(this),nt(t(),i=>(this.runtime.iThread.pop(),i))}createIterator(){return this.spec.kind==="for-in"?function*(){for(let t in this.iteratee)yield t}.call(this):this.spec.kind==="for-of"?function*(){for(let t of this.iteratee)yield t}.call(this):{next:()=>({done:!this.pseudorun(()=>this.spec.test(this))})}}closure(){["for-of","for-in"].includes(this.spec.kind)?([this.production,this.iteratee]=this.spec.parameters(this),this.iterator=this.createIterator(),this.iterator.original=!0,this.watchMode()):(this.spec.kind==="for"&&this.spec.init(this),this.iterator=this.createIterator()),this.iterate()}terminated(){return this.breakpoint&&!this.breakpoint.flowControlApplied("continue",this.spec.label)&&this.breakpoint.flowControlApplied()}advance(){this.spec.kind==="for"&&this.pseudorun(()=>this.spec.advance(this))}iterate(){this.iterating=!0;let t=()=>!this.terminated()&&!(this.cursor=this.iterator.next()).done,i=()=>{this.createRound(this.cursor.value).execute(),this.advance()};if(this.spec.kind==="do-while")do i();while(t());else for(;t();)i();this.iterating=!1}createRound(t){let i=this.rounds.size,r={index:i},s=["for-in","for-of"].includes(this.spec.kind)?{[this.production]:t}:{...this.scope.state},n=new et(this.scope,"round",s);this.scope.symbols.forEach((u,c)=>{n.symbols.set(c,u)});let a=new wt(this,"round",r,this.serial,n,this.spec.$closure),o=this.spec.kind==="for-in"?t:i;return this.rounds.set(o,a),this.lastRound&&(this.lastRound.nextRound=a,a.prevRound=this.lastRound),this.lastRound=a,a}watchMode(){let t=(i,r)=>{let s=new Set,n=new Set;for(let a of i){if(Array.isArray(this.iteratee)&&a.key==="length")continue;let o=this.spec.kind==="for-in"?a.key:a.value,u=this.spec.kind==="for-in"?a.key:parseInt(a.key),c=this.rounds.get(u);if(c)R.set(c.scope.state,this.production,o),a.type==="delete"&&(this.rounds.set(u,void 0),c.prevRound&&(c.prevRound.nextRound=c.nextRound),c.nextRound&&(c.nextRound.prevRound=c.prevRound),s.add(c));else if(a.type!=="delete"&&!a.isUpdate){if(this.spec.kind==="for-of"&&this.iterator.original&&!r.done)continue;n.add(o)}}this.runtime.on("reflection",()=>{s.forEach(a=>a.abort(!0))},{once:!0}),n.size&&(this.iterator=function*(a){yield*a,yield*n}(this.iterator),r.done&&this.iterate())};this.once(R.observe(this.iteratee,i=>{nt(this.cursor,r=>t(i,r))}))}};var Re=class extends zt{async createIterator(){return this.spec.kind==="for-in"?function*(){for(let t in this.iteratee)yield t}.call(this):this.spec.kind==="for-of"?function*(){for(let t of this.iteratee)yield t}.call(this):{next:async()=>({done:!await this.pseudorun(()=>this.spec.test(this))})}}async closure(){["for-of","for-in"].includes(this.spec.kind)?([this.production,this.iteratee]=await this.spec.parameters(this),this.iterator=await this.createIterator(),this.iterator.original=!0,this.watchMode()):(this.spec.kind==="for"&&await this.spec.init(this),this.iterator=await this.createIterator()),await this.iterate()}async iterate(){let t;this.iterating=!0;let i=async()=>!this.terminated()&&(this.cursor=this.iterator.next())&&(t=await this.cursor)&&!t.done,r=async()=>{await this.createRound(t.value).execute(),await this.advance()};if(this.spec.kind==="do-while")do await r();while(await i());else for(;await i();)await r();this.iterating=!1}};var Qt=class{constructor(t){Object.defineProperty(this,"runtime",{value:t});let i={statechange:()=>{R.defineProperty(this,"value",{value:t.flowControl.get("return")?.arg,enumerable:!0,configurable:!0})}};for(let r in i)t.on(r,i[r]),i[r]();t.$params.sourceType==="module"&&Object.defineProperty(this,"exports",{value:t.exports})}dispose(){return this.runtime.abort(!0)}};var Gt=class extends wt{locations=[];queue=new Set;thread=[];iThread=[];constructor(t,i,r,s,n){super(t,i,{},-1,s,n);let{$serial:a=0,...o}=r;this.$serial=a,this.$params=o,this.$objects=new et(void 0,"objects"),this.manage(this.$objects),this.exports=Object.create(null),this.$promises={imports:[],exports:[]},this.manage(()=>{R.deleteProperties(this.exports,Object.keys(this.exports)),this.$promises.imports.splice(0),this.$promises.exports.splice(0)})}extractSource(t,i=!1){let[[r,s,n],[a]]=this.locations[t],o=this.$params.originalSource.slice(r,a);return i?{expr:o,line:s,column:n}:o}throw(t,i,r=null,s=null){let n,a=s!==null?`[${s}]: ${t}`:t,o=i.map(c=>c!==-1&&this.extractSource(c,!0)).filter(c=>c);o.push({source:this.$params.originalSource}),n=new(r||Error)(a,{cause:o});let u=this.$params.sourceType==="module"&&this.$params.experimentalFeatures!==!1&&this.$params.exportNamespace||this.$params.fileName;throw u&&(n.fileName=u),s&&(n.code=s),n}get runtime(){return this}get nowRunning(){return this.thread[0]}schedule(...t){let i=this.queue.size;for(let r of t)this.queue.add(r);if(!i)return this.flowControlDirty=!1,function r(s,n){let a;for(let o of this.queue){if(n&&n.order(o)!==n||["aborted","running"].includes(o.state)||this.iThread[0]?.contains(o)){this.queue.delete(o);continue}a=a?a.order(o):o,n||(n=a)}return a?(a.abort(),a.execute(o=>(this.queue.delete(a),r.call(this,o,a)))):(this.fire("reflection"),this.flowControlApplied()&&this.fire("statechange"),s)}.call(this,void 0,this.nowRunning)}execute(t=null){return super.execute(i=>{let r=this.$params.quantumMode?new Qt(this):i;return t?t(r,this):r})}spawn(t,i,r){let s=this.nowRunning||this,n={...this.$params,$serial:this.$serial+1,quantumMode:t},a=new et(s.scope,"function",{this:i});return new this.constructor(s,"function",n,a,r).execute()}async import(...t){let i=t.pop(),r=typeof i=="string"?{source:i}:i,s=a=>{if(r.forExport||r.isDynamic)return a;this.assignModules(t,this.scope.state,a,i.serial)};if(this.$params.experimentalFeatures!==!1&&Le[r.source])return s(Le[r.source]);let n=(async()=>{let a=this.$params.sourceType==="module"&&this.$params.experimentalFeatures!==!1&&this.$params.exportNamespace||this.$params.fileName;try{return s(await import(r.source))}catch(o){throw o.code==="ERR_MODULE_NOT_FOUND"&&this.throw(`Cannot find package "${r.source}"${a?` imported at "${a}"`:""}.`,[r.serial],null,o.code),o}})();return r.isDynamic||this.$promises[r.forExport?"exports":"imports"].push(n),n}async export(...t){let i=Array.isArray(t[t.length-1])?null:t.pop(),r=i?await this.import({...i,forExport:!0}):this.scope.state;this.assignModules(t,this.exports,r,i?.serial)}assignModules(t,i,r,s=null){let n=[];for(let[a,o,u]of t){if(a==="*"&&u){(this.$params.quantumMode?R:Reflect).set(i,u,r);continue}R.has(r,a)||this.throw(`The requested module does not provide an export named "${a}".`,[o,s]),(this.$params.quantumMode?R:Reflect).set(i,u||a,R.get(r,a)),n.push([a,o,u])}!n.length||!this.$params.quantumMode||this.once(R.observe(r,a=>{for(let[o,,u]of n)for(let c of a)o==="*"?R.set(i,c.key,c.value):c.key===o&&R.set(i,u||o,c.value)}))}afterExecute(...t){return this.$params.sourceType==="module"&&this.$params.experimentalFeatures!==!1&&this.$params.exportNamespace&&(Le[this.$params.exportNamespace]=this.exports,this.once(()=>{delete Le[this.$params.exportNamespace]})),super.afterExecute(...t)}};G(Gt,"AutoAsyncIterator",Re),G(Gt,"AutoIterator",zt);function Me(e,t,i,r){let{env:s,functionParams:n=[],exportNamespace:a,fileName:o}=r,{parserParams:u,compilerParams:c,runtimeParams:l}=ci(r),f=Object.getOwnPropertyDescriptor(globalThis,"window")?.get?.toString().includes("[native code]")??!1,p=["async-script","module"].includes(e);if(e==="module")u.sourceType=e,u.allowAwaitOutsideFunction=!0;else if(["function","async-function"].includes(e)){let g=" "+i.split(`
|
|
11
|
+
`?(o=0,u++):o++;this.column=o,this.line=u;return}}let{length:r}=t,{lineEnd:s}=this;r>0&&(this.lineEndSize>0&&(s.length===1?t[r-1]===s:t.endsWith(s))?(this.line+=this.lineEndSize,this.column=0):this.column+=r)}toString(){return this.output}};function Es(e,t){let i=new Zi(t);return i.generator[e.type](e,i),i.output}var Ot=class{type="Identifier";whitelist=[];blacklist=[];constructor(t){this.whitelist[0]=t}get name(){return this.whitelist[0]}noConflict(t){let i=this.whitelist.indexOf(t);if(i===-1)return!1;this.blacklist.push(this.whitelist.splice(i,1)),this.whitelist.length||(this.whitelist=this.blacklist.map(r=>{let s;do{let n=String.fromCharCode(0|Math.random()*26+97);s=`${r}${n}`}while(this.blacklist.includes(s));return s}))}};var d={throwStmt(e){return{type:"ThrowStatement",argument:e}},tryStmt(e,t,i,r){return{type:"TryStatement",block:e,handler:t,finalizer:i,guardedHandlers:r}},catchClause(e,t){return{type:"CatchClause",param:e,body:t}},exprStmt(e){return{type:"ExpressionStatement",expression:e}},blockStmt(e){return{type:"BlockStatement",body:e}},labeledStmt(e,t){return{type:"LabeledStatement",label:e,body:t}},withStmt(e,t){return{type:"WithStatement",object:e,body:t}},ifStmt(e,t,i){return this.conditionalExpr(e,t,i,"IfStatement")},switchStmt(e,t,i=!1){return{type:"SwitchStatement",discriminant:e,cases:t}},switchCase(e,t){return{type:"SwitchCase",test:e,consequent:t}},whileStmt(e,t){return{type:"WhileStatement",test:e,body:t}},doWhileStmt(e,t){return{type:"DoWhileStatement",test:e,body:t}},forStmt(e,t,i,r){return{type:"ForStatement",init:e,test:t,update:i,body:r}},forInStmt(e,t,i){return{type:"ForInStatement",left:e,right:t,body:i}},forOfStmt(e,t,i){return{type:"ForOfStatement",left:e,right:t,body:i}},breakStmt(e=null){return{type:"BreakStatement",label:e}},continueStmt(e=null){return{type:"ContinueStatement",label:e}},returnStmt(e){return{type:"ReturnStatement",argument:e}},yieldExpr(e,t=!1){return{type:"YieldExpression",argument:e,delegate:t}},awaitExpr(e){return{type:"AwaitExpression",argument:e}},varDeclaration(e,t){return{type:"VariableDeclaration",kind:e,declarations:t}},varDeclarator(e,t=null){return{type:"VariableDeclarator",id:e,init:t}},funcDeclaration(e,t,i,r=!1,s=!1,n=!1){return this.func("FunctionDeclaration",...arguments)},sequenceExpr(e){return{type:"SequenceExpression",expressions:e}},parensExpr(e){return{type:"ParenthesizedExpression",expression:e}},logicalExpr(e,t,i){return{type:"LogicalExpression",operator:e,left:t,right:i}},binaryExpr(e,t,i){return{type:"BinaryExpression",operator:e,left:t,right:i}},unaryExpr(e,t,i=!0){return{type:"UnaryExpression",operator:e,argument:t,prefix:i}},updateExpr(e,t,i=!1){return{type:"UpdateExpression",operator:e,argument:t,prefix:i}},assignmentExpr(e,t,i="="){return{type:"AssignmentExpression",operator:i,left:e,right:t}},assignmentPattern(e,t){return{type:"AssignmentPattern",left:e,right:t}},thisExpr(){return{type:"ThisExpression"}},conditionalExpr(e,t,i,r="ConditionalExpression"){return{type:r,test:e,consequent:t,alternate:i}},arrayExpr(e){return{type:"ArrayExpression",elements:e}},arrayPattern(e){return{type:"ArrayPattern",elements:e}},objectExpr(e){return{type:"ObjectExpression",properties:e}},objectPattern(e){return{type:"ObjectPattern",properties:e}},chainExpr(e){return{type:"ChainExpression",expression:e}},callExpr(e,t,i=!1){return{type:"CallExpression",callee:e,arguments:t,optional:i}},newExpr(e,t){return{type:"NewExpression",callee:e,arguments:t}},taggedTemplateExpr(e,t){return{type:"TaggedTemplateExpression",tag:e,quasi:t}},memberExpr(e,t,i=!1,r=!1){return{type:"MemberExpression",object:e,property:t,computed:i,optional:r}},funcExpr(e,t,i,r=!1,s=!1,n=!1){return this.func("FunctionExpression",...arguments)},arrowFuncExpr(e,t,i,r=!1,s=!1,n=!1){return this.func("ArrowFunctionExpression",...arguments)},func(e,t,i,r,s=!1,n=!1,a=!1){return{type:e,id:t,params:i,body:r,async:s,expression:n,generator:a}},identifier(e){return{type:"Identifier",name:e}},property(e,t,i="init",r=!1,s=!1,n=!1){return{type:"Property",key:e,value:t,kind:i,shorthand:r,computed:s,method:n}},classDeclaration(e,t,i=null){return this.class("ClassDeclaration",...arguments)},classExpression(e,t,i=null){return this.class("ClassExpression",...arguments)},class(e,t,i,r=null){return{type:e,id:t,body:i,superClass:r}},methodDefinition(e,t,i="method",r=!1,s=!1){return{type:"MethodDefinition",key:e,value:t,kind:i,static:r,computed:s}},propertyDefinition(e,t,i=!1,r=!1){return{type:"PropertyDefinition",key:e,value:t,static:i,computed:r}},spreadElement(e){return{type:"SpreadElement",argument:e}},literal(e){if(typeof e=="object"&&!("name"in e)&&!("value"in e))throw new Error('Objects that convert to literals must have a "name" or "value" property.');return typeof e=="object"?{type:"Literal",get value(){return"name"in e?e.name:e.value}}:{type:"Literal",value:e}},templateLiteral(e,t){return{type:"TemplateLiteral",quasis:e,expressions:t}},comments(e){let t={};return Object.defineProperty(t,"toString",{value:()=>e}),Object.defineProperty(t,"trim",{value:function(){return this.toString()}}),[{type:"Line",value:t}]},withLoc(e,...t){return["start","end"].forEach(i=>{let r=i==="start"?t[0]:t[t.length-1];e[i]=r[i],r.loc&&(e.loc=e.loc||{},e.loc[i]=r.loc?.[i])}),e},invert(e){return this.unaryExpr("!",e)},clone(e){return e={...e},delete e.start,delete e.end,e}};var ce=class{type="BlockStatement";$body=[];constructor(t){this.body=t}get body(){return this.$body}set body(t){this.$body=t,d.withLoc(this,...t)}};var Ne=class{constructor(t,{type:i}){this.context=t,Object.assign(this,{type:i}),this.vars=new Set,this.$qIdentifiers=new Map,this.$qIdentifiersCursors={...this.context?.$qIdentifiersCursors||{}},this.locations=[]}index(t,i=!1){if(!this.type.includes("Function")&&this.context)return this.context.index(...arguments);let r=["start","end"].map(s=>{let n=[d.literal(t[s])];return i&&t.loc&&(n.push(d.literal(t.loc[s].line)),n.push(d.literal(t.loc[s].column))),d.arrayExpr(n)});return this.locations.push(d.arrayExpr(r)),d.literal(this.locations.length-1)}get$qIdentifier(t,i=!0,r=!1){let s=this.$qIdentifiers.get(t);if(!s){if(i&&this.context)return this.context.get$qIdentifier(t,i);r&&(typeof this.$qIdentifiersCursors[t]>"u"&&(this.$qIdentifiersCursors[t]=0),t+=this.$qIdentifiersCursors[t]++),this.$qIdentifiers.set(t,s=new Ot(t))}return s}getRandomIdentifier(t,i=!0){return this.get$qIdentifier(t,i,!0)}$qIdentifiersNoConflict(t){for(let[,i]of this.$qIdentifiers)i.noConflict(t);this.context&&this.context.$qIdentifiersNoConflict(t)}push(t,i,r=!1){let s;return["var","update"].includes(i)&&(s=this.find(t,!1))&&s.type!=="const"?s.willUpdate=!0:(i!=="update"||!this.context)&&(t instanceof Ot||this.$qIdentifiersNoConflict(t.name+""),this.vars.add({identifier:t,type:i,willUpdate:r||i==="update"})),this.context&&(i==="update"||i==="var"&&!this.type.includes("Function"))?this.context.push(t,i):!0}find(t,i=!0){let r;for(let s of this.vars)if(s.identifier.name+""==t.name+""){r=s;break}return!r&&i?this.context?.find(t,i):r}};var $e=class{history=[];scopes=[];functionTypes=["FunctionDeclaration","FunctionExpression","ArrowFunctionExpression"];loopTypes=["DoWhileStatement","WhileStatement","ForStatement","ForOfStatement","ForInStatement"];labeledTypes=["SwitchStatement","LabeledStatement"];topLevelAwait=!1;topLevelArgsKeyword=!1;constructor(t={}){this.params=t}pushScope(t,i){let r=new Ne(this.currentScope,t);this.scopes.unshift(r);let s=i();return this.scopes.shift(),s}get currentScope(){return this.scopes[0]}pushHistory(t,i){this.history.unshift(t);let r=i();return this.history.shift(),r}get currentEntry(){return this.history[0]}serialize(t,i={}){return Es(t,{comments:!0,...i})}transform(t){if(t.type!=="Program")throw new Error('AST must be of type "Program".');return this.pushScope(t,()=>{let i=this.transformNodes(t.body,{static:!t.isQuantumProgram}),r={...t,body:i};r.body.length&&(r.body[0].comments=d.comments("Program body"));let s=d.exprStmt(d.assignmentExpr(this.$path("locations"),d.arrayExpr(this.currentScope.locations)));if(s.comments=d.comments("Location data"),r.body.unshift(s),this.exports.size){this.exports.forEach(c=>{r.body.push(d.exprStmt(this.$call("export",...c)))});let u=d.memberExpr(d.identifier("Promise"),d.identifier("all"));r.body.push(d.exprStmt(d.awaitExpr(d.callExpr(u,[this.$path("$promises.exports")]))))}let n=this.currentScope.get$qIdentifier("$q").name,a=this.serialize(r,{startingIndentLevel:this.params.startingIndentLevel}),o=this.params.base64?btoa(this.params.base64.replace("%0",n+"").replace("%1",a)):"";return{identifier:n,compiledSource:a,compiledSourceBase64:o,originalSource:t.originalSource,isQuantumProgram:t.isQuantumProgram,topLevelAwait:this.topLevelAwait,toString(u=void 0){return u==="base64"?this.compiledSourceBase64:this.compiledSource}}})}transformNodes(t,i={}){let r=(t=t.filter(o=>o)).length,[s,n,a]=t.reduce(([o,u,c],l)=>l?.type==="ImportDeclaration"?[o.concat(l),u,c]:l?.type==="FunctionDeclaration"?[o,u.concat(l),c]:[o,u,c.concat(l)],[[],[],[]]);return t=[...s,...n,...a],function o(u,c){if(c===r)return u;let[l,f]=this.transformNode(t[c],i,!0);if(u=u.concat(l||[]),c===s.length-1){let p=d.memberExpr(d.identifier("Promise"),d.identifier("all"));u=u.concat(d.exprStmt(d.awaitExpr(d.callExpr(p,[this.$path("$promises.imports")]))))}if(["ReturnStatement","BreakStatement","ContinueStatement"].includes(t[c].type))return u;if(f.flowControl?.size&&f.node.type==="IfStatement"){let p=t.slice(c+1);if(p.length){let m=new ce(p);return u.concat(this.transformNode(m))}}return o.call(this,u,c+1)}.call(this,[],0)}transformNode(t,i={},r=!1){if(typeof t!="object"||!t)return t;let s={static:this.currentEntry?.static,mode:this.currentEntry?.mode,...i,parentNode:this.currentEntry?.node,node:t,hoistedAwaitKeyword:!1,flowControl:new Map},n=this.pushHistory(s,()=>this[`transform${t.type}`]?this[`transform${t.type}`].call(this,t):Object.keys(t).reduce((a,o)=>{let u=Array.isArray(t[o])?this.transformNodes(t[o],i):this.transformNode(t[o],i);return{...a,[o]:u}},{}));return r?[n,s]:n}$serial(t){return this.currentScope.index(t,this.params.locations)}$path(t){return t.split(".").reduce((i,r)=>d.memberExpr(i,d.identifier(r)),this.currentScope.get$qIdentifier("$q"))}$trail(){return this.currentEntry.trail?[d.literal(this.currentEntry.trail)]:[]}$call(t,...i){return d.callExpr(this.$path(t),i)}$typed(t,i,r=null){let s=r?[d.literal(r)]:[];return this.$call("typed",d.literal(t),i,...s)}$obj(t){let i=Object.entries(t).map(([r,s])=>d.property(d.identifier(r),Array.isArray(s)?d.arrayExpr(s):s));return d.objectExpr(i)}$closure(...t){let i=t.pop(),r=t.pop()||[];return i.type==="EmptyStatement"&&(i=d.blockStmt([])),d.arrowFuncExpr(null,r,i,this.currentEntry.hoistedAwaitKeyword)}$var(t,i,r,s,...n){let a=s?this.$closure([this.currentScope.get$qIdentifier("$q")],s):d.identifier("undefined"),o=this.$call(t,d.literal(r),i,a,...n);return a.async&&(o=d.awaitExpr(o)),d.exprStmt(o)}$update(t,i,...r){let s=this.$closure(i);return this.$call("update",d.literal(t.name),s,...r)}$autorun(t,...i){let r=i.pop(),s=i.pop(),n=i.pop()||{},a=Object.keys(n).length?[this.$obj(n)]:[],o=this.$closure([this.currentScope.get$qIdentifier("$q")],r),u=this.$call("autorun",d.literal(t),...a,s,o);return o.async&&(u=d.awaitExpr(u)),d.exprStmt(u)}$iteration(t,i,r){let s=d.literal(t),n=this.currentEntry.parentNode?.label?d.literal(this.currentEntry.parentNode.label.name):d.identifier("null"),a={kind:s,label:n},o=d.blockStmt(r);return this.$autorun("iteration",a,i,o)}hoistAwaitKeyword(){for(let t of this.history)if(t.hoistedAwaitKeyword=!0,t.node.type.includes("Function"))return;this.topLevelAwait=!0}hoistArgumentsKeyword(){let t=["FunctionDeclaration","FunctionExpression"];if(!this.history.some(i=>t.includes(i.node.type)))return this.topLevelArgsKeyword=!0,!0}hoistExitStatement(t,i={}){for(let r of this.history){let s=()=>r.node?.type==="SwitchStatement"&&t.value==="break"&&i.name==="null",n=()=>r.parentNode?.type==="LabeledStatement"&&this.loopTypes.includes(r.parentNode.body.type)&&i.value===r.parentNode.label.name,a=()=>this.loopTypes.includes(r.node.type)&&i.name==="null";if(s())return r.node;if(n()||a())return r.flowControl.set(t,{...i,endpoint:!0}),r.node;if(r.node.type.includes("Function"))return;r.flowControl.set(t,i)}}transformFunctionDeclaration(t){return this.transformFunction(d.funcDeclaration,...arguments)}transformFunctionExpression(t){return this.transformFunction(d.funcExpr,...arguments)}transformArrowFunctionExpression(t){return this.transformFunction(d.arrowFuncExpr,...arguments)}transformFunction(t,i){if(i.generator&&i.isQuantumFunction)throw new Error("Generator functions cannot be quantum functions.");let r=this.$serial(i),{id:s,params:n,body:a}=i;[s,n,a]=this.pushScope(i,()=>{let g=[];s&&this.currentScope.push(s,"self");let w=n.map(b=>{if(b.type==="AssignmentPattern"&&i.isQuantumFunction){let C=this.currentScope.getRandomIdentifier("$rand",!1),v=this.transformSignal(C,"param"),y=d.varDeclarator(b.left,d.withLoc(d.logicalExpr("||",C,b.right),b));return g.push(...this.transformNode(d.varDeclaration("let",[d.withLoc(y,b)]),{static:!i.isQuantumFunction})),v}return this.transformSignal(b,"param")}),E=this.transformNode(a,{static:!i.isQuantumFunction});g.push(...E.type==="BlockStatement"?E.body:[d.returnStmt(E)]),g.length&&(g[0].comments=d.comments("Function body"));let x=d.exprStmt(d.assignmentExpr(this.$path("locations"),d.arrayExpr(this.currentScope.locations)));return x.comments=d.comments("Location data"),g.unshift(x),[s,w,d.blockStmt(g)]});let o=this.currentScope.get$qIdentifier("$q"),u=this.$closure([o],a),c=d.identifier(i.isQuantumFunction||!1),l=d.identifier(i.type==="FunctionDeclaration"),f=d.blockStmt([d.returnStmt(this.$call("runtime.spawn",c,d.thisExpr(),u))]),p=g=>this.$call("function",l,c,r,g),m=t.call(d,s,n,f,i.async,i.expresion,i.generator);if(i.type==="FunctionDeclaration"){if(this.currentScope.push(s,"static"),m=[m,d.exprStmt(p(s))],this.currentEntry.isExport){let g=[d.literal(s),r];this.currentEntry.isExport==="as-default"&&g.push(d.literal("default")),this.exports.add([d.arrayExpr(g)])}}else this.currentEntry.isMethod||(m=p(m));return m}transformClassDeclaration(t){return this.transformClass(d.classDeclaration,...arguments)}transformClassExpression(t){return this.transformClass(d.classExpression,...arguments)}transformClass(t,i){let{id:r,body:s,superClass:n}=i;n&&(n=this.transformNode(n));let a=new Set;s=this.pushScope(i,()=>(r&&this.currentScope.push(r,"self"),this.transformNode(s,{methods:a})));let o=d.identifier(i.type==="ClassDeclaration"),u=l=>{let f=d.arrayExpr([...a].map(p=>this.$obj(p)));return this.$call("class",o,l,f)},c=t.call(d,r,s,n);if(i.type==="ClassDeclaration"){if(this.currentScope.push(r,"static"),c=[c,d.exprStmt(u(r))],this.currentEntry.isExport){let l=[d.literal(r),this.$serial(i)];this.currentEntry.isExport==="as-default"&&l.push(d.literal("default")),this.exports.add([d.arrayExpr(l)])}}else c=u(c);return c}transformMethodDefinition(t){let{key:i,value:r}=t;t.computed&&(i=this.transformNode(i));let s=this.transformNode(r,{static:!0,isMethod:!0});return this.currentEntry.methods.add({name:t.computed?i:d.literal(i),static:d.identifier(t.static),isQuantumFunction:d.identifier(r.isQuantumFunction||!1),serial:this.$serial(t)}),d.methodDefinition(i,s,t.kind,t.static,t.computed)}transformPropertyDefinition(t){let{key:i,value:r}=t;return t.computed&&(i=this.transformNode(i)),r=this.transformNode(r),d.exprStmt(d.propertyDefinition(i,r,t.static,t.computed))}exports=new Set;transformExportDefaultDeclaration(t){return this.handleExports(...arguments)}transformExportNamedDeclaration(t){return this.handleExports(...arguments)}transformExportAllDeclaration(t){return this.handleExports(...arguments)}handleExports(t){if(t.type==="ExportAllDeclaration"){let r=[d.literal("*"),this.$serial(t.exported||t),d.literal(t.exported?.name||t.exported?.value||"")];this.exports.add([d.arrayExpr(r),this.$obj({source:t.source,serial:this.$serial(t)})]);return}let i=r=>r.map(s=>{let n=[d.literal(s.local.name),this.$serial(s)],a=s.exported.name||s.exported.value;return a!==s.local.name&&n.push(d.literal(a)),d.arrayExpr(n)});if(t.source){this.exports.add(i(t.specifiers).concat(this.$obj({source:t.source,serial:this.$serial(t)})));return}if(t.type==="ExportNamedDeclaration"&&t.specifiers.length){this.exports.add(i(t.specifiers));return}if(t.type==="ExportDefaultDeclaration"&&["Identifier","ThisExpression"].includes(t.declaration.type)){let r=[d.literal(t.declaration.name||"this"),this.$serial(t),d.literal("default")];this.exports.add([d.arrayExpr(r)]);return}return this.transformNode(t.declaration,{isExport:t.type==="ExportDefaultDeclaration"?"as-default":!0})}transformImportDeclaration(t){let i=t.specifiers.map(r=>{let{imported:s,local:n}=r;this.transformSignal(n,"import"),r.type==="ImportNamespaceSpecifier"?s=d.identifier("*"):r.type==="ImportDefaultSpecifier"&&(s=d.identifier("default"));let a=s.name||s.value||"",o=[d.literal(a),this.$serial(r)];return a!==r.local.name&&o.push(d.literal(r.local.name)),d.arrayExpr(o)});return d.exprStmt(this.$call("import",...i.concat(this.$obj({source:t.source,serial:this.$serial(t)}))))}transformImportExpression(t){return this.$call("import",this.$obj({source:t.source,isDynamic:d.identifier("true"),serial:this.$serial(t)}))}transformSignal(t,i,r=null){return t.type==="Identifier"?(this.currentScope.push(t,i,["let","param"].includes(i)),r?.add(t),t):this.transformNode(t,{mode:i,static:!0,signals:r})}transformThisExpression(t){return this.transformIdentifier(...arguments)}transformIdentifier(t){let i=this.currentScope.find(t);!i&&t.name&&this.currentScope.$qIdentifiersNoConflict(t.name);let r=[];return t.hint?r.push(this.$obj({[t.hint]:d.identifier(!0)})):this.currentEntry.mode,t.type==="ThisExpression"||["param","self"].includes(i?.type)||["arguments"].includes(t.name)?this.currentEntry.trail?this.$call("obj",t,...this.$trail(),...r):t:(this.history.forEach(s=>s.refs?.add(t)),this.$call("ref",d.literal(t),...this.$trail(),...r))}transformMemberExpression(t){let{object:i,property:r,computed:s,optional:n}=t;s&&(r=this.transformNode(r));let a=this.transformNode(i,{trail:(this.currentEntry.trail||0)+1});return i.typed&&(a=this.$typed(i.typed,a,d.literal(r))),d.memberExpr(a,r,s,n)}transformVariableDeclaration(t){let i=this.currentEntry.isExport;return t.declarations.reduce((s,n)=>["ObjectPattern","ArrayPattern"].includes(n.id.type)?s.concat(this.expandPattern(n.id,n.init)):s.concat(n),[]).reduce((s,n)=>{let a=this.$serial(n),o=this.transformNode(n.init);this.transformSignal(n.id,t.kind,this.currentEntry.signals);let u=[];n.restOf&&(o=this.$typed(n.init.typed,o),u.push(this.$obj({restOf:n.restOf,type:d.literal(n.init.typed==="iterable"?"array":"object")})));let c=s.concat(this.$var(t.kind,a,n.id,o,...u));if(i&&!(n.id instanceof Ot)){let l=[d.literal(n.id),a];this.exports.add([d.arrayExpr(l)])}return c},[])}transformAssignmentExpression(t){let r=!this.currentEntry.static&&this.history[1].node.type==="ExpressionStatement",{left:s,right:n}=t,a=(u,c)=>(c=this.transformNode(c),u=this.transformNode(u),d.assignmentExpr(u,c,t.operator));if(["MemberExpression","ChainExpression"].includes(s.type))return a(s,n);if(["ObjectPattern","ArrayPattern"].includes(s.type)){let u=n,c=this.expandPattern(s,n,r).reduce((l,f)=>{if(f.id.originalB&&(u=f.id),f.type==="AssignmentExpression")return l.concat(a(f.left,f.right));let p=this.transformNode(f.init);if(f.id instanceof Ot){let g=this.$serial(f);return l.concat(this.$var("let",g,f.id,p))}this.transformSignal(f.id,"update",this.currentEntry.signals);let m=[];return f.restOf&&(p=this.$typed(f.init.typed,p),m.push(this.$obj({restOf:f.restOf,type:d.literal(f.init.typed==="iterable"?"array":"object")}))),l.concat(this.$update(f.id,p,...m))},[]);return r?c:d.sequenceExpr(c.concat(u))}n=this.transformNode(n),this.transformSignal(s,"update",this.currentEntry.signals);let o=this.currentScope.getRandomIdentifier("$current",!1);return this.$call("update",d.literal(s),this.$closure([o],d.assignmentExpr(o,n,t.operator.replace("====",""))))}transformAssignmentPattern(t){let{left:i,right:r}=t;return r=this.transformNode(r),["MemberExpression","ChainExpression"].includes(i.type)?i=this.transformNode(i,{static:!0}):i=this.transformSignal(i,this.currentEntry.mode,this.currentEntry.signals),d.assignmentPattern(i,r)}expandPattern(t,i,r=!0){let s=[],n=this;if(!["Identifier","Literal"].includes(i.type)&&r){let a=d.withLoc(n.currentScope.getRandomIdentifier("$rand",!1),i);a.originalB=!0,i.typed=t.type==="ObjectPattern"?"desctructurable":"iterable",s.push(d.withLoc(d.varDeclarator(a,i),i)),i=a}return function a(o,u,c){u.typed=c?"desctructurable":"iterable";let l=[];for(let f=0;f<o.length;f++){let p=o[f],m=f,g=p;if(p===null){l.push(f);continue}if(p.type==="RestElement"){let b=d.withLoc(d.varDeclarator(p.argument,u),p);b.restOf=l.map(C=>d.literal(C)),s.push(b);continue}c?{key:m,value:g}=p:m=d.literal(m);let w,E;g.type==="AssignmentPattern"?(w=g.right,g.left.type==="Identifier"?E=g.left:g=g.left):g.type==="Identifier"&&(E=g);let x=d.memberExpr(u,m,c?p.computed:!0);if(w&&(x=d.logicalExpr("||",x,w)),E)s.push(d.withLoc(d.varDeclarator(E,x),p)),l.push(m);else if(g.type==="MemberExpression"||g.type==="ChainExpression"&&(g=g.expression))s.push(d.withLoc(d.assignmentExpr(g,x),p));else if(g.elements||g.properties){let b=(g.properties?g.properties:g.elements).length>1;if(r&&b){let C=n.currentScope.getRandomIdentifier("$rand",!1);s.push(d.withLoc(d.varDeclarator(C,x),p)),x=C}a(g.elements||g.properties,x,g.properties&&!0)}}}(t.elements||t.properties,i,t.properties&&!0),s}transformUpdateExpression(t){if(t.argument.type==="Identifier"){this.transformSignal(t.argument,"update",this.currentEntry.signals);let i=this.currentScope.getRandomIdentifier("$current",!1),r=d.binaryExpr(t.operator==="--"?"-":"+",i,d.literal(1),!0),s=(t.prefix?"pre":"post")+(t.operator==="--"?"dec":"inc");return this.$call("update",d.literal(t.argument.name),this.$closure([i],r),this.$obj({kind:d.literal(s)}))}return d.updateExpr(t.operator,this.transformNode(t.argument),t.prefix)}transformUnaryExpression(t){return t.operator==="typeof"&&t.argument.type==="Identifier"&&(t.argument.hint="isTypeCheck"),d.unaryExpr(t.operator,this.transformNode(t.argument))}transformIfStatement(t){let i=this.$serial(t),{test:r,consequent:s,alternate:n}=t;r=this.transformNode(t.test),s=this.pushScope(t,()=>this.transformNodes([t.consequent])),s[0].type!=="BlockStatement"&&s.length>1?s=d.blockStmt(s):s=s[0],n&&(n=this.pushScope(t,()=>this.transformNodes([t.alternate])),n[0]&&n[0].type!=="BlockStatement"&&n.length>1?n=d.blockStmt(n):n=n[0],n.type==="BlockStatement"&&(n=this.$autorun("block",this.$serial(t.alternate),n)));let a=d.ifStmt(r,s,n);return this.currentEntry.static?a:this.$autorun("block",i,d.blockStmt([a]))}transformSwitchStatement(t){let i=this.$serial(t);return this.pushScope(t,()=>{let r=this.transformNode(t.discriminant),s=t.cases.map(a=>{let o=this.transformNode(a.test),u=this.transformNodes(a.consequent);return d.switchCase(o,u)}),n=d.switchStmt(r,s);return this.currentEntry.static?n:this.$autorun("block",i,d.blockStmt([n]))})}transformWhileStatement(t){return this.transformLoopStmtA(d.whileStmt,...arguments)}transformDoWhileStatement(t){return this.transformLoopStmtA(d.doWhileStmt,...arguments)}transformForStatement(t){return this.transformLoopStmtA(d.forStmt,...arguments)}transformLoopStmtA(t,i){let r=i.type==="WhileStatement"?"while":i.type==="DoWhileStatement"?"do-while":"for",s=this.$serial(i);return this.pushScope(i,()=>{let n=this.currentScope.get$qIdentifier("$q"),a,o={kind:d.literal(r),label:this.currentEntry.parentNode?.label?d.literal(this.currentEntry.parentNode.label.name):d.identifier("null"),static:d.identifier(this.currentEntry.static)};if(r==="for"){let c=d.blockStmt([].concat(this.transformNode(i.init)||[]));o.init=this.$closure([n],c);let l=this.transformNode(i.test);o.test=this.$closure([n],l);let f=this.transformNode(i.update);o.advance=this.$closure([n],f),a=p=>t.call(d,c,l,f,p)}else{let c=this.transformNode(i.test);o.test=this.$closure([n],c),a=l=>t.call(d,c,l)}let u=this.transformNode(i.body);return this.$autorun("iteration",o,s,u)})}transformForOfStatement(t){return this.transformLoopStmtB(d.forOfStmt,...arguments)}transformForInStatement(t){return this.transformLoopStmtB(d.forInStmt,...arguments)}transformLoopStmtB(t,i){let r=i.type==="ForInStatement"?"for-in":"for-of",s=this.$serial(i),n=this.transformNode(i.right);return this.pushScope(i,()=>{let a=this.currentScope.get$qIdentifier("$q"),o=this.currentScope.get$qIdentifier(r==="for-of"?"$val":"$key",!1),u={kind:d.literal(r),label:this.currentEntry.parentNode?.label?d.literal(this.currentEntry.parentNode.label.name):d.identifier("null"),parameters:this.$closure([a],d.arrayExpr([d.literal(o),n])),static:d.identifier(this.currentEntry.static)},c;if(i.left.type==="VariableDeclaration"){let f=d.withLoc(d.varDeclarator(i.left.declarations[0].id,o),i.left);c=d.varDeclaration(i.left.kind,[f])}else c=d.withLoc(d.assignmentExpr(i.left,o),i.left);let l=d.blockStmt(this.transformNodes([c].concat(i.body.body)));return this.$autorun("iteration",u,s,l)})}transformBreakStatement(t){return this.transformExitStmt(d.breakStmt,...arguments)}transformContinueStatement(t){return this.transformExitStmt(d.continueStmt,...arguments)}transformExitStmt(t,i){let r=i.type==="BreakStatement"?"break":"continue",s=d.literal(r),n=i.label?d.literal(i.label.name):d.identifier("null");return this.hoistExitStatement(s,n)?.type==="SwitchStatement"?t.call(d):d.exprStmt(this.$call(r,n))}transformReturnStatement(t){let i=new Set,r=this.transformNode(t.argument,{refs:i});if(this.currentEntry.static)return d.returnStmt(r);let s=d.literal("return"),n=r?[s,r]:[s];this.hoistExitStatement(...n);let a=this.$call("return",...n.slice(1));if(!i.size)return d.exprStmt(a);let o=this.$serial(t);return this.$autorun("return",o,a)}transformBlockStatement(t){if(t instanceof ce){let r=this.$serial(t),s=this.transformNodes(t.body);return this.$autorun("downstream",r,d.blockStmt(s))}let i=this.pushScope(t,()=>this.transformNodes(t.body));return d.blockStmt(i)}transformLabeledStatement(t){this.currentScope.push(t.label,"const");let i=[].concat(this.transformNode(t.body));return[d.labeledStmt(t.label,i.shift()),...i]}transformExpressionStatement(t){let i=this.$serial(t);return[].concat(this.transformNode(t.expression)||[]).reduce((s,n)=>n.type==="VariableDeclaration"||n.type.endsWith("Statement")?s.concat(n):this.currentEntry.static?d.exprStmt(n):s.concat(this.$autorun("stmt",i,n)),[])}transformAwaitExpression(t){this.hoistAwaitKeyword();let i=this.transformNode(t.argument);return d.awaitExpr(i)}transformSequenceExpression(t){let i=t.expressions.reduce((r,s,n)=>r.concat(this.transformNode(s,{trail:n===t.expressions.length-1?this.currentEntry.trail:void 0})),[]);return this.history[1].node.type==="ExpressionStatement"?i:d.sequenceExpr(i)}transformConditionalExpression(t){let{test:i,consequent:r,alternate:s}=t;return i=this.transformNode(i),r=this.transformNode(r,{trail:this.currentEntry.trail}),s=this.transformNode(s,{trail:this.currentEntry.trail}),d.conditionalExpr(i,r,s)}transformLogicalExpression(t){let{left:i,right:r}=t;return i=this.transformNode(i,{trail:this.currentEntry.trail}),r=this.transformNode(r,{trail:this.currentEntry.trail}),d.logicalExpr(t.operator,i,r)}transformBinaryExpression(t){let{left:i,right:r}=t;i=this.transformNode(i),r=this.transformNode(r);let s=d.binaryExpr(t.operator,i,r);return this.currentEntry.trail?this.$call("obj",s,...this.$trail()):s}transformCallExpression(t){return this.transformCallExpr(d.callExpr,...arguments)}transformNewExpression(t){return this.transformCallExpr(d.newExpr,...arguments)}transformCallExpr(t,i){let r=this.transformNode(i.callee,{mode:"callee"}),s=i.arguments.map(a=>this.transformNode(a)),n=t.call(d,r,s,i.optional);return this.currentEntry.trail?this.$call("obj",n,...this.$trail()):n}transformObjectExpression(t){let i=d.objectExpr(t.properties.map(r=>this.transformNode(r)));return this.currentEntry.trail?this.$call("obj",i,...this.$trail()):i}transformProperty(t){let{key:i,value:r}=t;return t.computed&&(i=this.transformNode(i)),r=this.transformNode(r),d.property(i,r,t.kind,!1,t.computed,!1)}transformArrayExpression(t){let i=d.arrayExpr(t.elements.map(r=>this.transformNode(r)));return this.currentEntry.trail?this.$call("obj",i,...this.$trail()):i}transformTaggedTemplateExpression(t){let[i,r]=this.transformNodes([t.tag,t.quasi]),s=d.taggedTemplateExpr(i,r);return this.currentEntry.trail?this.$call("obj",s,...this.$trail()):s}transformTemplateLiteral(t){let i=t.expressions.map(s=>this.transformNode(s)),r=d.templateLiteral(t.quasis,i);return this.currentEntry.trail?this.$call("obj",r,...this.$trail()):r}};var Cs=new Map;function ks(e,t={}){let i=`${e}${JSON.stringify(t)}`,r=Cs.get(i);if(!r){try{r=gs.parse(e,t)}catch(s){let n=`${s.message||s}`,{pos:a,loc:{line:o,column:u}={}}=s,l=[{expr:e.slice(Math.max(0,a-15),a+15),line:o,column:u},{source:e}];throw t.inBrowser&&console.error(l),new(globalThis[s.name]||Error)(n,{cause:l})}Cs.set(i,r)}return r}function As(e,t={}){return new $e(t).transform(e)}function ci(...e){let t,i={runtimeParams:la,compilerParams:ca,parserParams:ua};for(;t=e.shift();){let{runtimeParams:r={},compilerParams:{globalsNoObserve:s=[],globalsOnlyPathsExcept:n=[],...a}={},parserParams:o={}}=t;i={runtimeParams:{...i.runtimeParams,...r},compilerParams:{...i.compilerParams,globalsNoObserve:[...i.compilerParams.globalsNoObserve,...s],globalsOnlyPathsExcept:[...i.compilerParams.globalsOnlyPathsExcept,...n],...a},parserParams:{...i.parserParams,...o}},e.devMode}return i}var ua={ecmaVersion:"latest",allowReturnOutsideFunction:!0,allowAwaitOutsideFunction:!1,allowSuperOutsideMethod:!1,preserveParens:!1,locations:!0},ca={globalsNoObserve:["arguments","debugger"],globalsOnlyPathsExcept:[],originalSource:!0,locations:!0,compact:2},la={apiVersion:3};var Le=Object.create(null);var Ut=class extends EventTarget{managedAlways=new Set;managedOnce=new Set;constructor(){super(),Or.setMaxListeners?.(0,this)}fire(t){return this.dispatchEvent(new Event(t,{cancelable:!0}))}on(...t){return this.addEventListener(...t),()=>this.removeEventListener(...t)}abort(t=!1){this.managedAlways.forEach(i=>i.abort?i.abort(t):i(t)),this.managedOnce.forEach(i=>i.abort?i.abort(t):i(t)),this.managedOnce.clear(),this.fire("abort")}manage(t){this.managedAlways.add(t)}once(t){this.managedOnce.add(t)}};var Wt=class extends Ut{subscribers=new Set;signals=new Map;constructor(t,i,r){super(),this.context=t,this.context?.once(()=>this.abort()),this.once(()=>this.watchMode(!1)),this.type=i,this.state=r}get name(){return[...this.context?.signals.keys()||[]].find(t=>this.context.signals.get(t)===this)}signal(t,i="prop"){let r=this.signals.get(t);return r||(r=new Wt(this,i,i==="object"?t:Mi(this.state)?R.get(this.state,t):void 0),this.signals.set(t,r),this.signals.size===1&&this.watchMode(),r.once(()=>{this.signals.delete(t),this.signals.size||this.watchMode(!1)})),r}subscribe(t){this.subscribers.add(t),t.once(()=>{this.subscribers.delete(t),this.subscribers.size||this.abort()})}watchMode(t=!0){this.mutationsWatch?.abort(),!(!t||!this.signals.size||!Mi(this.state))&&(this.mutationsWatch=R.observe(this.state,i=>{let r={map:new Map,add(n,a){for(let o of n)o.spec.beforeSchedule?.(a)!==!1&&(this.map.has(o.runtime)||this.map.set(o.runtime,new Set),this.map.get(o.runtime).add(o))}};for(let n of i){let a=this.signals.get(n.key);!a||(r.add(a.subscribers,n),a.refresh(n.value))}let s=r.map.size?[...r.map].sort((n,a)=>n.$serial>a.$serial?-1:1):r.map;for(let[n,a]of s)n.state!=="aborted"&&n.schedule(...a)},{recursions:"force-sync"}))}refresh(t){this.state=t;for(let[i,r]of this.signals)r.refresh(R.get(this.state??{},i));this.watchMode()}};var et=class extends Wt{symbols=new Map;constructor(t,i,r=void 0){super(t,i,r||Object.create(null))}};var wt=class extends Ut{state;constructor(t,i,r,s,n,a){super(),t?.once(this),this.context=t,this.type=i,this.spec=r,this.scope=n,t?.scope!==n&&this.manage(n),this.serial=s,a&&(this.closure=a),t?.type==="iteration"?this.path=t.path.concat(this.spec.index):t?.type==="round"?this.path=t.path.concat(this.serial):this.path=(t?.path||[]).slice(0,-1).concat(this.serial),this.flowControl=new Map}get runtime(){return this.context.runtime}contains(t){return this===t.context||t.context&&this.contains(t.context)}order(t){if(!t)return this;let[i,r]=t.path.length<this.path.length?[t,this]:[this,t];return i.path.reduce((s,n,a)=>s&&n<=r.path[a],!0)&&i||r}beforeExecute(){this.state="running";let t=this.flowControl;return this.flowControl=new Map,t}execute(t=null){try{return this.runtime.thread.unshift(this),nt(this.beforeExecute(),i=>Ri(this.closure,this,this,r=>(this.spec.complete&&(r=this.spec.complete(r,this)),this.afterExecute(i),this.runtime.thread.shift(),t?t(r,this):r)))}catch(i){if(i.cause)throw i;let r=`${i.message||i}`;this.runtime.throw(r,[this.serial,this.context?.serial],globalThis[i.name])}}afterExecute(t){this.state="complete";let i=this.flowControl;this.handleDownstream(i.size,t.size),this.handleRightstream(i.size,t.size);for(let r of["break","continue","return"])i.has(r)&&!i.get(r).endpoint?this.hoistFlowControl(r,i.get(r).arg):t.has(r)&&!t.get(r).endpoint&&this.hoistFlowControl(r,t.get(r).arg,!0)}typed(t,i,r=void 0){let s=Array.isArray(i)?"array":i===null?"null":typeof i;if(s===t||t==="iterable"&&i?.[Symbol.iterator]||t==="desctructurable"&&!["undefined","null"].includes(s))return i;throw t==="iterable"?new Error("value is not iterable."):t==="desctructurable"?new Error((r?`Cannot access ${r}; `:"")+"object not desctructurable."):new Error(`value must be of type ${t}.`)}let(t,i,r,s={}){return this.var(t,i,r,{...s,kind:"let"})}const(t,i,r,s={}){return this.var(t,i,r,{...s,kind:"const"})}var(t,i,r,s={}){s={kind:"var",...s},r||(r=()=>{});let n=s.restOf?(...o)=>{try{return r(...o)}catch(u){throw new Error(`Cannot declare ${t}; ${u.message}`)}}:r,a=(o,u)=>{let c=u.scope;if(s.kind==="var")for(;!["module","function"].includes(c.type)&&!R.has(c.state,t)&&c.context;)c=c.context;else c.type==="this"&&c.context&&(c=c.context);let l=c.symbols.get(t);if(l&&(l.kind!==s.kind||s.kind==="let"&&l.serial!==i))throw new Error(`Identifier "${t}" has already been declared.`);l?.reader?.abort(),l={serial:i,kind:s.kind};let f=o;return s.restOf&&(s.type==="array"?f=[]:f={},l.reader=R.map(o,f,{except:s.restOf,spread:s.type==="array"}),u.once(l.reader)),c.symbols.set(t,l),R.set(c.state,t,f),f};return this.autorun(s.kind,{complete:a,...s},i,n)}update(t,i,r={}){let s=this.scope;for(;s&&!R.has(s.state,t);)s=s.context;if(!s)throw new ReferenceError(`${t} is not defined.`);let n=s.symbols.get(t);if(n?.kind==="const")throw new ReferenceError(`Assignment to constant variable "${t}".`);let a=R.get(s.state,t),o=r.restOf?(...u)=>{try{return i(...u)}catch(c){throw new Error(`Cannot update ${t}; ${c.message}`)}}:i;return Ri(o,void 0,a,u=>{n?.reader?.abort();let c=u;return r.restOf&&(n=n||{},r.type==="array"?c=[]:c={},n.reader=R.map(u,c,{except:r.restOf,spread:r.type==="array"}),this.once(n.reader)),R.set(s.state,t,c),["postinc","postdec"].includes(r.kind)?a:c})}ref(t,...i){let r=0,s={};typeof i[0]=="number"?(r=i.shift(),s=i.shift()||{}):typeof i[0]=="object"&&(s=i.shift());let n=this.scope;for(;n&&!R.has(n.state,t);)n=n.context;if(!n){if(s.isTypeCheck)return;throw new Error(`${t} is not defined.`)}let a=n.symbols.get(t)?.kind,o=n.signal(t,a);return s.typed&&this.typed(s.typed,o.state,t),this.autobind(o,r,s)}obj(t,...i){let r=0,s={};return typeof i[0]=="number"?(r=i.shift(),s=i.shift()||{}):typeof i[0]=="object"&&(s=i.shift()),this.autobind(this.runtime.$objects.signal(t,"object"),r,s)}autobind(t,i,r){let s=this.runtime.$params.quantumMode,n=t.type==="const",a=this===this.runtime,o=this.state==="aborted",u=this;return function c(l,f){if(s&&!n&&!a&&!o&&l.subscribe(u),!f||!l.state||typeof l.state!="object"){let m=l.state;return typeof l.state=="function"&&(m=R.proxy(l.state,{membrane:l})),m}let p;return R.proxy(l.state,{},m=>({...m,get(g,w,E=null){return p?m.get(g,w,E):(p=!0,c(l.signal(w),f-1))}}))}(t,i)}autorun(t,...i){let r=i.pop(),s=i.pop(),n=i.pop()||{},a=wt,o=this.scope;if(t==="iteration"){let c=this.runtime.constructor;a=r.constructor.name==="AsyncFunction"?c.AutoAsyncIterator:c.AutoIterator}["block","iteration"].includes(t)&&(o=new et(o,t));let u=new a(this,t,n,s,o,r);if(!(t==="downstream"&&(this.downstream=u,this.flowControlApplied())))return u.execute()}function(t,i,r,s){t&&R.set(this.scope.state,s.name,s);let n=this;return Object.defineProperty(s,"toString",{value:function(a=!1){if(a&&i)return Function.prototype.toString.call(s);let o=n.runtime.extractSource(r);return o.startsWith("static ")?o.replace("static ",""):o}}),s}class(t,i,r){return t&&R.set(this.scope.state,i.name,i),r.forEach(({name:s,static:n,isQuantumFunction:a,serial:o})=>{this.function(!1,a,o,n?i[s]:i.prototype[s])}),i}async import(...t){return this.runtime.import(...t)}async export(...t){return this.runtime.export(...t)}continue(t){return this.applyFlowControl("continue",t)}break(t){return this.applyFlowControl("break",t)}return(t){return this.applyFlowControl("return",t)}applyFlowControl(t,i,r=!1){let s=this.flowControl.size;if(r?this.flowControl.delete(t):this.flowControl.set(t,{arg:i}),this.type==="round"&&(this.context.breakpoint=this),this.type==="round"&&["break","continue"].includes(t)&&i===this.context?.spec.label){r||(this.flowControl.get(t).endpoint=!0),this.state!=="running"&&this.handleRightstream(this.flowControl.size,s);return}this.state!=="running"&&(this.handleDownstream(this.flowControl.size,s),this.hoistFlowControl(...arguments))}hoistFlowControl(...t){return this.context?.applyFlowControl(...t)}flowControlApplied(t,i){return arguments.length?arguments.length===1?this.flowControl.has(t):this.flowControl.get(t)?.arg===i:this.flowControl.size||!1}handleDownstream(t,i){let r;this.type!=="block"||!(r=this.context?.downstream)||(t?r.abort():i&&(r.state="resuming",this.runtime.schedule(r)))}handleRightstream(t,i){if(this.type!=="round")return;let r=this,s=new Set;for(;r=r.nextRound;)t?r.abort():i&&r.state!=="inert"&&(r.state="resuming",s.add(r));s.size&&this.runtime.schedule(...s),!t&&i&&this.runtime.on("reflection",()=>{this.context.iterating||this.context.iterate()},{once:!0})}abort(t=!1){return t&&(this.context?.breakpoint===this&&delete this.context.breakpoint,this.flowControl.clear()),this.state=t?"inert":"aborted",super.abort(t)}};var zt=class extends wt{rounds=new Map;constructor(t,i,r,s,n,a){r.$closure=a,super(t,i,r,s,n),this.manage(()=>{delete this.breakpoint,this.rounds.clear()})}pseudorun(t){return this.runtime.iThread.unshift(this),nt(t(),i=>(this.runtime.iThread.pop(),i))}createIterator(){return this.spec.kind==="for-in"?function*(){for(let t in this.iteratee)yield t}.call(this):this.spec.kind==="for-of"?function*(){for(let t of this.iteratee)yield t}.call(this):{next:()=>({done:!this.pseudorun(()=>this.spec.test(this))})}}closure(){["for-of","for-in"].includes(this.spec.kind)?([this.production,this.iteratee]=this.spec.parameters(this),this.iterator=this.createIterator(),this.iterator.original=!0,this.watchMode()):(this.spec.kind==="for"&&this.spec.init(this),this.iterator=this.createIterator()),this.iterate()}terminated(){return this.breakpoint&&!this.breakpoint.flowControlApplied("continue",this.spec.label)&&this.breakpoint.flowControlApplied()}advance(){this.spec.kind==="for"&&this.pseudorun(()=>this.spec.advance(this))}iterate(){this.iterating=!0;let t=()=>!this.terminated()&&!(this.cursor=this.iterator.next()).done,i=()=>{this.createRound(this.cursor.value).execute(),this.advance()};if(this.spec.kind==="do-while")do i();while(t());else for(;t();)i();this.iterating=!1}createRound(t){let i=this.rounds.size,r={index:i},s=["for-in","for-of"].includes(this.spec.kind)?{[this.production]:t}:{...this.scope.state},n=new et(this.scope,"round",s);this.scope.symbols.forEach((u,c)=>{n.symbols.set(c,u)});let a=new wt(this,"round",r,this.serial,n,this.spec.$closure),o=this.spec.kind==="for-in"?t:i;return this.rounds.set(o,a),this.lastRound&&(this.lastRound.nextRound=a,a.prevRound=this.lastRound),this.lastRound=a,a}watchMode(){if(this.spec.static)return;let t=(i,r)=>{let s=new Set,n=new Set;for(let a of i){if(Array.isArray(this.iteratee)&&a.key==="length")continue;let o=this.spec.kind==="for-in"?a.key:a.value,u=this.spec.kind==="for-in"?a.key:parseInt(a.key),c=this.rounds.get(u);if(c)R.set(c.scope.state,this.production,o),a.type==="delete"&&(this.rounds.set(u,void 0),c.prevRound&&(c.prevRound.nextRound=c.nextRound),c.nextRound&&(c.nextRound.prevRound=c.prevRound),s.add(c));else if(a.type!=="delete"&&!a.isUpdate){if(this.spec.kind==="for-of"&&this.iterator.original&&!r.done)continue;n.add(o)}}this.runtime.on("reflection",()=>{s.forEach(a=>a.abort(!0))},{once:!0}),n.size&&(this.iterator=function*(a){yield*a,yield*n}(this.iterator),r.done&&this.iterate())};this.once(R.observe(this.iteratee,i=>{nt(this.cursor,r=>t(i,r))}))}};var Re=class extends zt{async createIterator(){return this.spec.kind==="for-in"?function*(){for(let t in this.iteratee)yield t}.call(this):this.spec.kind==="for-of"?function*(){for(let t of this.iteratee)yield t}.call(this):{next:async()=>({done:!await this.pseudorun(()=>this.spec.test(this))})}}async closure(){["for-of","for-in"].includes(this.spec.kind)?([this.production,this.iteratee]=await this.spec.parameters(this),this.iterator=await this.createIterator(),this.iterator.original=!0,this.watchMode()):(this.spec.kind==="for"&&await this.spec.init(this),this.iterator=await this.createIterator()),await this.iterate()}async iterate(){let t;this.iterating=!0;let i=async()=>!this.terminated()&&(this.cursor=this.iterator.next())&&(t=await this.cursor)&&!t.done,r=async()=>{await this.createRound(t.value).execute(),await this.advance()};if(this.spec.kind==="do-while")do await r();while(await i());else for(;await i();)await r();this.iterating=!1}};var Qt=class{constructor(t){Object.defineProperty(this,"runtime",{value:t});let i={statechange:()=>{R.defineProperty(this,"value",{value:t.flowControl.get("return")?.arg,enumerable:!0,configurable:!0})}};for(let r in i)t.on(r,i[r]),i[r]();t.$params.sourceType==="module"&&Object.defineProperty(this,"exports",{value:t.exports})}dispose(){return this.runtime.abort(!0)}};var Gt=class extends wt{locations=[];queue=new Set;thread=[];iThread=[];constructor(t,i,r,s,n){super(t,i,{},-1,s,n);let{$serial:a=0,...o}=r;this.$serial=a,this.$params=o,this.$objects=new et(void 0,"objects"),this.manage(this.$objects),this.exports=Object.create(null),this.$promises={imports:[],exports:[]},this.manage(()=>{R.deleteProperties(this.exports,Object.keys(this.exports)),this.$promises.imports.splice(0),this.$promises.exports.splice(0)})}extractSource(t,i=!1){let[[r,s,n],[a]]=this.locations[t],o=this.$params.originalSource.slice(r,a);return i?{expr:o,line:s,column:n}:o}throw(t,i,r=null,s=null){let n,a=s!==null?`[${s}]: ${t}`:t,o=i.map(c=>c!==-1&&this.extractSource(c,!0)).filter(c=>c);o.push({source:this.$params.originalSource}),n=new(r||Error)(a,{cause:o});let u=this.$params.sourceType==="module"&&this.$params.experimentalFeatures!==!1&&this.$params.exportNamespace||this.$params.fileName;throw u&&(n.fileName=u),s&&(n.code=s),n}get runtime(){return this}get nowRunning(){return this.thread[0]}schedule(...t){let i=this.queue.size;for(let r of t)this.queue.add(r);if(!i)return this.flowControlDirty=!1,function r(s,n){let a;for(let o of this.queue){if(n&&n.order(o)!==n||["aborted","running"].includes(o.state)||this.iThread[0]?.contains(o)){this.queue.delete(o);continue}a=a?a.order(o):o,n||(n=a)}return a?(a.abort(),a.execute(o=>(this.queue.delete(a),r.call(this,o,a)))):(this.fire("reflection"),this.flowControlApplied()&&this.fire("statechange"),s)}.call(this,void 0,this.nowRunning)}execute(t=null){return super.execute(i=>{let r=this.$params.quantumMode?new Qt(this):i;return t?t(r,this):r})}spawn(t,i,r){let s=this.nowRunning||this,n={...this.$params,$serial:this.$serial+1,quantumMode:t},a=new et(s.scope,"function",{this:i});return new this.constructor(s,"function",n,a,r).execute()}async import(...t){let i=t.pop(),r=typeof i=="string"?{source:i}:i,s=a=>{if(r.forExport||r.isDynamic)return a;this.assignModules(t,this.scope.state,a,i.serial)};if(this.$params.experimentalFeatures!==!1&&Le[r.source])return s(Le[r.source]);let n=(async()=>{let a=this.$params.sourceType==="module"&&this.$params.experimentalFeatures!==!1&&this.$params.exportNamespace||this.$params.fileName;try{return s(await import(r.source))}catch(o){throw o.code==="ERR_MODULE_NOT_FOUND"&&this.throw(`Cannot find package "${r.source}"${a?` imported at "${a}"`:""}.`,[r.serial],null,o.code),o}})();return r.isDynamic||this.$promises[r.forExport?"exports":"imports"].push(n),n}async export(...t){let i=Array.isArray(t[t.length-1])?null:t.pop(),r=i?await this.import({...i,forExport:!0}):this.scope.state;this.assignModules(t,this.exports,r,i?.serial)}assignModules(t,i,r,s=null){let n=[];for(let[a,o,u]of t){if(a==="*"&&u){(this.$params.quantumMode?R:Reflect).set(i,u,r);continue}R.has(r,a)||this.throw(`The requested module does not provide an export named "${a}".`,[o,s]),(this.$params.quantumMode?R:Reflect).set(i,u||a,R.get(r,a)),n.push([a,o,u])}!n.length||!this.$params.quantumMode||this.once(R.observe(r,a=>{for(let[o,,u]of n)for(let c of a)o==="*"?R.set(i,c.key,c.value):c.key===o&&R.set(i,u||o,c.value)}))}afterExecute(...t){return this.$params.sourceType==="module"&&this.$params.experimentalFeatures!==!1&&this.$params.exportNamespace&&(Le[this.$params.exportNamespace]=this.exports,this.once(()=>{delete Le[this.$params.exportNamespace]})),super.afterExecute(...t)}};G(Gt,"AutoAsyncIterator",Re),G(Gt,"AutoIterator",zt);function Me(e,t,i,r){let{env:s,functionParams:n=[],exportNamespace:a,fileName:o}=r,{parserParams:u,compilerParams:c,runtimeParams:l}=ci(r),f=Object.getOwnPropertyDescriptor(globalThis,"window")?.get?.toString().includes("[native code]")??!1,p=["async-script","module"].includes(e);if(e==="module")u.sourceType=e,u.allowAwaitOutsideFunction=!0;else if(["function","async-function"].includes(e)){let g=" "+i.split(`
|
|
12
12
|
`).join(`
|
|
13
13
|
`);i=`return ${e==="async-function"?"async ":""}function**(${n.join(", ")}) {
|
|
14
14
|
${g}
|