| | |
| | | declare module 'stream/web' { |
| | | // stub module, pending copy&paste from .d.ts or manual impl |
| | | // copy from lib.dom.d.ts |
| | | interface ReadableWritablePair<R = any, W = any> { |
| | | readable: ReadableStream<R>; |
| | | /** |
| | | * Provides a convenient, chainable way of piping this readable stream |
| | | * through a transform stream (or any other { writable, readable } |
| | | * pair). It simply pipes the stream into the writable side of the |
| | | * supplied pair, and returns the readable side for further use. |
| | | * |
| | | * Piping a stream will lock it for the duration of the pipe, preventing |
| | | * any other consumer from acquiring a reader. |
| | | */ |
| | | writable: WritableStream<W>; |
| | | } |
| | | interface StreamPipeOptions { |
| | | preventAbort?: boolean; |
| | | preventCancel?: boolean; |
| | | /** |
| | | * Pipes this readable stream to a given writable stream destination. |
| | | * The way in which the piping process behaves under various error |
| | | * conditions can be customized with a number of passed options. It |
| | | * returns a promise that fulfills when the piping process completes |
| | | * successfully, or rejects if any errors were encountered. |
| | | * |
| | | * Piping a stream will lock it for the duration of the pipe, preventing |
| | | * any other consumer from acquiring a reader. |
| | | * |
| | | * Errors and closures of the source and destination streams propagate |
| | | * as follows: |
| | | * |
| | | * An error in this source readable stream will abort destination, |
| | | * unless preventAbort is truthy. The returned promise will be rejected |
| | | * with the source's error, or with any error that occurs during |
| | | * aborting the destination. |
| | | * |
| | | * An error in destination will cancel this source readable stream, |
| | | * unless preventCancel is truthy. The returned promise will be rejected |
| | | * with the destination's error, or with any error that occurs during |
| | | * canceling the source. |
| | | * |
| | | * When this source readable stream closes, destination will be closed, |
| | | * unless preventClose is truthy. The returned promise will be fulfilled |
| | | * once this process completes, unless an error is encountered while |
| | | * closing the destination, in which case it will be rejected with that |
| | | * error. |
| | | * |
| | | * If destination starts out closed or closing, this source readable |
| | | * stream will be canceled, unless preventCancel is true. The returned |
| | | * promise will be rejected with an error indicating piping to a closed |
| | | * stream failed, or with any error that occurs during canceling the |
| | | * source. |
| | | * |
| | | * The signal option can be set to an AbortSignal to allow aborting an |
| | | * ongoing pipe operation via the corresponding AbortController. In this |
| | | * case, this source readable stream will be canceled, and destination |
| | | * aborted, unless the respective options preventCancel or preventAbort |
| | | * are set. |
| | | */ |
| | | preventClose?: boolean; |
| | | signal?: AbortSignal; |
| | | } |
| | | interface ReadableStreamGenericReader { |
| | | readonly closed: Promise<undefined>; |
| | | cancel(reason?: any): Promise<void>; |
| | | } |
| | | interface ReadableStreamDefaultReadValueResult<T> { |
| | | done: false; |
| | | value: T; |
| | | } |
| | | interface ReadableStreamDefaultReadDoneResult { |
| | | done: true; |
| | | value?: undefined; |
| | | } |
| | | type ReadableStreamController<T> = ReadableStreamDefaultController<T>; |
| | | type ReadableStreamDefaultReadResult<T> = ReadableStreamDefaultReadValueResult<T> | ReadableStreamDefaultReadDoneResult; |
| | | interface ReadableByteStreamControllerCallback { |
| | | (controller: ReadableByteStreamController): void | PromiseLike<void>; |
| | | } |
| | | interface UnderlyingSinkAbortCallback { |
| | | (reason?: any): void | PromiseLike<void>; |
| | | } |
| | | interface UnderlyingSinkCloseCallback { |
| | | (): void | PromiseLike<void>; |
| | | } |
| | | interface UnderlyingSinkStartCallback { |
| | | (controller: WritableStreamDefaultController): any; |
| | | } |
| | | interface UnderlyingSinkWriteCallback<W> { |
| | | (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike<void>; |
| | | } |
| | | interface UnderlyingSourceCancelCallback { |
| | | (reason?: any): void | PromiseLike<void>; |
| | | } |
| | | interface UnderlyingSourcePullCallback<R> { |
| | | (controller: ReadableStreamController<R>): void | PromiseLike<void>; |
| | | } |
| | | interface UnderlyingSourceStartCallback<R> { |
| | | (controller: ReadableStreamController<R>): any; |
| | | } |
| | | interface TransformerFlushCallback<O> { |
| | | (controller: TransformStreamDefaultController<O>): void | PromiseLike<void>; |
| | | } |
| | | interface TransformerStartCallback<O> { |
| | | (controller: TransformStreamDefaultController<O>): any; |
| | | } |
| | | interface TransformerTransformCallback<I, O> { |
| | | (chunk: I, controller: TransformStreamDefaultController<O>): void | PromiseLike<void>; |
| | | } |
| | | interface UnderlyingByteSource { |
| | | autoAllocateChunkSize?: number; |
| | | cancel?: ReadableStreamErrorCallback; |
| | | pull?: ReadableByteStreamControllerCallback; |
| | | start?: ReadableByteStreamControllerCallback; |
| | | type: 'bytes'; |
| | | } |
| | | interface UnderlyingSource<R = any> { |
| | | cancel?: UnderlyingSourceCancelCallback; |
| | | pull?: UnderlyingSourcePullCallback<R>; |
| | | start?: UnderlyingSourceStartCallback<R>; |
| | | type?: undefined; |
| | | } |
| | | interface UnderlyingSink<W = any> { |
| | | abort?: UnderlyingSinkAbortCallback; |
| | | close?: UnderlyingSinkCloseCallback; |
| | | start?: UnderlyingSinkStartCallback; |
| | | type?: undefined; |
| | | write?: UnderlyingSinkWriteCallback<W>; |
| | | } |
| | | interface ReadableStreamErrorCallback { |
| | | (reason: any): void | PromiseLike<void>; |
| | | } |
| | | /** This Streams API interface represents a readable stream of byte data. */ |
| | | interface ReadableStream<R = any> { |
| | | readonly locked: boolean; |
| | | cancel(reason?: any): Promise<void>; |
| | | getReader(): ReadableStreamDefaultReader<R>; |
| | | pipeThrough<T>(transform: ReadableWritablePair<T, R>, options?: StreamPipeOptions): ReadableStream<T>; |
| | | pipeTo(destination: WritableStream<R>, options?: StreamPipeOptions): Promise<void>; |
| | | tee(): [ReadableStream<R>, ReadableStream<R>]; |
| | | values(options?: { preventCancel?: boolean }): AsyncIterableIterator<R>; |
| | | [Symbol.asyncIterator](): AsyncIterableIterator<R>; |
| | | } |
| | | const ReadableStream: { |
| | | prototype: ReadableStream; |
| | | new (underlyingSource: UnderlyingByteSource, strategy?: QueuingStrategy<Uint8Array>): ReadableStream<Uint8Array>; |
| | | new <R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>; |
| | | }; |
| | | interface ReadableStreamDefaultReader<R = any> extends ReadableStreamGenericReader { |
| | | read(): Promise<ReadableStreamDefaultReadResult<R>>; |
| | | releaseLock(): void; |
| | | } |
| | | const ReadableStreamDefaultReader: { |
| | | prototype: ReadableStreamDefaultReader; |
| | | new <R = any>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>; |
| | | }; |
| | | const ReadableStreamBYOBReader: any; |
| | | const ReadableStreamBYOBRequest: any; |
| | | interface ReadableByteStreamController { |
| | | readonly byobRequest: undefined; |
| | | readonly desiredSize: number | null; |
| | | close(): void; |
| | | enqueue(chunk: ArrayBufferView): void; |
| | | error(error?: any): void; |
| | | } |
| | | const ReadableByteStreamController: { |
| | | prototype: ReadableByteStreamController; |
| | | new (): ReadableByteStreamController; |
| | | }; |
| | | interface ReadableStreamDefaultController<R = any> { |
| | | readonly desiredSize: number | null; |
| | | close(): void; |
| | | enqueue(chunk?: R): void; |
| | | error(e?: any): void; |
| | | } |
| | | const ReadableStreamDefaultController: { |
| | | prototype: ReadableStreamDefaultController; |
| | | new (): ReadableStreamDefaultController; |
| | | }; |
| | | interface Transformer<I = any, O = any> { |
| | | flush?: TransformerFlushCallback<O>; |
| | | readableType?: undefined; |
| | | start?: TransformerStartCallback<O>; |
| | | transform?: TransformerTransformCallback<I, O>; |
| | | writableType?: undefined; |
| | | } |
| | | interface TransformStream<I = any, O = any> { |
| | | readonly readable: ReadableStream<O>; |
| | | readonly writable: WritableStream<I>; |
| | | } |
| | | const TransformStream: { |
| | | prototype: TransformStream; |
| | | new <I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>; |
| | | }; |
| | | interface TransformStreamDefaultController<O = any> { |
| | | readonly desiredSize: number | null; |
| | | enqueue(chunk?: O): void; |
| | | error(reason?: any): void; |
| | | terminate(): void; |
| | | } |
| | | const TransformStreamDefaultController: { |
| | | prototype: TransformStreamDefaultController; |
| | | new (): TransformStreamDefaultController; |
| | | }; |
| | | /** |
| | | * This Streams API interface provides a standard abstraction for writing |
| | | * streaming data to a destination, known as a sink. This object comes with |
| | | * built-in back pressure and queuing. |
| | | */ |
| | | interface WritableStream<W = any> { |
| | | readonly locked: boolean; |
| | | abort(reason?: any): Promise<void>; |
| | | close(): Promise<void>; |
| | | getWriter(): WritableStreamDefaultWriter<W>; |
| | | } |
| | | const WritableStream: { |
| | | prototype: WritableStream; |
| | | new <W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>; |
| | | }; |
| | | /** |
| | | * This Streams API interface is the object returned by |
| | | * WritableStream.getWriter() and once created locks the < writer to the |
| | | * WritableStream ensuring that no other streams can write to the underlying |
| | | * sink. |
| | | */ |
| | | interface WritableStreamDefaultWriter<W = any> { |
| | | readonly closed: Promise<undefined>; |
| | | readonly desiredSize: number | null; |
| | | readonly ready: Promise<undefined>; |
| | | abort(reason?: any): Promise<void>; |
| | | close(): Promise<void>; |
| | | releaseLock(): void; |
| | | write(chunk?: W): Promise<void>; |
| | | } |
| | | const WritableStreamDefaultWriter: { |
| | | prototype: WritableStreamDefaultWriter; |
| | | new <W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>; |
| | | }; |
| | | /** |
| | | * This Streams API interface represents a controller allowing control of a |
| | | * WritableStream's state. When constructing a WritableStream, the |
| | | * underlying sink is given a corresponding WritableStreamDefaultController |
| | | * instance to manipulate. |
| | | */ |
| | | interface WritableStreamDefaultController { |
| | | error(e?: any): void; |
| | | } |
| | | const WritableStreamDefaultController: { |
| | | prototype: WritableStreamDefaultController; |
| | | new (): WritableStreamDefaultController; |
| | | }; |
| | | interface QueuingStrategy<T = any> { |
| | | highWaterMark?: number; |
| | | size?: QueuingStrategySize<T>; |
| | | } |
| | | interface QueuingStrategySize<T = any> { |
| | | (chunk?: T): number; |
| | | } |
| | | interface QueuingStrategyInit { |
| | | /** |
| | | * Creates a new ByteLengthQueuingStrategy with the provided high water |
| | | * mark. |
| | | * |
| | | * Note that the provided high water mark will not be validated ahead of |
| | | * time. Instead, if it is negative, NaN, or not a number, the resulting |
| | | * ByteLengthQueuingStrategy will cause the corresponding stream |
| | | * constructor to throw. |
| | | */ |
| | | highWaterMark: number; |
| | | } |
| | | /** |
| | | * This Streams API interface provides a built-in byte length queuing |
| | | * strategy that can be used when constructing streams. |
| | | */ |
| | | interface ByteLengthQueuingStrategy extends QueuingStrategy<ArrayBufferView> { |
| | | readonly highWaterMark: number; |
| | | readonly size: QueuingStrategySize<ArrayBufferView>; |
| | | } |
| | | const ByteLengthQueuingStrategy: { |
| | | prototype: ByteLengthQueuingStrategy; |
| | | new (init: QueuingStrategyInit): ByteLengthQueuingStrategy; |
| | | }; |
| | | /** |
| | | * This Streams API interface provides a built-in byte length queuing |
| | | * strategy that can be used when constructing streams. |
| | | */ |
| | | interface CountQueuingStrategy extends QueuingStrategy { |
| | | readonly highWaterMark: number; |
| | | readonly size: QueuingStrategySize; |
| | | } |
| | | const CountQueuingStrategy: { |
| | | prototype: CountQueuingStrategy; |
| | | new (init: QueuingStrategyInit): CountQueuingStrategy; |
| | | }; |
| | | interface TextEncoderStream { |
| | | /** Returns "utf-8". */ |
| | | readonly encoding: 'utf-8'; |
| | | readonly readable: ReadableStream<Uint8Array>; |
| | | readonly writable: WritableStream<string>; |
| | | readonly [Symbol.toStringTag]: string; |
| | | } |
| | | const TextEncoderStream: { |
| | | prototype: TextEncoderStream; |
| | | new (): TextEncoderStream; |
| | | }; |
| | | interface TextDecoderOptions { |
| | | fatal?: boolean; |
| | | ignoreBOM?: boolean; |
| | | } |
| | | type BufferSource = ArrayBufferView | ArrayBuffer; |
| | | interface TextDecoderStream { |
| | | /** Returns encoding's name, lower cased. */ |
| | | readonly encoding: string; |
| | | /** Returns `true` if error mode is "fatal", and `false` otherwise. */ |
| | | readonly fatal: boolean; |
| | | /** Returns `true` if ignore BOM flag is set, and `false` otherwise. */ |
| | | readonly ignoreBOM: boolean; |
| | | readonly readable: ReadableStream<string>; |
| | | readonly writable: WritableStream<BufferSource>; |
| | | readonly [Symbol.toStringTag]: string; |
| | | } |
| | | const TextDecoderStream: { |
| | | prototype: TextDecoderStream; |
| | | new (label?: string, options?: TextDecoderOptions): TextDecoderStream; |
| | | }; |
| | | } |
| | | declare module 'node:stream/web' { |
| | | export * from 'stream/web'; |