export const snapshot = {}; snapshot[`Plugin - Program 1`] = ` { body: [], range: [ 1, 1, ], sourceType: "script", type: "Program", } `; snapshot[`Plugin - ImportDeclaration 1`] = ` { attributes: [], importKind: "value", range: [ 1, 14, ], source: { range: [ 8, 13, ], raw: '"foo"', type: "Literal", value: "foo", }, specifiers: [], type: "ImportDeclaration", } `; snapshot[`Plugin - ImportDeclaration 2`] = ` { attributes: [], importKind: "value", range: [ 1, 23, ], source: { range: [ 17, 22, ], raw: '"foo"', type: "Literal", value: "foo", }, specifiers: [ { local: { name: "foo", optional: false, range: [ 8, 11, ], type: "Identifier", typeAnnotation: null, }, range: [ 8, 11, ], type: "ImportDefaultSpecifier", }, ], type: "ImportDeclaration", } `; snapshot[`Plugin - ImportDeclaration 3`] = ` { attributes: [], importKind: "value", range: [ 1, 28, ], source: { range: [ 22, 27, ], raw: '"foo"', type: "Literal", value: "foo", }, specifiers: [ { local: { name: "foo", optional: false, range: [ 13, 16, ], type: "Identifier", typeAnnotation: null, }, range: [ 8, 16, ], type: "ImportNamespaceSpecifier", }, ], type: "ImportDeclaration", } `; snapshot[`Plugin - ImportDeclaration 4`] = ` { attributes: [], importKind: "value", range: [ 1, 39, ], source: { range: [ 33, 38, ], raw: '"foo"', type: "Literal", value: "foo", }, specifiers: [ { importKind: "value", imported: { name: "foo", optional: false, range: [ 10, 13, ], type: "Identifier", typeAnnotation: null, }, local: { name: "foo", optional: false, range: [ 10, 13, ], type: "Identifier", typeAnnotation: null, }, range: [ 10, 13, ], type: "ImportSpecifier", }, { importKind: "value", imported: { name: "bar", optional: false, range: [ 15, 18, ], type: "Identifier", typeAnnotation: null, }, local: { name: "baz", optional: false, range: [ 22, 25, ], type: "Identifier", typeAnnotation: null, }, range: [ 15, 25, ], type: "ImportSpecifier", }, ], type: "ImportDeclaration", } `; snapshot[`Plugin - ImportDeclaration 5`] = ` { attributes: [ { key: { name: "type", optional: false, range: [ 30, 34, ], type: "Identifier", typeAnnotation: null, }, range: [ 30, 42, ], type: "ImportAttribute", value: { range: [ 36, 42, ], raw: '"json"', type: "Literal", value: "json", }, }, ], importKind: "value", range: [ 1, 45, ], source: { range: [ 17, 22, ], raw: '"foo"', type: "Literal", value: "foo", }, specifiers: [ { local: { name: "foo", optional: false, range: [ 8, 11, ], type: "Identifier", typeAnnotation: null, }, range: [ 8, 11, ], type: "ImportDefaultSpecifier", }, ], type: "ImportDeclaration", } `; snapshot[`Plugin - ExportNamedDeclaration 1`] = ` { attributes: [], range: [ 1, 27, ], source: { range: [ 21, 26, ], raw: '"foo"', type: "Literal", value: "foo", }, specifiers: [ { exportKind: "value", exported: { name: "foo", optional: false, range: [ 10, 13, ], type: "Identifier", typeAnnotation: null, }, local: { name: "foo", optional: false, range: [ 10, 13, ], type: "Identifier", typeAnnotation: null, }, range: [ 10, 13, ], type: "ExportSpecifier", }, ], type: "ExportNamedDeclaration", } `; snapshot[`Plugin - ExportNamedDeclaration 2`] = ` { attributes: [], range: [ 1, 34, ], source: { range: [ 28, 33, ], raw: '"foo"', type: "Literal", value: "foo", }, specifiers: [ { exportKind: "value", exported: { name: "baz", optional: false, range: [ 17, 20, ], type: "Identifier", typeAnnotation: null, }, local: { name: "bar", optional: false, range: [ 10, 13, ], type: "Identifier", typeAnnotation: null, }, range: [ 10, 20, ], type: "ExportSpecifier", }, ], type: "ExportNamedDeclaration", } `; snapshot[`Plugin - ExportNamedDeclaration 3`] = ` { attributes: [ { key: { name: "type", optional: false, range: [ 34, 38, ], type: "Identifier", typeAnnotation: null, }, range: [ 34, 46, ], type: "ImportAttribute", value: { range: [ 40, 46, ], raw: '"json"', type: "Literal", value: "json", }, }, ], range: [ 1, 49, ], source: { range: [ 21, 26, ], raw: '"foo"', type: "Literal", value: "foo", }, specifiers: [ { exportKind: "value", exported: { name: "foo", optional: false, range: [ 10, 13, ], type: "Identifier", typeAnnotation: null, }, local: { name: "foo", optional: false, range: [ 10, 13, ], type: "Identifier", typeAnnotation: null, }, range: [ 10, 13, ], type: "ExportSpecifier", }, ], type: "ExportNamedDeclaration", } `; snapshot[`Plugin - ExportDefaultDeclaration 1`] = ` { declaration: { async: false, body: { body: [], range: [ 31, 33, ], type: "BlockStatement", }, declare: false, generator: false, id: { name: "foo", optional: false, range: [ 25, 28, ], type: "Identifier", typeAnnotation: null, }, params: [], range: [ 16, 33, ], returnType: null, type: "FunctionDeclaration", typeParameters: null, }, exportKind: "value", range: [ 1, 33, ], type: "ExportDefaultDeclaration", } `; snapshot[`Plugin - ExportDefaultDeclaration 2`] = ` { declaration: { async: false, body: { body: [], range: [ 28, 30, ], type: "BlockStatement", }, declare: false, generator: false, id: null, params: [], range: [ 16, 30, ], returnType: null, type: "FunctionDeclaration", typeParameters: null, }, exportKind: "value", range: [ 1, 30, ], type: "ExportDefaultDeclaration", } `; snapshot[`Plugin - ExportDefaultDeclaration 3`] = ` { declaration: { abstract: false, body: { body: [], range: [ 16, 28, ], type: "ClassBody", }, declare: false, id: { name: "Foo", optional: false, range: [ 22, 25, ], type: "Identifier", typeAnnotation: null, }, implements: [], range: [ 16, 28, ], superClass: null, type: "ClassDeclaration", }, exportKind: "value", range: [ 1, 28, ], type: "ExportDefaultDeclaration", } `; snapshot[`Plugin - ExportDefaultDeclaration 4`] = ` { declaration: { abstract: false, body: { body: [], range: [ 16, 24, ], type: "ClassBody", }, declare: false, id: null, implements: [], range: [ 16, 24, ], superClass: null, type: "ClassDeclaration", }, exportKind: "value", range: [ 1, 24, ], type: "ExportDefaultDeclaration", } `; snapshot[`Plugin - ExportDefaultDeclaration 5`] = ` { declaration: { name: "bar", optional: false, range: [ 16, 19, ], type: "Identifier", typeAnnotation: null, }, exportKind: "value", range: [ 1, 20, ], type: "ExportDefaultDeclaration", } `; snapshot[`Plugin - ExportDefaultDeclaration 6`] = ` { declaration: { body: { body: [], range: [ 30, 32, ], type: "TSInterfaceBody", }, declare: false, extends: null, id: { name: "Foo", optional: false, range: [ 26, 29, ], type: "Identifier", typeAnnotation: null, }, range: [ 16, 32, ], type: "TSInterfaceDeclaration", typeParameters: [], }, exportKind: "type", range: [ 1, 32, ], type: "ExportDefaultDeclaration", } `; snapshot[`Plugin - ExportAllDeclaration 1`] = ` { attributes: [], exportKind: "value", exported: null, range: [ 1, 21, ], source: { range: [ 15, 20, ], raw: '"foo"', type: "Literal", value: "foo", }, type: "ExportAllDeclaration", } `; snapshot[`Plugin - ExportAllDeclaration 2`] = ` { attributes: [], exportKind: "value", exported: { range: [ 22, 27, ], raw: '"foo"', type: "Literal", value: "foo", }, range: [ 1, 28, ], source: { name: "foo", optional: false, range: [ 13, 16, ], type: "Identifier", typeAnnotation: null, }, type: "ExportAllDeclaration", } `; snapshot[`Plugin - ExportAllDeclaration 3`] = ` { attributes: [ { key: { name: "type", optional: false, range: [ 28, 32, ], type: "Identifier", typeAnnotation: null, }, range: [ 28, 40, ], type: "ImportAttribute", value: { range: [ 34, 40, ], raw: '"json"', type: "Literal", value: "json", }, }, ], exportKind: "value", exported: null, range: [ 1, 43, ], source: { range: [ 15, 20, ], raw: '"foo"', type: "Literal", value: "foo", }, type: "ExportAllDeclaration", } `; snapshot[`Plugin - TSExportAssignment 1`] = ` { expression: { name: "foo", optional: false, range: [ 10, 13, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 14, ], type: "TSExportAssignment", } `; snapshot[`Plugin - TSNamespaceExportDeclaration 1`] = ` { id: { name: "A", optional: false, range: [ 21, 22, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 23, ], type: "TSNamespaceExportDeclaration", } `; snapshot[`Plugin - TSImportEqualsDeclaration 1`] = ` { id: { name: "a", optional: false, range: [ 8, 9, ], type: "Identifier", typeAnnotation: null, }, importKind: "value", moduleReference: { name: "b", optional: false, range: [ 12, 13, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 13, ], type: "TSImportEqualsDeclaration", } `; snapshot[`Plugin - TSImportEqualsDeclaration 2`] = ` { id: { name: "a", optional: false, range: [ 8, 9, ], type: "Identifier", typeAnnotation: null, }, importKind: "value", moduleReference: { expression: { range: [ 20, 25, ], raw: '"foo"', type: "Literal", value: "foo", }, range: [ 12, 26, ], type: "TSExternalModuleReference", }, range: [ 1, 26, ], type: "TSImportEqualsDeclaration", } `; snapshot[`Plugin - BlockStatement 1`] = ` { body: [ { expression: { name: "foo", optional: false, range: [ 3, 6, ], type: "Identifier", typeAnnotation: null, }, range: [ 3, 7, ], type: "ExpressionStatement", }, ], range: [ 1, 9, ], type: "BlockStatement", } `; snapshot[`Plugin - BreakStatement 1`] = ` { label: null, range: [ 15, 21, ], type: "BreakStatement", } `; snapshot[`Plugin - BreakStatement 2`] = ` { label: { name: "foo", optional: false, range: [ 26, 29, ], type: "Identifier", typeAnnotation: null, }, range: [ 20, 30, ], type: "BreakStatement", } `; snapshot[`Plugin - ContinueStatement 1`] = ` { label: null, range: [ 1, 10, ], type: "ContinueStatement", } `; snapshot[`Plugin - ContinueStatement 2`] = ` { label: { name: "foo", optional: false, range: [ 10, 13, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 14, ], type: "ContinueStatement", } `; snapshot[`Plugin - DebuggerStatement 1`] = ` { range: [ 1, 10, ], type: "DebuggerStatement", } `; snapshot[`Plugin - DoWhileStatement 1`] = ` { body: { body: [], range: [ 4, 6, ], type: "BlockStatement", }, range: [ 1, 19, ], test: { name: "foo", optional: false, range: [ 14, 17, ], type: "Identifier", typeAnnotation: null, }, type: "DoWhileStatement", } `; snapshot[`Plugin - ExpressionStatement 1`] = ` { expression: { name: "foo", optional: false, range: [ 1, 4, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 5, ], type: "ExpressionStatement", } `; snapshot[`Plugin - ForInStatement 1`] = ` { body: { body: [], range: [ 14, 16, ], type: "BlockStatement", }, left: { name: "a", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 16, ], right: { name: "b", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, type: "ForInStatement", } `; snapshot[`Plugin - ForOfStatement 1`] = ` { await: false, body: { body: [], range: [ 14, 16, ], type: "BlockStatement", }, left: { name: "a", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 16, ], right: { name: "b", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, type: "ForOfStatement", } `; snapshot[`Plugin - ForOfStatement 2`] = ` { await: true, body: { body: [], range: [ 20, 22, ], type: "BlockStatement", }, left: { name: "a", optional: false, range: [ 12, 13, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 22, ], right: { name: "b", optional: false, range: [ 17, 18, ], type: "Identifier", typeAnnotation: null, }, type: "ForOfStatement", } `; snapshot[`Plugin - ForStatement 1`] = ` { body: { body: [], range: [ 10, 12, ], type: "BlockStatement", }, init: null, range: [ 1, 12, ], test: null, type: "ForStatement", update: null, } `; snapshot[`Plugin - ForStatement 2`] = ` { body: { body: [], range: [ 15, 17, ], type: "BlockStatement", }, init: { name: "a", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 17, ], test: { name: "b", optional: false, range: [ 9, 10, ], type: "Identifier", typeAnnotation: null, }, type: "ForStatement", update: { name: "c", optional: false, range: [ 12, 13, ], type: "Identifier", typeAnnotation: null, }, } `; snapshot[`Plugin - IfStatement 1`] = ` { alternate: null, consequent: { body: [], range: [ 10, 12, ], type: "BlockStatement", }, range: [ 1, 12, ], test: { name: "foo", optional: false, range: [ 5, 8, ], type: "Identifier", typeAnnotation: null, }, type: "IfStatement", } `; snapshot[`Plugin - IfStatement 2`] = ` { alternate: { body: [], range: [ 18, 20, ], type: "BlockStatement", }, consequent: { body: [], range: [ 10, 12, ], type: "BlockStatement", }, range: [ 1, 20, ], test: { name: "foo", optional: false, range: [ 5, 8, ], type: "Identifier", typeAnnotation: null, }, type: "IfStatement", } `; snapshot[`Plugin - LabeledStatement 1`] = ` { body: { body: [], range: [ 6, 8, ], type: "BlockStatement", }, label: { name: "foo", optional: false, range: [ 1, 4, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 8, ], type: "LabeledStatement", } `; snapshot[`Plugin - ReturnStatement 1`] = ` { argument: null, range: [ 1, 7, ], type: "ReturnStatement", } `; snapshot[`Plugin - ReturnStatement 2`] = ` { argument: { name: "foo", optional: false, range: [ 8, 11, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 12, ], type: "ReturnStatement", } `; snapshot[`Plugin - SwitchStatement 1`] = ` { cases: [ { consequent: [], range: [ 22, 31, ], test: { name: "foo", optional: false, range: [ 27, 30, ], type: "Identifier", typeAnnotation: null, }, type: "SwitchCase", }, { consequent: [ { label: null, range: [ 56, 62, ], type: "BreakStatement", }, ], range: [ 38, 62, ], test: { name: "bar", optional: false, range: [ 43, 46, ], type: "Identifier", typeAnnotation: null, }, type: "SwitchCase", }, { consequent: [ { body: [], range: [ 86, 88, ], type: "BlockStatement", }, ], range: [ 69, 88, ], test: null, type: "SwitchCase", }, ], discriminant: { name: "foo", optional: false, range: [ 9, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 94, ], type: "SwitchStatement", } `; snapshot[`Plugin - ThrowStatement 1`] = ` { argument: { name: "foo", optional: false, range: [ 7, 10, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 11, ], type: "ThrowStatement", } `; snapshot[`Plugin - TryStatement 1`] = ` { block: { body: [], range: [ 5, 7, ], type: "BlockStatement", }, finalizer: null, handler: { body: { body: [], range: [ 14, 16, ], type: "BlockStatement", }, param: null, range: [ 8, 16, ], type: "CatchClause", }, range: [ 1, 16, ], type: "TryStatement", } `; snapshot[`Plugin - TryStatement 2`] = ` { block: { body: [], range: [ 5, 7, ], type: "BlockStatement", }, finalizer: null, handler: { body: { body: [], range: [ 18, 20, ], type: "BlockStatement", }, param: { name: "e", optional: false, range: [ 15, 16, ], type: "Identifier", typeAnnotation: null, }, range: [ 8, 20, ], type: "CatchClause", }, range: [ 1, 20, ], type: "TryStatement", } `; snapshot[`Plugin - TryStatement 3`] = ` { block: { body: [], range: [ 5, 7, ], type: "BlockStatement", }, finalizer: { body: [], range: [ 16, 18, ], type: "BlockStatement", }, handler: null, range: [ 1, 18, ], type: "TryStatement", } `; snapshot[`Plugin - WhileStatement 1`] = ` { body: { body: [], range: [ 13, 15, ], type: "BlockStatement", }, range: [ 1, 15, ], test: { name: "foo", optional: false, range: [ 8, 11, ], type: "Identifier", typeAnnotation: null, }, type: "WhileStatement", } `; snapshot[`Plugin - WithStatement 1`] = ` { body: { body: [], range: [ 11, 13, ], type: "BlockStatement", }, object: { elements: [], range: [ 7, 9, ], type: "ArrayExpression", }, range: [ 1, 13, ], type: "WithStatement", } `; snapshot[`Plugin - ArrayExpression 1`] = ` { elements: [ { elements: [], range: [ 2, 4, ], type: "ArrayExpression", }, ], range: [ 1, 9, ], type: "ArrayExpression", } `; snapshot[`Plugin - ArrowFunctionExpression 1`] = ` { async: false, body: { body: [], range: [ 7, 9, ], type: "BlockStatement", }, generator: false, params: [], range: [ 1, 9, ], returnType: null, type: "ArrowFunctionExpression", typeParameters: null, } `; snapshot[`Plugin - ArrowFunctionExpression 2`] = ` { async: true, body: { body: [], range: [ 13, 15, ], type: "BlockStatement", }, generator: false, params: [], range: [ 1, 15, ], returnType: null, type: "ArrowFunctionExpression", typeParameters: null, } `; snapshot[`Plugin - ArrowFunctionExpression 3`] = ` { async: false, body: { body: [], range: [ 34, 36, ], type: "BlockStatement", }, generator: false, params: [ { name: "a", optional: false, range: [ 2, 11, ], type: "Identifier", typeAnnotation: { range: [ 3, 11, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 5, 11, ], type: "TSNumberKeyword", }, }, }, { argument: { name: "b", optional: false, range: [ 16, 17, ], type: "Identifier", typeAnnotation: null, }, range: [ 13, 24, ], type: "RestElement", typeAnnotation: { range: [ 17, 24, ], type: "TSTypeAnnotation", typeAnnotation: { elementType: { range: [ 19, 22, ], type: "TSAnyKeyword", }, range: [ 19, 24, ], type: "TSArrayType", }, }, }, ], range: [ 1, 36, ], returnType: { range: [ 25, 30, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 27, 30, ], type: "TSAnyKeyword", }, }, type: "ArrowFunctionExpression", typeParameters: null, } `; snapshot[`Plugin - AssignmentExpression 1`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "=", range: [ 1, 6, ], right: { name: "b", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, type: "AssignmentExpression", } `; snapshot[`Plugin - AssignmentExpression 2`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "=", range: [ 1, 12, ], right: { left: { name: "a", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, operator: "??=", range: [ 5, 12, ], right: { name: "b", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, type: "AssignmentExpression", }, type: "AssignmentExpression", } `; snapshot[`Plugin - AwaitExpression 1`] = ` { argument: { name: "foo", optional: false, range: [ 7, 10, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 10, ], type: "AwaitExpression", } `; snapshot[`Plugin - BinaryExpression 1`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: ">", range: [ 1, 6, ], right: { name: "b", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 2`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: ">=", range: [ 1, 7, ], right: { name: "b", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 3`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "<", range: [ 1, 6, ], right: { name: "b", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 4`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "<=", range: [ 1, 7, ], right: { name: "b", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 5`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "==", range: [ 1, 7, ], right: { name: "b", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 6`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "===", range: [ 1, 8, ], right: { name: "b", optional: false, range: [ 7, 8, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 7`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "!=", range: [ 1, 7, ], right: { name: "b", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 8`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "!=", range: [ 1, 8, ], right: { name: "b", optional: false, range: [ 7, 8, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 9`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "<<", range: [ 1, 7, ], right: { name: "b", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 10`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: ">>", range: [ 1, 7, ], right: { name: "b", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 11`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: ">>>", range: [ 1, 8, ], right: { name: "b", optional: false, range: [ 7, 8, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 12`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "+", range: [ 1, 6, ], right: { name: "b", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 13`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "-", range: [ 1, 6, ], right: { name: "b", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 14`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "*", range: [ 1, 6, ], right: { name: "b", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 15`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "/", range: [ 1, 6, ], right: { name: "b", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 16`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "%", range: [ 1, 6, ], right: { name: "b", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 17`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "|", range: [ 1, 6, ], right: { name: "b", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 18`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "^", range: [ 1, 6, ], right: { name: "b", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 19`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "&", range: [ 1, 6, ], right: { name: "b", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 20`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "in", range: [ 1, 7, ], right: { name: "b", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - BinaryExpression 21`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "**", range: [ 1, 7, ], right: { name: "b", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", } `; snapshot[`Plugin - CallExpression 1`] = ` { arguments: [], callee: { name: "foo", optional: false, range: [ 1, 4, ], type: "Identifier", typeAnnotation: null, }, optional: false, range: [ 1, 6, ], type: "CallExpression", typeArguments: null, } `; snapshot[`Plugin - CallExpression 2`] = ` { arguments: [ { name: "a", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, { argument: { name: "b", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 8, 11, ], type: "SpreadElement", }, ], callee: { name: "foo", optional: false, range: [ 1, 4, ], type: "Identifier", typeAnnotation: null, }, optional: false, range: [ 1, 13, ], type: "CallExpression", typeArguments: null, } `; snapshot[`Plugin - CallExpression 3`] = ` { arguments: [], callee: { name: "foo", optional: false, range: [ 1, 4, ], type: "Identifier", typeAnnotation: null, }, optional: true, range: [ 1, 8, ], type: "CallExpression", typeArguments: null, } `; snapshot[`Plugin - CallExpression 4`] = ` { arguments: [], callee: { name: "foo", optional: false, range: [ 1, 4, ], type: "Identifier", typeAnnotation: null, }, optional: false, range: [ 1, 9, ], type: "CallExpression", typeArguments: { params: [ { range: [ 5, 6, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, }, ], range: [ 4, 7, ], type: "TSTypeParameterInstantiation", }, } `; snapshot[`Plugin - ChainExpression 1`] = ` { expression: { computed: false, object: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, optional: true, property: { name: "b", optional: false, range: [ 4, 5, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 5, ], type: "MemberExpression", }, range: [ 1, 5, ], type: "ChainExpression", } `; snapshot[`Plugin - ClassExpression 1`] = ` { abstract: false, body: { body: [], range: [ 5, 13, ], type: "ClassBody", }, declare: false, id: null, implements: [], range: [ 5, 13, ], superClass: null, type: "ClassExpression", } `; snapshot[`Plugin - ClassExpression 2`] = ` { abstract: false, body: { body: [], range: [ 5, 17, ], type: "ClassBody", }, declare: false, id: { name: "Foo", optional: false, range: [ 11, 14, ], type: "Identifier", typeAnnotation: null, }, implements: [], range: [ 5, 17, ], superClass: null, type: "ClassExpression", } `; snapshot[`Plugin - ClassExpression 3`] = ` { abstract: false, body: { body: [], range: [ 5, 29, ], type: "ClassBody", }, declare: false, id: { name: "Foo", optional: false, range: [ 11, 14, ], type: "Identifier", typeAnnotation: null, }, implements: [], range: [ 5, 29, ], superClass: { name: "Bar", optional: false, range: [ 23, 26, ], type: "Identifier", typeAnnotation: null, }, type: "ClassExpression", } `; snapshot[`Plugin - ClassExpression 4`] = ` { abstract: false, body: { body: [], range: [ 5, 50, ], type: "ClassBody", }, declare: false, id: { name: "Foo", optional: false, range: [ 11, 14, ], type: "Identifier", typeAnnotation: null, }, implements: [ { expression: { name: "Baz", optional: false, range: [ 38, 41, ], type: "Identifier", typeAnnotation: null, }, range: [ 38, 41, ], type: "TSClassImplements", typeArguments: null, }, { expression: { name: "Baz2", optional: false, range: [ 43, 47, ], type: "Identifier", typeAnnotation: null, }, range: [ 43, 47, ], type: "TSClassImplements", typeArguments: null, }, ], range: [ 5, 50, ], superClass: { name: "Bar", optional: false, range: [ 23, 26, ], type: "Identifier", typeAnnotation: null, }, type: "ClassExpression", } `; snapshot[`Plugin - ClassExpression 5`] = ` { abstract: false, body: { body: [], range: [ 5, 20, ], type: "ClassBody", }, declare: false, id: { name: "Foo", optional: false, range: [ 11, 14, ], type: "Identifier", typeAnnotation: null, }, implements: [], range: [ 5, 20, ], superClass: null, type: "ClassExpression", } `; snapshot[`Plugin - ClassExpression 6`] = ` { abstract: false, body: { body: [ { accessibility: undefined, computed: false, declare: false, key: { name: "foo", optional: false, range: [ 13, 16, ], type: "Identifier", typeAnnotation: null, }, kind: "method", optional: false, override: false, range: [ 13, 21, ], static: false, type: "MethodDefinition", value: { async: false, body: { body: [], range: [ 19, 21, ], type: "BlockStatement", }, generator: false, id: null, params: [], range: [ 13, 21, ], returnType: null, type: "FunctionExpression", typeParameters: null, }, }, ], range: [ 5, 23, ], type: "ClassBody", }, declare: false, id: null, implements: [], range: [ 5, 23, ], superClass: null, type: "ClassExpression", } `; snapshot[`Plugin - ClassExpression 7`] = ` { abstract: false, body: { body: [ { accessibility: undefined, computed: false, declare: false, key: { name: "foo", range: [ 13, 17, ], type: "PrivateIdentifier", }, kind: "method", optional: false, override: false, range: [ 13, 22, ], static: false, type: "MethodDefinition", value: { async: false, body: { body: [], range: [ 20, 22, ], type: "BlockStatement", }, generator: false, id: null, params: [], range: [ 13, 22, ], returnType: null, type: "FunctionExpression", typeParameters: null, }, }, ], range: [ 5, 24, ], type: "ClassBody", }, declare: false, id: null, implements: [], range: [ 5, 24, ], superClass: null, type: "ClassExpression", } `; snapshot[`Plugin - ClassExpression 8`] = ` { abstract: false, body: { body: [ { accessibility: undefined, computed: false, declare: false, decorators: [], key: { name: "foo", optional: false, range: [ 13, 16, ], type: "Identifier", typeAnnotation: null, }, optional: false, override: false, range: [ 13, 24, ], readonly: false, static: false, type: "PropertyDefinition", value: null, }, ], range: [ 5, 26, ], type: "ClassBody", }, declare: false, id: null, implements: [], range: [ 5, 26, ], superClass: null, type: "ClassExpression", } `; snapshot[`Plugin - ClassExpression 9`] = ` { abstract: false, body: { body: [ { accessibility: undefined, computed: false, declare: false, decorators: [], key: { name: "foo", optional: false, range: [ 13, 16, ], type: "Identifier", typeAnnotation: null, }, optional: false, override: false, range: [ 13, 22, ], readonly: false, static: false, type: "PropertyDefinition", value: { name: "bar", optional: false, range: [ 19, 22, ], type: "Identifier", typeAnnotation: null, }, }, ], range: [ 5, 24, ], type: "ClassBody", }, declare: false, id: null, implements: [], range: [ 5, 24, ], superClass: null, type: "ClassExpression", } `; snapshot[`Plugin - ClassExpression 10`] = ` { abstract: false, body: { body: [ { accessibility: undefined, computed: false, declare: false, key: { name: "constructor", optional: false, range: [ 13, 24, ], type: "Identifier", typeAnnotation: null, }, kind: "constructor", optional: false, override: false, range: [ 13, 47, ], static: false, type: "MethodDefinition", value: { async: false, body: { body: [], range: [ 45, 47, ], type: "BlockStatement", }, generator: false, id: null, params: [ { accessibility: undefined, decorators: [], override: false, parameter: { name: "foo", optional: false, range: [ 32, 35, ], type: "Identifier", typeAnnotation: { range: [ 35, 43, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 37, 43, ], type: "TSStringKeyword", }, }, }, range: [ 25, 43, ], readonly: false, static: false, type: "TSParameterProperty", }, ], range: [ 13, 47, ], returnType: null, type: "FunctionExpression", typeParameters: null, }, }, ], range: [ 5, 49, ], type: "ClassBody", }, declare: false, id: null, implements: [], range: [ 5, 49, ], superClass: null, type: "ClassExpression", } `; snapshot[`Plugin - ClassExpression 11`] = ` { abstract: false, body: { body: [ { accessibility: undefined, computed: false, declare: false, decorators: [], key: { name: "foo", range: [ 13, 17, ], type: "PrivateIdentifier", }, optional: false, override: false, range: [ 13, 31, ], readonly: false, static: false, type: "PropertyDefinition", value: { name: "bar", optional: false, range: [ 28, 31, ], type: "Identifier", typeAnnotation: null, }, }, ], range: [ 5, 33, ], type: "ClassBody", }, declare: false, id: null, implements: [], range: [ 5, 33, ], superClass: null, type: "ClassExpression", } `; snapshot[`Plugin - ClassExpression 12`] = ` { abstract: false, body: { body: [ { accessibility: undefined, computed: false, declare: false, decorators: [], key: { name: "foo", optional: false, range: [ 20, 23, ], type: "Identifier", typeAnnotation: null, }, optional: false, override: false, range: [ 13, 29, ], readonly: false, static: true, type: "PropertyDefinition", value: { name: "bar", optional: false, range: [ 26, 29, ], type: "Identifier", typeAnnotation: null, }, }, ], range: [ 5, 31, ], type: "ClassBody", }, declare: false, id: null, implements: [], range: [ 5, 31, ], superClass: null, type: "ClassExpression", } `; snapshot[`Plugin - ClassExpression 13`] = ` { abstract: false, body: { body: [ { accessibility: undefined, computed: false, declare: false, decorators: [], key: { name: "foo", optional: false, range: [ 20, 23, ], type: "Identifier", typeAnnotation: null, }, optional: false, override: false, range: [ 13, 24, ], readonly: false, static: true, type: "PropertyDefinition", value: null, }, { body: { body: [ { expression: { left: { name: "foo", optional: false, range: [ 34, 37, ], type: "Identifier", typeAnnotation: null, }, operator: "=", range: [ 34, 43, ], right: { name: "bar", optional: false, range: [ 40, 43, ], type: "Identifier", typeAnnotation: null, }, type: "AssignmentExpression", }, range: [ 34, 43, ], type: "ExpressionStatement", }, ], range: [ 32, 45, ], type: "BlockStatement", }, range: [ 25, 45, ], type: "StaticBlock", }, ], range: [ 5, 47, ], type: "ClassBody", }, declare: false, id: null, implements: [], range: [ 5, 47, ], superClass: null, type: "ClassExpression", } `; snapshot[`Plugin - ConditionalExpression 1`] = ` { alternate: { name: "c", optional: false, range: [ 9, 10, ], type: "Identifier", typeAnnotation: null, }, consequent: { name: "b", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 10, ], test: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, type: "ConditionalExpression", } `; snapshot[`Plugin - FunctionExpression 1`] = ` { async: false, body: { body: [], range: [ 17, 19, ], type: "BlockStatement", }, generator: false, id: null, params: [], range: [ 5, 19, ], returnType: null, type: "FunctionExpression", typeParameters: null, } `; snapshot[`Plugin - FunctionExpression 2`] = ` { async: false, body: { body: [], range: [ 20, 22, ], type: "BlockStatement", }, generator: false, id: { name: "foo", optional: false, range: [ 14, 17, ], type: "Identifier", typeAnnotation: null, }, params: [], range: [ 5, 22, ], returnType: null, type: "FunctionExpression", typeParameters: null, } `; snapshot[`Plugin - FunctionExpression 3`] = ` { async: false, body: { body: [], range: [ 45, 47, ], type: "BlockStatement", }, generator: false, id: null, params: [ { name: "a", optional: true, range: [ 15, 16, ], type: "Identifier", typeAnnotation: { range: [ 17, 25, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 19, 25, ], type: "TSNumberKeyword", }, }, }, { argument: { name: "b", optional: false, range: [ 30, 31, ], type: "Identifier", typeAnnotation: null, }, range: [ 27, 38, ], type: "RestElement", typeAnnotation: { range: [ 31, 38, ], type: "TSTypeAnnotation", typeAnnotation: { elementType: { range: [ 33, 36, ], type: "TSAnyKeyword", }, range: [ 33, 38, ], type: "TSArrayType", }, }, }, ], range: [ 5, 47, ], returnType: { range: [ 39, 44, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 41, 44, ], type: "TSAnyKeyword", }, }, type: "FunctionExpression", typeParameters: null, } `; snapshot[`Plugin - FunctionExpression 4`] = ` { async: true, body: { body: [], range: [ 24, 26, ], type: "BlockStatement", }, generator: true, id: null, params: [], range: [ 5, 26, ], returnType: null, type: "FunctionExpression", typeParameters: null, } `; snapshot[`Plugin - Identifier 1`] = ` { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, } `; snapshot[`Plugin - ImportExpression 1`] = ` { options: { properties: [ { computed: false, key: { name: "with", optional: false, range: [ 17, 21, ], type: "Identifier", typeAnnotation: null, }, kind: "init", method: false, range: [ 17, 39, ], shorthand: false, type: "Property", value: { properties: [ { computed: false, key: { name: "type", optional: false, range: [ 25, 29, ], type: "Identifier", typeAnnotation: null, }, kind: "init", method: false, range: [ 25, 37, ], shorthand: false, type: "Property", value: { range: [ 31, 37, ], raw: "'json'", type: "Literal", value: "json", }, }, ], range: [ 23, 39, ], type: "ObjectExpression", }, }, ], range: [ 15, 41, ], type: "ObjectExpression", }, range: [ 1, 42, ], source: { range: [ 8, 13, ], raw: "'foo'", type: "Literal", value: "foo", }, type: "ImportExpression", } `; snapshot[`Plugin - LogicalExpression 1`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "&&", range: [ 1, 7, ], right: { name: "b", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, type: "LogicalExpression", } `; snapshot[`Plugin - LogicalExpression 2`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "||", range: [ 1, 7, ], right: { name: "b", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, type: "LogicalExpression", } `; snapshot[`Plugin - LogicalExpression 3`] = ` { left: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "??", range: [ 1, 7, ], right: { name: "b", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, type: "LogicalExpression", } `; snapshot[`Plugin - MemberExpression 1`] = ` { computed: false, object: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, optional: false, property: { name: "b", optional: false, range: [ 3, 4, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 4, ], type: "MemberExpression", } `; snapshot[`Plugin - MemberExpression 2`] = ` { computed: true, object: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, optional: false, property: { range: [ 3, 6, ], raw: "'b'", type: "Literal", value: "b", }, range: [ 1, 7, ], type: "MemberExpression", } `; snapshot[`Plugin - MetaProperty 1`] = ` { property: { name: "meta", optional: false, range: [ 1, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 12, ], type: "MetaProperty", } `; snapshot[`Plugin - NewExpression 1`] = ` { arguments: [], callee: { name: "Foo", optional: false, range: [ 5, 8, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 10, ], type: "NewExpression", typeArguments: null, } `; snapshot[`Plugin - NewExpression 2`] = ` { arguments: [ { name: "a", optional: false, range: [ 12, 13, ], type: "Identifier", typeAnnotation: null, }, { argument: { name: "b", optional: false, range: [ 18, 19, ], type: "Identifier", typeAnnotation: null, }, range: [ 15, 18, ], type: "SpreadElement", }, ], callee: { name: "Foo", optional: false, range: [ 5, 8, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 20, ], type: "NewExpression", typeArguments: { params: [ { range: [ 9, 10, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 9, 10, ], type: "Identifier", typeAnnotation: null, }, }, ], range: [ 8, 11, ], type: "TSTypeParameterInstantiation", }, } `; snapshot[`Plugin - ObjectExpression 1`] = ` { properties: [], range: [ 5, 7, ], type: "ObjectExpression", } `; snapshot[`Plugin - ObjectExpression 2`] = ` { properties: [ { computed: false, key: { name: "a", optional: false, range: [ 7, 8, ], type: "Identifier", typeAnnotation: null, }, kind: "init", method: false, range: [ 7, 8, ], shorthand: true, type: "Property", value: { name: "a", optional: false, range: [ 7, 8, ], type: "Identifier", typeAnnotation: null, }, }, ], range: [ 5, 10, ], type: "ObjectExpression", } `; snapshot[`Plugin - ObjectExpression 3`] = ` { properties: [ { computed: false, key: { name: "b", optional: false, range: [ 7, 8, ], type: "Identifier", typeAnnotation: null, }, kind: "init", method: false, range: [ 7, 11, ], shorthand: false, type: "Property", value: { name: "c", optional: false, range: [ 10, 11, ], type: "Identifier", typeAnnotation: null, }, }, { computed: true, key: { name: "c", optional: false, range: [ 14, 15, ], type: "Identifier", typeAnnotation: null, }, kind: "init", method: false, range: [ 13, 19, ], shorthand: false, type: "Property", value: { name: "d", optional: false, range: [ 18, 19, ], type: "Identifier", typeAnnotation: null, }, }, ], range: [ 5, 21, ], type: "ObjectExpression", } `; snapshot[`Plugin - PrivateIdentifier 1`] = ` { name: "foo", range: [ 13, 17, ], type: "PrivateIdentifier", } `; snapshot[`Plugin - SequenceExpression 1`] = ` { expressions: [ { name: "a", optional: false, range: [ 2, 3, ], type: "Identifier", typeAnnotation: null, }, { name: "b", optional: false, range: [ 5, 6, ], type: "Identifier", typeAnnotation: null, }, ], range: [ 2, 6, ], type: "SequenceExpression", } `; snapshot[`Plugin - Super 1`] = ` { range: [ 41, 46, ], type: "Super", } `; snapshot[`Plugin - TaggedTemplateExpression 1`] = ` { quasi: { expressions: [ { name: "bar", optional: false, range: [ 11, 14, ], type: "Identifier", typeAnnotation: null, }, ], quasis: [ { cooked: "foo ", range: [ 5, 9, ], raw: "foo ", tail: false, type: "TemplateElement", }, { cooked: " baz", range: [ 15, 19, ], raw: " baz", tail: true, type: "TemplateElement", }, ], range: [ 4, 20, ], type: "TemplateLiteral", }, range: [ 1, 20, ], tag: { name: "foo", optional: false, range: [ 1, 4, ], type: "Identifier", typeAnnotation: null, }, type: "TaggedTemplateExpression", typeArguments: null, } `; snapshot[`Plugin - TemplateLiteral 1`] = ` { expressions: [ { name: "bar", optional: false, range: [ 8, 11, ], type: "Identifier", typeAnnotation: null, }, ], quasis: [ { cooked: "foo ", range: [ 2, 6, ], raw: "foo ", tail: false, type: "TemplateElement", }, { cooked: " baz", range: [ 12, 16, ], raw: " baz", tail: true, type: "TemplateElement", }, ], range: [ 1, 17, ], type: "TemplateLiteral", } `; snapshot[`Plugin - ThisExpression 1`] = ` { range: [ 1, 5, ], type: "ThisExpression", } `; snapshot[`Plugin - TSAsExpression 1`] = ` { expression: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 7, ], type: "TSAsExpression", typeAnnotation: { range: [ 6, 7, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "b", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, }, } `; snapshot[`Plugin - TSAsExpression 2`] = ` { expression: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 11, ], type: "TSAsExpression", typeAnnotation: { range: [ 1, 11, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "const", optional: false, range: [ 1, 11, ], type: "Identifier", typeAnnotation: null, }, }, } `; snapshot[`Plugin - TSNonNullExpression 1`] = ` { expression: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 3, ], type: "TSNonNullExpression", } `; snapshot[`Plugin - TSSatisfiesExpression 1`] = ` { expression: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 14, ], type: "TSSatisfiesExpression", typeAnnotation: { range: [ 13, 14, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "b", optional: false, range: [ 13, 14, ], type: "Identifier", typeAnnotation: null, }, }, } `; snapshot[`Plugin - UnaryExpression 1`] = ` { argument: { name: "a", optional: false, range: [ 8, 9, ], type: "Identifier", typeAnnotation: null, }, operator: "typeof", range: [ 1, 9, ], type: "UnaryExpression", } `; snapshot[`Plugin - UnaryExpression 2`] = ` { argument: { range: [ 6, 7, ], raw: "0", type: "Literal", value: 0, }, operator: "void", range: [ 1, 7, ], type: "UnaryExpression", } `; snapshot[`Plugin - UnaryExpression 3`] = ` { argument: { name: "a", optional: false, range: [ 2, 3, ], type: "Identifier", typeAnnotation: null, }, operator: "-", range: [ 1, 3, ], type: "UnaryExpression", } `; snapshot[`Plugin - UnaryExpression 4`] = ` { argument: { name: "a", optional: false, range: [ 2, 3, ], type: "Identifier", typeAnnotation: null, }, operator: "+", range: [ 1, 3, ], type: "UnaryExpression", } `; snapshot[`Plugin - UpdateExpression 1`] = ` { argument: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "++", prefix: false, range: [ 1, 4, ], type: "UpdateExpression", } `; snapshot[`Plugin - UpdateExpression 2`] = ` { argument: { name: "a", optional: false, range: [ 3, 4, ], type: "Identifier", typeAnnotation: null, }, operator: "++", prefix: true, range: [ 1, 4, ], type: "UpdateExpression", } `; snapshot[`Plugin - UpdateExpression 3`] = ` { argument: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, operator: "--", prefix: false, range: [ 1, 4, ], type: "UpdateExpression", } `; snapshot[`Plugin - UpdateExpression 4`] = ` { argument: { name: "a", optional: false, range: [ 3, 4, ], type: "Identifier", typeAnnotation: null, }, operator: "--", prefix: true, range: [ 1, 4, ], type: "UpdateExpression", } `; snapshot[`Plugin - YieldExpression 1`] = ` { argument: { name: "bar", optional: false, range: [ 25, 28, ], type: "Identifier", typeAnnotation: null, }, delegate: false, range: [ 19, 28, ], type: "YieldExpression", } `; snapshot[`Plugin - Literal 1`] = ` { range: [ 1, 2, ], raw: "1", type: "Literal", value: 1, } `; snapshot[`Plugin - Literal 2`] = ` { range: [ 1, 6, ], raw: "'foo'", type: "Literal", value: "foo", } `; snapshot[`Plugin - Literal 3`] = ` { range: [ 1, 6, ], raw: '"foo"', type: "Literal", value: "foo", } `; snapshot[`Plugin - Literal 4`] = ` { range: [ 1, 5, ], raw: "true", type: "Literal", value: true, } `; snapshot[`Plugin - Literal 5`] = ` { range: [ 1, 6, ], raw: "false", type: "Literal", value: false, } `; snapshot[`Plugin - Literal 6`] = ` { range: [ 1, 5, ], raw: "null", type: "Literal", value: null, } `; snapshot[`Plugin - Literal 7`] = ` { bigint: "1", range: [ 1, 3, ], raw: "1n", type: "Literal", value: 1n, } `; snapshot[`Plugin - Literal 8`] = ` { range: [ 1, 7, ], raw: "/foo/g", regex: { flags: "g", pattern: "foo", }, type: "Literal", value: /foo/g, } `; snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 1`] = ` { children: [], closingElement: null, openingElement: { attributes: [], name: { name: "div", range: [ 2, 5, ], type: "JSXIdentifier", }, range: [ 1, 8, ], selfClosing: true, type: "JSXOpeningElement", typeArguments: null, }, range: [ 1, 8, ], type: "JSXElement", } `; snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 2`] = ` { children: [], closingElement: { name: { name: "div", range: [ 8, 11, ], type: "JSXIdentifier", }, range: [ 6, 12, ], type: "JSXClosingElement", }, openingElement: { attributes: [], name: { name: "div", range: [ 2, 5, ], type: "JSXIdentifier", }, range: [ 1, 6, ], selfClosing: false, type: "JSXOpeningElement", typeArguments: null, }, range: [ 1, 12, ], type: "JSXElement", } `; snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 3`] = ` { children: [], closingElement: { name: { name: "div", range: [ 10, 13, ], type: "JSXIdentifier", }, range: [ 8, 14, ], type: "JSXClosingElement", }, openingElement: { attributes: [ { name: { name: "a", range: [ 6, 7, ], type: "JSXIdentifier", }, range: [ 6, 7, ], type: "JSXAttribute", value: null, }, ], name: { name: "div", range: [ 2, 5, ], type: "JSXIdentifier", }, range: [ 1, 8, ], selfClosing: false, type: "JSXOpeningElement", typeArguments: null, }, range: [ 1, 14, ], type: "JSXElement", } `; snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 4`] = ` { children: [], closingElement: null, openingElement: { attributes: [ { name: { name: "a", range: [ 6, 7, ], type: "JSXIdentifier", }, range: [ 6, 11, ], type: "JSXAttribute", value: { range: [ 8, 11, ], raw: '"b"', type: "Literal", value: "b", }, }, ], name: { name: "div", range: [ 2, 5, ], type: "JSXIdentifier", }, range: [ 1, 14, ], selfClosing: true, type: "JSXOpeningElement", typeArguments: null, }, range: [ 1, 14, ], type: "JSXElement", } `; snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 5`] = ` { children: [], closingElement: null, openingElement: { attributes: [ { name: { name: "a", range: [ 6, 7, ], type: "JSXIdentifier", }, range: [ 6, 11, ], type: "JSXAttribute", value: { expression: { range: [ 9, 10, ], raw: "2", type: "Literal", value: 2, }, range: [ 8, 11, ], type: "JSXExpressionContainer", }, }, ], name: { name: "div", range: [ 2, 5, ], type: "JSXIdentifier", }, range: [ 1, 14, ], selfClosing: true, type: "JSXOpeningElement", typeArguments: null, }, range: [ 1, 14, ], type: "JSXElement", } `; snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 6`] = ` { children: [ { range: [ 6, 9, ], raw: "foo", type: "JSXText", value: "foo", }, { expression: { range: [ 10, 11, ], raw: "2", type: "Literal", value: 2, }, range: [ 9, 12, ], type: "JSXExpressionContainer", }, ], closingElement: { name: { name: "div", range: [ 14, 17, ], type: "JSXIdentifier", }, range: [ 12, 18, ], type: "JSXClosingElement", }, openingElement: { attributes: [], name: { name: "div", range: [ 2, 5, ], type: "JSXIdentifier", }, range: [ 1, 6, ], selfClosing: false, type: "JSXOpeningElement", typeArguments: null, }, range: [ 1, 18, ], type: "JSXElement", } `; snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 7`] = ` { children: [], closingElement: null, openingElement: { attributes: [], name: { object: { name: "a", range: [ 2, 3, ], type: "JSXIdentifier", }, property: { name: "b", range: [ 4, 5, ], type: "JSXIdentifier", }, range: [ 2, 5, ], type: "JSXMemberExpression", }, range: [ 1, 8, ], selfClosing: true, type: "JSXOpeningElement", typeArguments: null, }, range: [ 1, 8, ], type: "JSXElement", } `; snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 8`] = ` { children: [], closingElement: null, openingElement: { attributes: [ { name: { name: { name: "b", range: [ 8, 9, ], type: "JSXIdentifier", }, namespace: { name: "a", range: [ 6, 7, ], type: "JSXIdentifier", }, range: [ 6, 9, ], type: "JSXNamespacedName", }, range: [ 6, 13, ], type: "JSXAttribute", value: { expression: { range: [ 11, 12, ], raw: "2", type: "Literal", value: 2, }, range: [ 10, 13, ], type: "JSXExpressionContainer", }, }, ], name: { name: "div", range: [ 2, 5, ], type: "JSXIdentifier", }, range: [ 1, 16, ], selfClosing: true, type: "JSXOpeningElement", typeArguments: null, }, range: [ 1, 16, ], type: "JSXElement", } `; snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 9`] = ` { children: [], closingElement: null, openingElement: { attributes: [], name: { name: "Foo", range: [ 2, 5, ], type: "JSXIdentifier", }, range: [ 1, 8, ], selfClosing: true, type: "JSXOpeningElement", typeArguments: null, }, range: [ 1, 8, ], type: "JSXElement", } `; snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 10`] = ` { children: [], closingElement: null, openingElement: { attributes: [], name: { name: "Foo", range: [ 2, 5, ], type: "JSXIdentifier", }, range: [ 1, 11, ], selfClosing: true, type: "JSXOpeningElement", typeArguments: { params: [ { range: [ 6, 7, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, }, ], range: [ 5, 8, ], type: "TSTypeParameterInstantiation", }, }, range: [ 1, 11, ], type: "JSXElement", } `; snapshot[`Plugin - JSXFragment + JSXOpeningFragment + JSXClosingFragment 1`] = ` { children: [], closingFragment: { range: [ 3, 6, ], type: "JSXClosingFragment", }, openingFragment: { range: [ 1, 3, ], type: "JSXOpeningFragment", }, range: [ 1, 6, ], type: "JSXFragment", } `; snapshot[`Plugin - JSXFragment + JSXOpeningFragment + JSXClosingFragment 2`] = ` { children: [ { range: [ 3, 6, ], raw: "foo", type: "JSXText", value: "foo", }, { expression: { range: [ 7, 8, ], raw: "2", type: "Literal", value: 2, }, range: [ 6, 9, ], type: "JSXExpressionContainer", }, ], closingFragment: { range: [ 9, 12, ], type: "JSXClosingFragment", }, openingFragment: { range: [ 1, 3, ], type: "JSXOpeningFragment", }, range: [ 1, 12, ], type: "JSXFragment", } `; snapshot[`Plugin - TSAsExpression 3`] = ` { expression: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 9, ], type: "TSAsExpression", typeAnnotation: { range: [ 6, 9, ], type: "TSAnyKeyword", }, } `; snapshot[`Plugin - TSAsExpression 4`] = ` { expression: { range: [ 1, 6, ], raw: '"foo"', type: "Literal", value: "foo", }, range: [ 1, 15, ], type: "TSAsExpression", typeAnnotation: { range: [ 1, 15, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "const", optional: false, range: [ 1, 15, ], type: "Identifier", typeAnnotation: null, }, }, } `; snapshot[`Plugin - TSEnumDeclaration 1`] = ` { body: { members: [], range: [ 1, 12, ], type: "TSEnumBody", }, const: false, declare: false, id: { name: "Foo", optional: false, range: [ 6, 9, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 12, ], type: "TSEnumDeclaration", } `; snapshot[`Plugin - TSEnumDeclaration 2`] = ` { body: { members: [], range: [ 1, 18, ], type: "TSEnumBody", }, const: true, declare: false, id: { name: "Foo", optional: false, range: [ 12, 15, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 18, ], type: "TSEnumDeclaration", } `; snapshot[`Plugin - TSEnumDeclaration 3`] = ` { body: { members: [ { id: { name: "A", optional: false, range: [ 12, 13, ], type: "Identifier", typeAnnotation: null, }, initializer: null, range: [ 12, 13, ], type: "TSEnumMember", }, { id: { name: "B", optional: false, range: [ 15, 16, ], type: "Identifier", typeAnnotation: null, }, initializer: null, range: [ 15, 16, ], type: "TSEnumMember", }, ], range: [ 1, 18, ], type: "TSEnumBody", }, const: false, declare: false, id: { name: "Foo", optional: false, range: [ 6, 9, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 18, ], type: "TSEnumDeclaration", } `; snapshot[`Plugin - TSEnumDeclaration 4`] = ` { body: { members: [ { id: { range: [ 12, 17, ], raw: '"a-b"', type: "Literal", value: "a-b", }, initializer: null, range: [ 12, 17, ], type: "TSEnumMember", }, ], range: [ 1, 19, ], type: "TSEnumBody", }, const: false, declare: false, id: { name: "Foo", optional: false, range: [ 6, 9, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 19, ], type: "TSEnumDeclaration", } `; snapshot[`Plugin - TSEnumDeclaration 5`] = ` { body: { members: [ { id: { name: "A", optional: false, range: [ 12, 13, ], type: "Identifier", typeAnnotation: null, }, initializer: { range: [ 16, 17, ], raw: "1", type: "Literal", value: 1, }, range: [ 12, 17, ], type: "TSEnumMember", }, { id: { name: "B", optional: false, range: [ 19, 20, ], type: "Identifier", typeAnnotation: null, }, initializer: { range: [ 23, 24, ], raw: "2", type: "Literal", value: 2, }, range: [ 19, 24, ], type: "TSEnumMember", }, { id: { name: "C", optional: false, range: [ 26, 27, ], type: "Identifier", typeAnnotation: null, }, initializer: { left: { name: "A", optional: false, range: [ 30, 31, ], type: "Identifier", typeAnnotation: null, }, operator: "|", range: [ 30, 35, ], right: { name: "B", optional: false, range: [ 34, 35, ], type: "Identifier", typeAnnotation: null, }, type: "BinaryExpression", }, range: [ 26, 35, ], type: "TSEnumMember", }, ], range: [ 1, 37, ], type: "TSEnumBody", }, const: false, declare: false, id: { name: "Foo", optional: false, range: [ 6, 9, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 37, ], type: "TSEnumDeclaration", } `; snapshot[`Plugin - TSInterface 1`] = ` { body: { body: [], range: [ 13, 15, ], type: "TSInterfaceBody", }, declare: false, extends: null, id: { name: "A", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 15, ], type: "TSInterface", typeParameters: [], } `; snapshot[`Plugin - TSInterface 2`] = ` { body: { body: [], range: [ 16, 18, ], type: "TSInterfaceBody", }, declare: false, extends: { params: [ { const: false, constraint: null, default: null, in: false, name: { name: "T", optional: false, range: [ 13, 14, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 13, 14, ], type: "TSTypeParameter", }, ], range: [ 12, 15, ], type: "TSTypeParameterDeclaration", }, id: { name: "A", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 18, ], type: "TSInterface", typeParameters: [], } `; snapshot[`Plugin - TSInterface 3`] = ` { body: { body: [], range: [ 36, 38, ], type: "TSInterfaceBody", }, declare: false, extends: null, id: { name: "A", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 38, ], type: "TSInterface", typeParameters: [ { expression: { name: "Foo", optional: false, range: [ 21, 24, ], type: "Identifier", typeAnnotation: null, }, range: [ 21, 27, ], type: "TSInterfaceHeritage", typeArguments: { params: [ { range: [ 25, 26, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 25, 26, ], type: "Identifier", typeAnnotation: null, }, }, ], range: [ 24, 27, ], type: "TSTypeParameterInstantiation", }, }, { expression: { name: "Bar", optional: false, range: [ 29, 32, ], type: "Identifier", typeAnnotation: null, }, range: [ 29, 35, ], type: "TSInterfaceHeritage", typeArguments: { params: [ { range: [ 33, 34, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 33, 34, ], type: "Identifier", typeAnnotation: null, }, }, ], range: [ 32, 35, ], type: "TSTypeParameterInstantiation", }, }, ], } `; snapshot[`Plugin - TSInterface 4`] = ` { body: { body: [ { computed: false, key: { name: "foo", optional: false, range: [ 15, 18, ], type: "Identifier", typeAnnotation: null, }, optional: false, range: [ 15, 24, ], readonly: false, static: false, type: "TSPropertySignature", typeAnnotation: { range: [ 18, 23, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 20, 23, ], type: "TSAnyKeyword", }, }, }, { computed: false, key: { name: "bar", optional: false, range: [ 25, 28, ], type: "Identifier", typeAnnotation: null, }, optional: true, range: [ 25, 34, ], readonly: false, static: false, type: "TSPropertySignature", typeAnnotation: { range: [ 29, 34, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 31, 34, ], type: "TSAnyKeyword", }, }, }, ], range: [ 13, 36, ], type: "TSInterfaceBody", }, declare: false, extends: null, id: { name: "A", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 36, ], type: "TSInterface", typeParameters: [], } `; snapshot[`Plugin - TSInterface 5`] = ` { body: { body: [ { parameters: [ { name: "key", optional: false, range: [ 25, 36, ], type: "Identifier", typeAnnotation: { range: [ 28, 36, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 30, 36, ], type: "TSStringKeyword", }, }, }, ], range: [ 15, 42, ], readonly: true, type: "TSIndexSignature", typeAnnotation: { range: [ 37, 42, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 39, 42, ], type: "TSAnyKeyword", }, }, }, ], range: [ 13, 44, ], type: "TSInterfaceBody", }, declare: false, extends: null, id: { name: "A", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 44, ], type: "TSInterface", typeParameters: [], } `; snapshot[`Plugin - TSInterface 6`] = ` { body: { body: [ { computed: false, key: { name: "a", optional: false, range: [ 24, 25, ], type: "Identifier", typeAnnotation: null, }, optional: false, range: [ 15, 30, ], readonly: true, static: false, type: "TSPropertySignature", typeAnnotation: { range: [ 25, 30, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 27, 30, ], type: "TSAnyKeyword", }, }, }, ], range: [ 13, 32, ], type: "TSInterfaceBody", }, declare: false, extends: null, id: { name: "A", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 32, ], type: "TSInterface", typeParameters: [], } `; snapshot[`Plugin - TSInterface 7`] = ` { body: { body: [ { params: [ { name: "a", optional: false, range: [ 19, 20, ], type: "Identifier", typeAnnotation: { range: [ 20, 23, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 22, 23, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 22, 23, ], type: "Identifier", typeAnnotation: null, }, }, }, }, ], range: [ 15, 27, ], returnType: { range: [ 24, 27, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 26, 27, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 26, 27, ], type: "Identifier", typeAnnotation: null, }, }, }, type: "TSCallSignatureDeclaration", typeAnnotation: { params: [ { const: false, constraint: null, default: null, in: false, name: { name: "T", optional: false, range: [ 16, 17, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 16, 17, ], type: "TSTypeParameter", }, ], range: [ 15, 18, ], type: "TSTypeParameterDeclaration", }, }, ], range: [ 13, 29, ], type: "TSInterfaceBody", }, declare: false, extends: null, id: { name: "A", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 29, ], type: "TSInterface", typeParameters: [], } `; snapshot[`Plugin - TSInterface 8`] = ` { body: { body: [ { params: [ { name: "a", optional: false, range: [ 23, 24, ], type: "Identifier", typeAnnotation: { range: [ 24, 27, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 26, 27, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 26, 27, ], type: "Identifier", typeAnnotation: null, }, }, }, }, ], range: [ 15, 31, ], returnType: { range: [ 28, 31, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 30, 31, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 30, 31, ], type: "Identifier", typeAnnotation: null, }, }, }, type: "TSConstructSignatureDeclaration", typeParameters: { params: [ { const: false, constraint: null, default: null, in: false, name: { name: "T", optional: false, range: [ 20, 21, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 20, 21, ], type: "TSTypeParameter", }, ], range: [ 19, 22, ], type: "TSTypeParameterDeclaration", }, }, ], range: [ 13, 33, ], type: "TSInterfaceBody", }, declare: false, extends: null, id: { name: "A", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 33, ], type: "TSInterface", typeParameters: [], } `; snapshot[`Plugin - TSInterface 9`] = ` { body: { body: [ { computed: false, key: { name: "a", optional: false, range: [ 15, 16, ], type: "Identifier", typeAnnotation: null, }, optional: false, range: [ 15, 36, ], readonly: false, static: false, type: "TSPropertySignature", typeAnnotation: { range: [ 16, 36, ], type: "TSTypeAnnotation", typeAnnotation: { params: [ { name: "a", optional: false, range: [ 26, 27, ], type: "Identifier", typeAnnotation: { range: [ 27, 30, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 29, 30, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 29, 30, ], type: "Identifier", typeAnnotation: null, }, }, }, }, ], range: [ 18, 36, ], returnType: { range: [ 32, 36, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 35, 36, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 35, 36, ], type: "Identifier", typeAnnotation: null, }, }, }, type: "TSConstructSignatureDeclaration", typeParameters: { params: [ { const: false, constraint: null, default: null, in: false, name: { name: "T", optional: false, range: [ 23, 24, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 23, 24, ], type: "TSTypeParameter", }, ], range: [ 22, 25, ], type: "TSTypeParameterDeclaration", }, }, }, }, ], range: [ 13, 38, ], type: "TSInterfaceBody", }, declare: false, extends: null, id: { name: "A", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 38, ], type: "TSInterface", typeParameters: [], } `; snapshot[`Plugin - TSInterface 10`] = ` { body: { body: [ { computed: false, key: { name: "a", optional: false, range: [ 19, 20, ], type: "Identifier", typeAnnotation: null, }, kind: "getter", optional: false, range: [ 15, 30, ], readonly: false, returnType: { range: [ 22, 30, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 24, 30, ], type: "TSStringKeyword", }, }, static: false, type: "TSMethodSignature", }, ], range: [ 13, 32, ], type: "TSInterfaceBody", }, declare: false, extends: null, id: { name: "A", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 32, ], type: "TSInterface", typeParameters: [], } `; snapshot[`Plugin - TSInterface 11`] = ` { body: { body: [ { computed: false, key: { name: "a", optional: false, range: [ 19, 20, ], type: "Identifier", typeAnnotation: null, }, kind: "setter", optional: false, params: [ { name: "v", optional: false, range: [ 21, 22, ], type: "Identifier", typeAnnotation: { range: [ 22, 30, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 24, 30, ], type: "TSStringKeyword", }, }, }, ], range: [ 15, 31, ], readonly: false, static: false, type: "TSMethodSignature", }, ], range: [ 13, 33, ], type: "TSInterfaceBody", }, declare: false, extends: null, id: { name: "A", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 33, ], type: "TSInterface", typeParameters: [], } `; snapshot[`Plugin - TSInterface 12`] = ` { body: { body: [ { computed: false, key: { name: "a", optional: false, range: [ 15, 16, ], type: "Identifier", typeAnnotation: null, }, kind: "method", optional: false, params: [ { name: "arg", optional: true, range: [ 20, 23, ], type: "Identifier", typeAnnotation: { range: [ 24, 29, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 26, 29, ], type: "TSAnyKeyword", }, }, }, { argument: { name: "args", optional: false, range: [ 34, 38, ], type: "Identifier", typeAnnotation: null, }, range: [ 31, 45, ], type: "RestElement", typeAnnotation: { range: [ 38, 45, ], type: "TSTypeAnnotation", typeAnnotation: { elementType: { range: [ 40, 43, ], type: "TSAnyKeyword", }, range: [ 40, 45, ], type: "TSArrayType", }, }, }, ], range: [ 15, 51, ], readonly: false, returnType: { range: [ 46, 51, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 48, 51, ], type: "TSAnyKeyword", }, }, static: false, type: "TSMethodSignature", typeParameters: { params: [ { const: false, constraint: null, default: null, in: false, name: { name: "T", optional: false, range: [ 17, 18, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 17, 18, ], type: "TSTypeParameter", }, ], range: [ 16, 19, ], type: "TSTypeParameterDeclaration", }, }, ], range: [ 13, 53, ], type: "TSInterfaceBody", }, declare: false, extends: null, id: { name: "A", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 53, ], type: "TSInterface", typeParameters: [], } `; snapshot[`Plugin - TSSatisfiesExpression 2`] = ` { expression: { properties: [], range: [ 11, 13, ], type: "ObjectExpression", }, range: [ 11, 25, ], type: "TSSatisfiesExpression", typeAnnotation: { range: [ 24, 25, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "A", optional: false, range: [ 24, 25, ], type: "Identifier", typeAnnotation: null, }, }, } `; snapshot[`Plugin - TSTypeAliasDeclaration 1`] = ` { declare: false, id: { name: "A", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 13, ], type: "TSTypeAliasDeclaration", typeAnnotation: { range: [ 10, 13, ], type: "TSAnyKeyword", }, typeParameters: null, } `; snapshot[`Plugin - TSTypeAliasDeclaration 2`] = ` { declare: false, id: { name: "A", optional: false, range: [ 6, 7, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 16, ], type: "TSTypeAliasDeclaration", typeAnnotation: { range: [ 13, 16, ], type: "TSAnyKeyword", }, typeParameters: { params: [ { const: false, constraint: null, default: null, in: false, name: { name: "T", optional: false, range: [ 8, 9, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 8, 9, ], type: "TSTypeParameter", }, ], range: [ 7, 10, ], type: "TSTypeParameterDeclaration", }, } `; snapshot[`Plugin - TSTypeAliasDeclaration 3`] = ` { declare: true, id: { name: "A", optional: false, range: [ 14, 15, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 24, ], type: "TSTypeAliasDeclaration", typeAnnotation: { range: [ 21, 24, ], type: "TSAnyKeyword", }, typeParameters: { params: [ { const: false, constraint: null, default: null, in: false, name: { name: "T", optional: false, range: [ 16, 17, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 16, 17, ], type: "TSTypeParameter", }, ], range: [ 15, 18, ], type: "TSTypeParameterDeclaration", }, } `; snapshot[`Plugin - TSNonNullExpression 2`] = ` { expression: { name: "a", optional: false, range: [ 1, 2, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 3, ], type: "TSNonNullExpression", } `; snapshot[`Plugin - TSUnionType 1`] = ` { range: [ 10, 15, ], type: "TSUnionType", types: [ { range: [ 10, 11, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "B", optional: false, range: [ 10, 11, ], type: "Identifier", typeAnnotation: null, }, }, { range: [ 14, 15, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "C", optional: false, range: [ 14, 15, ], type: "Identifier", typeAnnotation: null, }, }, ], } `; snapshot[`Plugin - TSIntersectionType 1`] = ` { range: [ 10, 15, ], type: "TSIntersectionType", types: [ { range: [ 10, 11, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "B", optional: false, range: [ 10, 11, ], type: "Identifier", typeAnnotation: null, }, }, { range: [ 14, 15, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "C", optional: false, range: [ 14, 15, ], type: "Identifier", typeAnnotation: null, }, }, ], } `; snapshot[`Plugin - TSModuleDeclaration 1`] = ` { body: { body: [], range: [ 10, 12, ], type: "TSModuleBlock", }, declare: false, global: false, id: { name: "A", optional: false, range: [ 8, 9, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 12, ], type: "TSModuleDeclaration", } `; snapshot[`Plugin - TSModuleDeclaration 2`] = ` { body: { body: [ { declaration: { async: false, body: null, declare: false, generator: false, id: { name: "A", optional: false, range: [ 36, 37, ], type: "Identifier", typeAnnotation: null, }, params: [], range: [ 27, 45, ], returnType: { range: [ 39, 45, ], type: "TSTypeAnnotation", typeAnnotation: { range: [ 41, 45, ], type: "TSVoidKeyword", }, }, type: "FunctionDeclaration", typeParameters: null, }, range: [ 20, 45, ], type: "ExportNamedDeclaration", }, ], range: [ 18, 47, ], type: "TSModuleBlock", }, declare: true, global: false, id: { name: "A", optional: false, range: [ 16, 17, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 47, ], type: "TSModuleDeclaration", } `; snapshot[`Plugin - TSModuleDeclaration + TSModuleBlock 1`] = ` { body: { body: [], range: [ 10, 12, ], type: "TSModuleBlock", }, declare: false, global: false, id: { name: "A", optional: false, range: [ 8, 9, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 12, ], type: "TSModuleDeclaration", } `; snapshot[`Plugin - TSModuleDeclaration + TSModuleBlock 2`] = ` { body: { body: [ { body: { body: [], range: [ 27, 29, ], type: "TSModuleBlock", }, declare: false, global: false, id: { name: "B", optional: false, range: [ 25, 26, ], type: "Identifier", typeAnnotation: null, }, range: [ 15, 29, ], type: "TSModuleDeclaration", }, ], range: [ 13, 31, ], type: "TSModuleBlock", }, declare: false, global: false, id: { name: "A", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 1, 31, ], type: "TSModuleDeclaration", } `; snapshot[`Plugin - TSQualifiedName 1`] = ` { left: { name: "a", optional: false, range: [ 10, 11, ], type: "Identifier", typeAnnotation: null, }, range: [ 10, 13, ], right: { name: "b", optional: false, range: [ 12, 13, ], type: "Identifier", typeAnnotation: null, }, type: "TSQualifiedName", } `; snapshot[`Plugin - TSTypeLiteral 1`] = ` { members: [ { computed: false, key: { name: "a", optional: false, range: [ 12, 13, ], type: "Identifier", typeAnnotation: null, }, optional: false, range: [ 12, 16, ], readonly: false, static: false, type: "TSPropertySignature", typeAnnotation: { range: [ 13, 16, ], type: "TSTypeAnnotation", typeAnnotation: { literal: { range: [ 15, 16, ], raw: "1", type: "Literal", value: 1, }, range: [ 15, 16, ], type: "TSLiteralType", }, }, }, ], range: [ 10, 18, ], type: "TSTypeLiteral", } `; snapshot[`Plugin - TSOptionalType 1`] = ` { range: [ 11, 18, ], type: "TSOptionalType", typeAnnotation: { range: [ 11, 17, ], type: "TSNumberKeyword", }, } `; snapshot[`Plugin - TSRestType 1`] = ` { range: [ 11, 22, ], type: "TSRestType", typeAnnotation: { elementType: { range: [ 14, 20, ], type: "TSNumberKeyword", }, range: [ 14, 22, ], type: "TSArrayType", }, } `; snapshot[`Plugin - TSConditionalType 1`] = ` { checkType: { range: [ 10, 11, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "B", optional: false, range: [ 10, 11, ], type: "Identifier", typeAnnotation: null, }, }, extendsType: { range: [ 20, 21, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "C", optional: false, range: [ 20, 21, ], type: "Identifier", typeAnnotation: null, }, }, falseType: { range: [ 33, 39, ], type: "TSStringKeyword", }, range: [ 10, 39, ], trueType: { range: [ 24, 30, ], type: "TSNumberKeyword", }, type: "TSConditionalType", } `; snapshot[`Plugin - TSInferType 1`] = ` { range: [ 29, 39, ], type: "TSInferType", typeParameter: { const: false, constraint: null, default: null, in: false, name: { name: "Item", optional: false, range: [ 35, 39, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 35, 39, ], type: "TSTypeParameter", }, } `; snapshot[`Plugin - TSTypeOperator 1`] = ` { operator: "keyof", range: [ 10, 17, ], type: "TSTypeOperator", typeAnnotation: { range: [ 16, 17, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "B", optional: false, range: [ 16, 17, ], type: "Identifier", typeAnnotation: null, }, }, } `; snapshot[`Plugin - TSTypeOperator 2`] = ` { operator: "unique", range: [ 21, 34, ], type: "TSTypeOperator", typeAnnotation: { range: [ 28, 34, ], type: "TSSymbolKeyword", }, } `; snapshot[`Plugin - TSTypeOperator 3`] = ` { operator: "readonly", range: [ 10, 21, ], type: "TSTypeOperator", typeAnnotation: { elementTypes: [], range: [ 19, 21, ], type: "TSTupleType", }, } `; snapshot[`Plugin - TSMappedType 1`] = ` { nameType: null, optional: undefined, range: [ 13, 41, ], readonly: undefined, type: "TSMappedType", typeAnnotation: { range: [ 31, 38, ], type: "TSBooleanKeyword", }, typeParameter: { const: false, constraint: { operator: "keyof", range: [ 21, 28, ], type: "TSTypeOperator", typeAnnotation: { range: [ 27, 28, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 27, 28, ], type: "Identifier", typeAnnotation: null, }, }, }, default: null, in: false, name: { name: "P", optional: false, range: [ 16, 17, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 16, 28, ], type: "TSTypeParameter", }, } `; snapshot[`Plugin - TSMappedType 2`] = ` { nameType: null, optional: undefined, range: [ 13, 45, ], readonly: true, type: "TSMappedType", typeAnnotation: { elementTypes: [], range: [ 40, 42, ], type: "TSTupleType", }, typeParameter: { const: false, constraint: { operator: "keyof", range: [ 30, 37, ], type: "TSTypeOperator", typeAnnotation: { range: [ 36, 37, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 36, 37, ], type: "Identifier", typeAnnotation: null, }, }, }, default: null, in: false, name: { name: "P", optional: false, range: [ 25, 26, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 25, 37, ], type: "TSTypeParameter", }, } `; snapshot[`Plugin - TSMappedType 3`] = ` { nameType: null, optional: undefined, range: [ 13, 46, ], readonly: "-", type: "TSMappedType", typeAnnotation: { elementTypes: [], range: [ 41, 43, ], type: "TSTupleType", }, typeParameter: { const: false, constraint: { operator: "keyof", range: [ 31, 38, ], type: "TSTypeOperator", typeAnnotation: { range: [ 37, 38, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 37, 38, ], type: "Identifier", typeAnnotation: null, }, }, }, default: null, in: false, name: { name: "P", optional: false, range: [ 26, 27, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 26, 38, ], type: "TSTypeParameter", }, } `; snapshot[`Plugin - TSMappedType 4`] = ` { nameType: null, optional: undefined, range: [ 13, 46, ], readonly: "+", type: "TSMappedType", typeAnnotation: { elementTypes: [], range: [ 41, 43, ], type: "TSTupleType", }, typeParameter: { const: false, constraint: { operator: "keyof", range: [ 31, 38, ], type: "TSTypeOperator", typeAnnotation: { range: [ 37, 38, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 37, 38, ], type: "Identifier", typeAnnotation: null, }, }, }, default: null, in: false, name: { name: "P", optional: false, range: [ 26, 27, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 26, 38, ], type: "TSTypeParameter", }, } `; snapshot[`Plugin - TSMappedType 5`] = ` { nameType: null, optional: true, range: [ 13, 42, ], readonly: undefined, type: "TSMappedType", typeAnnotation: { range: [ 32, 39, ], type: "TSBooleanKeyword", }, typeParameter: { const: false, constraint: { operator: "keyof", range: [ 21, 28, ], type: "TSTypeOperator", typeAnnotation: { range: [ 27, 28, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 27, 28, ], type: "Identifier", typeAnnotation: null, }, }, }, default: null, in: false, name: { name: "P", optional: false, range: [ 16, 17, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 16, 28, ], type: "TSTypeParameter", }, } `; snapshot[`Plugin - TSMappedType 6`] = ` { nameType: null, optional: "-", range: [ 13, 43, ], readonly: undefined, type: "TSMappedType", typeAnnotation: { range: [ 33, 40, ], type: "TSBooleanKeyword", }, typeParameter: { const: false, constraint: { operator: "keyof", range: [ 21, 28, ], type: "TSTypeOperator", typeAnnotation: { range: [ 27, 28, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 27, 28, ], type: "Identifier", typeAnnotation: null, }, }, }, default: null, in: false, name: { name: "P", optional: false, range: [ 16, 17, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 16, 28, ], type: "TSTypeParameter", }, } `; snapshot[`Plugin - TSMappedType 7`] = ` { nameType: null, optional: "+", range: [ 13, 43, ], readonly: undefined, type: "TSMappedType", typeAnnotation: { range: [ 33, 40, ], type: "TSBooleanKeyword", }, typeParameter: { const: false, constraint: { operator: "keyof", range: [ 21, 28, ], type: "TSTypeOperator", typeAnnotation: { range: [ 27, 28, ], type: "TSTypeReference", typeArguments: null, typeName: { name: "T", optional: false, range: [ 27, 28, ], type: "Identifier", typeAnnotation: null, }, }, }, default: null, in: false, name: { name: "P", optional: false, range: [ 16, 17, ], type: "Identifier", typeAnnotation: null, }, out: false, range: [ 16, 28, ], type: "TSTypeParameter", }, } `; snapshot[`Plugin - TSLiteralType 1`] = ` { literal: { range: [ 10, 14, ], raw: "true", type: "Literal", value: true, }, range: [ 10, 14, ], type: "TSLiteralType", } `; snapshot[`Plugin - TSLiteralType 2`] = ` { literal: { range: [ 10, 15, ], raw: "false", type: "Literal", value: false, }, range: [ 10, 15, ], type: "TSLiteralType", } `; snapshot[`Plugin - TSLiteralType 3`] = ` { literal: { range: [ 10, 11, ], raw: "1", type: "Literal", value: 1, }, range: [ 10, 11, ], type: "TSLiteralType", } `; snapshot[`Plugin - TSLiteralType 4`] = ` { literal: { range: [ 10, 15, ], raw: '"foo"', type: "Literal", value: "foo", }, range: [ 10, 15, ], type: "TSLiteralType", } `; snapshot[`Plugin - TSTemplateLiteralType 1`] = ` { quasis: [ { cooked: "a ", range: [ 11, 13, ], raw: "a ", tail: false, type: "TemplateElement", }, { cooked: "", range: [ 22, 22, ], raw: "", tail: true, type: "TemplateElement", }, ], range: [ 10, 23, ], type: "TSTemplateLiteralType", types: [ { range: [ 15, 21, ], type: "TSStringKeyword", }, ], } `; snapshot[`Plugin - TSTupleType + TSArrayType 1`] = ` { elementTypes: [ { range: [ 11, 17, ], type: "TSNumberKeyword", }, ], range: [ 10, 18, ], type: "TSTupleType", } `; snapshot[`Plugin - TSTupleType + TSArrayType 2`] = ` { elementTypes: [ { elementType: { range: [ 14, 20, ], type: "TSNumberKeyword", }, label: { name: "x", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 11, 20, ], type: "TSNamedTupleMember", }, ], range: [ 10, 21, ], type: "TSTupleType", } `; snapshot[`Plugin - TSTupleType + TSArrayType 3`] = ` { elementTypes: [ { elementType: { range: [ 14, 20, ], type: "TSNumberKeyword", }, label: { name: "x", optional: false, range: [ 11, 12, ], type: "Identifier", typeAnnotation: null, }, range: [ 11, 20, ], type: "TSNamedTupleMember", }, ], range: [ 10, 21, ], type: "TSTupleType", } `; snapshot[`Plugin - TSTupleType + TSArrayType 4`] = ` { elementTypes: [ { elementType: { elementType: { range: [ 17, 23, ], type: "TSNumberKeyword", }, range: [ 17, 25, ], type: "TSArrayType", }, label: { argument: { name: "x", optional: false, range: [ 14, 15, ], type: "Identifier", typeAnnotation: null, }, range: [ 11, 16, ], type: "RestElement", typeAnnotation: null, }, range: [ 11, 25, ], type: "TSNamedTupleMember", }, ], range: [ 10, 26, ], type: "TSTupleType", } `; snapshot[`Plugin - TSArrayType 1`] = ` { elementType: { range: [ 10, 16, ], type: "TSNumberKeyword", }, range: [ 10, 18, ], type: "TSArrayType", } `; snapshot[`Plugin - TSTypeQuery 1`] = ` { exprName: { name: "B", optional: false, range: [ 17, 18, ], type: "Identifier", typeAnnotation: null, }, range: [ 10, 18, ], type: "TSTypeQuery", typeArguments: null, } `; snapshot[`Plugin - TS keywords 1`] = ` { range: [ 10, 13, ], type: "TSAnyKeyword", } `; snapshot[`Plugin - TS keywords 2`] = ` { range: [ 10, 16, ], type: "TSBigIntKeyword", } `; snapshot[`Plugin - TS keywords 3`] = ` { range: [ 10, 17, ], type: "TSBooleanKeyword", } `; snapshot[`Plugin - TS keywords 4`] = ` { range: [ 10, 19, ], type: "TSIntrinsicKeyword", } `; snapshot[`Plugin - TS keywords 5`] = ` { range: [ 10, 15, ], type: "TSNeverKeyword", } `; snapshot[`Plugin - TS keywords 6`] = ` { range: [ 10, 14, ], type: "TSNullKeyword", } `; snapshot[`Plugin - TS keywords 7`] = ` { range: [ 10, 16, ], type: "TSNumberKeyword", } `; snapshot[`Plugin - TS keywords 8`] = ` { range: [ 10, 16, ], type: "TSObjectKeyword", } `; snapshot[`Plugin - TS keywords 9`] = ` { range: [ 10, 16, ], type: "TSStringKeyword", } `; snapshot[`Plugin - TS keywords 10`] = ` { range: [ 10, 16, ], type: "TSSymbolKeyword", } `; snapshot[`Plugin - TS keywords 11`] = ` { range: [ 10, 19, ], type: "TSUndefinedKeyword", } `; snapshot[`Plugin - TS keywords 12`] = ` { range: [ 10, 17, ], type: "TSUnknownKeyword", } `; snapshot[`Plugin - TS keywords 13`] = ` { range: [ 10, 14, ], type: "TSVoidKeyword", } `;