greybel-languageserver-browser 1.8.0 → 1.8.2
Sign up to get free protection for your applications and to get access to all the features.
- package/index.js +2 -2
- package/package.json +4 -4
package/index.js
CHANGED
@@ -92,7 +92,7 @@ ${e}
|
|
92
92
|
${n.length>0?`switch(token.value) {
|
93
93
|
${n}
|
94
94
|
}`:""}
|
95
|
-
return false;`);return Object.defineProperty(o,"name",{value:`selector_group_${t}`,writable:!1}),o.selectors=e,o}te.createSelectorGroup=$n;function MC(t){return t.selectors}te.getSelectorsFromGroup=MC;var Bn;(function(t){t.BlockEndOfLine="BlockEndOfLine",t.AssignmentEndOfExpr="AssignmentEndOfExpr",t.AssignmentShorthand="AssignmentShorthand",t.AssignmentCommandArgs="AssignmentCommandArgs",t.ReturnStatementEnd="ReturnStatementEnd",t.FunctionDeclarationArgEnd="FunctionDeclarationArgEnd",t.ComparisonOperators="ComparisonOperators",t.MultiDivOperators="MultiDivOperators",t.CallArgsEnd="CallArgsEnd"})(Bn=te.SelectorGroupType||(te.SelectorGroupType={}));te.SelectorGroups={BlockEndOfLine:$n(Bn.AssignmentEndOfExpr,[te.Selectors.EndOfLine,te.Selectors.Comment]),AssignmentEndOfExpr:$n(Bn.AssignmentEndOfExpr,[te.Selectors.EndOfFile,te.Selectors.EndOfLine,te.Selectors.Else,te.Selectors.Comment]),AssignmentShorthand:$n(Bn.AssignmentShorthand,[te.Selectors.AddShorthand,te.Selectors.SubtractShorthand,te.Selectors.MultiplyShorthand,te.Selectors.DivideShorthand,te.Selectors.PowerShorthand,te.Selectors.ModuloShorthand]),AssignmentCommandArgs:$n(Bn.AssignmentCommandArgs,[te.Selectors.ArgumentSeperator,te.Selectors.EndOfLine,te.Selectors.EndOfFile]),ReturnStatementEnd:$n(Bn.ReturnStatementEnd,[te.Selectors.EndOfLine,te.Selectors.Else,te.Selectors.Comment]),FunctionDeclarationArgEnd:$n(Bn.FunctionDeclarationArgEnd,[te.Selectors.RParenthesis,te.Selectors.EndOfFile,te.Selectors.EndOfLine]),ComparisonOperators:$n(Bn.ComparisonOperators,[te.Selectors.Equal,te.Selectors.NotEqual,te.Selectors.Greater,te.Selectors.GreaterEqual,te.Selectors.Lesser,te.Selectors.LessEqual]),MultiDivOperators:$n(Bn.MultiDivOperators,[te.Selectors.Times,te.Selectors.Divide,te.Selectors.Mod]),CallArgsEnd:$n(Bn.CallArgsEnd,[te.Selectors.ArgumentSeperator,te.Selectors.RParenthesis])}});var yg=T(Du=>{"use strict";Object.defineProperty(Du,"__esModule",{value:!0});Du.Stack=void 0;var gg=class{constructor(){this._items=[],this._last=null,this._default=null}setDefault(e){this._default=e}push(e){return this._items.push(this._last=e)}pop(){switch(this._items.length){case 0:return this._default;case 1:return this._last=null,this._items.pop()}let e=this._items.pop();return this._last=this._items[this._items.length-1],e}peek(){return this._last||this._default}};Du.Stack=gg});var xg=T(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.PendingWhile=je.isPendingWhile=je.PendingIf=je.isPendingIf=je.PendingFunction=je.isPendingFunction=je.PendingFor=je.isPendingFor=je.PendingChunk=je.isPendingChunk=je.PendingBlockType=void 0;var kn;(function(t){t[t.Chunk=0]="Chunk",t[t.For=1]="For",t[t.Function=2]="Function",t[t.If=3]="If",t[t.While=4]="While"})(kn=je.PendingBlockType||(je.PendingBlockType={}));var ti=class{constructor(e,r,n){this.lineRegistry=n,this.block=e,this.body=[],this.type=r,this.onComplete=null}complete(e){var r;(r=this.onComplete)===null||r===void 0||r.call(this,this)}};function qC(t){return t.type===kn.Chunk}je.isPendingChunk=qC;var bg=class extends ti{constructor(e,r){super(e,kn.Chunk,r)}complete(e){this.block.body=this.body,this.block.end=e.end,this.block.range=[this.block.range[0],e.range[1]],super.complete(e)}};je.PendingChunk=bg;function FC(t){return t.type===kn.For}je.isPendingFor=FC;var vg=class extends ti{constructor(e,r){super(e,kn.For,r),this.lineRegistry.addItemToLine(this.block.start.line,this.block)}complete(e){this.block.body=this.body,this.block.end=e.end,this.block.range=[this.block.range[0],e.range[1]],this.lineRegistry.addItemToLine(e.end.line,this.block),super.complete(e)}};je.PendingFor=vg;function NC(t){return t.type===kn.Function}je.isPendingFunction=NC;var _g=class extends ti{constructor(e,r,n){super(e,kn.Function,n),this.base=r,this.lineRegistry.addItemToLine(this.block.start.line,this.block)}complete(e){this.block.body=this.body,this.block.end=e.end,this.block.range=[this.block.range[0],e.range[1]],this.base!==null?(this.base.end=this.block.end,this.base.range[1]=this.block.range[1],this.lineRegistry.addItemToLine(this.base.end.line,this.base)):this.lineRegistry.addItemToLine(this.block.end.line,this.block),super.complete(e)}};je.PendingFunction=_g;function $C(t){return t.type===kn.If}je.isPendingIf=$C;var wg=class extends ti{constructor(e,r,n){super(e,kn.If,n),this.lineRegistry.addItemToLine(this.block.start.line,this.block),this.currentClause=r}addCurrentClauseToLineRegistry(){this.currentClause.start.line!==this.block.start.line&&this.lineRegistry.addItemToLine(this.currentClause.end.line,this.block)}next(e){this.currentClause.body=this.body,this.currentClause.end=e.end,this.currentClause.range=[this.currentClause.range[0],e.range[1]],this.addCurrentClauseToLineRegistry(),this.block.clauses.push(this.currentClause),super.complete(e),this.body=[]}complete(e){this.body.length>0&&this.next(e),this.block.end=e.end,this.block.range=[this.block.range[0],e.range[1]],this.lineRegistry.addItemToLine(this.block.end.line,this.block),super.complete(e)}};je.PendingIf=wg;function BC(t){return t.type===kn.While}je.isPendingWhile=BC;var Sg=class extends ti{constructor(e,r){super(e,kn.While,r),this.lineRegistry.addItemToLine(this.block.start.line,this.block)}complete(e){this.block.body=this.body,this.block.end=e.end,this.block.range=[this.block.range[0],e.range[1]],this.lineRegistry.addItemToLine(e.end.line,this.block),super.complete(e)}};je.PendingWhile=Sg});var Tg=T(Lu=>{"use strict";Object.defineProperty(Lu,"__esModule",{value:!0});Lu.LineRegistry=void 0;var kg=class{constructor(){this._lines={}}get lines(){return this._lines}addItemToLines(e){this.addItemToRange(e.start.line,e.end.line,e)}addItemToLine(e,r){this.addItemToRange(e,e,r)}addItemToRange(e,r,n){let i=this._lines;for(let s=e;s<=r;s++){let o=i[s];o?o.push(n):i[s]=[n]}}};Lu.LineRegistry=kg});var s0=T(Lo=>{"use strict";var i0=Lo&&Lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Lo,"__esModule",{value:!0});var UC=i0(um()),hs=Cr(),Xt=cg(),WC=i0(hg()),VC=lu(),Tt=is(),ir=os(),jt=as(),V=mg(),HC=yg(),Un=xg(),zC=Tg(),Ig=class{constructor(e,r={}){let n=this;n.content=e,n.backpatches=new HC.Stack,n.statementErrors=[],n.lexer=r.lexer||new UC.default(e,{unsafe:r.unsafe,tabWidth:r.tabWidth}),n.token=null,n.previousToken=null,n.lineRegistry=new zC.LineRegistry,n.scopes=[],n.currentScope=null,n.currentAssignment=null,n.outerScopes=[],n.literals=[],n.validator=r.validator||new WC.default,n.astProvider=r.astProvider||new Xt.ASTProvider,n.unsafe=r.unsafe||!1,n.errors=[]}next(){this.previousToken=this.token,this.token=this.lexer.next()}isType(e){return this.token!==null&&e===this.token.type}consume(e){return e(this.token)?(this.next(),!0):!1}consumeMany(e){return e(this.token)?(this.next(),!0):!1}requireType(e,r){let n=this.token;return this.token.type!==e?(this.raise(`got ${n} where ${e} is required`,new jt.Range(r||n.start,n.end)),null):(this.next(),n)}requireToken(e,r){let n=this.token;return e(n)?(this.next(),n):(this.raise(`got ${n} where "${(0,V.getSelectorValue)(e)}" is required`,new jt.Range(r||n.start,n.end)),null)}requireTokenOfAny(e,r){let n=this.token;return e(n)?(this.next(),n):(this.raise(`got ${n} where any of ${(0,V.getSelectorsFromGroup)(e).map(i=>`"${(0,V.getSelectorValue)(i)}"`).join(", ")} is required`,new jt.Range(r||n.start,n.end)),null)}skipNewlines(){var e;let r=this,n=0;for(;;){if(V.Selectors.Comment(r.token)){let i=((e=r.previousToken)===null||e===void 0?void 0:e.line)!==r.token.line,s=r.astProvider.comment({value:r.token.value,start:r.token.start,end:r.token.end,range:r.token.range,scope:r.currentScope,isStatement:i});r.lineRegistry.addItemToLines(s)}else if(V.Selectors.EndOfLine(r.token))n++;else break;r.next()}return n}pushScope(e){let r=this;r.currentScope!==null&&(r.scopes.push(e),r.outerScopes.push(r.currentScope)),r.currentScope=e}popScope(){let e=this;e.currentScope=e.outerScopes.pop()}tryToRecover(){let e=this,r=e.statementErrors[0];if(e.errors.push(r),!e.unsafe)throw r;for(e.lexer.recoverFromSnapshot(),e.next();e.token.type!==hs.TokenType.EOL&&e.token.type!==hs.TokenType.EOF;e.next());}finishRemaingScopes(){let e=this,r=e.backpatches.pop();for(;!(0,Un.isPendingChunk)(r);){let n=e.raise(`found open block ${r.block.type}`,new jt.Range(r.block.start,r.block.start));if(r.complete(e.previousToken),e.errors.push(n),!e.unsafe)throw n;r=e.backpatches.pop()}}parseChunk(){let e=this;e.next();let r=e.token.start,n=e.astProvider.chunk({start:r,end:null,range:[e.token.range[0],null]}),i=new Un.PendingChunk(n,e.lineRegistry);for(e.backpatches.setDefault(i),e.pushScope(n);!V.Selectors.EndOfFile(e.token)&&(e.skipNewlines(),!V.Selectors.EndOfFile(e.token));)e.lexer.recordSnapshot(),e.statementErrors=[],e.parseStatement(),e.statementErrors.length>0&&e.tryToRecover();return e.finishRemaingScopes(),e.popScope(),i.complete(e.token),n.literals=e.literals,n.scopes=e.scopes,n.lines=e.lineRegistry.lines,n}parseStatement(){let e=this;if(hs.TokenType.Keyword===e.token.type&&Tt.Keyword.Not!==e.token.value){e.parseKeyword();return}let r=e.backpatches.peek(),n=e.parseAssignment();n.end!==null&&e.lineRegistry.addItemToLines(n),r.body.push(n)}parseKeyword(){let e=this;switch(e.token.value){case Tt.Keyword.Return:{let n=e.backpatches.peek();e.next();let i=e.parseReturnStatement();i.end!==null&&e.lineRegistry.addItemToLines(i),n.body.push(i);return}case Tt.Keyword.If:{e.next(),e.parseIfStatement();return}case Tt.Keyword.ElseIf:{e.next(),e.nextIfClause(Xt.ASTType.ElseifClause);return}case Tt.Keyword.Else:{e.next(),e.nextIfClause(Xt.ASTType.ElseClause);return}case Tt.Keyword.While:{e.next(),e.parseWhileStatement();return}case Tt.Keyword.For:{e.next(),e.parseForStatement();return}case Tt.Keyword.EndFunction:{e.next(),e.finalizeFunction();return}case Tt.Keyword.EndFor:{e.next(),e.finalizeForStatement();return}case Tt.Keyword.EndWhile:{e.next(),e.finalizeWhileStatement();return}case Tt.Keyword.EndIf:{e.next(),e.nextIfClause(null);return}case Tt.Keyword.Continue:{let n=e.backpatches.peek();e.next();let i=e.astProvider.continueStatement({start:e.previousToken.start,end:e.previousToken.end,range:e.previousToken.range,scope:e.currentScope});e.lineRegistry.addItemToLines(i),n.body.push(i);return}case Tt.Keyword.Break:{let n=e.backpatches.peek();e.next();let i=e.astProvider.breakStatement({start:e.previousToken.start,end:e.previousToken.end,range:e.previousToken.range,scope:e.currentScope});e.lineRegistry.addItemToLines(i),n.body.push(i);return}}e.raise(`unexpected keyword ${e.token} at start of line`,new jt.Range(e.token.start,e.token.end))}parseShortcutStatement(){let e=this;if(hs.TokenType.Keyword===e.token.type&&Tt.Keyword.Not!==e.token.value)switch(e.token.value){case Tt.Keyword.Return:return e.next(),e.parseReturnStatement();case Tt.Keyword.Continue:return e.next(),e.astProvider.continueStatement({start:e.previousToken.start,end:e.previousToken.end,range:e.previousToken.range,scope:e.currentScope});case Tt.Keyword.Break:return e.next(),e.astProvider.breakStatement({start:e.previousToken.start,end:e.previousToken.end,range:e.previousToken.range,scope:e.currentScope});default:return e.raise(`unexpected keyword ${e.token} in shorthand statement`,new jt.Range(e.token.start,e.token.end)),e.parseInvalidCode()}return e.parseAssignment()}parseAssignment(){let e=this,r=e.currentScope,n=e.token,i=e.parseExpr(null,!0,!0);if(V.SelectorGroups.AssignmentEndOfExpr(e.token))return i;if(V.Selectors.Assign(e.token)){e.next();let o=e.astProvider.assignmentStatement({variable:i,init:null,start:n.start,range:[n.range[0],null],end:null,scope:r}),l=e.currentAssignment;return e.currentAssignment=o,o.init=e.parseExpr(o),o.end=e.previousToken.end,o.range[1]=e.previousToken.range[1],e.currentAssignment=l,r.definitions.push(o),o}else if(V.SelectorGroups.AssignmentShorthand(e.token)){let o=e.token;e.next();let l=e.astProvider.assignmentStatement({variable:i,init:null,start:n.start,range:[n.range[0],null],end:null,scope:r}),u=e.currentAssignment;e.currentAssignment=l;let a=e.token,c=o.value.charAt(0),p=e.parseExpr(l),d=e.astProvider.parenthesisExpression({start:p.start,end:p.end,range:p.range,expression:p});return l.init=e.astProvider.binaryExpression({operator:c,left:i.clone(),right:d,start:a.start,end:e.previousToken.end,range:[a.range[0],e.previousToken.range[1]],scope:r}),l.end=e.previousToken.end,l.range[1]=e.previousToken.range[1],e.currentAssignment=u,r.definitions.push(l),l}let s=[];for(;!V.Selectors.EndOfFile(e.token);){let o=e.parseExpr(null);if(s.push(o),V.SelectorGroups.BlockEndOfLine(e.token)||V.Selectors.Else(e.token))break;if(V.Selectors.ArgumentSeperator(e.token)){e.next(),e.skipNewlines();continue}let l=e.requireTokenOfAny(V.SelectorGroups.AssignmentCommandArgs,n.start);if(V.Selectors.EndOfLine(l)||V.Selectors.EndOfFile(l))break}return s.length===0?e.astProvider.callStatement({expression:i,start:n.start,end:e.previousToken.end,range:[n.range[0],e.previousToken.range[1]],scope:r}):e.astProvider.callStatement({expression:e.astProvider.callExpression({base:i,arguments:s,start:n.start,end:e.previousToken.end,range:[n.range[0],e.previousToken.range[1]],scope:r}),start:n.start,end:e.previousToken.end,range:[n.range[0],e.previousToken.range[1]],scope:r})}parseReturnStatement(){let e=this,r=e.currentScope,n=e.previousToken,i=null,s=e.astProvider.returnStatement({argument:null,start:n.start,end:null,range:[n.range[0],null],scope:r});return V.SelectorGroups.ReturnStatementEnd(e.token)?(s.end=e.previousToken.end,s.range[1]=e.previousToken.range[1]):(i=e.parseExpr(s),s.end=e.previousToken.end,s.range[1]=e.previousToken.range[1],s.argument=i),r.returns.push(s),s}parseIfStatement(){let e=this,r=e.previousToken,n=e.parseExpr(null);if(e.lineRegistry.addItemToLines(n),e.requireToken(V.Selectors.Then,r.start),!V.SelectorGroups.BlockEndOfLine(e.token)){e.parseIfShortcutStatement(n,r);return}let i=e.astProvider.ifStatement({clauses:[],start:r.start,end:null,range:[r.range[0],null],scope:e.currentScope}),s=e.astProvider.ifClause({condition:n,start:r.start,end:e.token.end,range:[r.range[0],e.token.range[1]],scope:e.currentScope}),o=new Un.PendingIf(i,s,e.lineRegistry);e.backpatches.push(o)}nextIfClause(e){let r=this,n=r.backpatches.peek();if(!(0,Un.isPendingIf)(n)){r.raise("no matching open if block",new jt.Range(r.token.start,r.token.end));return}switch(n.next(r.previousToken),e){case Xt.ASTType.ElseifClause:{let i=r.token,s=r.parseExpr(null);r.requireToken(V.Selectors.Then,i.start),n.currentClause=r.astProvider.elseifClause({condition:s,start:i.start,end:null,range:[i.range[0],null],scope:r.currentScope});break}case Xt.ASTType.ElseClause:{let i=r.token;n.currentClause=r.astProvider.elseClause({start:i.start,end:null,range:[i.range[0],null],scope:r.currentScope});break}}e===null&&(n.complete(r.previousToken),r.backpatches.pop(),r.backpatches.peek().body.push(n.block))}parseIfShortcutStatement(e,r){let n=this,i=[],s=n.backpatches.peek(),o=n.astProvider.ifShortcutStatement({clauses:i,start:r.start,end:null,range:[r.range[0],null],scope:n.currentScope}),l=n.parseShortcutStatement();if(i.push(n.astProvider.ifShortcutClause({condition:e,body:[l],start:r.start,end:n.token.end,range:[r.range[0],n.token.range[1]],scope:n.currentScope})),V.Selectors.Else(n.token)){n.next();let u=n.token,a=n.parseShortcutStatement();i.push(n.astProvider.elseShortcutClause({body:[a],start:u.start,end:n.token.end,range:[u.range[0],n.token.range[1]],scope:n.currentScope}))}o.end=n.token.end,o.range[1]=n.token.range[1],n.lineRegistry.addItemToLines(o),s.body.push(o)}parseWhileStatement(){let e=this,r=e.previousToken,n=e.parseExpr(null);if(!n){e.raise("while requires a condition",new jt.Range(r.start,e.token.end));return}if(!V.SelectorGroups.BlockEndOfLine(e.token))return e.parseWhileShortcutStatement(n,r);let i=e.astProvider.whileStatement({condition:n,start:r.start,end:null,range:[r.range[0],null],scope:e.currentScope}),s=new Un.PendingWhile(i,e.lineRegistry);e.backpatches.push(s)}finalizeWhileStatement(){let e=this,r=e.backpatches.peek();if(!(0,Un.isPendingWhile)(r)){e.raise("no matching open while block",new jt.Range(e.token.start,e.token.end));return}r.complete(e.previousToken),e.backpatches.pop(),e.backpatches.peek().body.push(r.block)}parseWhileShortcutStatement(e,r){let n=this,i=n.backpatches.peek(),s=n.parseShortcutStatement(),o=n.astProvider.whileStatement({condition:e,body:[s],start:r.start,end:n.previousToken.end,range:[r.range[0],n.previousToken.range[1]],scope:n.currentScope});n.lineRegistry.addItemToLines(o),i.body.push(o)}parseForStatement(){let e=this,r=e.currentScope,n=e.previousToken,i=e.parseIdentifier(Xt.ASTIdentifierKind.ForInVariable);e.requireToken(V.Selectors.In,n.start);let s=e.parseExpr(null);if(!s){e.raise("sequence expression expected for 'for' loop",new jt.Range(n.start,e.token.end));return}if(!V.SelectorGroups.BlockEndOfLine(e.token))return e.parseForShortcutStatement(i,s,n);let o=e.astProvider.forGenericStatement({variable:i,iterator:s,start:n.start,end:e.previousToken.end,range:[n.range[0],e.previousToken.range[1]],scope:r});r.definitions.push(o);let l=new Un.PendingFor(o,e.lineRegistry);e.backpatches.push(l)}finalizeForStatement(){let e=this,r=e.backpatches.peek();if(!(0,Un.isPendingFor)(r)){e.raise("no matching open for block",new jt.Range(e.token.start,e.token.end));return}r.complete(e.previousToken),e.backpatches.pop(),e.backpatches.peek().body.push(r.block)}parseForShortcutStatement(e,r,n){let i=this,s=i.currentScope,o=i.backpatches.peek(),l=i.parseShortcutStatement(),u=i.astProvider.forGenericStatement({variable:e,iterator:r,body:[l],start:n.start,end:i.previousToken.end,range:[n.range[0],i.previousToken.range[1]],scope:i.currentScope});s.definitions.push(u),i.lineRegistry.addItemToLines(u),o.body.push(u)}parseExpr(e,r=!1,n=!1){return this.parseFunctionDeclaration(e,r,n)}parseFunctionDeclaration(e,r=!1,n=!1){let i=this;if(!V.Selectors.Function(i.token))return i.parseOr(r,n);i.next();let s=i.previousToken,o=i.astProvider.functionStatement({start:s.start,end:null,range:[s.range[0],null],scope:i.currentScope,parent:i.outerScopes[i.outerScopes.length-1],assignment:i.currentAssignment}),l=[];if(i.pushScope(o),!V.SelectorGroups.BlockEndOfLine(i.token)){for(i.requireToken(V.Selectors.LParenthesis,s.start);!V.SelectorGroups.FunctionDeclarationArgEnd(i.token);){let a=i.parseIdentifier(Xt.ASTIdentifierKind.Argument),c=a;if(i.consume(V.Selectors.Assign)){let p=i.parseExpr(null);if(p instanceof Xt.ASTLiteral){let d=i.astProvider.assignmentStatement({variable:a,init:p,start:c.start,end:i.previousToken.end,range:[c.range[0],i.previousToken.range[1]],scope:i.currentScope});i.currentScope.definitions.push(d),l.push(d)}else i.raise("parameter default value must be a literal value",new jt.Range(c.start,i.token.end)),l.push(i.astProvider.invalidCodeExpression({start:c.start,end:i.previousToken.end,range:[c.range[0],i.previousToken.range[1]]}))}else{let p=i.astProvider.assignmentStatement({variable:a,init:i.astProvider.unknown({start:c.start,end:i.previousToken.end,range:[c.range[0],i.previousToken.range[1]],scope:i.currentScope}),start:c.start,end:i.previousToken.end,range:[c.range[0],i.previousToken.range[1]],scope:i.currentScope});i.currentScope.definitions.push(p),l.push(a)}if(V.Selectors.RParenthesis(i.token))break;if(i.requireToken(V.Selectors.ArgumentSeperator,s.start),V.Selectors.RParenthesis(i.token)){i.raise("expected argument instead received right parenthesis",new jt.Range(i.previousToken.end,i.previousToken.end));break}}i.requireToken(V.Selectors.RParenthesis,s.start)}o.parameters=l;let u=new Un.PendingFunction(o,e,i.lineRegistry);return i.backpatches.push(u),o}finalizeFunction(){let e=this,r=e.backpatches.peek();if(!(0,Un.isPendingFunction)(r)){e.raise("no matching open function block",new jt.Range(e.token.start,e.token.end));return}e.popScope(),r.complete(e.previousToken),e.backpatches.pop()}parseOr(e=!1,r=!1){let n=this,i=n.token,o=n.parseAnd(e,r);for(;V.Selectors.Or(n.token);){n.next(),n.skipNewlines();let l=n.parseAnd();o=n.astProvider.logicalExpression({operator:ir.Operator.Or,left:o,right:l,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return o}parseAnd(e=!1,r=!1){let n=this,i=n.token,o=n.parseNot(e,r);for(;V.Selectors.And(n.token);){n.next(),n.skipNewlines();let l=n.parseNot();o=n.astProvider.logicalExpression({operator:ir.Operator.And,left:o,right:l,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return o}parseNot(e=!1,r=!1){let n=this,i=n.token;if(V.Selectors.Not(n.token)){n.next(),n.skipNewlines();let s=n.parseIsa();return n.astProvider.unaryExpression({operator:ir.Operator.Not,argument:s,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return n.parseIsa(e,r)}parseIsa(e=!1,r=!1){let n=this,i=n.token,s=n.parseComparisons(e,r);if(V.Selectors.Isa(n.token)){n.next(),n.skipNewlines();let o=n.parseComparisons();return n.astProvider.isaExpression({operator:ir.Operator.Isa,left:s,right:o,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return s}parseComparisons(e=!1,r=!1){let n=this,i=n.token,s=n.parseAddSub(e,r);if(!V.SelectorGroups.ComparisonOperators(n.token))return s;let o=[s],l=[];do{let u=n.token;n.next(),n.skipNewlines();let a=n.parseAddSub();l.push(u.value),o.push(a)}while(V.SelectorGroups.ComparisonOperators(n.token));return l.length===1?n.astProvider.binaryExpression({operator:l[0],left:o[0],right:o[1],start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope}):n.astProvider.comparisonGroupExpression({operators:l,expressions:o,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}parseAddSub(e=!1,r=!1){let n=this,i=n.token,o=n.parseMultDiv(e,r);for(;V.Selectors.Plus(n.token)||V.Selectors.Minus(n.token)&&(!r||!n.token.afterSpace||n.lexer.isAtWhitespace());){let l=n.token;n.next(),n.skipNewlines();let u=n.parseMultDiv();o=n.astProvider.binaryExpression({operator:l.value,left:o,right:u,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return o}parseMultDiv(e=!1,r=!1){let n=this,i=n.token,o=n.parseUnaryMinus(e,r);for(;V.SelectorGroups.MultiDivOperators(n.token);){let l=n.token;n.next(),n.skipNewlines();let u=n.parseUnaryMinus();o=n.astProvider.binaryExpression({operator:l.value,left:o,right:u,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return o}parseUnaryMinus(e=!1,r=!1){let n=this;if(!V.Selectors.Minus(n.token))return n.parseNew(e,r);let i=n.token;n.next(),n.skipNewlines();let s=n.parseNew();return s instanceof Xt.ASTNumericLiteral||s instanceof Xt.ASTBooleanLiteral?(s.negated=!0,s):n.astProvider.unaryExpression({operator:ir.Operator.Minus,argument:s,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}parseNew(e=!1,r=!1){let n=this;if(!V.Selectors.New(n.token))return n.parseAddressOf(e,r);let i=n.token;n.next(),n.skipNewlines();let s=n.parseNew();return n.astProvider.unaryExpression({operator:ir.Operator.New,argument:s,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}parseAddressOf(e=!1,r=!1){let n=this;if(!V.Selectors.Reference(n.token))return n.parsePower(e,r);let i=n.token;n.next(),n.skipNewlines();let s=n.parsePower(!0,r);return n.astProvider.unaryExpression({operator:ir.Operator.Reference,argument:s,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}parsePower(e=!1,r=!1){let n=this,i=n.token,s=n.parseCallExpr(e,r);if(V.Selectors.Power(n.token)){n.next(),n.skipNewlines();let o=n.parseCallExpr();return n.astProvider.binaryExpression({operator:ir.Operator.Power,left:s,right:o,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return s}parseCallExpr(e=!1,r=!1){let n=this,i=n.token,s=n.parseMap(e,r);for(;!V.Selectors.EndOfFile(n.token);)if(V.Selectors.MemberSeperator(n.token)){n.next(),n.skipNewlines();let o=n.parseIdentifier(Xt.ASTIdentifierKind.Property),l=n.astProvider.memberExpression({base:s,indexer:ir.Operator.Member,identifier:o,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope});n.currentScope.namespaces.push(l),s=l}else if(V.Selectors.SLBracket(n.token)&&!n.token.afterSpace){if(n.next(),n.skipNewlines(),V.Selectors.SliceSeperator(n.token)){let o=n.astProvider.emptyExpression({start:n.previousToken.start,end:n.previousToken.end,range:n.previousToken.range,scope:n.currentScope});n.next(),n.skipNewlines();let l=V.Selectors.SRBracket(n.token)?n.astProvider.emptyExpression({start:n.previousToken.start,end:n.previousToken.end,range:n.previousToken.range,scope:n.currentScope}):n.parseExpr(null);s=n.astProvider.sliceExpression({base:s,left:o,right:l,start:i.start,end:n.token.end,range:[i.range[0],n.token.range[1]],scope:n.currentScope})}else{let o=n.parseExpr(null);if(V.Selectors.SliceSeperator(n.token)){n.next(),n.skipNewlines();let l=V.Selectors.SRBracket(n.token)?n.astProvider.emptyExpression({start:n.previousToken.start,end:n.previousToken.end,range:n.previousToken.range,scope:n.currentScope}):n.parseExpr(null);s=n.astProvider.sliceExpression({base:s,left:o,right:l,start:i.start,end:n.token.end,range:[i.range[0],n.token.range[1]],scope:n.currentScope})}else s=n.astProvider.indexExpression({base:s,index:o,isStatementStart:r,start:i.start,end:n.token.end,range:[i.range[0],n.token.range[1]],scope:n.currentScope})}n.requireToken(V.Selectors.SRBracket,i.start)}else if(V.Selectors.LParenthesis(n.token)&&(!e||!n.token.afterSpace)){let o=n.parseCallArgs();s=n.astProvider.callExpression({base:s,arguments:o,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}else break;return s}parseCallArgs(){let e=this,r=[];if(V.Selectors.LParenthesis(e.token))if(e.next(),V.Selectors.RParenthesis(e.token))e.next();else for(;!V.Selectors.EndOfFile(e.token);){e.skipNewlines();let n=e.parseExpr(null);if(r.push(n),e.skipNewlines(),V.Selectors.RParenthesis(e.requireTokenOfAny(V.SelectorGroups.CallArgsEnd,n.start)))break}return r}parseMap(e=!1,r=!1){let n=this;if(!V.Selectors.CLBracket(n.token))return n.parseList(e,r);let i=n.currentScope,s=n.token,o=[],l=n.astProvider.mapConstructorExpression({fields:o,start:s.start,end:null,range:[s.range[0],null],scope:i});if(n.next(),V.Selectors.CRBracket(n.token))n.next();else for(n.skipNewlines();!V.Selectors.EndOfFile(n.token);){if(V.Selectors.CRBracket(n.token)){n.next();break}let u=n.astProvider.mapKeyString({key:null,value:null,start:n.token.start,end:null,range:[n.token.range[0],null],scope:i});if(u.key=n.parseExpr(null),n.requireToken(V.Selectors.MapKeyValueSeperator),n.skipNewlines(),u.value=n.parseExpr(u),u.end=n.previousToken.end,u.range[1]=n.previousToken.range[1],o.push(u),V.Selectors.MapSeperator(n.token)&&(n.next(),n.skipNewlines()),V.Selectors.CRBracket(n.token)){n.next();break}}return l.end=n.token.start,l.range[1]=n.token.range[1],l}parseList(e=!1,r=!1){let n=this;if(!V.Selectors.SLBracket(n.token))return n.parseQuantity(e,r);let i=n.currentScope,s=n.token,o=[],l=n.astProvider.listConstructorExpression({fields:o,start:s.start,end:null,range:[s.range[0],null],scope:i});if(n.next(),V.Selectors.SRBracket(n.token))n.next();else for(n.skipNewlines();!V.Selectors.EndOfFile(n.token);){if(V.Selectors.SRBracket(n.token)){n.next();break}let u=n.astProvider.listValue({value:null,start:n.token.start,end:null,range:[n.token.range[0],null],scope:i});if(u.value=n.parseExpr(u),u.end=n.previousToken.end,u.range[1]=n.previousToken.range[1],o.push(u),V.Selectors.MapSeperator(n.token)&&(n.next(),n.skipNewlines()),V.Selectors.SRBracket(n.token)){n.next();break}}return l.end=n.token.start,l.range[1]=n.token.range[1],l}parseQuantity(e=!1,r=!1){let n=this;if(!V.Selectors.LParenthesis(n.token))return n.parseAtom(e,r);let i=n.token;n.next(),n.skipNewlines();let s=n.parseExpr(null);return n.requireToken(V.Selectors.RParenthesis,i.start),n.astProvider.parenthesisExpression({expression:s,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}parseAtom(e=!1,r=!1){let n=this;return n.validator.isLiteral(n.token.type)?n.parseLiteral():n.isType(hs.TokenType.Identifier)?n.parseIdentifier(Xt.ASTIdentifierKind.Variable):(n.raise(`got ${n.token} where number, string, or identifier is required`,new jt.Range(n.token.start,n.token.end)),n.parseInvalidCode())}parseLiteral(){let e=this,r=e.token,n=e.token.type,i=e.astProvider.literal(n,{value:e.token.value,raw:e.token.raw,start:r.start,end:e.token.end,range:[r.range[0],e.token.range[1]],scope:e.currentScope});return e.literals.push(i),e.next(),i}parseIdentifier(e){let r=this,n=r.requireType(hs.TokenType.Identifier);if(n===null)return r.parseInvalidCode();let i=r.astProvider.identifier({kind:e,name:n.value,start:n.start,end:n.end,range:n.range,scope:r.currentScope});return e!==Xt.ASTIdentifierKind.Property&&r.currentScope.namespaces.push(i),i}parseInvalidCode(){let e=this,r=e.token,n=e.astProvider.invalidCodeExpression({start:r.start,end:r.end,range:r.range});return e.next(),n}raise(e,r){let n=this,i=new VC.ParserException(e,r);return n.statementErrors.push(i),i}};Lo.default=Ig});var pe=T(ge=>{"use strict";var KC=ge&&ge.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),Tn=ge&&ge.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&KC(e,t,r)},ju=ge&&ge.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ge,"__esModule",{value:!0});ge.ASTRange=ge.ASTPosition=ge.LineRegistry=ge.ParserValidatorm=ge.Parser=ge.LexerValidator=ge.Lexer=void 0;var GC=um();Object.defineProperty(ge,"Lexer",{enumerable:!0,get:function(){return ju(GC).default}});Tn(Cr(),ge);var YC=Xf();Object.defineProperty(ge,"LexerValidator",{enumerable:!0,get:function(){return ju(YC).default}});var JC=s0();Object.defineProperty(ge,"Parser",{enumerable:!0,get:function(){return ju(JC).default}});Tn(cg(),ge);var QC=hg();Object.defineProperty(ge,"ParserValidatorm",{enumerable:!0,get:function(){return ju(QC).default}});var ZC=Tg();Object.defineProperty(ge,"LineRegistry",{enumerable:!0,get:function(){return ZC.LineRegistry}});Tn(xg(),ge);Tn(yg(),ge);Tn(om(),ge);Tn(au(),ge);Tn(lu(),ge);Tn(is(),ge);Tn(nm(),ge);Tn(os(),ge);var XC=rs();Object.defineProperty(ge,"ASTPosition",{enumerable:!0,get:function(){return XC.Position}});var eA=as();Object.defineProperty(ge,"ASTRange",{enumerable:!0,get:function(){return eA.Range}});Tn(mg(),ge)});var jo=T(Mu=>{"use strict";Object.defineProperty(Mu,"__esModule",{value:!0});Mu.isValidIdentifierLiteral=void 0;var tA=pe(),nA=t=>{if(t.type!==tA.ASTType.StringLiteral)return!1;let e=t.value.toString();return/^[_a-z][_a-z0-9]*$/i.test(e)};Mu.isValidIdentifierLiteral=nA});var Eg=T(Lr=>{"use strict";Object.defineProperty(Lr,"__esModule",{value:!0});Lr.getStringHashCode=Lr.getHashCode=Lr.rotateBits=void 0;function rA(t){return t>>1|t<<31}Lr.rotateBits=rA;function iA(t,e=0){let r=t>>>0;return r=(r>>16^r)*73244475,r=(r>>16^r)*73244475,r=r>>16^r,(e<<5)-e+r|0}Lr.getHashCode=iA;Lr.getStringHashCode=function(){let t=new Map,e=r=>{let n,i;for(n=0,i=0;n<r.length;n++)i=Math.imul(31,i)+r.charCodeAt(n)|0;return i};return r=>{if(r.length===0)return 0;let n=t.get(r);if(n!==void 0)return n;let i=e(r);return t.set(r,i),i}}()});var o0=T(qu=>{"use strict";Object.defineProperty(qu,"__esModule",{value:!0});qu.createExpressionHash=void 0;var Re=pe(),it=Eg(),sA=jo(),It=(t,e)=>t.$$hash=e,oA=t=>{var e;return(e=t.$$hash)!=null?e:null};function $e(t){let e=oA(t);if(e!==null)return e;let r=(0,it.getStringHashCode)(t.type);switch(t.type){case Re.ASTType.BinaryExpression:{let n=t;return r^=(0,it.getStringHashCode)(n.operator),r^=$e(n.left),r^=$e(n.right),It(t,r)}case Re.ASTType.LogicalExpression:{let n=t;return r^=(0,it.getStringHashCode)(n.operator),r^=$e(n.left),r^=$e(n.right),It(t,r)}case Re.ASTType.IsaExpression:{let n=t;return r^=(0,it.getStringHashCode)(n.operator),r^=$e(n.left),r^=$e(n.right),It(t,r)}case Re.ASTType.ComparisonGroupExpression:{let n=t;for(let i=0;i<n.expressions.length;i++)r^=$e(n.expressions[i]);for(let i=0;i<n.operators.length;i++)r^=(0,it.getStringHashCode)(n.operators[i]);return It(t,r)}case Re.ASTType.FunctionDeclaration:{let n=t;r^=(0,it.getHashCode)(n.parameters.length);for(let i=0;i<n.parameters.length;i++){let s=n.parameters[i];if(s.type===Re.ASTType.Identifier){r^=(0,it.getStringHashCode)(s.name);continue}let o=s;r^=(0,it.getStringHashCode)(o.variable.name),r^=$e(o.init)}return It(t,r)}case Re.ASTType.ParenthesisExpression:return $e(t.expression);case Re.ASTType.MemberExpression:{let n=t;if(n.base.type===Re.ASTType.Identifier){let i=n.base.name;if(i==="globals"||i==="locals"||i==="outer")return r=(0,it.getStringHashCode)(Re.ASTType.Identifier),r^=(0,it.getStringHashCode)(n.identifier.name),It(t,r)}return r^=$e(n.base),r^=$e(n.identifier),It(t,r)}case Re.ASTType.IndexExpression:{let n=t;if((0,sA.isValidIdentifierLiteral)(n.index)){if(n.base.type===Re.ASTType.Identifier){let s=n.base.name;if(s==="globals"||s==="locals"||s==="outer")return r=(0,it.getStringHashCode)(Re.ASTType.Identifier),r^=(0,it.getStringHashCode)(n.index.value.toString()),It(t,r)}r=(0,it.getStringHashCode)(Re.ASTType.MemberExpression),r^=$e(n.base);let i=(0,it.getStringHashCode)(Re.ASTType.Identifier);i^=(0,it.getStringHashCode)(n.index.value.toString()),r^=i}else r^=$e(n.base),r^=$e(n.index);return It(t,r)}case Re.ASTType.CallExpression:{let n=t;r^=$e(n.base),r^=(0,it.getHashCode)(n.arguments.length);for(let i=0;i<n.arguments.length;i++){let s=n.arguments[i];r^=$e(s)}return It(t,r)}case Re.ASTType.NegationExpression:case Re.ASTType.BinaryNegatedExpression:case Re.ASTType.UnaryExpression:{let n=t;return r^=n.operator?(0,it.getStringHashCode)(n.operator):1,r^=$e(n.argument),It(t,r)}case Re.ASTType.Identifier:{let n=t;return r^=(0,it.getStringHashCode)(n.name),It(t,r)}case Re.ASTType.BooleanLiteral:case Re.ASTType.NumericLiteral:case Re.ASTType.StringLiteral:case Re.ASTType.NilLiteral:return r^=(0,it.getStringHashCode)(t.value.toString()),It(t,r);case Re.ASTType.MapConstructorExpression:{let n=t;r^=(0,it.getHashCode)(n.fields.length);for(let i=0;i<n.fields.length;i++){let s=n.fields[i];r^=$e(s.key),r^=$e(s.value)}return It(t,r)}case Re.ASTType.ListConstructorExpression:{let n=t;r^=(0,it.getHashCode)(n.fields.length);for(let i=0;i<n.fields.length;i++){let s=n.fields[i];r^=$e(s.value)}return It(t,r)}case Re.ASTType.SliceExpression:{let n=t;return r^=$e(n.base),r^=$e(n.left),r^=$e(n.right),It(t,r)}}return It(t,r)}function aA(t){return $e(t)}qu.createExpressionHash=aA});var Rg=T(Fu=>{"use strict";Object.defineProperty(Fu,"__esModule",{value:!0});Fu.createExpressionId=void 0;var st=pe(),lA=jo(),pt=(t,e)=>t.$$id=e,uA=t=>{var e;return(e=t.$$id)!=null?e:null};function Me(t){let e=uA(t);if(e!==null)return e;switch(t.type){case st.ASTType.BinaryExpression:{let r=t;return pt(t,Me(r.left)+r.operator+Me(r.right))}case st.ASTType.LogicalExpression:{let r=t;return pt(t,Me(r.left)+r.operator+Me(r.right))}case st.ASTType.IsaExpression:{let r=t;return pt(t,Me(r.left)+r.operator+Me(r.right))}case st.ASTType.ComparisonGroupExpression:{let r=t,n=r.expressions.map(s=>Me(s)),i=[n[0]];for(let s=0;s<r.operators.length;s++)i.push(r.operators[s],n[s+1]);return pt(t,i.join(" "))}case st.ASTType.FunctionDeclaration:{let r=t,n="function",i=[];for(let s=0;s<r.parameters.length;s++){let o=r.parameters[s];if(o.type===st.ASTType.Identifier){i.push(o.name);continue}let l=o;i.push(l.variable.name+"="+Me(l.init))}return i.length>0&&(n+="("+i.join(",")+")"),pt(t,n)}case st.ASTType.ParenthesisExpression:return pt(t,Me(t.expression));case st.ASTType.MemberExpression:{let r=t;return pt(t,Me(r.base)+"."+r.identifier.name)}case st.ASTType.IndexExpression:{let r=t;return(0,lA.isValidIdentifierLiteral)(r.index)?pt(t,Me(r.base)+"."+r.index.value.toString()):pt(t,Me(r.base)+"["+Me(r.index)+"]")}case st.ASTType.CallExpression:{let r=t,n=Me(r.base),i=[];for(let s=0;s<r.arguments.length;s++){let o=r.arguments[s];i.push(Me(o))}return i.length>0&&(n+="("+i.join(",")+")"),pt(t,n)}case st.ASTType.NegationExpression:case st.ASTType.BinaryNegatedExpression:case st.ASTType.UnaryExpression:{let r=t;return r.operator==null?pt(t,Me(r.argument)):r.operator==="@"?pt(t,r.operator+Me(r.argument)):pt(t,r.operator+" "+Me(r.argument))}case st.ASTType.Identifier:return pt(t,t.name);case st.ASTType.NumericLiteral:case st.ASTType.BooleanLiteral:case st.ASTType.StringLiteral:case st.ASTType.NilLiteral:return pt(t,t.raw.toString());case st.ASTType.MapConstructorExpression:{let r=t,n=[];for(let i=0;i<r.fields.length;i++){let s=r.fields[i];n.push(Me(s.key)+":"+Me(s.value))}return pt(t,"{"+n.join(",")+"}")}case st.ASTType.ListConstructorExpression:{let r=t,n=[];for(let i=0;i<r.fields.length;i++){let s=r.fields[i];n.push(Me(s.value))}return pt(t,"["+n.join(",")+"]")}case st.ASTType.SliceExpression:{let r=t;return pt(t,Me(r.base)+"["+Me(r.left)+":"+Me(r.right)+"]")}}return pt(t,"")}function cA(t){return Me(t)}Fu.createExpressionId=cA});var fs=T(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.Markers=void 0;var pA;(function(t){t.start="/**",t.nostart="/***",t.delim="*",t.end="*/"})(pA=Mo.Markers||(Mo.Markers={}))});var In=T(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.rewireSpecs=Ye.rewireSource=Ye.seedTokens=Ye.seedSpec=Ye.seedBlock=Ye.splitLines=Ye.splitSpace=Ye.splitCR=Ye.hasCR=Ye.isSpace=void 0;function dA(t){return/^\s+$/.test(t)}Ye.isSpace=dA;function hA(t){return/\r$/.test(t)}Ye.hasCR=hA;function fA(t){let e=t.match(/\r+$/);return e==null?["",t]:[t.slice(-e[0].length),t.slice(0,-e[0].length)]}Ye.splitCR=fA;function mA(t){let e=t.match(/^\s+/);return e==null?["",t]:[t.slice(0,e[0].length),t.slice(e[0].length)]}Ye.splitSpace=mA;function gA(t){return t.split(/\n/)}Ye.splitLines=gA;function yA(t={}){return Object.assign({description:"",tags:[],source:[],problems:[]},t)}Ye.seedBlock=yA;function bA(t={}){return Object.assign({tag:"",name:"",type:"",optional:!1,description:"",problems:[],source:[]},t)}Ye.seedSpec=bA;function vA(t={}){return Object.assign({start:"",delimiter:"",postDelimiter:"",tag:"",postTag:"",name:"",postName:"",type:"",postType:"",description:"",end:"",lineEnd:""},t)}Ye.seedTokens=vA;function _A(t){let e=t.source.reduce((r,n)=>r.set(n.number,n),new Map);for(let r of t.tags)r.source=r.source.map(n=>e.get(n.number));return t}Ye.rewireSource=_A;function wA(t){let e=t.tags.reduce((r,n)=>n.source.reduce((i,s)=>i.set(s.number,s),r),new Map);return t.source=t.source.map(r=>e.get(r.number)||r),t}Ye.rewireSpecs=wA});var a0=T(Pg=>{"use strict";Object.defineProperty(Pg,"__esModule",{value:!0});var SA=/^@\S+/;function xA({fence:t="```"}={}){let e=kA(t),r=(n,i)=>e(n)?!i:i;return function(i){let s=[[]],o=!1;for(let l of i)SA.test(l.tokens.description)&&!o?s.push([l]):s[s.length-1].push(l),o=r(l.tokens.description,o);return s}}Pg.default=xA;function kA(t){return typeof t=="string"?e=>e.split(t).length%2===0:t}});var l0=T(Cg=>{"use strict";Object.defineProperty(Cg,"__esModule",{value:!0});var TA=fs(),qo=In();function IA({startLine:t=0,markers:e=TA.Markers}={}){let r=null,n=t;return function(s){let o=s,l=(0,qo.seedTokens)();if([l.lineEnd,o]=(0,qo.splitCR)(o),[l.start,o]=(0,qo.splitSpace)(o),r===null&&o.startsWith(e.start)&&!o.startsWith(e.nostart)&&(r=[],l.delimiter=o.slice(0,e.start.length),o=o.slice(e.start.length),[l.postDelimiter,o]=(0,qo.splitSpace)(o)),r===null)return n++,null;let u=o.trimRight().endsWith(e.end);if(l.delimiter===""&&o.startsWith(e.delim)&&!o.startsWith(e.end)&&(l.delimiter=e.delim,o=o.slice(e.delim.length),[l.postDelimiter,o]=(0,qo.splitSpace)(o)),u){let a=o.trimRight();l.end=o.slice(a.length-e.end.length),o=a.slice(0,-e.end.length)}if(l.description=o,r.push({number:n,source:s,tokens:l}),n++,u){let a=r.slice();return r=null,a}return null}}Cg.default=IA});var u0=T(Ag=>{"use strict";Object.defineProperty(Ag,"__esModule",{value:!0});var EA=In();function RA({tokenizers:t}){return function(r){var n;let i=(0,EA.seedSpec)({source:r});for(let s of t)if(i=s(i),!((n=i.problems[i.problems.length-1])===null||n===void 0)&&n.critical)break;return i}}Ag.default=RA});var Dg=T(Og=>{"use strict";Object.defineProperty(Og,"__esModule",{value:!0});function PA(){return t=>{let{tokens:e}=t.source[0],r=e.description.match(/\s*(@(\S+))(\s*)/);return r===null?(t.problems.push({code:"spec:tag:prefix",message:'tag should start with "@" symbol',line:t.source[0].number,critical:!0}),t):(e.tag=r[1],e.postTag=r[3],e.description=e.description.slice(r[0].length),t.tag=r[2],t)}}Og.default=PA});var jg=T(Lg=>{"use strict";Object.defineProperty(Lg,"__esModule",{value:!0});var CA=In();function AA(t="compact"){let e=DA(t);return r=>{let n=0,i=[];for(let[l,{tokens:u}]of r.source.entries()){let a="";if(l===0&&u.description[0]!=="{")return r;for(let c of u.description)if(c==="{"&&n++,c==="}"&&n--,a+=c,n===0)break;if(i.push([u,a]),n===0)break}if(n!==0)return r.problems.push({code:"spec:type:unpaired-curlies",message:"unpaired curlies",line:r.source[0].number,critical:!0}),r;let s=[],o=i[0][0].postDelimiter.length;for(let[l,[u,a]]of i.entries())u.type=a,l>0&&(u.type=u.postDelimiter.slice(o)+a,u.postDelimiter=u.postDelimiter.slice(0,o)),[u.postType,u.description]=(0,CA.splitSpace)(u.description.slice(a.length)),s.push(u.type);return s[0]=s[0].slice(1),s[s.length-1]=s[s.length-1].slice(0,-1),r.type=e(s),r}}Lg.default=AA;var OA=t=>t.trim();function DA(t){return t==="compact"?e=>e.map(OA).join(""):t==="preserve"?e=>e.join(`
|
95
|
+
return false;`);return Object.defineProperty(o,"name",{value:`selector_group_${t}`,writable:!1}),o.selectors=e,o}te.createSelectorGroup=$n;function MC(t){return t.selectors}te.getSelectorsFromGroup=MC;var Bn;(function(t){t.BlockEndOfLine="BlockEndOfLine",t.AssignmentEndOfExpr="AssignmentEndOfExpr",t.AssignmentShorthand="AssignmentShorthand",t.AssignmentCommandArgs="AssignmentCommandArgs",t.ReturnStatementEnd="ReturnStatementEnd",t.FunctionDeclarationArgEnd="FunctionDeclarationArgEnd",t.ComparisonOperators="ComparisonOperators",t.MultiDivOperators="MultiDivOperators",t.CallArgsEnd="CallArgsEnd"})(Bn=te.SelectorGroupType||(te.SelectorGroupType={}));te.SelectorGroups={BlockEndOfLine:$n(Bn.AssignmentEndOfExpr,[te.Selectors.EndOfLine,te.Selectors.Comment]),AssignmentEndOfExpr:$n(Bn.AssignmentEndOfExpr,[te.Selectors.EndOfFile,te.Selectors.EndOfLine,te.Selectors.Else,te.Selectors.Comment]),AssignmentShorthand:$n(Bn.AssignmentShorthand,[te.Selectors.AddShorthand,te.Selectors.SubtractShorthand,te.Selectors.MultiplyShorthand,te.Selectors.DivideShorthand,te.Selectors.PowerShorthand,te.Selectors.ModuloShorthand]),AssignmentCommandArgs:$n(Bn.AssignmentCommandArgs,[te.Selectors.ArgumentSeperator,te.Selectors.EndOfLine,te.Selectors.EndOfFile]),ReturnStatementEnd:$n(Bn.ReturnStatementEnd,[te.Selectors.EndOfLine,te.Selectors.Else,te.Selectors.Comment]),FunctionDeclarationArgEnd:$n(Bn.FunctionDeclarationArgEnd,[te.Selectors.RParenthesis,te.Selectors.EndOfFile,te.Selectors.EndOfLine]),ComparisonOperators:$n(Bn.ComparisonOperators,[te.Selectors.Equal,te.Selectors.NotEqual,te.Selectors.Greater,te.Selectors.GreaterEqual,te.Selectors.Lesser,te.Selectors.LessEqual]),MultiDivOperators:$n(Bn.MultiDivOperators,[te.Selectors.Times,te.Selectors.Divide,te.Selectors.Mod]),CallArgsEnd:$n(Bn.CallArgsEnd,[te.Selectors.ArgumentSeperator,te.Selectors.RParenthesis])}});var yg=T(Du=>{"use strict";Object.defineProperty(Du,"__esModule",{value:!0});Du.Stack=void 0;var gg=class{constructor(){this._items=[],this._last=null,this._default=null}setDefault(e){this._default=e}push(e){return this._items.push(this._last=e)}pop(){switch(this._items.length){case 0:return this._default;case 1:return this._last=null,this._items.pop()}let e=this._items.pop();return this._last=this._items[this._items.length-1],e}peek(){return this._last||this._default}};Du.Stack=gg});var xg=T(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.PendingWhile=je.isPendingWhile=je.PendingIf=je.isPendingIf=je.PendingFunction=je.isPendingFunction=je.PendingFor=je.isPendingFor=je.PendingChunk=je.isPendingChunk=je.PendingBlockType=void 0;var kn;(function(t){t[t.Chunk=0]="Chunk",t[t.For=1]="For",t[t.Function=2]="Function",t[t.If=3]="If",t[t.While=4]="While"})(kn=je.PendingBlockType||(je.PendingBlockType={}));var ti=class{constructor(e,r,n){this.lineRegistry=n,this.block=e,this.body=[],this.type=r,this.onComplete=null}complete(e){var r;(r=this.onComplete)===null||r===void 0||r.call(this,this)}};function qC(t){return t.type===kn.Chunk}je.isPendingChunk=qC;var bg=class extends ti{constructor(e,r){super(e,kn.Chunk,r)}complete(e){this.block.body=this.body,this.block.end=e.end,this.block.range=[this.block.range[0],e.range[1]],super.complete(e)}};je.PendingChunk=bg;function FC(t){return t.type===kn.For}je.isPendingFor=FC;var vg=class extends ti{constructor(e,r){super(e,kn.For,r),this.lineRegistry.addItemToLine(this.block.start.line,this.block)}complete(e){this.block.body=this.body,this.block.end=e.end,this.block.range=[this.block.range[0],e.range[1]],this.lineRegistry.addItemToLine(e.end.line,this.block),super.complete(e)}};je.PendingFor=vg;function NC(t){return t.type===kn.Function}je.isPendingFunction=NC;var _g=class extends ti{constructor(e,r,n){super(e,kn.Function,n),this.base=r,this.lineRegistry.addItemToLine(this.block.start.line,this.block)}complete(e){this.block.body=this.body,this.block.end=e.end,this.block.range=[this.block.range[0],e.range[1]],this.base!==null?(this.base.end=this.block.end,this.base.range[1]=this.block.range[1],this.lineRegistry.addItemToLine(this.base.end.line,this.base)):this.lineRegistry.addItemToLine(this.block.end.line,this.block),super.complete(e)}};je.PendingFunction=_g;function $C(t){return t.type===kn.If}je.isPendingIf=$C;var wg=class extends ti{constructor(e,r,n){super(e,kn.If,n),this.lineRegistry.addItemToLine(this.block.start.line,this.block),this.currentClause=r}addCurrentClauseToLineRegistry(){this.currentClause.start.line!==this.block.start.line&&this.lineRegistry.addItemToLine(this.currentClause.start.line,this.block)}next(e){this.currentClause.body=this.body,this.currentClause.end=e.end,this.currentClause.range=[this.currentClause.range[0],e.range[1]],this.addCurrentClauseToLineRegistry(),this.block.clauses.push(this.currentClause),super.complete(e),this.body=[]}complete(e){this.body.length>0&&this.next(e),this.block.end=e.end,this.block.range=[this.block.range[0],e.range[1]],this.lineRegistry.addItemToLine(this.block.end.line,this.block),super.complete(e)}};je.PendingIf=wg;function BC(t){return t.type===kn.While}je.isPendingWhile=BC;var Sg=class extends ti{constructor(e,r){super(e,kn.While,r),this.lineRegistry.addItemToLine(this.block.start.line,this.block)}complete(e){this.block.body=this.body,this.block.end=e.end,this.block.range=[this.block.range[0],e.range[1]],this.lineRegistry.addItemToLine(e.end.line,this.block),super.complete(e)}};je.PendingWhile=Sg});var Tg=T(Lu=>{"use strict";Object.defineProperty(Lu,"__esModule",{value:!0});Lu.LineRegistry=void 0;var kg=class{constructor(){this._lines={}}get lines(){return this._lines}addItemToLines(e){this.addItemToRange(e.start.line,e.end.line,e)}addItemToLine(e,r){this.addItemToRange(e,e,r)}addItemToRange(e,r,n){let i=this._lines;for(let s=e;s<=r;s++){let o=i[s];o?o.push(n):i[s]=[n]}}};Lu.LineRegistry=kg});var s0=T(Lo=>{"use strict";var i0=Lo&&Lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Lo,"__esModule",{value:!0});var UC=i0(um()),hs=Cr(),Xt=cg(),WC=i0(hg()),VC=lu(),Tt=is(),ir=os(),jt=as(),V=mg(),HC=yg(),Un=xg(),zC=Tg(),Ig=class{constructor(e,r={}){let n=this;n.content=e,n.backpatches=new HC.Stack,n.statementErrors=[],n.lexer=r.lexer||new UC.default(e,{unsafe:r.unsafe,tabWidth:r.tabWidth}),n.token=null,n.previousToken=null,n.lineRegistry=new zC.LineRegistry,n.scopes=[],n.currentScope=null,n.currentAssignment=null,n.outerScopes=[],n.literals=[],n.validator=r.validator||new WC.default,n.astProvider=r.astProvider||new Xt.ASTProvider,n.unsafe=r.unsafe||!1,n.errors=[]}next(){this.previousToken=this.token,this.token=this.lexer.next()}isType(e){return this.token!==null&&e===this.token.type}consume(e){return e(this.token)?(this.next(),!0):!1}consumeMany(e){return e(this.token)?(this.next(),!0):!1}requireType(e,r){let n=this.token;return this.token.type!==e?(this.raise(`got ${n} where ${e} is required`,new jt.Range(r||n.start,n.end)),null):(this.next(),n)}requireToken(e,r){let n=this.token;return e(n)?(this.next(),n):(this.raise(`got ${n} where "${(0,V.getSelectorValue)(e)}" is required`,new jt.Range(r||n.start,n.end)),null)}requireTokenOfAny(e,r){let n=this.token;return e(n)?(this.next(),n):(this.raise(`got ${n} where any of ${(0,V.getSelectorsFromGroup)(e).map(i=>`"${(0,V.getSelectorValue)(i)}"`).join(", ")} is required`,new jt.Range(r||n.start,n.end)),null)}skipNewlines(){var e;let r=this,n=0;for(;;){if(V.Selectors.Comment(r.token)){let i=((e=r.previousToken)===null||e===void 0?void 0:e.line)!==r.token.line,s=r.astProvider.comment({value:r.token.value,start:r.token.start,end:r.token.end,range:r.token.range,scope:r.currentScope,isStatement:i});r.lineRegistry.addItemToLines(s)}else if(V.Selectors.EndOfLine(r.token))n++;else break;r.next()}return n}pushScope(e){let r=this;r.currentScope!==null&&(r.scopes.push(e),r.outerScopes.push(r.currentScope)),r.currentScope=e}popScope(){let e=this;e.currentScope=e.outerScopes.pop()}tryToRecover(){let e=this,r=e.statementErrors[0];if(e.errors.push(r),!e.unsafe)throw r;for(e.lexer.recoverFromSnapshot(),e.next();e.token.type!==hs.TokenType.EOL&&e.token.type!==hs.TokenType.EOF;e.next());}finishRemaingScopes(){let e=this,r=e.backpatches.pop();for(;!(0,Un.isPendingChunk)(r);){let n=e.raise(`found open block ${r.block.type}`,new jt.Range(r.block.start,r.block.start));if(r.complete(e.previousToken),e.errors.push(n),!e.unsafe)throw n;r=e.backpatches.pop()}}parseChunk(){let e=this;e.next();let r=e.token.start,n=e.astProvider.chunk({start:r,end:null,range:[e.token.range[0],null]}),i=new Un.PendingChunk(n,e.lineRegistry);for(e.backpatches.setDefault(i),e.pushScope(n);!V.Selectors.EndOfFile(e.token)&&(e.skipNewlines(),!V.Selectors.EndOfFile(e.token));)e.lexer.recordSnapshot(),e.statementErrors=[],e.parseStatement(),e.statementErrors.length>0&&e.tryToRecover();return e.finishRemaingScopes(),e.popScope(),i.complete(e.token),n.literals=e.literals,n.scopes=e.scopes,n.lines=e.lineRegistry.lines,n}parseStatement(){let e=this;if(hs.TokenType.Keyword===e.token.type&&Tt.Keyword.Not!==e.token.value){e.parseKeyword();return}let r=e.backpatches.peek(),n=e.parseAssignment();n.end!==null&&e.lineRegistry.addItemToLines(n),r.body.push(n)}parseKeyword(){let e=this;switch(e.token.value){case Tt.Keyword.Return:{let n=e.backpatches.peek();e.next();let i=e.parseReturnStatement();i.end!==null&&e.lineRegistry.addItemToLines(i),n.body.push(i);return}case Tt.Keyword.If:{e.next(),e.parseIfStatement();return}case Tt.Keyword.ElseIf:{e.next(),e.nextIfClause(Xt.ASTType.ElseifClause);return}case Tt.Keyword.Else:{e.next(),e.nextIfClause(Xt.ASTType.ElseClause);return}case Tt.Keyword.While:{e.next(),e.parseWhileStatement();return}case Tt.Keyword.For:{e.next(),e.parseForStatement();return}case Tt.Keyword.EndFunction:{e.next(),e.finalizeFunction();return}case Tt.Keyword.EndFor:{e.next(),e.finalizeForStatement();return}case Tt.Keyword.EndWhile:{e.next(),e.finalizeWhileStatement();return}case Tt.Keyword.EndIf:{e.next(),e.nextIfClause(null);return}case Tt.Keyword.Continue:{let n=e.backpatches.peek();e.next();let i=e.astProvider.continueStatement({start:e.previousToken.start,end:e.previousToken.end,range:e.previousToken.range,scope:e.currentScope});e.lineRegistry.addItemToLines(i),n.body.push(i);return}case Tt.Keyword.Break:{let n=e.backpatches.peek();e.next();let i=e.astProvider.breakStatement({start:e.previousToken.start,end:e.previousToken.end,range:e.previousToken.range,scope:e.currentScope});e.lineRegistry.addItemToLines(i),n.body.push(i);return}}e.raise(`unexpected keyword ${e.token} at start of line`,new jt.Range(e.token.start,e.token.end))}parseShortcutStatement(){let e=this;if(hs.TokenType.Keyword===e.token.type&&Tt.Keyword.Not!==e.token.value)switch(e.token.value){case Tt.Keyword.Return:return e.next(),e.parseReturnStatement();case Tt.Keyword.Continue:return e.next(),e.astProvider.continueStatement({start:e.previousToken.start,end:e.previousToken.end,range:e.previousToken.range,scope:e.currentScope});case Tt.Keyword.Break:return e.next(),e.astProvider.breakStatement({start:e.previousToken.start,end:e.previousToken.end,range:e.previousToken.range,scope:e.currentScope});default:return e.raise(`unexpected keyword ${e.token} in shorthand statement`,new jt.Range(e.token.start,e.token.end)),e.parseInvalidCode()}return e.parseAssignment()}parseAssignment(){let e=this,r=e.currentScope,n=e.token,i=e.parseExpr(null,!0,!0);if(V.SelectorGroups.AssignmentEndOfExpr(e.token))return i;if(V.Selectors.Assign(e.token)){e.next();let o=e.astProvider.assignmentStatement({variable:i,init:null,start:n.start,range:[n.range[0],null],end:null,scope:r}),l=e.currentAssignment;return e.currentAssignment=o,o.init=e.parseExpr(o),o.end=e.previousToken.end,o.range[1]=e.previousToken.range[1],e.currentAssignment=l,r.definitions.push(o),o}else if(V.SelectorGroups.AssignmentShorthand(e.token)){let o=e.token;e.next();let l=e.astProvider.assignmentStatement({variable:i,init:null,start:n.start,range:[n.range[0],null],end:null,scope:r}),u=e.currentAssignment;e.currentAssignment=l;let a=e.token,c=o.value.charAt(0),p=e.parseExpr(l),d=e.astProvider.parenthesisExpression({start:p.start,end:p.end,range:p.range,expression:p});return l.init=e.astProvider.binaryExpression({operator:c,left:i.clone(),right:d,start:a.start,end:e.previousToken.end,range:[a.range[0],e.previousToken.range[1]],scope:r}),l.end=e.previousToken.end,l.range[1]=e.previousToken.range[1],e.currentAssignment=u,r.definitions.push(l),l}let s=[];for(;!V.Selectors.EndOfFile(e.token);){let o=e.parseExpr(null);if(s.push(o),V.SelectorGroups.BlockEndOfLine(e.token)||V.Selectors.Else(e.token))break;if(V.Selectors.ArgumentSeperator(e.token)){e.next(),e.skipNewlines();continue}let l=e.requireTokenOfAny(V.SelectorGroups.AssignmentCommandArgs,n.start);if(V.Selectors.EndOfLine(l)||V.Selectors.EndOfFile(l))break}return s.length===0?e.astProvider.callStatement({expression:i,start:n.start,end:e.previousToken.end,range:[n.range[0],e.previousToken.range[1]],scope:r}):e.astProvider.callStatement({expression:e.astProvider.callExpression({base:i,arguments:s,start:n.start,end:e.previousToken.end,range:[n.range[0],e.previousToken.range[1]],scope:r}),start:n.start,end:e.previousToken.end,range:[n.range[0],e.previousToken.range[1]],scope:r})}parseReturnStatement(){let e=this,r=e.currentScope,n=e.previousToken,i=null,s=e.astProvider.returnStatement({argument:null,start:n.start,end:null,range:[n.range[0],null],scope:r});return V.SelectorGroups.ReturnStatementEnd(e.token)?(s.end=e.previousToken.end,s.range[1]=e.previousToken.range[1]):(i=e.parseExpr(s),s.end=e.previousToken.end,s.range[1]=e.previousToken.range[1],s.argument=i),r.returns.push(s),s}parseIfStatement(){let e=this,r=e.previousToken,n=e.parseExpr(null);if(e.lineRegistry.addItemToLines(n),e.requireToken(V.Selectors.Then,r.start),!V.SelectorGroups.BlockEndOfLine(e.token)){e.parseIfShortcutStatement(n,r);return}let i=e.astProvider.ifStatement({clauses:[],start:r.start,end:null,range:[r.range[0],null],scope:e.currentScope}),s=e.astProvider.ifClause({condition:n,start:r.start,end:e.token.end,range:[r.range[0],e.token.range[1]],scope:e.currentScope}),o=new Un.PendingIf(i,s,e.lineRegistry);e.backpatches.push(o)}nextIfClause(e){let r=this,n=r.backpatches.peek();if(!(0,Un.isPendingIf)(n)){r.raise("no matching open if block",new jt.Range(r.token.start,r.token.end));return}switch(n.next(r.previousToken),e){case Xt.ASTType.ElseifClause:{let i=r.token,s=r.parseExpr(null);r.requireToken(V.Selectors.Then,i.start),n.currentClause=r.astProvider.elseifClause({condition:s,start:i.start,end:null,range:[i.range[0],null],scope:r.currentScope});break}case Xt.ASTType.ElseClause:{let i=r.token;n.currentClause=r.astProvider.elseClause({start:i.start,end:null,range:[i.range[0],null],scope:r.currentScope});break}}e===null&&(n.complete(r.previousToken),r.backpatches.pop(),r.backpatches.peek().body.push(n.block))}parseIfShortcutStatement(e,r){let n=this,i=[],s=n.backpatches.peek(),o=n.astProvider.ifShortcutStatement({clauses:i,start:r.start,end:null,range:[r.range[0],null],scope:n.currentScope}),l=n.parseShortcutStatement();if(i.push(n.astProvider.ifShortcutClause({condition:e,body:[l],start:r.start,end:n.token.end,range:[r.range[0],n.token.range[1]],scope:n.currentScope})),V.Selectors.Else(n.token)){n.next();let u=n.token,a=n.parseShortcutStatement();i.push(n.astProvider.elseShortcutClause({body:[a],start:u.start,end:n.token.end,range:[u.range[0],n.token.range[1]],scope:n.currentScope}))}o.end=n.token.end,o.range[1]=n.token.range[1],n.lineRegistry.addItemToLines(o),s.body.push(o)}parseWhileStatement(){let e=this,r=e.previousToken,n=e.parseExpr(null);if(!n){e.raise("while requires a condition",new jt.Range(r.start,e.token.end));return}if(!V.SelectorGroups.BlockEndOfLine(e.token))return e.parseWhileShortcutStatement(n,r);let i=e.astProvider.whileStatement({condition:n,start:r.start,end:null,range:[r.range[0],null],scope:e.currentScope}),s=new Un.PendingWhile(i,e.lineRegistry);e.backpatches.push(s)}finalizeWhileStatement(){let e=this,r=e.backpatches.peek();if(!(0,Un.isPendingWhile)(r)){e.raise("no matching open while block",new jt.Range(e.token.start,e.token.end));return}r.complete(e.previousToken),e.backpatches.pop(),e.backpatches.peek().body.push(r.block)}parseWhileShortcutStatement(e,r){let n=this,i=n.backpatches.peek(),s=n.parseShortcutStatement(),o=n.astProvider.whileStatement({condition:e,body:[s],start:r.start,end:n.previousToken.end,range:[r.range[0],n.previousToken.range[1]],scope:n.currentScope});n.lineRegistry.addItemToLines(o),i.body.push(o)}parseForStatement(){let e=this,r=e.currentScope,n=e.previousToken,i=e.parseIdentifier(Xt.ASTIdentifierKind.ForInVariable);e.requireToken(V.Selectors.In,n.start);let s=e.parseExpr(null);if(!s){e.raise("sequence expression expected for 'for' loop",new jt.Range(n.start,e.token.end));return}if(!V.SelectorGroups.BlockEndOfLine(e.token))return e.parseForShortcutStatement(i,s,n);let o=e.astProvider.forGenericStatement({variable:i,iterator:s,start:n.start,end:e.previousToken.end,range:[n.range[0],e.previousToken.range[1]],scope:r});r.definitions.push(o);let l=new Un.PendingFor(o,e.lineRegistry);e.backpatches.push(l)}finalizeForStatement(){let e=this,r=e.backpatches.peek();if(!(0,Un.isPendingFor)(r)){e.raise("no matching open for block",new jt.Range(e.token.start,e.token.end));return}r.complete(e.previousToken),e.backpatches.pop(),e.backpatches.peek().body.push(r.block)}parseForShortcutStatement(e,r,n){let i=this,s=i.currentScope,o=i.backpatches.peek(),l=i.parseShortcutStatement(),u=i.astProvider.forGenericStatement({variable:e,iterator:r,body:[l],start:n.start,end:i.previousToken.end,range:[n.range[0],i.previousToken.range[1]],scope:i.currentScope});s.definitions.push(u),i.lineRegistry.addItemToLines(u),o.body.push(u)}parseExpr(e,r=!1,n=!1){return this.parseFunctionDeclaration(e,r,n)}parseFunctionDeclaration(e,r=!1,n=!1){let i=this;if(!V.Selectors.Function(i.token))return i.parseOr(r,n);i.next();let s=i.previousToken,o=i.astProvider.functionStatement({start:s.start,end:null,range:[s.range[0],null],scope:i.currentScope,parent:i.outerScopes[i.outerScopes.length-1],assignment:i.currentAssignment}),l=[];if(i.pushScope(o),!V.SelectorGroups.BlockEndOfLine(i.token)){for(i.requireToken(V.Selectors.LParenthesis,s.start);!V.SelectorGroups.FunctionDeclarationArgEnd(i.token);){let a=i.parseIdentifier(Xt.ASTIdentifierKind.Argument),c=a;if(i.consume(V.Selectors.Assign)){let p=i.parseExpr(null);if(p instanceof Xt.ASTLiteral){let d=i.astProvider.assignmentStatement({variable:a,init:p,start:c.start,end:i.previousToken.end,range:[c.range[0],i.previousToken.range[1]],scope:i.currentScope});i.currentScope.definitions.push(d),l.push(d)}else i.raise("parameter default value must be a literal value",new jt.Range(c.start,i.token.end)),l.push(i.astProvider.invalidCodeExpression({start:c.start,end:i.previousToken.end,range:[c.range[0],i.previousToken.range[1]]}))}else{let p=i.astProvider.assignmentStatement({variable:a,init:i.astProvider.unknown({start:c.start,end:i.previousToken.end,range:[c.range[0],i.previousToken.range[1]],scope:i.currentScope}),start:c.start,end:i.previousToken.end,range:[c.range[0],i.previousToken.range[1]],scope:i.currentScope});i.currentScope.definitions.push(p),l.push(a)}if(V.Selectors.RParenthesis(i.token))break;if(i.requireToken(V.Selectors.ArgumentSeperator,s.start),V.Selectors.RParenthesis(i.token)){i.raise("expected argument instead received right parenthesis",new jt.Range(i.previousToken.end,i.previousToken.end));break}}i.requireToken(V.Selectors.RParenthesis,s.start)}o.parameters=l;let u=new Un.PendingFunction(o,e,i.lineRegistry);return i.backpatches.push(u),o}finalizeFunction(){let e=this,r=e.backpatches.peek();if(!(0,Un.isPendingFunction)(r)){e.raise("no matching open function block",new jt.Range(e.token.start,e.token.end));return}e.popScope(),r.complete(e.previousToken),e.backpatches.pop()}parseOr(e=!1,r=!1){let n=this,i=n.token,o=n.parseAnd(e,r);for(;V.Selectors.Or(n.token);){n.next(),n.skipNewlines();let l=n.parseAnd();o=n.astProvider.logicalExpression({operator:ir.Operator.Or,left:o,right:l,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return o}parseAnd(e=!1,r=!1){let n=this,i=n.token,o=n.parseNot(e,r);for(;V.Selectors.And(n.token);){n.next(),n.skipNewlines();let l=n.parseNot();o=n.astProvider.logicalExpression({operator:ir.Operator.And,left:o,right:l,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return o}parseNot(e=!1,r=!1){let n=this,i=n.token;if(V.Selectors.Not(n.token)){n.next(),n.skipNewlines();let s=n.parseIsa();return n.astProvider.unaryExpression({operator:ir.Operator.Not,argument:s,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return n.parseIsa(e,r)}parseIsa(e=!1,r=!1){let n=this,i=n.token,s=n.parseComparisons(e,r);if(V.Selectors.Isa(n.token)){n.next(),n.skipNewlines();let o=n.parseComparisons();return n.astProvider.isaExpression({operator:ir.Operator.Isa,left:s,right:o,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return s}parseComparisons(e=!1,r=!1){let n=this,i=n.token,s=n.parseAddSub(e,r);if(!V.SelectorGroups.ComparisonOperators(n.token))return s;let o=[s],l=[];do{let u=n.token;n.next(),n.skipNewlines();let a=n.parseAddSub();l.push(u.value),o.push(a)}while(V.SelectorGroups.ComparisonOperators(n.token));return l.length===1?n.astProvider.binaryExpression({operator:l[0],left:o[0],right:o[1],start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope}):n.astProvider.comparisonGroupExpression({operators:l,expressions:o,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}parseAddSub(e=!1,r=!1){let n=this,i=n.token,o=n.parseMultDiv(e,r);for(;V.Selectors.Plus(n.token)||V.Selectors.Minus(n.token)&&(!r||!n.token.afterSpace||n.lexer.isAtWhitespace());){let l=n.token;n.next(),n.skipNewlines();let u=n.parseMultDiv();o=n.astProvider.binaryExpression({operator:l.value,left:o,right:u,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return o}parseMultDiv(e=!1,r=!1){let n=this,i=n.token,o=n.parseUnaryMinus(e,r);for(;V.SelectorGroups.MultiDivOperators(n.token);){let l=n.token;n.next(),n.skipNewlines();let u=n.parseUnaryMinus();o=n.astProvider.binaryExpression({operator:l.value,left:o,right:u,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return o}parseUnaryMinus(e=!1,r=!1){let n=this;if(!V.Selectors.Minus(n.token))return n.parseNew(e,r);let i=n.token;n.next(),n.skipNewlines();let s=n.parseNew();return s instanceof Xt.ASTNumericLiteral||s instanceof Xt.ASTBooleanLiteral?(s.negated=!0,s):n.astProvider.unaryExpression({operator:ir.Operator.Minus,argument:s,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}parseNew(e=!1,r=!1){let n=this;if(!V.Selectors.New(n.token))return n.parseAddressOf(e,r);let i=n.token;n.next(),n.skipNewlines();let s=n.parseNew();return n.astProvider.unaryExpression({operator:ir.Operator.New,argument:s,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}parseAddressOf(e=!1,r=!1){let n=this;if(!V.Selectors.Reference(n.token))return n.parsePower(e,r);let i=n.token;n.next(),n.skipNewlines();let s=n.parsePower(!0,r);return n.astProvider.unaryExpression({operator:ir.Operator.Reference,argument:s,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}parsePower(e=!1,r=!1){let n=this,i=n.token,s=n.parseCallExpr(e,r);if(V.Selectors.Power(n.token)){n.next(),n.skipNewlines();let o=n.parseCallExpr();return n.astProvider.binaryExpression({operator:ir.Operator.Power,left:s,right:o,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return s}parseCallExpr(e=!1,r=!1){let n=this,i=n.token,s=n.parseMap(e,r);for(;!V.Selectors.EndOfFile(n.token);)if(V.Selectors.MemberSeperator(n.token)){n.next(),n.skipNewlines();let o=n.parseIdentifier(Xt.ASTIdentifierKind.Property),l=n.astProvider.memberExpression({base:s,indexer:ir.Operator.Member,identifier:o,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope});n.currentScope.namespaces.push(l),s=l}else if(V.Selectors.SLBracket(n.token)&&!n.token.afterSpace){if(n.next(),n.skipNewlines(),V.Selectors.SliceSeperator(n.token)){let o=n.astProvider.emptyExpression({start:n.previousToken.start,end:n.previousToken.end,range:n.previousToken.range,scope:n.currentScope});n.next(),n.skipNewlines();let l=V.Selectors.SRBracket(n.token)?n.astProvider.emptyExpression({start:n.previousToken.start,end:n.previousToken.end,range:n.previousToken.range,scope:n.currentScope}):n.parseExpr(null);s=n.astProvider.sliceExpression({base:s,left:o,right:l,start:i.start,end:n.token.end,range:[i.range[0],n.token.range[1]],scope:n.currentScope})}else{let o=n.parseExpr(null);if(V.Selectors.SliceSeperator(n.token)){n.next(),n.skipNewlines();let l=V.Selectors.SRBracket(n.token)?n.astProvider.emptyExpression({start:n.previousToken.start,end:n.previousToken.end,range:n.previousToken.range,scope:n.currentScope}):n.parseExpr(null);s=n.astProvider.sliceExpression({base:s,left:o,right:l,start:i.start,end:n.token.end,range:[i.range[0],n.token.range[1]],scope:n.currentScope})}else s=n.astProvider.indexExpression({base:s,index:o,isStatementStart:r,start:i.start,end:n.token.end,range:[i.range[0],n.token.range[1]],scope:n.currentScope})}n.requireToken(V.Selectors.SRBracket,i.start)}else if(V.Selectors.LParenthesis(n.token)&&(!e||!n.token.afterSpace)){let o=n.parseCallArgs();s=n.astProvider.callExpression({base:s,arguments:o,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}else break;return s}parseCallArgs(){let e=this,r=[];if(V.Selectors.LParenthesis(e.token))if(e.next(),V.Selectors.RParenthesis(e.token))e.next();else for(;!V.Selectors.EndOfFile(e.token);){e.skipNewlines();let n=e.parseExpr(null);if(r.push(n),e.skipNewlines(),V.Selectors.RParenthesis(e.requireTokenOfAny(V.SelectorGroups.CallArgsEnd,n.start)))break}return r}parseMap(e=!1,r=!1){let n=this;if(!V.Selectors.CLBracket(n.token))return n.parseList(e,r);let i=n.currentScope,s=n.token,o=[],l=n.astProvider.mapConstructorExpression({fields:o,start:s.start,end:null,range:[s.range[0],null],scope:i});if(n.next(),V.Selectors.CRBracket(n.token))n.next();else for(n.skipNewlines();!V.Selectors.EndOfFile(n.token);){if(V.Selectors.CRBracket(n.token)){n.next();break}let u=n.astProvider.mapKeyString({key:null,value:null,start:n.token.start,end:null,range:[n.token.range[0],null],scope:i});if(u.key=n.parseExpr(null),n.requireToken(V.Selectors.MapKeyValueSeperator),n.skipNewlines(),u.value=n.parseExpr(u),u.end=n.previousToken.end,u.range[1]=n.previousToken.range[1],o.push(u),V.Selectors.MapSeperator(n.token)&&(n.next(),n.skipNewlines()),V.Selectors.CRBracket(n.token)){n.next();break}}return l.end=n.token.start,l.range[1]=n.token.range[1],l}parseList(e=!1,r=!1){let n=this;if(!V.Selectors.SLBracket(n.token))return n.parseQuantity(e,r);let i=n.currentScope,s=n.token,o=[],l=n.astProvider.listConstructorExpression({fields:o,start:s.start,end:null,range:[s.range[0],null],scope:i});if(n.next(),V.Selectors.SRBracket(n.token))n.next();else for(n.skipNewlines();!V.Selectors.EndOfFile(n.token);){if(V.Selectors.SRBracket(n.token)){n.next();break}let u=n.astProvider.listValue({value:null,start:n.token.start,end:null,range:[n.token.range[0],null],scope:i});if(u.value=n.parseExpr(u),u.end=n.previousToken.end,u.range[1]=n.previousToken.range[1],o.push(u),V.Selectors.MapSeperator(n.token)&&(n.next(),n.skipNewlines()),V.Selectors.SRBracket(n.token)){n.next();break}}return l.end=n.token.start,l.range[1]=n.token.range[1],l}parseQuantity(e=!1,r=!1){let n=this;if(!V.Selectors.LParenthesis(n.token))return n.parseAtom(e,r);let i=n.token;n.next(),n.skipNewlines();let s=n.parseExpr(null);return n.requireToken(V.Selectors.RParenthesis,i.start),n.astProvider.parenthesisExpression({expression:s,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}parseAtom(e=!1,r=!1){let n=this;return n.validator.isLiteral(n.token.type)?n.parseLiteral():n.isType(hs.TokenType.Identifier)?n.parseIdentifier(Xt.ASTIdentifierKind.Variable):(n.raise(`got ${n.token} where number, string, or identifier is required`,new jt.Range(n.token.start,n.token.end)),n.parseInvalidCode())}parseLiteral(){let e=this,r=e.token,n=e.token.type,i=e.astProvider.literal(n,{value:e.token.value,raw:e.token.raw,start:r.start,end:e.token.end,range:[r.range[0],e.token.range[1]],scope:e.currentScope});return e.literals.push(i),e.next(),i}parseIdentifier(e){let r=this,n=r.requireType(hs.TokenType.Identifier);if(n===null)return r.parseInvalidCode();let i=r.astProvider.identifier({kind:e,name:n.value,start:n.start,end:n.end,range:n.range,scope:r.currentScope});return e!==Xt.ASTIdentifierKind.Property&&r.currentScope.namespaces.push(i),i}parseInvalidCode(){let e=this,r=e.token,n=e.astProvider.invalidCodeExpression({start:r.start,end:r.end,range:r.range});return e.next(),n}raise(e,r){let n=this,i=new VC.ParserException(e,r);return n.statementErrors.push(i),i}};Lo.default=Ig});var pe=T(ge=>{"use strict";var KC=ge&&ge.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),Tn=ge&&ge.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&KC(e,t,r)},ju=ge&&ge.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ge,"__esModule",{value:!0});ge.ASTRange=ge.ASTPosition=ge.LineRegistry=ge.ParserValidatorm=ge.Parser=ge.LexerValidator=ge.Lexer=void 0;var GC=um();Object.defineProperty(ge,"Lexer",{enumerable:!0,get:function(){return ju(GC).default}});Tn(Cr(),ge);var YC=Xf();Object.defineProperty(ge,"LexerValidator",{enumerable:!0,get:function(){return ju(YC).default}});var JC=s0();Object.defineProperty(ge,"Parser",{enumerable:!0,get:function(){return ju(JC).default}});Tn(cg(),ge);var QC=hg();Object.defineProperty(ge,"ParserValidatorm",{enumerable:!0,get:function(){return ju(QC).default}});var ZC=Tg();Object.defineProperty(ge,"LineRegistry",{enumerable:!0,get:function(){return ZC.LineRegistry}});Tn(xg(),ge);Tn(yg(),ge);Tn(om(),ge);Tn(au(),ge);Tn(lu(),ge);Tn(is(),ge);Tn(nm(),ge);Tn(os(),ge);var XC=rs();Object.defineProperty(ge,"ASTPosition",{enumerable:!0,get:function(){return XC.Position}});var eA=as();Object.defineProperty(ge,"ASTRange",{enumerable:!0,get:function(){return eA.Range}});Tn(mg(),ge)});var jo=T(Mu=>{"use strict";Object.defineProperty(Mu,"__esModule",{value:!0});Mu.isValidIdentifierLiteral=void 0;var tA=pe(),nA=t=>{if(t.type!==tA.ASTType.StringLiteral)return!1;let e=t.value.toString();return/^[_a-z][_a-z0-9]*$/i.test(e)};Mu.isValidIdentifierLiteral=nA});var Eg=T(Lr=>{"use strict";Object.defineProperty(Lr,"__esModule",{value:!0});Lr.getStringHashCode=Lr.getHashCode=Lr.rotateBits=void 0;function rA(t){return t>>1|t<<31}Lr.rotateBits=rA;function iA(t,e=0){let r=t>>>0;return r=(r>>16^r)*73244475,r=(r>>16^r)*73244475,r=r>>16^r,(e<<5)-e+r|0}Lr.getHashCode=iA;Lr.getStringHashCode=function(){let t=new Map,e=r=>{let n,i;for(n=0,i=0;n<r.length;n++)i=Math.imul(31,i)+r.charCodeAt(n)|0;return i};return r=>{if(r.length===0)return 0;let n=t.get(r);if(n!==void 0)return n;let i=e(r);return t.set(r,i),i}}()});var o0=T(qu=>{"use strict";Object.defineProperty(qu,"__esModule",{value:!0});qu.createExpressionHash=void 0;var Re=pe(),it=Eg(),sA=jo(),It=(t,e)=>t.$$hash=e,oA=t=>{var e;return(e=t.$$hash)!=null?e:null};function $e(t){let e=oA(t);if(e!==null)return e;let r=(0,it.getStringHashCode)(t.type);switch(t.type){case Re.ASTType.BinaryExpression:{let n=t;return r^=(0,it.getStringHashCode)(n.operator),r^=$e(n.left),r^=$e(n.right),It(t,r)}case Re.ASTType.LogicalExpression:{let n=t;return r^=(0,it.getStringHashCode)(n.operator),r^=$e(n.left),r^=$e(n.right),It(t,r)}case Re.ASTType.IsaExpression:{let n=t;return r^=(0,it.getStringHashCode)(n.operator),r^=$e(n.left),r^=$e(n.right),It(t,r)}case Re.ASTType.ComparisonGroupExpression:{let n=t;for(let i=0;i<n.expressions.length;i++)r^=$e(n.expressions[i]);for(let i=0;i<n.operators.length;i++)r^=(0,it.getStringHashCode)(n.operators[i]);return It(t,r)}case Re.ASTType.FunctionDeclaration:{let n=t;r^=(0,it.getHashCode)(n.parameters.length);for(let i=0;i<n.parameters.length;i++){let s=n.parameters[i];if(s.type===Re.ASTType.Identifier){r^=(0,it.getStringHashCode)(s.name);continue}let o=s;r^=(0,it.getStringHashCode)(o.variable.name),r^=$e(o.init)}return It(t,r)}case Re.ASTType.ParenthesisExpression:return $e(t.expression);case Re.ASTType.MemberExpression:{let n=t;if(n.base.type===Re.ASTType.Identifier){let i=n.base.name;if(i==="globals"||i==="locals"||i==="outer")return r=(0,it.getStringHashCode)(Re.ASTType.Identifier),r^=(0,it.getStringHashCode)(n.identifier.name),It(t,r)}return r^=$e(n.base),r^=$e(n.identifier),It(t,r)}case Re.ASTType.IndexExpression:{let n=t;if((0,sA.isValidIdentifierLiteral)(n.index)){if(n.base.type===Re.ASTType.Identifier){let s=n.base.name;if(s==="globals"||s==="locals"||s==="outer")return r=(0,it.getStringHashCode)(Re.ASTType.Identifier),r^=(0,it.getStringHashCode)(n.index.value.toString()),It(t,r)}r=(0,it.getStringHashCode)(Re.ASTType.MemberExpression),r^=$e(n.base);let i=(0,it.getStringHashCode)(Re.ASTType.Identifier);i^=(0,it.getStringHashCode)(n.index.value.toString()),r^=i}else r^=$e(n.base),r^=$e(n.index);return It(t,r)}case Re.ASTType.CallExpression:{let n=t;r^=$e(n.base),r^=(0,it.getHashCode)(n.arguments.length);for(let i=0;i<n.arguments.length;i++){let s=n.arguments[i];r^=$e(s)}return It(t,r)}case Re.ASTType.NegationExpression:case Re.ASTType.BinaryNegatedExpression:case Re.ASTType.UnaryExpression:{let n=t;return r^=n.operator?(0,it.getStringHashCode)(n.operator):1,r^=$e(n.argument),It(t,r)}case Re.ASTType.Identifier:{let n=t;return r^=(0,it.getStringHashCode)(n.name),It(t,r)}case Re.ASTType.BooleanLiteral:case Re.ASTType.NumericLiteral:case Re.ASTType.StringLiteral:case Re.ASTType.NilLiteral:return r^=(0,it.getStringHashCode)(t.value.toString()),It(t,r);case Re.ASTType.MapConstructorExpression:{let n=t;r^=(0,it.getHashCode)(n.fields.length);for(let i=0;i<n.fields.length;i++){let s=n.fields[i];r^=$e(s.key),r^=$e(s.value)}return It(t,r)}case Re.ASTType.ListConstructorExpression:{let n=t;r^=(0,it.getHashCode)(n.fields.length);for(let i=0;i<n.fields.length;i++){let s=n.fields[i];r^=$e(s.value)}return It(t,r)}case Re.ASTType.SliceExpression:{let n=t;return r^=$e(n.base),r^=$e(n.left),r^=$e(n.right),It(t,r)}}return It(t,r)}function aA(t){return $e(t)}qu.createExpressionHash=aA});var Rg=T(Fu=>{"use strict";Object.defineProperty(Fu,"__esModule",{value:!0});Fu.createExpressionId=void 0;var st=pe(),lA=jo(),pt=(t,e)=>t.$$id=e,uA=t=>{var e;return(e=t.$$id)!=null?e:null};function Me(t){let e=uA(t);if(e!==null)return e;switch(t.type){case st.ASTType.BinaryExpression:{let r=t;return pt(t,Me(r.left)+r.operator+Me(r.right))}case st.ASTType.LogicalExpression:{let r=t;return pt(t,Me(r.left)+r.operator+Me(r.right))}case st.ASTType.IsaExpression:{let r=t;return pt(t,Me(r.left)+r.operator+Me(r.right))}case st.ASTType.ComparisonGroupExpression:{let r=t,n=r.expressions.map(s=>Me(s)),i=[n[0]];for(let s=0;s<r.operators.length;s++)i.push(r.operators[s],n[s+1]);return pt(t,i.join(" "))}case st.ASTType.FunctionDeclaration:{let r=t,n="function",i=[];for(let s=0;s<r.parameters.length;s++){let o=r.parameters[s];if(o.type===st.ASTType.Identifier){i.push(o.name);continue}let l=o;i.push(l.variable.name+"="+Me(l.init))}return i.length>0&&(n+="("+i.join(",")+")"),pt(t,n)}case st.ASTType.ParenthesisExpression:return pt(t,Me(t.expression));case st.ASTType.MemberExpression:{let r=t;return pt(t,Me(r.base)+"."+r.identifier.name)}case st.ASTType.IndexExpression:{let r=t;return(0,lA.isValidIdentifierLiteral)(r.index)?pt(t,Me(r.base)+"."+r.index.value.toString()):pt(t,Me(r.base)+"["+Me(r.index)+"]")}case st.ASTType.CallExpression:{let r=t,n=Me(r.base),i=[];for(let s=0;s<r.arguments.length;s++){let o=r.arguments[s];i.push(Me(o))}return i.length>0&&(n+="("+i.join(",")+")"),pt(t,n)}case st.ASTType.NegationExpression:case st.ASTType.BinaryNegatedExpression:case st.ASTType.UnaryExpression:{let r=t;return r.operator==null?pt(t,Me(r.argument)):r.operator==="@"?pt(t,r.operator+Me(r.argument)):pt(t,r.operator+" "+Me(r.argument))}case st.ASTType.Identifier:return pt(t,t.name);case st.ASTType.NumericLiteral:case st.ASTType.BooleanLiteral:case st.ASTType.StringLiteral:case st.ASTType.NilLiteral:return pt(t,t.raw.toString());case st.ASTType.MapConstructorExpression:{let r=t,n=[];for(let i=0;i<r.fields.length;i++){let s=r.fields[i];n.push(Me(s.key)+":"+Me(s.value))}return pt(t,"{"+n.join(",")+"}")}case st.ASTType.ListConstructorExpression:{let r=t,n=[];for(let i=0;i<r.fields.length;i++){let s=r.fields[i];n.push(Me(s.value))}return pt(t,"["+n.join(",")+"]")}case st.ASTType.SliceExpression:{let r=t;return pt(t,Me(r.base)+"["+Me(r.left)+":"+Me(r.right)+"]")}}return pt(t,"")}function cA(t){return Me(t)}Fu.createExpressionId=cA});var fs=T(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.Markers=void 0;var pA;(function(t){t.start="/**",t.nostart="/***",t.delim="*",t.end="*/"})(pA=Mo.Markers||(Mo.Markers={}))});var In=T(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.rewireSpecs=Ye.rewireSource=Ye.seedTokens=Ye.seedSpec=Ye.seedBlock=Ye.splitLines=Ye.splitSpace=Ye.splitCR=Ye.hasCR=Ye.isSpace=void 0;function dA(t){return/^\s+$/.test(t)}Ye.isSpace=dA;function hA(t){return/\r$/.test(t)}Ye.hasCR=hA;function fA(t){let e=t.match(/\r+$/);return e==null?["",t]:[t.slice(-e[0].length),t.slice(0,-e[0].length)]}Ye.splitCR=fA;function mA(t){let e=t.match(/^\s+/);return e==null?["",t]:[t.slice(0,e[0].length),t.slice(e[0].length)]}Ye.splitSpace=mA;function gA(t){return t.split(/\n/)}Ye.splitLines=gA;function yA(t={}){return Object.assign({description:"",tags:[],source:[],problems:[]},t)}Ye.seedBlock=yA;function bA(t={}){return Object.assign({tag:"",name:"",type:"",optional:!1,description:"",problems:[],source:[]},t)}Ye.seedSpec=bA;function vA(t={}){return Object.assign({start:"",delimiter:"",postDelimiter:"",tag:"",postTag:"",name:"",postName:"",type:"",postType:"",description:"",end:"",lineEnd:""},t)}Ye.seedTokens=vA;function _A(t){let e=t.source.reduce((r,n)=>r.set(n.number,n),new Map);for(let r of t.tags)r.source=r.source.map(n=>e.get(n.number));return t}Ye.rewireSource=_A;function wA(t){let e=t.tags.reduce((r,n)=>n.source.reduce((i,s)=>i.set(s.number,s),r),new Map);return t.source=t.source.map(r=>e.get(r.number)||r),t}Ye.rewireSpecs=wA});var a0=T(Pg=>{"use strict";Object.defineProperty(Pg,"__esModule",{value:!0});var SA=/^@\S+/;function xA({fence:t="```"}={}){let e=kA(t),r=(n,i)=>e(n)?!i:i;return function(i){let s=[[]],o=!1;for(let l of i)SA.test(l.tokens.description)&&!o?s.push([l]):s[s.length-1].push(l),o=r(l.tokens.description,o);return s}}Pg.default=xA;function kA(t){return typeof t=="string"?e=>e.split(t).length%2===0:t}});var l0=T(Cg=>{"use strict";Object.defineProperty(Cg,"__esModule",{value:!0});var TA=fs(),qo=In();function IA({startLine:t=0,markers:e=TA.Markers}={}){let r=null,n=t;return function(s){let o=s,l=(0,qo.seedTokens)();if([l.lineEnd,o]=(0,qo.splitCR)(o),[l.start,o]=(0,qo.splitSpace)(o),r===null&&o.startsWith(e.start)&&!o.startsWith(e.nostart)&&(r=[],l.delimiter=o.slice(0,e.start.length),o=o.slice(e.start.length),[l.postDelimiter,o]=(0,qo.splitSpace)(o)),r===null)return n++,null;let u=o.trimRight().endsWith(e.end);if(l.delimiter===""&&o.startsWith(e.delim)&&!o.startsWith(e.end)&&(l.delimiter=e.delim,o=o.slice(e.delim.length),[l.postDelimiter,o]=(0,qo.splitSpace)(o)),u){let a=o.trimRight();l.end=o.slice(a.length-e.end.length),o=a.slice(0,-e.end.length)}if(l.description=o,r.push({number:n,source:s,tokens:l}),n++,u){let a=r.slice();return r=null,a}return null}}Cg.default=IA});var u0=T(Ag=>{"use strict";Object.defineProperty(Ag,"__esModule",{value:!0});var EA=In();function RA({tokenizers:t}){return function(r){var n;let i=(0,EA.seedSpec)({source:r});for(let s of t)if(i=s(i),!((n=i.problems[i.problems.length-1])===null||n===void 0)&&n.critical)break;return i}}Ag.default=RA});var Dg=T(Og=>{"use strict";Object.defineProperty(Og,"__esModule",{value:!0});function PA(){return t=>{let{tokens:e}=t.source[0],r=e.description.match(/\s*(@(\S+))(\s*)/);return r===null?(t.problems.push({code:"spec:tag:prefix",message:'tag should start with "@" symbol',line:t.source[0].number,critical:!0}),t):(e.tag=r[1],e.postTag=r[3],e.description=e.description.slice(r[0].length),t.tag=r[2],t)}}Og.default=PA});var jg=T(Lg=>{"use strict";Object.defineProperty(Lg,"__esModule",{value:!0});var CA=In();function AA(t="compact"){let e=DA(t);return r=>{let n=0,i=[];for(let[l,{tokens:u}]of r.source.entries()){let a="";if(l===0&&u.description[0]!=="{")return r;for(let c of u.description)if(c==="{"&&n++,c==="}"&&n--,a+=c,n===0)break;if(i.push([u,a]),n===0)break}if(n!==0)return r.problems.push({code:"spec:type:unpaired-curlies",message:"unpaired curlies",line:r.source[0].number,critical:!0}),r;let s=[],o=i[0][0].postDelimiter.length;for(let[l,[u,a]]of i.entries())u.type=a,l>0&&(u.type=u.postDelimiter.slice(o)+a,u.postDelimiter=u.postDelimiter.slice(0,o)),[u.postType,u.description]=(0,CA.splitSpace)(u.description.slice(a.length)),s.push(u.type);return s[0]=s[0].slice(1),s[s.length-1]=s[s.length-1].slice(0,-1),r.type=e(s),r}}Lg.default=AA;var OA=t=>t.trim();function DA(t){return t==="compact"?e=>e.map(OA).join(""):t==="preserve"?e=>e.join(`
|
96
96
|
`):t}});var Fg=T(qg=>{"use strict";Object.defineProperty(qg,"__esModule",{value:!0});var Mg=In(),LA=t=>t&&t.startsWith('"')&&t.endsWith('"');function jA(){let t=(e,{tokens:r},n)=>r.type===""?e:n;return e=>{let{tokens:r}=e.source[e.source.reduce(t,0)],n=r.description.trimLeft(),i=n.split('"');if(i.length>1&&i[0]===""&&i.length%2===1)return e.name=i[1],r.name=`"${i[1]}"`,[r.postName,r.description]=(0,Mg.splitSpace)(n.slice(r.name.length)),e;let s=0,o="",l=!1,u;for(let c of n){if(s===0&&(0,Mg.isSpace)(c))break;c==="["&&s++,c==="]"&&s--,o+=c}if(s!==0)return e.problems.push({code:"spec:name:unpaired-brackets",message:"unpaired brackets",line:e.source[0].number,critical:!0}),e;let a=o;if(o[0]==="["&&o[o.length-1]==="]"){l=!0,o=o.slice(1,-1);let c=o.split("=");if(o=c[0].trim(),c[1]!==void 0&&(u=c.slice(1).join("=").trim()),o==="")return e.problems.push({code:"spec:name:empty-name",message:"empty name",line:e.source[0].number,critical:!0}),e;if(u==="")return e.problems.push({code:"spec:name:empty-default",message:"empty default value",line:e.source[0].number,critical:!0}),e;if(!LA(u)&&/=(?!>)/.test(u))return e.problems.push({code:"spec:name:invalid-default",message:"invalid default value syntax",line:e.source[0].number,critical:!0}),e}return e.optional=l,e.name=o,r.name=a,u!==void 0&&(e.default=u),[r.postName,r.description]=(0,Mg.splitSpace)(n.slice(r.name.length)),e}}qg.default=jA});var $g=T(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.getJoiner=void 0;var Ng=fs();function MA(t="compact",e=Ng.Markers){let r=c0(t);return n=>(n.description=r(n.source,e),n)}Fo.default=MA;function c0(t){return t==="compact"?qA:t==="preserve"?$A:t}Fo.getJoiner=c0;function qA(t,e=Ng.Markers){return t.map(({tokens:{description:r}})=>r.trim()).filter(r=>r!=="").join(" ")}var FA=(t,{tokens:e},r)=>e.type===""?t:r,NA=({tokens:t})=>(t.delimiter===""?t.start:t.postDelimiter.slice(1))+t.description;function $A(t,e=Ng.Markers){if(t.length===0)return"";t[0].tokens.description===""&&t[0].tokens.delimiter===e.start&&(t=t.slice(1));let r=t[t.length-1];return r!==void 0&&r.tokens.description===""&&r.tokens.end.endsWith(e.end)&&(t=t.slice(0,-1)),t=t.slice(t.reduce(FA,0)),t.map(NA).join(`
|
97
97
|
`)}});var d0=T(Bg=>{"use strict";Object.defineProperty(Bg,"__esModule",{value:!0});var BA=fs(),UA=In(),WA=a0(),VA=l0(),HA=u0(),zA=Dg(),KA=jg(),GA=Fg(),p0=$g();function YA({startLine:t=0,fence:e="```",spacing:r="compact",markers:n=BA.Markers,tokenizers:i=[(0,zA.default)(),(0,KA.default)(r),(0,GA.default)(),(0,p0.default)(r)]}={}){if(t<0||t%1>0)throw new Error("Invalid startLine");let s=(0,VA.default)({startLine:t,markers:n}),o=(0,WA.default)({fence:e}),l=(0,HA.default)({tokenizers:i}),u=(0,p0.getJoiner)(r);return function(a){let c=[];for(let p of(0,UA.splitLines)(a)){let d=s(p);if(d===null)continue;let h=o(d),g=h.slice(1).map(l);c.push({description:u(h[0],n),tags:g,source:d,problems:g.reduce((f,m)=>f.concat(m.problems),[])})}return c}}Bg.default=YA});var h0=T(Ug=>{"use strict";Object.defineProperty(Ug,"__esModule",{value:!0});function JA(t){return t.start+t.delimiter+t.postDelimiter+t.tag+t.postTag+t.type+t.postType+t.name+t.postName+t.description+t.end+t.lineEnd}function QA(){return t=>t.source.map(({tokens:e})=>JA(e)).join(`
|
98
98
|
`)}Ug.default=QA});var m0=T(No=>{"use strict";var ZA=No&&No.__rest||function(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(r[n[i]]=t[n[i]]);return r};Object.defineProperty(No,"__esModule",{value:!0});var f0=fs(),XA=In(),eO={start:0,tag:0,type:0,name:0},tO=(t=f0.Markers)=>(e,{tokens:r})=>({start:r.delimiter===t.start?r.start.length:e.start,tag:Math.max(e.tag,r.tag.length),type:Math.max(e.type,r.type.length),name:Math.max(e.name,r.name.length)}),ni=t=>"".padStart(t," ");function nO(t=f0.Markers){let e=!1,r;function n(i){let s=Object.assign({},i.tokens);s.tag!==""&&(e=!0);let o=s.tag===""&&s.name===""&&s.type===""&&s.description==="";if(s.end===t.end&&o)return s.start=ni(r.start+1),Object.assign(Object.assign({},i),{tokens:s});switch(s.delimiter){case t.start:s.start=ni(r.start);break;case t.delim:s.start=ni(r.start+1);break;default:s.delimiter="",s.start=ni(r.start+2)}if(!e)return s.postDelimiter=s.description===""?"":" ",Object.assign(Object.assign({},i),{tokens:s});let l={delim:!1,tag:!1,type:!1,name:!1};return s.description===""&&(l.name=!0,s.postName="",s.name===""&&(l.type=!0,s.postType="",s.type===""&&(l.tag=!0,s.postTag="",s.tag===""&&(l.delim=!0)))),s.postDelimiter=l.delim?"":" ",l.tag||(s.postTag=ni(r.tag-s.tag.length+1)),l.type||(s.postType=ni(r.type-s.type.length+1)),l.name||(s.postName=ni(r.name-s.name.length+1)),Object.assign(Object.assign({},i),{tokens:s})}return i=>{var{source:s}=i,o=ZA(i,["source"]);return r=s.reduce(tO(t),Object.assign({},eO)),(0,XA.rewireSource)(Object.assign(Object.assign({},o),{source:s.map(n)}))}}No.default=nO});var g0=T($o=>{"use strict";var rO=$o&&$o.__rest||function(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(r[n[i]]=t[n[i]]);return r};Object.defineProperty($o,"__esModule",{value:!0});var iO=In(),sO=t=>e=>e.slice(t),oO=t=>{let e="".padStart(t," ");return r=>r+e};function aO(t){let e,r=i=>{if(e===void 0){let s=t-i.length;e=s>0?oO(s):sO(-s)}return e(i)},n=i=>Object.assign(Object.assign({},i),{tokens:Object.assign(Object.assign({},i.tokens),{start:r(i.tokens.start)})});return i=>{var{source:s}=i,o=rO(i,["source"]);return(0,iO.rewireSource)(Object.assign(Object.assign({},o),{source:s.map(n)}))}}$o.default=aO});var y0=T(Bo=>{"use strict";var lO=Bo&&Bo.__rest||function(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(r[n[i]]=t[n[i]]);return r};Object.defineProperty(Bo,"__esModule",{value:!0});var uO=In();function cO(t){function e(r){return Object.assign(Object.assign({},r),{tokens:Object.assign(Object.assign({},r.tokens),{lineEnd:t==="LF"?"":"\r"})})}return r=>{var{source:n}=r,i=lO(r,["source"]);return(0,uO.rewireSource)(Object.assign(Object.assign({},i),{source:n.map(e)}))}}Bo.default=cO});var b0=T(Nu=>{"use strict";Object.defineProperty(Nu,"__esModule",{value:!0});Nu.flow=void 0;function pO(...t){return e=>t.reduce((r,n)=>n(r),e)}Nu.flow=pO});var S0=T(Vg=>{"use strict";Object.defineProperty(Vg,"__esModule",{value:!0});var dO=In(),_0={line:0,start:0,delimiter:0,postDelimiter:0,tag:0,postTag:0,name:0,postName:0,type:0,postType:0,description:0,end:0,lineEnd:0},v0={lineEnd:"CR"},Wg=Object.keys(_0),w0=t=>(0,dO.isSpace)(t)?`{${t.length}}`:t,hO=t=>"|"+t.join("|")+"|",fO=(t,e)=>Object.keys(e).map(r=>w0(e[r]).padEnd(t[r]));function mO({source:t}){var e,r;if(t.length===0)return"";let n=Object.assign({},_0);for(let s of Wg)n[s]=((e=v0[s])!==null&&e!==void 0?e:s).length;for(let{number:s,tokens:o}of t){n.line=Math.max(n.line,s.toString().length);for(let l in o)n[l]=Math.max(n[l],w0(o[l]).length)}let i=[[],[]];for(let s of Wg)i[0].push(((r=v0[s])!==null&&r!==void 0?r:s).padEnd(n[s]));for(let s of Wg)i[1].push("-".padEnd(n[s],"-"));for(let{number:s,tokens:o}of t){let l=s.toString().padStart(n.line);i.push([l,...fO(n,o)])}return i.map(hO).join(`
|
@@ -103,7 +103,7 @@ ${e}
|
|
103
103
|
*/`),[r]=e;if(r.tags.length>0){let{descriptions:n,args:i,returns:s,examples:o}=bD(r);return ry.SignatureDefinitionFunction.parse({type:ry.SignatureDefinitionBaseType.Function,arguments:t.getArguments().map((l,u)=>{let a=l.getLabel(),c=l.getTypes().map(d=>d.toString()),p=l.isOptional();return sn(tt({types:c,opt:p},i[u]),{label:a})}),returns:s,description:n,example:o})}return t}si.enrichWithMetaInformation=vD});var sy=T(Ju=>{"use strict";Object.defineProperty(Ju,"__esModule",{value:!0});Ju.createResolveChain=void 0;var ht=pe();function $r(t,e,r=null,n=!1){switch(t.type){case ht.ASTType.ParenthesisExpression:{$r(t.expression,e,r);return}case ht.ASTType.MemberExpression:{let i=t;$r(i.base,e),e.push({ref:t,getter:i.identifier,unary:r,isInCallExpression:n});return}case ht.ASTType.IndexExpression:{let i=t;$r(i.base,e),e.push({ref:t,getter:i.index,unary:r,isInCallExpression:n});return}case ht.ASTType.CallStatement:{$r(t.expression,e,r,!0);return}case ht.ASTType.CallExpression:{$r(t.base,e,r,!0);return}case ht.ASTType.NegationExpression:case ht.ASTType.BinaryNegatedExpression:case ht.ASTType.UnaryExpression:{let i=t;$r(i.argument,e,i);return}case ht.ASTType.Identifier:{e.push({ref:t,getter:t,unary:r,isInCallExpression:n});return}case ht.ASTType.NumericLiteral:case ht.ASTType.StringLiteral:case ht.ASTType.NilLiteral:case ht.ASTType.BooleanLiteral:case ht.ASTType.MapConstructorExpression:case ht.ASTType.ListConstructorExpression:case ht.ASTType.BinaryExpression:case ht.ASTType.LogicalExpression:case ht.ASTType.ComparisonGroupExpression:{e.push({ref:t,value:t,unary:r,isInCallExpression:n});return}case ht.ASTType.SliceExpression:$r(t.base,e),e.push({ref:t,unary:r,isInCallExpression:n})}}function _D(t){let e=[];return $r(t,e),e}Ju.createResolveChain=_D});var D0=T(oy=>{function O0(t,e){return t>e?1:-1}oy.hash=function t(e,r){var n=5381;if(typeof e=="object"&&e!==null&&(e.toString===Object.prototype.toString||e.toString===Array.prototype.toString)){r||(r=new WeakSet);for(var i=Object.keys(e).sort(O0),s=0;s<i.length;s++){var o=i[s],l=e[o];if(n=33*n^t(o,r),typeof l=="object"&&l!==null&&(e.toString===Object.prototype.toString||e.toString===Array.prototype.toString)){if(r.has(l))continue;r.add(l)}n=33*n^t(l,r)}return 33*n^t(e.constructor,r)}var u=typeof e;try{e instanceof Date?u+=e.getTime():u+=String(e)}catch(c){u+=String(Object.assign({},e))}for(var a=0;a<u.length;a++)n=33*n^u.charCodeAt(a);return n},oy.sortNumbers=O0});var uy=T(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.ObjectSet=ys.ObjectSetIterator=void 0;var ay=D0(),Qu=class{constructor(e){let r=this;r.value=e,r.index=0}next(){let e=this;return e.index>=e.value.length?{value:null,done:!0}:{value:e.value[e.index++],done:!1}}};ys.ObjectSetIterator=Qu;var ly=class{constructor(e){let n=(e?Array.from(e):[]).map(i=>[(0,ay.hash)(i),i]);this._map=new Map(n),this._first=null,this._last=null,n.length>0&&(this._first=n[0][0],this._last=n[n.length-1][0])}[Symbol.iterator](){return new Qu(Array.from(this._map.values()))}first(){var e;return this._first!=null&&(e=this._map.get(this._first))!=null?e:null}last(){var e;return this._last!=null&&(e=this._map.get(this._last))!=null?e:null}toArray(){return Array.from(this._map.values())}add(e){var n;let r=(0,ay.hash)(e);return this._map.set(r,e),(n=this._first)!=null||(this._first=r),this._last=r,this}delete(e){let r=(0,ay.hash)(e);return this._map.delete(r)}extend(e){return e._map.forEach((r,n)=>{var i;this._map.set(n,r),(i=this._first)!=null||(this._first=n),this._last=n}),this}toJSON(){return Array.from(this._map.values())}clear(){this._map.clear()}};ys.ObjectSet=ly});var cy=T(Zu=>{"use strict";Object.defineProperty(Zu,"__esModule",{value:!0});Zu.DEFAULT_CUSTOM_FUNCTION_DESCRIPTION=void 0;Zu.DEFAULT_CUSTOM_FUNCTION_DESCRIPTION="This is a custom method. You can add a description for this method by adding a comment above or after the function.\n```\nmyFunction = function(a, b, c) // This function does xyz\n```\nor\n```\n/*\n This function does xyz\n*/\nmyFunction = function(a, b, c)\n```"});var oi=T(zo=>{"use strict";Object.defineProperty(zo,"__esModule",{value:!0});zo.CompletionItemKind=void 0;var wD;(function(t){t.Variable="var",t.Property="property",t.Function="function",t.Literal="literal",t.Constant="constant",t.Internal="internal",t.InternalFunction="internal-function",t.InternalProperty="internal-property",t.ListConstructor="list",t.MapConstructor="map",t.Expression="expr",t.Unknown="unknown"})(wD=zo.CompletionItemKind||(zo.CompletionItemKind={}))});var ai=T(sr=>{"use strict";Object.defineProperty(sr,"__esModule",{value:!0});sr.IsaPropertyPattern=sr.IdentifierPropertyPattern=sr.PropertyType=void 0;var py;(function(t){t.Type="t",t.Identifier="i"})(py=sr.PropertyType||(sr.PropertyType={}));sr.IdentifierPropertyPattern=`${py.Identifier}:`;sr.IsaPropertyPattern=`${py.Identifier}:__isa`});var dy=T(zn=>{"use strict";Object.defineProperty(zn,"__esModule",{value:!0});zn.isResolveChainItemWithValue=zn.isResolveChainItemWithIdentifier=zn.isResolveChainItemWithMember=zn.isResolveChainItemWithIndex=void 0;var mn=pe(),SD=t=>t!=null&&t.ref.type===mn.ASTType.IndexExpression;zn.isResolveChainItemWithIndex=SD;var xD=t=>t!=null&&t.ref.type===mn.ASTType.MemberExpression;zn.isResolveChainItemWithMember=xD;var kD=t=>t!=null&&t.ref.type===mn.ASTType.Identifier;zn.isResolveChainItemWithIdentifier=kD;var TD=new Set([mn.ASTType.NumericLiteral,mn.ASTType.StringLiteral,mn.ASTType.NilLiteral,mn.ASTType.BooleanLiteral,mn.ASTType.MapConstructorExpression,mn.ASTType.ListConstructorExpression,mn.ASTType.BinaryExpression,mn.ASTType.LogicalExpression,mn.ASTType.ComparisonGroupExpression]),ID=t=>t!=null&&TD.has(t.ref.type);zn.isResolveChainItemWithValue=ID});var hy=T(Xu=>{"use strict";Object.defineProperty(Xu,"__esModule",{value:!0});Xu.isSignatureDefinitionFunction=void 0;var ED=Ht(),RD=t=>t.getType().type===ED.SignatureDefinitionBaseType.Function;Xu.isSignatureDefinitionFunction=RD});var fy=T(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});ec.aggregateEntity=void 0;var PD=t=>{let e=new Set,r=t;for(;r!=null&&!e.has(r);)e.add(r),r=r.getIsa();return Array.from(e)};ec.aggregateEntity=PD});var Ko=T(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});tc.injectIdentifers=void 0;var CD=ai(),AD=fy(),OD=(t,e)=>{let r=(0,AD.aggregateEntity)(e);for(let n=0;n<r.length;n++)r[n].values.forEach((s,o)=>{if(o.startsWith(CD.IdentifierPropertyPattern)){let l=o.slice(2);if(t.has(l))return;t.set(l,{kind:s.kind,line:s.source===e.source?s.line:-1})}})};tc.injectIdentifers=OD});var rc=T(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});nc.isEligibleForProperties=void 0;var my=Ht(),DD=t=>t.types.has(my.SignatureDefinitionBaseType.Map)||t.types.has(my.SignatureDefinitionBaseType.List)||t.types.has(my.SignatureDefinitionBaseType.Any);nc.isEligibleForProperties=DD});var sc=T(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});ic.lookupProperty=void 0;var LD=rc(),jD=(t,e,r)=>{let n=e,i=new Set([n]);for(;(0,LD.isEligibleForProperties)(n);){let s=n.values.get(`${t}:${r}`);if(s!=null)return s;let o=n.getIsa();if(o==null||i.has(o))break;i.add(o),n=o}return null};ic.lookupProperty=jD});var gy=T(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});oc.mergeUnique=void 0;function MD(t,e,r=1e4){let n=Array.from(new Set([...t,...e]));if(t.length=0,n.length<=r){Array.prototype.push.apply(t,n);return}for(let i=0;i<n.length;i+=r)Array.prototype.push.apply(t,n.slice(i,i+r))}oc.mergeUnique=MD});var bs=T(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});lc.Entity=void 0;var Je=Ht(),li=oi(),gn=ai(),qD=hy(),FD=Ko(),Go=rc(),ac=sc(),ND=gy(),L0=uy(),or=class t{static resolveEntity(e,r,n=!1){if(r.isCallable()&&!n){let i=r.getReturnEntity();if(i!==null)return i;let s=r.getCallableReturnTypes();return s?new t({source:r.source,kind:li.CompletionItemKind.Variable,container:e,label:r.label,context:r.context}).addTypesWithMeta(s):new t({source:r.source,kind:li.CompletionItemKind.Variable,container:e,label:r.label,context:r.context}).addType(Je.SignatureDefinitionBaseType.Any)}return r}get source(){return this._source}get definitions(){return this._definitions}get kind(){return this._kind}get line(){return this._line}get signatureDefinitions(){return this._signatureDefinitions}get context(){return this._context}get label(){return this._label}get types(){return this._types}get values(){return this._values}constructor(e){var r,n,i,s,o,l,u,a,c,p;this._source=e.source,this._isAPI=(r=e.isAPI)!=null?r:!1,this._isFromSignature=(n=e.isFromSignature)!=null?n:!1,this._kind=e.kind,this._line=(i=e.line)!=null?i:-1,this._label=(s=e.label)!=null?s:"anonymous",this._signatureDefinitions=(o=e.signatureDefinitions)!=null?o:new L0.ObjectSet,this._types=(l=e.types)!=null?l:new Set,this._values=(u=e.values)!=null?u:new Map,this._context=(a=e.context)!=null?a:null,this._container=e.container,this._definitions=(c=e.definitions)!=null?c:[],this._returnEntity=(p=e.returnEntity)!=null?p:null}isFromSignature(){return this._isFromSignature}hasContext(){return this._context!=null&&!this._context.isAPI}getIsa(){var e;return(e=this._values.get(gn.IsaPropertyPattern))!=null?e:null}hasIsa(){return this._values.has(gn.IsaPropertyPattern)}isAPI(){return this._isAPI}isCallable(){return this._types.has(Je.SignatureDefinitionBaseType.Function)}getCallableReturnTypes(){if(!this.isCallable())return null;let e=Array.from(this._signatureDefinitions).filter(r=>(0,qD.isSignatureDefinitionFunction)(r));return e.length===0?null:e.flatMap(r=>r.getReturns())}addSignatureType(e){return this._signatureDefinitions.add(e),this.addType(e.getType().type),this}setReturnEntity(e){return this._returnEntity=e,this}getReturnEntity(){return this._returnEntity}setKind(e){return this._kind=e,this}setLine(e){return this._line=e,this}setLabel(e){return this._label=e,this}setContext(e){return this._context=e,this}addType(e){return this._types.add(e),this}addTypes(e){for(let r=0;r<e.length;r++)this._types.add(e[r]);return this}addTypeWithMeta(e){var r,n;if(this._types.add(e.type),e.type===Je.SignatureDefinitionBaseType.Map||e.type===Je.SignatureDefinitionBaseType.List){let i=e.type===Je.SignatureDefinitionBaseType.Map?(r=e.keyType.type)!=null?r:Je.SignatureDefinitionBaseType.Any:Je.SignatureDefinitionBaseType.Number,s=new t({source:this._source,kind:li.CompletionItemKind.Property,container:this._container,context:this});e.valueType.type===Je.SignatureDefinitionBaseType.Map||e.valueType.type===Je.SignatureDefinitionBaseType.List?s.addTypeWithMeta(e.valueType):s.addType((n=e.valueType.type)!=null?n:Je.SignatureDefinitionBaseType.Any),t.handlers.type.setProperty(this,this._container,i,s)}return this}addTypesWithMeta(e){for(let r=0;r<e.length;r++)this.addTypeWithMeta(e[r]);return this}hasProperty(e){switch(typeof e){case"object":return t.handlers.entity.hasProperty(this,this._container,e);default:return t.handlers.identifier.hasProperty(this,this._container,e)}}resolveProperty(e,r=!1){switch(typeof e){case"object":return t.handlers.entity.resolveProperty(this,this._container,e,r);default:return t.handlers.identifier.resolveProperty(this,this._container,e,r)}}setProperty(e,r,n=!1){switch(typeof e){case"object":return t.handlers.entity.setProperty(this,this._container,e,r,n);default:return t.handlers.identifier.setProperty(this,this._container,e,r,n)}}extend(e,r=!1,n=!1){if(e===this)return this;let i=new WeakSet([e]),s=[{target:this,source:e}];for(;s.length>0;){let o=s.pop(),l=o.target,u=o.source;l._isFromSignature=!1,l._signatureDefinitions.extend(u._signatureDefinitions),r&&(n?l._definitions=[...l._definitions,...u._definitions]:(0,ND.mergeUnique)(l._definitions,u._definitions)),l.addTypes(Array.from(u.types)),u.values.forEach((a,c)=>{let p=l._values.get(c);p==null?l._values.set(c,a.copy({container:l._container,context:l,deepCopy:n})):i.has(a)||(i.add(a),s.push({target:p,source:a}))})}return this}insertSignature(e){let r=Object.keys(e.getDefinitions());this.addType(Je.SignatureDefinitionBaseType.Map);for(let n=0;n<r.length;n++){let i=r[n],s=e.getDefinition(i),o=new t({source:this._source,label:i,kind:s.getType().type===Je.SignatureDefinitionBaseType.Function?li.CompletionItemKind.InternalFunction:li.CompletionItemKind.InternalProperty,container:this._container,isFromSignature:!0});o.addSignatureType(s),this.setProperty(i,o)}return this}getPropertyTypes(){let e=new Set;return this._values.forEach((r,n)=>{let[i,s]=n.split(":");i===gn.PropertyType.Type?e.add(s):e.add(Je.SignatureDefinitionBaseType.String)}),Array.from(e)}getValueTypes(){let e=new Set;return this._values.forEach(r=>{r.types.forEach(n=>{e.add(n)})}),Array.from(e)}getAvailableIdentifier(){let e=new Map;return this._types.forEach(r=>{this._container.getAvailableIdentifier(r).forEach((i,s)=>{e.set(s,i)})}),(0,FD.injectIdentifers)(e,this),e}toJSON(e=new WeakMap){if(e.has(this))return e.get(this);let r={};return e.set(this,r),r.kind=this.kind,r.signatureDefinitions=this._signatureDefinitions.toJSON(),r.types=Array.from(this._types),r.values=Array.from(this._values).reduce((n,[i,s])=>(n[i]=s==null?void 0:s.toJSON(e),n),{}),r}toMeta(){let e=[];return this.types.forEach(r=>{let n={type:r};switch(r){case Je.SignatureDefinitionBaseType.Map:{let i=this.getPropertyTypes();i.length===1?n.keyType=i[0]:n.keyType=Je.SignatureDefinitionBaseType.Any;let s=this.getValueTypes();s.length===1?n.valueType=s[0]:n.valueType=Je.SignatureDefinitionBaseType.Any;break}case Je.SignatureDefinitionBaseType.List:{let i=t.handlers.type.resolveProperty(this,this._container,Je.SignatureDefinitionBaseType.Number);i!=null&&i.types.size===1?n.valueType=i.types.values().next().value:n.valueType=Je.SignatureDefinitionBaseType.Any;break}}e.push(n)}),e}copy(e={}){var s,o,l,u,a,c,p,d,h,g;let r=new t({source:(s=e.source)!=null?s:this._source,kind:(o=e.kind)!=null?o:this._kind,line:(l=e.line)!=null?l:this._line,isFromSignature:(u=e.isFromSignature)!=null?u:this._isFromSignature,isAPI:(a=e.isAPI)!=null?a:this._isAPI,container:(c=e.container)!=null?c:this._container,label:(p=e.label)!=null?p:this._label,context:(d=e.context)!=null?d:this._context,signatureDefinitions:new L0.ObjectSet(Array.from(this._signatureDefinitions,f=>f.copy())),types:new Set(this._types),returnEntity:this._returnEntity,values:(h=e.values)!=null?h:this.values,definitions:(g=e.definitions)!=null?g:this._definitions});if(!e.deepCopy)return r;let n=new WeakMap;function i(f,m){let b=n.get(m);if(b)return b;let v=m.copy({container:e.container,line:e.line,context:f,values:new Map});return n.set(m,v),m.values.forEach((_,w)=>{v._values.set(w,i(v,_))}),v._definitions=[...m.definitions],v}return r._values=new Map,this._values.forEach((f,m)=>{r._values.set(m,i(r,f))}),r._definitions=[...this._definitions],r}};lc.Entity=or;or.handlers={identifier:{hasProperty(t,e,r){return!!(0,ac.lookupProperty)(gn.PropertyType.Identifier,t,r)||!t.isAPI()&&!!e.getDefinition(Array.from(t.types),r,!0)},resolveProperty(t,e,r,n=!1){var s;let i=(s=(0,ac.lookupProperty)(gn.PropertyType.Identifier,t,r))!=null?s:null;return i==null?t.isAPI()?null:e.getDefinition(Array.from(t.types),r,n):or.resolveEntity(e,i,n)},setProperty(t,e,r,n,i=!1){if(!(0,Go.isEligibleForProperties)(t))return!1;let s=`${gn.PropertyType.Identifier}:${r}`,o=t.values.get(s);return o?o.extend(n,i):t.values.set(s,n.copy({container:e,label:r,context:t,definitions:i?n.definitions:[]})),!0}},entity:{hasProperty(t,e,r){if(!(0,Go.isEligibleForProperties)(t))return!1;for(let n of r.types)if(t.values.has(`${gn.PropertyType.Type}:${n}`))return!0;return!1},resolveProperty(t,e,r,n=!1){if(!(0,Go.isEligibleForProperties)(t))return new or({source:t.source,kind:li.CompletionItemKind.Variable,container:e,label:r.label,context:t}).addType(Je.SignatureDefinitionBaseType.Any);let i=new or({source:r.source,kind:li.CompletionItemKind.Variable,container:e,label:r.label,context:t});return r.types.has(Je.SignatureDefinitionBaseType.Any)?t.values.forEach(s=>{i.extend(s)}):r.types.forEach(s=>{let o=t.values.get(`${gn.PropertyType.Type}:${s}`);o&&i.extend(o)}),i.types.size===0&&i.addType(Je.SignatureDefinitionBaseType.Any),or.resolveEntity(e,i,n)},setProperty(t,e,r,n,i=!1){return(0,Go.isEligibleForProperties)(t)?(r.types.forEach(s=>{let o=`${gn.PropertyType.Type}:${s}`,l=t.values.get(o);l?l.extend(n,i):t.values.set(o,n.copy({container:e,label:s,context:t,definitions:i?n.definitions:[]}))}),!0):!1}},type:{hasProperty(t,e,r){return!!(0,ac.lookupProperty)(gn.PropertyType.Type,t,r)},resolveProperty(t,e,r,n=!1){var s;let i=(s=(0,ac.lookupProperty)(gn.PropertyType.Type,t,r))!=null?s:null;return i==null?null:or.resolveEntity(e,i,n)},setProperty(t,e,r,n,i=!1){if(!(0,Go.isEligibleForProperties)(t))return!1;let s=`${gn.PropertyType.Type}:${r}`,o=t.values.get(s);return o?o.extend(n,i):t.values.set(s,n.copy({container:e,label:r,context:t,definitions:i?n.definitions:[]})),!0}}}});var vy=T(pc=>{"use strict";Object.defineProperty(pc,"__esModule",{value:!0});pc.Scope=void 0;var uc=Ht(),ui=oi(),$D=ai(),yy=Ko(),cc=bs(),by=class t{get source(){return this._source}get definitions(){return[]}get signatureDefinitions(){return null}get kind(){return ui.CompletionItemKind.Constant}get line(){return this._locals.line}get label(){return this._locals.label}get context(){return this._locals.context}get types(){return new Set(uc.SignatureDefinitionBaseType.Map)}get values(){return this._locals.values}get globals(){return this._globals}get outer(){var e,r;return(r=(e=this._parent)==null?void 0:e.locals)!=null?r:null}get locals(){return this._locals}constructor(e){var r,n;this._source=e.source,this._container=e.container,this._parent=(r=e.parent)!=null?r:null,this._globals=e.globals,this._locals=(n=e.locals)!=null?n:new cc.Entity({source:this._source,kind:ui.CompletionItemKind.Constant,container:this._container,label:"locals"}).addType(uc.SignatureDefinitionBaseType.Map)}getIsa(){return null}hasIsa(){return!1}setCustomType(e,r){this._container.setCustomType(e,r)}addSignatureType(){throw new Error("Cannot add signature type to scope!")}hasProperty(e){return this._locals.hasProperty(e)}resolveProperty(e,r){return this._locals.resolveProperty(e,r)}resolveNamespace(e,r=!1){var i,s,o;if(typeof e!="string")throw new Error("Invalid property type for scope!");if(e==="locals")return this._locals;if(e==="outer")return(s=(i=this._parent)==null?void 0:i.locals)!=null?s:this._globals;if(e==="globals")return this._globals;let n=`${$D.PropertyType.Identifier}:${e}`;if(this._locals.values.has(n)){let l=this._locals.values.get(n);return cc.Entity.resolveEntity(this._container,l,r)}else if((o=this._parent)!=null&&o.locals.values.has(n)){let l=this._parent.locals.values.get(n);return cc.Entity.resolveEntity(this._container,l,r)}else if(this._globals.values.has(n)){let l=this._globals.values.get(n);return cc.Entity.resolveEntity(this._container,l,r)}return this._container.getGeneralDefinition(e,r)}setProperty(e,r){return this._locals.setProperty(e,r)}extend(e){return this._locals.extend(e),this}addType(){throw new Error("Scope cannot get type assigned!")}addTypes(){throw new Error("Scope cannot get types assigned!")}addTypeWithMeta(){throw new Error("Scope cannot get meta type assigned!")}addTypesWithMeta(){throw new Error("Scope cannot get meta types assigned!")}setReturnEntity(){throw new Error("Scope cannot set return entity!")}getReturnEntity(){throw new Error("Scope cannot get return entity!")}setKind(e){return this._locals.setKind(e),this}setLine(e){return this._locals.setLine(e),this}setLabel(e){return this._locals.setLabel(e),this}setContext(e){return this._locals.setContext(e),this}insertSignature(e){return this._locals.insertSignature(e),this}isAPI(){return!1}hasContext(){return!1}isFromSignature(){return!1}isCallable(){return!1}getCallableReturnTypes(){return null}getPropertyTypes(){return this._locals.getPropertyTypes()}getValueTypes(){return this._locals.getValueTypes()}getAvailableIdentifier(){let e=new Map([["globals",{kind:ui.CompletionItemKind.Constant,line:-1}],["locals",{kind:ui.CompletionItemKind.Constant,line:-1}],["outer",{kind:ui.CompletionItemKind.Constant,line:-1}],...this._container.getAvailableIdentifier(uc.SignatureDefinitionBaseType.General)]);return this._locals!==this._globals&&(0,yy.injectIdentifers)(e,this._globals),this._parent&&(0,yy.injectIdentifers)(e,this._parent.locals),(0,yy.injectIdentifers)(e,this._locals),this.isSelfAvailable()&&e.set("self",{kind:ui.CompletionItemKind.Constant,line:-1}),this.isSuperAvailable()&&e.set("super",{kind:ui.CompletionItemKind.Constant,line:-1}),e}isSelfAvailable(){return this._locals.context!=null&&this._locals.context.types.has(uc.SignatureDefinitionBaseType.Map)}isSuperAvailable(){return this.isSelfAvailable()&&this._locals.context.hasProperty("__isa")}toJSON(){return this._locals.toJSON()}toMeta(){return this._locals.toMeta()}copy(e={}){var r;return new t({source:this._source,container:(r=e.container)!=null?r:this._container,parent:this._parent.copy({container:e.container,deepCopy:!0}),globals:this._globals.copy({container:e.container,deepCopy:!0}),locals:this._locals.copy(sn(tt({},e),{deepCopy:!0}))})}};pc.Scope=by});var vs=T(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.GreybelKeyword=void 0;var BD;(function(t){t.Envar="#envar",t.Import="#import",t.Include="#include",t.ImportWithComment="//import",t.IncludeWithComment="//include",t.Debugger="debugger",t.Line="#line",t.File="#filename",t.Inject="#inject"})(BD=Yo.GreybelKeyword||(Yo.GreybelKeyword={}))});var Sy=T(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});var ci=pe(),UD=vs(),_y=class extends ci.LexerValidator{constructor(){super(...arguments),this.isKeyword=Set.prototype.has.bind(new Set([...Object.values(ci.Keyword),...Object.values(UD.GreybelKeyword)]))}isIdentifierStart(e){return super.isIdentifierStart(e)||e===ci.CharacterCode.HASH}isMultilineComment(e,r){return ci.CharacterCode.SLASH===e&&ci.CharacterCode.ASTERISK===r}isMultilineCommentEnd(e,r){return ci.CharacterCode.ASTERISK===e&&ci.CharacterCode.SLASH===r}isComment(e,r){return super.isComment(e,r)||this.isMultilineComment(e,r)}};wy.default=_y});var xy=T(Jo=>{"use strict";Object.defineProperty(Jo,"__esModule",{value:!0});Jo.CharacterCode=void 0;var WD;(function(t){t[t.VERTICAL_LINE=124]="VERTICAL_LINE",t[t.AMPERSAND=38]="AMPERSAND"})(WD=Jo.CharacterCode||(Jo.CharacterCode={}))});var _s=T(Qo=>{"use strict";Object.defineProperty(Qo,"__esModule",{value:!0});Qo.Operator=void 0;var VD;(function(t){t.BitwiseAnd="&",t.BitwiseOr="|",t.LeftShift="<<",t.RightShift=">>",t.UnsignedRightShift=">>>"})(VD=Qo.Operator||(Qo.Operator={}))});var Ty=T(Zo=>{"use strict";var HD=Zo&&Zo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Zo,"__esModule",{value:!0});var En=pe(),zD=HD(Sy()),j0=xy(),M0=vs(),ky=_s();function q0(t){let e=this.content[this.index];return this.index+=e.length,this.createPunctuator(e,t)}var dc=class t extends En.Lexer{constructor(e,r={}){r.validator=r.validator||new zD.default,super(e,r)}scan(e,r){let n=t.greybelScanHandlers[e];return n?n.call(this,r)||super.scan(e,r):super.scan(e,r)}scanMultilineComment(e){let r=this,n=r.line,i=r.lineStart,s=r.index,o=r.offset,l=r.offset,u=!1;for(;r.index<r.length;){let p=r.codeAt();if(r.validator.isEndOfLine(p))r.validator.isWinNewline(p,r.codeAt(1))&&r.index++,r.line++,l=r.index+1;else if(r.validator.isMultilineCommentEnd(r.codeAt(),r.codeAt(1))){u=!0;break}r.index++}if(!u)return r.raise("Unexpected end of file in multiline comment.",new En.ASTRange(new En.ASTPosition(n,s-o+1),new En.ASTPosition(r.line,r.index-l+3)));let a=r.content.slice(s+2,r.index);r.index+=2;let c=new En.Token({type:En.TokenType.Comment,value:a,line:n,lineStart:i,range:[r.tokenStart,r.index],offsetRange:[o,l],afterSpace:e,lastLine:r.line,lastLineStart:r.lineStart});return r.offset=l,r.snapshot.enqueue(c),c}scanComment(e){let r=this,n=r.validator;return r.content.startsWith(M0.GreybelKeyword.ImportWithComment,r.index)||r.content.startsWith(M0.GreybelKeyword.IncludeWithComment,r.index)?(r.index++,r.scanIdentifierOrKeyword(e)):n.isMultilineComment(r.codeAt(),r.codeAt(1))?r.scanMultilineComment(e):super.scanComment(e)}};Zo.default=dc;dc.greybelScanHandlers={[En.CharacterCode.ARROW_LEFT]:function(e){if(En.CharacterCode.ARROW_LEFT===this.codeAt(1))return this.scanPunctuator(ky.Operator.LeftShift,e)},[En.CharacterCode.ARROW_RIGHT]:function(e){if(En.CharacterCode.ARROW_RIGHT===this.codeAt(1))return En.CharacterCode.ARROW_RIGHT===this.codeAt(2)?this.scanPunctuator(ky.Operator.UnsignedRightShift,e):this.scanPunctuator(ky.Operator.RightShift,e)},[j0.CharacterCode.AMPERSAND]:q0,[j0.CharacterCode.VERTICAL_LINE]:q0}});var hc=T(Xo=>{"use strict";Object.defineProperty(Xo,"__esModule",{value:!0});Xo.ASTType=void 0;var KD;(function(t){t.FeatureImportExpression="FeatureImportExpression",t.FeatureIncludeExpression="FeatureIncludeExpression",t.FeatureEnvarExpression="FeatureEnvarExpression",t.FeatureInjectExpression="FeatureInjectExpression",t.FeatureDebuggerExpression="FeatureDebuggerExpression",t.FeatureLineExpression="FeatureLineExpression",t.FeatureFileExpression="FeatureFileExpression"})(KD=Xo.ASTType||(Xo.ASTType={}))});var Ey=T(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});fc.ASTChunkGreybel=void 0;var GD=pe(),Iy=class t extends GD.ASTChunk{constructor(e){super(e),this.imports=e.imports||[],this.includes=e.includes||[],this.injects=e.injects||[]}clone(){return new t({literals:this.literals.map(e=>e.clone()),scopes:this.scopes.map(e=>e.clone()),imports:this.imports.map(e=>e.clone()),includes:this.includes.map(e=>e.clone()),injects:this.injects.map(e=>e.clone()),lines:this.lines,start:this.start,end:this.end,range:this.range,scope:this.scope})}};fc.ASTChunkGreybel=Iy});var Dy=T(yn=>{"use strict";Object.defineProperty(yn,"__esModule",{value:!0});yn.ASTFeatureFileExpression=yn.ASTFeatureInjectExpression=yn.ASTFeatureEnvarExpression=yn.ASTFeatureIncludeExpression=yn.ASTFeatureImportExpression=void 0;var ea=pe(),ta=hc(),Ry=class t extends ea.ASTBase{constructor(e){super(ta.ASTType.FeatureImportExpression,e),this.name=e.name,this.path=e.path,this.chunk=e.chunk,this.namespace=e.namespace}toString(){return`FeatureImportExpression[${this.start}-${this.end}][name = ${this.name}, path = ${this.path}]`}clone(){return new t({name:this.name.clone(),path:this.path,chunk:this.chunk.clone(),namespace:this.namespace,start:this.start,end:this.end,range:this.range,scope:this.scope})}};yn.ASTFeatureImportExpression=Ry;var Py=class t extends ea.ASTBase{constructor(e){super(ta.ASTType.FeatureIncludeExpression,e),this.path=e.path,this.chunk=e.chunk,this.namespace=e.namespace}toString(){return`FeatureIncludeExpression[${this.start}-${this.end}][path = ${this.path}]`}clone(){return new t({path:this.path,chunk:this.chunk.clone(),namespace:this.namespace,start:this.start,end:this.end,range:this.range,scope:this.scope})}};yn.ASTFeatureIncludeExpression=Py;var Cy=class t extends ea.ASTBase{constructor(e){super(ta.ASTType.FeatureEnvarExpression,e),this.name=e.name}toString(){return`FeatureEnvarExpression[${this.start}-${this.end}][name = ${this.name}]`}clone(){return new t({name:this.name,start:this.start,end:this.end,range:this.range,scope:this.scope})}};yn.ASTFeatureEnvarExpression=Cy;var Ay=class t extends ea.ASTBase{constructor(e){super(ta.ASTType.FeatureInjectExpression,e),this.path=e.path}toString(){return`FeatureInjectExpression[${this.start}-${this.end}][path = ${this.path}]`}clone(){return new t({path:this.path,start:this.start,end:this.end,range:this.range,scope:this.scope})}};yn.ASTFeatureInjectExpression=Ay;var Oy=class t extends ea.ASTBase{constructor(e){super(ta.ASTType.FeatureFileExpression,e),this.filename=e.filename}toString(){return`FeatureFileExpression[${this.start}-${this.end}][path = ${this.filename}]`}clone(){return new t({filename:this.filename,start:this.start,end:this.end,range:this.range,scope:this.scope})}};yn.ASTFeatureFileExpression=Oy});var My=T(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});vt.ASTFeatureInjectExpression=vt.ASTFeatureIncludeExpression=vt.ASTFeatureImportExpression=vt.ASTFeatureFileExpression=vt.ASTFeatureEnvarExpression=vt.ASTChunkGreybel=vt.ASTType=vt.ASTProvider=void 0;var Ly=pe(),F0=hc(),YD=Ey(),na=Dy(),jy=class extends Ly.ASTProvider{featureImportExpression(e){return new na.ASTFeatureImportExpression(e)}featureIncludeExpression(e){return new na.ASTFeatureIncludeExpression(e)}featureEnvarExpression(e){return new na.ASTFeatureEnvarExpression(e)}featureInjectExpression(e){return new na.ASTFeatureInjectExpression(e)}featureDebuggerExpression(e){return new Ly.ASTBase(F0.ASTType.FeatureDebuggerExpression,e)}featureLineExpression(e){return new Ly.ASTBase(F0.ASTType.FeatureLineExpression,e)}featureFileExpression(e){return new na.ASTFeatureFileExpression(e)}chunk(e){return new YD.ASTChunkGreybel(e)}};vt.ASTProvider=jy;var JD=hc();Object.defineProperty(vt,"ASTType",{enumerable:!0,get:function(){return JD.ASTType}});var QD=Ey();Object.defineProperty(vt,"ASTChunkGreybel",{enumerable:!0,get:function(){return QD.ASTChunkGreybel}});var ra=Dy();Object.defineProperty(vt,"ASTFeatureEnvarExpression",{enumerable:!0,get:function(){return ra.ASTFeatureEnvarExpression}});Object.defineProperty(vt,"ASTFeatureFileExpression",{enumerable:!0,get:function(){return ra.ASTFeatureFileExpression}});Object.defineProperty(vt,"ASTFeatureImportExpression",{enumerable:!0,get:function(){return ra.ASTFeatureImportExpression}});Object.defineProperty(vt,"ASTFeatureIncludeExpression",{enumerable:!0,get:function(){return ra.ASTFeatureIncludeExpression}});Object.defineProperty(vt,"ASTFeatureInjectExpression",{enumerable:!0,get:function(){return ra.ASTFeatureInjectExpression}})});var qy=T(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.SelectorGroups=Qe.SelectorGroupType=Qe.Selectors=Qe.SelectorTypes=void 0;var xe=pe(),mc=vs(),ia=_s(),ZD;(function(t){t.From="From",t.Envar="Envar",t.Inject="Inject",t.Line="Line",t.File="File",t.LeftShift="LeftShift",t.RightShift="RightShift",t.UnsignedRightShift="UnsignedRightShift",t.BitwiseOr="BitwiseOr",t.BitwiseAnd="BitwiseAnd",t.Escape="Escape"})(ZD=Qe.SelectorTypes||(Qe.SelectorTypes={}));Qe.Selectors=Object.assign(Object.assign({},xe.Selectors),{From:(0,xe.createSelector)({type:xe.TokenType.Identifier,value:"from"}),Envar:(0,xe.createSelector)({type:xe.TokenType.Keyword,value:mc.GreybelKeyword.Envar}),Inject:(0,xe.createSelector)({type:xe.TokenType.Keyword,value:mc.GreybelKeyword.Inject}),Line:(0,xe.createSelector)({type:xe.TokenType.Keyword,value:mc.GreybelKeyword.Line}),File:(0,xe.createSelector)({type:xe.TokenType.Keyword,value:mc.GreybelKeyword.File}),LeftShift:(0,xe.createSelector)({type:xe.TokenType.Punctuator,value:ia.Operator.LeftShift}),RightShift:(0,xe.createSelector)({type:xe.TokenType.Punctuator,value:ia.Operator.RightShift}),UnsignedRightShift:(0,xe.createSelector)({type:xe.TokenType.Punctuator,value:ia.Operator.UnsignedRightShift}),BitwiseOr:(0,xe.createSelector)({type:xe.TokenType.Punctuator,value:ia.Operator.BitwiseOr}),BitwiseAnd:(0,xe.createSelector)({type:xe.TokenType.Punctuator,value:ia.Operator.BitwiseAnd}),Escape:(0,xe.createSelector)({type:xe.TokenType.Punctuator,value:xe.Operator.Escape})});var ar;(function(t){t.MapSeparator="MapSeparator",t.ListSeparator="ListSeparator",t.PathSegmentEnd="PathSegmentEnd",t.BitwiseOperators="BitwiseOperators"})(ar=Qe.SelectorGroupType||(Qe.SelectorGroupType={}));Qe.SelectorGroups=Object.assign(Object.assign({},xe.SelectorGroups),{[ar.MapSeparator]:(0,xe.createSelectorGroup)(ar.MapSeparator,[Qe.Selectors.MapSeperator,Qe.Selectors.CRBracket]),[ar.ListSeparator]:(0,xe.createSelectorGroup)(ar.ListSeparator,[Qe.Selectors.MapSeperator,Qe.Selectors.SRBracket]),[ar.PathSegmentEnd]:(0,xe.createSelectorGroup)(ar.PathSegmentEnd,[Qe.Selectors.EndOfLine,Qe.Selectors.Comment,Qe.Selectors.EndOfFile]),[ar.BitwiseOperators]:(0,xe.createSelectorGroup)(ar.BitwiseOperators,[Qe.Selectors.LeftShift,Qe.Selectors.RightShift,Qe.Selectors.UnsignedRightShift])})});var B0=T(sa=>{"use strict";var XD=sa&&sa.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(sa,"__esModule",{value:!0});var en=pe(),eL=rs(),N0=as(),tL=XD(Ty()),nL=My(),pi=vs(),$0=_s(),_e=qy(),Fy=class extends en.Parser{constructor(e,r={}){var n;r.lexer=r.lexer||new tL.default(e,{unsafe:r.unsafe,tabWidth:r.tabWidth}),r.astProvider=r.astProvider||new nL.ASTProvider,super(e,r);let i=this;i.filename=(n=r.filename)!==null&&n!==void 0?n:"unknown",i.imports=[],i.includes=[],i.injects=[]}skipNewlines(){var e;let r=this,n=0;for(;;){if(_e.Selectors.Comment(r.token)){let i=((e=r.previousToken)===null||e===void 0?void 0:e.line)!==r.token.line,s=r.astProvider.comment({value:r.token.value,isMultiline:r.token.value.indexOf(`
|
104
104
|
`)!==-1,start:r.token.start,end:r.token.end,range:r.token.range,scope:r.currentScope,isStatement:i});r.lineRegistry.addItemToLines(s)}else if(_e.Selectors.EndOfLine(r.token))n++;else break;r.next()}return n}parseMap(e=!1,r=!1){let n=this;if(!_e.Selectors.CLBracket(n.token))return n.parseList(e,r);let i=n.currentScope,s=n.token,o=[],l=n.astProvider.mapConstructorExpression({fields:o,start:s.start,end:null,range:[s.range[0],null],scope:i});if(n.next(),_e.Selectors.CRBracket(n.token))n.next();else for(;!_e.Selectors.EndOfFile(n.token);){if(n.skipNewlines(),_e.Selectors.CRBracket(n.token)){n.next();break}let u=n.astProvider.mapKeyString({key:null,value:null,start:n.token.start,end:null,range:[n.token.range[0],null],scope:i});u.key=n.parseExpr(null),n.requireToken(_e.Selectors.MapKeyValueSeperator),n.skipNewlines(),u.value=n.parseExpr(u),u.end=n.previousToken.end,u.range[1]=n.previousToken.range[1],o.push(u),n.skipNewlines();let a=n.requireTokenOfAny(_e.SelectorGroups.MapSeparator,s.start);if(_e.Selectors.CRBracket(a))break}return l.end=n.token.start,l.range[1]=n.token.range[1],l}parseList(e=!1,r=!1){let n=this;if(!_e.Selectors.SLBracket(n.token))return n.parseQuantity(e,r);let i=n.currentScope,s=n.token,o=[],l=n.astProvider.listConstructorExpression({fields:o,start:s.start,end:null,range:[s.range[0],null],scope:i});if(n.next(),_e.Selectors.SRBracket(n.token))n.next();else for(;!_e.Selectors.EndOfFile(n.token);){if(n.skipNewlines(),_e.Selectors.SRBracket(n.token)){n.next();break}let u=n.astProvider.listValue({value:null,start:n.token.start,end:null,range:[n.token.range[0],null],scope:i});u.value=n.parseExpr(u),u.end=n.previousToken.end,u.range[1]=n.previousToken.range[1],o.push(u),n.skipNewlines();let a=n.requireTokenOfAny(_e.SelectorGroups.ListSeparator,s.start);if(_e.Selectors.SRBracket(a))break}return l.end=n.token.start,l.range[1]=n.token.range[1],l}parsePathSegment(){let e=this;if(this.token.type===en.ASTType.StringLiteral){let n=this.token.value;return this.next(),n}let r="";for(;!_e.SelectorGroups.PathSegmentEnd(e.token);)r=r+e.token.value,e.next();return e.consumeMany(_e.SelectorGroups.PathSegmentEnd),r}parseFeatureIncludeStatement(){let e=this,r=e.previousToken,n=e.parsePathSegment(),i=e.astProvider.featureIncludeExpression({path:n,start:r.start,end:e.previousToken.end,range:[r.range[0],e.previousToken.range[1]],scope:e.currentScope});return e.includes.push(i),i}parseFeatureImportStatement(){var e;let r=this,n=r.previousToken,i=r.parseIdentifier(en.ASTIdentifierKind.Variable);if(!r.consume(_e.Selectors.From))return r.raise("expected from keyword",new N0.Range(n.start,new eL.Position((e=r.token.lastLine)!==null&&e!==void 0?e:r.token.line,r.token.end.character))),r.parseInvalidCode();let s=r.parsePathSegment(),o=r.astProvider.featureImportExpression({name:i,path:s,start:n.start,end:r.previousToken.end,range:[n.range[0],r.previousToken.range[1]],scope:r.currentScope});return r.imports.push(o),r.currentScope.definitions.push(o),o}parseFeatureEnvarExpression(){let e=this,r=e.previousToken,n=e.token.value;return e.next(),e.astProvider.featureEnvarExpression({name:n,start:r.start,end:e.previousToken.end,range:[r.range[0],e.previousToken.range[1]],scope:e.currentScope})}parseFeatureInjectExpression(){let e=this,r=e.previousToken,n=this.parsePathSegment();e.next();let i=e.astProvider.featureInjectExpression({path:n,start:r.start,end:e.previousToken.end,range:[r.range[0],e.previousToken.range[1]],scope:e.currentScope});return e.injects.push(i),i}parseIsa(e=!1,r=!1){let n=this,i=n.token,s=n.parseBitwiseOr(e,r);if(_e.Selectors.Isa(n.token)){n.next(),n.skipNewlines();let o=n.parseBitwiseOr();return n.astProvider.isaExpression({operator:en.Operator.Isa,left:s,right:o,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return s}parseBitwiseOr(e=!1,r=!1){let n=this,i=n.token,o=n.parseBitwiseAnd(e,r);for(;_e.Selectors.BitwiseOr(n.token);){n.next();let l=n.parseBitwiseAnd();o=n.astProvider.binaryExpression({operator:$0.Operator.BitwiseOr,left:o,right:l,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return o}parseBitwiseAnd(e=!1,r=!1){let n=this,i=n.token,o=n.parseComparisons(e,r);for(;_e.Selectors.BitwiseAnd(n.token);){n.next();let l=n.parseComparisons();o=n.astProvider.binaryExpression({operator:$0.Operator.BitwiseAnd,left:o,right:l,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return o}parseAddSub(e=!1,r=!1){let n=this,i=n.token,o=n.parseBitwise(e,r);for(;_e.Selectors.Plus(n.token)||_e.Selectors.Minus(n.token)&&(!r||!n.token.afterSpace||n.lexer.isAtWhitespace());){let l=n.token;n.next(),n.skipNewlines();let u=n.parseBitwise();o=n.astProvider.binaryExpression({operator:l.value,left:o,right:u,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return o}parseBitwise(e=!1,r=!1){let n=this,i=n.token,o=n.parseMultDiv(e,r);for(;_e.SelectorGroups.BitwiseOperators(n.token);){let l=n.token;n.next(),n.skipNewlines();let u=n.parseMultDiv();o=n.astProvider.binaryExpression({operator:l.value,left:o,right:u,start:i.start,end:n.previousToken.end,range:[i.range[0],n.previousToken.range[1]],scope:n.currentScope})}return o}parseAtom(){let e=this;return _e.Selectors.Envar(e.token)?(e.next(),e.parseFeatureEnvarExpression()):_e.Selectors.Inject(e.token)?(e.next(),e.parseFeatureInjectExpression()):_e.Selectors.Line(e.token)?(e.next(),e.astProvider.featureLineExpression({start:new en.ASTPosition(e.previousToken.line,e.previousToken.start.character),end:new en.ASTPosition(e.previousToken.line,e.previousToken.end.character),range:e.previousToken.range,scope:e.currentScope})):_e.Selectors.File(e.token)?(e.next(),e.astProvider.featureFileExpression({filename:e.filename,start:new en.ASTPosition(e.previousToken.line,e.previousToken.start.character),end:new en.ASTPosition(e.previousToken.line,e.previousToken.end.character),range:e.previousToken.range,scope:e.currentScope})):super.parseAtom()}parseStatement(){let e=this,r=e.backpatches.peek();if(e.isType(en.TokenType.Keyword))switch(e.token.value){case pi.GreybelKeyword.Include:case pi.GreybelKeyword.IncludeWithComment:{e.next();let i=e.parseFeatureIncludeStatement();e.lineRegistry.addItemToLines(i),r.body.push(i);return}case pi.GreybelKeyword.Import:case pi.GreybelKeyword.ImportWithComment:{e.next();let i=e.parseFeatureImportStatement();e.lineRegistry.addItemToLines(i),r.body.push(i);return}case pi.GreybelKeyword.Envar:{e.next();let i=e.parseFeatureEnvarExpression();e.lineRegistry.addItemToLines(i),r.body.push(i);return}case pi.GreybelKeyword.Inject:{e.next();let i=e.parseFeatureInjectExpression();e.lineRegistry.addItemToLines(i),r.body.push(i);return}case pi.GreybelKeyword.Debugger:{e.next();let i=e.astProvider.featureDebuggerExpression({start:new en.ASTPosition(e.previousToken.line,e.previousToken.start.character),end:new en.ASTPosition(e.previousToken.line,e.previousToken.end.character),range:e.previousToken.range,scope:e.currentScope});e.lineRegistry.addItemToLines(i),r.body.push(i);return}default:break}super.parseStatement()}parseChunk(){let e=this;e.next();let r=e.token,n=e.astProvider.chunk({start:r.start,end:null,range:[r.range[0],null]}),i=new en.PendingChunk(n,e.lineRegistry);for(e.backpatches.setDefault(i),e.pushScope(n);!_e.Selectors.EndOfFile(e.token)&&(e.skipNewlines(),!_e.Selectors.EndOfFile(e.token));)e.lexer.recordSnapshot(),e.statementErrors=[],e.parseStatement(),e.statementErrors.length>0&&e.tryToRecover();let s=e.backpatches.pop();for(;!(0,en.isPendingChunk)(s);){let o=e.raise(`found open block ${s.block.type}`,new N0.Range(s.block.start,s.block.start));if(s.complete(e.previousToken),e.errors.push(o),!e.unsafe)throw o;s=e.backpatches.pop()}return e.finishRemaingScopes(),e.popScope(),i.complete(e.token),n.literals=e.literals,n.scopes=e.scopes,n.lines=e.lineRegistry.lines,n.imports=e.imports,n.includes=e.includes,n.injects=e.injects,n}};sa.default=Fy});var Mt=T(ft=>{"use strict";var rL=ft&&ft.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),oa=ft&&ft.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&rL(e,t,r)},Ny=ft&&ft.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ft,"__esModule",{value:!0});ft.Parser=ft.LexerValidator=ft.Lexer=void 0;var iL=Ty();Object.defineProperty(ft,"Lexer",{enumerable:!0,get:function(){return Ny(iL).default}});var sL=Sy();Object.defineProperty(ft,"LexerValidator",{enumerable:!0,get:function(){return Ny(sL).default}});var oL=B0();Object.defineProperty(ft,"Parser",{enumerable:!0,get:function(){return Ny(oL).default}});oa(My(),ft);oa(xy(),ft);oa(vs(),ft);oa(_s(),ft);oa(qy(),ft)});var $y=T(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});gc.merge=void 0;function aL(t,e,r=1e4){if(e.length<=r){Array.prototype.push.apply(t,e);return}for(let n=0;n<e.length;n+=r)Array.prototype.push.apply(t,e.slice(n,n+r))}gc.merge=aL});var U0=T(yc=>{"use strict";Object.defineProperty(yc,"__esModule",{value:!0});yc.parseMapDescription=void 0;var lL=Hg(),uL=Ht();function cL(t){return uL.SignatureDefinitionTypeMeta.fromString(t)}function pL(t){return{path:t.name,type:t.type.split("|").map(cL)}}function dL(t){let e=t.tags.find(n=>n.tag==="type");if(!e)return null;let r=t.tags.filter(n=>n.tag==="property");return{type:e.name,properties:r.map(pL)}}function hL(t){let e=(0,lL.parse)(`/**
|
105
105
|
${t}
|
106
|
-
*/`),[r]=e;return r.tags.length>0?dL(r):null}yc.parseMapDescription=hL});var Uy=T(ws=>{"use strict";Object.defineProperty(ws,"__esModule",{value:!0});ws.Aggregator=ws.ASTChainIterator=void 0;var aa=Mt(),fe=Ht(),me=pe(),fL=cy(),he=oi(),W0=ai(),di=dy(),V0=Rg(),H0=sy(),mL=iy(),K0=jo(),z0=$y(),gL=gy(),yL=U0(),bL=bs(),bc=class{constructor(e,r,n=!1,i=!1){this.aggregator=e,this.chain=r,this.noInvoke=n,this.assume=i,this.index=0,this.endIndex=this.chain.length-1,this.current=null}defineAssumedProperty(e,r){let n=this.aggregator.factory(this.index===0?he.CompletionItemKind.Variable:he.CompletionItemKind.Property);return typeof r=="string"&&n.setLabel(r),this.assume?(n.addType(fe.SignatureDefinitionBaseType.Map),e.setProperty(r,n),e.resolveProperty(r,!0)):(n.addType(fe.SignatureDefinitionBaseType.Any),n)}getInitial(){var o,l,u,a,c;let e=null,r=this.aggregator.scope,n=this.aggregator.document,i=this.chain[0],s=((o=i.unary)==null?void 0:o.operator)==="@"&&!i.isInCallExpression||this.noInvoke&&this.index===this.endIndex;if((0,di.isResolveChainItemWithIdentifier)(i))if(i.getter.name==="globals")e=r.globals;else if(i.getter.name==="outer")e=r.outer;else if(i.getter.name==="locals")e=r.locals;else if(i.getter.name==="super"){let p=(u=(l=n.getScopeContext(i.ref.scope))==null?void 0:l.scope.context)==null?void 0:u.getIsa();p==null?e=this.aggregator.factory(he.CompletionItemKind.Constant).addType("null").setLabel("super"):e=p.copy({kind:he.CompletionItemKind.Constant,label:"super",values:p.values})}else if(i.getter.name==="self"){let p=(a=n.getScopeContext(i.ref.scope))==null?void 0:a.scope.context;p==null?e=this.aggregator.factory(he.CompletionItemKind.Constant).addType("null").setLabel("self"):e=p.copy({kind:he.CompletionItemKind.Constant,label:"self",values:p.values})}else{let p=r.resolveNamespace(i.getter.name,s);p==null&&(p=this.defineAssumedProperty(r.globals,i.getter.name)),e=p}else if((0,di.isResolveChainItemWithValue)(i))e=this.aggregator.resolveTypeWithDefault(i.value,s);else return null;if(((c=i.unary)==null?void 0:c.operator)===me.Keyword.New&&e!==null){let p=this.aggregator.factory(he.CompletionItemKind.Variable).addType(fe.SignatureDefinitionBaseType.Map).setLabel(e.label);p.setProperty("__isa",e),this.aggregator.createCustomTypeFromMap(i.unary,p),e=p}return e}getNext(){var n,i,s;let e=this.current,r=this.chain[this.index];if((0,di.isResolveChainItemWithMember)(r)){let o=((n=r.unary)==null?void 0:n.operator)==="@"&&!r.isInCallExpression||this.noInvoke&&this.index===this.endIndex,l=e.resolveProperty(r.getter.name,o);l==null&&(l=this.defineAssumedProperty(e,r.getter.name)),e=l}else if((0,di.isResolveChainItemWithIndex)(r)){let o=((i=r.unary)==null?void 0:i.operator)==="@"&&!r.isInCallExpression||this.noInvoke&&this.index===this.endIndex||!r.ref.isStatementStart;if((0,K0.isValidIdentifierLiteral)(r.getter)){let l=r.getter.value.toString(),u=e.resolveProperty(l,o);u==null&&(u=this.defineAssumedProperty(e,l)),e=u}else{let l=this.aggregator.resolveTypeWithDefault(r.getter),u=e.resolveProperty(l,
|
106
|
+
*/`),[r]=e;return r.tags.length>0?dL(r):null}yc.parseMapDescription=hL});var Uy=T(ws=>{"use strict";Object.defineProperty(ws,"__esModule",{value:!0});ws.Aggregator=ws.ASTChainIterator=void 0;var aa=Mt(),fe=Ht(),me=pe(),fL=cy(),he=oi(),W0=ai(),di=dy(),V0=Rg(),H0=sy(),mL=iy(),K0=jo(),z0=$y(),gL=gy(),yL=U0(),bL=bs(),bc=class{constructor(e,r,n=!1,i=!1){this.aggregator=e,this.chain=r,this.noInvoke=n,this.assume=i,this.index=0,this.endIndex=this.chain.length-1,this.current=null}defineAssumedProperty(e,r){let n=this.aggregator.factory(this.index===0?he.CompletionItemKind.Variable:he.CompletionItemKind.Property);return typeof r=="string"&&n.setLabel(r),this.assume?(n.addType(fe.SignatureDefinitionBaseType.Map),e.setProperty(r,n),e.resolveProperty(r,!0)):(n.addType(fe.SignatureDefinitionBaseType.Any),n)}getInitial(){var o,l,u,a,c;let e=null,r=this.aggregator.scope,n=this.aggregator.document,i=this.chain[0],s=((o=i.unary)==null?void 0:o.operator)==="@"&&!i.isInCallExpression||this.noInvoke&&this.index===this.endIndex;if((0,di.isResolveChainItemWithIdentifier)(i))if(i.getter.name==="globals")e=r.globals;else if(i.getter.name==="outer")e=r.outer;else if(i.getter.name==="locals")e=r.locals;else if(i.getter.name==="super"){let p=(u=(l=n.getScopeContext(i.ref.scope))==null?void 0:l.scope.context)==null?void 0:u.getIsa();p==null?e=this.aggregator.factory(he.CompletionItemKind.Constant).addType("null").setLabel("super"):e=p.copy({kind:he.CompletionItemKind.Constant,label:"super",values:p.values})}else if(i.getter.name==="self"){let p=(a=n.getScopeContext(i.ref.scope))==null?void 0:a.scope.context;p==null?e=this.aggregator.factory(he.CompletionItemKind.Constant).addType("null").setLabel("self"):e=p.copy({kind:he.CompletionItemKind.Constant,label:"self",values:p.values})}else{let p=r.resolveNamespace(i.getter.name,s);p==null&&(p=this.defineAssumedProperty(r.globals,i.getter.name)),e=p}else if((0,di.isResolveChainItemWithValue)(i))e=this.aggregator.resolveTypeWithDefault(i.value,s);else return null;if(((c=i.unary)==null?void 0:c.operator)===me.Keyword.New&&e!==null){let p=this.aggregator.factory(he.CompletionItemKind.Variable).addType(fe.SignatureDefinitionBaseType.Map).setLabel(e.label);p.setProperty("__isa",e),this.aggregator.createCustomTypeFromMap(i.unary,p),e=p}return e}getNext(){var n,i,s;let e=this.current,r=this.chain[this.index];if((0,di.isResolveChainItemWithMember)(r)){let o=((n=r.unary)==null?void 0:n.operator)==="@"&&!r.isInCallExpression||this.noInvoke&&this.index===this.endIndex,l=e.resolveProperty(r.getter.name,o);l==null&&(l=this.defineAssumedProperty(e,r.getter.name)),e=l}else if((0,di.isResolveChainItemWithIndex)(r)){let o=((i=r.unary)==null?void 0:i.operator)==="@"&&!r.isInCallExpression||this.noInvoke&&this.index===this.endIndex||!r.ref.isStatementStart&&!r.isInCallExpression;if((0,K0.isValidIdentifierLiteral)(r.getter)){let l=r.getter.value.toString(),u=e.resolveProperty(l,o);u==null&&(u=this.defineAssumedProperty(e,l)),e=u}else{let l=this.aggregator.resolveTypeWithDefault(r.getter),u=e.resolveProperty(l,o);u==null&&(u=this.defineAssumedProperty(e,l)),e=u}}else if(r.ref.type===me.ASTType.SliceExpression)e=e.copy();else return null;if(((s=r.unary)==null?void 0:s.operator)===me.Keyword.New&&this.current!==null){let o=this.aggregator.factory(he.CompletionItemKind.Property).addType(fe.SignatureDefinitionBaseType.Map).setLabel(e.label);o.setProperty("__isa",e),this.aggregator.createCustomTypeFromMap(r.unary,o),e=o}return e}next(){if(this.index>=this.chain.length)return{value:null,done:!0};let e=this.index===0?this.getInitial():this.getNext();return e==null?{value:null,done:!0}:(this.index++,this.current=e,{value:e,done:!1})}};ws.ASTChainIterator=bc;var By=class{get definitions(){return this._definitions}get parent(){return this._parent}get scope(){return this._scope}get document(){return this._document}constructor(e){var r;this._root=e.root,this._scope=e.scope,this._document=e.document,this._parent=(r=e.parent)!=null?r:null,this._definitions=new Map,this._lastModifiedProperty=null}factory(e){return new bL.Entity({source:this._document.source,kind:e,container:this._document.container})}createMapDescription(e){let r=this._document.getLastASTItemOfLine(e.start.line-1),n=this._document.findASTItemInLine(e.start.line,me.ASTType.Comment);if(r instanceof me.ASTComment){let i=new Set,s=[],o=e.start.line-1;for(;o>=0;){let l=this._document.getLastASTItemOfLine(o--);if(!i.has(l))if(l instanceof me.ASTComment)i.add(l),s.unshift(l.value);else break}return s.join(`
|
107
107
|
`)}else if(n instanceof me.ASTComment)return n.value;return null}createCustomTypeFromMap(e,r){let n=this.createMapDescription(e);if(n==null)return;let i=(0,yL.parseMapDescription)(n);i!=null&&(i.properties.forEach(s=>{if(s.path==="__isa")return;let o=s.path.split("."),l=this.factory(he.CompletionItemKind.Property).addTypesWithMeta(s.type).setLabel(o[o.length-1]);this.setEntityInPath(r,o,l)}),this._scope.setCustomType(i.type,r))}createFunctionDescription(e,r=fL.DEFAULT_CUSTOM_FUNCTION_DESCRIPTION){let n=this._document.getLastASTItemOfLine(e.start.line-1),i=this._document.findASTItemInLine(e.start.line,me.ASTType.Comment);if(n instanceof me.ASTComment){let s=new Set,o=[],l=e.start.line-1;for(;l>=0;){let u=this._document.getLastASTItemOfLine(l--);if(!s.has(u))if(u instanceof me.ASTComment)s.add(u),o.unshift(u.value);else break}return o.join(`
|
108
108
|
|
109
109
|
`)}else if(i instanceof me.ASTComment)return i.value;return r}resolveFunctionStatement(e){let r=fe.SignatureDefinitionFunction.parse({type:fe.SignatureDefinitionBaseType.Function,description:this.createFunctionDescription(e),arguments:e.parameters.map(n=>{var s,o,l;if(n.type===me.ASTType.Identifier)return{label:(s=n.name)!=null?s:"unknown",type:fe.SignatureDefinitionBaseType.Any};let i=n;return{label:(l=(o=i.variable)==null?void 0:o.name)!=null?l:"unknown",types:Array.from(this.resolveTypeWithDefault(i.init).types)}}),returns:["any"]});return this.factory(he.CompletionItemKind.Function).addType(fe.SignatureDefinitionBaseType.Function).addSignatureType((0,mL.enrichWithMetaInformation)(r)).setLine(e.start.line)}resolveParenthesisExpression(e){return this.resolveTypeWithDefault(e.expression)}resolveBinaryExpression(e){let r=this.factory(he.CompletionItemKind.Expression).setLabel("Binary Expr").setLine(e.start.line),n=this.resolveTypeWithDefault(e.left),i=this.resolveTypeWithDefault(e.right);return r.extend(n),r.extend(i),r}resolveLogicalExpression(e){return this.factory(he.CompletionItemKind.Expression).setLabel("Logical Expr").addType(fe.SignatureDefinitionBaseType.Number).setLine(e.start.line)}resolveComparisonGroupExpression(e){return this.factory(he.CompletionItemKind.Expression).setLabel("Comparison Group Expr").addType(fe.SignatureDefinitionBaseType.Number).setLine(e.start.line)}resolveIsaExpression(e){return this.factory(he.CompletionItemKind.Expression).setLabel("Isa Expr").addType(fe.SignatureDefinitionBaseType.Number).setLine(e.start.line)}resolveCallStatement(e){let r=this.resolveNamespace(e);return r===null?this.factory(he.CompletionItemKind.Variable).addType(fe.SignatureDefinitionBaseType.Any).setLine(e.start.line):r}resolveCallExpression(e){let r=this.resolveNamespace(e);return r===null?this.factory(he.CompletionItemKind.Variable).addType(fe.SignatureDefinitionBaseType.Any).setLine(e.start.line):r}resolveUnaryExpression(e){let r=this.resolveNamespace(e);return r===null?this.factory(he.CompletionItemKind.Variable).addType(fe.SignatureDefinitionBaseType.Any).setLine(e.start.line):r}resolveMapConstructorExpression(e){var n;let r=this.factory(he.CompletionItemKind.MapConstructor).addType(fe.SignatureDefinitionBaseType.Map);for(let i=0;i<e.fields.length;i++){let s=e.fields[i],o=this.resolveTypeWithDefault(s.value).setLine(s.start.line);if(s.key.type===me.ASTType.StringLiteral){let l=s.key.value.toString();r.setProperty(l,o),(n=r.values.get(`${W0.PropertyType.Identifier}:${l}`))==null||n.definitions.push({source:this._document.source,node:s})}else{let l=this.resolveTypeWithDefault(s.key).setLine(s.start.line);r.setProperty(l,o)}}return this.createCustomTypeFromMap(e,r),r.setLabel("{}").setLine(e.start.line)}resolveListConstructorExpression(e){let r=this.factory(he.CompletionItemKind.ListConstructor).addType(fe.SignatureDefinitionBaseType.List);for(let n=0;n<e.fields.length;n++){let i=e.fields[n],s=this.factory(he.CompletionItemKind.Variable).addType(fe.SignatureDefinitionBaseType.Number).setLine(i.start.line),o=this.resolveTypeWithDefault(i.value).setLine(i.start.line);r.setProperty(s,o)}return r.setLabel("[]").setLine(e.start.line)}resolveSliceExpression(e){let r=this.resolveNamespace(e);return r===null?this.factory(he.CompletionItemKind.Variable).addType(fe.SignatureDefinitionBaseType.Any).setLine(e.start.line):r.setLine(e.start.line)}resolveIndexExpression(e,r=!1){let n=this.resolveNamespace(e,r);return n===null?this.factory(he.CompletionItemKind.Variable).addType(fe.SignatureDefinitionBaseType.Any).setLine(e.start.line):n}resolveMemberExpression(e,r=!1){let n=this.resolveNamespace(e,r);return n===null?this.factory(he.CompletionItemKind.Property).addType(fe.SignatureDefinitionBaseType.Any).setLabel(e.identifier.name).setLine(e.start.line):n}resolveIdentifier(e,r=!1){let n=this.resolveNamespace(e,r);return n===null?this.factory(he.CompletionItemKind.Property).addType(fe.SignatureDefinitionBaseType.Any).setLabel(e.name).setLine(e.start.line):n}resolveType(e,r=!1){if(e==null)return null;switch(e.type){case me.ASTType.ParenthesisExpression:return this.resolveParenthesisExpression(e);case me.ASTType.CallStatement:return this.resolveCallStatement(e);case me.ASTType.CallExpression:return this.resolveCallExpression(e);case me.ASTType.BinaryExpression:return this.resolveBinaryExpression(e);case me.ASTType.LogicalExpression:return this.resolveLogicalExpression(e);case me.ASTType.IsaExpression:return this.resolveIsaExpression(e);case me.ASTType.ComparisonGroupExpression:return this.resolveComparisonGroupExpression(e);case me.ASTType.FunctionDeclaration:return this.resolveFunctionStatement(e);case me.ASTType.SliceExpression:return this.resolveSliceExpression(e);case me.ASTType.IndexExpression:return this.resolveIndexExpression(e,r);case me.ASTType.MemberExpression:return this.resolveMemberExpression(e,r);case me.ASTType.Identifier:return this.resolveIdentifier(e,r);case me.ASTType.MapConstructorExpression:return this.resolveMapConstructorExpression(e);case me.ASTType.ListConstructorExpression:return this.resolveListConstructorExpression(e);case me.ASTType.NegationExpression:case me.ASTType.BinaryNegatedExpression:case me.ASTType.UnaryExpression:return this.resolveUnaryExpression(e);case me.ASTType.NilLiteral:return this.factory(he.CompletionItemKind.Literal).addType("null").setLabel("null").setLine(e.start.line);case me.ASTType.StringLiteral:{let n=e.value.toString();return this.factory(he.CompletionItemKind.Literal).addType(fe.SignatureDefinitionBaseType.String).setLabel(`"${n.length>20?n.substr(0,20)+"...":n}"`).setLine(e.start.line)}case me.ASTType.NumericLiteral:case me.ASTType.BooleanLiteral:{let n=e.value.toString();return this.factory(he.CompletionItemKind.Literal).addType(fe.SignatureDefinitionBaseType.Number).setLabel(n).setLine(e.start.line)}case aa.ASTType.FeatureFileExpression:return this.factory(he.CompletionItemKind.Expression).addType(fe.SignatureDefinitionBaseType.String).setLabel("File Expr").setLine(e.start.line);case aa.ASTType.FeatureLineExpression:return this.factory(he.CompletionItemKind.Expression).addType(fe.SignatureDefinitionBaseType.Number).setLabel("Line Expr").setLine(e.start.line);case aa.ASTType.FeatureEnvarExpression:return this.factory(he.CompletionItemKind.Expression).addType(fe.SignatureDefinitionBaseType.String).setLabel("Envar Expr").setLine(e.start.line);case aa.ASTType.FeatureInjectExpression:return this.factory(he.CompletionItemKind.Expression).addType(fe.SignatureDefinitionBaseType.String).setLabel("Inject Expr").setLine(e.start.line);default:return null}}resolveTypeWithDefault(e=null,r=!1){let n=this.resolveType(e,r);if(n==null){let i=this.factory(he.CompletionItemKind.Variable).addType(fe.SignatureDefinitionBaseType.Any);return e!=null&&i.setLine(e.start.line),i}return n}resolveChain(e,r=!1,n=!1){if(e.length===0)return null;let i=new bc(this,e,r,n),s=null,o=i.next();for(;!o.done;)s=o.value,o=i.next();return s}setEntityInPath(e,r,n){let i=e;for(let s=0;s<r.length-1;s++){let o=r[s],l=i.resolveProperty(o);if(l==null){let u=this.factory(he.CompletionItemKind.Property).addType(fe.SignatureDefinitionBaseType.Map).setLabel(o);i.setProperty(o,u),l=u}i=l}return i.setProperty(r[r.length-1],n)}getEntityInPath(e,r){let n=e;for(let i=0;i<r.length;i++){let s=r[i],o=n.resolveProperty(s);if(o==null)return null;n=o}return n}resolveNamespace(e,r=!1){let n=(0,H0.createResolveChain)(e);return this.resolveChain(n,r)}defineProperty(e,r,n){let i=e.setProperty(r,n);return this._lastModifiedProperty=e.resolveProperty(r,!0),i}defineNamespace(e,r){let n=(0,H0.createResolveChain)(e),i=n.pop();if(this._lastModifiedProperty=null,n.length>0){let o=this.resolveChain(n,!1,!0);if(o===null)return!1;if((0,di.isResolveChainItemWithMember)(i))return this.defineProperty(o,i.getter.name,r);if((0,di.isResolveChainItemWithIndex)(i)){if((0,K0.isValidIdentifierLiteral)(i.getter))return this.defineProperty(o,i.getter.value.toString(),r);{let l=this.resolveTypeWithDefault(i.getter);return this.defineProperty(o,l,r)}}return!1}let s=this._scope;return(0,di.isResolveChainItemWithIdentifier)(i)?this.defineProperty(s,i.getter.name,r):!1}addDefinition(e,r){var o;(o=this._lastModifiedProperty)==null||o.definitions.push({source:this._document.source,node:e});let n=(0,V0.createExpressionId)(r),i=this._definitions;n.startsWith("globals.")?(i=this._document.getRootScopeContext().aggregator.definitions,n=n.slice(8)):n.startsWith("locals.")?(i=this._definitions,n=n.slice(7)):n.startsWith("outer.")&&(i=this.parent.definitions,n=n.slice(6));let s=i.get(n);s?s.push({source:this._document.source,node:e}):i.set(n,[{source:this._document.source,node:e}])}resolveAvailableAssignmentsWithQuery(e){let r=[];return new Set([this,this._parent,this._document.getRootScopeContext().aggregator]).forEach(i=>{let s=i.definitions;s.forEach((o,l)=>{if(l.includes(e)){let u=s.get(l);(0,z0.merge)(r,u)}})}),r}resolveAvailableAssignments(e){let r=(0,V0.createExpressionId)(e),n=this;r.startsWith("globals.")?(n=this._document.getRootScopeContext().aggregator,r=r.slice(8)):r.startsWith("locals.")?(n=this,r=r.slice(7)):r.startsWith("outer.")&&(n=this.parent,r=r.slice(6));let i=[];return new Set([n,n._parent,n._document.getRootScopeContext().aggregator]).forEach(o=>{if(o==null)return;let l=o.resolveNamespace(e,!0);l!=null&&(0,z0.merge)(i,l.definitions)}),i}analyzeAssignmentDefinition(e){var n,i;let r=(i=(n=this.resolveType(e.init))==null?void 0:n.copy({source:this._document.source}).setLine(e.start.line))!=null?i:this.factory(he.CompletionItemKind.Variable).addType(fe.SignatureDefinitionBaseType.Any).setLine(e.start.line);this.defineNamespace(e.variable,r),this.addDefinition(e,e.variable)}analyzeForDefinition(e){var o,l;let r=(l=(o=this.resolveType(e.iterator))==null?void 0:o.copy({source:this._document.source}).setLine(e.start.line))!=null?l:this.factory(he.CompletionItemKind.Variable).addType(fe.SignatureDefinitionBaseType.Any).setLine(e.start.line),n=this.factory(he.CompletionItemKind.Variable).setLine(e.start.line);if(r.types.has(fe.SignatureDefinitionBaseType.List)){let u=r.values.get(`${W0.PropertyType.Type}:number`);u!=null&&n.extend(u)}if(r.types.has(fe.SignatureDefinitionBaseType.String)&&n.addType(fe.SignatureDefinitionBaseType.String),r.types.has(fe.SignatureDefinitionBaseType.Map)){let u=this.factory(he.CompletionItemKind.Variable).addTypes(r.getPropertyTypes()).setLine(e.start.line),a=this.factory(he.CompletionItemKind.Property).addTypes(r.getValueTypes()).setLine(e.start.line);n.addType(fe.SignatureDefinitionBaseType.Map),n.setProperty("key",u),n.setProperty("value",a)}n.types.size===0&&n.addType(fe.SignatureDefinitionBaseType.Any),this.defineNamespace(e.variable,n),this.addDefinition(e,e.variable);let i=this.factory(he.CompletionItemKind.Variable).addType(fe.SignatureDefinitionBaseType.Number).setLine(e.start.line),s=new me.ASTIdentifier({name:`__${e.variable.name}_idx`,kind:me.ASTIdentifierKind.Variable,range:e.range,start:e.start,end:e.end});this.defineNamespace(s,i),this.addDefinition(e,s)}analyzeImportDefinition(e){let r=e.name,n=this.scope.resolveProperty(r.name,!0);if(n!=null){this._lastModifiedProperty=n,this.addDefinition(e,e.name);return}let i=this.factory(he.CompletionItemKind.Variable).addType(fe.SignatureDefinitionBaseType.Any).setLine(e.start.line);this.defineNamespace(e.name,i),this.addDefinition(e,e.name)}analyze(){for(let e=0;e<this._root.definitions.length;e++){let r=this._root.definitions[e];switch(r.type){case me.ASTType.AssignmentStatement:{this.analyzeAssignmentDefinition(r);break}case me.ASTType.ForGenericStatement:{this.analyzeForDefinition(r);break}case aa.ASTType.FeatureImportExpression:{this.analyzeImportDefinition(r);break}}}}extend(e){e.definitions.forEach((r,n)=>{let i=this.definitions.get(n);i?(0,gL.mergeUnique)(i,r):this.definitions.set(n,r)})}};ws.Aggregator=By});var Vy=T(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});vc.Document=void 0;var lr=Ht(),vL=pe(),G0=oi(),_L=$y(),Y0=Uy(),J0=bs(),Q0=vy(),Wy=class t{get source(){return this._source}get root(){return this._root}get container(){return this._container}get intrinsics(){return this._intrinscis}get globals(){return this._globals}get api(){return this._api}constructor(e){var r,n,i,s;this._source=e.source,this._root=e.root,this._container=e.container,this._scopeMapping=(r=e.scopeMapping)!=null?r:new WeakMap,this._intrinscis=(n=e.intrinsics)!=null?n:this.createIntrinscis(),this._api=(i=e.api)!=null?i:this.initApi(),this._globals=(s=e.globals)!=null?s:this.initGlobals()}createIntrinscis(){return{map:this._container.primitives.get(lr.SignatureDefinitionBaseType.Map),funcRef:this._container.primitives.get(lr.SignatureDefinitionBaseType.Function),number:this._container.primitives.get(lr.SignatureDefinitionBaseType.Number),string:this._container.primitives.get(lr.SignatureDefinitionBaseType.String),list:this._container.primitives.get(lr.SignatureDefinitionBaseType.List)}}initApi(){let e=this._container.primitives.get(lr.SignatureDefinitionBaseType.General);return e.resolveProperty("map",!0).setReturnEntity(this._intrinscis.map),e.resolveProperty("funcRef",!0).setReturnEntity(this._intrinscis.funcRef),e.resolveProperty("number",!0).setReturnEntity(this._intrinscis.number),e.resolveProperty("string",!0).setReturnEntity(this._intrinscis.string),e.resolveProperty("list",!0).setReturnEntity(this._intrinscis.list),e}initGlobals(){return new J0.Entity({source:this._source,kind:G0.CompletionItemKind.Constant,container:this._container,label:"globals"}).addType(lr.SignatureDefinitionBaseType.Map)}analyzeScope(e){let r=this._scopeMapping.get(e.scope),n=new Q0.Scope({source:this._source,container:this._container,parent:r==null?void 0:r.scope,globals:this._globals}),i=new Y0.Aggregator({scope:n,root:e,document:this,parent:r==null?void 0:r.aggregator});this._scopeMapping.set(e,{scope:n,aggregator:i});let s=e.assignment instanceof vL.ASTAssignmentStatement?this.resolveNamespace(e.assignment.variable,!0):null;if(s!==null){let o=s==null?void 0:s.context;o!=null&&o.types.has(lr.SignatureDefinitionBaseType.Map)&&o!==this._globals&&n.setContext(o)}if(i.analyze(),s!==null){let o=s.signatureDefinitions.last();if(o!=null){let l=o.getArguments();for(let u=0;u<l.length;u++){let a=l[u],c=n.resolveProperty(a.getLabel(),!0),p=a.getTypes();c===null?n.setProperty(a.getLabel(),new J0.Entity({source:this._source,kind:G0.CompletionItemKind.Variable,container:this._container}).addTypesWithMeta(p)):(c.types.delete(lr.SignatureDefinitionBaseType.Any),c.addTypesWithMeta(p))}}}}analyze(){let e=new Q0.Scope({source:this._source,container:this._container,globals:this._globals,locals:this._globals}),r=new Y0.Aggregator({scope:e,root:this._root,document:this});this._scopeMapping.set(this._root,{scope:e,aggregator:r}),r.analyze();for(let n=0;n<this._root.scopes.length;n++){let i=this._root.scopes[n];this.analyzeScope(i)}}getRootScopeContext(){return this._scopeMapping.get(this._root)}getAllScopeContexts(){return[this._root,...this._root.scopes].map(e=>this._scopeMapping.get(e))}getScopeContext(e){var r;return(r=this._scopeMapping.get(e))!=null?r:null}getLastASTItemOfLine(e){let r=this._root.lines[e];if(!r||r.length===0)return null;let n=r[0];for(let i=1;i<r.length;i++){let s=r[i];(s.start.line>n.start.line||s.start.line===n.start.line&&s.start.character>n.start.character)&&(n=s)}return n}findASTItemInLine(e,r){let n=this._root.lines[e];if(n&&n.length>0){let i=n.find(s=>s.type===r);if(i)return i}return null}resolveAllAssignmentsWithQuery(e){let r=[],n=[this._root,...this._root.scopes];for(let i=0;i<n.length;i++){let o=this._scopeMapping.get(n[i]).aggregator.definitions;o.forEach((l,u)=>{if(u.includes(e)){let a=o.get(u);(0,_L.merge)(r,a)}})}return r}resolveAvailableAssignments(e){var r,n;return(n=(r=this._scopeMapping.get(e.scope))==null?void 0:r.aggregator.resolveAvailableAssignments(e))!=null?n:[]}resolveType(e,r){var n,i;return(i=(n=this._scopeMapping.get(e.scope))==null?void 0:n.aggregator.resolveType(e,r))!=null?i:null}resolveTypeWithDefault(e,r){var n;return(n=this._scopeMapping.get(e.scope))==null?void 0:n.aggregator.resolveTypeWithDefault(e,r)}resolveNamespace(e,r=!1){var n,i;return(i=(n=this._scopeMapping.get(e.scope))==null?void 0:n.aggregator.resolveNamespace(e,r))!=null?i:null}merge(...e){let r=new t({source:this._source,root:this._root,container:this._container.copy()});for(let n=0;n<e.length;n++){let i=e[n];r._globals.extend(i._globals,!0,!0),r._intrinscis.map.extend(i._intrinscis.map,!0,!0),r._intrinscis.funcRef.extend(i._intrinscis.funcRef,!0,!0),r._intrinscis.number.extend(i._intrinscis.number,!0,!0),r._intrinscis.string.extend(i._intrinscis.string,!0,!0),r._intrinscis.list.extend(i._intrinscis.list,!0,!0),r._container.mergeCustomTypes(i._container)}r.analyze();for(let n=0;n<e.length;n++){let i=e[n];r.getRootScopeContext().aggregator.extend(i.getRootScopeContext().aggregator)}return r}};vc.Document=Wy});var Gy=T(_c=>{"use strict";Object.defineProperty(_c,"__esModule",{value:!0});_c.ContainerProxy=void 0;var Rn=Ht(),Hy=ai(),ur=bs(),Z0=oi(),X0=Ko(),zy=sc(),Ky=class t{get primitives(){return this._primitives}get types(){return this._types}constructor(e){var r,n;this._container=e.container,this._primitives=(r=e.primitives)!=null?r:this.createPrimitives(),this._types=(n=e.types)!=null?n:this.createTypes(),this._customTypes=new Set}createPrimitives(){let e=new Map;return this._container.getPrimitives().forEach((r,n)=>{let i=new ur.Entity({source:"internal",kind:Z0.CompletionItemKind.Internal,container:this,isAPI:n===Rn.SignatureDefinitionBaseType.General}).addType(Rn.SignatureDefinitionBaseType.Map).insertSignature(r);e.set(n,i)}),e}createTypes(){let e=new Map;return this._container.getTypes().forEach((r,n)=>{let i=new ur.Entity({source:"internal",kind:Z0.CompletionItemKind.Internal,container:this}).addType(Rn.SignatureDefinitionBaseType.Map).insertSignature(r);e.set(n,i)}),e}setCustomType(e,r){this._types.has(e)||(this._types.set(e,r),this._customTypes.add(e))}mergeCustomTypes(e){e._customTypes.forEach(r=>{let n=e._types.get(r);n!=null&&this.setCustomType(r,n.copy({deepCopy:!0}))})}getTypeSignature(e){var r,n;return(n=(r=this._primitives.get(e))!=null?r:this._types.get(e))!=null?n:null}searchDefinitionMatches(e,r){if(typeof e=="string")return this.searchDefinitionMatches([e],r);let n=e.includes(Rn.SignatureDefinitionBaseType.Any)?new Set(this._container.getAllVisibleTypes()):new Set(e),i=new Map;return n.forEach(s=>{let o=this.getTypeSignature(s);if(o===null)return;let l=(0,zy.lookupProperty)(Hy.PropertyType.Identifier,o,r);l!==null&&i.set(s,l)}),i}getDefinition(e,r,n=!1){if(typeof e=="string")return this.getDefinition([e],r);let i=(0,zy.lookupProperty)(Hy.PropertyType.Identifier,this._primitives.get(Rn.SignatureDefinitionBaseType.Any),r);if(e.includes(Rn.SignatureDefinitionBaseType.Any)&&i)return ur.Entity.resolveEntity(this,i,n);let s=this.searchDefinitionMatches(e,r);if(s.size===0)return null;if(s.size===1)return ur.Entity.resolveEntity(this,s.values().next().value,n);if(s.has(Rn.SignatureDefinitionBaseType.Any))return ur.Entity.resolveEntity(this,s.get(Rn.SignatureDefinitionBaseType.Any),n);if(i!==null)return ur.Entity.resolveEntity(this,i,n);let o=s.values().next().value,l=new ur.Entity({source:"internal",label:r,kind:o.kind,container:this});return s.forEach(u=>{let a=ur.Entity.resolveEntity(this,u,n);l.extend(a,!0,!0)}),l}getGeneralDefinition(e,r=!1){let n=(0,zy.lookupProperty)(Hy.PropertyType.Identifier,this._primitives.get(Rn.SignatureDefinitionBaseType.General),e);return n==null?null:ur.Entity.resolveEntity(this,n,r)}injectTypeIdentifiers(e,r){let n=this.getTypeSignature(r);if(n!=null&&((0,X0.injectIdentifers)(e,n),this._types.has(r))){let i=this._primitives.get(Rn.SignatureDefinitionBaseType.Map);(0,X0.injectIdentifers)(e,i)}}getAvailableIdentifier(e){let r=new Map;if(e===Rn.SignatureDefinitionBaseType.Any){let n=this._container.getAllVisibleTypes();for(let i=0;i<n.length;i++)this.injectTypeIdentifiers(r,n[i]);return r}return this.injectTypeIdentifiers(r,e),r}copy(){return new t({container:this._container})}};_c.ContainerProxy=Ky});var eT=T(wc=>{"use strict";Object.defineProperty(wc,"__esModule",{value:!0});wc.TypeManager=void 0;var wL=Vy(),SL=Gy(),Yy=class{constructor(e){this._container=new SL.ContainerProxy({container:e.container}),this._types=new Map}analyze(e,r){let n=new wL.Document({source:e,container:this._container.copy(),root:r});try{n.analyze()}catch(i){console.error(i)}return this._types.set(e,n),n}get(e){var r;return(r=this._types.get(e))!=null?r:null}};wc.TypeManager=Yy});var Ss=T(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});G.TypeManager=G.ContainerProxy=G.Document=G.Aggregator=G.Scope=G.Entity=G.aggregateEntity=G.lookupProperty=G.isEligibleForProperties=G.injectIdentifers=G.isSignatureDefinitionFunction=G.isResolveChainItemWithValue=G.isResolveChainItemWithMember=G.isResolveChainItemWithIndex=G.isResolveChainItemWithIdentifier=G.IsaPropertyPattern=G.IdentifierPropertyPattern=G.PropertyType=G.CompletionItemKind=G.DEFAULT_CUSTOM_FUNCTION_DESCRIPTION=G.ObjectSetIterator=G.ObjectSet=G.rotateBits=G.getStringHashCode=G.getHashCode=G.createResolveChain=G.enrichWithMetaInformation=G.createExpressionId=G.createExpressionHash=G.isValidIdentifierLiteral=void 0;var xL=jo();Object.defineProperty(G,"isValidIdentifierLiteral",{enumerable:!0,get:function(){return xL.isValidIdentifierLiteral}});var kL=o0();Object.defineProperty(G,"createExpressionHash",{enumerable:!0,get:function(){return kL.createExpressionHash}});var TL=Rg();Object.defineProperty(G,"createExpressionId",{enumerable:!0,get:function(){return TL.createExpressionId}});var IL=iy();Object.defineProperty(G,"enrichWithMetaInformation",{enumerable:!0,get:function(){return IL.enrichWithMetaInformation}});var EL=sy();Object.defineProperty(G,"createResolveChain",{enumerable:!0,get:function(){return EL.createResolveChain}});var Jy=Eg();Object.defineProperty(G,"getHashCode",{enumerable:!0,get:function(){return Jy.getHashCode}});Object.defineProperty(G,"getStringHashCode",{enumerable:!0,get:function(){return Jy.getStringHashCode}});Object.defineProperty(G,"rotateBits",{enumerable:!0,get:function(){return Jy.rotateBits}});var tT=uy();Object.defineProperty(G,"ObjectSet",{enumerable:!0,get:function(){return tT.ObjectSet}});Object.defineProperty(G,"ObjectSetIterator",{enumerable:!0,get:function(){return tT.ObjectSetIterator}});var RL=cy();Object.defineProperty(G,"DEFAULT_CUSTOM_FUNCTION_DESCRIPTION",{enumerable:!0,get:function(){return RL.DEFAULT_CUSTOM_FUNCTION_DESCRIPTION}});var PL=oi();Object.defineProperty(G,"CompletionItemKind",{enumerable:!0,get:function(){return PL.CompletionItemKind}});var Qy=ai();Object.defineProperty(G,"PropertyType",{enumerable:!0,get:function(){return Qy.PropertyType}});Object.defineProperty(G,"IdentifierPropertyPattern",{enumerable:!0,get:function(){return Qy.IdentifierPropertyPattern}});Object.defineProperty(G,"IsaPropertyPattern",{enumerable:!0,get:function(){return Qy.IsaPropertyPattern}});var Sc=dy();Object.defineProperty(G,"isResolveChainItemWithIdentifier",{enumerable:!0,get:function(){return Sc.isResolveChainItemWithIdentifier}});Object.defineProperty(G,"isResolveChainItemWithIndex",{enumerable:!0,get:function(){return Sc.isResolveChainItemWithIndex}});Object.defineProperty(G,"isResolveChainItemWithMember",{enumerable:!0,get:function(){return Sc.isResolveChainItemWithMember}});Object.defineProperty(G,"isResolveChainItemWithValue",{enumerable:!0,get:function(){return Sc.isResolveChainItemWithValue}});var CL=hy();Object.defineProperty(G,"isSignatureDefinitionFunction",{enumerable:!0,get:function(){return CL.isSignatureDefinitionFunction}});var AL=Ko();Object.defineProperty(G,"injectIdentifers",{enumerable:!0,get:function(){return AL.injectIdentifers}});var OL=rc();Object.defineProperty(G,"isEligibleForProperties",{enumerable:!0,get:function(){return OL.isEligibleForProperties}});var DL=sc();Object.defineProperty(G,"lookupProperty",{enumerable:!0,get:function(){return DL.lookupProperty}});var LL=fy();Object.defineProperty(G,"aggregateEntity",{enumerable:!0,get:function(){return LL.aggregateEntity}});var jL=bs();Object.defineProperty(G,"Entity",{enumerable:!0,get:function(){return jL.Entity}});var ML=vy();Object.defineProperty(G,"Scope",{enumerable:!0,get:function(){return ML.Scope}});var qL=Uy();Object.defineProperty(G,"Aggregator",{enumerable:!0,get:function(){return qL.Aggregator}});var FL=Vy();Object.defineProperty(G,"Document",{enumerable:!0,get:function(){return FL.Document}});var NL=Gy();Object.defineProperty(G,"ContainerProxy",{enumerable:!0,get:function(){return NL.ContainerProxy}});var $L=eT();Object.defineProperty(G,"TypeManager",{enumerable:!0,get:function(){return $L.TypeManager}})});var Zy=T(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.getSymbolItemKind=xs.getCompletionItemKind=void 0;var Ue=Ss(),BL={[Ue.CompletionItemKind.Constant]:21,[Ue.CompletionItemKind.Internal]:21,[Ue.CompletionItemKind.InternalFunction]:21,[Ue.CompletionItemKind.InternalProperty]:21,[Ue.CompletionItemKind.Property]:6,[Ue.CompletionItemKind.Variable]:6,[Ue.CompletionItemKind.Expression]:6,[Ue.CompletionItemKind.Function]:3,[Ue.CompletionItemKind.ListConstructor]:12,[Ue.CompletionItemKind.MapConstructor]:12,[Ue.CompletionItemKind.Literal]:12,[Ue.CompletionItemKind.Unknown]:12},UL=t=>{var e;return(e=BL[t])!=null?e:6};xs.getCompletionItemKind=UL;var WL={[Ue.CompletionItemKind.Constant]:14,[Ue.CompletionItemKind.Internal]:14,[Ue.CompletionItemKind.InternalFunction]:14,[Ue.CompletionItemKind.InternalProperty]:14,[Ue.CompletionItemKind.Variable]:13,[Ue.CompletionItemKind.Property]:13,[Ue.CompletionItemKind.Expression]:13,[Ue.CompletionItemKind.Function]:12,[Ue.CompletionItemKind.ListConstructor]:18,[Ue.CompletionItemKind.MapConstructor]:19,[Ue.CompletionItemKind.Literal]:13,[Ue.CompletionItemKind.Unknown]:13},VL=t=>{var e;return(e=WL[t])!=null?e:13};xs.getSymbolItemKind=VL});var nT=T(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});xc.CompletionListBuilder=void 0;var HL=Zy(),Xy=class{constructor(){this.collection=new Map,this.default=[]}setDefault(e){this.default=e}addCollection(e){e!=null&&(this.collection=new Map([...this.collection,...e]))}build(){let e=[];for(let[r,n]of this.collection)e.push({label:r,kind:(0,HL.getCompletionItemKind)(n.kind)});return[...e,...this.default]}};xc.CompletionListBuilder=Xy});var Tc=T(ks=>{"use strict";Object.defineProperty(ks,"__esModule",{value:!0});ks.findEx=ks.ScraperWalker=void 0;var zL=pe(),KL=function(t){return{ParenthesisExpression:(e,r)=>{t(e.expression,r)},AssignmentStatement:function(e,r){t(e.init,r),t(e.variable,r)},MemberExpression:function(e,r){t(e.base,r),t(e.identifier,r)},FunctionDeclaration:function(e,r){for(let n=0;n<e.parameters.length;n++)t(e.parameters[n],r);for(let n=0;n<e.body.length;n++)t(e.body[n],r)},MapConstructorExpression:function(e,r){for(let n=0;n<e.fields.length;n++)t(e.fields[n],r)},ReturnStatement:function(e,r){e.argument&&t(e.argument,r)},WhileStatement:function(e,r){t(e.condition,r);for(let n=0;n<e.body.length;n++)t(e.body[n],r)},IndexExpression:function(e,r){t(e.base,r),t(e.index,r)},SliceExpression:function(e,r){t(e.base,r),t(e.left,r),t(e.right,r)},ListValue:function(e,r){t(e.value,r)},MapKeyString:function(e,r){t(e.key,r),t(e.value,r)},IfShortcutStatement:function(e,r){for(let n=0;n<e.clauses.length;n++)t(e.clauses[n],r)},IfShortcutClause:function(e,r){t(e.condition,r);for(let n=0;n<e.body.length;n++)t(e.body[n],r)},ElseifShortcutClause:function(e,r){t(e.condition,r);for(let n=0;n<e.body.length;n++)t(e.body[n],r)},ElseShortcutClause:function(e,r){for(let n=0;n<e.body.length;n++)t(e.body[n],r)},ForGenericStatement:function(e,r){t(e.variable,r),t(e.iterator,r);for(let n=0;n<e.body.length;n++)t(e.body[n],r)},IfStatement:function(e,r){for(let n=0;n<e.clauses.length;n++)t(e.clauses[n],r)},IfClause:function(e,r){t(e.condition,r);for(let n=0;n<e.body.length;n++)t(e.body[n],r)},ElseifClause:function(e,r){t(e.condition,r);for(let n=0;n<e.body.length;n++)t(e.body[n],r)},ElseClause:function(e,r){for(let n=0;n<e.body.length;n++)t(e.body[n],r)},NegationExpression:function(e,r){t(e.argument,r)},CallExpression:function(e,r){t(e.base,r);for(let n=0;n<e.arguments.length;n++)t(e.arguments[n],r)},CallStatement:function(e,r){t(e.expression,r)},ListConstructorExpression:function(e,r){for(let n=0;n<e.fields.length;n++)t(e.fields[n],r)},BinaryExpression:function(e,r){t(e.left,r),t(e.right,r)},BinaryNegatedExpression:function(e,r){t(e.argument,r)},IsaExpression:function(e,r){t(e.left,r),t(e.right,r)},LogicalExpression:function(e,r){t(e.left,r),t(e.right,r)},ComparisonGroupExpression:function(e,r){for(let n=0;n<e.expressions.length;n++)t(e.expressions[n],r)},UnaryExpression:function(e,r){t(e.argument,r)},Chunk:function(e,r){for(let n=0;n<e.body.length;n++)t(e.body[n],r)},InvalidCodeExpression:()=>{}}},kc=class{constructor(e,r={}){this.map=Object.assign(KL(this.visit.bind(this)),r),this.callback=e,this.state={exit:!1,skip:!1}}visit(e,r=0){if(e==null)return;if(e.type==null)throw console.error("Error ast type:",e),new Error("Unexpected as type");let n=this.callback(e,r);if(n!=null&&Object.assign(this.state,n),this.state.exit||this.state.skip){this.state.skip=!1;return}let i=this.map[e.type];i!=null&&i.call(this,e,r+1)}};ks.ScraperWalker=kc;function GL(t,e){let r=[];return new kc((i,s)=>{let o=t(i,s)||{};return o.valid&&i.type!==zL.ASTType.InvalidCodeExpression&&r.push(i),{exit:!!o.exit,skip:!!o.skip}}).visit(e),r}ks.findEx=GL});var eb=T(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.lookupBase=qt.lookupIdentifier=qt.lookupScopes=qt.lookupRootScope=void 0;var cr=pe(),YL=t=>{let e=t;for(;e.scope;)e=e.scope;return e};qt.lookupRootScope=YL;var JL=t=>{if(!t.scope)return[t];let e=(0,qt.lookupRootScope)(t);return e===t.scope?[t,e]:[t,t.scope,e]};qt.lookupScopes=JL;var QL=t=>{switch(t.type){case cr.ASTType.CallStatement:return(0,qt.lookupIdentifier)(t.expression);case cr.ASTType.CallExpression:return(0,qt.lookupIdentifier)(t.base);case cr.ASTType.Identifier:return t;case cr.ASTType.MemberExpression:return(0,qt.lookupIdentifier)(t.identifier);case cr.ASTType.IndexExpression:return(0,qt.lookupIdentifier)(t.index);default:return null}};qt.lookupIdentifier=QL;var ZL=(t=null)=>{switch(t==null?void 0:t.type){case cr.ASTType.MemberExpression:return t.base;case cr.ASTType.IndexExpression:return t.base;case cr.ASTType.CallExpression:return t.base;case cr.ASTType.SliceExpression:return t.base;default:return null}};qt.lookupBase=ZL});var Is=T(Kn=>{"use strict";var XL=Kn&&Kn.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),ej=Kn&&Kn.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),tj=Kn&&Kn.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&XL(e,t,r);return ej(e,t),e};Object.defineProperty(Kn,"__esModule",{value:!0});Kn.LookupHelper=void 0;var nj=Ht(),rT=pe(),Ts=Ss(),rj=tj(Tc()),ij=eb(),tb=class{constructor(e,r){this.document=e,this.context=r,this.mergedTypeMap=null}getTypeMap(){return F(this,null,function*(){return this.mergedTypeMap==null&&(this.mergedTypeMap=yield this.context.documentMerger.build(this.document,this.context)),this.mergedTypeMap})}findAllAssignmentsOfIdentifier(e,r){return F(this,null,function*(){let n=yield this.getTypeMap();if(n==null)return[];let i=n.getScopeContext(r);return i==null?[]:i.aggregator.resolveAvailableAssignmentsWithQuery(e)})}findAllAssignmentsOfItem(e,r){return F(this,null,function*(){let n=yield this.getTypeMap();if(n==null)return[];let i=n.getScopeContext(r);return i==null?[]:i.aggregator.resolveAvailableAssignments(e)})}findAllAvailableIdentifierInRoot(){return F(this,null,function*(){let e=yield this.getTypeMap();return e==null?new Map:e.getRootScopeContext().scope.getAvailableIdentifier()})}findAllAvailableIdentifier(e){return F(this,null,function*(){let r=yield this.getTypeMap();if(r==null)return new Map;let n=r.getScopeContext(e);return n==null?new Map:n.scope.getAvailableIdentifier()})}findAllAvailableIdentifierRelatedToPosition(e){return F(this,null,function*(){let r=yield this.getTypeMap(),n=new Map;if(r==null)return n;for(let l of r.container.getAvailableIdentifier(nj.SignatureDefinitionBaseType.General))n.set(...l);let i=r.getScopeContext(e.scope);if(i==null)return n;i.scope.isSelfAvailable()&&n.set("self",{kind:Ts.CompletionItemKind.Constant,line:-1}),i.scope.isSuperAvailable()&&n.set("super",{kind:Ts.CompletionItemKind.Constant,line:-1});let s=new Map;(0,Ts.injectIdentifers)(s,i.scope);let o=Array.from(s.entries()).map(([l,u])=>tt({identifier:l},u)).sort((l,u)=>l.line-u.line);for(let l=0;l<o.length;l++){let u=o[l];if(u.line>=e.end.line)break;n.set(u.identifier,{kind:u.kind,line:u.line})}return i.scope.locals!==i.scope.globals&&(0,Ts.injectIdentifers)(n,i.scope.globals),i.scope.outer&&(0,Ts.injectIdentifers)(n,i.scope.outer),n})}lookupAST(e){let r=this,i=this.context.documentManager.get(r.document).document.lines[e.line+1];if(!i)return null;for(let s=0;s<i.length;s++){let o=i[s],l=rj.findEx((a,c)=>{let p=a.start.line-1,d=a.start.character-1,h=a.end.line-1,g=a.end.character-1;return p>e.line?{exit:!0}:p<h?{valid:e.line>p&&e.line<h||e.line===p&&d<=e.character||e.line===h&&g>=e.character}:{valid:p<=e.line&&d<=e.character&&h>=e.line&&g>=e.character}},o),u=l.pop();if(u)return{closest:u,outer:l}}return null}lookupBasePath(e){return F(this,null,function*(){let r=yield this.getTypeMap();if(r===null)return null;let n=(0,ij.lookupBase)(e);return n?r.resolveNamespace(n):null})}lookupTypeInfo(n){return F(this,arguments,function*({closest:e,outer:r}){let i=yield this.getTypeMap();if(i===null)return null;let s=r.length>0?r[r.length-1]:void 0;return(s==null?void 0:s.type)===rT.ASTType.MemberExpression&&e===s.identifier||(s==null?void 0:s.type)===rT.ASTType.IndexExpression&&e===s.index&&(0,Ts.isValidIdentifierLiteral)(e)?i.resolveType(s,!0):i.resolveType(e,!0)})}lookupType(e){let r=this,n=r.lookupAST(e);return n?r.lookupTypeInfo(n):null}};Kn.LookupHelper=tb});var iT=T(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});Ic.AVAILABLE_CONSTANTS=void 0;Ic.AVAILABLE_CONSTANTS=["true","false","null","params","globals","locals","outer"].map(t=>({label:t,kind:21}))});var Ec=T(la=>{"use strict";Object.defineProperty(la,"__esModule",{value:!0});la.GreyScriptKeyword=void 0;var sj;(function(t){t.ImportCode="import_code"})(sj=la.GreyScriptKeyword||(la.GreyScriptKeyword={}))});var ib=T(rb=>{"use strict";Object.defineProperty(rb,"__esModule",{value:!0});var sT=Mt(),oj=pe(),aj=Ec(),nb=class extends sT.LexerValidator{constructor(){super(...arguments),this.isKeyword=Set.prototype.has.bind(new Set([...Object.values(oj.Keyword),...Object.values(sT.GreybelKeyword),...Object.values(aj.GreyScriptKeyword)]))}};rb.default=nb});var ob=T(ua=>{"use strict";var lj=ua&&ua.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ua,"__esModule",{value:!0});var uj=Mt(),cj=lj(ib()),sb=class extends uj.Lexer{constructor(e,r={}){r.validator=r.validator||new cj.default,super(e,r)}};ua.default=sb});var lb=T(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});Rc.ASTChunkGreyScript=void 0;var pj=Mt(),ab=class t extends pj.ASTChunkGreybel{constructor(e){super(e),this.nativeImports=e.nativeImports||[]}clone(){return new t({nativeImports:this.nativeImports.map(e=>e.clone()),imports:this.imports.map(e=>e.clone()),includes:this.includes.map(e=>e.clone()),literals:this.literals.map(e=>e.clone()),scopes:this.scopes.map(e=>e.clone()),lines:this.lines,start:this.start,end:this.end,range:this.range,scope:this.scope})}};Rc.ASTChunkGreyScript=ab});var ub=T(ca=>{"use strict";Object.defineProperty(ca,"__esModule",{value:!0});ca.ASTType=void 0;var dj;(function(t){t.ImportCodeExpression="ImportCodeExpression"})(dj=ca.ASTType||(ca.ASTType={}))});var pb=T(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});Pc.ASTImportCodeExpression=void 0;var hj=pe(),fj=ub(),cb=class t extends hj.ASTBase{constructor(e){super(fj.ASTType.ImportCodeExpression,e),this.directory=e.directory}toString(){return`ImportCode[${this.start}-${this.end}][${this.directory}]`}clone(){return new t({directory:this.directory,start:this.start,end:this.end,range:this.range,scope:this.scope})}};Pc.ASTImportCodeExpression=cb});var hb=T(Gn=>{"use strict";Object.defineProperty(Gn,"__esModule",{value:!0});Gn.ASTImportCodeExpression=Gn.ASTChunkGreyScript=Gn.ASTType=Gn.ASTProvider=void 0;var mj=Mt(),gj=lb(),yj=pb(),db=class extends mj.ASTProvider{chunk(e){return new gj.ASTChunkGreyScript(e)}importCodeExpression(e){return new yj.ASTImportCodeExpression(e)}};Gn.ASTProvider=db;var bj=ub();Object.defineProperty(Gn,"ASTType",{enumerable:!0,get:function(){return bj.ASTType}});var vj=lb();Object.defineProperty(Gn,"ASTChunkGreyScript",{enumerable:!0,get:function(){return vj.ASTChunkGreyScript}});var _j=pb();Object.defineProperty(Gn,"ASTImportCodeExpression",{enumerable:!0,get:function(){return _j.ASTImportCodeExpression}})});var oT=T(pa=>{"use strict";var wj=pa&&pa.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pa,"__esModule",{value:!0});var hi=pe(),Ft=Mt(),Cc=rs(),Es=as(),Sj=hb(),xj=wj(ob()),kj=Ec(),fb=class extends Ft.Parser{constructor(e,r={}){r.lexer=r.lexer||new xj.default(e,{unsafe:r.unsafe,tabWidth:r.tabWidth}),r.astProvider=r.astProvider||new Sj.ASTProvider,super(e,r);let n=this;n.nativeImports=[]}parseStatement(){let e=this;if(e.isType(hi.TokenType.Keyword))switch(e.token.value){case kj.GreyScriptKeyword.ImportCode:e.next();let n=e.parseNativeImportCodeStatement();e.lineRegistry.addItemToLines(n),e.backpatches.peek().body.push(n);return;default:break}return super.parseStatement()}parseFunctionDeclaration(e,r=!1,n=!1){let i=this;if(!Ft.Selectors.Function(i.token))return i.parseOr(r,n);i.next();let s=i.previousToken,o=i.astProvider.functionStatement({start:s.start,end:null,range:[s.range[0],null],scope:i.currentScope,parent:i.outerScopes[i.outerScopes.length-1],assignment:i.currentAssignment}),l=[];if(i.pushScope(o),!Ft.SelectorGroups.BlockEndOfLine(i.token)){for(i.requireToken(Ft.Selectors.LParenthesis,s.start);!Ft.SelectorGroups.FunctionDeclarationArgEnd(i.token);){let a=i.parseIdentifier(hi.ASTIdentifierKind.Argument),c=a;if(i.consume(Ft.Selectors.Assign)){let p=i.parseExpr(null),d=i.astProvider.assignmentStatement({variable:a,init:p,start:c.start,end:i.previousToken.end,range:[c.range[0],i.previousToken.range[1]],scope:i.currentScope});i.currentScope.definitions.push(d),l.push(d)}else{let p=i.astProvider.assignmentStatement({variable:a,init:i.astProvider.unknown({start:c.start,end:i.previousToken.end,range:[c.range[0],i.previousToken.range[1]],scope:i.currentScope}),start:c.start,end:i.previousToken.end,range:[c.range[0],i.previousToken.range[1]],scope:i.currentScope});i.currentScope.definitions.push(p),l.push(a)}if(Ft.Selectors.RParenthesis(i.token))break;if(i.requireToken(Ft.Selectors.ArgumentSeperator,s.start),Ft.Selectors.RParenthesis(i.token)){i.raise("expected argument instead received right parenthesis",new Es.Range(i.previousToken.end,i.previousToken.end));break}}i.requireToken(Ft.Selectors.RParenthesis,s.start)}o.parameters=l;let u=new hi.PendingFunction(o,e,i.lineRegistry);return i.backpatches.push(u),o}parseNativeImportCodeStatement(){var e,r,n,i;let s=this,o=s.previousToken;if(!s.consume(Ft.Selectors.LParenthesis))return s.raise("expected import_code to have opening parenthesis",new Es.Range(o.start,new Cc.Position((e=s.token.lastLine)!==null&&e!==void 0?e:s.token.line,s.token.end.character))),s.parseInvalidCode();let l;if(hi.TokenType.StringLiteral===s.token.type)l=s.token.value,s.next();else return s.raise("expected import_code argument to be string literal",new Es.Range(o.start,new Cc.Position((r=s.token.lastLine)!==null&&r!==void 0?r:s.token.line,s.token.end.character))),s.parseInvalidCode();if(s.consume(Ft.Selectors.ImportCodeSeperator)){if(!s.isType(hi.TokenType.StringLiteral))return s.raise("expected import_code argument to be string literal",new Es.Range(o.start,new Cc.Position((n=s.token.lastLine)!==null&&n!==void 0?n:s.token.line,s.token.end.character))),s.parseInvalidCode();l=s.token.value,console.warn("Warning: Second import_code argument is deprecated. Use the first argument for the file system path instead."),s.next()}if(!s.consume(Ft.Selectors.RParenthesis))return s.raise("expected import_code to have closing parenthesis",new Es.Range(o.start,new Cc.Position((i=s.token.lastLine)!==null&&i!==void 0?i:s.token.line,s.token.end.character))),s.parseInvalidCode();let u=s.astProvider.importCodeExpression({directory:l,start:o.start,end:s.previousToken.end,range:[o.range[0],s.previousToken.range[1]],scope:s.currentScope});return s.nativeImports.push(u),u}parseChunk(){let e=this;e.next();let r=e.token,n=e.astProvider.chunk({start:r.start,end:null,range:[r.range[0],null]}),i=new hi.PendingChunk(n,e.lineRegistry);for(e.backpatches.setDefault(i),e.pushScope(n);!Ft.Selectors.EndOfFile(e.token)&&(e.skipNewlines(),!Ft.Selectors.EndOfFile(e.token));)e.lexer.recordSnapshot(),e.statementErrors=[],e.parseStatement(),e.statementErrors.length>0&&e.tryToRecover();let s=e.backpatches.pop();for(;!(0,hi.isPendingChunk)(s);){let o=e.raise(`found open block ${s.block.type}`,new Es.Range(s.block.start,s.block.start));if(s.complete(e.previousToken),e.errors.push(o),!e.unsafe)throw o;s=e.backpatches.pop()}return e.finishRemaingScopes(),e.popScope(),i.complete(e.token),n.literals=e.literals,n.scopes=e.scopes,n.lines=e.lineRegistry.lines,n.nativeImports=e.nativeImports,n.imports=e.imports,n.includes=e.includes,n.injects=e.injects,n}};pa.default=fb});var Yn=T(Dt=>{"use strict";var Tj=Dt&&Dt.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),aT=Dt&&Dt.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Tj(e,t,r)},mb=Dt&&Dt.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Dt,"__esModule",{value:!0});Dt.Parser=Dt.LexerValidator=Dt.Lexer=void 0;var Ij=ob();Object.defineProperty(Dt,"Lexer",{enumerable:!0,get:function(){return mb(Ij).default}});var Ej=ib();Object.defineProperty(Dt,"LexerValidator",{enumerable:!0,get:function(){return mb(Ej).default}});var Rj=oT();Object.defineProperty(Dt,"Parser",{enumerable:!0,get:function(){return mb(Rj).default}});aT(hb(),Dt);aT(Ec(),Dt)});var lT=T(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});Ac.AVAILABLE_KEYWORDS=void 0;var Rs=Mt(),Pj=Yn(),Lt=pe();Ac.AVAILABLE_KEYWORDS=[Lt.Keyword.If,Lt.Keyword.In,Lt.Keyword.Or,Lt.Keyword.And,Lt.Keyword.Isa,Lt.Keyword.For,Lt.Keyword.New,Lt.Keyword.Not,Lt.Keyword.End,Lt.Keyword.Then,Lt.Keyword.Else,Lt.Keyword.Break,Lt.Keyword.While,Lt.Keyword.Return,Lt.Keyword.Function,Lt.Keyword.Continue,Pj.GreyScriptKeyword.ImportCode,Rs.GreybelKeyword.Envar,Rs.GreybelKeyword.Import,Rs.GreybelKeyword.Include,Rs.GreybelKeyword.Debugger,Rs.GreybelKeyword.Line,Rs.GreybelKeyword.File].map(t=>({label:t,kind:14}))});var uT=T(Oc=>{"use strict";Object.defineProperty(Oc,"__esModule",{value:!0});Oc.AVAILABLE_OPERATORS=void 0;var da=_s(),_t=pe();Oc.AVAILABLE_OPERATORS=[_t.Operator.Plus,_t.Operator.Asterik,_t.Operator.Minus,_t.Operator.Slash,_t.Operator.Power,_t.Operator.Modulo,_t.Operator.LessThan,_t.Operator.GreaterThan,_t.Operator.LessThanOrEqual,_t.Operator.GreaterThanOrEqual,_t.Operator.NotEqual,_t.Operator.Equal,_t.Operator.AddShorthand,_t.Operator.SubtractShorthand,_t.Operator.MultiplyShorthand,_t.Operator.DivideShorthand,da.Operator.BitwiseAnd,da.Operator.BitwiseOr,da.Operator.LeftShift,da.Operator.RightShift,da.Operator.UnsignedRightShift,_t.Operator.Assign,_t.Operator.Reference].map(t=>({label:t,kind:24}))});var pT=T(tn=>{"use strict";Object.defineProperty(tn,"__esModule",{value:!0});tn.activate=tn.getDefaultCompletionList=tn.getPropertyCompletionList=void 0;var cT=pe(),Cj=nT(),Aj=Is(),Oj=iT(),Dj=lT(),Lj=uT(),jj=(t,e)=>F(tn,null,function*(){let r=yield t.lookupBasePath(e);return r===null?null:r.getAvailableIdentifier()});tn.getPropertyCompletionList=jj;var Mj=()=>[...Dj.AVAILABLE_KEYWORDS,...Lj.AVAILABLE_OPERATORS,...Oj.AVAILABLE_CONSTANTS];tn.getDefaultCompletionList=Mj;function qj(t){t.connection.onCompletion(e=>F(this,null,function*(){if(!t.getConfiguration().autocomplete)return;let r=yield t.fs.getTextDocument(e.textDocument.uri);if(r==null)return;let n=yield t.documentManager.getLatest(r),i=new Aj.LookupHelper(n.textDocument,t),s=i.lookupAST(e.position),o=new Cj.CompletionListBuilder;if(s){let{closest:l}=s;l instanceof cT.ASTMemberExpression?o.addCollection(yield(0,tn.getPropertyCompletionList)(i,l)):l instanceof cT.ASTIndexExpression?o.addCollection(yield(0,tn.getPropertyCompletionList)(i,l)):(o.setDefault((0,tn.getDefaultCompletionList)()),o.addCollection(yield i.findAllAvailableIdentifierRelatedToPosition(s.closest)))}else o.setDefault((0,tn.getDefaultCompletionList)()),o.addCollection(yield i.findAllAvailableIdentifierInRoot());return o.build()})),t.connection.onCompletionResolve(e=>e)}tn.activate=qj});var hT=T((sV,dT)=>{"use strict";dT.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var gb=T((oV,mT)=>{var ha=hT(),fT={};for(let t of Object.keys(ha))fT[ha[t]]=t;var J={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};mT.exports=J;for(let t of Object.keys(J)){if(!("channels"in J[t]))throw new Error("missing channels property: "+t);if(!("labels"in J[t]))throw new Error("missing channel labels property: "+t);if(J[t].labels.length!==J[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=J[t];delete J[t].channels,delete J[t].labels,Object.defineProperty(J[t],"channels",{value:e}),Object.defineProperty(J[t],"labels",{value:r})}J.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,n=t[2]/255,i=Math.min(e,r,n),s=Math.max(e,r,n),o=s-i,l,u;s===i?l=0:e===s?l=(r-n)/o:r===s?l=2+(n-e)/o:n===s&&(l=4+(e-r)/o),l=Math.min(l*60,360),l<0&&(l+=360);let a=(i+s)/2;return s===i?u=0:a<=.5?u=o/(s+i):u=o/(2-s-i),[l,u*100,a*100]};J.rgb.hsv=function(t){let e,r,n,i,s,o=t[0]/255,l=t[1]/255,u=t[2]/255,a=Math.max(o,l,u),c=a-Math.min(o,l,u),p=function(d){return(a-d)/6/c+1/2};return c===0?(i=0,s=0):(s=c/a,e=p(o),r=p(l),n=p(u),o===a?i=n-r:l===a?i=1/3+e-n:u===a&&(i=2/3+r-e),i<0?i+=1:i>1&&(i-=1)),[i*360,s*100,a*100]};J.rgb.hwb=function(t){let e=t[0],r=t[1],n=t[2],i=J.rgb.hsl(t)[0],s=1/255*Math.min(e,Math.min(r,n));return n=1-1/255*Math.max(e,Math.max(r,n)),[i,s*100,n*100]};J.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,n=t[2]/255,i=Math.min(1-e,1-r,1-n),s=(1-e-i)/(1-i)||0,o=(1-r-i)/(1-i)||0,l=(1-n-i)/(1-i)||0;return[s*100,o*100,l*100,i*100]};function Fj(t,e){return ut(t[0]-e[0],2)+ut(t[1]-e[1],2)+ut(t[2]-e[2],2)}J.rgb.keyword=function(t){let e=fT[t];if(e)return e;let r=1/0,n;for(let i of Object.keys(ha)){let s=ha[i],o=Fj(t,s);o<r&&(r=o,n=i)}return n};J.keyword.rgb=function(t){return ha[t]};J.rgb.xyz=function(t){let e=t[0]/255,r=t[1]/255,n=t[2]/255;e=e>.04045?ut((e+.055)/1.055,2.4):e/12.92,r=r>.04045?ut((r+.055)/1.055,2.4):r/12.92,n=n>.04045?ut((n+.055)/1.055,2.4):n/12.92;let i=e*.4124+r*.3576+n*.1805,s=e*.2126+r*.7152+n*.0722,o=e*.0193+r*.1192+n*.9505;return[i*100,s*100,o*100]};J.rgb.lab=function(t){let e=J.rgb.xyz(t),r=e[0],n=e[1],i=e[2];r/=95.047,n/=100,i/=108.883,r=r>.008856?ut(r,1/3):7.787*r+16/116,n=n>.008856?ut(n,1/3):7.787*n+16/116,i=i>.008856?ut(i,1/3):7.787*i+16/116;let s=116*n-16,o=500*(r-n),l=200*(n-i);return[s,o,l]};J.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,n=t[2]/100,i,s,o;if(r===0)return o=n*255,[o,o,o];n<.5?i=n*(1+r):i=n+r-n*r;let l=2*n-i,u=[0,0,0];for(let a=0;a<3;a++)s=e+1/3*-(a-1),s<0&&s++,s>1&&s--,6*s<1?o=l+(i-l)*6*s:2*s<1?o=i:3*s<2?o=l+(i-l)*(2/3-s)*6:o=l,u[a]=o*255;return u};J.hsl.hsv=function(t){let e=t[0],r=t[1]/100,n=t[2]/100,i=r,s=Math.max(n,.01);n*=2,r*=n<=1?n:2-n,i*=s<=1?s:2-s;let o=(n+r)/2,l=n===0?2*i/(s+i):2*r/(n+r);return[e,l*100,o*100]};J.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,n=t[2]/100,i=Math.floor(e)%6,s=e-Math.floor(e),o=255*n*(1-r),l=255*n*(1-r*s),u=255*n*(1-r*(1-s));switch(n*=255,i){case 0:return[n,u,o];case 1:return[l,n,o];case 2:return[o,n,u];case 3:return[o,l,n];case 4:return[u,o,n];case 5:return[n,o,l]}};J.hsv.hsl=function(t){let e=t[0],r=t[1]/100,n=t[2]/100,i=Math.max(n,.01),s,o;o=(2-r)*n;let l=(2-r)*i;return s=r*i,s/=l<=1?l:2-l,s=s||0,o/=2,[e,s*100,o*100]};J.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,n=t[2]/100,i=r+n,s;i>1&&(r/=i,n/=i);let o=Math.floor(6*e),l=1-n;s=6*e-o,o&1&&(s=1-s);let u=r+s*(l-r),a,c,p;switch(o){default:case 6:case 0:a=l,c=u,p=r;break;case 1:a=u,c=l,p=r;break;case 2:a=r,c=l,p=u;break;case 3:a=r,c=u,p=l;break;case 4:a=u,c=r,p=l;break;case 5:a=l,c=r,p=u;break}return[a*255,c*255,p*255]};J.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,n=t[2]/100,i=t[3]/100,s=1-Math.min(1,e*(1-i)+i),o=1-Math.min(1,r*(1-i)+i),l=1-Math.min(1,n*(1-i)+i);return[s*255,o*255,l*255]};J.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,n=t[2]/100,i,s,o;return i=e*3.2406+r*-1.5372+n*-.4986,s=e*-.9689+r*1.8758+n*.0415,o=e*.0557+r*-.204+n*1.057,i=i>.0031308?1.055*ut(i,1/2.4)-.055:i*12.92,s=s>.0031308?1.055*ut(s,1/2.4)-.055:s*12.92,o=o>.0031308?1.055*ut(o,1/2.4)-.055:o*12.92,i=Math.min(Math.max(0,i),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[i*255,s*255,o*255]};J.xyz.lab=function(t){let e=t[0],r=t[1],n=t[2];e/=95.047,r/=100,n/=108.883,e=e>.008856?ut(e,1/3):7.787*e+16/116,r=r>.008856?ut(r,1/3):7.787*r+16/116,n=n>.008856?ut(n,1/3):7.787*n+16/116;let i=116*r-16,s=500*(e-r),o=200*(r-n);return[i,s,o]};J.lab.xyz=function(t){let e=t[0],r=t[1],n=t[2],i,s,o;s=(e+16)/116,i=r/500+s,o=s-n/200;let l=ut(s,3),u=ut(i,3),a=ut(o,3);return s=l>.008856?l:(s-16/116)/7.787,i=u>.008856?u:(i-16/116)/7.787,o=a>.008856?a:(o-16/116)/7.787,i*=95.047,s*=100,o*=108.883,[i,s,o]};J.lab.lch=function(t){let e=t[0],r=t[1],n=t[2],i;i=Math.atan2(n,r)*360/2/Math.PI,i<0&&(i+=360);let o=Math.sqrt(r*r+n*n);return[e,o,i]};J.lch.lab=function(t){let e=t[0],r=t[1],i=t[2]/360*2*Math.PI,s=r*Math.cos(i),o=r*Math.sin(i);return[e,s,o]};J.rgb.ansi16=function(t,e=null){let[r,n,i]=t,s=e===null?J.rgb.hsv(t)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return s===2&&(o+=60),o};J.hsv.ansi16=function(t){return J.rgb.ansi16(J.hsv.rgb(t),t[2])};J.rgb.ansi256=function(t){let e=t[0],r=t[1],n=t[2];return e===r&&r===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)};J.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,n=(e&1)*r*255,i=(e>>1&1)*r*255,s=(e>>2&1)*r*255;return[n,i,s]};J.ansi256.rgb=function(t){if(t>=232){let s=(t-232)*10+8;return[s,s,s]}t-=16;let e,r=Math.floor(t/36)/5*255,n=Math.floor((e=t%36)/6)/5*255,i=e%6/5*255;return[r,n,i]};J.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};J.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(l=>l+l).join(""));let n=parseInt(r,16),i=n>>16&255,s=n>>8&255,o=n&255;return[i,s,o]};J.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,n=t[2]/255,i=Math.max(Math.max(e,r),n),s=Math.min(Math.min(e,r),n),o=i-s,l,u;return o<1?l=s/(1-o):l=0,o<=0?u=0:i===e?u=(r-n)/o%6:i===r?u=2+(n-e)/o:u=4+(e-r)/o,u/=6,u%=1,[u*360,o*100,l*100]};J.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,n=r<.5?2*e*r:2*e*(1-r),i=0;return n<1&&(i=(r-.5*n)/(1-n)),[t[0],n*100,i*100]};J.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,n=e*r,i=0;return n<1&&(i=(r-n)/(1-n)),[t[0],n*100,i*100]};J.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,n=t[2]/100;if(r===0)return[n*255,n*255,n*255];let i=[0,0,0],s=e%1*6,o=s%1,l=1-o,u=0;switch(Math.floor(s)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=l,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=l,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=l}return u=(1-r)*n,[(r*i[0]+u)*255,(r*i[1]+u)*255,(r*i[2]+u)*255]};J.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,n=e+r*(1-e),i=0;return n>0&&(i=e/n),[t[0],i*100,n*100]};J.hcg.hsl=function(t){let e=t[1]/100,n=t[2]/100*(1-e)+.5*e,i=0;return n>0&&n<.5?i=e/(2*n):n>=.5&&n<1&&(i=e/(2*(1-n))),[t[0],i*100,n*100]};J.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,n=e+r*(1-e);return[t[0],(n-e)*100,(1-n)*100]};J.hwb.hcg=function(t){let e=t[1]/100,n=1-t[2]/100,i=n-e,s=0;return i<1&&(s=(n-i)/(1-i)),[t[0],i*100,s*100]};J.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};J.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};J.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};J.gray.hsl=function(t){return[0,0,t[0]]};J.gray.hsv=J.gray.hsl;J.gray.hwb=function(t){return[0,100,t[0]]};J.gray.cmyk=function(t){return[0,0,0,t[0]]};J.gray.lab=function(t){return[t[0],0,0]};J.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,n=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(n.length)+n};J.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var yT=T((lV,gT)=>{var Dc=gb();function Nj(){let t={},e=Object.keys(Dc);for(let r=e.length,n=0;n<r;n++)t[e[n]]={distance:-1,parent:null};return t}function $j(t){let e=Nj(),r=[t];for(e[t].distance=0;r.length;){let n=r.pop(),i=Object.keys(Dc[n]);for(let s=i.length,o=0;o<s;o++){let l=i[o],u=e[l];u.distance===-1&&(u.distance=e[n].distance+1,u.parent=n,r.unshift(l))}}return e}function Bj(t,e){return function(r){return e(t(r))}}function Uj(t,e){let r=[e[t].parent,t],n=Dc[e[t].parent][t],i=e[t].parent;for(;e[i].parent;)r.unshift(e[i].parent),n=Bj(Dc[e[i].parent][i],n),i=e[i].parent;return n.conversion=r,n}gT.exports=function(t){let e=$j(t),r={},n=Object.keys(e);for(let i=n.length,s=0;s<i;s++){let o=n[s];e[o].parent!==null&&(r[o]=Uj(o,e))}return r}});var vT=T((uV,bT)=>{var yb=gb(),Wj=yT(),Ps={},Vj=Object.keys(yb);function Hj(t){let e=function(...r){let n=r[0];return n==null?n:(n.length>1&&(r=n),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function zj(t){let e=function(...r){let n=r[0];if(n==null)return n;n.length>1&&(r=n);let i=t(r);if(typeof i=="object")for(let s=i.length,o=0;o<s;o++)i[o]=Math.round(i[o]);return i};return"conversion"in t&&(e.conversion=t.conversion),e}Vj.forEach(t=>{Ps[t]={},Object.defineProperty(Ps[t],"channels",{value:yb[t].channels}),Object.defineProperty(Ps[t],"labels",{value:yb[t].labels});let e=Wj(t);Object.keys(e).forEach(n=>{let i=e[n];Ps[t][n]=zj(i),Ps[t][n].raw=Hj(i)})});bT.exports=Ps});var wT=T(Cs=>{"use strict";var Kj=Cs&&Cs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Cs,"__esModule",{value:!0});Cs.activate=void 0;var bb=Kj(vT()),Gj=pe(),_T;(function(t){t.Black="black",t.Blue="blue",t.Green="green",t.Orange="orange",t.Purple="purple",t.Red="red",t.White="white",t.Yellow="yellow"})(_T||(_T={}));var vb={black:"#000000",blue:"#0000FF",green:"#00FF00",orange:"#FF8800",purple:"#CC8899",red:"#FF0000",white:"#FFFFFF",yellow:"#FFFF00"},Yj=()=>new RegExp(`(?:mark|color)=(${Object.keys(vb).join("|")}|(?:#[0-9a-f]{6}|#[0-9a-f]{3}))`,"ig"),Jj=Object.prototype.hasOwnProperty;function Qj(t){t.connection.onColorPresentation(e=>[{label:`#${bb.default.rgb.hex(e.color.red*255,e.color.green*255,e.color.blue*255)}`}]),t.connection.onDocumentColor(e=>F(this,null,function*(){let r=yield t.fs.getTextDocument(e.textDocument.uri);if(r==null)return;let s=(yield t.documentManager.getLatest(r)).document.literals.filter(u=>u.type===Gj.ASTType.StringLiteral),o=[],l=({match:u,markup:a,value:c,astPosition:p,lineIndex:d})=>{let h=u.index+a.indexOf("=")+1,g=h+c.length,f=p.line-1+d,m=h,b=g;return d===0&&(m+=p.character,b+=p.character),{start:{line:f,character:m},end:{line:f,character:b}}};for(let u=0;u<s.length;u++){let a=s[u];if(!a.start)continue;let c=a.start,p=a.value.toString().split(`
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "greybel-languageserver-browser",
|
3
|
-
"version": "1.8.
|
3
|
+
"version": "1.8.2",
|
4
4
|
"description": "Language server for GreyScript",
|
5
5
|
"main": "./index.js",
|
6
6
|
"scripts": {
|
@@ -70,10 +70,10 @@
|
|
70
70
|
"typescript": "^4.5.4"
|
71
71
|
},
|
72
72
|
"dependencies": {
|
73
|
-
"greyscript-core": "~2.5.
|
73
|
+
"greyscript-core": "~2.5.1",
|
74
74
|
"greyscript-meta": "~4.2.0",
|
75
|
-
"greyscript-transpiler": "~1.6.
|
76
|
-
"miniscript-type-analyzer": "~0.20.
|
75
|
+
"greyscript-transpiler": "~1.6.1",
|
76
|
+
"miniscript-type-analyzer": "~0.20.2",
|
77
77
|
"greybel-languageserver-core": "~1.8.0"
|
78
78
|
}
|
79
79
|
}
|