v2.0.5
[2.0.5] - 2026-04-16
๐ ๏ธ Bug Fixes
14500caโ ๐ ๏ธ [fix] Removes unnecessary test flag in check script
๐ ๏ธ [fix] Updates the check script command in package.json
-
Removes the
-- --runflag 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: offand
vue/multiline-html-element-content-newline: offto 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
typescriptentry
(TypeScript is analysed as part of thejavascriptcategory) -
Update
actions/checkoutpins 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)usingString.rawtemplate
literals for clarity and correctness
๐จ [fix] (quality) Resolve all 32 open Sonar code-quality findings
-
app/composables/state.ts: convertFONT_SCALE_VALUESfrom
readonly FontScale[]toReadonlySet<FontScale>for O(1).has()lookup;
remove redundantas unknowncast insetStateFilters -
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 onfilters.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: replaceRegExp.test()calls with
String.startsWith()for static-prefix matching (S7780/S7781) -
src/inspectors/stylelint.ts: extract two nested ternary expressions to
explicitlet+if/elseblocks; replacestr.match(regex)with
regex.exec(str); migratereplace()โreplaceAll()for
QUOTED_GENERATED_PLACEHOLDER_REandMULTIPLE_WHITESPACE_RE;
useString.rawtemplate 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 redundantas ResolvedPayload
assertions โresolvePayloadalready returnsResolvedPayload(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 satisfynoPropertyAccessFromIndexSignature - ๐จ src/inspectors/stylelint.ts โ convert all indexโsignature accesses to bracket notation; use conditional spread
...(x !== undefined && { key: x })on every optional field to satisfyexactOptionalPropertyTypes - ๐ src/server.ts โ extract
mimeTypevariable and spread conditionally; add explicitPromise<Server>return type forisolatedDeclarations - ๐ src/ws.ts โ conditional spread for
targetFilePath; introduceWsServerHandleinterface; explicitPromise<WsServerHandle>return type - ๐งฉ src/errors.ts โ explicit
prettyPrint(): voidreturn types on all three classes; tightenconfigFilenamestoreadonly string[] - ๐ฆ src/constants.ts โ explicit
readonly string[]/stringtype annotations on all exported constants - ๐ src/dirs.ts โ explicit
stringtype annotations ondataDiranddistDir - โ๏ธ 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 awaitfrom inner event handler - ๐ shared/rules.ts โ add explicit
RuleLevelreturn type togetRuleLevel; importRuleLeveltype - ๐งผ shared/configs.ts โ rename unused
basePathparameter to_basePathinmatchFile, removing the voidโoperator hack - ๐งฝ app/composables/options.ts โ replace all
anywithunknown; useundefinedinstead ofvoid 0; add explicit return types throughout - โจ app/composables/strings.ts โ replace
anywithunknown; add explicitstringreturn types tostringifyOptionsandstringifyUnquoted - ๐ app/composables/payload.ts โ replace
meta: {} as anywith a typedINITIAL_PAYLOADconstant satisfying all requiredPayloadMetafields; remove nonโnull assertion!; changegetRuleDefaultOptionsreturn type fromany[]tounknown[]
Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com
๐งน Chores
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