@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
|
@@ -35,6 +35,7 @@ __export(index_exports, {
|
|
|
35
35
|
hasValidationWarning: () => hasValidationWarning,
|
|
36
36
|
isAsyncScript: () => isAsyncScript,
|
|
37
37
|
isDeferScript: () => isDeferScript,
|
|
38
|
+
isHighPriorityPreload: () => isHighPriorityPreload,
|
|
38
39
|
isImportStyles: () => isImportStyles,
|
|
39
40
|
isMeta: () => isMeta,
|
|
40
41
|
isMetaCSP: () => isMetaCSP,
|
|
@@ -98,12 +99,23 @@ function isMeta(element, adapter) {
|
|
|
98
99
|
function isTitle(element, adapter) {
|
|
99
100
|
return adapter.getTagName(element) === "title";
|
|
100
101
|
}
|
|
102
|
+
function isHighPriorityPreload(element, adapter) {
|
|
103
|
+
if (adapter.getTagName(element) !== "link") {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
const rel = adapter.getAttribute(element, "rel")?.toLowerCase();
|
|
107
|
+
if (rel !== "preload" && rel !== "modulepreload") {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
const priority = adapter.getAttribute(element, "fetchpriority")?.toLowerCase();
|
|
111
|
+
return priority === "high";
|
|
112
|
+
}
|
|
101
113
|
function isPreconnect(element, adapter) {
|
|
102
114
|
if (adapter.getTagName(element) !== "link") {
|
|
103
115
|
return false;
|
|
104
116
|
}
|
|
105
117
|
const rel = adapter.getAttribute(element, "rel");
|
|
106
|
-
return rel?.toLowerCase() === "preconnect";
|
|
118
|
+
return rel?.toLowerCase() === "preconnect" || isHighPriorityPreload(element, adapter);
|
|
107
119
|
}
|
|
108
120
|
function isAsyncScript(element, adapter) {
|
|
109
121
|
return adapter.getTagName(element) === "script" && adapter.hasAttribute(element, "src") && adapter.hasAttribute(element, "async");
|
|
@@ -136,8 +148,11 @@ function isSyncScript(element, adapter) {
|
|
|
136
148
|
return false;
|
|
137
149
|
}
|
|
138
150
|
const type = adapter.getAttribute(element, "type");
|
|
139
|
-
if (type
|
|
140
|
-
|
|
151
|
+
if (type) {
|
|
152
|
+
const normalizedType = type.toLowerCase().trim();
|
|
153
|
+
if (normalizedType.includes("json") || normalizedType === "speculationrules") {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
141
156
|
}
|
|
142
157
|
return true;
|
|
143
158
|
}
|
|
@@ -190,7 +205,12 @@ function isDeferScript(element, adapter) {
|
|
|
190
205
|
return false;
|
|
191
206
|
}
|
|
192
207
|
function isPrefetchPrerender(element, adapter) {
|
|
193
|
-
|
|
208
|
+
const tagName = adapter.getTagName(element);
|
|
209
|
+
if (tagName === "script") {
|
|
210
|
+
const type = adapter.getAttribute(element, "type");
|
|
211
|
+
return type?.toLowerCase().trim() === "speculationrules";
|
|
212
|
+
}
|
|
213
|
+
if (tagName !== "link") {
|
|
194
214
|
return false;
|
|
195
215
|
}
|
|
196
216
|
const rel = adapter.getAttribute(element, "rel");
|
|
@@ -251,195 +271,7 @@ function getHeadWeights(head, adapter) {
|
|
|
251
271
|
});
|
|
252
272
|
}
|
|
253
273
|
|
|
254
|
-
// src/lib/
|
|
255
|
-
var VALID_HEAD_ELEMENTS = /* @__PURE__ */ new Set([
|
|
256
|
-
"base",
|
|
257
|
-
"link",
|
|
258
|
-
"meta",
|
|
259
|
-
"noscript",
|
|
260
|
-
"script",
|
|
261
|
-
"style",
|
|
262
|
-
"template",
|
|
263
|
-
"title"
|
|
264
|
-
]);
|
|
265
|
-
function isValidElement(element, adapter) {
|
|
266
|
-
const tagName = adapter.getTagName(element);
|
|
267
|
-
if (!tagName || tagName === "") {
|
|
268
|
-
return true;
|
|
269
|
-
}
|
|
270
|
-
return VALID_HEAD_ELEMENTS.has(tagName.toLowerCase());
|
|
271
|
-
}
|
|
272
|
-
function hasInvalidChildren(element, adapter) {
|
|
273
|
-
const children = adapter.getChildren(element);
|
|
274
|
-
return children.some((child) => !isValidElement(child, adapter));
|
|
275
|
-
}
|
|
276
|
-
function isDuplicateTitle(element, adapter) {
|
|
277
|
-
if (adapter.getTagName(element) !== "title") {
|
|
278
|
-
return false;
|
|
279
|
-
}
|
|
280
|
-
const parent = adapter.getParent(element);
|
|
281
|
-
if (!parent) {
|
|
282
|
-
return false;
|
|
283
|
-
}
|
|
284
|
-
let foundFirst = false;
|
|
285
|
-
for (const child of adapter.getChildren(parent)) {
|
|
286
|
-
if (adapter.getTagName(child) === "title") {
|
|
287
|
-
if (child === element) {
|
|
288
|
-
return foundFirst;
|
|
289
|
-
}
|
|
290
|
-
foundFirst = true;
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
return false;
|
|
294
|
-
}
|
|
295
|
-
function isDuplicateBase(element, adapter) {
|
|
296
|
-
if (adapter.getTagName(element) !== "base") {
|
|
297
|
-
return false;
|
|
298
|
-
}
|
|
299
|
-
const siblings = adapter.getSiblings(element);
|
|
300
|
-
return siblings.some((sibling) => adapter.getTagName(sibling) === "base");
|
|
301
|
-
}
|
|
302
|
-
function hasValidationWarning(element, adapter) {
|
|
303
|
-
if (!isValidElement(element, adapter)) {
|
|
304
|
-
return true;
|
|
305
|
-
}
|
|
306
|
-
if (hasInvalidChildren(element, adapter)) {
|
|
307
|
-
return true;
|
|
308
|
-
}
|
|
309
|
-
if (isDuplicateTitle(element, adapter)) {
|
|
310
|
-
return true;
|
|
311
|
-
}
|
|
312
|
-
if (isDuplicateBase(element, adapter)) {
|
|
313
|
-
return true;
|
|
314
|
-
}
|
|
315
|
-
if (isMetaCSP(element, adapter)) {
|
|
316
|
-
return true;
|
|
317
|
-
}
|
|
318
|
-
if (isInvalidHttpEquiv(element, adapter)) {
|
|
319
|
-
return true;
|
|
320
|
-
}
|
|
321
|
-
if (isInvalidMetaViewport(element, adapter)) {
|
|
322
|
-
return true;
|
|
323
|
-
}
|
|
324
|
-
if (isInvalidDefaultStyle(element, adapter)) {
|
|
325
|
-
return true;
|
|
326
|
-
}
|
|
327
|
-
if (isInvalidContentType(element, adapter)) {
|
|
328
|
-
return true;
|
|
329
|
-
}
|
|
330
|
-
if (isInvalidOriginTrial(element, adapter)) {
|
|
331
|
-
return true;
|
|
332
|
-
}
|
|
333
|
-
if (isUnnecessaryPreload(element, adapter)) {
|
|
334
|
-
return true;
|
|
335
|
-
}
|
|
336
|
-
if (isInvalidFontPreload(element, adapter)) {
|
|
337
|
-
return true;
|
|
338
|
-
}
|
|
339
|
-
return false;
|
|
340
|
-
}
|
|
341
|
-
function getValidationWarnings(head, adapter) {
|
|
342
|
-
const validationWarnings = [];
|
|
343
|
-
const children = adapter.getChildren(head);
|
|
344
|
-
const titleElements = children.filter((child) => adapter.getTagName(child) === "title");
|
|
345
|
-
const titleElementCount = titleElements.length;
|
|
346
|
-
if (titleElementCount != 1) {
|
|
347
|
-
validationWarnings.push({
|
|
348
|
-
ruleId: titleElementCount === 0 ? "require-title" : "no-duplicate-title",
|
|
349
|
-
warning: `Expected exactly 1 <title> element, found ${titleElementCount}`,
|
|
350
|
-
elements: titleElements
|
|
351
|
-
});
|
|
352
|
-
}
|
|
353
|
-
const metaViewport = children.filter((child) => {
|
|
354
|
-
if (adapter.getTagName(child) !== "meta") return false;
|
|
355
|
-
const name = adapter.getAttribute(child, "name");
|
|
356
|
-
return name && name.toLowerCase() === "viewport";
|
|
357
|
-
});
|
|
358
|
-
if (metaViewport.length != 1) {
|
|
359
|
-
validationWarnings.push({
|
|
360
|
-
ruleId: metaViewport.length === 0 ? "require-meta-viewport" : "valid-meta-viewport",
|
|
361
|
-
warning: `Expected exactly 1 <meta name=viewport> element, found ${metaViewport.length}`,
|
|
362
|
-
elements: metaViewport
|
|
363
|
-
});
|
|
364
|
-
}
|
|
365
|
-
const baseElements = children.filter((child) => adapter.getTagName(child) === "base");
|
|
366
|
-
const baseElementCount = baseElements.length;
|
|
367
|
-
if (baseElementCount > 1) {
|
|
368
|
-
validationWarnings.push({
|
|
369
|
-
ruleId: "no-duplicate-base",
|
|
370
|
-
warning: `Expected at most 1 <base> element, found ${baseElementCount}`,
|
|
371
|
-
elements: baseElements
|
|
372
|
-
});
|
|
373
|
-
}
|
|
374
|
-
children.forEach((element) => {
|
|
375
|
-
if (isValidElement(element, adapter)) {
|
|
376
|
-
const elementChildren = adapter.getChildren(element);
|
|
377
|
-
elementChildren.forEach((child) => {
|
|
378
|
-
if (!isValidElement(child, adapter)) {
|
|
379
|
-
validationWarnings.push({
|
|
380
|
-
ruleId: "no-invalid-head-elements",
|
|
381
|
-
warning: `${adapter.getTagName(child).toUpperCase()} elements are not allowed in the <head>`,
|
|
382
|
-
element
|
|
383
|
-
});
|
|
384
|
-
}
|
|
385
|
-
});
|
|
386
|
-
return;
|
|
387
|
-
}
|
|
388
|
-
validationWarnings.push({
|
|
389
|
-
ruleId: "no-invalid-head-elements",
|
|
390
|
-
warning: `${adapter.getTagName(element)} elements are not allowed in the <head>`,
|
|
391
|
-
element
|
|
392
|
-
});
|
|
393
|
-
});
|
|
394
|
-
return validationWarnings;
|
|
395
|
-
}
|
|
396
|
-
function getCustomValidations(element, adapter, parentElement = null) {
|
|
397
|
-
const results = [];
|
|
398
|
-
if (isOriginTrial(element, adapter)) {
|
|
399
|
-
results.push(validateOriginTrial(element, adapter));
|
|
400
|
-
}
|
|
401
|
-
if (isMetaCSP(element, adapter)) {
|
|
402
|
-
results.push(validateCSP(element, adapter));
|
|
403
|
-
}
|
|
404
|
-
if (isDefaultStyle(element, adapter)) {
|
|
405
|
-
results.push(validateDefaultStyle(element, adapter));
|
|
406
|
-
}
|
|
407
|
-
if (isMetaViewport(element, adapter)) {
|
|
408
|
-
results.push(validateMetaViewport(element, adapter));
|
|
409
|
-
}
|
|
410
|
-
if (isContentType(element, adapter)) {
|
|
411
|
-
results.push(validateContentType(element, adapter));
|
|
412
|
-
}
|
|
413
|
-
if (isHttpEquiv(element, adapter)) {
|
|
414
|
-
results.push(validateHttpEquiv(element, adapter));
|
|
415
|
-
}
|
|
416
|
-
if (isUnnecessaryPreload(element, adapter, parentElement)) {
|
|
417
|
-
results.push(validateUnnecessaryPreload(element, adapter, parentElement));
|
|
418
|
-
}
|
|
419
|
-
if (isInvalidFontPreload(element, adapter)) {
|
|
420
|
-
results.push(validateInvalidFontPreload(element, adapter));
|
|
421
|
-
}
|
|
422
|
-
if (results.length === 0) {
|
|
423
|
-
return {};
|
|
424
|
-
}
|
|
425
|
-
if (results.length === 1) {
|
|
426
|
-
return results[0];
|
|
427
|
-
}
|
|
428
|
-
const combined = {
|
|
429
|
-
warnings: [],
|
|
430
|
-
payload: {},
|
|
431
|
-
ruleId: results[0].ruleId
|
|
432
|
-
};
|
|
433
|
-
results.forEach((result) => {
|
|
434
|
-
if (result.warnings) {
|
|
435
|
-
combined.warnings?.push(...result.warnings);
|
|
436
|
-
}
|
|
437
|
-
if (result.payload) {
|
|
438
|
-
Object.assign(combined.payload, result.payload);
|
|
439
|
-
}
|
|
440
|
-
});
|
|
441
|
-
return combined;
|
|
442
|
-
}
|
|
274
|
+
// src/lib/validations/csp.js
|
|
443
275
|
function validateCSP(element, adapter) {
|
|
444
276
|
const warnings = [];
|
|
445
277
|
let payload = null;
|
|
@@ -459,7 +291,7 @@ function validateCSP(element, adapter) {
|
|
|
459
291
|
const content = adapter.getAttribute(element, "content");
|
|
460
292
|
if (!content) {
|
|
461
293
|
warnings.push("Invalid CSP. The content attribute must be set.");
|
|
462
|
-
return { warnings, payload };
|
|
294
|
+
return { ruleId: "no-meta-csp", warnings, payload };
|
|
463
295
|
}
|
|
464
296
|
const directives = Object.fromEntries(
|
|
465
297
|
content.split(/\s*;\s*/).map((directive) => {
|
|
@@ -488,14 +320,26 @@ function validateCSP(element, adapter) {
|
|
|
488
320
|
payload
|
|
489
321
|
};
|
|
490
322
|
}
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
323
|
+
|
|
324
|
+
// src/lib/validations/origin-trial.js
|
|
325
|
+
function isSameOrigin(a, b) {
|
|
326
|
+
return new URL(a).origin === new URL(b).origin;
|
|
327
|
+
}
|
|
328
|
+
function isSubdomain(tokenOrigin, pageUrl) {
|
|
329
|
+
const urlA = new URL(tokenOrigin);
|
|
330
|
+
const urlB = new URL(pageUrl);
|
|
331
|
+
return urlB.host.endsWith(`.${urlA.host}`);
|
|
497
332
|
}
|
|
498
|
-
function
|
|
333
|
+
function decodeOriginTrialToken(token) {
|
|
334
|
+
if (!token) throw new Error("Missing token");
|
|
335
|
+
const buffer = new Uint8Array([...atob(token)].map((a) => a.charCodeAt(0)));
|
|
336
|
+
const view = new DataView(buffer.buffer);
|
|
337
|
+
const length = view.getUint32(65, false);
|
|
338
|
+
const payload = JSON.parse(new TextDecoder().decode(buffer.slice(69, 69 + length)));
|
|
339
|
+
payload.expiry = new Date(payload.expiry * 1e3);
|
|
340
|
+
return payload;
|
|
341
|
+
}
|
|
342
|
+
function validateOriginTrial(element, adapter, pageOrigin = null) {
|
|
499
343
|
const metadata = {
|
|
500
344
|
ruleId: "no-invalid-origin-trial",
|
|
501
345
|
payload: null,
|
|
@@ -511,9 +355,10 @@ function validateOriginTrial(element, adapter) {
|
|
|
511
355
|
if (metadata.payload.expiry < /* @__PURE__ */ new Date()) {
|
|
512
356
|
metadata.warnings?.push("Invalid origin trial token: expired");
|
|
513
357
|
}
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
358
|
+
const targetOrigin = pageOrigin || typeof document !== "undefined" && document.location && document.location.href;
|
|
359
|
+
if (targetOrigin) {
|
|
360
|
+
if (!isSameOrigin(metadata.payload.origin, targetOrigin)) {
|
|
361
|
+
const subdomain = isSubdomain(metadata.payload.origin, targetOrigin);
|
|
517
362
|
if (subdomain && !metadata.payload.isSubdomain) {
|
|
518
363
|
metadata.warnings?.push("Invalid origin trial token: invalid subdomain");
|
|
519
364
|
} else if (!subdomain && !metadata.payload.isThirdParty) {
|
|
@@ -523,167 +368,53 @@ function validateOriginTrial(element, adapter) {
|
|
|
523
368
|
}
|
|
524
369
|
return metadata;
|
|
525
370
|
}
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
const buffer = new Uint8Array([...atob(token)].map((a) => a.charCodeAt(0)));
|
|
529
|
-
const view = new DataView(buffer.buffer);
|
|
530
|
-
const length = view.getUint32(65, false);
|
|
531
|
-
const payload = JSON.parse(new TextDecoder().decode(buffer.slice(69, 69 + length)));
|
|
532
|
-
payload.expiry = new Date(payload.expiry * 1e3);
|
|
533
|
-
return payload;
|
|
534
|
-
}
|
|
535
|
-
function isSameOrigin(a, b) {
|
|
536
|
-
return new URL(a).origin === new URL(b).origin;
|
|
537
|
-
}
|
|
538
|
-
function isSubdomain(a, b) {
|
|
539
|
-
const urlA = new URL(a);
|
|
540
|
-
const urlB = new URL(b);
|
|
541
|
-
return urlB.host.endsWith(`.${urlA.host}`);
|
|
542
|
-
}
|
|
371
|
+
|
|
372
|
+
// src/lib/validations/default-style.js
|
|
543
373
|
function isDefaultStyle(element, adapter) {
|
|
544
374
|
if (adapter.getTagName(element) !== "meta") return false;
|
|
545
375
|
const httpEquiv = adapter.getAttribute(element, "http-equiv");
|
|
546
376
|
return httpEquiv?.toLowerCase() === "default-style";
|
|
547
377
|
}
|
|
548
|
-
function isContentType(element, adapter) {
|
|
549
|
-
if (adapter.getTagName(element) !== "meta") return false;
|
|
550
|
-
if (adapter.hasAttribute(element, "charset")) return true;
|
|
551
|
-
const httpEquiv = adapter.getAttribute(element, "http-equiv");
|
|
552
|
-
return httpEquiv?.toLowerCase() === "content-type";
|
|
553
|
-
}
|
|
554
|
-
function isHttpEquiv(element, adapter) {
|
|
555
|
-
if (adapter.getTagName(element) !== "meta") return false;
|
|
556
|
-
return adapter.hasAttribute(element, "http-equiv");
|
|
557
|
-
}
|
|
558
|
-
function isMetaViewport(element, adapter) {
|
|
559
|
-
if (adapter.getTagName(element) !== "meta") return false;
|
|
560
|
-
const name = adapter.getAttribute(element, "name");
|
|
561
|
-
return name?.toLowerCase() === "viewport";
|
|
562
|
-
}
|
|
563
|
-
function isInvalidDefaultStyle(element, adapter) {
|
|
564
|
-
if (!isDefaultStyle(element, adapter)) {
|
|
565
|
-
return false;
|
|
566
|
-
}
|
|
567
|
-
const { warnings } = validateDefaultStyle(element, adapter);
|
|
568
|
-
return (warnings?.length ?? 0) > 0;
|
|
569
|
-
}
|
|
570
|
-
function isInvalidContentType(element, adapter) {
|
|
571
|
-
if (!isContentType(element, adapter)) {
|
|
572
|
-
return false;
|
|
573
|
-
}
|
|
574
|
-
const { warnings } = validateContentType(element, adapter);
|
|
575
|
-
return (warnings?.length ?? 0) > 0;
|
|
576
|
-
}
|
|
577
|
-
function isInvalidHttpEquiv(element, adapter) {
|
|
578
|
-
if (!isHttpEquiv(element, adapter)) {
|
|
579
|
-
return false;
|
|
580
|
-
}
|
|
581
|
-
const { warnings } = validateHttpEquiv(element, adapter);
|
|
582
|
-
return (warnings?.length ?? 0) > 0;
|
|
583
|
-
}
|
|
584
|
-
function isInvalidMetaViewport(element, adapter) {
|
|
585
|
-
if (!isMetaViewport(element, adapter)) {
|
|
586
|
-
return false;
|
|
587
|
-
}
|
|
588
|
-
const { warnings } = validateMetaViewport(element, adapter);
|
|
589
|
-
return (warnings?.length ?? 0) > 0;
|
|
590
|
-
}
|
|
591
|
-
function isUnnecessaryPreload(element, adapter, parentElement = null) {
|
|
592
|
-
const tagName = adapter.getTagName(element);
|
|
593
|
-
if (tagName !== "link") {
|
|
594
|
-
return false;
|
|
595
|
-
}
|
|
596
|
-
const rel = adapter.getAttribute(element, "rel");
|
|
597
|
-
const relLower = rel?.toLowerCase();
|
|
598
|
-
if (relLower !== "preload" && relLower !== "modulepreload") {
|
|
599
|
-
return false;
|
|
600
|
-
}
|
|
601
|
-
const href = adapter.getAttribute(element, "href");
|
|
602
|
-
if (!href) {
|
|
603
|
-
return false;
|
|
604
|
-
}
|
|
605
|
-
const parent = parentElement || adapter.getParent(element);
|
|
606
|
-
if (!parent) {
|
|
607
|
-
return false;
|
|
608
|
-
}
|
|
609
|
-
const found = findElementWithSource(parent, href, element, adapter);
|
|
610
|
-
return found != null;
|
|
611
|
-
}
|
|
612
|
-
function isInvalidFontPreload(element, adapter) {
|
|
613
|
-
const tagName = adapter.getTagName(element);
|
|
614
|
-
if (tagName !== "link") {
|
|
615
|
-
return false;
|
|
616
|
-
}
|
|
617
|
-
const rel = adapter.getAttribute(element, "rel");
|
|
618
|
-
if (rel?.toLowerCase() !== "preload") {
|
|
619
|
-
return false;
|
|
620
|
-
}
|
|
621
|
-
const as = adapter.getAttribute(element, "as");
|
|
622
|
-
if (as?.toLowerCase() !== "font") {
|
|
623
|
-
return false;
|
|
624
|
-
}
|
|
625
|
-
return !adapter.hasAttribute(element, "crossorigin");
|
|
626
|
-
}
|
|
627
|
-
function validateInvalidFontPreload(element, adapter) {
|
|
628
|
-
const warnings = ["Font preloads must have the crossorigin attribute set, even for same-origin fonts."];
|
|
629
|
-
return {
|
|
630
|
-
ruleId: "valid-font-preload",
|
|
631
|
-
warnings,
|
|
632
|
-
payload: null
|
|
633
|
-
};
|
|
634
|
-
}
|
|
635
|
-
function findElementWithSource(parent, sourceUrl, excludeElement, adapter) {
|
|
636
|
-
const children = adapter.getChildren(parent);
|
|
637
|
-
for (const child of children) {
|
|
638
|
-
if (child === excludeElement) {
|
|
639
|
-
continue;
|
|
640
|
-
}
|
|
641
|
-
const tagName = adapter.getTagName(child);
|
|
642
|
-
if (tagName === "link") {
|
|
643
|
-
const rel = adapter.getAttribute(child, "rel");
|
|
644
|
-
if (rel && /\b(preload|modulepreload)\b/i.test(rel)) {
|
|
645
|
-
continue;
|
|
646
|
-
}
|
|
647
|
-
const childHref = adapter.getAttribute(child, "href");
|
|
648
|
-
if (childHref === sourceUrl) {
|
|
649
|
-
return child;
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
if (tagName === "script") {
|
|
653
|
-
const src = adapter.getAttribute(child, "src");
|
|
654
|
-
if (src === sourceUrl) {
|
|
655
|
-
return child;
|
|
656
|
-
}
|
|
657
|
-
}
|
|
658
|
-
}
|
|
659
|
-
return null;
|
|
660
|
-
}
|
|
661
378
|
function validateDefaultStyle(element, adapter) {
|
|
662
379
|
const warnings = [];
|
|
663
380
|
let payload = null;
|
|
664
381
|
const title = adapter.getAttribute(element, "content");
|
|
665
|
-
if (
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
);
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
382
|
+
if (!title) {
|
|
383
|
+
warnings.push("This has no effect. The content attribute must be set to a valid stylesheet title.");
|
|
384
|
+
} else {
|
|
385
|
+
const parent = adapter.getParent(element);
|
|
386
|
+
let stylesheet = null;
|
|
387
|
+
let alternateStylesheets = [];
|
|
388
|
+
if (parent) {
|
|
389
|
+
const children = adapter.getChildren(parent);
|
|
390
|
+
alternateStylesheets = children.filter((child) => {
|
|
391
|
+
if (adapter.getTagName(child) !== "link") return false;
|
|
392
|
+
const rel = adapter.getAttribute(child, "rel") || "";
|
|
393
|
+
const rels = rel.toLowerCase().split(/\s+/);
|
|
394
|
+
return rels.includes("alternate") && rels.includes("stylesheet");
|
|
395
|
+
});
|
|
396
|
+
stylesheet = alternateStylesheets.find((child) => adapter.getAttribute(child, "title") === title);
|
|
397
|
+
}
|
|
398
|
+
if (!stylesheet) {
|
|
672
399
|
payload = {
|
|
673
|
-
alternateStylesheets
|
|
674
|
-
element.parentElement.querySelectorAll('link[rel~="alternate" i][rel~="stylesheet" i]')
|
|
675
|
-
)
|
|
400
|
+
alternateStylesheets
|
|
676
401
|
};
|
|
677
402
|
warnings.push(`This has no effect. No alternate stylesheet found having title="${title}".`);
|
|
678
403
|
}
|
|
679
|
-
} else if (!title) {
|
|
680
|
-
warnings.push("This has no effect. The content attribute must be set to a valid stylesheet title.");
|
|
681
404
|
}
|
|
682
405
|
warnings.push(
|
|
683
406
|
"Even when used correctly, the default-style method of setting a preferred stylesheet results in a flash of unstyled content. Use modern CSS features like @media rules instead."
|
|
684
407
|
);
|
|
685
408
|
return { ruleId: "no-default-style", warnings, payload };
|
|
686
409
|
}
|
|
410
|
+
|
|
411
|
+
// src/lib/validations/content-type.js
|
|
412
|
+
function isContentType(element, adapter) {
|
|
413
|
+
if (adapter.getTagName(element) !== "meta") return false;
|
|
414
|
+
if (adapter.hasAttribute(element, "charset")) return true;
|
|
415
|
+
const httpEquiv = adapter.getAttribute(element, "http-equiv");
|
|
416
|
+
return httpEquiv?.toLowerCase() === "content-type";
|
|
417
|
+
}
|
|
687
418
|
function validateContentType(element, adapter) {
|
|
688
419
|
const warnings = [];
|
|
689
420
|
let payload = null;
|
|
@@ -718,9 +449,9 @@ function validateContentType(element, adapter) {
|
|
|
718
449
|
}
|
|
719
450
|
}
|
|
720
451
|
}
|
|
721
|
-
if (
|
|
722
|
-
const charPos =
|
|
723
|
-
if (charPos > 1024) {
|
|
452
|
+
if (typeof adapter.getCharacterPosition === "function") {
|
|
453
|
+
const charPos = adapter.getCharacterPosition(element);
|
|
454
|
+
if (charPos !== null && charPos > 1024) {
|
|
724
455
|
payload = payload ?? {};
|
|
725
456
|
payload.characterPosition = charPos;
|
|
726
457
|
warnings.push(
|
|
@@ -735,7 +466,7 @@ function validateContentType(element, adapter) {
|
|
|
735
466
|
const charsetPattern = /text\/html;\s*charset=(.*)/i;
|
|
736
467
|
charset = adapter.getAttribute(element, "content")?.match(charsetPattern)?.[1]?.trim();
|
|
737
468
|
}
|
|
738
|
-
if (charset?.toLowerCase()
|
|
469
|
+
if (charset?.toLowerCase() !== "utf-8") {
|
|
739
470
|
payload = payload ?? {};
|
|
740
471
|
payload.charset = charset;
|
|
741
472
|
warnings.push(`Documents are required to use UTF-8 encoding. Found "${charset}".`);
|
|
@@ -745,6 +476,12 @@ function validateContentType(element, adapter) {
|
|
|
745
476
|
}
|
|
746
477
|
return { ruleId: "valid-charset", warnings, payload };
|
|
747
478
|
}
|
|
479
|
+
|
|
480
|
+
// src/lib/validations/http-equiv.js
|
|
481
|
+
function isHttpEquiv(element, adapter) {
|
|
482
|
+
if (adapter.getTagName(element) !== "meta") return false;
|
|
483
|
+
return adapter.hasAttribute(element, "http-equiv");
|
|
484
|
+
}
|
|
748
485
|
function validateHttpEquiv(element, adapter) {
|
|
749
486
|
const warnings = [];
|
|
750
487
|
const type = adapter.getAttribute(element, "http-equiv")?.toLowerCase() || "";
|
|
@@ -770,9 +507,9 @@ function validateHttpEquiv(element, adapter) {
|
|
|
770
507
|
}
|
|
771
508
|
break;
|
|
772
509
|
case "x-dns-prefetch-control":
|
|
773
|
-
if (content
|
|
510
|
+
if (content === "on") {
|
|
774
511
|
warnings.push(`DNS prefetching is enabled by default. Setting it to "${content}" has no effect.`);
|
|
775
|
-
} else if (content
|
|
512
|
+
} else if (content !== "off") {
|
|
776
513
|
warnings.push(
|
|
777
514
|
`This is a non-standard way of disabling DNS prefetching, which is a performance optimization. Found content="${content}". Use content="off" if you have a legitimate security concern, otherwise remove it.`
|
|
778
515
|
);
|
|
@@ -848,6 +585,13 @@ function validateHttpEquiv(element, adapter) {
|
|
|
848
585
|
warnings
|
|
849
586
|
};
|
|
850
587
|
}
|
|
588
|
+
|
|
589
|
+
// src/lib/validations/viewport.js
|
|
590
|
+
function isMetaViewport(element, adapter) {
|
|
591
|
+
if (adapter.getTagName(element) !== "meta") return false;
|
|
592
|
+
const name = adapter.getAttribute(element, "name");
|
|
593
|
+
return name?.toLowerCase() === "viewport";
|
|
594
|
+
}
|
|
851
595
|
function validateMetaViewport(element, adapter) {
|
|
852
596
|
const warnings = [];
|
|
853
597
|
let payload = null;
|
|
@@ -871,14 +615,14 @@ function validateMetaViewport(element, adapter) {
|
|
|
871
615
|
warnings.push(
|
|
872
616
|
"Another meta viewport element has already been declared. Having multiple viewport settings can lead to unexpected behavior."
|
|
873
617
|
);
|
|
874
|
-
return { warnings, payload };
|
|
618
|
+
return { ruleId: "valid-meta-viewport", warnings, payload };
|
|
875
619
|
}
|
|
876
620
|
}
|
|
877
621
|
}
|
|
878
622
|
const content = adapter.getAttribute(element, "content")?.toLowerCase();
|
|
879
623
|
if (!content) {
|
|
880
624
|
warnings.push("Invalid viewport. The content attribute must be set.");
|
|
881
|
-
return { warnings, payload };
|
|
625
|
+
return { ruleId: "valid-meta-viewport", warnings, payload };
|
|
882
626
|
}
|
|
883
627
|
const directives = Object.fromEntries(
|
|
884
628
|
content.split(",").map((directive) => {
|
|
@@ -890,7 +634,7 @@ function validateMetaViewport(element, adapter) {
|
|
|
890
634
|
const width = directives["width"];
|
|
891
635
|
if (Number(width) < 1 || Number(width) > 1e4) {
|
|
892
636
|
warnings.push(`Invalid width "${width}". Numeric values must be between 1 and 10000.`);
|
|
893
|
-
} else if (width
|
|
637
|
+
} else if (width !== "device-width") {
|
|
894
638
|
warnings.push(`Invalid width "${width}".`);
|
|
895
639
|
}
|
|
896
640
|
}
|
|
@@ -898,7 +642,7 @@ function validateMetaViewport(element, adapter) {
|
|
|
898
642
|
const height = directives["height"];
|
|
899
643
|
if (Number(height) < 1 || Number(height) > 1e4) {
|
|
900
644
|
warnings.push(`Invalid height "${height}". Numeric values must be between 1 and 10000.`);
|
|
901
|
-
} else if (height
|
|
645
|
+
} else if (height !== "device-height") {
|
|
902
646
|
warnings.push(`Invalid height "${height}".`);
|
|
903
647
|
}
|
|
904
648
|
}
|
|
@@ -936,7 +680,7 @@ function validateMetaViewport(element, adapter) {
|
|
|
936
680
|
}
|
|
937
681
|
if ("user-scalable" in directives) {
|
|
938
682
|
const userScalable = directives["user-scalable"];
|
|
939
|
-
if (userScalable
|
|
683
|
+
if (userScalable === "no" || userScalable === "0") {
|
|
940
684
|
warnings.push(
|
|
941
685
|
`Disabling zooming can cause accessibility issues to users with visual impairments. Found "user-scalable=${userScalable}".`
|
|
942
686
|
);
|
|
@@ -977,10 +721,10 @@ function validateMetaViewport(element, adapter) {
|
|
|
977
721
|
if (validDirectives.has(directive)) {
|
|
978
722
|
return false;
|
|
979
723
|
}
|
|
980
|
-
if (directive
|
|
724
|
+
if (directive === "shrink-to-fit") {
|
|
981
725
|
return false;
|
|
982
726
|
}
|
|
983
|
-
if (directive
|
|
727
|
+
if (directive === "viewport-fit") {
|
|
984
728
|
return false;
|
|
985
729
|
}
|
|
986
730
|
return true;
|
|
@@ -989,6 +733,70 @@ function validateMetaViewport(element, adapter) {
|
|
|
989
733
|
});
|
|
990
734
|
return { ruleId: "valid-meta-viewport", warnings, payload };
|
|
991
735
|
}
|
|
736
|
+
|
|
737
|
+
// src/lib/validations/preload.js
|
|
738
|
+
function findElementWithSource(parent, sourceUrl, excludeElement, adapter) {
|
|
739
|
+
const children = adapter.getChildren(parent);
|
|
740
|
+
for (const child of children) {
|
|
741
|
+
if (child === excludeElement) {
|
|
742
|
+
continue;
|
|
743
|
+
}
|
|
744
|
+
const tagName = adapter.getTagName(child);
|
|
745
|
+
if (tagName === "link") {
|
|
746
|
+
const rel = adapter.getAttribute(child, "rel");
|
|
747
|
+
if (rel && /\b(preload|modulepreload)\b/i.test(rel)) {
|
|
748
|
+
continue;
|
|
749
|
+
}
|
|
750
|
+
const childHref = adapter.getAttribute(child, "href");
|
|
751
|
+
if (childHref === sourceUrl) {
|
|
752
|
+
return child;
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
if (tagName === "script") {
|
|
756
|
+
const src = adapter.getAttribute(child, "src");
|
|
757
|
+
if (src === sourceUrl) {
|
|
758
|
+
return child;
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
return null;
|
|
763
|
+
}
|
|
764
|
+
function isUnnecessaryPreload(element, adapter, parentElement = null) {
|
|
765
|
+
const tagName = adapter.getTagName(element);
|
|
766
|
+
if (tagName !== "link") {
|
|
767
|
+
return false;
|
|
768
|
+
}
|
|
769
|
+
const rel = adapter.getAttribute(element, "rel");
|
|
770
|
+
const relLower = rel?.toLowerCase();
|
|
771
|
+
if (relLower !== "preload" && relLower !== "modulepreload") {
|
|
772
|
+
return false;
|
|
773
|
+
}
|
|
774
|
+
const href = adapter.getAttribute(element, "href");
|
|
775
|
+
if (!href) {
|
|
776
|
+
return false;
|
|
777
|
+
}
|
|
778
|
+
const parent = parentElement || adapter.getParent(element);
|
|
779
|
+
if (!parent) {
|
|
780
|
+
return false;
|
|
781
|
+
}
|
|
782
|
+
const found = findElementWithSource(parent, href, element, adapter);
|
|
783
|
+
return found !== null && found !== void 0;
|
|
784
|
+
}
|
|
785
|
+
function isInvalidFontPreload(element, adapter) {
|
|
786
|
+
const tagName = adapter.getTagName(element);
|
|
787
|
+
if (tagName !== "link") {
|
|
788
|
+
return false;
|
|
789
|
+
}
|
|
790
|
+
const rel = adapter.getAttribute(element, "rel");
|
|
791
|
+
if (rel?.toLowerCase() !== "preload") {
|
|
792
|
+
return false;
|
|
793
|
+
}
|
|
794
|
+
const as = adapter.getAttribute(element, "as");
|
|
795
|
+
if (as?.toLowerCase() !== "font") {
|
|
796
|
+
return false;
|
|
797
|
+
}
|
|
798
|
+
return !adapter.hasAttribute(element, "crossorigin");
|
|
799
|
+
}
|
|
992
800
|
function validateUnnecessaryPreload(element, adapter, parentElement = null) {
|
|
993
801
|
const href = adapter.getAttribute(element, "href");
|
|
994
802
|
if (!href) {
|
|
@@ -1009,16 +817,193 @@ function validateUnnecessaryPreload(element, adapter, parentElement = null) {
|
|
|
1009
817
|
]
|
|
1010
818
|
};
|
|
1011
819
|
}
|
|
820
|
+
function validateInvalidFontPreload(element, adapter) {
|
|
821
|
+
const warnings = ["Font preloads must have the crossorigin attribute set, even for same-origin fonts."];
|
|
822
|
+
return {
|
|
823
|
+
ruleId: "valid-font-preload",
|
|
824
|
+
warnings,
|
|
825
|
+
payload: null
|
|
826
|
+
};
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
// src/lib/validation.js
|
|
830
|
+
var VALID_HEAD_ELEMENTS = /* @__PURE__ */ new Set([
|
|
831
|
+
"base",
|
|
832
|
+
"link",
|
|
833
|
+
"meta",
|
|
834
|
+
"noscript",
|
|
835
|
+
"script",
|
|
836
|
+
"style",
|
|
837
|
+
"template",
|
|
838
|
+
"title"
|
|
839
|
+
]);
|
|
840
|
+
function isValidElement(element, adapter) {
|
|
841
|
+
const tagName = adapter.getTagName(element);
|
|
842
|
+
if (!tagName || tagName === "") {
|
|
843
|
+
return true;
|
|
844
|
+
}
|
|
845
|
+
return VALID_HEAD_ELEMENTS.has(tagName.toLowerCase());
|
|
846
|
+
}
|
|
847
|
+
function hasInvalidChildren(element, adapter) {
|
|
848
|
+
const children = adapter.getChildren(element);
|
|
849
|
+
return children.some((child) => !isValidElement(child, adapter));
|
|
850
|
+
}
|
|
851
|
+
function isDuplicateTitle(element, adapter) {
|
|
852
|
+
if (adapter.getTagName(element) !== "title") {
|
|
853
|
+
return false;
|
|
854
|
+
}
|
|
855
|
+
const parent = adapter.getParent(element);
|
|
856
|
+
if (!parent) {
|
|
857
|
+
return false;
|
|
858
|
+
}
|
|
859
|
+
let foundFirst = false;
|
|
860
|
+
for (const child of adapter.getChildren(parent)) {
|
|
861
|
+
if (adapter.getTagName(child) === "title") {
|
|
862
|
+
if (child === element) {
|
|
863
|
+
return foundFirst;
|
|
864
|
+
}
|
|
865
|
+
foundFirst = true;
|
|
866
|
+
}
|
|
867
|
+
}
|
|
868
|
+
return false;
|
|
869
|
+
}
|
|
870
|
+
function isDuplicateBase(element, adapter) {
|
|
871
|
+
if (adapter.getTagName(element) !== "base") {
|
|
872
|
+
return false;
|
|
873
|
+
}
|
|
874
|
+
const siblings = adapter.getSiblings(element);
|
|
875
|
+
return siblings.some((sibling) => adapter.getTagName(sibling) === "base");
|
|
876
|
+
}
|
|
877
|
+
function hasValidationWarning(element, adapter, pageOrigin = null) {
|
|
878
|
+
if (!isValidElement(element, adapter)) {
|
|
879
|
+
return true;
|
|
880
|
+
}
|
|
881
|
+
if (hasInvalidChildren(element, adapter)) {
|
|
882
|
+
return true;
|
|
883
|
+
}
|
|
884
|
+
if (isDuplicateTitle(element, adapter)) {
|
|
885
|
+
return true;
|
|
886
|
+
}
|
|
887
|
+
if (isDuplicateBase(element, adapter)) {
|
|
888
|
+
return true;
|
|
889
|
+
}
|
|
890
|
+
if (isOriginTrial(element, adapter) || isMetaCSP(element, adapter) || isDefaultStyle(element, adapter) || isMetaViewport(element, adapter) || isContentType(element, adapter) || isHttpEquiv(element, adapter) || isUnnecessaryPreload(element, adapter) || isInvalidFontPreload(element, adapter)) {
|
|
891
|
+
const validations = getCustomValidations(element, adapter, null, pageOrigin);
|
|
892
|
+
if (validations.warnings && validations.warnings.length > 0) {
|
|
893
|
+
return true;
|
|
894
|
+
}
|
|
895
|
+
}
|
|
896
|
+
return false;
|
|
897
|
+
}
|
|
898
|
+
function getValidationWarnings(head, adapter) {
|
|
899
|
+
const validationWarnings = [];
|
|
900
|
+
const children = adapter.getChildren(head);
|
|
901
|
+
const titleElements = children.filter((child) => adapter.getTagName(child) === "title");
|
|
902
|
+
const titleElementCount = titleElements.length;
|
|
903
|
+
if (titleElementCount !== 1) {
|
|
904
|
+
validationWarnings.push({
|
|
905
|
+
ruleId: titleElementCount === 0 ? "require-title" : "no-duplicate-title",
|
|
906
|
+
warning: `Expected exactly 1 <title> element, found ${titleElementCount}`,
|
|
907
|
+
elements: titleElements
|
|
908
|
+
});
|
|
909
|
+
}
|
|
910
|
+
const metaViewport = children.filter((child) => {
|
|
911
|
+
if (adapter.getTagName(child) !== "meta") return false;
|
|
912
|
+
const name = adapter.getAttribute(child, "name");
|
|
913
|
+
return name && name.toLowerCase() === "viewport";
|
|
914
|
+
});
|
|
915
|
+
if (metaViewport.length !== 1) {
|
|
916
|
+
validationWarnings.push({
|
|
917
|
+
ruleId: metaViewport.length === 0 ? "require-meta-viewport" : "valid-meta-viewport",
|
|
918
|
+
warning: `Expected exactly 1 <meta name=viewport> element, found ${metaViewport.length}`,
|
|
919
|
+
elements: metaViewport
|
|
920
|
+
});
|
|
921
|
+
}
|
|
922
|
+
const baseElements = children.filter((child) => adapter.getTagName(child) === "base");
|
|
923
|
+
const baseElementCount = baseElements.length;
|
|
924
|
+
if (baseElementCount > 1) {
|
|
925
|
+
validationWarnings.push({
|
|
926
|
+
ruleId: "no-duplicate-base",
|
|
927
|
+
warning: `Expected at most 1 <base> element, found ${baseElementCount}`,
|
|
928
|
+
elements: baseElements
|
|
929
|
+
});
|
|
930
|
+
}
|
|
931
|
+
children.forEach((element) => {
|
|
932
|
+
if (isValidElement(element, adapter)) {
|
|
933
|
+
const elementChildren = adapter.getChildren(element);
|
|
934
|
+
elementChildren.forEach((child) => {
|
|
935
|
+
if (!isValidElement(child, adapter)) {
|
|
936
|
+
validationWarnings.push({
|
|
937
|
+
ruleId: "no-invalid-head-elements",
|
|
938
|
+
warning: `${adapter.getTagName(child).toUpperCase()} elements are not allowed in the <head>`,
|
|
939
|
+
element
|
|
940
|
+
});
|
|
941
|
+
}
|
|
942
|
+
});
|
|
943
|
+
return;
|
|
944
|
+
}
|
|
945
|
+
validationWarnings.push({
|
|
946
|
+
ruleId: "no-invalid-head-elements",
|
|
947
|
+
warning: `${adapter.getTagName(element)} elements are not allowed in the <head>`,
|
|
948
|
+
element
|
|
949
|
+
});
|
|
950
|
+
});
|
|
951
|
+
return validationWarnings;
|
|
952
|
+
}
|
|
953
|
+
function getCustomValidations(element, adapter, parentElement = null, pageOrigin = null) {
|
|
954
|
+
const results = [];
|
|
955
|
+
if (isOriginTrial(element, adapter)) {
|
|
956
|
+
results.push(validateOriginTrial(element, adapter, pageOrigin));
|
|
957
|
+
}
|
|
958
|
+
if (isMetaCSP(element, adapter)) {
|
|
959
|
+
results.push(validateCSP(element, adapter));
|
|
960
|
+
}
|
|
961
|
+
if (isDefaultStyle(element, adapter)) {
|
|
962
|
+
results.push(validateDefaultStyle(element, adapter));
|
|
963
|
+
}
|
|
964
|
+
if (isMetaViewport(element, adapter)) {
|
|
965
|
+
results.push(validateMetaViewport(element, adapter));
|
|
966
|
+
}
|
|
967
|
+
if (isContentType(element, adapter)) {
|
|
968
|
+
results.push(validateContentType(element, adapter));
|
|
969
|
+
}
|
|
970
|
+
if (isHttpEquiv(element, adapter)) {
|
|
971
|
+
results.push(validateHttpEquiv(element, adapter));
|
|
972
|
+
}
|
|
973
|
+
if (isUnnecessaryPreload(element, adapter, parentElement)) {
|
|
974
|
+
results.push(validateUnnecessaryPreload(element, adapter, parentElement));
|
|
975
|
+
}
|
|
976
|
+
if (isInvalidFontPreload(element, adapter)) {
|
|
977
|
+
results.push(validateInvalidFontPreload(element, adapter));
|
|
978
|
+
}
|
|
979
|
+
if (results.length === 0) {
|
|
980
|
+
return {};
|
|
981
|
+
}
|
|
982
|
+
if (results.length === 1) {
|
|
983
|
+
return results[0];
|
|
984
|
+
}
|
|
985
|
+
const combined = {
|
|
986
|
+
warnings: [],
|
|
987
|
+
payload: {},
|
|
988
|
+
ruleId: results[0].ruleId
|
|
989
|
+
};
|
|
990
|
+
results.forEach((result) => {
|
|
991
|
+
if (result.warnings) {
|
|
992
|
+
combined.warnings?.push(...result.warnings);
|
|
993
|
+
}
|
|
994
|
+
if (result.payload) {
|
|
995
|
+
Object.assign(combined.payload, result.payload);
|
|
996
|
+
}
|
|
997
|
+
});
|
|
998
|
+
return combined;
|
|
999
|
+
}
|
|
1012
1000
|
|
|
1013
1001
|
// src/analyzer.js
|
|
1014
1002
|
function analyzeHead(headNode, adapter, options = {}) {
|
|
1015
|
-
const {
|
|
1016
|
-
includeValidation = true,
|
|
1017
|
-
includeCustomValidations = true
|
|
1018
|
-
} = options;
|
|
1003
|
+
const { includeValidation = true, includeCustomValidations = true, pageOrigin = null } = options;
|
|
1019
1004
|
const weights = getHeadWeights(headNode, adapter);
|
|
1020
1005
|
const validationWarnings = includeValidation ? getValidationWarnings(headNode, adapter) : [];
|
|
1021
|
-
const customValidations = includeCustomValidations ? getElementValidations(headNode, adapter) : [];
|
|
1006
|
+
const customValidations = includeCustomValidations ? getElementValidations(headNode, adapter, pageOrigin) : [];
|
|
1022
1007
|
return {
|
|
1023
1008
|
weights,
|
|
1024
1009
|
validationWarnings,
|
|
@@ -1026,11 +1011,11 @@ function analyzeHead(headNode, adapter, options = {}) {
|
|
|
1026
1011
|
headElement: headNode
|
|
1027
1012
|
};
|
|
1028
1013
|
}
|
|
1029
|
-
function getElementValidations(headNode, adapter) {
|
|
1014
|
+
function getElementValidations(headNode, adapter, pageOrigin = null) {
|
|
1030
1015
|
const customValidations = [];
|
|
1031
1016
|
const children = adapter.getChildren(headNode);
|
|
1032
1017
|
for (const element of children) {
|
|
1033
|
-
const validation = getCustomValidations(element, adapter, headNode);
|
|
1018
|
+
const validation = getCustomValidations(element, adapter, headNode, pageOrigin);
|
|
1034
1019
|
if (validation && validation.warnings && validation.warnings.length > 0) {
|
|
1035
1020
|
customValidations.push({
|
|
1036
1021
|
ruleId: validation.ruleId,
|
|
@@ -1177,6 +1162,14 @@ var AdapterInterface = class {
|
|
|
1177
1162
|
getLocation(node) {
|
|
1178
1163
|
return null;
|
|
1179
1164
|
}
|
|
1165
|
+
/**
|
|
1166
|
+
* Get character position for a node (optional, for validation)
|
|
1167
|
+
* @param {any} node - Element node
|
|
1168
|
+
* @returns {number | null}
|
|
1169
|
+
*/
|
|
1170
|
+
getCharacterPosition(node) {
|
|
1171
|
+
return null;
|
|
1172
|
+
}
|
|
1180
1173
|
/**
|
|
1181
1174
|
* Stringify element for logging/debugging
|
|
1182
1175
|
* @param {any} node - Element node
|
|
@@ -1330,10 +1323,10 @@ var BrowserAdapter = class extends AdapterInterface {
|
|
|
1330
1323
|
}
|
|
1331
1324
|
/**
|
|
1332
1325
|
* Get source location for a node (optional, for linting)
|
|
1333
|
-
*
|
|
1326
|
+
*
|
|
1334
1327
|
* Browser DOM elements don't have source location information,
|
|
1335
1328
|
* so this always returns null.
|
|
1336
|
-
*
|
|
1329
|
+
*
|
|
1337
1330
|
* @override
|
|
1338
1331
|
* @param {any} node - Element node
|
|
1339
1332
|
* @returns {null}
|
|
@@ -1341,6 +1334,22 @@ var BrowserAdapter = class extends AdapterInterface {
|
|
|
1341
1334
|
getLocation(node) {
|
|
1342
1335
|
return null;
|
|
1343
1336
|
}
|
|
1337
|
+
/**
|
|
1338
|
+
* Get character position for a node (optional, for validation)
|
|
1339
|
+
* @override
|
|
1340
|
+
* @param {any} node - Element node
|
|
1341
|
+
* @returns {number | null}
|
|
1342
|
+
*/
|
|
1343
|
+
getCharacterPosition(node) {
|
|
1344
|
+
if (!node || !node.ownerDocument || !node.ownerDocument.documentElement) {
|
|
1345
|
+
return null;
|
|
1346
|
+
}
|
|
1347
|
+
const outerHTML = node.ownerDocument.documentElement.outerHTML;
|
|
1348
|
+
if (outerHTML && node.outerHTML) {
|
|
1349
|
+
return outerHTML.indexOf(node.outerHTML) + node.outerHTML.length;
|
|
1350
|
+
}
|
|
1351
|
+
return null;
|
|
1352
|
+
}
|
|
1344
1353
|
/**
|
|
1345
1354
|
* Stringify element for logging/debugging
|
|
1346
1355
|
* @override
|
|
@@ -1381,6 +1390,7 @@ var BrowserAdapter = class extends AdapterInterface {
|
|
|
1381
1390
|
hasValidationWarning,
|
|
1382
1391
|
isAsyncScript,
|
|
1383
1392
|
isDeferScript,
|
|
1393
|
+
isHighPriorityPreload,
|
|
1384
1394
|
isImportStyles,
|
|
1385
1395
|
isMeta,
|
|
1386
1396
|
isMetaCSP,
|