From 26547533cce71f1d85d690718665bbfeb139790d Mon Sep 17 00:00:00 2001 From: yosuke ota Date: Sat, 22 Oct 2022 23:21:26 +0900 Subject: [PATCH 1/8] fix: change virtual code to provide correct type information for reactive statements --- .eslintrc.js | 1 + docs/internal-mechanism.md | 74 +- explorer-v2/src/lib/AstExplorer.svelte | 29 +- explorer-v2/src/lib/ESLintPlayground.svelte | 22 +- explorer-v2/src/lib/Header.svelte | 15 +- explorer-v2/src/lib/ScopeExplorer.svelte | 28 +- src/context/index.ts | 93 +- src/context/script-let.ts | 299 +- src/context/unique.ts | 17 + src/parser/analyze-scope.ts | 32 +- src/parser/analyze-type/index.ts | 96 - src/parser/index.ts | 20 +- src/parser/parser-object.ts | 21 +- src/parser/script.ts | 17 +- src/parser/sort.ts | 7 +- src/parser/typescript/analyze/index.ts | 458 + src/parser/typescript/context.ts | 56 + src/parser/typescript/index.ts | 243 + src/parser/typescript/restore.ts | 219 + src/parser/typescript/types.ts | 2 + src/scope/index.ts | 414 + src/traverse.ts | 25 +- src/utils/index.ts | 61 + .../parser/ast/$var-scope-output.json | 32 +- .../02-scope-output.json | 24 +- .../01-scope-output.json | 40 +- .../03-scope-output.json | 44 +- .../01-scope-output.json | 84 +- .../10.1-at-const/02-scope-output.json | 24 +- .../06-use-action/03-scope-output.json | 24 +- .../07-transition-fn/04-scope-output.json | 24 +- .../07-transition-fn/05-scope-output.json | 24 +- .../07-transition-fn/05-ts-scope-output.json | 48 +- .../14-svelte-self/01-scope-output.json | 48 +- .../15_2-svelte-element/02-scope-output.json | 24 +- .../parser/ast/label01-scope-output.json | 436 +- .../ast/reactive-with-var01-scope-output.json | 100 +- .../ast/reactive-with-var02-scope-output.json | 64 +- .../ast/style-in-script-scope-output.json | 24 +- .../ast/ts-not-reactive01-type-output.svelte | 2 +- .../ast/ts-reactive02-scope-output.json | 908 +- .../ast/ts-reactive03-scope-output.json | 24 +- .../ast/ts-reactive05-scope-output.json | 722 +- .../parser/ast/ts-reactive06-input.svelte | 15 + .../ts-reactive06-no-unused-vars-result.json | 8 + .../parser/ast/ts-reactive06-output.json | 2791 ++++ .../ast/ts-reactive06-scope-output.json | 13234 ++++++++++++++++ .../ast/ts-reactive06-type-output.svelte | 15 + .../parser/ast/ts-store01-scope-output.json | 198 +- .../parser/ast/ts-store01-type-output.svelte | 2 +- .../ast/tutorial/actions-scope-output.json | 24 +- .../component-bindings01-scope-output.json | 754 +- .../component-bindings02-scope-output.json | 64 +- .../tutorial/context-api02-scope-output.json | 84 +- .../tutorial/context-api03-scope-output.json | 72 +- .../tutorial/custom-stores-scope-output.json | 40 +- .../declaring-props02-scope-output.json | 24 +- .../default-values02-scope-output.json | 24 +- .../module-exports02-scope-output.json | 96 +- .../optional-slots02-scope-output.json | 68 +- .../optional-slots03-scope-output.json | 72 +- .../reactive-declarations-scope-output.json | 358 +- .../tutorial/sharing-code02-scope-output.json | 96 +- .../tutorial/spread-props02-scope-output.json | 104 +- .../svelte-options02-scope-output.json | 32 +- .../svelte-options03-scope-output.json | 32 +- .../tutorial/svelte-self02-scope-output.json | 44 +- .../tutorial/svelte-self03-scope-output.json | 116 +- .../ast/tutorial/tweened-scope-output.json | 64 +- .../unused-write-only-store-scope-output.json | 80 +- tests/src/parser/error.ts | 4 +- tests/src/parser/parser.ts | 21 +- tests/src/parser/test-utils.ts | 35 +- tools/update-fixtures.ts | 6 +- 74 files changed, 20526 insertions(+), 3020 deletions(-) create mode 100644 src/context/unique.ts delete mode 100644 src/parser/analyze-type/index.ts create mode 100644 src/parser/typescript/analyze/index.ts create mode 100644 src/parser/typescript/context.ts create mode 100644 src/parser/typescript/index.ts create mode 100644 src/parser/typescript/restore.ts create mode 100644 src/parser/typescript/types.ts create mode 100644 src/scope/index.ts create mode 100644 src/utils/index.ts create mode 100644 tests/fixtures/parser/ast/ts-reactive06-input.svelte create mode 100644 tests/fixtures/parser/ast/ts-reactive06-no-unused-vars-result.json create mode 100644 tests/fixtures/parser/ast/ts-reactive06-output.json create mode 100644 tests/fixtures/parser/ast/ts-reactive06-scope-output.json create mode 100644 tests/fixtures/parser/ast/ts-reactive06-type-output.svelte diff --git a/.eslintrc.js b/.eslintrc.js index dc39508e..22e08d6b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -69,6 +69,7 @@ module.exports = { "@typescript-eslint/no-use-before-define": "off", "@typescript-eslint/no-explicit-any": "off", "no-implicit-globals": "off", + "no-invalid-this": "off", }, }, { diff --git a/docs/internal-mechanism.md b/docs/internal-mechanism.md index 377468ce..32ec4d30 100644 --- a/docs/internal-mechanism.md +++ b/docs/internal-mechanism.md @@ -52,9 +52,10 @@ Parse the following virtual script code as a script: function inputHandler () { // process } -; +;function $_render1(){ -(inputHandler)as ((e:'input' extends keyof HTMLElementEventMap?HTMLElementEventMap['input']:CustomEvent)=>void); +(inputHandler) as ((e:'input' extends keyof HTMLElementEventMap ? HTMLElementEventMap['input'] : CustomEvent) => void ); +} ``` This gives the correct type information to the inputHandler when used with `on:input={inputHandler}`. @@ -64,6 +65,8 @@ The script AST for the HTML template is then remapped to the template AST. You can check what happens to virtual scripts in the Online Demo. https://ota-meshi.github.io/svelte-eslint-parser/virtual-script-code/ +See also [Scope Types](#scope-types) section. + ### `scopeManager` This parser returns a ScopeManager instance. @@ -88,13 +91,13 @@ Parse the following virtual script code as a script: ```ts const array = [1, 2, 3] -; +;function $_render1(){ - - - - -Array.from(array).forEach((e)=>{const ee = e * 2;(ee);}); +Array.from(array).forEach((e) => { + const ee = e * 2; + (ee); +}); +} ``` This ensures that the variable `e` defined by `{#each}` is correctly scoped only within `{#each}`. @@ -111,3 +114,58 @@ You can also check the results [Online DEMO](https://ota-meshi.github.io/svelte- ESLint custom parsers that provide their own AST require `visitorKeys` to properly traverse the node. See https://eslint.org/docs/latest/developer-guide/working-with-custom-parsers. + +## Scope Types + +TypeScript's type inference is pretty good, so parsing Svelte as-is gives some wrong type information. + +e.g. + +```ts +export let foo: { bar: number } | null = null + +$: console.log(foo && foo.bar); + // ^ never type +``` + +(You can see it on [TypeScript Online Playground](https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBAG2PAZhCAuOBvOAjAQyiwDsBXAWz2CjgF84AfOchBOAXhbLYFgAoAQBIsAYwgkAzhCQA6BBADmACjQQ4AMg1w1swlACUAbgFwz5i5YsB6a3AB6LYADcacGAE8wwAUA)) + +In the above code, foo in `$:` should be `object` or `null` in `*.svelte`, but TypeScript infers that it is `null` only. + +To avoid this problem, the parser generates hypothetical code and traps statements within `$:` to function scope. +Then restore it to have the correct AST and ScopeManager. + +For example: + +```svelte + + +{foo && foo.bar} +``` + +Parse the following virtual script code as a script: + +```ts + +export let foo: { bar: number } | null = null + +$: function $_reactiveStatementScopeFunction1(){console.log(foo && foo.bar);} + +$: let r = $_reactiveVariableScopeFunction2(); +function $_reactiveVariableScopeFunction2(){return foo && foo.bar;} + +$: let { bar: n } = $_reactiveVariableScopeFunction3(); +function $_reactiveVariableScopeFunction3(){return foo || { bar: 42 };} +;function $_render4(){ + +(foo && foo.bar); +} +``` diff --git a/explorer-v2/src/lib/AstExplorer.svelte b/explorer-v2/src/lib/AstExplorer.svelte index 872e8424..81c73042 100644 --- a/explorer-v2/src/lib/AstExplorer.svelte +++ b/explorer-v2/src/lib/AstExplorer.svelte @@ -24,15 +24,38 @@ let jsonEditor, sourceEditor; + $: hasLangTs = /lang\s*=\s*(?:"ts"|ts|'ts'|"typescript"|typescript|'typescript')/u.test( + svelteValue + ); + + let tsParser = undefined; + $: { + if (hasLangTs && !tsParser) { + import('@typescript-eslint/parser').then((parser) => { + if (typeof window !== 'undefined') { + if (!window.process) { + window.process = { + cwd: () => '', + env: {} + }; + } + } + tsParser = parser; + }); + } + } + $: { - refresh(options, svelteValue); + refresh(options, svelteValue, tsParser); } - function refresh(options, svelteValue) { + function refresh(options, svelteValue, tsParser) { let ast; const start = Date.now(); try { - ast = svelteEslintParser.parseForESLint(svelteValue).ast; + ast = svelteEslintParser.parseForESLint(svelteValue, { + parser: { ts: tsParser, typescript: tsParser } + }).ast; } catch (e) { ast = { message: e.message, diff --git a/explorer-v2/src/lib/ESLintPlayground.svelte b/explorer-v2/src/lib/ESLintPlayground.svelte index 3a27fcf4..c6357e99 100644 --- a/explorer-v2/src/lib/ESLintPlayground.svelte +++ b/explorer-v2/src/lib/ESLintPlayground.svelte @@ -34,6 +34,23 @@ let time = ''; let options = {}; + $: hasLangTs = /lang\s*=\s*(?:"ts"|ts|'ts'|"typescript"|typescript|'typescript')/u.test(code); + let tsParser = undefined; + $: { + if (hasLangTs && !tsParser) { + import('@typescript-eslint/parser').then((parser) => { + if (typeof window !== 'undefined') { + if (!window.process) { + window.process = { + cwd: () => '', + env: {} + }; + } + } + tsParser = parser; + }); + } + } $: { options = useEslintPluginSvelte3 ? getEslintPluginSvelte3Options() : {}; } @@ -124,7 +141,8 @@ parser: useEslintPluginSvelte3 ? undefined : 'svelte-eslint-parser', parserOptions: { ecmaVersion: 2020, - sourceType: 'module' + sourceType: 'module', + parser: { ts: tsParser, typescript: tsParser } }, rules, env: { @@ -141,7 +159,7 @@ {#each messages as msg, i (`${msg.line}:${msg.column}:${msg.ruleId}@${i}`)}
  • [{msg.line}:{msg.column}]: - {msg.message} ( + {msg.message} ( {msg.ruleId} )
  • diff --git a/explorer-v2/src/lib/Header.svelte b/explorer-v2/src/lib/Header.svelte index cf89b3cf..073f9b77 100644 --- a/explorer-v2/src/lib/Header.svelte +++ b/explorer-v2/src/lib/Header.svelte @@ -10,9 +10,6 @@ normalizedPathname === normalizedPath || normalizedPathname === `${baseUrl}${normalizedPath}` ); } - - // eslint-disable-next-line no-process-env -- ignore - const dev = process.env.NODE_ENV !== 'production';
    @@ -35,13 +32,11 @@ sveltekit:prefetch href="{baseUrl}/scope">Scope - {#if dev || isActive($page.url.pathname, `/virtual-script-code`)} - Virtual Script Code - {/if} + Virtual Script Code
    $page.url.pathname: {$page.url.pathname} baseUrl: {baseUrl} diff --git a/explorer-v2/src/lib/ScopeExplorer.svelte b/explorer-v2/src/lib/ScopeExplorer.svelte index 1ea0b560..ece4d8c7 100644 --- a/explorer-v2/src/lib/ScopeExplorer.svelte +++ b/explorer-v2/src/lib/ScopeExplorer.svelte @@ -23,14 +23,36 @@ let time = ''; let jsonEditor, sourceEditor; + + $: hasLangTs = /lang\s*=\s*(?:"ts"|ts|'ts'|"typescript"|typescript|'typescript')/u.test( + svelteValue + ); + let tsParser = undefined; + $: { + if (hasLangTs && !tsParser) { + import('@typescript-eslint/parser').then((parser) => { + if (typeof window !== 'undefined') { + if (!window.process) { + window.process = { + cwd: () => '', + env: {} + }; + } + } + tsParser = parser; + }); + } + } $: { - refresh(options, svelteValue); + refresh(options, svelteValue, tsParser); } - function refresh(options, svelteValue) { + function refresh(options, svelteValue, tsParser) { let scopeManager; const start = Date.now(); try { - scopeManager = svelteEslintParser.parseForESLint(svelteValue).scopeManager; + scopeManager = svelteEslintParser.parseForESLint(svelteValue, { + parser: { ts: tsParser, typescript: tsParser } + }).scopeManager; } catch (e) { scopeJson = { json: JSON.stringify({ diff --git a/src/context/index.ts b/src/context/index.ts index 4021ae63..44e86d29 100644 --- a/src/context/index.ts +++ b/src/context/index.ts @@ -14,7 +14,11 @@ import { LetDirectiveCollections } from "./let-directive-collection"; import { getParserForLang } from "../parser/resolve-parser"; import type { AttributeToken } from "../parser/html"; import { parseAttributes } from "../parser/html"; -import { maybeTSESLintParserObject } from "../parser/parser-object"; +import { + isTSESLintParserObject, + maybeTSESLintParserObject, +} from "../parser/parser-object"; +import { sortedLastIndex } from "../utils"; export class ScriptsSourceCode { private raw: string; @@ -23,6 +27,8 @@ export class ScriptsSourceCode { public readonly attrs: Record; + private _separate = ""; + private _appendScriptLets: string | null = null; public separateIndexes: number[] = []; @@ -37,26 +43,48 @@ export class ScriptsSourceCode { this.separateIndexes = [script.length]; } - public get vcode(): string { + public getCurrentVirtualCode(): string { if (this._appendScriptLets == null) { return this.raw; } - return this.trimmedRaw + this._appendScriptLets; + return this.trimmedRaw + this._separate + this._appendScriptLets; + } + + public getCurrentVirtualCodeInfo(): { script: string; render: string } { + if (this._appendScriptLets == null) { + return { script: this.raw, render: "" }; + } + return { + script: this.trimmedRaw + this._separate, + render: this._appendScriptLets, + }; + } + + public getCurrentVirtualCodeLength(): number { + if (this._appendScriptLets == null) { + return this.raw.length; + } + return ( + this.trimmedRaw.length + + this._separate.length + + this._appendScriptLets.length + ); } public addLet(letCode: string): { start: number; end: number } { if (this._appendScriptLets == null) { this._appendScriptLets = ""; - this.separateIndexes = [this.vcode.length, this.vcode.length + 1]; - this._appendScriptLets += "\n;"; - const after = this.raw.slice(this.vcode.length); + const currentLength = this.getCurrentVirtualCodeLength(); + this.separateIndexes = [currentLength, currentLength + 1]; + this._separate += "\n;"; + const after = this.raw.slice(this.getCurrentVirtualCodeLength()); this._appendScriptLets += after; } - const start = this.vcode.length; + const start = this.getCurrentVirtualCodeLength(); this._appendScriptLets += letCode; return { start, - end: this.vcode.length, + end: this.getCurrentVirtualCodeLength(), }; } @@ -207,16 +235,15 @@ export class Context { this.sourceCode.scripts.attrs, this.parserOptions?.parser ); - if ( - maybeTSESLintParserObject(parserValue) || - parserValue === "@typescript-eslint/parser" - ) { - return (this.state.isTypeScript = true); - } if (typeof parserValue !== "string") { - return (this.state.isTypeScript = false); + return (this.state.isTypeScript = + maybeTSESLintParserObject(parserValue) || + isTSESLintParserObject(parserValue)); } const parserName = parserValue; + if (parserName === "@typescript-eslint/parser") { + return (this.state.isTypeScript = true); + } if (parserName.includes("@typescript-eslint/parser")) { let targetPath = parserName; while (targetPath) { @@ -330,7 +357,10 @@ export class LinesAndColumns { } public getLocFromIndex(index: number): { line: number; column: number } { - const lineNumber = sortedLastIndex(this.lineStartIndices, index); + const lineNumber = sortedLastIndex( + this.lineStartIndices, + (target) => target - index + ); return { line: lineNumber, column: index - this.lineStartIndices[lineNumber - 1], @@ -343,26 +373,17 @@ export class LinesAndColumns { return positionIndex; } -} -/** - * Uses a binary search to determine the highest index at which value should be inserted into array in order to maintain its sort order. - */ -function sortedLastIndex(array: number[], value: number): number { - let lower = 0; - let upper = array.length; - - while (lower < upper) { - const mid = Math.floor(lower + (upper - lower) / 2); - const target = array[mid]; - if (target < value) { - lower = mid + 1; - } else if (target > value) { - upper = mid; - } else { - return mid + 1; - } + /** + * Get the location information of the given indexes. + */ + public getLocations(start: number, end: number): Locations { + return { + range: [start, end], + loc: { + start: this.getLocFromIndex(start), + end: this.getLocFromIndex(end), + }, + }; } - - return upper; } diff --git a/src/context/script-let.ts b/src/context/script-let.ts index 52f9d085..8ed818ee 100644 --- a/src/context/script-let.ts +++ b/src/context/script-let.ts @@ -1,4 +1,4 @@ -import type { ScopeManager, Scope, Reference } from "eslint-scope"; +import type { ScopeManager, Scope } from "eslint-scope"; import type * as ESTree from "estree"; import type { Context, ScriptsSourceCode } from "."; import type { @@ -12,7 +12,15 @@ import type { } from "../ast"; import type { ESLintExtendedProgram } from "../parser"; import { getWithLoc } from "../parser/converts/common"; +import { + getInnermostScopeFromNode, + getScopeFromNode, + removeAllScopeAndVariableAndReference, + removeReference, + removeScope, +} from "../scope"; import { traverseNodes } from "../traverse"; +import { UniqueIdGenerator } from "./unique"; type TSAsExpression = { type: "TSAsExpression"; @@ -112,11 +120,7 @@ export class ScriptLetContext { private readonly closeScopeCallbacks: (() => void)[] = []; - private uniqueIdSeq = 1; - - private readonly usedUniqueIds = new Set(); - - private storeValueTypeName: string | undefined; + private readonly unique = new UniqueIdGenerator(); public constructor(ctx: Context) { this.script = ctx.sourceCode.scripts; @@ -410,7 +414,7 @@ export class ScriptLetContext { (node, tokens, comments, result) => { tokens.length = 0; comments.length = 0; - removeAllScope(node, result); + removeAllScopeAndVariableAndReference(node, result); } ); } @@ -484,7 +488,7 @@ export class ScriptLetContext { column: typeAnnotation.loc.start.column, }; - removeAllScope(typeAnnotation, result); + removeAllScopeAndVariableAndReference(typeAnnotation, result); } } @@ -530,56 +534,6 @@ export class ScriptLetContext { this.closeScopeCallbacks.pop()!(); } - public appendDeclareMaybeStores(maybeStores: Set): void { - const reservedNames = new Set([ - "$$props", - "$$restProps", - "$$slots", - ]); - for (const nm of maybeStores) { - if (reservedNames.has(nm)) continue; - - if (!this.storeValueTypeName) { - this.storeValueTypeName = this.generateUniqueId("StoreValueType"); - - this.appendScriptWithoutOffset( - `type ${this.storeValueTypeName} = T extends null | undefined - ? T - : T extends object & { subscribe(run: infer F, ...args: any): any } - ? F extends (value: infer V, ...args: any) => any - ? V - : never - : T;`, - (node, tokens, comments, result) => { - tokens.length = 0; - comments.length = 0; - removeAllScope(node, result); - } - ); - } - - this.appendScriptWithoutOffset( - `declare let $${nm}: ${this.storeValueTypeName};`, - (node, tokens, comments, result) => { - tokens.length = 0; - comments.length = 0; - removeAllScope(node, result); - } - ); - } - } - - public appendDeclareReactiveVar(assignmentExpression: string): void { - this.appendScriptWithoutOffset( - `let ${assignmentExpression};`, - (node, tokens, comments, result) => { - tokens.length = 0; - comments.length = 0; - removeAllScope(node, result); - } - ); - } - private appendScript( text: string, offset: number, @@ -629,7 +583,7 @@ export class ScriptLetContext { private pushScope(restoreCallback: RestoreCallback, closeToken: string) { this.closeScopeCallbacks.push(() => { this.script.addLet(closeToken); - restoreCallback.end = this.script.vcode.length; + restoreCallback.end = this.script.getCurrentVirtualCodeLength(); }); } @@ -735,8 +689,8 @@ export class ScriptLetContext { endIndex.comment - startIndex.comment ); restoreCallback.callback(node, targetTokens, targetComments, { - getScope: getScopeFromNode, - getInnermostScope: getInnermostScopeFromNode, + getScope, + getInnermostScope, registerNodeToScope, scopeManager: result.scopeManager!, visitorKeys: result.visitorKeys, @@ -756,13 +710,13 @@ export class ScriptLetContext { // Helpers /** Get scope */ - function getScopeFromNode(node: ESTree.Node) { - return getScope(result.scopeManager!, node); + function getScope(node: ESTree.Node) { + return getScopeFromNode(result.scopeManager!, node); } /** Get innermost scope */ - function getInnermostScopeFromNode(node: ESTree.Node) { - return getInnermostScope(getScopeFromNode(node), node); + function getInnermostScope(node: ESTree.Node) { + return getInnermostScopeFromNode(result.scopeManager!, node); } /** Register node to scope */ @@ -887,55 +841,12 @@ export class ScriptLetContext { } private generateUniqueId(base: string) { - let candidate = `$_${base.replace(/\W/g, "_")}${this.uniqueIdSeq++}`; - while ( - this.usedUniqueIds.has(candidate) || - this.ctx.code.includes(candidate) || - this.script.vcode.includes(candidate) - ) { - candidate = `$_${base.replace(/\W/g, "_")}${this.uniqueIdSeq++}`; - } - this.usedUniqueIds.add(candidate); - return candidate; - } -} - -/** - * Gets the scope for the current node - */ -function getScope(scopeManager: ScopeManager, currentNode: ESTree.Node): Scope { - let node: any = currentNode; - for (; node; node = node.parent || null) { - const scope = scopeManager.acquire(node, false); - if (scope) { - if (scope.type === "function-expression-name") { - return scope.childScopes[0]; - } - return scope; - } - } - const global = scopeManager.globalScope; - return global; -} - -/** - * Get the innermost scope which contains a given location. - * @param initialScope The initial scope to search. - * @param node The location to search. - * @returns The innermost scope. - */ -function getInnermostScope(initialScope: Scope, node: ESTree.Node): Scope { - const location = node.range![0]; - - for (const childScope of initialScope.childScopes) { - const range = childScope.block.range!; - - if (range[0] <= location && location < range[1]) { - return getInnermostScope(childScope, node); - } + return this.unique.generate( + base, + this.ctx.code, + this.script.getCurrentVirtualCode() + ); } - - return initialScope; } /** @@ -952,168 +863,6 @@ function applyLocs(target: Locations | ESTree.Node, locs: Locations) { } } -/** Remove all reference */ -function removeAllScope(target: ESTree.Node, result: ScriptLetCallbackOption) { - const targetScopes = new Set(); - traverseNodes(target, { - visitorKeys: result.visitorKeys, - enterNode(node) { - const scope = result.scopeManager.acquire(node); - if (scope) { - targetScopes.add(scope); - return; - } - if (node.type === "Identifier") { - let scope = result.getInnermostScope(node); - while ( - target.range![0] <= scope.block.range![0] && - scope.block.range![1] <= target.range![1] - ) { - scope = scope.upper!; - } - if (targetScopes.has(scope)) { - return; - } - - removeIdentifierVariable(node, scope); - removeIdentifierReference(node, scope); - } - }, - leaveNode() { - // noop - }, - }); - - for (const scope of targetScopes) { - removeScope(result.scopeManager, scope); - } -} - -/** Remove variable */ -function removeIdentifierVariable(node: ESTree.Identifier, scope: Scope): void { - for (let varIndex = 0; varIndex < scope.variables.length; varIndex++) { - const variable = scope.variables[varIndex]; - const defIndex = variable.defs.findIndex((def) => def.name === node); - if (defIndex < 0) { - continue; - } - variable.defs.splice(defIndex, 1); - if (variable.defs.length === 0) { - // Remove variable - referencesToThrough(variable.references, scope); - scope.variables.splice(varIndex, 1); - const name = node.name; - if (variable === scope.set.get(name)) { - scope.set.delete(name); - } - } else { - const idIndex = variable.identifiers.indexOf(node); - if (idIndex >= 0) { - variable.identifiers.splice(idIndex, 1); - } - } - return; - } -} - -/** Move reference to through */ -function referencesToThrough(references: Reference[], baseScope: Scope) { - let scope: Scope | null = baseScope; - while (scope) { - scope.through.push(...references); - scope = scope.upper; - } -} - -/** Remove reference */ -function removeIdentifierReference( - node: ESTree.Identifier, - scope: Scope -): boolean { - const reference = scope.references.find((ref) => ref.identifier === node); - if (reference) { - removeReference(reference, scope); - return true; - } - const location = node.range![0]; - - const pendingScopes = []; - for (const childScope of scope.childScopes) { - const range = childScope.block.range!; - - if (range[0] <= location && location < range[1]) { - if (removeIdentifierReference(node, childScope)) { - return true; - } - } else { - pendingScopes.push(childScope); - } - } - for (const childScope of pendingScopes) { - if (removeIdentifierReference(node, childScope)) { - return true; - } - } - return false; -} - -/** Remove reference */ -function removeReference(reference: Reference, baseScope: Scope) { - if (reference.resolved) { - if (reference.resolved.defs.some((d) => d.name === reference.identifier)) { - // remove var - const varIndex = baseScope.variables.indexOf(reference.resolved); - if (varIndex >= 0) { - baseScope.variables.splice(varIndex, 1); - } - const name = reference.identifier.name; - if (reference.resolved === baseScope.set.get(name)) { - baseScope.set.delete(name); - } - } else { - const refIndex = reference.resolved.references.indexOf(reference); - if (refIndex >= 0) { - reference.resolved.references.splice(refIndex, 1); - } - } - } - - let scope: Scope | null = baseScope; - while (scope) { - const refIndex = scope.references.indexOf(reference); - if (refIndex >= 0) { - scope.references.splice(refIndex, 1); - } - const throughIndex = scope.through.indexOf(reference); - if (throughIndex >= 0) { - scope.through.splice(throughIndex, 1); - } - scope = scope.upper; - } -} - -/** Remove scope */ -function removeScope(scopeManager: ScopeManager, scope: Scope) { - for (const childScope of scope.childScopes) { - removeScope(scopeManager, childScope); - } - - while (scope.references[0]) { - removeReference(scope.references[0], scope); - } - const upper = scope.upper; - if (upper) { - const index = upper.childScopes.indexOf(scope); - if (index >= 0) { - upper.childScopes.splice(index, 1); - } - } - const index = scopeManager.scopes.indexOf(scope); - if (index >= 0) { - scopeManager.scopes.splice(index, 1); - } -} - /** Get the node to scope map from given scope manager */ function getNodeToScope( scopeManager: ScopeManager diff --git a/src/context/unique.ts b/src/context/unique.ts new file mode 100644 index 00000000..0c2d9b7f --- /dev/null +++ b/src/context/unique.ts @@ -0,0 +1,17 @@ +export class UniqueIdGenerator { + private uniqueIdSeq = 1; + + private readonly usedUniqueIds = new Set(); + + public generate(base: string, ...texts: string[]): string { + const hasId = (id: string) => + this.usedUniqueIds.has(id) || texts.some((t) => t.includes(id)); + + let candidate = `$_${base.replace(/\W/g, "_")}${this.uniqueIdSeq++}`; + while (hasId(candidate)) { + candidate = `$_${base.replace(/\W/g, "_")}${this.uniqueIdSeq++}`; + } + this.usedUniqueIds.add(candidate); + return candidate; + } +} diff --git a/src/parser/analyze-scope.ts b/src/parser/analyze-scope.ts index 52fe8a4b..9cec85bc 100644 --- a/src/parser/analyze-scope.ts +++ b/src/parser/analyze-scope.ts @@ -3,6 +3,8 @@ import type { Scope, ScopeManager } from "eslint-scope"; import { Variable, Reference, analyze } from "eslint-scope"; import { getFallbackKeys } from "../traverse"; import type { SvelteReactiveStatement, SvelteScriptElement } from "../ast"; +import { addReference, addVariable } from "../scope"; +import { addElementToSortedArray } from "../utils"; /** * Analyze scope */ @@ -66,16 +68,24 @@ export function analyzeReactiveScope(scopeManager: ScopeManager): void { variable = new Variable(); (variable as any).scope = referenceScope; variable.name = name; - variable.defs.push({ - type: "ComputedVariable" as "Variable", - node: node as any, - parent: parent as any, - name: reference.identifier, - }); - referenceScope.variables.push(variable); + addElementToSortedArray( + variable.defs, + { + type: "ComputedVariable" as "Variable", + node: node as any, + parent: parent as any, + name: reference.identifier, + }, + (a, b) => a.node.range[0] - b.node.range[0] + ); + addVariable(referenceScope.variables, variable); referenceScope.set.set(name, variable); } - variable.identifiers.push(reference.identifier); + addElementToSortedArray( + variable.identifiers, + reference.identifier, + (a, b) => a.range![0] - b.range![0] + ); reference.resolved = variable; removeReferenceFromThrough(reference, referenceScope); } @@ -111,7 +121,7 @@ export function analyzeStoreScope(scopeManager: ScopeManager): void { reference.isReadOnly = () => true; reference.isRead = () => true; - variable.references.push(reference); + addReference(variable.references, reference); reference.resolved = variable; removeReferenceFromThrough(reference, moduleScope); } @@ -219,7 +229,7 @@ function removeReferenceFromThrough(reference: Reference, baseScope: Scope) { } else if (ref.identifier.name === name) { ref.resolved = variable; if (!variable.references.includes(ref)) { - variable.references.push(ref); + addReference(variable.references, ref); } return false; } @@ -248,7 +258,7 @@ function addVirtualReference( reference.isReadOnly = () => Boolean(readWrite.read) && !readWrite.write; reference.isReadWrite = () => Boolean(readWrite.read && readWrite.write); - variable.references.push(reference); + addReference(variable.references, reference); reference.resolved = variable; return reference; diff --git a/src/parser/analyze-type/index.ts b/src/parser/analyze-type/index.ts deleted file mode 100644 index b99941f9..00000000 --- a/src/parser/analyze-type/index.ts +++ /dev/null @@ -1,96 +0,0 @@ -import type { ESLintExtendedProgram } from ".."; -import type { Context } from "../../context"; -import { traverseNodes } from "../../traverse"; -import { parseScriptWithoutAnalyzeScope } from "../script"; - -/** - * Append type declarations for svelte variables. - * - Append TypeScript code like - * `declare let $foo: Parameters[0]>[0];` - * to define the type information for like `$foo` variable. - * - Append TypeScript code like `let foo = bar;` to define the type information for like `$: foo = bar` variable. - */ -export function appendDeclareSvelteVarsTypes(ctx: Context): void { - const vcode = ctx.sourceCode.scripts.vcode; - - if (/\$\s*:\s*[\p{ID_Start}$(_]/u.test(vcode)) { - // Probably have a reactive variable, so we will need to parse TypeScript once to extract the reactive variables. - const result = parseScriptWithoutAnalyzeScope( - vcode, - ctx.sourceCode.scripts.attrs, - { - ...ctx.parserOptions, - // Without typings - project: null, - } - ); - appendDeclareSvelteVarsTypesFromAST(result, vcode, ctx); - } else { - appendDeclareStoreTypesFromText(vcode, ctx); - } -} - -/** - * Append type declarations for svelte variables from AST. - */ -function appendDeclareSvelteVarsTypesFromAST( - result: ESLintExtendedProgram, - code: string, - ctx: Context -) { - const maybeStores = new Set(); - - traverseNodes(result.ast, { - visitorKeys: result.visitorKeys, - enterNode: (node, parent) => { - if (node.type === "Identifier") { - if (!node.name.startsWith("$") || node.name.length <= 1) { - return; - } - maybeStores.add(node.name.slice(1)); - } else if (node.type === "LabeledStatement") { - if ( - node.label.name !== "$" || - parent !== result.ast || - node.body.type !== "ExpressionStatement" || - node.body.expression.type !== "AssignmentExpression" || - // Must be a pattern that can be used in the LHS of variable declarations. - // https://github.com/ota-meshi/svelte-eslint-parser/issues/213 - (node.body.expression.left.type !== "Identifier" && - node.body.expression.left.type !== "ArrayPattern" && - node.body.expression.left.type !== "ObjectPattern" && - node.body.expression.left.type !== "AssignmentPattern" && - node.body.expression.left.type !== "RestElement") - ) { - return; - } - // It is reactive variable declaration. - const text = code.slice(...node.body.expression.range!); - ctx.scriptLet.appendDeclareReactiveVar(text); - } - }, - leaveNode() { - /* noop */ - }, - }); - ctx.scriptLet.appendDeclareMaybeStores(maybeStores); -} - -/** - * Append type declarations for store access. - * Append TypeScript code like - * `declare let $foo: Parameters[0]>[0];` - * to define the type information for like `$foo` variable. - */ -function appendDeclareStoreTypesFromText(vcode: string, ctx: Context): void { - const extractStoreRe = /\$[\p{ID_Start}$_][\p{ID_Continue}$\u200c\u200d]*/giu; - let m; - const maybeStores = new Set(); - while ((m = extractStoreRe.exec(vcode))) { - const storeName = m[0]; - const originalName = storeName.slice(1); - maybeStores.add(originalName); - } - - ctx.scriptLet.appendDeclareMaybeStores(maybeStores); -} diff --git a/src/parser/index.ts b/src/parser/index.ts index 609ab959..c39caae3 100644 --- a/src/parser/index.ts +++ b/src/parser/index.ts @@ -19,7 +19,8 @@ import { analyzeStoreScope, } from "./analyze-scope"; import { ParseError } from "../errors"; -import { appendDeclareSvelteVarsTypes } from "./analyze-type"; +import { parseTypeScript } from "./typescript"; +import { addReference } from "../scope"; export interface ESLintProgram extends Program { comments: Comment[]; @@ -77,9 +78,18 @@ export function parseForESLint( parserOptions ); - if (ctx.isTypeScript()) appendDeclareSvelteVarsTypes(ctx); - - const resultScript = parseScript(ctx.sourceCode.scripts, parserOptions); + const scripts = ctx.sourceCode.scripts; + const resultScript = ctx.isTypeScript() + ? parseTypeScript( + scripts.getCurrentVirtualCodeInfo(), + scripts.attrs, + parserOptions + ) + : parseScript( + scripts.getCurrentVirtualCode(), + scripts.attrs, + parserOptions + ); ctx.scriptLet.restore(resultScript); ctx.tokens.push(...resultScript.ast.tokens); ctx.comments.push(...resultScript.ast.comments); @@ -103,7 +113,7 @@ export function parseForESLint( // Links the variable and the reference. // And this reference is removed from `Scope#through`. reference.resolved = variable; - variable.references.push(reference); + addReference(variable.references, reference); return false; } return true; diff --git a/src/parser/parser-object.ts b/src/parser/parser-object.ts index b7afa19d..f0bcbf1d 100644 --- a/src/parser/parser-object.ts +++ b/src/parser/parser-object.ts @@ -40,7 +40,7 @@ export function isBasicParserObject( return Boolean(value && typeof (value as any).parse === "function"); } -/** Checks whether given object is "@typescript-eslint/parser" */ +/** Checks whether given object maybe "@typescript-eslint/parser" */ export function maybeTSESLintParserObject( value: unknown ): value is TSESLintParser { @@ -52,3 +52,22 @@ export function maybeTSESLintParserObject( typeof (value as any).version === "string" ); } + +/** Checks whether given object is "@typescript-eslint/parser" */ +export function isTSESLintParserObject( + value: unknown +): value is TSESLintParser { + if (!isEnhancedParserObject(value)) return false; + try { + const result = (value as unknown as TSESLintParser).parseForESLint("", {}); + const services = result.services; + return Boolean( + services && + services.esTreeNodeToTSNodeMap && + services.tsNodeToESTreeNodeMap && + services.program + ); + } catch { + return false; + } +} diff --git a/src/parser/script.ts b/src/parser/script.ts index 74628ab2..13e3f724 100644 --- a/src/parser/script.ts +++ b/src/parser/script.ts @@ -1,7 +1,6 @@ import type { ESLintExtendedProgram } from "."; import { analyzeScope } from "./analyze-scope"; import { traverseNodes } from "../traverse"; -import type { ScriptsSourceCode } from "../context"; import { getParser } from "./resolve-parser"; import { isEnhancedParserObject } from "./parser-object"; @@ -9,10 +8,15 @@ import { isEnhancedParserObject } from "./parser-object"; * Parse for script */ export function parseScript( - script: ScriptsSourceCode, + code: string, + attrs: Record, parserOptions: any = {} ): ESLintExtendedProgram { - const result = parseScriptWithoutAnalyzeScopeFromVCode(script, parserOptions); + const result = parseScriptWithoutAnalyzeScopeFromVCode( + code, + attrs, + parserOptions + ); if (!result.scopeManager) { const scopeManager = analyzeScope(result.ast, parserOptions); @@ -63,10 +67,11 @@ export function parseScriptWithoutAnalyzeScope( * Parse for script without analyze scope */ function parseScriptWithoutAnalyzeScopeFromVCode( - { vcode, attrs }: ScriptsSourceCode, + code: string, + attrs: Record, options: any ): ESLintExtendedProgram { - const result = parseScriptWithoutAnalyzeScope(vcode, attrs, options); - result._virtualScriptCode = vcode; + const result = parseScriptWithoutAnalyzeScope(code, attrs, options); + result._virtualScriptCode = code; return result; } diff --git a/src/parser/sort.ts b/src/parser/sort.ts index 494c1f17..4a60adf5 100644 --- a/src/parser/sort.ts +++ b/src/parser/sort.ts @@ -1,7 +1,12 @@ /** * Sort tokens */ -export function sort(tokens: T[]): T[] { +export function sort( + tokens: T[] | null | undefined +): T[] { + if (!tokens) { + return []; + } return tokens.sort((a, b) => { if (a.range[0] !== b.range[0]) { return a.range[0] - b.range[0]; diff --git a/src/parser/typescript/analyze/index.ts b/src/parser/typescript/analyze/index.ts new file mode 100644 index 00000000..27590a16 --- /dev/null +++ b/src/parser/typescript/analyze/index.ts @@ -0,0 +1,458 @@ +import type { TSESTree } from "@typescript-eslint/types"; +import type { ScopeManager } from "eslint-scope"; +import { + addAllReferences, + addVariable, + getAllReferences, + getProgramScope, + removeAllScopeAndVariableAndReference, + removeIdentifierReference, + removeIdentifierVariable, + replaceScope, +} from "../../../scope"; +import { addElementsToSortedArray } from "../../../utils"; +import { parseScriptWithoutAnalyzeScope } from "../../script"; +import { TypeScriptContext } from "../context"; +import type { TSESParseForESLintResult } from "../types"; +import type ESTree from "estree"; + +const RESERVED_NAMES = new Set(["$$props", "$$restProps", "$$slots"]); +/** + * Analyze -{obj.foo} +{obj.foo} diff --git a/tests/fixtures/parser/ast/ts-reactive02-scope-output.json b/tests/fixtures/parser/ast/ts-reactive02-scope-output.json index 48e6be66..ae8d927c 100644 --- a/tests/fixtures/parser/ast/ts-reactive02-scope-output.json +++ b/tests/fixtures/parser/ast/ts-reactive02-scope-output.json @@ -8950,22 +8950,22 @@ ] }, { - "name": "a", + "name": "y", "identifiers": [ { "type": "Identifier", - "name": "a", + "name": "y", "range": [ - 161, - 162 + 117, + 118 ], "loc": { "start": { - "line": 10, + "line": 6, "column": 7 }, "end": { - "line": 10, + "line": 6, "column": 8 } } @@ -8973,114 +8973,76 @@ ], "defs": [ { - "type": "Variable", + "type": "ComputedVariable", "name": { "type": "Identifier", - "name": "a", + "name": "y", "range": [ - 161, - 162 + 117, + 118 ], "loc": { "start": { - "line": 10, + "line": 6, "column": 7 }, "end": { - "line": 10, + "line": 6, "column": 8 } } }, "node": { - "type": "VariableDeclarator", - "id": { + "type": "AssignmentExpression", + "left": { "type": "Identifier", - "name": "a", + "name": "y", "range": [ - 161, - 162 + 117, + 118 ], "loc": { "start": { - "line": 10, + "line": 6, "column": 7 }, "end": { - "line": 10, + "line": 6, "column": 8 } } }, - "init": { - "type": "CallExpression", - "arguments": [ - { - "type": "Literal", - "raw": "0", - "value": 0, - "range": [ - 174, - 175 - ], - "loc": { - "start": { - "line": 10, - "column": 20 - }, - "end": { - "line": 10, - "column": 21 - } - } - } - ], - "callee": { - "type": "Identifier", - "name": "writable", - "range": [ - 165, - 173 - ], - "loc": { - "start": { - "line": 10, - "column": 11 - }, - "end": { - "line": 10, - "column": 19 - } - } - }, - "optional": false, + "operator": "=", + "right": { + "type": "Identifier", + "name": "x", "range": [ - 165, - 176 + 121, + 122 ], "loc": { "start": { - "line": 10, + "line": 6, "column": 11 }, "end": { - "line": 10, - "column": 22 + "line": 6, + "column": 12 } } }, "range": [ - 161, - 176 + 117, + 122 ], "loc": { "start": { - "line": 10, + "line": 6, "column": 7 }, "end": { - "line": 10, - "column": 22 + "line": 6, + "column": 12 } } } @@ -9090,59 +9052,161 @@ { "identifier": { "type": "Identifier", - "name": "a", + "name": "y", "range": [ - 161, - 162 + 134, + 135 ], "loc": { "start": { - "line": 10, - "column": 7 + "line": 7, + "column": 11 }, "end": { - "line": 10, - "column": 8 + "line": 7, + "column": 12 } } }, "from": "module", - "init": true, + "init": null, "resolved": { "type": "Identifier", - "name": "a", + "name": "y", "range": [ - 161, - 162 + 117, + 118 ], "loc": { "start": { - "line": 10, + "line": 6, "column": 7 }, "end": { - "line": 10, + "line": 6, "column": 8 } } } - }, + } + ] + }, + { + "name": "z", + "identifiers": [ + { + "type": "Identifier", + "name": "z", + "range": [ + 130, + 131 + ], + "loc": { + "start": { + "line": 7, + "column": 7 + }, + "end": { + "line": 7, + "column": 8 + } + } + } + ], + "defs": [ + { + "type": "ComputedVariable", + "name": { + "type": "Identifier", + "name": "z", + "range": [ + 130, + 131 + ], + "loc": { + "start": { + "line": 7, + "column": 7 + }, + "end": { + "line": 7, + "column": 8 + } + } + }, + "node": { + "type": "AssignmentExpression", + "left": { + "type": "Identifier", + "name": "z", + "range": [ + 130, + 131 + ], + "loc": { + "start": { + "line": 7, + "column": 7 + }, + "end": { + "line": 7, + "column": 8 + } + } + }, + "operator": "=", + "right": { + "type": "Identifier", + "name": "y", + "range": [ + 134, + 135 + ], + "loc": { + "start": { + "line": 7, + "column": 11 + }, + "end": { + "line": 7, + "column": 12 + } + } + }, + "range": [ + 130, + 135 + ], + "loc": { + "start": { + "line": 7, + "column": 7 + }, + "end": { + "line": 7, + "column": 12 + } + } + } + } + ], + "references": [ { "identifier": { "type": "Identifier", - "name": "a", + "name": "z", "range": [ - 253, - 254 + 225, + 226 ], "loc": { "start": { - "line": 16, - "column": 1 + "line": 14, + "column": 14 }, "end": { - "line": 16, - "column": 2 + "line": 14, + "column": 15 } } }, @@ -9150,39 +9214,141 @@ "init": null, "resolved": { "type": "Identifier", - "name": "a", + "name": "z", "range": [ - 161, - 162 + 130, + 131 ], "loc": { "start": { - "line": 10, + "line": 7, "column": 7 }, "end": { - "line": 10, + "line": 7, "column": 8 } } } - }, + } + ] + }, + { + "name": "foo", + "identifiers": [ + { + "type": "Identifier", + "name": "foo", + "range": [ + 143, + 146 + ], + "loc": { + "start": { + "line": 8, + "column": 7 + }, + "end": { + "line": 8, + "column": 10 + } + } + } + ], + "defs": [ + { + "type": "ComputedVariable", + "name": { + "type": "Identifier", + "name": "foo", + "range": [ + 143, + 146 + ], + "loc": { + "start": { + "line": 8, + "column": 7 + }, + "end": { + "line": 8, + "column": 10 + } + } + }, + "node": { + "type": "AssignmentExpression", + "left": { + "type": "Identifier", + "name": "foo", + "range": [ + 143, + 146 + ], + "loc": { + "start": { + "line": 8, + "column": 7 + }, + "end": { + "line": 8, + "column": 10 + } + } + }, + "operator": "=", + "right": { + "type": "Identifier", + "name": "get", + "range": [ + 149, + 152 + ], + "loc": { + "start": { + "line": 8, + "column": 13 + }, + "end": { + "line": 8, + "column": 16 + } + } + }, + "range": [ + 143, + 152 + ], + "loc": { + "start": { + "line": 8, + "column": 7 + }, + "end": { + "line": 8, + "column": 16 + } + } + } + } + ], + "references": [ { "identifier": { "type": "Identifier", - "name": "$a", + "name": "foo", "range": [ - 257, - 259 + 245, + 248 ], "loc": { "start": { - "line": 17, + "line": 15, "column": 1 }, "end": { - "line": 17, - "column": 3 + "line": 15, + "column": 4 } } }, @@ -9190,19 +9356,19 @@ "init": null, "resolved": { "type": "Identifier", - "name": "a", + "name": "foo", "range": [ - 161, - 162 + 143, + 146 ], "loc": { "start": { - "line": 10, + "line": 8, "column": 7 }, "end": { - "line": 10, - "column": 8 + "line": 8, + "column": 10 } } } @@ -9210,22 +9376,22 @@ ] }, { - "name": "b", + "name": "a", "identifiers": [ { "type": "Identifier", - "name": "b", + "name": "a", "range": [ - 184, - 185 + 161, + 162 ], "loc": { "start": { - "line": 11, + "line": 10, "column": 7 }, "end": { - "line": 11, + "line": 10, "column": 8 } } @@ -9236,18 +9402,18 @@ "type": "Variable", "name": { "type": "Identifier", - "name": "b", + "name": "a", "range": [ - 184, - 185 + 161, + 162 ], "loc": { "start": { - "line": 11, + "line": 10, "column": 7 }, "end": { - "line": 11, + "line": 10, "column": 8 } } @@ -9256,18 +9422,18 @@ "type": "VariableDeclarator", "id": { "type": "Identifier", - "name": "b", + "name": "a", "range": [ - 184, - 185 + 161, + 162 ], "loc": { "start": { - "line": 11, + "line": 10, "column": 7 }, "end": { - "line": 11, + "line": 10, "column": 8 } } @@ -9280,16 +9446,16 @@ "raw": "0", "value": 0, "range": [ - 197, - 198 + 174, + 175 ], "loc": { "start": { - "line": 11, + "line": 10, "column": 20 }, "end": { - "line": 11, + "line": 10, "column": 21 } } @@ -9299,47 +9465,47 @@ "type": "Identifier", "name": "writable", "range": [ - 188, - 196 + 165, + 173 ], "loc": { "start": { - "line": 11, + "line": 10, "column": 11 }, "end": { - "line": 11, + "line": 10, "column": 19 } } }, "optional": false, "range": [ - 188, - 199 + 165, + 176 ], "loc": { "start": { - "line": 11, + "line": 10, "column": 11 }, "end": { - "line": 11, + "line": 10, "column": 22 } } }, "range": [ - 184, - 199 + 161, + 176 ], "loc": { "start": { - "line": 11, + "line": 10, "column": 7 }, "end": { - "line": 11, + "line": 10, "column": 22 } } @@ -9350,18 +9516,18 @@ { "identifier": { "type": "Identifier", - "name": "b", + "name": "a", "range": [ - 184, - 185 + 161, + 162 ], "loc": { "start": { - "line": 11, + "line": 10, "column": 7 }, "end": { - "line": 11, + "line": 10, "column": 8 } } @@ -9370,18 +9536,18 @@ "init": true, "resolved": { "type": "Identifier", - "name": "b", + "name": "a", "range": [ - 184, - 185 + 161, + 162 ], "loc": { "start": { - "line": 11, + "line": 10, "column": 7 }, "end": { - "line": 11, + "line": 10, "column": 8 } } @@ -9390,18 +9556,18 @@ { "identifier": { "type": "Identifier", - "name": "b", + "name": "a", "range": [ - 262, - 263 + 253, + 254 ], "loc": { "start": { - "line": 18, + "line": 16, "column": 1 }, "end": { - "line": 18, + "line": 16, "column": 2 } } @@ -9410,18 +9576,18 @@ "init": null, "resolved": { "type": "Identifier", - "name": "b", + "name": "a", "range": [ - 184, - 185 + 161, + 162 ], "loc": { "start": { - "line": 11, + "line": 10, "column": 7 }, "end": { - "line": 11, + "line": 10, "column": 8 } } @@ -9430,18 +9596,18 @@ { "identifier": { "type": "Identifier", - "name": "$b", + "name": "$a", "range": [ - 266, - 268 + 257, + 259 ], "loc": { "start": { - "line": 19, + "line": 17, "column": 1 }, "end": { - "line": 19, + "line": 17, "column": 3 } } @@ -9450,160 +9616,18 @@ "init": null, "resolved": { "type": "Identifier", - "name": "b", - "range": [ - 184, - 185 - ], - "loc": { - "start": { - "line": 11, - "column": 7 - }, - "end": { - "line": 11, - "column": 8 - } - } - } - } - ] - }, - { - "name": "y", - "identifiers": [ - { - "type": "Identifier", - "name": "y", - "range": [ - 117, - 118 - ], - "loc": { - "start": { - "line": 6, - "column": 7 - }, - "end": { - "line": 6, - "column": 8 - } - } - } - ], - "defs": [ - { - "type": "ComputedVariable", - "name": { - "type": "Identifier", - "name": "y", - "range": [ - 117, - 118 - ], - "loc": { - "start": { - "line": 6, - "column": 7 - }, - "end": { - "line": 6, - "column": 8 - } - } - }, - "node": { - "type": "AssignmentExpression", - "left": { - "type": "Identifier", - "name": "y", - "range": [ - 117, - 118 - ], - "loc": { - "start": { - "line": 6, - "column": 7 - }, - "end": { - "line": 6, - "column": 8 - } - } - }, - "operator": "=", - "right": { - "type": "Identifier", - "name": "x", - "range": [ - 121, - 122 - ], - "loc": { - "start": { - "line": 6, - "column": 11 - }, - "end": { - "line": 6, - "column": 12 - } - } - }, - "range": [ - 117, - 122 - ], - "loc": { - "start": { - "line": 6, - "column": 7 - }, - "end": { - "line": 6, - "column": 12 - } - } - } - } - ], - "references": [ - { - "identifier": { - "type": "Identifier", - "name": "y", - "range": [ - 134, - 135 - ], - "loc": { - "start": { - "line": 7, - "column": 11 - }, - "end": { - "line": 7, - "column": 12 - } - } - }, - "from": "module", - "init": null, - "resolved": { - "type": "Identifier", - "name": "y", + "name": "a", "range": [ - 117, - 118 + 161, + 162 ], "loc": { "start": { - "line": 6, + "line": 10, "column": 7 }, "end": { - "line": 6, + "line": 10, "column": 8 } } @@ -9612,22 +9636,22 @@ ] }, { - "name": "z", + "name": "b", "identifiers": [ { "type": "Identifier", - "name": "z", + "name": "b", "range": [ - 130, - 131 + 184, + 185 ], "loc": { "start": { - "line": 7, + "line": 11, "column": 7 }, "end": { - "line": 7, + "line": 11, "column": 8 } } @@ -9635,76 +9659,114 @@ ], "defs": [ { - "type": "ComputedVariable", + "type": "Variable", "name": { "type": "Identifier", - "name": "z", + "name": "b", "range": [ - 130, - 131 + 184, + 185 ], "loc": { "start": { - "line": 7, + "line": 11, "column": 7 }, "end": { - "line": 7, + "line": 11, "column": 8 } } }, "node": { - "type": "AssignmentExpression", - "left": { + "type": "VariableDeclarator", + "id": { "type": "Identifier", - "name": "z", + "name": "b", "range": [ - 130, - 131 + 184, + 185 ], "loc": { "start": { - "line": 7, + "line": 11, "column": 7 }, "end": { - "line": 7, + "line": 11, "column": 8 } } }, - "operator": "=", - "right": { - "type": "Identifier", - "name": "y", + "init": { + "type": "CallExpression", + "arguments": [ + { + "type": "Literal", + "raw": "0", + "value": 0, + "range": [ + 197, + 198 + ], + "loc": { + "start": { + "line": 11, + "column": 20 + }, + "end": { + "line": 11, + "column": 21 + } + } + } + ], + "callee": { + "type": "Identifier", + "name": "writable", + "range": [ + 188, + 196 + ], + "loc": { + "start": { + "line": 11, + "column": 11 + }, + "end": { + "line": 11, + "column": 19 + } + } + }, + "optional": false, "range": [ - 134, - 135 + 188, + 199 ], "loc": { "start": { - "line": 7, + "line": 11, "column": 11 }, "end": { - "line": 7, - "column": 12 + "line": 11, + "column": 22 } } }, "range": [ - 130, - 135 + 184, + 199 ], "loc": { "start": { - "line": 7, + "line": 11, "column": 7 }, "end": { - "line": 7, - "column": 12 + "line": 11, + "column": 22 } } } @@ -9714,161 +9776,99 @@ { "identifier": { "type": "Identifier", - "name": "z", + "name": "b", "range": [ - 225, - 226 + 184, + 185 ], "loc": { "start": { - "line": 14, - "column": 14 + "line": 11, + "column": 7 }, "end": { - "line": 14, - "column": 15 + "line": 11, + "column": 8 } } }, "from": "module", - "init": null, + "init": true, "resolved": { "type": "Identifier", - "name": "z", + "name": "b", "range": [ - 130, - 131 + 184, + 185 ], "loc": { "start": { - "line": 7, + "line": 11, "column": 7 }, "end": { - "line": 7, + "line": 11, "column": 8 } } } - } - ] - }, - { - "name": "foo", - "identifiers": [ - { - "type": "Identifier", - "name": "foo", - "range": [ - 143, - 146 - ], - "loc": { - "start": { - "line": 8, - "column": 7 - }, - "end": { - "line": 8, - "column": 10 - } - } - } - ], - "defs": [ + }, { - "type": "ComputedVariable", - "name": { + "identifier": { "type": "Identifier", - "name": "foo", + "name": "b", "range": [ - 143, - 146 + 262, + 263 ], "loc": { "start": { - "line": 8, - "column": 7 + "line": 18, + "column": 1 }, "end": { - "line": 8, - "column": 10 + "line": 18, + "column": 2 } } }, - "node": { - "type": "AssignmentExpression", - "left": { - "type": "Identifier", - "name": "foo", - "range": [ - 143, - 146 - ], - "loc": { - "start": { - "line": 8, - "column": 7 - }, - "end": { - "line": 8, - "column": 10 - } - } - }, - "operator": "=", - "right": { - "type": "Identifier", - "name": "get", - "range": [ - 149, - 152 - ], - "loc": { - "start": { - "line": 8, - "column": 13 - }, - "end": { - "line": 8, - "column": 16 - } - } - }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "b", "range": [ - 143, - 152 + 184, + 185 ], "loc": { "start": { - "line": 8, + "line": 11, "column": 7 }, "end": { - "line": 8, - "column": 16 + "line": 11, + "column": 8 } } } - } - ], - "references": [ + }, { "identifier": { "type": "Identifier", - "name": "foo", + "name": "$b", "range": [ - 245, - 248 + 266, + 268 ], "loc": { "start": { - "line": 15, + "line": 19, "column": 1 }, "end": { - "line": 15, - "column": 4 + "line": 19, + "column": 3 } } }, @@ -9876,19 +9876,19 @@ "init": null, "resolved": { "type": "Identifier", - "name": "foo", + "name": "b", "range": [ - 143, - 146 + 184, + 185 ], "loc": { "start": { - "line": 8, + "line": 11, "column": 7 }, "end": { - "line": 8, - "column": 10 + "line": 11, + "column": 8 } } } diff --git a/tests/fixtures/parser/ast/ts-reactive03-scope-output.json b/tests/fixtures/parser/ast/ts-reactive03-scope-output.json index 67d1b557..0168961d 100644 --- a/tests/fixtures/parser/ast/ts-reactive03-scope-output.json +++ b/tests/fixtures/parser/ast/ts-reactive03-scope-output.json @@ -8602,17 +8602,17 @@ "type": "Identifier", "name": "x", "range": [ - 76, - 77 + 34, + 35 ], "loc": { "start": { - "line": 4, - "column": 17 + "line": 2, + "column": 15 }, "end": { - "line": 4, - "column": 18 + "line": 2, + "column": 16 } } }, @@ -8642,17 +8642,17 @@ "type": "Identifier", "name": "x", "range": [ - 34, - 35 + 76, + 77 ], "loc": { "start": { - "line": 2, - "column": 15 + "line": 4, + "column": 17 }, "end": { - "line": 2, - "column": 16 + "line": 4, + "column": 18 } } }, diff --git a/tests/fixtures/parser/ast/ts-reactive05-scope-output.json b/tests/fixtures/parser/ast/ts-reactive05-scope-output.json index 8d6680b3..5d488f8a 100644 --- a/tests/fixtures/parser/ast/ts-reactive05-scope-output.json +++ b/tests/fixtures/parser/ast/ts-reactive05-scope-output.json @@ -8704,19 +8704,19 @@ { "identifier": { "type": "Identifier", - "name": "a", + "name": "$a", "range": [ - 166, - 167 + 104, + 106 ], "loc": { "start": { - "line": 10, - "column": 1 + "line": 5, + "column": 16 }, "end": { - "line": 10, - "column": 2 + "line": 5, + "column": 18 } } }, @@ -8744,19 +8744,19 @@ { "identifier": { "type": "Identifier", - "name": "$a", + "name": "a", "range": [ - 104, - 106 + 166, + 167 ], "loc": { "start": { - "line": 5, - "column": 16 + "line": 10, + "column": 1 }, "end": { - "line": 5, - "column": 18 + "line": 10, + "column": 2 } } }, @@ -8864,137 +8864,99 @@ ] }, { - "name": "b", + "name": "aValue", "identifiers": [ { "type": "Identifier", - "name": "b", + "name": "aValue", "range": [ - 136, - 137 + 95, + 101 ], "loc": { "start": { - "line": 7, - "column": 10 + "line": 5, + "column": 7 }, "end": { - "line": 7, - "column": 11 + "line": 5, + "column": 13 } } } ], "defs": [ { - "type": "Variable", + "type": "ComputedVariable", "name": { "type": "Identifier", - "name": "b", + "name": "aValue", "range": [ - 136, - 137 + 95, + 101 ], "loc": { "start": { - "line": 7, - "column": 10 + "line": 5, + "column": 7 }, "end": { - "line": 7, - "column": 11 + "line": 5, + "column": 13 } } }, "node": { - "type": "VariableDeclarator", - "id": { + "type": "AssignmentExpression", + "left": { "type": "Identifier", - "name": "b", + "name": "aValue", "range": [ - 136, - 137 + 95, + 101 ], "loc": { "start": { - "line": 7, - "column": 10 + "line": 5, + "column": 7 }, "end": { - "line": 7, - "column": 11 + "line": 5, + "column": 13 } } }, - "init": { - "type": "CallExpression", - "arguments": [ - { - "type": "Literal", - "raw": "\"b\"", - "value": "b", - "range": [ - 149, - 152 - ], - "loc": { - "start": { - "line": 7, - "column": 23 - }, - "end": { - "line": 7, - "column": 26 - } - } - } - ], - "callee": { - "type": "Identifier", - "name": "writable", - "range": [ - 140, - 148 - ], - "loc": { - "start": { - "line": 7, - "column": 14 - }, - "end": { - "line": 7, - "column": 22 - } - } - }, - "optional": false, + "operator": "=", + "right": { + "type": "Identifier", + "name": "$a", "range": [ - 140, - 153 + 104, + 106 ], "loc": { "start": { - "line": 7, - "column": 14 + "line": 5, + "column": 16 }, "end": { - "line": 7, - "column": 27 + "line": 5, + "column": 18 } } }, "range": [ - 136, - 153 + 95, + 106 ], "loc": { "start": { - "line": 7, - "column": 10 + "line": 5, + "column": 7 }, "end": { - "line": 7, - "column": 27 + "line": 5, + "column": 18 } } } @@ -9004,179 +8966,161 @@ { "identifier": { "type": "Identifier", - "name": "b", + "name": "aValue", "range": [ - 136, - 137 + 175, + 181 ], "loc": { "start": { - "line": 7, - "column": 10 + "line": 12, + "column": 1 }, "end": { - "line": 7, - "column": 11 + "line": 12, + "column": 7 } } }, "from": "module", - "init": true, + "init": null, "resolved": { "type": "Identifier", - "name": "b", + "name": "aValue", "range": [ - 136, - 137 + 95, + 101 ], "loc": { "start": { - "line": 7, - "column": 10 + "line": 5, + "column": 7 }, "end": { - "line": 7, - "column": 11 + "line": 5, + "column": 13 } } } - }, + } + ] + }, + { + "name": "bValue", + "identifiers": [ { - "identifier": { - "type": "Identifier", - "name": "b", - "range": [ - 184, - 185 - ], - "loc": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 13, - "column": 2 - } - } - }, - "from": "module", - "init": null, - "resolved": { - "type": "Identifier", - "name": "b", - "range": [ - 136, - 137 - ], - "loc": { - "start": { - "line": 7, - "column": 10 - }, - "end": { - "line": 7, - "column": 11 - } + "type": "Identifier", + "name": "bValue", + "range": [ + 114, + 120 + ], + "loc": { + "start": { + "line": 6, + "column": 7 + }, + "end": { + "line": 6, + "column": 13 } } - }, + } + ], + "defs": [ { - "identifier": { + "type": "ComputedVariable", + "name": { "type": "Identifier", - "name": "$b", + "name": "bValue", "range": [ - 123, - 125 + 114, + 120 ], "loc": { "start": { "line": 6, - "column": 16 + "column": 7 }, "end": { "line": 6, - "column": 18 + "column": 13 } } }, - "from": "module", - "init": null, - "resolved": { - "type": "Identifier", - "name": "b", - "range": [ - 136, - 137 - ], - "loc": { - "start": { - "line": 7, - "column": 10 - }, - "end": { - "line": 7, - "column": 11 + "node": { + "type": "AssignmentExpression", + "left": { + "type": "Identifier", + "name": "bValue", + "range": [ + 114, + 120 + ], + "loc": { + "start": { + "line": 6, + "column": 7 + }, + "end": { + "line": 6, + "column": 13 + } } - } - } - }, - { - "identifier": { - "type": "Identifier", - "name": "$b", - "range": [ - 188, - 190 - ], - "loc": { - "start": { - "line": 14, - "column": 1 - }, - "end": { - "line": 14, - "column": 3 + }, + "operator": "=", + "right": { + "type": "Identifier", + "name": "$b", + "range": [ + 123, + 125 + ], + "loc": { + "start": { + "line": 6, + "column": 16 + }, + "end": { + "line": 6, + "column": 18 + } } - } - }, - "from": "module", - "init": null, - "resolved": { - "type": "Identifier", - "name": "b", + }, "range": [ - 136, - 137 + 114, + 125 ], "loc": { "start": { - "line": 7, - "column": 10 + "line": 6, + "column": 7 }, "end": { - "line": 7, - "column": 11 + "line": 6, + "column": 18 } } } - }, + } + ], + "references": [ { "identifier": { "type": "Identifier", - "name": "$b", + "name": "bValue", "range": [ - 188, - 190 + 193, + 199 ], "loc": { "start": { - "line": 14, + "line": 15, "column": 1 }, "end": { - "line": 14, - "column": 3 + "line": 15, + "column": 7 } } }, @@ -9184,19 +9128,19 @@ "init": null, "resolved": { "type": "Identifier", - "name": "b", + "name": "bValue", "range": [ - 136, - 137 + 114, + 120 ], "loc": { "start": { - "line": 7, - "column": 10 + "line": 6, + "column": 7 }, "end": { - "line": 7, - "column": 11 + "line": 6, + "column": 13 } } } @@ -9204,99 +9148,137 @@ ] }, { - "name": "aValue", + "name": "b", "identifiers": [ { "type": "Identifier", - "name": "aValue", + "name": "b", "range": [ - 95, - 101 + 136, + 137 ], "loc": { "start": { - "line": 5, - "column": 7 + "line": 7, + "column": 10 }, "end": { - "line": 5, - "column": 13 + "line": 7, + "column": 11 } } } ], "defs": [ { - "type": "ComputedVariable", + "type": "Variable", "name": { "type": "Identifier", - "name": "aValue", + "name": "b", "range": [ - 95, - 101 + 136, + 137 ], "loc": { "start": { - "line": 5, - "column": 7 + "line": 7, + "column": 10 }, "end": { - "line": 5, - "column": 13 + "line": 7, + "column": 11 } } }, "node": { - "type": "AssignmentExpression", - "left": { + "type": "VariableDeclarator", + "id": { "type": "Identifier", - "name": "aValue", + "name": "b", "range": [ - 95, - 101 + 136, + 137 ], "loc": { "start": { - "line": 5, - "column": 7 + "line": 7, + "column": 10 }, "end": { - "line": 5, - "column": 13 + "line": 7, + "column": 11 } } }, - "operator": "=", - "right": { - "type": "Identifier", - "name": "$a", + "init": { + "type": "CallExpression", + "arguments": [ + { + "type": "Literal", + "raw": "\"b\"", + "value": "b", + "range": [ + 149, + 152 + ], + "loc": { + "start": { + "line": 7, + "column": 23 + }, + "end": { + "line": 7, + "column": 26 + } + } + } + ], + "callee": { + "type": "Identifier", + "name": "writable", + "range": [ + 140, + 148 + ], + "loc": { + "start": { + "line": 7, + "column": 14 + }, + "end": { + "line": 7, + "column": 22 + } + } + }, + "optional": false, "range": [ - 104, - 106 + 140, + 153 ], "loc": { "start": { - "line": 5, - "column": 16 + "line": 7, + "column": 14 }, "end": { - "line": 5, - "column": 18 + "line": 7, + "column": 27 } } }, "range": [ - 95, - 106 + 136, + 153 ], "loc": { "start": { - "line": 5, - "column": 7 + "line": 7, + "column": 10 }, "end": { - "line": 5, - "column": 18 + "line": 7, + "column": 27 } } } @@ -9306,19 +9288,19 @@ { "identifier": { "type": "Identifier", - "name": "aValue", + "name": "$b", "range": [ - 175, - 181 + 123, + 125 ], "loc": { "start": { - "line": 12, - "column": 1 + "line": 6, + "column": 16 }, "end": { - "line": 12, - "column": 7 + "line": 6, + "column": 18 } } }, @@ -9326,141 +9308,159 @@ "init": null, "resolved": { "type": "Identifier", - "name": "aValue", + "name": "b", "range": [ - 95, - 101 + 136, + 137 ], "loc": { "start": { - "line": 5, - "column": 7 + "line": 7, + "column": 10 }, "end": { - "line": 5, - "column": 13 + "line": 7, + "column": 11 } } } - } - ] - }, - { - "name": "bValue", - "identifiers": [ + }, { - "type": "Identifier", - "name": "bValue", - "range": [ - 114, - 120 - ], - "loc": { - "start": { - "line": 6, - "column": 7 - }, - "end": { - "line": 6, - "column": 13 + "identifier": { + "type": "Identifier", + "name": "b", + "range": [ + 136, + 137 + ], + "loc": { + "start": { + "line": 7, + "column": 10 + }, + "end": { + "line": 7, + "column": 11 + } + } + }, + "from": "module", + "init": true, + "resolved": { + "type": "Identifier", + "name": "b", + "range": [ + 136, + 137 + ], + "loc": { + "start": { + "line": 7, + "column": 10 + }, + "end": { + "line": 7, + "column": 11 + } } } - } - ], - "defs": [ + }, { - "type": "ComputedVariable", - "name": { + "identifier": { "type": "Identifier", - "name": "bValue", + "name": "b", "range": [ - 114, - 120 + 184, + 185 ], "loc": { "start": { - "line": 6, - "column": 7 + "line": 13, + "column": 1 }, "end": { - "line": 6, - "column": 13 + "line": 13, + "column": 2 } } }, - "node": { - "type": "AssignmentExpression", - "left": { - "type": "Identifier", - "name": "bValue", - "range": [ - 114, - 120 - ], - "loc": { - "start": { - "line": 6, - "column": 7 - }, - "end": { - "line": 6, - "column": 13 - } + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "b", + "range": [ + 136, + 137 + ], + "loc": { + "start": { + "line": 7, + "column": 10 + }, + "end": { + "line": 7, + "column": 11 } - }, - "operator": "=", - "right": { - "type": "Identifier", - "name": "$b", - "range": [ - 123, - 125 - ], - "loc": { - "start": { - "line": 6, - "column": 16 - }, - "end": { - "line": 6, - "column": 18 - } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "$b", + "range": [ + 188, + 190 + ], + "loc": { + "start": { + "line": 14, + "column": 1 + }, + "end": { + "line": 14, + "column": 3 } - }, + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "b", "range": [ - 114, - 125 + 136, + 137 ], "loc": { "start": { - "line": 6, - "column": 7 + "line": 7, + "column": 10 }, "end": { - "line": 6, - "column": 18 + "line": 7, + "column": 11 } } } - } - ], - "references": [ + }, { "identifier": { "type": "Identifier", - "name": "bValue", + "name": "$b", "range": [ - 193, - 199 + 188, + 190 ], "loc": { "start": { - "line": 15, + "line": 14, "column": 1 }, "end": { - "line": 15, - "column": 7 + "line": 14, + "column": 3 } } }, @@ -9468,19 +9468,19 @@ "init": null, "resolved": { "type": "Identifier", - "name": "bValue", + "name": "b", "range": [ - 114, - 120 + 136, + 137 ], "loc": { "start": { - "line": 6, - "column": 7 + "line": 7, + "column": 10 }, "end": { - "line": 6, - "column": 13 + "line": 7, + "column": 11 } } } diff --git a/tests/fixtures/parser/ast/ts-reactive06-input.svelte b/tests/fixtures/parser/ast/ts-reactive06-input.svelte new file mode 100644 index 00000000..f71e4877 --- /dev/null +++ b/tests/fixtures/parser/ast/ts-reactive06-input.svelte @@ -0,0 +1,15 @@ + + + +{foo && foo.bar} +{r} +{n} diff --git a/tests/fixtures/parser/ast/ts-reactive06-no-unused-vars-result.json b/tests/fixtures/parser/ast/ts-reactive06-no-unused-vars-result.json new file mode 100644 index 00000000..5ae1de18 --- /dev/null +++ b/tests/fixtures/parser/ast/ts-reactive06-no-unused-vars-result.json @@ -0,0 +1,8 @@ +[ + { + "ruleId": "no-unused-vars", + "code": "a", + "line": 6, + "column": 4 + } +] \ No newline at end of file diff --git a/tests/fixtures/parser/ast/ts-reactive06-output.json b/tests/fixtures/parser/ast/ts-reactive06-output.json new file mode 100644 index 00000000..add071a9 --- /dev/null +++ b/tests/fixtures/parser/ast/ts-reactive06-output.json @@ -0,0 +1,2791 @@ +{ + "type": "Program", + "body": [ + { + "type": "SvelteText", + "value": "\n", + "range": [ + 0, + 1 + ], + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 0 + } + } + }, + { + "type": "SvelteScriptElement", + "name": { + "type": "SvelteName", + "name": "script", + "range": [ + 2, + 8 + ], + "loc": { + "start": { + "line": 2, + "column": 1 + }, + "end": { + "line": 2, + "column": 7 + } + } + }, + "startTag": { + "type": "SvelteStartTag", + "attributes": [ + { + "type": "SvelteAttribute", + "key": { + "type": "SvelteName", + "name": "lang", + "range": [ + 9, + 13 + ], + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 2, + "column": 12 + } + } + }, + "boolean": false, + "value": [ + { + "type": "SvelteLiteral", + "value": "ts", + "range": [ + 15, + 17 + ], + "loc": { + "start": { + "line": 2, + "column": 14 + }, + "end": { + "line": 2, + "column": 16 + } + } + } + ], + "range": [ + 9, + 18 + ], + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 2, + "column": 17 + } + } + } + ], + "selfClosing": false, + "range": [ + 1, + 19 + ], + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 18 + } + } + }, + "body": [ + { + "type": "ExportNamedDeclaration", + "declaration": { + "type": "VariableDeclaration", + "kind": "let", + "declarations": [ + { + "type": "VariableDeclarator", + "id": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "init": { + "type": "Literal", + "raw": "null", + "value": null, + "range": [ + 61, + 65 + ], + "loc": { + "start": { + "line": 3, + "column": 41 + }, + "end": { + "line": 3, + "column": 45 + } + } + }, + "range": [ + 31, + 65 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 45 + } + } + } + ], + "range": [ + 27, + 65 + ], + "loc": { + "start": { + "line": 3, + "column": 7 + }, + "end": { + "line": 3, + "column": 45 + } + } + }, + "exportKind": "value", + "source": null, + "specifiers": [], + "range": [ + 20, + 65 + ], + "loc": { + "start": { + "line": 3, + "column": 0 + }, + "end": { + "line": 3, + "column": 45 + } + } + }, + { + "type": "VariableDeclaration", + "kind": "let", + "declarations": [ + { + "type": "VariableDeclarator", + "id": { + "type": "Identifier", + "name": "a", + "range": [ + 71, + 72 + ], + "loc": { + "start": { + "line": 5, + "column": 4 + }, + "end": { + "line": 5, + "column": 5 + } + } + }, + "init": null, + "range": [ + 71, + 72 + ], + "loc": { + "start": { + "line": 5, + "column": 4 + }, + "end": { + "line": 5, + "column": 5 + } + } + } + ], + "range": [ + 67, + 72 + ], + "loc": { + "start": { + "line": 5, + "column": 0 + }, + "end": { + "line": 5, + "column": 5 + } + } + }, + { + "type": "SvelteReactiveStatement", + "label": { + "type": "Identifier", + "name": "$", + "range": [ + 73, + 74 + ], + "loc": { + "start": { + "line": 6, + "column": 0 + }, + "end": { + "line": 6, + "column": 1 + } + } + }, + "body": { + "type": "ExpressionStatement", + "expression": { + "type": "AssignmentExpression", + "left": { + "type": "Identifier", + "name": "a", + "range": [ + 76, + 77 + ], + "loc": { + "start": { + "line": 6, + "column": 3 + }, + "end": { + "line": 6, + "column": 4 + } + } + }, + "operator": "=", + "right": { + "type": "LogicalExpression", + "left": { + "type": "Identifier", + "name": "foo", + "range": [ + 80, + 83 + ], + "loc": { + "start": { + "line": 6, + "column": 7 + }, + "end": { + "line": 6, + "column": 10 + } + } + }, + "operator": "&&", + "right": { + "type": "MemberExpression", + "computed": false, + "object": { + "type": "Identifier", + "name": "foo", + "range": [ + 87, + 90 + ], + "loc": { + "start": { + "line": 6, + "column": 14 + }, + "end": { + "line": 6, + "column": 17 + } + } + }, + "optional": false, + "property": { + "type": "Identifier", + "name": "bar", + "range": [ + 91, + 94 + ], + "loc": { + "start": { + "line": 6, + "column": 18 + }, + "end": { + "line": 6, + "column": 21 + } + } + }, + "range": [ + 87, + 94 + ], + "loc": { + "start": { + "line": 6, + "column": 14 + }, + "end": { + "line": 6, + "column": 21 + } + } + }, + "range": [ + 80, + 94 + ], + "loc": { + "start": { + "line": 6, + "column": 7 + }, + "end": { + "line": 6, + "column": 21 + } + } + }, + "range": [ + 76, + 94 + ], + "loc": { + "start": { + "line": 6, + "column": 3 + }, + "end": { + "line": 6, + "column": 21 + } + } + }, + "range": [ + 76, + 95 + ], + "loc": { + "start": { + "line": 6, + "column": 3 + }, + "end": { + "line": 6, + "column": 22 + } + } + }, + "range": [ + 73, + 95 + ], + "loc": { + "start": { + "line": 6, + "column": 0 + }, + "end": { + "line": 6, + "column": 22 + } + } + }, + { + "type": "SvelteReactiveStatement", + "label": { + "type": "Identifier", + "name": "$", + "range": [ + 97, + 98 + ], + "loc": { + "start": { + "line": 8, + "column": 0 + }, + "end": { + "line": 8, + "column": 1 + } + } + }, + "body": { + "type": "ExpressionStatement", + "expression": { + "type": "AssignmentExpression", + "left": { + "type": "Identifier", + "name": "r", + "range": [ + 100, + 101 + ], + "loc": { + "start": { + "line": 8, + "column": 3 + }, + "end": { + "line": 8, + "column": 4 + } + } + }, + "operator": "=", + "right": { + "type": "LogicalExpression", + "left": { + "type": "Identifier", + "name": "foo", + "range": [ + 104, + 107 + ], + "loc": { + "start": { + "line": 8, + "column": 7 + }, + "end": { + "line": 8, + "column": 10 + } + } + }, + "operator": "&&", + "right": { + "type": "MemberExpression", + "computed": false, + "object": { + "type": "Identifier", + "name": "foo", + "range": [ + 111, + 114 + ], + "loc": { + "start": { + "line": 8, + "column": 14 + }, + "end": { + "line": 8, + "column": 17 + } + } + }, + "optional": false, + "property": { + "type": "Identifier", + "name": "bar", + "range": [ + 115, + 118 + ], + "loc": { + "start": { + "line": 8, + "column": 18 + }, + "end": { + "line": 8, + "column": 21 + } + } + }, + "range": [ + 111, + 118 + ], + "loc": { + "start": { + "line": 8, + "column": 14 + }, + "end": { + "line": 8, + "column": 21 + } + } + }, + "range": [ + 104, + 118 + ], + "loc": { + "start": { + "line": 8, + "column": 7 + }, + "end": { + "line": 8, + "column": 21 + } + } + }, + "range": [ + 100, + 118 + ], + "loc": { + "start": { + "line": 8, + "column": 3 + }, + "end": { + "line": 8, + "column": 21 + } + } + }, + "range": [ + 100, + 119 + ], + "loc": { + "start": { + "line": 8, + "column": 3 + }, + "end": { + "line": 8, + "column": 22 + } + } + }, + "range": [ + 97, + 119 + ], + "loc": { + "start": { + "line": 8, + "column": 0 + }, + "end": { + "line": 8, + "column": 22 + } + } + }, + { + "type": "SvelteReactiveStatement", + "label": { + "type": "Identifier", + "name": "$", + "range": [ + 121, + 122 + ], + "loc": { + "start": { + "line": 10, + "column": 0 + }, + "end": { + "line": 10, + "column": 1 + } + } + }, + "body": { + "type": "ExpressionStatement", + "expression": { + "type": "AssignmentExpression", + "left": { + "type": "ObjectPattern", + "properties": [ + { + "type": "Property", + "kind": "init", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 127, + 130 + ], + "loc": { + "start": { + "line": 10, + "column": 6 + }, + "end": { + "line": 10, + "column": 9 + } + } + }, + "method": false, + "shorthand": false, + "value": { + "type": "Identifier", + "name": "n", + "range": [ + 132, + 133 + ], + "loc": { + "start": { + "line": 10, + "column": 11 + }, + "end": { + "line": 10, + "column": 12 + } + } + }, + "range": [ + 127, + 133 + ], + "loc": { + "start": { + "line": 10, + "column": 6 + }, + "end": { + "line": 10, + "column": 12 + } + } + } + ], + "range": [ + 125, + 135 + ], + "loc": { + "start": { + "line": 10, + "column": 4 + }, + "end": { + "line": 10, + "column": 14 + } + } + }, + "operator": "=", + "right": { + "type": "LogicalExpression", + "left": { + "type": "Identifier", + "name": "foo", + "range": [ + 138, + 141 + ], + "loc": { + "start": { + "line": 10, + "column": 17 + }, + "end": { + "line": 10, + "column": 20 + } + } + }, + "operator": "||", + "right": { + "type": "ObjectExpression", + "properties": [ + { + "type": "Property", + "kind": "init", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 147, + 150 + ], + "loc": { + "start": { + "line": 10, + "column": 26 + }, + "end": { + "line": 10, + "column": 29 + } + } + }, + "method": false, + "shorthand": false, + "value": { + "type": "Literal", + "raw": "42", + "value": 42, + "range": [ + 152, + 154 + ], + "loc": { + "start": { + "line": 10, + "column": 31 + }, + "end": { + "line": 10, + "column": 33 + } + } + }, + "range": [ + 147, + 154 + ], + "loc": { + "start": { + "line": 10, + "column": 26 + }, + "end": { + "line": 10, + "column": 33 + } + } + } + ], + "range": [ + 145, + 156 + ], + "loc": { + "start": { + "line": 10, + "column": 24 + }, + "end": { + "line": 10, + "column": 35 + } + } + }, + "range": [ + 138, + 156 + ], + "loc": { + "start": { + "line": 10, + "column": 17 + }, + "end": { + "line": 10, + "column": 35 + } + } + }, + "range": [ + 125, + 156 + ], + "loc": { + "start": { + "line": 10, + "column": 4 + }, + "end": { + "line": 10, + "column": 35 + } + } + }, + "range": [ + 124, + 158 + ], + "loc": { + "start": { + "line": 10, + "column": 3 + }, + "end": { + "line": 10, + "column": 37 + } + } + }, + "range": [ + 121, + 158 + ], + "loc": { + "start": { + "line": 10, + "column": 0 + }, + "end": { + "line": 10, + "column": 37 + } + } + } + ], + "endTag": { + "type": "SvelteEndTag", + "range": [ + 159, + 168 + ], + "loc": { + "start": { + "line": 11, + "column": 0 + }, + "end": { + "line": 11, + "column": 9 + } + } + }, + "range": [ + 1, + 168 + ], + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 11, + "column": 9 + } + } + }, + { + "type": "SvelteText", + "value": "\n\n", + "range": [ + 168, + 170 + ], + "loc": { + "start": { + "line": 11, + "column": 9 + }, + "end": { + "line": 13, + "column": 0 + } + } + }, + { + "type": "SvelteMustacheTag", + "kind": "text", + "expression": { + "type": "LogicalExpression", + "left": { + "type": "Identifier", + "name": "foo", + "range": [ + 171, + 174 + ], + "loc": { + "start": { + "line": 13, + "column": 1 + }, + "end": { + "line": 13, + "column": 4 + } + } + }, + "operator": "&&", + "right": { + "type": "MemberExpression", + "computed": false, + "object": { + "type": "Identifier", + "name": "foo", + "range": [ + 178, + 181 + ], + "loc": { + "start": { + "line": 13, + "column": 8 + }, + "end": { + "line": 13, + "column": 11 + } + } + }, + "optional": false, + "property": { + "type": "Identifier", + "name": "bar", + "range": [ + 182, + 185 + ], + "loc": { + "start": { + "line": 13, + "column": 12 + }, + "end": { + "line": 13, + "column": 15 + } + } + }, + "range": [ + 178, + 185 + ], + "loc": { + "start": { + "line": 13, + "column": 8 + }, + "end": { + "line": 13, + "column": 15 + } + } + }, + "range": [ + 171, + 185 + ], + "loc": { + "start": { + "line": 13, + "column": 1 + }, + "end": { + "line": 13, + "column": 15 + } + } + }, + "range": [ + 170, + 186 + ], + "loc": { + "start": { + "line": 13, + "column": 0 + }, + "end": { + "line": 13, + "column": 16 + } + } + }, + { + "type": "SvelteText", + "value": "\n", + "range": [ + 186, + 187 + ], + "loc": { + "start": { + "line": 13, + "column": 16 + }, + "end": { + "line": 14, + "column": 0 + } + } + }, + { + "type": "SvelteMustacheTag", + "kind": "text", + "expression": { + "type": "Identifier", + "name": "r", + "range": [ + 188, + 189 + ], + "loc": { + "start": { + "line": 14, + "column": 1 + }, + "end": { + "line": 14, + "column": 2 + } + } + }, + "range": [ + 187, + 190 + ], + "loc": { + "start": { + "line": 14, + "column": 0 + }, + "end": { + "line": 14, + "column": 3 + } + } + }, + { + "type": "SvelteText", + "value": "\n", + "range": [ + 190, + 191 + ], + "loc": { + "start": { + "line": 14, + "column": 3 + }, + "end": { + "line": 15, + "column": 0 + } + } + }, + { + "type": "SvelteMustacheTag", + "kind": "text", + "expression": { + "type": "Identifier", + "name": "n", + "range": [ + 192, + 193 + ], + "loc": { + "start": { + "line": 15, + "column": 1 + }, + "end": { + "line": 15, + "column": 2 + } + } + }, + "range": [ + 191, + 194 + ], + "loc": { + "start": { + "line": 15, + "column": 0 + }, + "end": { + "line": 15, + "column": 3 + } + } + } + ], + "sourceType": "module", + "comments": [], + "tokens": [ + { + "type": "HTMLText", + "value": "\n", + "range": [ + 0, + 1 + ], + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 0 + } + } + }, + { + "type": "Punctuator", + "value": "<", + "range": [ + 1, + 2 + ], + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 1 + } + } + }, + { + "type": "HTMLIdentifier", + "value": "script", + "range": [ + 2, + 8 + ], + "loc": { + "start": { + "line": 2, + "column": 1 + }, + "end": { + "line": 2, + "column": 7 + } + } + }, + { + "type": "HTMLIdentifier", + "value": "lang", + "range": [ + 9, + 13 + ], + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 2, + "column": 12 + } + } + }, + { + "type": "Punctuator", + "value": "=", + "range": [ + 13, + 14 + ], + "loc": { + "start": { + "line": 2, + "column": 12 + }, + "end": { + "line": 2, + "column": 13 + } + } + }, + { + "type": "Punctuator", + "value": "\"", + "range": [ + 14, + 15 + ], + "loc": { + "start": { + "line": 2, + "column": 13 + }, + "end": { + "line": 2, + "column": 14 + } + } + }, + { + "type": "HTMLText", + "value": "ts", + "range": [ + 15, + 17 + ], + "loc": { + "start": { + "line": 2, + "column": 14 + }, + "end": { + "line": 2, + "column": 16 + } + } + }, + { + "type": "Punctuator", + "value": "\"", + "range": [ + 17, + 18 + ], + "loc": { + "start": { + "line": 2, + "column": 16 + }, + "end": { + "line": 2, + "column": 17 + } + } + }, + { + "type": "Punctuator", + "value": ">", + "range": [ + 18, + 19 + ], + "loc": { + "start": { + "line": 2, + "column": 17 + }, + "end": { + "line": 2, + "column": 18 + } + } + }, + { + "type": "Keyword", + "value": "export", + "range": [ + 20, + 26 + ], + "loc": { + "start": { + "line": 3, + "column": 0 + }, + "end": { + "line": 3, + "column": 6 + } + } + }, + { + "type": "Keyword", + "value": "let", + "range": [ + 27, + 30 + ], + "loc": { + "start": { + "line": 3, + "column": 7 + }, + "end": { + "line": 3, + "column": 10 + } + } + }, + { + "type": "Identifier", + "value": "foo", + "range": [ + 31, + 34 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 14 + } + } + }, + { + "type": "Punctuator", + "value": ":", + "range": [ + 34, + 35 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 15 + } + } + }, + { + "type": "Punctuator", + "value": "{", + "range": [ + 36, + 37 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 17 + } + } + }, + { + "type": "Identifier", + "value": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + { + "type": "Punctuator", + "value": ":", + "range": [ + 41, + 42 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 22 + } + } + }, + { + "type": "Identifier", + "value": "number", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + { + "type": "Punctuator", + "value": "}", + "range": [ + 50, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 30 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "Punctuator", + "value": "|", + "range": [ + 52, + 53 + ], + "loc": { + "start": { + "line": 3, + "column": 32 + }, + "end": { + "line": 3, + "column": 33 + } + } + }, + { + "type": "Keyword", + "value": "null", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + { + "type": "Punctuator", + "value": "=", + "range": [ + 59, + 60 + ], + "loc": { + "start": { + "line": 3, + "column": 39 + }, + "end": { + "line": 3, + "column": 40 + } + } + }, + { + "type": "Keyword", + "value": "null", + "range": [ + 61, + 65 + ], + "loc": { + "start": { + "line": 3, + "column": 41 + }, + "end": { + "line": 3, + "column": 45 + } + } + }, + { + "type": "Keyword", + "value": "let", + "range": [ + 67, + 70 + ], + "loc": { + "start": { + "line": 5, + "column": 0 + }, + "end": { + "line": 5, + "column": 3 + } + } + }, + { + "type": "Identifier", + "value": "a", + "range": [ + 71, + 72 + ], + "loc": { + "start": { + "line": 5, + "column": 4 + }, + "end": { + "line": 5, + "column": 5 + } + } + }, + { + "type": "Identifier", + "value": "$", + "range": [ + 73, + 74 + ], + "loc": { + "start": { + "line": 6, + "column": 0 + }, + "end": { + "line": 6, + "column": 1 + } + } + }, + { + "type": "Punctuator", + "value": ":", + "range": [ + 74, + 75 + ], + "loc": { + "start": { + "line": 6, + "column": 1 + }, + "end": { + "line": 6, + "column": 2 + } + } + }, + { + "type": "Identifier", + "value": "a", + "range": [ + 76, + 77 + ], + "loc": { + "start": { + "line": 6, + "column": 3 + }, + "end": { + "line": 6, + "column": 4 + } + } + }, + { + "type": "Punctuator", + "value": "=", + "range": [ + 78, + 79 + ], + "loc": { + "start": { + "line": 6, + "column": 5 + }, + "end": { + "line": 6, + "column": 6 + } + } + }, + { + "type": "Identifier", + "value": "foo", + "range": [ + 80, + 83 + ], + "loc": { + "start": { + "line": 6, + "column": 7 + }, + "end": { + "line": 6, + "column": 10 + } + } + }, + { + "type": "Punctuator", + "value": "&&", + "range": [ + 84, + 86 + ], + "loc": { + "start": { + "line": 6, + "column": 11 + }, + "end": { + "line": 6, + "column": 13 + } + } + }, + { + "type": "Identifier", + "value": "foo", + "range": [ + 87, + 90 + ], + "loc": { + "start": { + "line": 6, + "column": 14 + }, + "end": { + "line": 6, + "column": 17 + } + } + }, + { + "type": "Punctuator", + "value": ".", + "range": [ + 90, + 91 + ], + "loc": { + "start": { + "line": 6, + "column": 17 + }, + "end": { + "line": 6, + "column": 18 + } + } + }, + { + "type": "Identifier", + "value": "bar", + "range": [ + 91, + 94 + ], + "loc": { + "start": { + "line": 6, + "column": 18 + }, + "end": { + "line": 6, + "column": 21 + } + } + }, + { + "type": "Punctuator", + "value": ";", + "range": [ + 94, + 95 + ], + "loc": { + "start": { + "line": 6, + "column": 21 + }, + "end": { + "line": 6, + "column": 22 + } + } + }, + { + "type": "Identifier", + "value": "$", + "range": [ + 97, + 98 + ], + "loc": { + "start": { + "line": 8, + "column": 0 + }, + "end": { + "line": 8, + "column": 1 + } + } + }, + { + "type": "Punctuator", + "value": ":", + "range": [ + 98, + 99 + ], + "loc": { + "start": { + "line": 8, + "column": 1 + }, + "end": { + "line": 8, + "column": 2 + } + } + }, + { + "type": "Identifier", + "value": "r", + "range": [ + 100, + 101 + ], + "loc": { + "start": { + "line": 8, + "column": 3 + }, + "end": { + "line": 8, + "column": 4 + } + } + }, + { + "type": "Punctuator", + "value": "=", + "range": [ + 102, + 103 + ], + "loc": { + "start": { + "line": 8, + "column": 5 + }, + "end": { + "line": 8, + "column": 6 + } + } + }, + { + "type": "Identifier", + "value": "foo", + "range": [ + 104, + 107 + ], + "loc": { + "start": { + "line": 8, + "column": 7 + }, + "end": { + "line": 8, + "column": 10 + } + } + }, + { + "type": "Punctuator", + "value": "&&", + "range": [ + 108, + 110 + ], + "loc": { + "start": { + "line": 8, + "column": 11 + }, + "end": { + "line": 8, + "column": 13 + } + } + }, + { + "type": "Identifier", + "value": "foo", + "range": [ + 111, + 114 + ], + "loc": { + "start": { + "line": 8, + "column": 14 + }, + "end": { + "line": 8, + "column": 17 + } + } + }, + { + "type": "Punctuator", + "value": ".", + "range": [ + 114, + 115 + ], + "loc": { + "start": { + "line": 8, + "column": 17 + }, + "end": { + "line": 8, + "column": 18 + } + } + }, + { + "type": "Identifier", + "value": "bar", + "range": [ + 115, + 118 + ], + "loc": { + "start": { + "line": 8, + "column": 18 + }, + "end": { + "line": 8, + "column": 21 + } + } + }, + { + "type": "Punctuator", + "value": ";", + "range": [ + 118, + 119 + ], + "loc": { + "start": { + "line": 8, + "column": 21 + }, + "end": { + "line": 8, + "column": 22 + } + } + }, + { + "type": "Identifier", + "value": "$", + "range": [ + 121, + 122 + ], + "loc": { + "start": { + "line": 10, + "column": 0 + }, + "end": { + "line": 10, + "column": 1 + } + } + }, + { + "type": "Punctuator", + "value": ":", + "range": [ + 122, + 123 + ], + "loc": { + "start": { + "line": 10, + "column": 1 + }, + "end": { + "line": 10, + "column": 2 + } + } + }, + { + "type": "Punctuator", + "value": "(", + "range": [ + 124, + 125 + ], + "loc": { + "start": { + "line": 10, + "column": 3 + }, + "end": { + "line": 10, + "column": 4 + } + } + }, + { + "type": "Punctuator", + "value": "{", + "range": [ + 125, + 126 + ], + "loc": { + "start": { + "line": 10, + "column": 4 + }, + "end": { + "line": 10, + "column": 5 + } + } + }, + { + "type": "Identifier", + "value": "bar", + "range": [ + 127, + 130 + ], + "loc": { + "start": { + "line": 10, + "column": 6 + }, + "end": { + "line": 10, + "column": 9 + } + } + }, + { + "type": "Punctuator", + "value": ":", + "range": [ + 130, + 131 + ], + "loc": { + "start": { + "line": 10, + "column": 9 + }, + "end": { + "line": 10, + "column": 10 + } + } + }, + { + "type": "Identifier", + "value": "n", + "range": [ + 132, + 133 + ], + "loc": { + "start": { + "line": 10, + "column": 11 + }, + "end": { + "line": 10, + "column": 12 + } + } + }, + { + "type": "Punctuator", + "value": "}", + "range": [ + 134, + 135 + ], + "loc": { + "start": { + "line": 10, + "column": 13 + }, + "end": { + "line": 10, + "column": 14 + } + } + }, + { + "type": "Punctuator", + "value": "=", + "range": [ + 136, + 137 + ], + "loc": { + "start": { + "line": 10, + "column": 15 + }, + "end": { + "line": 10, + "column": 16 + } + } + }, + { + "type": "Identifier", + "value": "foo", + "range": [ + 138, + 141 + ], + "loc": { + "start": { + "line": 10, + "column": 17 + }, + "end": { + "line": 10, + "column": 20 + } + } + }, + { + "type": "Punctuator", + "value": "||", + "range": [ + 142, + 144 + ], + "loc": { + "start": { + "line": 10, + "column": 21 + }, + "end": { + "line": 10, + "column": 23 + } + } + }, + { + "type": "Punctuator", + "value": "{", + "range": [ + 145, + 146 + ], + "loc": { + "start": { + "line": 10, + "column": 24 + }, + "end": { + "line": 10, + "column": 25 + } + } + }, + { + "type": "Identifier", + "value": "bar", + "range": [ + 147, + 150 + ], + "loc": { + "start": { + "line": 10, + "column": 26 + }, + "end": { + "line": 10, + "column": 29 + } + } + }, + { + "type": "Punctuator", + "value": ":", + "range": [ + 150, + 151 + ], + "loc": { + "start": { + "line": 10, + "column": 29 + }, + "end": { + "line": 10, + "column": 30 + } + } + }, + { + "type": "Numeric", + "value": "42", + "range": [ + 152, + 154 + ], + "loc": { + "start": { + "line": 10, + "column": 31 + }, + "end": { + "line": 10, + "column": 33 + } + } + }, + { + "type": "Punctuator", + "value": "}", + "range": [ + 155, + 156 + ], + "loc": { + "start": { + "line": 10, + "column": 34 + }, + "end": { + "line": 10, + "column": 35 + } + } + }, + { + "type": "Punctuator", + "value": ")", + "range": [ + 156, + 157 + ], + "loc": { + "start": { + "line": 10, + "column": 35 + }, + "end": { + "line": 10, + "column": 36 + } + } + }, + { + "type": "Punctuator", + "value": ";", + "range": [ + 157, + 158 + ], + "loc": { + "start": { + "line": 10, + "column": 36 + }, + "end": { + "line": 10, + "column": 37 + } + } + }, + { + "type": "Punctuator", + "value": "<", + "range": [ + 159, + 160 + ], + "loc": { + "start": { + "line": 11, + "column": 0 + }, + "end": { + "line": 11, + "column": 1 + } + } + }, + { + "type": "Punctuator", + "value": "/", + "range": [ + 160, + 161 + ], + "loc": { + "start": { + "line": 11, + "column": 1 + }, + "end": { + "line": 11, + "column": 2 + } + } + }, + { + "type": "HTMLIdentifier", + "value": "script", + "range": [ + 161, + 167 + ], + "loc": { + "start": { + "line": 11, + "column": 2 + }, + "end": { + "line": 11, + "column": 8 + } + } + }, + { + "type": "Punctuator", + "value": ">", + "range": [ + 167, + 168 + ], + "loc": { + "start": { + "line": 11, + "column": 8 + }, + "end": { + "line": 11, + "column": 9 + } + } + }, + { + "type": "HTMLText", + "value": "\n\n", + "range": [ + 168, + 170 + ], + "loc": { + "start": { + "line": 11, + "column": 9 + }, + "end": { + "line": 13, + "column": 0 + } + } + }, + { + "type": "Punctuator", + "value": "{", + "range": [ + 170, + 171 + ], + "loc": { + "start": { + "line": 13, + "column": 0 + }, + "end": { + "line": 13, + "column": 1 + } + } + }, + { + "type": "Identifier", + "value": "foo", + "range": [ + 171, + 174 + ], + "loc": { + "start": { + "line": 13, + "column": 1 + }, + "end": { + "line": 13, + "column": 4 + } + } + }, + { + "type": "Punctuator", + "value": "&&", + "range": [ + 175, + 177 + ], + "loc": { + "start": { + "line": 13, + "column": 5 + }, + "end": { + "line": 13, + "column": 7 + } + } + }, + { + "type": "Identifier", + "value": "foo", + "range": [ + 178, + 181 + ], + "loc": { + "start": { + "line": 13, + "column": 8 + }, + "end": { + "line": 13, + "column": 11 + } + } + }, + { + "type": "Punctuator", + "value": ".", + "range": [ + 181, + 182 + ], + "loc": { + "start": { + "line": 13, + "column": 11 + }, + "end": { + "line": 13, + "column": 12 + } + } + }, + { + "type": "Identifier", + "value": "bar", + "range": [ + 182, + 185 + ], + "loc": { + "start": { + "line": 13, + "column": 12 + }, + "end": { + "line": 13, + "column": 15 + } + } + }, + { + "type": "Punctuator", + "value": "}", + "range": [ + 185, + 186 + ], + "loc": { + "start": { + "line": 13, + "column": 15 + }, + "end": { + "line": 13, + "column": 16 + } + } + }, + { + "type": "HTMLText", + "value": "\n", + "range": [ + 186, + 187 + ], + "loc": { + "start": { + "line": 13, + "column": 16 + }, + "end": { + "line": 14, + "column": 0 + } + } + }, + { + "type": "Punctuator", + "value": "{", + "range": [ + 187, + 188 + ], + "loc": { + "start": { + "line": 14, + "column": 0 + }, + "end": { + "line": 14, + "column": 1 + } + } + }, + { + "type": "Identifier", + "value": "r", + "range": [ + 188, + 189 + ], + "loc": { + "start": { + "line": 14, + "column": 1 + }, + "end": { + "line": 14, + "column": 2 + } + } + }, + { + "type": "Punctuator", + "value": "}", + "range": [ + 189, + 190 + ], + "loc": { + "start": { + "line": 14, + "column": 2 + }, + "end": { + "line": 14, + "column": 3 + } + } + }, + { + "type": "HTMLText", + "value": "\n", + "range": [ + 190, + 191 + ], + "loc": { + "start": { + "line": 14, + "column": 3 + }, + "end": { + "line": 15, + "column": 0 + } + } + }, + { + "type": "Punctuator", + "value": "{", + "range": [ + 191, + 192 + ], + "loc": { + "start": { + "line": 15, + "column": 0 + }, + "end": { + "line": 15, + "column": 1 + } + } + }, + { + "type": "Identifier", + "value": "n", + "range": [ + 192, + 193 + ], + "loc": { + "start": { + "line": 15, + "column": 1 + }, + "end": { + "line": 15, + "column": 2 + } + } + }, + { + "type": "Punctuator", + "value": "}", + "range": [ + 193, + 194 + ], + "loc": { + "start": { + "line": 15, + "column": 2 + }, + "end": { + "line": 15, + "column": 3 + } + } + } + ], + "range": [ + 0, + 195 + ], + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 16, + "column": 0 + } + } +} \ No newline at end of file diff --git a/tests/fixtures/parser/ast/ts-reactive06-scope-output.json b/tests/fixtures/parser/ast/ts-reactive06-scope-output.json new file mode 100644 index 00000000..4f58fa00 --- /dev/null +++ b/tests/fixtures/parser/ast/ts-reactive06-scope-output.json @@ -0,0 +1,13234 @@ +{ + "type": "global", + "variables": [ + { + "name": "Symbol", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PropertyKey", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PropertyDescriptor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PropertyDescriptorMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Object", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ObjectConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Function", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FunctionConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ThisParameterType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OmitThisParameter", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CallableFunction", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NewableFunction", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IArguments", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "String", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "StringConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Boolean", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BooleanConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Number", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NumberConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TemplateStringsArray", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ImportMeta", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ImportCallOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ImportAssertions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Math", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Date", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DateConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RegExpMatchArray", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RegExpExecArray", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RegExp", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RegExpConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Error", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ErrorConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EvalError", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EvalErrorConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RangeError", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RangeErrorConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReferenceError", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReferenceErrorConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SyntaxError", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SyntaxErrorConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TypeError", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TypeErrorConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "URIError", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "URIErrorConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "JSON", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadonlyArray", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ConcatArray", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Array", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ArrayConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TypedPropertyDescriptor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ClassDecorator", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PropertyDecorator", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MethodDecorator", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ParameterDecorator", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PromiseConstructorLike", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PromiseLike", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Promise", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Awaited", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ArrayLike", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Partial", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Required", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Readonly", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Pick", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Record", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Exclude", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Extract", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Omit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NonNullable", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Parameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ConstructorParameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReturnType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "InstanceType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Uppercase", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Lowercase", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Capitalize", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Uncapitalize", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ThisType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ArrayBuffer", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ArrayBufferTypes", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ArrayBufferLike", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ArrayBufferConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ArrayBufferView", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DataView", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DataViewConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Int8Array", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Int8ArrayConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Uint8Array", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Uint8ArrayConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Uint8ClampedArray", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Uint8ClampedArrayConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Int16Array", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Int16ArrayConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Uint16Array", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Uint16ArrayConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Int32Array", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Int32ArrayConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Uint32Array", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Uint32ArrayConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Float32Array", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Float32ArrayConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Float64Array", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Float64ArrayConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Intl", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AddEventListenerOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AesCbcParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AesCtrParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AesDerivedKeyParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AesGcmParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AesKeyAlgorithm", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AesKeyGenParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Algorithm", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AnalyserOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AnimationEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AnimationPlaybackEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AssignedNodesOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioBufferOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioBufferSourceOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioConfiguration", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioContextOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioNodeOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioProcessingEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioTimestamp", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioWorkletNodeOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AuthenticationExtensionsClientInputs", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AuthenticationExtensionsClientOutputs", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AuthenticatorSelectionCriteria", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BiquadFilterOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BlobEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BlobPropertyBag", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSStyleSheetInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CacheQueryOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasRenderingContext2DSettings", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ChannelMergerOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ChannelSplitterOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ClientQueryOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ClipboardEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ClipboardItemOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CloseEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CompositionEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ComputedEffectTiming", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ComputedKeyframe", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ConstantSourceOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ConstrainBooleanParameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ConstrainDOMStringParameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ConstrainDoubleRange", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ConstrainULongRange", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ConvolverOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CredentialCreationOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CredentialPropertiesOutput", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CredentialRequestOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CryptoKeyPair", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CustomEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMMatrix2DInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMMatrixInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMPointInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMQuadInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMRectInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DelayOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DeviceMotionEventAccelerationInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DeviceMotionEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DeviceMotionEventRotationRateInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DeviceOrientationEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DisplayMediaStreamConstraints", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DocumentTimelineOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DoubleRange", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DragEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DynamicsCompressorOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EcKeyAlgorithm", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EcKeyGenParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EcKeyImportParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EcdhKeyDeriveParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EcdsaParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EffectTiming", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ElementCreationOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ElementDefinitionOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ErrorEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EventListenerOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EventModifierInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EventSourceInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FilePropertyBag", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystemFlags", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystemGetDirectoryOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystemGetFileOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystemRemoveOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FocusEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FocusOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FontFaceDescriptors", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FontFaceSetLoadEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FormDataEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FullscreenOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GainOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GamepadEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GetAnimationsOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GetNotificationOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GetRootNodeOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HashChangeEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HkdfParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HmacImportParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HmacKeyAlgorithm", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HmacKeyGenParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBDatabaseInfo", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBIndexParameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBObjectStoreParameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBTransactionOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBVersionChangeEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IIRFilterOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IdleRequestOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ImageBitmapOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ImageBitmapRenderingContextSettings", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ImageDataSettings", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "InputEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IntersectionObserverEntryInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IntersectionObserverInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "JsonWebKey", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "KeyAlgorithm", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "KeyboardEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Keyframe", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "KeyframeAnimationOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "KeyframeEffectOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "LockInfo", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "LockManagerSnapshot", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "LockOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaCapabilitiesDecodingInfo", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaCapabilitiesEncodingInfo", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaCapabilitiesInfo", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaConfiguration", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaDecodingConfiguration", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaElementAudioSourceOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaEncodingConfiguration", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaEncryptedEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaImage", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaKeyMessageEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaKeySystemConfiguration", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaKeySystemMediaCapability", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaMetadataInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaPositionState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaQueryListEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaRecorderErrorEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaRecorderOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaSessionActionDetails", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaStreamAudioSourceOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaStreamConstraints", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaStreamTrackEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaTrackCapabilities", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaTrackConstraintSet", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaTrackConstraints", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaTrackSettings", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaTrackSupportedConstraints", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MessageEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MouseEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MultiCacheQueryOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MutationObserverInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NavigationPreloadState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NotificationAction", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NotificationOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OfflineAudioCompletionEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OfflineAudioContextOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OptionalEffectTiming", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OscillatorOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PageTransitionEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PannerOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentCurrencyAmount", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentDetailsBase", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentDetailsInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentDetailsModifier", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentDetailsUpdate", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentItem", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentMethodChangeEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentMethodData", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentRequestUpdateEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentValidationErrors", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Pbkdf2Params", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceMarkOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceMeasureOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceObserverInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PeriodicWaveConstraints", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PeriodicWaveOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PermissionDescriptor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PointerEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PopStateEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PositionOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ProgressEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PromiseRejectionEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PropertyIndexedKeyframes", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PublicKeyCredentialCreationOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PublicKeyCredentialDescriptor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PublicKeyCredentialEntity", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PublicKeyCredentialParameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PublicKeyCredentialRequestOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PublicKeyCredentialRpEntity", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PublicKeyCredentialUserEntity", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PushSubscriptionJSON", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PushSubscriptionOptionsInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "QueuingStrategy", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "QueuingStrategyInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCAnswerOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCCertificateExpiration", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCConfiguration", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDTMFToneChangeEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDataChannelEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDataChannelInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDtlsFingerprint", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCEncodedAudioFrameMetadata", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCEncodedVideoFrameMetadata", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCErrorEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCErrorInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceCandidateInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceCandidatePairStats", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceServer", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCInboundRtpStreamStats", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCLocalSessionDescriptionInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCOfferAnswerOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCOfferOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCOutboundRtpStreamStats", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCPeerConnectionIceErrorEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCPeerConnectionIceEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCReceivedRtpStreamStats", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtcpParameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpCapabilities", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpCodecCapability", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpCodecParameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpCodingParameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpContributingSource", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpEncodingParameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpHeaderExtensionCapability", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpHeaderExtensionParameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpParameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpReceiveParameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpSendParameters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpStreamStats", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpSynchronizationSource", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpTransceiverInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCSentRtpStreamStats", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCSessionDescriptionInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCStats", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCTrackEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCTransportStats", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadableStreamReadDoneResult", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadableStreamReadValueResult", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadableWritablePair", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RegistrationOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RequestInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ResizeObserverOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ResponseInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RsaHashedImportParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RsaHashedKeyAlgorithm", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RsaHashedKeyGenParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RsaKeyAlgorithm", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RsaKeyGenParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RsaOaepParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RsaOtherPrimesInfo", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RsaPssParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGBoundingBoxOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ScrollIntoViewOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ScrollOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ScrollToOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SecurityPolicyViolationEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ShadowRootInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ShareData", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SpeechSynthesisErrorEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SpeechSynthesisEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "StaticRangeInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "StereoPannerOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "StorageEstimate", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "StorageEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "StreamPipeOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "StructuredSerializeOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SubmitEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextDecodeOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextDecoderOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextEncoderEncodeIntoResult", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TouchEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TouchInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TrackEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Transformer", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TransitionEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "UIEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ULongRange", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "UnderlyingSink", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "UnderlyingSource", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ValidityStateFlags", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VideoColorSpaceInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VideoConfiguration", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VideoFrameMetadata", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WaveShaperOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLContextAttributes", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLContextEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WheelEventInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WindowPostMessageOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WorkerOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WorkletOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NodeFilter", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XPathNSResolver", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ANGLE_instanced_arrays", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ARIAMixin", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AbortController", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AbortSignalEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AbortSignal", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AbstractRange", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AbstractWorkerEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AbstractWorker", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AnalyserNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Animatable", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AnimationEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Animation", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AnimationEffect", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AnimationEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AnimationFrameProvider", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AnimationPlaybackEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AnimationTimeline", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Attr", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioBuffer", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioBufferSourceNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioContext", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioDestinationNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioListener", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioParam", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioParamMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioProcessingEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioScheduledSourceNodeEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioScheduledSourceNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioWorklet", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioWorkletNodeEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioWorkletNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AuthenticatorAssertionResponse", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AuthenticatorAttestationResponse", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AuthenticatorResponse", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BarProp", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BaseAudioContextEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BaseAudioContext", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BeforeUnloadEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BiquadFilterNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Blob", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BlobEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Body", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BroadcastChannelEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BroadcastChannel", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ByteLengthQueuingStrategy", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CDATASection", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSAnimation", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSConditionRule", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSCounterStyleRule", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSFontFaceRule", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSGroupingRule", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSImportRule", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSKeyframeRule", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSKeyframesRule", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSMediaRule", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSNamespaceRule", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSPageRule", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSRule", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSRuleList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSStyleDeclaration", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSStyleRule", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSStyleSheet", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSSupportsRule", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSTransition", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Cache", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CacheStorage", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasCaptureMediaStreamTrack", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasCompositing", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasDrawImage", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasDrawPath", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasFillStrokeStyles", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasFilters", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasGradient", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasImageData", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasImageSmoothing", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasPath", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasPathDrawingStyles", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasPattern", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasRect", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasRenderingContext2D", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasShadowStyles", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasText", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasTextDrawingStyles", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasTransform", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasUserInterface", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ChannelMergerNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ChannelSplitterNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CharacterData", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ChildNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ClientRect", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Clipboard", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ClipboardEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ClipboardItem", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CloseEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Comment", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CompositionEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ConstantSourceNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ConvolverNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CountQueuingStrategy", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Credential", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CredentialsContainer", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Crypto", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CryptoKey", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CustomElementRegistry", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CustomEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMException", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMImplementation", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMMatrix", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGMatrix", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebKitCSSMatrix", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMMatrixReadOnly", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMParser", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMPoint", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGPoint", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMPointReadOnly", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMQuad", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMRect", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGRect", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMRectList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMRectReadOnly", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMStringList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMStringMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMTokenList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DataTransfer", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DataTransferItem", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DataTransferItemList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DelayNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DeviceMotionEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DeviceMotionEventAcceleration", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DeviceMotionEventRotationRate", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DeviceOrientationEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DocumentEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Document", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DocumentAndElementEventHandlersEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DocumentAndElementEventHandlers", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DocumentFragment", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DocumentOrShadowRoot", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DocumentTimeline", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DocumentType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DragEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DynamicsCompressorNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EXT_blend_minmax", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EXT_color_buffer_float", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EXT_color_buffer_half_float", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EXT_float_blend", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EXT_frag_depth", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EXT_sRGB", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EXT_shader_texture_lod", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EXT_texture_compression_rgtc", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EXT_texture_filter_anisotropic", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ElementEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Element", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ElementCSSInlineStyle", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ElementContentEditable", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ElementInternals", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ErrorEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Event", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EventCounts", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EventListener", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EventListenerObject", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EventSourceEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EventSource", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EventTarget", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "External", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "File", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileReaderEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileReader", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystem", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystemDirectoryEntry", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystemDirectoryHandle", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystemDirectoryReader", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystemEntry", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystemFileEntry", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystemFileHandle", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystemHandle", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FocusEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FontFace", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FontFaceSetEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FontFaceSet", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FontFaceSetLoadEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FontFaceSource", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FormData", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FormDataEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GainNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Gamepad", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GamepadButton", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GamepadEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GamepadHapticActuator", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GenericTransformStream", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Geolocation", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GeolocationCoordinates", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GeolocationPosition", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GeolocationPositionError", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GlobalEventHandlersEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GlobalEventHandlers", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLAllCollection", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLAnchorElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLAreaElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLAudioElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLBRElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLBaseElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLBodyElementEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLBodyElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLButtonElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLCanvasElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLCollectionBase", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLCollection", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLCollectionOf", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLDListElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLDataElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLDataListElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLDetailsElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLDialogElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLDirectoryElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLDivElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLDocument", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLElementEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLEmbedElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLFieldSetElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLFontElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLFormControlsCollection", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLFormElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLFrameElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLFrameSetElementEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLFrameSetElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLHRElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLHeadElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLHeadingElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLHtmlElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLHyperlinkElementUtils", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLIFrameElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLImageElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLInputElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLLIElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLLabelElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLLegendElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLLinkElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLMapElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLMarqueeElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLMediaElementEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLMediaElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLMenuElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLMetaElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLMeterElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLModElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLOListElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLObjectElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLOptGroupElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLOptionElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLOptionsCollection", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLOrSVGElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLOutputElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLParagraphElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLParamElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLPictureElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLPreElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLProgressElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLQuoteElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLScriptElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLSelectElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLSlotElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLSourceElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLSpanElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLStyleElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLTableCaptionElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLTableCellElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLTableColElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLTableDataCellElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLTableElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLTableHeaderCellElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLTableRowElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLTableSectionElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLTemplateElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLTextAreaElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLTimeElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLTitleElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLTrackElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLUListElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLUnknownElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLVideoElementEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLVideoElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HashChangeEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Headers", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "History", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBCursor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBCursorWithValue", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBDatabaseEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBDatabase", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBFactory", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBIndex", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBKeyRange", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBObjectStore", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBOpenDBRequestEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBOpenDBRequest", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBRequestEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBRequest", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBTransactionEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBTransaction", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBVersionChangeEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IIRFilterNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IdleDeadline", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ImageBitmap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ImageBitmapRenderingContext", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ImageData", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "InnerHTML", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "InputDeviceInfo", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "InputEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IntersectionObserver", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IntersectionObserverEntry", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "KHR_parallel_shader_compile", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "KeyboardEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "KeyframeEffect", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "LinkStyle", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Location", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Lock", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "LockManager", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MathMLElementEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MathMLElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaCapabilities", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaDeviceInfo", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaDevicesEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaDevices", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaElementAudioSourceNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaEncryptedEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaError", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaKeyMessageEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaKeySessionEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaKeySession", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaKeyStatusMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaKeySystemAccess", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaKeys", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaMetadata", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaQueryListEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaQueryList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaQueryListEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaRecorderEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaRecorder", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaRecorderErrorEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaSession", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaSourceEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaSource", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaStreamEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaStream", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaStreamAudioDestinationNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaStreamAudioSourceNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaStreamTrackEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaStreamTrack", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaStreamTrackEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MessageChannel", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MessageEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MessagePortEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MessagePort", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MimeType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MimeTypeArray", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MouseEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MutationEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MutationObserver", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MutationRecord", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NamedNodeMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NavigationPreloadManager", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Navigator", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NavigatorAutomationInformation", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NavigatorConcurrentHardware", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NavigatorContentUtils", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NavigatorCookies", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NavigatorID", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NavigatorLanguage", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NavigatorLocks", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NavigatorOnLine", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NavigatorPlugins", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NavigatorStorage", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Node", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NodeIterator", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NodeList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NodeListOf", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NonDocumentTypeChildNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NonElementParentNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NotificationEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Notification", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OES_element_index_uint", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OES_fbo_render_mipmap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OES_standard_derivatives", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OES_texture_float", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OES_texture_float_linear", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OES_texture_half_float", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OES_texture_half_float_linear", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OES_vertex_array_object", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OVR_multiview2", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OfflineAudioCompletionEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OfflineAudioContextEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OfflineAudioContext", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OscillatorNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OverconstrainedError", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PageTransitionEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PannerNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ParentNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Path2D", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentMethodChangeEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentRequestEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentRequest", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentRequestUpdateEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentResponse", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Performance", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceEntry", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceEventTiming", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceMark", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceMeasure", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceNavigation", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceNavigationTiming", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceObserver", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceObserverEntryList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformancePaintTiming", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceResourceTiming", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceServerTiming", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceTiming", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PeriodicWave", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PermissionStatusEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PermissionStatus", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Permissions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PictureInPictureWindowEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PictureInPictureWindow", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Plugin", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PluginArray", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PointerEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PopStateEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ProcessingInstruction", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ProgressEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PromiseRejectionEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PublicKeyCredential", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PushManager", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PushSubscription", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PushSubscriptionOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCCertificate", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDTMFSenderEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDTMFSender", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDTMFToneChangeEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDataChannelEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDataChannel", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDataChannelEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDtlsTransportEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDtlsTransport", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCEncodedAudioFrame", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCEncodedVideoFrame", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCError", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCErrorEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceCandidate", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceTransportEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceTransport", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCPeerConnectionEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCPeerConnection", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCPeerConnectionIceErrorEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCPeerConnectionIceEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpReceiver", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpSender", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpTransceiver", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCSctpTransportEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCSctpTransport", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCSessionDescription", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCStatsReport", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCTrackEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RadioNodeList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Range", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadableByteStreamController", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadableStream", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadableStreamBYOBReader", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadableStreamBYOBRequest", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadableStreamDefaultController", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadableStreamDefaultReader", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadableStreamGenericReader", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RemotePlaybackEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RemotePlayback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Request", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ResizeObserver", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ResizeObserverEntry", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ResizeObserverSize", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Response", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAngle", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimateElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimateMotionElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimateTransformElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimatedAngle", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimatedBoolean", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimatedEnumeration", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimatedInteger", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimatedLength", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimatedLengthList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimatedNumber", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimatedNumberList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimatedPoints", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimatedPreserveAspectRatio", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimatedRect", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimatedString", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimatedTransformList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGAnimationElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGCircleElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGClipPathElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGComponentTransferFunctionElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGDefsElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGDescElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGElementEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGEllipseElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEBlendElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEColorMatrixElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEComponentTransferElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFECompositeElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEConvolveMatrixElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEDiffuseLightingElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEDisplacementMapElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEDistantLightElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEDropShadowElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEFloodElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEFuncAElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEFuncBElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEFuncGElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEFuncRElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEGaussianBlurElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEImageElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEMergeElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEMergeNodeElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEMorphologyElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEOffsetElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFEPointLightElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFESpecularLightingElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFESpotLightElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFETileElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFETurbulenceElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFilterElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFilterPrimitiveStandardAttributes", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGFitToViewBox", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGForeignObjectElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGGElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGGeometryElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGGradientElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGGraphicsElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGImageElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGLength", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGLengthList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGLineElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGLinearGradientElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGMPathElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGMarkerElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGMaskElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGMetadataElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGNumber", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGNumberList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGPathElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGPatternElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGPointList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGPolygonElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGPolylineElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGPreserveAspectRatio", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGRadialGradientElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGRectElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGSVGElementEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGSVGElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGScriptElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGSetElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGStopElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGStringList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGStyleElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGSwitchElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGSymbolElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGTSpanElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGTests", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGTextContentElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGTextElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGTextPathElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGTextPositioningElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGTitleElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGTransform", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGTransformList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGURIReference", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGUnitTypes", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGUseElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGViewElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Screen", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ScreenOrientationEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ScreenOrientation", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ScriptProcessorNodeEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ScriptProcessorNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SecurityPolicyViolationEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Selection", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ServiceWorkerEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ServiceWorker", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ServiceWorkerContainerEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ServiceWorkerContainer", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ServiceWorkerRegistrationEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ServiceWorkerRegistration", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ShadowRootEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ShadowRoot", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SharedWorker", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Slottable", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SourceBufferEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SourceBuffer", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SourceBufferListEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SourceBufferList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SpeechRecognitionAlternative", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SpeechRecognitionResult", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SpeechRecognitionResultList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SpeechSynthesisEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SpeechSynthesis", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SpeechSynthesisErrorEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SpeechSynthesisEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SpeechSynthesisUtteranceEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SpeechSynthesisUtterance", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SpeechSynthesisVoice", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "StaticRange", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "StereoPannerNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Storage", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "StorageEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "StorageManager", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "StyleMedia", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "StyleSheet", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "StyleSheetList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SubmitEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SubtleCrypto", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Text", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextDecoder", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextDecoderCommon", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextDecoderStream", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextEncoder", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextEncoderCommon", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextEncoderStream", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextMetrics", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextTrackEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextTrack", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextTrackCueEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextTrackCue", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextTrackCueList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextTrackListEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextTrackList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TimeRanges", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Touch", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TouchEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TouchList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TrackEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TransformStream", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TransformStreamDefaultController", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TransitionEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TreeWalker", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "UIEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "URL", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "webkitURL", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "URLSearchParams", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VTTCue", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VTTRegion", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ValidityState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VideoColorSpace", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VideoPlaybackQuality", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VisualViewportEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VisualViewport", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WEBGL_color_buffer_float", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WEBGL_compressed_texture_astc", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WEBGL_compressed_texture_etc", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WEBGL_compressed_texture_etc1", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WEBGL_compressed_texture_s3tc", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WEBGL_compressed_texture_s3tc_srgb", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WEBGL_debug_renderer_info", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WEBGL_debug_shaders", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WEBGL_depth_texture", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WEBGL_draw_buffers", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WEBGL_lose_context", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WEBGL_multi_draw", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WaveShaperNode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGL2RenderingContext", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGL2RenderingContextBase", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGL2RenderingContextOverloads", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLActiveInfo", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLBuffer", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLContextEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLFramebuffer", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLProgram", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLQuery", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLRenderbuffer", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLRenderingContext", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLRenderingContextBase", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLRenderingContextOverloads", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLSampler", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLShader", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLShaderPrecisionFormat", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLSync", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLTexture", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLTransformFeedback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLUniformLocation", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLVertexArrayObject", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLVertexArrayObjectOES", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebSocketEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebSocket", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WheelEvent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WindowEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Window", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WindowEventHandlersEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WindowEventHandlers", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WindowLocalStorage", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WindowOrWorkerGlobalScope", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WindowSessionStorage", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WorkerEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Worker", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Worklet", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WritableStream", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WritableStreamDefaultController", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WritableStreamDefaultWriter", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XMLDocument", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XMLHttpRequestEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XMLHttpRequest", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XMLHttpRequestEventTargetEventMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XMLHttpRequestEventTarget", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XMLHttpRequestUpload", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XMLSerializer", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XPathEvaluator", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XPathEvaluatorBase", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XPathExpression", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XPathResult", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XSLTProcessor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Console", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSS", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebAssembly", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BlobCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CustomElementConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DecodeErrorCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DecodeSuccessCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ErrorCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystemEntriesCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystemEntryCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FrameRequestCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FunctionStringCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IdleRequestCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IntersectionObserverCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "LockGrantedCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaSessionActionHandler", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MutationCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NotificationPermissionCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OnBeforeUnloadEventHandlerNonNull", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OnErrorEventHandlerNonNull", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceObserverCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PositionCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PositionErrorCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "QueuingStrategySize", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCPeerConnectionErrorCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCSessionDescriptionCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RemotePlaybackAvailabilityCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ResizeObserverCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TransformerFlushCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TransformerStartCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TransformerTransformCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "UnderlyingSinkAbortCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "UnderlyingSinkCloseCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "UnderlyingSinkStartCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "UnderlyingSinkWriteCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "UnderlyingSourceCancelCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "UnderlyingSourcePullCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "UnderlyingSourceStartCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VideoFrameRequestCallback", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VoidFunction", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLElementTagNameMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLElementDeprecatedTagNameMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SVGElementTagNameMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ElementTagNameMap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AlgorithmIdentifier", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BigInteger", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BinaryData", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BlobPart", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BodyInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BufferSource", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "COSEAlgorithmIdentifier", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CSSNumberish", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasImageSource", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ClipboardItemData", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ClipboardItems", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ConstrainBoolean", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ConstrainDOMString", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ConstrainDouble", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ConstrainULong", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMHighResTimeStamp", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EpochTimeStamp", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EventListenerOrEventListenerObject", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Float32List", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FormDataEntryValue", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GLbitfield", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GLboolean", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GLclampf", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GLenum", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GLfloat", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GLint", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GLint64", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GLintptr", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GLsizei", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GLsizeiptr", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GLuint", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GLuint64", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLOrSVGImageElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HTMLOrSVGScriptElement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HashAlgorithmIdentifier", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HeadersInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBValidKey", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ImageBitmapSource", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "InsertPosition", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Int32List", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "LineAndPositionSetting", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaProvider", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MessageEventSource", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MutationRecordType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NamedCurve", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OnBeforeUnloadEventHandler", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OnErrorEventHandler", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PerformanceEntryList", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadableStreamController", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadableStreamReadResult", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadableStreamReader", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RenderingContext", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RequestInfo", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TexImageSource", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TimerHandler", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Transferable", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Uint32List", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "UvmEntries", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "UvmEntry", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VibratePattern", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WindowProxy", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XMLHttpRequestBodyInit", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AlignSetting", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AnimationPlayState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AnimationReplaceState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AppendMode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AttestationConveyancePreference", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioContextLatencyCategory", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AudioContextState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AuthenticatorAttachment", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AuthenticatorTransport", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AutoKeyword", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "AutomationRate", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BinaryType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "BiquadFilterType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanPlayTypeResult", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasDirection", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasFillRule", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasFontKerning", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasFontStretch", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasFontVariantCaps", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasLineCap", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasLineJoin", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasTextAlign", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasTextBaseline", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CanvasTextRendering", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ChannelCountMode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ChannelInterpretation", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ClientTypes", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ColorGamut", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ColorSpaceConversion", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CompositeOperation", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CompositeOperationOrAuto", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "CredentialMediationRequirement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DOMParserSupportedType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DirectionSetting", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DisplayCaptureSurfaceType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DistanceModelType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DocumentReadyState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "DocumentVisibilityState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EndOfStreamError", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EndingType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FileSystemHandleKind", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FillMode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FontFaceLoadStatus", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FontFaceSetLoadStatus", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "FullscreenNavigationUI", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GamepadHapticActuatorType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GamepadMappingType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "GlobalCompositeOperation", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "HdrMetadataType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBCursorDirection", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBRequestReadyState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBTransactionDurability", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IDBTransactionMode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ImageOrientation", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ImageSmoothingQuality", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "IterationCompositeOperation", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "KeyFormat", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "KeyType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "KeyUsage", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "LineAlignSetting", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "LockMode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaDecodingType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaDeviceKind", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaEncodingType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaKeyMessageType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaKeySessionClosedReason", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaKeySessionType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaKeyStatus", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaKeysRequirement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaSessionAction", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaSessionPlaybackState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "MediaStreamTrackState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NavigationTimingType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NotificationDirection", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "NotificationPermission", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OrientationLockType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OrientationType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OscillatorType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "OverSampleType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PanningModelType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PaymentComplete", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PermissionName", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PermissionState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PlaybackDirection", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PositionAlignSetting", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PredefinedColorSpace", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PremultiplyAlpha", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PresentationStyle", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PublicKeyCredentialType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "PushEncryptionKeyName", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCBundlePolicy", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDataChannelState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDegradationPreference", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCDtlsTransportState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCEncodedVideoFrameType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCErrorDetailType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceCandidateType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceComponent", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceConnectionState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceCredentialType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceGathererState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceGatheringState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceProtocol", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceTcpCandidateType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceTransportPolicy", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCIceTransportState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCPeerConnectionState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCPriorityType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtcpMuxPolicy", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCRtpTransceiverDirection", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCSctpTransportState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCSdpType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCSignalingState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCStatsIceCandidatePairState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RTCStatsType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReadyState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RecordingState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ReferrerPolicy", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RemotePlaybackState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RequestCache", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RequestCredentials", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RequestDestination", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RequestMode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "RequestRedirect", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ResidentKeyRequirement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ResizeObserverBoxOptions", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ResizeQuality", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ResponseType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ScrollBehavior", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ScrollLogicalPosition", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ScrollRestoration", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ScrollSetting", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SecurityPolicyViolationEventDisposition", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SelectionMode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ServiceWorkerState", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ServiceWorkerUpdateViaCache", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ShadowRootMode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SlotAssignmentMode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SpeechSynthesisErrorCode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextTrackKind", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextTrackMode", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TouchType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TransferFunction", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "UserVerificationRequirement", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VideoColorPrimaries", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VideoFacingModeEnum", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VideoMatrixCoefficients", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VideoTransferCharacteristics", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WebGLPowerPreference", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "WorkerType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "XMLHttpRequestResponseType", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ActiveXObject", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "ITextWriter", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextStreamBase", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextStreamWriter", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "TextStreamReader", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "SafeArray", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "Enumerator", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "EnumeratorConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VBArray", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VBArrayConstructor", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "VarDate", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "const", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "$$slots", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "$$props", + "identifiers": [], + "defs": [], + "references": [] + }, + { + "name": "$$restProps", + "identifiers": [], + "defs": [], + "references": [] + } + ], + "references": [], + "childScopes": [ + { + "type": "module", + "variables": [ + { + "name": "foo", + "identifiers": [ + { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "defs": [ + { + "type": "Variable", + "name": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "node": { + "type": "VariableDeclarator", + "id": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "init": { + "type": "Literal", + "raw": "null", + "value": null, + "range": [ + 61, + 65 + ], + "loc": { + "start": { + "line": 3, + "column": 41 + }, + "end": { + "line": 3, + "column": 45 + } + } + }, + "range": [ + 31, + 65 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 45 + } + } + } + } + ], + "references": [ + { + "identifier": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "from": "module", + "init": true, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "range": [ + 80, + 83 + ], + "loc": { + "start": { + "line": 6, + "column": 7 + }, + "end": { + "line": 6, + "column": 10 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "range": [ + 87, + 90 + ], + "loc": { + "start": { + "line": 6, + "column": 14 + }, + "end": { + "line": 6, + "column": 17 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "range": [ + 104, + 107 + ], + "loc": { + "start": { + "line": 8, + "column": 7 + }, + "end": { + "line": 8, + "column": 10 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "range": [ + 111, + 114 + ], + "loc": { + "start": { + "line": 8, + "column": 14 + }, + "end": { + "line": 8, + "column": 17 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "range": [ + 138, + 141 + ], + "loc": { + "start": { + "line": 10, + "column": 17 + }, + "end": { + "line": 10, + "column": 20 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "range": [ + 171, + 174 + ], + "loc": { + "start": { + "line": 13, + "column": 1 + }, + "end": { + "line": 13, + "column": 4 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "range": [ + 178, + 181 + ], + "loc": { + "start": { + "line": 13, + "column": 8 + }, + "end": { + "line": 13, + "column": 11 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + } + ] + }, + { + "name": "a", + "identifiers": [ + { + "type": "Identifier", + "name": "a", + "range": [ + 71, + 72 + ], + "loc": { + "start": { + "line": 5, + "column": 4 + }, + "end": { + "line": 5, + "column": 5 + } + } + } + ], + "defs": [ + { + "type": "Variable", + "name": { + "type": "Identifier", + "name": "a", + "range": [ + 71, + 72 + ], + "loc": { + "start": { + "line": 5, + "column": 4 + }, + "end": { + "line": 5, + "column": 5 + } + } + }, + "node": { + "type": "VariableDeclarator", + "id": { + "type": "Identifier", + "name": "a", + "range": [ + 71, + 72 + ], + "loc": { + "start": { + "line": 5, + "column": 4 + }, + "end": { + "line": 5, + "column": 5 + } + } + }, + "init": null, + "range": [ + 71, + 72 + ], + "loc": { + "start": { + "line": 5, + "column": 4 + }, + "end": { + "line": 5, + "column": 5 + } + } + } + } + ], + "references": [ + { + "identifier": { + "type": "Identifier", + "name": "a", + "range": [ + 76, + 77 + ], + "loc": { + "start": { + "line": 6, + "column": 3 + }, + "end": { + "line": 6, + "column": 4 + } + } + }, + "from": "module", + "init": false, + "resolved": { + "type": "Identifier", + "name": "a", + "range": [ + 71, + 72 + ], + "loc": { + "start": { + "line": 5, + "column": 4 + }, + "end": { + "line": 5, + "column": 5 + } + } + } + } + ] + }, + { + "name": "r", + "identifiers": [ + { + "type": "Identifier", + "name": "r", + "range": [ + 100, + 101 + ], + "loc": { + "start": { + "line": 8, + "column": 3 + }, + "end": { + "line": 8, + "column": 4 + } + } + } + ], + "defs": [ + { + "type": "ComputedVariable", + "name": { + "type": "Identifier", + "name": "r", + "range": [ + 100, + 101 + ], + "loc": { + "start": { + "line": 8, + "column": 3 + }, + "end": { + "line": 8, + "column": 4 + } + } + }, + "node": { + "type": "AssignmentExpression", + "left": { + "type": "Identifier", + "name": "r", + "range": [ + 100, + 101 + ], + "loc": { + "start": { + "line": 8, + "column": 3 + }, + "end": { + "line": 8, + "column": 4 + } + } + }, + "operator": "=", + "right": { + "type": "LogicalExpression", + "left": { + "type": "Identifier", + "name": "foo", + "range": [ + 104, + 107 + ], + "loc": { + "start": { + "line": 8, + "column": 7 + }, + "end": { + "line": 8, + "column": 10 + } + } + }, + "operator": "&&", + "right": { + "type": "MemberExpression", + "computed": false, + "object": { + "type": "Identifier", + "name": "foo", + "range": [ + 111, + 114 + ], + "loc": { + "start": { + "line": 8, + "column": 14 + }, + "end": { + "line": 8, + "column": 17 + } + } + }, + "optional": false, + "property": { + "type": "Identifier", + "name": "bar", + "range": [ + 115, + 118 + ], + "loc": { + "start": { + "line": 8, + "column": 18 + }, + "end": { + "line": 8, + "column": 21 + } + } + }, + "range": [ + 111, + 118 + ], + "loc": { + "start": { + "line": 8, + "column": 14 + }, + "end": { + "line": 8, + "column": 21 + } + } + }, + "range": [ + 104, + 118 + ], + "loc": { + "start": { + "line": 8, + "column": 7 + }, + "end": { + "line": 8, + "column": 21 + } + } + }, + "range": [ + 100, + 118 + ], + "loc": { + "start": { + "line": 8, + "column": 3 + }, + "end": { + "line": 8, + "column": 21 + } + } + } + } + ], + "references": [ + { + "identifier": { + "type": "Identifier", + "name": "r", + "range": [ + 188, + 189 + ], + "loc": { + "start": { + "line": 14, + "column": 1 + }, + "end": { + "line": 14, + "column": 2 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "r", + "range": [ + 100, + 101 + ], + "loc": { + "start": { + "line": 8, + "column": 3 + }, + "end": { + "line": 8, + "column": 4 + } + } + } + } + ] + }, + { + "name": "n", + "identifiers": [ + { + "type": "Identifier", + "name": "n", + "range": [ + 132, + 133 + ], + "loc": { + "start": { + "line": 10, + "column": 11 + }, + "end": { + "line": 10, + "column": 12 + } + } + } + ], + "defs": [ + { + "type": "ComputedVariable", + "name": { + "type": "Identifier", + "name": "n", + "range": [ + 132, + 133 + ], + "loc": { + "start": { + "line": 10, + "column": 11 + }, + "end": { + "line": 10, + "column": 12 + } + } + }, + "node": { + "type": "AssignmentExpression", + "left": { + "type": "ObjectPattern", + "properties": [ + { + "type": "Property", + "kind": "init", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 127, + 130 + ], + "loc": { + "start": { + "line": 10, + "column": 6 + }, + "end": { + "line": 10, + "column": 9 + } + } + }, + "method": false, + "shorthand": false, + "value": { + "type": "Identifier", + "name": "n", + "range": [ + 132, + 133 + ], + "loc": { + "start": { + "line": 10, + "column": 11 + }, + "end": { + "line": 10, + "column": 12 + } + } + }, + "range": [ + 127, + 133 + ], + "loc": { + "start": { + "line": 10, + "column": 6 + }, + "end": { + "line": 10, + "column": 12 + } + } + } + ], + "range": [ + 125, + 135 + ], + "loc": { + "start": { + "line": 10, + "column": 4 + }, + "end": { + "line": 10, + "column": 14 + } + } + }, + "operator": "=", + "right": { + "type": "LogicalExpression", + "left": { + "type": "Identifier", + "name": "foo", + "range": [ + 138, + 141 + ], + "loc": { + "start": { + "line": 10, + "column": 17 + }, + "end": { + "line": 10, + "column": 20 + } + } + }, + "operator": "||", + "right": { + "type": "ObjectExpression", + "properties": [ + { + "type": "Property", + "kind": "init", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 147, + 150 + ], + "loc": { + "start": { + "line": 10, + "column": 26 + }, + "end": { + "line": 10, + "column": 29 + } + } + }, + "method": false, + "shorthand": false, + "value": { + "type": "Literal", + "raw": "42", + "value": 42, + "range": [ + 152, + 154 + ], + "loc": { + "start": { + "line": 10, + "column": 31 + }, + "end": { + "line": 10, + "column": 33 + } + } + }, + "range": [ + 147, + 154 + ], + "loc": { + "start": { + "line": 10, + "column": 26 + }, + "end": { + "line": 10, + "column": 33 + } + } + } + ], + "range": [ + 145, + 156 + ], + "loc": { + "start": { + "line": 10, + "column": 24 + }, + "end": { + "line": 10, + "column": 35 + } + } + }, + "range": [ + 138, + 156 + ], + "loc": { + "start": { + "line": 10, + "column": 17 + }, + "end": { + "line": 10, + "column": 35 + } + } + }, + "range": [ + 125, + 156 + ], + "loc": { + "start": { + "line": 10, + "column": 4 + }, + "end": { + "line": 10, + "column": 35 + } + } + } + } + ], + "references": [ + { + "identifier": { + "type": "Identifier", + "name": "n", + "range": [ + 192, + 193 + ], + "loc": { + "start": { + "line": 15, + "column": 1 + }, + "end": { + "line": 15, + "column": 2 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "n", + "range": [ + 132, + 133 + ], + "loc": { + "start": { + "line": 10, + "column": 11 + }, + "end": { + "line": 10, + "column": 12 + } + } + } + } + ] + } + ], + "references": [ + { + "identifier": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "from": "module", + "init": true, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "a", + "range": [ + 76, + 77 + ], + "loc": { + "start": { + "line": 6, + "column": 3 + }, + "end": { + "line": 6, + "column": 4 + } + } + }, + "from": "module", + "init": false, + "resolved": { + "type": "Identifier", + "name": "a", + "range": [ + 71, + 72 + ], + "loc": { + "start": { + "line": 5, + "column": 4 + }, + "end": { + "line": 5, + "column": 5 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "range": [ + 80, + 83 + ], + "loc": { + "start": { + "line": 6, + "column": 7 + }, + "end": { + "line": 6, + "column": 10 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "range": [ + 87, + 90 + ], + "loc": { + "start": { + "line": 6, + "column": 14 + }, + "end": { + "line": 6, + "column": 17 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "r", + "range": [ + 100, + 101 + ], + "loc": { + "start": { + "line": 8, + "column": 3 + }, + "end": { + "line": 8, + "column": 4 + } + } + }, + "from": "module", + "init": false, + "resolved": { + "type": "Identifier", + "name": "r", + "range": [ + 100, + 101 + ], + "loc": { + "start": { + "line": 8, + "column": 3 + }, + "end": { + "line": 8, + "column": 4 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "range": [ + 104, + 107 + ], + "loc": { + "start": { + "line": 8, + "column": 7 + }, + "end": { + "line": 8, + "column": 10 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "range": [ + 111, + 114 + ], + "loc": { + "start": { + "line": 8, + "column": 14 + }, + "end": { + "line": 8, + "column": 17 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "n", + "range": [ + 132, + 133 + ], + "loc": { + "start": { + "line": 10, + "column": 11 + }, + "end": { + "line": 10, + "column": 12 + } + } + }, + "from": "module", + "init": false, + "resolved": { + "type": "Identifier", + "name": "n", + "range": [ + 132, + 133 + ], + "loc": { + "start": { + "line": 10, + "column": 11 + }, + "end": { + "line": 10, + "column": 12 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "range": [ + 138, + 141 + ], + "loc": { + "start": { + "line": 10, + "column": 17 + }, + "end": { + "line": 10, + "column": 20 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "range": [ + 171, + 174 + ], + "loc": { + "start": { + "line": 13, + "column": 1 + }, + "end": { + "line": 13, + "column": 4 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "foo", + "range": [ + 178, + 181 + ], + "loc": { + "start": { + "line": 13, + "column": 8 + }, + "end": { + "line": 13, + "column": 11 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "foo", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSUnionType", + "types": [ + { + "type": "TSTypeLiteral", + "members": [ + { + "type": "TSPropertySignature", + "computed": false, + "key": { + "type": "Identifier", + "name": "bar", + "range": [ + 38, + 41 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + } + }, + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSNumberKeyword", + "range": [ + 43, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 23 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 41, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 29 + } + } + }, + "range": [ + 38, + 49 + ], + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 29 + } + } + } + ], + "range": [ + 36, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 31 + } + } + }, + { + "type": "TSNullKeyword", + "range": [ + 54, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 34 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + ], + "range": [ + 36, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 34, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 38 + } + } + }, + "range": [ + 31, + 58 + ], + "loc": { + "start": { + "line": 3, + "column": 11 + }, + "end": { + "line": 3, + "column": 38 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "r", + "range": [ + 188, + 189 + ], + "loc": { + "start": { + "line": 14, + "column": 1 + }, + "end": { + "line": 14, + "column": 2 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "r", + "range": [ + 100, + 101 + ], + "loc": { + "start": { + "line": 8, + "column": 3 + }, + "end": { + "line": 8, + "column": 4 + } + } + } + }, + { + "identifier": { + "type": "Identifier", + "name": "n", + "range": [ + 192, + 193 + ], + "loc": { + "start": { + "line": 15, + "column": 1 + }, + "end": { + "line": 15, + "column": 2 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "n", + "range": [ + 132, + 133 + ], + "loc": { + "start": { + "line": 10, + "column": 11 + }, + "end": { + "line": 10, + "column": 12 + } + } + } + } + ], + "childScopes": [], + "through": [] + } + ], + "through": [] +} \ No newline at end of file diff --git a/tests/fixtures/parser/ast/ts-reactive06-type-output.svelte b/tests/fixtures/parser/ast/ts-reactive06-type-output.svelte new file mode 100644 index 00000000..63902ee1 --- /dev/null +++ b/tests/fixtures/parser/ast/ts-reactive06-type-output.svelte @@ -0,0 +1,15 @@ + + + +{foo && foo.bar} +{r} +{n} diff --git a/tests/fixtures/parser/ast/ts-store01-scope-output.json b/tests/fixtures/parser/ast/ts-store01-scope-output.json index 9a22e7d5..70400261 100644 --- a/tests/fixtures/parser/ast/ts-store01-scope-output.json +++ b/tests/fixtures/parser/ast/ts-store01-scope-output.json @@ -9301,46 +9301,6 @@ } } } - }, - { - "identifier": { - "type": "Identifier", - "name": "$c", - "range": [ - 192, - 194 - ], - "loc": { - "start": { - "line": 13, - "column": 1 - }, - "end": { - "line": 13, - "column": 3 - } - } - }, - "from": "module", - "init": null, - "resolved": { - "type": "Identifier", - "name": "$c", - "range": [ - 131, - 133 - ], - "loc": { - "start": { - "line": 6, - "column": 6 - }, - "end": { - "line": 6, - "column": 8 - } - } - } } ] }, @@ -9835,6 +9795,98 @@ } } } + }, + { + "identifier": { + "type": "Identifier", + "name": "$c", + "range": [ + 192, + 194 + ], + "loc": { + "start": { + "line": 13, + "column": 1 + }, + "end": { + "line": 13, + "column": 3 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "c", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSTypeReference", + "typeName": { + "type": "Identifier", + "name": "$c", + "range": [ + 152, + 154 + ], + "loc": { + "start": { + "line": 7, + "column": 10 + }, + "end": { + "line": 7, + "column": 12 + } + } + }, + "range": [ + 152, + 154 + ], + "loc": { + "start": { + "line": 7, + "column": 10 + }, + "end": { + "line": 7, + "column": 12 + } + } + }, + "range": [ + 150, + 154 + ], + "loc": { + "start": { + "line": 7, + "column": 8 + }, + "end": { + "line": 7, + "column": 12 + } + } + }, + "range": [ + 149, + 154 + ], + "loc": { + "start": { + "line": 7, + "column": 7 + }, + "end": { + "line": 7, + "column": 12 + } + } + } } ] } @@ -10459,19 +10511,71 @@ "init": null, "resolved": { "type": "Identifier", - "name": "$c", + "name": "c", + "typeAnnotation": { + "type": "TSTypeAnnotation", + "typeAnnotation": { + "type": "TSTypeReference", + "typeName": { + "type": "Identifier", + "name": "$c", + "range": [ + 152, + 154 + ], + "loc": { + "start": { + "line": 7, + "column": 10 + }, + "end": { + "line": 7, + "column": 12 + } + } + }, + "range": [ + 152, + 154 + ], + "loc": { + "start": { + "line": 7, + "column": 10 + }, + "end": { + "line": 7, + "column": 12 + } + } + }, + "range": [ + 150, + 154 + ], + "loc": { + "start": { + "line": 7, + "column": 8 + }, + "end": { + "line": 7, + "column": 12 + } + } + }, "range": [ - 131, - 133 + 149, + 154 ], "loc": { "start": { - "line": 6, - "column": 6 + "line": 7, + "column": 7 }, "end": { - "line": 6, - "column": 8 + "line": 7, + "column": 12 } } } diff --git a/tests/fixtures/parser/ast/ts-store01-type-output.svelte b/tests/fixtures/parser/ast/ts-store01-type-output.svelte index b990dd45..e9a31e9b 100644 --- a/tests/fixtures/parser/ast/ts-store01-type-output.svelte +++ b/tests/fixtures/parser/ast/ts-store01-type-output.svelte @@ -10,5 +10,5 @@ {b} {$b} {c} -{$c} +{$c} {$d} diff --git a/tests/fixtures/parser/ast/tutorial/actions-scope-output.json b/tests/fixtures/parser/ast/tutorial/actions-scope-output.json index c25f3cb6..8e268574 100644 --- a/tests/fixtures/parser/ast/tutorial/actions-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/actions-scope-output.json @@ -1061,17 +1061,17 @@ "type": "Identifier", "name": "$coords", "range": [ - 981, - 988 + 957, + 964 ], "loc": { "start": { - "line": 50, - "column": 10 + "line": 49, + "column": 27 }, "end": { - "line": 50, - "column": 17 + "line": 49, + "column": 34 } } }, @@ -1101,17 +1101,17 @@ "type": "Identifier", "name": "$coords", "range": [ - 957, - 964 + 981, + 988 ], "loc": { "start": { - "line": 49, - "column": 27 + "line": 50, + "column": 10 }, "end": { - "line": 49, - "column": 34 + "line": 50, + "column": 17 } } }, diff --git a/tests/fixtures/parser/ast/tutorial/component-bindings01-scope-output.json b/tests/fixtures/parser/ast/tutorial/component-bindings01-scope-output.json index 01f9aa0b..4d4d4df8 100644 --- a/tests/fixtures/parser/ast/tutorial/component-bindings01-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/component-bindings01-scope-output.json @@ -433,241 +433,252 @@ ] }, { - "name": "handleSubmit", + "name": "view", "identifiers": [ { "type": "Identifier", - "name": "handleSubmit", + "name": "view", "range": [ - 136, - 148 + 63, + 67 ], "loc": { "start": { - "line": 7, - "column": 10 + "line": 5, + "column": 4 }, "end": { - "line": 7, - "column": 22 + "line": 5, + "column": 8 } } } ], "defs": [ { - "type": "FunctionName", + "type": "ComputedVariable", "name": { "type": "Identifier", - "name": "handleSubmit", + "name": "view", "range": [ - 136, - 148 + 63, + 67 ], "loc": { "start": { - "line": 7, - "column": 10 + "line": 5, + "column": 4 }, "end": { - "line": 7, - "column": 22 + "line": 5, + "column": 8 } } }, "node": { - "type": "FunctionDeclaration", - "async": false, - "body": { - "type": "BlockStatement", - "body": [ - { - "type": "ExpressionStatement", - "expression": { - "type": "CallExpression", - "arguments": [ - { - "type": "TemplateLiteral", - "expressions": [ - { - "type": "Identifier", - "name": "pin", - "range": [ - 174, - 177 - ], - "loc": { - "start": { - "line": 8, - "column": 21 - }, - "end": { - "line": 8, - "column": 24 - } - } - } - ], - "quasis": [ - { - "type": "TemplateElement", - "tail": false, - "value": { - "cooked": "submitted ", - "raw": "submitted " - }, - "range": [ - 161, - 174 - ], - "loc": { - "start": { - "line": 8, - "column": 8 - }, - "end": { - "line": 8, - "column": 21 - } - } - }, - { - "type": "TemplateElement", - "tail": true, - "value": { - "cooked": "", - "raw": "" - }, - "range": [ - 177, - 179 - ], - "loc": { - "start": { - "line": 8, - "column": 24 - }, - "end": { - "line": 8, - "column": 26 - } - } - } - ], - "range": [ - 161, - 179 - ], - "loc": { - "start": { - "line": 8, - "column": 8 - }, - "end": { - "line": 8, - "column": 26 - } - } + "type": "AssignmentExpression", + "left": { + "type": "Identifier", + "name": "view", + "range": [ + 63, + 67 + ], + "loc": { + "start": { + "line": 5, + "column": 4 + }, + "end": { + "line": 5, + "column": 8 + } + } + }, + "operator": "=", + "right": { + "type": "ConditionalExpression", + "alternate": { + "type": "Literal", + "raw": "'enter your pin'", + "value": "enter your pin", + "range": [ + 107, + 123 + ], + "loc": { + "start": { + "line": 5, + "column": 48 + }, + "end": { + "line": 5, + "column": 64 + } + } + }, + "consequent": { + "type": "CallExpression", + "arguments": [ + { + "type": "Literal", + "raw": "/\\d(?!$)/g", + "regex": { + "flags": "g", + "pattern": "\\d(?!$)" + }, + "value": "/\\d(?!$)/g", + "range": [ + 88, + 98 + ], + "loc": { + "start": { + "line": 5, + "column": 29 + }, + "end": { + "line": 5, + "column": 39 } + } + }, + { + "type": "Literal", + "raw": "'•'", + "value": "•", + "range": [ + 100, + 103 ], - "callee": { - "type": "Identifier", - "name": "alert", - "range": [ - 155, - 160 - ], - "loc": { - "start": { - "line": 8, - "column": 2 - }, - "end": { - "line": 8, - "column": 7 - } + "loc": { + "start": { + "line": 5, + "column": 41 + }, + "end": { + "line": 5, + "column": 44 } - }, - "optional": false, + } + } + ], + "callee": { + "type": "MemberExpression", + "computed": false, + "object": { + "type": "Identifier", + "name": "pin", "range": [ - 155, - 180 + 76, + 79 ], "loc": { "start": { - "line": 8, - "column": 2 + "line": 5, + "column": 17 }, "end": { - "line": 8, - "column": 27 + "line": 5, + "column": 20 + } + } + }, + "optional": false, + "property": { + "type": "Identifier", + "name": "replace", + "range": [ + 80, + 87 + ], + "loc": { + "start": { + "line": 5, + "column": 21 + }, + "end": { + "line": 5, + "column": 28 } } }, "range": [ - 155, - 181 + 76, + 87 ], "loc": { "start": { - "line": 8, - "column": 2 + "line": 5, + "column": 17 }, "end": { - "line": 8, + "line": 5, "column": 28 } } - } - ], - "range": [ - 151, - 184 - ], - "loc": { - "start": { - "line": 7, - "column": 25 }, - "end": { - "line": 9, - "column": 2 + "optional": false, + "range": [ + 76, + 104 + ], + "loc": { + "start": { + "line": 5, + "column": 17 + }, + "end": { + "line": 5, + "column": 45 + } } - } - }, - "expression": false, - "generator": false, - "id": { - "type": "Identifier", - "name": "handleSubmit", + }, + "test": { + "type": "Identifier", + "name": "pin", + "range": [ + 70, + 73 + ], + "loc": { + "start": { + "line": 5, + "column": 11 + }, + "end": { + "line": 5, + "column": 14 + } + } + }, "range": [ - 136, - 148 + 70, + 123 ], "loc": { "start": { - "line": 7, - "column": 10 + "line": 5, + "column": 11 }, "end": { - "line": 7, - "column": 22 + "line": 5, + "column": 64 } } }, - "params": [], "range": [ - 127, - 184 + 63, + 123 ], "loc": { "start": { - "line": 7, - "column": 1 + "line": 5, + "column": 4 }, "end": { - "line": 9, - "column": 2 + "line": 5, + "column": 64 } } } @@ -677,18 +688,18 @@ { "identifier": { "type": "Identifier", - "name": "handleSubmit", + "name": "view", "range": [ - 288, - 300 + 240, + 244 ], "loc": { "start": { - "line": 14, - "column": 36 + "line": 12, + "column": 44 }, "end": { - "line": 14, + "line": 12, "column": 48 } } @@ -697,19 +708,19 @@ "init": null, "resolved": { "type": "Identifier", - "name": "handleSubmit", + "name": "view", "range": [ - 136, - 148 + 63, + 67 ], "loc": { "start": { - "line": 7, - "column": 10 + "line": 5, + "column": 4 }, "end": { - "line": 7, - "column": 22 + "line": 5, + "column": 8 } } } @@ -717,252 +728,241 @@ ] }, { - "name": "view", + "name": "handleSubmit", "identifiers": [ { "type": "Identifier", - "name": "view", + "name": "handleSubmit", "range": [ - 63, - 67 + 136, + 148 ], "loc": { "start": { - "line": 5, - "column": 4 + "line": 7, + "column": 10 }, "end": { - "line": 5, - "column": 8 + "line": 7, + "column": 22 } } } ], "defs": [ { - "type": "ComputedVariable", + "type": "FunctionName", "name": { "type": "Identifier", - "name": "view", + "name": "handleSubmit", "range": [ - 63, - 67 + 136, + 148 ], "loc": { "start": { - "line": 5, - "column": 4 + "line": 7, + "column": 10 }, "end": { - "line": 5, - "column": 8 + "line": 7, + "column": 22 } } }, "node": { - "type": "AssignmentExpression", - "left": { - "type": "Identifier", - "name": "view", - "range": [ - 63, - 67 - ], - "loc": { - "start": { - "line": 5, - "column": 4 - }, - "end": { - "line": 5, - "column": 8 - } - } - }, - "operator": "=", - "right": { - "type": "ConditionalExpression", - "alternate": { - "type": "Literal", - "raw": "'enter your pin'", - "value": "enter your pin", - "range": [ - 107, - 123 - ], - "loc": { - "start": { - "line": 5, - "column": 48 - }, - "end": { - "line": 5, - "column": 64 - } - } - }, - "consequent": { - "type": "CallExpression", - "arguments": [ - { - "type": "Literal", - "raw": "/\\d(?!$)/g", - "regex": { - "flags": "g", - "pattern": "\\d(?!$)" - }, - "value": "/\\d(?!$)/g", - "range": [ - 88, - 98 - ], - "loc": { - "start": { - "line": 5, - "column": 29 - }, - "end": { - "line": 5, - "column": 39 - } - } - }, - { - "type": "Literal", - "raw": "'•'", - "value": "•", - "range": [ - 100, - 103 - ], - "loc": { - "start": { - "line": 5, - "column": 41 - }, - "end": { - "line": 5, - "column": 44 + "type": "FunctionDeclaration", + "async": false, + "body": { + "type": "BlockStatement", + "body": [ + { + "type": "ExpressionStatement", + "expression": { + "type": "CallExpression", + "arguments": [ + { + "type": "TemplateLiteral", + "expressions": [ + { + "type": "Identifier", + "name": "pin", + "range": [ + 174, + 177 + ], + "loc": { + "start": { + "line": 8, + "column": 21 + }, + "end": { + "line": 8, + "column": 24 + } + } + } + ], + "quasis": [ + { + "type": "TemplateElement", + "tail": false, + "value": { + "cooked": "submitted ", + "raw": "submitted " + }, + "range": [ + 161, + 174 + ], + "loc": { + "start": { + "line": 8, + "column": 8 + }, + "end": { + "line": 8, + "column": 21 + } + } + }, + { + "type": "TemplateElement", + "tail": true, + "value": { + "cooked": "", + "raw": "" + }, + "range": [ + 177, + 179 + ], + "loc": { + "start": { + "line": 8, + "column": 24 + }, + "end": { + "line": 8, + "column": 26 + } + } + } + ], + "range": [ + 161, + 179 + ], + "loc": { + "start": { + "line": 8, + "column": 8 + }, + "end": { + "line": 8, + "column": 26 + } + } } - } - } - ], - "callee": { - "type": "MemberExpression", - "computed": false, - "object": { - "type": "Identifier", - "name": "pin", - "range": [ - 76, - 79 ], - "loc": { - "start": { - "line": 5, - "column": 17 - }, - "end": { - "line": 5, - "column": 20 + "callee": { + "type": "Identifier", + "name": "alert", + "range": [ + 155, + 160 + ], + "loc": { + "start": { + "line": 8, + "column": 2 + }, + "end": { + "line": 8, + "column": 7 + } } - } - }, - "optional": false, - "property": { - "type": "Identifier", - "name": "replace", + }, + "optional": false, "range": [ - 80, - 87 + 155, + 180 ], "loc": { "start": { - "line": 5, - "column": 21 + "line": 8, + "column": 2 }, "end": { - "line": 5, - "column": 28 + "line": 8, + "column": 27 } } }, "range": [ - 76, - 87 + 155, + 181 ], "loc": { "start": { - "line": 5, - "column": 17 + "line": 8, + "column": 2 }, "end": { - "line": 5, + "line": 8, "column": 28 } } - }, - "optional": false, - "range": [ - 76, - 104 - ], - "loc": { - "start": { - "line": 5, - "column": 17 - }, - "end": { - "line": 5, - "column": 45 - } } - }, - "test": { - "type": "Identifier", - "name": "pin", - "range": [ - 70, - 73 - ], - "loc": { - "start": { - "line": 5, - "column": 11 - }, - "end": { - "line": 5, - "column": 14 - } + ], + "range": [ + 151, + 184 + ], + "loc": { + "start": { + "line": 7, + "column": 25 + }, + "end": { + "line": 9, + "column": 2 } - }, + } + }, + "expression": false, + "generator": false, + "id": { + "type": "Identifier", + "name": "handleSubmit", "range": [ - 70, - 123 + 136, + 148 ], "loc": { "start": { - "line": 5, - "column": 11 + "line": 7, + "column": 10 }, "end": { - "line": 5, - "column": 64 + "line": 7, + "column": 22 } } }, + "params": [], "range": [ - 63, - 123 + 127, + 184 ], "loc": { "start": { - "line": 5, - "column": 4 + "line": 7, + "column": 1 }, "end": { - "line": 5, - "column": 64 + "line": 9, + "column": 2 } } } @@ -972,18 +972,18 @@ { "identifier": { "type": "Identifier", - "name": "view", + "name": "handleSubmit", "range": [ - 240, - 244 + 288, + 300 ], "loc": { "start": { - "line": 12, - "column": 44 + "line": 14, + "column": 36 }, "end": { - "line": 12, + "line": 14, "column": 48 } } @@ -992,19 +992,19 @@ "init": null, "resolved": { "type": "Identifier", - "name": "view", + "name": "handleSubmit", "range": [ - 63, - 67 + 136, + 148 ], "loc": { "start": { - "line": 5, - "column": 4 + "line": 7, + "column": 10 }, "end": { - "line": 5, - "column": 8 + "line": 7, + "column": 22 } } } diff --git a/tests/fixtures/parser/ast/tutorial/component-bindings02-scope-output.json b/tests/fixtures/parser/ast/tutorial/component-bindings02-scope-output.json index a65e7751..3949b715 100644 --- a/tests/fixtures/parser/ast/tutorial/component-bindings02-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/component-bindings02-scope-output.json @@ -311,22 +311,22 @@ "type": "Identifier", "name": "value", "range": [ - 157, - 162 + 71, + 76 ], "loc": { "start": { - "line": 8, - "column": 29 + "line": 4, + "column": 12 }, "end": { - "line": 8, - "column": 34 + "line": 4, + "column": 17 } } }, - "from": "function", - "init": false, + "from": "module", + "init": null, "resolved": { "type": "Identifier", "name": "value", @@ -351,17 +351,17 @@ "type": "Identifier", "name": "value", "range": [ - 193, - 198 + 157, + 162 ], "loc": { "start": { - "line": 9, - "column": 22 + "line": 8, + "column": 29 }, "end": { - "line": 9, - "column": 27 + "line": 8, + "column": 34 } } }, @@ -391,22 +391,22 @@ "type": "Identifier", "name": "value", "range": [ - 841, - 846 + 193, + 198 ], "loc": { "start": { - "line": 37, - "column": 20 + "line": 9, + "column": 22 }, "end": { - "line": 37, - "column": 25 + "line": 9, + "column": 27 } } }, - "from": "module", - "init": null, + "from": "function", + "init": false, "resolved": { "type": "Identifier", "name": "value", @@ -431,16 +431,16 @@ "type": "Identifier", "name": "value", "range": [ - 941, - 946 + 841, + 846 ], "loc": { "start": { - "line": 39, + "line": 37, "column": 20 }, "end": { - "line": 39, + "line": 37, "column": 25 } } @@ -471,17 +471,17 @@ "type": "Identifier", "name": "value", "range": [ - 71, - 76 + 941, + 946 ], "loc": { "start": { - "line": 4, - "column": 12 + "line": 39, + "column": 20 }, "end": { - "line": 4, - "column": 17 + "line": 39, + "column": 25 } } }, diff --git a/tests/fixtures/parser/ast/tutorial/context-api02-scope-output.json b/tests/fixtures/parser/ast/tutorial/context-api02-scope-output.json index 0c5457eb..7f4ea7b5 100644 --- a/tests/fixtures/parser/ast/tutorial/context-api02-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/context-api02-scope-output.json @@ -676,21 +676,21 @@ "type": "Identifier", "name": "lat", "range": [ - 513, - 516 + 158, + 161 ], "loc": { "start": { - "line": 25, - "column": 18 + "line": 9, + "column": 12 }, "end": { - "line": 25, - "column": 21 + "line": 9, + "column": 15 } } }, - "from": "function", + "from": "module", "init": null, "resolved": { "type": "Identifier", @@ -716,21 +716,21 @@ "type": "Identifier", "name": "lat", "range": [ - 158, - 161 + 513, + 516 ], "loc": { "start": { - "line": 9, - "column": 12 + "line": 25, + "column": 18 }, "end": { - "line": 9, - "column": 15 + "line": 25, + "column": 21 } } }, - "from": "module", + "from": "function", "init": null, "resolved": { "type": "Identifier", @@ -840,21 +840,21 @@ "type": "Identifier", "name": "lon", "range": [ - 508, - 511 + 175, + 178 ], "loc": { "start": { - "line": 25, - "column": 13 + "line": 10, + "column": 12 }, "end": { - "line": 25, - "column": 16 + "line": 10, + "column": 15 } } }, - "from": "function", + "from": "module", "init": null, "resolved": { "type": "Identifier", @@ -880,21 +880,21 @@ "type": "Identifier", "name": "lon", "range": [ - 175, - 178 + 508, + 511 ], "loc": { "start": { - "line": 10, - "column": 12 + "line": 25, + "column": 13 }, "end": { - "line": 10, - "column": 15 + "line": 25, + "column": 16 } } }, - "from": "module", + "from": "function", "init": null, "resolved": { "type": "Identifier", @@ -1004,21 +1004,21 @@ "type": "Identifier", "name": "zoom", "range": [ - 523, - 527 + 192, + 196 ], "loc": { "start": { - "line": 26, - "column": 4 + "line": 11, + "column": 12 }, "end": { - "line": 26, - "column": 8 + "line": 11, + "column": 16 } } }, - "from": "function", + "from": "module", "init": null, "resolved": { "type": "Identifier", @@ -1044,21 +1044,21 @@ "type": "Identifier", "name": "zoom", "range": [ - 192, - 196 + 523, + 527 ], "loc": { "start": { - "line": 11, - "column": 12 + "line": 26, + "column": 4 }, "end": { - "line": 11, - "column": 16 + "line": 26, + "column": 8 } } }, - "from": "module", + "from": "function", "init": null, "resolved": { "type": "Identifier", diff --git a/tests/fixtures/parser/ast/tutorial/context-api03-scope-output.json b/tests/fixtures/parser/ast/tutorial/context-api03-scope-output.json index db6e809b..94abca35 100644 --- a/tests/fixtures/parser/ast/tutorial/context-api03-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/context-api03-scope-output.json @@ -1052,17 +1052,17 @@ "type": "Identifier", "name": "lat", "range": [ - 330, - 333 + 165, + 168 ], "loc": { "start": { - "line": 16, - "column": 19 + "line": 8, + "column": 12 }, "end": { - "line": 16, - "column": 22 + "line": 8, + "column": 15 } } }, @@ -1092,17 +1092,17 @@ "type": "Identifier", "name": "lat", "range": [ - 165, - 168 + 330, + 333 ], "loc": { "start": { - "line": 8, - "column": 12 + "line": 16, + "column": 19 }, "end": { - "line": 8, - "column": 15 + "line": 16, + "column": 22 } } }, @@ -1216,17 +1216,17 @@ "type": "Identifier", "name": "lon", "range": [ - 325, - 328 + 182, + 185 ], "loc": { "start": { - "line": 16, - "column": 14 + "line": 9, + "column": 12 }, "end": { - "line": 16, - "column": 17 + "line": 9, + "column": 15 } } }, @@ -1256,17 +1256,17 @@ "type": "Identifier", "name": "lon", "range": [ - 182, - 185 + 325, + 328 ], "loc": { "start": { - "line": 9, - "column": 12 + "line": 16, + "column": 14 }, "end": { - "line": 9, - "column": 15 + "line": 16, + "column": 17 } } }, @@ -1380,17 +1380,17 @@ "type": "Identifier", "name": "label", "range": [ - 266, - 271 + 199, + 204 ], "loc": { "start": { - "line": 13, - "column": 11 + "line": 10, + "column": 12 }, "end": { - "line": 13, - "column": 16 + "line": 10, + "column": 17 } } }, @@ -1420,17 +1420,17 @@ "type": "Identifier", "name": "label", "range": [ - 199, - 204 + 266, + 271 ], "loc": { "start": { - "line": 10, - "column": 12 + "line": 13, + "column": 11 }, "end": { - "line": 10, - "column": 17 + "line": 13, + "column": 16 } } }, diff --git a/tests/fixtures/parser/ast/tutorial/custom-stores-scope-output.json b/tests/fixtures/parser/ast/tutorial/custom-stores-scope-output.json index 6458b26c..b4383e8b 100644 --- a/tests/fixtures/parser/ast/tutorial/custom-stores-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/custom-stores-scope-output.json @@ -127,19 +127,19 @@ { "identifier": { "type": "Identifier", - "name": "count", + "name": "$count", "range": [ - 108, - 113 + 76, + 82 ], "loc": { "start": { - "line": 7, + "line": 5, "column": 18 }, "end": { - "line": 7, - "column": 23 + "line": 5, + "column": 24 } } }, @@ -169,16 +169,16 @@ "type": "Identifier", "name": "count", "range": [ - 154, - 159 + 108, + 113 ], "loc": { "start": { - "line": 8, + "line": 7, "column": 18 }, "end": { - "line": 8, + "line": 7, "column": 23 } } @@ -209,16 +209,16 @@ "type": "Identifier", "name": "count", "range": [ - 200, - 205 + 154, + 159 ], "loc": { "start": { - "line": 9, + "line": 8, "column": 18 }, "end": { - "line": 9, + "line": 8, "column": 23 } } @@ -247,19 +247,19 @@ { "identifier": { "type": "Identifier", - "name": "$count", + "name": "count", "range": [ - 76, - 82 + 200, + 205 ], "loc": { "start": { - "line": 5, + "line": 9, "column": 18 }, "end": { - "line": 5, - "column": 24 + "line": 9, + "column": 23 } } }, diff --git a/tests/fixtures/parser/ast/tutorial/declaring-props02-scope-output.json b/tests/fixtures/parser/ast/tutorial/declaring-props02-scope-output.json index 3132fd67..c2e1562f 100644 --- a/tests/fixtures/parser/ast/tutorial/declaring-props02-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/declaring-props02-scope-output.json @@ -112,17 +112,17 @@ "type": "Identifier", "name": "answer", "range": [ - 58, - 64 + 21, + 27 ], "loc": { "start": { - "line": 5, - "column": 18 + "line": 2, + "column": 12 }, "end": { - "line": 5, - "column": 24 + "line": 2, + "column": 18 } } }, @@ -152,17 +152,17 @@ "type": "Identifier", "name": "answer", "range": [ - 21, - 27 + 58, + 64 ], "loc": { "start": { - "line": 2, - "column": 12 + "line": 5, + "column": 18 }, "end": { - "line": 2, - "column": 18 + "line": 5, + "column": 24 } } }, diff --git a/tests/fixtures/parser/ast/tutorial/default-values02-scope-output.json b/tests/fixtures/parser/ast/tutorial/default-values02-scope-output.json index 9492f537..3ff37e2b 100644 --- a/tests/fixtures/parser/ast/tutorial/default-values02-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/default-values02-scope-output.json @@ -170,17 +170,17 @@ "type": "Identifier", "name": "answer", "range": [ - 72, - 78 + 21, + 27 ], "loc": { "start": { - "line": 5, - "column": 18 + "line": 2, + "column": 12 }, "end": { - "line": 5, - "column": 24 + "line": 2, + "column": 18 } } }, @@ -210,17 +210,17 @@ "type": "Identifier", "name": "answer", "range": [ - 21, - 27 + 72, + 78 ], "loc": { "start": { - "line": 2, - "column": 12 + "line": 5, + "column": 18 }, "end": { - "line": 2, - "column": 18 + "line": 5, + "column": 24 } } }, diff --git a/tests/fixtures/parser/ast/tutorial/module-exports02-scope-output.json b/tests/fixtures/parser/ast/tutorial/module-exports02-scope-output.json index 2f8c8d7c..e277ad25 100644 --- a/tests/fixtures/parser/ast/tutorial/module-exports02-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/module-exports02-scope-output.json @@ -920,17 +920,17 @@ "type": "Identifier", "name": "src", "range": [ - 893, - 896 + 214, + 217 ], "loc": { "start": { - "line": 50, - "column": 3 + "line": 14, + "column": 12 }, "end": { - "line": 50, - "column": 6 + "line": 14, + "column": 15 } } }, @@ -960,17 +960,17 @@ "type": "Identifier", "name": "src", "range": [ - 214, - 217 + 893, + 896 ], "loc": { "start": { - "line": 14, - "column": 12 + "line": 50, + "column": 3 }, "end": { - "line": 14, - "column": 15 + "line": 50, + "column": 6 } } }, @@ -1084,17 +1084,17 @@ "type": "Identifier", "name": "title", "range": [ - 738, - 743 + 231, + 236 ], "loc": { "start": { - "line": 42, - "column": 6 + "line": 15, + "column": 12 }, "end": { - "line": 42, - "column": 11 + "line": 15, + "column": 17 } } }, @@ -1124,17 +1124,17 @@ "type": "Identifier", "name": "title", "range": [ - 231, - 236 + 738, + 743 ], "loc": { "start": { - "line": 15, - "column": 12 + "line": 42, + "column": 6 }, "end": { - "line": 15, - "column": 17 + "line": 42, + "column": 11 } } }, @@ -1248,17 +1248,17 @@ "type": "Identifier", "name": "composer", "range": [ - 763, - 771 + 250, + 258 ], "loc": { "start": { - "line": 43, - "column": 13 + "line": 16, + "column": 12 }, "end": { - "line": 43, - "column": 21 + "line": 16, + "column": 20 } } }, @@ -1288,17 +1288,17 @@ "type": "Identifier", "name": "composer", "range": [ - 250, - 258 + 763, + 771 ], "loc": { "start": { - "line": 16, - "column": 12 + "line": 43, + "column": 13 }, "end": { - "line": 16, - "column": 20 + "line": 43, + "column": 21 } } }, @@ -1412,17 +1412,17 @@ "type": "Identifier", "name": "performer", "range": [ - 798, - 807 + 272, + 281 ], "loc": { "start": { - "line": 43, - "column": 48 + "line": 17, + "column": 12 }, "end": { - "line": 43, - "column": 57 + "line": 17, + "column": 21 } } }, @@ -1452,17 +1452,17 @@ "type": "Identifier", "name": "performer", "range": [ - 272, - 281 + 798, + 807 ], "loc": { "start": { - "line": 17, - "column": 12 + "line": 43, + "column": 48 }, "end": { - "line": 17, - "column": 21 + "line": 43, + "column": 57 } } }, diff --git a/tests/fixtures/parser/ast/tutorial/optional-slots02-scope-output.json b/tests/fixtures/parser/ast/tutorial/optional-slots02-scope-output.json index e049066a..9fa49c89 100644 --- a/tests/fixtures/parser/ast/tutorial/optional-slots02-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/optional-slots02-scope-output.json @@ -112,17 +112,17 @@ "type": "Identifier", "name": "name", "range": [ - 99, - 103 + 21, + 25 ], "loc": { "start": { - "line": 5, - "column": 49 + "line": 2, + "column": 12 }, "end": { - "line": 5, - "column": 53 + "line": 2, + "column": 16 } } }, @@ -152,17 +152,17 @@ "type": "Identifier", "name": "name", "range": [ - 711, - 715 + 99, + 103 ], "loc": { "start": { - "line": 49, - "column": 8 + "line": 5, + "column": 49 }, "end": { - "line": 49, - "column": 12 + "line": 5, + "column": 53 } } }, @@ -192,17 +192,17 @@ "type": "Identifier", "name": "name", "range": [ - 21, - 25 + 711, + 715 ], "loc": { "start": { - "line": 2, - "column": 12 + "line": 49, + "column": 8 }, "end": { - "line": 2, - "column": 16 + "line": 49, + "column": 12 } } }, @@ -316,17 +316,17 @@ "type": "Identifier", "name": "postedAt", "range": [ - 741, - 749 + 39, + 47 ], "loc": { "start": { - "line": 50, - "column": 19 + "line": 3, + "column": 12 }, "end": { - "line": 50, - "column": 27 + "line": 3, + "column": 20 } } }, @@ -356,17 +356,17 @@ "type": "Identifier", "name": "postedAt", "range": [ - 766, - 774 + 741, + 749 ], "loc": { "start": { "line": 50, - "column": 44 + "column": 19 }, "end": { "line": 50, - "column": 52 + "column": 27 } } }, @@ -396,17 +396,17 @@ "type": "Identifier", "name": "postedAt", "range": [ - 39, - 47 + 766, + 774 ], "loc": { "start": { - "line": 3, - "column": 12 + "line": 50, + "column": 44 }, "end": { - "line": 3, - "column": 20 + "line": 50, + "column": 52 } } }, diff --git a/tests/fixtures/parser/ast/tutorial/optional-slots03-scope-output.json b/tests/fixtures/parser/ast/tutorial/optional-slots03-scope-output.json index 5ee5f841..0ad83ba1 100644 --- a/tests/fixtures/parser/ast/tutorial/optional-slots03-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/optional-slots03-scope-output.json @@ -159,17 +159,17 @@ "type": "Identifier", "name": "title", "range": [ - 791, - 796 + 21, + 26 ], "loc": { "start": { - "line": 55, - "column": 7 + "line": 2, + "column": 12 }, "end": { - "line": 55, - "column": 12 + "line": 2, + "column": 17 } } }, @@ -199,17 +199,17 @@ "type": "Identifier", "name": "title", "range": [ - 21, - 26 + 791, + 796 ], "loc": { "start": { - "line": 2, - "column": 12 + "line": 55, + "column": 7 }, "end": { - "line": 2, - "column": 17 + "line": 55, + "column": 12 } } }, @@ -381,17 +381,17 @@ "type": "Identifier", "name": "tasksCompleted", "range": [ - 809, - 823 + 40, + 54 ], "loc": { "start": { - "line": 56, - "column": 6 + "line": 3, + "column": 12 }, "end": { - "line": 56, - "column": 20 + "line": 3, + "column": 26 } } }, @@ -421,17 +421,17 @@ "type": "Identifier", "name": "tasksCompleted", "range": [ - 40, - 54 + 809, + 823 ], "loc": { "start": { - "line": 3, - "column": 12 + "line": 56, + "column": 6 }, "end": { - "line": 3, - "column": 26 + "line": 56, + "column": 20 } } }, @@ -603,17 +603,17 @@ "type": "Identifier", "name": "totalTasks", "range": [ - 826, - 836 + 72, + 82 ], "loc": { "start": { - "line": 56, - "column": 23 + "line": 4, + "column": 12 }, "end": { - "line": 56, - "column": 33 + "line": 4, + "column": 22 } } }, @@ -643,17 +643,17 @@ "type": "Identifier", "name": "totalTasks", "range": [ - 72, - 82 + 826, + 836 ], "loc": { "start": { - "line": 4, - "column": 12 + "line": 56, + "column": 23 }, "end": { - "line": 4, - "column": 22 + "line": 56, + "column": 33 } } }, diff --git a/tests/fixtures/parser/ast/tutorial/reactive-declarations-scope-output.json b/tests/fixtures/parser/ast/tutorial/reactive-declarations-scope-output.json index b885309e..314a82cd 100644 --- a/tests/fixtures/parser/ast/tutorial/reactive-declarations-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/reactive-declarations-scope-output.json @@ -367,6 +367,185 @@ } ] }, + { + "name": "doubled", + "identifiers": [ + { + "type": "Identifier", + "name": "doubled", + "range": [ + 32, + 39 + ], + "loc": { + "start": { + "line": 3, + "column": 7 + }, + "end": { + "line": 3, + "column": 14 + } + } + } + ], + "defs": [ + { + "type": "ComputedVariable", + "name": { + "type": "Identifier", + "name": "doubled", + "range": [ + 32, + 39 + ], + "loc": { + "start": { + "line": 3, + "column": 7 + }, + "end": { + "line": 3, + "column": 14 + } + } + }, + "node": { + "type": "AssignmentExpression", + "left": { + "type": "Identifier", + "name": "doubled", + "range": [ + 32, + 39 + ], + "loc": { + "start": { + "line": 3, + "column": 7 + }, + "end": { + "line": 3, + "column": 14 + } + } + }, + "operator": "=", + "right": { + "type": "BinaryExpression", + "left": { + "type": "Identifier", + "name": "count", + "range": [ + 42, + 47 + ], + "loc": { + "start": { + "line": 3, + "column": 17 + }, + "end": { + "line": 3, + "column": 22 + } + } + }, + "operator": "*", + "right": { + "type": "Literal", + "raw": "2", + "value": 2, + "range": [ + 50, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 25 + }, + "end": { + "line": 3, + "column": 26 + } + } + }, + "range": [ + 42, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 17 + }, + "end": { + "line": 3, + "column": 26 + } + } + }, + "range": [ + 32, + 51 + ], + "loc": { + "start": { + "line": 3, + "column": 7 + }, + "end": { + "line": 3, + "column": 26 + } + } + } + } + ], + "references": [ + { + "identifier": { + "type": "Identifier", + "name": "doubled", + "range": [ + 223, + 230 + ], + "loc": { + "start": { + "line": 13, + "column": 23 + }, + "end": { + "line": 13, + "column": 30 + } + } + }, + "from": "module", + "init": null, + "resolved": { + "type": "Identifier", + "name": "doubled", + "range": [ + 32, + 39 + ], + "loc": { + "start": { + "line": 3, + "column": 7 + }, + "end": { + "line": 3, + "column": 14 + } + } + } + } + ] + }, { "name": "handleClick", "identifiers": [ @@ -584,185 +763,6 @@ } } ] - }, - { - "name": "doubled", - "identifiers": [ - { - "type": "Identifier", - "name": "doubled", - "range": [ - 32, - 39 - ], - "loc": { - "start": { - "line": 3, - "column": 7 - }, - "end": { - "line": 3, - "column": 14 - } - } - } - ], - "defs": [ - { - "type": "ComputedVariable", - "name": { - "type": "Identifier", - "name": "doubled", - "range": [ - 32, - 39 - ], - "loc": { - "start": { - "line": 3, - "column": 7 - }, - "end": { - "line": 3, - "column": 14 - } - } - }, - "node": { - "type": "AssignmentExpression", - "left": { - "type": "Identifier", - "name": "doubled", - "range": [ - 32, - 39 - ], - "loc": { - "start": { - "line": 3, - "column": 7 - }, - "end": { - "line": 3, - "column": 14 - } - } - }, - "operator": "=", - "right": { - "type": "BinaryExpression", - "left": { - "type": "Identifier", - "name": "count", - "range": [ - 42, - 47 - ], - "loc": { - "start": { - "line": 3, - "column": 17 - }, - "end": { - "line": 3, - "column": 22 - } - } - }, - "operator": "*", - "right": { - "type": "Literal", - "raw": "2", - "value": 2, - "range": [ - 50, - 51 - ], - "loc": { - "start": { - "line": 3, - "column": 25 - }, - "end": { - "line": 3, - "column": 26 - } - } - }, - "range": [ - 42, - 51 - ], - "loc": { - "start": { - "line": 3, - "column": 17 - }, - "end": { - "line": 3, - "column": 26 - } - } - }, - "range": [ - 32, - 51 - ], - "loc": { - "start": { - "line": 3, - "column": 7 - }, - "end": { - "line": 3, - "column": 26 - } - } - } - } - ], - "references": [ - { - "identifier": { - "type": "Identifier", - "name": "doubled", - "range": [ - 223, - 230 - ], - "loc": { - "start": { - "line": 13, - "column": 23 - }, - "end": { - "line": 13, - "column": 30 - } - } - }, - "from": "module", - "init": null, - "resolved": { - "type": "Identifier", - "name": "doubled", - "range": [ - 32, - 39 - ], - "loc": { - "start": { - "line": 3, - "column": 7 - }, - "end": { - "line": 3, - "column": 14 - } - } - } - } - ] } ], "references": [ diff --git a/tests/fixtures/parser/ast/tutorial/sharing-code02-scope-output.json b/tests/fixtures/parser/ast/tutorial/sharing-code02-scope-output.json index cb276df8..c730ce47 100644 --- a/tests/fixtures/parser/ast/tutorial/sharing-code02-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/sharing-code02-scope-output.json @@ -356,17 +356,17 @@ "type": "Identifier", "name": "src", "range": [ - 657, - 660 + 72, + 75 ], "loc": { "start": { - "line": 36, - "column": 3 + "line": 6, + "column": 12 }, "end": { - "line": 36, - "column": 6 + "line": 6, + "column": 15 } } }, @@ -396,17 +396,17 @@ "type": "Identifier", "name": "src", "range": [ - 72, - 75 + 657, + 660 ], "loc": { "start": { - "line": 6, - "column": 12 + "line": 36, + "column": 3 }, "end": { - "line": 6, - "column": 15 + "line": 36, + "column": 6 } } }, @@ -520,17 +520,17 @@ "type": "Identifier", "name": "title", "range": [ - 502, - 507 + 89, + 94 ], "loc": { "start": { - "line": 28, - "column": 6 + "line": 7, + "column": 12 }, "end": { - "line": 28, - "column": 11 + "line": 7, + "column": 17 } } }, @@ -560,17 +560,17 @@ "type": "Identifier", "name": "title", "range": [ - 89, - 94 + 502, + 507 ], "loc": { "start": { - "line": 7, - "column": 12 + "line": 28, + "column": 6 }, "end": { - "line": 7, - "column": 17 + "line": 28, + "column": 11 } } }, @@ -684,17 +684,17 @@ "type": "Identifier", "name": "composer", "range": [ - 527, - 535 + 108, + 116 ], "loc": { "start": { - "line": 29, - "column": 13 + "line": 8, + "column": 12 }, "end": { - "line": 29, - "column": 21 + "line": 8, + "column": 20 } } }, @@ -724,17 +724,17 @@ "type": "Identifier", "name": "composer", "range": [ - 108, - 116 + 527, + 535 ], "loc": { "start": { - "line": 8, - "column": 12 + "line": 29, + "column": 13 }, "end": { - "line": 8, - "column": 20 + "line": 29, + "column": 21 } } }, @@ -848,17 +848,17 @@ "type": "Identifier", "name": "performer", "range": [ - 562, - 571 + 130, + 139 ], "loc": { "start": { - "line": 29, - "column": 48 + "line": 9, + "column": 12 }, "end": { - "line": 29, - "column": 57 + "line": 9, + "column": 21 } } }, @@ -888,17 +888,17 @@ "type": "Identifier", "name": "performer", "range": [ - 130, - 139 + 562, + 571 ], "loc": { "start": { - "line": 9, - "column": 12 + "line": 29, + "column": 48 }, "end": { - "line": 9, - "column": 21 + "line": 29, + "column": 57 } } }, diff --git a/tests/fixtures/parser/ast/tutorial/spread-props02-scope-output.json b/tests/fixtures/parser/ast/tutorial/spread-props02-scope-output.json index 137a52b6..618f808d 100644 --- a/tests/fixtures/parser/ast/tutorial/spread-props02-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/spread-props02-scope-output.json @@ -112,16 +112,16 @@ "type": "Identifier", "name": "name", "range": [ - 115, - 119 + 21, + 25 ], "loc": { "start": { - "line": 9, + "line": 2, "column": 12 }, "end": { - "line": 9, + "line": 2, "column": 16 } } @@ -152,17 +152,17 @@ "type": "Identifier", "name": "name", "range": [ - 226, - 230 + 115, + 119 ], "loc": { "start": { - "line": 10, - "column": 73 + "line": 9, + "column": 12 }, "end": { - "line": 10, - "column": 77 + "line": 9, + "column": 16 } } }, @@ -192,17 +192,17 @@ "type": "Identifier", "name": "name", "range": [ - 21, - 25 + 226, + 230 ], "loc": { "start": { - "line": 2, - "column": 12 + "line": 10, + "column": 73 }, "end": { - "line": 2, - "column": 16 + "line": 10, + "column": 77 } } }, @@ -316,17 +316,17 @@ "type": "Identifier", "name": "version", "range": [ - 172, - 179 + 39, + 46 ], "loc": { "start": { - "line": 10, - "column": 19 + "line": 3, + "column": 12 }, "end": { - "line": 10, - "column": 26 + "line": 3, + "column": 19 } } }, @@ -356,17 +356,17 @@ "type": "Identifier", "name": "version", "range": [ - 39, - 46 + 172, + 179 ], "loc": { "start": { - "line": 3, - "column": 12 + "line": 10, + "column": 19 }, "end": { - "line": 3, - "column": 19 + "line": 10, + "column": 26 } } }, @@ -480,17 +480,17 @@ "type": "Identifier", "name": "speed", "range": [ - 140, - 145 + 60, + 65 ], "loc": { "start": { - "line": 9, - "column": 37 + "line": 4, + "column": 12 }, "end": { - "line": 9, - "column": 42 + "line": 4, + "column": 17 } } }, @@ -520,17 +520,17 @@ "type": "Identifier", "name": "speed", "range": [ - 60, - 65 + 140, + 145 ], "loc": { "start": { - "line": 4, - "column": 12 + "line": 9, + "column": 37 }, "end": { - "line": 4, - "column": 17 + "line": 9, + "column": 42 } } }, @@ -644,17 +644,17 @@ "type": "Identifier", "name": "website", "range": [ - 255, - 262 + 79, + 86 ], "loc": { "start": { - "line": 11, - "column": 14 + "line": 5, + "column": 12 }, "end": { - "line": 11, - "column": 21 + "line": 5, + "column": 19 } } }, @@ -684,17 +684,17 @@ "type": "Identifier", "name": "website", "range": [ - 79, - 86 + 255, + 262 ], "loc": { "start": { - "line": 5, - "column": 12 + "line": 11, + "column": 14 }, "end": { - "line": 5, - "column": 19 + "line": 11, + "column": 21 } } }, diff --git a/tests/fixtures/parser/ast/tutorial/svelte-options02-scope-output.json b/tests/fixtures/parser/ast/tutorial/svelte-options02-scope-output.json index 18b5d24f..c3e51915 100644 --- a/tests/fixtures/parser/ast/tutorial/svelte-options02-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/svelte-options02-scope-output.json @@ -376,17 +376,17 @@ "type": "Identifier", "name": "todo", "range": [ - 373, - 377 + 131, + 135 ], "loc": { "start": { - "line": 25, - "column": 2 + "line": 6, + "column": 12 }, "end": { - "line": 25, - "column": 6 + "line": 6, + "column": 16 } } }, @@ -416,17 +416,17 @@ "type": "Identifier", "name": "todo", "range": [ - 396, - 400 + 373, + 377 ], "loc": { "start": { "line": 25, - "column": 25 + "column": 2 }, "end": { "line": 25, - "column": 29 + "column": 6 } } }, @@ -456,17 +456,17 @@ "type": "Identifier", "name": "todo", "range": [ - 131, - 135 + 396, + 400 ], "loc": { "start": { - "line": 6, - "column": 12 + "line": 25, + "column": 25 }, "end": { - "line": 6, - "column": 16 + "line": 25, + "column": 29 } } }, diff --git a/tests/fixtures/parser/ast/tutorial/svelte-options03-scope-output.json b/tests/fixtures/parser/ast/tutorial/svelte-options03-scope-output.json index 4302f047..b73251da 100644 --- a/tests/fixtures/parser/ast/tutorial/svelte-options03-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/svelte-options03-scope-output.json @@ -376,17 +376,17 @@ "type": "Identifier", "name": "todo", "range": [ - 366, - 370 + 124, + 128 ], "loc": { "start": { - "line": 25, - "column": 2 + "line": 6, + "column": 12 }, "end": { - "line": 25, - "column": 6 + "line": 6, + "column": 16 } } }, @@ -416,17 +416,17 @@ "type": "Identifier", "name": "todo", "range": [ - 389, - 393 + 366, + 370 ], "loc": { "start": { "line": 25, - "column": 25 + "column": 2 }, "end": { "line": 25, - "column": 29 + "column": 6 } } }, @@ -456,17 +456,17 @@ "type": "Identifier", "name": "todo", "range": [ - 124, - 128 + 389, + 393 ], "loc": { "start": { - "line": 6, - "column": 12 + "line": 25, + "column": 25 }, "end": { - "line": 6, - "column": 16 + "line": 25, + "column": 29 } } }, diff --git a/tests/fixtures/parser/ast/tutorial/svelte-self02-scope-output.json b/tests/fixtures/parser/ast/tutorial/svelte-self02-scope-output.json index 343b8a7e..4c39c697 100644 --- a/tests/fixtures/parser/ast/tutorial/svelte-self02-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/svelte-self02-scope-output.json @@ -112,17 +112,17 @@ "type": "Identifier", "name": "name", "range": [ - 38, - 42 + 21, + 25 ], "loc": { "start": { - "line": 3, - "column": 11 + "line": 2, + "column": 12 }, "end": { - "line": 3, - "column": 15 + "line": 2, + "column": 16 } } }, @@ -152,17 +152,17 @@ "type": "Identifier", "name": "name", "range": [ - 49, - 53 + 38, + 42 ], "loc": { "start": { "line": 3, - "column": 22 + "column": 11 }, "end": { "line": 3, - "column": 26 + "column": 15 } } }, @@ -192,17 +192,17 @@ "type": "Identifier", "name": "name", "range": [ - 266, - 270 + 49, + 53 ], "loc": { "start": { - "line": 14, - "column": 64 + "line": 3, + "column": 22 }, "end": { - "line": 14, - "column": 68 + "line": 3, + "column": 26 } } }, @@ -232,17 +232,17 @@ "type": "Identifier", "name": "name", "range": [ - 21, - 25 + 266, + 270 ], "loc": { "start": { - "line": 2, - "column": 12 + "line": 14, + "column": 64 }, "end": { - "line": 2, - "column": 16 + "line": 14, + "column": 68 } } }, diff --git a/tests/fixtures/parser/ast/tutorial/svelte-self03-scope-output.json b/tests/fixtures/parser/ast/tutorial/svelte-self03-scope-output.json index c70a38e1..b9abbfc6 100644 --- a/tests/fixtures/parser/ast/tutorial/svelte-self03-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/svelte-self03-scope-output.json @@ -293,22 +293,22 @@ "type": "Identifier", "name": "expanded", "range": [ - 136, - 144 + 57, + 65 ], "loc": { "start": { - "line": 9, - "column": 2 + "line": 4, + "column": 12 }, "end": { - "line": 9, - "column": 10 + "line": 4, + "column": 20 } } }, - "from": "function", - "init": false, + "from": "module", + "init": null, "resolved": { "type": "Identifier", "name": "expanded", @@ -333,22 +333,22 @@ "type": "Identifier", "name": "expanded", "range": [ - 148, - 156 + 136, + 144 ], "loc": { "start": { "line": 9, - "column": 14 + "column": 2 }, "end": { "line": 9, - "column": 22 + "column": 10 } } }, "from": "function", - "init": null, + "init": false, "resolved": { "type": "Identifier", "name": "expanded", @@ -373,21 +373,21 @@ "type": "Identifier", "name": "expanded", "range": [ - 585, - 593 + 148, + 156 ], "loc": { "start": { - "line": 38, - "column": 12 + "line": 9, + "column": 14 }, "end": { - "line": 38, - "column": 20 + "line": 9, + "column": 22 } } }, - "from": "module", + "from": "function", "init": null, "resolved": { "type": "Identifier", @@ -413,17 +413,17 @@ "type": "Identifier", "name": "expanded", "range": [ - 632, - 640 + 585, + 593 ], "loc": { "start": { - "line": 40, - "column": 5 + "line": 38, + "column": 12 }, "end": { - "line": 40, - "column": 13 + "line": 38, + "column": 20 } } }, @@ -453,17 +453,17 @@ "type": "Identifier", "name": "expanded", "range": [ - 57, - 65 + 632, + 640 ], "loc": { "start": { - "line": 4, - "column": 12 + "line": 40, + "column": 5 }, "end": { - "line": 4, - "column": 20 + "line": 40, + "column": 13 } } }, @@ -577,17 +577,17 @@ "type": "Identifier", "name": "name", "range": [ - 613, - 617 + 87, + 91 ], "loc": { "start": { - "line": 38, - "column": 40 + "line": 5, + "column": 12 }, "end": { - "line": 38, - "column": 44 + "line": 5, + "column": 16 } } }, @@ -617,17 +617,17 @@ "type": "Identifier", "name": "name", "range": [ - 87, - 91 + 613, + 617 ], "loc": { "start": { - "line": 5, - "column": 12 + "line": 38, + "column": 40 }, "end": { - "line": 5, - "column": 16 + "line": 38, + "column": 44 } } }, @@ -741,21 +741,21 @@ "type": "Identifier", "name": "files", "range": [ - 657, - 662 + 105, + 110 ], "loc": { "start": { - "line": 42, - "column": 9 + "line": 6, + "column": 12 }, "end": { - "line": 42, - "column": 14 + "line": 6, + "column": 17 } } }, - "from": "block", + "from": "module", "init": null, "resolved": { "type": "Identifier", @@ -781,21 +781,21 @@ "type": "Identifier", "name": "files", "range": [ - 105, - 110 + 657, + 662 ], "loc": { "start": { - "line": 6, - "column": 12 + "line": 42, + "column": 9 }, "end": { - "line": 6, - "column": 17 + "line": 42, + "column": 14 } } }, - "from": "module", + "from": "block", "init": null, "resolved": { "type": "Identifier", diff --git a/tests/fixtures/parser/ast/tutorial/tweened-scope-output.json b/tests/fixtures/parser/ast/tutorial/tweened-scope-output.json index 4d4f087f..ed9f8f1d 100644 --- a/tests/fixtures/parser/ast/tutorial/tweened-scope-output.json +++ b/tests/fixtures/parser/ast/tutorial/tweened-scope-output.json @@ -622,23 +622,23 @@ { "identifier": { "type": "Identifier", - "name": "progress", + "name": "$progress", "range": [ - 310, - 318 + 261, + 270 ], "loc": { "start": { - "line": 20, - "column": 25 + "line": 18, + "column": 17 }, "end": { - "line": 20, - "column": 33 + "line": 18, + "column": 26 } } }, - "from": "function", + "from": "module", "init": null, "resolved": { "type": "Identifier", @@ -664,16 +664,16 @@ "type": "Identifier", "name": "progress", "range": [ - 369, - 377 + 310, + 318 ], "loc": { "start": { - "line": 24, + "line": 20, "column": 25 }, "end": { - "line": 24, + "line": 20, "column": 33 } } @@ -704,16 +704,16 @@ "type": "Identifier", "name": "progress", "range": [ - 432, - 440 + 369, + 377 ], "loc": { "start": { - "line": 28, + "line": 24, "column": 25 }, "end": { - "line": 28, + "line": 24, "column": 33 } } @@ -744,16 +744,16 @@ "type": "Identifier", "name": "progress", "range": [ - 494, - 502 + 432, + 440 ], "loc": { "start": { - "line": 32, + "line": 28, "column": 25 }, "end": { - "line": 32, + "line": 28, "column": 33 } } @@ -784,16 +784,16 @@ "type": "Identifier", "name": "progress", "range": [ - 557, - 565 + 494, + 502 ], "loc": { "start": { - "line": 36, + "line": 32, "column": 25 }, "end": { - "line": 36, + "line": 32, "column": 33 } } @@ -822,23 +822,23 @@ { "identifier": { "type": "Identifier", - "name": "$progress", + "name": "progress", "range": [ - 261, - 270 + 557, + 565 ], "loc": { "start": { - "line": 18, - "column": 17 + "line": 36, + "column": 25 }, "end": { - "line": 18, - "column": 26 + "line": 36, + "column": 33 } } }, - "from": "module", + "from": "function", "init": null, "resolved": { "type": "Identifier", diff --git a/tests/fixtures/parser/ast/unused-write-only-store-scope-output.json b/tests/fixtures/parser/ast/unused-write-only-store-scope-output.json index b249c69b..239c877d 100644 --- a/tests/fixtures/parser/ast/unused-write-only-store-scope-output.json +++ b/tests/fixtures/parser/ast/unused-write-only-store-scope-output.json @@ -127,24 +127,24 @@ { "identifier": { "type": "Identifier", - "name": "$imported", + "name": "imported", "range": [ - 160, - 169 + 19, + 27 ], "loc": { "start": { - "line": 7, - "column": 1 + "line": 2, + "column": 10 }, "end": { - "line": 7, - "column": 10 + "line": 2, + "column": 18 } } }, "from": "module", - "init": false, + "init": null, "resolved": { "type": "Identifier", "name": "imported", @@ -169,21 +169,21 @@ "type": "Identifier", "name": "$imported", "range": [ - 217, - 226 + 160, + 169 ], "loc": { "start": { - "line": 9, - "column": 21 + "line": 7, + "column": 1 }, "end": { - "line": 9, - "column": 30 + "line": 7, + "column": 10 } } }, - "from": "function", + "from": "module", "init": false, "resolved": { "type": "Identifier", @@ -247,24 +247,24 @@ { "identifier": { "type": "Identifier", - "name": "imported", + "name": "$imported", "range": [ - 19, - 27 + 217, + 226 ], "loc": { "start": { - "line": 2, - "column": 10 + "line": 9, + "column": 21 }, "end": { - "line": 2, - "column": 18 + "line": 9, + "column": 30 } } }, - "from": "module", - "init": null, + "from": "function", + "init": false, "resolved": { "type": "Identifier", "name": "imported", @@ -628,24 +628,24 @@ { "identifier": { "type": "Identifier", - "name": "$writeOnly", + "name": "writeOnly", "range": [ - 97, - 107 + 69, + 78 ], "loc": { "start": { - "line": 4, - "column": 1 + "line": 3, + "column": 7 }, "end": { - "line": 4, - "column": 11 + "line": 3, + "column": 16 } } }, "from": "module", - "init": false, + "init": null, "resolved": { "type": "Identifier", "name": "writeOnly", @@ -668,24 +668,24 @@ { "identifier": { "type": "Identifier", - "name": "writeOnly", + "name": "$writeOnly", "range": [ - 69, - 78 + 97, + 107 ], "loc": { "start": { - "line": 3, - "column": 7 + "line": 4, + "column": 1 }, "end": { - "line": 3, - "column": 16 + "line": 4, + "column": 11 } } }, "from": "module", - "init": null, + "init": false, "resolved": { "type": "Identifier", "name": "writeOnly", diff --git a/tests/src/parser/error.ts b/tests/src/parser/error.ts index 0a734cc3..b79caed8 100644 --- a/tests/src/parser/error.ts +++ b/tests/src/parser/error.ts @@ -4,7 +4,7 @@ import { parseForESLint } from "../../../src"; import { BASIC_PARSER_OPTIONS, listupFixtures, - nodeReplacer, + astToJson, normalizeError, } from "./test-utils"; import path from "path"; @@ -36,7 +36,7 @@ describe("Check for Error.", () => { try { parse(input, inputFileName); } catch (e) { - const errorJson = JSON.stringify(normalizeError(e), nodeReplacer, 2); + const errorJson = astToJson(normalizeError(e)); const output = fs.readFileSync(outputFileName, "utf8"); assert.strictEqual(errorJson, output); return; diff --git a/tests/src/parser/parser.ts b/tests/src/parser/parser.ts index a62e0c4c..971cadd8 100644 --- a/tests/src/parser/parser.ts +++ b/tests/src/parser/parser.ts @@ -8,10 +8,11 @@ import { parseForESLint } from "../../../src"; import { BASIC_PARSER_OPTIONS, listupFixtures, - nodeReplacer, + astToJson, scopeToJSON, } from "./test-utils"; import type { Comment, SvelteProgram, Token } from "../../../src/ast"; +import { sort } from "../../../src/parser/sort"; function parse(code: string, filePath: string) { return parseForESLint(code, { @@ -36,7 +37,7 @@ describe("Check for AST.", () => { if (!meetRequirements("test")) { return; } - const astJson = JSON.stringify(result.ast, nodeReplacer, 2); + const astJson = astToJson(result.ast); const output = fs.readFileSync(outputFileName, "utf8"); assert.strictEqual(astJson, output); }); @@ -80,9 +81,8 @@ describe("Check for AST.", () => { }); function checkTokens(ast: SvelteProgram, input: string) { - const allTokens = [...ast.tokens, ...ast.comments].sort( - (a, b) => a.range[0] - b.range[0] - ); + const allTokens = sort([...ast.tokens, ...ast.comments]); + // check loc for (const token of allTokens) { const value = getText(token); @@ -134,10 +134,7 @@ function checkLoc(ast: SvelteProgram, fileName: string, code: string) { set.has(node) ) { assert.fail( - `Duplicate node @parent: ${parent?.type}, ${JSON.stringify( - node, - nodeReplacer - )}` + `Duplicate node @parent: ${parent?.type}, ${astToJson(node)}` ); } set.add(node); @@ -146,20 +143,20 @@ function checkLoc(ast: SvelteProgram, fileName: string, code: string) { (node as any).parent?.type === parent?.type, `Parent type mismatch [${(node as any).parent?.type} : ${ parent?.type - }] @${JSON.stringify(node, nodeReplacer)}` + }] @${astToJson(node)}` ); } assert.ok( (node as any).parent?.range?.[0] === parent?.range![0], `Parent range mismatch [${(node as any).parent?.range?.[0]} : ${ parent?.range![0] - }] @${JSON.stringify(node, nodeReplacer)}` + }] @${astToJson(node)}` ); assert.ok( (node as any).parent?.range?.[1] === parent?.range![1], `Parent range mismatch [${(node as any).parent?.range?.[1]} : ${ parent?.range![1] - }] @${JSON.stringify(node, nodeReplacer)}` + }] @${astToJson(node)}` ); assert.ok( node.range![0] < node.range![1], diff --git a/tests/src/parser/test-utils.ts b/tests/src/parser/test-utils.ts index 76a6329b..6d8d9aff 100644 --- a/tests/src/parser/test-utils.ts +++ b/tests/src/parser/test-utils.ts @@ -5,6 +5,7 @@ import semver from "semver"; import type { Linter, Scope as ESLintScope } from "eslint"; import { LinesAndColumns } from "../../../src/context"; import type { Reference, Scope, ScopeManager, Variable } from "eslint-scope"; +import type * as TSESScopes from "@typescript-eslint/scope-manager"; import type { SvelteNode } from "../../../src/ast"; const AST_FIXTURE_ROOT = path.resolve(__dirname, "../../fixtures/parser/ast"); @@ -148,12 +149,28 @@ export function getMessageData( }; } -export function scopeToJSON(scopeManager: ScopeManager): string { - const scope = normalizeScope(scopeManager.globalScope); - return JSON.stringify(scope, nodeReplacer, 2); +export function astToJson(node: any): string { + return JSON.stringify(node, nodeReplacer, 2); } -function normalizeScope(scope: Scope): any { +export function scopeToJSON( + scopeManager: ScopeManager | TSESScopes.ScopeManager, + option?: { skipGlobalScope?: boolean } +): string { + const globalScope = scopeManager.globalScope!; + let scopeData; + if (option?.skipGlobalScope) { + scopeData = + globalScope.childScopes.length === 1 + ? normalizeScope(globalScope.childScopes[0]) + : globalScope.childScopes.map(normalizeScope); + } else { + scopeData = normalizeScope(globalScope); + } + return JSON.stringify(scopeData, nodeReplacer, 2); +} + +function normalizeScope(scope: Scope | TSESScopes.Scope): any { return { type: scope.type, variables: scope.variables.map(normalizeVar), @@ -163,7 +180,7 @@ function normalizeScope(scope: Scope): any { }; } -function normalizeVar(v: Variable) { +function normalizeVar(v: Variable | TSESScopes.Variable) { return { name: v.name, identifiers: v.identifiers, @@ -172,7 +189,7 @@ function normalizeVar(v: Variable) { }; } -function normalizeReference(reference: Reference) { +function normalizeReference(reference: Reference | TSESScopes.Reference) { return { identifier: reference.identifier, from: reference.from.type, @@ -181,7 +198,9 @@ function normalizeReference(reference: Reference) { }; } -function normalizeDef(reference: ESLintScope.Definition) { +function normalizeDef( + reference: ESLintScope.Definition | TSESScopes.Definition +) { return { type: reference.type, node: reference.node, @@ -201,7 +220,7 @@ export function normalizeError(error: any): any { /** * Remove `parent` properties from the given AST. */ -export function nodeReplacer(key: string, value: any): any { +function nodeReplacer(key: string, value: any): any { if (key === "parent") { return undefined; } diff --git a/tools/update-fixtures.ts b/tools/update-fixtures.ts index 67028c27..f1cbf81e 100644 --- a/tools/update-fixtures.ts +++ b/tools/update-fixtures.ts @@ -7,7 +7,7 @@ import { BASIC_PARSER_OPTIONS, getMessageData, listupFixtures, - nodeReplacer, + astToJson, normalizeError, scopeToJSON, } from "../tests/src/parser/test-utils"; @@ -52,7 +52,7 @@ for (const { input, inputFileName, outputFileName } of listupFixtures( try { parse(input, inputFileName); } catch (e) { - const errorJson = JSON.stringify(normalizeError(e), nodeReplacer, 2); + const errorJson = astToJson(normalizeError(e)); fs.writeFileSync(outputFileName, errorJson, "utf8"); } } @@ -69,7 +69,7 @@ for (const { // eslint-disable-next-line no-console -- ignore console.log(inputFileName); const result = parse(input, inputFileName); - const astJson = JSON.stringify(result.ast, nodeReplacer, 2); + const astJson = astToJson(result.ast); fs.writeFileSync(outputFileName, astJson, "utf8"); const scopeJson = scopeToJSON(result.scopeManager); fs.writeFileSync(scopeFileName, scopeJson, "utf8"); From b1b653d8b7e498c387a57cd07d10ecd0de8b53ed Mon Sep 17 00:00:00 2001 From: Yosuke Ota Date: Sat, 22 Oct 2022 23:23:19 +0900 Subject: [PATCH 2/8] Create famous-camels-battle.md --- .changeset/famous-camels-battle.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/famous-camels-battle.md diff --git a/.changeset/famous-camels-battle.md b/.changeset/famous-camels-battle.md new file mode 100644 index 00000000..8f722ba0 --- /dev/null +++ b/.changeset/famous-camels-battle.md @@ -0,0 +1,5 @@ +--- +"svelte-eslint-parser": minor +--- + +fix: change virtual code to provide correct type information for reactive statements From 032cdd4f5919c6a7a0b3f4805045c28630cce986 Mon Sep 17 00:00:00 2001 From: yosuke ota Date: Sat, 22 Oct 2022 23:50:20 +0900 Subject: [PATCH 3/8] fix: parsing error --- src/parser/typescript/analyze/index.ts | 19 +- .../type-info-tests/issue226-input.svelte | 15 + .../type-info-tests/issue226-output.json | 1 + .../type-info-tests/issue226-setup.ts | 24 + .../plugin-issue254-input.svelte | 26 + .../plugin-issue254-output.json | 1 + .../type-info-tests/plugin-issue254-setup.ts | 24 + .../parser/ast/ts-issue226-input.svelte | 15 + .../ts-issue226-no-unused-vars-result.json | 14 + .../parser/ast/ts-issue226-output.json | 3970 +++++ .../parser/ast/ts-issue226-scope-output.json | 13287 ++++++++++++++++ .../parser/ast/ts-issue226-type-output.svelte | 15 + 12 files changed, 17408 insertions(+), 3 deletions(-) create mode 100644 tests/fixtures/integrations/type-info-tests/issue226-input.svelte create mode 100644 tests/fixtures/integrations/type-info-tests/issue226-output.json create mode 100644 tests/fixtures/integrations/type-info-tests/issue226-setup.ts create mode 100644 tests/fixtures/integrations/type-info-tests/plugin-issue254-input.svelte create mode 100644 tests/fixtures/integrations/type-info-tests/plugin-issue254-output.json create mode 100644 tests/fixtures/integrations/type-info-tests/plugin-issue254-setup.ts create mode 100644 tests/fixtures/parser/ast/ts-issue226-input.svelte create mode 100644 tests/fixtures/parser/ast/ts-issue226-no-unused-vars-result.json create mode 100644 tests/fixtures/parser/ast/ts-issue226-output.json create mode 100644 tests/fixtures/parser/ast/ts-issue226-scope-output.json create mode 100644 tests/fixtures/parser/ast/ts-issue226-type-output.svelte diff --git a/src/parser/typescript/analyze/index.ts b/src/parser/typescript/analyze/index.ts index 27590a16..8023530b 100644 --- a/src/parser/typescript/analyze/index.ts +++ b/src/parser/typescript/analyze/index.ts @@ -10,7 +10,7 @@ import { removeIdentifierVariable, replaceScope, } from "../../../scope"; -import { addElementsToSortedArray } from "../../../utils"; +import { addElementsToSortedArray, sortedLastIndex } from "../../../utils"; import { parseScriptWithoutAnalyzeScope } from "../../script"; import { TypeScriptContext } from "../context"; import type { TSESParseForESLintResult } from "../types"; @@ -233,8 +233,14 @@ function transformForDeclareReactiveVar( // function fn () { return foo; } const openParens: TSESTree.Token[] = []; + let eq: TSESTree.Token | null = null; const closeParens: TSESTree.Token[] = []; - for (const token of tokens) { + const startIndex = sortedLastIndex( + tokens, + (target) => target.range[0] - statement.range[0] + ); + for (let index = startIndex; index < tokens.length; index++) { + const token = tokens[index]; if ( statement.range[0] <= token.range[0] && token.range[1] <= statement.range[1] @@ -242,6 +248,13 @@ function transformForDeclareReactiveVar( if (token.value === "(" && token.range[1] <= expression.range[0]) { openParens.push(token); } + if ( + token.value === "=" && + expression.left.range[1] <= token.range[0] && + token.range[1] <= expression.right.range[0] + ) { + eq = token; + } if (token.value === ")" && expression.range[1] <= token.range[0]) { closeParens.push(token); } @@ -258,7 +271,7 @@ function transformForDeclareReactiveVar( ctx.appendOriginal(expression.range[0]); ctx.skipUntilOriginalOffset(id.range[0]); ctx.appendScript("let "); - ctx.appendOriginal(expression.right.range[0]); + ctx.appendOriginal(eq ? eq.range[1] : expression.right.range[0]); ctx.appendScript(`${functionId}();\nfunction ${functionId}(){return `); for (const token of closeParens) { ctx.appendOriginal(token.range[0]); diff --git a/tests/fixtures/integrations/type-info-tests/issue226-input.svelte b/tests/fixtures/integrations/type-info-tests/issue226-input.svelte new file mode 100644 index 00000000..29d9ac83 --- /dev/null +++ b/tests/fixtures/integrations/type-info-tests/issue226-input.svelte @@ -0,0 +1,15 @@ + + + diff --git a/tests/fixtures/integrations/type-info-tests/issue226-output.json b/tests/fixtures/integrations/type-info-tests/issue226-output.json new file mode 100644 index 00000000..0637a088 --- /dev/null +++ b/tests/fixtures/integrations/type-info-tests/issue226-output.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/fixtures/integrations/type-info-tests/issue226-setup.ts b/tests/fixtures/integrations/type-info-tests/issue226-setup.ts new file mode 100644 index 00000000..9782542f --- /dev/null +++ b/tests/fixtures/integrations/type-info-tests/issue226-setup.ts @@ -0,0 +1,24 @@ +/* eslint eslint-comments/require-description: 0, @typescript-eslint/explicit-module-boundary-types: 0 */ +import type { Linter } from "eslint"; +import { BASIC_PARSER_OPTIONS } from "../../../src/parser/test-utils"; +import { rules } from "@typescript-eslint/eslint-plugin"; +export function setupLinter(linter: Linter) { + linter.defineRule( + "@typescript-eslint/no-unsafe-argument", + rules["no-unsafe-argument"] as never + ); +} + +export function getConfig() { + return { + parser: "svelte-eslint-parser", + parserOptions: BASIC_PARSER_OPTIONS, + rules: { + "@typescript-eslint/no-unsafe-argument": "error", + }, + env: { + browser: true, + es2021: true, + }, + }; +} diff --git a/tests/fixtures/integrations/type-info-tests/plugin-issue254-input.svelte b/tests/fixtures/integrations/type-info-tests/plugin-issue254-input.svelte new file mode 100644 index 00000000..74b48552 --- /dev/null +++ b/tests/fixtures/integrations/type-info-tests/plugin-issue254-input.svelte @@ -0,0 +1,26 @@ + + +

    Welcome to SvelteKit

    +

    Visit kit.svelte.dev to read the documentation

    + +