Skip to content

Refresh frontend tooling devDependencies and drop dead packages#968

Merged
alistair3149 merged 1 commit into
masterfrom
chore/refresh-frontend-devdeps
Jun 29, 2026
Merged

Refresh frontend tooling devDependencies and drop dead packages#968
alistair3149 merged 1 commit into
masterfrom
chore/refresh-frontend-devdeps

Conversation

@alistair3149

Copy link
Copy Markdown
Member

Result of a package.json dependency audit requested by @alistair3149.
Context: the NeoWiki frontend (resources/ext.neowiki) manifest + lockfile, the vite/vitest/eslint/stylelint configs, MediaWiki 1.43 foreign-resources.yaml (which fixes the externalized vue/codex/pinia pins), and live npm registry metadata.
Written by Claude Code, Opus 4.8

Dev-only updates to resources/ext.neowiki. Runtime libs (vue, @wikimedia/codex, pinia) stay pinned to the versions MediaWiki 1.43 provides at runtime (they are externalized in the Vite build).

  • Align with eslint-config-wikimedia 0.32.4: @stylistic/eslint-plugin ^2.8.0 -> ^3.1.0 and eslint-plugin-unicorn ^55 -> ^56.0.1 (both still support ESLint 8, which the wikimedia config pins us to).
  • types-mediawiki ^1.8.0 -> ^2.0.0 (the v2 removed aliases are unused in our source).
  • jsdom ^25 -> ^29.1.1 (+ @types/jsdom ^28). Its stricter, more spec-compliant selector engine required replacing fragile div > div > :is(a, span) selectors in RelationDisplay.spec.ts that relied on the query scope element itself matching the first div.
  • @types/node ^22 -> ^24 to match the Node 24 CI/runtime.
  • axios -> ^1.18.1, less -> ^4.6.7 (in-range refresh).
  • Replace the unmaintained npm-run-all with its drop-in fork npm-run-all2 ^8.0.4.
  • Declare stylelint directly (previously only present transitively via the config).
  • Remove dead devDependencies: @types/dompurify (no dompurify dep or usage) and sass-embedded (no SCSS in the project).

Pin @vue/test-utils to 2.4.6: 2.4.11's attachTo path calls Vue 3.5's app.onUnmount, which throws against our pinned Vue 3.4.27.

vite/vitest are upgraded in a separate PR.

Verified with make tsci (test, build, lint) on Node 24.

Dev-only updates to resources/ext.neowiki. Runtime libs (vue, codex,
pinia) stay pinned to the versions MediaWiki 1.43 provides at runtime.

- Align with eslint-config-wikimedia 0.32.4: @stylistic/eslint-plugin
  ^2.8.0 -> ^3.1.0 and eslint-plugin-unicorn ^55 -> ^56.0.1 (both still
  support eslint 8, which the wikimedia config pins us to).
- types-mediawiki ^1.8.0 -> ^2.0.0 (the v2 removed aliases are unused).
- jsdom ^25 -> ^29.1.1 (+ @types/jsdom ^28). Its stricter, more
  spec-compliant selector engine required replacing fragile
  `div > div > :is(a, span)` selectors in RelationDisplay.spec.ts that
  relied on the query scope element itself matching the first `div`.
- @types/node ^22 -> ^24 to match the Node 24 CI/runtime.
- axios -> ^1.18.1, less -> ^4.6.7 (in-range refresh).
- Replace the unmaintained npm-run-all with its drop-in fork
  npm-run-all2 ^8.0.4.
- Declare stylelint directly (previously only transitive via the config).
- Remove dead devDependencies: @types/dompurify (no dompurify dep or
  usage) and sass-embedded (no SCSS in the project).

Pin @vue/test-utils to 2.4.6: 2.4.11's attachTo path calls Vue 3.5's
app.onUnmount, which throws against our pinned Vue 3.4.27.

vite/vitest are upgraded in a separate commit.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@alistair3149
alistair3149 marked this pull request as ready for review June 29, 2026 20:26
@alistair3149
alistair3149 merged commit 297891f into master Jun 29, 2026
6 checks passed
@alistair3149
alistair3149 deleted the chore/refresh-frontend-devdeps branch June 29, 2026 20:26
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.

1 participant