├── .codecov.yml ├── .gitattributes ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ └── other.md └── workflows │ └── CI.yml ├── .gitignore ├── .gitmodules ├── .npmrc ├── .nycrc ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── docs ├── ast.md └── implementing-custom-template-tokenizers.md ├── eslint.config.mjs ├── package.json ├── rollup.config.js ├── scripts ├── ci-install-eslint.js ├── update-fixtures-ast.js └── update-fixtures-document-fragment.js ├── src ├── ast │ ├── errors.ts │ ├── index.ts │ ├── locations.ts │ ├── nodes.ts │ ├── tokens.ts │ └── traverse.ts ├── common │ ├── ast-utils.ts │ ├── debug.ts │ ├── error-utils.ts │ ├── eslint-scope.ts │ ├── espree.ts │ ├── fix-locations.ts │ ├── lines-and-columns.ts │ ├── location-calculator.ts │ ├── parser-object.ts │ ├── parser-options.ts │ └── token-utils.ts ├── external │ ├── README.md │ ├── node-event-generator.ts │ └── token-store │ │ ├── cursors │ │ ├── backward-token-comment-cursor.ts │ │ ├── backward-token-cursor.ts │ │ ├── cursor.ts │ │ ├── decorative-cursor.ts │ │ ├── filter-cursor.ts │ │ ├── forward-token-comment-cursor.ts │ │ ├── forward-token-cursor.ts │ │ ├── index.ts │ │ ├── limit-cursor.ts │ │ ├── padded-token-cursor.ts │ │ └── skip-cursor.ts │ │ ├── index.ts │ │ └── utils.ts ├── html │ ├── custom-tokenizer.ts │ ├── index.ts │ ├── intermediate-tokenizer.ts │ ├── parser.ts │ ├── tokenizer.ts │ └── util │ │ ├── alternative-cr.ts │ │ ├── attribute-names.ts │ │ ├── entities.ts │ │ ├── tag-names.ts │ │ └── unicode.ts ├── index.ts ├── parser-services.ts ├── script-setup │ ├── index.ts │ ├── parser-options.ts │ └── scope-analyzer.ts ├── script │ ├── generic.ts │ ├── index.ts │ └── scope-analyzer.ts ├── sfc │ └── custom-block │ │ └── index.ts ├── style │ ├── index.ts │ └── tokenizer.ts ├── template │ └── index.ts └── utils │ └── utils.ts ├── test ├── ast.js ├── crlf.js ├── define-custom-blocks-visitor.js ├── define-document-visitor.js ├── document-fragment.js ├── fixtures │ ├── .eslintrc.json │ ├── ast │ │ ├── address-component │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── attributes-linebreak │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── attributes │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── auto-closing-dt-dd │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── auto-closing-p │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── bogus-comments │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── cdata │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── comments-2 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── comments-3 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── comments │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── custom-template-tokenizer │ │ │ ├── ast.json │ │ │ ├── custom-tokenizer.js │ │ │ ├── parser-options.js │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── custom-thead │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── define-model01 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── define-model02-with-type │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── define-model03-with-name │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── define-model04-with-name-and-type │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── define-model05-with-modifiers │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── define-model06-with-ts │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── define-model07-with-ts │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── define-model08-with-ts-and-modifiers │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── define-options │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── define-slots01 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── define-slots02-without-ts │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── directive-argument-and-modifiers │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── directive-arguments │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── directive-empty-value │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── directive-error-1 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── directive-error-2 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── directive-error-3 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── directive-error-4 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── directive-modifiers │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── directive-shorthands │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── directives │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── dynamic-argument-dot │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── dynamic-argument-error-1 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── dynamic-argument-error-2 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── dynamic-argument-error-4 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── dynamic-argument-error-5 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── dynamic-argument-expr │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── dynamic-argument-v-bind │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── dynamic-argument-v-on │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── dynamic-argument-v-slot │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── elements │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── empty-script-only │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── empty-template-only │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── empty │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── end-of-line01 │ │ │ ├── ast.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── end-of-line02 │ │ │ ├── ast.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-absence-of-digits-in-numeric-character-reference │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-character-reference-outside-unicode-range │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-control-character-reference │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-duplicate-attribute │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-end-tag-with-attributes │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-end-tag-with-trailing-solidus │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-before-tag-name-2 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-before-tag-name │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-in-cdata │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-in-comment-2 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-in-comment-3 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-in-comment-4 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-in-comment-5 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-in-comment │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-in-tag-2 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-in-tag-3 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-in-tag-4 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-in-tag-5 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-in-tag-6 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-in-tag-7 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-eof-in-tag │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-invalid-first-character-of-tag-name │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-message-empty │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-message-outside │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-missing-end-tag-name │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-missing-semicolon-after-character-reference │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-missing-whitespace-between-attributes │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-noncharacter-character-reference │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-null-character-reference │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-surrogate-character-reference │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-unexpected-character-in-attribute-name │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-unexpected-character-in-unquoted-attribute-value │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-unexpected-equals-sign-before-attribute-name │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-unexpected-solidus-in-tag │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-unknown-named-character-reference │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-v-on-function-expression │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-x-invalid-end-tag │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── error-x-invalid-namespace │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── expression-container-only │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── filter-empty │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── filters-2 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── filters-3 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── filters-4 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── filters-error-2 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── filters-error │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── filters-opt-filter-off-babel │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── filters-opt-filter-off │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── filters-opt-filter-on │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── filters │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── foreignobject-lower │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── foreignobject │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── hole-in-array │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── html-entities-in-static-places │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── html-entities-lone-amp │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── html-entities-mapping │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── html-entities-numeric │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── html-entities-special-in-attributes │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── html-entities-surrogate-pair-and-expression │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── html-entities-with-line-terminators │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── html-entities │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── input-component │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── link-component │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── math │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-10 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-11 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-2 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-3 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-4 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-5 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-6 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-7 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-8 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-9 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-with-export01 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-with-export02 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-with-export03 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-with-export04 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-with-export05 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-with-ts-2 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-with-ts-3 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-with-ts-4 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-with-ts-5 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-with-ts-7 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-with-ts-export-decorator-1 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts-with-ts │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── multiple-scripts │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── mustache-errors-in-textarea │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── mustache-errors-opt-interpolation-as-non-html │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── mustache-errors │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── mustache-in-escape-opt-interpolation-as-non-html │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── mustache-in-lt-gt-opt-interpolation-as-non-html-false │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── mustache-in-lt-gt-opt-interpolation-as-non-html │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── mustache-in-lt-gt │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── mustache-not-closed-opt-interpolation-as-non-html-false │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── mustache-not-closed │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── mustache-with-space │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── mustache-without-open-in-textarea │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── mustache │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── no-filters │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── not-closing-elements │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── parser-option-multiple-parsers-1 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── services.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── parser-option-multiple-parsers-2 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── services.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── parser-option-multiple-parsers-3 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── services.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── parser-option-multiple-parsers-without-script │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── services.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── pug │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── raw-names │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── rawtext │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example01 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example02 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example03 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example04 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example05 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example06 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example07 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example08 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example09 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example10 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example11 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example12 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example13 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example14 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-example15 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-top-level-await-with-latest │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-top-level-await │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup-with-export │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── script-setup │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── self-closing-elements │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── slot-scope-default │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── slot-scope-destructuring │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── slot-scope-multi-parameters │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── slot-scope-rest-parameter │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── slot-scope │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── svg-attrs-camel-case │ │ │ ├── ast.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── svg-attrs-colon │ │ │ ├── ast.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── svg-namespace │ │ │ ├── ast.json │ │ │ ├── requirements.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── svg-upper │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── table │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── text-and-expression-container │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── text │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── textarea │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── ts-script-setup-with-use-global-var │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── scope.json │ │ │ ├── services.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── user-macro01 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── user-macro02-without-option │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-bind-prop-shorthand │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-bind-same-name-shorthand01-script-setup │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-bind-same-name-shorthand02-options │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-bind-same-name-shorthand03-with-v-for │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-bind-same-name-shorthand04-with-v-for │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-bind-same-name-shorthand05-kebab │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-bind-same-name-shorthand06-invalid │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-bind-same-name-shorthand07-camelcase │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── requirements.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-bind-sequence-expression │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-bind-spread-element │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-for-directives-error-with-es5 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-for-directives-error │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-for-directives-index │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-for-directives-with-destructuring │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-for-directives-with-es5-2 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-for-directives-with-es5 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-for-directives │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-on-arrow-function-expression.1 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-on-arrow-function-expression.2 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-on-async-arrow-function-expression │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-on-async-function-expression │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-on-function-expression │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-on-multiple-statements │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-on-object-expression │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-on-simple-path.1 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-on-simple-path.2 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-on-simple-path.3 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-on-simple-path.4 │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-pre │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-slot-default-shorthand │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-slot-default │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-slot-named-shorthand │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── v-slot-named │ │ │ ├── ast.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── vue3.3-generic-1 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── vue3.3-generic-2 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── vue3.3-generic-3 │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── scope.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── vue3.3-generic-4-with-spaces │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── vue3.3-generic-5-with-spaces │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── vue3.3-generic-6-with-default │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ └── vue3.3-generic-7-with-arrow │ │ │ ├── ast.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ ├── crlf.vue │ ├── document-fragment │ │ ├── custom-block-end-tag-in-attr │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── custom-block-escape-like │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── custom-block-html │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── custom-block │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── empty-custom-block │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── html-file │ │ │ ├── document-fragment.json │ │ │ ├── source.html │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── style-variables-edge-cases │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── style-variables-ignores01 │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── style-variables-ignores02 │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── style-variables-inline-comment-like │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── style-variables-with-comment01 │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── style-variables-with-complex-expression01 │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── style-variables-with-complex-expression02 │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── style-variables-with-error │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── style-variables-with-option-false │ │ │ ├── document-fragment.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── style-variables01 │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── style-variables02 │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── style-variables03 │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── style-variables04 │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── style-variables05 │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── template-tag-is-absent │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── template-tag-is-present │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── textarea-custom-block │ │ │ ├── document-fragment.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── textarea-in-html │ │ │ ├── document-fragment.json │ │ │ ├── source.html │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── vue3.3-generic-1 │ │ │ ├── document-fragment.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── vue3.3-generic-2 │ │ │ ├── document-fragment.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── vue3.3-generic-3 │ │ │ ├── document-fragment.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── vue3.3-generic-4-with-spaces │ │ │ ├── document-fragment.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── vue3.3-generic-5-with-spaces │ │ │ ├── document-fragment.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ ├── vue3.3-generic-6-with-default │ │ │ ├── document-fragment.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ │ └── vue3.3-generic-7-with-arrow │ │ │ ├── document-fragment.json │ │ │ ├── parser-options.json │ │ │ ├── source.vue │ │ │ ├── token-ranges.json │ │ │ └── tree.json │ ├── empty-script.vue │ ├── empty.vue │ ├── espree-v8 │ │ ├── .npmrc │ │ └── package.json │ ├── hello.vue │ ├── hello.vue.fixed │ ├── integrations │ │ ├── script-setup-with-typescript-eslint │ │ │ ├── .eslintrc.js │ │ │ ├── .npmrc │ │ │ ├── consistent-type-imports │ │ │ │ ├── .eslintrc.json │ │ │ │ ├── valid-type-import.vue │ │ │ │ └── valid.vue │ │ │ ├── no-obj-calls │ │ │ │ ├── .eslintrc.json │ │ │ │ └── valid.vue │ │ │ ├── no-undef │ │ │ │ ├── .eslintrc.json │ │ │ │ ├── invalid │ │ │ │ │ ├── generic.vue │ │ │ │ │ └── with-defaults.vue │ │ │ │ └── valid │ │ │ │ │ ├── generic-with-spaces.vue │ │ │ │ │ ├── generic.vue │ │ │ │ │ ├── generic2.vue │ │ │ │ │ └── with-defaults.vue │ │ │ ├── no-unused-vars │ │ │ │ ├── .eslintrc.json │ │ │ │ └── valid │ │ │ │ │ └── type-def.vue │ │ │ ├── output.json │ │ │ ├── package.json │ │ │ ├── ts-no-unsafe-assignment │ │ │ │ ├── .eslintrc.json │ │ │ │ ├── valid-generic1.vue │ │ │ │ ├── valid-generic2.vue │ │ │ │ └── valid-generic3.vue │ │ │ ├── ts-no-unused-vars │ │ │ │ ├── .eslintrc.json │ │ │ │ ├── invalid │ │ │ │ │ └── generic.vue │ │ │ │ └── valid │ │ │ │ │ └── generic.vue │ │ │ ├── tsconfig.test.json │ │ │ └── vue.d.ts │ │ └── script-setup │ │ │ ├── .eslintrc.json │ │ │ ├── .npmrc │ │ │ ├── no-undef │ │ │ ├── .eslintrc.json │ │ │ ├── invalid │ │ │ │ ├── define-expose.vue │ │ │ │ ├── define-options.vue │ │ │ │ ├── define-props-and-emits.vue │ │ │ │ ├── define-slots.vue │ │ │ │ └── user-macro.vue │ │ │ └── valid │ │ │ │ ├── define-expose.vue │ │ │ │ ├── define-options.vue │ │ │ │ ├── define-props-and-emits-with-import.vue │ │ │ │ ├── define-props-and-emits.vue │ │ │ │ ├── define-slots-wthout-ts.vue │ │ │ │ ├── define-slots.vue │ │ │ │ └── user-macro.vue │ │ │ ├── no-unused-vars │ │ │ ├── .eslintrc.json │ │ │ ├── invalid │ │ │ │ ├── component-names.vue │ │ │ │ ├── css-v-bind.vue │ │ │ │ ├── invalid-scope.vue │ │ │ │ ├── sample.vue │ │ │ │ ├── with-v-for.vue │ │ │ │ └── without-script-setup.vue │ │ │ └── valid │ │ │ │ ├── component-is.vue │ │ │ │ ├── component-names1.vue │ │ │ │ ├── component-names2.vue │ │ │ │ ├── css-v-bind.vue │ │ │ │ ├── directive.vue │ │ │ │ ├── kebab-case-component.vue │ │ │ │ ├── mustash.vue │ │ │ │ ├── ns-component.vue │ │ │ │ ├── ref.vue │ │ │ │ ├── sample.vue │ │ │ │ └── top-level-await.vue │ │ │ ├── output.json │ │ │ └── package.json │ ├── issue21.vue │ ├── location-issue-with-babel-eslint.vue │ ├── no-end-script-tag.vue │ ├── no-script.vue │ ├── notvue.js │ ├── notvue.js.fixed │ ├── svg-attrs-camel-case.vue │ ├── svg-attrs-colon.vue │ ├── ts-scope-manager.vue │ ├── typed.js │ ├── typed.ts │ ├── typed.tsx │ ├── typed.vue │ └── typed.vue.fixed ├── index.js ├── integrations.js ├── lib │ └── eslint-compat.js ├── parser-options-project.js ├── parser-options.js ├── test-utils.js ├── tokens.js └── variables-references.js ├── tsconfig.json └── typings ├── eslint-scope └── index.d.ts ├── eslint-visitor-keys └── index.d.ts └── esquery └── index.d.ts /.codecov.yml: -------------------------------------------------------------------------------- 1 | comment: off 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | /test/fixtures/crlf.vue eol=crlf 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: 2 | - ota-meshi 3 | - mysticatea 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/other.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Other 3 | about: An issue that doesn't fit into the other categories. 4 | title: "" 5 | labels: "" 6 | assignees: "" 7 | --- 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.nyc_output 2 | /.temp 3 | /coverage 4 | node_modules 5 | /test/temp 6 | /index.* 7 | /npm-debug.log 8 | /test.js 9 | /test/fixtures/espree-v8/node_modules 10 | /test/fixtures/integrations/**/_actual.json 11 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/vue-eslint-parser/01ed265959a71d6ca819830529021e1f2e261e1b/.gitmodules -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | package-lock = false 2 | -------------------------------------------------------------------------------- /.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "include": [ 3 | "src/**/*.ts" 4 | ], 5 | "exclude": [ 6 | "src/external/**/*.ts" 7 | ], 8 | "extension": [ 9 | ".ts" 10 | ], 11 | "require": [ 12 | "ts-node/register" 13 | ], 14 | "reporter": [ 15 | "lcov", 16 | "text-summary" 17 | ], 18 | "sourceMap": true 19 | } 20 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.tsdk": "node_modules/typescript/lib", 3 | "eslint.validate": [ 4 | "javascript", 5 | "javascriptreact", 6 | "typescript", 7 | "typescriptreact", 8 | "vue", 9 | "json", 10 | "jsonc" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/ast/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @author Toru Nagashima 3 | * @copyright 2017 Toru Nagashima. All rights reserved. 4 | * See LICENSE file in root directory for full license. 5 | */ 6 | 7 | export * from "./errors" 8 | export * from "./locations" 9 | export * from "./nodes" 10 | export * from "./tokens" 11 | export * from "./traverse" 12 | -------------------------------------------------------------------------------- /src/common/debug.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @author Toru Nagashima 3 | * @copyright 2017 Toru Nagashima. All rights reserved. 4 | * See LICENSE file in root directory for full license. 5 | */ 6 | import debugFactory from "debug" 7 | export const debug = debugFactory("vue-eslint-parser") 8 | -------------------------------------------------------------------------------- /src/external/README.md: -------------------------------------------------------------------------------- 1 | The code in this directory is copied from `eslint` repo (then I added types). 2 | Those are internal API, but I want to use those. 3 | 4 | This repo does not test those additionally. 5 | -------------------------------------------------------------------------------- /src/html/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @author Toru Nagashima 3 | * @copyright 2017 Toru Nagashima. All rights reserved. 4 | * See LICENSE file in root directory for full license. 5 | */ 6 | export { Parser as HTMLParser } from "./parser" 7 | export { Tokenizer as HTMLTokenizer } from "./tokenizer" 8 | -------------------------------------------------------------------------------- /src/script-setup/parser-options.ts: -------------------------------------------------------------------------------- 1 | export const DEFAULT_ECMA_VERSION = "latest" 2 | 3 | export const ANALYZE_SCOPE_DEFAULT_ECMA_VERSION = 2022 4 | -------------------------------------------------------------------------------- /src/utils/utils.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @see https://github.com/vuejs/vue-next/blob/48de8a42b7fed7a03f7f1ff5d53d6a704252cafe/packages/shared/src/index.ts#L109 3 | */ 4 | export function camelize(str: string) { 5 | return str.replace(/-(\w)/gu, (_, c) => (c ? c.toUpperCase() : "")) 6 | } 7 | -------------------------------------------------------------------------------- /test/fixtures/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "../../index.js" 3 | } 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/address-component/source.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /test/fixtures/ast/attributes-linebreak/source.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /test/fixtures/ast/attributes-linebreak/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "", 10 | "", 12 | "\n", 13 | "", 15 | "\n" 16 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/attributes/source.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /test/fixtures/ast/auto-closing-dt-dd/source.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /test/fixtures/ast/auto-closing-p/source.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /test/fixtures/ast/bogus-comments/source.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /test/fixtures/ast/comments-2/source.vue: -------------------------------------------------------------------------------- 1 | 20 | -------------------------------------------------------------------------------- /test/fixtures/ast/comments-3/source.vue: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /test/fixtures/ast/comments/source.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /test/fixtures/ast/custom-template-tokenizer/parser-options.js: -------------------------------------------------------------------------------- 1 | "use strict" 2 | module.exports = { 3 | "templateTokenizer": { 4 | "customLang": require.resolve("./custom-tokenizer.js") 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /test/fixtures/ast/custom-template-tokenizer/source.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/custom-template-tokenizer/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 7 | "\n ", 8 | "A-totally", 9 | ":", 10 | "made", 11 | "=", 12 | "\"", 13 | "up", 14 | "\"", 15 | "]", 16 | "{{", 17 | "templating", 18 | "+", 19 | "language", 20 | "}}", 21 | "", 23 | "\n", 24 | "<=== comment ===>" 25 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/custom-thead/source.vue: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /test/fixtures/ast/custom-thead/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "\n", 3 | "", 5 | "\n ", 6 | "", 8 | "\n ", 9 | "", 11 | "", 13 | "\n ", 14 | "", 16 | "\n", 17 | "", 19 | "\n", 20 | "" 21 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/define-model01/parser-options.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "module" 3 | } 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model01/requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint": ">=8" 3 | } -------------------------------------------------------------------------------- /test/fixtures/ast/define-model01/source.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model02-with-type/parser-options.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "module" 3 | } 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model02-with-type/requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint": ">=8" 3 | } -------------------------------------------------------------------------------- /test/fixtures/ast/define-model02-with-type/source.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model03-with-name/parser-options.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "module" 3 | } 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model03-with-name/requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint": ">=8" 3 | } -------------------------------------------------------------------------------- /test/fixtures/ast/define-model03-with-name/source.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 9 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model04-with-name-and-type/parser-options.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "module" 3 | } 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model04-with-name-and-type/requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint": ">=8" 3 | } -------------------------------------------------------------------------------- /test/fixtures/ast/define-model04-with-name-and-type/source.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 9 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model05-with-modifiers/parser-options.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "module" 3 | } 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model05-with-modifiers/requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint": ">=8" 3 | } -------------------------------------------------------------------------------- /test/fixtures/ast/define-model05-with-modifiers/source.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 15 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model06-with-ts/parser-options.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "module", 3 | "parser": "@typescript-eslint/parser" 4 | } 5 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model06-with-ts/requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint": ">=8" 3 | } -------------------------------------------------------------------------------- /test/fixtures/ast/define-model06-with-ts/source.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model07-with-ts/parser-options.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "module", 3 | "parser": "@typescript-eslint/parser" 4 | } 5 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model07-with-ts/requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint": ">=8" 3 | } -------------------------------------------------------------------------------- /test/fixtures/ast/define-model07-with-ts/source.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model08-with-ts-and-modifiers/parser-options.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "module", 3 | "parser": "@typescript-eslint/parser" 4 | } 5 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-model08-with-ts-and-modifiers/requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint": ">=8" 3 | } -------------------------------------------------------------------------------- /test/fixtures/ast/define-model08-with-ts-and-modifiers/source.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 15 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-options/parser-options.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "module" 3 | } 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-options/requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint": ">=8" 3 | } -------------------------------------------------------------------------------- /test/fixtures/ast/define-options/source.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-options/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 17 | "/* ... */" 18 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/define-options/tree.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /test/fixtures/ast/define-slots01/parser-options.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "module", 3 | "parser": "@typescript-eslint/parser" 4 | } 5 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-slots01/requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint": ">=8" 3 | } -------------------------------------------------------------------------------- /test/fixtures/ast/define-slots01/source.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-slots01/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "" 26 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/define-slots01/tree.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /test/fixtures/ast/define-slots02-without-ts/parser-options.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "module" 3 | } 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-slots02-without-ts/requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint": ">=8" 3 | } -------------------------------------------------------------------------------- /test/fixtures/ast/define-slots02-without-ts/source.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/fixtures/ast/define-slots02-without-ts/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "" 10 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/define-slots02-without-ts/tree.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /test/fixtures/ast/directive-argument-and-modifiers/source.vue: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /test/fixtures/ast/directive-arguments/source.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /test/fixtures/ast/directive-empty-value/source.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /test/fixtures/ast/directive-error-1/source.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/directive-error-1/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "", 10 | "", 12 | "\n", 13 | "", 15 | "\n" 16 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/directive-error-2/source.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/directive-error-2/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "", 10 | "", 12 | "\n", 13 | "", 15 | "\n" 16 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/directive-error-3/source.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/directive-error-3/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "", 10 | "", 12 | "\n", 13 | "", 15 | "\n" 16 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/directive-error-4/source.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/directive-error-4/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "", 10 | "", 12 | "\n", 13 | "", 15 | "\n" 16 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/directive-modifiers/source.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /test/fixtures/ast/directive-shorthands/source.vue: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /test/fixtures/ast/directive-shorthands/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "", 11 | "", 13 | "\n ", 14 | "", 20 | "", 22 | "\n", 23 | "", 25 | "\n" 26 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/directives/source.vue: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /test/fixtures/ast/dynamic-argument-dot/source.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/dynamic-argument-dot/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "", 17 | "", 19 | "\n", 20 | "", 22 | "\n" 23 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/dynamic-argument-error-1/source.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/dynamic-argument-error-1/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "", 13 | "", 15 | "\n", 16 | "", 18 | "\n" 19 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/dynamic-argument-error-2/source.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/dynamic-argument-error-2/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "", 13 | "", 15 | "\n", 16 | "", 18 | "\n" 19 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/dynamic-argument-error-4/source.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/dynamic-argument-expr/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "", 17 | "", 19 | "\n", 20 | "", 22 | "\n" 23 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/dynamic-argument-v-bind/source.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /test/fixtures/ast/dynamic-argument-v-on/source.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /test/fixtures/ast/dynamic-argument-v-slot/source.vue: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /test/fixtures/ast/elements/source.vue: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/fixtures/ast/elements/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "", 6 | "", 8 | "", 10 | "", 12 | "", 14 | "", 16 | "", 18 | "\n" 19 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/empty-script-only/source.vue: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/fixtures/ast/empty-script-only/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "" 4 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/empty-script-only/tree.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /test/fixtures/ast/empty-template-only/source.vue: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /test/fixtures/ast/empty-template-only/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "", 6 | "\n" 7 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/empty/source.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuejs/vue-eslint-parser/01ed265959a71d6ca819830529021e1f2e261e1b/test/fixtures/ast/empty/source.vue -------------------------------------------------------------------------------- /test/fixtures/ast/empty/token-ranges.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /test/fixtures/ast/empty/tree.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /test/fixtures/ast/end-of-line01/requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint": ">=8" 3 | } -------------------------------------------------------------------------------- /test/fixtures/ast/end-of-line01/source.vue: -------------------------------------------------------------------------------- 1 | 15 | 18 | -------------------------------------------------------------------------------- /test/fixtures/ast/end-of-line02/requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint": ">=8" 3 | } -------------------------------------------------------------------------------- /test/fixtures/ast/end-of-line02/source.vue: -------------------------------------------------------------------------------- 1 | 4 | 18 | -------------------------------------------------------------------------------- /test/fixtures/ast/error-absence-of-digits-in-numeric-character-reference/source.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/fixtures/ast/error-absence-of-digits-in-numeric-character-reference/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "&#zz;", 6 | "\n ", 7 | "&#xzz;", 8 | "\n", 9 | "" 11 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/error-character-reference-outside-unicode-range/source.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/error-character-reference-outside-unicode-range/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "�", 6 | "\n", 7 | "", 9 | "\n" 10 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/error-control-character-reference/source.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/error-control-character-reference/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "", 6 | "\n", 7 | "", 9 | "\n" 10 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/error-duplicate-attribute/source.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /test/fixtures/ast/error-duplicate-attribute/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "", 13 | "", 15 | "\n", 16 | "", 18 | "\n" 19 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/error-end-tag-with-attributes/source.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /test/fixtures/ast/error-end-tag-with-trailing-solidus/source.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /test/fixtures/ast/error-end-tag-with-trailing-solidus/token-ranges.json: -------------------------------------------------------------------------------- 1 | [ 2 | "", 4 | "\n ", 5 | "", 7 | "", 9 | "\n ", 10 | "", 12 | "", 14 | "\n ", 15 | "", 17 | "", 19 | "\n", 20 | "", 22 | "\n" 23 | ] -------------------------------------------------------------------------------- /test/fixtures/ast/error-eof-before-tag-name-2/source.vue: -------------------------------------------------------------------------------- 1 |