{"version":3,"sources":["../../src/streaming/source.ts"],"sourcesContent":["import { IOStreamSource, StreamChunk } from './types';\r\n\r\n/** Convert common stream sources into an AsyncIterable of chunks. */\r\nexport async function* toAsyncIterable(source: IOStreamSource): AsyncIterable<StreamChunk> {\r\n  // String (treat as single chunk)\r\n  if (typeof source === 'string') {\r\n    yield source;\r\n    return;\r\n  }\r\n\r\n  // Iterable (Synchronous) - arrays, generators\r\n  // Check this BEFORE AsyncIterable because some AsyncIterables might also implement Iterator (though rare/bad practice)\r\n  // But actually, we prefer AsyncIterable interpretation if both exist.\r\n  // However, simple Arrays are Iterable but not AsyncIterable.\r\n  if (isIterable(source) && !isAsyncIterable(source)) {\r\n    for (const chunk of source) {\r\n      yield chunk;\r\n    }\r\n    return;\r\n  }\r\n\r\n  // Web ReadableStream\r\n  if (isWebReadableStream(source)) {\r\n    const reader = source.getReader();\r\n    try {\r\n      while (true) {\r\n        const { value, done } = await reader.read();\r\n        if (done) return;\r\n        if (value) yield value;\r\n      }\r\n    } finally {\r\n      try { reader.releaseLock(); } catch { /* noop */ }\r\n    }\r\n  }\r\n\r\n  // AsyncIterable (Node Readable streams are async iterable)\r\n  if (isAsyncIterable(source)) {\r\n    for await (const chunk of source as any) {\r\n      yield chunk as any;\r\n    }\r\n    return;\r\n  }\r\n\r\n  throw new Error('Unsupported stream source type. Provide an AsyncIterable or a ReadableStream.');\r\n}\r\n\r\nfunction isAsyncIterable(x: any): x is AsyncIterable<any> {\r\n  return x && typeof x[Symbol.asyncIterator] === 'function';\r\n}\r\n\r\nfunction isIterable(x: any): x is Iterable<any> {\r\n  return x && typeof x[Symbol.iterator] === 'function';\r\n}\r\n\r\nfunction isWebReadableStream(x: any): x is ReadableStream<Uint8Array> {\r\n  return x && typeof x.getReader === 'function';\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,gBAAuB,gBAAgB,QAAoD;AAEzF,MAAI,OAAO,WAAW,UAAU;AAC9B,UAAM;AACN;AAAA,EACF;AAMA,MAAI,WAAW,MAAM,KAAK,CAAC,gBAAgB,MAAM,GAAG;AAClD,eAAW,SAAS,QAAQ;AAC1B,YAAM;AAAA,IACR;AACA;AAAA,EACF;AAGA,MAAI,oBAAoB,MAAM,GAAG;AAC/B,UAAM,SAAS,OAAO,UAAU;AAChC,QAAI;AACF,aAAO,MAAM;AACX,cAAM,EAAE,OAAO,KAAK,IAAI,MAAM,OAAO,KAAK;AAC1C,YAAI,KAAM;AACV,YAAI,MAAO,OAAM;AAAA,MACnB;AAAA,IACF,UAAE;AACA,UAAI;AAAE,eAAO,YAAY;AAAA,MAAG,QAAQ;AAAA,MAAa;AAAA,IACnD;AAAA,EACF;AAGA,MAAI,gBAAgB,MAAM,GAAG;AAC3B,qBAAiB,SAAS,QAAe;AACvC,YAAM;AAAA,IACR;AACA;AAAA,EACF;AAEA,QAAM,IAAI,MAAM,+EAA+E;AACjG;AAEA,SAAS,gBAAgB,GAAiC;AACxD,SAAO,KAAK,OAAO,EAAE,OAAO,aAAa,MAAM;AACjD;AAEA,SAAS,WAAW,GAA4B;AAC9C,SAAO,KAAK,OAAO,EAAE,OAAO,QAAQ,MAAM;AAC5C;AAEA,SAAS,oBAAoB,GAAyC;AACpE,SAAO,KAAK,OAAO,EAAE,cAAc;AACrC;","names":[]}