Skip to content

build: update packages and claude skills#73

Merged
bitencode merged 7 commits into
mainfrom
jlm/update-packages
Apr 20, 2026
Merged

build: update packages and claude skills#73
bitencode merged 7 commits into
mainfrom
jlm/update-packages

Conversation

@bitencode
Copy link
Copy Markdown
Collaborator

Type Description Icon Changelog
build The build dependencies or scripts (package.json, etc...) are updated 🎁

Summary

Update all outdated dependencies — 16 packages total (10 safe, 5 major, 1 blocked). Reduces known audit vulnerabilities from 25 to 8. Adapts tsconfig for TypeScript 6.

Safe Updates

Package Change What Changed
@eslint/compat 2.0.0 => 2.0.5 Dependency bumps, CJS type re-export fixes
@eslint/eslintrc 3.3.3 => 3.3.5 Security updates for ajv and minimatch
@stylistic/eslint-plugin 5.6.1 => 5.10.0 New rules, ESLint 10 support
@vitest/coverage-v8 4.0.18 => 4.1.4 coverage.changed option, new hooks
happy-dom 20.0.11 => 20.8.9 Security fixes (cookie forwarding, code injection)
lodash 4.17.23 => 4.18.1 Security fixes (prototype pollution, code injection in _.template)
typedoc 0.28.15 => 0.28.19 TypeScript 6 compat, JSON schema for config
typescript-eslint 8.50.0 => 8.58.1 TypeScript 6 + ESLint 10 support
vitest 4.0.18 => 4.1.4 New hooks, test tags, --detect-async-leaks
vue 3.5.13 => 3.5.32 Reactivity/teleport/suspense fixes, performance improvements

Major Updates

Package Change What Changed
@eslint/js 9.39.2 => 10.0.1 Drops eslintrc, requires Node.js 20.19+
eslint 9.39.2 => 10.2.0 Drops eslintrc, replaces chalk with native styleText
eslint-plugin-unicorn 62.0.0 => 64.0.0 ESLint 10 support, new rules
globals 16.5.0 => 17.5.0 Splits audioWorklet from browser environment
typescript 5.9.3 => 6.0.2 strict defaults to true, module defaults to esnext

Blocked

  • vite 7.3.1 => 8.0.8 — Rolldown/Oxc doesn't transform the accessor keyword or legacy decorators on static class properties

Config Changes

  • tsconfig.json: added "strict": false (TS6 defaults strict to true), changed "moduleResolution": "bundler", removed "baseUrl"
  • tsconfig.types.json: added "rootDir": "./src" (required by TS6)
  • package.json: updated engines.node to ^22.14 || ^24.14, added all script
  • pnpm-workspace.yaml: added with approveBuilds, minimumReleaseAge, and trustPolicy settings
  • .gitignore: updated to track .claude/ skills but ignore local settings

Security

  • pnpm audit vulnerabilities: 25 => 8 (12 fewer from lodash security fixes and dependency updates)

Other

  • Added workspace-changelogs.json changelog URL registry
  • Added Claude Code skills for /outdated-packages and /update-packages

Test Plan

  • pnpm run all — types, lint, and all 399 tests pass
  • pnpm audit — no new vulnerabilities introduced
  • No suspicious install scripts in updated packages

Checklist

  • Assigned PR to myself
  • Added at least 1 person on the team as reviewer
  • Release Notes: PRs types that have the 🗒️ next to them also require release notes to be added to the CHANGELOG.md

