Skip to main content

fix-node

Apply a Node.js dependency CVE fix via lockfile-only updates. Supports npm and pnpm. Uses overrides only as fallback when direct update is insufficient.

Datos de origen

Repositorio
quay/ai-helpers
Última actividad en el origen
24 de junio de 2026 a las 14:14
Idioma detectado de SKILL.md
inglés
Estrellas
3
Forks
11

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
fix-node
description
Apply a Node.js dependency CVE fix via lockfile-only updates. Supports npm and pnpm. Uses overrides only as fallback when direct update is insufficient.
allowed-tools
["Bash(npm *)","Bash(npx *)","Bash(pnpm *)","Bash(corepack *)","Bash(python3 \"${CLAUDE_PLUGIN_ROOT}/scripts/patch-pnpm-lock.py\" *)","Bash(jq *)","Bash(grep *)","Bash(sed *)","Bash(cat *)","Read","Write","Edit","Glob","Grep"]
# Fix Node.js CVE ## Inputs | Input | Required | |-------|----------| | `PACKAGE` | yes | | `FIXED_VERSION` | yes | | `CVE_ID` | yes | | `REPO_DIR` | yes (cwd) | | `NODEJS_DIRS` | default `.` `web/` | | `USE_PNPM_WEB` | default false — set true when web/ uses pnpm | | `PNPM_VERSION` | default `10` — CI pnpm major version | ## Strategy 1. Direct lockfile update first (sufficient for most transitive CVEs) 2. Overrides in `package.json` only when update cannot reach fixed version 3. Verify lockfile shows `package@<FIXED_VERSION>` before commit 4. Do not commit `package.json` unless overrides were required ## Steps ### 1. Update each directory For each dir in `NODEJS_DIRS` with a `package.json`: ```bash cd "${DIR}" if [ "$USE_PNPM_WEB" = true ] && [ "$DIR" = "web/" ]; then corepack prepare "pnpm@${PNPM_VERSION}" --activate rm -rf node_modules pnpm update "${PACKAGE}@${FIXED_VERSION}" --lockfile-only 2>/dev/null || \ pnpm update "${PACKAGE}" --lockfile-only 2>/dev/null || true npm update "${PACKAGE}" --package-lock-only 2>/dev/null || true # Fallback if lockfile-only update did not reach FIXED_VERSION: # python3 "${CLAUDE_PLUGIN_ROOT}/scripts/patch-pnpm-lock.py" web/pnpm-lock.yaml "$PACKAGE" "$OLD" "$FIXED" # Validate CI will accept the lockfile (do not use this to apply the bump): pnpm install --frozen-lockfile else npm update "${PACKAGE}@${FIXED_VERSION}" 2>/dev/null || npm update "${PACKAGE}" 2>/dev/null || true fi cd "$REPO_DIR" ``` ### 2. Override fallback If lockfile version is still below `FIXED_VERSION`: ```bash jq --arg pkg "$PACKAGE" --arg ver "${FIXED_VERSION}" \ '.overrides[$pkg] = $ver | .pnpm.overrides[$pkg] = $ver' package.json > package.json.tmp && \ mv package.json.tmp package.json pnpm install --no-frozen-lockfile ``` For npm-only directories (no pnpm), use `.overrides` only and run `npm install`. ### 3. Verify ```bash npm audit 2>/dev/null | grep -i "${CVE_ID}" && echo "WARNING" || echo "CVE resolved" # For pnpm web/: grep -E " ${PACKAGE}@" pnpm-lock.yaml | head -3 grep -q '^overrides:' pnpm-lock.yaml || { echo "ERROR: missing overrides: header"; exit 1; } ``` ## Output Modified lockfiles in the specified directories. `package.json` only if overrides added.
Ver en GitHub