/opt/canhelp/node_modules/@anthropic-ai/sdk/src/internal
NameSizeModeActions
decoders/-0755rm
utils/-0755rm
builtin-types.ts29100644editdlrm
constants.ts4810644editdlrm
detect-platform.ts64280644editdlrm
errors.ts11790644editdlrm
headers.ts31070644editdlrm
parse.ts29520644editdlrm
README.md1180644editdlrm
request-options.ts24770644editdlrm
shim-types.ts9310644editdlrm
shims.ts35400644editdlrm
stream-utils.ts10320644editdlrm
to-file.ts53820644editdlrm
types.ts61920644editdlrm
uploads.ts72700644editdlrm
utils.ts3020644editdlrm
Edit: /opt/canhelp/node_modules/@anthropic-ai/sdk/src/internal/stream-utils.ts (1032B)
/** * Most browsers don't yet have async iterable support for ReadableStream, * and Node has a very different way of reading bytes from its "ReadableStream". * * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490 */ export function ReadableStreamToAsyncIterable(stream: any): AsyncIterableIterator { if (stream[Symbol.asyncIterator]) return stream; const reader = stream.getReader(); return { async next() { try { const result = await reader.read(); if (result?.done) reader.releaseLock(); // release lock when stream becomes closed return result; } catch (e) { reader.releaseLock(); // release lock when stream becomes errored throw e; } }, async return() { const cancelPromise = reader.cancel(); reader.releaseLock(); await cancelPromise; return { done: true, value: undefined }; }, [Symbol.asyncIterator]() { return this; }, }; }