Skip to content

chore(config): bump esbuild and rollup to clear security advisories#3696

Merged
jodeleeuw merged 1 commit into
mainfrom
chore/config-dep-bumps
Jun 26, 2026
Merged

chore(config): bump esbuild and rollup to clear security advisories#3696
jodeleeuw merged 1 commit into
mainfrom
chore/config-dep-bumps

Conversation

@jodeleeuw

Copy link
Copy Markdown
Member

Summary

Bumps build-time dependencies in @jspsych/config to clear several npm audit advisories. @jspsych/config is a devDependency of all jsPsych packages (build tooling only — never shipped to participants' browsers), so none of these advisories were runtime-exploitable; this is dev/CI hygiene and keeps audit clean for contributors and downstream consumers.

Changes

  • esbuild 0.23.1^0.25.0 — clears the dev-server CORS advisory (<=0.24.2). We only use esbuild via rollup-plugin-esbuild for transpile/minify, never as a dev server.
  • rollup ^4.22.4^4.59.0 — guarantees the fixes for the Arbitrary File Write via path traversal (HIGH, needs >=4.59.0) and DOM Clobbering XSS (HIGH, fixed in 4.22.4) advisories. The lockfile was previously stale (pinned 4.45.1); it now resolves to 4.62.2.
  • rollup-plugin-esbuild 6.1.16.2.1 — keeps the rollup/esbuild plugin current (peers esbuild >=0.18.0).

Verification

  • npm test --workspace=@jspsych/config — passes (5/5)
  • Built @jspsych/plugin-html-keyboard-response end-to-end with the new toolchain — all targets (.js, .cjs, .browser.js, .browser.min.js, .d.ts) produced successfully.

Not addressed (out of scope)

  • glob (config declares 7.2.3; the advisory only affects glob 10.x's -c/--cmd CLI, not this version or the library API).
  • alias-hq is already on its latest version (6.2.4); its transitive flags can't be cleared by a bump and are dev-only.

A patch changeset for @jspsych/config is included.

🤖 Generated with Claude Code

Bumps build-time dependencies in @jspsych/config:
- esbuild: 0.23.1 -> ^0.25.0 (dev-server CORS advisory)
- rollup: ^4.22.4 -> ^4.59.0 (path-traversal + DOM-clobbering advisories)
- rollup-plugin-esbuild: 6.1.1 -> 6.2.1

These are build-only dependencies, so there is no runtime change. Verified
config tests pass and a plugin builds end-to-end with the new toolchain.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Jun 26, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 972548e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@jspsych/config Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions

Copy link
Copy Markdown
Contributor

📦 Preview build ready

Built from PR head 972548e and published at 82496c2 on branch preview/pr-3696.
URLs below are pinned to an immutable commit SHA, so they are safe to share and are cached permanently by jsDelivr.

Changed packages: config

Quick-start HTML:

<script src="https://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/jspsych/dist/index.browser.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/jspsych/css/jspsych.css">
<script src="https://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-html-keyboard-response/dist/index.browser.min.js"></script>
All package URLs
  • @jspsych/extension-mouse-trackinghttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/extension-mouse-tracking/dist/index.browser.min.js
  • @jspsych/extension-record-videohttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/extension-record-video/dist/index.browser.min.js
  • @jspsych/extension-webgazerhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/extension-webgazer/dist/index.browser.min.js
  • jspsychhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/jspsych/dist/index.browser.min.js
  • @jspsych/plugin-animationhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-animation/dist/index.browser.min.js
  • @jspsych/plugin-audio-button-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-audio-button-response/dist/index.browser.min.js
  • @jspsych/plugin-audio-keyboard-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-audio-keyboard-response/dist/index.browser.min.js
  • @jspsych/plugin-audio-slider-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-audio-slider-response/dist/index.browser.min.js
  • @jspsych/plugin-browser-checkhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-browser-check/dist/index.browser.min.js
  • @jspsych/plugin-call-functionhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-call-function/dist/index.browser.min.js
  • @jspsych/plugin-canvas-button-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-canvas-button-response/dist/index.browser.min.js
  • @jspsych/plugin-canvas-keyboard-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-canvas-keyboard-response/dist/index.browser.min.js
  • @jspsych/plugin-canvas-slider-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-canvas-slider-response/dist/index.browser.min.js
  • @jspsych/plugin-categorize-animationhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-categorize-animation/dist/index.browser.min.js
  • @jspsych/plugin-categorize-htmlhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-categorize-html/dist/index.browser.min.js
  • @jspsych/plugin-categorize-imagehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-categorize-image/dist/index.browser.min.js
  • @jspsych/plugin-clozehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-cloze/dist/index.browser.min.js
  • @jspsych/plugin-external-htmlhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-external-html/dist/index.browser.min.js
  • @jspsych/plugin-free-sorthttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-free-sort/dist/index.browser.min.js
  • @jspsych/plugin-fullscreenhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-fullscreen/dist/index.browser.min.js
  • @jspsych/plugin-html-audio-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-html-audio-response/dist/index.browser.min.js
  • @jspsych/plugin-html-button-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-html-button-response/dist/index.browser.min.js
  • @jspsych/plugin-html-keyboard-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-html-keyboard-response/dist/index.browser.min.js
  • @jspsych/plugin-html-slider-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-html-slider-response/dist/index.browser.min.js
  • @jspsych/plugin-html-video-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-html-video-response/dist/index.browser.min.js
  • @jspsych/plugin-iat-htmlhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-iat-html/dist/index.browser.min.js
  • @jspsych/plugin-iat-imagehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-iat-image/dist/index.browser.min.js
  • @jspsych/plugin-image-button-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-image-button-response/dist/index.browser.min.js
  • @jspsych/plugin-image-keyboard-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-image-keyboard-response/dist/index.browser.min.js
  • @jspsych/plugin-image-slider-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-image-slider-response/dist/index.browser.min.js
  • @jspsych/plugin-initialize-camerahttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-initialize-camera/dist/index.browser.min.js
  • @jspsych/plugin-initialize-microphonehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-initialize-microphone/dist/index.browser.min.js
  • @jspsych/plugin-instructionshttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-instructions/dist/index.browser.min.js
  • @jspsych/plugin-maxdiffhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-maxdiff/dist/index.browser.min.js
  • @jspsych/plugin-mirror-camerahttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-mirror-camera/dist/index.browser.min.js
  • @jspsych/plugin-preloadhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-preload/dist/index.browser.min.js
  • @jspsych/plugin-reconstructionhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-reconstruction/dist/index.browser.min.js
  • @jspsych/plugin-resizehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-resize/dist/index.browser.min.js
  • @jspsych/plugin-same-different-htmlhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-same-different-html/dist/index.browser.min.js
  • @jspsych/plugin-same-different-imagehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-same-different-image/dist/index.browser.min.js
  • @jspsych/plugin-serial-reaction-time-mousehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-serial-reaction-time-mouse/dist/index.browser.min.js
  • @jspsych/plugin-serial-reaction-timehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-serial-reaction-time/dist/index.browser.min.js
  • @jspsych/plugin-sketchpadhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-sketchpad/dist/index.browser.min.js
  • @jspsych/plugin-survey-html-formhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-survey-html-form/dist/index.browser.min.js
  • @jspsych/plugin-survey-likerthttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-survey-likert/dist/index.browser.min.js
  • @jspsych/plugin-survey-multi-choicehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-survey-multi-choice/dist/index.browser.min.js
  • @jspsych/plugin-survey-multi-selecthttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-survey-multi-select/dist/index.browser.min.js
  • @jspsych/plugin-survey-texthttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-survey-text/dist/index.browser.min.js
  • @jspsych/plugin-surveyhttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-survey/dist/index.browser.min.js
  • @jspsych/plugin-video-button-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-video-button-response/dist/index.browser.min.js
  • @jspsych/plugin-video-keyboard-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-video-keyboard-response/dist/index.browser.min.js
  • @jspsych/plugin-video-slider-responsehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-video-slider-response/dist/index.browser.min.js
  • @jspsych/plugin-virtual-chinresthttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-virtual-chinrest/dist/index.browser.min.js
  • @jspsych/plugin-visual-search-circlehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-visual-search-circle/dist/index.browser.min.js
  • @jspsych/plugin-webgazer-calibratehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-webgazer-calibrate/dist/index.browser.min.js
  • @jspsych/plugin-webgazer-init-camerahttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-webgazer-init-camera/dist/index.browser.min.js
  • @jspsych/plugin-webgazer-validatehttps://cdn.jsdelivr.net/gh/jspsych/jsPsych@82496c219659b7604824cd207a749519558ae1c0/packages/plugin-webgazer-validate/dist/index.browser.min.js

Last updated 2026-06-26 16:11 UTC for PR head 972548e.

@jodeleeuw jodeleeuw merged commit 4b1c4c1 into main Jun 26, 2026
5 checks passed
@jodeleeuw jodeleeuw deleted the chore/config-dep-bumps branch June 26, 2026 16:12
@github-actions github-actions Bot mentioned this pull request Jun 26, 2026
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