@shikijs/langs-precompiled 3.13.0 → 3.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { EmulatedRegExp } from 'oniguruma-to-es'
2
2
 
3
- const lang = Object.freeze({displayName:"JavaScript",name:"javascript",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{"access-modifier":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(abstract|declare|override|public|protected|private|readonly|static)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"storage.modifier.js"},"after-operator-block-as-object-literal":{begin:/(?<!\+\+|--)(?<=[\!\(\+\,\:\=\>\?\[]|^await|[^\$\._\p{Alpha}\p{Nd}]await|^return|[^\$\._\p{Alpha}\p{Nd}]return|^yield|[^\$\._\p{Alpha}\p{Nd}]yield|^throw|[^\$\._\p{Alpha}\p{Nd}]throw|^in|[^\$\._\p{Alpha}\p{Nd}]in|^of|[^\$\._\p{Alpha}\p{Nd}]of|^typeof|[^\$\._\p{Alpha}\p{Nd}]typeof|&&|\|\||\*)\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},name:"meta.objectliteral.js",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:/(?:(\.\.\.)\p{space}*)?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.array.js"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.js"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:/(?:(\.\.\.)\p{space}*)?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.array.js"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.js"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:/\p{space}*(\[)/dgv,beginCaptures:{"1":{name:"meta.brace.square.js"}},end:/\]/dgv,endCaptures:{"0":{name:"meta.brace.square.js"}},name:"meta.array.literal.js",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{"1":{name:"storage.modifier.async.js"},"2":{name:"variable.parameter.js"}},match:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))\b(async)\p{space}+)?([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?==>)/dgv,name:"meta.arrow.js"},{begin:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))\b(async))?((?<![\]\!\)\}])\p{space}*(?=((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)?\(\p{space}*(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*((\)\p{space}*:)|((\.\.\.\p{space}*)?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*:)))|(<\p{space}*[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}+extends\p{space}*[^\=\>])|((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)?\(\p{space}*(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*(([\$_\p{Alpha}]|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|(\.\.\.\p{space}*[\$_\p{Alpha}]))([^"'\(\)\`]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))*)?\)(\p{space}*:\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+)?\p{space}*=>)))/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:/(?==>|\{|^(\p{space}*(export|function|class|interface|let|var|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|const|import|enum|namespace|module|type|abstract|declare)\p{space}+))/dgv,name:"meta.arrow.js",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{begin:/=>/dgv,beginCaptures:{"0":{name:"storage.type.function.arrow.js"}},end:/((?<=[\}\P{space}])(?<!=>)|((?!\{)(?=\P{space})))(?!\/[\*\/])/dgv,name:"meta.arrow.js",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"arrow-return-type":{begin:/(?<=\))\p{space}*(:)/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:/(?==>|\{|^(\p{space}*(export|function|class|interface|let|var|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|const|import|enum|namespace|module|type|abstract|declare)\p{space}+))/dgv,name:"meta.return.type.arrow.js",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:/(?<=:)(?=\p{space}*\{)/dgv,end:/(?<=\})/dgv,patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"async-modifier":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(async)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"storage.modifier.async.js"},"binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern"},{include:"#array-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"}]},"binding-element-const":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern-const"},{include:"#array-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"}]},"boolean-literal":{patterns:[{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))true(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"constant.language.boolean.true.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))false(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"constant.language.boolean.false.js"}]},brackets:{patterns:[{begin:/\{/dgv,end:/\}|(?=\*\/)/dgv,patterns:[{include:"#brackets"}]},{begin:/\[/dgv,end:/\]|(?=\*\/)/dgv,patterns:[{include:"#brackets"}]}]},cast:{patterns:[{include:"#jsx"}]},"class-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(?:(abstract)\p{space}+)?\b(class)\b(?=\p{space}+|\/[\*\/])/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.js"},"4":{name:"storage.type.class.js"}},end:/(?<=\})/dgv,name:"meta.class.js",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{"0":{name:"entity.name.type.class.js"}},match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*/dgv},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"class-expression":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(abstract)\p{space}+)?(class)\b(?=\p{space}+|[\<\{]|\/[\*\/])/dgv,beginCaptures:{"1":{name:"storage.modifier.js"},"2":{name:"storage.type.class.js"}},end:/(?<=\})/dgv,name:"meta.class.js",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-or-interface-body":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},patterns:[{include:"#comment"},{include:"#decorator"},{begin:/(?<=:)\p{space}*/dgv,end:/(?=[\-\]\)\+\,\:\;\}\p{space}]|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,patterns:[{include:"#expression"}]},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#field-declaration"},{include:"#string"},{include:"#type-annotation"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#property-accessor"},{include:"#async-modifier"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"class-or-interface-heritage":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))\b(extends|implements)\b(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"1":{name:"storage.modifier.js"}},end:/(?=\{)/dgv,patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{include:"#type-parameters"},{include:"#expressionWithoutIdentifiers"},{captures:{"1":{name:"entity.name.type.module.js"},"2":{name:"punctuation.accessor.js"},"3":{name:"punctuation.accessor.optional.js"}},match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))(?=\p{space}*[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*(\p{space}*\??\.\p{space}*[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)*\p{space}*)/dgv},{captures:{"1":{name:"entity.other.inherited-class.js"}},match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv},{include:"#expressionPunctuations"}]},comment:{patterns:[{begin:/\/\*\*(?!\/)/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.js"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.js"}},name:"comment.block.documentation.js",patterns:[{include:"#docblock"}]},{begin:/(\/\*)(?:\p{space}*((@)internal)(?=\p{space}|(\*\/)))?/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.js"},"2":{name:"storage.type.internaldeclaration.js"},"3":{name:"punctuation.decorator.internaldeclaration.js"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.js"}},name:"comment.block.js"},{begin:/(^[\t ]+)?((\/\/)(?:\p{space}*((@)internal)(?=\p{space}|(?=\n?$)))?)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.js"},"2":{name:"comment.line.double-slash.js"},"3":{name:"punctuation.definition.comment.js"},"4":{name:"storage.type.internaldeclaration.js"},"5":{name:"punctuation.decorator.internaldeclaration.js"}},contentName:"comment.line.double-slash.js",end:/(?=(?=\n?$))/dgv}]},"control-statement":{patterns:[{include:"#switch-statement"},{include:"#for-loop"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(catch|finally|throw|try)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.control.trycatch.js"},{captures:{"1":{name:"keyword.control.loop.js"},"2":{name:"entity.name.label.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(break|continue|goto)\p{space}+([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(break|continue|do|goto|while)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.control.loop.js"},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(return)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"0":{name:"keyword.control.flow.js"}},end:/(?=[\;\}]|(?=\n?$)|;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,patterns:[{include:"#expression"}]},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(case|default|switch)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.control.switch.js"},{include:"#if-statement"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(else|if)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.control.conditional.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(with)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.control.with.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(package)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.control.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(debugger)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.other.debugger.js"}]},"decl-block":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},name:"meta.block.js",patterns:[{include:"#statements"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(declare|export)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"storage.modifier.js"}]},decorator:{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))@/dgv,beginCaptures:{"0":{name:"punctuation.decorator.js"}},end:/(?=\p{space})/dgv,name:"meta.decorator.js",patterns:[{include:"#expression"}]},"destructuring-const":{patterns:[{begin:/(?<![\:\=]|^of|[^\$\._\p{Alpha}\p{Nd}]of|^in|[^\$\._\p{Alpha}\p{Nd}]in)\p{space}*(?=\{)/dgv,end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+))/dgv,name:"meta.object-binding-pattern-variable.js",patterns:[{include:"#object-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]},{begin:/(?<![\:\=]|^of|[^\$\._\p{Alpha}\p{Nd}]of|^in|[^\$\._\p{Alpha}\p{Nd}]in)\p{space}*(?=\[)/dgv,end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+))/dgv,name:"meta.array-binding-pattern-variable.js",patterns:[{include:"#array-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-parameter":{patterns:[{begin:/(?<![\:\=])\p{space}*(?:(\.\.\.)\p{space}*)?(\{)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.object.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.js"}},name:"meta.parameter.object-binding-pattern.js",patterns:[{include:"#parameter-object-binding-element"}]},{begin:/(?<![\:\=])\p{space}*(?:(\.\.\.)\p{space}*)?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.array.js"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.js"}},name:"meta.paramter.array-binding-pattern.js",patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]}]},"destructuring-parameter-rest":{captures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"variable.parameter.js"}},match:/(?:(\.\.\.)\p{space}*)?([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv},"destructuring-variable":{patterns:[{begin:/(?<![\:\=]|^of|[^\$\._\p{Alpha}\p{Nd}]of|^in|[^\$\._\p{Alpha}\p{Nd}]in)\p{space}*(?=\{)/dgv,end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+))/dgv,name:"meta.object-binding-pattern-variable.js",patterns:[{include:"#object-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]},{begin:/(?<![\:\=]|^of|[^\$\._\p{Alpha}\p{Nd}]of|^in|[^\$\._\p{Alpha}\p{Nd}]in)\p{space}*(?=\[)/dgv,end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+))/dgv,name:"meta.array-binding-pattern-variable.js",patterns:[{include:"#array-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-variable-rest":{captures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"meta.definition.variable.js variable.other.readwrite.js"}},match:/(?:(\.\.\.)\p{space}*)?([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv},"destructuring-variable-rest-const":{captures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"meta.definition.variable.js variable.other.constant.js"}},match:/(?:(\.\.\.)\p{space}*)?([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv},directives:{begin:/^(\/\/\/)\p{space}*(?=<(reference|amd-dependency|amd-module)(\p{space}+(path|types|no-default-lib|lib|name|resolution-mode)\p{space}*=\p{space}*(('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)))+\p{space}*\/>\p{space}*(?=\n?$))/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.js"}},end:/(?=(?=\n?$))/dgv,name:"comment.line.triple-slash.directive.js",patterns:[{begin:/(<)(reference|amd-dependency|amd-module)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.directive.js"},"2":{name:"entity.name.tag.directive.js"}},end:/\/>/dgv,endCaptures:{"0":{name:"punctuation.definition.tag.directive.js"}},name:"meta.tag.js",patterns:[{match:/path|types|no-default-lib|lib|name|resolution-mode/dgv,name:"entity.other.attribute-name.directive.js"},{match:/=/dgv,name:"keyword.operator.assignment.js"},{include:"#string"}]}]},docblock:{patterns:[{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.access-type.jsdoc"}},match:/((@)a(?:ccess|pi))\p{space}+(p(?:rivate|rotected|ublic))\b/dgv},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"},"4":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"5":{name:"constant.other.email.link.underline.jsdoc"},"6":{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:/((@)author)\p{space}+([^\*\/\<\>\@\p{space}](?:[^\*\/\<\>\@]|\*[^\/])*)(?:\p{space}*(<)([^\>\p{space}]+)(>))?/dgv},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"},"4":{name:"keyword.operator.control.jsdoc"},"5":{name:"entity.name.type.instance.jsdoc"}},match:/((@)borrows)\p{space}+((?:[^\*\/\@\p{space}]|\*[^\/])+)\p{space}+(as)\p{space}+((?:[^\*\/\@\p{space}]|\*[^\/])+)/dgv},{begin:/((@)example)\p{space}+/dgv,beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:/(?=@|\*\/)/dgv,name:"meta.example.jsdoc",patterns:[{match:/^\p{space}\*\p{space}+/dgv},{begin:/(<)caption(>)/dgvy,beginCaptures:{"0":{name:"entity.name.tag.inline.jsdoc"},"1":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.angle.end.jsdoc"}},contentName:"constant.other.description.jsdoc",end:/(<\/)caption(>)|(?=\*\/)/dgv,endCaptures:{"0":{name:"entity.name.tag.inline.jsdoc"},"1":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{"0":{name:"source.embedded.js"}},match:/[^\*\@\p{space}](?:[^\*]|\*[^\/])*/dgv}]},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.symbol-type.jsdoc"}},match:/((@)kind)\p{space}+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\b/dgv},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.link.underline.jsdoc"},"4":{name:"entity.name.type.instance.jsdoc"}},match:/((@)see)\p{space}+(?:((?=https?:\/\/)(?:[^\*\p{space}]|\*[^\/])+)|((?!https?:\/\/|(?:\[[^\]\[]*\])?\{@(?:link|linkcode|linkplain|tutorial)\b)(?:[^\*\/\@\p{space}]|\*[^\/])+))/dgv},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}},match:/((@)template)\p{space}+([\$A-Z_a-z][\]\$\.\[\p{L}\p{M}\p{N}\p{Pc}]*(?:\p{space}*,\p{space}*[\$A-Z_a-z][\]\$\.\[\p{L}\p{M}\p{N}\p{Pc}]*)*)/dgv},{begin:/((@)template)\p{space}+(?=\{)/dgv,beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:/(?=\p{space}|\*\/|[^\]\$A-\[_a-\{\}])/dgv,patterns:[{include:"#jsdoctype"},{match:/([\$A-Z_a-z][\]\$\.\[\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,name:"variable.other.jsdoc"}]},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}},match:/((@)(?:arg|argument|const|constant|member|namespace|param|var))\p{space}+([\$A-Z_a-z][\]\$\.\[\p{L}\p{M}\p{N}\p{Pc}]*)/dgv},{begin:/((@)typedef)\p{space}+(?=\{)/dgv,beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:/(?=\p{space}|\*\/|[^\]\$A-\[_a-\{\}])/dgv,patterns:[{include:"#jsdoctype"},{match:/(?:[^\*\/\@\p{space}]|\*[^\/])+/dgv,name:"entity.name.type.instance.jsdoc"}]},{begin:/((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\p{space}+(?=\{)/dgv,beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:/(?=\p{space}|\*\/|[^\]\$A-\[_a-\{\}])/dgv,patterns:[{include:"#jsdoctype"},{match:/([\$A-Z_a-z][\]\$\.\[\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,name:"variable.other.jsdoc"},{captures:{"1":{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},"2":{name:"keyword.operator.assignment.jsdoc"},"3":{name:"source.embedded.js"},"4":{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},"5":{name:"invalid.illegal.syntax.jsdoc"}},match:/*@__PURE__*/ new EmulatedRegExp("(\\[)\\p{space}*[\\$\\p{L}\\p{M}\\p{N}\\p{Pc}]+(?:(?:\\[\\])?\\.[\\$\\p{L}\\p{M}\\p{N}\\p{Pc}]+)*(?:\\p{space}*(=)\\p{space}*((?:(?=(\"(?:\\*(?!/)|\\\\(?!\")|[^\\*\\\\])*?\"|'(?:\\*(?!/)|\\\\(?!')|[^\\*\\\\])*?'|\\[(?:\\*(?!/)|[^\\*])*?\\]|(?:\\*(?!/)|\\p{space}(?!\\p{space}*\\])|\\[[^\\n]*?(?:\\]|(?=\\*/))|[^\\]\\*\\[\\p{space}])*))\\4)*))?\\p{space}*(?:(\\])((?:[^\\*\\p{space}]|\\*[^\\/\\p{space}])+)?|(?=\\*/))","dgv",{"hiddenCaptures":[4]}),name:"variable.other.jsdoc"}]},{begin:/((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\p{space}+(?=\{)/dgv,beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:/(?=\p{space}|\*\/|[^\]\$A-\[_a-\{\}])/dgv,patterns:[{include:"#jsdoctype"}]},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"}},match:/((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\p{space}+((?:[^\*\@\{\}\p{space}]|\*[^\/])+)/dgv},{begin:/((@)(?:default(?:value)?|license|version))\p{space}+((["']))/dgv,beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"},"4":{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:/(\3)|(?=(?=\n?$)|\*\/)()()/dgv,endCaptures:{"0":{name:"variable.other.jsdoc"},"1":{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}},match:/((@)(?:default(?:value)?|license|tutorial|variation|version))\p{space}+([^\*\p{space}]+)/dgv},{captures:{"1":{name:"punctuation.definition.block.tag.jsdoc"}},match:/(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\b/dgv,name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},match:/((@)[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(?=\p{space}+)/dgv}]},"enum-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?(?:\b(const)\p{space}+)?\b(enum)\p{space}+([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.js"},"4":{name:"storage.type.enum.js"},"5":{name:"entity.name.type.enum.js"}},end:/(?<=\})/dgv,name:"meta.enum.declaration.js",patterns:[{include:"#comment"},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},patterns:[{include:"#comment"},{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,beginCaptures:{"0":{name:"variable.other.enummember.js"}},end:/(?=[\,\}]|(?=\n?$))/dgv,patterns:[{include:"#comment"},{include:"#variable-initializer"}]},{begin:/(?=(('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\])))/dgv,end:/(?=[\,\}]|(?=\n?$))/dgv,patterns:[{include:"#string"},{include:"#array-literal"},{include:"#comment"},{include:"#variable-initializer"}]},{include:"#punctuation-comma"}]}]},"export-declaration":{patterns:[{captures:{"1":{name:"keyword.control.export.js"},"2":{name:"keyword.control.as.js"},"3":{name:"storage.type.namespace.js"},"4":{name:"entity.name.type.module.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(export)\p{space}+(as)\p{space}+(namespace)\p{space}+([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(export)(?:\p{space}+(type))?(?:\p{space}*(=)|\p{space}+(default)(?=\p{space}+))/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"keyword.control.type.js"},"3":{name:"keyword.operator.assignment.js"},"4":{name:"keyword.control.default.js"}},end:/(?=(?=\n?$)|;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,name:"meta.export.default.js",patterns:[{include:"#interface-declaration"},{include:"#expression"}]},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(export)(?:\p{space}+(type))?\b(?!(\$)|(\p{space}*:))((?=\p{space}*[\*\{])|((?=\p{space}*[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*([\,\p{space}]))(?!\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)))/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"keyword.control.type.js"}},end:/(?=(?=\n?$)|;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,name:"meta.export.js",patterns:[{include:"#import-export-declaration"}]}]},expression:{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{captures:{"1":{name:"storage.modifier.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(override|public|protected|private|readonly)\p{space}+(?=(override|public|protected|private|readonly)\p{space}+)/dgv},{captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"entity.name.function.js variable.language.this.js"},"4":{name:"entity.name.function.js"},"5":{name:"keyword.operator.optional.js"}},match:/*@__PURE__*/ new EmulatedRegExp("(?:(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\p{space}+)?(?:(\\.\\.\\.)\\p{space}*)?(?<![\\:\\=])(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*))(?![\\$_\\p{Alpha}\\p{Nd}])(?:(?=\\.\\.\\.)|(?!\\.))\\p{space}*(\\??)(?=\\p{space}*(=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>)))))|(:\\p{space}*((<)|(\\(\\p{space}*((\\))|(\\.\\.\\.)|([\\$_\\p{Alpha}\\p{Nd}]+\\p{space}*(([\\,\\:\\=\\?])|(\\)\\p{space}*=>)))))))|(:\\p{space}*(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![\\$_\\p{Alpha}\\p{Nd}])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\p{space}*((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))))))|(:\\p{space}*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^\\<\\>]*>)|[^\\(\\)\\,\\<\\=\\>])+=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>))))))","dgv",{"lazyCompile":true})},{captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"variable.parameter.js variable.language.this.js"},"4":{name:"variable.parameter.js"},"5":{name:"keyword.operator.optional.js"}},match:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(override|public|private|protected|readonly)\p{space}+)?(?:(\.\.\.)\p{space}*)?(?<![\:\=])(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(this)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))\p{space}*(\??)(?=\p{space}*[\,\:]|(?=\n?$))/dgv},{include:"#type-annotation"},{include:"#variable-initializer"},{match:/,/dgv,name:"punctuation.separator.parameter.js"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-operators":{patterns:[{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(await)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.control.flow.js"},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(yield)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))(?=\p{space}*\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*\*)/dgv,beginCaptures:{"1":{name:"keyword.control.flow.js"}},end:/\*/dgv,endCaptures:{"0":{name:"keyword.generator.asterisk.js"}},patterns:[{include:"#comment"}]},{captures:{"1":{name:"keyword.control.flow.js"},"2":{name:"keyword.generator.asterisk.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(yield)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))(?:\p{space}*(\*))?/dgv},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))delete(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.operator.expression.delete.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))in(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))(?!\()/dgv,name:"keyword.operator.expression.in.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))of(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))(?!\()/dgv,name:"keyword.operator.expression.of.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))instanceof(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.operator.expression.instanceof.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))new(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.operator.new.js"},{include:"#typeof-operator"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))void(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.operator.expression.void.js"},{captures:{"1":{name:"keyword.control.as.js"},"2":{name:"storage.modifier.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(as)\p{space}+(const)(?=\p{space}*((?=\n?$)|[\]\)\,\:\;\}]))/dgv},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(as)|(satisfies))\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.control.as.js"},"2":{name:"keyword.control.satisfies.js"}},end:/(?=^|[\-\]\)\+\,\:\;\>\?\}]|\|\||&&|!==|(?=\n?$)|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(as|satisfies)\p{space}+)|(\p{space}+<))/dgv,patterns:[{include:"#type"}]},{match:/\.\.\./dgv,name:"keyword.operator.spread.js"},{match:/(?:\*|(?<!\()\/|[\-\%\+])=/dgv,name:"keyword.operator.assignment.compound.js"},{match:/(?:[\&\^]|<<|>>>??|\|)=/dgv,name:"keyword.operator.assignment.compound.bitwise.js"},{match:/<<|>>>?/dgv,name:"keyword.operator.bitwise.shift.js"},{match:/[\!\=]==?/dgv,name:"keyword.operator.comparison.js"},{match:/<=|>=|<>|[\<\>]/dgv,name:"keyword.operator.relational.js"},{captures:{"1":{name:"keyword.operator.logical.js"},"2":{name:"keyword.operator.assignment.compound.js"},"3":{name:"keyword.operator.arithmetic.js"}},match:/(?<=[\$_\p{Alpha}\p{Nd}])(!)\p{space}*(?:(\/=)|(\/)(?![\*\/]))/dgv},{match:/!|&&|\|\||\?\?/dgv,name:"keyword.operator.logical.js"},{match:/[\&\^\|\~]/dgv,name:"keyword.operator.bitwise.js"},{match:/=/dgv,name:"keyword.operator.assignment.js"},{match:/--/dgv,name:"keyword.operator.decrement.js"},{match:/\+\+/dgv,name:"keyword.operator.increment.js"},{match:/[\-\%\*\+\/]/dgv,name:"keyword.operator.arithmetic.js"},{begin:/(?<=[\]\$\)_\p{Alpha}\p{Nd}])\p{space}*(?=(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)+(?:(\/=)|(\/)(?![\*\/])))/dgv,end:/(\/=)|(\/)(?!\*([^\*]|(\*[^\/]))*\*\/)/dgv,endCaptures:{"1":{name:"keyword.operator.assignment.compound.js"},"2":{name:"keyword.operator.arithmetic.js"}},patterns:[{include:"#comment"}]},{captures:{"1":{name:"keyword.operator.assignment.compound.js"},"2":{name:"keyword.operator.arithmetic.js"}},match:/(?<=[\]\$\)_\p{Alpha}\p{Nd}])\p{space}*(?:(\/=)|(\/)(?![\*\/]))/dgv}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#jsx"},{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:/(?<!\()(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(readonly)\p{space}+)?(?=\p{space}*(\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(?:(?:(\?)|(!))\p{space}*)?([\,\:\;\=\}]|(?=\n?$)))/dgv,beginCaptures:{"1":{name:"storage.modifier.js"}},end:/(?=[\,\;\}]|(?=\n?$)|^((?!\p{space}*(\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(?:(?:(\?)|(!))\p{space}*)?([\,\:\;\=]|(?=\n?$)))))|(?<=\})/dgv,name:"meta.field.declaration.js",patterns:[{include:"#variable-initializer"},{include:"#type-annotation"},{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{include:"#comment"},{captures:{"1":{name:"meta.definition.property.js entity.name.function.js"},"2":{name:"keyword.operator.optional.js"},"3":{name:"keyword.operator.definiteassignment.js"}},match:/*@__PURE__*/ new EmulatedRegExp("(#?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*)(?:(\\?)|(!))?(?=\\p{space}*\\p{space}*(=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>)))))|(:\\p{space}*((<)|(\\(\\p{space}*((\\))|(\\.\\.\\.)|([\\$_\\p{Alpha}\\p{Nd}]+\\p{space}*(([\\,\\:\\=\\?])|(\\)\\p{space}*=>)))))))|(:\\p{space}*(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![\\$_\\p{Alpha}\\p{Nd}])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\p{space}*((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))))))|(:\\p{space}*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^\\<\\>]*>)|[^\\(\\)\\,\\<\\=\\>])+=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>))))))","dgv",{"lazyCompile":true})},{match:/#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*/dgv,name:"meta.definition.property.js variable.object.property.js"},{match:/\?/dgv,name:"keyword.operator.optional.js"},{match:/!/dgv,name:"keyword.operator.definiteassignment.js"}]},"for-loop":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))for(?=((\p{space}+|(\p{space}*\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*))await)?\p{space}*(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)?(\())/dgv,beginCaptures:{"0":{name:"keyword.control.loop.js"}},end:/(?<=\))/dgv,patterns:[{include:"#comment"},{match:/await/dgv,name:"keyword.control.loop.js"},{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#var-expr"},{include:"#expression"},{include:"#punctuation-semicolon"}]}]},"function-body":{patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#return-type"},{include:"#type-function-return-type"},{include:"#decl-block"},{match:/\*/dgv,name:"keyword.generator.asterisk.js"}]},"function-call":{patterns:[{begin:/(?=(((([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(\p{space}*\??\.\p{space}*(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))*)|(\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))|(?<=\)))\p{space}*(?:(\?\.\p{space}*)|(!))?((<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))(([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\p{space}*)?\())/dgv,end:/(?<=\))(?!(((([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(\p{space}*\??\.\p{space}*(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))*)|(\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))|(?<=\)))\p{space}*(?:(\?\.\p{space}*)|(!))?((<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))(([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\p{space}*)?\())/dgv,patterns:[{begin:/(?=(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(\p{space}*\??\.\p{space}*(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))*)|(\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))/dgv,end:/(?=\p{space}*(?:(\?\.\p{space}*)|(!))?((<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))(([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\p{space}*)?\())/dgv,name:"meta.function-call.js",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:/(?=(((([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(\p{space}*\??\.\p{space}*(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))*)|(\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))|(?<=\)))(<\p{space}*[\(\[\{]\p{space}*)(?=\n?$))/dgv,end:/(?<=>)(?!(((([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(\p{space}*\??\.\p{space}*(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))*)|(\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))|(?<=\)))(<\p{space}*[\(\[\{]\p{space}*)(?=\n?$))/dgv,patterns:[{begin:/(?=(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(\p{space}*\??\.\p{space}*(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))*)|(\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))/dgv,end:/(?=(<\p{space}*[\(\[\{]\p{space}*)(?=\n?$))/dgv,name:"meta.function-call.js",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:/\?\./dgv,name:"meta.function-call.js punctuation.accessor.optional.js"},{match:/!/dgv,name:"meta.function-call.js keyword.operator.definiteassignment.js"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:/(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,name:"entity.name.function.js"}]},"function-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?(?:(async)\p{space}+)?(function)\b(?:\p{space}*(\*))?(?:(?:\p{space}+|(?<=\*))([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))?\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.async.js"},"4":{name:"storage.type.function.js"},"5":{name:"keyword.generator.asterisk.js"},"6":{name:"meta.definition.function.js entity.name.function.js"}},end:/(?=;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)|(?<=\})/dgv,name:"meta.function.js",patterns:[{include:"#function-name"},{include:"#function-body"}]},"function-expression":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(async)\p{space}+)?(function)\b(?:\p{space}*(\*))?(?:(?:\p{space}+|(?<=\*))([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))?\p{space}*/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"},"2":{name:"storage.type.function.js"},"3":{name:"keyword.generator.asterisk.js"},"4":{name:"meta.definition.function.js entity.name.function.js"}},end:/(?=;)|(?<=\})/dgv,name:"meta.function.expression.js",patterns:[{include:"#function-name"},{include:"#single-line-comment-consuming-line-ending"},{include:"#function-body"}]},"function-name":{match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*/dgv,name:"meta.definition.function.js entity.name.function.js"},"function-parameters":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.js"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.end.js"}},name:"meta.parameters.js",patterns:[{include:"#function-parameters-body"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{include:"#parameter-name"},{include:"#parameter-type-annotation"},{include:"#variable-initializer"},{match:/,/dgv,name:"punctuation.separator.parameter.js"}]},identifiers:{patterns:[{include:"#object-identifiers"},{captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"entity.name.function.js"}},match:/(?:(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*)?([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(?=\p{space}*=\p{space}*(((async\p{space}+)?((function\p{space}*[\(\*\<])|(function\p{space}+)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*=>)))|((async\p{space}*)?(((<\p{space}*)(?=\n?$)|(\(\p{space}*((([\[\{]\p{space}*)?)(?=\n?$)|((\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})\p{space}*((:\p{space}*\{?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))|((\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])\p{space}*((:\p{space}*\[?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*))))))|((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)?\(\p{space}*(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*((\)\p{space}*:)|((\.\.\.\p{space}*)?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*:)))|(<\p{space}*[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}+extends\p{space}*[^\=\>])|((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)?\(\p{space}*(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*(([\$_\p{Alpha}]|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|(\.\.\.\p{space}*[\$_\p{Alpha}]))([^"'\(\)\`]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))*)?\)(\p{space}*:\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+)?\p{space}*=>)))))/dgv},{captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"variable.other.constant.property.js"}},match:/(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*(#?\p{Upper}[\$_\p{Nd}\p{Upper}]*)(?![\$_\p{Alpha}\p{Nd}])/dgv},{captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"variable.other.property.js"}},match:/(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv},{match:/(\p{Upper}[\$_\p{Nd}\p{Upper}]*)(?![\$_\p{Alpha}\p{Nd}])/dgv,name:"variable.other.constant.js"},{match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*/dgv,name:"variable.other.readwrite.js"}]},"if-statement":{patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?=\bif\p{space}*(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))\p{space}*(?!\{))/dgv,end:/(?=;|(?=\n?$)|\})/dgv,patterns:[{include:"#comment"},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(if)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.control.conditional.js"},"2":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression"}]},{begin:/(?<=\))\p{space}*\/(?![\*\/])(?=(?:[^\/\[\\]|\\[^\n]|\[([^\]\\]|\\[^\n])*\])+\/([dgimsuvy]+|(?![\*\/])|(?=\/\*))(?!\p{space}*[\$0-9A-Z_a-z]))/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},end:/(\/)([dgimsuvy]*)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.js"},"2":{name:"keyword.other.js"}},name:"string.regexp.js",patterns:[{include:"#regexp"}]},{include:"#statements"}]}]},"import-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(import)(?:\p{space}+(type)(?!\p{space}+from))?(?!\p{space}*[\(\:])(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"keyword.control.import.js"},"4":{name:"keyword.control.type.js"}},end:/(?<!(?:^|[^\$\._\p{Alpha}\p{Nd}])import)(?=;|(?=\n?$)|^)/dgv,name:"meta.import.js",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#string"},{begin:/(?<=(?:^|[^\$\._\p{Alpha}\p{Nd}])import)(?!\p{space}*["'])/dgv,end:/\bfrom\b/dgv,endCaptures:{"0":{name:"keyword.control.from.js"}},patterns:[{include:"#import-export-declaration"}]},{include:"#import-export-declaration"}]},"import-equals-declaration":{patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(import)(?:\p{space}+(type))?\p{space}+([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(=)\p{space}*(require)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"keyword.control.import.js"},"4":{name:"keyword.control.type.js"},"5":{name:"variable.other.readwrite.alias.js"},"6":{name:"keyword.operator.assignment.js"},"7":{name:"keyword.control.require.js"},"8":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},name:"meta.import-equals.external.js",patterns:[{include:"#comment"},{include:"#string"}]},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(import)(?:\p{space}+(type))?\p{space}+([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(=)\p{space}*(?!require\b)/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"keyword.control.import.js"},"4":{name:"keyword.control.type.js"},"5":{name:"variable.other.readwrite.alias.js"},"6":{name:"keyword.operator.assignment.js"}},end:/(?=;|(?=\n?$)|^)/dgv,name:"meta.import-equals.internal.js",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{captures:{"1":{name:"entity.name.type.module.js"},"2":{name:"punctuation.accessor.js"},"3":{name:"punctuation.accessor.optional.js"}},match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))/dgv},{match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,name:"variable.other.readwrite.js"}]}]},"import-export-assert-clause":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(with)|(assert))\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"keyword.control.with.js"},"2":{name:"keyword.control.assert.js"},"3":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},patterns:[{include:"#comment"},{include:"#string"},{match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*(?=(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*:)/dgv,name:"meta.object-literal.key.js"},{match:/:/dgv,name:"punctuation.separator.key-value.js"}]},"import-export-block":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},name:"meta.block.js",patterns:[{include:"#import-export-clause"}]},"import-export-clause":{patterns:[{include:"#comment"},{captures:{"1":{name:"keyword.control.type.js"},"2":{name:"keyword.control.default.js"},"3":{name:"constant.language.import-export-all.js"},"4":{name:"variable.other.readwrite.js"},"5":{name:"string.quoted.alias.js"},"12":{name:"keyword.control.as.js"},"13":{name:"keyword.control.default.js"},"14":{name:"variable.other.readwrite.alias.js"},"15":{name:"string.quoted.alias.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(type)\p{space}+)?(?:\b(default)|(\*)|\b([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|(('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)))\p{space}+(as)\p{space}+(?:(default(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|(('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)))/dgv},{include:"#punctuation-comma"},{match:/\*/dgv,name:"constant.language.import-export-all.js"},{match:/\b(default)\b/dgv,name:"keyword.control.default.js"},{captures:{"1":{name:"keyword.control.type.js"},"2":{name:"variable.other.readwrite.alias.js"},"3":{name:"string.quoted.alias.js"}},match:/(?:\b(type)\p{space}+)?(?:([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|(('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)))/dgv}]},"import-export-declaration":{patterns:[{include:"#comment"},{include:"#string"},{include:"#import-export-block"},{match:/\bfrom\b/dgv,name:"keyword.control.from.js"},{include:"#import-export-assert-clause"},{include:"#import-export-clause"}]},"indexer-declaration":{begin:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(readonly)\p{space}*)?\p{space}*(\[)\p{space}*([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?=:)/dgv,beginCaptures:{"1":{name:"storage.modifier.js"},"2":{name:"meta.brace.square.js"},"3":{name:"variable.parameter.js"}},end:/(\])\p{space}*(\?\p{space}*)?|(?=\n?$)/dgv,endCaptures:{"1":{name:"meta.brace.square.js"},"2":{name:"keyword.operator.optional.js"}},name:"meta.indexer.declaration.js",patterns:[{include:"#type-annotation"}]},"indexer-mapped-type-declaration":{begin:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))([\-\+])?(readonly)\p{space}*)?\p{space}*(\[)\p{space}*([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}+(in)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.operator.type.modifier.js"},"2":{name:"storage.modifier.js"},"3":{name:"meta.brace.square.js"},"4":{name:"entity.name.type.js"},"5":{name:"keyword.operator.expression.in.js"}},end:/(\])([\-\+])?\p{space}*(\?\p{space}*)?|(?=\n?$)/dgv,endCaptures:{"1":{name:"meta.brace.square.js"},"2":{name:"keyword.operator.type.modifier.js"},"3":{name:"keyword.operator.optional.js"}},name:"meta.indexer.mappedtype.declaration.js",patterns:[{captures:{"1":{name:"keyword.control.as.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(as)\p{space}+/dgv},{include:"#type"}]},"inline-tags":{patterns:[{captures:{"1":{name:"punctuation.definition.bracket.square.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.square.end.jsdoc"}},match:/(\[)[^\]]+(\])(?=\{@(?:link|linkcode|linkplain|tutorial))/dgv,name:"constant.other.description.jsdoc"},{begin:/(\{)((@)(?:link(?:code|plain)?|tutorial))\p{space}*/dgv,beginCaptures:{"1":{name:"punctuation.definition.bracket.curly.begin.jsdoc"},"2":{name:"storage.type.class.jsdoc"},"3":{name:"punctuation.definition.inline.tag.jsdoc"}},end:/\}|(?=\*\/)/dgv,endCaptures:{"0":{name:"punctuation.definition.bracket.curly.end.jsdoc"}},name:"entity.name.type.instance.jsdoc",patterns:[{captures:{"1":{name:"variable.other.link.underline.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}},match:/((?=https?:\/\/)(?:[^\*\|\}\p{space}]|\*\/)+)(\|)?/dgvy},{captures:{"1":{name:"variable.other.description.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}},match:/((?:[^\*\@\{\|\}\p{space}]|\*[^\/])+)(\|)?/dgvy}]}]},"instanceof-expr":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(instanceof)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"1":{name:"keyword.operator.expression.instanceof.js"}},end:/(?<=\))|(?=[\-\]\)\+\,\:\;\>\?\}]|\|\||&&|!==|(?=\n?$)|([\!\=]==?)|(([\&\^\|\~]\p{space}*)?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}+instanceof(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))function((\p{space}+[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|(\p{space}*\())))/dgv,patterns:[{include:"#type"}]},"interface-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(?:(abstract)\p{space}+)?\b(interface)\b(?=\p{space}+|\/[\*\/])/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.js"},"4":{name:"storage.type.interface.js"}},end:/(?<=\})/dgv,name:"meta.interface.js",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{"0":{name:"entity.name.type.interface.js"}},match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*/dgv},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},jsdoctype:{patterns:[{begin:/(\{)/dgvy,beginCaptures:{"0":{name:"entity.name.type.instance.jsdoc"},"1":{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},contentName:"entity.name.type.instance.jsdoc",end:/((\}))\p{space}*|(?=\*\/)/dgv,endCaptures:{"1":{name:"entity.name.type.instance.jsdoc"},"2":{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},jsx:{patterns:[{include:"#jsx-tag-without-attributes-in-expression"},{include:"#jsx-tag-in-expression"}]},"jsx-children":{patterns:[{include:"#jsx-tag-without-attributes"},{include:"#jsx-tag"},{include:"#jsx-evaluated-code"},{include:"#jsx-entities"}]},"jsx-entities":{patterns:[{captures:{"1":{name:"punctuation.definition.entity.js"},"3":{name:"punctuation.definition.entity.js"}},match:/(&)([0-9A-Za-z]+|#[0-9]+|#x\p{AHex}+)(;)/dgv,name:"constant.character.entity.js"}]},"jsx-evaluated-code":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.embedded.begin.js"}},contentName:"meta.embedded.expression.js",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.embedded.end.js"}},patterns:[{include:"#expression"}]},"jsx-string-double-quoted":{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.js"}},name:"string.quoted.double.js",patterns:[{include:"#jsx-entities"}]},"jsx-string-single-quoted":{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.js"}},name:"string.quoted.single.js",patterns:[{include:"#jsx-entities"}]},"jsx-tag":{begin:/(?=(<)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))(?=((<\p{space}*)|(\p{space}+))(?!\?)|\/?>))/dgv,end:/(\/>)|(<\/)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))?\p{space}*(>)/dgv,endCaptures:{"1":{name:"punctuation.definition.tag.end.js"},"2":{name:"punctuation.definition.tag.begin.js"},"3":{name:"entity.name.tag.namespace.js"},"4":{name:"punctuation.separator.namespace.js"},"5":{name:"entity.name.tag.js"},"6":{name:"support.class.component.js"},"7":{name:"punctuation.definition.tag.end.js"}},name:"meta.tag.js",patterns:[{begin:/(<)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))(?=((<\p{space}*)|(\p{space}+))(?!\?)|\/?>)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.begin.js"},"2":{name:"entity.name.tag.namespace.js"},"3":{name:"punctuation.separator.namespace.js"},"4":{name:"entity.name.tag.js"},"5":{name:"support.class.component.js"}},end:/(?=\/?>)/dgv,patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:/(>)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.end.js"}},contentName:"meta.jsx.children.js",end:/(?=<\/)/dgv,patterns:[{include:"#jsx-children"}]}]},"jsx-tag-attribute-assignment":{match:/=(?=\p{space}*(?:["'\{]|\/\*|\/\/|\n))/dgv,name:"keyword.operator.assignment.js"},"jsx-tag-attribute-name":{captures:{"1":{name:"entity.other.attribute-name.namespace.js"},"2":{name:"punctuation.separator.namespace.js"},"3":{name:"entity.other.attribute-name.js"}},match:/\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(:))?([\$_\p{Alpha}][\-\$_\p{Alpha}\p{Nd}]*)(?=[\=\p{space}]|\/?>|\/\*|\/\/)/dgv},"jsx-tag-attributes":{begin:/\p{space}+/dgv,end:/(?=\/?>)/dgv,name:"meta.tag.attributes.js",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attributes-illegal":{match:/\P{space}+/dgv,name:"invalid.illegal.attribute.js"},"jsx-tag-in-expression":{begin:/(?<!\+\+|--)(?<=[\(\*\,\:\=\>\?\[\{]|&&|\|\||\?|\*\/|^await|[^\$\._\p{Alpha}\p{Nd}]await|^return|[^\$\._\p{Alpha}\p{Nd}]return|^default|[^\$\._\p{Alpha}\p{Nd}]default|^yield|[^\$\._\p{Alpha}\p{Nd}]yield|^)\p{space}*(?!<\p{space}*[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*((\p{space}+extends\p{space}+[^\=\>])|,))(?=(<)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))(?=((<\p{space}*)|(\p{space}+))(?!\?)|\/?>))/dgv,end:/(?!(<)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))(?=((<\p{space}*)|(\p{space}+))(?!\?)|\/?>))/dgv,patterns:[{include:"#jsx-tag"}]},"jsx-tag-without-attributes":{begin:/(<)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))?\p{space}*(>)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.begin.js"},"2":{name:"entity.name.tag.namespace.js"},"3":{name:"punctuation.separator.namespace.js"},"4":{name:"entity.name.tag.js"},"5":{name:"support.class.component.js"},"6":{name:"punctuation.definition.tag.end.js"}},contentName:"meta.jsx.children.js",end:/(<\/)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))?\p{space}*(>)/dgv,endCaptures:{"1":{name:"punctuation.definition.tag.begin.js"},"2":{name:"entity.name.tag.namespace.js"},"3":{name:"punctuation.separator.namespace.js"},"4":{name:"entity.name.tag.js"},"5":{name:"support.class.component.js"},"6":{name:"punctuation.definition.tag.end.js"}},name:"meta.tag.without-attributes.js",patterns:[{include:"#jsx-children"}]},"jsx-tag-without-attributes-in-expression":{begin:/(?<!\+\+|--)(?<=[\(\*\,\:\=\>\?\[\{]|&&|\|\||\?|\*\/|^await|[^\$\._\p{Alpha}\p{Nd}]await|^return|[^\$\._\p{Alpha}\p{Nd}]return|^default|[^\$\._\p{Alpha}\p{Nd}]default|^yield|[^\$\._\p{Alpha}\p{Nd}]yield|^)\p{space}*(?=(<)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))?\p{space}*(>))/dgv,end:/(?!(<)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))?\p{space}*(>))/dgv,patterns:[{include:"#jsx-tag-without-attributes"}]},label:{patterns:[{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(:)(?=\p{space}*\{)/dgv,beginCaptures:{"1":{name:"entity.name.label.js"},"2":{name:"punctuation.separator.label.js"}},end:/(?<=\})/dgv,patterns:[{include:"#decl-block"}]},{captures:{"1":{name:"entity.name.label.js"},"2":{name:"punctuation.separator.label.js"}},match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(:)/dgv}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"method-declaration":{patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(override)\p{space}+)?(?:\b(p(?:ublic|rivate|rotected))\p{space}+)?(?:\b(abstract)\p{space}+)?(?:\b(async)\p{space}+)?\p{space}*\b(constructor)\b(?!:)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"1":{name:"storage.modifier.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.js"},"4":{name:"storage.modifier.async.js"},"5":{name:"storage.type.js"}},end:/(?=[\,\;\}]|(?=\n?$))|(?<=\})/dgv,name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(override)\p{space}+)?(?:\b(p(?:ublic|rivate|rotected))\p{space}+)?(?:\b(abstract)\p{space}+)?(?:\b(async)\p{space}+)?(?:\p{space}*\b(new)\b(?!:)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))|(?:(\*)\p{space}*)?)(?=\p{space}*((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*))?\()/dgv,beginCaptures:{"1":{name:"storage.modifier.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.js"},"4":{name:"storage.modifier.async.js"},"5":{name:"keyword.operator.new.js"},"6":{name:"keyword.generator.asterisk.js"}},end:/(?=[\,\;\}]|(?=\n?$))|(?<=\})/dgv,name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(override)\p{space}+)?(?:\b(p(?:ublic|rivate|rotected))\p{space}+)?(?:\b(abstract)\p{space}+)?(?:\b(async)\p{space}+)?(?:\b([gs]et)\p{space}+)?(?:(\*)\p{space}*)?(?=\p{space}*((\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(\??))\p{space}*((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*))?\()/dgv,beginCaptures:{"1":{name:"storage.modifier.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.js"},"4":{name:"storage.modifier.async.js"},"5":{name:"storage.type.property.js"},"6":{name:"keyword.generator.asterisk.js"}},end:/(?=[\,\;\}]|(?=\n?$))|(?<=\})/dgv,name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:/(?=(\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(\??)\p{space}*[\(\<])/dgv,end:/(?=[\(\<])/dgv,patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*/dgv,name:"meta.definition.method.js entity.name.function.js"},{match:/\?/dgv,name:"keyword.operator.optional.js"}]},"namespace-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(namespace|module)\p{space}+(?=["\$'_\`\p{Alpha}])/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.type.namespace.js"}},end:/(?<=\})|(?=;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,name:"meta.namespace.declaration.js",patterns:[{include:"#comment"},{include:"#string"},{match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,name:"entity.name.type.module.js"},{include:"#punctuation-accessor"},{include:"#decl-block"}]},"new-expr":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(new)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"1":{name:"keyword.operator.new.js"}},end:/(?<=\))|(?=[\-\]\)\+\,\:\;\>\?\}]|\|\||&&|!==|(?=\n?$)|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))new(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))function((\p{space}+[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|(\p{space}*\())))/dgv,name:"new.expr.js",patterns:[{include:"#expression"}]},"null-literal":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))null(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"constant.language.null.js"},"numeric-literal":{patterns:[{captures:{"1":{name:"storage.type.numeric.bigint.js"}},match:/\b(?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$)/dgv,name:"constant.numeric.hex.js"},{captures:{"1":{name:"storage.type.numeric.bigint.js"}},match:/\b(?<!\$)0[Bb][01][01_]*(n)?\b(?!\$)/dgv,name:"constant.numeric.binary.js"},{captures:{"1":{name:"storage.type.numeric.bigint.js"}},match:/\b(?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$)/dgv,name:"constant.numeric.octal.js"},{captures:{"0":{name:"constant.numeric.decimal.js"},"1":{name:"meta.delimiter.decimal.period.js"},"2":{name:"storage.type.numeric.bigint.js"},"3":{name:"meta.delimiter.decimal.period.js"},"4":{name:"storage.type.numeric.bigint.js"},"5":{name:"meta.delimiter.decimal.period.js"},"6":{name:"storage.type.numeric.bigint.js"},"7":{name:"storage.type.numeric.bigint.js"},"8":{name:"meta.delimiter.decimal.period.js"},"9":{name:"storage.type.numeric.bigint.js"},"10":{name:"meta.delimiter.decimal.period.js"},"11":{name:"storage.type.numeric.bigint.js"},"12":{name:"meta.delimiter.decimal.period.js"},"13":{name:"storage.type.numeric.bigint.js"},"14":{name:"storage.type.numeric.bigint.js"}},match:/(?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$)/dgv}]},"numericConstant-literal":{patterns:[{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))NaN(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"constant.language.nan.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))Infinity(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"constant.language.infinity.js"}]},"object-binding-element":{patterns:[{include:"#comment"},{begin:/(?=(\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(:))/dgv,end:/(?=[\,\}])/dgv,patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element"}]},{include:"#object-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-const":{patterns:[{include:"#comment"},{begin:/(?=(\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(:))/dgv,end:/(?=[\,\}])/dgv,patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element-const"}]},{include:"#object-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-propertyName":{begin:/(?=(\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(:))/dgv,end:/(:)/dgv,endCaptures:{"0":{name:"punctuation.destructuring.js"}},patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,name:"variable.object.property.js"}]},"object-binding-pattern":{begin:/(?:(\.\.\.)\p{space}*)?(\{)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.object.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.js"}},patterns:[{include:"#object-binding-element"}]},"object-binding-pattern-const":{begin:/(?:(\.\.\.)\p{space}*)?(\{)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.object.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.js"}},patterns:[{include:"#object-binding-element-const"}]},"object-identifiers":{patterns:[{match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(?=\p{space}*\??\.\p{space}*prototype\b(?!\$))/dgv,name:"support.class.js"},{captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"variable.other.constant.object.property.js"},"4":{name:"variable.other.object.property.js"}},match:/(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*(?:(#?\p{Upper}[\$_\p{Nd}\p{Upper}]*)|(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))(?=\p{space}*\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv},{captures:{"1":{name:"variable.other.constant.object.js"},"2":{name:"variable.other.object.js"}},match:/(?:(\p{Upper}[\$_\p{Nd}\p{Upper}]*)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))(?=\p{space}*\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv}]},"object-literal":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},name:"meta.objectliteral.js",patterns:[{include:"#object-member"}]},"object-literal-method-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(async)\p{space}+)?(?:\b([gs]et)\p{space}+)?(?:(\*)\p{space}*)?(?=\p{space}*((\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(\??))\p{space}*((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*))?\()/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"},"2":{name:"storage.type.property.js"},"3":{name:"keyword.generator.asterisk.js"}},end:/(?=[\,\;\}])|(?<=\})/dgv,name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(async)\p{space}+)?(?:\b([gs]et)\p{space}+)?(?:(\*)\p{space}*)?(?=\p{space}*((\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(\??))\p{space}*((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*))?\()/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"},"2":{name:"storage.type.property.js"},"3":{name:"keyword.generator.asterisk.js"}},end:/(?=[\(\<])/dgv,patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:/(?=\[)/dgv,end:/(?=:)|((?<=\])(?=\p{space}*[\(\<]))/dgv,name:"meta.object.member.js meta.object-literal.key.js",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:/(?=["'\`])/dgv,end:/(?=:)|((?<=["'\`])(?=((\p{space}*[\(\,\<\}])|(\p{space}+(as|satisifies)\p{space}+))))/dgv,name:"meta.object.member.js meta.object-literal.key.js",patterns:[{include:"#comment"},{include:"#string"}]},{begin:/(?=\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$)))/dgv,end:/(?=:)|(?=\p{space}*([\(\,\<\}])|(\p{space}+as|satisifies\p{space}+))/dgv,name:"meta.object.member.js meta.object-literal.key.js",patterns:[{include:"#comment"},{include:"#numeric-literal"}]},{begin:/(?<=[\]"'\`])(?=\p{space}*[\(\<])/dgv,end:/(?=[\,\;\}])|(?<=\})/dgv,name:"meta.method.declaration.js",patterns:[{include:"#function-body"}]},{captures:{"0":{name:"meta.object-literal.key.js"},"1":{name:"constant.numeric.decimal.js"}},match:/(?![\$_\p{Alpha}])(\p{Nd}+)\p{space}*(?=(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*:)/dgv,name:"meta.object.member.js"},{captures:{"0":{name:"meta.object-literal.key.js"},"1":{name:"entity.name.function.js"}},match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?=(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*:(\p{space}*\/\*([^\*]|(\*[^\/]))*\*\/)*\p{space}*(((async\p{space}+)?((function\p{space}*[\(\*\<])|(function\p{space}+)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*=>)))|((async\p{space}*)?(((<\p{space}*)(?=\n?$)|(\(\p{space}*((([\[\{]\p{space}*)?)(?=\n?$)|((\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})\p{space}*((:\p{space}*\{?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))|((\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])\p{space}*((:\p{space}*\[?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*))))))|((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)?\(\p{space}*(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*((\)\p{space}*:)|((\.\.\.\p{space}*)?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*:)))|(<\p{space}*[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}+extends\p{space}*[^\=\>])|((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)?\(\p{space}*(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*(([\$_\p{Alpha}]|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|(\.\.\.\p{space}*[\$_\p{Alpha}]))([^"'\(\)\`]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))*)?\)(\p{space}*:\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+)?\p{space}*=>)))))/dgv,name:"meta.object.member.js"},{captures:{"0":{name:"meta.object-literal.key.js"}},match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*(?=(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*:)/dgv,name:"meta.object.member.js"},{begin:/\.\.\./dgv,beginCaptures:{"0":{name:"keyword.operator.spread.js"}},end:/(?=[\,\}])/dgv,name:"meta.object.member.js",patterns:[{include:"#expression"}]},{captures:{"1":{name:"variable.other.readwrite.js"}},match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?=[\,\}]|(?=\n?$)|\/\/|\/\*)/dgv,name:"meta.object.member.js"},{captures:{"1":{name:"keyword.control.as.js"},"2":{name:"storage.modifier.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(as)\p{space}+(const)(?=\p{space}*([\,\}]|(?=\n?$)))/dgv,name:"meta.object.member.js"},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(as)|(satisfies))\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.control.as.js"},"2":{name:"keyword.control.satisfies.js"}},end:/(?=[\-\]\)\+\,\:\;\>\?\}]|\|\||&&|!==|(?=\n?$)|^|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(as|satisifies)\p{space}+))/dgv,name:"meta.object.member.js",patterns:[{include:"#type"}]},{begin:/(?=[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*=)/dgv,end:/(?=[\,\}]|(?=\n?$)|\/\/|\/\*)/dgv,name:"meta.object.member.js",patterns:[{include:"#expression"}]},{begin:/:/dgv,beginCaptures:{"0":{name:"meta.object-literal.key.js punctuation.separator.key-value.js"}},end:/(?=[\,\}])/dgv,name:"meta.object.member.js",patterns:[{begin:/(?<=:)\p{space}*(async)?(?=\p{space}*(<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)\(\p{space}*((([\[\{]\p{space}*)?)(?=\n?$)|((\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})\p{space}*((:\p{space}*\{?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))|((\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])\p{space}*((:\p{space}*\[?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))))/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:/(?<=\))/dgv,patterns:[{include:"#type-parameters"},{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:/(?<=:)\p{space}*(async)?\p{space}*(\()(?=\p{space}*((([\[\{]\p{space}*)?)(?=\n?$)|((\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})\p{space}*((:\p{space}*\{?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))|((\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])\p{space}*((:\p{space}*\[?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))))/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"},"2":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:/(?<=:)\p{space}*(async)?\p{space}*(?=<\p{space}*(?=\n?$))/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:/(?<=>)/dgv,patterns:[{include:"#type-parameters"}]},{begin:/(?<=>)\p{space}*(\()(?=\p{space}*((([\[\{]\p{space}*)?)(?=\n?$)|((\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})\p{space}*((:\p{space}*\{?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))|((\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])\p{space}*((:\p{space}*\[?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))))/dgv,beginCaptures:{"1":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"parameter-array-binding-pattern":{begin:/(?:(\.\.\.)\p{space}*)?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.array.js"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.js"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"parameter-name":{patterns:[{captures:{"1":{name:"storage.modifier.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(override|public|protected|private|readonly)\p{space}+(?=(override|public|protected|private|readonly)\p{space}+)/dgv},{captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"entity.name.function.js variable.language.this.js"},"4":{name:"entity.name.function.js"},"5":{name:"keyword.operator.optional.js"}},match:/*@__PURE__*/ new EmulatedRegExp("(?:(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\p{space}+)?(?:(\\.\\.\\.)\\p{space}*)?(?<![\\:\\=])(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*))(?![\\$_\\p{Alpha}\\p{Nd}])(?:(?=\\.\\.\\.)|(?!\\.))\\p{space}*(\\??)(?=\\p{space}*(=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>)))))|(:\\p{space}*((<)|(\\(\\p{space}*((\\))|(\\.\\.\\.)|([\\$_\\p{Alpha}\\p{Nd}]+\\p{space}*(([\\,\\:\\=\\?])|(\\)\\p{space}*=>)))))))|(:\\p{space}*(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![\\$_\\p{Alpha}\\p{Nd}])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\p{space}*((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))))))|(:\\p{space}*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^\\<\\>]*>)|[^\\(\\)\\,\\<\\=\\>])+=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>))))))","dgv",{"lazyCompile":true})},{captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"variable.parameter.js variable.language.this.js"},"4":{name:"variable.parameter.js"},"5":{name:"keyword.operator.optional.js"}},match:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(override|public|private|protected|readonly)\p{space}+)?(?:(\.\.\.)\p{space}*)?(?<![\:\=])(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(this)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))\p{space}*(\??)/dgv}]},"parameter-object-binding-element":{patterns:[{include:"#comment"},{begin:/(?=(\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(:))/dgv,end:/(?=[\,\}])/dgv,patterns:[{include:"#object-binding-element-propertyName"},{include:"#parameter-binding-element"},{include:"#paren-expression"}]},{include:"#parameter-object-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"parameter-object-binding-pattern":{begin:/(?:(\.\.\.)\p{space}*)?(\{)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.object.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.js"}},patterns:[{include:"#parameter-object-binding-element"}]},"parameter-type-annotation":{patterns:[{begin:/(:)/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:/(?=[\)\,])|(?==[^\>])/dgv,name:"meta.type.annotation.js",patterns:[{include:"#type"}]}]},"paren-expression":{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:/(?<=[\(\,\=])\p{space}*(async)?(?=\p{space}*((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*))?\(\p{space}*((([\[\{]\p{space}*)?)(?=\n?$)|((\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})\p{space}*((:\p{space}*\{?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))|((\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])\p{space}*((:\p{space}*\[?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))))/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:/(?<=\))/dgv,patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:/(?<=[\(\,\=]|=>|^return|[^\$\._\p{Alpha}\p{Nd}]return)\p{space}*(async)?(?=\p{space}*((((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*))?\()|(<)|((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)))\p{space}*(?=\n?$))/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:/(?<=\))/dgv,patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:/(?<=\)|^)\p{space}*(:)(?=\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*=>)/dgv,beginCaptures:{"1":{name:"meta.arrow.js meta.return.type.arrow.js keyword.operator.type.annotation.js"}},contentName:"meta.arrow.js meta.return.type.arrow.js",end:/(?==>|\{|^(\p{space}*(export|function|class|interface|let|var|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|const|import|enum|namespace|module|type|abstract|declare)\p{space}+))/dgv,patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(accessor|get|set)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"storage.type.property.js"},"punctuation-accessor":{captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"}},match:/(\.)|(\?\.(?!\p{space}*\p{Nd}))/dgv},"punctuation-comma":{match:/,/dgv,name:"punctuation.separator.comma.js"},"punctuation-semicolon":{match:/;/dgv,name:"punctuation.terminator.statement.js"},"qstring-double":{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},end:/(")|([^\n\\])(?=\n?$)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.js"},"2":{name:"invalid.illegal.newline.js"}},name:"string.quoted.double.js",patterns:[{include:"#string-character-escape"}]},"qstring-single":{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},end:/(')|([^\n\\])(?=\n?$)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.js"},"2":{name:"invalid.illegal.newline.js"}},name:"string.quoted.single.js",patterns:[{include:"#string-character-escape"}]},regex:{patterns:[{begin:/(?<!\+\+|--|\})(?<=[\!\(\+\,\:\=\?\[]|^return|[^\$\._\p{Alpha}\p{Nd}]return|^case|[^\$\._\p{Alpha}\p{Nd}]case|=>|&&|\|\||\*\/)\p{space}*(\/)(?![\*\/])(?=(?:[^\(\)\/\[\\]|\\[^\n]|\[([^\]\\]|\\[^\n])+\]|\(([^\)\\]|\\[^\n])+\))+\/([dgimsuvy]+|(?![\*\/])|(?=\/\*))(?!\p{space}*[\$0-9A-Z_a-z]))/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.js"}},end:/(\/)([dgimsuvy]*)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.js"},"2":{name:"keyword.other.js"}},name:"string.regexp.js",patterns:[{include:"#regexp"}]},{begin:/((?<![\]\$\)_\p{Alpha}\p{Nd}]|\+\+|--|\}|\*\/)|((?<=^return|[^\$\._\p{Alpha}\p{Nd}]return|^case|[^\$\._\p{Alpha}\p{Nd}]case))\p{space}*)\/(?![\*\/])(?=(?:[^\/\[\\]|\\[^\n]|\[([^\]\\]|\\[^\n])*\])+\/([dgimsuvy]+|(?![\*\/])|(?=\/\*))(?!\p{space}*[\$0-9A-Z_a-z]))/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},end:/(\/)([dgimsuvy]*)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.js"},"2":{name:"keyword.other.js"}},name:"string.regexp.js",patterns:[{include:"#regexp"}]}]},"regex-character-class":{patterns:[{match:/\\[DSWdfnrstvw]|\./dgv,name:"constant.other.character-class.regexp"},{match:/\\([0-7]{3}|x\p{AHex}{2}|u\p{AHex}{4})/dgv,name:"constant.character.numeric.regexp"},{match:/\\c[A-Z]/dgv,name:"constant.character.control.regexp"},{match:/\\[^\n]/dgv,name:"constant.character.escape.backslash.regexp"}]},regexp:{patterns:[{match:/\\[Bb]|[\$\^]/dgv,name:"keyword.control.anchor.regexp"},{captures:{"0":{name:"keyword.other.back-reference.regexp"},"1":{name:"variable.other.regexp"}},match:/\\(?:[1-9]\p{Nd}*|k<([\$A-Z_a-z][\$\p{L}\p{M}\p{N}\p{Pc}]*)>)/dgv},{match:/[\*\+\?]|\{(\p{Nd}+,\p{Nd}+|\p{Nd}+,|,\p{Nd}+|\p{Nd}+)\}\??/dgv,name:"keyword.operator.quantifier.regexp"},{match:/\|/dgv,name:"keyword.operator.or.regexp"},{begin:/(\()((\?=)|(\?!)|(\?<=)|(\?<!))/dgv,beginCaptures:{"1":{name:"punctuation.definition.group.regexp"},"2":{name:"punctuation.definition.group.assertion.regexp"},"3":{name:"meta.assertion.look-ahead.regexp"},"4":{name:"meta.assertion.negative-look-ahead.regexp"},"5":{name:"meta.assertion.look-behind.regexp"},"6":{name:"meta.assertion.negative-look-behind.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.group.regexp"}},name:"meta.group.assertion.regexp",patterns:[{include:"#regexp"}]},{begin:/\((?:(\?:)|\?<([\$A-Z_a-z][\$\p{L}\p{M}\p{N}\p{Pc}]*)>)?/dgv,beginCaptures:{"0":{name:"punctuation.definition.group.regexp"},"1":{name:"punctuation.definition.group.no-capture.regexp"},"2":{name:"variable.other.regexp"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:/(\[)(\^)?/dgv,beginCaptures:{"1":{name:"punctuation.definition.character-class.regexp"},"2":{name:"keyword.operator.negation.regexp"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{"1":{name:"constant.character.numeric.regexp"},"2":{name:"constant.character.control.regexp"},"3":{name:"constant.character.escape.backslash.regexp"},"4":{name:"constant.character.numeric.regexp"},"5":{name:"constant.character.control.regexp"},"6":{name:"constant.character.escape.backslash.regexp"}},match:/(?:[^\n]|(\\(?:[0-7]{3}|x\p{AHex}{2}|u\p{AHex}{4}))|(\\c[A-Z])|(\\[^\n]))-(?:[^\]\\]|(\\(?:[0-7]{3}|x\p{AHex}{2}|u\p{AHex}{4}))|(\\c[A-Z])|(\\[^\n]))/dgv,name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"return-type":{patterns:[{begin:/(?<=\))\p{space}*(:)(?=\p{space}*\P{space})/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:/(?<![\&\:\|])(?=(?=\n?$)|^|[\,\;\{\}]|\/\/)/dgv,name:"meta.return.type.js",patterns:[{include:"#return-type-core"}]},{begin:/(?<=\))\p{space}*(:)/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:/(?<![\&\:\|])((?=[\,\;\{\}]|\/\/|^\p{space}*(?=\n?$))|((?<=\P{space})(?=\p{space}*(?=\n?$))))/dgv,name:"meta.return.type.js",patterns:[{include:"#return-type-core"}]}]},"return-type-core":{patterns:[{include:"#comment"},{begin:/(?<=[\&\:\|])(?=\p{space}*\{)/dgv,end:/(?<=\})/dgv,patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},shebang:{captures:{"1":{name:"punctuation.definition.comment.js"}},match:/^(#!)[^\n]*(?=(?=\n?$))/dgv,name:"comment.line.shebang.js"},"single-line-comment-consuming-line-ending":{begin:/(^[\t ]+)?((\/\/)(?:\p{space}*((@)internal)(?=\p{space}|(?=\n?$)))?)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.js"},"2":{name:"comment.line.double-slash.js"},"3":{name:"punctuation.definition.comment.js"},"4":{name:"storage.type.internaldeclaration.js"},"5":{name:"punctuation.decorator.internaldeclaration.js"}},contentName:"comment.line.double-slash.js",end:/(?=^)/dgv},statements:{patterns:[{include:"#declaration"},{include:"#control-statement"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#label"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"}]},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"string-character-escape":{match:/\\(x\p{AHex}{2}|u\p{AHex}{4}|u\{\p{AHex}+\}|[012][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|[^\n]|(?=\n?$))/dgv,name:"constant.character.escape.js"},"super-literal":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))super\b(?!\$)/dgv,name:"variable.language.super.js"},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))import(?=\p{space}*\(\p{space}*["'\`])/dgv,name:"keyword.operator.expression.import.js"}]},"support-objects":{patterns:[{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(arguments)\b(?!\$)/dgv,name:"variable.language.arguments.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(Promise)\b(?!\$)/dgv,name:"support.class.promise.js"},{captures:{"1":{name:"keyword.control.import.js"},"2":{name:"punctuation.accessor.js"},"3":{name:"punctuation.accessor.optional.js"},"4":{name:"support.variable.property.importmeta.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(import)\p{space}*(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*(meta)\b(?!\$)/dgv},{captures:{"1":{name:"keyword.operator.new.js"},"2":{name:"punctuation.accessor.js"},"3":{name:"punctuation.accessor.optional.js"},"4":{name:"support.variable.property.target.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(new)\p{space}*(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*(target)\b(?!\$)/dgv},{captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"support.variable.property.js"},"4":{name:"support.constant.js"}},match:/(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*(?:(constructor|length|prototype|__proto__)\b(?!\$|\p{space}*(<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)?\()|(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\b(?!\$))/dgv},{captures:{"1":{name:"support.type.object.module.js"},"2":{name:"support.type.object.module.js"},"3":{name:"punctuation.accessor.js"},"4":{name:"punctuation.accessor.optional.js"},"5":{name:"support.type.object.module.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(exports)|(module)(?:(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))(exports|id|filename|loaded|parent|children))?)\b(?!\$)/dgv}]},"switch-statement":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?=\bswitch\p{space}*\()/dgv,end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},name:"switch-statement.expr.js",patterns:[{include:"#comment"},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(switch)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.control.switch.js"},"2":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},name:"switch-expression.expr.js",patterns:[{include:"#expression"}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:/(?=\})/dgv,name:"switch-block.expr.js",patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(case|default(?=:))(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"1":{name:"keyword.control.switch.js"}},end:/(?=:)/dgv,name:"case-clause.expr.js",patterns:[{include:"#expression"}]},{begin:/(:)\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"case-clause.expr.js punctuation.definition.section.case-statement.js"},"2":{name:"meta.block.js punctuation.definition.block.js"}},contentName:"meta.block.js",end:/\}/dgv,endCaptures:{"0":{name:"meta.block.js punctuation.definition.block.js"}},patterns:[{include:"#statements"}]},{captures:{"0":{name:"case-clause.expr.js punctuation.definition.section.case-statement.js"}},match:/(:)/dgv},{include:"#statements"}]}]},template:{patterns:[{include:"#template-call"},{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)?(`)/dgv,beginCaptures:{"1":{name:"entity.name.function.tagged-template.js"},"2":{name:"string.template.js punctuation.definition.string.template.begin.js"}},contentName:"string.template.js",end:/`/dgv,endCaptures:{"0":{name:"string.template.js punctuation.definition.string.template.end.js"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:/(?=(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*\??\.\p{space}*)*|(\??\.\p{space}*)?)([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))(([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\p{space}*)?`)/dgv,end:/(?=`)/dgv,patterns:[{begin:/(?=(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*\??\.\p{space}*)*|(\??\.\p{space}*)?)([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))/dgv,end:/(?=(<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))(([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\p{space}*)?`)/dgv,patterns:[{include:"#support-function-call-identifiers"},{match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,name:"entity.name.function.tagged-template.js"}]},{include:"#type-arguments"}]},{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)?\p{space}*(?=(<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))(([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\p{space}*)`)/dgv,beginCaptures:{"1":{name:"entity.name.function.tagged-template.js"}},end:/(?=`)/dgv,patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:/\$\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.js"}},contentName:"meta.embedded.line.js",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.template-expression.end.js"}},name:"meta.template.expression.js",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)?(`)/dgv,beginCaptures:{"1":{name:"entity.name.function.tagged-template.js"},"2":{name:"string.template.js punctuation.definition.string.template.begin.js"}},contentName:"string.template.js",end:/`/dgv,endCaptures:{"0":{name:"string.template.js punctuation.definition.string.template.end.js"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:/\$\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.js"}},contentName:"meta.embedded.line.js",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.template-expression.end.js"}},name:"meta.template.expression.js",patterns:[{include:"#type"}]},"ternary-expression":{begin:/(?!\?\.\p{space}*\P{Nd})(\?)(?!\?)/dgv,beginCaptures:{"1":{name:"keyword.operator.ternary.js"}},end:/\p{space}*(:)/dgv,endCaptures:{"1":{name:"keyword.operator.ternary.js"}},patterns:[{include:"#expression"}]},"this-literal":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))this\b(?!\$)/dgv,name:"variable.language.this.js"},type:{patterns:[{include:"#comment"},{include:"#type-string"},{include:"#numeric-literal"},{include:"#type-primitive"},{include:"#type-builtin-literals"},{include:"#type-parameters"},{include:"#type-tuple"},{include:"#type-object"},{include:"#type-operators"},{include:"#type-conditional"},{include:"#type-fn-type-parameters"},{include:"#type-paren-or-function-parameters"},{include:"#type-function-return-type"},{captures:{"1":{name:"storage.modifier.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(readonly)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))\p{space}*/dgv},{include:"#type-name"}]},"type-alias-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(type)\b\p{space}+([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.type.type.js"},"4":{name:"entity.name.type.alias.js"}},end:/(?=[\;\}]|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,name:"meta.type.declaration.js",patterns:[{include:"#comment"},{include:"#type-parameters"},{begin:/(=)\p{space}*(intrinsic)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"1":{name:"keyword.operator.assignment.js"},"2":{name:"keyword.control.intrinsic.js"}},end:/(?=[\;\}]|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,patterns:[{include:"#type"}]},{begin:/(=)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.operator.assignment.js"}},end:/(?=[\;\}]|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,patterns:[{include:"#type"}]}]},"type-annotation":{patterns:[{begin:/(:)(?=\p{space}*\P{space})/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:/(?<![\&\:\|])(?!\p{space}*[\&\|]\p{space}+)((?=^|[\]\)\,\;\}]|\/\/)|(?==[^\>])|((?<=[\]\$\)\>_\}\p{Alpha}])\p{space}*(?=\{)))/dgv,name:"meta.type.annotation.js",patterns:[{include:"#type"}]},{begin:/(:)/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:/(?<![\&\:\|])((?=[\]\)\,\;\}]|\/\/)|(?==[^\>])|(?=^\p{space}*(?=\n?$))|((?<=[\]\$\)\>_\}\p{Alpha}])\p{space}*(?=\{)))/dgv,name:"meta.type.annotation.js",patterns:[{include:"#type"}]}]},"type-arguments":{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.js"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.js"}},name:"meta.type.parameters.js",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{"0":{name:"keyword.operator.type.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(_)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv},{include:"#type"},{include:"#punctuation-comma"}]},"type-builtin-literals":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(this|true|false|undefined|null|object)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"support.type.builtin.js"},"type-conditional":{patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(extends)\p{space}+/dgv,beginCaptures:{"1":{name:"storage.modifier.js"}},end:/(?<=:)/dgv,patterns:[{begin:/\?/dgv,beginCaptures:{"0":{name:"keyword.operator.ternary.js"}},end:/:/dgv,endCaptures:{"0":{name:"keyword.operator.ternary.js"}},patterns:[{include:"#type"}]},{include:"#type"}]}]},"type-fn-type-parameters":{patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(abstract)\p{space}+)?(new)\b(?=\p{space}*<)/dgv,beginCaptures:{"1":{name:"meta.type.constructor.js storage.modifier.js"},"2":{name:"meta.type.constructor.js keyword.control.new.js"}},end:/(?<=>)/dgv,patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(abstract)\p{space}+)?(new)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.control.new.js"}},end:/(?<=\))/dgv,name:"meta.type.constructor.js",patterns:[{include:"#function-parameters"}]},{begin:/((?=\(\p{space}*((\))|(\.\.\.)|([\$_\p{Alpha}\p{Nd}]+\p{space}*(([\,\:\=\?])|(\)\p{space}*=>))))))/dgv,end:/(?<=\))/dgv,name:"meta.type.function.js",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:/(=>)(?=\p{space}*\P{space})/dgv,beginCaptures:{"1":{name:"storage.type.function.arrow.js"}},end:/(?<!=>)(?<![\&\|])(?=[\]\)\,\:\;\=\>\?\{\}]|\/\/|(?=\n?$))/dgv,name:"meta.type.function.return.js",patterns:[{include:"#type-function-return-type-core"}]},{begin:/=>/dgv,beginCaptures:{"0":{name:"storage.type.function.arrow.js"}},end:/(?<!=>)(?<![\&\|])((?=[\]\)\,\:\;\=\>\?\{\}]|\/\/|^\p{space}*(?=\n?$))|((?<=\P{space})(?=\p{space}*(?=\n?$))))/dgv,name:"meta.type.function.return.js",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:/(?<==>)(?=\p{space}*\{)/dgv,end:/(?<=\})/dgv,patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-infer":{patterns:[{captures:{"1":{name:"keyword.operator.expression.infer.js"},"2":{name:"entity.name.type.js"},"3":{name:"keyword.operator.expression.extends.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(infer)\p{space}+([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))(?:\p{space}+(extends)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))?/dgv,name:"meta.type.infer.js"}]},"type-name":{patterns:[{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*(<)/dgv,captures:{"1":{name:"entity.name.type.module.js"},"2":{name:"punctuation.accessor.js"},"3":{name:"punctuation.accessor.optional.js"},"4":{name:"meta.type.parameters.js punctuation.definition.typeparameters.begin.js"}},contentName:"meta.type.parameters.js",end:/(>)/dgv,endCaptures:{"1":{name:"meta.type.parameters.js punctuation.definition.typeparameters.end.js"}},patterns:[{include:"#type-arguments-body"}]},{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(<)/dgv,beginCaptures:{"1":{name:"entity.name.type.js"},"2":{name:"meta.type.parameters.js punctuation.definition.typeparameters.begin.js"}},contentName:"meta.type.parameters.js",end:/(>)/dgv,endCaptures:{"1":{name:"meta.type.parameters.js punctuation.definition.typeparameters.end.js"}},patterns:[{include:"#type-arguments-body"}]},{captures:{"1":{name:"entity.name.type.module.js"},"2":{name:"punctuation.accessor.js"},"3":{name:"punctuation.accessor.optional.js"}},match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))/dgv},{match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.type.js"}]},"type-object":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},name:"meta.object.type.js",patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:/\.\.\./dgv,beginCaptures:{"0":{name:"keyword.operator.spread.js"}},end:/(?=[\,\;\}]|(?=\n?$))|(?<=\})/dgv,patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:/([\&\|])(?=\p{space}*\{)/dgv,beginCaptures:{"0":{name:"keyword.operator.type.js"}},end:/(?<=\})/dgv,patterns:[{include:"#type-object"}]},{begin:/[\&\|]/dgv,beginCaptures:{"0":{name:"keyword.operator.type.js"}},end:/(?=\P{space})/dgv},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))keyof(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.operator.expression.keyof.js"},{match:/([\:\?])/dgv,name:"keyword.operator.ternary.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))import(?=\p{space}*\()/dgv,name:"keyword.operator.expression.import.js"}]},"type-parameters":{begin:/(<)/dgv,beginCaptures:{"1":{name:"punctuation.definition.typeparameters.begin.js"}},end:/(>)/dgv,endCaptures:{"1":{name:"punctuation.definition.typeparameters.end.js"}},name:"meta.type.parameters.js",patterns:[{include:"#comment"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(extends|in|out|const)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"storage.modifier.js"},{include:"#type"},{include:"#punctuation-comma"},{match:/(=)(?!>)/dgv,name:"keyword.operator.assignment.js"}]},"type-paren-or-function-parameters":{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},name:"meta.type.paren.cover.js",patterns:[{captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"entity.name.function.js variable.language.this.js"},"4":{name:"entity.name.function.js"},"5":{name:"keyword.operator.optional.js"}},match:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(public|private|protected|readonly)\p{space}+)?(?:(\.\.\.)\p{space}*)?(?<![\:\=])(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(this)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))\p{space}*(\??)(?=\p{space}*(:\p{space}*((<)|(\(\p{space}*((\))|(\.\.\.)|([\$_\p{Alpha}\p{Nd}]+\p{space}*(([\,\:\=\?])|(\)\p{space}*=>)))))))|(:\p{space}*(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))Function(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))|(:\p{space}*((<\p{space}*)(?=\n?$)|(\(\p{space}*((([\[\{]\p{space}*)?)(?=\n?$)|((\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})\p{space}*((:\p{space}*\{?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))|((\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])\p{space}*((:\p{space}*\[?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*))))))))/dgv},{captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"variable.parameter.js variable.language.this.js"},"4":{name:"variable.parameter.js"},"5":{name:"keyword.operator.optional.js"}},match:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(public|private|protected|readonly)\p{space}+)?(?:(\.\.\.)\p{space}*)?(?<![\:\=])(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(this)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))\p{space}*(\??)(?=:)/dgv},{include:"#type-annotation"},{match:/,/dgv,name:"punctuation.separator.parameter.js"},{include:"#type"}]},"type-predicate-operator":{patterns:[{captures:{"1":{name:"keyword.operator.type.asserts.js"},"2":{name:"variable.parameter.js variable.language.this.js"},"3":{name:"variable.parameter.js"},"4":{name:"keyword.operator.expression.is.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(asserts)\p{space}+)?(?!asserts)(?:(this)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))\p{space}(is)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv},{captures:{"1":{name:"keyword.operator.type.asserts.js"},"2":{name:"variable.parameter.js variable.language.this.js"},"3":{name:"variable.parameter.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(asserts)\p{space}+(?!is)(?:(this)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))asserts(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.operator.type.asserts.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))is(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.operator.expression.is.js"}]},"type-primitive":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"support.type.primitive.js"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"type-tuple":{begin:/\[/dgv,beginCaptures:{"0":{name:"meta.brace.square.js"}},end:/\]/dgv,endCaptures:{"0":{name:"meta.brace.square.js"}},name:"meta.type.tuple.js",patterns:[{match:/\.\.\./dgv,name:"keyword.operator.rest.js"},{captures:{"1":{name:"entity.name.label.js"},"2":{name:"keyword.operator.optional.js"},"3":{name:"punctuation.separator.label.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(\?)?\p{space}*(:)/dgv},{include:"#type"},{include:"#punctuation-comma"}]},"typeof-operator":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))typeof(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"0":{name:"keyword.operator.expression.typeof.js"}},end:/(?=[\]\&\)\,\:\;\=\>\?\{\|\}]|(extends\p{space}+)|(?=\n?$)|;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))undefined(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"constant.language.undefined.js"},"var-expr":{patterns:[{begin:/(?=(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(var|let)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))/dgv,end:/(?!(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(var|let)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))((?=^|[\;\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)|((?<!^let|[^\$\._\p{Alpha}\p{Nd}]let|^var|[^\$\._\p{Alpha}\p{Nd}]var)(?=\p{space}*(?=\n?$))))/dgv,name:"meta.var.expr.js",patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(var|let)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.type.js"}},end:/(?=\P{space})/dgv},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#variable-initializer"},{include:"#comment"},{begin:/(,)\p{space}*(?=(?=\n?$)|\/\/)/dgv,beginCaptures:{"1":{name:"punctuation.separator.comma.js"}},end:/(?<!,)(((?=[\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|^\p{space}*(?=\n?$)))|((?<=\P{space})(?=\p{space}*(?=\n?$))))/dgv,patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:/(?=(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(const(?!\p{space}+enum\b))(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.type.js"}},end:/(?!(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(const(?!\p{space}+enum\b))(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))((?=^|[\;\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)|((?<!(?:^|[^\$\._\p{Alpha}\p{Nd}])const)(?=\p{space}*(?=\n?$))))/dgv,name:"meta.var.expr.js",patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(const(?!\p{space}+enum\b))(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.type.js"}},end:/(?=\P{space})/dgv},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:/(,)\p{space}*(?=(?=\n?$)|\/\/)/dgv,beginCaptures:{"1":{name:"punctuation.separator.comma.js"}},end:/(?<!,)(((?=[\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|^\p{space}*(?=\n?$)))|((?<=\P{space})(?=\p{space}*(?=\n?$))))/dgv,patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:/(?=(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b\b(using(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])|await\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b)\b(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.type.js"}},end:/(?!(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b\b(using(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])|await\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b)\b(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))((?=[\;\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)|((?<!(?:^|[^\$\._\p{Alpha}\p{Nd}]|^await\p{space}+|[^\$\._\p{Alpha}\p{Nd}]await\p{space}+)using)(?=\p{space}*(?=\n?$))))/dgv,name:"meta.var.expr.js",patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b\b(using(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])|await\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b)\b(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.type.js"}},end:/(?=\P{space})/dgv},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:/(,)\p{space}*((?!\P{space})|(?=\/\/))/dgv,beginCaptures:{"1":{name:"punctuation.separator.comma.js"}},end:/(?<!,)(((?=[\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|^\p{space}*(?=\n?$)))|((?<=\P{space})(?=\p{space}*(?=\n?$))))/dgv,patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]}]},"var-single-const":{patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*)(?=\\p{space}*(=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>)))))|(:\\p{space}*((<)|(\\(\\p{space}*((\\))|(\\.\\.\\.)|([\\$_\\p{Alpha}\\p{Nd}]+\\p{space}*(([\\,\\:\\=\\?])|(\\)\\p{space}*=>)))))))|(:\\p{space}*(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![\\$_\\p{Alpha}\\p{Nd}])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\p{space}*((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))))))|(:\\p{space}*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^\\<\\>]*>)|[^\\(\\)\\,\\<\\=\\>])+=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>))))))","dgv",{"lazyCompile":true}),beginCaptures:{"1":{name:"meta.definition.variable.js variable.other.constant.js entity.name.function.js"}},end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|(;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b))/dgv,name:"meta.var-single-variable.expr.js",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,beginCaptures:{"1":{name:"meta.definition.variable.js variable.other.constant.js"}},end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|(;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b))/dgv,name:"meta.var-single-variable.expr.js",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable":{patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*)(!)?(?=\\p{space}*(=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>)))))|(:\\p{space}*((<)|(\\(\\p{space}*((\\))|(\\.\\.\\.)|([\\$_\\p{Alpha}\\p{Nd}]+\\p{space}*(([\\,\\:\\=\\?])|(\\)\\p{space}*=>)))))))|(:\\p{space}*(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![\\$_\\p{Alpha}\\p{Nd}])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\p{space}*((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))))))|(:\\p{space}*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^\\<\\>]*>)|[^\\(\\)\\,\\<\\=\\>])+=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>))))))","dgv",{"lazyCompile":true}),beginCaptures:{"1":{name:"meta.definition.variable.js entity.name.function.js"},"2":{name:"keyword.operator.definiteassignment.js"}},end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|(;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b))/dgv,name:"meta.var-single-variable.expr.js",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:/(\p{Upper}[\$_\p{Nd}\p{Upper}]*)(?![\$_\p{Alpha}\p{Nd}])(!)?/dgv,beginCaptures:{"1":{name:"meta.definition.variable.js variable.other.constant.js"},"2":{name:"keyword.operator.definiteassignment.js"}},end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|(;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b))/dgv,name:"meta.var-single-variable.expr.js",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(!)?/dgv,beginCaptures:{"1":{name:"meta.definition.variable.js variable.other.readwrite.js"},"2":{name:"keyword.operator.definiteassignment.js"}},end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|(;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b))/dgv,name:"meta.var-single-variable.expr.js",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{patterns:[{include:"#type-annotation"},{include:"#string"},{include:"#comment"}]},"variable-initializer":{patterns:[{begin:/(?<![\!\=])(=)(?!=)(?=\p{space}*\P{space})(?!\p{space}*[^\n]*=>\p{space}*(?=\n?$))/dgv,beginCaptures:{"1":{name:"keyword.operator.assignment.js"}},end:/(?=(?=\n?$)|^|[\]\)\,\;\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+))/dgv,patterns:[{include:"#expression"}]},{begin:/(?<![\!\=])(=)(?!=)/dgv,beginCaptures:{"1":{name:"keyword.operator.assignment.js"}},end:/(?=[\]\)\,\;\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+))|(?=^\p{space}*(?=\n?$))|(?<![\-\&\*\+\/\|])(?<=\P{space})(?<!=)(?=\p{space}*(?=\n?$))/dgv,patterns:[{include:"#expression"}]}]}},scopeName:"source.js",embeddedLangs:undefined,aliases:["js"]})
3
+ const lang = Object.freeze({displayName:"JavaScript",name:"javascript",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{"access-modifier":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(abstract|declare|override|public|protected|private|readonly|static)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"storage.modifier.js"},"after-operator-block-as-object-literal":{begin:/(?<!\+\+|--)(?<=[\!\(\+\,\:\=\>\?\[]|^await|[^\$\._\p{Alpha}\p{Nd}]await|^return|[^\$\._\p{Alpha}\p{Nd}]return|^yield|[^\$\._\p{Alpha}\p{Nd}]yield|^throw|[^\$\._\p{Alpha}\p{Nd}]throw|^in|[^\$\._\p{Alpha}\p{Nd}]in|^of|[^\$\._\p{Alpha}\p{Nd}]of|^typeof|[^\$\._\p{Alpha}\p{Nd}]typeof|&&|\|\||\*)\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},name:"meta.objectliteral.js",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:/(?:(\.\.\.)\p{space}*)?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.array.js"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.js"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:/(?:(\.\.\.)\p{space}*)?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.array.js"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.js"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:/\p{space}*(\[)/dgv,beginCaptures:{"1":{name:"meta.brace.square.js"}},end:/\]/dgv,endCaptures:{"0":{name:"meta.brace.square.js"}},name:"meta.array.literal.js",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{"1":{name:"storage.modifier.async.js"},"2":{name:"variable.parameter.js"}},match:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))\b(async)\p{space}+)?([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?==>)/dgv,name:"meta.arrow.js"},{begin:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))\b(async))?((?<![\]\!\)\}])\p{space}*(?=((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)?\(\p{space}*(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*((\)\p{space}*:)|((\.\.\.\p{space}*)?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*:)))|(<\p{space}*[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}+extends\p{space}*[^\=\>])|((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)?\(\p{space}*(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*(([\$_\p{Alpha}]|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|(\.\.\.\p{space}*[\$_\p{Alpha}]))([^"'\(\)\`]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))*)?\)(\p{space}*:\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+)?\p{space}*=>)))/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:/(?==>|\{|^(\p{space}*(export|function|class|interface|let|var|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|const|import|enum|namespace|module|type|abstract|declare)\p{space}+))/dgv,name:"meta.arrow.js",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{begin:/=>/dgv,beginCaptures:{"0":{name:"storage.type.function.arrow.js"}},end:/((?<=[\}\P{space}])(?<!=>)|((?!\{)(?=\P{space})))(?!\/[\*\/])/dgv,name:"meta.arrow.js",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"arrow-return-type":{begin:/(?<=\))\p{space}*(:)/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:/(?==>|\{|^(\p{space}*(export|function|class|interface|let|var|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|const|import|enum|namespace|module|type|abstract|declare)\p{space}+))/dgv,name:"meta.return.type.arrow.js",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:/(?<=:)(?=\p{space}*\{)/dgv,end:/(?<=\})/dgv,patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"async-modifier":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(async)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"storage.modifier.async.js"},"binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern"},{include:"#array-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"}]},"binding-element-const":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern-const"},{include:"#array-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"}]},"boolean-literal":{patterns:[{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))true(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"constant.language.boolean.true.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))false(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"constant.language.boolean.false.js"}]},brackets:{patterns:[{begin:/\{/dgv,end:/\}|(?=\*\/)/dgv,patterns:[{include:"#brackets"}]},{begin:/\[/dgv,end:/\]|(?=\*\/)/dgv,patterns:[{include:"#brackets"}]}]},cast:{patterns:[{include:"#jsx"}]},"class-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(?:(abstract)\p{space}+)?\b(class)\b(?=\p{space}+|\/[\*\/])/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.js"},"4":{name:"storage.type.class.js"}},end:/(?<=\})/dgv,name:"meta.class.js",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{"0":{name:"entity.name.type.class.js"}},match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*/dgv},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"class-expression":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(abstract)\p{space}+)?(class)\b(?=\p{space}+|[\<\{]|\/[\*\/])/dgv,beginCaptures:{"1":{name:"storage.modifier.js"},"2":{name:"storage.type.class.js"}},end:/(?<=\})/dgv,name:"meta.class.js",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-or-interface-body":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},patterns:[{include:"#comment"},{include:"#decorator"},{begin:/(?<=:)\p{space}*/dgv,end:/(?=[\-\]\)\+\,\:\;\}\p{space}]|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,patterns:[{include:"#expression"}]},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#field-declaration"},{include:"#string"},{include:"#type-annotation"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#property-accessor"},{include:"#async-modifier"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"class-or-interface-heritage":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))\b(extends|implements)\b(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"1":{name:"storage.modifier.js"}},end:/(?=\{)/dgv,patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{include:"#type-parameters"},{include:"#expressionWithoutIdentifiers"},{captures:{"1":{name:"entity.name.type.module.js"},"2":{name:"punctuation.accessor.js"},"3":{name:"punctuation.accessor.optional.js"}},match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))(?=\p{space}*[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*(\p{space}*\??\.\p{space}*[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)*\p{space}*)/dgv},{captures:{"1":{name:"entity.other.inherited-class.js"}},match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv},{include:"#expressionPunctuations"}]},comment:{patterns:[{begin:/\/\*\*(?!\/)/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.js"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.js"}},name:"comment.block.documentation.js",patterns:[{include:"#docblock"}]},{begin:/(\/\*)(?:\p{space}*((@)internal)(?=\p{space}|(\*\/)))?/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.js"},"2":{name:"storage.type.internaldeclaration.js"},"3":{name:"punctuation.decorator.internaldeclaration.js"}},end:/\*\//dgv,endCaptures:{"0":{name:"punctuation.definition.comment.js"}},name:"comment.block.js"},{begin:/(^[\t ]+)?((\/\/)(?:\p{space}*((@)internal)(?=\p{space}|(?=\n?$)))?)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.js"},"2":{name:"comment.line.double-slash.js"},"3":{name:"punctuation.definition.comment.js"},"4":{name:"storage.type.internaldeclaration.js"},"5":{name:"punctuation.decorator.internaldeclaration.js"}},contentName:"comment.line.double-slash.js",end:/(?=(?=\n?$))/dgv}]},"control-statement":{patterns:[{include:"#switch-statement"},{include:"#for-loop"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(catch|finally|throw|try)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.control.trycatch.js"},{captures:{"1":{name:"keyword.control.loop.js"},"2":{name:"entity.name.label.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(break|continue|goto)\p{space}+([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(break|continue|do|goto|while)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.control.loop.js"},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(return)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"0":{name:"keyword.control.flow.js"}},end:/(?=[\;\}]|(?=\n?$)|;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,patterns:[{include:"#expression"}]},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(case|default|switch)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.control.switch.js"},{include:"#if-statement"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(else|if)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.control.conditional.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(with)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.control.with.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(package)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.control.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(debugger)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.other.debugger.js"}]},"decl-block":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},name:"meta.block.js",patterns:[{include:"#statements"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(declare|export)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"storage.modifier.js"}]},decorator:{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))@/dgv,beginCaptures:{"0":{name:"punctuation.decorator.js"}},end:/(?=\p{space})/dgv,name:"meta.decorator.js",patterns:[{include:"#expression"}]},"destructuring-const":{patterns:[{begin:/(?<![\:\=]|^of|[^\$\._\p{Alpha}\p{Nd}]of|^in|[^\$\._\p{Alpha}\p{Nd}]in)\p{space}*(?=\{)/dgv,end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+))/dgv,name:"meta.object-binding-pattern-variable.js",patterns:[{include:"#object-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]},{begin:/(?<![\:\=]|^of|[^\$\._\p{Alpha}\p{Nd}]of|^in|[^\$\._\p{Alpha}\p{Nd}]in)\p{space}*(?=\[)/dgv,end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+))/dgv,name:"meta.array-binding-pattern-variable.js",patterns:[{include:"#array-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-parameter":{patterns:[{begin:/(?<![\:\=])\p{space}*(?:(\.\.\.)\p{space}*)?(\{)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.object.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.js"}},name:"meta.parameter.object-binding-pattern.js",patterns:[{include:"#parameter-object-binding-element"}]},{begin:/(?<![\:\=])\p{space}*(?:(\.\.\.)\p{space}*)?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.array.js"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.js"}},name:"meta.paramter.array-binding-pattern.js",patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]}]},"destructuring-parameter-rest":{captures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"variable.parameter.js"}},match:/(?:(\.\.\.)\p{space}*)?([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv},"destructuring-variable":{patterns:[{begin:/(?<![\:\=]|^of|[^\$\._\p{Alpha}\p{Nd}]of|^in|[^\$\._\p{Alpha}\p{Nd}]in)\p{space}*(?=\{)/dgv,end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+))/dgv,name:"meta.object-binding-pattern-variable.js",patterns:[{include:"#object-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]},{begin:/(?<![\:\=]|^of|[^\$\._\p{Alpha}\p{Nd}]of|^in|[^\$\._\p{Alpha}\p{Nd}]in)\p{space}*(?=\[)/dgv,end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+))/dgv,name:"meta.array-binding-pattern-variable.js",patterns:[{include:"#array-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-variable-rest":{captures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"meta.definition.variable.js variable.other.readwrite.js"}},match:/(?:(\.\.\.)\p{space}*)?([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv},"destructuring-variable-rest-const":{captures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"meta.definition.variable.js variable.other.constant.js"}},match:/(?:(\.\.\.)\p{space}*)?([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv},directives:{begin:/^(\/\/\/)\p{space}*(?=<(reference|amd-dependency|amd-module)(\p{space}+(path|types|no-default-lib|lib|name|resolution-mode)\p{space}*=\p{space}*(('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)))+\p{space}*\/>\p{space}*(?=\n?$))/dgv,beginCaptures:{"1":{name:"punctuation.definition.comment.js"}},end:/(?=(?=\n?$))/dgv,name:"comment.line.triple-slash.directive.js",patterns:[{begin:/(<)(reference|amd-dependency|amd-module)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.directive.js"},"2":{name:"entity.name.tag.directive.js"}},end:/\/>/dgv,endCaptures:{"0":{name:"punctuation.definition.tag.directive.js"}},name:"meta.tag.js",patterns:[{match:/path|types|no-default-lib|lib|name|resolution-mode/dgv,name:"entity.other.attribute-name.directive.js"},{match:/=/dgv,name:"keyword.operator.assignment.js"},{include:"#string"}]}]},docblock:{patterns:[{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.access-type.jsdoc"}},match:/((@)a(?:ccess|pi))\p{space}+(p(?:rivate|rotected|ublic))\b/dgv},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"},"4":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"5":{name:"constant.other.email.link.underline.jsdoc"},"6":{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:/((@)author)\p{space}+([^\*\/\<\>\@\p{space}](?:[^\*\/\<\>\@]|\*[^\/])*)(?:\p{space}*(<)([^\>\p{space}]+)(>))?/dgv},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"},"4":{name:"keyword.operator.control.jsdoc"},"5":{name:"entity.name.type.instance.jsdoc"}},match:/((@)borrows)\p{space}+((?:[^\*\/\@\p{space}]|\*[^\/])+)\p{space}+(as)\p{space}+((?:[^\*\/\@\p{space}]|\*[^\/])+)/dgv},{begin:/((@)example)\p{space}+/dgv,beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:/(?=@|\*\/)/dgv,name:"meta.example.jsdoc",patterns:[{match:/^\p{space}\*\p{space}+/dgv},{begin:/(<)caption(>)/dgvy,beginCaptures:{"0":{name:"entity.name.tag.inline.jsdoc"},"1":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.angle.end.jsdoc"}},contentName:"constant.other.description.jsdoc",end:/(<\/)caption(>)|(?=\*\/)/dgv,endCaptures:{"0":{name:"entity.name.tag.inline.jsdoc"},"1":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{"0":{name:"source.embedded.js"}},match:/[^\*\@\p{space}](?:[^\*]|\*[^\/])*/dgv}]},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.symbol-type.jsdoc"}},match:/((@)kind)\p{space}+(class|constant|event|external|file|function|member|mixin|module|namespace|typedef)\b/dgv},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.link.underline.jsdoc"},"4":{name:"entity.name.type.instance.jsdoc"}},match:/((@)see)\p{space}+(?:((?=https?:\/\/)(?:[^\*\p{space}]|\*[^\/])+)|((?!https?:\/\/|(?:\[[^\]\[]*\])?\{@(?:link|linkcode|linkplain|tutorial)\b)(?:[^\*\/\@\p{space}]|\*[^\/])+))/dgv},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}},match:/((@)template)\p{space}+([\$A-Z_a-z][\]\$\.\[\p{L}\p{M}\p{N}\p{Pc}]*(?:\p{space}*,\p{space}*[\$A-Z_a-z][\]\$\.\[\p{L}\p{M}\p{N}\p{Pc}]*)*)/dgv},{begin:/((@)template)\p{space}+(?=\{)/dgv,beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:/(?=\p{space}|\*\/|[^\]\$A-\[_a-\{\}])/dgv,patterns:[{include:"#jsdoctype"},{match:/([\$A-Z_a-z][\]\$\.\[\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,name:"variable.other.jsdoc"}]},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}},match:/((@)(?:arg|argument|const|constant|member|namespace|param|var))\p{space}+([\$A-Z_a-z][\]\$\.\[\p{L}\p{M}\p{N}\p{Pc}]*)/dgv},{begin:/((@)typedef)\p{space}+(?=\{)/dgv,beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:/(?=\p{space}|\*\/|[^\]\$A-\[_a-\{\}])/dgv,patterns:[{include:"#jsdoctype"},{match:/(?:[^\*\/\@\p{space}]|\*[^\/])+/dgv,name:"entity.name.type.instance.jsdoc"}]},{begin:/((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\p{space}+(?=\{)/dgv,beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:/(?=\p{space}|\*\/|[^\]\$A-\[_a-\{\}])/dgv,patterns:[{include:"#jsdoctype"},{match:/([\$A-Z_a-z][\]\$\.\[\p{L}\p{M}\p{N}\p{Pc}]*)/dgv,name:"variable.other.jsdoc"},{captures:{"1":{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},"2":{name:"keyword.operator.assignment.jsdoc"},"3":{name:"source.embedded.js"},"4":{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},"5":{name:"invalid.illegal.syntax.jsdoc"}},match:/*@__PURE__*/ new EmulatedRegExp("(\\[)\\p{space}*[\\$\\p{L}\\p{M}\\p{N}\\p{Pc}]+(?:(?:\\[\\])?\\.[\\$\\p{L}\\p{M}\\p{N}\\p{Pc}]+)*(?:\\p{space}*(=)\\p{space}*((?:(?=(\"(?:\\*(?!/)|\\\\(?!\")|[^\\*\\\\])*?\"|'(?:\\*(?!/)|\\\\(?!')|[^\\*\\\\])*?'|\\[(?:\\*(?!/)|[^\\*])*?\\]|(?:\\*(?!/)|\\p{space}(?!\\p{space}*\\])|\\[[^\\n]*?(?:\\]|(?=\\*/))|[^\\]\\*\\[\\p{space}])*))\\4)*))?\\p{space}*(?:(\\])((?:[^\\*\\p{space}]|\\*[^\\/\\p{space}])+)?|(?=\\*/))","dgv",{"hiddenCaptures":[4]}),name:"variable.other.jsdoc"}]},{begin:/((@)(?:define|enum|exception|export|extends|lends|implements|modifies|namespace|private|protected|returns?|satisfies|suppress|this|throws|type|yields?))\p{space}+(?=\{)/dgv,beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:/(?=\p{space}|\*\/|[^\]\$A-\[_a-\{\}])/dgv,patterns:[{include:"#jsdoctype"}]},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"}},match:/((@)(?:alias|augments|callback|constructs|emits|event|fires|exports?|extends|external|function|func|host|lends|listens|interface|memberof!?|method|module|mixes|mixin|name|requires|see|this|typedef|uses))\p{space}+((?:[^\*\@\{\}\p{space}]|\*[^\/])+)/dgv},{begin:/((@)(?:default(?:value)?|license|version))\p{space}+((["']))/dgv,beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"},"4":{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:/(\3)|(?=(?=\n?$)|\*\/)()()/dgv,endCaptures:{"0":{name:"variable.other.jsdoc"},"1":{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}},match:/((@)(?:default(?:value)?|license|tutorial|variation|version))\p{space}+([^\*\p{space}]+)/dgv},{captures:{"1":{name:"punctuation.definition.block.tag.jsdoc"}},match:/(@)(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func|function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce|yields?)\b/dgv,name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},match:/((@)[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(?=\p{space}+)/dgv}]},"enum-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?(?:\b(const)\p{space}+)?\b(enum)\p{space}+([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.js"},"4":{name:"storage.type.enum.js"},"5":{name:"entity.name.type.enum.js"}},end:/(?<=\})/dgv,name:"meta.enum.declaration.js",patterns:[{include:"#comment"},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},patterns:[{include:"#comment"},{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,beginCaptures:{"0":{name:"variable.other.enummember.js"}},end:/(?=[\,\}]|(?=\n?$))/dgv,patterns:[{include:"#comment"},{include:"#variable-initializer"}]},{begin:/(?=(('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\])))/dgv,end:/(?=[\,\}]|(?=\n?$))/dgv,patterns:[{include:"#string"},{include:"#array-literal"},{include:"#comment"},{include:"#variable-initializer"}]},{include:"#punctuation-comma"}]}]},"export-declaration":{patterns:[{captures:{"1":{name:"keyword.control.export.js"},"2":{name:"keyword.control.as.js"},"3":{name:"storage.type.namespace.js"},"4":{name:"entity.name.type.module.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(export)\p{space}+(as)\p{space}+(namespace)\p{space}+([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(export)(?:\p{space}+(type))?(?:\p{space}*(=)|\p{space}+(default)(?=\p{space}+))/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"keyword.control.type.js"},"3":{name:"keyword.operator.assignment.js"},"4":{name:"keyword.control.default.js"}},end:/(?=(?=\n?$)|;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,name:"meta.export.default.js",patterns:[{include:"#interface-declaration"},{include:"#expression"}]},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(export)(?:\p{space}+(type))?\b(?!(\$)|(\p{space}*:))((?=\p{space}*[\*\{])|((?=\p{space}*[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*([\,\p{space}]))(?!\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)))/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"keyword.control.type.js"}},end:/(?=(?=\n?$)|;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,name:"meta.export.js",patterns:[{include:"#import-export-declaration"}]}]},expression:{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{captures:{"1":{name:"storage.modifier.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(override|public|protected|private|readonly)\p{space}+(?=(override|public|protected|private|readonly)\p{space}+)/dgv},{captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"entity.name.function.js variable.language.this.js"},"4":{name:"entity.name.function.js"},"5":{name:"keyword.operator.optional.js"}},match:/*@__PURE__*/ new EmulatedRegExp("(?:(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\p{space}+)?(?:(\\.\\.\\.)\\p{space}*)?(?<![\\:\\=])(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*))(?![\\$_\\p{Alpha}\\p{Nd}])(?:(?=\\.\\.\\.)|(?!\\.))\\p{space}*(\\??)(?=\\p{space}*(=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>)))))|(:\\p{space}*((<)|(\\(\\p{space}*((\\))|(\\.\\.\\.)|([\\$_\\p{Alpha}\\p{Nd}]+\\p{space}*(([\\,\\:\\=\\?])|(\\)\\p{space}*=>)))))))|(:\\p{space}*(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![\\$_\\p{Alpha}\\p{Nd}])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\p{space}*((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))))))|(:\\p{space}*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^\\<\\>]*>)|[^\\(\\)\\,\\<\\=\\>])+=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>))))))","dgv",{"lazyCompile":true})},{captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"variable.parameter.js variable.language.this.js"},"4":{name:"variable.parameter.js"},"5":{name:"keyword.operator.optional.js"}},match:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(override|public|private|protected|readonly)\p{space}+)?(?:(\.\.\.)\p{space}*)?(?<![\:\=])(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(this)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))\p{space}*(\??)(?=\p{space}*[\,\:]|(?=\n?$))/dgv},{include:"#type-annotation"},{include:"#variable-initializer"},{match:/,/dgv,name:"punctuation.separator.parameter.js"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-operators":{patterns:[{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(await)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.control.flow.js"},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(yield)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))(?=\p{space}*\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*\*)/dgv,beginCaptures:{"1":{name:"keyword.control.flow.js"}},end:/\*/dgv,endCaptures:{"0":{name:"keyword.generator.asterisk.js"}},patterns:[{include:"#comment"}]},{captures:{"1":{name:"keyword.control.flow.js"},"2":{name:"keyword.generator.asterisk.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(yield)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))(?:\p{space}*(\*))?/dgv},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))delete(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.operator.expression.delete.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))in(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))(?!\()/dgv,name:"keyword.operator.expression.in.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))of(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))(?!\()/dgv,name:"keyword.operator.expression.of.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))instanceof(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.operator.expression.instanceof.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))new(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.operator.new.js"},{include:"#typeof-operator"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))void(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.operator.expression.void.js"},{captures:{"1":{name:"keyword.control.as.js"},"2":{name:"storage.modifier.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(as)\p{space}+(const)(?=\p{space}*((?=\n?$)|[\]\)\,\:\;\}]))/dgv},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(as)|(satisfies))\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.control.as.js"},"2":{name:"keyword.control.satisfies.js"}},end:/(?=^|[\-\]\)\+\,\:\;\>\?\}]|\|\||&&|!==|(?=\n?$)|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(as|satisfies)\p{space}+)|(\p{space}+<))/dgv,patterns:[{include:"#type"}]},{match:/\.\.\./dgv,name:"keyword.operator.spread.js"},{match:/(?:\*|(?<!\()\/|[\-\%\+])=/dgv,name:"keyword.operator.assignment.compound.js"},{match:/(?:[\&\^]|<<|>>>??|\|)=/dgv,name:"keyword.operator.assignment.compound.bitwise.js"},{match:/<<|>>>?/dgv,name:"keyword.operator.bitwise.shift.js"},{match:/[\!\=]==?/dgv,name:"keyword.operator.comparison.js"},{match:/<=|>=|<>|[\<\>]/dgv,name:"keyword.operator.relational.js"},{captures:{"1":{name:"keyword.operator.logical.js"},"2":{name:"keyword.operator.assignment.compound.js"},"3":{name:"keyword.operator.arithmetic.js"}},match:/(?<=[\$_\p{Alpha}\p{Nd}])(!)\p{space}*(?:(\/=)|(\/)(?![\*\/]))/dgv},{match:/!|&&|\|\||\?\?/dgv,name:"keyword.operator.logical.js"},{match:/[\&\^\|\~]/dgv,name:"keyword.operator.bitwise.js"},{match:/=/dgv,name:"keyword.operator.assignment.js"},{match:/--/dgv,name:"keyword.operator.decrement.js"},{match:/\+\+/dgv,name:"keyword.operator.increment.js"},{match:/[\-\%\*\+\/]/dgv,name:"keyword.operator.arithmetic.js"},{begin:/(?<=[\]\$\)_\p{Alpha}\p{Nd}])\p{space}*(?=(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)+(?:(\/=)|(\/)(?![\*\/])))/dgv,end:/(\/=)|(\/)(?!\*([^\*]|(\*[^\/]))*\*\/)/dgv,endCaptures:{"1":{name:"keyword.operator.assignment.compound.js"},"2":{name:"keyword.operator.arithmetic.js"}},patterns:[{include:"#comment"}]},{captures:{"1":{name:"keyword.operator.assignment.compound.js"},"2":{name:"keyword.operator.arithmetic.js"}},match:/(?<=[\]\$\)_\p{Alpha}\p{Nd}])\p{space}*(?:(\/=)|(\/)(?![\*\/]))/dgv}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#jsx"},{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:/(?<!\()(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(readonly)\p{space}+)?(?=\p{space}*(\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(?:(?:(\?)|(!))\p{space}*)?([\,\:\;\=\}]|(?=\n?$)))/dgv,beginCaptures:{"1":{name:"storage.modifier.js"}},end:/(?=[\,\;\}]|(?=\n?$)|^((?!\p{space}*(\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(?:(?:(\?)|(!))\p{space}*)?([\,\:\;\=]|(?=\n?$)))))|(?<=\})/dgv,name:"meta.field.declaration.js",patterns:[{include:"#variable-initializer"},{include:"#type-annotation"},{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{include:"#comment"},{captures:{"1":{name:"meta.definition.property.js entity.name.function.js"},"2":{name:"keyword.operator.optional.js"},"3":{name:"keyword.operator.definiteassignment.js"}},match:/*@__PURE__*/ new EmulatedRegExp("(#?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*)(?:(\\?)|(!))?(?=\\p{space}*\\p{space}*(=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>)))))|(:\\p{space}*((<)|(\\(\\p{space}*((\\))|(\\.\\.\\.)|([\\$_\\p{Alpha}\\p{Nd}]+\\p{space}*(([\\,\\:\\=\\?])|(\\)\\p{space}*=>)))))))|(:\\p{space}*(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![\\$_\\p{Alpha}\\p{Nd}])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\p{space}*((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))))))|(:\\p{space}*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^\\<\\>]*>)|[^\\(\\)\\,\\<\\=\\>])+=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>))))))","dgv",{"lazyCompile":true})},{match:/#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*/dgv,name:"meta.definition.property.js variable.object.property.js"},{match:/\?/dgv,name:"keyword.operator.optional.js"},{match:/!/dgv,name:"keyword.operator.definiteassignment.js"}]},"for-loop":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))for(?=((\p{space}+|(\p{space}*\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*))await)?\p{space}*(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)?(\())/dgv,beginCaptures:{"0":{name:"keyword.control.loop.js"}},end:/(?<=\))/dgv,patterns:[{include:"#comment"},{match:/await/dgv,name:"keyword.control.loop.js"},{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#var-expr"},{include:"#expression"},{include:"#punctuation-semicolon"}]}]},"function-body":{patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#return-type"},{include:"#type-function-return-type"},{include:"#decl-block"},{match:/\*/dgv,name:"keyword.generator.asterisk.js"}]},"function-call":{patterns:[{begin:/(?=(((([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(\p{space}*\??\.\p{space}*(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))*)|(\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))|(?<=\)))\p{space}*(?:(\?\.\p{space}*)|(!))?((<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))(([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\p{space}*)?\())/dgv,end:/(?<=\))(?!(((([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(\p{space}*\??\.\p{space}*(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))*)|(\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))|(?<=\)))\p{space}*(?:(\?\.\p{space}*)|(!))?((<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))(([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\p{space}*)?\())/dgv,patterns:[{begin:/(?=(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(\p{space}*\??\.\p{space}*(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))*)|(\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))/dgv,end:/(?=\p{space}*(?:(\?\.\p{space}*)|(!))?((<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))(([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\p{space}*)?\())/dgv,name:"meta.function-call.js",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:/(?=(((([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(\p{space}*\??\.\p{space}*(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))*)|(\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))|(?<=\)))(<\p{space}*[\(\[\{]\p{space}*)(?=\n?$))/dgv,end:/(?<=>)(?!(((([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(\p{space}*\??\.\p{space}*(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))*)|(\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))|(?<=\)))(<\p{space}*[\(\[\{]\p{space}*)(?=\n?$))/dgv,patterns:[{begin:/(?=(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(\p{space}*\??\.\p{space}*(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))*)|(\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))/dgv,end:/(?=(<\p{space}*[\(\[\{]\p{space}*)(?=\n?$))/dgv,name:"meta.function-call.js",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:/\?\./dgv,name:"meta.function-call.js punctuation.accessor.optional.js"},{match:/!/dgv,name:"meta.function-call.js keyword.operator.definiteassignment.js"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:/(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,name:"entity.name.function.js"}]},"function-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?(?:(async)\p{space}+)?(function)\b(?:\p{space}*(\*))?(?:(?:\p{space}+|(?<=\*))([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))?\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.async.js"},"4":{name:"storage.type.function.js"},"5":{name:"keyword.generator.asterisk.js"},"6":{name:"meta.definition.function.js entity.name.function.js"}},end:/(?=;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)|(?<=\})/dgv,name:"meta.function.js",patterns:[{include:"#function-name"},{include:"#function-body"}]},"function-expression":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(async)\p{space}+)?(function)\b(?:\p{space}*(\*))?(?:(?:\p{space}+|(?<=\*))([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))?\p{space}*/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"},"2":{name:"storage.type.function.js"},"3":{name:"keyword.generator.asterisk.js"},"4":{name:"meta.definition.function.js entity.name.function.js"}},end:/(?=;)|(?<=\})/dgv,name:"meta.function.expression.js",patterns:[{include:"#function-name"},{include:"#single-line-comment-consuming-line-ending"},{include:"#function-body"}]},"function-name":{match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*/dgv,name:"meta.definition.function.js entity.name.function.js"},"function-parameters":{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.js"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.parameters.end.js"}},name:"meta.parameters.js",patterns:[{include:"#function-parameters-body"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{include:"#parameter-name"},{include:"#parameter-type-annotation"},{include:"#variable-initializer"},{match:/,/dgv,name:"punctuation.separator.parameter.js"}]},identifiers:{patterns:[{include:"#object-identifiers"},{captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"entity.name.function.js"}},match:/(?:(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*)?([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(?=\p{space}*=\p{space}*(((async\p{space}+)?((function\p{space}*[\(\*\<])|(function\p{space}+)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*=>)))|((async\p{space}*)?(((<\p{space}*)(?=\n?$)|(\(\p{space}*((([\[\{]\p{space}*)?)(?=\n?$)|((\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})\p{space}*((:\p{space}*\{?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))|((\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])\p{space}*((:\p{space}*\[?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*))))))|((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)?\(\p{space}*(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*((\)\p{space}*:)|((\.\.\.\p{space}*)?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*:)))|(<\p{space}*[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}+extends\p{space}*[^\=\>])|((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)?\(\p{space}*(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*(([\$_\p{Alpha}]|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|(\.\.\.\p{space}*[\$_\p{Alpha}]))([^"'\(\)\`]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))*)?\)(\p{space}*:\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+)?\p{space}*=>)))))/dgv},{captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"variable.other.constant.property.js"}},match:/(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*(#?\p{Upper}[\$_\p{Nd}\p{Upper}]*)(?![\$_\p{Alpha}\p{Nd}])/dgv},{captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"variable.other.property.js"}},match:/(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv},{match:/(\p{Upper}[\$_\p{Nd}\p{Upper}]*)(?![\$_\p{Alpha}\p{Nd}])/dgv,name:"variable.other.constant.js"},{match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*/dgv,name:"variable.other.readwrite.js"}]},"if-statement":{patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?=\bif\p{space}*(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))\p{space}*(?!\{))/dgv,end:/(?=;|(?=\n?$)|\})/dgv,patterns:[{include:"#comment"},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(if)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.control.conditional.js"},"2":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression"}]},{begin:/(?<=\))\p{space}*\/(?![\*\/])(?=(?:[^\/\[\\]|\\[^\n]|\[([^\]\\]|\\[^\n])*\])+\/([dgimsuvy]+|(?![\*\/])|(?=\/\*))(?!\p{space}*[\$0-9A-Z_a-z]))/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},end:/(\/)([dgimsuvy]*)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.js"},"2":{name:"keyword.other.js"}},name:"string.regexp.js",patterns:[{include:"#regexp"}]},{include:"#statements"}]}]},"import-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(import)(?:\p{space}+(type)(?!\p{space}+from))?(?!\p{space}*[\(\:])(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"keyword.control.import.js"},"4":{name:"keyword.control.type.js"}},end:/(?<!(?:^|[^\$\._\p{Alpha}\p{Nd}])import)(?=;|(?=\n?$)|^)/dgv,name:"meta.import.js",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#string"},{begin:/(?<=(?:^|[^\$\._\p{Alpha}\p{Nd}])import)(?!\p{space}*["'])/dgv,end:/\bfrom\b/dgv,endCaptures:{"0":{name:"keyword.control.from.js"}},patterns:[{include:"#import-export-declaration"}]},{include:"#import-export-declaration"}]},"import-equals-declaration":{patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(import)(?:\p{space}+(type))?\p{space}+([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(=)\p{space}*(require)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"keyword.control.import.js"},"4":{name:"keyword.control.type.js"},"5":{name:"variable.other.readwrite.alias.js"},"6":{name:"keyword.operator.assignment.js"},"7":{name:"keyword.control.require.js"},"8":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},name:"meta.import-equals.external.js",patterns:[{include:"#comment"},{include:"#string"}]},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(import)(?:\p{space}+(type))?\p{space}+([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(=)\p{space}*(?!require\b)/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"keyword.control.import.js"},"4":{name:"keyword.control.type.js"},"5":{name:"variable.other.readwrite.alias.js"},"6":{name:"keyword.operator.assignment.js"}},end:/(?=;|(?=\n?$)|^)/dgv,name:"meta.import-equals.internal.js",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{captures:{"1":{name:"entity.name.type.module.js"},"2":{name:"punctuation.accessor.js"},"3":{name:"punctuation.accessor.optional.js"}},match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))/dgv},{match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,name:"variable.other.readwrite.js"}]}]},"import-export-assert-clause":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(with)|(assert))\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"keyword.control.with.js"},"2":{name:"keyword.control.assert.js"},"3":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},patterns:[{include:"#comment"},{include:"#string"},{match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*(?=(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*:)/dgv,name:"meta.object-literal.key.js"},{match:/:/dgv,name:"punctuation.separator.key-value.js"}]},"import-export-block":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},name:"meta.block.js",patterns:[{include:"#import-export-clause"}]},"import-export-clause":{patterns:[{include:"#comment"},{captures:{"1":{name:"keyword.control.type.js"},"2":{name:"keyword.control.default.js"},"3":{name:"constant.language.import-export-all.js"},"4":{name:"variable.other.readwrite.js"},"5":{name:"string.quoted.alias.js"},"12":{name:"keyword.control.as.js"},"13":{name:"keyword.control.default.js"},"14":{name:"variable.other.readwrite.alias.js"},"15":{name:"string.quoted.alias.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(type)\p{space}+)?(?:\b(default)|(\*)|\b([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|(('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)))\p{space}+(as)\p{space}+(?:(default(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|(('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)))/dgv},{include:"#punctuation-comma"},{match:/\*/dgv,name:"constant.language.import-export-all.js"},{match:/\b(default)\b/dgv,name:"keyword.control.default.js"},{captures:{"1":{name:"keyword.control.type.js"},"2":{name:"variable.other.readwrite.alias.js"},"3":{name:"string.quoted.alias.js"}},match:/(?:\b(type)\p{space}+)?(?:([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|(('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)))/dgv}]},"import-export-declaration":{patterns:[{include:"#comment"},{include:"#string"},{include:"#import-export-block"},{match:/\bfrom\b/dgv,name:"keyword.control.from.js"},{include:"#import-export-assert-clause"},{include:"#import-export-clause"}]},"indexer-declaration":{begin:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(readonly)\p{space}*)?\p{space}*(\[)\p{space}*([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?=:)/dgv,beginCaptures:{"1":{name:"storage.modifier.js"},"2":{name:"meta.brace.square.js"},"3":{name:"variable.parameter.js"}},end:/(\])\p{space}*(\?\p{space}*)?|(?=\n?$)/dgv,endCaptures:{"1":{name:"meta.brace.square.js"},"2":{name:"keyword.operator.optional.js"}},name:"meta.indexer.declaration.js",patterns:[{include:"#type-annotation"}]},"indexer-mapped-type-declaration":{begin:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))([\-\+])?(readonly)\p{space}*)?\p{space}*(\[)\p{space}*([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}+(in)\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.operator.type.modifier.js"},"2":{name:"storage.modifier.js"},"3":{name:"meta.brace.square.js"},"4":{name:"entity.name.type.js"},"5":{name:"keyword.operator.expression.in.js"}},end:/(\])([\-\+])?\p{space}*(\?\p{space}*)?|(?=\n?$)/dgv,endCaptures:{"1":{name:"meta.brace.square.js"},"2":{name:"keyword.operator.type.modifier.js"},"3":{name:"keyword.operator.optional.js"}},name:"meta.indexer.mappedtype.declaration.js",patterns:[{captures:{"1":{name:"keyword.control.as.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(as)\p{space}+/dgv},{include:"#type"}]},"inline-tags":{patterns:[{captures:{"1":{name:"punctuation.definition.bracket.square.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.square.end.jsdoc"}},match:/(\[)[^\]]+(\])(?=\{@(?:link|linkcode|linkplain|tutorial))/dgv,name:"constant.other.description.jsdoc"},{begin:/(\{)((@)(?:link(?:code|plain)?|tutorial))\p{space}*/dgv,beginCaptures:{"1":{name:"punctuation.definition.bracket.curly.begin.jsdoc"},"2":{name:"storage.type.class.jsdoc"},"3":{name:"punctuation.definition.inline.tag.jsdoc"}},end:/\}|(?=\*\/)/dgv,endCaptures:{"0":{name:"punctuation.definition.bracket.curly.end.jsdoc"}},name:"entity.name.type.instance.jsdoc",patterns:[{captures:{"1":{name:"variable.other.link.underline.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}},match:/((?=https?:\/\/)(?:[^\*\|\}\p{space}]|\*\/)+)(\|)?/dgvy},{captures:{"1":{name:"variable.other.description.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}},match:/((?:[^\*\@\{\|\}\p{space}]|\*[^\/])+)(\|)?/dgvy}]}]},"instanceof-expr":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(instanceof)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"1":{name:"keyword.operator.expression.instanceof.js"}},end:/(?<=\))|(?=[\-\]\)\+\,\:\;\>\?\}]|\|\||&&|!==|(?=\n?$)|([\!\=]==?)|(([\&\^\|\~]\p{space}*)?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}+instanceof(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))function((\p{space}+[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|(\p{space}*\())))/dgv,patterns:[{include:"#type"}]},"interface-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(?:(abstract)\p{space}+)?\b(interface)\b(?=\p{space}+|\/[\*\/])/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.js"},"4":{name:"storage.type.interface.js"}},end:/(?<=\})/dgv,name:"meta.interface.js",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{"0":{name:"entity.name.type.interface.js"}},match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*/dgv},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},jsdoctype:{patterns:[{begin:/(\{)/dgvy,beginCaptures:{"0":{name:"entity.name.type.instance.jsdoc"},"1":{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},contentName:"entity.name.type.instance.jsdoc",end:/((\}))\p{space}*|(?=\*\/)/dgv,endCaptures:{"1":{name:"entity.name.type.instance.jsdoc"},"2":{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},jsx:{patterns:[{include:"#jsx-tag-without-attributes-in-expression"},{include:"#jsx-tag-in-expression"}]},"jsx-children":{patterns:[{include:"#jsx-tag-without-attributes"},{include:"#jsx-tag"},{include:"#jsx-evaluated-code"},{include:"#jsx-entities"}]},"jsx-entities":{patterns:[{captures:{"1":{name:"punctuation.definition.entity.js"},"3":{name:"punctuation.definition.entity.js"}},match:/(&)([0-9A-Za-z]+|#[0-9]+|#x\p{AHex}+)(;)/dgv,name:"constant.character.entity.js"}]},"jsx-evaluated-code":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.section.embedded.begin.js"}},contentName:"meta.embedded.expression.js",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.section.embedded.end.js"}},patterns:[{include:"#expression"}]},"jsx-string-double-quoted":{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.js"}},name:"string.quoted.double.js",patterns:[{include:"#jsx-entities"}]},"jsx-string-single-quoted":{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},end:/'/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.js"}},name:"string.quoted.single.js",patterns:[{include:"#jsx-entities"}]},"jsx-tag":{begin:/(?=(<)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))(?=((<\p{space}*)|(\p{space}+))(?!\?)|\/?>))/dgv,end:/(\/>)|(<\/)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))?\p{space}*(>)/dgv,endCaptures:{"1":{name:"punctuation.definition.tag.end.js"},"2":{name:"punctuation.definition.tag.begin.js"},"3":{name:"entity.name.tag.namespace.js"},"4":{name:"punctuation.separator.namespace.js"},"5":{name:"entity.name.tag.js"},"6":{name:"support.class.component.js"},"7":{name:"punctuation.definition.tag.end.js"}},name:"meta.tag.js",patterns:[{begin:/(<)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))(?=((<\p{space}*)|(\p{space}+))(?!\?)|\/?>)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.begin.js"},"2":{name:"entity.name.tag.namespace.js"},"3":{name:"punctuation.separator.namespace.js"},"4":{name:"entity.name.tag.js"},"5":{name:"support.class.component.js"}},end:/(?=\/?>)/dgv,patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:/(>)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.end.js"}},contentName:"meta.jsx.children.js",end:/(?=<\/)/dgv,patterns:[{include:"#jsx-children"}]}]},"jsx-tag-attribute-assignment":{match:/=(?=\p{space}*(?:["'\{]|\/\*|\/\/|\n))/dgv,name:"keyword.operator.assignment.js"},"jsx-tag-attribute-name":{captures:{"1":{name:"entity.other.attribute-name.namespace.js"},"2":{name:"punctuation.separator.namespace.js"},"3":{name:"entity.other.attribute-name.js"}},match:/\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(:))?([\$_\p{Alpha}][\-\$_\p{Alpha}\p{Nd}]*)(?=[\=\p{space}]|\/?>|\/\*|\/\/)/dgv},"jsx-tag-attributes":{begin:/\p{space}+/dgv,end:/(?=\/?>)/dgv,name:"meta.tag.attributes.js",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attributes-illegal":{match:/\P{space}+/dgv,name:"invalid.illegal.attribute.js"},"jsx-tag-in-expression":{begin:/(?<!\+\+|--)(?<=[\(\*\,\:\=\>\?\[\{]|&&|\|\||\?|\*\/|^await|[^\$\._\p{Alpha}\p{Nd}]await|^return|[^\$\._\p{Alpha}\p{Nd}]return|^default|[^\$\._\p{Alpha}\p{Nd}]default|^yield|[^\$\._\p{Alpha}\p{Nd}]yield|^)\p{space}*(?!<\p{space}*[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*((\p{space}+extends\p{space}+[^\=\>])|,))(?=(<)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))(?=((<\p{space}*)|(\p{space}+))(?!\?)|\/?>))/dgv,end:/(?!(<)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))(?=((<\p{space}*)|(\p{space}+))(?!\?)|\/?>))/dgv,patterns:[{include:"#jsx-tag"}]},"jsx-tag-without-attributes":{begin:/(<)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))?\p{space}*(>)/dgv,beginCaptures:{"1":{name:"punctuation.definition.tag.begin.js"},"2":{name:"entity.name.tag.namespace.js"},"3":{name:"punctuation.separator.namespace.js"},"4":{name:"entity.name.tag.js"},"5":{name:"support.class.component.js"},"6":{name:"punctuation.definition.tag.end.js"}},contentName:"meta.jsx.children.js",end:/(<\/)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))?\p{space}*(>)/dgv,endCaptures:{"1":{name:"punctuation.definition.tag.begin.js"},"2":{name:"entity.name.tag.namespace.js"},"3":{name:"punctuation.separator.namespace.js"},"4":{name:"entity.name.tag.js"},"5":{name:"support.class.component.js"},"6":{name:"punctuation.definition.tag.end.js"}},name:"meta.tag.without-attributes.js",patterns:[{include:"#jsx-children"}]},"jsx-tag-without-attributes-in-expression":{begin:/(?<!\+\+|--)(?<=[\(\*\,\:\=\>\?\[\{]|&&|\|\||\?|\*\/|^await|[^\$\._\p{Alpha}\p{Nd}]await|^return|[^\$\._\p{Alpha}\p{Nd}]return|^default|[^\$\._\p{Alpha}\p{Nd}]default|^yield|[^\$\._\p{Alpha}\p{Nd}]yield|^)\p{space}*(?=(<)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))?\p{space}*(>))/dgv,end:/(?!(<)\p{space}*(?:([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*)(?<![\-\.])(:))?((?:[a-z][0-9a-z]*|([\$_\p{Alpha}][\-\$\._\p{Alpha}\p{Nd}]*))(?<![\-\.]))?\p{space}*(>))/dgv,patterns:[{include:"#jsx-tag-without-attributes"}]},label:{patterns:[{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(:)(?=\p{space}*\{)/dgv,beginCaptures:{"1":{name:"entity.name.label.js"},"2":{name:"punctuation.separator.label.js"}},end:/(?<=\})/dgv,patterns:[{include:"#decl-block"}]},{captures:{"1":{name:"entity.name.label.js"},"2":{name:"punctuation.separator.label.js"}},match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(:)/dgv}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"method-declaration":{patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(override)\p{space}+)?(?:\b(p(?:ublic|rivate|rotected))\p{space}+)?(?:\b(abstract)\p{space}+)?(?:\b(async)\p{space}+)?\p{space}*\b(constructor)\b(?!:)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"1":{name:"storage.modifier.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.js"},"4":{name:"storage.modifier.async.js"},"5":{name:"storage.type.js"}},end:/(?=[\,\;\}]|(?=\n?$))|(?<=\})/dgv,name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(override)\p{space}+)?(?:\b(p(?:ublic|rivate|rotected))\p{space}+)?(?:\b(abstract)\p{space}+)?(?:\b(async)\p{space}+)?(?:\p{space}*\b(new)\b(?!:)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))|(?:(\*)\p{space}*)?)(?=\p{space}*((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*))?\()/dgv,beginCaptures:{"1":{name:"storage.modifier.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.js"},"4":{name:"storage.modifier.async.js"},"5":{name:"keyword.operator.new.js"},"6":{name:"keyword.generator.asterisk.js"}},end:/(?=[\,\;\}]|(?=\n?$))|(?<=\})/dgv,name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(override)\p{space}+)?(?:\b(p(?:ublic|rivate|rotected))\p{space}+)?(?:\b(abstract)\p{space}+)?(?:\b(async)\p{space}+)?(?:\b([gs]et)\p{space}+)?(?:(\*)\p{space}*)?(?=\p{space}*((\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(\??))\p{space}*((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*))?\()/dgv,beginCaptures:{"1":{name:"storage.modifier.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.js"},"4":{name:"storage.modifier.async.js"},"5":{name:"storage.type.property.js"},"6":{name:"keyword.generator.asterisk.js"}},end:/(?=[\,\;\}]|(?=\n?$))|(?<=\})/dgv,name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:/(?=(\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(\??)\p{space}*[\(\<])/dgv,end:/(?=[\(\<])/dgv,patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*/dgv,name:"meta.definition.method.js entity.name.function.js"},{match:/\?/dgv,name:"keyword.operator.optional.js"}]},"namespace-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(namespace|module)\p{space}+(?=["\$'_\`\p{Alpha}])/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.type.namespace.js"}},end:/(?<=\})|(?=;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,name:"meta.namespace.declaration.js",patterns:[{include:"#comment"},{include:"#string"},{match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,name:"entity.name.type.module.js"},{include:"#punctuation-accessor"},{include:"#decl-block"}]},"new-expr":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(new)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"1":{name:"keyword.operator.new.js"}},end:/(?<=\))|(?=[\-\]\)\+\,\:\;\>\?\}]|\|\||&&|!==|(?=\n?$)|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))new(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))function((\p{space}+[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|(\p{space}*\())))/dgv,name:"new.expr.js",patterns:[{include:"#expression"}]},"null-literal":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))null(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"constant.language.null.js"},"numeric-literal":{patterns:[{captures:{"1":{name:"storage.type.numeric.bigint.js"}},match:/\b(?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$)/dgv,name:"constant.numeric.hex.js"},{captures:{"1":{name:"storage.type.numeric.bigint.js"}},match:/\b(?<!\$)0[Bb][01][01_]*(n)?\b(?!\$)/dgv,name:"constant.numeric.binary.js"},{captures:{"1":{name:"storage.type.numeric.bigint.js"}},match:/\b(?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$)/dgv,name:"constant.numeric.octal.js"},{captures:{"0":{name:"constant.numeric.decimal.js"},"1":{name:"meta.delimiter.decimal.period.js"},"2":{name:"storage.type.numeric.bigint.js"},"3":{name:"meta.delimiter.decimal.period.js"},"4":{name:"storage.type.numeric.bigint.js"},"5":{name:"meta.delimiter.decimal.period.js"},"6":{name:"storage.type.numeric.bigint.js"},"7":{name:"storage.type.numeric.bigint.js"},"8":{name:"meta.delimiter.decimal.period.js"},"9":{name:"storage.type.numeric.bigint.js"},"10":{name:"meta.delimiter.decimal.period.js"},"11":{name:"storage.type.numeric.bigint.js"},"12":{name:"meta.delimiter.decimal.period.js"},"13":{name:"storage.type.numeric.bigint.js"},"14":{name:"storage.type.numeric.bigint.js"}},match:/(?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$)/dgv}]},"numericConstant-literal":{patterns:[{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))NaN(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"constant.language.nan.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))Infinity(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"constant.language.infinity.js"}]},"object-binding-element":{patterns:[{include:"#comment"},{begin:/(?=(\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(:))/dgv,end:/(?=[\,\}])/dgv,patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element"}]},{include:"#object-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-const":{patterns:[{include:"#comment"},{begin:/(?=(\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(:))/dgv,end:/(?=[\,\}])/dgv,patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element-const"}]},{include:"#object-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-propertyName":{begin:/(?=(\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(:))/dgv,end:/(:)/dgv,endCaptures:{"0":{name:"punctuation.destructuring.js"}},patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,name:"variable.object.property.js"}]},"object-binding-pattern":{begin:/(?:(\.\.\.)\p{space}*)?(\{)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.object.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.js"}},patterns:[{include:"#object-binding-element"}]},"object-binding-pattern-const":{begin:/(?:(\.\.\.)\p{space}*)?(\{)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.object.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.js"}},patterns:[{include:"#object-binding-element-const"}]},"object-identifiers":{patterns:[{match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(?=\p{space}*\??\.\p{space}*prototype\b(?!\$))/dgv,name:"support.class.js"},{captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"variable.other.constant.object.property.js"},"4":{name:"variable.other.object.property.js"}},match:/(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*(?:(#?\p{Upper}[\$_\p{Nd}\p{Upper}]*)|(#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))(?=\p{space}*\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv},{captures:{"1":{name:"variable.other.constant.object.js"},"2":{name:"variable.other.object.js"}},match:/(?:(\p{Upper}[\$_\p{Nd}\p{Upper}]*)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))(?=\p{space}*\??\.\p{space}*#?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv}]},"object-literal":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},name:"meta.objectliteral.js",patterns:[{include:"#object-member"}]},"object-literal-method-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(async)\p{space}+)?(?:\b([gs]et)\p{space}+)?(?:(\*)\p{space}*)?(?=\p{space}*((\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(\??))\p{space}*((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*))?\()/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"},"2":{name:"storage.type.property.js"},"3":{name:"keyword.generator.asterisk.js"}},end:/(?=[\,\;\}])|(?<=\})/dgv,name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(async)\p{space}+)?(?:\b([gs]et)\p{space}+)?(?:(\*)\p{space}*)?(?=\p{space}*((\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(\??))\p{space}*((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*))?\()/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"},"2":{name:"storage.type.property.js"},"3":{name:"keyword.generator.asterisk.js"}},end:/(?=[\(\<])/dgv,patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:/(?=\[)/dgv,end:/(?=:)|((?<=\])(?=\p{space}*[\(\<]))/dgv,name:"meta.object.member.js meta.object-literal.key.js",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:/(?=["'\`])/dgv,end:/(?=:)|((?<=["'\`])(?=((\p{space}*[\(\,\<\}])|(\p{space}+(as|satisifies)\p{space}+))))/dgv,name:"meta.object.member.js meta.object-literal.key.js",patterns:[{include:"#comment"},{include:"#string"}]},{begin:/(?=\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$)))/dgv,end:/(?=:)|(?=\p{space}*([\(\,\<\}])|(\p{space}+as|satisifies\p{space}+))/dgv,name:"meta.object.member.js meta.object-literal.key.js",patterns:[{include:"#comment"},{include:"#numeric-literal"}]},{begin:/(?<=[\]"'\`])(?=\p{space}*[\(\<])/dgv,end:/(?=[\,\;\}])|(?<=\})/dgv,name:"meta.method.declaration.js",patterns:[{include:"#function-body"}]},{captures:{"0":{name:"meta.object-literal.key.js"},"1":{name:"constant.numeric.decimal.js"}},match:/(?![\$_\p{Alpha}])(\p{Nd}+)\p{space}*(?=(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*:)/dgv,name:"meta.object.member.js"},{captures:{"0":{name:"meta.object-literal.key.js"},"1":{name:"entity.name.function.js"}},match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?=(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*:(\p{space}*\/\*([^\*]|(\*[^\/]))*\*\/)*\p{space}*(((async\p{space}+)?((function\p{space}*[\(\*\<])|(function\p{space}+)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*=>)))|((async\p{space}*)?(((<\p{space}*)(?=\n?$)|(\(\p{space}*((([\[\{]\p{space}*)?)(?=\n?$)|((\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})\p{space}*((:\p{space}*\{?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))|((\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])\p{space}*((:\p{space}*\[?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*))))))|((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)?\(\p{space}*(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*((\)\p{space}*:)|((\.\.\.\p{space}*)?[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*:)))|(<\p{space}*[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}+extends\p{space}*[^\=\>])|((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)?\(\p{space}*(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*(([\$_\p{Alpha}]|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|(\.\.\.\p{space}*[\$_\p{Alpha}]))([^"'\(\)\`]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))*)?\)(\p{space}*:\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+)?\p{space}*=>)))))/dgv,name:"meta.object.member.js"},{captures:{"0":{name:"meta.object-literal.key.js"}},match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*(?=(\/\*([^\*]|(\*[^\/]))*\*\/\p{space}*)*:)/dgv,name:"meta.object.member.js"},{begin:/\.\.\./dgv,beginCaptures:{"0":{name:"keyword.operator.spread.js"}},end:/(?=[\,\}])/dgv,name:"meta.object.member.js",patterns:[{include:"#expression"}]},{captures:{"1":{name:"variable.other.readwrite.js"}},match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?=[\,\}]|(?=\n?$)|\/\/|\/\*)/dgv,name:"meta.object.member.js"},{captures:{"1":{name:"keyword.control.as.js"},"2":{name:"storage.modifier.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(as)\p{space}+(const)(?=\p{space}*([\,\}]|(?=\n?$)))/dgv,name:"meta.object.member.js"},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(as)|(satisfies))\p{space}+/dgv,beginCaptures:{"1":{name:"keyword.control.as.js"},"2":{name:"keyword.control.satisfies.js"}},end:/(?=[\-\]\)\+\,\:\;\>\?\}]|\|\||&&|!==|(?=\n?$)|^|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(as|satisifies)\p{space}+))/dgv,name:"meta.object.member.js",patterns:[{include:"#type"}]},{begin:/(?=[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*=)/dgv,end:/(?=[\,\}]|(?=\n?$)|\/\/|\/\*)/dgv,name:"meta.object.member.js",patterns:[{include:"#expression"}]},{begin:/:/dgv,beginCaptures:{"0":{name:"meta.object-literal.key.js punctuation.separator.key-value.js"}},end:/(?=[\,\}])/dgv,name:"meta.object.member.js",patterns:[{begin:/(?<=:)\p{space}*(async)?(?=\p{space}*(<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)\(\p{space}*((([\[\{]\p{space}*)?)(?=\n?$)|((\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})\p{space}*((:\p{space}*\{?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))|((\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])\p{space}*((:\p{space}*\[?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))))/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:/(?<=\))/dgv,patterns:[{include:"#type-parameters"},{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:/(?<=:)\p{space}*(async)?\p{space}*(\()(?=\p{space}*((([\[\{]\p{space}*)?)(?=\n?$)|((\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})\p{space}*((:\p{space}*\{?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))|((\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])\p{space}*((:\p{space}*\[?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))))/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"},"2":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:/(?<=:)\p{space}*(async)?\p{space}*(?=<\p{space}*(?=\n?$))/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:/(?<=>)/dgv,patterns:[{include:"#type-parameters"}]},{begin:/(?<=>)\p{space}*(\()(?=\p{space}*((([\[\{]\p{space}*)?)(?=\n?$)|((\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})\p{space}*((:\p{space}*\{?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))|((\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])\p{space}*((:\p{space}*\[?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))))/dgv,beginCaptures:{"1":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"parameter-array-binding-pattern":{begin:/(?:(\.\.\.)\p{space}*)?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.array.js"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.js"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"parameter-name":{patterns:[{captures:{"1":{name:"storage.modifier.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(override|public|protected|private|readonly)\p{space}+(?=(override|public|protected|private|readonly)\p{space}+)/dgv},{captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"entity.name.function.js variable.language.this.js"},"4":{name:"entity.name.function.js"},"5":{name:"keyword.operator.optional.js"}},match:/*@__PURE__*/ new EmulatedRegExp("(?:(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\p{space}+)?(?:(\\.\\.\\.)\\p{space}*)?(?<![\\:\\=])(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*))(?![\\$_\\p{Alpha}\\p{Nd}])(?:(?=\\.\\.\\.)|(?!\\.))\\p{space}*(\\??)(?=\\p{space}*(=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>)))))|(:\\p{space}*((<)|(\\(\\p{space}*((\\))|(\\.\\.\\.)|([\\$_\\p{Alpha}\\p{Nd}]+\\p{space}*(([\\,\\:\\=\\?])|(\\)\\p{space}*=>)))))))|(:\\p{space}*(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![\\$_\\p{Alpha}\\p{Nd}])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\p{space}*((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))))))|(:\\p{space}*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^\\<\\>]*>)|[^\\(\\)\\,\\<\\=\\>])+=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>))))))","dgv",{"lazyCompile":true})},{captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"variable.parameter.js variable.language.this.js"},"4":{name:"variable.parameter.js"},"5":{name:"keyword.operator.optional.js"}},match:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(override|public|private|protected|readonly)\p{space}+)?(?:(\.\.\.)\p{space}*)?(?<![\:\=])(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(this)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))\p{space}*(\??)/dgv}]},"parameter-object-binding-element":{patterns:[{include:"#comment"},{begin:/(?=(\b((?<!\$)0[Xx]\p{AHex}[_\p{AHex}]*(n)?\b(?!\$))|\b((?<!\$)0[Bb][01][01_]*(n)?\b(?!\$))|\b((?<!\$)0[Oo]?[0-7][0-7_]*(n)?\b(?!\$))|((?<!\$)(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\B(\.)[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*[Ee][\-\+]?[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(\.)(n)?\B|\B(\.)[0-9][0-9_]*(n)?\b|\b[0-9][0-9_]*(n)?\b(?!\.))(?!\$))|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`)|(\[([^\]\[]|\[[^\]\[]*\])+\]))\p{space}*(:))/dgv,end:/(?=[\,\}])/dgv,patterns:[{include:"#object-binding-element-propertyName"},{include:"#parameter-binding-element"},{include:"#paren-expression"}]},{include:"#parameter-object-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"parameter-object-binding-pattern":{begin:/(?:(\.\.\.)\p{space}*)?(\{)/dgv,beginCaptures:{"1":{name:"keyword.operator.rest.js"},"2":{name:"punctuation.definition.binding-pattern.object.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.js"}},patterns:[{include:"#parameter-object-binding-element"}]},"parameter-type-annotation":{patterns:[{begin:/(:)/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:/(?=[\)\,])|(?==[^\>])/dgv,name:"meta.type.annotation.js",patterns:[{include:"#type"}]}]},"paren-expression":{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:/(?<=[\(\,\=])\p{space}*(async)?(?=\p{space}*((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*))?\(\p{space}*((([\[\{]\p{space}*)?)(?=\n?$)|((\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})\p{space}*((:\p{space}*\{?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))|((\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])\p{space}*((:\p{space}*\[?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))))/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:/(?<=\))/dgv,patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:/(?<=[\(\,\=]|=>|^return|[^\$\._\p{Alpha}\p{Nd}]return)\p{space}*(async)?(?=\p{space}*((((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*))?\()|(<)|((<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)))\p{space}*(?=\n?$))/dgv,beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:/(?<=\))/dgv,patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:/(?<=\)|^)\p{space}*(:)(?=\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*=>)/dgv,beginCaptures:{"1":{name:"meta.arrow.js meta.return.type.arrow.js keyword.operator.type.annotation.js"}},contentName:"meta.arrow.js meta.return.type.arrow.js",end:/(?==>|\{|^(\p{space}*(export|function|class|interface|let|var|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|const|import|enum|namespace|module|type|abstract|declare)\p{space}+))/dgv,patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(accessor|get|set)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"storage.type.property.js"},"punctuation-accessor":{captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"}},match:/(\.)|(\?\.(?!\p{space}*\p{Nd}))/dgv},"punctuation-comma":{match:/,/dgv,name:"punctuation.separator.comma.js"},"punctuation-semicolon":{match:/;/dgv,name:"punctuation.terminator.statement.js"},"qstring-double":{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},end:/(")|([^\n\\])(?=\n?$)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.js"},"2":{name:"invalid.illegal.newline.js"}},name:"string.quoted.double.js",patterns:[{include:"#string-character-escape"}]},"qstring-single":{begin:/'/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},end:/(')|([^\n\\])(?=\n?$)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.js"},"2":{name:"invalid.illegal.newline.js"}},name:"string.quoted.single.js",patterns:[{include:"#string-character-escape"}]},regex:{patterns:[{begin:/(?<!\+\+|--|\})(?<=[\!\(\+\,\:\=\?\[]|^return|[^\$\._\p{Alpha}\p{Nd}]return|^case|[^\$\._\p{Alpha}\p{Nd}]case|=>|&&|\|\||\*\/)\p{space}*(\/)(?![\*\/])(?=(?:[^\(\)\/\[\\]|\\[^\n]|\[([^\]\\]|\\[^\n])+\]|\(([^\)\\]|\\[^\n])+\))+\/([dgimsuvy]+|(?![\*\/])|(?=\/\*))(?!\p{space}*[\$0-9A-Z_a-z]))/dgv,beginCaptures:{"1":{name:"punctuation.definition.string.begin.js"}},end:/(\/)([dgimsuvy]*)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.js"},"2":{name:"keyword.other.js"}},name:"string.regexp.js",patterns:[{include:"#regexp"}]},{begin:/((?<![\]\$\)_\p{Alpha}\p{Nd}]|\+\+|--|\}|\*\/)|((?<=^return|[^\$\._\p{Alpha}\p{Nd}]return|^case|[^\$\._\p{Alpha}\p{Nd}]case))\p{space}*)\/(?![\*\/])(?=(?:[^\/\[\\]|\\[^\n]|\[([^\]\\]|\\[^\n])*\])+\/([dgimsuvy]+|(?![\*\/])|(?=\/\*))(?!\p{space}*[\$0-9A-Z_a-z]))/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},end:/(\/)([dgimsuvy]*)/dgv,endCaptures:{"1":{name:"punctuation.definition.string.end.js"},"2":{name:"keyword.other.js"}},name:"string.regexp.js",patterns:[{include:"#regexp"}]}]},"regex-character-class":{patterns:[{match:/\\[DSWdfnrstvw]|\./dgv,name:"constant.other.character-class.regexp"},{match:/\\([0-7]{3}|x\p{AHex}{2}|u\p{AHex}{4})/dgv,name:"constant.character.numeric.regexp"},{match:/\\c[A-Z]/dgv,name:"constant.character.control.regexp"},{match:/\\[^\n]/dgv,name:"constant.character.escape.backslash.regexp"}]},regexp:{patterns:[{match:/\\[Bb]|[\$\^]/dgv,name:"keyword.control.anchor.regexp"},{captures:{"0":{name:"keyword.other.back-reference.regexp"},"1":{name:"variable.other.regexp"}},match:/\\(?:[1-9]\p{Nd}*|k<([\$A-Z_a-z][\$\p{L}\p{M}\p{N}\p{Pc}]*)>)/dgv},{match:/[\*\+\?]|\{(\p{Nd}+,\p{Nd}+|\p{Nd}+,|,\p{Nd}+|\p{Nd}+)\}\??/dgv,name:"keyword.operator.quantifier.regexp"},{match:/\|/dgv,name:"keyword.operator.or.regexp"},{begin:/(\()((\?=)|(\?!)|(\?<=)|(\?<!))/dgv,beginCaptures:{"1":{name:"punctuation.definition.group.regexp"},"2":{name:"punctuation.definition.group.assertion.regexp"},"3":{name:"meta.assertion.look-ahead.regexp"},"4":{name:"meta.assertion.negative-look-ahead.regexp"},"5":{name:"meta.assertion.look-behind.regexp"},"6":{name:"meta.assertion.negative-look-behind.regexp"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.definition.group.regexp"}},name:"meta.group.assertion.regexp",patterns:[{include:"#regexp"}]},{begin:/\((?:(\?:)|\?<([\$A-Z_a-z][\$\p{L}\p{M}\p{N}\p{Pc}]*)>)?/dgv,beginCaptures:{"0":{name:"punctuation.definition.group.regexp"},"1":{name:"punctuation.definition.group.no-capture.regexp"},"2":{name:"variable.other.regexp"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:/(\[)(\^)?/dgv,beginCaptures:{"1":{name:"punctuation.definition.character-class.regexp"},"2":{name:"keyword.operator.negation.regexp"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{"1":{name:"constant.character.numeric.regexp"},"2":{name:"constant.character.control.regexp"},"3":{name:"constant.character.escape.backslash.regexp"},"4":{name:"constant.character.numeric.regexp"},"5":{name:"constant.character.control.regexp"},"6":{name:"constant.character.escape.backslash.regexp"}},match:/(?:[^\n]|(\\(?:[0-7]{3}|x\p{AHex}{2}|u\p{AHex}{4}))|(\\c[A-Z])|(\\[^\n]))-(?:[^\]\\]|(\\(?:[0-7]{3}|x\p{AHex}{2}|u\p{AHex}{4}))|(\\c[A-Z])|(\\[^\n]))/dgv,name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"return-type":{patterns:[{begin:/(?<=\))\p{space}*(:)(?=\p{space}*\P{space})/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:/(?<![\&\:\|])(?=(?=\n?$)|^|[\,\;\{\}]|\/\/)/dgv,name:"meta.return.type.js",patterns:[{include:"#return-type-core"}]},{begin:/(?<=\))\p{space}*(:)/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:/(?<![\&\:\|])((?=[\,\;\{\}]|\/\/|^\p{space}*(?=\n?$))|((?<=\P{space})(?=\p{space}*(?=\n?$))))/dgv,name:"meta.return.type.js",patterns:[{include:"#return-type-core"}]}]},"return-type-core":{patterns:[{include:"#comment"},{begin:/(?<=[\&\:\|])(?=\p{space}*\{)/dgv,end:/(?<=\})/dgv,patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},shebang:{captures:{"1":{name:"punctuation.definition.comment.js"}},match:/^(#!)[^\n]*(?=(?=\n?$))/dgv,name:"comment.line.shebang.js"},"single-line-comment-consuming-line-ending":{begin:/(^[\t ]+)?((\/\/)(?:\p{space}*((@)internal)(?=\p{space}|(?=\n?$)))?)/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.js"},"2":{name:"comment.line.double-slash.js"},"3":{name:"punctuation.definition.comment.js"},"4":{name:"storage.type.internaldeclaration.js"},"5":{name:"punctuation.decorator.internaldeclaration.js"}},contentName:"comment.line.double-slash.js",end:/(?=^)/dgv},statements:{patterns:[{include:"#declaration"},{include:"#control-statement"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#label"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"}]},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"string-character-escape":{match:/\\(x\p{AHex}{2}|u\p{AHex}{4}|u\{\p{AHex}+\}|[012][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|[^\n]|(?=\n?$))/dgv,name:"constant.character.escape.js"},"super-literal":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))super\b(?!\$)/dgv,name:"variable.language.super.js"},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))import(?=\p{space}*\(\p{space}*["'\`])/dgv,name:"keyword.operator.expression.import.js"}]},"support-objects":{patterns:[{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(arguments)\b(?!\$)/dgv,name:"variable.language.arguments.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(Promise)\b(?!\$)/dgv,name:"support.class.promise.js"},{captures:{"1":{name:"keyword.control.import.js"},"2":{name:"punctuation.accessor.js"},"3":{name:"punctuation.accessor.optional.js"},"4":{name:"support.variable.property.importmeta.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(import)\p{space}*(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*(meta)\b(?!\$)/dgv},{captures:{"1":{name:"keyword.operator.new.js"},"2":{name:"punctuation.accessor.js"},"3":{name:"punctuation.accessor.optional.js"},"4":{name:"support.variable.property.target.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(new)\p{space}*(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*(target)\b(?!\$)/dgv},{captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"support.variable.property.js"},"4":{name:"support.constant.js"}},match:/(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*(?:(constructor|length|prototype|__proto__)\b(?!\$|\p{space}*(<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<]|<\p{space}*(((const\p{space}+)?[\$_\p{Alpha}])|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\]))([^\<\=\>]|=[^\<])*>)*>)*>\p{space}*)?\()|(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\b(?!\$))/dgv},{captures:{"1":{name:"support.type.object.module.js"},"2":{name:"support.type.object.module.js"},"3":{name:"punctuation.accessor.js"},"4":{name:"punctuation.accessor.optional.js"},"5":{name:"support.type.object.module.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(exports)|(module)(?:(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))(exports|id|filename|loaded|parent|children))?)\b(?!\$)/dgv}]},"switch-statement":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?=\bswitch\p{space}*\()/dgv,end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},name:"switch-statement.expr.js",patterns:[{include:"#comment"},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(switch)\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.control.switch.js"},"2":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},name:"switch-expression.expr.js",patterns:[{include:"#expression"}]},{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:/(?=\})/dgv,name:"switch-block.expr.js",patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(case|default(?=:))(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"1":{name:"keyword.control.switch.js"}},end:/(?=:)/dgv,name:"case-clause.expr.js",patterns:[{include:"#expression"}]},{begin:/(:)\p{space}*(\{)/dgv,beginCaptures:{"1":{name:"case-clause.expr.js punctuation.definition.section.case-statement.js"},"2":{name:"meta.block.js punctuation.definition.block.js"}},contentName:"meta.block.js",end:/\}/dgv,endCaptures:{"0":{name:"meta.block.js punctuation.definition.block.js"}},patterns:[{include:"#statements"}]},{captures:{"0":{name:"case-clause.expr.js punctuation.definition.section.case-statement.js"}},match:/(:)/dgv},{include:"#statements"}]}]},template:{patterns:[{include:"#template-call"},{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)?(`)/dgv,beginCaptures:{"1":{name:"entity.name.function.tagged-template.js"},"2":{name:"string.template.js punctuation.definition.string.template.begin.js"}},contentName:"string.template.js",end:/`/dgv,endCaptures:{"0":{name:"string.template.js punctuation.definition.string.template.end.js"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:/(?=(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*\??\.\p{space}*)*|(\??\.\p{space}*)?)([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))(([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\p{space}*)?`)/dgv,end:/(?=`)/dgv,patterns:[{begin:/(?=(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*\p{space}*\??\.\p{space}*)*|(\??\.\p{space}*)?)([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))/dgv,end:/(?=(<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))(([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\p{space}*)?`)/dgv,patterns:[{include:"#support-function-call-identifiers"},{match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,name:"entity.name.function.tagged-template.js"}]},{include:"#type-arguments"}]},{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)?\p{space}*(?=(<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))(([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>|<\p{space}*(((keyof|infer|typeof|readonly)\p{space}+)|(([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*|(\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])|('([^'\\]|\\[^\n])*')|("([^"\\]|\\[^\n])*")|(`([^\\\`]|\\[^\n])*`))(?=\p{space}*([\,\.\<\>\[]|=>|&(?!&)|\|(?!\|)))))([^\(\<\>]|(\(([^\(\)]|(\(([^\(\)]|\([^\(\)]*\))*\)))*\))|(?<==)>)*(?<!=)>))*(?<!=)>)*(?<!=)>\p{space}*)`)/dgv,beginCaptures:{"1":{name:"entity.name.function.tagged-template.js"}},end:/(?=`)/dgv,patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:/\$\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.js"}},contentName:"meta.embedded.line.js",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.template-expression.end.js"}},name:"meta.template.expression.js",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)?(`)/dgv,beginCaptures:{"1":{name:"entity.name.function.tagged-template.js"},"2":{name:"string.template.js punctuation.definition.string.template.begin.js"}},contentName:"string.template.js",end:/`/dgv,endCaptures:{"0":{name:"string.template.js punctuation.definition.string.template.end.js"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:/\$\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.js"}},contentName:"meta.embedded.line.js",end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.template-expression.end.js"}},name:"meta.template.expression.js",patterns:[{include:"#type"}]},"ternary-expression":{begin:/(?!\?\.\p{space}*\P{Nd})(\?)(?!\?)/dgv,beginCaptures:{"1":{name:"keyword.operator.ternary.js"}},end:/\p{space}*(:)/dgv,endCaptures:{"1":{name:"keyword.operator.ternary.js"}},patterns:[{include:"#expression"}]},"this-literal":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))this\b(?!\$)/dgv,name:"variable.language.this.js"},type:{patterns:[{include:"#comment"},{include:"#type-string"},{include:"#numeric-literal"},{include:"#type-primitive"},{include:"#type-builtin-literals"},{include:"#type-parameters"},{include:"#type-tuple"},{include:"#type-object"},{include:"#type-operators"},{include:"#type-conditional"},{include:"#type-fn-type-parameters"},{include:"#type-paren-or-function-parameters"},{include:"#type-function-return-type"},{captures:{"1":{name:"storage.modifier.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(readonly)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))\p{space}*/dgv},{include:"#type-name"}]},"type-alias-declaration":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(type)\b\p{space}+([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.type.type.js"},"4":{name:"entity.name.type.alias.js"}},end:/(?=[\;\}]|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,name:"meta.type.declaration.js",patterns:[{include:"#comment"},{include:"#type-parameters"},{begin:/(=)\p{space}*(intrinsic)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"1":{name:"keyword.operator.assignment.js"},"2":{name:"keyword.control.intrinsic.js"}},end:/(?=[\;\}]|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,patterns:[{include:"#type"}]},{begin:/(=)\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.operator.assignment.js"}},end:/(?=[\;\}]|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,patterns:[{include:"#type"}]}]},"type-annotation":{patterns:[{begin:/(:)(?=\p{space}*\P{space})/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:/(?<![\&\:\|])(?!\p{space}*[\&\|]\p{space}+)((?=^|[\]\)\,\;\}]|\/\/)|(?==[^\>])|((?<=[\]\$\)\>_\}\p{Alpha}])\p{space}*(?=\{)))/dgv,name:"meta.type.annotation.js",patterns:[{include:"#type"}]},{begin:/(:)/dgv,beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:/(?<![\&\:\|])((?=[\]\)\,\;\}]|\/\/)|(?==[^\>])|(?=^\p{space}*(?=\n?$))|((?<=[\]\$\)\>_\}\p{Alpha}])\p{space}*(?=\{)))/dgv,name:"meta.type.annotation.js",patterns:[{include:"#type"}]}]},"type-arguments":{begin:/</dgv,beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.js"}},end:/>/dgv,endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.js"}},name:"meta.type.parameters.js",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{"0":{name:"keyword.operator.type.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(_)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv},{include:"#type"},{include:"#punctuation-comma"}]},"type-builtin-literals":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(this|true|false|undefined|null|object)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"support.type.builtin.js"},"type-conditional":{patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(extends)\p{space}+/dgv,beginCaptures:{"1":{name:"storage.modifier.js"}},end:/(?<=:)/dgv,patterns:[{begin:/\?/dgv,beginCaptures:{"0":{name:"keyword.operator.ternary.js"}},end:/:/dgv,endCaptures:{"0":{name:"keyword.operator.ternary.js"}},patterns:[{include:"#type"}]},{include:"#type"}]}]},"type-fn-type-parameters":{patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(abstract)\p{space}+)?(new)\b(?=\p{space}*<)/dgv,beginCaptures:{"1":{name:"meta.type.constructor.js storage.modifier.js"},"2":{name:"meta.type.constructor.js keyword.control.new.js"}},end:/(?<=>)/dgv,patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(abstract)\p{space}+)?(new)\b\p{space}*(?=\()/dgv,beginCaptures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.control.new.js"}},end:/(?<=\))/dgv,name:"meta.type.constructor.js",patterns:[{include:"#function-parameters"}]},{begin:/((?=\(\p{space}*((\))|(\.\.\.)|([\$_\p{Alpha}\p{Nd}]+\p{space}*(([\,\:\=\?])|(\)\p{space}*=>))))))/dgv,end:/(?<=\))/dgv,name:"meta.type.function.js",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:/(=>)(?=\p{space}*\P{space})/dgv,beginCaptures:{"1":{name:"storage.type.function.arrow.js"}},end:/(?<!=>)(?<![\&\|])(?=[\]\)\,\:\;\=\>\?\{\}]|\/\/|(?=\n?$))/dgv,name:"meta.type.function.return.js",patterns:[{include:"#type-function-return-type-core"}]},{begin:/=>/dgv,beginCaptures:{"0":{name:"storage.type.function.arrow.js"}},end:/(?<!=>)(?<![\&\|])((?=[\]\)\,\:\;\=\>\?\{\}]|\/\/|^\p{space}*(?=\n?$))|((?<=\P{space})(?=\p{space}*(?=\n?$))))/dgv,name:"meta.type.function.return.js",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:/(?<==>)(?=\p{space}*\{)/dgv,end:/(?<=\})/dgv,patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-infer":{patterns:[{captures:{"1":{name:"keyword.operator.expression.infer.js"},"2":{name:"entity.name.type.js"},"3":{name:"keyword.operator.expression.extends.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(infer)\p{space}+([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))(?:\p{space}+(extends)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))?/dgv,name:"meta.type.infer.js"}]},"type-name":{patterns:[{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))\p{space}*(<)/dgv,captures:{"1":{name:"entity.name.type.module.js"},"2":{name:"punctuation.accessor.js"},"3":{name:"punctuation.accessor.optional.js"},"4":{name:"meta.type.parameters.js punctuation.definition.typeparameters.begin.js"}},contentName:"meta.type.parameters.js",end:/(>)/dgv,endCaptures:{"1":{name:"meta.type.parameters.js punctuation.definition.typeparameters.end.js"}},patterns:[{include:"#type-arguments-body"}]},{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(<)/dgv,beginCaptures:{"1":{name:"entity.name.type.js"},"2":{name:"meta.type.parameters.js punctuation.definition.typeparameters.begin.js"}},contentName:"meta.type.parameters.js",end:/(>)/dgv,endCaptures:{"1":{name:"meta.type.parameters.js punctuation.definition.typeparameters.end.js"}},patterns:[{include:"#type-arguments-body"}]},{captures:{"1":{name:"entity.name.type.module.js"},"2":{name:"punctuation.accessor.js"},"3":{name:"punctuation.accessor.optional.js"}},match:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(?:(\.)|(\?\.(?!\p{space}*\p{Nd})))/dgv},{match:/[\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*/dgv,name:"entity.name.type.js"}]},"type-object":{begin:/\{/dgv,beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:/\}/dgv,endCaptures:{"0":{name:"punctuation.definition.block.js"}},name:"meta.object.type.js",patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:/\.\.\./dgv,beginCaptures:{"0":{name:"keyword.operator.spread.js"}},end:/(?=[\,\;\}]|(?=\n?$))|(?<=\})/dgv,patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:/([\&\|])(?=\p{space}*\{)/dgv,beginCaptures:{"0":{name:"keyword.operator.type.js"}},end:/(?<=\})/dgv,patterns:[{include:"#type-object"}]},{begin:/[\&\|]/dgv,beginCaptures:{"0":{name:"keyword.operator.type.js"}},end:/(?=\P{space})/dgv},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))keyof(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.operator.expression.keyof.js"},{match:/([\:\?])/dgv,name:"keyword.operator.ternary.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))import(?=\p{space}*\()/dgv,name:"keyword.operator.expression.import.js"}]},"type-parameters":{begin:/(<)/dgv,beginCaptures:{"1":{name:"punctuation.definition.typeparameters.begin.js"}},end:/(>)/dgv,endCaptures:{"1":{name:"punctuation.definition.typeparameters.end.js"}},name:"meta.type.parameters.js",patterns:[{include:"#comment"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(extends|in|out|const)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"storage.modifier.js"},{include:"#type"},{include:"#punctuation-comma"},{match:/(=)(?!>)/dgv,name:"keyword.operator.assignment.js"}]},"type-paren-or-function-parameters":{begin:/\(/dgv,beginCaptures:{"0":{name:"meta.brace.round.js"}},end:/\)/dgv,endCaptures:{"0":{name:"meta.brace.round.js"}},name:"meta.type.paren.cover.js",patterns:[{captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"entity.name.function.js variable.language.this.js"},"4":{name:"entity.name.function.js"},"5":{name:"keyword.operator.optional.js"}},match:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(public|private|protected|readonly)\p{space}+)?(?:(\.\.\.)\p{space}*)?(?<![\:\=])(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(this)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))\p{space}*(\??)(?=\p{space}*(:\p{space}*((<)|(\(\p{space}*((\))|(\.\.\.)|([\$_\p{Alpha}\p{Nd}]+\p{space}*(([\,\:\=\?])|(\)\p{space}*=>)))))))|(:\p{space}*(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))Function(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))|(:\p{space}*((<\p{space}*)(?=\n?$)|(\(\p{space}*((([\[\{]\p{space}*)?)(?=\n?$)|((\{([^\{\}]|(\{([^\{\}]|\{[^\{\}]*\})*\}))*\})\p{space}*((:\p{space}*\{?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*)))|((\[([^\]\[]|(\[([^\]\[]|\[[^\]\[]*\])*\]))*\])\p{space}*((:\p{space}*\[?)(?=\n?$)|((\p{space}*([^\(\)\<\>\{\}]|<([^\<\>]|<([^\<\>]|<[^\<\>]+>)+>)+>|\([^\(\)]+\)|\{[^\{\}]+\})+\p{space}*)?=\p{space}*))))))))/dgv},{captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"variable.parameter.js variable.language.this.js"},"4":{name:"variable.parameter.js"},"5":{name:"keyword.operator.optional.js"}},match:/(?:(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(public|private|protected|readonly)\p{space}+)?(?:(\.\.\.)\p{space}*)?(?<![\:\=])(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(this)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))\p{space}*(\??)(?=:)/dgv},{include:"#type-annotation"},{match:/,/dgv,name:"punctuation.separator.parameter.js"},{include:"#type"}]},"type-predicate-operator":{patterns:[{captures:{"1":{name:"keyword.operator.type.asserts.js"},"2":{name:"variable.parameter.js variable.language.this.js"},"3":{name:"variable.parameter.js"},"4":{name:"keyword.operator.expression.is.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:(asserts)\p{space}+)?(?!asserts)(?:(this)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))\p{space}(is)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv},{captures:{"1":{name:"keyword.operator.type.asserts.js"},"2":{name:"variable.parameter.js variable.language.this.js"},"3":{name:"variable.parameter.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(asserts)\p{space}+(?!is)(?:(this)|([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*))(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))asserts(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.operator.type.asserts.js"},{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))is(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"keyword.operator.expression.is.js"}]},"type-primitive":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"support.type.primitive.js"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"type-tuple":{begin:/\[/dgv,beginCaptures:{"0":{name:"meta.brace.square.js"}},end:/\]/dgv,endCaptures:{"0":{name:"meta.brace.square.js"}},name:"meta.type.tuple.js",patterns:[{match:/\.\.\./dgv,name:"keyword.operator.rest.js"},{captures:{"1":{name:"entity.name.label.js"},"2":{name:"keyword.operator.optional.js"},"3":{name:"punctuation.separator.label.js"}},match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)\p{space}*(\?)?\p{space}*(:)/dgv},{include:"#type"},{include:"#punctuation-comma"}]},"typeof-operator":{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))typeof(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,beginCaptures:{"0":{name:"keyword.operator.expression.typeof.js"}},end:/(?=[\]\&\)\,\:\;\=\>\?\{\|\}]|(extends\p{space}+)|(?=\n?$)|;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)/dgv,patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))undefined(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))/dgv,name:"constant.language.undefined.js"},"var-expr":{patterns:[{begin:/(?=(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(var|let)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))/dgv,end:/(?!(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(var|let)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))((?=^|[\;\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)|((?<!^let|[^\$\._\p{Alpha}\p{Nd}]let|^var|[^\$\._\p{Alpha}\p{Nd}]var)(?=\p{space}*(?=\n?$))))/dgv,name:"meta.var.expr.js",patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(var|let)(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.type.js"}},end:/(?=\P{space})/dgv},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#variable-initializer"},{include:"#comment"},{begin:/(,)\p{space}*(?=(?=\n?$)|\/\/)/dgv,beginCaptures:{"1":{name:"punctuation.separator.comma.js"}},end:/(?<!,)(((?=[\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|^\p{space}*(?=\n?$)))|((?<=\P{space})(?=\p{space}*(?=\n?$))))/dgv,patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:/(?=(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(const(?!\p{space}+enum\b))(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.type.js"}},end:/(?!(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(const(?!\p{space}+enum\b))(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))((?=^|[\;\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)|((?<!(?:^|[^\$\._\p{Alpha}\p{Nd}])const)(?=\p{space}*(?=\n?$))))/dgv,name:"meta.var.expr.js",patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b(const(?!\p{space}+enum\b))(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.type.js"}},end:/(?=\P{space})/dgv},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:/(,)\p{space}*(?=(?=\n?$)|\/\/)/dgv,beginCaptures:{"1":{name:"punctuation.separator.comma.js"}},end:/(?<!,)(((?=[\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|^\p{space}*(?=\n?$)))|((?<=\P{space})(?=\p{space}*(?=\n?$))))/dgv,patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:/(?=(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b\b(using(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])|await\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b)\b(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.type.js"}},end:/(?!(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b\b(using(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])|await\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b)\b(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.)))((?=[\;\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b)|((?<!(?:^|[^\$\._\p{Alpha}\p{Nd}]|^await\p{space}+|[^\$\._\p{Alpha}\p{Nd}]await\p{space}+)using)(?=\p{space}*(?=\n?$))))/dgv,name:"meta.var.expr.js",patterns:[{begin:/(?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(?:\b(export)\p{space}+)?(?:\b(declare)\p{space}+)?\b\b(using(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])|await\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b)\b(?![\$_\p{Alpha}\p{Nd}])(?:(?=\.\.\.)|(?!\.))\p{space}*/dgv,beginCaptures:{"1":{name:"keyword.control.export.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.type.js"}},end:/(?=\P{space})/dgv},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:/(,)\p{space}*((?!\P{space})|(?=\/\/))/dgv,beginCaptures:{"1":{name:"punctuation.separator.comma.js"}},end:/(?<!,)(((?=[\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|^\p{space}*(?=\n?$)))|((?<=\P{space})(?=\p{space}*(?=\n?$))))/dgv,patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]}]},"var-single-const":{patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*)(?=\\p{space}*(=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>)))))|(:\\p{space}*((<)|(\\(\\p{space}*((\\))|(\\.\\.\\.)|([\\$_\\p{Alpha}\\p{Nd}]+\\p{space}*(([\\,\\:\\=\\?])|(\\)\\p{space}*=>)))))))|(:\\p{space}*(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![\\$_\\p{Alpha}\\p{Nd}])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\p{space}*((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))))))|(:\\p{space}*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^\\<\\>]*>)|[^\\(\\)\\,\\<\\=\\>])+=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>))))))","dgv",{"lazyCompile":true}),beginCaptures:{"1":{name:"meta.definition.variable.js variable.other.constant.js entity.name.function.js"}},end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|(;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b))/dgv,name:"meta.var-single-variable.expr.js",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)/dgv,beginCaptures:{"1":{name:"meta.definition.variable.js variable.other.constant.js"}},end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|(;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b))/dgv,name:"meta.var-single-variable.expr.js",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable":{patterns:[{begin:/*@__PURE__*/ new EmulatedRegExp("([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*)(!)?(?=\\p{space}*(=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>)))))|(:\\p{space}*((<)|(\\(\\p{space}*((\\))|(\\.\\.\\.)|([\\$_\\p{Alpha}\\p{Nd}]+\\p{space}*(([\\,\\:\\=\\?])|(\\)\\p{space}*=>)))))))|(:\\p{space}*(?<![\\$_\\p{Alpha}\\p{Nd}])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![\\$_\\p{Alpha}\\p{Nd}])(?:(?=\\.\\.\\.)|(?!\\.)))|(:\\p{space}*((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))))))|(:\\p{space}*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^\\<\\>]*>)|[^\\(\\)\\,\\<\\=\\>])+=\\p{space}*(((async\\p{space}+)?((function\\p{space}*[\\(\\*\\<])|(function\\p{space}+)|([\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*=>)))|((async\\p{space}*)?(((<\\p{space}*)(?=\\n?$)|(\\(\\p{space}*((([\\[\\{]\\p{space}*)?)(?=\\n?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\p{space}*((:\\p{space}*\\{?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*)))|((\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])\\p{space}*((:\\p{space}*\\[?)(?=\\n?$)|((\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\p{space}*)?=\\p{space}*))))))|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*((\\)\\p{space}*:)|((\\.\\.\\.\\p{space}*)?[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}*:)))|(<\\p{space}*[\\$_\\p{Alpha}][\\$_\\p{Alpha}\\p{Nd}]*\\p{space}+extends\\p{space}*[^\\=\\>])|((<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<]|<\\p{space}*(((const\\p{space}+)?[\\$_\\p{Alpha}])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\]))([^\\<\\=\\>]|=[^\\<])*>)*>)*>\\p{space}*)?\\(\\p{space}*(/\\*([^\\*]|(\\*[^\\/]))*\\*/\\p{space}*)*(([\\$_\\p{Alpha}]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\]\\[]|(\\[([^\\]\\[]|\\[[^\\]\\[]*\\])*\\]))*\\])|(\\.\\.\\.\\p{space}*[\\$_\\p{Alpha}]))([^\"'\\(\\)\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|('([^'\\\\]|\\\\[^\\n])*')|(\"([^\"\\\\]|\\\\[^\\n])*\")|(`([^\\\\\\`]|\\\\[^\\n])*`))*)?\\)(\\p{space}*:\\p{space}*([^\\(\\)\\<\\>\\{\\}]|<([^\\<\\>]|<([^\\<\\>]|<[^\\<\\>]+>)+>)+>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\\p{space}*=>))))))","dgv",{"lazyCompile":true}),beginCaptures:{"1":{name:"meta.definition.variable.js entity.name.function.js"},"2":{name:"keyword.operator.definiteassignment.js"}},end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|(;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b))/dgv,name:"meta.var-single-variable.expr.js",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:/(\p{Upper}[\$_\p{Nd}\p{Upper}]*)(?![\$_\p{Alpha}\p{Nd}])(!)?/dgv,beginCaptures:{"1":{name:"meta.definition.variable.js variable.other.constant.js"},"2":{name:"keyword.operator.definiteassignment.js"}},end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|(;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b))/dgv,name:"meta.var-single-variable.expr.js",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:/([\$_\p{Alpha}][\$_\p{Alpha}\p{Nd}]*)(!)?/dgv,beginCaptures:{"1":{name:"meta.definition.variable.js variable.other.readwrite.js"},"2":{name:"keyword.operator.definiteassignment.js"}},end:/(?=(?=\n?$)|^|[\,\;\=\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+)|(;|^\p{space}*(?=\n?$)|^\p{space}*(?:abstract|async|\bawait\p{space}+\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b\b|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|\busing(?=\p{space}+(?!in\b|of\b(?!\p{space}*(?:of\b|=)))[\$_\p{Alpha}])\b|var|while)\b))/dgv,name:"meta.var-single-variable.expr.js",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{patterns:[{include:"#type-annotation"},{include:"#string"},{include:"#comment"}]},"variable-initializer":{patterns:[{begin:/(?<![\!\=])(=)(?!=)(?=\p{space}*\P{space})(?!\p{space}*[^\n]*=>\p{space}*(?=\n?$))/dgv,beginCaptures:{"1":{name:"keyword.operator.assignment.js"}},end:/(?=(?=\n?$)|^|[\]\)\,\;\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+))/dgv,patterns:[{include:"#expression"}]},{begin:/(?<![\!\=])(=)(?!=)/dgv,beginCaptures:{"1":{name:"keyword.operator.assignment.js"}},end:/(?=[\]\)\,\;\}]|((?<![\$_\p{Alpha}\p{Nd}])(?:(?<=\.\.\.)|(?<!\.))(of|in)\p{space}+))|(?=^\p{space}*(?=\n?$))|(?<![\-\&\*\+\/\|])(?<=\P{space})(?<!=)(?=\p{space}*(?=\n?$))/dgv,patterns:[{include:"#expression"}]}]}},scopeName:"source.js",embeddedLangs:undefined,aliases:["js","cjs","mjs"]})
4
4
 
5
5
  export default [
6
6
  lang