@ziplayer/plugin 0.1.33 → 0.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.YouTubePlugin = void 0;
4
4
  const ziplayer_1 = require("ziplayer");
5
5
  const youtubei_js_1 = require("youtubei.js");
6
+ const sabr_stream_factory_1 = require("./utils/sabr-stream-factory");
7
+ const stream_converter_1 = require("./utils/stream-converter");
6
8
  /**
7
9
  * A plugin for handling YouTube audio content including videos, playlists, and search functionality.
8
10
  *
@@ -40,24 +42,35 @@ class YouTubePlugin extends ziplayer_1.BasePlugin {
40
42
  * const plugin = new YouTubePlugin();
41
43
  * // Plugin is ready to use after initialization completes
42
44
  */
43
- constructor() {
45
+ constructor(options) {
44
46
  super();
45
47
  this.name = "youtube";
46
48
  this.version = "1.0.0";
49
+ this.player = options?.player ?? undefined;
50
+ this.options = options ?? {};
47
51
  this.ready = this.init();
48
52
  }
49
53
  async init() {
50
- this.client = await youtubei_js_1.Innertube.create({
51
- client_type: "ANDROID",
52
- retrieve_player: false,
53
- });
54
+ this.client =
55
+ this.options.client ??
56
+ (await youtubei_js_1.Innertube.create({
57
+ client_type: "ANDROID",
58
+ retrieve_player: false,
59
+ }));
54
60
  // Use a separate web client for search to avoid mobile parser issues
55
- this.searchClient = await youtubei_js_1.Innertube.create({
56
- client_type: "WEB",
57
- retrieve_player: false,
58
- });
61
+ this.searchClient =
62
+ this.options.searchClient ??
63
+ (await youtubei_js_1.Innertube.create({
64
+ client_type: "WEB",
65
+ retrieve_player: false,
66
+ }));
59
67
  youtubei_js_1.Log.setLevel(0);
60
68
  }
69
+ debug(message, ...optionalParams) {
70
+ if (this.options?.debug && this?.player && this.player?.listenerCount("debug") > 0) {
71
+ this.player.emit("debug", `[YouTubePlugin] ${message}`, ...optionalParams);
72
+ }
73
+ }
61
74
  // Build a Track from various YouTube object shapes (search item, playlist item, watch_next feed, basic_info, info)
62
75
  buildTrack(raw, requestedBy, extra) {
63
76
  const pickFirst = (...vals) => vals.find((v) => v !== undefined && v !== null && v !== "");
@@ -70,6 +83,15 @@ class YouTubePlugin extends ziplayer_1.BasePlugin {
70
83
  const author = pickFirst(raw?.author?.name, raw?.author, raw?.channel?.name, raw?.owner?.name, raw?.basic_info?.author);
71
84
  const views = pickFirst(raw?.view_count, raw?.views, raw?.short_view_count, raw?.stats?.view_count, raw?.basic_info?.view_count);
72
85
  const url = pickFirst(raw?.url, id ? `https://www.youtube.com/watch?v=${id}` : undefined);
86
+ this.debug("Track build:", {
87
+ id: String(id),
88
+ title: String(title),
89
+ url: String(url),
90
+ duration,
91
+ thumbnail: thumb,
92
+ requestedBy,
93
+ source: this.name,
94
+ });
73
95
  return {
74
96
  id: String(id),
75
97
  title: String(title),
@@ -163,19 +185,26 @@ class YouTubePlugin extends ziplayer_1.BasePlugin {
163
185
  await this.ready;
164
186
  if (this.validate(query)) {
165
187
  const listId = this.extractListId(query);
188
+ this.debug("List ID:", listId);
166
189
  if (listId) {
167
190
  if (this.isMixListId(listId)) {
168
191
  const anchorVideoId = this.extractVideoId(query);
169
192
  if (anchorVideoId) {
170
193
  try {
194
+ this.debug("Getting info for anchor video ID:", anchorVideoId);
171
195
  const info = await this.searchClient.getInfo(anchorVideoId);
196
+ this.debug("Info:", info);
172
197
  const feed = info?.watch_next_feed || [];
198
+ this.debug("Feed:", feed);
173
199
  const tracks = feed
174
200
  .filter((tr) => tr?.content_type === "VIDEO")
175
201
  .map((v) => this.buildTrack(v, requestedBy, { playlist: listId }));
202
+ this.debug("Tracks:", tracks);
176
203
  const { basic_info } = info;
177
204
  const currTrack = this.buildTrack(basic_info, requestedBy);
205
+ this.debug("Current track:", currTrack);
178
206
  tracks.unshift(currTrack);
207
+ this.debug("Tracks:", tracks);
179
208
  return {
180
209
  tracks,
181
210
  playlist: { name: "YouTube Mix", url: query, thumbnail: tracks[0]?.thumbnail },
@@ -264,11 +293,10 @@ class YouTubePlugin extends ziplayer_1.BasePlugin {
264
293
  }
265
294
  }
266
295
  /**
267
- * Retrieves the audio stream for a YouTube track.
296
+ * Retrieves the audio stream for a YouTube track using sabr download.
268
297
  *
269
- * This method extracts the audio stream from a YouTube video using the YouTube client.
270
- * It attempts to get the best quality audio stream available and handles various
271
- * format fallbacks if the primary method fails.
298
+ * This method extracts the audio stream from a YouTube video using the sabr download
299
+ * method which provides better quality and more reliable streaming.
272
300
  *
273
301
  * @param track - The Track object to get the stream for
274
302
  * @returns A StreamInfo object containing the audio stream and metadata
@@ -286,55 +314,97 @@ class YouTubePlugin extends ziplayer_1.BasePlugin {
286
314
  if (!id)
287
315
  throw new Error("Invalid track id");
288
316
  try {
289
- const stream = await this.client.download(id, {
290
- type: "audio",
291
- quality: "best",
292
- });
317
+ this.debug("🚀 Attempting sabr download for video ID:", id);
318
+ // Use sabr download for better quality and reliability
319
+ const { streamResults } = await (0, sabr_stream_factory_1.createSabrStream)(id, sabr_stream_factory_1.DEFAULT_SABR_OPTIONS);
320
+ const { audioStream, selectedFormats, videoTitle } = streamResults;
321
+ this.debug("✅ Sabr download successful, converting Web Stream to Node.js Stream");
322
+ // Convert Web Stream to Node.js Readable Stream
323
+ const nodeStream = (0, stream_converter_1.webStreamToNodeStream)(audioStream);
324
+ this.debug("✅ Stream conversion complete, returning Node.js stream");
325
+ // Return the converted Node.js stream
293
326
  return {
294
- stream,
327
+ stream: nodeStream,
295
328
  type: "arbitrary",
296
- metadata: track.metadata,
329
+ metadata: {
330
+ ...track.metadata,
331
+ itag: selectedFormats.audioFormat.itag,
332
+ mime: selectedFormats.audioFormat.mimeType,
333
+ },
297
334
  };
298
335
  }
299
336
  catch (e) {
337
+ this.debug("⚠️ Sabr download failed, falling back to youtubei.js:", e.message);
338
+ // Fallback to original youtubei.js method if sabr download fails
300
339
  try {
301
- const info = await this.client.getBasicInfo(id);
302
- // Prefer m4a audio-only formats first
303
- let format = info?.chooseFormat?.({
340
+ const stream = await this.client.download(id, {
304
341
  type: "audio",
305
342
  quality: "best",
306
343
  });
307
- if (!format && info?.formats?.length) {
308
- const audioOnly = info.formats.filter((f) => f.mime_type?.includes("audio"));
309
- audioOnly.sort((a, b) => (b.bitrate || 0) - (a.bitrate || 0));
310
- format = audioOnly[0];
311
- }
312
- if (!format)
313
- throw new Error("No audio format available");
314
- let url = undefined;
315
- if (typeof format.decipher === "function") {
316
- url = format.decipher(this.client.session.player);
344
+ // Check if it's a Web Stream and convert it
345
+ this.debug("🔍 Checking stream type:", typeof stream, stream?.constructor?.name);
346
+ if (stream && typeof stream.getReader === "function") {
347
+ this.debug("🔄 Converting Web Stream to Node.js Stream");
348
+ const nodeStream = (0, stream_converter_1.webStreamToNodeStream)(stream);
349
+ this.debug("✅ Stream converted successfully");
350
+ return {
351
+ stream: nodeStream,
352
+ type: "arbitrary",
353
+ metadata: track.metadata,
354
+ };
317
355
  }
318
- if (!url)
319
- url = format.url;
320
- if (!url)
321
- throw new Error("No valid URL to decipher");
322
- const res = await fetch(url);
323
- if (!res.ok || !res.body) {
324
- throw new Error(`HTTP ${res.status}`);
356
+ else {
357
+ this.debug("⚠️ Stream is not a Web Stream or is null");
325
358
  }
326
359
  return {
327
- stream: res.body,
360
+ stream,
328
361
  type: "arbitrary",
329
- metadata: {
330
- ...track.metadata,
331
- itag: format.itag,
332
- mime: format.mime_type,
333
- },
362
+ metadata: track.metadata,
334
363
  };
335
364
  }
336
- catch (inner) {
337
- throw new Error(`Failed to get YouTube stream: ${inner?.message || inner}`);
365
+ catch (fallbackError) {
366
+ try {
367
+ const info = await this.client.getBasicInfo(id);
368
+ // Prefer m4a audio-only formats first
369
+ let format = info?.chooseFormat?.({
370
+ type: "audio",
371
+ quality: "best",
372
+ });
373
+ if (!format && info?.formats?.length) {
374
+ const audioOnly = info.formats.filter((f) => f.mime_type?.includes("audio"));
375
+ audioOnly.sort((a, b) => (b.bitrate || 0) - (a.bitrate || 0));
376
+ format = audioOnly[0];
377
+ }
378
+ if (!format)
379
+ throw new Error("No audio format available");
380
+ let url = undefined;
381
+ if (typeof format.decipher === "function") {
382
+ url = format.decipher(this.client.session.player);
383
+ }
384
+ if (!url)
385
+ url = format.url;
386
+ if (!url)
387
+ throw new Error("No valid URL to decipher");
388
+ const res = await fetch(url);
389
+ if (!res.ok || !res.body) {
390
+ throw new Error(`HTTP ${res.status}`);
391
+ }
392
+ // Convert Web Stream to Node.js Stream
393
+ this.debug("🔄 Converting fetch response Web Stream to Node.js Stream");
394
+ const nodeStream = (0, stream_converter_1.webStreamToNodeStream)(res.body);
395
+ return {
396
+ stream: nodeStream,
397
+ type: "arbitrary",
398
+ metadata: {
399
+ ...track.metadata,
400
+ itag: format.itag,
401
+ mime: format.mime_type,
402
+ },
403
+ };
404
+ }
405
+ catch (inner) {
406
+ throw new Error(`Failed to get YouTube stream: ${inner?.message || inner}`);
407
+ }
338
408
  }
339
409
  }
340
410
  }
@@ -361,14 +431,18 @@ class YouTubePlugin extends ziplayer_1.BasePlugin {
361
431
  */
362
432
  async getRelatedTracks(trackURL, opts = {}) {
363
433
  await this.ready;
434
+ this.debug("Getting related tracks for:", trackURL);
364
435
  const videoId = this.extractVideoId(trackURL);
436
+ this.debug("Video ID:", videoId);
365
437
  if (!videoId) {
366
438
  // If the last track URL is not a direct video URL (e.g., playlist URL),
367
439
  // we cannot fetch related videos reliably.
368
440
  return [];
369
441
  }
442
+ this.debug("Getting info for video ID:", videoId);
370
443
  const info = await await this.searchClient.getInfo(videoId);
371
444
  const related = info?.watch_next_feed || [];
445
+ this.debug("Related:", related);
372
446
  const offset = opts.offset ?? 0;
373
447
  const limit = opts.limit ?? 5;
374
448
  const relatedfilter = related.filter((tr) => tr.content_type === "VIDEO" && !(opts?.history ?? []).some((t) => t.url === tr.url));
@@ -397,6 +471,7 @@ class YouTubePlugin extends ziplayer_1.BasePlugin {
397
471
  try {
398
472
  const result = await this.search(track.title, track.requestedBy);
399
473
  const first = result.tracks[0];
474
+ this.debug("Fallback track:", first);
400
475
  if (!first)
401
476
  throw new Error("No fallback track found");
402
477
  return await this.getStream(first);
@@ -1 +1 @@
1
- {"version":3,"file":"YouTubePlugin.js","sourceRoot":"","sources":["../src/YouTubePlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"YouTubePlugin.js","sourceRoot":"","sources":["../src/YouTubePlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ interface MultiBar {
2
+ create(total: number, startValue: number, options: any): any;
3
+ stop(): void;
4
+ }
5
+ export declare function createMultiProgressBar(): MultiBar;
6
+ export declare function setupProgressBar(multiBar: MultiBar, filename: string, total: number): any;
7
+ export {};
8
+ //# sourceMappingURL=progress-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-bar.d.ts","sourceRoot":"","sources":["../../src/utils/progress-bar.ts"],"names":[],"mappings":"AACA,UAAU,QAAQ;IACjB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,GAAG,CAAC;IAC7D,IAAI,IAAI,IAAI,CAAC;CACb;AAOD,wBAAgB,sBAAsB,IAAI,QAAQ,CAcjD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,OAEnF"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMultiProgressBar = createMultiProgressBar;
4
+ exports.setupProgressBar = setupProgressBar;
5
+ // Mock implementation for now - will be replaced with actual cli-progress when available
6
+ function createMultiProgressBar() {
7
+ return {
8
+ create(total, startValue, options) {
9
+ return {
10
+ increment(value) {
11
+ // Mock progress bar implementation
12
+ console.log(`Progress: ${value}/${total}`);
13
+ },
14
+ };
15
+ },
16
+ stop() {
17
+ console.log("Progress completed");
18
+ },
19
+ };
20
+ }
21
+ function setupProgressBar(multiBar, filename, total) {
22
+ return multiBar.create(total, 0, { filename });
23
+ }
24
+ //# sourceMappingURL=progress-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-bar.js","sourceRoot":"","sources":["../../src/utils/progress-bar.ts"],"names":[],"mappings":";;AAWA,wDAcC;AAED,4CAEC;AAnBD,yFAAyF;AACzF,SAAgB,sBAAsB;IACrC,OAAO;QACN,MAAM,CAAC,KAAa,EAAE,UAAkB,EAAE,OAAY;YACrD,OAAO;gBACN,SAAS,CAAC,KAAa;oBACtB,mCAAmC;oBACnC,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;gBAC5C,CAAC;aACD,CAAC;QACH,CAAC;QACD,IAAI;YACH,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACnC,CAAC;KACD,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAkB,EAAE,QAAgB,EAAE,KAAa;IACnF,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { SabrPlaybackOptions, StreamResult } from "../types/googlevideo";
2
+ export type { StreamResult, SabrPlaybackOptions };
3
+ export interface OutputStream {
4
+ stream: NodeJS.WritableStream;
5
+ filePath: string;
6
+ }
7
+ /**
8
+ * Creates a sabr stream for YouTube video download
9
+ */
10
+ export declare function createSabrStream(videoId: string, options: SabrPlaybackOptions): Promise<{
11
+ streamResults: StreamResult;
12
+ }>;
13
+ /**
14
+ * Creates an output stream for writing downloaded content
15
+ */
16
+ export declare function createOutputStream(videoTitle: string, mimeType: string): OutputStream;
17
+ /**
18
+ * Creates a stream sink for piping data with progress tracking
19
+ */
20
+ export declare function createStreamSink(format: any, outputStream: NodeJS.WritableStream, progressBar: any): import("stream/web").WritableStream<any>;
21
+ /**
22
+ * Default sabr playback options
23
+ */
24
+ export declare const DEFAULT_SABR_OPTIONS: SabrPlaybackOptions;
25
+ //# sourceMappingURL=sabr-stream-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sabr-stream-factory.d.ts","sourceRoot":"","sources":["../../src/utils/sabr-stream-factory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAG9E,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAElD,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC;IAAE,aAAa,EAAE,YAAY,CAAA;CAAE,CAAC,CAa9H;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAYrF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,cAAc,EAAE,WAAW,EAAE,GAAG,4CAelG;AAkBD;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,mBAMlC,CAAC"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_SABR_OPTIONS = void 0;
4
+ exports.createSabrStream = createSabrStream;
5
+ exports.createOutputStream = createOutputStream;
6
+ exports.createStreamSink = createStreamSink;
7
+ const fs_1 = require("fs");
8
+ const path_1 = require("path");
9
+ const os_1 = require("os");
10
+ /**
11
+ * Creates a sabr stream for YouTube video download
12
+ */
13
+ async function createSabrStream(videoId, options) {
14
+ try {
15
+ // Dynamic import to avoid build-time errors
16
+ const sabrModule = require("googlevideo/sabr-stream");
17
+ const createSabrStreamImpl = sabrModule.createSabrStream;
18
+ const streamResults = await createSabrStreamImpl(videoId, options);
19
+ return { streamResults };
20
+ }
21
+ catch (error) {
22
+ // Fallback implementation if sabr download is not available
23
+ throw new Error(`Sabr download not available: ${error}`);
24
+ }
25
+ }
26
+ /**
27
+ * Creates an output stream for writing downloaded content
28
+ */
29
+ function createOutputStream(videoTitle, mimeType) {
30
+ const sanitizedTitle = videoTitle.replace(/[<>:"/\\|?*]/g, "_").substring(0, 100);
31
+ const extension = getExtensionFromMimeType(mimeType);
32
+ const fileName = `${sanitizedTitle}.${extension}`;
33
+ const filePath = (0, path_1.join)((0, os_1.tmpdir)(), fileName);
34
+ const stream = (0, fs_1.createWriteStream)(filePath);
35
+ return {
36
+ stream,
37
+ filePath,
38
+ };
39
+ }
40
+ /**
41
+ * Creates a stream sink for piping data with progress tracking
42
+ */
43
+ function createStreamSink(format, outputStream, progressBar) {
44
+ return new WritableStream({
45
+ start() {
46
+ // Initialize progress tracking
47
+ },
48
+ write(chunk) {
49
+ outputStream.write(chunk);
50
+ if (progressBar) {
51
+ progressBar.increment(chunk.length);
52
+ }
53
+ },
54
+ close() {
55
+ outputStream.end();
56
+ },
57
+ });
58
+ }
59
+ /**
60
+ * Gets file extension from MIME type
61
+ */
62
+ function getExtensionFromMimeType(mimeType) {
63
+ const mimeMap = {
64
+ "audio/mp4": "m4a",
65
+ "audio/webm": "webm",
66
+ "audio/ogg": "ogg",
67
+ "video/mp4": "mp4",
68
+ "video/webm": "webm",
69
+ "video/ogg": "ogv",
70
+ };
71
+ return mimeMap[mimeType] || "bin";
72
+ }
73
+ /**
74
+ * Default sabr playback options
75
+ */
76
+ exports.DEFAULT_SABR_OPTIONS = {
77
+ preferWebM: true,
78
+ preferOpus: true,
79
+ videoQuality: "720p",
80
+ audioQuality: "AUDIO_QUALITY_MEDIUM",
81
+ enabledTrackTypes: "VIDEO_AND_AUDIO",
82
+ };
83
+ //# sourceMappingURL=sabr-stream-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sabr-stream-factory.js","sourceRoot":"","sources":["../../src/utils/sabr-stream-factory.ts"],"names":[],"mappings":";;;AAkBA,4CAaC;AAKD,gDAYC;AAKD,4CAeC;AApED,2BAAuC;AACvC,+BAA4B;AAC5B,2BAA4B;AAa5B;;GAEG;AACI,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,OAA4B;IACnF,IAAI,CAAC;QACJ,4CAA4C;QAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,yBAAyB,CAAQ,CAAC;QAC7D,MAAM,oBAAoB,GAAG,UAAU,CAAC,gBAAgB,CAAC;QAEzD,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEnE,OAAO,EAAE,aAAa,EAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,4DAA4D;QAC5D,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,UAAkB,EAAE,QAAgB;IACtE,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClF,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,GAAG,cAAc,IAAI,SAAS,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,QAAQ,CAAC,CAAC;IAE1C,MAAM,MAAM,GAAG,IAAA,sBAAiB,EAAC,QAAQ,CAAC,CAAC;IAE3C,OAAO;QACN,MAAM;QACN,QAAQ;KACR,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,MAAW,EAAE,YAAmC,EAAE,WAAgB;IAClG,OAAO,IAAI,cAAc,CAAC;QACzB,KAAK;YACJ,+BAA+B;QAChC,CAAC;QACD,KAAK,CAAC,KAAK;YACV,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,WAAW,EAAE,CAAC;gBACjB,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;QACF,CAAC;QACD,KAAK;YACJ,YAAY,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,QAAgB;IACjD,MAAM,OAAO,GAA8B;QAC1C,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,KAAK;KAClB,CAAC;IAEF,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;AACnC,CAAC;AAED;;GAEG;AACU,QAAA,oBAAoB,GAAwB;IACxD,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,sBAAsB;IACpC,iBAAiB,EAAE,iBAAiB;CACpC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Readable } from "stream";
2
+ /**
3
+ * Converts a Web ReadableStream to a Node.js Readable stream
4
+ */
5
+ export declare function webStreamToNodeStream(webStream: ReadableStream): Readable;
6
+ /**
7
+ * Converts a Web ReadableStream to a Node.js Readable stream with progress tracking
8
+ */
9
+ export declare function webStreamToNodeStreamWithProgress(webStream: ReadableStream, progressCallback?: (bytesRead: number) => void): Readable;
10
+ //# sourceMappingURL=stream-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-converter.d.ts","sourceRoot":"","sources":["../../src/utils/stream-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,cAAc,GAAG,QAAQ,CA8BzE;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAChD,SAAS,EAAE,cAAc,EACzB,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAC5C,QAAQ,CAmCV"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.webStreamToNodeStream = webStreamToNodeStream;
4
+ exports.webStreamToNodeStreamWithProgress = webStreamToNodeStreamWithProgress;
5
+ const stream_1 = require("stream");
6
+ /**
7
+ * Converts a Web ReadableStream to a Node.js Readable stream
8
+ */
9
+ function webStreamToNodeStream(webStream) {
10
+ const nodeStream = new stream_1.Readable({
11
+ read() {
12
+ // This will be handled by the Web Stream reader
13
+ },
14
+ });
15
+ // Create a reader from the Web Stream
16
+ const reader = webStream.getReader();
17
+ // Read chunks and push to Node.js stream
18
+ const pump = async () => {
19
+ try {
20
+ while (true) {
21
+ const { done, value } = await reader.read();
22
+ if (done) {
23
+ nodeStream.push(null); // End the stream
24
+ break;
25
+ }
26
+ nodeStream.push(Buffer.from(value));
27
+ }
28
+ }
29
+ catch (error) {
30
+ nodeStream.destroy(error);
31
+ }
32
+ };
33
+ // Start pumping data
34
+ pump();
35
+ return nodeStream;
36
+ }
37
+ /**
38
+ * Converts a Web ReadableStream to a Node.js Readable stream with progress tracking
39
+ */
40
+ function webStreamToNodeStreamWithProgress(webStream, progressCallback) {
41
+ const nodeStream = new stream_1.Readable({
42
+ read() {
43
+ // This will be handled by the Web Stream reader
44
+ },
45
+ });
46
+ let bytesRead = 0;
47
+ const reader = webStream.getReader();
48
+ const pump = async () => {
49
+ try {
50
+ while (true) {
51
+ const { done, value } = await reader.read();
52
+ if (done) {
53
+ nodeStream.push(null); // End the stream
54
+ break;
55
+ }
56
+ const buffer = Buffer.from(value);
57
+ nodeStream.push(buffer);
58
+ bytesRead += buffer.length;
59
+ if (progressCallback) {
60
+ progressCallback(bytesRead);
61
+ }
62
+ }
63
+ }
64
+ catch (error) {
65
+ nodeStream.destroy(error);
66
+ }
67
+ };
68
+ pump();
69
+ return nodeStream;
70
+ }
71
+ //# sourceMappingURL=stream-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-converter.js","sourceRoot":"","sources":["../../src/utils/stream-converter.ts"],"names":[],"mappings":";;AAKA,sDA8BC;AAKD,8EAsCC;AA9ED,mCAAkC;AAElC;;GAEG;AACH,SAAgB,qBAAqB,CAAC,SAAyB;IAC9D,MAAM,UAAU,GAAG,IAAI,iBAAQ,CAAC;QAC/B,IAAI;YACH,gDAAgD;QACjD,CAAC;KACD,CAAC,CAAC;IAEH,sCAAsC;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;IAErC,yCAAyC;IACzC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACvB,IAAI,CAAC;YACJ,OAAO,IAAI,EAAE,CAAC;gBACb,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI,EAAE,CAAC;oBACV,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB;oBACxC,MAAM;gBACP,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,UAAU,CAAC,OAAO,CAAC,KAAc,CAAC,CAAC;QACpC,CAAC;IACF,CAAC,CAAC;IAEF,qBAAqB;IACrB,IAAI,EAAE,CAAC;IAEP,OAAO,UAAU,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAgB,iCAAiC,CAChD,SAAyB,EACzB,gBAA8C;IAE9C,MAAM,UAAU,GAAG,IAAI,iBAAQ,CAAC;QAC/B,IAAI;YACH,gDAAgD;QACjD,CAAC;KACD,CAAC,CAAC;IAEH,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;IAErC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACvB,IAAI,CAAC;YACJ,OAAO,IAAI,EAAE,CAAC;gBACb,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI,EAAE,CAAC;oBACV,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB;oBACxC,MAAM;gBACP,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAExB,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC;gBAC3B,IAAI,gBAAgB,EAAE,CAAC;oBACtB,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC7B,CAAC;YACF,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,UAAU,CAAC,OAAO,CAAC,KAAc,CAAC,CAAC;QACpC,CAAC;IACF,CAAC,CAAC;IAEF,IAAI,EAAE,CAAC;IAEP,OAAO,UAAU,CAAC;AACnB,CAAC"}