Skip to content

v2.0.5

Choose a tag to compare

@github-actions github-actions released this 16 Apr 20:36
Immutable release. Only release title and notes can be modified.

[2.0.5] - 2026-04-16

d27c92e...da8d692

๐Ÿ› ๏ธ Bug Fixes

  • 14500ca โ€” ๐Ÿ› ๏ธ [fix] Removes unnecessary test flag in check script

๐Ÿ› ๏ธ [fix] Updates the check script command in package.json

  • Removes the -- --run flag from the npm test command

  • Fixes potential issues with the test execution in the check workflow

  • Streamlines the build verification process by using the default test runner behavior

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

  • 54de1a2 โ€” ๐Ÿšจ [fix] (eslint) Disable two more Prettier-conflicting Vue rules

  • Add vue/singleline-html-element-content-newline: off and
    vue/multiline-html-element-content-newline: off to the Antfu Vue
    overrides block in eslint.config.js

  • Both rules enforce newline placement inside HTML element content that
    Prettier already controls, causing 43 spurious warnings across 7 Vue
    files (ConfigItem, RuleDeprecatedInfo, RuleStateItem, configs, dev,
    extends, rules)

  • Entries kept in alphabetical order alongside the existing four
    Prettier-conflict overrides

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

  • e90bbad โ€” (eslint) Silence Prettier-conflicting Vue and JSONC rules

  • 954aab7 โ€” ๐Ÿ› ๏ธ [fix] Updates property access notation and adds test coverage

๐Ÿ› ๏ธ [fix] Changes dot notation to bracket notation for property access throughout the codebase to avoid potential conflicts with reserved words and ensure consistent property access patterns

๐Ÿงช [test] Adds comprehensive test coverage reporting by:

  • Adding codecov configuration file with detailed settings for coverage thresholds and component management

  • Updating test scripts to support coverage reporting with vitest

  • Adding @vitest/coverage-v8 dependency for enhanced coverage reporting

๐Ÿ“ [docs] Enhances README presentation by:

  • Adding comprehensive badge section displaying license, downloads, release info, stars, forks, issues, and codecov status

  • Removing redundant favicon SVG reference

๐Ÿงน [chore] Cleans up package configuration by:

  • Removing package overrides section

  • Updating npm-check-updates to latest version

  • Adding test report file to gitignore

โš™๏ธ [build] Updates ESLint configuration to disable dot-notation rule to align with the new bracket notation approach

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

๐Ÿ›ก๏ธ Security

  • 95e8448 โ€” ๐Ÿ”’๏ธ [fix] Fix CI deprecations, CWE-116 security issue, and Sonar code-quality findings

