Skip to content

chore: merge all open Dependabot dependency updates#1967

Merged
JamesIves merged 2 commits intodevfrom
copilot/merge-dependabot-prs
Apr 5, 2026
Merged

chore: merge all open Dependabot dependency updates#1967
JamesIves merged 2 commits intodevfrom
copilot/merge-dependabot-prs

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 4, 2026

Summary

Merges all 4 open Dependabot PRs into a single consolidated update. All dependencies have been validated to build and pass all 60 tests.

Dependabot PRs merged

PR Package(s) Change
#1966 lodash 4.17.23 → 4.18.1
#1954 @eslint/js, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, eslint-plugin-jest, eslint-plugin-prettier Various updates
#1952 @actions/core, @actions/exec, @actions/github, @actions/io 2.x/7.x → 3.x/9.x (now ESM-only)
#1910 jest, typescript, @types/jest, @types/node, prettier, rimraf, ts-jest jest 29→30, typescript 5.8→6.0, and others

Changes Required

Beyond the package.json/yarn.lock updates, the following changes were needed to accommodate the upgraded packages:

Project converted to proper ESM

The @actions/core, @actions/exec, @actions/github, and @actions/io packages are now ESM-only in v3/v9. The project has been converted to native ESM to support them properly:

  • package.json — Added "type": "module" so the compiled lib/*.js files run as native ES modules.
  • tsconfig.json — Changed module and moduleResolution to nodenext. TypeScript now emits proper Node.js ESM output with .js extensions on relative imports.
  • src/*.ts — All relative imports updated with .js extensions (required by NodeNext module resolution).
  • __mocks__/@actions/*.js — Standard Jest manual mocks (proper __mocks__ convention for node_modules) replacing the previous stubs approach. __mocks__/package.json sets "type": "commonjs" so the mocks work in Jest's CJS mode. @actions/exec and @actions/io mocks include functional implementations so worktree.test.ts integration tests continue running real git commands.
  • jest.config.jsjest.config.cjs — Renamed to explicit CJS; moduleNameMapper strips .js extensions so ts-jest can resolve .ts source files; ts-jest compiles tests with module: "commonjs" override.
  • eslint.config.mjs — Updated ignores to __mocks__/**.

TypeScript 6

  • tsconfig.json — Updated target to es2022 and added explicit types: ["node", "jest"] (TypeScript 6 requires this with the explicit lib setting).

Jest 30

  • Removed testRunner: 'jest-circus/runner' (jest-circus is now the built-in default runner in Jest 30) and removed jest-circus from devDependencies.

New lint rules (updated eslint/typescript-eslint)

  • preserve-caught-error — Added {cause: error} to error rethrow calls in src/git.ts, src/ssh.ts, and src/worktree.ts.
  • no-useless-assignment — Added // eslint-disable-next-line comment for the status = Status.RUNNING initialization in src/lib.ts that TypeScript requires but ESLint flags as redundant.

Validation

  • yarn build — TypeScript compiles cleanly; lib/*.js output is proper ESM
  • yarn test — All 60 tests pass (93%+ coverage)
  • yarn lint:check — No lint errors
  • yarn lint:format:check — All files properly formatted
  • ✅ CodeQL Security Scan — 0 alerts

- Update @actions/core/exec/github/io to v3/v9 (ESM-only)
- Update @eslint/js to v10, @typescript-eslint/* to 8.58, eslint-plugin-jest/prettier
- Update jest 29→30, typescript 5.8→6.0, @types/jest/node, prettier, rimraf, ts-jest
- Update lodash 4.17→4.18 (yarn.lock only)
- Add CJS test stubs for ESM-only @actions/* packages
- Update tsconfig.json: target es2022, add types for node+jest
- Update jest.config.js: moduleNameMapper for stubs, remove jest-circus runner
- Fix new lint rules: preserve-caught-error and no-useless-assignment

Agent-Logs-Url: https://github.com/JamesIves/github-pages-deploy-action/sessions/2a6d68c0-eab5-4c98-a927-2525b124ca87

Co-authored-by: JamesIves <10888441+JamesIves@users.noreply.github.com>
Copilot AI requested a review from JamesIves April 4, 2026 20:43
@github-actions github-actions bot added the chore 🧹 Changes which involve repo tidyness. label Apr 4, 2026
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 4, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.55%. Comparing base (58bf4c7) to head (e160ec0).
⚠️ Report is 1 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev    #1967      +/-   ##
==========================================
+ Coverage   93.45%   93.55%   +0.10%     
==========================================
  Files           7        7              
  Lines         321      326       +5     
  Branches       88       97       +9     
==========================================
+ Hits          300      305       +5     
  Misses         21       21              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@JamesIves
Copy link
Copy Markdown
Owner

@copilot convert things to esm instead of writing around it

- package.json: add "type": "module" for ESM runtime + nodenext compilation
- tsconfig.json: module/moduleResolution → nodenext (ESM output with .js extensions)
- src/*.ts: add .js extensions to all relative imports
- __tests__/*.test.ts: add .js to relative imports, remove jest.mock() factories for @actions/*
- jest.config.js → jest.config.cjs: CJS jest config, moduleNameMapper strips .js for ts-jest
- __mocks__/@actions/*.js + package.json: proper Jest manual mocks (CJS, with functional
  implementations for integration tests) replacing __tests__/stubs/ workaround
- eslint.config.mjs: ignore __mocks__/** instead of __tests__/stubs/**

Agent-Logs-Url: https://github.com/JamesIves/github-pages-deploy-action/sessions/c73b8f61-87f7-4eab-8e99-d363a69f6e66

Co-authored-by: JamesIves <10888441+JamesIves@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 4, 2026

@copilot convert things to esm instead of writing around it

Done in e160ec0. The project now uses proper ESM:

  • package.json has "type": "module" so compiled lib/*.js files run as native ES modules
  • tsconfig.json uses module: "nodenext" + moduleResolution: "nodenext" — TypeScript emits proper ESM with .js extensions
  • All source and test files updated with .js extensions on relative imports
  • Replaced __tests__/stubs/ + moduleNameMapper with __mocks__/@actions/*.js (the standard Jest manual mock convention for node_modules); __mocks__/package.json sets "type": "commonjs" so the mocks work in Jest's CJS mode, and the exec/io mocks include functional implementations so the worktree.test.ts integration tests keep running real git commands

@github-actions github-actions bot added the refactor 🛠 A code change that neither fixes a bug nor adds a feature. label Apr 5, 2026
@JamesIves JamesIves marked this pull request as ready for review April 5, 2026 18:32
@JamesIves JamesIves merged commit 70f9f52 into dev Apr 5, 2026
12 checks passed
@JamesIves JamesIves deleted the copilot/merge-dependabot-prs branch April 5, 2026 18:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore 🧹 Changes which involve repo tidyness. refactor 🛠 A code change that neither fixes a bug nor adds a feature.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants