From d2a27292b71ac7530f87b4c5b80167b756d7adaa Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 16:28:17 +0000 Subject: [PATCH] Add postinstall script for ESM-only @actions/core@3.0.0 compatibility, update Jest config, and regenerate dist Co-authored-by: ejahnGithub <108841108+ejahnGithub@users.noreply.github.com> --- dist/index.js | Bin 4816142 -> 4900807 bytes eslint.config.mjs | 2 +- package.json | 7 ++++- scripts/postinstall.js | 60 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 scripts/postinstall.js diff --git a/dist/index.js b/dist/index.js index d884a9e13dfe1192237a8ddc1454558ba1007bf7..260a1bf04f6d8eb8e54180e5c8555e42b5af48a1 100644 GIT binary patch delta 11939 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" }, "scripts": { + "postinstall": "node scripts/postinstall.js", "bundle": "npm run format:write && npm run package", "ci-test": "jest", "format:write": "prettier --write **/*.ts", @@ -57,8 +58,12 @@ "/dist/" ], "transform": { - "^.+\\.ts$": "ts-jest" + "^.+\\.ts$": "ts-jest", + "node_modules/@actions/.+\\.js$": "ts-jest" }, + "transformIgnorePatterns": [ + "node_modules/(?!@actions/)" + ], "coverageReporters": [ "json-summary", "text", diff --git a/scripts/postinstall.js b/scripts/postinstall.js new file mode 100644 index 0000000..bea47e2 --- /dev/null +++ b/scripts/postinstall.js @@ -0,0 +1,60 @@ +/** + * Postinstall script to patch ESM-only dependencies for CJS compatibility. + * + * @actions/core v3+ and its transitive dependencies are ESM-only + * (exports only "import" condition). This script adds a "default" + * export condition so that CJS bundlers (like @vercel/ncc) and test + * runners (like Jest/ts-jest) can resolve the packages. + */ +const fs = require('fs') +const path = require('path') + +function patchPackage(pkgPath) { + try { + const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')) + if (!pkg.exports) return + + let patched = false + for (const key of Object.keys(pkg.exports)) { + const entry = pkg.exports[key] + if (typeof entry === 'object' && entry['import'] && !entry['default']) { + entry['default'] = entry['import'] + patched = true + } + } + + if (patched) { + fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n') + console.log( + `Patched ${pkg.name}@${pkg.version} exports with "default" condition` + ) + } + } catch (e) { + // Ignore errors - the package might not be installed yet + } +} + +function findPackageJsonFiles(dir) { + const results = [] + try { + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory() && entry.name !== '.cache') { + results.push(...findPackageJsonFiles(fullPath)) + } else if (entry.name === 'package.json') { + results.push(fullPath) + } + } + } catch (e) { + // Ignore permission or missing directory errors + } + return results +} + +const nodeModulesDir = path.join(__dirname, '..', 'node_modules', '@actions') +const packageFiles = findPackageJsonFiles(nodeModulesDir) +for (const pkgPath of packageFiles) { + patchPackage(pkgPath) +} +