Skip to content

build(deps): add vite to core dev dependencies - #98

Merged
ronload merged 1 commit into
mainfrom
build/declare-vite
Oct 25, 2026
Merged

ronload merged 1 commit into
mainfrom
build/declare-vite

Conversation

@ronload

@ronload ronload commented Oct 25, 2026

Copy link
Copy Markdown
Owner

Why

Follow-up to #97, which cleared nine of the 14 Dependabot alerts on main. The other five are all for vite 8.1.0 and are fixed in 8.1.6:

  • GHSA-587h-7wmj-h5pm (high): launch-editor fs.existsSync() existence check can be bypassed on Windows
  • GHSA-698v-4r3x-3vcv (medium): launch-editor escapeCmdArgs() omits % escaping on Windows
  • GHSA-r825-w8mm-5pxw (medium): launch-editor CLI flag misinterpretation causing arbitrary command execution for some editors
  • GHSA-rq7h-c2jc-7f22 (medium): files outside server.fs.allow could be served when project paths match system paths on non-Windows machines
  • GHSA-9jrq-w75r-8gcw (low): cross origin script execution through Vite custom middleware

All five are in the Vite dev server and the launch-editor code it bundles. vite is only used by vitest in @zipkit/core; the web app does not depend on it.

vite stayed on 8.1.0 because nothing declares it. vitest 5 made vite a required peer dependency, so pnpm auto-installs it and keeps the version it first resolved. pnpm update -r vite, the same with --depth Infinity, and pnpm update -r vitest all leave the lockfile unchanged, and Dependabot's security update jobs for vite fail with security_update_not_possible.

Changes

  • Declare vite ^8.3.5 in the @zipkit/core devDependencies, which resolves to 8.3.5. As a direct dependency, vite is now covered by pnpm outdated, pnpm update and the weekly Dependabot group.
  • vite 8.3.5 depends on rolldown ~1.2.14 and shares rolldown 1.2.15 with tsdown, so rolldown 1.1.5, its platform bindings and the wasm runtime packages only they used drop out of the lockfile.

Verification

  • pnpm install --frozen-lockfile, pnpm dedupe --check, pnpm check, pnpm test (29 passed, on vite 8.3.5) and pnpm build (379 static pages)
  • pnpm audit reports no known vulnerabilities, and no vite version in the new lockfile falls in the five alert ranges
  • Re-running pnpm --filter @zipkit/core add -D vite@^8.3.5 leaves the lockfile unchanged

vitest 5 turned vite into a required peer dependency. core did not
declare it, so pnpm auto-installed the peer and kept it at the first
version it resolved, 8.1.0. Neither pnpm update -r vite nor updating
vitest re-resolves it, and Dependabot security updates for it failed
with security_update_not_possible.

vite 8.1.0 is affected by five advisories in its dev server and the
launch-editor code it bundles: GHSA-587h-7wmj-h5pm,
GHSA-698v-4r3x-3vcv, GHSA-r825-w8mm-5pxw, GHSA-rq7h-c2jc-7f22 and
GHSA-9jrq-w75r-8gcw, all fixed in 8.1.6. Declaring vite ^8.3.5
resolves it to 8.3.5 and lets pnpm update and Dependabot track it.

vite 8.3.5 depends on rolldown ~1.2.14, so it shares rolldown 1.2.15
with tsdown and the lockfile drops rolldown 1.1.5 and its bindings.
@ronload ronload added the dependencies Pull requests that update a dependency file label Oct 25, 2026
@vercel

vercel Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
zipkit Ready Ready Preview Oct 25, 2026 2:51pm UTC

@ronload ronload self-assigned this Oct 25, 2026
@ronload
ronload merged commit 46b74e7 into main Oct 25, 2026
4 checks passed
@ronload
ronload deleted the build/declare-vite branch October 25, 2026 15:24

This branch was successfully deployed

1 active deployment
Preview — f6a937b5 Deployed Oct 25, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant