From b5e1fb009d26e8c8b3ce59f37057c9ff8e4198e1 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Thu, 12 Mar 2026 19:03:41 +0000 Subject: [PATCH 01/11] Add `workspaces` to root `package.json` --- package-lock.json | 67 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 3 +++ 2 files changed, 70 insertions(+) diff --git a/package-lock.json b/package-lock.json index b64365bf19..0dc89792b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,9 @@ "name": "codeql", "version": "4.32.7", "license": "MIT", + "workspaces": [ + "pr-checks" + ], "dependencies": { "@actions/artifact": "^5.0.3", "@actions/artifact-legacy": "npm:@actions/artifact@^1.1.2", @@ -5868,6 +5871,21 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "dev": true, @@ -7892,6 +7910,10 @@ "node": ">= 0.4" } }, + "node_modules/pr-checks": { + "resolved": "pr-checks", + "link": true + }, "node_modules/prelude-ls": { "version": "1.2.1", "dev": true, @@ -9127,6 +9149,26 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/tsx": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", + "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.27.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, "node_modules/tunnel": { "version": "0.0.6", "license": "MIT", @@ -9718,6 +9760,21 @@ "node": ">=18" } }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, "node_modules/yargs": { "version": "18.0.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz", @@ -9838,6 +9895,16 @@ "engines": { "node": ">= 14" } + }, + "pr-checks": { + "dependencies": { + "yaml": "^2.8.2" + }, + "devDependencies": { + "@types/node": "^20.19.9", + "tsx": "^4.21.0", + "typescript": "^5.9.3" + } } } } diff --git a/package.json b/package.json index a810e13776..aa9a5253d6 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,9 @@ "transpile": "tsc --build --verbose" }, "license": "MIT", + "workspaces": [ + "pr-checks" + ], "dependencies": { "@actions/artifact": "^5.0.3", "@actions/artifact-legacy": "npm:@actions/artifact@^1.1.2", From 7df3db2b6fa0291dfe45e2228ac77f76e92e49de Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Thu, 12 Mar 2026 17:53:28 +0000 Subject: [PATCH 02/11] Add minimal `Step` type --- pr-checks/sync.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pr-checks/sync.ts b/pr-checks/sync.ts index 5044f4b85f..29efeacc80 100755 --- a/pr-checks/sync.ts +++ b/pr-checks/sync.ts @@ -57,6 +57,12 @@ interface Specification extends JobSpecification { collection?: string; } +/** Minimal type to represent steps in Actions workflows. */ +interface Step { + name?: string; + [other: string]: any; +} + /** Represents job specifications. */ interface JobSpecification { /** The display name for the check. */ @@ -67,7 +73,7 @@ interface JobSpecification { env?: Record; /** The workflow steps specific to this check. */ - steps: any[]; + steps: Step[]; installNode?: boolean; installGo?: boolean; @@ -82,7 +88,7 @@ interface LanguageSetup { specProperty: keyof JobSpecification; /** The names of the known inputs which are required for this setup step. */ inputs?: KnownInputName[]; - steps: any[]; + steps: Step[]; } /** Describes partial mappings from known languages to their specific setup information. */ @@ -363,10 +369,10 @@ function generateJobMatrix( */ function getSetupSteps(checkSpecification: JobSpecification): { inputs: Set; - steps: any[]; + steps: Step[]; } { const inputs: Array> = []; - const steps: any[] = []; + const steps: Step[] = []; for (const language of Object.values(KnownLanguage).sort()) { const setupSpec = languageSetups[language]; @@ -426,7 +432,7 @@ function generateJob( const workflowInputs = setupInfo.inputs; // Construct the workflow steps needed for this check. - const steps: any[] = [ + const steps: Step[] = [ { name: "Check out repository", uses: "actions/checkout@v6", From e608db4784eac3d02d177aeed262e5e68c3f0cad Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Thu, 12 Mar 2026 17:39:53 +0000 Subject: [PATCH 03/11] Add eslint configuration for `pr-checks` --- eslint.config.mjs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index e84c48b8a4..bc77329978 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -23,7 +23,6 @@ export default [ "ava.setup.mjs", "eslint.config.mjs", ".github/**/*", - "pr-checks/**/*", ], }, // eslint recommended config @@ -170,4 +169,29 @@ export default [ "func-style": "off", }, }, + { + files: ["pr-checks/**/*.ts"], + + languageOptions: { + parserOptions: { + // Use the correct `tsconfig.json` for `pr-checks`. + project: "./pr-checks/tsconfig.json", + }, + }, + + rules: { + // The scripts in `pr-checks` are expected to output to the console. + "no-console": "off", + + "@typescript-eslint/no-floating-promises": [ + "error", + { + allowForKnownSafeCalls: [ + // Avoid needing explicit `void` in front of `describe` calls in test files. + { from: "package", name: ["describe"], package: "node:test" }, + ], + }, + ], + }, + }, ]; From 7950e47b7f73cf12167a76e02440dd9b12316e55 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Thu, 12 Mar 2026 17:50:15 +0000 Subject: [PATCH 04/11] Fix linter errors in `sync.ts` --- pr-checks/sync.ts | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/pr-checks/sync.ts b/pr-checks/sync.ts index 29efeacc80..8a1842323c 100755 --- a/pr-checks/sync.ts +++ b/pr-checks/sync.ts @@ -194,8 +194,7 @@ const languageSetups: LanguageSetups = { name: "Install Go", uses: "actions/setup-go@v6", with: { - "go-version": - "${{ inputs.go-version || '" + defaultLanguageVersions.go + "' }}", + "go-version": `\${{ inputs.go-version || '${defaultLanguageVersions.go}' }}`, // to avoid potentially misleading autobuilder results where we expect it to download // dependencies successfully, but they actually come from a warm cache cache: false, @@ -211,10 +210,7 @@ const languageSetups: LanguageSetups = { name: "Install Java", uses: "actions/setup-java@v5", with: { - "java-version": - "${{ inputs.java-version || '" + - defaultLanguageVersions.java + - "' }}", + "java-version": `\${{ inputs.java-version || '${defaultLanguageVersions.java}' }}`, distribution: "temurin", }, }, @@ -228,10 +224,7 @@ const languageSetups: LanguageSetups = { name: "Install Python", uses: "actions/setup-python@v6", with: { - "python-version": - "${{ inputs.python-version || '" + - defaultLanguageVersions.python + - "' }}", + "python-version": `\${{ inputs.python-version || '${defaultLanguageVersions.python}' }}`, }, }, ], @@ -244,10 +237,7 @@ const languageSetups: LanguageSetups = { name: "Install .NET", uses: "actions/setup-dotnet@v5", with: { - "dotnet-version": - "${{ inputs.dotnet-version || '" + - defaultLanguageVersions.csharp + - "' }}", + "dotnet-version": `\${{ inputs.dotnet-version || '${defaultLanguageVersions.csharp}' }}`, }, }, ], @@ -653,7 +643,7 @@ function main(): void { let extraGroupName = ""; for (const inputName of Object.keys(combinedInputs)) { - extraGroupName += "-${{inputs." + inputName + "}}"; + extraGroupName += `-\${{inputs.${inputName}}}`; } const cron = new yaml.Scalar("0 5 * * *"); @@ -691,7 +681,7 @@ function main(): void { concurrency: { "cancel-in-progress": "${{ github.event_name == 'pull_request' || false }}", - group: checkName + "-${{github.ref}}" + extraGroupName, + group: `${checkName}-\${{github.ref}}${extraGroupName}`, }, jobs: { [checkName]: checkJob, @@ -715,7 +705,7 @@ function main(): void { combinedInputs = { ...combinedInputs, ...checkInputs }; for (const inputName of Object.keys(checkInputs)) { - checkWith[inputName] = "${{ inputs." + inputName + " }}"; + checkWith[inputName] = `\${{ inputs.${inputName} }}`; } jobs[checkName] = { From 967ca853e1de4250127ea757fc18bc64541c69d4 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Thu, 12 Mar 2026 17:44:52 +0000 Subject: [PATCH 05/11] Rename `sync_back` to `sync-back` --- .github/workflows/rebuild.yml | 2 +- pr-checks/{sync_back.test.ts => sync-back.test.ts} | 4 ++-- pr-checks/{sync_back.ts => sync-back.ts} | 0 3 files changed, 3 insertions(+), 3 deletions(-) rename pr-checks/{sync_back.test.ts => sync-back.test.ts} (99%) rename pr-checks/{sync_back.ts => sync-back.ts} (100%) diff --git a/.github/workflows/rebuild.yml b/.github/workflows/rebuild.yml index f4c2230e91..de01727f5b 100644 --- a/.github/workflows/rebuild.yml +++ b/.github/workflows/rebuild.yml @@ -97,7 +97,7 @@ jobs: working-directory: pr-checks run: | npm ci - npx tsx sync_back.ts --verbose + npx tsx sync-back.ts --verbose - name: Generate workflows working-directory: pr-checks diff --git a/pr-checks/sync_back.test.ts b/pr-checks/sync-back.test.ts similarity index 99% rename from pr-checks/sync_back.test.ts rename to pr-checks/sync-back.test.ts index 316d2b7303..07d9f1b547 100755 --- a/pr-checks/sync_back.test.ts +++ b/pr-checks/sync-back.test.ts @@ -1,7 +1,7 @@ #!/usr/bin/env npx tsx /* -Tests for the sync_back.ts script +Tests for the sync-back.ts script */ import * as assert from "node:assert/strict"; @@ -14,7 +14,7 @@ import { scanGeneratedWorkflows, updateSyncTs, updateTemplateFiles, -} from "./sync_back"; +} from "./sync-back"; let testDir: string; let workflowDir: string; diff --git a/pr-checks/sync_back.ts b/pr-checks/sync-back.ts similarity index 100% rename from pr-checks/sync_back.ts rename to pr-checks/sync-back.ts From b171c1c6d95429b18ec5756187243d3aef4c9a37 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Thu, 12 Mar 2026 17:54:10 +0000 Subject: [PATCH 06/11] Fix linter errors in `sync-back.ts` --- pr-checks/sync-back.ts | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/pr-checks/sync-back.ts b/pr-checks/sync-back.ts index 7e1375580b..5d7275e812 100755 --- a/pr-checks/sync-back.ts +++ b/pr-checks/sync-back.ts @@ -17,9 +17,8 @@ those changes are properly synced back to the source templates. Regular workflow files are updated directly by Dependabot and don't need sync-back. */ -import { parseArgs } from "node:util"; - import * as fs from "fs"; +import { parseArgs } from "node:util"; import * as path from "path"; const THIS_DIR = __dirname; @@ -33,7 +32,9 @@ const SYNC_TS_PATH = path.join(THIS_DIR, "sync.ts"); * @param workflowDir - Path to .github/workflows directory * @returns Map from action names to their latest versions (including comments) */ -export function scanGeneratedWorkflows(workflowDir: string): Record { +export function scanGeneratedWorkflows( + workflowDir: string, +): Record { const actionVersions: Record = {}; const generatedFiles = fs @@ -96,10 +97,7 @@ export function updateSyncTs( // variable - that's a risk we're happy to take since in that case the // PR checks will just fail. const escaped = actionName.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); - const pattern = new RegExp( - `(uses:\\s*")${escaped}@(?:[^"]+)(")`, - "g", - ); + const pattern = new RegExp(`(uses:\\s*")${escaped}@(?:[^"]+)(")`, "g"); content = content.replace(pattern, `$1${actionName}@${version}$2`); } @@ -141,10 +139,7 @@ export function updateTemplateFiles( )) { // Look for patterns like 'uses: actions/setup-node@v4' or 'uses: actions/setup-node@sha # comment' const escaped = actionName.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); - const pattern = new RegExp( - `(uses:\\s+${escaped})@(?:[^@\n]+)`, - "g", - ); + const pattern = new RegExp(`(uses:\\s+${escaped})@(?:[^@\n]+)`, "g"); content = content.replace(pattern, `$1@${versionWithComment}`); } From b4cb1049fb7d2f8e76e14e2d096dd6ff0ec77399 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Thu, 12 Mar 2026 18:03:29 +0000 Subject: [PATCH 07/11] Fix linter errors in `sync-back.test.ts` --- pr-checks/sync-back.test.ts | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/pr-checks/sync-back.test.ts b/pr-checks/sync-back.test.ts index 07d9f1b547..8b46217492 100755 --- a/pr-checks/sync-back.test.ts +++ b/pr-checks/sync-back.test.ts @@ -38,8 +38,8 @@ afterEach(() => { fs.rmSync(testDir, { recursive: true, force: true }); }); -describe("scanGeneratedWorkflows", () => { - it("basic workflow scanning", () => { +describe("scanGeneratedWorkflows", async () => { + await it("basic workflow scanning", () => { /** Test basic workflow scanning functionality */ const workflowContent = ` name: Test Workflow @@ -61,7 +61,7 @@ jobs: assert.equal(result["actions/setup-go"], "v6"); }); - it("scanning workflows with version comments", () => { + await it("scanning workflows with version comments", () => { /** Test scanning workflows with version comments */ const workflowContent = ` name: Test Workflow @@ -86,7 +86,7 @@ jobs: assert.equal(result["actions/setup-python"], "v6 # Latest Python"); }); - it("ignores local actions", () => { + await it("ignores local actions", () => { /** Test that local actions (starting with ./) are ignored */ const workflowContent = ` name: Test Workflow @@ -109,8 +109,8 @@ jobs: }); }); -describe("updateSyncTs", () => { - it("updates sync.ts file", () => { +describe("updateSyncTs", async () => { + await it("updates sync.ts file", () => { /** Test updating sync.ts file */ const syncTsContent = ` const steps = [ @@ -141,7 +141,7 @@ const steps = [ assert.ok(updatedContent.includes('uses: "actions/setup-go@v6"')); }); - it("strips comments from versions", () => { + await it("strips comments from versions", () => { /** Test updating sync.ts file when versions have comments */ const syncTsContent = ` const steps = [ @@ -168,7 +168,7 @@ const steps = [ assert.ok(!updatedContent.includes("# Latest version")); }); - it("returns false when no changes are needed", () => { + await it("returns false when no changes are needed", () => { /** Test that updateSyncTs returns false when no changes are needed */ const syncTsContent = ` const steps = [ @@ -190,8 +190,8 @@ const steps = [ }); }); -describe("updateTemplateFiles", () => { - it("updates template files", () => { +describe("updateTemplateFiles", async () => { + await it("updates template files", () => { /** Test updating template files */ const templateContent = ` name: Test Template @@ -220,7 +220,7 @@ steps: assert.ok(updatedContent.includes("uses: actions/setup-node@v5 # Latest")); }); - it("preserves version comments", () => { + await it("preserves version comments", () => { /** Test that updating template files preserves version comments */ const templateContent = ` name: Test Template @@ -232,8 +232,7 @@ steps: fs.writeFileSync(templatePath, templateContent); const actionVersions = { - "ruby/setup-ruby": - "55511735964dcb71245e7e55f72539531f7bc0eb # v1.257.0", + "ruby/setup-ruby": "55511735964dcb71245e7e55f72539531f7bc0eb # v1.257.0", }; const result = updateTemplateFiles(checksDir, actionVersions); From 3bc3228be25839609305a9fe2c09a0f0e654a118 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Thu, 12 Mar 2026 18:16:27 +0000 Subject: [PATCH 08/11] Add explicit cache dependency paths in `pr-checks.yml` --- .github/workflows/pr-checks.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml index 501878d22e..ac6bc319b5 100644 --- a/.github/workflows/pr-checks.yml +++ b/.github/workflows/pr-checks.yml @@ -41,6 +41,9 @@ jobs: with: node-version: ${{ matrix.node-version }} cache: 'npm' + cache-dependency-path: | + package-lock.json + pr-checks/package-lock.json - name: Install dependencies run: | @@ -91,6 +94,9 @@ jobs: with: node-version: 24 cache: 'npm' + cache-dependency-path: | + package-lock.json + pr-checks/package-lock.json - name: Verify PR checks up to date if: always() From fc8d3039066bc398696465720e5811660354f3d4 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Thu, 12 Mar 2026 19:19:23 +0000 Subject: [PATCH 09/11] Add step (in root directory) to install dependencies --- .github/workflows/pr-checks.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml index ac6bc319b5..cbca0653c4 100644 --- a/.github/workflows/pr-checks.yml +++ b/.github/workflows/pr-checks.yml @@ -98,6 +98,9 @@ jobs: package-lock.json pr-checks/package-lock.json + - name: Install dependencies + run: npm ci + - name: Verify PR checks up to date if: always() run: .github/workflows/script/verify-pr-checks.sh @@ -105,7 +108,7 @@ jobs: - name: Run pr-checks tests if: always() working-directory: pr-checks - run: npm ci && npx tsx --test + run: npx tsx --test check-node-version: if: github.triggering_actor != 'dependabot[bot]' From a5aba5952cd5add76ec9f971654d61461a3ac2bd Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Fri, 13 Mar 2026 10:43:43 +0000 Subject: [PATCH 10/11] Remove `package-lock.json` that's no longer needed Since `pr-checks` is now a workspace of the main `package.json` --- pr-checks/package-lock.json | 605 ------------------------------------ 1 file changed, 605 deletions(-) delete mode 100644 pr-checks/package-lock.json diff --git a/pr-checks/package-lock.json b/pr-checks/package-lock.json deleted file mode 100644 index 2facb73229..0000000000 --- a/pr-checks/package-lock.json +++ /dev/null @@ -1,605 +0,0 @@ -{ - "name": "pr-checks", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "dependencies": { - "yaml": "^2.8.2" - }, - "devDependencies": { - "@types/node": "^20.19.9", - "tsx": "^4.21.0", - "typescript": "^5.9.3" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", - "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", - "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", - "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", - "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", - "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", - "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", - "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", - "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", - "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", - "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", - "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", - "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", - "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", - "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", - "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", - "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", - "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", - "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", - "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", - "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", - "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", - "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", - "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", - "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", - "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", - "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@types/node": { - "version": "20.19.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.35.tgz", - "integrity": "sha512-Uarfe6J91b9HAUXxjvSOdiO2UPOKLm07Q1oh0JHxoZ1y8HoqxDAu3gVrsrOHeiio0kSsoVBt4wFrKOm0dKxVPQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/esbuild": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", - "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.3", - "@esbuild/android-arm": "0.27.3", - "@esbuild/android-arm64": "0.27.3", - "@esbuild/android-x64": "0.27.3", - "@esbuild/darwin-arm64": "0.27.3", - "@esbuild/darwin-x64": "0.27.3", - "@esbuild/freebsd-arm64": "0.27.3", - "@esbuild/freebsd-x64": "0.27.3", - "@esbuild/linux-arm": "0.27.3", - "@esbuild/linux-arm64": "0.27.3", - "@esbuild/linux-ia32": "0.27.3", - "@esbuild/linux-loong64": "0.27.3", - "@esbuild/linux-mips64el": "0.27.3", - "@esbuild/linux-ppc64": "0.27.3", - "@esbuild/linux-riscv64": "0.27.3", - "@esbuild/linux-s390x": "0.27.3", - "@esbuild/linux-x64": "0.27.3", - "@esbuild/netbsd-arm64": "0.27.3", - "@esbuild/netbsd-x64": "0.27.3", - "@esbuild/openbsd-arm64": "0.27.3", - "@esbuild/openbsd-x64": "0.27.3", - "@esbuild/openharmony-arm64": "0.27.3", - "@esbuild/sunos-x64": "0.27.3", - "@esbuild/win32-arm64": "0.27.3", - "@esbuild/win32-ia32": "0.27.3", - "@esbuild/win32-x64": "0.27.3" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/get-tsconfig": { - "version": "4.13.6", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz", - "integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/tsx": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", - "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" - } - } - } -} From 136b8ab3777165e3ec7a19faa7ef9732ace305da Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Fri, 13 Mar 2026 10:46:40 +0000 Subject: [PATCH 11/11] Remove `cache-dependency-path` options as well --- .github/workflows/pr-checks.yml | 6 ------ .github/workflows/rebuild.yml | 3 --- 2 files changed, 9 deletions(-) diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml index cbca0653c4..f240997030 100644 --- a/.github/workflows/pr-checks.yml +++ b/.github/workflows/pr-checks.yml @@ -41,9 +41,6 @@ jobs: with: node-version: ${{ matrix.node-version }} cache: 'npm' - cache-dependency-path: | - package-lock.json - pr-checks/package-lock.json - name: Install dependencies run: | @@ -94,9 +91,6 @@ jobs: with: node-version: 24 cache: 'npm' - cache-dependency-path: | - package-lock.json - pr-checks/package-lock.json - name: Install dependencies run: npm ci diff --git a/.github/workflows/rebuild.yml b/.github/workflows/rebuild.yml index de01727f5b..cafc432d98 100644 --- a/.github/workflows/rebuild.yml +++ b/.github/workflows/rebuild.yml @@ -34,9 +34,6 @@ jobs: with: node-version: 24 cache: 'npm' - cache-dependency-path: | - package-lock.json - pr-checks/package-lock.json - name: Remove label if: github.event_name == 'pull_request'