NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #842 most downloaded on npm
Web Streams, based on the WHATWG spec reference implementation
Last release 4 months ago
15 May 2026
Release timing varies
gaps range from 2 weeks to 1.6 years
Most releases are documented
notes for 24 of 34 stable releases
1 version withdrawn
withdrawn after publishing
11 years old
38 releases · first in 2016
🚀 Optimize reading from a ReadableStream with buffered chunks.
ReadableStream with buffered chunks. (#170)
defaultReader.read() and byobReader.read(view)Promise.resolve().new Promise and then immediately resolving it.ReadableStream with buffered chunks. (#170)
pipeTo() will now read all available chunks👓 Align with spec version 080852c
One column per quarter.
080852c (#161)👓 Align with spec version fa4891a
fa4891a (#156)
Object.prototype.then, which broke some internal invariants.next() and return() methods of ReadableStream's async iterator are now correctly "chained", such that the promises returned by either of these methods are always resolved in the same order as those methods were called.WritableStreamDefaultController.signal. (#157)💥 Rework the list of variants to have more modern defaults. The table below shows how to upgrade your v3 import to their equivalent v4 import. See the
import or require() a variant.moduleResolution must be set to "node16", "nodenext" or "bundler".ReadableStream.from() implementation to avoid depending on async function* down-leveling for ES5. (#144)| v3 import | v4 import | description |
|---|---|---|
web-streams-polyfill |
web-streams-polyfill/polyfill/es5 |
ES5+ polyfill |
web-streams-polyfill/es6 |
web-streams-polyfill/polyfill |
ES2015+ polyfill |
web-streams-polyfill/es2018 |
web-streams-polyfill/polyfill |
ES2015+ polyfill |
web-streams-polyfill/ponyfill |
web-streams-polyfill/es5 |
ES5+ ponyfill |
web-streams-polyfill/ponyfill/es6 |
web-streams-polyfill |
ES2015+ ponyfill |
web-streams-polyfill/ponyfill/es2018 |
web-streams-polyfill |
ES2015+ ponyfill |
👓 Align with spec version e9355ce . ( #115 , #117 )
e9355ce. (#115, #117)pipeTo() never rejecting when aborting its signal and preventCancel is set to true. (#118, #119)🚀 Support calling ReadableStream.pipeTo(writable) and .pipeThrough({ readable, writable }) when writable is a native (i.e. not polyfilled) WritableStr
ReadableStream.pipeTo(writable) and .pipeThrough({ readable, writable }) when writable is a native (i.e. not polyfilled) WritableStream. (#99, #101)💥 Rework the list of variants to have more modern defaults. The table below shows how to upgrade your v3 import to their equivalent v4 import. See the
| v3 import | v4 import | description |
|---|---|---|
web-streams-polyfill |
web-streams-polyfill/polyfill/es5 |
ES5+ polyfill |
web-streams-polyfill/es6 |
web-streams-polyfill/polyfill |
ES2015+ polyfill |
web-streams-polyfill/es2018 |
web-streams-polyfill/polyfill |
ES2015+ polyfill |
web-streams-polyfill/ponyfill |
web-streams-polyfill/es5 |
ES5+ ponyfill |
web-streams-polyfill/ponyfill/es6 |
web-streams-polyfill |
ES2015+ ponyfill |
web-streams-polyfill/ponyfill/es2018 |
web-streams-polyfill |
ES2015+ ponyfill |
🐛 Fix ReadableStream to match TypeScript's AsyncIterable<R> type. ( #141 , #142 )
🐛 Fix bad publish to npm.
🐛 Revert engines bump in package.json . ( #137 , #138 )
🚀 Added global augmentations for ReadableStream to the polyfill's type definitions.
ReadableStream to the polyfill's type definitions. (#130)
ReadableStream.prototype[Symbol.asyncIterator](), even when TypeScript doesn't yet have a built-in type definition for them.4dc123a (#115, #134)
ReadableStream.from(asyncIterable), which creates a ReadableStream wrapping the given iterable or async iterable. This can also be used to wrap a native ReadableStream (e.g. a Response.body from fetch()), even if the native ReadableStream doesn't yet support async iteration. (#135)Transformer.cancel method, which is called when the readable side of a TransformStream is cancelled or when its writable side is aborted.min option to ReadableStreamBYOBReader.read(view, options).AbortSignal.reason when aborting a pipe.ReadableStreamBYOBReader.read(view) will now be correctly transferred if either ArrayBuffer.prototype.transfer() or structuredClone() is available. (#136)DOMException polyfill. (#133)🐛 Fix an error in very old browsers where Function.name is non-configurable.
Function.name is non-configurable. (#112)👎 Deprecate WritableStreamDefaultController.abortReason
WritableStreamDefaultController.abortReason (#102)
WritableStreamDefaultController.signal.reason instead.4b6b93c (#103)🐛 Fix compatibility with TypeScript's DOM types for ReadableStream and TransformStream (#85, #86)
🚀 Calling ReadableStream.tee() on a readable byte stream now returns two readable byte streams.
ReadableStream.tee() on a readable byte stream now returns two readable byte streams. (#81)WritableStreamDefaultController.signal and .abortReason. (#81)
.signal requires a global AbortController constructor to be available. If necessary, use a polyfill.cada812 (#79, #81)💅 Change Promise to Promise in TypeScript type definitions
Promise<void> to Promise<undefined> in TypeScript type definitions (#72)ReadableStream.tee() resolving its cancel() promise too early (#73)6762cdb (#73)👓 Align with spec version `200c971`
200c971 (#69)📝 Add documentation to type definitions
6cd5e81 (#63)reader.closed when it was already resolved/rejected (#66, #67)💥 Align with spec version `62fe4c8` (#52, #57, #59) This includes the following breaking changes:
62fe4c8 (#52, #57, #59)ReadableStreamDefaultControllerReadableByteStreamControllerReadableStreamBYOBRequestReadableStreamDefaultReaderReadableStreamBYOBReaderWritableStreamDefaultControllerWritableStreamDefaultWriterTransformStreamDefaultControllerReadableStream.getIterator() is renamed to ReadableStream.values()ReadableByteStreamController.byobRequest can be null (instead of undefined) if there is no current BYOB request.ReadableStreamBYOBRequest.view can be null (instead of undefined) if the BYOB request has already been responded to.new ReadableStream(null) would previously behave like new ReadableStream({}), but now it throws a TypeError instead.ReadableStream now behaves more like an async generator, e.g. returning promises fulfilled with { value: undefined, done: true } after return()ing the iterator, instead of returning a rejected promise.PipeOptions is renamed to StreamPipeOptionsReadResult is replaced by ReadableStreamDefaultReadResult and ReadableStreamBYOBReadResultReadableStreamDefaultControllerCallback is replaced by UnderlyingSourceStartCallback and UnderlyingSourcePullCallbackReadableByteStreamControllerCallback is replaced by UnderlyingByteSourceStartCallback and UnderlyingByteSourcePullCallbackReadableStreamErrorCallback is renamed to UnderlyingSourceCancelCallbackWritableStreamDefaultControllerStartCallback is renamed to UnderlyingSinkStartCallbackWritableStreamDefaultControllerWriteCallback is renamed to UnderlyingSinkWriteCallbackWritableStreamDefaultControllerCloseCallback is renamed to UnderlyingSinkCloseCallbackWritableStreamErrorCallback is renamed to UnderlyingSinkAbortCallbackTransformStreamDefaultControllerCallback is replaced by TransformerStartCallback and TransformerFlushCallbackTransformStreamDefaultControllerTransformCallback is renamed to TransformerTransformCallback💅 Improve ReadResult in TypeScript type definitions. (759506e, #49)
👓 Align with spec version `ed00d2f` (#43, #44)
ed00d2f (#43, #44)🐛 Fix type definitions to be compatible with TypeScript 3.3 and lower. (#39, #40)
👓 Align with spec version `ae5e0cb`
ae5e0cb (#33)🐛 Fix pipe not aborting when both preventAbort and preventCancel are set
preventAbort and preventCancel are set (#31)e4d3b1a (#31)👓 Align with spec version `6f94580`
6f94580 (#21)💅 Improve performance of reader.read() and writer.write() (#17, #18)
🐛 Fix performance issue with large queues (#15, #16)
💥 @mattiasbuelens/web-streams-polyfill has been republished as web-streams-polyfill. Other than the name change, this release is identical to v0.3.2.
💥 Ownership change: @mattiasbuelens/web-streams-polyfill has been republished as web-streams-polyfill. For the full list of changes between web-streams-polyfill v1.3.2 and this version, visit the fork's changelog.
💥 CommonJS entry points have been moved to dist/:
index.js ➡ dist/polyfill.jsindex.es6.js ➡ dist/polyfill.es6.jsHowever, we recommend migrating to a variant sub-package instead:
require('web-streams-polyfill/index.js') ➡ require('web-streams-polyfill')require('web-streams-polyfill/index.es6.js') ➡ require('web-streams-polyfill/es6')👓 Align with spec version 2c8f35e
🏠 Code moved from creatorrr/web-streams-polyfill to MattiasBuelens/web-streams-polyfill
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →