build: update npm dependencies (#689)

## Summary

Update all direct npm dependencies and devDependencies to the current
npm latest versions and pin them exactly instead of using caret or tilde
ranges.

## Changes

- Pin all direct runtime and development package versions in
`package.json` and refresh `package-lock.json`.
- Migrate ESLint from `.eslintrc.json` to flat config for ESLint 10.
- Update Jest and TypeScript configuration and test mocks to support the
latest ESM-only packages.
- Add response status handling and typed JSON access for the latest
`node-fetch` types.

## Checklist

- [x] I have read the latest README and followed the instructions.
- [x] I have added or updated tests for behavior changes.
- [x] I have updated README.md and action.yml when inputs or runtime
behavior changed.
- [x] I have run the relevant verification commands.

## Verification

- [x] `npm --userconfig=/private/tmp/empty-npmrc outdated --json
--include=dev` returned `{}`
- [x] `npm run all`
- [x] `npm run build`


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Tests**
* Added comprehensive test mocks for Actions APIs and fetch, improved
integration tests, and updated assertions for more precise error
validation.
  * Configured Jest to map external modules to local test mocks.

* **Chores**
* Migrated ESLint to the flat config format and replaced prior ESLint
config.
* Updated project dependencies and modernized TypeScript compiler
settings.

* **Refactor**
* Adjusted exported tool constants and made error handling more explicit
in version-fetching logic.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/peaceiris/actions-hugo/pull/689)
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
Shohei Ueda
2026-05-10 23:30:59 +09:00
committed by GitHub
co-authored by Codex
parent e3c35ac635
commit 189731ef00
17 changed files with 7709 additions and 13417 deletions
+53
View File
@@ -0,0 +1,53 @@
import http from 'http';
import https from 'https';
export class FetchError extends Error {
name = 'FetchError' as const;
constructor(
message: string,
public type: string,
systemError?: Record<string, unknown>
) {
super(message);
if (systemError) {
Object.assign(this, systemError);
}
}
}
interface ResponseLike {
ok: boolean;
status: number;
json: () => Promise<unknown>;
}
export default async function fetch(url: string | URL): Promise<ResponseLike> {
const target = url.toString();
const client = target.startsWith('https:') ? https : http;
return new Promise((resolve, reject) => {
const request = client.get(target, response => {
const chunks: Buffer[] = [];
response.on('data', (chunk: Buffer | string) => {
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
});
response.on('end', () => {
const status = response.statusCode ?? 0;
const body = Buffer.concat(chunks).toString();
resolve({
ok: status >= 200 && status < 300,
status,
json: async () => JSON.parse(body) as unknown
});
});
});
request.on('error', error => {
reject(new FetchError(error.message, 'system'));
});
});
}