Compare commits

...

4 Commits

Author SHA1 Message Date
copilot-swe-agent[bot] 925a0eede9 Fix trailing blank line in postinstall.js
Co-authored-by: ejahnGithub <108841108+ejahnGithub@users.noreply.github.com>
2026-02-13 16:29:14 +00:00
copilot-swe-agent[bot] d2a27292b7 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>
2026-02-13 16:28:17 +00:00
copilot-swe-agent[bot] 1472a695c5 Initial plan for regenerating dist with @actions/core@3.0.0
Co-authored-by: ejahnGithub <108841108+ejahnGithub@users.noreply.github.com>
2026-02-13 16:16:16 +00:00
copilot-swe-agent[bot] cbb55045ce Initial plan 2026-02-13 16:11:11 +00:00
5 changed files with 4544 additions and 2247 deletions
Generated Vendored
+4430 -2232
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -7,7 +7,7 @@ export default tseslint.config(
// Ignore non-project files
{
name: 'ignore',
ignores: ['.github', 'dist', 'coverage', '**/*.json', 'jest.setup.js', 'eslint.config.mjs']
ignores: ['.github', 'dist', 'coverage', '**/*.json', 'jest.setup.js', 'eslint.config.mjs', 'scripts']
},
// Use recommended rules from ESLint, TypeScript, and other plugins
eslint.configs.recommended,
+47 -12
View File
@@ -10,7 +10,7 @@
"license": "MIT",
"dependencies": {
"@actions/attest": "^2.2.1",
"@actions/core": "^2.0.3"
"@actions/core": "^3.0.0"
},
"devDependencies": {
"@eslint/js": "^9.39.2",
@@ -48,7 +48,7 @@
"jose": "^5.10.0"
}
},
"node_modules/@actions/core": {
"node_modules/@actions/attest/node_modules/@actions/core": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-2.0.3.tgz",
"integrity": "sha512-Od9Thc3T1mQJYddvVPM4QGiLUewdh+3txmDYHHxoNdkqysR1MbCT+rFOtNUxYAz+7+6RIsqipVahY2GJqGPyxA==",
@@ -58,10 +58,35 @@
"@actions/http-client": "^3.0.2"
}
},
"node_modules/@actions/attest/node_modules/@actions/exec": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@actions/exec/-/exec-2.0.0.tgz",
"integrity": "sha512-k8ngrX2voJ/RIN6r9xB82NVqKpnMRtxDoiO+g3olkIUpQNqjArXrCQceduQZCQj3P3xm32pChRLqRrtXTlqhIw==",
"license": "MIT",
"dependencies": {
"@actions/io": "^2.0.0"
}
},
"node_modules/@actions/attest/node_modules/@actions/io": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@actions/io/-/io-2.0.0.tgz",
"integrity": "sha512-Jv33IN09XLO+0HS79aaODsvIRyduiF7NY/F6LYeK5oeUmrsz7aFdRphQjFoESF4jS7lMauDOttKALcpapVDIAg==",
"license": "MIT"
},
"node_modules/@actions/core": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-3.0.0.tgz",
"integrity": "sha512-zYt6cz+ivnTmiT/ksRVriMBOiuoUpDCJJlZ5KPl2/FRdvwU3f7MPh9qftvbkXJThragzUZieit2nyHUyw53Seg==",
"license": "MIT",
"dependencies": {
"@actions/exec": "^3.0.0",
"@actions/http-client": "^4.0.0"
}
},
"node_modules/@actions/core/node_modules/@actions/http-client": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-3.0.2.tgz",
"integrity": "sha512-JP38FYYpyqvUsz+Igqlc/JG6YO9PaKuvqjM3iGvaLqFnJ7TFmcLyy2IDrY0bI0qCQug8E9K+elv5ZNfw62ZJzA==",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-4.0.0.tgz",
"integrity": "sha512-QuwPsgVMsD6qaPD57GLZi9sqzAZCtiJT8kVBCDpLtxhL5MydQ4gS+DrejtZZPdIYyB1e95uCK9Luyds7ybHI3g==",
"license": "MIT",
"dependencies": {
"tunnel": "^0.0.6",
@@ -78,12 +103,12 @@
}
},
"node_modules/@actions/exec": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@actions/exec/-/exec-2.0.0.tgz",
"integrity": "sha512-k8ngrX2voJ/RIN6r9xB82NVqKpnMRtxDoiO+g3olkIUpQNqjArXrCQceduQZCQj3P3xm32pChRLqRrtXTlqhIw==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@actions/exec/-/exec-3.0.0.tgz",
"integrity": "sha512-6xH/puSoNBXb72VPlZVm7vQ+svQpFyA96qdDBvhB8eNZOE8LtPf9L4oAsfzK/crCL8YZ+19fKYVnM63Sl+Xzlw==",
"license": "MIT",
"dependencies": {
"@actions/io": "^2.0.0"
"@actions/io": "^3.0.2"
}
},
"node_modules/@actions/github": {
@@ -121,9 +146,9 @@
}
},
"node_modules/@actions/io": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@actions/io/-/io-2.0.0.tgz",
"integrity": "sha512-Jv33IN09XLO+0HS79aaODsvIRyduiF7NY/F6LYeK5oeUmrsz7aFdRphQjFoESF4jS7lMauDOttKALcpapVDIAg==",
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/@actions/io/-/io-3.0.2.tgz",
"integrity": "sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw==",
"license": "MIT"
},
"node_modules/@ampproject/remapping": {
@@ -169,6 +194,7 @@
"integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.27.1",
@@ -1599,6 +1625,7 @@
"node_modules/@octokit/core": {
"version": "5.1.0",
"license": "MIT",
"peer": true,
"dependencies": {
"@octokit/auth-token": "^4.0.0",
"@octokit/graphql": "^7.0.0",
@@ -2083,6 +2110,7 @@
"integrity": "sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@eslint-community/regexpp": "^4.12.2",
"@typescript-eslint/scope-manager": "8.54.0",
@@ -2121,6 +2149,7 @@
"integrity": "sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@typescript-eslint/scope-manager": "8.54.0",
"@typescript-eslint/types": "8.54.0",
@@ -2624,6 +2653,7 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
"peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -3026,6 +3056,7 @@
}
],
"license": "MIT",
"peer": true,
"dependencies": {
"caniuse-lite": "^1.0.30001718",
"electron-to-chromium": "^1.5.160",
@@ -3826,6 +3857,7 @@
"integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1",
@@ -5448,6 +5480,7 @@
"integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@jest/core": "30.2.0",
"@jest/types": "30.2.0",
@@ -8628,6 +8661,7 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12"
},
@@ -8891,6 +8925,7 @@
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
"license": "Apache-2.0",
"peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
+7 -2
View File
@@ -24,6 +24,7 @@
"node": ">=24"
},
"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",
@@ -71,7 +76,7 @@
},
"dependencies": {
"@actions/attest": "^2.2.1",
"@actions/core": "^2.0.3"
"@actions/core": "^3.0.0"
},
"devDependencies": {
"@eslint/js": "^9.39.2",
+59
View File
@@ -0,0 +1,59 @@
/**
* 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)
}