From ccb9c81c240f22ff75fe60a036c3870bf4fb78fa Mon Sep 17 00:00:00 2001 From: Chris Couzens Date: Thu, 7 May 2026 17:16:30 +0100 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#74872=20webidl?= =?UTF-8?q?2=20namespace=20members=20constant=20types=20by=20@ccouzens?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- types/webidl2/index.d.ts | 6 ++---- types/webidl2/webidl2-tests.ts | 14 ++++++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/types/webidl2/index.d.ts b/types/webidl2/index.d.ts index 5d841ead080d99..550556e1cb03e2 100644 --- a/types/webidl2/index.d.ts +++ b/types/webidl2/index.d.ts @@ -27,7 +27,7 @@ export type IDLInterfaceMemberType = export type IDLInterfaceMixinMemberType = AttributeMemberType | ConstantMemberType | OperationMemberType; -export type IDLNamespaceMemberType = AttributeMemberType | OperationMemberType; +export type IDLNamespaceMemberType = AttributeMemberType | ConstantMemberType | OperationMemberType; export type IDLTypeDescription = GenericTypeDescription | SingleTypeDescription | UnionTypeDescription; @@ -388,15 +388,13 @@ export interface AttributeMemberType extends AbstractBase { export interface ConstantMemberType extends AbstractBase { type: "const"; - /** Whether its type is nullable. */ - nullable: boolean; /** An IDL Type of the constant that represents a simple type, the type name. */ idlType: IDLTypeDescription; /** The name of the constant. */ name: string; /** The constant value */ value: ValueDescription; - parent: CallbackInterfaceType | InterfaceMixinType | InterfaceType; + parent: CallbackInterfaceType | InterfaceMixinType | InterfaceType | NamespaceType; } interface AbstractDeclarationMemberType extends AbstractBase { diff --git a/types/webidl2/webidl2-tests.ts b/types/webidl2/webidl2-tests.ts index be7ca2d6110f30..1105b9d5497135 100644 --- a/types/webidl2/webidl2-tests.ts +++ b/types/webidl2/webidl2-tests.ts @@ -112,7 +112,7 @@ function logInterfaceMember(member: webidl2.IDLInterfaceMemberType) { case "const": member; // $ExpectType ConstantMemberType - member.parent; // $ExpectType CallbackInterfaceType | InterfaceMixinType | InterfaceType + member.parent; // $ExpectType CallbackInterfaceType | InterfaceMixinType | InterfaceType | NamespaceType logInterfaceMixinMember(member); break; @@ -178,7 +178,7 @@ function logInterfaceMixinMember(member: webidl2.IDLInterfaceMixinMemberType) { case "const": member; // $ExpectType ConstantMemberType - member.parent; // $ExpectType CallbackInterfaceType | InterfaceMixinType | InterfaceType + member.parent; // $ExpectType CallbackInterfaceType | InterfaceMixinType | InterfaceType | NamespaceType logCallbackInterfaceMember(member); break; @@ -205,11 +205,10 @@ function logCallbackInterfaceMember(member: webidl2.IDLCallbackInterfaceMemberTy case "const": member; // $ExpectType ConstantMemberType - member.parent; // $ExpectType CallbackInterfaceType | InterfaceMixinType | InterfaceType + member.parent; // $ExpectType CallbackInterfaceType | InterfaceMixinType | InterfaceType | NamespaceType console.log(member.name); logIdlType(member.idlType); logValueDescription(member.value); - console.log(member.nullable); break; default: @@ -241,6 +240,13 @@ function logNamespaceMember(member: webidl2.IDLNamespaceMemberType) { console.log(member.name); console.log(member.special, member.readonly, member.inherit); break; + case "const": + member; // $ExpectType ConstantMemberType + member.parent; // $ExpectType CallbackInterfaceType | InterfaceMixinType | InterfaceType | NamespaceType + console.log(member.name); + logIdlType(member.idlType); + logValueDescription(member.value); + break; default: member; // $ExpectType never From e52fdc84a8513227bc4106236457782a9c7b7765 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9?= Date: Thu, 7 May 2026 17:46:57 +0100 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#74944=20[node]?= =?UTF-8?q?=20webstreams:=20restore=20TransformStream=20transformer=20canc?= =?UTF-8?q?el=20callback=20by=20@Renegade334?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- types/node/node-tests/stream-web.ts | 9 +++++++++ types/node/stream/web.d.ts | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/types/node/node-tests/stream-web.ts b/types/node/node-tests/stream-web.ts index 044fd3c069a34a..b307aabcc1ffee 100644 --- a/types/node/node-tests/stream-web.ts +++ b/types/node/node-tests/stream-web.ts @@ -101,3 +101,12 @@ async function queuingStrategySizeReceivesTheChunk() { assert.deepStrictEqual(result, { done: false, value: "size" }); assert.deepStrictEqual(sizeChunks, ["size"]); } + +// Transformer's `cancel` callback, absent from @types/web +{ + new TransformStream({ + cancel(reason) { + reason; // $ExpectType any + }, + }); +} diff --git a/types/node/stream/web.d.ts b/types/node/stream/web.d.ts index 13d55a0626ba25..84d3811c27481f 100644 --- a/types/node/stream/web.d.ts +++ b/types/node/stream/web.d.ts @@ -52,12 +52,16 @@ declare module "node:stream/web" { signal?: AbortSignal; } interface Transformer { + cancel?: TransformerCancelCallback; flush?: TransformerFlushCallback; readableType?: undefined; start?: TransformerStartCallback; transform?: TransformerTransformCallback; writableType?: undefined; } + interface TransformerCancelCallback { + (reason: any): void | PromiseLike; + } interface TransformerFlushCallback { (controller: TransformStreamDefaultController): void | PromiseLike; }