diff --git a/scripts/acpx-patch-packaging.test.mjs b/scripts/acpx-patch-packaging.test.mjs index b37155b9ef..b9bc9aa89f 100644 --- a/scripts/acpx-patch-packaging.test.mjs +++ b/scripts/acpx-patch-packaging.test.mjs @@ -87,23 +87,28 @@ test("bundled package staging materializes workspace dependency versions", () => }); test("bundled package staging installs only dependencies included in the tarball", () => { - const installManifest = createBundledInstallManifest( - { - name: "@paperclipai/db", - version: "2026.723.0-canary.8", - dependencies: { - "@paperclipai/shared": "2026.723.0-canary.8", - "drizzle-orm": "^0.45.2", - "embedded-postgres": "^18.1.0-beta.16", - }, - bundleDependencies: ["embedded-postgres"], + const publishManifest = { + name: "@paperclipai/db", + version: "2026.723.0-canary.8", + dependencies: { + "@paperclipai/shared": "2026.723.0-canary.8", + "drizzle-orm": "^0.45.2", + "embedded-postgres": "^18.1.0-beta.16", }, - ["embedded-postgres"], - ); + devDependencies: { + "@paperclipai/paperclip-runner": "2026.723.0-canary.8", + }, + bundleDependencies: ["embedded-postgres"], + }; + const installManifest = createBundledInstallManifest(publishManifest, ["embedded-postgres"]); assert.deepEqual(installManifest.dependencies, { "embedded-postgres": "^18.1.0-beta.16", }); + assert.equal(installManifest.devDependencies, undefined); + assert.deepEqual(publishManifest.devDependencies, { + "@paperclipai/paperclip-runner": "2026.723.0-canary.8", + }); assert.deepEqual(installManifest.bundleDependencies, ["embedded-postgres"]); }); @@ -227,6 +232,7 @@ mkdir -p "$destination/node_modules/.pnpm" set -euo pipefail printf 'npm %s\\n' "$*" >> "$FAKE_CALL_LOG" [ "$*" = "install --omit=dev --ignore-scripts --no-audit --no-fund" ] +node -e 'const pkg = require("./package.json"); if ("devDependencies" in pkg) process.exit(1)' mkdir -p node_modules/acpx/dist printf 'unpatched runtime\\n' > node_modules/acpx/dist/runtime.js printf '{"name":"acpx","version":"0.13.1"}\\n' > node_modules/acpx/package.json diff --git a/scripts/prepare-bundled-package.mjs b/scripts/prepare-bundled-package.mjs index db5ad596ca..891da00b71 100644 --- a/scripts/prepare-bundled-package.mjs +++ b/scripts/prepare-bundled-package.mjs @@ -35,6 +35,8 @@ export function createBundledInstallManifest(publishManifest, bundledDependencie const bundledDependencyNames = new Set(bundledDependencies); const installManifest = structuredClone(publishManifest); + delete installManifest.devDependencies; + for (const section of ["dependencies", "optionalDependencies", "peerDependencies"]) { if (!installManifest[section]) continue; installManifest[section] = Object.fromEntries(