@askviraj/linter 1.1.5 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/@astrojs/compiler-binding/package.json +10 -10
- package/node_modules/@astrojs/compiler-binding-darwin-arm64/astro.darwin-arm64.node +0 -0
- package/node_modules/@astrojs/compiler-binding-darwin-arm64/package.json +1 -1
- package/node_modules/@astrojs/compiler-binding-darwin-x64/astro.darwin-x64.node +0 -0
- package/node_modules/@astrojs/compiler-binding-darwin-x64/package.json +1 -1
- package/node_modules/@astrojs/compiler-binding-linux-arm64-gnu/astro.linux-arm64-gnu.node +0 -0
- package/node_modules/@astrojs/compiler-binding-linux-arm64-gnu/package.json +1 -1
- package/node_modules/@astrojs/compiler-binding-linux-arm64-musl/astro.linux-arm64-musl.node +0 -0
- package/node_modules/@astrojs/compiler-binding-linux-arm64-musl/package.json +1 -1
- package/node_modules/@astrojs/compiler-binding-linux-x64-gnu/astro.linux-x64-gnu.node +0 -0
- package/node_modules/@astrojs/compiler-binding-linux-x64-gnu/package.json +1 -1
- package/node_modules/@astrojs/compiler-binding-linux-x64-musl/astro.linux-x64-musl.node +0 -0
- package/node_modules/@astrojs/compiler-binding-linux-x64-musl/package.json +1 -1
- package/node_modules/@astrojs/compiler-binding-win32-arm64-msvc/astro.win32-arm64-msvc.node +0 -0
- package/node_modules/@astrojs/compiler-binding-win32-arm64-msvc/package.json +1 -1
- package/node_modules/@astrojs/compiler-binding-win32-x64-msvc/astro.win32-x64-msvc.node +0 -0
- package/node_modules/@astrojs/compiler-binding-win32-x64-msvc/package.json +1 -1
- package/node_modules/@astrojs/compiler-rs/package.json +2 -2
- package/node_modules/@html-eslint/core/dist/index.js +2 -0
- package/node_modules/@html-eslint/core/dist/index.js.map +1 -1
- package/node_modules/@html-eslint/core/dist/index.mjs +2 -0
- package/node_modules/@html-eslint/core/dist/index.mjs.map +1 -1
- package/node_modules/@html-eslint/core/package.json +3 -3
- package/node_modules/@html-eslint/eslint-plugin/lib/rules/no-duplicate-attrs.js +140 -16
- package/node_modules/@html-eslint/eslint-plugin/lib/rules/no-duplicate-id.js +24 -5
- package/node_modules/@html-eslint/eslint-plugin/lib/rules/no-duplicate-in-head.js +17 -5
- package/node_modules/@html-eslint/eslint-plugin/lib/rules/utils/branch-segments.js +147 -0
- package/node_modules/@html-eslint/eslint-plugin/package.json +7 -7
- package/node_modules/@html-eslint/eslint-plugin/types/rules/no-duplicate-attrs.d.ts.map +1 -1
- package/node_modules/@html-eslint/eslint-plugin/types/rules/no-duplicate-id.d.ts.map +1 -1
- package/node_modules/@html-eslint/eslint-plugin/types/rules/no-duplicate-in-head.d.ts.map +1 -1
- package/node_modules/@html-eslint/eslint-plugin/types/rules/utils/branch-segments.d.ts +71 -0
- package/node_modules/@html-eslint/eslint-plugin/types/rules/utils/branch-segments.d.ts.map +1 -0
- package/node_modules/@html-eslint/parser/lib/branch-annotation.js +282 -0
- package/node_modules/@html-eslint/parser/lib/options.js +47 -2
- package/node_modules/@html-eslint/parser/lib/parser.js +62 -1
- package/node_modules/@html-eslint/parser/lib/template-engine-syntax-preset.js +117 -2
- package/node_modules/@html-eslint/parser/package.json +4 -4
- package/node_modules/@html-eslint/parser/types/branch-annotation.d.ts +93 -0
- package/node_modules/@html-eslint/parser/types/branch-annotation.d.ts.map +1 -0
- package/node_modules/@html-eslint/parser/types/options.d.ts +12 -1
- package/node_modules/@html-eslint/parser/types/options.d.ts.map +1 -1
- package/node_modules/@html-eslint/parser/types/parser.d.ts.map +1 -1
- package/node_modules/@html-eslint/parser/types/template-engine-syntax-preset.d.ts +76 -2
- package/node_modules/@html-eslint/parser/types/template-engine-syntax-preset.d.ts.map +1 -1
- package/node_modules/@html-eslint/template-parser/package.json +3 -3
- package/node_modules/@html-eslint/template-syntax-parser/package.json +3 -3
- package/node_modules/@html-eslint/types/package.json +2 -2
- package/node_modules/@humanwhocodes/momoa/dist/momoa.cjs +14 -1
- package/node_modules/@humanwhocodes/momoa/dist/momoa.js +14 -1
- package/node_modules/@humanwhocodes/momoa/package.json +4 -4
- package/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs +115 -71
- package/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map +2 -2
- package/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js +115 -71
- package/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map +2 -2
- package/node_modules/@jridgewell/sourcemap-codec/package.json +2 -1
- package/node_modules/@jridgewell/sourcemap-codec/src/range-mappings.ts +47 -0
- package/node_modules/@jridgewell/sourcemap-codec/src/scopes.ts +66 -46
- package/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts +27 -11
- package/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts +13 -17
- package/node_modules/@jridgewell/sourcemap-codec/types/range-mappings.d.cts +5 -0
- package/node_modules/@jridgewell/sourcemap-codec/types/range-mappings.d.cts.map +1 -0
- package/node_modules/@jridgewell/sourcemap-codec/types/range-mappings.d.mts +5 -0
- package/node_modules/@jridgewell/sourcemap-codec/types/range-mappings.d.mts.map +1 -0
- package/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts.map +1 -1
- package/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts.map +1 -1
- package/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts +2 -0
- package/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts.map +1 -1
- package/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts +2 -0
- package/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts.map +1 -1
- package/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts +4 -2
- package/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts.map +1 -1
- package/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts +4 -2
- package/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts.map +1 -1
- package/node_modules/@rviscomi/capo.js/README.md +18 -6
- package/node_modules/@rviscomi/capo.js/dist/adapters/adapter.cjs +8 -0
- package/node_modules/@rviscomi/capo.js/dist/adapters/browser.cjs +26 -2
- package/node_modules/@rviscomi/capo.js/dist/adapters/index.cjs +26 -2
- package/node_modules/@rviscomi/capo.js/dist/analyzer.cjs +300 -263
- package/node_modules/@rviscomi/capo.js/dist/chrome/README.md +5 -1
- package/node_modules/@rviscomi/capo.js/dist/chrome/background.js +1 -1
- package/node_modules/@rviscomi/capo.js/dist/chrome/capo.css +4 -11
- package/node_modules/@rviscomi/capo.js/dist/chrome/capo.html +2 -2
- package/node_modules/@rviscomi/capo.js/dist/chrome/capo.js +3 -3
- package/node_modules/@rviscomi/capo.js/dist/chrome/chrome.js +2 -9
- package/node_modules/@rviscomi/capo.js/dist/chrome/manifest.json +1 -1
- package/node_modules/@rviscomi/capo.js/dist/chrome/options/options.html +1 -1
- package/node_modules/@rviscomi/capo.js/dist/chrome/options/options.js +1 -1
- package/node_modules/@rviscomi/capo.js/dist/chrome/styles/open-props.css +16 -14
- package/node_modules/@rviscomi/capo.js/dist/chrome.zip +0 -0
- package/node_modules/@rviscomi/capo.js/dist/firefox/README.md +5 -1
- package/node_modules/@rviscomi/capo.js/dist/firefox/background.js +1 -1
- package/node_modules/@rviscomi/capo.js/dist/firefox/capo.css +4 -11
- package/node_modules/@rviscomi/capo.js/dist/firefox/capo.html +2 -2
- package/node_modules/@rviscomi/capo.js/dist/firefox/capo.js +3 -3
- package/node_modules/@rviscomi/capo.js/dist/firefox/chrome.js +2 -9
- package/node_modules/@rviscomi/capo.js/dist/firefox/manifest.json +1 -1
- package/node_modules/@rviscomi/capo.js/dist/firefox/options/options.html +1 -1
- package/node_modules/@rviscomi/capo.js/dist/firefox/options/options.js +1 -1
- package/node_modules/@rviscomi/capo.js/dist/firefox/styles/open-props.css +16 -14
- package/node_modules/@rviscomi/capo.js/dist/firefox.zip +0 -0
- package/node_modules/@rviscomi/capo.js/dist/index.cjs +378 -368
- package/node_modules/@rviscomi/capo.js/dist/lib/colors.cjs +1 -1
- package/node_modules/@rviscomi/capo.js/dist/lib/io.cjs +7 -5
- package/node_modules/@rviscomi/capo.js/dist/lib/options.cjs +7 -3
- package/node_modules/@rviscomi/capo.js/dist/lib/rules.cjs +25 -4
- package/node_modules/@rviscomi/capo.js/dist/lib/validation.cjs +326 -358
- package/node_modules/@rviscomi/capo.js/dist/source.zip +0 -0
- package/node_modules/@rviscomi/capo.js/dist/types/adapters/adapter.d.ts +6 -0
- package/node_modules/@rviscomi/capo.js/dist/types/adapters/browser.d.ts +8 -1
- package/node_modules/@rviscomi/capo.js/dist/types/adapters/index.d.ts +2 -2
- package/node_modules/@rviscomi/capo.js/dist/types/analyzer.d.ts +5 -0
- package/node_modules/@rviscomi/capo.js/dist/types/index.d.ts +5 -5
- package/node_modules/@rviscomi/capo.js/dist/types/lib/options.d.ts +1 -1
- package/node_modules/@rviscomi/capo.js/dist/types/lib/rules.d.ts +9 -2
- package/node_modules/@rviscomi/capo.js/dist/types/lib/validation.d.ts +4 -2
- package/node_modules/@rviscomi/capo.js/dist/types/lib/validations/charset.d.ts +28 -0
- package/node_modules/@rviscomi/capo.js/dist/types/lib/validations/content-type.d.ts +18 -0
- package/node_modules/@rviscomi/capo.js/dist/types/lib/validations/csp.d.ts +12 -0
- package/node_modules/@rviscomi/capo.js/dist/types/lib/validations/default-style.d.ts +18 -0
- package/node_modules/@rviscomi/capo.js/dist/types/lib/validations/head-elements.d.ts +52 -0
- package/node_modules/@rviscomi/capo.js/dist/types/lib/validations/http-equiv.d.ts +18 -0
- package/node_modules/@rviscomi/capo.js/dist/types/lib/validations/origin-trial.d.ts +19 -0
- package/node_modules/@rviscomi/capo.js/dist/types/lib/validations/preload.d.ts +41 -0
- package/node_modules/@rviscomi/capo.js/dist/types/lib/validations/viewport.d.ts +18 -0
- package/node_modules/@rviscomi/capo.js/dist/types/worker/worker.d.ts +16 -0
- package/node_modules/@rviscomi/capo.js/package.json +8 -12
- package/node_modules/@rviscomi/capo.js/src/adapters/adapter.js +37 -28
- package/node_modules/@rviscomi/capo.js/src/adapters/browser.js +41 -24
- package/node_modules/@rviscomi/capo.js/src/adapters/index.js +3 -3
- package/node_modules/@rviscomi/capo.js/src/adapters/test-suite.js +129 -129
- package/node_modules/@rviscomi/capo.js/src/analyzer.js +20 -25
- package/node_modules/@rviscomi/capo.js/src/extension/README.md +5 -1
- package/node_modules/@rviscomi/capo.js/src/extension/background.js +1 -1
- package/node_modules/@rviscomi/capo.js/src/extension/capo.css +4 -11
- package/node_modules/@rviscomi/capo.js/src/extension/capo.html +2 -2
- package/node_modules/@rviscomi/capo.js/src/extension/capo.js +21 -18
- package/node_modules/@rviscomi/capo.js/src/extension/chrome.js +2 -9
- package/node_modules/@rviscomi/capo.js/src/extension/manifest.json +2 -6
- package/node_modules/@rviscomi/capo.js/src/extension/options/options.html +1 -1
- package/node_modules/@rviscomi/capo.js/src/extension/options.js +16 -16
- package/node_modules/@rviscomi/capo.js/src/extension/styles/open-props.css +16 -14
- package/node_modules/@rviscomi/capo.js/src/index.js +10 -20
- package/node_modules/@rviscomi/capo.js/src/lib/colors.js +17 -17
- package/node_modules/@rviscomi/capo.js/src/lib/io.js +19 -17
- package/node_modules/@rviscomi/capo.js/src/lib/options.js +23 -20
- package/node_modules/@rviscomi/capo.js/src/lib/rules.js +124 -95
- package/node_modules/@rviscomi/capo.js/src/lib/validation.js +57 -857
- package/node_modules/@rviscomi/capo.js/src/lib/validations/content-type.js +94 -0
- package/node_modules/@rviscomi/capo.js/src/lib/validations/csp.js +68 -0
- package/node_modules/@rviscomi/capo.js/src/lib/validations/default-style.js +62 -0
- package/node_modules/@rviscomi/capo.js/src/lib/validations/http-equiv.js +138 -0
- package/node_modules/@rviscomi/capo.js/src/lib/validations/origin-trial.js +80 -0
- package/node_modules/@rviscomi/capo.js/src/lib/validations/preload.js +135 -0
- package/node_modules/@rviscomi/capo.js/src/lib/validations/viewport.js +183 -0
- package/node_modules/@rviscomi/capo.js/src/web/capo.js +12 -12
- package/node_modules/@rviscomi/capo.js/src/worker/worker.js +180 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended-raw.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended-raw.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/all.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/base.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/disable-type-checked.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/eslint-recommended.d.ts +1 -1
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/eslint-recommended.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/recommended-type-checked-only.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/recommended-type-checked.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/recommended.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/strict-type-checked-only.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/strict-type-checked.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/strict.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/stylistic-type-checked-only.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/stylistic-type-checked.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/stylistic.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/all.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/all.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/base.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/base.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/disable-type-checked.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/disable-type-checked.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/eslint-recommended.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/eslint-recommended.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/recommended-type-checked-only.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/recommended-type-checked-only.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/recommended-type-checked.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/recommended-type-checked.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/recommended.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/recommended.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/strict-type-checked-only.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/strict-type-checked-only.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/strict-type-checked.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/strict-type-checked.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/strict.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/strict.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/stylistic-type-checked-only.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/stylistic-type-checked-only.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/stylistic-type-checked.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/stylistic-type-checked.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/stylistic.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/stylistic.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/index.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/index.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/raw-plugin.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/raw-plugin.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/await-thenable.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-tslint-comment.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-literal-property-style.js +12 -4
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-methods-use-this.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-generic-constructors.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-indexed-object-style.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-return.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-exports.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.d.ts +2 -1
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/default-param-last.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/enum-utils/shared.d.ts +5 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/enum-utils/shared.js +68 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-function-return-type.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.d.ts +1 -1
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/max-params.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/enums.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/format.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/index.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/parse-options.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/schema.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/shared.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/types.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/validator.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-constructor.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-delete.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-confusing-non-null-assertion.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-confusing-void-expression.js +8 -9
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-deprecated.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dupe-class-members.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-duplicate-enum-values.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-duplicate-type-constituents.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dynamic-delete.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-interface.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-object-type.js +9 -4
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js +64 -55
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-for-in-array.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-import-type-side-effects.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loop-func.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-meaningless-void-operator.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-new.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-spread.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-mixed-enums.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-asserted-nullish-coalescing.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-asserted-optional-chain.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redundant-type-constituents.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-require-imports.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-restricted-imports.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-restricted-types.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-this-alias.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-boolean-literal-compare.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-parameter-property-assignment.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-template-expression.js +3 -14
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.d.ts +1 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js +14 -39
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-constraint.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-conversion.js +2 -1
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-parameters.js +6 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-argument.js +2 -91
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-declaration-merging.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-enum-comparison.js +3 -113
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-function-type.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-type-assertion.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-unary-minus.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-expressions.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-private-class-members.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-default-assignment.js +15 -11
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-empty-export.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-wrapper-object-types.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/non-nullable-type-assertion-style.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/only-throw-error.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/parameter-properties.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-as-const.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-destructuring.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-enum-initializers.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-find.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.d.ts +2 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-namespace-keyword.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-nullish-coalescing.js +2 -1
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain-utils/PreferOptionalChainOptions.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain-utils/analyzeChain.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain-utils/checkNullishAndReport.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain-utils/compareNodes.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-promise-reject-errors.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-reduce-type-parameter.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-return-this-type.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/related-getter-setter-pairs.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-array-sort-compare.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-template-expressions.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js +13 -1
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/sort-type-constituents.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-void-return.d.ts +3 -2
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-void-return.js +97 -5
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/typedef.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.d.ts +1 -1
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js +73 -32
- package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/use-unknown-in-catch-callback-variable.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/FunctionSignature.d.ts +15 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/FunctionSignature.js +123 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/assertionFunctionUtils.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/baseTypeUtils.d.ts +2 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/baseTypeUtils.js +17 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/class-scope-analyzer/classScopeAnalyzer.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/class-scope-analyzer/extractComputedName.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/class-scope-analyzer/types.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/collectUnusedVariables.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/escapeRegExp.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getBaseTypesOfClassMember.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getConstraintInfo.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getESLintCoreRule.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getFixOrSuggest.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getForStatementHeadLoc.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getFunctionHeadLoc.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getMemberHeadLoc.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getOperatorPrecedence.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getParentFunctionNode.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getStaticStringValue.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getStringLength.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getTextWithParentheses.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getThisExpression.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getValueOfLiteralType.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getWrappedCode.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/getWrappingFixer.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/hasOverloadSignatures.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.d.ts +3 -1
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js +4 -1
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/isArrayMethodCallWithPredicate.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/isAssignee.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/isConditionalTest.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/isHigherPrecedenceThanAwait.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/isNodeEqual.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/isNullLiteral.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/isPromiseAggregatorMethod.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/isStartOfArrowFunctionBody.d.ts +2 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/isStartOfArrowFunctionBody.js +26 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/isStartOfExpressionStatement.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeImport.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/isUndefinedIdentifier.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/misc.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/needsPrecedingSemiColon.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/needsToBeAwaited.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/objectIterators.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/promiseUtils.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/rangeToLoc.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/referenceContainsTypePredicate.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/referenceContainsTypeQuery.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/scopeUtils.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/skipChainExpression.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/truthinessUtils.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/dist/util/walkStatements.js +1 -0
- package/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore/README.md +52 -0
- package/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore/index.js +785 -129
- package/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore/legacy.js +660 -98
- package/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore/package.json +10 -4
- package/node_modules/@typescript-eslint/eslint-plugin/package.json +13 -12
- package/node_modules/@typescript-eslint/parser/dist/index.js +1 -0
- package/node_modules/@typescript-eslint/parser/dist/parser.js +1 -0
- package/node_modules/@typescript-eslint/parser/package.json +8 -7
- package/node_modules/@typescript-eslint/project-service/dist/createProjectService.js +1 -0
- package/node_modules/@typescript-eslint/project-service/dist/getParsedConfigFileFromTSServer.js +1 -0
- package/node_modules/@typescript-eslint/project-service/dist/index.js +1 -0
- package/node_modules/@typescript-eslint/project-service/package.json +6 -5
- package/node_modules/@typescript-eslint/scope-manager/dist/ID.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/analyze.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/assert.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/CatchClauseDefinition.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/ClassNameDefinition.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/Definition.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/DefinitionBase.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/DefinitionType.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/FunctionNameDefinition.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/ImplicitGlobalVariableDefinition.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/ImportBindingDefinition.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/ParameterDefinition.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/TSEnumMemberDefinition.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/TSEnumNameDefinition.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/TSModuleNameDefinition.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/TypeDefinition.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/VariableDefinition.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/index.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/index.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/base-config.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/decorators.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/decorators.legacy.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.asynciterable.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.collection.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.core.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.generator.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.iterable.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.promise.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.proxy.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.reflect.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.wellknown.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.array.include.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.full.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.intl.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.arraybuffer.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.date.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.full.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.intl.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.object.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.sharedmemory.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.string.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.typedarrays.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asyncgenerator.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asynciterable.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.full.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.intl.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.promise.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.regexp.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.array.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.full.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.object.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.string.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.symbol.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.bigint.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.date.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.full.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.intl.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.number.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.promise.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.sharedmemory.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.string.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.symbol.wellknown.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.full.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.intl.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.promise.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.string.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.weakref.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2022.array.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2022.error.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2022.full.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2022.intl.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2022.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2022.object.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2022.regexp.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2022.string.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2023.array.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2023.collection.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2023.full.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2023.intl.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2023.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2024.arraybuffer.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2024.collection.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2024.full.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2024.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2024.object.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2024.promise.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2024.regexp.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2024.sharedmemory.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2024.string.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2025.collection.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2025.float16.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2025.full.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2025.intl.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2025.iterator.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2025.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2025.promise.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2025.regexp.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es5.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es6.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es7.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.array.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.asynciterable.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.bigint.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.collection.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.date.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.decorators.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.disposable.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.error.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.float16.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.full.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.intl.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.iterator.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.object.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.promise.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.regexp.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.sharedmemory.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.string.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.symbol.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.temporal.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.typedarrays.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.weakref.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/lib.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/scripthost.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.asynciterable.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.importscripts.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ImportVisitor.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Visitor.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/index.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/BlockScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/CatchScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/ClassFieldInitializerScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/ClassScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/ClassStaticBlockScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/ConditionalTypeScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/ForScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/FunctionExpressionNameScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/FunctionScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/FunctionTypeScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/MappedTypeScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/ModuleScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/Scope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeType.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/SwitchScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/TSEnumScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/TSModuleScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/TypeScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/WithScope.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/index.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/variable/ESLintScopeVariable.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/variable/Variable.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/variable/VariableBase.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/variable/index.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/package.json +8 -7
- package/node_modules/@typescript-eslint/tsconfig-utils/dist/compilerOptions.js +1 -0
- package/node_modules/@typescript-eslint/tsconfig-utils/dist/getParsedConfigFile.js +1 -0
- package/node_modules/@typescript-eslint/tsconfig-utils/dist/index.js +1 -0
- package/node_modules/@typescript-eslint/tsconfig-utils/package.json +3 -2
- package/node_modules/@typescript-eslint/type-utils/dist/TypeOrValueSpecifier.d.ts +19 -19
- package/node_modules/@typescript-eslint/type-utils/dist/TypeOrValueSpecifier.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/builtinSymbolLikes.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/containsAllTypesByName.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/discriminateAnyType.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/getConstrainedTypeAtLocation.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/getContextualType.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/getDeclaration.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/getSourceFileOfNode.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/getTypeName.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/index.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/isSymbolFromDefaultLibrary.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/isTypeBrandedLiteralLike.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/isTypeReadonly.d.ts +19 -19
- package/node_modules/@typescript-eslint/type-utils/dist/isTypeReadonly.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/isUnsafeAssignment.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/predicates.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/propertyTypes.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/requiresQuoting.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/typeFlagUtils.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/typeOrValueSpecifiers/specifierNameMatches.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/typeOrValueSpecifiers/typeDeclaredInFile.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/typeOrValueSpecifiers/typeDeclaredInLib.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/dist/typeOrValueSpecifiers/typeDeclaredInPackageDeclarationFile.js +1 -0
- package/node_modules/@typescript-eslint/type-utils/package.json +9 -8
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +9 -0
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js +1 -0
- package/node_modules/@typescript-eslint/types/dist/index.js +1 -0
- package/node_modules/@typescript-eslint/types/dist/lib.js +1 -0
- package/node_modules/@typescript-eslint/types/dist/parser-options.js +1 -0
- package/node_modules/@typescript-eslint/types/dist/ts-estree.js +1 -0
- package/node_modules/@typescript-eslint/types/package.json +3 -5
- package/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/check-modifiers.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/check-syntax-errors.js +15 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/clear-caches.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +25 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgramError.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/describeFilePath.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getScriptKind.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getWatchProgramsForProjects.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/validateDefaultProjectForFilesGlob.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/createParserServices.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/getImportClausePhaseModifier.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/getModifiers.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/index.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/ExpiringCache.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/candidateTSConfigRootDirs.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/createParseSettings.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/getProjectConfigFiles.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/index.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/inferSingleRun.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/resolveProjectList.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/parser.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/source-files.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/use-at-your-own-risk.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/useProgramFromProjectService.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/version-check.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/version-check.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/version.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/withoutProjectParserOptions.js +1 -0
- package/node_modules/@typescript-eslint/typescript-estree/package.json +8 -7
- package/node_modules/@typescript-eslint/utils/dist/ast-utils/eslint-utils/PatternMatcher.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ast-utils/eslint-utils/ReferenceTracker.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ast-utils/eslint-utils/astUtilities.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ast-utils/eslint-utils/index.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ast-utils/eslint-utils/predicates.d.ts +20 -20
- package/node_modules/@typescript-eslint/utils/dist/ast-utils/eslint-utils/predicates.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ast-utils/eslint-utils/scopeAnalysis.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ast-utils/helpers.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ast-utils/index.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ast-utils/misc.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ast-utils/predicates.d.ts +1 -1
- package/node_modules/@typescript-eslint/utils/dist/ast-utils/predicates.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/eslint-utils/InferTypesFromRule.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/eslint-utils/RuleCreator.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/eslint-utils/applyDefault.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/eslint-utils/deepMerge.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/eslint-utils/getParserServices.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/eslint-utils/index.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/eslint-utils/nullThrows.d.ts +1 -1
- package/node_modules/@typescript-eslint/utils/dist/eslint-utils/nullThrows.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/eslint-utils/parserSeemsToBeTSESLint.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/index.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/json-schema.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/AST.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/Config.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/Linter.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/Parser.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/ParserOptions.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/Processor.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/Rule.d.ts +17 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/Rule.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/RuleTester.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/Scope.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/SourceCode.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/ESLintShared.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/LegacyESLint.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-eslint/index.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-estree.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-utils/NoInfer.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-utils/index.js +1 -0
- package/node_modules/@typescript-eslint/utils/dist/ts-utils/isArray.js +1 -0
- package/node_modules/@typescript-eslint/utils/package.json +6 -5
- package/node_modules/@typescript-eslint/visitor-keys/dist/get-keys.js +1 -0
- package/node_modules/@typescript-eslint/visitor-keys/dist/index.js +1 -0
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js +1 -0
- package/node_modules/@typescript-eslint/visitor-keys/package.json +5 -4
- package/node_modules/astro-eslint-parser/lib/index.mjs +13 -37
- package/node_modules/astro-eslint-parser/package.json +7 -7
- package/node_modules/eslint/README.md +1 -6
- package/node_modules/eslint/lib/config/config-loader.js +2 -2
- package/node_modules/eslint/lib/config/config.js +2 -2
- package/node_modules/eslint/lib/eslint/eslint.js +1 -1
- package/node_modules/eslint/lib/languages/js/index.js +1 -1
- package/node_modules/eslint/lib/options.js +2 -2
- package/node_modules/eslint/lib/rules/accessor-pairs.js +1 -51
- package/node_modules/eslint/lib/rules/getter-return.js +4 -45
- package/node_modules/eslint/lib/rules/id-denylist.js +4 -0
- package/node_modules/eslint/lib/rules/id-match.js +2 -1
- package/node_modules/eslint/lib/rules/no-duplicate-imports.js +3 -3
- package/node_modules/eslint/lib/rules/no-loss-of-precision.js +7 -2
- package/node_modules/eslint/lib/rules/no-setter-return.js +1 -89
- package/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js +21 -5
- package/node_modules/eslint/lib/rules/no-unused-labels.js +19 -0
- package/node_modules/eslint/lib/rules/no-unused-vars.js +115 -8
- package/node_modules/eslint/lib/rules/no-useless-escape.js +2 -2
- package/node_modules/eslint/lib/rules/no-var.js +87 -1
- package/node_modules/eslint/lib/rules/prefer-template.js +7 -1
- package/node_modules/eslint/lib/rules/utils/ast-utils.js +86 -0
- package/node_modules/eslint/lib/types/index.d.ts +1 -1
- package/node_modules/eslint/lib/types/rules.d.ts +10 -1
- package/node_modules/eslint/messages/config-file-missing.js +2 -2
- package/node_modules/eslint/package.json +9 -3
- package/node_modules/eslint-plugin-astro/README.md +22 -1
- package/node_modules/eslint-plugin-astro/lib/index.mjs +24 -19
- package/node_modules/eslint-plugin-astro/package.json +8 -4
- package/node_modules/eslint-plugin-yml/lib/index.mjs +220 -78
- package/node_modules/eslint-plugin-yml/package.json +5 -4
- package/node_modules/globals/globals.json +75 -0
- package/node_modules/globals/index.d.ts +77 -0
- package/node_modules/globals/package.json +2 -2
- package/node_modules/nanoid/README.md +3 -0
- package/node_modules/nanoid/async/index.browser.cjs +1 -0
- package/node_modules/nanoid/async/index.browser.js +1 -0
- package/node_modules/nanoid/async/index.cjs +4 -1
- package/node_modules/nanoid/async/index.js +4 -1
- package/node_modules/nanoid/async/index.native.js +4 -1
- package/node_modules/nanoid/index.browser.cjs +1 -0
- package/node_modules/nanoid/index.browser.js +1 -0
- package/node_modules/nanoid/index.cjs +1 -0
- package/node_modules/nanoid/index.js +1 -0
- package/node_modules/nanoid/package.json +1 -1
- package/node_modules/picomatch/lib/parse.js +10 -1
- package/node_modules/picomatch/lib/scan.js +30 -18
- package/node_modules/picomatch/package.json +1 -1
- package/node_modules/postcss/README.md +4 -1
- package/node_modules/postcss/lib/list.js +1 -1
- package/node_modules/postcss/lib/previous-map.js +14 -2
- package/node_modules/postcss/lib/processor.js +1 -1
- package/node_modules/postcss/package.json +2 -2
- package/node_modules/postcss-selector-parser/CHANGELOG.md +74 -65
- package/node_modules/postcss-selector-parser/dist/parser.js +25 -3
- package/node_modules/postcss-selector-parser/package.json +6 -3
- package/node_modules/typescript-eslint/dist/compatibility-types.js +1 -0
- package/node_modules/typescript-eslint/dist/config-helper.js +1 -0
- package/node_modules/typescript-eslint/dist/getTSConfigRootDirFromStack.js +1 -0
- package/node_modules/typescript-eslint/dist/globs.d.ts +123 -0
- package/node_modules/typescript-eslint/dist/globs.js +135 -0
- package/node_modules/typescript-eslint/dist/index.d.ts +12 -0
- package/node_modules/typescript-eslint/dist/index.js +8 -1
- package/node_modules/typescript-eslint/package.json +8 -6
- package/node_modules/vscode-languageserver-textdocument/eslint.config.js +13 -0
- package/node_modules/vscode-languageserver-textdocument/lib/esm/main.d.ts +20 -0
- package/node_modules/vscode-languageserver-textdocument/lib/esm/main.js +26 -0
- package/node_modules/vscode-languageserver-textdocument/lib/umd/main.d.ts +20 -0
- package/node_modules/vscode-languageserver-textdocument/lib/umd/main.js +26 -0
- package/node_modules/vscode-languageserver-textdocument/package.json +2 -2
- package/node_modules/vscode-uri/lib/esm/index.mjs +1 -1
- package/node_modules/vscode-uri/lib/esm/index.mjs.map +1 -1
- package/node_modules/vscode-uri/lib/umd/index.d.ts +5 -0
- package/node_modules/vscode-uri/lib/umd/index.js +1 -1
- package/node_modules/vscode-uri/lib/umd/index.js.map +1 -1
- package/node_modules/vscode-uri/package.json +5 -1
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/rules/no-invalid-attr-value.js","../lib/utils/baseline.js","../lib/utils/node.js","../lib/rules/use-baseline.js","../lib/rules/no-ineffective-attrs.js","../lib/rules/no-obsolete-tags.js","../lib/utils/obsolete-attrs.js","../lib/rules/no-obsolete-attrs.js","../lib/rules/class-spacing.js","../lib/rules/no-duplicate-class.js"],"sourcesContent":["/**\n * @import {\n * ElementAdapter,\n * NoInvalidAttrValueOptions,\n * NoInvalidAttrValueResult\n * } from \"../types\"\n */\n\nimport { element } from \"html-standard\";\n\n/**\n * @type {{\n * invalid: \"invalid\";\n * }}\n */\nexport const NO_INVALID_ATTR_VALUE_MESSAGE_IDS = {\n invalid: \"invalid\",\n};\n\n/** @param {NoInvalidAttrValueOptions} options */\nexport function noInvalidAttrValue(options) {\n const allowList = options.allow || [];\n const compiledAllowList = allowList.map((rule) => ({\n tag: rule.tag.toLowerCase(),\n attr: rule.attr.toLowerCase(),\n valuePattern: rule.valuePattern ? new RegExp(rule.valuePattern) : undefined,\n }));\n\n /**\n * @param {string} elementName\n * @param {string} attrKey\n * @param {string} attrValue\n * @returns\n */\n function shouldAllow(elementName, attrKey, attrValue) {\n return compiledAllowList.some((allowRule) => {\n const tagMatch = allowRule.tag === elementName.toLowerCase();\n const attrMatch = allowRule.attr === attrKey.toLowerCase();\n\n if (!tagMatch || !attrMatch) {\n return false;\n }\n\n if (allowRule.valuePattern === undefined) {\n return true;\n }\n\n return allowRule.valuePattern.test(attrValue);\n });\n }\n\n return {\n /**\n * @param {ElementAdapter} adapter\n * @returns {NoInvalidAttrValueResult}\n */\n checkAttributes(adapter) {\n const name = adapter.getElementName();\n if (name.includes(\"-\")) {\n return [];\n }\n const spec = element(name);\n /** @type {NoInvalidAttrValueResult} */\n const result = [];\n\n for (const attribute of adapter.getAttributes()) {\n const attributeKey = attribute.getKey();\n if (!attributeKey) {\n continue;\n }\n\n if (attributeKey.hasExpression()) {\n continue;\n }\n\n const attributeValue = attribute.getValue();\n\n if (attributeValue?.hasExpression()) {\n continue;\n }\n\n const attrKeyValue = attributeKey.getValue();\n\n const attrValueValue = attributeValue?.getValue() ?? null;\n if (attrValueValue === null) {\n continue;\n }\n\n if (attrKeyValue && shouldAllow(name, attrKeyValue, attrValueValue)) {\n continue;\n }\n if (!attrKeyValue || attrValueValue === null) {\n continue;\n }\n const validator = spec.attributes.get(attrKeyValue);\n if (validator) {\n const validateResult = validator.validateValue(attrValueValue);\n if (!validateResult.valid) {\n result.push({\n loc: attributeValue?.getLocation() ?? attributeKey?.getLocation(),\n messageId: NO_INVALID_ATTR_VALUE_MESSAGE_IDS.invalid,\n data: {\n value: attrValueValue || \"\",\n attr: attrKeyValue,\n element: name,\n suggestion: validateResult.reason || \"Use a valid value.\",\n },\n });\n }\n }\n }\n return result;\n },\n };\n}\n","/** This file is auto-generated. (yarn run baseline) */\nconst BASELINE_HIGH = 10;\nconst BASELINE_LOW = 5;\nconst BASELINE_FALSE = 0;\n\nconst elements = new Map([\n [\"a\", \"10:2015\"],\n [\"a.attributionsourceid\", \"0:\"],\n [\"a.attributionsrc\", \"0:\"],\n [\"a.download\", \"10:2019\"],\n [\"a.href\", \"10:2015\"],\n [\"a.href.href_sms\", \"0:\"],\n [\"a.href.href_top\", \"10:2015\"],\n [\"a.hreflang\", \"10:2015\"],\n [\"a.implicit_noopener\", \"10:2021\"],\n [\"a.interestfor\", \"0:\"],\n [\"a.ping\", \"0:\"],\n [\"a.referrerpolicy\", \"10:2020\"],\n [\"a.referrerpolicy.no-referrer-when-downgrade\", \"0:\"],\n [\"a.referrerpolicy.origin-when-cross-origin\", \"0:\"],\n [\"a.referrerpolicy.unsafe-url\", \"0:\"],\n [\"a.rel\", \"10:2015\"],\n [\"a.rel.noopener\", \"10:2020\"],\n [\"a.rel.noreferrer\", \"10:2015\"],\n [\"a.target\", \"10:2015\"],\n [\"a.target.unfencedTop\", \"0:\"],\n [\"a.text_fragments\", \"5:2024\"],\n [\"a.type\", \"10:2015\"],\n [\"abbr\", \"10:2015\"],\n [\"address\", \"10:2015\"],\n [\"area\", \"10:2015\"],\n [\"area.alt\", \"10:2015\"],\n [\"area.attributionsrc\", \"0:\"],\n [\"area.coords\", \"10:2015\"],\n [\"area.download\", \"10:2017\"],\n [\"area.href\", \"10:2015\"],\n [\"area.implicit_noopener\", \"10:2021\"],\n [\"area.interestfor\", \"0:\"],\n [\"area.ping\", \"0:\"],\n [\"area.referrerpolicy\", \"10:2020\"],\n [\"area.referrerpolicy.no-referrer-when-downgrade\", \"0:\"],\n [\"area.referrerpolicy.origin-when-cross-origin\", \"0:\"],\n [\"area.referrerpolicy.unsafe-url\", \"0:\"],\n [\"area.rel\", \"10:2015\"],\n [\"area.rel.noopener\", \"10:2020\"],\n [\"area.rel.noreferrer\", \"10:2015\"],\n [\"area.shape\", \"10:2015\"],\n [\"area.target\", \"10:2015\"],\n [\"article\", \"10:2015\"],\n [\"aside\", \"10:2015\"],\n [\"audio\", \"10:2015\"],\n [\"audio.autoplay\", \"10:2016\"],\n [\"audio.controls\", \"10:2015\"],\n [\"audio.controlslist\", \"0:\"],\n [\"audio.crossorigin\", \"10:2020\"],\n [\"audio.disableremoteplayback\", \"0:\"],\n [\"audio.loading\", \"0:\"],\n [\"audio.loop\", \"10:2015\"],\n [\"audio.muted\", \"10:2018\"],\n [\"audio.preload\", \"10:2015\"],\n [\"audio.src\", \"10:2015\"],\n [\"b\", \"10:2015\"],\n [\"base\", \"10:2015\"],\n [\"base.href\", \"10:2015\"],\n [\"base.href.forbid_data_javascript_urls\", \"5:2024\"],\n [\"base.href.relative_url\", \"10:2015\"],\n [\"base.target\", \"10:2015\"],\n [\"bdi\", \"10:2020\"],\n [\"bdo\", \"10:2015\"],\n [\"blockquote\", \"10:2015\"],\n [\"blockquote.cite\", \"10:2015\"],\n [\"body\", \"10:2015\"],\n [\"br\", \"10:2015\"],\n [\"button\", \"10:2015\"],\n [\"button.command\", \"5:2025\"],\n [\"button.command.request-close\", \"5:2025\"],\n [\"button.commandfor\", \"5:2025\"],\n [\"button.commandfor.implicit_anchor_reference\", \"5:2026\"],\n [\"button.disabled\", \"10:2015\"],\n [\"button.form\", \"10:2017\"],\n [\"button.formaction\", \"10:2015\"],\n [\"button.formenctype\", \"10:2015\"],\n [\"button.formmethod\", \"10:2015\"],\n [\"button.formnovalidate\", \"10:2015\"],\n [\"button.formtarget\", \"10:2015\"],\n [\"button.interestfor\", \"0:\"],\n [\"button.name\", \"10:2015\"],\n [\"button.popovertarget\", \"5:2024\"],\n [\"button.popovertarget.implicit_anchor_reference\", \"5:2026\"],\n [\"button.popovertargetaction\", \"5:2024\"],\n [\"button.type\", \"10:2015\"],\n [\"button.value\", \"10:2015\"],\n [\"canvas\", \"10:2015\"],\n [\"canvas.height\", \"10:2015\"],\n [\"canvas.width\", \"10:2015\"],\n [\"caption\", \"10:2015\"],\n [\"caption.align\", \"0:\"],\n [\"cite\", \"10:2015\"],\n [\"code\", \"10:2015\"],\n [\"col\", \"10:2015\"],\n [\"col.align\", \"0:\"],\n [\"col.char\", \"0:\"],\n [\"col.charoff\", \"0:\"],\n [\"col.span\", \"10:2015\"],\n [\"col.valign\", \"0:\"],\n [\"col.width\", \"0:\"],\n [\"colgroup\", \"10:2015\"],\n [\"colgroup.align\", \"0:\"],\n [\"colgroup.char\", \"0:\"],\n [\"colgroup.charoff\", \"0:\"],\n [\"colgroup.span\", \"10:2015\"],\n [\"colgroup.valign\", \"0:\"],\n [\"colgroup.width\", \"0:\"],\n [\"data\", \"10:2017\"],\n [\"data.value\", \"10:2017\"],\n [\"datalist\", \"0:\"],\n [\"datalist.input_type_color\", \"0:\"],\n [\"datalist.input_type_date\", \"0:\"],\n [\"datalist.input_type_email\", \"0:\"],\n [\"datalist.input_type_number\", \"0:\"],\n [\"datalist.input_type_range\", \"0:\"],\n [\"datalist.input_type_search\", \"0:\"],\n [\"datalist.input_type_tel\", \"0:\"],\n [\"datalist.input_type_text\", \"0:\"],\n [\"datalist.input_type_time\", \"0:\"],\n [\"datalist.input_type_url\", \"0:\"],\n [\"dd\", \"10:2015\"],\n [\"del\", \"10:2015\"],\n [\"del.cite\", \"10:2015\"],\n [\"del.datetime\", \"10:2015\"],\n [\"details\", \"10:2020\"],\n [\"details.name\", \"5:2024\"],\n [\"details.open\", \"10:2020\"],\n [\"dfn\", \"10:2015\"],\n [\"dialog\", \"10:2022\"],\n [\"dialog.closedby\", \"0:\"],\n [\"dialog.open\", \"10:2022\"],\n [\"div\", \"10:2015\"],\n [\"dl\", \"10:2015\"],\n [\"dt\", \"10:2015\"],\n [\"em\", \"10:2015\"],\n [\"embed\", \"10:2015\"],\n [\"embed.height\", \"10:2015\"],\n [\"embed.src\", \"10:2015\"],\n [\"embed.type\", \"10:2020\"],\n [\"embed.width\", \"10:2015\"],\n [\"fencedframe\", \"0:\"],\n [\"fencedframe.allow\", \"0:\"],\n [\"fencedframe.height\", \"0:\"],\n [\"fencedframe.width\", \"0:\"],\n [\"fieldset\", \"10:2015\"],\n [\"fieldset.disabled\", \"10:2020\"],\n [\"fieldset.form\", \"10:2015\"],\n [\"fieldset.name\", \"10:2015\"],\n [\"figcaption\", \"10:2015\"],\n [\"figure\", \"10:2015\"],\n [\"footer\", \"10:2015\"],\n [\"form\", \"10:2015\"],\n [\"form.accept-charset\", \"10:2015\"],\n [\"form.action\", \"10:2015\"],\n [\"form.autocomplete\", \"10:2015\"],\n [\"form.enctype\", \"10:2015\"],\n [\"form.method\", \"10:2015\"],\n [\"form.name\", \"10:2015\"],\n [\"form.novalidate\", \"10:2017\"],\n [\"form.rel\", \"10:2023\"],\n [\"form.target\", \"10:2015\"],\n [\"geolocation\", \"0:\"],\n [\"geolocation.autolocate\", \"0:\"],\n [\"geolocation.watch\", \"0:\"],\n [\"h1\", \"10:2015\"],\n [\"h1.no_ua_styles_in_article_aside_nav_section\", \"0:\"],\n [\"h2\", \"10:2015\"],\n [\"h3\", \"10:2015\"],\n [\"h4\", \"10:2015\"],\n [\"h5\", \"10:2015\"],\n [\"h6\", \"10:2015\"],\n [\"head\", \"10:2015\"],\n [\"header\", \"10:2015\"],\n [\"hgroup\", \"10:2015\"],\n [\"hr\", \"10:2015\"],\n [\"html\", \"10:2015\"],\n [\"i\", \"10:2015\"],\n [\"iframe\", \"10:2015\"],\n [\"iframe.allow\", \"10:2020\"],\n [\"iframe.allow.accelerometer\", \"0:\"],\n [\"iframe.allow.ambient-light-sensor\", \"0:\"],\n [\"iframe.allow.attribution-reporting\", \"0:\"],\n [\"iframe.allow.bluetooth\", \"0:\"],\n [\"iframe.allow.browsing-topics\", \"0:\"],\n [\"iframe.allow.camera\", \"10:2020\"],\n [\"iframe.allow.compute-pressure\", \"0:\"],\n [\"iframe.allow.display-capture\", \"0:\"],\n [\"iframe.allow.encrypted-media\", \"0:\"],\n [\"iframe.allow.fullscreen\", \"0:\"],\n [\"iframe.allow.gamepad\", \"0:\"],\n [\"iframe.allow.geolocation\", \"0:\"],\n [\"iframe.allow.gyroscope\", \"0:\"],\n [\"iframe.allow.hid\", \"0:\"],\n [\"iframe.allow.idle-detection\", \"0:\"],\n [\"iframe.allow.local-fonts\", \"0:\"],\n [\"iframe.allow.magnetometer\", \"0:\"],\n [\"iframe.allow.microphone\", \"10:2020\"],\n [\"iframe.allow.midi\", \"0:\"],\n [\"iframe.allow.otp-credentials\", \"0:\"],\n [\"iframe.allow.payment\", \"0:\"],\n [\"iframe.allow.picture-in-picture\", \"0:\"],\n [\"iframe.allow.publickey-credentials-create\", \"0:\"],\n [\"iframe.allow.publickey-credentials-get\", \"0:\"],\n [\"iframe.allow.screen-wake-lock\", \"5:2024\"],\n [\"iframe.allow.serial\", \"0:\"],\n [\"iframe.allow.storage-access\", \"0:\"],\n [\"iframe.allow.usb\", \"0:\"],\n [\"iframe.allow.web-share\", \"0:\"],\n [\"iframe.allow.window-management\", \"0:\"],\n [\"iframe.allow.xr-spatial-tracking\", \"0:\"],\n [\"iframe.allowfullscreen\", \"0:\"],\n [\"iframe.browsingtopics\", \"0:\"],\n [\"iframe.credentialless\", \"0:\"],\n [\"iframe.csp\", \"0:\"],\n [\"iframe.height\", \"10:2015\"],\n [\"iframe.loading\", \"10:2023\"],\n [\"iframe.name\", \"10:2015\"],\n [\"iframe.referrerpolicy\", \"10:2020\"],\n [\"iframe.referrerpolicy.no-referrer-when-downgrade\", \"0:\"],\n [\"iframe.referrerpolicy.origin-when-cross-origin\", \"0:\"],\n [\"iframe.referrerpolicy.unsafe-url\", \"0:\"],\n [\"iframe.sandbox\", \"10:2015\"],\n [\"iframe.sandbox.allow-downloads\", \"10:2023\"],\n [\"iframe.sandbox.allow-forms\", \"10:2020\"],\n [\"iframe.sandbox.allow-modals\", \"10:2020\"],\n [\"iframe.sandbox.allow-pointer-lock\", \"0:\"],\n [\"iframe.sandbox.allow-popups\", \"10:2015\"],\n [\"iframe.sandbox.allow-popups-to-escape-sandbox\", \"10:2020\"],\n [\"iframe.sandbox.allow-presentation\", \"0:\"],\n [\"iframe.sandbox.allow-same-origin\", \"10:2020\"],\n [\"iframe.sandbox.allow-scripts\", \"10:2020\"],\n [\"iframe.sandbox.allow-top-navigation\", \"10:2020\"],\n [\"iframe.sandbox.allow-top-navigation-by-user-activation\", \"10:2020\"],\n [\"iframe.sandbox.allow-top-navigation-to-custom-protocols\", \"0:\"],\n [\"iframe.src\", \"10:2015\"],\n [\"iframe.srcdoc\", \"10:2020\"],\n [\"iframe.width\", \"10:2015\"],\n [\"img\", \"10:2015\"],\n [\"img.alt\", \"10:2015\"],\n [\"img.aspect_ratio_computed_from_attributes\", \"10:2021\"],\n [\"img.attributionsrc\", \"0:\"],\n [\"img.crossorigin\", \"10:2015\"],\n [\"img.decoding\", \"10:2020\"],\n [\"img.fetchpriority\", \"5:2024\"],\n [\"img.height\", \"10:2015\"],\n [\"img.ismap\", \"10:2015\"],\n [\"img.loading\", \"10:2022\"],\n [\"img.referrerpolicy\", \"10:2020\"],\n [\"img.referrerpolicy.no-referrer-when-downgrade\", \"0:\"],\n [\"img.referrerpolicy.origin-when-cross-origin\", \"0:\"],\n [\"img.referrerpolicy.unsafe-url\", \"0:\"],\n [\"img.sizes\", \"10:2016\"],\n [\"img.sizes.auto\", \"0:\"],\n [\"img.src\", \"10:2015\"],\n [\"img.srcset\", \"10:2015\"],\n [\"img.usemap\", \"10:2015\"],\n [\"img.width\", \"10:2015\"],\n [\"input\", \"10:2015\"],\n [\"input.accept\", \"10:2015\"],\n [\"input.alpha\", \"0:\"],\n [\"input.alt\", \"10:2015\"],\n [\"input.capture\", \"0:\"],\n [\"input.checked\", \"10:2015\"],\n [\"input.colorspace\", \"0:\"],\n [\"input.dirname\", \"10:2023\"],\n [\"input.disabled\", \"10:2015\"],\n [\"input.form\", \"10:2015\"],\n [\"input.formaction\", \"10:2015\"],\n [\"input.formenctype\", \"10:2015\"],\n [\"input.formmethod\", \"10:2015\"],\n [\"input.formnovalidate\", \"10:2015\"],\n [\"input.formtarget\", \"10:2015\"],\n [\"input.max\", \"10:2015\"],\n [\"input.maxlength\", \"10:2015\"],\n [\"input.min\", \"10:2015\"],\n [\"input.minlength\", \"10:2018\"],\n [\"input.multiple\", \"10:2015\"],\n [\"input.name\", \"10:2015\"],\n [\"input.pattern\", \"10:2015\"],\n [\"input.placeholder\", \"10:2015\"],\n [\"input.popovertarget\", \"5:2024\"],\n [\"input.popovertarget.implicit_anchor_reference\", \"5:2026\"],\n [\"input.popovertargetaction\", \"5:2024\"],\n [\"input.readonly\", \"10:2015\"],\n [\"input.required\", \"10:2015\"],\n [\"input.size\", \"10:2015\"],\n [\"input.src\", \"10:2015\"],\n [\"input.step\", \"10:2015\"],\n [\"input.switch\", \"0:\"],\n [\"input.type_button\", \"10:2015\"],\n [\"input.type_checkbox\", \"10:2015\"],\n [\"input.type_color\", \"0:\"],\n [\"input.type_color.accepts_css_colors\", \"0:\"],\n [\"input.type_color.list\", \"0:\"],\n [\"input.type_date\", \"10:2021\"],\n [\"input.type_date.list\", \"0:\"],\n [\"input.type_datetime-local\", \"10:2021\"],\n [\"input.type_email\", \"10:2015\"],\n [\"input.type_email.list\", \"10:2019\"],\n [\"input.type_file\", \"10:2015\"],\n [\"input.type_hidden\", \"10:2015\"],\n [\"input.type_image\", \"10:2015\"],\n [\"input.type_month\", \"0:\"],\n [\"input.type_number\", \"10:2015\"],\n [\"input.type_number.list\", \"10:2019\"],\n [\"input.type_password\", \"10:2015\"],\n [\"input.type_password.insecure_login_handling\", \"0:\"],\n [\"input.type_radio\", \"10:2015\"],\n [\"input.type_range\", \"10:2017\"],\n [\"input.type_range.labeled_values\", \"0:\"],\n [\"input.type_range.list\", \"0:\"],\n [\"input.type_range.tick_marks\", \"10:2023\"],\n [\"input.type_range.vertical_orientation\", \"5:2024\"],\n [\"input.type_reset\", \"10:2015\"],\n [\"input.type_search\", \"10:2015\"],\n [\"input.type_search.list\", \"10:2019\"],\n [\"input.type_submit\", \"10:2015\"],\n [\"input.type_tel\", \"10:2015\"],\n [\"input.type_tel.list\", \"10:2019\"],\n [\"input.type_text\", \"10:2015\"],\n [\"input.type_text.list\", \"10:2019\"],\n [\"input.type_time\", \"10:2021\"],\n [\"input.type_time.list\", \"0:\"],\n [\"input.type_url\", \"10:2015\"],\n [\"input.type_url.list\", \"10:2019\"],\n [\"input.type_week\", \"0:\"],\n [\"input.webkitdirectory\", \"5:2025\"],\n [\"ins\", \"10:2015\"],\n [\"ins.cite\", \"10:2015\"],\n [\"ins.datetime\", \"10:2015\"],\n [\"kbd\", \"10:2015\"],\n [\"label\", \"10:2015\"],\n [\"label.for\", \"10:2015\"],\n [\"legend\", \"10:2015\"],\n [\"li\", \"10:2015\"],\n [\"li.value\", \"10:2015\"],\n [\"link\", \"10:2015\"],\n [\"link.as\", \"10:2018\"],\n [\"link.blocking\", \"0:\"],\n [\"link.crossorigin\", \"10:2018\"],\n [\"link.disabled\", \"10:2015\"],\n [\"link.fetchpriority\", \"5:2024\"],\n [\"link.href\", \"10:2015\"],\n [\"link.hreflang\", \"10:2015\"],\n [\"link.imagesizes\", \"10:2023\"],\n [\"link.imagesrcset\", \"10:2023\"],\n [\"link.integrity\", \"10:2018\"],\n [\"link.media\", \"10:2015\"],\n [\"link.referrerpolicy\", \"10:2020\"],\n [\"link.referrerpolicy.no-referrer-when-downgrade\", \"0:\"],\n [\"link.referrerpolicy.origin-when-cross-origin\", \"0:\"],\n [\"link.referrerpolicy.unsafe-url\", \"0:\"],\n [\"link.rel\", \"10:2015\"],\n [\"link.rel.alternate_stylesheet\", \"0:\"],\n [\"link.rel.compression-dictionary\", \"0:\"],\n [\"link.rel.dns-prefetch\", \"5:2025\"],\n [\"link.rel.expect\", \"0:\"],\n [\"link.rel.manifest\", \"0:\"],\n [\"link.rel.modulepreload\", \"10:2023\"],\n [\"link.rel.preconnect\", \"10:2020\"],\n [\"link.rel.prefetch\", \"0:\"],\n [\"link.rel.preload\", \"10:2021\"],\n [\"link.rel.preload.as-fetch\", \"10:2021\"],\n [\"link.rel.preload.as-font\", \"10:2021\"],\n [\"link.rel.preload.as-image\", \"10:2021\"],\n [\"link.rel.preload.as-script\", \"10:2021\"],\n [\"link.rel.preload.as-style\", \"10:2021\"],\n [\"link.rel.preload.as-track\", \"0:\"],\n [\"link.sizes\", \"10:2020\"],\n [\"link.type\", \"10:2015\"],\n [\"main\", \"10:2015\"],\n [\"map\", \"10:2015\"],\n [\"map.name\", \"10:2015\"],\n [\"mark\", \"10:2015\"],\n [\"menu\", \"10:2015\"],\n [\"meta\", \"10:2015\"],\n [\"meta.charset\", \"10:2015\"],\n [\"meta.content\", \"10:2015\"],\n [\"meta.http-equiv\", \"10:2015\"],\n [\"meta.http-equiv.content-security-policy\", \"10:2017\"],\n [\"meta.http-equiv.content-type\", \"10:2017\"],\n [\"meta.http-equiv.refresh\", \"10:2015\"],\n [\"meta.name\", \"10:2015\"],\n [\"meta.name.application-title\", \"0:\"],\n [\"meta.name.color-scheme\", \"10:2022\"],\n [\"meta.name.referrer\", \"10:2020\"],\n [\"meta.name.responsive-embedded-sizing\", \"0:\"],\n [\"meta.name.text-scale\", \"0:\"],\n [\"meta.name.theme-color\", \"0:\"],\n [\"meter\", \"10:2017\"],\n [\"meter.high\", \"10:2017\"],\n [\"meter.low\", \"10:2017\"],\n [\"meter.max\", \"10:2017\"],\n [\"meter.min\", \"10:2017\"],\n [\"meter.optimum\", \"10:2017\"],\n [\"meter.value\", \"10:2017\"],\n [\"nav\", \"10:2015\"],\n [\"noscript\", \"10:2015\"],\n [\"object\", \"10:2015\"],\n [\"object.data\", \"10:2015\"],\n [\"object.form\", \"10:2015\"],\n [\"object.height\", \"10:2015\"],\n [\"object.name\", \"10:2015\"],\n [\"object.type\", \"10:2015\"],\n [\"object.width\", \"10:2015\"],\n [\"ol\", \"10:2015\"],\n [\"ol.reversed\", \"10:2020\"],\n [\"ol.start\", \"10:2015\"],\n [\"ol.type\", \"10:2015\"],\n [\"optgroup\", \"10:2015\"],\n [\"optgroup.disabled\", \"0:\"],\n [\"optgroup.label\", \"10:2015\"],\n [\"option\", \"10:2015\"],\n [\"option.disabled\", \"10:2015\"],\n [\"option.label\", \"10:2015\"],\n [\"option.selected\", \"10:2015\"],\n [\"option.value\", \"10:2015\"],\n [\"output\", \"10:2018\"],\n [\"output.for\", \"10:2018\"],\n [\"output.form\", \"10:2018\"],\n [\"output.name\", \"10:2018\"],\n [\"p\", \"10:2015\"],\n [\"picture\", \"10:2016\"],\n [\"pre\", \"10:2015\"],\n [\"progress\", \"10:2015\"],\n [\"progress.max\", \"10:2015\"],\n [\"progress.value\", \"10:2015\"],\n [\"q\", \"10:2015\"],\n [\"q.cite\", \"10:2015\"],\n [\"rp\", \"10:2015\"],\n [\"rt\", \"10:2015\"],\n [\"ruby\", \"10:2015\"],\n [\"s\", \"10:2015\"],\n [\"samp\", \"10:2015\"],\n [\"script\", \"10:2015\"],\n [\"script.async\", \"10:2015\"],\n [\"script.attributionsrc\", \"0:\"],\n [\"script.blocking\", \"0:\"],\n [\"script.crossorigin\", \"10:2016\"],\n [\"script.defer\", \"10:2015\"],\n [\"script.fetchpriority\", \"5:2024\"],\n [\"script.integrity\", \"10:2018\"],\n [\"script.integrity.ed25519_public_key\", \"0:\"],\n [\"script.nomodule\", \"10:2018\"],\n [\"script.referrerpolicy\", \"10:2020\"],\n [\"script.referrerpolicy.no-referrer-when-downgrade\", \"0:\"],\n [\"script.referrerpolicy.origin-when-cross-origin\", \"0:\"],\n [\"script.referrerpolicy.unsafe-url\", \"0:\"],\n [\"script.src\", \"10:2015\"],\n [\"script.type\", \"10:2015\"],\n [\"script.type.importmap\", \"10:2023\"],\n [\"script.type.module\", \"10:2018\"],\n [\"script.type.speculationrules\", \"0:\"],\n [\"script.type.speculationrules.eagerness\", \"0:\"],\n [\"script.type.speculationrules.expects_no_vary_search\", \"0:\"],\n [\"script.type.speculationrules.prefetch\", \"0:\"],\n [\"script.type.speculationrules.prerender\", \"0:\"],\n [\"script.type.speculationrules.referrer_policy\", \"0:\"],\n [\"script.type.speculationrules.relative_to\", \"0:\"],\n [\"script.type.speculationrules.requires\", \"0:\"],\n [\n \"script.type.speculationrules.requires.anonymous-client-ip-when-cross-origin\",\n \"0:\",\n ],\n [\"script.type.speculationrules.source_optional\", \"0:\"],\n [\"script.type.speculationrules.tag\", \"0:\"],\n [\"script.type.speculationrules.target_hint\", \"0:\"],\n [\"script.type.speculationrules.urls\", \"0:\"],\n [\"script.type.speculationrules.where\", \"0:\"],\n [\"search\", \"10:2023\"],\n [\"section\", \"10:2015\"],\n [\"select\", \"10:2015\"],\n [\"select.disabled\", \"10:2015\"],\n [\"select.form\", \"10:2015\"],\n [\"select.hr_in_select\", \"0:\"],\n [\"select.multiple\", \"10:2015\"],\n [\"select.name\", \"10:2015\"],\n [\"select.required\", \"10:2015\"],\n [\"select.size\", \"0:\"],\n [\"selectedcontent\", \"0:\"],\n [\"slot\", \"10:2020\"],\n [\"slot.name\", \"10:2020\"],\n [\"small\", \"10:2015\"],\n [\"source\", \"10:2015\"],\n [\"source.height\", \"10:2022\"],\n [\"source.media\", \"10:2015\"],\n [\"source.sizes\", \"10:2016\"],\n [\"source.src\", \"10:2015\"],\n [\"source.srcset\", \"10:2016\"],\n [\"source.type\", \"10:2015\"],\n [\"source.width\", \"10:2022\"],\n [\"span\", \"10:2015\"],\n [\"strong\", \"10:2015\"],\n [\"style\", \"10:2015\"],\n [\"style.blocking\", \"0:\"],\n [\"style.media\", \"10:2015\"],\n [\"sub\", \"10:2015\"],\n [\"summary\", \"10:2020\"],\n [\"summary.display_list_item\", \"0:\"],\n [\"sup\", \"10:2015\"],\n [\"table\", \"10:2015\"],\n [\"table.align\", \"0:\"],\n [\"table.bgcolor\", \"0:\"],\n [\"table.border\", \"0:\"],\n [\"table.cellpadding\", \"0:\"],\n [\"table.cellspacing\", \"0:\"],\n [\"table.frame\", \"0:\"],\n [\"table.rules\", \"0:\"],\n [\"table.summary\", \"0:\"],\n [\"table.width\", \"0:\"],\n [\"tbody\", \"10:2015\"],\n [\"tbody.align\", \"0:\"],\n [\"tbody.bgcolor\", \"0:\"],\n [\"tbody.char\", \"0:\"],\n [\"tbody.charoff\", \"0:\"],\n [\"tbody.valign\", \"0:\"],\n [\"td\", \"10:2015\"],\n [\"td.abbr\", \"0:\"],\n [\"td.align\", \"0:\"],\n [\"td.axis\", \"0:\"],\n [\"td.bgcolor\", \"0:\"],\n [\"td.char\", \"0:\"],\n [\"td.charoff\", \"0:\"],\n [\"td.colspan\", \"10:2015\"],\n [\"td.headers\", \"10:2015\"],\n [\"td.rowspan\", \"10:2015\"],\n [\"td.rowspan.rowspan_zero\", \"0:\"],\n [\"td.scope\", \"0:\"],\n [\"td.valign\", \"0:\"],\n [\"td.width\", \"0:\"],\n [\"template\", \"10:2015\"],\n [\"template.shadowrootclonable\", \"5:2024\"],\n [\"template.shadowrootcustomelementregistry\", \"0:\"],\n [\"template.shadowrootdelegatesfocus\", \"5:2024\"],\n [\"template.shadowrootmode\", \"5:2024\"],\n [\"template.shadowrootreferencetarget\", \"0:\"],\n [\"template.shadowrootserializable\", \"0:\"],\n [\"template.shadowrootslotassignment\", \"0:\"],\n [\"textarea\", \"10:2015\"],\n [\"textarea.autocomplete\", \"10:2020\"],\n [\"textarea.cols\", \"10:2015\"],\n [\"textarea.dirname\", \"10:2023\"],\n [\"textarea.disabled\", \"10:2015\"],\n [\"textarea.form\", \"10:2015\"],\n [\"textarea.maxlength\", \"10:2015\"],\n [\"textarea.minlength\", \"10:2018\"],\n [\"textarea.name\", \"10:2015\"],\n [\"textarea.placeholder\", \"10:2015\"],\n [\"textarea.placeholder.line_breaks\", \"10:2022\"],\n [\"textarea.readonly\", \"10:2015\"],\n [\"textarea.required\", \"10:2015\"],\n [\"textarea.rows\", \"10:2015\"],\n [\"textarea.wrap\", \"10:2015\"],\n [\"textarea.wrap.hard\", \"0:\"],\n [\"tfoot\", \"10:2015\"],\n [\"tfoot.align\", \"0:\"],\n [\"tfoot.bgcolor\", \"0:\"],\n [\"tfoot.char\", \"0:\"],\n [\"tfoot.charoff\", \"0:\"],\n [\"tfoot.valign\", \"0:\"],\n [\"th\", \"10:2015\"],\n [\"th.abbr\", \"10:2015\"],\n [\"th.align\", \"0:\"],\n [\"th.axis\", \"0:\"],\n [\"th.bgcolor\", \"0:\"],\n [\"th.char\", \"0:\"],\n [\"th.charoff\", \"0:\"],\n [\"th.colspan\", \"10:2015\"],\n [\"th.headers\", \"10:2015\"],\n [\"th.rowspan\", \"10:2015\"],\n [\"th.rowspan.rowspan_zero\", \"0:\"],\n [\"th.scope\", \"10:2015\"],\n [\"th.valign\", \"0:\"],\n [\"th.width\", \"0:\"],\n [\"thead\", \"10:2015\"],\n [\"thead.align\", \"0:\"],\n [\"thead.bgcolor\", \"0:\"],\n [\"thead.char\", \"0:\"],\n [\"thead.charoff\", \"0:\"],\n [\"thead.valign\", \"0:\"],\n [\"time\", \"10:2017\"],\n [\"time.datetime\", \"10:2017\"],\n [\"title\", \"10:2015\"],\n [\"tr\", \"10:2015\"],\n [\"tr.align\", \"0:\"],\n [\"tr.bgcolor\", \"0:\"],\n [\"tr.char\", \"0:\"],\n [\"tr.charoff\", \"0:\"],\n [\"tr.valign\", \"0:\"],\n [\"track\", \"10:2015\"],\n [\"track.default\", \"10:2015\"],\n [\"track.kind\", \"10:2015\"],\n [\"track.label\", \"10:2015\"],\n [\"track.src\", \"10:2016\"],\n [\"track.srclang\", \"10:2015\"],\n [\"u\", \"10:2015\"],\n [\"ul\", \"10:2015\"],\n [\"var\", \"10:2015\"],\n [\"video\", \"10:2015\"],\n [\"video.aspect_ratio_computed_from_attributes\", \"10:2020\"],\n [\"video.autoplay\", \"10:2016\"],\n [\"video.controls\", \"10:2015\"],\n [\"video.controlslist\", \"0:\"],\n [\"video.crossorigin\", \"10:2020\"],\n [\"video.disablepictureinpicture\", \"0:\"],\n [\"video.disableremoteplayback\", \"0:\"],\n [\"video.height\", \"10:2015\"],\n [\"video.loading\", \"0:\"],\n [\"video.loop\", \"10:2015\"],\n [\"video.muted\", \"10:2015\"],\n [\"video.playsinline\", \"0:\"],\n [\"video.poster\", \"10:2015\"],\n [\"video.preload\", \"10:2015\"],\n [\"video.src\", \"10:2015\"],\n [\"video.width\", \"10:2015\"],\n [\"wbr\", \"10:2015\"],\n]);\nconst globalAttributes = new Map([\n [\"accesskey\", \"10:2015\"],\n [\"autocapitalize\", \"0:\"],\n [\"autocorrect\", \"0:\"],\n [\"autofocus\", \"10:2023\"],\n [\"contenteditable\", \"10:2015\"],\n [\"contenteditable.plaintext-only\", \"5:2025\"],\n [\"enterkeyhint\", \"10:2021\"],\n [\"exportparts\", \"10:2020\"],\n [\"inert\", \"10:2023\"],\n [\"inert.ignores_find_in_page\", \"0:\"],\n [\"inputmode\", \"10:2021\"],\n [\"is\", \"0:\"],\n [\"lang\", \"10:2015\"],\n [\"nonce\", \"10:2022\"],\n [\"part\", \"10:2020\"],\n [\"popover\", \"5:2024\"],\n [\"popover.hint\", \"0:\"],\n [\"slot\", \"10:2020\"],\n [\"spellcheck\", \"10:2017\"],\n [\"style\", \"10:2015\"],\n [\"tabindex\", \"10:2015\"],\n [\"title\", \"10:2015\"],\n [\"title.multi-line_titles\", \"10:2018\"],\n [\"translate\", \"10:2023\"],\n [\"virtualkeyboardpolicy\", \"0:\"],\n [\"writingsuggestions\", \"0:\"],\n]);\nexport {\n elements,\n globalAttributes,\n BASELINE_HIGH,\n BASELINE_LOW,\n BASELINE_FALSE,\n};\n","/**\n * @param {string} name Element name\n * @returns {boolean}\n */\nexport function isCustomElement(name) {\n return name.includes(\"-\");\n}\n","/**\n * @import {\n * ElementAdapter,\n * UseBaselineOptions,\n * UseBaselineResult\n * } from \"../types\"\n */\nimport {\n elements,\n globalAttributes,\n BASELINE_HIGH,\n BASELINE_LOW,\n} from \"../utils/baseline\";\nimport { isCustomElement } from \"../utils/node\";\n\n/**\n * @type {{\n * noBaselineElement: \"noBaselineElement\";\n * notBaselineElementAttribute: \"notBaselineElementAttribute\";\n * notBaselineGlobalAttribute: \"notBaselineGlobalAttribute\";\n * }}\n */\nexport const USE_BASELINE_MESSAGE_IDS = {\n noBaselineElement: \"noBaselineElement\",\n notBaselineElementAttribute: \"notBaselineElementAttribute\",\n notBaselineGlobalAttribute: \"notBaselineGlobalAttribute\",\n};\n\n/**\n * @param {string[]} parts\n * @returns {string}\n */\nfunction toStatusKey(...parts) {\n return parts.map((part) => part.toLowerCase().trim()).join(\".\");\n}\n\n/**\n * @param {string} encoded\n * @returns {[number, number]}\n */\nfunction decodeStatus(encoded) {\n const [status, year = NaN] = encoded.split(\":\").map((part) => Number(part));\n return [status, year];\n}\n\n/**\n * @param {string} element\n * @param {string} key\n * @param {string} value\n * @returns {string | null}\n */\nfunction getElementAttributeSpecificStatusKey(element, key, value) {\n const elementName = element.toLowerCase();\n const attributeKey = key.toLowerCase();\n const attributeValue = value.toLowerCase();\n\n // <input type=\"...\">\n if (elementName === \"input\" && attributeKey === \"type\") {\n return `input.type_${attributeValue}`;\n }\n\n // <a href=\"sms:0000..\">\n if (\n elementName === \"a\" &&\n attributeKey === \"href\" &&\n attributeValue.trim().startsWith(\"sms:\")\n ) {\n return \"a.href.href_sms\";\n }\n\n // <td rowspan=\"0\"> <th rowspan=\"0\">\n if (\n (elementName === \"td\" || elementName === \"th\") &&\n attributeKey === \"rowspan\" &&\n attributeValue === \"0\"\n ) {\n return `${elementName}.rowspan.rowspan_zero`;\n }\n return null;\n}\n\n/**\n * @template ElementNode\n * @template AttributeKeyNode\n * @template AttributeValueNode\n * @param {UseBaselineOptions} options\n */\nexport function useBaseline({ available }) {\n const baseYear = typeof available === \"number\" ? available : null;\n const baseStatus = available === \"widely\" ? BASELINE_HIGH : BASELINE_LOW;\n const availability = String(available);\n\n /**\n * @param {string} encoded\n * @returns {boolean}\n */\n function isSupported(encoded) {\n const [status, year = NaN] = decodeStatus(encoded);\n if (baseYear) {\n return year <= baseYear;\n }\n return status >= baseStatus;\n }\n\n /**\n * @param {string} element\n * @param {string} key\n * @returns {boolean}\n */\n function isSupportedElementAttributeKey(element, key) {\n const elementStatus = elements.get(toStatusKey(element, key));\n if (!elementStatus) {\n return true;\n }\n return isSupported(elementStatus);\n }\n\n /**\n * @param {string} key\n * @returns {boolean}\n */\n function isSupportedGlobalAttributeKey(key) {\n const globalAttrStatus = globalAttributes.get(toStatusKey(key));\n if (!globalAttrStatus) {\n return true;\n }\n return isSupported(globalAttrStatus);\n }\n\n /**\n * @param {string} element\n * @param {string} key\n * @param {string} value\n * @returns {boolean}\n */\n function isSupportedElementAttributeKeyValue(element, key, value) {\n const elementStatus = elements.get(toStatusKey(element, key, value));\n if (!elementStatus) {\n return true;\n }\n return isSupported(elementStatus);\n }\n\n /**\n * @param {string} key\n * @param {string} value\n * @returns {boolean}\n */\n function isSupportedGlobalAttributeKeyValue(key, value) {\n const globalAttrStatus = globalAttributes.get(toStatusKey(key, value));\n if (!globalAttrStatus) {\n return true;\n }\n return isSupported(globalAttrStatus);\n }\n\n /**\n * @param {string} element\n * @param {string} key\n * @param {string} value\n * @returns {boolean}\n */\n function isSupportedElementSpecificAttributeKeyValue(element, key, value) {\n const statusKey = getElementAttributeSpecificStatusKey(element, key, value);\n if (!statusKey) {\n return true;\n }\n const elementStatus = elements.get(statusKey);\n if (!elementStatus) {\n return true;\n }\n return isSupported(elementStatus);\n }\n\n /**\n * @param {string} element\n * @returns {boolean}\n */\n function isSupportedElement(element) {\n const elementEncoded = elements.get(element);\n if (!elementEncoded) {\n return true;\n }\n return isSupported(elementEncoded);\n }\n\n return {\n /**\n * @param {ElementAdapter} adapter\n * @returns {UseBaselineResult}\n */\n checkAttributes(adapter) {\n const elementName = adapter.getElementName();\n if (isCustomElement(elementName)) {\n return [];\n }\n\n if (!isSupportedElement(elementName)) {\n return [\n {\n messageId: USE_BASELINE_MESSAGE_IDS.noBaselineElement,\n loc: adapter.getLocation(),\n data: {\n element: `<${elementName}>`,\n availability,\n },\n },\n ];\n }\n\n /** @type {UseBaselineResult} */\n const result = [];\n\n for (const attribute of adapter.getAttributes()) {\n const attributeKey = attribute.getKey();\n if (!attributeKey) {\n continue;\n }\n const attributeKeyValue = attributeKey.getValue();\n const attributeKeyHasExpression = attributeKey.hasExpression();\n if (!attributeKeyValue || attributeKeyHasExpression) {\n continue;\n }\n const attributeValue = attribute.getValue();\n const attributeValueValue = attributeValue?.getValue();\n if (attributeValueValue === null) {\n continue;\n }\n\n if (!isSupportedElementAttributeKey(elementName, attributeKeyValue)) {\n result.push({\n messageId: USE_BASELINE_MESSAGE_IDS.notBaselineElementAttribute,\n loc: attributeKey.getLocation(),\n data: {\n element: `<${elementName}>`,\n attr: attributeKey.getValue(),\n availability,\n },\n });\n } else if (!isSupportedGlobalAttributeKey(attributeKeyValue)) {\n result.push({\n messageId: USE_BASELINE_MESSAGE_IDS.notBaselineGlobalAttribute,\n loc: attributeKey.getLocation(),\n data: {\n attr: attributeKey.getValue(),\n availability,\n },\n });\n } else if (attributeValue !== null) {\n if (\n !isSupportedElementAttributeKeyValue(\n elementName,\n attributeKeyValue,\n attributeValueValue || \"\"\n ) ||\n !isSupportedElementSpecificAttributeKeyValue(\n elementName,\n attributeKeyValue,\n attributeValueValue || \"\"\n )\n ) {\n result.push({\n messageId: USE_BASELINE_MESSAGE_IDS.notBaselineElementAttribute,\n loc: attributeValue.getLocation(),\n data: {\n element: `<${elementName}>`,\n attr: `${attributeKeyValue}=\"${attributeValueValue}\"`,\n availability,\n },\n });\n } else if (\n !isSupportedGlobalAttributeKeyValue(\n attributeKeyValue,\n attributeValueValue || \"\"\n )\n ) {\n result.push({\n messageId: USE_BASELINE_MESSAGE_IDS.notBaselineGlobalAttribute,\n loc: attributeValue.getLocation(),\n data: {\n attr: `${attributeKeyValue}=\"${attributeValueValue}\"`,\n availability,\n },\n });\n }\n }\n }\n return result;\n },\n };\n}\n","/**\n * @import {\n * ElementAdapter,\n * NoIneffectiveAttrsResult\n * } from \"../types\"\n */\n\n/**\n * @typedef {{\n * attr: string;\n * when: (adapter: ElementAdapter) => boolean;\n * message: string;\n * }} AttributeChecker\n */\n\n/**\n * @type {{\n * ineffective: \"ineffective\";\n * }}\n */\nexport const NO_INEFFECTIVE_ATTRS_MESSAGE_IDS = {\n ineffective: \"ineffective\",\n};\n\nexport function noIneffectiveAttrs() {\n /**\n * @param {ElementAdapter} adapter\n * @param {string} attrName\n * @returns {string | null}\n */\n function getAttrValue(adapter, attrName) {\n for (const attribute of adapter.getAttributes()) {\n const attrKeyValue = attribute.getKey()?.getValue();\n if (attrKeyValue && attrKeyValue === attrName) {\n const value = attribute.getValue()?.getValue();\n return value || null;\n }\n }\n return null;\n }\n\n /**\n * @param {ElementAdapter} adapter\n * @param {string} attrName\n * @returns {boolean}\n */\n function hasAttr(adapter, attrName) {\n for (const attribute of adapter.getAttributes()) {\n const keyValue = attribute.getKey()?.getValue();\n if (\n keyValue &&\n keyValue.toLocaleLowerCase() === attrName.toLocaleLowerCase()\n ) {\n return true;\n }\n }\n return false;\n }\n /**\n * @param {ElementAdapter} adapter\n * @param {string} attrName\n * @returns {boolean}\n */\n function isAttrValueExpression(adapter, attrName) {\n return adapter.getAttributes().some((attr) => {\n const key = attr.getKey();\n return (\n key?.getValue() === attrName && !!attr?.getValue()?.hasExpression()\n );\n });\n }\n\n /** @type {Record<string, AttributeChecker[]>} */\n const checkersByTag = {\n input: [\n {\n attr: \"multiple\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return [\n \"text\",\n \"password\",\n \"radio\",\n \"checkbox\",\n \"image\",\n \"hidden\",\n \"reset\",\n \"button\",\n ].includes(type);\n },\n message: 'The \"multiple\" attribute has no effect on this input type.',\n },\n {\n attr: \"accept\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return type !== \"file\";\n },\n message:\n 'The \"accept\" attribute has no effect unless input type is \"file\".',\n },\n {\n attr: \"readonly\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return [\"checkbox\", \"radio\", \"file\", \"range\", \"color\"].includes(type);\n },\n message: 'The \"readonly\" attribute has no effect on this input type.',\n },\n {\n attr: \"min\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"number\",\n \"range\",\n \"date\",\n \"datetime-local\",\n \"month\",\n \"time\",\n \"week\",\n ].includes(type);\n },\n message:\n 'The \"min\" attribute only works with numeric, date, and time input types.',\n },\n {\n attr: \"max\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"number\",\n \"range\",\n \"date\",\n \"datetime-local\",\n \"month\",\n \"time\",\n \"week\",\n ].includes(type);\n },\n message:\n 'The \"max\" attribute only works with numeric, date, and time input types.',\n },\n {\n attr: \"step\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"number\",\n \"range\",\n \"date\",\n \"datetime-local\",\n \"month\",\n \"time\",\n \"week\",\n ].includes(type);\n },\n message:\n 'The \"step\" attribute only works with numeric, date, and time input types.',\n },\n {\n attr: \"pattern\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n ].includes(type);\n },\n message:\n 'The \"pattern\" attribute only works with text-based input types.',\n },\n {\n attr: \"maxlength\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n ].includes(type);\n },\n message:\n 'The \"maxlength\" attribute only works with text-based input types.',\n },\n {\n attr: \"minlength\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n ].includes(type);\n },\n message:\n 'The \"minlength\" attribute only works with text-based input types.',\n },\n {\n attr: \"placeholder\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n \"number\",\n ].includes(type);\n },\n message:\n 'The \"placeholder\" attribute has no effect on this input type.',\n },\n {\n attr: \"size\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n ].includes(type);\n },\n message: 'The \"size\" attribute only works with text-based input types.',\n },\n {\n attr: \"list\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return [\n \"checkbox\",\n \"radio\",\n \"file\",\n \"submit\",\n \"image\",\n \"reset\",\n \"button\",\n \"hidden\",\n ].includes(type);\n },\n message: 'The \"list\" attribute has no effect on this input type.',\n },\n ],\n script: [\n {\n attr: \"defer\",\n when: (adapter) => !hasAttr(adapter, \"src\"),\n message: 'The \"defer\" attribute has no effect on inline scripts.',\n },\n {\n attr: \"async\",\n when: (adapter) => !hasAttr(adapter, \"src\"),\n message: 'The \"async\" attribute has no effect on inline scripts.',\n },\n ],\n a: [\n {\n attr: \"download\",\n when: (adapter) => !hasAttr(adapter, \"href\"),\n message: 'The \"download\" attribute has no effect without an \"href\".',\n },\n {\n attr: \"ping\",\n when: (adapter) => !hasAttr(adapter, \"href\"),\n message: 'The \"ping\" attribute has no effect without an \"href\".',\n },\n {\n attr: \"target\",\n when: (adapter) => !hasAttr(adapter, \"href\"),\n message: 'The \"target\" attribute has no effect without an \"href\".',\n },\n ],\n audio: [\n {\n attr: \"controlslist\",\n when: (adapter) => !hasAttr(adapter, \"controls\"),\n message:\n 'The \"controlslist\" attribute has no effect without \"controls\".',\n },\n ],\n video: [\n {\n attr: \"controlslist\",\n when: (adapter) => !hasAttr(adapter, \"controls\"),\n message:\n 'The \"controlslist\" attribute has no effect without \"controls\".',\n },\n ],\n form: [\n {\n attr: \"enctype\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"method\")) {\n return false;\n }\n const method = getAttrValue(adapter, \"method\") || \"get\";\n return method ? method.toLowerCase() !== \"post\" : false;\n },\n message:\n 'The \"enctype\" attribute only has effect when method is \"post\".',\n },\n ],\n button: [\n {\n attr: \"formaction\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"submit\";\n return type !== \"submit\";\n },\n message: 'The \"formaction\" attribute only works with type=\"submit\".',\n },\n {\n attr: \"formmethod\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"submit\";\n return type !== \"submit\";\n },\n message: 'The \"formmethod\" attribute only works with type=\"submit\".',\n },\n {\n attr: \"formenctype\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"submit\";\n return type !== \"submit\";\n },\n message: 'The \"formenctype\" attribute only works with type=\"submit\".',\n },\n {\n attr: \"formnovalidate\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"submit\";\n return type !== \"submit\";\n },\n message:\n 'The \"formnovalidate\" attribute only works with type=\"submit\".',\n },\n {\n attr: \"formtarget\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"submit\";\n return type !== \"submit\";\n },\n message: 'The \"formtarget\" attribute only works with type=\"submit\".',\n },\n ],\n area: [\n {\n attr: \"download\",\n when: (adapter) => !hasAttr(adapter, \"href\"),\n message: 'The \"download\" attribute has no effect without an \"href\".',\n },\n {\n attr: \"ping\",\n when: (adapter) => !hasAttr(adapter, \"href\"),\n message: 'The \"ping\" attribute has no effect without an \"href\".',\n },\n {\n attr: \"target\",\n when: (adapter) => !hasAttr(adapter, \"href\"),\n message: 'The \"target\" attribute has no effect without an \"href\".',\n },\n ],\n img: [\n {\n attr: \"usemap\",\n when: (adapter) => hasAttr(adapter, \"ismap\"),\n message: 'The \"usemap\" and \"ismap\" attributes cannot be used together.',\n },\n ],\n };\n\n return {\n /**\n * @param {ElementAdapter} adapter\n * @returns {NoIneffectiveAttrsResult}\n */\n checkAttributes(adapter) {\n const elementName = adapter.getElementName();\n const tagCheckers = checkersByTag[elementName];\n\n if (!tagCheckers) {\n return [];\n }\n\n /** @type {NoIneffectiveAttrsResult} */\n const result = [];\n for (const check of tagCheckers) {\n for (const attribute of adapter.getAttributes()) {\n const attributeKey = attribute.getKey();\n if (!attributeKey) {\n continue;\n }\n if (attributeKey.hasExpression()) {\n continue;\n }\n const attributeValue = attribute.getValue();\n if (attributeValue?.hasExpression()) {\n continue;\n }\n const attributeKeyValue = attributeKey.getValue();\n const attributeValueValue = attributeValue?.getValue();\n if (\n attributeValueValue === null ||\n attributeKeyValue?.toLowerCase() !== check.attr\n ) {\n continue;\n }\n\n if (check.when(adapter)) {\n result.push({\n loc: attributeKey.getLocation(),\n messageId: NO_INEFFECTIVE_ATTRS_MESSAGE_IDS.ineffective,\n data: {\n message: check.message,\n },\n });\n }\n }\n }\n\n return result;\n },\n };\n}\n","/**\n * @import {\n * ElementAdapter,\n * NoObsoleteTagsResult\n * } from \"../types\"\n */\n\n// https://html.spec.whatwg.org/#non-conforming-features\nconst OBSOLETE_TAGS = [\n \"applet\",\n \"acronym\",\n \"bgsound\",\n \"dir\",\n \"frame\",\n \"frameset\",\n \"noframes\",\n \"isindex\",\n \"keygen\",\n \"listing\",\n \"menuitem\",\n \"nextid\",\n \"noembed\",\n \"plaintext\",\n \"rb\",\n \"rtc\",\n \"strike\",\n \"xmp\",\n \"basefont\",\n \"big\",\n \"blink\",\n \"center\",\n \"font\",\n \"marquee\",\n \"multicol\",\n \"nobr\",\n \"spacer\",\n \"tt\",\n];\n\nconst OBSOLETE_TAGS_SET = new Set(OBSOLETE_TAGS);\n\n/**\n * @type {{\n * unexpected: \"unexpected\";\n * }}\n */\nexport const NO_OBSOLETE_TAGS_MESSAGE_IDS = {\n unexpected: \"unexpected\",\n};\n\nexport function noObsoleteTags() {\n return {\n /**\n * @param {ElementAdapter} adapter\n * @returns {NoObsoleteTagsResult}\n */\n checkElement(adapter) {\n const tagName = adapter.getElementName();\n\n if (OBSOLETE_TAGS_SET.has(tagName)) {\n return [\n {\n messageId: NO_OBSOLETE_TAGS_MESSAGE_IDS.unexpected,\n loc: adapter.getOpenStartLocation(),\n data: {\n tag: tagName,\n },\n },\n ];\n }\n\n return [];\n },\n };\n}\n","/**\n * @typedef {Object} ObsoleteAttrConfig\n * @property {string[]} elements - List of HTML elements where this attribute is\n * obsolete. Use \"*\" for all elements.\n * @property {string} suggestion - Suggestion for what to use instead of this\n * obsolete attribute.\n */\n\n/** @typedef {Record<string, ObsoleteAttrConfig[]>} ObsoleteAttrs */\n\n// https://html.spec.whatwg.org/dev/obsolete.html#non-conforming-features\n/** @type {ObsoleteAttrs} */\nexport const OBSOLETE_ATTRS = {\n charset: [\n {\n elements: [\"a\", \"link\"],\n suggestion:\n \"Use an HTTP `Content-Type` header on the linked resource instead.\",\n },\n {\n elements: [\"script\"],\n suggestion:\n \"It is redundant to specify it on the script element since it inherits from the document.\",\n },\n ],\n coords: [\n {\n elements: [\"a\"],\n suggestion: \"Use area instead of a for image maps.\",\n },\n ],\n shape: [\n {\n elements: [\"a\"],\n suggestion: \"Use area instead of a for image maps.\",\n },\n ],\n methods: [\n {\n elements: [\"a\", \"link\"],\n suggestion: \"Use the HTTP OPTIONS feature instead.\",\n },\n ],\n name: [\n {\n elements: [\"a\", \"embed\", \"img\", \"option\"],\n suggestion: \"Use the id attribute instead.\",\n },\n ],\n rev: [\n {\n elements: [\"a\", \"link\"],\n suggestion:\n 'Use the rel attribute instead, with an opposite term. (For example, instead of rev=\"made\", use rel=\"author\".)',\n },\n ],\n urn: [\n {\n elements: [\"a\", \"link\"],\n suggestion:\n \"Specify the preferred persistent identifier using the href attribute instead.\",\n },\n ],\n accept: [\n {\n elements: [\"form\"],\n suggestion:\n \"Use the accept attribute directly on the input elements instead.\",\n },\n ],\n hreflang: [\n {\n elements: [\"area\"],\n suggestion:\n \"These attributes do not do anything useful, and for historical reasons there are no corresponding IDL attributes on area elements. Omit them altogether.\",\n },\n ],\n type: [\n {\n elements: [\"area\"],\n suggestion:\n \"These attributes do not do anything useful, and for historical reasons there are no corresponding IDL attributes on area elements. Omit them altogether.\",\n },\n {\n elements: [\"li\"],\n suggestion: \"Use CSS instead.\",\n },\n {\n elements: [\"menu\"],\n suggestion:\n \"To implement a custom context menu, use script to handle the contextmenu event. For toolbar menus, omit the attribute.\",\n },\n {\n elements: [\"style\"],\n suggestion:\n \"Omit the attribute for CSS; for data blocks, use script as the container instead of style.\",\n },\n {\n elements: [\"ul\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n nohref: [\n {\n elements: [\"area\"],\n suggestion:\n \"Omitting the href attribute is sufficient; the nohref attribute is unnecessary. Omit it altogether.\",\n },\n ],\n profile: [\n {\n elements: [\"head\"],\n suggestion: \"Unnecessary. Omit it altogether.\",\n },\n ],\n manifest: [\n {\n elements: [\"html\"],\n suggestion: \"Use service workers instead.\",\n },\n ],\n version: [\n {\n elements: [\"html\"],\n suggestion: \"Unnecessary. Omit it altogether.\",\n },\n ],\n ismap: [\n {\n elements: [\"input\"],\n suggestion:\n \"Unnecessary. Omit it altogether. All input elements with a type attribute in the Image Button state are processed as server-side image maps.\",\n },\n ],\n usemap: [\n {\n elements: [\"input\", \"object\"],\n suggestion: \"Use the img element for image maps.\",\n },\n ],\n longdesc: [\n {\n elements: [\"iframe\", \"img\"],\n suggestion:\n \"Use a regular a element to link to the description, or (in the case of images) use an image map to provide a link from the image to the image's description.\",\n },\n ],\n lowsrc: [\n {\n elements: [\"img\"],\n suggestion:\n \"Use a progressive JPEG image (given in the src attribute), instead of using two separate images.\",\n },\n ],\n target: [\n {\n elements: [\"link\"],\n suggestion: \"Unnecessary. Omit it altogether.\",\n },\n ],\n label: [\n {\n elements: [\"menu\"],\n suggestion:\n \"To implement a custom context menu, use script to handle the contextmenu event.\",\n },\n ],\n contextmenu: [\n {\n elements: [\"*\"],\n suggestion:\n \"To implement a custom context menu, use script to handle the contextmenu event.\",\n },\n ],\n onshow: [\n {\n elements: [\"*\"],\n suggestion:\n \"To implement a custom context menu, use script to handle the contextmenu event.\",\n },\n ],\n scheme: [\n {\n elements: [\"meta\"],\n suggestion:\n \"Use only one scheme per field, or make the scheme declaration part of the value.\",\n },\n ],\n archive: [\n {\n elements: [\"object\"],\n suggestion: \"Use the data and type attributes to invoke plugins.\",\n },\n ],\n classid: [\n {\n elements: [\"object\"],\n suggestion: \"Use the data and type attributes to invoke plugins.\",\n },\n ],\n code: [\n {\n elements: [\"object\"],\n suggestion: \"Use the data and type attributes to invoke plugins.\",\n },\n ],\n codebase: [\n {\n elements: [\"object\"],\n suggestion: \"Use the data and type attributes to invoke plugins.\",\n },\n ],\n codetype: [\n {\n elements: [\"object\"],\n suggestion: \"Use the data and type attributes to invoke plugins.\",\n },\n ],\n declare: [\n {\n elements: [\"object\"],\n suggestion:\n \"Repeat the object element completely each time the resource is to be reused.\",\n },\n ],\n standby: [\n {\n elements: [\"object\"],\n suggestion:\n \"Optimize the linked resource so that it loads quickly or, at least, incrementally.\",\n },\n ],\n typemustmatch: [\n {\n elements: [\"object\"],\n suggestion: \"Avoid using object elements with untrusted resources.\",\n },\n ],\n language: [\n {\n elements: [\"script\"],\n suggestion:\n \"Omit the attribute for JavaScript; for data blocks, use the type attribute instead.\",\n },\n ],\n event: [\n {\n elements: [\"script\"],\n suggestion: \"Use DOM events mechanisms to register event listeners.\",\n },\n ],\n for: [\n {\n elements: [\"script\"],\n suggestion: \"Use DOM events mechanisms to register event listeners.\",\n },\n ],\n datapagesize: [\n {\n elements: [\"table\"],\n suggestion: \"Unnecessary. Omit it altogether.\",\n },\n ],\n summary: [\n {\n elements: [\"table\"],\n suggestion:\n \"Use one of the techniques for describing tables given in the table section instead.\",\n },\n ],\n abbr: [\n {\n elements: [\"td\"],\n suggestion:\n \"Use text that begins in an unambiguous and terse manner, and include any more elaborate text after that. The title attribute can also be useful in including more detailed text, so that the cell's contents can be made terse. If it's a heading, use th (which has an abbr attribute).\",\n },\n ],\n axis: [\n {\n elements: [\"td\", \"th\"],\n suggestion: \"Use the scope attribute on the relevant th.\",\n },\n ],\n scope: [\n {\n elements: [\"td\"],\n suggestion: \"Use th elements for heading cells.\",\n },\n ],\n datasrc: [\n {\n elements: [\n \"a\",\n \"button\",\n \"div\",\n \"frame\",\n \"iframe\",\n \"img\",\n \"input\",\n \"label\",\n \"legend\",\n \"marquee\",\n \"object\",\n \"option\",\n \"select\",\n \"span\",\n \"table\",\n \"textarea\",\n ],\n suggestion:\n \"Use script and a mechanism such as XMLHttpRequest to populate the page dynamically.\",\n },\n ],\n datafld: [\n {\n elements: [\n \"a\",\n \"button\",\n \"div\",\n \"fieldset\",\n \"frame\",\n \"iframe\",\n \"img\",\n \"input\",\n \"label\",\n \"legend\",\n \"marquee\",\n \"object\",\n \"select\",\n \"span\",\n \"textarea\",\n ],\n suggestion:\n \"Use script and a mechanism such as XMLHttpRequest to populate the page dynamically.\",\n },\n ],\n dataformatas: [\n {\n elements: [\n \"button\",\n \"div\",\n \"input\",\n \"label\",\n \"legend\",\n \"marquee\",\n \"object\",\n \"option\",\n \"select\",\n \"span\",\n \"table\",\n ],\n suggestion:\n \"Use script and a mechanism such as XMLHttpRequest to populate the page dynamically.\",\n },\n ],\n dropzone: [\n {\n elements: [\"*\"],\n suggestion:\n \"Use script to handle the dragenter and dragover events instead.\",\n },\n ],\n alink: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n bgcolor: [\n {\n elements: [\"body\", \"table\", \"td\", \"th\", \"tr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n bottommargin: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n leftmargin: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n link: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n marginheight: [\n {\n elements: [\"body\", \"iframe\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n marginwidth: [\n {\n elements: [\"body\", \"iframe\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n rightmargin: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n text: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n topmargin: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n vlink: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n clear: [\n {\n elements: [\"br\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n align: [\n {\n elements: [\n \"caption\",\n \"col\",\n \"div\",\n \"embed\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"hr\",\n \"iframe\",\n \"input\",\n \"img\",\n \"legend\",\n \"object\",\n \"p\",\n \"table\",\n \"tbody\",\n \"thead\",\n \"tfoot\",\n \"td\",\n \"th\",\n \"tr\",\n ],\n suggestion: \"Use CSS instead.\",\n },\n ],\n char: [\n {\n elements: [\"col\", \"tbody\", \"thead\", \"tfoot\", \"td\", \"th\", \"tr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n charoff: [\n {\n elements: [\"col\", \"tbody\", \"thead\", \"tfoot\", \"td\", \"th\", \"tr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n valign: [\n {\n elements: [\"col\", \"tbody\", \"thead\", \"tfoot\", \"td\", \"th\", \"tr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n width: [\n {\n elements: [\"col\", \"hr\", \"pre\", \"table\", \"td\", \"th\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n compact: [\n {\n elements: [\"dl\", \"menu\", \"ol\", \"ul\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n hspace: [\n {\n elements: [\"embed\", \"iframe\", \"input\", \"img\", \"object\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n vspace: [\n {\n elements: [\"embed\", \"iframe\", \"input\", \"img\", \"object\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n color: [\n {\n elements: [\"hr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n noshade: [\n {\n elements: [\"hr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n size: [\n {\n elements: [\"hr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n allowtransparency: [\n {\n elements: [\"iframe\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n frameborder: [\n {\n elements: [\"iframe\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n framespacing: [\n {\n elements: [\"iframe\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n scrolling: [\n {\n elements: [\"iframe\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n border: [\n {\n elements: [\"input\", \"img\", \"object\", \"table\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n frame: [\n {\n elements: [\"table\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n bordercolor: [\n {\n elements: [\"table\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n cellpadding: [\n {\n elements: [\"table\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n cellspacing: [\n {\n elements: [\"table\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n height: [\n {\n elements: [\"table\", \"thead\", \"tbody\", \"tfoot\", \"td\", \"th\", \"tr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n rules: [\n {\n elements: [\"table\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n nowrap: [\n {\n elements: [\"td\", \"th\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n background: [\n {\n elements: [\"body\", \"table\", \"thead\", \"tbody\", \"tfoot\", \"tr\", \"td\", \"th\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n};\n","/**\n * @import {\n * ElementAdapter,\n * NoObsoleteAttrsResult\n * } from \"../types\"\n */\n\nimport { OBSOLETE_ATTRS } from \"../utils/obsolete-attrs\";\n\n/**\n * @type {{\n * obsolete: \"obsolete\";\n * }}\n */\nexport const NO_OBSOLETE_ATTRS_MESSAGE_IDS = {\n obsolete: \"obsolete\",\n};\n\nexport function noObsoleteAttrs() {\n return {\n /**\n * @param {ElementAdapter} adapter\n * @returns {NoObsoleteAttrsResult}\n */\n checkAttributes(adapter) {\n const elementName = adapter.getElementName();\n\n /** @type {NoObsoleteAttrsResult} */\n const result = [];\n\n for (const attribute of adapter.getAttributes()) {\n const attributeKey = attribute.getKey();\n if (!attributeKey) {\n continue;\n }\n\n const attrKeyValue = attributeKey.getValue();\n const attributeValue = attribute.getValue();\n const attrValueValueValue = attributeValue?.getValue();\n // Skip if attribute key is an expression or doesn't have a value\n if (\n attributeKey.hasExpression() ||\n attrKeyValue === null ||\n attrValueValueValue === null\n ) {\n continue;\n }\n\n const attrName = attrKeyValue.toLowerCase();\n\n // Check if this attribute is in the obsolete list\n if (OBSOLETE_ATTRS[attrName]) {\n const obsoleteConfigs = OBSOLETE_ATTRS[attrName];\n\n // Check if this attribute is obsolete for this specific element\n for (const config of obsoleteConfigs) {\n // Handle wildcard (*) for all elements\n if (\n config.elements.includes(\"*\") ||\n config.elements.includes(elementName)\n ) {\n result.push({\n loc: attributeKey.getLocation(),\n messageId: NO_OBSOLETE_ATTRS_MESSAGE_IDS.obsolete,\n data: {\n attr: attrName,\n element: elementName,\n suggestion: config.suggestion,\n },\n });\n break;\n }\n }\n }\n }\n\n return result;\n },\n };\n}\n","/**\n * @import {\n * Range,\n * SourceLocation\n * } from \"@html-eslint/types\"\n * @import {\n * AttributeValueAdapter,\n * ClassSpacingResult\n * } from \"../types\"\n */\n\nconst CLASS_BETWEEN_EXTRA_SPACES_REGEX = /\\s{2,}/;\nconst CLASS_BETWEEN_EXTRA_SPACES_REGEX_GLOBAL = /\\s{2,}/g;\nconst LINE_BREAK_REGEX = /\\r\\n|[\\r\\n\\u2028\\u2029]/u;\n/**\n * @type {{\n * extraSpacing: \"extraSpacing\";\n * }}\n */\nexport const CLASS_SPACING_MESSAGE_IDS = {\n extraSpacing: \"extraSpacing\",\n};\n\n/**\n * @param {string} value\n * @param {SourceLocation} loc\n * @param {Range} range\n * @param {ClassSpacingResult} result\n */\nfunction checkLeading(value, loc, range, result) {\n // Skip leading whitespace check if value starts with newline\n if (value.startsWith(\"\\n\")) {\n return;\n }\n\n if (value.startsWith(\" \")) {\n const leadingSpaces = value.length - value.trimStart().length;\n const spacingStart = loc.start;\n const spacingEnd = {\n line: spacingStart.line,\n column: spacingStart.column + leadingSpaces,\n };\n /** @type {Range} */\n const spacingRange = [range[0], range[0] + leadingSpaces];\n result.push({\n messageId: CLASS_SPACING_MESSAGE_IDS.extraSpacing,\n loc: {\n start: spacingStart,\n end: spacingEnd,\n },\n range: spacingRange,\n });\n }\n}\n\n/**\n * @param {string} value\n * @returns {{ line: string; start: number }[]}\n */\nfunction splitLines(value) {\n const lines = value.split(LINE_BREAK_REGEX);\n let pos = 0;\n return lines.map((line, i) => {\n const entry = { line, start: pos };\n const lineBreakLength = i < lines.length - 1 ? 1 : 0;\n pos += line.length + lineBreakLength;\n return entry;\n });\n}\n\n/**\n * @param {number} lineIndex\n * @param {number} columnInLine\n * @param {SourceLocation} loc\n */\nfunction toColumn(lineIndex, columnInLine, loc) {\n return lineIndex === 0 ? loc.start.column + columnInLine : columnInLine;\n}\n\n/**\n * @param {string} value\n * @param {SourceLocation} loc\n * @param {Range} range\n * @param {ClassSpacingResult} result\n */\nfunction checkBetween(value, loc, range, result) {\n const lineEntries = splitLines(value);\n for (let lineIndex = 0; lineIndex < lineEntries.length; lineIndex++) {\n const { line, start: lineStart } = lineEntries[lineIndex];\n const trimmedLine = line.trim();\n if (!CLASS_BETWEEN_EXTRA_SPACES_REGEX.test(trimmedLine)) continue;\n\n const lineLeadingSpaces = line.length - line.trimStart().length;\n\n for (const match of trimmedLine.matchAll(\n CLASS_BETWEEN_EXTRA_SPACES_REGEX_GLOBAL\n )) {\n const matchStartInLine = lineLeadingSpaces + match.index;\n const matchEndInLine = matchStartInLine + match[0].length;\n\n result.push({\n messageId: CLASS_SPACING_MESSAGE_IDS.extraSpacing,\n loc: {\n start: {\n line: loc.start.line + lineIndex,\n column: toColumn(lineIndex, matchStartInLine, loc) + 1,\n },\n end: {\n line: loc.start.line + lineIndex,\n column: toColumn(lineIndex, matchEndInLine, loc),\n },\n },\n range: [\n range[0] + lineStart + matchStartInLine + 1,\n range[0] + lineStart + matchEndInLine,\n ],\n });\n }\n }\n}\n\n/**\n * @param {string} line\n * @param {number} lineIndex\n * @param {boolean} isSingleLine\n * @param {SourceLocation} loc\n */\nfunction trailingLoc(line, lineIndex, isSingleLine, loc) {\n const trailingSpaces = line.length - line.trimEnd().length;\n if (isSingleLine) {\n return {\n start: { line: loc.end.line, column: loc.end.column - trailingSpaces },\n end: { line: loc.end.line, column: loc.end.column },\n };\n }\n const columnOffset = lineIndex === 0 ? loc.start.column : 0;\n return {\n start: {\n line: loc.start.line + lineIndex,\n column: columnOffset + line.length - trailingSpaces,\n },\n end: {\n line: loc.start.line + lineIndex,\n column: columnOffset + line.length,\n },\n };\n}\n\n/**\n * @param {string} value\n * @param {SourceLocation} loc\n * @param {Range} range\n * @param {ClassSpacingResult} result\n */\nfunction checkTrailing(value, loc, range, result) {\n const lineEntries = splitLines(value);\n const isSingleLine = lineEntries.length === 1;\n\n for (let i = 0; i < lineEntries.length; i++) {\n const { line, start: lineStart } = lineEntries[i];\n if (!line.endsWith(\" \")) continue;\n\n const trailingSpaces = line.length - line.trimEnd().length;\n result.push({\n messageId: CLASS_SPACING_MESSAGE_IDS.extraSpacing,\n loc: trailingLoc(line, i, isSingleLine, loc),\n range: [\n range[0] + lineStart + line.length - trailingSpaces,\n range[0] + lineStart + line.length,\n ],\n });\n }\n}\n\nexport function classSpacing() {\n return {\n /**\n * @param {AttributeValueAdapter} classValue\n * @returns {ClassSpacingResult}\n */\n checkClassValue(classValue) {\n /** @type {ClassSpacingResult} */\n const result = [];\n\n if (classValue.hasExpression()) {\n return result;\n }\n\n const value = classValue.getValue();\n if (!value) {\n return result;\n }\n\n const loc = classValue.getLocation();\n const range = classValue.getRange();\n\n checkLeading(value, loc, range, result);\n checkBetween(value, loc, range, result);\n checkTrailing(value, loc, range, result);\n\n return result;\n },\n };\n}\n","/**\n * @import {\n * AttributeValueAdapter,\n * NoDuplicateClassResult\n * } from \"../types\"\n */\n\n/**\n * @type {{\n * duplicateClass: \"duplicateClass\";\n * }}\n */\nexport const NO_DUPLICATE_CLASS_MESSAGE_IDS = {\n duplicateClass: \"duplicateClass\",\n};\n\n/**\n * Split class string into tokens (class names and spaces) with their positions\n *\n * @param {string} value - The class attribute value\n * @returns {{ value: string; pos: number }[]}\n */\nfunction splitClassAndSpaces(value) {\n /** @type {{ value: string; pos: number }[]} */\n const result = [];\n const regex = /(\\s+|\\S+)/g;\n /** @type {RegExpExecArray | null} */\n let match = null;\n\n while ((match = regex.exec(value)) !== null) {\n result.push({\n value: match[0],\n pos: match.index,\n });\n }\n\n return result;\n}\n\nexport function noDuplicateClass() {\n return {\n /**\n * @param {AttributeValueAdapter} classValue\n * @returns {NoDuplicateClassResult}\n */\n checkClassValue(classValue) {\n /** @type {NoDuplicateClassResult} */\n const result = [];\n\n if (classValue.hasExpression()) {\n return result;\n }\n\n const value = classValue.getValue();\n if (!value) {\n return result;\n }\n\n const loc = classValue.getLocation();\n const range = classValue.getRange();\n\n const classesAndSpaces = splitClassAndSpaces(value);\n const classSet = new Set();\n\n classesAndSpaces.forEach(({ value, pos }) => {\n const className = value.trim();\n\n if (className.length) {\n if (classSet.has(className)) {\n const classStart = {\n line: loc.start.line,\n column: loc.start.column + pos,\n };\n const classEnd = {\n line: loc.start.line,\n column: loc.start.column + pos + value.length,\n };\n result.push({\n messageId: NO_DUPLICATE_CLASS_MESSAGE_IDS.duplicateClass,\n loc: {\n start: classStart,\n end: classEnd,\n },\n range: [range[0] + pos, range[0] + pos + value.length],\n data: {\n className,\n },\n });\n } else {\n classSet.add(className);\n }\n }\n });\n\n return result;\n },\n };\n}\n"],"mappings":"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","names":["element","value"]}
|
|
1
|
+
{"version":3,"sources":["../lib/rules/no-invalid-attr-value.js","../lib/utils/baseline.js","../lib/utils/node.js","../lib/rules/use-baseline.js","../lib/rules/no-ineffective-attrs.js","../lib/rules/no-obsolete-tags.js","../lib/utils/obsolete-attrs.js","../lib/rules/no-obsolete-attrs.js","../lib/rules/class-spacing.js","../lib/rules/no-duplicate-class.js"],"sourcesContent":["/**\n * @import {\n * ElementAdapter,\n * NoInvalidAttrValueOptions,\n * NoInvalidAttrValueResult\n * } from \"../types\"\n */\n\nimport { element } from \"html-standard\";\n\n/**\n * @type {{\n * invalid: \"invalid\";\n * }}\n */\nexport const NO_INVALID_ATTR_VALUE_MESSAGE_IDS = {\n invalid: \"invalid\",\n};\n\n/** @param {NoInvalidAttrValueOptions} options */\nexport function noInvalidAttrValue(options) {\n const allowList = options.allow || [];\n const compiledAllowList = allowList.map((rule) => ({\n tag: rule.tag.toLowerCase(),\n attr: rule.attr.toLowerCase(),\n valuePattern: rule.valuePattern ? new RegExp(rule.valuePattern) : undefined,\n }));\n\n /**\n * @param {string} elementName\n * @param {string} attrKey\n * @param {string} attrValue\n * @returns\n */\n function shouldAllow(elementName, attrKey, attrValue) {\n return compiledAllowList.some((allowRule) => {\n const tagMatch = allowRule.tag === elementName.toLowerCase();\n const attrMatch = allowRule.attr === attrKey.toLowerCase();\n\n if (!tagMatch || !attrMatch) {\n return false;\n }\n\n if (allowRule.valuePattern === undefined) {\n return true;\n }\n\n return allowRule.valuePattern.test(attrValue);\n });\n }\n\n return {\n /**\n * @param {ElementAdapter} adapter\n * @returns {NoInvalidAttrValueResult}\n */\n checkAttributes(adapter) {\n const name = adapter.getElementName();\n if (name.includes(\"-\")) {\n return [];\n }\n const spec = element(name);\n /** @type {NoInvalidAttrValueResult} */\n const result = [];\n\n for (const attribute of adapter.getAttributes()) {\n const attributeKey = attribute.getKey();\n if (!attributeKey) {\n continue;\n }\n\n if (attributeKey.hasExpression()) {\n continue;\n }\n\n const attributeValue = attribute.getValue();\n\n if (attributeValue?.hasExpression()) {\n continue;\n }\n\n const attrKeyValue = attributeKey.getValue();\n\n const attrValueValue = attributeValue?.getValue() ?? null;\n if (attrValueValue === null) {\n continue;\n }\n\n if (attrKeyValue && shouldAllow(name, attrKeyValue, attrValueValue)) {\n continue;\n }\n if (!attrKeyValue || attrValueValue === null) {\n continue;\n }\n const validator = spec.attributes.get(attrKeyValue);\n if (validator) {\n const validateResult = validator.validateValue(attrValueValue);\n if (!validateResult.valid) {\n result.push({\n loc: attributeValue?.getLocation() ?? attributeKey?.getLocation(),\n messageId: NO_INVALID_ATTR_VALUE_MESSAGE_IDS.invalid,\n data: {\n value: attrValueValue || \"\",\n attr: attrKeyValue,\n element: name,\n suggestion: validateResult.reason || \"Use a valid value.\",\n },\n });\n }\n }\n }\n return result;\n },\n };\n}\n","/** This file is auto-generated. (yarn run baseline) */\nconst BASELINE_HIGH = 10;\nconst BASELINE_LOW = 5;\nconst BASELINE_FALSE = 0;\n\nconst elements = new Map([\n [\"a\", \"10:2015\"],\n [\"a.attributionsourceid\", \"0:\"],\n [\"a.attributionsrc\", \"0:\"],\n [\"a.download\", \"10:2019\"],\n [\"a.href\", \"10:2015\"],\n [\"a.href.href_sms\", \"0:\"],\n [\"a.href.href_top\", \"10:2015\"],\n [\"a.hreflang\", \"10:2015\"],\n [\"a.implicit_noopener\", \"10:2021\"],\n [\"a.interestfor\", \"0:\"],\n [\"a.ping\", \"0:\"],\n [\"a.referrerpolicy\", \"10:2020\"],\n [\"a.referrerpolicy.no-referrer-when-downgrade\", \"0:\"],\n [\"a.referrerpolicy.origin-when-cross-origin\", \"0:\"],\n [\"a.referrerpolicy.unsafe-url\", \"0:\"],\n [\"a.rel\", \"10:2015\"],\n [\"a.rel.noopener\", \"10:2020\"],\n [\"a.rel.noreferrer\", \"10:2015\"],\n [\"a.target\", \"10:2015\"],\n [\"a.target.unfencedTop\", \"0:\"],\n [\"a.text_fragments\", \"5:2024\"],\n [\"a.type\", \"10:2015\"],\n [\"abbr\", \"10:2015\"],\n [\"address\", \"10:2015\"],\n [\"area\", \"10:2015\"],\n [\"area.alt\", \"10:2015\"],\n [\"area.attributionsrc\", \"0:\"],\n [\"area.coords\", \"10:2015\"],\n [\"area.download\", \"10:2017\"],\n [\"area.href\", \"10:2015\"],\n [\"area.implicit_noopener\", \"10:2021\"],\n [\"area.interestfor\", \"0:\"],\n [\"area.ping\", \"0:\"],\n [\"area.referrerpolicy\", \"10:2020\"],\n [\"area.referrerpolicy.no-referrer-when-downgrade\", \"0:\"],\n [\"area.referrerpolicy.origin-when-cross-origin\", \"0:\"],\n [\"area.referrerpolicy.unsafe-url\", \"0:\"],\n [\"area.rel\", \"10:2015\"],\n [\"area.rel.noopener\", \"10:2020\"],\n [\"area.rel.noreferrer\", \"10:2015\"],\n [\"area.shape\", \"10:2015\"],\n [\"area.target\", \"10:2015\"],\n [\"article\", \"10:2015\"],\n [\"aside\", \"10:2015\"],\n [\"audio\", \"10:2015\"],\n [\"audio.autoplay\", \"10:2016\"],\n [\"audio.controls\", \"10:2015\"],\n [\"audio.controlslist\", \"0:\"],\n [\"audio.crossorigin\", \"10:2020\"],\n [\"audio.disableremoteplayback\", \"0:\"],\n [\"audio.loading\", \"0:\"],\n [\"audio.loop\", \"10:2015\"],\n [\"audio.muted\", \"10:2018\"],\n [\"audio.preload\", \"10:2015\"],\n [\"audio.src\", \"10:2015\"],\n [\"b\", \"10:2015\"],\n [\"base\", \"10:2015\"],\n [\"base.href\", \"10:2015\"],\n [\"base.href.forbid_data_javascript_urls\", \"5:2024\"],\n [\"base.href.relative_url\", \"10:2015\"],\n [\"base.target\", \"10:2015\"],\n [\"bdi\", \"10:2020\"],\n [\"bdo\", \"10:2015\"],\n [\"blockquote\", \"10:2015\"],\n [\"blockquote.cite\", \"10:2015\"],\n [\"body\", \"10:2015\"],\n [\"br\", \"10:2015\"],\n [\"button\", \"10:2015\"],\n [\"button.command\", \"5:2025\"],\n [\"button.command.request-close\", \"5:2025\"],\n [\"button.commandfor\", \"5:2025\"],\n [\"button.commandfor.implicit_anchor_reference\", \"5:2026\"],\n [\"button.disabled\", \"10:2015\"],\n [\"button.form\", \"10:2017\"],\n [\"button.formaction\", \"10:2015\"],\n [\"button.formenctype\", \"10:2015\"],\n [\"button.formmethod\", \"10:2015\"],\n [\"button.formnovalidate\", \"10:2015\"],\n [\"button.formtarget\", \"10:2015\"],\n [\"button.interestfor\", \"0:\"],\n [\"button.name\", \"10:2015\"],\n [\"button.popovertarget\", \"5:2024\"],\n [\"button.popovertarget.implicit_anchor_reference\", \"5:2026\"],\n [\"button.popovertargetaction\", \"5:2024\"],\n [\"button.type\", \"10:2015\"],\n [\"button.value\", \"10:2015\"],\n [\"canvas\", \"10:2015\"],\n [\"canvas.height\", \"10:2015\"],\n [\"canvas.width\", \"10:2015\"],\n [\"caption\", \"10:2015\"],\n [\"caption.align\", \"0:\"],\n [\"cite\", \"10:2015\"],\n [\"code\", \"10:2015\"],\n [\"col\", \"10:2015\"],\n [\"col.align\", \"0:\"],\n [\"col.char\", \"0:\"],\n [\"col.charoff\", \"0:\"],\n [\"col.span\", \"10:2015\"],\n [\"col.valign\", \"0:\"],\n [\"col.width\", \"0:\"],\n [\"colgroup\", \"10:2015\"],\n [\"colgroup.align\", \"0:\"],\n [\"colgroup.char\", \"0:\"],\n [\"colgroup.charoff\", \"0:\"],\n [\"colgroup.span\", \"10:2015\"],\n [\"colgroup.valign\", \"0:\"],\n [\"colgroup.width\", \"0:\"],\n [\"data\", \"10:2017\"],\n [\"data.value\", \"10:2017\"],\n [\"datalist\", \"0:\"],\n [\"datalist.input_type_color\", \"0:\"],\n [\"datalist.input_type_date\", \"0:\"],\n [\"datalist.input_type_email\", \"0:\"],\n [\"datalist.input_type_number\", \"0:\"],\n [\"datalist.input_type_range\", \"0:\"],\n [\"datalist.input_type_search\", \"0:\"],\n [\"datalist.input_type_tel\", \"0:\"],\n [\"datalist.input_type_text\", \"0:\"],\n [\"datalist.input_type_time\", \"0:\"],\n [\"datalist.input_type_url\", \"0:\"],\n [\"dd\", \"10:2015\"],\n [\"del\", \"10:2015\"],\n [\"del.cite\", \"10:2015\"],\n [\"del.datetime\", \"10:2015\"],\n [\"details\", \"10:2020\"],\n [\"details.name\", \"5:2024\"],\n [\"details.open\", \"10:2020\"],\n [\"dfn\", \"10:2015\"],\n [\"dialog\", \"10:2022\"],\n [\"dialog.closedby\", \"0:\"],\n [\"dialog.open\", \"10:2022\"],\n [\"div\", \"10:2015\"],\n [\"dl\", \"10:2015\"],\n [\"dt\", \"10:2015\"],\n [\"em\", \"10:2015\"],\n [\"embed\", \"10:2015\"],\n [\"embed.height\", \"10:2015\"],\n [\"embed.src\", \"10:2015\"],\n [\"embed.type\", \"10:2020\"],\n [\"embed.width\", \"10:2015\"],\n [\"fencedframe\", \"0:\"],\n [\"fencedframe.allow\", \"0:\"],\n [\"fencedframe.height\", \"0:\"],\n [\"fencedframe.width\", \"0:\"],\n [\"fieldset\", \"10:2015\"],\n [\"fieldset.disabled\", \"10:2020\"],\n [\"fieldset.form\", \"10:2015\"],\n [\"fieldset.name\", \"10:2015\"],\n [\"figcaption\", \"10:2015\"],\n [\"figure\", \"10:2015\"],\n [\"footer\", \"10:2015\"],\n [\"form\", \"10:2015\"],\n [\"form.accept-charset\", \"10:2015\"],\n [\"form.action\", \"10:2015\"],\n [\"form.autocomplete\", \"10:2015\"],\n [\"form.enctype\", \"10:2015\"],\n [\"form.method\", \"10:2015\"],\n [\"form.name\", \"10:2015\"],\n [\"form.novalidate\", \"10:2017\"],\n [\"form.rel\", \"10:2023\"],\n [\"form.target\", \"10:2015\"],\n [\"geolocation\", \"0:\"],\n [\"geolocation.autolocate\", \"0:\"],\n [\"geolocation.watch\", \"0:\"],\n [\"h1\", \"10:2015\"],\n [\"h1.no_ua_styles_in_article_aside_nav_section\", \"0:\"],\n [\"h2\", \"10:2015\"],\n [\"h3\", \"10:2015\"],\n [\"h4\", \"10:2015\"],\n [\"h5\", \"10:2015\"],\n [\"h6\", \"10:2015\"],\n [\"head\", \"10:2015\"],\n [\"header\", \"10:2015\"],\n [\"hgroup\", \"10:2015\"],\n [\"hr\", \"10:2015\"],\n [\"html\", \"10:2015\"],\n [\"i\", \"10:2015\"],\n [\"iframe\", \"10:2015\"],\n [\"iframe.allow\", \"10:2020\"],\n [\"iframe.allow.accelerometer\", \"0:\"],\n [\"iframe.allow.ambient-light-sensor\", \"0:\"],\n [\"iframe.allow.attribution-reporting\", \"0:\"],\n [\"iframe.allow.bluetooth\", \"0:\"],\n [\"iframe.allow.browsing-topics\", \"0:\"],\n [\"iframe.allow.camera\", \"10:2020\"],\n [\"iframe.allow.compute-pressure\", \"0:\"],\n [\"iframe.allow.display-capture\", \"0:\"],\n [\"iframe.allow.encrypted-media\", \"0:\"],\n [\"iframe.allow.fullscreen\", \"0:\"],\n [\"iframe.allow.gamepad\", \"0:\"],\n [\"iframe.allow.geolocation\", \"0:\"],\n [\"iframe.allow.gyroscope\", \"0:\"],\n [\"iframe.allow.hid\", \"0:\"],\n [\"iframe.allow.idle-detection\", \"0:\"],\n [\"iframe.allow.local-fonts\", \"0:\"],\n [\"iframe.allow.magnetometer\", \"0:\"],\n [\"iframe.allow.microphone\", \"10:2020\"],\n [\"iframe.allow.midi\", \"0:\"],\n [\"iframe.allow.otp-credentials\", \"0:\"],\n [\"iframe.allow.payment\", \"0:\"],\n [\"iframe.allow.picture-in-picture\", \"0:\"],\n [\"iframe.allow.publickey-credentials-create\", \"0:\"],\n [\"iframe.allow.publickey-credentials-get\", \"0:\"],\n [\"iframe.allow.screen-wake-lock\", \"5:2024\"],\n [\"iframe.allow.serial\", \"0:\"],\n [\"iframe.allow.storage-access\", \"0:\"],\n [\"iframe.allow.usb\", \"0:\"],\n [\"iframe.allow.web-share\", \"0:\"],\n [\"iframe.allow.window-management\", \"0:\"],\n [\"iframe.allow.xr-spatial-tracking\", \"0:\"],\n [\"iframe.allowfullscreen\", \"0:\"],\n [\"iframe.browsingtopics\", \"0:\"],\n [\"iframe.credentialless\", \"0:\"],\n [\"iframe.csp\", \"0:\"],\n [\"iframe.height\", \"10:2015\"],\n [\"iframe.loading\", \"10:2023\"],\n [\"iframe.name\", \"10:2015\"],\n [\"iframe.referrerpolicy\", \"10:2020\"],\n [\"iframe.referrerpolicy.no-referrer-when-downgrade\", \"0:\"],\n [\"iframe.referrerpolicy.origin-when-cross-origin\", \"0:\"],\n [\"iframe.referrerpolicy.unsafe-url\", \"0:\"],\n [\"iframe.sandbox\", \"10:2015\"],\n [\"iframe.sandbox.allow-downloads\", \"10:2023\"],\n [\"iframe.sandbox.allow-forms\", \"10:2020\"],\n [\"iframe.sandbox.allow-modals\", \"10:2020\"],\n [\"iframe.sandbox.allow-pointer-lock\", \"0:\"],\n [\"iframe.sandbox.allow-popups\", \"10:2015\"],\n [\"iframe.sandbox.allow-popups-to-escape-sandbox\", \"10:2020\"],\n [\"iframe.sandbox.allow-presentation\", \"0:\"],\n [\"iframe.sandbox.allow-same-origin\", \"10:2020\"],\n [\"iframe.sandbox.allow-scripts\", \"10:2020\"],\n [\"iframe.sandbox.allow-top-navigation\", \"10:2020\"],\n [\"iframe.sandbox.allow-top-navigation-by-user-activation\", \"10:2020\"],\n [\"iframe.sandbox.allow-top-navigation-to-custom-protocols\", \"0:\"],\n [\"iframe.src\", \"10:2015\"],\n [\"iframe.srcdoc\", \"10:2020\"],\n [\"iframe.width\", \"10:2015\"],\n [\"img\", \"10:2015\"],\n [\"img.alt\", \"10:2015\"],\n [\"img.aspect_ratio_computed_from_attributes\", \"10:2021\"],\n [\"img.attributionsrc\", \"0:\"],\n [\"img.crossorigin\", \"10:2015\"],\n [\"img.decoding\", \"10:2020\"],\n [\"img.fetchpriority\", \"5:2024\"],\n [\"img.height\", \"10:2015\"],\n [\"img.ismap\", \"10:2015\"],\n [\"img.loading\", \"10:2022\"],\n [\"img.referrerpolicy\", \"10:2020\"],\n [\"img.referrerpolicy.no-referrer-when-downgrade\", \"0:\"],\n [\"img.referrerpolicy.origin-when-cross-origin\", \"0:\"],\n [\"img.referrerpolicy.unsafe-url\", \"0:\"],\n [\"img.sizes\", \"10:2016\"],\n [\"img.sizes.auto\", \"0:\"],\n [\"img.src\", \"10:2015\"],\n [\"img.srcset\", \"10:2015\"],\n [\"img.usemap\", \"10:2015\"],\n [\"img.width\", \"10:2015\"],\n [\"input\", \"10:2015\"],\n [\"input.accept\", \"10:2015\"],\n [\"input.alpha\", \"0:\"],\n [\"input.alt\", \"10:2015\"],\n [\"input.capture\", \"0:\"],\n [\"input.checked\", \"10:2015\"],\n [\"input.colorspace\", \"0:\"],\n [\"input.dirname\", \"10:2023\"],\n [\"input.disabled\", \"10:2015\"],\n [\"input.form\", \"10:2015\"],\n [\"input.formaction\", \"10:2015\"],\n [\"input.formenctype\", \"10:2015\"],\n [\"input.formmethod\", \"10:2015\"],\n [\"input.formnovalidate\", \"10:2015\"],\n [\"input.formtarget\", \"10:2015\"],\n [\"input.max\", \"10:2015\"],\n [\"input.maxlength\", \"10:2015\"],\n [\"input.min\", \"10:2015\"],\n [\"input.minlength\", \"10:2018\"],\n [\"input.multiple\", \"10:2015\"],\n [\"input.name\", \"10:2015\"],\n [\"input.pattern\", \"10:2015\"],\n [\"input.placeholder\", \"10:2015\"],\n [\"input.popovertarget\", \"5:2024\"],\n [\"input.popovertarget.implicit_anchor_reference\", \"5:2026\"],\n [\"input.popovertargetaction\", \"5:2024\"],\n [\"input.readonly\", \"10:2015\"],\n [\"input.required\", \"10:2015\"],\n [\"input.size\", \"10:2015\"],\n [\"input.src\", \"10:2015\"],\n [\"input.step\", \"10:2015\"],\n [\"input.switch\", \"0:\"],\n [\"input.type_button\", \"10:2015\"],\n [\"input.type_checkbox\", \"10:2015\"],\n [\"input.type_color\", \"0:\"],\n [\"input.type_color.accepts_css_colors\", \"0:\"],\n [\"input.type_color.list\", \"0:\"],\n [\"input.type_date\", \"10:2021\"],\n [\"input.type_date.list\", \"0:\"],\n [\"input.type_datetime-local\", \"10:2021\"],\n [\"input.type_email\", \"10:2015\"],\n [\"input.type_email.list\", \"10:2019\"],\n [\"input.type_file\", \"10:2015\"],\n [\"input.type_hidden\", \"10:2015\"],\n [\"input.type_image\", \"10:2015\"],\n [\"input.type_month\", \"0:\"],\n [\"input.type_number\", \"10:2015\"],\n [\"input.type_number.list\", \"10:2019\"],\n [\"input.type_password\", \"10:2015\"],\n [\"input.type_password.insecure_login_handling\", \"0:\"],\n [\"input.type_radio\", \"10:2015\"],\n [\"input.type_range\", \"10:2017\"],\n [\"input.type_range.labeled_values\", \"0:\"],\n [\"input.type_range.list\", \"0:\"],\n [\"input.type_range.tick_marks\", \"10:2023\"],\n [\"input.type_range.vertical_orientation\", \"5:2024\"],\n [\"input.type_reset\", \"10:2015\"],\n [\"input.type_search\", \"10:2015\"],\n [\"input.type_search.list\", \"10:2019\"],\n [\"input.type_submit\", \"10:2015\"],\n [\"input.type_tel\", \"10:2015\"],\n [\"input.type_tel.list\", \"10:2019\"],\n [\"input.type_text\", \"10:2015\"],\n [\"input.type_text.list\", \"10:2019\"],\n [\"input.type_time\", \"10:2021\"],\n [\"input.type_time.list\", \"0:\"],\n [\"input.type_url\", \"10:2015\"],\n [\"input.type_url.list\", \"10:2019\"],\n [\"input.type_week\", \"0:\"],\n [\"input.webkitdirectory\", \"5:2025\"],\n [\"ins\", \"10:2015\"],\n [\"ins.cite\", \"10:2015\"],\n [\"ins.datetime\", \"10:2015\"],\n [\"kbd\", \"10:2015\"],\n [\"label\", \"10:2015\"],\n [\"label.for\", \"10:2015\"],\n [\"legend\", \"10:2015\"],\n [\"li\", \"10:2015\"],\n [\"li.value\", \"10:2015\"],\n [\"link\", \"10:2015\"],\n [\"link.as\", \"10:2018\"],\n [\"link.blocking\", \"0:\"],\n [\"link.crossorigin\", \"10:2018\"],\n [\"link.disabled\", \"10:2015\"],\n [\"link.fetchpriority\", \"5:2024\"],\n [\"link.href\", \"10:2015\"],\n [\"link.hreflang\", \"10:2015\"],\n [\"link.imagesizes\", \"10:2023\"],\n [\"link.imagesrcset\", \"10:2023\"],\n [\"link.integrity\", \"10:2018\"],\n [\"link.media\", \"10:2015\"],\n [\"link.referrerpolicy\", \"10:2020\"],\n [\"link.referrerpolicy.no-referrer-when-downgrade\", \"0:\"],\n [\"link.referrerpolicy.origin-when-cross-origin\", \"0:\"],\n [\"link.referrerpolicy.unsafe-url\", \"0:\"],\n [\"link.rel\", \"10:2015\"],\n [\"link.rel.alternate_stylesheet\", \"0:\"],\n [\"link.rel.compression-dictionary\", \"0:\"],\n [\"link.rel.dns-prefetch\", \"5:2025\"],\n [\"link.rel.expect\", \"0:\"],\n [\"link.rel.manifest\", \"0:\"],\n [\"link.rel.modulepreload\", \"10:2023\"],\n [\"link.rel.preconnect\", \"10:2020\"],\n [\"link.rel.prefetch\", \"0:\"],\n [\"link.rel.preload\", \"10:2021\"],\n [\"link.rel.preload.as-fetch\", \"10:2021\"],\n [\"link.rel.preload.as-font\", \"10:2021\"],\n [\"link.rel.preload.as-image\", \"10:2021\"],\n [\"link.rel.preload.as-script\", \"10:2021\"],\n [\"link.rel.preload.as-style\", \"10:2021\"],\n [\"link.rel.preload.as-track\", \"0:\"],\n [\"link.sizes\", \"10:2020\"],\n [\"link.type\", \"10:2015\"],\n [\"main\", \"10:2015\"],\n [\"map\", \"10:2015\"],\n [\"map.name\", \"10:2015\"],\n [\"mark\", \"10:2015\"],\n [\"menu\", \"10:2015\"],\n [\"meta\", \"10:2015\"],\n [\"meta.charset\", \"10:2015\"],\n [\"meta.content\", \"10:2015\"],\n [\"meta.http-equiv\", \"10:2015\"],\n [\"meta.http-equiv.content-security-policy\", \"10:2017\"],\n [\"meta.http-equiv.content-type\", \"10:2017\"],\n [\"meta.http-equiv.refresh\", \"10:2015\"],\n [\"meta.name\", \"10:2015\"],\n [\"meta.name.application-title\", \"0:\"],\n [\"meta.name.color-scheme\", \"10:2022\"],\n [\"meta.name.referrer\", \"10:2020\"],\n [\"meta.name.responsive-embedded-sizing\", \"0:\"],\n [\"meta.name.text-scale\", \"0:\"],\n [\"meta.name.theme-color\", \"0:\"],\n [\"meter\", \"10:2017\"],\n [\"meter.high\", \"10:2017\"],\n [\"meter.low\", \"10:2017\"],\n [\"meter.max\", \"10:2017\"],\n [\"meter.min\", \"10:2017\"],\n [\"meter.optimum\", \"10:2017\"],\n [\"meter.value\", \"10:2017\"],\n [\"nav\", \"10:2015\"],\n [\"noscript\", \"10:2015\"],\n [\"object\", \"10:2015\"],\n [\"object.data\", \"10:2015\"],\n [\"object.form\", \"10:2015\"],\n [\"object.height\", \"10:2015\"],\n [\"object.name\", \"10:2015\"],\n [\"object.type\", \"10:2015\"],\n [\"object.width\", \"10:2015\"],\n [\"ol\", \"10:2015\"],\n [\"ol.reversed\", \"10:2020\"],\n [\"ol.start\", \"10:2015\"],\n [\"ol.type\", \"10:2015\"],\n [\"optgroup\", \"10:2015\"],\n [\"optgroup.disabled\", \"0:\"],\n [\"optgroup.label\", \"10:2015\"],\n [\"option\", \"10:2015\"],\n [\"option.disabled\", \"10:2015\"],\n [\"option.label\", \"10:2015\"],\n [\"option.selected\", \"10:2015\"],\n [\"option.value\", \"10:2015\"],\n [\"output\", \"10:2018\"],\n [\"output.for\", \"10:2018\"],\n [\"output.form\", \"10:2018\"],\n [\"output.name\", \"10:2018\"],\n [\"p\", \"10:2015\"],\n [\"picture\", \"10:2016\"],\n [\"pre\", \"10:2015\"],\n [\"progress\", \"10:2015\"],\n [\"progress.max\", \"10:2015\"],\n [\"progress.value\", \"10:2015\"],\n [\"q\", \"10:2015\"],\n [\"q.cite\", \"10:2015\"],\n [\"rp\", \"10:2015\"],\n [\"rt\", \"10:2015\"],\n [\"ruby\", \"10:2015\"],\n [\"s\", \"10:2015\"],\n [\"samp\", \"10:2015\"],\n [\"script\", \"10:2015\"],\n [\"script.async\", \"10:2015\"],\n [\"script.attributionsrc\", \"0:\"],\n [\"script.blocking\", \"0:\"],\n [\"script.crossorigin\", \"10:2016\"],\n [\"script.defer\", \"10:2015\"],\n [\"script.fetchpriority\", \"5:2024\"],\n [\"script.integrity\", \"10:2018\"],\n [\"script.integrity.ed25519_public_key\", \"0:\"],\n [\"script.nomodule\", \"10:2018\"],\n [\"script.referrerpolicy\", \"10:2020\"],\n [\"script.referrerpolicy.no-referrer-when-downgrade\", \"0:\"],\n [\"script.referrerpolicy.origin-when-cross-origin\", \"0:\"],\n [\"script.referrerpolicy.unsafe-url\", \"0:\"],\n [\"script.src\", \"10:2015\"],\n [\"script.type\", \"10:2015\"],\n [\"script.type.importmap\", \"10:2023\"],\n [\"script.type.module\", \"10:2018\"],\n [\"script.type.speculationrules\", \"0:\"],\n [\"script.type.speculationrules.eagerness\", \"0:\"],\n [\"script.type.speculationrules.expects_no_vary_search\", \"0:\"],\n [\"script.type.speculationrules.prefetch\", \"0:\"],\n [\"script.type.speculationrules.prerender\", \"0:\"],\n [\"script.type.speculationrules.referrer_policy\", \"0:\"],\n [\"script.type.speculationrules.relative_to\", \"0:\"],\n [\"script.type.speculationrules.requires\", \"0:\"],\n [\n \"script.type.speculationrules.requires.anonymous-client-ip-when-cross-origin\",\n \"0:\",\n ],\n [\"script.type.speculationrules.source_optional\", \"0:\"],\n [\"script.type.speculationrules.tag\", \"0:\"],\n [\"script.type.speculationrules.target_hint\", \"0:\"],\n [\"script.type.speculationrules.urls\", \"0:\"],\n [\"script.type.speculationrules.where\", \"0:\"],\n [\"search\", \"10:2023\"],\n [\"section\", \"10:2015\"],\n [\"select\", \"10:2015\"],\n [\"select.disabled\", \"10:2015\"],\n [\"select.form\", \"10:2015\"],\n [\"select.hr_in_select\", \"0:\"],\n [\"select.multiple\", \"10:2015\"],\n [\"select.name\", \"10:2015\"],\n [\"select.required\", \"10:2015\"],\n [\"select.size\", \"0:\"],\n [\"selectedcontent\", \"0:\"],\n [\"slot\", \"10:2020\"],\n [\"slot.name\", \"10:2020\"],\n [\"small\", \"10:2015\"],\n [\"source\", \"10:2015\"],\n [\"source.height\", \"10:2022\"],\n [\"source.media\", \"10:2015\"],\n [\"source.sizes\", \"10:2016\"],\n [\"source.src\", \"10:2015\"],\n [\"source.srcset\", \"10:2016\"],\n [\"source.type\", \"10:2015\"],\n [\"source.width\", \"10:2022\"],\n [\"span\", \"10:2015\"],\n [\"strong\", \"10:2015\"],\n [\"style\", \"10:2015\"],\n [\"style.blocking\", \"0:\"],\n [\"style.media\", \"10:2015\"],\n [\"sub\", \"10:2015\"],\n [\"summary\", \"10:2020\"],\n [\"summary.display_list_item\", \"0:\"],\n [\"sup\", \"10:2015\"],\n [\"table\", \"10:2015\"],\n [\"table.align\", \"0:\"],\n [\"table.bgcolor\", \"0:\"],\n [\"table.border\", \"0:\"],\n [\"table.cellpadding\", \"0:\"],\n [\"table.cellspacing\", \"0:\"],\n [\"table.frame\", \"0:\"],\n [\"table.rules\", \"0:\"],\n [\"table.summary\", \"0:\"],\n [\"table.width\", \"0:\"],\n [\"tbody\", \"10:2015\"],\n [\"tbody.align\", \"0:\"],\n [\"tbody.bgcolor\", \"0:\"],\n [\"tbody.char\", \"0:\"],\n [\"tbody.charoff\", \"0:\"],\n [\"tbody.valign\", \"0:\"],\n [\"td\", \"10:2015\"],\n [\"td.abbr\", \"0:\"],\n [\"td.align\", \"0:\"],\n [\"td.axis\", \"0:\"],\n [\"td.bgcolor\", \"0:\"],\n [\"td.char\", \"0:\"],\n [\"td.charoff\", \"0:\"],\n [\"td.colspan\", \"10:2015\"],\n [\"td.headers\", \"10:2015\"],\n [\"td.rowspan\", \"10:2015\"],\n [\"td.rowspan.rowspan_zero\", \"0:\"],\n [\"td.scope\", \"0:\"],\n [\"td.valign\", \"0:\"],\n [\"td.width\", \"0:\"],\n [\"template\", \"10:2015\"],\n [\"template.shadowrootclonable\", \"5:2024\"],\n [\"template.shadowrootcustomelementregistry\", \"0:\"],\n [\"template.shadowrootdelegatesfocus\", \"5:2024\"],\n [\"template.shadowrootmode\", \"5:2024\"],\n [\"template.shadowrootreferencetarget\", \"0:\"],\n [\"template.shadowrootserializable\", \"0:\"],\n [\"template.shadowrootslotassignment\", \"0:\"],\n [\"textarea\", \"10:2015\"],\n [\"textarea.autocomplete\", \"10:2020\"],\n [\"textarea.cols\", \"10:2015\"],\n [\"textarea.dirname\", \"10:2023\"],\n [\"textarea.disabled\", \"10:2015\"],\n [\"textarea.form\", \"10:2015\"],\n [\"textarea.maxlength\", \"10:2015\"],\n [\"textarea.minlength\", \"10:2018\"],\n [\"textarea.name\", \"10:2015\"],\n [\"textarea.placeholder\", \"10:2015\"],\n [\"textarea.placeholder.line_breaks\", \"10:2022\"],\n [\"textarea.readonly\", \"10:2015\"],\n [\"textarea.required\", \"10:2015\"],\n [\"textarea.rows\", \"10:2015\"],\n [\"textarea.wrap\", \"10:2015\"],\n [\"textarea.wrap.hard\", \"0:\"],\n [\"tfoot\", \"10:2015\"],\n [\"tfoot.align\", \"0:\"],\n [\"tfoot.bgcolor\", \"0:\"],\n [\"tfoot.char\", \"0:\"],\n [\"tfoot.charoff\", \"0:\"],\n [\"tfoot.valign\", \"0:\"],\n [\"th\", \"10:2015\"],\n [\"th.abbr\", \"10:2015\"],\n [\"th.align\", \"0:\"],\n [\"th.axis\", \"0:\"],\n [\"th.bgcolor\", \"0:\"],\n [\"th.char\", \"0:\"],\n [\"th.charoff\", \"0:\"],\n [\"th.colspan\", \"10:2015\"],\n [\"th.headers\", \"10:2015\"],\n [\"th.rowspan\", \"10:2015\"],\n [\"th.rowspan.rowspan_zero\", \"0:\"],\n [\"th.scope\", \"10:2015\"],\n [\"th.valign\", \"0:\"],\n [\"th.width\", \"0:\"],\n [\"thead\", \"10:2015\"],\n [\"thead.align\", \"0:\"],\n [\"thead.bgcolor\", \"0:\"],\n [\"thead.char\", \"0:\"],\n [\"thead.charoff\", \"0:\"],\n [\"thead.valign\", \"0:\"],\n [\"time\", \"10:2017\"],\n [\"time.datetime\", \"10:2017\"],\n [\"title\", \"10:2015\"],\n [\"tr\", \"10:2015\"],\n [\"tr.align\", \"0:\"],\n [\"tr.bgcolor\", \"0:\"],\n [\"tr.char\", \"0:\"],\n [\"tr.charoff\", \"0:\"],\n [\"tr.valign\", \"0:\"],\n [\"track\", \"10:2015\"],\n [\"track.default\", \"10:2015\"],\n [\"track.kind\", \"10:2015\"],\n [\"track.label\", \"10:2015\"],\n [\"track.src\", \"10:2016\"],\n [\"track.srclang\", \"10:2015\"],\n [\"u\", \"10:2015\"],\n [\"ul\", \"10:2015\"],\n [\"var\", \"10:2015\"],\n [\"video\", \"10:2015\"],\n [\"video.aspect_ratio_computed_from_attributes\", \"10:2020\"],\n [\"video.autoplay\", \"10:2016\"],\n [\"video.controls\", \"10:2015\"],\n [\"video.controlslist\", \"0:\"],\n [\"video.crossorigin\", \"10:2020\"],\n [\"video.disablepictureinpicture\", \"0:\"],\n [\"video.disableremoteplayback\", \"0:\"],\n [\"video.height\", \"10:2015\"],\n [\"video.loading\", \"0:\"],\n [\"video.loop\", \"10:2015\"],\n [\"video.muted\", \"10:2015\"],\n [\"video.playsinline\", \"0:\"],\n [\"video.poster\", \"10:2015\"],\n [\"video.preload\", \"10:2015\"],\n [\"video.src\", \"10:2015\"],\n [\"video.width\", \"10:2015\"],\n [\"wbr\", \"10:2015\"],\n]);\nconst globalAttributes = new Map([\n [\"accesskey\", \"10:2015\"],\n [\"autocapitalize\", \"0:\"],\n [\"autocorrect\", \"0:\"],\n [\"autofocus\", \"10:2023\"],\n [\"contenteditable\", \"10:2015\"],\n [\"contenteditable.plaintext-only\", \"5:2025\"],\n [\"enterkeyhint\", \"10:2021\"],\n [\"exportparts\", \"10:2020\"],\n [\"headingoffset\", \"0:\"],\n [\"headingreset\", \"0:\"],\n [\"inert\", \"10:2023\"],\n [\"inert.ignores_find_in_page\", \"0:\"],\n [\"inputmode\", \"10:2021\"],\n [\"is\", \"0:\"],\n [\"lang\", \"10:2015\"],\n [\"nonce\", \"10:2022\"],\n [\"part\", \"10:2020\"],\n [\"popover\", \"5:2024\"],\n [\"popover.hint\", \"0:\"],\n [\"slot\", \"10:2020\"],\n [\"spellcheck\", \"10:2017\"],\n [\"style\", \"10:2015\"],\n [\"tabindex\", \"10:2015\"],\n [\"title\", \"10:2015\"],\n [\"title.multi-line_titles\", \"10:2018\"],\n [\"translate\", \"10:2023\"],\n [\"virtualkeyboardpolicy\", \"0:\"],\n [\"writingsuggestions\", \"0:\"],\n]);\nexport {\n elements,\n globalAttributes,\n BASELINE_HIGH,\n BASELINE_LOW,\n BASELINE_FALSE,\n};\n","/**\n * @param {string} name Element name\n * @returns {boolean}\n */\nexport function isCustomElement(name) {\n return name.includes(\"-\");\n}\n","/**\n * @import {\n * ElementAdapter,\n * UseBaselineOptions,\n * UseBaselineResult\n * } from \"../types\"\n */\nimport {\n elements,\n globalAttributes,\n BASELINE_HIGH,\n BASELINE_LOW,\n} from \"../utils/baseline\";\nimport { isCustomElement } from \"../utils/node\";\n\n/**\n * @type {{\n * noBaselineElement: \"noBaselineElement\";\n * notBaselineElementAttribute: \"notBaselineElementAttribute\";\n * notBaselineGlobalAttribute: \"notBaselineGlobalAttribute\";\n * }}\n */\nexport const USE_BASELINE_MESSAGE_IDS = {\n noBaselineElement: \"noBaselineElement\",\n notBaselineElementAttribute: \"notBaselineElementAttribute\",\n notBaselineGlobalAttribute: \"notBaselineGlobalAttribute\",\n};\n\n/**\n * @param {string[]} parts\n * @returns {string}\n */\nfunction toStatusKey(...parts) {\n return parts.map((part) => part.toLowerCase().trim()).join(\".\");\n}\n\n/**\n * @param {string} encoded\n * @returns {[number, number]}\n */\nfunction decodeStatus(encoded) {\n const [status, year = NaN] = encoded.split(\":\").map((part) => Number(part));\n return [status, year];\n}\n\n/**\n * @param {string} element\n * @param {string} key\n * @param {string} value\n * @returns {string | null}\n */\nfunction getElementAttributeSpecificStatusKey(element, key, value) {\n const elementName = element.toLowerCase();\n const attributeKey = key.toLowerCase();\n const attributeValue = value.toLowerCase();\n\n // <input type=\"...\">\n if (elementName === \"input\" && attributeKey === \"type\") {\n return `input.type_${attributeValue}`;\n }\n\n // <a href=\"sms:0000..\">\n if (\n elementName === \"a\" &&\n attributeKey === \"href\" &&\n attributeValue.trim().startsWith(\"sms:\")\n ) {\n return \"a.href.href_sms\";\n }\n\n // <td rowspan=\"0\"> <th rowspan=\"0\">\n if (\n (elementName === \"td\" || elementName === \"th\") &&\n attributeKey === \"rowspan\" &&\n attributeValue === \"0\"\n ) {\n return `${elementName}.rowspan.rowspan_zero`;\n }\n return null;\n}\n\n/**\n * @template ElementNode\n * @template AttributeKeyNode\n * @template AttributeValueNode\n * @param {UseBaselineOptions} options\n */\nexport function useBaseline({ available }) {\n const baseYear = typeof available === \"number\" ? available : null;\n const baseStatus = available === \"widely\" ? BASELINE_HIGH : BASELINE_LOW;\n const availability = String(available);\n\n /**\n * @param {string} encoded\n * @returns {boolean}\n */\n function isSupported(encoded) {\n const [status, year = NaN] = decodeStatus(encoded);\n if (baseYear) {\n return year <= baseYear;\n }\n return status >= baseStatus;\n }\n\n /**\n * @param {string} element\n * @param {string} key\n * @returns {boolean}\n */\n function isSupportedElementAttributeKey(element, key) {\n const elementStatus = elements.get(toStatusKey(element, key));\n if (!elementStatus) {\n return true;\n }\n return isSupported(elementStatus);\n }\n\n /**\n * @param {string} key\n * @returns {boolean}\n */\n function isSupportedGlobalAttributeKey(key) {\n const globalAttrStatus = globalAttributes.get(toStatusKey(key));\n if (!globalAttrStatus) {\n return true;\n }\n return isSupported(globalAttrStatus);\n }\n\n /**\n * @param {string} element\n * @param {string} key\n * @param {string} value\n * @returns {boolean}\n */\n function isSupportedElementAttributeKeyValue(element, key, value) {\n const elementStatus = elements.get(toStatusKey(element, key, value));\n if (!elementStatus) {\n return true;\n }\n return isSupported(elementStatus);\n }\n\n /**\n * @param {string} key\n * @param {string} value\n * @returns {boolean}\n */\n function isSupportedGlobalAttributeKeyValue(key, value) {\n const globalAttrStatus = globalAttributes.get(toStatusKey(key, value));\n if (!globalAttrStatus) {\n return true;\n }\n return isSupported(globalAttrStatus);\n }\n\n /**\n * @param {string} element\n * @param {string} key\n * @param {string} value\n * @returns {boolean}\n */\n function isSupportedElementSpecificAttributeKeyValue(element, key, value) {\n const statusKey = getElementAttributeSpecificStatusKey(element, key, value);\n if (!statusKey) {\n return true;\n }\n const elementStatus = elements.get(statusKey);\n if (!elementStatus) {\n return true;\n }\n return isSupported(elementStatus);\n }\n\n /**\n * @param {string} element\n * @returns {boolean}\n */\n function isSupportedElement(element) {\n const elementEncoded = elements.get(element);\n if (!elementEncoded) {\n return true;\n }\n return isSupported(elementEncoded);\n }\n\n return {\n /**\n * @param {ElementAdapter} adapter\n * @returns {UseBaselineResult}\n */\n checkAttributes(adapter) {\n const elementName = adapter.getElementName();\n if (isCustomElement(elementName)) {\n return [];\n }\n\n if (!isSupportedElement(elementName)) {\n return [\n {\n messageId: USE_BASELINE_MESSAGE_IDS.noBaselineElement,\n loc: adapter.getLocation(),\n data: {\n element: `<${elementName}>`,\n availability,\n },\n },\n ];\n }\n\n /** @type {UseBaselineResult} */\n const result = [];\n\n for (const attribute of adapter.getAttributes()) {\n const attributeKey = attribute.getKey();\n if (!attributeKey) {\n continue;\n }\n const attributeKeyValue = attributeKey.getValue();\n const attributeKeyHasExpression = attributeKey.hasExpression();\n if (!attributeKeyValue || attributeKeyHasExpression) {\n continue;\n }\n const attributeValue = attribute.getValue();\n const attributeValueValue = attributeValue?.getValue();\n if (attributeValueValue === null) {\n continue;\n }\n\n if (!isSupportedElementAttributeKey(elementName, attributeKeyValue)) {\n result.push({\n messageId: USE_BASELINE_MESSAGE_IDS.notBaselineElementAttribute,\n loc: attributeKey.getLocation(),\n data: {\n element: `<${elementName}>`,\n attr: attributeKey.getValue(),\n availability,\n },\n });\n } else if (!isSupportedGlobalAttributeKey(attributeKeyValue)) {\n result.push({\n messageId: USE_BASELINE_MESSAGE_IDS.notBaselineGlobalAttribute,\n loc: attributeKey.getLocation(),\n data: {\n attr: attributeKey.getValue(),\n availability,\n },\n });\n } else if (attributeValue !== null) {\n if (\n !isSupportedElementAttributeKeyValue(\n elementName,\n attributeKeyValue,\n attributeValueValue || \"\"\n ) ||\n !isSupportedElementSpecificAttributeKeyValue(\n elementName,\n attributeKeyValue,\n attributeValueValue || \"\"\n )\n ) {\n result.push({\n messageId: USE_BASELINE_MESSAGE_IDS.notBaselineElementAttribute,\n loc: attributeValue.getLocation(),\n data: {\n element: `<${elementName}>`,\n attr: `${attributeKeyValue}=\"${attributeValueValue}\"`,\n availability,\n },\n });\n } else if (\n !isSupportedGlobalAttributeKeyValue(\n attributeKeyValue,\n attributeValueValue || \"\"\n )\n ) {\n result.push({\n messageId: USE_BASELINE_MESSAGE_IDS.notBaselineGlobalAttribute,\n loc: attributeValue.getLocation(),\n data: {\n attr: `${attributeKeyValue}=\"${attributeValueValue}\"`,\n availability,\n },\n });\n }\n }\n }\n return result;\n },\n };\n}\n","/**\n * @import {\n * ElementAdapter,\n * NoIneffectiveAttrsResult\n * } from \"../types\"\n */\n\n/**\n * @typedef {{\n * attr: string;\n * when: (adapter: ElementAdapter) => boolean;\n * message: string;\n * }} AttributeChecker\n */\n\n/**\n * @type {{\n * ineffective: \"ineffective\";\n * }}\n */\nexport const NO_INEFFECTIVE_ATTRS_MESSAGE_IDS = {\n ineffective: \"ineffective\",\n};\n\nexport function noIneffectiveAttrs() {\n /**\n * @param {ElementAdapter} adapter\n * @param {string} attrName\n * @returns {string | null}\n */\n function getAttrValue(adapter, attrName) {\n for (const attribute of adapter.getAttributes()) {\n const attrKeyValue = attribute.getKey()?.getValue();\n if (attrKeyValue && attrKeyValue === attrName) {\n const value = attribute.getValue()?.getValue();\n return value || null;\n }\n }\n return null;\n }\n\n /**\n * @param {ElementAdapter} adapter\n * @param {string} attrName\n * @returns {boolean}\n */\n function hasAttr(adapter, attrName) {\n for (const attribute of adapter.getAttributes()) {\n const keyValue = attribute.getKey()?.getValue();\n if (\n keyValue &&\n keyValue.toLocaleLowerCase() === attrName.toLocaleLowerCase()\n ) {\n return true;\n }\n }\n return false;\n }\n /**\n * @param {ElementAdapter} adapter\n * @param {string} attrName\n * @returns {boolean}\n */\n function isAttrValueExpression(adapter, attrName) {\n return adapter.getAttributes().some((attr) => {\n const key = attr.getKey();\n return (\n key?.getValue() === attrName && !!attr?.getValue()?.hasExpression()\n );\n });\n }\n\n /** @type {Record<string, AttributeChecker[]>} */\n const checkersByTag = {\n input: [\n {\n attr: \"multiple\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return [\n \"text\",\n \"password\",\n \"radio\",\n \"checkbox\",\n \"image\",\n \"hidden\",\n \"reset\",\n \"button\",\n ].includes(type);\n },\n message: 'The \"multiple\" attribute has no effect on this input type.',\n },\n {\n attr: \"accept\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return type !== \"file\";\n },\n message:\n 'The \"accept\" attribute has no effect unless input type is \"file\".',\n },\n {\n attr: \"readonly\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return [\"checkbox\", \"radio\", \"file\", \"range\", \"color\"].includes(type);\n },\n message: 'The \"readonly\" attribute has no effect on this input type.',\n },\n {\n attr: \"min\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"number\",\n \"range\",\n \"date\",\n \"datetime-local\",\n \"month\",\n \"time\",\n \"week\",\n ].includes(type);\n },\n message:\n 'The \"min\" attribute only works with numeric, date, and time input types.',\n },\n {\n attr: \"max\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"number\",\n \"range\",\n \"date\",\n \"datetime-local\",\n \"month\",\n \"time\",\n \"week\",\n ].includes(type);\n },\n message:\n 'The \"max\" attribute only works with numeric, date, and time input types.',\n },\n {\n attr: \"step\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"number\",\n \"range\",\n \"date\",\n \"datetime-local\",\n \"month\",\n \"time\",\n \"week\",\n ].includes(type);\n },\n message:\n 'The \"step\" attribute only works with numeric, date, and time input types.',\n },\n {\n attr: \"pattern\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n ].includes(type);\n },\n message:\n 'The \"pattern\" attribute only works with text-based input types.',\n },\n {\n attr: \"maxlength\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n ].includes(type);\n },\n message:\n 'The \"maxlength\" attribute only works with text-based input types.',\n },\n {\n attr: \"minlength\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n ].includes(type);\n },\n message:\n 'The \"minlength\" attribute only works with text-based input types.',\n },\n {\n attr: \"placeholder\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n \"number\",\n ].includes(type);\n },\n message:\n 'The \"placeholder\" attribute has no effect on this input type.',\n },\n {\n attr: \"size\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return ![\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n ].includes(type);\n },\n message: 'The \"size\" attribute only works with text-based input types.',\n },\n {\n attr: \"list\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"text\";\n return [\n \"checkbox\",\n \"radio\",\n \"file\",\n \"submit\",\n \"image\",\n \"reset\",\n \"button\",\n \"hidden\",\n ].includes(type);\n },\n message: 'The \"list\" attribute has no effect on this input type.',\n },\n ],\n script: [\n {\n attr: \"defer\",\n when: (adapter) => !hasAttr(adapter, \"src\"),\n message: 'The \"defer\" attribute has no effect on inline scripts.',\n },\n {\n attr: \"async\",\n when: (adapter) => !hasAttr(adapter, \"src\"),\n message: 'The \"async\" attribute has no effect on inline scripts.',\n },\n ],\n a: [\n {\n attr: \"download\",\n when: (adapter) => !hasAttr(adapter, \"href\"),\n message: 'The \"download\" attribute has no effect without an \"href\".',\n },\n {\n attr: \"ping\",\n when: (adapter) => !hasAttr(adapter, \"href\"),\n message: 'The \"ping\" attribute has no effect without an \"href\".',\n },\n {\n attr: \"target\",\n when: (adapter) => !hasAttr(adapter, \"href\"),\n message: 'The \"target\" attribute has no effect without an \"href\".',\n },\n ],\n audio: [\n {\n attr: \"controlslist\",\n when: (adapter) => !hasAttr(adapter, \"controls\"),\n message:\n 'The \"controlslist\" attribute has no effect without \"controls\".',\n },\n ],\n video: [\n {\n attr: \"controlslist\",\n when: (adapter) => !hasAttr(adapter, \"controls\"),\n message:\n 'The \"controlslist\" attribute has no effect without \"controls\".',\n },\n ],\n form: [\n {\n attr: \"enctype\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"method\")) {\n return false;\n }\n const method = getAttrValue(adapter, \"method\") || \"get\";\n return method ? method.toLowerCase() !== \"post\" : false;\n },\n message:\n 'The \"enctype\" attribute only has effect when method is \"post\".',\n },\n ],\n button: [\n {\n attr: \"formaction\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"submit\";\n return type !== \"submit\";\n },\n message: 'The \"formaction\" attribute only works with type=\"submit\".',\n },\n {\n attr: \"formmethod\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"submit\";\n return type !== \"submit\";\n },\n message: 'The \"formmethod\" attribute only works with type=\"submit\".',\n },\n {\n attr: \"formenctype\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"submit\";\n return type !== \"submit\";\n },\n message: 'The \"formenctype\" attribute only works with type=\"submit\".',\n },\n {\n attr: \"formnovalidate\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"submit\";\n return type !== \"submit\";\n },\n message:\n 'The \"formnovalidate\" attribute only works with type=\"submit\".',\n },\n {\n attr: \"formtarget\",\n when: (adapter) => {\n if (isAttrValueExpression(adapter, \"type\")) {\n return false;\n }\n const type = getAttrValue(adapter, \"type\") || \"submit\";\n return type !== \"submit\";\n },\n message: 'The \"formtarget\" attribute only works with type=\"submit\".',\n },\n ],\n area: [\n {\n attr: \"download\",\n when: (adapter) => !hasAttr(adapter, \"href\"),\n message: 'The \"download\" attribute has no effect without an \"href\".',\n },\n {\n attr: \"ping\",\n when: (adapter) => !hasAttr(adapter, \"href\"),\n message: 'The \"ping\" attribute has no effect without an \"href\".',\n },\n {\n attr: \"target\",\n when: (adapter) => !hasAttr(adapter, \"href\"),\n message: 'The \"target\" attribute has no effect without an \"href\".',\n },\n ],\n img: [\n {\n attr: \"usemap\",\n when: (adapter) => hasAttr(adapter, \"ismap\"),\n message: 'The \"usemap\" and \"ismap\" attributes cannot be used together.',\n },\n ],\n };\n\n return {\n /**\n * @param {ElementAdapter} adapter\n * @returns {NoIneffectiveAttrsResult}\n */\n checkAttributes(adapter) {\n const elementName = adapter.getElementName();\n const tagCheckers = checkersByTag[elementName];\n\n if (!tagCheckers) {\n return [];\n }\n\n /** @type {NoIneffectiveAttrsResult} */\n const result = [];\n for (const check of tagCheckers) {\n for (const attribute of adapter.getAttributes()) {\n const attributeKey = attribute.getKey();\n if (!attributeKey) {\n continue;\n }\n if (attributeKey.hasExpression()) {\n continue;\n }\n const attributeValue = attribute.getValue();\n if (attributeValue?.hasExpression()) {\n continue;\n }\n const attributeKeyValue = attributeKey.getValue();\n const attributeValueValue = attributeValue?.getValue();\n if (\n attributeValueValue === null ||\n attributeKeyValue?.toLowerCase() !== check.attr\n ) {\n continue;\n }\n\n if (check.when(adapter)) {\n result.push({\n loc: attributeKey.getLocation(),\n messageId: NO_INEFFECTIVE_ATTRS_MESSAGE_IDS.ineffective,\n data: {\n message: check.message,\n },\n });\n }\n }\n }\n\n return result;\n },\n };\n}\n","/**\n * @import {\n * ElementAdapter,\n * NoObsoleteTagsResult\n * } from \"../types\"\n */\n\n// https://html.spec.whatwg.org/#non-conforming-features\nconst OBSOLETE_TAGS = [\n \"applet\",\n \"acronym\",\n \"bgsound\",\n \"dir\",\n \"frame\",\n \"frameset\",\n \"noframes\",\n \"isindex\",\n \"keygen\",\n \"listing\",\n \"menuitem\",\n \"nextid\",\n \"noembed\",\n \"plaintext\",\n \"rb\",\n \"rtc\",\n \"strike\",\n \"xmp\",\n \"basefont\",\n \"big\",\n \"blink\",\n \"center\",\n \"font\",\n \"marquee\",\n \"multicol\",\n \"nobr\",\n \"spacer\",\n \"tt\",\n];\n\nconst OBSOLETE_TAGS_SET = new Set(OBSOLETE_TAGS);\n\n/**\n * @type {{\n * unexpected: \"unexpected\";\n * }}\n */\nexport const NO_OBSOLETE_TAGS_MESSAGE_IDS = {\n unexpected: \"unexpected\",\n};\n\nexport function noObsoleteTags() {\n return {\n /**\n * @param {ElementAdapter} adapter\n * @returns {NoObsoleteTagsResult}\n */\n checkElement(adapter) {\n const tagName = adapter.getElementName();\n\n if (OBSOLETE_TAGS_SET.has(tagName)) {\n return [\n {\n messageId: NO_OBSOLETE_TAGS_MESSAGE_IDS.unexpected,\n loc: adapter.getOpenStartLocation(),\n data: {\n tag: tagName,\n },\n },\n ];\n }\n\n return [];\n },\n };\n}\n","/**\n * @typedef {Object} ObsoleteAttrConfig\n * @property {string[]} elements - List of HTML elements where this attribute is\n * obsolete. Use \"*\" for all elements.\n * @property {string} suggestion - Suggestion for what to use instead of this\n * obsolete attribute.\n */\n\n/** @typedef {Record<string, ObsoleteAttrConfig[]>} ObsoleteAttrs */\n\n// https://html.spec.whatwg.org/dev/obsolete.html#non-conforming-features\n/** @type {ObsoleteAttrs} */\nexport const OBSOLETE_ATTRS = {\n charset: [\n {\n elements: [\"a\", \"link\"],\n suggestion:\n \"Use an HTTP `Content-Type` header on the linked resource instead.\",\n },\n {\n elements: [\"script\"],\n suggestion:\n \"It is redundant to specify it on the script element since it inherits from the document.\",\n },\n ],\n coords: [\n {\n elements: [\"a\"],\n suggestion: \"Use area instead of a for image maps.\",\n },\n ],\n shape: [\n {\n elements: [\"a\"],\n suggestion: \"Use area instead of a for image maps.\",\n },\n ],\n methods: [\n {\n elements: [\"a\", \"link\"],\n suggestion: \"Use the HTTP OPTIONS feature instead.\",\n },\n ],\n name: [\n {\n elements: [\"a\", \"embed\", \"img\", \"option\"],\n suggestion: \"Use the id attribute instead.\",\n },\n ],\n rev: [\n {\n elements: [\"a\", \"link\"],\n suggestion:\n 'Use the rel attribute instead, with an opposite term. (For example, instead of rev=\"made\", use rel=\"author\".)',\n },\n ],\n urn: [\n {\n elements: [\"a\", \"link\"],\n suggestion:\n \"Specify the preferred persistent identifier using the href attribute instead.\",\n },\n ],\n accept: [\n {\n elements: [\"form\"],\n suggestion:\n \"Use the accept attribute directly on the input elements instead.\",\n },\n ],\n hreflang: [\n {\n elements: [\"area\"],\n suggestion:\n \"These attributes do not do anything useful, and for historical reasons there are no corresponding IDL attributes on area elements. Omit them altogether.\",\n },\n ],\n type: [\n {\n elements: [\"area\"],\n suggestion:\n \"These attributes do not do anything useful, and for historical reasons there are no corresponding IDL attributes on area elements. Omit them altogether.\",\n },\n {\n elements: [\"li\"],\n suggestion: \"Use CSS instead.\",\n },\n {\n elements: [\"menu\"],\n suggestion:\n \"To implement a custom context menu, use script to handle the contextmenu event. For toolbar menus, omit the attribute.\",\n },\n {\n elements: [\"style\"],\n suggestion:\n \"Omit the attribute for CSS; for data blocks, use script as the container instead of style.\",\n },\n {\n elements: [\"ul\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n nohref: [\n {\n elements: [\"area\"],\n suggestion:\n \"Omitting the href attribute is sufficient; the nohref attribute is unnecessary. Omit it altogether.\",\n },\n ],\n profile: [\n {\n elements: [\"head\"],\n suggestion: \"Unnecessary. Omit it altogether.\",\n },\n ],\n manifest: [\n {\n elements: [\"html\"],\n suggestion: \"Use service workers instead.\",\n },\n ],\n version: [\n {\n elements: [\"html\"],\n suggestion: \"Unnecessary. Omit it altogether.\",\n },\n ],\n ismap: [\n {\n elements: [\"input\"],\n suggestion:\n \"Unnecessary. Omit it altogether. All input elements with a type attribute in the Image Button state are processed as server-side image maps.\",\n },\n ],\n usemap: [\n {\n elements: [\"input\", \"object\"],\n suggestion: \"Use the img element for image maps.\",\n },\n ],\n longdesc: [\n {\n elements: [\"iframe\", \"img\"],\n suggestion:\n \"Use a regular a element to link to the description, or (in the case of images) use an image map to provide a link from the image to the image's description.\",\n },\n ],\n lowsrc: [\n {\n elements: [\"img\"],\n suggestion:\n \"Use a progressive JPEG image (given in the src attribute), instead of using two separate images.\",\n },\n ],\n target: [\n {\n elements: [\"link\"],\n suggestion: \"Unnecessary. Omit it altogether.\",\n },\n ],\n label: [\n {\n elements: [\"menu\"],\n suggestion:\n \"To implement a custom context menu, use script to handle the contextmenu event.\",\n },\n ],\n contextmenu: [\n {\n elements: [\"*\"],\n suggestion:\n \"To implement a custom context menu, use script to handle the contextmenu event.\",\n },\n ],\n onshow: [\n {\n elements: [\"*\"],\n suggestion:\n \"To implement a custom context menu, use script to handle the contextmenu event.\",\n },\n ],\n scheme: [\n {\n elements: [\"meta\"],\n suggestion:\n \"Use only one scheme per field, or make the scheme declaration part of the value.\",\n },\n ],\n archive: [\n {\n elements: [\"object\"],\n suggestion: \"Use the data and type attributes to invoke plugins.\",\n },\n ],\n classid: [\n {\n elements: [\"object\"],\n suggestion: \"Use the data and type attributes to invoke plugins.\",\n },\n ],\n code: [\n {\n elements: [\"object\"],\n suggestion: \"Use the data and type attributes to invoke plugins.\",\n },\n ],\n codebase: [\n {\n elements: [\"object\"],\n suggestion: \"Use the data and type attributes to invoke plugins.\",\n },\n ],\n codetype: [\n {\n elements: [\"object\"],\n suggestion: \"Use the data and type attributes to invoke plugins.\",\n },\n ],\n declare: [\n {\n elements: [\"object\"],\n suggestion:\n \"Repeat the object element completely each time the resource is to be reused.\",\n },\n ],\n standby: [\n {\n elements: [\"object\"],\n suggestion:\n \"Optimize the linked resource so that it loads quickly or, at least, incrementally.\",\n },\n ],\n typemustmatch: [\n {\n elements: [\"object\"],\n suggestion: \"Avoid using object elements with untrusted resources.\",\n },\n ],\n language: [\n {\n elements: [\"script\"],\n suggestion:\n \"Omit the attribute for JavaScript; for data blocks, use the type attribute instead.\",\n },\n ],\n event: [\n {\n elements: [\"script\"],\n suggestion: \"Use DOM events mechanisms to register event listeners.\",\n },\n ],\n for: [\n {\n elements: [\"script\"],\n suggestion: \"Use DOM events mechanisms to register event listeners.\",\n },\n ],\n datapagesize: [\n {\n elements: [\"table\"],\n suggestion: \"Unnecessary. Omit it altogether.\",\n },\n ],\n summary: [\n {\n elements: [\"table\"],\n suggestion:\n \"Use one of the techniques for describing tables given in the table section instead.\",\n },\n ],\n abbr: [\n {\n elements: [\"td\"],\n suggestion:\n \"Use text that begins in an unambiguous and terse manner, and include any more elaborate text after that. The title attribute can also be useful in including more detailed text, so that the cell's contents can be made terse. If it's a heading, use th (which has an abbr attribute).\",\n },\n ],\n axis: [\n {\n elements: [\"td\", \"th\"],\n suggestion: \"Use the scope attribute on the relevant th.\",\n },\n ],\n scope: [\n {\n elements: [\"td\"],\n suggestion: \"Use th elements for heading cells.\",\n },\n ],\n datasrc: [\n {\n elements: [\n \"a\",\n \"button\",\n \"div\",\n \"frame\",\n \"iframe\",\n \"img\",\n \"input\",\n \"label\",\n \"legend\",\n \"marquee\",\n \"object\",\n \"option\",\n \"select\",\n \"span\",\n \"table\",\n \"textarea\",\n ],\n suggestion:\n \"Use script and a mechanism such as XMLHttpRequest to populate the page dynamically.\",\n },\n ],\n datafld: [\n {\n elements: [\n \"a\",\n \"button\",\n \"div\",\n \"fieldset\",\n \"frame\",\n \"iframe\",\n \"img\",\n \"input\",\n \"label\",\n \"legend\",\n \"marquee\",\n \"object\",\n \"select\",\n \"span\",\n \"textarea\",\n ],\n suggestion:\n \"Use script and a mechanism such as XMLHttpRequest to populate the page dynamically.\",\n },\n ],\n dataformatas: [\n {\n elements: [\n \"button\",\n \"div\",\n \"input\",\n \"label\",\n \"legend\",\n \"marquee\",\n \"object\",\n \"option\",\n \"select\",\n \"span\",\n \"table\",\n ],\n suggestion:\n \"Use script and a mechanism such as XMLHttpRequest to populate the page dynamically.\",\n },\n ],\n dropzone: [\n {\n elements: [\"*\"],\n suggestion:\n \"Use script to handle the dragenter and dragover events instead.\",\n },\n ],\n alink: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n bgcolor: [\n {\n elements: [\"body\", \"table\", \"td\", \"th\", \"tr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n bottommargin: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n leftmargin: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n link: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n marginheight: [\n {\n elements: [\"body\", \"iframe\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n marginwidth: [\n {\n elements: [\"body\", \"iframe\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n rightmargin: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n text: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n topmargin: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n vlink: [\n {\n elements: [\"body\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n clear: [\n {\n elements: [\"br\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n align: [\n {\n elements: [\n \"caption\",\n \"col\",\n \"div\",\n \"embed\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"hr\",\n \"iframe\",\n \"input\",\n \"img\",\n \"legend\",\n \"object\",\n \"p\",\n \"table\",\n \"tbody\",\n \"thead\",\n \"tfoot\",\n \"td\",\n \"th\",\n \"tr\",\n ],\n suggestion: \"Use CSS instead.\",\n },\n ],\n char: [\n {\n elements: [\"col\", \"tbody\", \"thead\", \"tfoot\", \"td\", \"th\", \"tr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n charoff: [\n {\n elements: [\"col\", \"tbody\", \"thead\", \"tfoot\", \"td\", \"th\", \"tr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n valign: [\n {\n elements: [\"col\", \"tbody\", \"thead\", \"tfoot\", \"td\", \"th\", \"tr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n width: [\n {\n elements: [\"col\", \"hr\", \"pre\", \"table\", \"td\", \"th\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n compact: [\n {\n elements: [\"dl\", \"menu\", \"ol\", \"ul\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n hspace: [\n {\n elements: [\"embed\", \"iframe\", \"input\", \"img\", \"object\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n vspace: [\n {\n elements: [\"embed\", \"iframe\", \"input\", \"img\", \"object\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n color: [\n {\n elements: [\"hr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n noshade: [\n {\n elements: [\"hr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n size: [\n {\n elements: [\"hr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n allowtransparency: [\n {\n elements: [\"iframe\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n frameborder: [\n {\n elements: [\"iframe\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n framespacing: [\n {\n elements: [\"iframe\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n scrolling: [\n {\n elements: [\"iframe\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n border: [\n {\n elements: [\"input\", \"img\", \"object\", \"table\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n frame: [\n {\n elements: [\"table\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n bordercolor: [\n {\n elements: [\"table\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n cellpadding: [\n {\n elements: [\"table\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n cellspacing: [\n {\n elements: [\"table\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n height: [\n {\n elements: [\"table\", \"thead\", \"tbody\", \"tfoot\", \"td\", \"th\", \"tr\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n rules: [\n {\n elements: [\"table\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n nowrap: [\n {\n elements: [\"td\", \"th\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n background: [\n {\n elements: [\"body\", \"table\", \"thead\", \"tbody\", \"tfoot\", \"tr\", \"td\", \"th\"],\n suggestion: \"Use CSS instead.\",\n },\n ],\n};\n","/**\n * @import {\n * ElementAdapter,\n * NoObsoleteAttrsResult\n * } from \"../types\"\n */\n\nimport { OBSOLETE_ATTRS } from \"../utils/obsolete-attrs\";\n\n/**\n * @type {{\n * obsolete: \"obsolete\";\n * }}\n */\nexport const NO_OBSOLETE_ATTRS_MESSAGE_IDS = {\n obsolete: \"obsolete\",\n};\n\nexport function noObsoleteAttrs() {\n return {\n /**\n * @param {ElementAdapter} adapter\n * @returns {NoObsoleteAttrsResult}\n */\n checkAttributes(adapter) {\n const elementName = adapter.getElementName();\n\n /** @type {NoObsoleteAttrsResult} */\n const result = [];\n\n for (const attribute of adapter.getAttributes()) {\n const attributeKey = attribute.getKey();\n if (!attributeKey) {\n continue;\n }\n\n const attrKeyValue = attributeKey.getValue();\n const attributeValue = attribute.getValue();\n const attrValueValueValue = attributeValue?.getValue();\n // Skip if attribute key is an expression or doesn't have a value\n if (\n attributeKey.hasExpression() ||\n attrKeyValue === null ||\n attrValueValueValue === null\n ) {\n continue;\n }\n\n const attrName = attrKeyValue.toLowerCase();\n\n // Check if this attribute is in the obsolete list\n if (OBSOLETE_ATTRS[attrName]) {\n const obsoleteConfigs = OBSOLETE_ATTRS[attrName];\n\n // Check if this attribute is obsolete for this specific element\n for (const config of obsoleteConfigs) {\n // Handle wildcard (*) for all elements\n if (\n config.elements.includes(\"*\") ||\n config.elements.includes(elementName)\n ) {\n result.push({\n loc: attributeKey.getLocation(),\n messageId: NO_OBSOLETE_ATTRS_MESSAGE_IDS.obsolete,\n data: {\n attr: attrName,\n element: elementName,\n suggestion: config.suggestion,\n },\n });\n break;\n }\n }\n }\n }\n\n return result;\n },\n };\n}\n","/**\n * @import {\n * Range,\n * SourceLocation\n * } from \"@html-eslint/types\"\n * @import {\n * AttributeValueAdapter,\n * ClassSpacingResult\n * } from \"../types\"\n */\n\nconst CLASS_BETWEEN_EXTRA_SPACES_REGEX = /\\s{2,}/;\nconst CLASS_BETWEEN_EXTRA_SPACES_REGEX_GLOBAL = /\\s{2,}/g;\nconst LINE_BREAK_REGEX = /\\r\\n|[\\r\\n\\u2028\\u2029]/u;\n/**\n * @type {{\n * extraSpacing: \"extraSpacing\";\n * }}\n */\nexport const CLASS_SPACING_MESSAGE_IDS = {\n extraSpacing: \"extraSpacing\",\n};\n\n/**\n * @param {string} value\n * @param {SourceLocation} loc\n * @param {Range} range\n * @param {ClassSpacingResult} result\n */\nfunction checkLeading(value, loc, range, result) {\n // Skip leading whitespace check if value starts with newline\n if (value.startsWith(\"\\n\")) {\n return;\n }\n\n if (value.startsWith(\" \")) {\n const leadingSpaces = value.length - value.trimStart().length;\n const spacingStart = loc.start;\n const spacingEnd = {\n line: spacingStart.line,\n column: spacingStart.column + leadingSpaces,\n };\n /** @type {Range} */\n const spacingRange = [range[0], range[0] + leadingSpaces];\n result.push({\n messageId: CLASS_SPACING_MESSAGE_IDS.extraSpacing,\n loc: {\n start: spacingStart,\n end: spacingEnd,\n },\n range: spacingRange,\n });\n }\n}\n\n/**\n * @param {string} value\n * @returns {{ line: string; start: number }[]}\n */\nfunction splitLines(value) {\n const lines = value.split(LINE_BREAK_REGEX);\n let pos = 0;\n return lines.map((line, i) => {\n const entry = { line, start: pos };\n const lineBreakLength = i < lines.length - 1 ? 1 : 0;\n pos += line.length + lineBreakLength;\n return entry;\n });\n}\n\n/**\n * @param {number} lineIndex\n * @param {number} columnInLine\n * @param {SourceLocation} loc\n */\nfunction toColumn(lineIndex, columnInLine, loc) {\n return lineIndex === 0 ? loc.start.column + columnInLine : columnInLine;\n}\n\n/**\n * @param {string} value\n * @param {SourceLocation} loc\n * @param {Range} range\n * @param {ClassSpacingResult} result\n */\nfunction checkBetween(value, loc, range, result) {\n const lineEntries = splitLines(value);\n for (let lineIndex = 0; lineIndex < lineEntries.length; lineIndex++) {\n const { line, start: lineStart } = lineEntries[lineIndex];\n const trimmedLine = line.trim();\n if (!CLASS_BETWEEN_EXTRA_SPACES_REGEX.test(trimmedLine)) continue;\n\n const lineLeadingSpaces = line.length - line.trimStart().length;\n\n for (const match of trimmedLine.matchAll(\n CLASS_BETWEEN_EXTRA_SPACES_REGEX_GLOBAL\n )) {\n const matchStartInLine = lineLeadingSpaces + match.index;\n const matchEndInLine = matchStartInLine + match[0].length;\n\n result.push({\n messageId: CLASS_SPACING_MESSAGE_IDS.extraSpacing,\n loc: {\n start: {\n line: loc.start.line + lineIndex,\n column: toColumn(lineIndex, matchStartInLine, loc) + 1,\n },\n end: {\n line: loc.start.line + lineIndex,\n column: toColumn(lineIndex, matchEndInLine, loc),\n },\n },\n range: [\n range[0] + lineStart + matchStartInLine + 1,\n range[0] + lineStart + matchEndInLine,\n ],\n });\n }\n }\n}\n\n/**\n * @param {string} line\n * @param {number} lineIndex\n * @param {boolean} isSingleLine\n * @param {SourceLocation} loc\n */\nfunction trailingLoc(line, lineIndex, isSingleLine, loc) {\n const trailingSpaces = line.length - line.trimEnd().length;\n if (isSingleLine) {\n return {\n start: { line: loc.end.line, column: loc.end.column - trailingSpaces },\n end: { line: loc.end.line, column: loc.end.column },\n };\n }\n const columnOffset = lineIndex === 0 ? loc.start.column : 0;\n return {\n start: {\n line: loc.start.line + lineIndex,\n column: columnOffset + line.length - trailingSpaces,\n },\n end: {\n line: loc.start.line + lineIndex,\n column: columnOffset + line.length,\n },\n };\n}\n\n/**\n * @param {string} value\n * @param {SourceLocation} loc\n * @param {Range} range\n * @param {ClassSpacingResult} result\n */\nfunction checkTrailing(value, loc, range, result) {\n const lineEntries = splitLines(value);\n const isSingleLine = lineEntries.length === 1;\n\n for (let i = 0; i < lineEntries.length; i++) {\n const { line, start: lineStart } = lineEntries[i];\n if (!line.endsWith(\" \")) continue;\n\n const trailingSpaces = line.length - line.trimEnd().length;\n result.push({\n messageId: CLASS_SPACING_MESSAGE_IDS.extraSpacing,\n loc: trailingLoc(line, i, isSingleLine, loc),\n range: [\n range[0] + lineStart + line.length - trailingSpaces,\n range[0] + lineStart + line.length,\n ],\n });\n }\n}\n\nexport function classSpacing() {\n return {\n /**\n * @param {AttributeValueAdapter} classValue\n * @returns {ClassSpacingResult}\n */\n checkClassValue(classValue) {\n /** @type {ClassSpacingResult} */\n const result = [];\n\n if (classValue.hasExpression()) {\n return result;\n }\n\n const value = classValue.getValue();\n if (!value) {\n return result;\n }\n\n const loc = classValue.getLocation();\n const range = classValue.getRange();\n\n checkLeading(value, loc, range, result);\n checkBetween(value, loc, range, result);\n checkTrailing(value, loc, range, result);\n\n return result;\n },\n };\n}\n","/**\n * @import {\n * AttributeValueAdapter,\n * NoDuplicateClassResult\n * } from \"../types\"\n */\n\n/**\n * @type {{\n * duplicateClass: \"duplicateClass\";\n * }}\n */\nexport const NO_DUPLICATE_CLASS_MESSAGE_IDS = {\n duplicateClass: \"duplicateClass\",\n};\n\n/**\n * Split class string into tokens (class names and spaces) with their positions\n *\n * @param {string} value - The class attribute value\n * @returns {{ value: string; pos: number }[]}\n */\nfunction splitClassAndSpaces(value) {\n /** @type {{ value: string; pos: number }[]} */\n const result = [];\n const regex = /(\\s+|\\S+)/g;\n /** @type {RegExpExecArray | null} */\n let match = null;\n\n while ((match = regex.exec(value)) !== null) {\n result.push({\n value: match[0],\n pos: match.index,\n });\n }\n\n return result;\n}\n\nexport function noDuplicateClass() {\n return {\n /**\n * @param {AttributeValueAdapter} classValue\n * @returns {NoDuplicateClassResult}\n */\n checkClassValue(classValue) {\n /** @type {NoDuplicateClassResult} */\n const result = [];\n\n if (classValue.hasExpression()) {\n return result;\n }\n\n const value = classValue.getValue();\n if (!value) {\n return result;\n }\n\n const loc = classValue.getLocation();\n const range = classValue.getRange();\n\n const classesAndSpaces = splitClassAndSpaces(value);\n const classSet = new Set();\n\n classesAndSpaces.forEach(({ value, pos }) => {\n const className = value.trim();\n\n if (className.length) {\n if (classSet.has(className)) {\n const classStart = {\n line: loc.start.line,\n column: loc.start.column + pos,\n };\n const classEnd = {\n line: loc.start.line,\n column: loc.start.column + pos + value.length,\n };\n result.push({\n messageId: NO_DUPLICATE_CLASS_MESSAGE_IDS.duplicateClass,\n loc: {\n start: classStart,\n end: classEnd,\n },\n range: [range[0] + pos, range[0] + pos + value.length],\n data: {\n className,\n },\n });\n } else {\n classSet.add(className);\n }\n }\n });\n\n return result;\n },\n };\n}\n"],"mappings":"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","names":["element","value"]}
|