From e62847bd0632afa83b90b9160f59395973f61490 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Wed, 10 Jun 2026 18:06:51 -0700 Subject: [PATCH] fix smoke test --- .changeset/fix-prepack-dist-exports.md | 12 ++++++++++++ packages/cli/scripts/prepare-publish-manifest.mjs | 7 +++++++ packages/cli/src/__tests__/plugin-sdk-export.test.ts | 4 ++++ 3 files changed, 23 insertions(+) create mode 100644 .changeset/fix-prepack-dist-exports.md diff --git a/.changeset/fix-prepack-dist-exports.md b/.changeset/fix-prepack-dist-exports.md new file mode 100644 index 0000000000..38c188ad22 --- /dev/null +++ b/.changeset/fix-prepack-dist-exports.md @@ -0,0 +1,12 @@ +--- +"@runfusion/fusion": patch +--- + +fix: keep `./dist/*` subpaths resolvable in the packed manifest + +The prepack transform injects an `exports` field for the plugin-sdk subpath, +which flips Node into strict subpath mode and hid every other `./dist/*` file. +That broke the runfusion.ai alias (which imports +`@runfusion/fusion/dist/bin.js`) with `ERR_PACKAGE_PATH_NOT_EXPORTED`, failing +the pre-publish smoke test. Add a `./dist/*` passthrough so the alias bin and +the pi `./dist/extension.js` loader keep resolving after pack. diff --git a/packages/cli/scripts/prepare-publish-manifest.mjs b/packages/cli/scripts/prepare-publish-manifest.mjs index 8a872f646d..9cf71fc8e8 100644 --- a/packages/cli/scripts/prepare-publish-manifest.mjs +++ b/packages/cli/scripts/prepare-publish-manifest.mjs @@ -18,12 +18,19 @@ export function applyPrepackTransform(pkg) { devDependencies, // Inject exports only for the packed manifest so workspace/dev resolution // remains unchanged (postpack restore reverts this file to original state). + // + // Declaring any `exports` field flips Node into strict subpath mode, which + // would otherwise hide every other `./dist/*` file. The runfusion.ai alias + // imports `@runfusion/fusion/dist/bin.js` and the pi loader reads + // `./dist/extension.js`, so a `./dist/*` passthrough is required to keep + // those subpaths resolvable post-pack. exports: { ...(pkg.exports || {}), "./plugin-sdk": { types: "./dist/plugin-sdk/index.d.ts", import: "./dist/plugin-sdk/index.js", }, + "./dist/*": "./dist/*", "./package.json": "./package.json", }, }; diff --git a/packages/cli/src/__tests__/plugin-sdk-export.test.ts b/packages/cli/src/__tests__/plugin-sdk-export.test.ts index 99b50b914a..a9ee5891a5 100644 --- a/packages/cli/src/__tests__/plugin-sdk-export.test.ts +++ b/packages/cli/src/__tests__/plugin-sdk-export.test.ts @@ -25,6 +25,10 @@ describe("plugin-sdk export surface", () => { import: "./dist/plugin-sdk/index.js", }); expect(transformed.exports["./package.json"]).toBe("./package.json"); + // The runfusion.ai alias imports `@runfusion/fusion/dist/bin.js`; the + // injected exports field must keep `./dist/*` subpaths resolvable or the + // pre-publish smoke test fails with ERR_PACKAGE_PATH_NOT_EXPORTED. + expect(transformed.exports["./dist/*"]).toBe("./dist/*"); expect(transformed.bin).toEqual(pkg.bin); expect(transformed.pi).toEqual(pkg.pi); });