๐Ÿ‘ท [ci] Upgrade GitHub Actions workflows to Node 24 and CodeQL v4

  • Add FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" env to codeql, playwright,
    and scorecards workflows to opt in to Node 24 action runners

  • Migrate all github/codeql-action/* pins from @V3 โ†’ @v4 across
    codeql.yml and scorecards.yml

  • Deduplicate CodeQL language matrix: remove redundant typescript entry
    (TypeScript is analysed as part of the javascript category)

  • Update actions/checkout pins to v6.0.2 across all three workflows

  • Remove duplicate checkout step in playwright.yml

๐Ÿ”’๏ธ [fix] (security) Fix CWE-116 incomplete sanitization in bootstrap script

  • Correct shell-escaping order in scripts/bootstrap-eslint-repo.mjs:
    backslashes were escaped after double-quotes, allowing \" sequences to
    survive unescaped into shell commands

  • Migrate replace(regex) โ†’ replaceAll(string) using String.raw template
    literals for clarity and correctness

๐Ÿšจ [fix] (quality) Resolve all 32 open Sonar code-quality findings

  • app/composables/state.ts: convert FONT_SCALE_VALUES from
    readonly FontScale[] to ReadonlySet<FontScale> for O(1) .has() lookup;
    remove redundant as unknown cast in setStateFilters

  • app/composables/shiki.ts, strings.ts, src/cli.ts: replace all
    .replace(regex/string) with .replaceAll() throughout (S5734)

  • app/pages/configs.vue: remove ! non-null assertion on filters.rule;
    refactor ?.scrollIntoView(โ€ฆ) optional chain to explicit null guard

  • app/pages/rules.vue: extract assignment from return expression to
    early-return pattern (S1121)

  • shared/config-plugin-filters.ts: replace RegExp.test() calls with
    String.startsWith() for static-prefix matching (S7780/S7781)

  • src/inspectors/stylelint.ts: extract two nested ternary expressions to
    explicit let + if/else blocks; replace str.match(regex) with
    regex.exec(str); migrate replace() โ†’ replaceAll() for
    QUOTED_GENERATED_PLACEHOLDER_RE and MULTIPLE_WHITESPACE_RE;
    use String.raw template literals for regex escape strings

  • src/server.ts: replace !stats || !stats.isFile() with
    !stats?.isFile() optional chain

๐Ÿงช [test] Remove unnecessary type assertions and fix non-deterministic sort

  • tests/payload_resolve.test.ts: remove 4 redundant as ResolvedPayload
    assertions โ€” resolvePayload already returns ResolvedPayload (S4325)

  • tests/stylelint_adapter.test.ts: supply explicit string comparator to
    toSorted() for locale-stable, deterministic rule-name ordering

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

  • 93a9792 โ€” (security) Escape backslashes before double-quotes in bootstrap script

๐Ÿ› ๏ธ Other Changes

  • 2b1ae29 โ€” # ๐Ÿฆบ fix: strict TypeScript compliance and code quality audit

Apply exactOptionalPropertyTypes, noPropertyAccessFromIndexSignature, and
isolatedDeclarations to tsconfig.cli.json and fix all resulting type errors across the codebase.
Follow with a targeted quality audit to eliminate any, remove unnecessary async wrappers, and tighten annotations.


๐Ÿ”’ TypeScript strictโ€‘mode fixes

  • ๐Ÿงฑ src/cli.ts โ€” bracket notation for process.env['HOST'] / process.env['PORT'] to satisfy noPropertyAccessFromIndexSignature
  • ๐ŸŽจ src/inspectors/stylelint.ts โ€” convert all indexโ€‘signature accesses to bracket notation; use conditional spread ...(x !== undefined && { key: x }) on every optional field to satisfy exactOptionalPropertyTypes
  • ๐ŸŒ src/server.ts โ€” extract mimeType variable and spread conditionally; add explicit Promise<Server> return type for isolatedDeclarations
  • ๐Ÿ”Œ src/ws.ts โ€” conditional spread for targetFilePath; introduce WsServerHandle interface; explicit Promise<WsServerHandle> return type
  • ๐Ÿงฉ src/errors.ts โ€” explicit prettyPrint(): void return types on all three classes; tighten configFilenames to readonly string[]
  • ๐Ÿ“ฆ src/constants.ts โ€” explicit readonly string[] / string type annotations on all exported constants
  • ๐Ÿ“ src/dirs.ts โ€” explicit string type annotations on dataDir and distDir
  • โš™๏ธ src/configs.ts โ€” explicit Promise<ResolvedConfigPath> / Promise<InspectorReadResult> return types; remove redundant async/await wrappers
  • ๐Ÿ” shared/configs.ts โ€” explicit return types on all exported functions

๐Ÿงน Code quality audit

  • โš™๏ธ src/configs.ts โ€” drop async/await from promiseโ€‘forwarding functions with no try/catch; async wrapper adds a gratuitous microtask hop
  • ๐Ÿšฎ server/api/payload.json.ts โ€” remove async/return await from inner event handler
  • ๐Ÿ“ shared/rules.ts โ€” add explicit RuleLevel return type to getRuleLevel; import RuleLevel type
  • ๐Ÿงผ shared/configs.ts โ€” rename unused basePath parameter to _basePath in matchFile, removing the voidโ€‘operator hack
  • ๐Ÿงฝ app/composables/options.ts โ€” replace all any with unknown; use undefined instead of void 0; add explicit return types throughout
  • โœจ app/composables/strings.ts โ€” replace any with unknown; add explicit string return types to stringifyOptions and stringifyUnquoted
  • ๐Ÿ“ app/composables/payload.ts โ€” replace meta: {} as any with a typed INITIAL_PAYLOAD constant satisfying all required PayloadMeta fields; remove nonโ€‘null assertion !; change getRuleDefaultOptions return type from any[] to unknown[]

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

๐Ÿงน Chores

  • da8d692 โ€” Release v2.0.5

  • d144453 โ€” ๐Ÿงน chore(eslint): format settings.json

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

  • 9fd0b26 โ€” ๐Ÿงน chore(eslint): disable stylistic rules and drop direct stylistic plugin

  • disable stylistic rules in Antfu ESLint config

  • disable stylistic rules in Nuxt ESLint config

  • remove direct @stylistic/eslint-plugin dependency

  • remove stale style/* ESLint overrides and IDE customizations

  • update bootstrap dependency list and lockfile

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

  • 910f92f โ€” ๐Ÿงน [chore] run new prettier formatting

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

๐Ÿ”ง Build System

  • d27c92e โ€” ๐Ÿ“ฆ build(package): add dual ESM/CJS exports and typed entrypoints

  • emit both ESM and CJS bundles via tsdown

  • emit .d.mts and .d.cts declaration files

  • add conditional exports for import/require with matching types

  • set main to CJS and keep top-level types for ESM consumers

  • resolve ATW CJSResolvesToESM warning (attw now fully green)

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com