@arcgis/arcade-languageservice 1.22.0-next.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/LICENSE.md +13 -0
  2. package/README.md +21 -0
  3. package/dist/assets/api/arcade-api.t9n.ar.json +6702 -0
  4. package/dist/assets/api/arcade-api.t9n.bg.json +6702 -0
  5. package/dist/assets/api/arcade-api.t9n.bs.json +6702 -0
  6. package/dist/assets/api/arcade-api.t9n.ca.json +6702 -0
  7. package/dist/assets/api/arcade-api.t9n.cs.json +6702 -0
  8. package/dist/assets/api/arcade-api.t9n.da.json +6702 -0
  9. package/dist/assets/api/arcade-api.t9n.de.json +6702 -0
  10. package/dist/assets/api/arcade-api.t9n.el.json +6702 -0
  11. package/dist/assets/api/arcade-api.t9n.en.json +6702 -0
  12. package/dist/assets/api/arcade-api.t9n.es.json +6702 -0
  13. package/dist/assets/api/arcade-api.t9n.et.json +6702 -0
  14. package/dist/assets/api/arcade-api.t9n.fi.json +6702 -0
  15. package/dist/assets/api/arcade-api.t9n.fr.json +6702 -0
  16. package/dist/assets/api/arcade-api.t9n.he.json +6702 -0
  17. package/dist/assets/api/arcade-api.t9n.hr.json +6702 -0
  18. package/dist/assets/api/arcade-api.t9n.hu.json +6702 -0
  19. package/dist/assets/api/arcade-api.t9n.id.json +6702 -0
  20. package/dist/assets/api/arcade-api.t9n.it.json +6702 -0
  21. package/dist/assets/api/arcade-api.t9n.ja.json +6702 -0
  22. package/dist/assets/api/arcade-api.t9n.ko.json +6702 -0
  23. package/dist/assets/api/arcade-api.t9n.lt.json +6702 -0
  24. package/dist/assets/api/arcade-api.t9n.lv.json +6702 -0
  25. package/dist/assets/api/arcade-api.t9n.nb.json +6702 -0
  26. package/dist/assets/api/arcade-api.t9n.nl.json +6702 -0
  27. package/dist/assets/api/arcade-api.t9n.pl.json +6702 -0
  28. package/dist/assets/api/arcade-api.t9n.pt-BR.json +6702 -0
  29. package/dist/assets/api/arcade-api.t9n.pt-PT.json +6702 -0
  30. package/dist/assets/api/arcade-api.t9n.ro.json +6702 -0
  31. package/dist/assets/api/arcade-api.t9n.ru.json +6702 -0
  32. package/dist/assets/api/arcade-api.t9n.sk.json +6702 -0
  33. package/dist/assets/api/arcade-api.t9n.sl.json +6702 -0
  34. package/dist/assets/api/arcade-api.t9n.sr.json +6702 -0
  35. package/dist/assets/api/arcade-api.t9n.sv.json +6702 -0
  36. package/dist/assets/api/arcade-api.t9n.th.json +6702 -0
  37. package/dist/assets/api/arcade-api.t9n.tr.json +6702 -0
  38. package/dist/assets/api/arcade-api.t9n.uk.json +6702 -0
  39. package/dist/assets/api/arcade-api.t9n.vi.json +6702 -0
  40. package/dist/assets/api/arcade-api.t9n.zh-CN.json +6702 -0
  41. package/dist/assets/api/arcade-api.t9n.zh-HK.json +6702 -0
  42. package/dist/assets/api/arcade-api.t9n.zh-TW.json +6702 -0
  43. package/dist/assets/profiles/arcade-profiles.t9n.ar.json +745 -0
  44. package/dist/assets/profiles/arcade-profiles.t9n.bg.json +745 -0
  45. package/dist/assets/profiles/arcade-profiles.t9n.bs.json +745 -0
  46. package/dist/assets/profiles/arcade-profiles.t9n.ca.json +745 -0
  47. package/dist/assets/profiles/arcade-profiles.t9n.cs.json +745 -0
  48. package/dist/assets/profiles/arcade-profiles.t9n.da.json +745 -0
  49. package/dist/assets/profiles/arcade-profiles.t9n.de.json +745 -0
  50. package/dist/assets/profiles/arcade-profiles.t9n.el.json +745 -0
  51. package/dist/assets/profiles/arcade-profiles.t9n.en.json +738 -0
  52. package/dist/assets/profiles/arcade-profiles.t9n.es.json +745 -0
  53. package/dist/assets/profiles/arcade-profiles.t9n.et.json +745 -0
  54. package/dist/assets/profiles/arcade-profiles.t9n.fi.json +745 -0
  55. package/dist/assets/profiles/arcade-profiles.t9n.fr.json +745 -0
  56. package/dist/assets/profiles/arcade-profiles.t9n.he.json +745 -0
  57. package/dist/assets/profiles/arcade-profiles.t9n.hr.json +745 -0
  58. package/dist/assets/profiles/arcade-profiles.t9n.hu.json +745 -0
  59. package/dist/assets/profiles/arcade-profiles.t9n.id.json +745 -0
  60. package/dist/assets/profiles/arcade-profiles.t9n.it.json +745 -0
  61. package/dist/assets/profiles/arcade-profiles.t9n.ja.json +745 -0
  62. package/dist/assets/profiles/arcade-profiles.t9n.ko.json +745 -0
  63. package/dist/assets/profiles/arcade-profiles.t9n.lt.json +745 -0
  64. package/dist/assets/profiles/arcade-profiles.t9n.lv.json +745 -0
  65. package/dist/assets/profiles/arcade-profiles.t9n.nb.json +745 -0
  66. package/dist/assets/profiles/arcade-profiles.t9n.nl.json +745 -0
  67. package/dist/assets/profiles/arcade-profiles.t9n.pl.json +745 -0
  68. package/dist/assets/profiles/arcade-profiles.t9n.pt-BR.json +745 -0
  69. package/dist/assets/profiles/arcade-profiles.t9n.pt-PT.json +745 -0
  70. package/dist/assets/profiles/arcade-profiles.t9n.ro.json +745 -0
  71. package/dist/assets/profiles/arcade-profiles.t9n.ru.json +745 -0
  72. package/dist/assets/profiles/arcade-profiles.t9n.sk.json +745 -0
  73. package/dist/assets/profiles/arcade-profiles.t9n.sl.json +745 -0
  74. package/dist/assets/profiles/arcade-profiles.t9n.sr.json +745 -0
  75. package/dist/assets/profiles/arcade-profiles.t9n.sv.json +745 -0
  76. package/dist/assets/profiles/arcade-profiles.t9n.th.json +745 -0
  77. package/dist/assets/profiles/arcade-profiles.t9n.tr.json +745 -0
  78. package/dist/assets/profiles/arcade-profiles.t9n.uk.json +745 -0
  79. package/dist/assets/profiles/arcade-profiles.t9n.vi.json +745 -0
  80. package/dist/assets/profiles/arcade-profiles.t9n.zh-CN.json +745 -0
  81. package/dist/assets/profiles/arcade-profiles.t9n.zh-HK.json +745 -0
  82. package/dist/assets/profiles/arcade-profiles.t9n.zh-TW.json +745 -0
  83. package/dist/assets/t9n/profile.t9n.ar.json +33 -0
  84. package/dist/assets/t9n/profile.t9n.bg.json +33 -0
  85. package/dist/assets/t9n/profile.t9n.bs.json +33 -0
  86. package/dist/assets/t9n/profile.t9n.ca.json +33 -0
  87. package/dist/assets/t9n/profile.t9n.cs.json +33 -0
  88. package/dist/assets/t9n/profile.t9n.da.json +33 -0
  89. package/dist/assets/t9n/profile.t9n.de.json +33 -0
  90. package/dist/assets/t9n/profile.t9n.el.json +33 -0
  91. package/dist/assets/t9n/profile.t9n.en.json +33 -0
  92. package/dist/assets/t9n/profile.t9n.es.json +33 -0
  93. package/dist/assets/t9n/profile.t9n.et.json +33 -0
  94. package/dist/assets/t9n/profile.t9n.fi.json +33 -0
  95. package/dist/assets/t9n/profile.t9n.fr.json +33 -0
  96. package/dist/assets/t9n/profile.t9n.he.json +33 -0
  97. package/dist/assets/t9n/profile.t9n.hr.json +33 -0
  98. package/dist/assets/t9n/profile.t9n.hu.json +33 -0
  99. package/dist/assets/t9n/profile.t9n.id.json +33 -0
  100. package/dist/assets/t9n/profile.t9n.it.json +33 -0
  101. package/dist/assets/t9n/profile.t9n.ja.json +33 -0
  102. package/dist/assets/t9n/profile.t9n.ko.json +33 -0
  103. package/dist/assets/t9n/profile.t9n.lt.json +33 -0
  104. package/dist/assets/t9n/profile.t9n.lv.json +33 -0
  105. package/dist/assets/t9n/profile.t9n.nb.json +33 -0
  106. package/dist/assets/t9n/profile.t9n.nl.json +33 -0
  107. package/dist/assets/t9n/profile.t9n.pl.json +33 -0
  108. package/dist/assets/t9n/profile.t9n.pt-BR.json +33 -0
  109. package/dist/assets/t9n/profile.t9n.pt-PT.json +33 -0
  110. package/dist/assets/t9n/profile.t9n.ro.json +33 -0
  111. package/dist/assets/t9n/profile.t9n.ru.json +33 -0
  112. package/dist/assets/t9n/profile.t9n.sk.json +33 -0
  113. package/dist/assets/t9n/profile.t9n.sl.json +33 -0
  114. package/dist/assets/t9n/profile.t9n.sr.json +33 -0
  115. package/dist/assets/t9n/profile.t9n.sv.json +33 -0
  116. package/dist/assets/t9n/profile.t9n.th.json +33 -0
  117. package/dist/assets/t9n/profile.t9n.tr.json +33 -0
  118. package/dist/assets/t9n/profile.t9n.uk.json +33 -0
  119. package/dist/assets/t9n/profile.t9n.vi.json +33 -0
  120. package/dist/assets/t9n/profile.t9n.zh-CN.json +33 -0
  121. package/dist/assets/t9n/profile.t9n.zh-HK.json +33 -0
  122. package/dist/assets/t9n/profile.t9n.zh-TW.json +33 -0
  123. package/dist/esm/index.d.ts +478 -0
  124. package/dist/esm/index.js +34 -0
  125. package/package.json +62 -0
