From 1dab358340746bc4e9c2cdb3d4e7249622eddc06 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 2 Nov 2026 14:55:12 +0000 Subject: [PATCH 1/2] Update dependency @types/node to v26 --- packages/errors/package.json | 2 +- packages/prometheus-metrics/package.json | 2 +- packages/security/package.json | 2 +- packages/tpl/package.json | 2 +- pnpm-lock.yaml | 16 ++++++++-------- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/errors/package.json b/packages/errors/package.json index e43252b31..1dc794498 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -35,7 +35,7 @@ "posttest": "pnpm run lint" }, "devDependencies": { - "@types/node": "24.19.2", + "@types/node": "26.6.6", "esbuild": "0.28.2", "typescript": "catalog:", "zod": "4.6.7" diff --git a/packages/prometheus-metrics/package.json b/packages/prometheus-metrics/package.json index f861b7e6f..d56c665be 100644 --- a/packages/prometheus-metrics/package.json +++ b/packages/prometheus-metrics/package.json @@ -50,7 +50,7 @@ }, "devDependencies": { "@types/express": "5.0.6", - "@types/node": "24.19.2", + "@types/node": "26.6.6", "@types/sinon": "22.0.2", "@types/stoppable": "1.1.3", "express": "5.3.0", diff --git a/packages/security/package.json b/packages/security/package.json index f677bccb0..9d1622ad1 100644 --- a/packages/security/package.json +++ b/packages/security/package.json @@ -35,7 +35,7 @@ "bcryptjs": "^3.0.3" }, "devDependencies": { - "@types/node": "24.19.2", + "@types/node": "26.6.6", "typescript": "catalog:" } } diff --git a/packages/tpl/package.json b/packages/tpl/package.json index 7542a949f..94c8da719 100644 --- a/packages/tpl/package.json +++ b/packages/tpl/package.json @@ -31,7 +31,7 @@ }, "dependencies": {}, "devDependencies": { - "@types/node": "24.19.2", + "@types/node": "26.6.6", "typescript": "catalog:" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d07112534..b89d7be37 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -429,8 +429,8 @@ importers: packages/errors: devDependencies: '@types/node': - specifier: 24.19.2 - version: 24.19.2 + specifier: 26.6.6 + version: 26.6.6 esbuild: specifier: 0.28.2 version: 0.28.2 @@ -693,8 +693,8 @@ importers: specifier: 5.0.6 version: 5.0.6 '@types/node': - specifier: 24.19.2 - version: 24.19.2 + specifier: 26.6.6 + version: 26.6.6 '@types/sinon': specifier: 22.0.2 version: 22.0.2 @@ -773,8 +773,8 @@ importers: version: 3.0.3 devDependencies: '@types/node': - specifier: 24.19.2 - version: 24.19.2 + specifier: 26.6.6 + version: 26.6.6 typescript: specifier: 'catalog:' version: 7.0.2 @@ -795,8 +795,8 @@ importers: packages/tpl: devDependencies: '@types/node': - specifier: 24.19.2 - version: 24.19.2 + specifier: 26.6.6 + version: 26.6.6 typescript: specifier: 'catalog:' version: 7.0.2 From fb4bf2ea43c9044d755059d10c30c7bc9c3d1e38 Mon Sep 17 00:00:00 2001 From: Steve Larson <9larsons@gmail.com> Date: Mon, 2 Nov 2026 09:05:35 -0600 Subject: [PATCH 2/2] Fixed token hash input types for Node 26 declarations Derived accepted hash inputs from Hash.update so broader BinaryLike declarations do not admit unsupported ArrayBuffer values. Added type coverage while preserving runtime token generation. --- packages/security/lib/tokens.ts | 9 +++++---- packages/security/test/types.ts | 11 ++++++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/security/lib/tokens.ts b/packages/security/lib/tokens.ts index e31290f9e..d434da10a 100644 --- a/packages/security/lib/tokens.ts +++ b/packages/security/lib/tokens.ts @@ -1,12 +1,13 @@ -import { createHash, type BinaryLike } from 'node:crypto'; +import { createHash, type Hash } from 'node:crypto'; -type ContentTokenOptions = { content: BinaryLike }; +type HashInput = Parameters[0]; +type ContentTokenOptions = { content: HashInput }; type EmailTokenOptions = { expires: number | string; email: string; secret: string }; type ResetTokenOptions = { expires: number | string; email: string; dbHash: string; - passwordHash: BinaryLike; + passwordHash: HashInput; }; type ExtractedToken = { expires: number; email: string }; type TokenComparison = { @@ -86,7 +87,7 @@ export const resetToken = { compare: function compare(options: { token: string; dbHash: string; - passwordHash: BinaryLike; + passwordHash: HashInput; }): TokenComparison { const tokenToCompare = options?.token; const parts = resetToken.extract({ token: tokenToCompare }); diff --git a/packages/security/test/types.ts b/packages/security/test/types.ts index 200b7bd5e..4743c480a 100644 --- a/packages/security/test/types.ts +++ b/packages/security/test/types.ts @@ -1,4 +1,3 @@ -import type { BinaryLike } from 'node:crypto'; import security = require('../'); import * as namespace from '../'; import { expectTypeOf } from 'vitest'; @@ -15,6 +14,12 @@ expectTypeOf(security.string.safe(null)).toEqualTypeOf(); expectTypeOf( security.tokens.generateFromContent({ content: Buffer.from('content') }), ).toEqualTypeOf(); +expectTypeOf(security.tokens.generateFromContent).parameter(0).toEqualTypeOf<{ + content: string | NodeJS.ArrayBufferView; +}>(); +expectTypeOf().not.toExtend< + Parameters[0]['content'] +>(); expectTypeOf( security.tokens.generateFromEmail({ email: 'test@example.com', @@ -43,12 +48,12 @@ expectTypeOf(security.tokens.resetToken.generateHash).parameter(0).toEqualTypeOf expires: number | string; email: string; dbHash: string; - passwordHash: BinaryLike; + passwordHash: string | NodeJS.ArrayBufferView; }>(); expectTypeOf(security.tokens.resetToken.compare).parameter(0).toEqualTypeOf<{ token: string; dbHash: string; - passwordHash: BinaryLike; + passwordHash: string | NodeJS.ArrayBufferView; }>(); expectTypeOf( security.tokens.resetToken.generateHash({