From a3a904da1450849b51c34a972db4fd9b9a572d29 Mon Sep 17 00:00:00 2001 From: ud2 Date: Mon, 8 Sep 2025 21:05:09 +0800 Subject: [PATCH] fix(dts): specify the underlying buffer type in more places (#30640) --- cli/tsc/dts/lib.deno.ns.d.ts | 2 +- cli/tsc/dts/lib.deno.shared_globals.d.ts | 5 ++++- cli/tsc/dts/lib.deno_crypto.d.ts | 26 +++++++++++++----------- cli/tsc/dts/lib.deno_web.d.ts | 24 ++++++++++++---------- tests/unit/image_bitmap_test.ts | 2 +- tests/unit/webcrypto_test.ts | 4 ++-- 6 files changed, 35 insertions(+), 28 deletions(-) diff --git a/cli/tsc/dts/lib.deno.ns.d.ts b/cli/tsc/dts/lib.deno.ns.d.ts index 7284fab998..9699850181 100644 --- a/cli/tsc/dts/lib.deno.ns.d.ts +++ b/cli/tsc/dts/lib.deno.ns.d.ts @@ -3835,7 +3835,7 @@ declare namespace Deno { * Reads the stream to completion. It returns a promise that resolves with * a `Uint8Array`. */ - bytes(): Promise; + bytes(): Promise>; /** * Reads the stream to completion. It returns a promise that resolves with * the result of parsing the body text as JSON. diff --git a/cli/tsc/dts/lib.deno.shared_globals.d.ts b/cli/tsc/dts/lib.deno.shared_globals.d.ts index 8c49adbe9a..50f7e82e20 100644 --- a/cli/tsc/dts/lib.deno.shared_globals.d.ts +++ b/cli/tsc/dts/lib.deno.shared_globals.d.ts @@ -450,7 +450,10 @@ interface DOMStringList { } /** @category Platform */ -type BufferSource = ArrayBufferView | ArrayBuffer; +type BufferSource = ArrayBufferView | ArrayBuffer; + +/** @category Platform */ +type AllowSharedBufferSource = ArrayBufferView | ArrayBufferLike; /** * A global console object that provides methods for logging, debugging, and error reporting. diff --git a/cli/tsc/dts/lib.deno_crypto.d.ts b/cli/tsc/dts/lib.deno_crypto.d.ts index a05ff35933..0e929410a9 100644 --- a/cli/tsc/dts/lib.deno_crypto.d.ts +++ b/cli/tsc/dts/lib.deno_crypto.d.ts @@ -38,6 +38,8 @@ type KeyUsage = type KeyFormat = "jwk" | "pkcs8" | "raw" | "spki"; /** @category Crypto */ type NamedCurve = string; +/** @category Crypto */ +type BigInteger = Uint8Array; /** @category Crypto */ interface RsaOtherPrimesInfo { @@ -121,7 +123,7 @@ interface RsaHashedKeyGenParams extends RsaKeyGenParams { /** @category Crypto */ interface RsaKeyGenParams extends Algorithm { modulusLength: number; - publicExponent: Uint8Array; + publicExponent: BigInteger; } /** @category Crypto */ @@ -131,7 +133,7 @@ interface RsaPssParams extends Algorithm { /** @category Crypto */ interface RsaOaepParams extends Algorithm { - label?: Uint8Array; + label?: BufferSource; } /** @category Crypto */ @@ -159,7 +161,7 @@ interface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm { /** @category Crypto */ interface RsaKeyAlgorithm extends KeyAlgorithm { modulusLength: number; - publicExponent: Uint8Array; + publicExponent: BigInteger; } /** @category Crypto */ @@ -651,15 +653,15 @@ interface Crypto { */ getRandomValues< T extends - | Int8Array - | Int16Array - | Int32Array - | Uint8Array - | Uint16Array - | Uint32Array - | Uint8ClampedArray - | BigInt64Array - | BigUint64Array, + | Int8Array + | Int16Array + | Int32Array + | Uint8Array + | Uint16Array + | Uint32Array + | Uint8ClampedArray + | BigInt64Array + | BigUint64Array, >( array: T, ): T; diff --git a/cli/tsc/dts/lib.deno_web.d.ts b/cli/tsc/dts/lib.deno_web.d.ts index 08b7040389..b37ab448c0 100644 --- a/cli/tsc/dts/lib.deno_web.d.ts +++ b/cli/tsc/dts/lib.deno_web.d.ts @@ -427,7 +427,7 @@ interface TextDecoder extends TextDecoderCommon { /** Turns binary data, often in the form of a Uint8Array, into a string given * the encoding. */ - decode(input?: BufferSource, options?: TextDecodeOptions): string; + decode(input?: AllowSharedBufferSource, options?: TextDecodeOptions): string; } /** @category Encoding */ @@ -492,7 +492,7 @@ interface TextEncoderCommon { /** @category Encoding */ interface TextDecoderStream extends GenericTransformStream, TextDecoderCommon { readonly readable: ReadableStream; - readonly writable: WritableStream; + readonly writable: WritableStream; } /** @category Encoding */ @@ -503,7 +503,7 @@ declare var TextDecoderStream: { /** @category Encoding */ interface TextEncoderStream extends GenericTransformStream, TextEncoderCommon { - readonly readable: ReadableStream; + readonly readable: ReadableStream>; readonly writable: WritableStream; } @@ -681,9 +681,9 @@ interface Blob { readonly size: number; readonly type: string; arrayBuffer(): Promise; - bytes(): Promise; + bytes(): Promise>; slice(start?: number, end?: number, contentType?: string): Blob; - stream(): ReadableStream; + stream(): ReadableStream>; text(): Promise; } @@ -788,7 +788,9 @@ interface ReadableStreamBYOBReader extends ReadableStreamGenericReader { /** @category Streams */ declare var ReadableStreamBYOBReader: { readonly prototype: ReadableStreamBYOBReader; - new (stream: ReadableStream): ReadableStreamBYOBReader; + new ( + stream: ReadableStream>, + ): ReadableStreamBYOBReader; }; /** @category Streams */ @@ -973,7 +975,7 @@ declare var ReadableStream: { new ( underlyingSource: UnderlyingByteSource, strategy?: { highWaterMark?: number }, - ): ReadableStream; + ): ReadableStream>; new ( underlyingSource: UnderlyingDefaultSource, strategy?: QueuingStrategy, @@ -1353,7 +1355,7 @@ declare function structuredClone( * @category Streams */ interface CompressionStream extends GenericTransformStream { - readonly readable: ReadableStream; + readonly readable: ReadableStream>; readonly writable: WritableStream; } @@ -1400,7 +1402,7 @@ declare var CompressionStream: { * @category Streams */ interface DecompressionStream extends GenericTransformStream { - readonly readable: ReadableStream; + readonly readable: ReadableStream>; readonly writable: WritableStream; } @@ -1463,7 +1465,7 @@ interface ImageDataSettings { /** @category Platform */ interface ImageData { readonly colorSpace: PredefinedColorSpace; - readonly data: Uint8ClampedArray; + readonly data: Uint8ClampedArray; readonly height: number; readonly width: number; } @@ -1473,7 +1475,7 @@ declare var ImageData: { readonly prototype: ImageData; new (sw: number, sh: number, settings?: ImageDataSettings): ImageData; new ( - data: Uint8ClampedArray, + data: Uint8ClampedArray, sw: number, sh?: number, settings?: ImageDataSettings, diff --git a/tests/unit/image_bitmap_test.ts b/tests/unit/image_bitmap_test.ts index 297727a6f1..2da6d73d62 100644 --- a/tests/unit/image_bitmap_test.ts +++ b/tests/unit/image_bitmap_test.ts @@ -4,7 +4,7 @@ import { assertEquals, assertRejects } from "./test_util.ts"; const prefix = "tests/testdata/image"; -function generateNumberedData(n: number): Uint8ClampedArray { +function generateNumberedData(n: number): Uint8ClampedArray { return new Uint8ClampedArray( Array.from({ length: n }, (_, i) => [i + 1, 0, 0, 1]).flat(), ); diff --git a/tests/unit/webcrypto_test.ts b/tests/unit/webcrypto_test.ts index 9f9963c9e9..34844c89ff 100644 --- a/tests/unit/webcrypto_test.ts +++ b/tests/unit/webcrypto_test.ts @@ -717,9 +717,9 @@ Deno.test(async function testAesCbcEncryptDecrypt() { Deno.test(async function testAesCtrEncryptDecrypt() { async function aesCtrRoundTrip( key: CryptoKey, - counter: Uint8Array, + counter: Uint8Array, length: number, - plainText: Uint8Array, + plainText: Uint8Array, ) { const cipherText = await crypto.subtle.encrypt( {