@@ -0,0 +1,34 @@
1
+ function Ne(e){return!!e&&e.type!=="dictionary"}function pt(e){return e?.type==="dictionary"}var Ve=(e=>(e.False="false",e.Null="null",e.True="true",e))(Ve||{}),je=(e=>(e.Break="break",e.Continue="continue",e.Else="else",e.For="for",e.From="from",e.Function="function",e.If="if",e.Import="import",e.Export="export",e.In="in",e.Return="return",e.Var="var",e.While="while",e))(je||{}),d=(e=>(e.AssignmentExpression="AssignmentExpression",e.ArrayExpression="ArrayExpression",e.BlockComment="BlockComment",e.BlockStatement="BlockStatement",e.BinaryExpression="BinaryExpression",e.BreakStatement="BreakStatement",e.CallExpression="CallExpression",e.ContinueStatement="ContinueStatement",e.EmptyStatement="EmptyStatement",e.ExpressionStatement="ExpressionStatement",e.ExportNamedDeclaration="ExportNamedDeclaration",e.ExportSpecifier="ExportSpecifier",e.ForStatement="ForStatement",e.ForInStatement="ForInStatement",e.FunctionDeclaration="FunctionDeclaration",e.Identifier="Identifier",e.IfStatement="IfStatement",e.ImportDeclaration="ImportDeclaration",e.ImportDefaultSpecifier="ImportDefaultSpecifier",e.LineComment="LineComment",e.Literal="Literal",e.LogicalExpression="LogicalExpression",e.MemberExpression="MemberExpression",e.ObjectExpression="ObjectExpression",e.Program="Program",e.Property="Property",e.ReturnStatement="ReturnStatement",e.TemplateElement="TemplateElement",e.TemplateLiteral="TemplateLiteral",e.UnaryExpression="UnaryExpression",e.UpdateExpression="UpdateExpression",e.VariableDeclaration="VariableDeclaration",e.VariableDeclarator="VariableDeclarator",e.WhileStatement="WhileStatement",e))(d||{}),_e=["++","--"],Et=["-","+","!","~"],Ft=["=","/=","*=","%=","+=","-="],At=["||","&&"],zi=["|","&",">>","<<",">>>","^","==","!=","<","<=",">",">=","+","-","*","/","%"],pe={"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},$i=(e=>(e[e.Unknown=0]="Unknown",e[e.BooleanLiteral=1]="BooleanLiteral",e[e.EOF=2]="EOF",e[e.Identifier=3]="Identifier",e[e.Keyword=4]="Keyword",e[e.NullLiteral=5]="NullLiteral",e[e.NumericLiteral=6]="NumericLiteral",e[e.Punctuator=7]="Punctuator",e[e.StringLiteral=8]="StringLiteral",e[e.Template=10]="Template",e))($i||{}),yt=["Unknown","Boolean","<end>","Identifier","Keyword","Null","Numeric","Punctuator","String","RegularExpression","Template"],Wi=(e=>(e.InvalidModuleUri="InvalidModuleUri",e.ForInOfLoopInitializer="ForInOfLoopInitializer",e.IdentiferExpected="IdentiferExpected",e.InvalidEscapedReservedWord="InvalidEscapedReservedWord",e.InvalidExpression="InvalidExpression",e.InvalidFunctionIdentifier="InvalidFunctionIdentifier",e.InvalidHexEscapeSequence="InvalidHexEscapeSequence",e.InvalidLeftHandSideInAssignment="InvalidLeftHandSideInAssignment",e.InvalidLeftHandSideInForIn="InvalidLeftHandSideInForIn",e.InvalidTemplateHead="InvalidTemplateHead",e.InvalidVariableAssignment="InvalidVariableAssignment",e.KeyMustBeString="KeyMustBeString",e.NoFunctionInsideBlock="NoFunctionInsideBlock",e.NoFunctionInsideFunction="NoFunctionInsideFunction",e.ModuleExportRootOnly="ModuleExportRootOnly",e.ModuleImportRootOnly="ModuleImportRootOnly",e.PunctuatorExpected="PunctuatorExpected",e.TemplateOctalLiteral="TemplateOctalLiteral",e.UnexpectedBoolean="UnexpectedBoolean",e.UnexpectedEndOfScript="UnexpectedEndOfScript",e.UnexpectedIdentifier="UnexpectedIdentifier",e.UnexpectedKeyword="UnexpectedKeyword",e.UnexpectedNull="UnexpectedNull",e.UnexpectedNumber="UnexpectedNumber",e.UnexpectedPunctuator="UnexpectedPunctuator",e.UnexpectedString="UnexpectedString",e.UnexpectedTemplate="UnexpectedTemplate",e.UnexpectedToken="UnexpectedToken",e))(Wi||{}),X={InvalidModuleUri:"Module uri must be a text literal.",ForInOfLoopInitializer:"for-in loop variable declaration may not have an initializer.",IdentiferExpected:"'${value}' is an invalid identifier.",InvalidEscapedReservedWord:"Keyword cannot contain escaped characters.",InvalidExpression:"Invalid expression.",InvalidFunctionIdentifier:"'${value}' is an invalid function identifier.",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence.",InvalidLeftHandSideInAssignment:"Invalid left-hand side in assignment.",InvalidLeftHandSideInForIn:"Invalid left-hand side in for-in.",InvalidTemplateHead:"Invalid template structure.",InvalidVariableAssignment:"Invalid variable assignment.",KeyMustBeString:"Object property keys must be a word starting with a letter.",NoFunctionInsideBlock:"Functions cannot be declared inside of code blocks.",NoFunctionInsideFunction:"Functions cannot be declared inside another function.",ModuleExportRootOnly:"Module exports cannot be declared inside of code blocks.",ModuleImportRootOnly:"Module import cannot be declared inside of code blocks.",PunctuatorExpected:"'${value}' expected.",TemplateOctalLiteral:"Octal literals are not allowed in template literals.",UnexpectedBoolean:"Unexpected boolean literal.",UnexpectedEndOfScript:"Unexpected end of Arcade expression.",UnexpectedIdentifier:"Unexpected identifier.",UnexpectedKeyword:"Unexpected keyword.",UnexpectedNull:"Unexpected null literal.",UnexpectedNumber:"Unexpected number.",UnexpectedPunctuator:"Unexpected ponctuator.",UnexpectedString:"Unexpected text literal.",UnexpectedTemplate:"Unexpected quasi '${value}'.",UnexpectedToken:"Unexpected token '${value}'."},de=class vt extends Error{constructor({code:t,index:i,line:r,column:n,len:s=0,description:a,data:o}){super(`${a??t}`),this.declaredRootClass="esri.arcade.lib.diagnostic",this.name="ParsingError",this.code=t,this.index=i,this.line=r,this.column=n,this.len=s,this.data=o,this.description=a,this.range={start:{line:r,column:n-1},end:{line:r,column:n+s}},Error.captureStackTrace?.(this,vt)}};function qi(e){return e?.type==="Program"}function b(e){return e?.type==="BlockStatement"}function Hi(e){return e?.type==="BlockComment"}function Q(e){return e?.type==="EmptyStatement"}function Pt(e){return e?.type==="ExpressionStatement"}function Re(e){return e?.type==="FunctionDeclaration"}function he(e){return e?.type==="IfStatement"}function z(e){return e?.type==="VariableDeclaration"}function Z(e){return e?.type==="ArrayExpression"}function Y(e){return e?.type==="BinaryExpression"}function S(e){return e?.type==="Identifier"}function ze(e){return e?.type==="Literal"}function ee(e){return e?.type==="LogicalExpression"}function $e(e){return e?.type==="ObjectExpression"}function We(e){return e?.type==="MemberExpression"}function bt(e){return e?.type==="UnaryExpression"}function St(e){return e?.type==="UpdateExpression"}function qe(e){return e?.type==="VariableDeclarator"}function It(e){return e?.type==="Property"}function Me(e,t){return t?t.loc.end.line===e.loc.start.line&&t.loc.end.column<=e.loc.start.column:!1}function ht(e,t){return e.range[0]>=t.range[0]&&e.range[1]<=t.range[1]}var Gi=class{constructor(){this.comments=[],this._nodeStack=[],this._newComments=[]}insertInnerComments(e){if(!b(e)||e.body.length!==0)return;let t=[];for(let i=this._newComments.length-1;i>=0;--i){let r=this._newComments[i];e.range[1]>=r.range[0]&&(t.unshift(r),this._newComments.splice(i,1))}t.length&&(e.innerComments=t)}attachTrailingComments(e){if(!e)return;let t=this._nodeStack[this._nodeStack.length-1];if(b(e)&&ht(t,e))for(let r=this._newComments.length-1;r>=0;--r){let n=this._newComments[r];ht(n,e)&&(t.trailingComments=[...t.trailingComments??[],n],this._newComments.splice(r,1))}let i=[];if(this._newComments.length>0)for(let r=this._newComments.length-1;r>=0;--r){let n=this._newComments[r];Me(n,t)?(t.trailingComments=[...t.trailingComments??[],n],this._newComments.splice(r,1)):Me(n,e)&&(i.unshift(n),this._newComments.splice(r,1))}if(t?.trailingComments){let r=t.trailingComments[0];Me(r,e)&&(i=[...i,...t.trailingComments],delete t.trailingComments)}i.length>0&&(e.trailingComments=i)}attachLeadingComments(e){if(!e)return;let t;for(;this._nodeStack.length>0;){let n=this._nodeStack[this._nodeStack.length-1];if(e.range[0]<=n.range[0]){t=n,this._nodeStack.pop();continue}break}let i=[],r=[];if(t!=null){if(!t.leadingComments)return;for(let n=t.leadingComments.length-1;n>=0;--n){let s=t.leadingComments[n];if(e.range[0]>=s.range[1]){i.unshift(s),t.leadingComments.splice(n,1);continue}qe(e)&&!Hi(s)&&(r.unshift(s),t.leadingComments.splice(n,1))}t.leadingComments?.length===0&&delete t.leadingComments,i.length&&(e.leadingComments=i),r.length&&(e.trailingComments=[...r,...e.trailingComments??[]]);return}for(let n=this._newComments.length-1;n>=0;--n){let s=this._newComments[n];e.range[0]>=s.range[0]&&(i.unshift(s),this._newComments.splice(n,1))}i.length&&(e.leadingComments=i)}attachComments(e){if(qi(e)&&e.body.length>0){let t=this._nodeStack[this._nodeStack.length-1];if(t){t.trailingComments=[...t.trailingComments??[],...this._newComments],this._newComments.length=0,this._nodeStack.pop();return}e.trailingComments=[...this._newComments],this._newComments.length=0;return}this.attachTrailingComments(e),this.attachLeadingComments(e),this.insertInnerComments(e),this._nodeStack.push(e)}collectComment(e){this.comments.push(e),this._newComments.push(e)}};function Oe(e,t){let i=X[e];return t?i.replace(/\${(.*?)}/g,(r,n)=>t[n]?.toString()??""):i}var kt=class{constructor(e=!1){this.tolerant=e,this.errors=[]}recordError(e){this.errors.push(e)}tolerate(e){if(this.tolerant)this.recordError(e);else throw e}throwError(e){throw e.description=e.description??Oe(e.code,e.data),new de(e)}tolerateError(e){e.description=e.description??Oe(e.code,e.data);let t=new de(e);if(this.tolerant)this.recordError(t);else throw t}};function ft(e,t){if(!e)throw new Error("ASSERT: "+t)}var mt={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D3-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDF00-\uDF1C\uDF27\uDF30-\uDF50\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD46\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E\uDC5F\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},f={fromCodePoint(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(e)},isLineTerminator(e){return e===10||e===13||e===8232||e===8233},isIdentifierStart(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&mt.NonAsciiIdentifierStart.test(f.fromCodePoint(e))},isIdentifierPart(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&mt.NonAsciiIdentifierPart.test(f.fromCodePoint(e))},isDecimalDigit(e){return e>=48&&e<=57},isHexDigit(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit(e){return e>=48&&e<=55}};function Dt(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function Ue(e){return"01234567".indexOf(e)}var V=[[],[],[]];_e.forEach(e=>V[e.length-1].push(e));Et.forEach(e=>V[e.length-1].push(e));At.forEach(e=>V[e.length-1].push(e));Ft.forEach(e=>V[e.length-1].push(e));zi.forEach(e=>V[e.length-1].push(e));var Lt=class{constructor(e,t){this.source=e,this.errorHandler=t,this._length=e.length,this.index=0,this.lineNumber=1,this.lineStart=0,this.curlyStack=[]}saveState(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart,curlyStack:this.curlyStack.slice()}}restoreState(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart,this.curlyStack=e.curlyStack}eof(){return this.index>=this._length}throwUnexpectedToken(e="UnexpectedToken"){this.errorHandler.throwError({code:e,index:this.index,line:this.lineNumber,column:this.index-this.lineStart+1,data:{value:this.source.charAt(this.index)}})}tolerateUnexpectedToken(e="UnexpectedToken"){this.errorHandler.tolerateError({code:e,index:this.index,line:this.lineNumber,column:this.index-this.lineStart+1})}skipSingleLineComment(e){let t=[],i=this.index-e,r={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{line:0,column:0}};for(;!this.eof();){let n=this.source.charCodeAt(this.index);if(++this.index,f.isLineTerminator(n)){if(r){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};let s={multiLine:!1,start:i+e,end:this.index-1,range:[i,this.index-1],loc:r};t.push(s)}return n===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,t}}if(r){r.end={line:this.lineNumber,column:this.index-this.lineStart};let n={multiLine:!1,start:i+e,end:this.index,range:[i,this.index],loc:r};t.push(n)}return t}skipMultiLineComment(){let e=[],t=this.index-2,i={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{line:0,column:0}};for(;!this.eof();){let r=this.source.charCodeAt(this.index);if(f.isLineTerminator(r))r===13&&this.source.charCodeAt(this.index+1)===10&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(r===42){if(this.source.charCodeAt(this.index+1)===47){if(this.index+=2,i){i.end={line:this.lineNumber,column:this.index-this.lineStart};let n={multiLine:!0,start:t+2,end:this.index-2,range:[t,this.index],loc:i};e.push(n)}return e}++this.index}else++this.index}if(i){i.end={line:this.lineNumber,column:this.index-this.lineStart};let r={multiLine:!0,start:t+2,end:this.index,range:[t,this.index],loc:i};e.push(r)}return this.tolerateUnexpectedToken(),e}scanComments(){let e=[];for(;!this.eof();){let t=this.source.charCodeAt(this.index);if(f.isWhiteSpace(t))++this.index;else if(f.isLineTerminator(t))++this.index,t===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index;else if(t===47)if(t=this.source.charCodeAt(this.index+1),t===47){this.index+=2;let i=this.skipSingleLineComment(2);e=[...e,...i]}else if(t===42){this.index+=2;let i=this.skipMultiLineComment();e=[...e,...i]}else break;else break}return e}isKeyword(e){switch(e=e.toLowerCase(),e.length){case 2:return e==="if"||e==="in";case 3:return e==="var"||e==="for";case 4:return e==="else";case 5:return e==="break"||e==="while";case 6:return e==="return"||e==="import"||e==="export";case 8:return e==="function"||e==="continue";default:return!1}}codePointAt(e){let t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){let i=this.source.charCodeAt(e+1);i>=56320&&i<=57343&&(t=(t-55296)*1024+i-56320+65536)}return t}scanHexEscape(e){let t=e==="u"?4:2,i=0;for(let r=0;r<t;++r)if(!this.eof()&&f.isHexDigit(this.source.charCodeAt(this.index)))i=i*16+Dt(this.source[this.index++]);else return null;return String.fromCharCode(i)}scanUnicodeCodePointEscape(){let e=this.source[this.index],t=0;for(e==="}"&&this.throwUnexpectedToken();!this.eof()&&(e=this.source[this.index++],!!f.isHexDigit(e.charCodeAt(0)));)t=t*16+Dt(e);return(t>1114111||e!=="}")&&this.throwUnexpectedToken(),f.fromCodePoint(t)}getIdentifier(){let e=this.index++;for(;!this.eof();){let t=this.source.charCodeAt(this.index);if(t===92)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(f.isIdentifierPart(t))++this.index;else break}return this.source.slice(e,this.index)}getComplexIdentifier(){let e=this.codePointAt(this.index),t=f.fromCodePoint(e);this.index+=t.length;let i;for(e===92&&(this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,i=this.scanUnicodeCodePointEscape()):(i=this.scanHexEscape("u"),(i===null||i==="\\"||!f.isIdentifierStart(i.charCodeAt(0)))&&this.throwUnexpectedToken()),t=i);!this.eof()&&(e=this.codePointAt(this.index),!!f.isIdentifierPart(e));)i=f.fromCodePoint(e),t+=i,this.index+=i.length,e===92&&(t=t.substring(0,t.length-1),this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,i=this.scanUnicodeCodePointEscape()):(i=this.scanHexEscape("u"),(i===null||i==="\\"||!f.isIdentifierPart(i.charCodeAt(0)))&&this.throwUnexpectedToken()),t+=i);return t}octalToDecimal(e){let t=e!=="0",i=Ue(e);return!this.eof()&&f.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,i=i*8+Ue(this.source[this.index++]),"0123".includes(e)&&!this.eof()&&f.isOctalDigit(this.source.charCodeAt(this.index))&&(i=i*8+Ue(this.source[this.index++]))),{code:i,octal:t}}scanIdentifier(){let e,t=this.index,i=this.source.charCodeAt(t)===92?this.getComplexIdentifier():this.getIdentifier();if(i.length===1?e=3:this.isKeyword(i)?e=4:i.toLowerCase()==="null"?e=5:i.toLowerCase()==="true"||i.toLowerCase()==="false"?e=1:e=3,e!==3&&t+i.length!==this.index){let r=this.index;this.index=t,this.tolerateUnexpectedToken("InvalidEscapedReservedWord"),this.index=r}return{type:e,value:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}}scanPunctuator(){let e=this.index,t=this.source[this.index];switch(t){case"(":case"{":t==="{"&&this.curlyStack.push("{"),++this.index;break;case".":++this.index;break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:for(let i=V.length;i>0;i--)if(t=this.source.substring(this.index,this.index+i),V[i-1].includes(t)){this.index+=i;break}}return this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}}scanHexLiteral(e){let t="";for(;!this.eof()&&f.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return t.length===0&&this.throwUnexpectedToken(),f.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}}scanBinaryLiteral(e){let t="";for(;!this.eof();){let i=this.source[this.index];if(i!=="0"&&i!=="1")break;t+=this.source[this.index++]}if(t.length===0&&this.throwUnexpectedToken(),!this.eof()){let i=this.source.charCodeAt(this.index);(f.isIdentifierStart(i)||f.isDecimalDigit(i))&&this.throwUnexpectedToken()}return{type:6,value:parseInt(t,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}}scanOctalLiteral(e,t){let i="",r=!1;for(f.isOctalDigit(e.charCodeAt(0))?(r=!0,i="0"+this.source[this.index++]):++this.index;!this.eof()&&f.isOctalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];return!r&&i.length===0&&this.throwUnexpectedToken(),(f.isIdentifierStart(this.source.charCodeAt(this.index))||f.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(i,8),lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}}scanNumericLiteral(){let e=this.index,t=this.source[e];ft(f.isDecimalDigit(t.charCodeAt(0))||t===".","Numeric literal must start with a decimal digit or a decimal point");let i="";if(t!=="."){if(i=this.source[this.index++],t=this.source[this.index],i==="0"){if(t==="x"||t==="X")return++this.index,this.scanHexLiteral(e);if(t==="b"||t==="B")return++this.index,this.scanBinaryLiteral(e);if(t==="o"||t==="O")return this.scanOctalLiteral(t,e)}for(;f.isDecimalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];t=this.source[this.index]}if(t==="."){for(i+=this.source[this.index++];f.isDecimalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];t=this.source[this.index]}if(t==="e"||t==="E")if(i+=this.source[this.index++],t=this.source[this.index],(t==="+"||t==="-")&&(i+=this.source[this.index++]),f.isDecimalDigit(this.source.charCodeAt(this.index)))for(;f.isDecimalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];else this.throwUnexpectedToken();return f.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseFloat(i),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}}scanStringLiteral(){let e=this.index,t=this.source[e];ft(t==="'"||t==='"',"String literal must starts with a quote"),++this.index;let i=!1,r="";for(;!this.eof();){let n=this.source[this.index++];if(n===t){t="";break}if(n==="\\")if(n=this.source[this.index++],!n||!f.isLineTerminator(n.charCodeAt(0)))switch(n){case"u":if(this.source[this.index]==="{")++this.index,r+=this.scanUnicodeCodePointEscape();else{let s=this.scanHexEscape(n);s===null&&this.throwUnexpectedToken(),r+=s}break;case"x":{let s=this.scanHexEscape(n);s===null&&this.throwUnexpectedToken("InvalidHexEscapeSequence"),r+=s;break}case"n":r+=`
2
+ `;break;case"r":r+="\r";break;case"t":r+=" ";break;case"b":r+="\b";break;case"f":r+="\f";break;case"v":r+="\v";break;case"8":case"9":r+=n,this.tolerateUnexpectedToken();break;default:if(n&&f.isOctalDigit(n.charCodeAt(0))){let s=this.octalToDecimal(n);i=s.octal||i,r+=String.fromCharCode(s.code)}else r+=n;break}else++this.lineNumber,n==="\r"&&this.source[this.index]===`
3
+ `&&++this.index,this.lineStart=this.index;else{if(f.isLineTerminator(n.charCodeAt(0)))break;r+=n}}return t!==""&&(this.index=e,this.throwUnexpectedToken()),{type:8,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}}scanTemplate(){let e="",t=!1,i=this.index,r=this.source[i]==="`",n=!1,s=2;for(++this.index;!this.eof();){let a=this.source[this.index++];if(a==="`"){s=1,n=!0,t=!0;break}if(a==="$"){if(this.source[this.index]==="{"){this.curlyStack.push("${"),++this.index,t=!0;break}e+=a;continue}if(a==="\\"){if(a=this.source[this.index++],f.isLineTerminator(a.charCodeAt(0)))++this.lineNumber,a==="\r"&&this.source[this.index]===`
4
+ `&&++this.index,this.lineStart=this.index;else switch(a){case"n":e+=`
5
+ `;break;case"r":e+="\r";break;case"t":e+=" ";break;case"u":if(this.source[this.index]==="{")++this.index,e+=this.scanUnicodeCodePointEscape();else{let o=this.index,c=this.scanHexEscape(a);c!==null?e+=c:(this.index=o,e+=a)}break;case"x":{let o=this.scanHexEscape(a);o===null&&this.throwUnexpectedToken("InvalidHexEscapeSequence"),e+=o;break}case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:a==="0"?(f.isDecimalDigit(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken("TemplateOctalLiteral"),e+="\0"):f.isOctalDigit(a.charCodeAt(0))?this.throwUnexpectedToken("TemplateOctalLiteral"):e+=a;break}continue}if(f.isLineTerminator(a.charCodeAt(0))){++this.lineNumber,a==="\r"&&this.source[this.index]===`
6
+ `&&++this.index,this.lineStart=this.index,e+=`
7
+ `;continue}e+=a}return t||this.throwUnexpectedToken(),r||this.curlyStack.pop(),{type:10,value:this.source.slice(i+1,this.index-s),cooked:e,head:r,tail:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:i,end:this.index}}lex(){if(this.eof())return{type:2,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};let e=this.source.charCodeAt(this.index);return f.isIdentifierStart(e)?this.scanIdentifier():e===40||e===41||e===59?this.scanPunctuator():e===39||e===34?this.scanStringLiteral():e===46?f.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():f.isDecimalDigit(e)?this.scanNumericLiteral():e===96||e===125&&this.curlyStack[this.curlyStack.length-1]==="${"?this.scanTemplate():e>=55296&&e<57343&&f.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()}};function gt(e,t=0){let i=e.start-e.lineStart,r=e.lineNumber;return i<0&&(i+=t,r--),{index:e.start,line:r,column:i}}function xt(e){return[{index:e.range[0],...e.loc.start},{index:e.range[1],...e.loc.end}]}function Ct(e){return pe[e]??0}var Ki=class{constructor(e,t={},i){this.delegate=i,this.hasLineTerminator=!1,this.options={tokens:typeof t.tokens=="boolean"&&t.tokens,comments:typeof t.comments=="boolean"&&t.comments,tolerant:typeof t.tolerant=="boolean"&&t.tolerant},this.options.comments&&(this.commentHandler=new Gi),this.errorHandler=new kt(this.options.tolerant),this.scanner=new Lt(e,this.errorHandler),this.context={isAssignmentTarget:!1,blockContext:0,curlyParsingType:0},this.rawToken={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.endMarker={index:0,line:this.scanner.lineNumber,column:0},this.readNextRawToken(),this.endMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}throwIfInvalidType(e,t,{validTypes:i,invalidTypes:r}){i?.some(n=>e.type===n)||r?.some(n=>e.type===n)&&this.throwError("InvalidExpression",t)}throwError(e,t,i=this.endMarker){let{index:r,line:n,column:s}=t,a=i.index-r-1;this.errorHandler.throwError({code:e,index:r,line:n,column:s+1,len:a})}tolerateError(e,t){throw new Error("######################################### !!!")}unexpectedTokenError(e={}){let{rawToken:t}=e,{code:i,data:r}=e,n;if(t){if(!i)switch(t.type){case 2:i="UnexpectedEndOfScript";break;case 3:i="UnexpectedIdentifier";break;case 6:i="UnexpectedNumber";break;case 8:i="UnexpectedString";break;case 10:i="UnexpectedTemplate";break}n=t.value.toString()}else n="ILLEGAL";i=i??"UnexpectedToken",r||(r={value:n});let s=Oe(i,r);if(t){let c=t.start,l=t.lineNumber,h=t.start-t.lineStart+1;return new de({code:i,index:c,line:l,column:h,len:t.end-t.start-1,data:r,description:s})}let{index:a,line:o}=this.endMarker;return new de({code:i,index:a,line:o,column:this.endMarker.column+1,data:r,description:s})}throwUnexpectedToken(e={}){throw e.rawToken=e.rawToken??this.rawToken,this.unexpectedTokenError(e)}collectComments(e){let{commentHandler:t}=this;!t||!e.length||e.forEach(i=>{let r={type:i.multiLine?"BlockComment":"LineComment",value:this.getSourceValue(i),range:i.range,loc:i.loc};t.collectComment(r)})}peekAhead(e){let t=()=>(this.scanner.scanComments(),this.scanner.lex()),i=this.scanner.saveState(),r=e.call(this,t);return this.scanner.restoreState(i),r}getSourceValue(e){return this.scanner.source.slice(e.start,e.end)}convertToToken(e){return{type:yt[e.type],value:this.getSourceValue(e),range:[e.start,e.end],loc:{start:{line:this.startMarker.line,column:this.startMarker.column},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}}}readNextRawToken(){this.endMarker.index=this.scanner.index,this.endMarker.line=this.scanner.lineNumber,this.endMarker.column=this.scanner.index-this.scanner.lineStart;let e=this.rawToken;this.collectComments(this.scanner.scanComments()),this.scanner.index!==this.startMarker.index&&(this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart),this.rawToken=this.scanner.lex(),this.hasLineTerminator=e.lineNumber!==this.rawToken.lineNumber,this.options.tokens&&this.rawToken.type!==2&&this.tokens.push(this.convertToToken(this.rawToken))}captureStartMarker(){return{index:this.startMarker.index,line:this.startMarker.line,column:this.startMarker.column}}getItemLocation(e){return{range:[e.index,this.endMarker.index],loc:{start:{line:e.line,column:e.column},end:{line:this.endMarker.line,column:this.endMarker.column}}}}finalize(e){return(this.delegate||this.commentHandler)&&(this.commentHandler?.attachComments(e),this.delegate?.(e)),e}expectPunctuator(e){let t=this.rawToken;if(this.matchPunctuator(e)){this.readNextRawToken();return}this.throwUnexpectedToken({rawToken:t,code:"PunctuatorExpected",data:{value:e}})}expectKeyword(e){if(this.rawToken.type===4&&this.rawToken.value.toLowerCase()===e){this.readNextRawToken();return}this.throwUnexpectedToken({rawToken:this.rawToken})}expectContextualKeyword(e){if(this.rawToken.type===3&&this.rawToken.value.toLowerCase()===e){this.readNextRawToken();return}this.throwUnexpectedToken({rawToken:this.rawToken})}matchKeyword(e){return this.rawToken.type===4&&this.rawToken.value.toLowerCase()===e}matchContextualKeyword(e){return this.rawToken.type===3&&this.rawToken.value===e}matchPunctuator(e){return this.rawToken.type===7&&this.rawToken.value===e}getMatchingPunctuator(e){if(typeof e=="string"&&(e=e.split("")),!(this.rawToken.type!==7||!e?.length))return e.find(this.matchPunctuator,this)}isolateCoverGrammar(e){let t=this.context.isAssignmentTarget;this.context.isAssignmentTarget=!0;let i=e.call(this);return this.context.isAssignmentTarget=t,i}inheritCoverGrammar(e){let t=this.context.isAssignmentTarget;this.context.isAssignmentTarget=!0;let i=e.call(this);return this.context.isAssignmentTarget=this.context.isAssignmentTarget&&t,i}withBlockContext(e,t){let i=this.context.blockContext;this.context.blockContext=this.context.blockContext|e;let r=this.context.curlyParsingType;this.context.curlyParsingType=1;let n=t.call(this);return this.context.blockContext=i,this.context.curlyParsingType=r,n}consumeSemicolon(){if(this.matchPunctuator(";")){this.readNextRawToken();return}if(!this.hasLineTerminator){if(this.rawToken.type===2||this.matchPunctuator("}")){this.endMarker.index=this.startMarker.index,this.endMarker.line=this.startMarker.line,this.endMarker.column=this.startMarker.column;return}this.throwUnexpectedToken({rawToken:this.rawToken})}}parsePrimaryExpression(){let e=this.captureStartMarker(),t=this.rawToken;switch(t.type){case 3:return this.readNextRawToken(),this.finalize({type:"Identifier",name:t.value,...this.getItemLocation(e)});case 6:case 8:return this.context.isAssignmentTarget=!1,this.readNextRawToken(),this.finalize({type:"Literal",value:t.value,raw:this.getSourceValue(t),isString:typeof t.value=="string",...this.getItemLocation(e)});case 1:return this.context.isAssignmentTarget=!1,this.readNextRawToken(),this.finalize({type:"Literal",value:t.value.toLowerCase()==="true",raw:this.getSourceValue(t),isString:!1,...this.getItemLocation(e)});case 5:return this.context.isAssignmentTarget=!1,this.readNextRawToken(),this.finalize({type:"Literal",value:null,raw:this.getSourceValue(t),isString:!1,...this.getItemLocation(e)});case 10:return this.parseTemplateLiteral();case 7:switch(t.value){case"(":return this.inheritCoverGrammar(this.parseGroupExpression);case"[":return this.inheritCoverGrammar(this.parseArrayInitializer);case"{":return this.inheritCoverGrammar(this.parseObjectExpression);default:return this.throwUnexpectedToken({rawToken:this.rawToken})}case 4:return this.context.isAssignmentTarget=!1,this.throwUnexpectedToken({rawToken:this.rawToken});default:return this.throwUnexpectedToken({rawToken:this.rawToken})}}parseArrayInitializer(){let e=this.captureStartMarker();this.expectPunctuator("[");let t=[];for(;!this.matchPunctuator("]");){let i=this.captureStartMarker();this.matchPunctuator(",")?(this.readNextRawToken(),this.throwError("InvalidExpression",i)):(t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.matchPunctuator("]")||this.expectPunctuator(","))}return this.expectPunctuator("]"),this.finalize({type:"ArrayExpression",elements:t,...this.getItemLocation(e)})}parseObjectPropertyKey(){let e=this.captureStartMarker(),t=this.rawToken;switch(t.type){case 8:return this.readNextRawToken(),this.finalize({type:"Literal",value:t.value,raw:this.getSourceValue(t),isString:!0,...this.getItemLocation(e)});case 3:case 1:case 5:case 4:return this.readNextRawToken(),this.finalize({type:"Identifier",name:t.value,...this.getItemLocation(e)});default:this.throwError("KeyMustBeString",e)}}parseObjectProperty(){let e=this.rawToken,t=this.captureStartMarker(),i=this.parseObjectPropertyKey(),r=!1,n=null;return this.matchPunctuator(":")?(this.readNextRawToken(),n=this.inheritCoverGrammar(this.parseAssignmentExpression)):e.type===3?(r=!0,n=this.finalize({type:"Identifier",name:e.value,...this.getItemLocation(t)})):this.throwUnexpectedToken({rawToken:this.rawToken}),this.finalize({type:"Property",kind:"init",key:i,value:n,shorthand:r,...this.getItemLocation(t)})}parseObjectExpression(){let e=this.captureStartMarker();this.expectPunctuator("{");let t=[];for(;!this.matchPunctuator("}");)t.push(this.parseObjectProperty()),this.matchPunctuator("}")||this.expectPunctuator(",");return this.expectPunctuator("}"),this.finalize({type:"ObjectExpression",properties:t,...this.getItemLocation(e)})}parseTemplateElement(e=!1){let t=this.rawToken;t.type!==10&&this.throwUnexpectedToken({rawToken:t}),e&&!t.head&&this.throwUnexpectedToken({code:"InvalidTemplateHead",rawToken:t});let i=this.captureStartMarker();this.readNextRawToken();let{value:r,cooked:n,tail:s}=t,a=this.finalize({type:"TemplateElement",value:{raw:r,cooked:n},tail:s,...this.getItemLocation(i)});return a.loc.start.column++,a.loc.end.column=a.loc.end.column-(s?1:2),a}parseTemplateLiteral(){let e=this.captureStartMarker(),t=[],i=[],r=this.parseTemplateElement(!0);for(i.push(r);!r.tail;)t.push(this.parseExpression()),r=this.parseTemplateElement(),i.push(r);return this.finalize({type:"TemplateLiteral",quasis:i,expressions:t,...this.getItemLocation(e)})}parseGroupExpression(){this.expectPunctuator("(");let e=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.expectPunctuator(")"),e}parseArguments(){this.expectPunctuator("(");let e=[];if(!this.matchPunctuator(")"))for(;;){let t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(e.push(t),this.matchPunctuator(")")||(this.expectPunctuator(","),this.matchPunctuator(")")))break}return this.expectPunctuator(")"),e}parseMemberName(){let e=this.rawToken,t=this.captureStartMarker();return this.readNextRawToken(),e.type!==5&&e.type!==3&&e.type!==4&&e.type!==1&&this.throwUnexpectedToken({rawToken:e}),this.finalize({type:"Identifier",name:e.value,...this.getItemLocation(t)})}parseLeftHandSideExpression(){let e=this.captureStartMarker(),t=this.inheritCoverGrammar(this.parsePrimaryExpression),i=this.captureStartMarker(),r;for(;r=this.getMatchingPunctuator("([.");)switch(r){case"(":{this.context.isAssignmentTarget=!1,t.type!=="Identifier"&&t.type!=="MemberExpression"&&this.throwError("IdentiferExpected",e,i);let n=this.parseArguments();t=this.finalize({type:"CallExpression",callee:t,arguments:n,...this.getItemLocation(e)});continue}case"[":{this.context.isAssignmentTarget=!0,this.expectPunctuator("[");let n=this.isolateCoverGrammar(this.parseExpression);this.expectPunctuator("]"),t=this.finalize({type:"MemberExpression",computed:!0,object:t,property:n,...this.getItemLocation(e)});continue}case".":{this.context.isAssignmentTarget=!0,this.expectPunctuator(".");let n=this.parseMemberName();t=this.finalize({type:"MemberExpression",computed:!1,object:t,property:n,...this.getItemLocation(e)});continue}default:break}return t}parseUpdateExpression(){let e=this.captureStartMarker(),t=this.getMatchingPunctuator(_e);if(t){this.readNextRawToken();let s=this.captureStartMarker(),a=this.inheritCoverGrammar(this.parseUnaryExpression);return a.type!=="Identifier"&&a.type!=="MemberExpression"&&a.type!=="CallExpression"&&this.throwError("InvalidExpression",s),this.context.isAssignmentTarget||this.tolerateError("InvalidLeftHandSideInAssignment",e),this.context.isAssignmentTarget=!1,this.finalize({type:"UpdateExpression",operator:t,argument:a,prefix:!0,...this.getItemLocation(e)})}let i=this.captureStartMarker(),r=this.inheritCoverGrammar(this.parseLeftHandSideExpression),n=this.captureStartMarker();return this.hasLineTerminator||(t=this.getMatchingPunctuator(_e),!t)?r:(r.type!=="Identifier"&&r.type!=="MemberExpression"&&this.throwError("InvalidExpression",i,n),this.context.isAssignmentTarget||this.tolerateError("InvalidLeftHandSideInAssignment",e),this.readNextRawToken(),this.context.isAssignmentTarget=!1,this.finalize({type:"UpdateExpression",operator:t,argument:r,prefix:!1,...this.getItemLocation(e)}))}parseUnaryExpression(){let e=this.getMatchingPunctuator(Et);if(e){let t=this.captureStartMarker();this.readNextRawToken();let i=this.inheritCoverGrammar(this.parseUnaryExpression);return this.context.isAssignmentTarget=!1,this.finalize({type:"UnaryExpression",operator:e,argument:i,prefix:!0,...this.getItemLocation(t)})}return this.parseUpdateExpression()}parseBinaryExpression(){let e=this.rawToken,t=this.inheritCoverGrammar(this.parseUnaryExpression);if(this.rawToken.type!==7)return t;let i=this.rawToken.value,r=Ct(i);if(r===0)return t;this.readNextRawToken(),this.context.isAssignmentTarget=!1;let n=[e,this.rawToken],s=t,a=this.inheritCoverGrammar(this.parseUnaryExpression),o=[s,i,a],c=[r];for(;this.rawToken.type===7&&(r=Ct(this.rawToken.value))>0;){for(;o.length>2&&r<=c[c.length-1];){a=o.pop();let g=o.pop();c.pop(),s=o.pop(),n.pop();let v=n[n.length-1],m=gt(v,v.lineStart);o.push(this.finalize(this.createBinaryOrLogicalExpression(m,g,s,a)))}o.push(this.rawToken.value),c.push(r),n.push(this.rawToken),this.readNextRawToken(),o.push(this.inheritCoverGrammar(this.parseUnaryExpression))}let l=o.length-1;t=o[l];let h=n.pop();for(;l>1;){let g=n.pop();if(!g)break;let v=h?.lineStart,m=gt(g,v),B=o[l-1];t=this.finalize(this.createBinaryOrLogicalExpression(m,B,o[l-2],t)),l-=2,h=g}return t}createBinaryOrLogicalExpression(e,t,i,r){let n=At.includes(t)?"LogicalExpression":"BinaryExpression";return n==="BinaryExpression"?{type:n,operator:t,left:i,right:r,...this.getItemLocation(e)}:((i.type==="AssignmentExpression"||i.type==="UpdateExpression")&&this.throwError("InvalidExpression",...xt(i)),(r.type==="AssignmentExpression"||r.type==="UpdateExpression")&&this.throwError("InvalidExpression",...xt(i)),{type:n,operator:t,left:i,right:r,...this.getItemLocation(e)})}parseAssignmentExpression(){let e=this.captureStartMarker(),t=this.inheritCoverGrammar(this.parseBinaryExpression),i=this.captureStartMarker(),r=this.getMatchingPunctuator(Ft);if(!r)return t;t.type!=="Identifier"&&t.type!=="MemberExpression"&&this.throwError("InvalidExpression",e,i),this.context.isAssignmentTarget||this.tolerateError("InvalidLeftHandSideInAssignment",e),this.matchPunctuator("=")||(this.context.isAssignmentTarget=!1),this.readNextRawToken();let n=this.isolateCoverGrammar(this.parseAssignmentExpression);return this.finalize({type:"AssignmentExpression",left:t,operator:r,right:n,...this.getItemLocation(e)})}parseExpression(){return this.isolateCoverGrammar(this.parseAssignmentExpression)}parseStatements(e){let t=[];for(;this.rawToken.type!==2&&!this.matchPunctuator(e);){let i=this.parseStatementListItem();Q(i)||t.push(i)}return t}parseStatementListItem(){return this.context.isAssignmentTarget=!0,this.matchKeyword("function")?this.parseFunctionDeclaration():this.matchKeyword("export")?this.parseExportDeclaration():this.matchKeyword("import")?this.parseImportDeclaration():this.parseStatement()}parseBlock(){let e=this.captureStartMarker();this.expectPunctuator("{");let t=this.parseStatements("}");return this.expectPunctuator("}"),this.finalize({type:"BlockStatement",body:t,...this.getItemLocation(e)})}parseObjectStatement(){let e=this.captureStartMarker(),t=this.parseObjectExpression();return this.finalize({type:"ExpressionStatement",expression:t,...this.getItemLocation(e)})}parseBlockOrObjectStatement(){return this.context.curlyParsingType===0?this.parseObjectStatement():this.peekAhead(e=>{let t=e();return!(t.type!==3&&t.type!==8||(t=e(),t.type!==7||t.value!==":"))})?this.parseObjectStatement():this.parseBlock()}parseIdentifier(){let e=this.rawToken;if(e.type!==3)return null;let t=this.captureStartMarker();return this.readNextRawToken(),this.finalize({type:"Identifier",name:e.value,...this.getItemLocation(t)})}parseVariableDeclarator(){let e=this.captureStartMarker(),t=this.parseIdentifier();t||this.throwUnexpectedToken({code:"IdentiferExpected"});let i=null;if(this.matchPunctuator("=")){this.readNextRawToken();let r=this.rawToken;try{i=this.isolateCoverGrammar(this.parseAssignmentExpression)}catch{this.throwUnexpectedToken({rawToken:r,code:"InvalidVariableAssignment"})}}return this.finalize({type:"VariableDeclarator",id:t,init:i,...this.getItemLocation(e)})}parseVariableDeclarationList(){let e=[this.parseVariableDeclarator()];for(;this.matchPunctuator(",");)this.readNextRawToken(),e.push(this.parseVariableDeclarator());return e}parseVariableDeclaration(){let e=this.captureStartMarker();this.expectKeyword("var");let t=this.parseVariableDeclarationList();return this.consumeSemicolon(),this.finalize({type:"VariableDeclaration",declarations:t,kind:"var",...this.getItemLocation(e)})}parseEmptyStatement(){let e=this.captureStartMarker();return this.expectPunctuator(";"),this.finalize({type:"EmptyStatement",...this.getItemLocation(e)})}parseExpressionStatement(){let e=this.captureStartMarker(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize({type:"ExpressionStatement",expression:t,...this.getItemLocation(e)})}parseIfClause(){return this.withBlockContext(2,this.parseStatement)}parseIfStatement(){let e=this.captureStartMarker();this.expectKeyword("if"),this.expectPunctuator("(");let t=this.captureStartMarker(),i=this.parseExpression(),r=this.captureStartMarker();this.expectPunctuator(")"),(i.type==="AssignmentExpression"||i.type==="UpdateExpression")&&this.throwError("InvalidExpression",t,r);let n=this.parseIfClause(),s=null;return this.matchKeyword("else")&&(this.readNextRawToken(),s=this.parseIfClause()),this.finalize({type:"IfStatement",test:i,consequent:n,alternate:s,...this.getItemLocation(e)})}parseWhileStatement(){let e=this.captureStartMarker();this.expectKeyword("while"),this.expectPunctuator("(");let t=this.captureStartMarker(),i=this.parseExpression(),r=this.captureStartMarker();this.expectPunctuator(")"),(i.type==="AssignmentExpression"||i.type==="UpdateExpression")&&this.throwError("InvalidExpression",t,r);let n=this.withBlockContext(8,this.parseStatement);return this.finalize({type:"WhileStatement",test:i,body:n,...this.getItemLocation(e)})}parseForStatement(){let e=null,t=null,i=null,r=null,n=null,s=this.captureStartMarker();if(this.expectKeyword("for"),this.expectPunctuator("("),this.matchPunctuator(";"))this.readNextRawToken();else if(this.matchKeyword("var")){let o=this.captureStartMarker();this.readNextRawToken();let c=this.parseVariableDeclarationList();c.length===1&&this.matchKeyword("in")?(c[0].init&&this.throwError("ForInOfLoopInitializer",o),r=this.finalize({type:"VariableDeclaration",declarations:c,kind:"var",...this.getItemLocation(o)}),this.readNextRawToken(),n=this.parseExpression()):(this.matchKeyword("in")&&this.throwError("InvalidLeftHandSideInForIn",o),e=this.finalize({type:"VariableDeclaration",declarations:c,kind:"var",...this.getItemLocation(o)}),this.expectPunctuator(";"))}else{let o=this.context.isAssignmentTarget,c=this.captureStartMarker();e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.matchKeyword("in")?(this.context.isAssignmentTarget||this.tolerateError("InvalidLeftHandSideInForIn",c),e.type!=="Identifier"&&this.throwError("InvalidLeftHandSideInForIn",c),this.readNextRawToken(),r=e,n=this.parseExpression(),e=null):(this.context.isAssignmentTarget=o,this.expectPunctuator(";"))}r||(this.matchPunctuator(";")||(t=this.isolateCoverGrammar(this.parseExpression)),this.expectPunctuator(";"),this.matchPunctuator(")")||(i=this.isolateCoverGrammar(this.parseExpression))),this.expectPunctuator(")");let a=this.withBlockContext(4,()=>this.isolateCoverGrammar(this.parseStatement));return r&&n?this.finalize({type:"ForInStatement",left:r,right:n,body:a,...this.getItemLocation(s)}):this.finalize({type:"ForStatement",init:e,test:t,update:i,body:a,...this.getItemLocation(s)})}parseContinueStatement(){let e=this.captureStartMarker();return this.expectKeyword("continue"),this.consumeSemicolon(),this.finalize({type:"ContinueStatement",...this.getItemLocation(e)})}parseBreakStatement(){let e=this.captureStartMarker();return this.expectKeyword("break"),this.consumeSemicolon(),this.finalize({type:"BreakStatement",...this.getItemLocation(e)})}parseReturnStatement(){let e=this.captureStartMarker();this.expectKeyword("return");let t=!this.matchPunctuator(";")&&!this.matchPunctuator("}")&&!this.hasLineTerminator&&this.rawToken.type!==2||this.rawToken.type===8||this.rawToken.type===10?this.parseExpression():null;return this.consumeSemicolon(),this.finalize({type:"ReturnStatement",argument:t,...this.getItemLocation(e)})}parseStatement(){switch(this.rawToken.type){case 1:case 5:case 6:case 8:case 10:case 3:return this.parseExpressionStatement();case 7:return this.rawToken.value==="{"?this.parseBlockOrObjectStatement():this.rawToken.value==="("?this.parseExpressionStatement():this.rawToken.value===";"?this.parseEmptyStatement():this.parseExpressionStatement();case 4:switch(this.rawToken.value.toLowerCase()){case"break":return this.parseBreakStatement();case"continue":return this.parseContinueStatement();case"for":return this.parseForStatement();case"function":return this.parseFunctionDeclaration();case"if":return this.parseIfStatement();case"return":return this.parseReturnStatement();case"var":return this.parseVariableDeclaration();case"while":return this.parseWhileStatement();default:return this.parseExpressionStatement()}default:return this.throwUnexpectedToken({rawToken:this.rawToken})}}parseFormalParameters(){let e=[];if(this.expectPunctuator("("),!this.matchPunctuator(")"))for(;this.rawToken.type!==2;){let t=this.parseIdentifier();if(t||this.throwUnexpectedToken({rawToken:this.rawToken,code:"IdentiferExpected"}),e.push(t),this.matchPunctuator(")")||(this.expectPunctuator(","),this.matchPunctuator(")")))break}return this.expectPunctuator(")"),e}parseFunctionDeclaration(){(this.context.blockContext&1)===1&&this.throwUnexpectedToken({code:"NoFunctionInsideFunction"}),((this.context.blockContext&8)===8||(this.context.blockContext&2)===2)&&this.throwUnexpectedToken({code:"NoFunctionInsideBlock"});let e=this.captureStartMarker();this.expectKeyword("function");let t=this.parseIdentifier();t||this.throwUnexpectedToken({code:"InvalidFunctionIdentifier"});let i=this.parseFormalParameters(),r=this.context.blockContext;this.context.blockContext=this.context.blockContext|1;let n=this.parseBlock();return this.context.blockContext=r,this.finalize({type:"FunctionDeclaration",id:t,params:i,body:n,...this.getItemLocation(e)})}parseScript(){let e=this.captureStartMarker(),t=this.parseStatements(),i=this.finalize({type:"Program",body:t,...this.getItemLocation(e)});return this.options.tokens&&(i.tokens=this.tokens),this.options.tolerant&&(i.errors=this.errorHandler.errors),i}parseExportDeclaration(){this.context.blockContext!==0&&this.throwUnexpectedToken({code:"ModuleExportRootOnly"});let e=null,t=this.captureStartMarker();return this.expectKeyword("export"),this.matchKeyword("var")?e=this.parseVariableDeclaration():this.matchKeyword("function")?e=this.parseFunctionDeclaration():this.throwUnexpectedToken({code:"InvalidExpression"}),this.finalize({type:"ExportNamedDeclaration",declaration:e,specifiers:[],source:null,...this.getItemLocation(t)})}parseModuleSpecifier(){let e=this.captureStartMarker(),t=this.rawToken;if(t.type===8)return this.readNextRawToken(),this.finalize({type:"Literal",value:t.value,raw:this.getSourceValue(t),isString:!0,...this.getItemLocation(e)});this.throwError("InvalidModuleUri",e)}parseDefaultSpecifier(){let e=this.captureStartMarker(),t=this.parseIdentifier();return t||this.throwUnexpectedToken({code:"IdentiferExpected"}),this.finalize({type:"ImportDefaultSpecifier",local:t,...this.getItemLocation(e)})}parseImportDeclaration(){this.context.blockContext!==0&&this.throwUnexpectedToken({code:"ModuleImportRootOnly"});let e=this.captureStartMarker();this.expectKeyword("import");let t=this.parseDefaultSpecifier();this.expectContextualKeyword("from");let i=this.parseModuleSpecifier();return this.finalize({type:"ImportDeclaration",specifiers:[t],source:i,...this.getItemLocation(e)})}},Ji=class{constructor(e,t){this.errorHandler=new kt,this.errorHandler.tolerant=t?typeof t.tolerant=="boolean"&&t.tolerant:!1,this.scanner=new Lt(e,this.errorHandler),this.trackComments=t?typeof t.comment=="boolean"&&t.comment:!1,this.buffer=[]}errors(){return this.errorHandler.errors}getNextToken(){if(this.buffer.length===0){let e=this.scanner.scanComments();if(this.trackComments&&e.forEach(t=>{let i=this.scanner.source.slice(t.start,t.end),r={type:t.multiLine?"BlockComment":"LineComment",value:i,range:t.range,loc:t.loc};this.buffer.push(r)}),!this.scanner.eof()){let t={line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},i=this.scanner.lex(),r={line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},n={type:yt[i.type],value:this.scanner.source.slice(i.start,i.end),range:[i.start,i.end],loc:{start:t,end:r}};this.buffer.push(n)}}return this.buffer.shift()}};function te(e,t,i){return new Ki(e,t,i).parseScript()}function wt(e,t,i){let r=new Ji(e,t),n=[],s;try{let a;for(;a=r.getNextToken();)i&&(a=i(a)),n.push(a)}catch(a){r.errorHandler.tolerate(a)}return r.errorHandler.tolerant&&(s=r.errors()),{tokens:n,errors:s}}var Bt;(function(e){function t(i){return typeof i=="string"}e.is=t})(Bt||(Bt={}));var He;(function(e){function t(i){return typeof i=="string"}e.is=t})(He||(He={}));var Tt;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=t})(Tt||(Tt={}));var me;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=t})(me||(me={}));var I;(function(e){function t(r,n){return r===Number.MAX_VALUE&&(r=me.MAX_VALUE),n===Number.MAX_VALUE&&(n=me.MAX_VALUE),{line:r,character:n}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&u.uinteger(n.line)&&u.uinteger(n.character)}e.is=i})(I||(I={}));var E;(function(e){function t(r,n,s,a){if(u.uinteger(r)&&u.uinteger(n)&&u.uinteger(s)&&u.uinteger(a))return{start:I.create(r,n),end:I.create(s,a)};if(I.is(r)&&I.is(n))return{start:r,end:n};throw new Error("Range#create called with invalid arguments[".concat(r,", ").concat(n,", ").concat(s,", ").concat(a,"]"))}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&I.is(n.start)&&I.is(n.end)}e.is=i})(E||(E={}));var De;(function(e){function t(r,n){return{uri:r,range:n}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&E.is(n.range)&&(u.string(n.uri)||u.undefined(n.uri))}e.is=i})(De||(De={}));var Nt;(function(e){function t(r,n,s,a){return{targetUri:r,targetRange:n,targetSelectionRange:s,originSelectionRange:a}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&E.is(n.targetRange)&&u.string(n.targetUri)&&E.is(n.targetSelectionRange)&&(E.is(n.originSelectionRange)||u.undefined(n.originSelectionRange))}e.is=i})(Nt||(Nt={}));var Ge;(function(e){function t(r,n,s,a){return{red:r,green:n,blue:s,alpha:a}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&u.numberRange(n.red,0,1)&&u.numberRange(n.green,0,1)&&u.numberRange(n.blue,0,1)&&u.numberRange(n.alpha,0,1)}e.is=i})(Ge||(Ge={}));var Mt;(function(e){function t(r,n){return{range:r,color:n}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&E.is(n.range)&&Ge.is(n.color)}e.is=i})(Mt||(Mt={}));var Ut;(function(e){function t(r,n,s){return{label:r,textEdit:n,additionalTextEdits:s}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&u.string(n.label)&&(u.undefined(n.textEdit)||w.is(n))&&(u.undefined(n.additionalTextEdits)||u.typedArray(n.additionalTextEdits,w.is))}e.is=i})(Ut||(Ut={}));var _t;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(_t||(_t={}));var Ot;(function(e){function t(r,n,s,a,o,c){var l={startLine:r,endLine:n};return u.defined(s)&&(l.startCharacter=s),u.defined(a)&&(l.endCharacter=a),u.defined(o)&&(l.kind=o),u.defined(c)&&(l.collapsedText=c),l}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&u.uinteger(n.startLine)&&u.uinteger(n.startLine)&&(u.undefined(n.startCharacter)||u.uinteger(n.startCharacter))&&(u.undefined(n.endCharacter)||u.uinteger(n.endCharacter))&&(u.undefined(n.kind)||u.string(n.kind))}e.is=i})(Ot||(Ot={}));var Ke;(function(e){function t(r,n){return{location:r,message:n}}e.create=t;function i(r){var n=r;return u.defined(n)&&De.is(n.location)&&u.string(n.message)}e.is=i})(Ke||(Ke={}));var F;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(F||(F={}));var Vt;(function(e){e.Unnecessary=1,e.Deprecated=2})(Vt||(Vt={}));var jt;(function(e){function t(i){var r=i;return u.objectLiteral(r)&&u.string(r.href)}e.is=t})(jt||(jt={}));var ge;(function(e){function t(r,n,s,a,o,c){var l={range:r,message:n};return u.defined(s)&&(l.severity=s),u.defined(a)&&(l.code=a),u.defined(o)&&(l.source=o),u.defined(c)&&(l.relatedInformation=c),l}e.create=t;function i(r){var n,s=r;return u.defined(s)&&E.is(s.range)&&u.string(s.message)&&(u.number(s.severity)||u.undefined(s.severity))&&(u.integer(s.code)||u.string(s.code)||u.undefined(s.code))&&(u.undefined(s.codeDescription)||u.string((n=s.codeDescription)===null||n===void 0?void 0:n.href))&&(u.string(s.source)||u.undefined(s.source))&&(u.undefined(s.relatedInformation)||u.typedArray(s.relatedInformation,Ke.is))}e.is=i})(ge||(ge={}));var W;(function(e){function t(r,n){for(var s=[],a=2;a<arguments.length;a++)s[a-2]=arguments[a];var o={title:r,command:n};return u.defined(s)&&s.length>0&&(o.arguments=s),o}e.create=t;function i(r){var n=r;return u.defined(n)&&u.string(n.title)&&u.string(n.command)}e.is=i})(W||(W={}));var w;(function(e){function t(s,a){return{range:s,newText:a}}e.replace=t;function i(s,a){return{range:{start:s,end:s},newText:a}}e.insert=i;function r(s){return{range:s,newText:""}}e.del=r;function n(s){var a=s;return u.objectLiteral(a)&&u.string(a.newText)&&E.is(a.range)}e.is=n})(w||(w={}));var $;(function(e){function t(r,n,s){var a={label:r};return n!==void 0&&(a.needsConfirmation=n),s!==void 0&&(a.description=s),a}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&u.string(n.label)&&(u.boolean(n.needsConfirmation)||n.needsConfirmation===void 0)&&(u.string(n.description)||n.description===void 0)}e.is=i})($||($={}));var P;(function(e){function t(i){var r=i;return u.string(r)}e.is=t})(P||(P={}));var T;(function(e){function t(s,a,o){return{range:s,newText:a,annotationId:o}}e.replace=t;function i(s,a,o){return{range:{start:s,end:s},newText:a,annotationId:o}}e.insert=i;function r(s,a){return{range:s,newText:"",annotationId:a}}e.del=r;function n(s){var a=s;return w.is(a)&&($.is(a.annotationId)||P.is(a.annotationId))}e.is=n})(T||(T={}));var xe;(function(e){function t(r,n){return{textDocument:r,edits:n}}e.create=t;function i(r){var n=r;return u.defined(n)&&Ce.is(n.textDocument)&&Array.isArray(n.edits)}e.is=i})(xe||(xe={}));var ie;(function(e){function t(r,n,s){var a={kind:"create",uri:r};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(a.options=n),s!==void 0&&(a.annotationId=s),a}e.create=t;function i(r){var n=r;return n&&n.kind==="create"&&u.string(n.uri)&&(n.options===void 0||(n.options.overwrite===void 0||u.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||u.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||P.is(n.annotationId))}e.is=i})(ie||(ie={}));var ne;(function(e){function t(r,n,s,a){var o={kind:"rename",oldUri:r,newUri:n};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(o.options=s),a!==void 0&&(o.annotationId=a),o}e.create=t;function i(r){var n=r;return n&&n.kind==="rename"&&u.string(n.oldUri)&&u.string(n.newUri)&&(n.options===void 0||(n.options.overwrite===void 0||u.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||u.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||P.is(n.annotationId))}e.is=i})(ne||(ne={}));var re;(function(e){function t(r,n,s){var a={kind:"delete",uri:r};return n!==void 0&&(n.recursive!==void 0||n.ignoreIfNotExists!==void 0)&&(a.options=n),s!==void 0&&(a.annotationId=s),a}e.create=t;function i(r){var n=r;return n&&n.kind==="delete"&&u.string(n.uri)&&(n.options===void 0||(n.options.recursive===void 0||u.boolean(n.options.recursive))&&(n.options.ignoreIfNotExists===void 0||u.boolean(n.options.ignoreIfNotExists)))&&(n.annotationId===void 0||P.is(n.annotationId))}e.is=i})(re||(re={}));var Je;(function(e){function t(i){var r=i;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(function(n){return u.string(n.kind)?ie.is(n)||ne.is(n)||re.is(n):xe.is(n)}))}e.is=t})(Je||(Je={}));var fe=function(){function e(t,i){this.edits=t,this.changeAnnotations=i}return e.prototype.insert=function(t,i,r){var n,s;if(r===void 0?n=w.insert(t,i):P.is(r)?(s=r,n=T.insert(t,i,r)):(this.assertChangeAnnotations(this.changeAnnotations),s=this.changeAnnotations.manage(r),n=T.insert(t,i,s)),this.edits.push(n),s!==void 0)return s},e.prototype.replace=function(t,i,r){var n,s;if(r===void 0?n=w.replace(t,i):P.is(r)?(s=r,n=T.replace(t,i,r)):(this.assertChangeAnnotations(this.changeAnnotations),s=this.changeAnnotations.manage(r),n=T.replace(t,i,s)),this.edits.push(n),s!==void 0)return s},e.prototype.delete=function(t,i){var r,n;if(i===void 0?r=w.del(t):P.is(i)?(n=i,r=T.del(t,i)):(this.assertChangeAnnotations(this.changeAnnotations),n=this.changeAnnotations.manage(i),r=T.del(t,n)),this.edits.push(r),n!==void 0)return n},e.prototype.add=function(t){this.edits.push(t)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e.prototype.assertChangeAnnotations=function(t){if(t===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},e}(),Rt=function(){function e(t){this._annotations=t===void 0?Object.create(null):t,this._counter=0,this._size=0}return e.prototype.all=function(){return this._annotations},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),e.prototype.manage=function(t,i){var r;if(P.is(t)?r=t:(r=this.nextId(),i=t),this._annotations[r]!==void 0)throw new Error("Id ".concat(r," is already in use."));if(i===void 0)throw new Error("No annotation provided for id ".concat(r));return this._annotations[r]=i,this._size++,r},e.prototype.nextId=function(){return this._counter++,this._counter.toString()},e}(),Rn=function(){function e(t){var i=this;this._textEditChanges=Object.create(null),t!==void 0?(this._workspaceEdit=t,t.documentChanges?(this._changeAnnotations=new Rt(t.changeAnnotations),t.changeAnnotations=this._changeAnnotations.all(),t.documentChanges.forEach(function(r){if(xe.is(r)){var n=new fe(r.edits,i._changeAnnotations);i._textEditChanges[r.textDocument.uri]=n}})):t.changes&&Object.keys(t.changes).forEach(function(r){var n=new fe(t.changes[r]);i._textEditChanges[r]=n})):this._workspaceEdit={}}return Object.defineProperty(e.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),e.prototype.getTextEditChange=function(t){if(Ce.is(t)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var i={uri:t.uri,version:t.version},r=this._textEditChanges[i.uri];if(!r){var n=[],s={textDocument:i,edits:n};this._workspaceEdit.documentChanges.push(s),r=new fe(n,this._changeAnnotations),this._textEditChanges[i.uri]=r}return r}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var r=this._textEditChanges[t];if(!r){var n=[];this._workspaceEdit.changes[t]=n,r=new fe(n),this._textEditChanges[t]=r}return r}},e.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new Rt,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},e.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},e.prototype.createFile=function(t,i,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var n;$.is(i)||P.is(i)?n=i:r=i;var s,a;if(n===void 0?s=ie.create(t,r):(a=P.is(n)?n:this._changeAnnotations.manage(n),s=ie.create(t,r,a)),this._workspaceEdit.documentChanges.push(s),a!==void 0)return a},e.prototype.renameFile=function(t,i,r,n){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var s;$.is(r)||P.is(r)?s=r:n=r;var a,o;if(s===void 0?a=ne.create(t,i,n):(o=P.is(s)?s:this._changeAnnotations.manage(s),a=ne.create(t,i,n,o)),this._workspaceEdit.documentChanges.push(a),o!==void 0)return o},e.prototype.deleteFile=function(t,i,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var n;$.is(i)||P.is(i)?n=i:r=i;var s,a;if(n===void 0?s=re.create(t,r):(a=P.is(n)?n:this._changeAnnotations.manage(n),s=re.create(t,r,a)),this._workspaceEdit.documentChanges.push(s),a!==void 0)return a},e}();var zt;(function(e){function t(r){return{uri:r}}e.create=t;function i(r){var n=r;return u.defined(n)&&u.string(n.uri)}e.is=i})(zt||(zt={}));var $t;(function(e){function t(r,n){return{uri:r,version:n}}e.create=t;function i(r){var n=r;return u.defined(n)&&u.string(n.uri)&&u.integer(n.version)}e.is=i})($t||($t={}));var Ce;(function(e){function t(r,n){return{uri:r,version:n}}e.create=t;function i(r){var n=r;return u.defined(n)&&u.string(n.uri)&&(n.version===null||u.integer(n.version))}e.is=i})(Ce||(Ce={}));var Wt;(function(e){function t(r,n,s,a){return{uri:r,languageId:n,version:s,text:a}}e.create=t;function i(r){var n=r;return u.defined(n)&&u.string(n.uri)&&u.string(n.languageId)&&u.integer(n.version)&&u.string(n.text)}e.is=i})(Wt||(Wt={}));var se;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function t(i){var r=i;return r===e.PlainText||r===e.Markdown}e.is=t})(se||(se={}));var ae;(function(e){function t(i){var r=i;return u.objectLiteral(i)&&se.is(r.kind)&&u.string(r.value)}e.is=t})(ae||(ae={}));var x;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(x||(x={}));var A;(function(e){e.PlainText=1,e.Snippet=2})(A||(A={}));var qt;(function(e){e.Deprecated=1})(qt||(qt={}));var Ht;(function(e){function t(r,n,s){return{newText:r,insert:n,replace:s}}e.create=t;function i(r){var n=r;return n&&u.string(n.newText)&&E.is(n.insert)&&E.is(n.replace)}e.is=i})(Ht||(Ht={}));var y;(function(e){e.asIs=1,e.adjustIndentation=2})(y||(y={}));var Gt;(function(e){function t(i){var r=i;return r&&(u.string(r.detail)||r.detail===void 0)&&(u.string(r.description)||r.description===void 0)}e.is=t})(Gt||(Gt={}));var Kt;(function(e){function t(i){return{label:i}}e.create=t})(Kt||(Kt={}));var Jt;(function(e){function t(i,r){return{items:i||[],isIncomplete:!!r}}e.create=t})(Jt||(Jt={}));var Ee;(function(e){function t(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=t;function i(r){var n=r;return u.string(n)||u.objectLiteral(n)&&u.string(n.language)&&u.string(n.value)}e.is=i})(Ee||(Ee={}));var Xt;(function(e){function t(i){var r=i;return!!r&&u.objectLiteral(r)&&(ae.is(r.contents)||Ee.is(r.contents)||u.typedArray(r.contents,Ee.is))&&(i.range===void 0||E.is(i.range))}e.is=t})(Xt||(Xt={}));var Qt;(function(e){function t(i,r){return r?{label:i,documentation:r}:{label:i}}e.create=t})(Qt||(Qt={}));var Zt;(function(e){function t(i,r){for(var n=[],s=2;s<arguments.length;s++)n[s-2]=arguments[s];var a={label:i};return u.defined(r)&&(a.documentation=r),u.defined(n)?a.parameters=n:a.parameters=[],a}e.create=t})(Zt||(Zt={}));var Yt;(function(e){e.Text=1,e.Read=2,e.Write=3})(Yt||(Yt={}));var ei;(function(e){function t(i,r){var n={range:i};return u.number(r)&&(n.kind=r),n}e.create=t})(ei||(ei={}));var ti;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(ti||(ti={}));var ii;(function(e){e.Deprecated=1})(ii||(ii={}));var ni;(function(e){function t(i,r,n,s,a){var o={name:i,kind:r,location:{uri:s,range:n}};return a&&(o.containerName=a),o}e.create=t})(ni||(ni={}));var ri;(function(e){function t(i,r,n,s){return s!==void 0?{name:i,kind:r,location:{uri:n,range:s}}:{name:i,kind:r,location:{uri:n}}}e.create=t})(ri||(ri={}));var si;(function(e){function t(r,n,s,a,o,c){var l={name:r,detail:n,kind:s,range:a,selectionRange:o};return c!==void 0&&(l.children=c),l}e.create=t;function i(r){var n=r;return n&&u.string(n.name)&&u.number(n.kind)&&E.is(n.range)&&E.is(n.selectionRange)&&(n.detail===void 0||u.string(n.detail))&&(n.deprecated===void 0||u.boolean(n.deprecated))&&(n.children===void 0||Array.isArray(n.children))&&(n.tags===void 0||Array.isArray(n.tags))}e.is=i})(si||(si={}));var ai;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(ai||(ai={}));var Fe;(function(e){e.Invoked=1,e.Automatic=2})(Fe||(Fe={}));var oi;(function(e){function t(r,n,s){var a={diagnostics:r};return n!=null&&(a.only=n),s!=null&&(a.triggerKind=s),a}e.create=t;function i(r){var n=r;return u.defined(n)&&u.typedArray(n.diagnostics,ge.is)&&(n.only===void 0||u.typedArray(n.only,u.string))&&(n.triggerKind===void 0||n.triggerKind===Fe.Invoked||n.triggerKind===Fe.Automatic)}e.is=i})(oi||(oi={}));var ui;(function(e){function t(r,n,s){var a={title:r},o=!0;return typeof n=="string"?(o=!1,a.kind=n):W.is(n)?a.command=n:a.edit=n,o&&s!==void 0&&(a.kind=s),a}e.create=t;function i(r){var n=r;return n&&u.string(n.title)&&(n.diagnostics===void 0||u.typedArray(n.diagnostics,ge.is))&&(n.kind===void 0||u.string(n.kind))&&(n.edit!==void 0||n.command!==void 0)&&(n.command===void 0||W.is(n.command))&&(n.isPreferred===void 0||u.boolean(n.isPreferred))&&(n.edit===void 0||Je.is(n.edit))}e.is=i})(ui||(ui={}));var ci;(function(e){function t(r,n){var s={range:r};return u.defined(n)&&(s.data=n),s}e.create=t;function i(r){var n=r;return u.defined(n)&&E.is(n.range)&&(u.undefined(n.command)||W.is(n.command))}e.is=i})(ci||(ci={}));var li;(function(e){function t(r,n){return{tabSize:r,insertSpaces:n}}e.create=t;function i(r){var n=r;return u.defined(n)&&u.uinteger(n.tabSize)&&u.boolean(n.insertSpaces)}e.is=i})(li||(li={}));var di;(function(e){function t(r,n,s){return{range:r,target:n,data:s}}e.create=t;function i(r){var n=r;return u.defined(n)&&E.is(n.range)&&(u.undefined(n.target)||u.string(n.target))}e.is=i})(di||(di={}));var pi;(function(e){function t(r,n){return{range:r,parent:n}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&E.is(n.range)&&(n.parent===void 0||e.is(n.parent))}e.is=i})(pi||(pi={}));var hi;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(hi||(hi={}));var fi;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(fi||(fi={}));var mi;(function(e){function t(i){var r=i;return u.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}e.is=t})(mi||(mi={}));var Di;(function(e){function t(r,n){return{range:r,text:n}}e.create=t;function i(r){var n=r;return n!=null&&E.is(n.range)&&u.string(n.text)}e.is=i})(Di||(Di={}));var gi;(function(e){function t(r,n,s){return{range:r,variableName:n,caseSensitiveLookup:s}}e.create=t;function i(r){var n=r;return n!=null&&E.is(n.range)&&u.boolean(n.caseSensitiveLookup)&&(u.string(n.variableName)||n.variableName===void 0)}e.is=i})(gi||(gi={}));var xi;(function(e){function t(r,n){return{range:r,expression:n}}e.create=t;function i(r){var n=r;return n!=null&&E.is(n.range)&&(u.string(n.expression)||n.expression===void 0)}e.is=i})(xi||(xi={}));var Ci;(function(e){function t(r,n){return{frameId:r,stoppedLocation:n}}e.create=t;function i(r){var n=r;return u.defined(n)&&E.is(r.stoppedLocation)}e.is=i})(Ci||(Ci={}));var Xe;(function(e){e.Type=1,e.Parameter=2;function t(i){return i===1||i===2}e.is=t})(Xe||(Xe={}));var Qe;(function(e){function t(r){return{value:r}}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&(n.tooltip===void 0||u.string(n.tooltip)||ae.is(n.tooltip))&&(n.location===void 0||De.is(n.location))&&(n.command===void 0||W.is(n.command))}e.is=i})(Qe||(Qe={}));var Ei;(function(e){function t(r,n,s){var a={position:r,label:n};return s!==void 0&&(a.kind=s),a}e.create=t;function i(r){var n=r;return u.objectLiteral(n)&&I.is(n.position)&&(u.string(n.label)||u.typedArray(n.label,Qe.is))&&(n.kind===void 0||Xe.is(n.kind))&&n.textEdits===void 0||u.typedArray(n.textEdits,w.is)&&(n.tooltip===void 0||u.string(n.tooltip)||ae.is(n.tooltip))&&(n.paddingLeft===void 0||u.boolean(n.paddingLeft))&&(n.paddingRight===void 0||u.boolean(n.paddingRight))}e.is=i})(Ei||(Ei={}));var Fi;(function(e){function t(i){var r=i;return u.objectLiteral(r)&&He.is(r.uri)&&u.string(r.name)}e.is=t})(Fi||(Fi={}));var Ai;(function(e){function t(s,a,o,c){return new Xi(s,a,o,c)}e.create=t;function i(s){var a=s;return!!(u.defined(a)&&u.string(a.uri)&&(u.undefined(a.languageId)||u.string(a.languageId))&&u.uinteger(a.lineCount)&&u.func(a.getText)&&u.func(a.positionAt)&&u.func(a.offsetAt))}e.is=i;function r(s,a){for(var o=s.getText(),c=n(a,function(B,le){var dt=B.range.start.line-le.range.start.line;return dt===0?B.range.start.character-le.range.start.character:dt}),l=o.length,h=c.length-1;h>=0;h--){var g=c[h],v=s.offsetAt(g.range.start),m=s.offsetAt(g.range.end);if(m<=l)o=o.substring(0,v)+g.newText+o.substring(m,o.length);else throw new Error("Overlapping edit");l=v}return o}e.applyEdits=r;function n(s,a){if(s.length<=1)return s;var o=s.length/2|0,c=s.slice(0,o),l=s.slice(o);n(c,a),n(l,a);for(var h=0,g=0,v=0;h<c.length&&g<l.length;){var m=a(c[h],l[g]);m<=0?s[v++]=c[h++]:s[v++]=l[g++]}for(;h<c.length;)s[v++]=c[h++];for(;g<l.length;)s[v++]=l[g++];return s}})(Ai||(Ai={}));var Xi=function(){function e(t,i,r,n){this._uri=t,this._languageId=i,this._version=r,this._content=n,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),e.prototype.getText=function(t){if(t){var i=this.offsetAt(t.start),r=this.offsetAt(t.end);return this._content.substring(i,r)}return this._content},e.prototype.update=function(t,i){this._content=t.text,this._version=i,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(this._lineOffsets===void 0){for(var t=[],i=this._content,r=!0,n=0;n<i.length;n++){r&&(t.push(n),r=!1);var s=i.charAt(n);r=s==="\r"||s===`
8
+ `,s==="\r"&&n+1<i.length&&i.charAt(n+1)===`
9
+ `&&n++}r&&i.length>0&&t.push(i.length),this._lineOffsets=t}return this._lineOffsets},e.prototype.positionAt=function(t){t=Math.max(Math.min(t,this._content.length),0);var i=this.getLineOffsets(),r=0,n=i.length;if(n===0)return I.create(0,t);for(;r<n;){var s=Math.floor((r+n)/2);i[s]>t?n=s:r=s+1}var a=r-1;return I.create(a,t-i[a])},e.prototype.offsetAt=function(t){var i=this.getLineOffsets();if(t.line>=i.length)return this._content.length;if(t.line<0)return 0;var r=i[t.line],n=t.line+1<i.length?i[t.line+1]:this._content.length;return Math.max(Math.min(r+t.character,n),r)},Object.defineProperty(e.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!1,configurable:!0}),e}(),u;(function(e){var t=Object.prototype.toString;function i(m){return typeof m<"u"}e.defined=i;function r(m){return typeof m>"u"}e.undefined=r;function n(m){return m===!0||m===!1}e.boolean=n;function s(m){return t.call(m)==="[object String]"}e.string=s;function a(m){return t.call(m)==="[object Number]"}e.number=a;function o(m,B,le){return t.call(m)==="[object Number]"&&B<=m&&m<=le}e.numberRange=o;function c(m){return t.call(m)==="[object Number]"&&-2147483648<=m&&m<=2147483647}e.integer=c;function l(m){return t.call(m)==="[object Number]"&&0<=m&&m<=2147483647}e.uinteger=l;function h(m){return t.call(m)==="[object Function]"}e.func=h;function g(m){return m!==null&&typeof m=="object"}e.objectLiteral=g;function v(m,B){return Array.isArray(m)&&m.every(B)}e.typedArray=v})(u||(u={}));var yi=(C=>(C.AlreadyDefined="AlreadyDefined",C.ApiConflict="ApiConflict",C.AssignedNeverUsed="AssignedNeverUsed",C.DefinedNeverAssigned="DefinedNeverAssigned",C.DefinedNeverUsed="DefinedNeverUsed",C.EmptyBlockStatement="EmptyBlockStatement",C.ExecutionError="ExecutionError",C.InvalidApiFunctionUsage="InvalidApiFunctionUsage",C.InvalidConstantIdentifier="InvalidConstantIdentifier",C.InvalidPropertyIdentifier="InvalidPropertyIdentifier",C.NoArgumentExpected="NoArgumentExpected",C.NotADictionary="NotADictionary",C.NotDefined="NotDefined",C.NotEnoughArguments="NotEnoughArguments",C.ProfileVariablesAreImmutable="ProfileVariablesAreImmutable",C.ProfileVariablesConflict="ProfileVariablesConflict",C.ReservedKeyword="ReservedKeyword",C.TooManyArguments="TooManyArguments",C.UnexpectedEmptyFunction="UnexpectedEmptyFunction",C.UnexpectedPropertyIdentifier="UnexpectedPropertyIdentifier",C.UnknownPropertyIdentifier="UnknownPropertyIdentifier",C))(yi||{}),vi={AlreadyDefined:"'${identifier}' is already defined.",ApiConflict:"'${identifier}' is already defined as an Arcade constant or function.",AssignedNeverUsed:"'${identifier}' is assigned but never used.",DefinedNeverAssigned:"'${identifier}' is defined but never assigned.",DefinedNeverUsed:"'${identifier}' is defined but never used.",EmptyBlockStatement:"Empty block statement.",ExecutionError:"Execution Error: '${stack}'",InvalidApiFunctionUsage:"Arcade function '${identifier}' not used in a call expression.",InvalidConstantIdentifier:"Invalid constant identifier, expecting ${list}.",InvalidPropertyIdentifier:"Invalid property identifier, expecting ${list}.",NoArgumentExpected:"Expecting no argument.",NotADictionary:"'${identifier}' doesn't have properties.",NotDefined:"'${identifier}' is not defined.",NotEnoughArguments:"Expecting at least ${min} argument(s).",ProfileVariablesAreImmutable:"Profile variables cannot be modified.",ProfileVariablesConflict:"'${identifier}' is already defined as a profile variable.",ReservedKeyword:"'${identifier}' is a reserved keyword.",TooManyArguments:"Too many arguments, expecting ${max}.",UnexpectedEmptyFunction:"Unexpected empty function '${identifier}'.",UnexpectedPropertyIdentifier:"Unexpected property identifier.",UnknownPropertyIdentifier:"Unknown property identifier '${identifier}'.",...X};var Pi=Object.values(je),bi=Object.values(Ve),Si=["case","catch","debugger","switch","try"];var Ii=new Map;function Qi(e){return Array.isArray(e?.testSdkCategories)}function Zi(e,t){return`${e}/api/arcade-api.t9n.${t}.json`}var Ae=class{constructor(t={}){this._settings=t}async getApiDatabase(t){let{locale:i="en"}=t,r=Ii.get(i);if(!r){let{assetsPath:n}=this._settings;if(!n)return{categories:[],functionDefinitions:new Map,constantDefinitions:new Map};r=this.loadSdkApiLibrary(i,n),Ii.set(i,r)}return this.filterApi(r,t)}async getApiLibrary(t){let{categories:i}=await this.getApiDatabase(t);return i}async filterApi(t,i){try{let r=await t,n=new Map,s=new Map,a=[],o=Yi(i);return r.forEach(c=>{let l=[];c.items.forEach(h=>en(l,s,n,o,h)),l.length&&a.push({...c,items:l})}),{categories:a,functionDefinitions:n,constantDefinitions:s}}catch{return{categories:[],functionDefinitions:new Map,constantDefinitions:new Map}}}async loadSdkApiLibrary(t="en",i=""){if(Qi(this._settings))return this._settings.testSdkCategories;if(i=i.replace(/\/$/,""),!i)return[];try{let r=await fetch(Zi(i,t));return r.ok?r.json():t==="en"?[]:this.loadSdkApiLibrary("en",i)}catch{return[]}}};function Yi(e){let{profile:{apiVersion:t,bundles:i,hiddenApiItems:r=[]}={}}=e,n=Li(t),s=Array.isArray(i)&&i.length>0?new Set(["core",...i]):void 0;return a=>nn(n,a.sinceVersion)&&(!s||s.has(a.bundle))&&!r.includes(a.name)}function en(e,t,i,r,n){if(Array.isArray(n)){n.forEach(s=>ki(e,i,r,s));return}if(n.type==="constant")return tn(e,t,r,n);ki(e,i,r,n)}function ki(e,t,i,r){if(!i(r))return;r.disableDocumentation||e.push(r);let{completion:{label:n}}=r,s=n.toLowerCase(),a=t.get(s);a||(a={type:"functionDefinition",key:s,overloads:[]},t.set(s,a)),a.overloads.push(r)}function tn(e,t,i,r){if(!i(r))return;e.push(r);let{completion:{label:n}}=r,s=n.toLowerCase();t.set(s,r);let[a,o]=r.completion.label.split(".");if(!o)return;let c=a.toLowerCase(),l=t.get(c);l||(l={type:"namespace",key:c,members:[],completion:{label:a,detail:a,insertText:a,insertTextMode:y.adjustIndentation,insertTextFormat:A.PlainText,kind:x.Enum}},t.set(c,l));let h=JSON.parse(JSON.stringify(r));h.key=o.toLowerCase(),h.name=o,h.completion.label=o,h.completion.insertText=o,h.completion.kind=x.Constant,l.members.push(h),l.completion.documentation=l.members.reduce((g,v)=>(g.value=`${g.value}${g.value?`
10
+
11
+ `:""}**${v.completion.label}**: ${v.description}`,g),{kind:se.Markdown,value:""})}function Li(e){if(!e||typeof e!="string")return null;let t=e.split(".").map(n=>parseInt(n));if(t.some(isNaN))return console.error("Arcade: invalid API version string",e),null;let[i,r]=t.slice(0,2);return{major:i,minor:r}}function nn(e,t){if(!e)return!0;let i=Li(t);return i?e.major>i.major?!1:e.minor===void 0||i.minor===void 0?!0:i.minor<=e.minor:!0}var wi=bi.map(e=>({label:e,kind:x.Constant})),Bi=Pi.map(e=>({label:e,kind:x.Keyword})),Ti=[{label:"exportfunction",kind:x.Snippet,detail:"Export Function Statement",insertText:`export function \${1:functionName} ($2) {
12
+ $0
13
+ }`,insertTextMode:y.adjustIndentation,insertTextFormat:A.Snippet},{label:"exportvar",kind:x.Snippet,detail:"Export Variable Statement",insertText:"export var ${0:variableName}\n",insertTextMode:y.adjustIndentation,insertTextFormat:A.Snippet},{label:"for",kind:x.Snippet,detail:"For Loop Statement",insertText:"for (var ${1:i} = 0; ${1:i} < ${2:array.length}; ${1:i}++) {\n $0\n}",insertTextMode:y.adjustIndentation,insertTextFormat:A.Snippet},{label:"forin",kind:x.Snippet,detail:"For-In Loop Statement",insertText:"for (var ${1:i} in ${2:arrayOrObject}) {\n $0\n}",insertTextMode:y.adjustIndentation,insertTextFormat:A.Snippet},{label:"function",kind:x.Snippet,detail:"Function Statement",insertText:`function \${1:functionName} ($2) {
14
+ $0
15
+ }`,insertTextMode:y.adjustIndentation,insertTextFormat:A.Snippet},{label:"if",kind:x.Snippet,detail:"If Statement",insertText:`if (\${1:1==1}) {
16
+ $0
17
+ }`,insertTextMode:y.adjustIndentation,insertTextFormat:A.Snippet},{label:"ifelse",kind:x.Snippet,detail:"If-Else Statement",insertText:`if (\${1:1==1}) {
18
+ $0
19
+ } else {
20
+
21
+ }`,insertTextMode:y.adjustIndentation,insertTextFormat:A.Snippet},{label:"else",kind:x.Snippet,detail:"Else Statement",insertText:`else {
22
+ $0
23
+ }`,insertTextMode:y.adjustIndentation,insertTextFormat:A.Snippet},{label:"import",kind:x.Snippet,detail:"Import Statement",insertText:'import ${1:namespace} from "${0:uri}"',insertTextMode:y.adjustIndentation,insertTextFormat:A.Snippet},{label:"while",kind:x.Snippet,detail:"While Loop Statement",insertText:`while (\${1:false}) {
24
+ $0
25
+ }`,insertTextMode:y.adjustIndentation,insertTextFormat:A.Snippet}];function N(e,t){return t?e.replace(/\${(.*?)}/g,(i,r)=>t[r]?.toString()??""):e}var ye=/[-[\]/{}()*+?.\\^$|]/g;function rn(e,t){return e.line>t.end.line}function sn(e,t){return e.line<t.start.line}function Ze(e,t){return!(!t||sn(e,t)||rn(e,t)||e.line===t.start.line&&e.column<t.start.column||e.line===t.end.line&&e.column>t.end.column)}var M={identifiers:"a",profileVariables:"aa",constants:"ab",literals:"ab",functions:"ac",snippets:"b",keywords:"c"};async function Ui(e,t,i,r={}){let n=e.getText({start:{line:0,character:0},end:t}),{tokens:s,errors:a=[]}=wt(n,{loc:!0,tolerant:!0});if(a.length)return{isIncomplete:!1,items:[]};let o=s[s.length-1],c="",l=gn(t);o?.type==="Identifier"&&Ze(l,o.loc)&&(c=o.value??"",s.pop(),o=s[s.length-1]);let h={variables:r.profile?.variables??[],additionalCompletionItems:(r.snippets??[]).map(g=>({kind:x.Snippet,insertTextMode:y.adjustIndentation,insertTextFormat:A.Snippet,...g})),apiDatabase:i};return o?.type==="Punctuator"&&o.value==="."?on(s,c,h):an(s,c,l,h)}async function an(e,t,i,r){let n=ln(e,i);if(n===0)return{isIncomplete:!1,items:[]};let s=pn(e),a=[],o=new RegExp(t.replaceAll(ye,"\\$&"),"i");return s.forEach((c,l)=>{o.test(l)&&a.push({...c,sortText:M.identifiers})}),r.variables.forEach(c=>{o.test(c.name)&&c.completion&&a.push({...c.completion,sortText:M.profileVariables})}),Ni(n)&&Ti.forEach(c=>{c.label.startsWith(t)&&a.push({...c,sortText:M.snippets})}),r.additionalCompletionItems.forEach(c=>{o.test(c.label)&&a.push({...c,sortText:M.snippets})}),Ni(n)&&Bi.forEach(c=>{o.test(c.label)&&a.push({...c,sortText:M.keywords})}),wi.forEach(c=>{o.test(c.label)&&a.push({...c,sortText:M.literals})}),r.apiDatabase.constantDefinitions.forEach((c,l)=>{c.type==="constant"&&c.disableDocumentation||!o.test(l)||a.push({...c.completion,sortText:M.constants})}),r.apiDatabase.functionDefinitions.forEach((c,l)=>{o.test(l)&&c.overloads.forEach(h=>{h.disableDocumentation||a.push({...h.completion,sortText:M.functions})})}),{isIncomplete:!1,items:a}}async function on(e,t,i){let r=[...e],n=r.pop(),s=n,a=[];for(;n&&!(n?.type!=="Punctuator"||n.value!=="."||(n=r.pop(),n?.type!=="Identifier"));)a=[n.value.toLowerCase(),...a],n=r.pop();if(a.length===0||!s)return{isIncomplete:!1,items:[]};let o=await un(a,t,i);return o||(o=cn(a,t,s,i),o)?o:{isIncomplete:!1,items:[]}}async function un(e,t,i){if(e.length>1)return null;let r=i.apiDatabase.constantDefinitions.get(e[0]);if(!r)return null;if(r.type!=="namespace")return{isIncomplete:!1,items:[]};let n=[],s=new RegExp(t.replaceAll(ye,"\\$&"),"i");return r.members.forEach(a=>{a.disableDocumentation||!s.test(a.name)||n.push(a.completion)}),{isIncomplete:!1,items:n}}function cn(e,t,i,r){if(!r.variables?.length||!e.length)return null;let n=e.shift(),s=r.variables;for(;n;){let l=s?.find(h=>h.name.toLowerCase()===n);if(!pt(l))return null;s=l.properties,n=e.shift()}let a=[],o=new RegExp(t.replaceAll(ye,"\\$&"),"i"),c=xn(i.loc.start);return s.forEach(l=>{o.test(l.name)&&l.completion&&a.push(Dn(c,l.completion))}),{isIncomplete:!1,items:a}}function Ni(e){return(e&1)===1}function ln(e,t){if(!e.length)return 255;let i=e[e.length-1];switch(i.type){case"Identifier":return 255;case"Keyword":return["return","in","else"].includes(i.value)?254:0;case"Punctuator":return dn(e);case"Template":return i.value.endsWith("${")?254:255;default:return Ze(t,i.loc)?0:255}}function dn(e){let t=[...e],i=t.pop();if(!i)return 255;if(i.type!=="Punctuator")return 0;if(i.value!=="("&&i.value!==",")return 255;if(i.value==="(")return Mi(t);let r=0;for(i=t.pop();i;){if(i.type==="Keyword")return 0;if(i.type!=="Punctuator"){i=t.pop();continue}if(i.value===")"||i.value==="]"){r--,i=t.pop();continue}if(i.value==="["){if(r===0)return 254;r++,i=t.pop();continue}if(i.value==="("){if(r===0)return Mi(t);r++,i=t.pop();continue}i=t.pop()}return 0}function Mi(e){let t=[...e],i=t.pop();return i?i.type==="Keyword"?i.value.toLowerCase()==="for"?255:254:i.type!=="Identifier"?255:(i=t.pop(),i?.type==="Keyword"&&i.value.toLowerCase()==="function"?0:254):255}var Ye=class{constructor(t){this.tokens=t;this.currentIndex=0}increment(){if(!(this.currentIndex>=this.tokens.length))return this.tokens[++this.currentIndex]}get next(){return this.tokens[this.currentIndex+1]}get previous(){return this.tokens[this.currentIndex-1]}get current(){return this.tokens[this.currentIndex]}},ve={parameterFormat:"(parameter) ${name}",variableFormat:"var ${name}",functionFormat:"function ${name} (${paramsDetail})"};function pn(e){let t=new Map;if(!e.length)return t;let i=new Ye(e);for(;i.current;){if(i.current.type==="Keyword"){if(i.current.value.toLowerCase()==="var"){i.increment(),hn(i,t);continue}if(i.current.value.toLowerCase()==="function"){i.increment(),fn(i,t);continue}}i.increment()}return t}function hn(e,t){for(;e.current;){if(e.current?.type!=="Identifier")return;let i=e.current.value,r=i.toLowerCase();t.set(r,{label:i,kind:x.Variable,detail:N(ve.variableFormat,{name:i})});let n=e.increment();if(n?.type!=="Punctuator")return;if(n.value===","){e.increment();continue}if(n.value==="="){e.increment(),mn(e);continue}}}function fn(e,t){for(;e.current;){if(e.current?.type!=="Identifier")return;let i=e.current.value,r=i.toLowerCase(),n={label:i,kind:x.Function,detail:N(ve.functionFormat,{name:i,paramsDetail:""}),insertText:`${i}()`,insertTextMode:y.adjustIndentation,insertTextFormat:A.Snippet};t.set(r,n);let s=e.increment();if(!R(s,"("))return;s=e.increment();let a=[];for(;s&&!(s.type!=="Identifier"||(a.push(s.value),s=e.increment(),!R(s,",")));)s=e.increment();if(a.length){n.detail=N(ve.functionFormat,{name:n.label,paramsDetail:a.join(", ")});let l=a.map((h,g)=>`\${${g+1}:${h}}`).join(", ");n.insertText=`${n.label}(${l})`}if(!R(s,")")||(s=e.increment(),!R(s,"{")))return;s=e.increment();let o=e.currentIndex,c=1;for(;s&&c>0;)R(s,"{")?c++:R(s,"}")&&c--,s=e.increment();if(c===0)return;e.currentIndex=o,a.forEach(l=>{let h=l.toLowerCase();t.set(h,{label:l,kind:x.Variable,detail:N(ve.parameterFormat,{name:l})})})}}function R(e,t){return e?.type==="Punctuator"&&e.value===t}function mn(e){let t=0;for(;e.current;){if(e.current.type==="Keyword"){if(R(e.previous,".")){e.increment();continue}return}if(e.current.type==="Punctuator"&&e.current.value===";")return;if(e.current.type==="Template"&&e.current.value.startsWith("`")){t++,e.increment();continue}if(e.current.type==="Punctuator"&&["(","[","{"].includes(e.current.value)){t++,e.increment();continue}if(e.current.type==="Template"&&e.current.value.endsWith("`")){t--,e.increment();continue}if(e.current.type==="Punctuator"&&[")","]","}"].includes(e.current.value)){t--,e.increment();continue}if(!t&&e.current.type==="Punctuator"&&e.current.value===","){e.increment();return}e.increment()}}function Dn(e,t){return t.insertText&&t.insertText.startsWith("[")&&(t.additionalTextEdits=[{newText:"",range:{start:{...e},end:{line:e.line,character:e.character+1}}}]),t}function gn(e){return{line:e.line+1,column:e.character}}function xn(e){return{line:e.line-1,character:e.column}}function Pe(e,t){return e.line-t.line||e.column-t.column}function _i(e,t){let i={start:e.loc.start,end:e.loc.end};function r(n){Cn(i,n.loc)}return Pe(i.start,i.end)<0&&(i.start={...i.start},t.skipSpaces(i.start),Pe(i.start,i.end)<0&&(i.end={...i.end},t.skipSpaces(i.end,!0))),e.leadingComments?.forEach(r),e.trailingComments?.forEach(r),i}function Cn(e,t){e&&t&&(Pe(t.start,e.start)<0&&(e.start=t.start),Pe(e.end,t.end)<0&&(e.end=t.end))}function oe(e){return!/\S/.test(e??"")}var et={indentWidth:2,wrapColumn:80,quote:null};function q(e){return{indentWidth:e?.indentWidth??et.indentWidth,wrapColumn:e?.wrapColumn??et.wrapColumn,quote:e?.quote??et.quote}}var En=/^\s*/,Fn=/\u000D\u000A|\u000D(?!\u000A)|\u000A|\u2028|\u2029/,be=class e{constructor(t){this.lineRecords=t;this.length=t.length}static fromString(t,i){if(typeof t!="string")return t;let r=i?.indentWidth;return new e(t.split(Fn).map(function(s){let a=En.exec(s)?.[0]??"";return{line:s,indentation:An(a,r),locked:!1,sliceStart:a.length,sliceEnd:s.length}}))}toString(){return this.sliceString(this.firstPos(),this.lastPos())}charAt(t){let{line:i,column:r}=t,n=this.lineRecords[i-1];if(typeof n>"u"||r<0)return"";let s=this.getIndentationAt(i);if(r<s)return" ";let a=r+n.sliceStart-s;return a===n.sliceEnd&&i<this.length?`
26
+ `:a>=n.sliceEnd?"":n.line.charAt(a)}getIndentationAt(t){return Math.max(this.lineRecords[t-1].indentation,0)}getLineLength(t){let i=this.lineRecords[t-1];return this.getIndentationAt(t)+i.sliceEnd-i.sliceStart}getStatementLineSeparators(t){let i=this.slice(t,this.skipSpaces({...t})||this.lastPos());return i.length===1||!oe(i.lineRecords[1].line)?[`
27
+ `]:[`
28
+ `,`
29
+ `]}getLeadingCommentSeparators(t){let i=this.slice(t,this.skipSpaces({...t})||this.lastPos());return i.length===1?[" "]:oe(i.lineRecords[1].line)?[`
30
+ `,`
31
+ `]:[`
32
+ `]}nextPos(t,i=!1){let r=Math.max(t.line,0);return Math.max(t.column,0)<this.getLineLength(r)?(t.column+=1,i?!!this.skipSpaces(t):!0):r<this.length?(t.line+=1,t.column=0,i?!!this.skipSpaces(t):!0):!1}prevPos(t,i=!1){let r=t.line,n=t.column;if(n<1){if(r-=1,r<1)return!1;n=this.getLineLength(r)}else n=Math.min(n-1,this.getLineLength(r));return t.line=r,t.column=n,i?!!this.skipSpaces(t,!0):!0}firstPos(){return{line:1,column:0}}lastPos(){return{line:this.length,column:this.getLineLength(this.length)}}skipSpaces(t,i=!1){if(t||(t=i?this.lastPos():this.firstPos()),i){for(;this.prevPos(t);)if(!oe(this.charAt(t))&&this.nextPos(t))return t;return null}else{for(;oe(this.charAt(t));)if(!this.nextPos(t))return null;return t}}slice(t,i){if(!i&&!t)return this;if(i=i??this.lastPos(),!t)throw new Error("cannot slice with end but not start");let r=this.lineRecords.slice(t.line-1,i.line);return t.line===i.line?r[0]=H(r[0],t.column,i.column):(r[0]=H(r[0],t.column),r.push(H(r.pop()??r[0],0,i.column))),new e(r)}sliceString(t=this.firstPos(),i=this.lastPos()){let r=[];for(let n=t.line;n<=i.line;++n){let s=this.lineRecords[n-1];n===t.line?n===i.line?s=H(s,t.column,i.column):s=H(s,t.column):n===i.line&&(s=H(s,0,i.column));let a="",o=Math.max(s.indentation,0);o>0&&(a+=new Array(o+1).join(" ")),a+=s.line.slice(s.sliceStart,s.sliceEnd),r.push(a)}return r.join(`
33
+ `)}};function An(e,t=2){let i=0,r=e.length;for(let n=0;n<r;++n)switch(e.charCodeAt(n)){case 9:{let s=Math.ceil(i/t)*t;s===i?i+=t:i=s;break}case 11:case 12:case 13:case 65279:break;case 32:default:i+=1;break}return i}function H(e,t,i){let r=e.sliceStart,n=e.sliceEnd,s=Math.max(e.indentation,0),a=s+n-r;return i=i??a,t=Math.max(t,0),i=Math.min(i,a),i=Math.max(i,t),i<s?(s=i,n=r):n-=a-i,a=i,a-=t,t<s?s-=t:(t-=s,s=0,r+=t),e.indentation===s&&e.sliceStart===r&&e.sliceEnd===n?e:{line:e.line,indentation:s,sliceStart:r,sliceEnd:n}}function Oi(e,t,i){return!e&&!i?"":e?i?e+(t??"")+i:e:i}var yn=/\u000D\u000A|\u000D(?!\u000A)|\u000A|\u2028|\u2029/,p=class e{constructor(t=[]){this.lines=t}static fromString(t){return new e(t.split(yn))}static appendLines(t=[]){let i=new e;return t.forEach(r=>{r!=null&&(typeof r=="string"?i.lines.push(r):i.lines.push(...r.lines))}),i}static joinLines(t=[],i=""){let r=new e;return t.forEach(n=>{if(n==null)return;let s=r.lines.pop()??"";typeof n=="string"?r.lines.push(Oi(s,i,n)):(r.lines.push(Oi(s,i,n.lines.slice(0)[0])),r.lines.push(...n.lines.slice(1)))}),r}static aggregateLines(t,i,r,n,s){if(!r||r.isEmpty)return t;if(!i||!t||t.isEmpty)return r.indentFirstLine(s);let a=n.start.line-i.end.line;if(a===0)return e.joinLines([t," ",r]);let o=a===1?void 0:"";return e.appendLines([t,o,r.indentFirstLine(s)])}get isEmpty(){return this.lines.length===0||this.lines.length===1&&this.lines[0].length===0}get maxLineLength(){return this.lines.reduce((t,i)=>Math.max(t,i.length),0)}get firstLinelength(){return(this.lines[0]??"").length}get lastLinelength(){return(this.lines[this.lines.length-1]??"").length}surroundWith(t="",i=""){return!t&&!i?this:this.isEmpty?new e([t+i]):this.lines.length===1?new e([t+this.lines[0]+i]):e.joinLines([t,this,i])}indentFirstLine(t=""){return this.isEmpty?this:(this.lines[0]=t+this.lines[0],this)}suffixWith(t){return this.surroundWith("",t)}toString(t=`
34
+ `){return this.lines.join(t)}};function rt(e,t){return e*(t.indentWidth??2)}function U(e=0,t){let{indentWidth:i=2}=q(t);return new Array(e*i+1).join(" ")}function Se(e){return e.replace(/['"]/g,t=>t==='"'?"'":'"')}function vn(e,t){if(!e||!t)return!1;switch(e.type){case d.UnaryExpression:return We(t)&&t.object===e;case d.BinaryExpression:case d.LogicalExpression:switch(t.type){case d.UnaryExpression:return!0;case d.MemberExpression:return t.object===e;case d.BinaryExpression:case d.LogicalExpression:return pe[t.operator]>pe[e.operator];default:return!1}case d.Literal:return We(t)&&typeof e.value=="number"&&t.object===e;case d.AssignmentExpression:switch(t.type){case d.UnaryExpression:case d.BinaryExpression:case d.LogicalExpression:case d.ReturnStatement:return!0;case d.MemberExpression:return t.object===e;default:return!1}default:return!1}}function D(e,t,i){switch(e?.type){case d.BinaryExpression:case d.LogicalExpression:return Pn(e,t,i);case d.AssignmentExpression:return new ce(e,t,i);case d.MemberExpression:return new Le(e,t,i);case d.Identifier:return new ue(e,t,i);case d.CallExpression:return new tt(e,t,i);case d.ObjectExpression:return _(e,t,i);case d.ArrayExpression:return _(e,t,i);case d.Literal:return new ue(e,t,i);case d.UpdateExpression:case d.UnaryExpression:return new ke(e,t,i);case d.TemplateLiteral:return new nt(e,t,i);case d.VariableDeclaration:return new K(e,t,i);default:throw new Error("unknown type: "+JSON.stringify(e))}}function _(e,t,i){let r=new G(e,t,i);switch(e?.type){case d.ArrayExpression:return r.setupCollection(e.elements.map(n=>D(n,e,i)),"SquareBrackets"),r;case d.ObjectExpression:return r.setupCollection(e.properties?.map(n=>new it(n,e,i)),"CurlyBrackets"),r;case d.VariableDeclaration:return r.prefix="var ",r.setupCollection(e.declarations?.map(n=>Vi(n,e,i)),"None"),r;case d.FunctionDeclaration:return r.prefix=`function ${e.id.name}`,r.setupCollection(e.params.map(n=>D(n,e,i)),"Parentheses"),r;case d.ForStatement:return r.prefix="for ",r.setupCollection([D(e.init,e,i),D(e.test,e,i),D(e.update,e,i)],"Parentheses",";"),r;case d.ForInStatement:return r.prefix="for ",r.setupCollection([new ce(e,t,i)],"Parentheses",""),r;case d.IfStatement:return r.prefix="if ",r.setupCollection([D(e.test,e,i)],"Parentheses",""),r;case d.WhileStatement:return r.prefix="while ",r.setupCollection([D(e.test,e,i)],"Parentheses",""),r;default:return r}}function Vi(e,t,i){return e.init?new ce(e,t,i):new ue(e.id,t,i)}function Pn(e,t,i){let n=[...Ie(e.left,e.operator),...Ie(e.right,e.operator)].map(a=>D(a,e,i)),s=new G(e,t,i);return s.setupCollection(n,"None"," "+e.operator),s}function Ie(e,t){return e.type!==d.BinaryExpression&&e.type!==d.LogicalExpression?[e]:e.operator!==t?[e]:[...Ie(e.left,t),...Ie(e.right,t)]}var k=class{constructor(t,i,r){this.node=t;this.parent=i;this.options=r;this.prefix="";this.suffix="";this.groupingParentheses=!1;this.groupingParentheses=vn(t,i)}get openingParenthesis(){return this.groupingParentheses?"(":""}get closingParenthesis(){return this.groupingParentheses?")":""}get leadingString(){return[this.prefix,this.openingParenthesis].join("")}get trailingString(){return[this.closingParenthesis,this.suffix].join("")}finalize(t){return typeof t=="string"&&(t=p.fromString(t)),t.surroundWith(this.leadingString,this.trailingString)}},G=class extends k{constructor(i,r,n){super(i,r,n);this.node=i;this.parent=r;this.options=n;this.type="CollectionPrinter";this.bracketsType="None";this.separator=",";this.printers=[]}setupCollection(i=[],r="None",n){return this.bracketsType=r??this.bracketsType,this.separator=n??this.separator,this.printers=i,this}getOpeningBracket(i=!1,r="singleLine"){if(this.bracketsType==="None")return"";if(this.bracketsType==="CurlyBrackets")return"{"+(i||r==="multiline"?"":" ");switch(this.bracketsType){case"Parentheses":return"(";case"SquareBrackets":return"[";default:return""}}getClosingBracket(i=!1,r="singleLine"){if(this.bracketsType==="None")return"";if(this.bracketsType==="CurlyBrackets")return(i||r==="multiline"?"":" ")+"}";switch(this.bracketsType){case"Parentheses":return")";case"SquareBrackets":return"]";default:return""}}getLinesLevel(i=0){return this.bracketsType!=="None"||Pt(this.parent)||qe(this.parent)||(ee(this.node)||Y(this.node))&&(ee(this.parent)||Y(this.parent))?i+1:i}finalize(i,r="singleLine",n=0){if(this.bracketsType==="None")return super.finalize(i);let s=this.getOpeningBracket(i.isEmpty,r),a=this.getClosingBracket(i.isEmpty,r);if(r==="singleLine")return super.finalize(i.surroundWith(s,a));let o=U(n,this.options);return super.finalize(p.appendLines([s,i,o+a]))}singleLineFormat(i=0){let r=this.printers.length-1;return p.joinLines(this.printers.map((n,s)=>n.format("singleLine",i).suffixWith(s<r?this.separator:""))," ")}optimizedPrinterFormat(i,r,n=0){let s=this.getLinesLevel(n),a=U(s,this.options),o=this.bracketsType==="None"&&r===0?"":a,c=r<this.printers.length-1?this.separator:"",l=i.format("singleLine",s).suffixWith(c);return l.maxLineLength+a.length<=this.options.wrapColumn?l.indentFirstLine(o):i.format("multiline",s).suffixWith(c).indentFirstLine(o)}multilineFormat(i=0){return p.appendLines(this.printers.map((r,n)=>this.optimizedPrinterFormat(r,n,i)))}format(i="singleLine",r=0){if(this.printers.length===0){let s=this.getOpeningBracket(!0,i),a=this.getClosingBracket(!0,i);return super.finalize(p.fromString(s+a))}if(i==="singleLine"){let s=this.singleLineFormat(r);return this.finalize(s,i,r)}let n=this.multilineFormat(r);return this.finalize(n,i,r)}},bn=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/,ue=class extends k{constructor(i,r,n){super(i,r,n);this.node=i;this.parent=r;this.options=n;this.type="StringPrinter"}format(){if(S(this.node))return this.finalize(this.node.name??"");if(typeof this.node.value!="string")return this.finalize(this.node.raw??"");if(It(this.parent)&&this.parent.key==this.node&&ze(this.node)&&typeof this.node.value=="string"&&bn.test(this.node.value))return this.finalize(this.node.value);switch(this.options.quote){case"auto":{let i=JSON.stringify(this.node.value),r=Se(JSON.stringify(Se(this.node.value)));return this.finalize(i.length>r.length?r:i)}case"single":return this.finalize(Se(JSON.stringify(Se(this.node.value))));default:return this.finalize(JSON.stringify(this.node.value))}}},ke=class extends k{constructor(i,r,n){super(i,r,n);this.node=i;this.parent=r;this.options=n;this.type="SingleExpressionPrinter";let s=bt(i),a=St(i);if(s||a){this.prefix=s&&i.prefix?i.operator:"",this.suffix=a&&!i.prefix?i.operator:"",this.printer=D(i.argument,i,this.options);return}this.printer=D(i,r,this.options)}format(i="singleLine",r=0){return this.printer?this.finalize(this.printer.format(i,r)):new p}},K=class extends k{constructor(i,r,n){super(i,r,n);this.node=i;this.parent=r;this.options=n;this.type="VariableDeclaratorsPrinter";i.declarations.length===1?(this.printer=Vi(i.declarations[0],i,this.options),this.printer.prefix="var "):this.printer=_(i,r,this.options)}format(i="singleLine",r=0){return this.finalize(this.printer.format(i,r))}},tt=class extends k{constructor(i,r,n){super(i,r,n);this.node=i;this.parent=r;this.options=n;this.type="CallExpressionPrinter";this.argumentsPrinter=new G(i,r,n),this.argumentsPrinter.setupCollection(i.arguments?.map(s=>D(s,i,n)),"Parentheses"),S(i.callee)?this.argumentsPrinter.prefix=i.callee.name:this.memberExpressionPrinter=new Le(i.callee,r,n)}format(i="singleLine",r=0){if(!this.memberExpressionPrinter)return this.finalize(this.argumentsPrinter.format(i,r));let n=this.memberExpressionPrinter.format("singleLine",r),s=this.argumentsPrinter.format("singleLine",r);if(i==="singleLine")return this.finalize(p.joinLines([n,s]));let a=rt(r,this.options)+this.leadingString.length+n.firstLinelength;return a+1<this.options.wrapColumn?(s=this.argumentsPrinter.format("multiline",r),this.finalize(p.joinLines([n,s]))):(n=this.memberExpressionPrinter.format("multiline",r),a=n.lastLinelength,a+s.maxLineLength>this.options.wrapColumn&&(s=this.argumentsPrinter.format("multiline",r+1)),this.finalize(p.joinLines([n,s])))}},Le=class extends k{constructor(i,r,n){super(i,r,n);this.node=i;this.parent=r;this.options=n;this.type="MemberExpressionPrinter";if(this.objectPrinter=D(i.object,i,this.options),i.computed){let s=new G(i.property,i,this.options);s.setupCollection([D(i.property,i,this.options)],"SquareBrackets"),this.propertyPrinter=s}else{let s=new ke(i.property,i,this.options);s.prefix=".",this.propertyPrinter=s}}format(i="singleLine",r=0){let n=this.objectPrinter.format("singleLine",r),s=this.propertyPrinter.format("singleLine",r);if(i==="singleLine")return this.finalize(p.joinLines([n,s]));let a=rt(r,this.options)+this.leadingString.length+n.firstLinelength;a>this.options.wrapColumn&&(n=this.objectPrinter.format("multiline",r),a=n.lastLinelength);let o=s.firstLinelength+this.trailingString.length;if(a+o<this.options.wrapColumn)return this.finalize(p.joinLines([n,s]));if(this.node.computed)return this.finalize(p.joinLines([n,this.propertyPrinter.format("multiline",r)]));let c=r+1,l=U(c,this.options);return s=this.propertyPrinter.format("singleLine",r),o=l.length+s.lastLinelength+this.trailingString.length,o>this.options.wrapColumn&&(s=this.propertyPrinter.format("multiline",c)),this.finalize(p.appendLines([n,s.indentFirstLine(l)]))}},it=class extends k{constructor(i,r,n){super(i,r,n);this.node=i;this.parent=r;this.options=n;this.type="PropertyPrinter";this.key=D(i.key,i,this.options),i.shorthand||(this.key.suffix=":",this.value=D(i.value,i,this.options))}format(i="singleLine",r=0){if(this.node.shorthand||!this.value)return this.finalize(this.key.format(i,r));let n=this.key.format("singleLine",r);if(i==="singleLine"){let c=this.value.format("singleLine",r);return this.finalize(p.joinLines([n,c]," "))}if(Z(this.node.value)||Z(this.node.value)){let c=this.value.format("multiline",r);return this.finalize(p.joinLines([n,c]," "))}let s=U(r+1,this.options),a=this.value.format("singleLine",r+1).indentFirstLine(s);return a.maxLineLength+this.trailingString.length+1<=this.options.wrapColumn?this.finalize(p.appendLines([n,a])):(a=this.value.format("multiline",r+1).indentFirstLine(s),this.finalize(p.appendLines([n,a])))}},ce=class extends k{constructor(i,r,n){super(i,r,n);this.node=i;this.parent=r;this.options=n;this.type="OperationPrinter";this.operator="";this.noNewLineWrapping=!1;switch(i?.type){case d.AssignmentExpression:this.leftPrinter=D(i.left,i,this.options),this.operator=" "+i.operator,this.rightPrinter=D(i.right,i,this.options),this.noNewLineWrapping=(S(i.left)||ze(i.left))&&(Z(i.right)||$e(i.right));return;case d.VariableDeclarator:this.leftPrinter=D(i.id,i,this.options),i.init&&(this.operator=" =",this.rightPrinter=D(i.init,i,this.options)),this.noNewLineWrapping=Z(i.init)||$e(i.init);return;case d.ForInStatement:this.leftPrinter=D(i.left,i,this.options),this.operator=" in",this.rightPrinter=D(i.right,i,this.options);return;case d.BinaryExpression:case d.LogicalExpression:this.leftPrinter=D(i.left,i,this.options),this.operator=" "+i.operator,this.rightPrinter=D(i.right,i,this.options);return}}format(i="singleLine",r=0){if(!this.rightPrinter)return this.finalize(this.leftPrinter.format(i,r));let n=this.leftPrinter.format("singleLine",r).suffixWith(this.operator),s=this.rightPrinter.format("singleLine",r);if(i==="singleLine")return this.finalize(p.joinLines([n,s]," "));let a=rt(r,this.options)+this.leadingString.length+n.maxLineLength+1;a>this.options.wrapColumn&&(n=this.leftPrinter.format("multiline",r).suffixWith(this.operator),a=n.lastLinelength+1);let o=s.firstLinelength+this.trailingString.length+1;if(a+o<this.options.wrapColumn)return this.finalize(p.joinLines([n,s]," "));let c=this.rightPrinter.format("multiline",r);return c.firstLinelength+this.trailingString.length+1+a<this.options.wrapColumn||this.noNewLineWrapping?this.finalize(p.joinLines([n,c]," ")):(o>this.options.wrapColumn&&(s=this.rightPrinter.format("multiline",r+1)),s=s.indentFirstLine(U(r+1)),this.finalize(p.appendLines([n,s])))}},nt=class extends k{constructor(i,r,n){super(i,r,n);this.node=i;this.parent=r;this.options=n;this.type="TemplateLiteralPrinter";this.parts=[];let s=i.expressions?.map(a=>D(a,i,this.options))??[];this.parts.push("`"),i.quasis?.forEach((a,o)=>{this.parts.push(a.value.raw),o<s.length&&(this.parts.push("${"),this.parts.push(s[o]),this.parts.push("}"))}),this.parts.push("`")}format(i="singleLine",r=0){return this.finalize(p.joinLines(this.parts.map(n=>typeof n=="string"?n:n.format(i,r))))}};function Sn(e){let t={...e.leadingComments?.slice(0,1)[0]?.loc.start??e.loc.start},i={...e.trailingComments?.slice(-1)[0]?.loc.end??e.loc.end};return{start:t,end:i}}function In(e){return e.trailingComments?.slice(-1)[0]?.type===d.LineComment}var L=class{constructor(t,i,r){this.node=t;this.parent=i;this.options=r;this.indentStatementFirstLine=!0;this.externalOffset=0;this.options=q(this.options)}createStatementPrinter(t){switch(t.type){case d.Program:return new O(t,this.node,this.options);case d.ImportDeclaration:return new lt(t,this.node,this.options);case d.ExpressionStatement:return new ut(t,this.node,this.options);case d.FunctionDeclaration:return new Be(t,this.node,this.options);case d.ExportNamedDeclaration:return z(t)?new we(t,this.node,this.options):new Be(t,this.node,this.options);case d.BlockStatement:return new O(t,this.node,this.options);case d.ReturnStatement:return new ct(t,this.node,this.options);case d.VariableDeclaration:return new we(t,this.node,this.options);case d.IfStatement:return new at(t,this.node,this.options);case d.ForStatement:case d.ForInStatement:case d.WhileStatement:return new ot(t,this.node,this.options);case d.EmptyStatement:case d.BreakStatement:case d.ContinueStatement:return new st(t,this.node,this.options);default:throw new Error("unknown type: "+JSON.stringify(t))}}getFormattedBody(t,i=0){if(this.cachedBody&&this.cachedBody.level===i)return this.cachedBody.body;let r=t.format(i);return this.cachedBody={body:r,level:i},r}getStatementIndentation(t=0){return this.indentStatementFirstLine?U(t,this.options):""}getStatementIndentationLength(t=0){return this.indentStatementFirstLine?t*(this.options.indentWidth??2):0}getIndentation(t=0){return U(t,this.options)}addComments(t,i=0){let r=this.getStatementIndentation(i);if(!this.node.leadingComments?.length&&!this.node.trailingComments?.length)return t.indentFirstLine(r);let n=(this.node.leadingComments??[]).reduce((o,c)=>{let l=this.formatComment(c);return{formattedLines:p.aggregateLines(o.formattedLines,o.location,l,c.loc,r),location:c.loc}},{formattedLines:new p}),s=p.aggregateLines(n.formattedLines,n?.location,t,this.node.loc,r);return(this.node.trailingComments?.reduce((o,c)=>{let l=this.formatComment(c);return{formattedLines:p.aggregateLines(o?.formattedLines,o?.location,l,c.loc,r),location:c.loc}},{formattedLines:s,location:this.node.loc})??{formattedLines:s}).formattedLines}formatInnerComments(t=0){if(!b(this.node)||!Array.isArray(this.node.innerComments)||!this.node.innerComments.length)return new p;let i=this.getIndentation(t);return(this.node.innerComments?.reduce((n,s)=>{let a=this.formatComment(s);return{formattedLines:p.aggregateLines(n.formattedLines,n.location,a,s.loc,i),location:s.loc}},{formattedLines:new p})).formattedLines}formatComment(t){switch(t.type){case d.BlockComment:return p.fromString(t.value).surroundWith("/*","*/");default:return p.fromString(t.value.trimEnd()).surroundWith("//")}}canFitSingleLine(t,i=0,r=0){return this.externalOffset+r+this.getStatementIndentationLength(i)+t.lastLinelength<=this.options.wrapColumn}},O=class extends L{constructor(i,r,n){super(i,r,n);this.node=i;this.printers=[];this.printers=i.body.map(s=>this.createStatementPrinter(s))}format(i=0){if(this.printers.length===0)return this.formatEmptyBlock(i);let r=[],n=b(this.node);n&&r.push("{");let s=n?i+1:i,a;return this.printers.forEach(o=>{if(Q(o.node))return;let c=Sn(o.node);a&&c.start.line-a.end.line>1&&r.push(""),a=c,r.push(o.format(s))}),n&&r.push(this.getIndentation(i)+"}"),this.addComments(p.appendLines(r),i)}formatEmptyBlock(i=0){if(!b(this.node))return this.addComments(p.fromString(""),i);let r=this.formatInnerComments(i+1),n="{",s=this.getIndentation(i)+"}";return r.isEmpty?he(this.parent)?this.addComments(p.appendLines([n,s]),i):this.addComments(p.fromString("{}"),i):this.addComments(p.appendLines([n,r,s]),i)}},st=class extends L{constructor(i,r,n){super(i,r,n);this.node=i;this.keyword="";switch(this.node.type){case d.ContinueStatement:this.keyword="continue;";break;case d.BreakStatement:this.keyword="break;";break;default:this.keyword=";"}}format(i=0){return this.addComments(p.fromString(this.keyword),i)}},we=class extends L{constructor(i,r,n){super(i,r,n);this.node=i;if(z(i))this.printer=new K(i,r,n);else if(z(i.declaration))this.printer=new K(i.declaration,r,n),this.printer.prefix="export ";else throw new Error("invalid type: "+JSON.stringify(i))}format(i=0,r="optimized"){if(r==="singleLine"||r==="optimized"){let n=this.printer.format("singleLine",i).suffixWith(";");if(r==="singleLine"||this.canFitSingleLine(n,i))return this.addComments(n,i)}return this.addComments(this.printer.format("multiline",i).suffixWith(";"),i)}},Be=class extends L{constructor(i,r,n){super(i,r,n);this.node=i;if(Re(i))this.header=_(i,r,n),this.body=new O(i.body,i,n);else if(Re(i.declaration))this.header=_(i.declaration,r,n),this.header.prefix="export ",this.body=new O(i.declaration.body,i,n);else throw new Error("invalid type: "+JSON.stringify(i))}format(i=0,r="optimized"){this.body.indentStatementFirstLine=!1;let n=this.getFormattedBody(this.body,i);if(r==="singleLine"||r==="optimized"){let a=this.header.format("singleLine",i);if(r==="singleLine"||this.canFitSingleLine(a,i,n.firstLinelength+1))return this.addComments(p.joinLines([a,n]," "),i)}let s=this.header.format("multiline",i);return this.addComments(p.joinLines([s,n]," "),i)}},at=class extends L{constructor(i,r,n){super(i,r,n);this.node=i;this.header=_(i,r,n),this.consequent=this.createStatementPrinter(i.consequent),this.consequent.indentStatementFirstLine=!1,i.alternate&&(this.alternate=this.createStatementPrinter(i.alternate),this.alternate.indentStatementFirstLine=!1)}format(i=0,r="optimized"){let n=!1,s;if(r==="singleLine"||r==="optimized"){let l=this.header.format("singleLine",i),h=b(this.node.consequent)?2:0;(r==="singleLine"||this.canFitSingleLine(l,i,h))&&(s=l)}s||(n=!0,s=this.header.format("multiline",i));let a;if(b(this.node.consequent)){let l=this.consequent.format(i,"optimized");a=p.joinLines([s," ",l])}else if(n||he(this.node.consequent)){this.consequent.indentStatementFirstLine=!0;let l=this.consequent.format(i+1,"singleLine");this.canFitSingleLine(l,i+1)||(l=this.consequent.format(i+1,"multiline")),a=p.appendLines([s,l])}else{this.consequent.indentStatementFirstLine=!1;let l=this.consequent.format(i,"singleLine");this.canFitSingleLine(l,0,s.lastLinelength+1)?a=p.joinLines([s," ",l]):(this.consequent.indentStatementFirstLine=!0,l=this.consequent.format(i+1,"optimized"),a=p.appendLines([s,l]))}if(!this.alternate)return this.addComments(a,i);let o=In(this.node.consequent)||!b(this.node.consequent),c;if(this.alternate.externalOffset=0,b(this.node.alternate)||he(this.node.alternate))this.alternate.indentStatementFirstLine=!1,this.alternate.externalOffset=o?5:a.lastLinelength+6,c=this.alternate.format(i,"optimized"),c=p.joinLines(["else ",c]);else{let l=o?4:a.lastLinelength+4;this.alternate.indentStatementFirstLine=!1,c=this.alternate.format(i,"singleLine"),this.canFitSingleLine(c,i,l+1)?c=p.joinLines(["else ",c]):(this.alternate.indentStatementFirstLine=!0,c=this.alternate.format(i+1,"optimized"),c=p.appendLines(["else",c]))}return o?a=p.appendLines([a,c.indentFirstLine(this.getIndentation(i))]):a=p.joinLines([a,c]," "),this.addComments(a,i)}},ot=class extends L{constructor(i,r,n){super(i,r,n);this.node=i;this.header=_(i,r,n),this.body=this.createStatementPrinter(i.body)}format(i=0,r="optimized"){this.body.indentStatementFirstLine=!1;let n=this.getFormattedBody(this.body,i);if(r==="singleLine"||r==="optimized"){let a=this.header.format("singleLine",i);if(r==="singleLine"||this.canFitSingleLine(a,i,n.firstLinelength+1))return this.addComments(p.joinLines([a,n]," "),i)}let s=this.header.format("multiline",i);return this.addComments(p.joinLines([s,n]," "),i)}},ut=class extends L{constructor(i,r,n){super(i,r,n);this.node=i;this.expression=D(i.expression,i,n)}format(i=0,r="optimized"){if(r==="singleLine"||r==="optimized"){let n=this.expression.format("singleLine",i).suffixWith(";");if(r==="singleLine"||this.canFitSingleLine(n,i))return this.addComments(n,i)}return this.addComments(this.expression.format("multiline",i).suffixWith(";"),i)}},ct=class extends L{constructor(i,r,n){super(i,r,n);this.node=i;this.argument=D(i.argument,i,n)}format(i=0,r="optimized"){if(!this.argument)return this.addComments(p.fromString("return;"),i);if(r==="singleLine"||r==="optimized"){let o=this.argument.format("singleLine",i).surroundWith("return ",";");if(r==="singleLine"||this.canFitSingleLine(o,i))return this.addComments(o,i)}if(!ee(this.node.argument)&&!Y(this.node.argument)){let o=this.argument.format("multiline",i).surroundWith("return ",";");return this.addComments(o,i)}let n=this.getIndentation(i+1),s=this.argument.format("multiline",i+1).indentFirstLine(n),a=this.getIndentation(i);return this.addComments(p.appendLines(["return (",s,a+");"]),i)}},lt=class extends L{constructor(i,r,n){super(i,r,n);this.node=i;this.libname=D(i.specifiers[0].local,i,n),this.libsource=D(i.source,i,n)}format(i=0){return this.addComments(p.joinLines(["import"," ",this.libname.format("singleLine",i)," from ",this.libsource.format("singleLine")]).suffixWith(";"),i)}};var kn={quote:"auto"};function ji(e,t={}){try{let i=e.getText(),r=e.positionAt(i.length),n={start:{line:0,character:0},end:r},s={...kn,...t.formattingOptions??{}},a=Ln(i,s);return[{range:n,newText:a}]}catch(i){return console.error("Arcade Formatting Error:",i),[]}}function Ln(e,t){if(!e)return"";let i=q(t),r=be.fromString(e,i),n=r.toString(),s=te(n,{tolerant:!0,comments:!0}),a=_i(s,r);return s.loc.start=a.start,s.loc.end=a.end,new O(s,null,i).format().toString()}var Te=class{constructor(t,i=[]){this._apiDefinitions=t;this._profileVariables=i;this._isInBlock=!1;this._isInCallExpression=!1;this._identifierBeingAssigned=void 0;this._assignmentValidationMode="disabled";this._scriptScopeIdentifiers=new Map;this._diagnostics=[];this._undeclaredIdentifiersInFunctions=new Map}validateScript(t){if(!t)return{diagnostics:[],program:null};this._isInBlock=!1,this._identifierBeingAssigned=void 0,this._assignmentValidationMode="disabled",this._diagnostics=[],this._scriptScopeIdentifiers.clear(),this._undeclaredIdentifiersInFunctions.clear(),this._functionScopeIdentifiers=void 0;let i=null;try{i=te(t,{tolerant:!0}),this.handleErrors(i.errors),i.body.forEach(r=>this.validateStatement(r)),this.diagnoseIdentifiers(),this._undeclaredIdentifiersInFunctions.size>0&&this._undeclaredIdentifiersInFunctions.forEach(r=>{for(let n of r)this.logDiagnostic(n.node.loc,{code:"NotDefined",data:{identifier:n.node.name}})})}catch(r){this.handleException(r)}return{diagnostics:this._diagnostics,program:i}}disableRecordIdentifierAssignment(t,i){let r=this._assignmentValidationMode;this._assignmentValidationMode="disabled",t.call(this,i),this._assignmentValidationMode=r}inBlock(t,i){let r=this._isInBlock;this._isInBlock=!0,t.call(this,i),this._isInBlock=r}get _isInFunctionScope(){return!!this._functionScopeIdentifiers}inFunctionScope(t){this._functionScopeIdentifiers=new Map,t.call(this),this.diagnoseIdentifiers(),this._functionScopeIdentifiers=void 0}logDiagnostic(t,i){let r={severity:F.Error,...i,message:N(vi[i.code]??X[i.code],i.data),range:{start:{line:t.start.line-1,character:t.start.column},end:{line:t.end.line-1,character:t.end.column}}};this._diagnostics.push(r)}handleErrors(t){(t??[]).forEach(this.handleException,this)}handleException(t){if(wn(t)){let{range:i,code:r,data:n}=t;this.logDiagnostic(i,{code:r,data:n})}else this.logDiagnostic({start:{line:1,column:0},end:{line:1,column:0}},{code:"ExecutionError",data:{stack:t.stack??""}})}getIdentifierInfo(t){return this._functionScopeIdentifiers?.get(t)??this._scriptScopeIdentifiers.get(t)}setIdentiferInfo(t,i){if(this._functionScopeIdentifiers){this._functionScopeIdentifiers.set(t,i);return}(this._functionScopeIdentifiers??this._scriptScopeIdentifiers).set(t,i),this._functionScopeIdentifiers||this._undeclaredIdentifiersInFunctions.has(t)&&(this._undeclaredIdentifiersInFunctions.delete(t),i.used=!0)}isProfileVariable(t){return(this._profileVariables??[]).some(i=>i.name.toLowerCase()===t)}isApiConstant(t){return!!this._apiDefinitions?.constantDefinitions?.get(t)}isApiFunction(t){return!!this._apiDefinitions?.functionDefinitions?.get(t)}isApiItem(t){return this.isApiConstant(t)||this.isApiFunction(t)}validateStatement(t){if(t)switch(t.type){case d.BlockStatement:t.body.forEach(i=>this.validateStatement(i));return;case d.VariableDeclaration:t.declarations.forEach(i=>this.validateVariableDeclarator(i));return;case d.FunctionDeclaration:this.validateFunctionDeclaration(t);return;case d.ExportNamedDeclaration:this.validateExportDeclaration(t);return;case d.ImportDeclaration:this.validateImportDeclaration(t);return;case d.WhileStatement:this.validateWhileStatement(t);return;case d.ForStatement:this.validateForStatement(t);return;case d.ForInStatement:this.validateForInStatement(t);return;case d.IfStatement:this.validateIfStatement(t);return;case d.ReturnStatement:this.validateExpression(t.argument);return;case d.ExpressionStatement:this.validateExpression(t.expression);return;case d.BreakStatement:case d.ContinueStatement:case d.EmptyStatement:return}}validateVariableDeclarator(t){this.validateExpression(t.init),this.recordVariableIdentifier(t.id,{initialized:!!t.init})}validateFunctionDeclaration(t){this.recordFunctionIdentifier(t),this.inFunctionScope(()=>{t.params.forEach(i=>this.recordParamAsIdentifier(i)),J(t.body)&&this.logDiagnostic(t.body.loc,{code:"UnexpectedEmptyFunction",data:{identifier:t.id.name},severity:F.Warning}),this.validateStatement(t.body)})}validateExportDeclaration(t){this.validateStatement(t.declaration)}validateImportDeclaration(t){this.recordImportIdentifier(t)}validateForStatement(t){z(t.init)?this.inBlock(this.validateStatement,t.init):this.validateExpression(t.init),this.validateExpression(t.update),this.validateExpression(t.test),J(t.body)&&this.logDiagnostic(t.body.loc,{code:"EmptyBlockStatement",severity:F.Warning}),this.inBlock(this.validateStatement,t.body)}validateWhileStatement(t){this.validateExpression(t.test),J(t.body)&&this.logDiagnostic(t.body.loc,{code:"EmptyBlockStatement",severity:F.Warning}),this.inBlock(this.validateStatement,t.body)}validateForInStatement(t){S(t.left)?this.validateExpression(t.left):this.recordVariableIdentifier(t.left.declarations[0].id,{initialized:!0,inBlock:!0}),this.validateExpression(t.right),J(t.body)&&this.logDiagnostic(t.body.loc,{code:"EmptyBlockStatement",severity:F.Warning}),this.validateStatement(t.body)}validateIfStatement(t){this.validateExpression(t.test),J(t.consequent)&&this.logDiagnostic(t.consequent.loc,{code:"EmptyBlockStatement",severity:F.Warning}),t.alternate&&J(t.alternate)&&this.logDiagnostic(t.alternate.loc,{code:"EmptyBlockStatement",severity:F.Warning}),this.inBlock(this.validateStatement,t.consequent),this.inBlock(this.validateStatement,t.alternate)}validateExpression(t){if(t)switch(t.type){case d.AssignmentExpression:this.validateAssignmentExpression(t);return;case d.CallExpression:this.validateCallExpression(t);return;case d.Identifier:this.validateIdentifier(t);return;case d.Literal:this.validateLiteral(t);return;case d.ArrayExpression:t.elements.forEach(i=>this.validateExpression(i));return;case d.ObjectExpression:this.validateObjectExpression(t);return;case d.UnaryExpression:this.validateUnaryExpression(t);return;case d.UpdateExpression:this.validateUpdateExpression(t);return;case d.BinaryExpression:case d.LogicalExpression:this.validateBinaryAndLogicalExpression(t);return;case d.MemberExpression:this.validateMemberExpression(t);return;case d.TemplateLiteral:t.expressions.forEach(i=>this.validateExpression(i));return;default:return}}validateAssignmentExpression(t){let i=this._identifierBeingAssigned,r=this._assignmentValidationMode;S(t.left)&&(this._identifierBeingAssigned=t.left.name.toLowerCase(),this._assignmentValidationMode="left"),this.validateExpression(t.left),S(t.left)&&(this._assignmentValidationMode="right"),this.validateExpression(t.right),this._identifierBeingAssigned=i,this._assignmentValidationMode=r}validateCallExpression(t){let i=this._isInCallExpression;if(this._isInCallExpression=!0,this.validateExpression(t.callee),S(t.callee)){let r=t.callee.name.toLowerCase(),n=this.getIdentifierInfo(r),s=this._apiDefinitions?.functionDefinitions?.get(r);if(!n&&s){let a=Bn(s,t.arguments.length);a&&this.logDiagnostic(t.loc,a)}}t.arguments.forEach(r=>this.validateExpression(r)),this._isInCallExpression=i}validateIdentifier(t){let i=t.name.toLowerCase(),r=this.getIdentifierInfo(i);if(r){if(this._assignmentValidationMode==="left"&&this._identifierBeingAssigned===i){r.initialized=!0;return}if(this._assignmentValidationMode==="right"&&this._identifierBeingAssigned===i)return;r.used=!0;return}if(!(this.isProfileVariable(i)||this.isApiConstant(i))){if(this.isApiFunction(i)){if(this._isInCallExpression)return;this.logDiagnostic(t.loc,{code:"InvalidApiFunctionUsage",data:{identifier:t.name}});return}if(this._isInFunctionScope){let n=this._undeclaredIdentifiersInFunctions.get(i);n||(n=[],this._undeclaredIdentifiersInFunctions.set(i,n)),n.push({node:t,identifier:i});return}this.logDiagnostic(t.loc,{code:"NotDefined",data:{identifier:t.name}})}}validateLiteral(t){Nn(t.raw).forEach(i=>{let r=this.getIdentifierInfo(i.toLowerCase());r&&(r.used=!0)})}logProfileOrApiConflict(t){let i=t.name.toLowerCase(),r=this.isProfileVariable(i),n=this.isApiItem(i);!r&&!n||this.logDiagnostic(t.loc,{code:r?"ProfileVariablesConflict":"ApiConflict",severity:F.Warning,data:{identifier:t.name}})}logReservedKeywordsConflict(t){let i=t.name.toLowerCase();Si.includes(i)&&this.logDiagnostic(t.loc,{code:"ReservedKeyword",severity:F.Warning,data:{identifier:t.name}})}validateObjectExpression(t){t.properties.forEach(i=>{this.validateExpression(i.value)})}validateUnaryExpression(t){this.validateExpression(t.argument)}validateUpdateExpression(t){this.validateExpression(t.argument)}validateBinaryAndLogicalExpression(t){this.validateExpression(t.left),this.validateExpression(t.right)}validateMemberExpression(t){let i=this.flattenMemberExpressionAndValidate(t),r=i[0].object;this.disableRecordIdentifierAssignment(this.validateExpression,r),S(r)&&(this.getIdentifierInfo(r.name.toLowerCase())||this.validateMemberExpressionWithProfile(i)||this.validateConstantMemberExpression(i))}flattenMemberExpressionAndValidate(t){switch(t.type){case d.MemberExpression:return(!S(t.property)||t.computed)&&this.validateExpression(t.property),[...this.flattenMemberExpressionAndValidate(t.object),t];default:return[]}}extractAndValidatePropertyName(t){switch(t.type){case"Identifier":return t.name.toLowerCase();case"Literal":return typeof t.value!="string"?(this.logDiagnostic(t.loc,{code:"UnexpectedPropertyIdentifier"}),null):t.value.toLowerCase();default:return this.logDiagnostic(t.loc,{code:"UnexpectedPropertyIdentifier"}),null}}validateConstantMemberExpression(t){let i=t[0];if(!S(i.object))return!1;let r=i.object.name.toLowerCase(),n=this._apiDefinitions?.constantDefinitions?.get(r);if(!n)return!1;if(n.type!=="namespace")return this.logDiagnostic(i.property.loc,{code:"NotADictionary",data:{identifier:r}}),!0;let s=this.extractAndValidatePropertyName(i.property);if(!s)return!0;if(!n.members.some(a=>a.key===s)){let a=n.members.reduce((o,c)=>`${o}${o?" | ":""}${c.completion.label.split(".").pop()}`,"");this.logDiagnostic(i.property.loc,{code:"InvalidConstantIdentifier",data:{list:a}})}return t.length>1&&this.logDiagnostic(t[1].property.loc,{code:"UnexpectedPropertyIdentifier"}),!0}validateMemberExpressionWithProfile(t){let i=t[0];if(i.object.type!==d.Identifier)return!1;let r=i.object.name.toLowerCase(),n=this._profileVariables?.find(a=>a.key===r);if(!n)return!1;if(Ne(n))return this.logDiagnostic(i.object.loc,{code:"NotADictionary",data:{identifier:n.name}}),!0;if(this._identifierBeingAssigned===r)return this.logDiagnostic(i.loc,{code:"ProfileVariablesAreImmutable"}),!0;let s=n;for(let a=0;a<t.length;a++){if(t[a].computed)return!0;if(Ne(s))return this.logDiagnostic(t[a-1]?.property.loc??t[a].object.loc,{code:"NotADictionary",data:{identifier:s.name}}),!0;let o=this.extractAndValidatePropertyName(t[a].property);if(!o)return!0;if(s.properties.length===0)return this.logDiagnostic(t[a].property.loc,{code:"UnknownPropertyIdentifier",data:{identifier:o},severity:F.Warning}),!0;let c=s.properties.find(l=>l.name.toLowerCase()===o);if(!c){let l=s.properties.reduce((h,g)=>`${h}${h?" | ":""}${g.name.split(".").pop()}`,"");return this.logDiagnostic(t[a].property.loc,{code:"InvalidPropertyIdentifier",data:{list:l}}),!0}s=c}return!0}recordVariableIdentifier(t,i){this.logReservedKeywordsConflict(t),this.logProfileOrApiConflict(t);let r=t.name.toLowerCase(),n=this.getIdentifierInfo(r),s=n&&this._isInFunctionScope&&n.scope==="function",a=n&&!this._isInFunctionScope&&n.scope==="script";(s||a)&&this.logDiagnostic(t.loc,{code:"AlreadyDefined",data:{identifier:t.name},severity:F.Warning});let o=i.inBlock??this._isInBlock,{initialized:c}=i;if(!n||this._isInFunctionScope&&n.scope!=="function"){let l=this._isInFunctionScope?"function":o?"block":"script";n={node:t,used:!1,initialized:c,scope:l}}else n.node=t,n.used=!1,n.initialized=c;return n.scope==="block"&&!o&&(n.scope="script",this.logDiagnostic(t.loc,{code:"AlreadyDefined",data:{identifier:t.name},severity:F.Warning})),this.setIdentiferInfo(r,n),!1}recordImportIdentifier(t){let i=t.specifiers[0].local;this.logProfileOrApiConflict(i);let r=i.name.toLowerCase(),n=this.getIdentifierInfo(r);n?.scope&&this.logDiagnostic(t.specifiers[0].local.loc,{code:"AlreadyDefined",data:{identifier:t.specifiers[0].local.name},severity:F.Warning}),n={node:t.specifiers[0].local,used:!1,...n,scope:"script",initialized:!0},this.setIdentiferInfo(r,n)}recordFunctionIdentifier(t){this.logProfileOrApiConflict(t.id);let i=t.id.name.toLowerCase(),r=this.getIdentifierInfo(i);r?.scope&&this.logDiagnostic(t.id.loc,{code:"AlreadyDefined",data:{identifier:t.id.name},severity:F.Warning}),r={node:t.id,used:!1,...r,scope:"script",initialized:!0},this.setIdentiferInfo(i,r)}recordParamAsIdentifier(t){return this.recordVariableIdentifier(t,{initialized:!0})}diagnoseIdentifiers(){(this._functionScopeIdentifiers??this._scriptScopeIdentifiers).forEach(t=>{t.node&&(t.used?t.initialized||this.logDiagnostic(t.node.loc,{code:"DefinedNeverAssigned",data:{identifier:t.node.name},severity:F.Warning}):this.logDiagnostic(t.node.loc,{code:t.initialized?"AssignedNeverUsed":"DefinedNeverUsed",data:{identifier:t.node.name},severity:F.Warning}))})}};function wn(e){return e?.name==="ParsingError"}function J(e){return Q(e)||b(e)&&!e?.body.length}function Bn(e,t){if(!e||t===void 0||t===null||t<0)return null;let{min:i,max:r}=e.overloads.reduce((n,s)=>{let{min:a,max:o}=s.parametersInfo;return n.min>=0&&(n.min=Math.min(a,n.min)),n.max>=0&&(n.max=o<0?o:Math.max(o,n.max)),n},{min:1/0,max:0});return t<i?i>0?{code:"NotEnoughArguments",data:{min:i}}:{code:"NoArgumentExpected"}:r>=0&&t>r?{code:"TooManyArguments",data:{max:r}}:null}var Tn=new RegExp(/\B@\w+/g);function Nn(e){return Array.from((e??"").matchAll(Tn),t=>t[0].slice(1))}var Ri=class{constructor(){this.languageOptions={}}configure(t={}){this.languageOptions=t??{},this.apiService=new Ae(this.languageOptions)}async doValidation(t,i){if(!this.apiService)return[];let r=await this.apiService.getApiDatabase(i),{profile:{variables:n=[]}={}}=i,{diagnostics:s}=new Te(r,n).validateScript(t.getText());return s}async doComplete(t,i,r){if(!this.apiService)return{isIncomplete:!1,items:[]};let n=await this.apiService.getApiDatabase(r);return await Ui(t,i,n,r)??{isIncomplete:!1,items:[]}}doFormat(t,i){return ji(t,i)}async getApiLibrary(t){return this.apiService?(await this.apiService.getApiDatabase(t)).categories??[]:[]}};export{Pi as ArcadeKeywords,Ri as ArcadeLanguageService,bi as ArcadeLiterals,Si as ArcadeReservedKeywords,vi as DiagnosticMessages,F as DiagnosticSeverity,yi as ValidationDiagnosticCodes,pt as isDictionaryVariable,Ne as isValueVariable};
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@arcgis/arcade-languageservice",
3
+ "description": "Arcade Language Service",
4
+ "version": "1.22.0-next.10",
5
+ "type": "module",
6
+ "module": "dist/esm/index.js",
7
+ "main": "dist/esm/index.js",
8
+ "types": "dist/esm/index.d.ts",
9
+ "files": [
10
+ "dist/"
11
+ ],
12
+ "publishConfig": {
13
+ "registry": "https://registry.npmjs.org/",
14
+ "access": "public"
15
+ },
16
+ "license": "SEE LICENSE IN LICENSE.md",
17
+ "scripts": {
18
+ "build": "yarn pre && yarn build:esm --minify",
19
+ "build:dev": "yarn pre && yarn build:esm --sourcemap",
20
+ "build:esm": "esbuild ./src/index.ts --bundle --format=esm --target=es2020 --outdir=./dist/esm",
21
+ "pre": "rimraf ./dist ./build && awc-build-t9n-types && run-p \"pre:**\"",
22
+ "pre:copy-sdk-files": "yarn node ./scripts/copy-sdk-files",
23
+ "pre:copy-assets": "yarn node ./scripts/copy-assets",
24
+ "pre:build-types": "tsc --emitDeclarationOnly --outDir ./.build && rollup -c",
25
+ "clean": "rimraf ./node_modules ./turbo ./dist ./build",
26
+ "lint": "eslint .",
27
+ "test": "jest",
28
+ "prettier": "prettier . --write"
29
+ },
30
+ "dependencies": {
31
+ "vscode-languageserver-textdocument": "^1.0.9",
32
+ "vscode-languageserver-types": "^3.17.3"
33
+ },
34
+ "devDependencies": {
35
+ "@arcgis/arcade-parser": "1.20.5",
36
+ "@arcgis/arcade-sdk": ">=1.24.0-next",
37
+ "@arcgis/arcade-tests": "^1.20.0",
38
+ "@arcgis/components-plugins": "1.0.0-beta.9",
39
+ "@arcgis/eslint-config": "1.0.0",
40
+ "@arcgis/typescript-config": "1.0.0",
41
+ "@types/fs-extra": "^11.0.1",
42
+ "@types/jest": "^29.5.0",
43
+ "@types/node": "^20.2.5",
44
+ "esbuild": "^0.19.2",
45
+ "eslint": "^8.45.0",
46
+ "fs-extra": "^11.1.1",
47
+ "jest": "^29.5.0",
48
+ "jest-esm-transformer-2": "^1.0.0",
49
+ "jest-html-reporter": "^3.10.1",
50
+ "jest-silent-reporter": "^0.5.0",
51
+ "npm-run-all": "^4.1.5",
52
+ "prettier": "^3.0.0",
53
+ "resolve-pkg": "^2.0.0",
54
+ "rimraf": "^5.0.0",
55
+ "rollup": "^3.25.0",
56
+ "rollup-plugin-dts": "^6.0.0",
57
+ "ts-jest": "^29.1.1",
58
+ "ts-node": "^10.9.1",
59
+ "typescript": "4.9.5"
60
+ },
61
+ "gitHead": "06a322ae10e07eb99685c4ad7cb352e4c64d2541"
62
+ }