All passing. One minor deprecation warning from @stylistic/eslint-plugin about the overrides.arrow option in type-annotation-spacing (recommending arrow-spacing instead) — this is cosmetic and not a failure.

  22 test files, 399 tests passed, types and lint all clean.

  Updated Packages

  - @eslint/compat: 2.0.0 => 2.0.5 ✓
  - @eslint/eslintrc: 3.3.3 => 3.3.5 ✓
  - @stylistic/eslint-plugin: 5.6.1 => 5.10.0 ✓
  - @vitest/coverage-v8: 4.0.18 => 4.1.4 ✓
  - happy-dom: 20.0.11 => 20.8.9 ✓
  - lodash: 4.17.23 => 4.18.1 ✓
  - typedoc: 0.28.15 => 0.28.19 ✓
  - typescript-eslint: 8.50.0 => 8.58.1 ✓
  - vitest: 4.0.18 => 4.1.4 ✓
  - vue: 3.5.13 => 3.5.32 ✓

  Blocked Packages

  None

  Status

  - pnpm audit: 25 => 13 vulnerabilities (improved)
  - pnpm run all: ✓

  What Changed

  - @eslint/compat 2.0.0 => 2.0.5 Dependency bumps and TypeScript CJS type re-export fixes
  - @eslint/eslintrc 3.3.3 => 3.3.5 Security updates for ajv and minimatch dependencies
  - @stylistic/eslint-plugin 5.6.1 => 5.10.0 New jsx-props-style rule, ESLint 10 support, lineMode option for padding-line-between-statements
  - @vitest/coverage-v8 4.0.18 => 4.1.4 New coverage.changed option, aroundEach/aroundAll hooks, --detect-async-leaks flag
  - happy-dom 20.0.11 => 20.8.9 Security fixes for cookie forwarding and code injection vulnerabilities, Bun compatibility
  - lodash 4.17.23 => 4.18.1 Security fixes for prototype pollution in _.unset/_.omit and code injection in _.template
  - typedoc 0.28.15 => 0.28.19 TypeScript 6.0 compatibility, JSON schema for config validation, French translations
  - typescript-eslint 8.50.0 => 8.58.1 TypeScript 6 and ESLint 10 support, numerous false-positive fixes
  - vitest 4.0.18 => 4.1.4 New aroundEach/aroundAll hooks, test tags, --detect-async-leaks, agent reporter
  - vue 3.5.13 => 3.5.32 Reactivity fixes for arrays/Sets, teleport/suspense edge cases, compiler and performance improvements
Audit improved further from 13 to 8 vulnerabilities. No suspicious install scripts.

  ---
  Updated Packages

  - @eslint/js: 9.39.2 => 10.0.1 ✓
  - eslint: 9.39.2 => 10.2.0 ✓
  - eslint-plugin-unicorn: 62.0.0 => 64.0.0 ✓
  - globals: 16.5.0 => 17.5.0 ✓
  - typescript: 5.9.3 => 6.0.2 ✓ (required tsconfig changes)
  - vite: 7.3.1 => 8.0.8 — reverted

  Blocked Packages

  - vite: 7.3.1 => 8.0.8 — Rolldown/Oxc drops decorators on static class properties with initializers, breaking reactive static properties. This is an upstream bug in Rolldown's decorator transform.

  Status

  - pnpm audit: 13 => 8 vulnerabilities (improved)
  - pnpm run all: ✓

  What Changed

  - @eslint/js 9.39.2 => 10.0.1 BREAKING - Removes eslintrc support, requires Node.js 20.19+, removes deprecated SourceCode/context methods
  - eslint 9.39.2 => 10.2.0 BREAKING - Drops eslintrc config, requires Node.js 20.19+, replaces chalk with native styleText
  - eslint-plugin-unicorn 62.0.0 => 64.0.0 ESLint 10 support, new rules including consistent-template-literal-escape and switch-case-break-position
  - globals 16.5.0 => 17.5.0 BREAKING - Splits audioWorklet from browser environment; adds bunBuiltin, denoBuiltin, sharedWorker
  - typescript 5.9.3 => 6.0.2 BREAKING - strict defaults to true (set false explicitly), moduleResolution changed from node to bundler, removed baseUrl, added explicit rootDir

  Config Changes Made

  - tsconfig.json: added "strict": false, changed "moduleResolution": "bundler", removed "baseUrl"
  - tsconfig.types.json: added "rootDir": "./src"

  Note: eslint-plugin-import has an unmet peer dependency on eslint ^2-^9 (we're now on 10). It still works but may need updating or replacing with eslint-plugin-import-x when available.
@bitencode bitencode requested a review from treardon17 April 14, 2026 04:02
@bitencode bitencode self-assigned this Apr 14, 2026
@bitencode bitencode changed the title Jlm/update packages build: update packages and claude skills Apr 14, 2026
Copy link
Copy Markdown
Collaborator

@treardon17 treardon17 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❤️

@bitencode bitencode merged commit d468d0c into main Apr 20, 2026
5 checks passed
@bitencode bitencode deleted the jlm/update-packages branch April 20, 2026 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants