From 47edaff93489758fa0b0eed182a2f2859d89311d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilherme=20Ara=C3=BAjo?= Date: Tue, 20 Oct 2026 20:26:55 -0300 Subject: [PATCH] chore: update to node 26.12 and use t.assert mock assertions --- .nvmrc | 2 +- package.json | 2 +- .../core/src/logger/__tests__/logger.test.mjs | 89 ++++++--------- .../__tests__/transports/console.test.mjs | 22 ++-- .../__tests__/transports/github.test.mjs | 105 +++++++----------- .../configuration/__tests__/index.test.mjs | 17 ++- .../src/html/utils/__tests__/copying.test.mjs | 69 ++++++------ pnpm-lock.yaml | 44 +++----- 8 files changed, 148 insertions(+), 202 deletions(-) diff --git a/.nvmrc b/.nvmrc index a45fd52cc..b26dba76e 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -24 +26.12 diff --git a/package.json b/package.json index c789c16fd..56155e83d 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@playwright/test": "~1.63.0", "@reporters/github": "~2.1.4", "@types/mdast": "~4.0.4", - "@types/node": "~24.10.1", + "@types/node": "~26.6.5", "@types/semver": "~7.8.0", "c8": "~12.0.0", "eslint-plugin-jsdoc": "64.5.4", diff --git a/packages/core/src/logger/__tests__/logger.test.mjs b/packages/core/src/logger/__tests__/logger.test.mjs index 76e0d02fd..fda0aade0 100644 --- a/packages/core/src/logger/__tests__/logger.test.mjs +++ b/packages/core/src/logger/__tests__/logger.test.mjs @@ -1,4 +1,4 @@ -import { deepStrictEqual, strictEqual } from 'node:assert'; +import { strictEqual } from 'node:assert'; import { describe, it } from 'node:test'; import { LogLevel } from '../constants.mjs'; @@ -30,16 +30,13 @@ describe('createLogger', () => { strictEqual(transport.mock.callCount(), 1); - const call = transport.mock.calls[0]; - deepStrictEqual(call.arguments, [ - { - level: LogLevel.debug, - message: 'Hello, World!', - metadata, - module: undefined, - timestamp: 0, - }, - ]); + t.assert.nthCalledWith(transport, 1, { + level: LogLevel.debug, + message: 'Hello, World!', + metadata, + module: undefined, + timestamp: 0, + }); }); it('should filter DEBUG messages when logger level is set to INFO or higher', t => { @@ -69,16 +66,13 @@ describe('createLogger', () => { strictEqual(transport.mock.callCount(), 1); - const call = transport.mock.calls[0]; - deepStrictEqual(call.arguments, [ - { - level: LogLevel.info, - message: 'Hello, World!', - metadata, - module: undefined, - timestamp: 0, - }, - ]); + t.assert.nthCalledWith(transport, 1, { + level: LogLevel.info, + message: 'Hello, World!', + metadata, + module: undefined, + timestamp: 0, + }); }); }); @@ -108,16 +102,13 @@ describe('createLogger', () => { strictEqual(transport.mock.callCount(), 1); - const call = transport.mock.calls[0]; - deepStrictEqual(call.arguments, [ - { - level: LogLevel.warn, - message: 'Hello, World!', - metadata, - module: undefined, - timestamp: 0, - }, - ]); + t.assert.nthCalledWith(transport, 1, { + level: LogLevel.warn, + message: 'Hello, World!', + metadata, + module: undefined, + timestamp: 0, + }); }); }); @@ -148,16 +139,13 @@ describe('createLogger', () => { strictEqual(transport.mock.callCount(), 1); - const call = transport.mock.calls[0]; - deepStrictEqual(call.arguments, [ - { - level: LogLevel.error, - message: 'Hello, World!', - metadata, - module: undefined, - timestamp: 0, - }, - ]); + t.assert.nthCalledWith(transport, 1, { + level: LogLevel.error, + message: 'Hello, World!', + metadata, + module: undefined, + timestamp: 0, + }); } ); }); @@ -208,18 +196,15 @@ describe('createLogger', () => { strictEqual(transport.mock.callCount(), 1); - const call = transport.mock.calls[0]; - deepStrictEqual(call.arguments, [ - { - level: LogLevel.error, - message: 'Hello, World!', - metadata: { - stack: error.stack, - }, - module: undefined, - timestamp: 0, + t.assert.nthCalledWith(transport, 1, { + level: LogLevel.error, + message: 'Hello, World!', + metadata: { + stack: error.stack, }, - ]); + module: undefined, + timestamp: 0, + }); }); describe('setLogLevel', () => { diff --git a/packages/core/src/logger/__tests__/transports/console.test.mjs b/packages/core/src/logger/__tests__/transports/console.test.mjs index 0cf3bf14c..d8bb129ff 100644 --- a/packages/core/src/logger/__tests__/transports/console.test.mjs +++ b/packages/core/src/logger/__tests__/transports/console.test.mjs @@ -1,4 +1,4 @@ -import { deepStrictEqual, strictEqual } from 'assert'; +import { deepStrictEqual } from 'assert'; import { describe, it } from 'node:test'; import { LogLevel } from '../../constants.mjs'; @@ -25,7 +25,7 @@ describe('console', () => { call => call.arguments[0] ); - strictEqual(process.stdout.write.mock.callCount(), 4); + t.assert.callCount(process.stdout.write, 4); deepStrictEqual(callsArgs, [ '[00:00:00.000]', ' \x1B[34mDEBUG\x1B[39m', @@ -53,7 +53,7 @@ describe('console', () => { call => call.arguments[0] ); - strictEqual(process.stdout.write.mock.callCount(), 4); + t.assert.callCount(process.stdout.write, 4); deepStrictEqual(callsArgs, [ '[00:00:00.000]', ' \x1B[32mINFO\x1B[39m', @@ -82,7 +82,7 @@ describe('console', () => { call => call.arguments[0] ); - strictEqual(process.stdout.write.mock.callCount(), 4); + t.assert.callCount(process.stdout.write, 4); deepStrictEqual(callsArgs, [ '[00:00:00.000]', ' \x1B[35mERROR\x1B[39m', @@ -111,7 +111,7 @@ describe('console', () => { call => call.arguments[0] ); - strictEqual(process.stdout.write.mock.callCount(), 4); + t.assert.callCount(process.stdout.write, 4); deepStrictEqual(callsArgs, [ '[00:00:00.000]', ' \x1B[31mFATAL\x1B[39m', @@ -149,7 +149,7 @@ describe('console', () => { call => call.arguments[0] ); - strictEqual(process.stdout.write.mock.callCount(), 6); + t.assert.callCount(process.stdout.write, 6); deepStrictEqual(callsArgs, [ '[00:00:00.000]', ' \x1B[32mINFO\x1B[39m', @@ -181,7 +181,7 @@ describe('console', () => { call => call.arguments[0] ); - strictEqual(process.stdout.write.mock.callCount(), 5); + t.assert.callCount(process.stdout.write, 5); deepStrictEqual(callsArgs, [ '[00:00:00.000]', ' \x1B[32mINFO\x1B[39m', @@ -211,7 +211,7 @@ describe('console', () => { call => call.arguments[0] ); - strictEqual(process.stdout.write.mock.callCount(), 4); + t.assert.callCount(process.stdout.write, 4); deepStrictEqual(callsArgs, [ '[00:00:00.000]', ' INFO', @@ -243,7 +243,7 @@ describe('console', () => { call => call.arguments[0] ); - strictEqual(process.stdout.write.mock.callCount(), 5); + t.assert.callCount(process.stdout.write, 5); deepStrictEqual(callsArgs, [ '[00:00:00.000]', ' \x1B[32mINFO\x1B[39m', @@ -280,7 +280,7 @@ describe('console', () => { // Should have: timestamp, level, message, file path, newline, stack // But NOT a metadata JSON block (since only file/stack are present) - strictEqual(process.stdout.write.mock.callCount(), 6); + t.assert.callCount(process.stdout.write, 6); deepStrictEqual(callsArgs, [ '[00:00:00.000]', ' \x1B[32mINFO\x1B[39m', @@ -321,7 +321,7 @@ describe('console', () => { call => call.arguments[0] ); - strictEqual(process.stdout.write.mock.callCount(), 7); + t.assert.callCount(process.stdout.write, 7); deepStrictEqual(callsArgs, [ '[00:00:00.000]', ' \x1B[34mDEBUG\x1B[39m', diff --git a/packages/core/src/logger/__tests__/transports/github.test.mjs b/packages/core/src/logger/__tests__/transports/github.test.mjs index 2f881500e..82b669fa1 100644 --- a/packages/core/src/logger/__tests__/transports/github.test.mjs +++ b/packages/core/src/logger/__tests__/transports/github.test.mjs @@ -1,4 +1,3 @@ -import { strictEqual } from 'assert'; import { describe, it } from 'node:test'; import { LogLevel } from '../../constants.mjs'; @@ -21,14 +20,11 @@ describe('github', () => { timestamp: Date.now(), }); - const callsArgs = process.stdout.write.mock.calls.map( - call => call.arguments[0] - ); - - strictEqual(process.stdout.write.mock.callCount(), 1); - strictEqual( - callsArgs[0].trim(), - '::debug::[00:00:00.000] \x1B[34mDEBUG\x1B[39m: Test message' + t.assert.callCount(process.stdout.write, 1); + t.assert.nthCalledWith( + process.stdout.write, + 1, + '::debug::[00:00:00.000] \x1B[34mDEBUG\x1B[39m: Test message\n' ); }); @@ -47,14 +43,11 @@ describe('github', () => { timestamp: Date.now(), }); - const callsArgs = process.stdout.write.mock.calls.map( - call => call.arguments[0] - ); - - strictEqual(process.stdout.write.mock.callCount(), 1); - strictEqual( - callsArgs[0].trim(), - '::notice ::[00:00:00.000] \x1B[32mINFO\x1B[39m: Test message' + t.assert.callCount(process.stdout.write, 1); + t.assert.nthCalledWith( + process.stdout.write, + 1, + '::notice ::[00:00:00.000] \x1B[32mINFO\x1B[39m: Test message\n' ); }); @@ -74,14 +67,11 @@ describe('github', () => { timestamp: Date.now(), }); - const callsArgs = process.stdout.write.mock.calls.map( - call => call.arguments[0] - ); - - strictEqual(process.stdout.write.mock.callCount(), 1); - strictEqual( - callsArgs[0].trim(), - '::error ::[00:00:00.000] \x1B[35mERROR\x1B[39m: Test message' + t.assert.callCount(process.stdout.write, 1); + t.assert.nthCalledWith( + process.stdout.write, + 1, + '::error ::[00:00:00.000] \x1B[35mERROR\x1B[39m: Test message\n' ); }); @@ -101,14 +91,11 @@ describe('github', () => { timestamp: Date.now(), }); - const callsArgs = process.stdout.write.mock.calls.map( - call => call.arguments[0] - ); - - strictEqual(process.stdout.write.mock.callCount(), 1); - strictEqual( - callsArgs[0].trim(), - '::error ::[00:00:00.000] \x1B[31mFATAL\x1B[39m: Test message' + t.assert.callCount(process.stdout.write, 1); + t.assert.nthCalledWith( + process.stdout.write, + 1, + '::error ::[00:00:00.000] \x1B[31mFATAL\x1B[39m: Test message\n' ); }); @@ -137,14 +124,11 @@ describe('github', () => { timestamp: Date.now(), }); - const callsArgs = process.stdout.write.mock.calls.map( - call => call.arguments[0] - ); - - strictEqual(process.stdout.write.mock.callCount(), 1); - strictEqual( - callsArgs[0].trim(), - '::notice file=test.md,line=1,endLine=1::[00:00:00.000] \x1B[32mINFO\x1B[39m: Test message' + t.assert.callCount(process.stdout.write, 1); + t.assert.nthCalledWith( + process.stdout.write, + 1, + '::notice file=test.md,line=1,endLine=1::[00:00:00.000] \x1B[32mINFO\x1B[39m: Test message\n' ); }); @@ -173,15 +157,12 @@ describe('github', () => { timestamp: Date.now(), }); - const callsArgs = process.stdout.write.mock.calls.map( - call => call.arguments[0] - ); - - strictEqual(process.stdout.write.mock.callCount(), 1); + t.assert.callCount(process.stdout.write, 1); // The message keeps its `,` and `:`, which only separate properties - strictEqual( - callsArgs[0].trim(), - '::notice file=a%2Cb%3Ac%25.md,line=1,endLine=2::[00:00:00.000] \x1B[32mINFO\x1B[39m: 100%25: a, b%0D%0Ac' + t.assert.nthCalledWith( + process.stdout.write, + 1, + '::notice file=a%2Cb%3Ac%25.md,line=1,endLine=2::[00:00:00.000] \x1B[32mINFO\x1B[39m: 100%25: a, b%0D%0Ac\n' ); }); @@ -201,14 +182,11 @@ describe('github', () => { module: 'child1', }); - const callsArgs = process.stdout.write.mock.calls.map( - call => call.arguments[0] - ); - - strictEqual(process.stdout.write.mock.callCount(), 1); - strictEqual( - callsArgs[0].trim(), - '::notice ::[00:00:00.000] \x1B[32mINFO\x1B[39m (child1): Test message' + t.assert.callCount(process.stdout.write, 1); + t.assert.nthCalledWith( + process.stdout.write, + 1, + '::notice ::[00:00:00.000] \x1B[32mINFO\x1B[39m (child1): Test message\n' ); }); @@ -228,14 +206,11 @@ describe('github', () => { timestamp: Date.now(), }); - const callsArgs = process.stdout.write.mock.calls.map( - call => call.arguments[0] - ); - - strictEqual(process.stdout.write.mock.callCount(), 1); - strictEqual( - callsArgs[0].trim(), - '::notice ::[00:00:00.000] INFO: Test message' + t.assert.callCount(process.stdout.write, 1); + t.assert.nthCalledWith( + process.stdout.write, + 1, + '::notice ::[00:00:00.000] INFO: Test message\n' ); }); }); diff --git a/packages/core/src/utils/configuration/__tests__/index.test.mjs b/packages/core/src/utils/configuration/__tests__/index.test.mjs index 140c0f350..9af97147d 100644 --- a/packages/core/src/utils/configuration/__tests__/index.test.mjs +++ b/packages/core/src/utils/configuration/__tests__/index.test.mjs @@ -95,7 +95,7 @@ describe('config.mjs', () => { beforeEach(resetAllMocks); describe('loadConfigFile', () => { - it('should load config from file path', async () => { + it('should load config from file path', async t => { const mockConfig = { custom: 'config' }; mockConfigLoad.mock.mockImplementationOnce(async filePath => ({ config: mockConfig, @@ -105,12 +105,9 @@ describe('config.mjs', () => { const result = await loadConfigFile('path/to/config.mjs'); assert.deepStrictEqual(result, mockConfig); - assert.strictEqual(mockConfigLoad.mock.calls.length, 1); - assert.strictEqual( - mockConfigLoad.mock.calls[0].arguments[0], - 'path/to/config.mjs' - ); - assert.strictEqual(mockConfigSearch.mock.calls.length, 0); + t.assert.callCount(mockConfigLoad, 1); + t.assert.nthCalledWith(mockConfigLoad, 1, 'path/to/config.mjs'); + t.assert.callCount(mockConfigSearch, 0); }); it('should merge extends presets underneath the config file', async () => { @@ -337,7 +334,7 @@ describe('config.mjs', () => { assert.strictEqual(config.chunkSize, 1); }); - it('should work without config file', async () => { + it('should work without config file', async t => { const config = await createRunConfiguration({ version: '20.0.0', threads: 4, @@ -345,8 +342,8 @@ describe('config.mjs', () => { assert.ok(config); assert.strictEqual(config.threads, 4); - assert.strictEqual(mockConfigLoad.mock.calls.length, 0); - assert.strictEqual(mockConfigSearch.mock.calls.length, 1); + t.assert.callCount(mockConfigLoad, 0); + t.assert.callCount(mockConfigSearch, 1); }); it('should default to project-neutral values', async () => { diff --git a/packages/react/src/html/utils/__tests__/copying.test.mjs b/packages/react/src/html/utils/__tests__/copying.test.mjs index 00413a42a..308d5ae6f 100644 --- a/packages/react/src/html/utils/__tests__/copying.test.mjs +++ b/packages/react/src/html/utils/__tests__/copying.test.mjs @@ -1,4 +1,3 @@ -import assert from 'node:assert/strict'; import { join } from 'node:path'; import { describe, it, mock, beforeEach } from 'node:test'; @@ -21,21 +20,21 @@ describe('copyStaticAssets', () => { mockCp.mock.mockImplementation(() => Promise.resolve()); }); - it('does nothing if config.pathsToCopy is not an array', async () => { + it('does nothing if config.pathsToCopy is not an array', async t => { await copyStaticAssets({ pathsToCopy: undefined }); - assert.strictEqual(mockCp.mock.callCount(), 0); + t.assert.callCount(mockCp, 0); }); - it('ignores falsy items in pathsToCopy array', async () => { + it('ignores falsy items in pathsToCopy array', async t => { const config = { output: '/out', pathsToCopy: [null, undefined, false, ''], }; await copyStaticAssets(config); - assert.strictEqual(mockCp.mock.callCount(), 0); + t.assert.callCount(mockCp, 0); }); - it('copies simple string paths correctly to the output directory', async () => { + it('copies simple string paths correctly to the output directory', async t => { const config = { output: '/out', pathsToCopy: ['src/assets', 'docs/images'], @@ -43,22 +42,20 @@ describe('copyStaticAssets', () => { await copyStaticAssets(config); - assert.strictEqual(mockCp.mock.callCount(), 2); + t.assert.callCount(mockCp, 2); - assert.deepStrictEqual(mockCp.mock.calls[0].arguments, [ - 'src/assets', - join('/out', 'assets'), - { recursive: true, force: true }, - ]); + t.assert.nthCalledWith(mockCp, 1, 'src/assets', join('/out', 'assets'), { + recursive: true, + force: true, + }); - assert.deepStrictEqual(mockCp.mock.calls[1].arguments, [ - 'docs/images', - join('/out', 'images'), - { recursive: true, force: true }, - ]); + t.assert.nthCalledWith(mockCp, 2, 'docs/images', join('/out', 'images'), { + recursive: true, + force: true, + }); }); - it('copies object mappings correctly and strips leading slashes from dest', async () => { + it('copies object mappings correctly and strips leading slashes from dest', async t => { const config = { output: '/out', pathsToCopy: [ @@ -71,22 +68,26 @@ describe('copyStaticAssets', () => { await copyStaticAssets(config); - assert.strictEqual(mockCp.mock.callCount(), 2); + t.assert.callCount(mockCp, 2); - assert.deepStrictEqual(mockCp.mock.calls[0].arguments, [ + t.assert.nthCalledWith( + mockCp, + 1, 'src/custom', join('/out', 'dest-folder/custom'), - { recursive: true, force: true }, - ]); + { recursive: true, force: true } + ); - assert.deepStrictEqual(mockCp.mock.calls[1].arguments, [ + t.assert.nthCalledWith( + mockCp, + 2, 'src/another', join('/out', 'another-folder'), - { recursive: true, force: true }, - ]); + { recursive: true, force: true } + ); }); - it('ignores ENOENT errors silently', async () => { + it('ignores ENOENT errors silently', async t => { // Simulate an ENOENT error when trying to copy mockCp.mock.mockImplementationOnce(() => { const err = new Error('File not found'); @@ -99,11 +100,11 @@ describe('copyStaticAssets', () => { pathsToCopy: ['missing-file'], }); - assert.strictEqual(mockCp.mock.callCount(), 1); - assert.strictEqual(mockLogError.mock.callCount(), 0); + t.assert.callCount(mockCp, 1); + t.assert.callCount(mockLogError, 0); }); - it('logs errors that are not ENOENT using the logger', async () => { + it('logs errors that are not ENOENT using the logger', async t => { // Simulate a generic/permission error mockCp.mock.mockImplementationOnce(() => { throw new Error('Permission denied'); @@ -114,12 +115,12 @@ describe('copyStaticAssets', () => { pathsToCopy: ['protected-file'], }); - assert.strictEqual(mockCp.mock.callCount(), 1); - assert.strictEqual(mockLogError.mock.callCount(), 1); + t.assert.callCount(mockCp, 1); + t.assert.callCount(mockLogError, 1); - const logMessage = mockLogError.mock.calls[0].arguments[0]; - assert.equal( - logMessage, + t.assert.nthCalledWith( + mockLogError, + 1, `[html-generator] Failed to copy asset from protected-file to ${join('/out', 'protected-file')}: Permission denied` ); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 15bb6e8b0..a8340ef5b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,8 +27,8 @@ importers: specifier: ~4.0.4 version: 4.0.4 '@types/node': - specifier: ~24.10.1 - version: 24.10.15 + specifier: ~26.6.5 + version: 26.6.5 '@types/semver': specifier: ~7.8.0 version: 7.8.0 @@ -58,7 +58,7 @@ importers: version: 1.86.0 wrangler: specifier: 4.148.0 - version: 4.148.0(@types/node@24.10.15) + version: 4.148.0(@types/node@26.6.5) packages/cli: dependencies: @@ -315,7 +315,7 @@ importers: version: 5.1.0 vite: specifier: ~8.3.1 - version: 8.3.1(@types/node@24.10.15)(esbuild@0.28.1)(yaml@2.9.1) + version: 8.3.1(@types/node@26.6.5)(esbuild@0.28.1)(yaml@2.9.1) devDependencies: dedent: specifier: ^1.7.2 @@ -1968,11 +1968,8 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@24.10.15': - resolution: {integrity: sha512-BgjLoRuSr0MTI5wA6gMw9Xy0sFudAaUuvrnjgGx9wZ522fYYLA5SYJ+1Y30vTcJEG+DRCyDHx/gzQVfofYzSdg==} - - '@types/node@26.6.3': - resolution: {integrity: sha512-dsqMQQoeTLqu9wynDD00q573mNzso3IdQOAfHRJqLCcmCFPoGo9A1bDpUcv/9tnKpErQWv9uKeGfl37EIS02Yg==} + '@types/node@26.6.5': + resolution: {integrity: sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg==} '@types/react@19.2.18': resolution: {integrity: sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==} @@ -3328,9 +3325,6 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - undici-types@7.16.0: - resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - undici-types@8.9.0: resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==} @@ -4912,11 +4906,7 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@24.10.15': - dependencies: - undici-types: 7.16.0 - - '@types/node@26.6.3': + '@types/node@26.6.5': dependencies: undici-types: 8.9.0 @@ -5593,7 +5583,7 @@ snapshots: jsdoc-type-pratt-parser@9.2.2: dependencies: '@types/estree': 1.0.9 - '@types/node': 26.6.3 + '@types/node': 26.6.5 json-buffer@3.0.1: {} @@ -6159,10 +6149,10 @@ snapshots: transitivePeerDependencies: - supports-color - miniflare@5.20261006.0-alpha(@types/node@24.10.15): + miniflare@5.20261006.0-alpha(@types/node@26.6.5): dependencies: '@cspotcode/source-map-support': 0.8.1 - sharp: 0.35.4(@types/node@24.10.15) + sharp: 0.35.4(@types/node@26.6.5) undici: 7.29.1 workerd: 1.20261006.1 ws: 8.21.0 @@ -6530,7 +6520,7 @@ snapshots: semver@7.8.5: {} - sharp@0.35.4(@types/node@24.10.15): + sharp@0.35.4(@types/node@26.6.5): dependencies: '@img/colour': 1.1.0 detect-libc: 2.1.2 @@ -6561,7 +6551,7 @@ snapshots: '@img/sharp-win32-arm64': 0.35.4 '@img/sharp-win32-ia32': 0.35.4 '@img/sharp-win32-x64': 0.35.4 - '@types/node': 24.10.15 + '@types/node': 26.6.5 shebang-command@2.0.0: dependencies: @@ -6708,8 +6698,6 @@ snapshots: uc.micro@2.1.0: {} - undici-types@7.16.0: {} - undici-types@8.9.0: {} undici@6.29.0: {} @@ -6835,7 +6823,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite@8.3.1(@types/node@24.10.15)(esbuild@0.28.1)(yaml@2.9.1): + vite@8.3.1(@types/node@26.6.5)(esbuild@0.28.1)(yaml@2.9.1): dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 @@ -6843,7 +6831,7 @@ snapshots: rolldown: 1.2.11 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 24.10.15 + '@types/node': 26.6.5 esbuild: 0.28.1 fsevents: 2.3.3 yaml: 2.9.1 @@ -6864,13 +6852,13 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20261006.1 '@cloudflare/workerd-windows-64': 1.20261006.1 - wrangler@4.148.0(@types/node@24.10.15): + wrangler@4.148.0(@types/node@26.6.5): dependencies: '@cloudflare/kv-asset-handler': 0.5.0 '@cloudflare/unenv-preset': 2.16.2(unenv@2.0.0-rc.24)(workerd@1.20261006.1) blake3-wasm: 2.1.5 esbuild: 0.28.1 - miniflare: 5.20261006.0-alpha(@types/node@24.10.15) + miniflare: 5.20261006.0-alpha(@types/node@26.6.5) path-to-regexp: 6.3.0 unenv: 2.0.0-rc.24 workerd: 1.20261006.1