@wovin/tranz 0.1.9 → 0.1.11
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.
package/dist/audio.min.js
CHANGED
|
@@ -15,10 +15,11 @@ async function execFFprobe(audioPath) {
|
|
|
15
15
|
try {
|
|
16
16
|
const { stdout } = await execa("ffprobe", [
|
|
17
17
|
"-v",
|
|
18
|
-
"
|
|
18
|
+
"error",
|
|
19
19
|
"-print_format",
|
|
20
20
|
"json",
|
|
21
21
|
"-show_format",
|
|
22
|
+
"-show_streams",
|
|
22
23
|
audioPath
|
|
23
24
|
]);
|
|
24
25
|
return JSON.parse(stdout);
|
|
@@ -52,13 +53,61 @@ async function extractAudioSegment(inputPath, outputPath, startSec, durationSec)
|
|
|
52
53
|
throw new Error(`Failed to extract segment: ${err instanceof Error ? err.message : String(err)}`);
|
|
53
54
|
}
|
|
54
55
|
}
|
|
56
|
+
async function getDurationViaFfmpeg(audioPath) {
|
|
57
|
+
try {
|
|
58
|
+
const { stderr } = await execa("ffmpeg", [
|
|
59
|
+
"-i",
|
|
60
|
+
audioPath,
|
|
61
|
+
"-f",
|
|
62
|
+
"null",
|
|
63
|
+
"-"
|
|
64
|
+
], { reject: false });
|
|
65
|
+
const durationMatch = stderr.match(/Duration:\s*(\d+):(\d+):(\d+(?:\.\d+)?)/);
|
|
66
|
+
if (durationMatch) {
|
|
67
|
+
const hours = parseFloat(durationMatch[1]);
|
|
68
|
+
const minutes = parseFloat(durationMatch[2]);
|
|
69
|
+
const seconds = parseFloat(durationMatch[3]);
|
|
70
|
+
return hours * 3600 + minutes * 60 + seconds;
|
|
71
|
+
}
|
|
72
|
+
const timeMatches = [...stderr.matchAll(/time=(\d+):(\d+):(\d+(?:\.\d+)?)/g)];
|
|
73
|
+
if (timeMatches.length > 0) {
|
|
74
|
+
const lastMatch = timeMatches[timeMatches.length - 1];
|
|
75
|
+
const hours = parseFloat(lastMatch[1]);
|
|
76
|
+
const minutes = parseFloat(lastMatch[2]);
|
|
77
|
+
const seconds = parseFloat(lastMatch[3]);
|
|
78
|
+
return hours * 3600 + minutes * 60 + seconds;
|
|
79
|
+
}
|
|
80
|
+
} catch {
|
|
81
|
+
}
|
|
82
|
+
return void 0;
|
|
83
|
+
}
|
|
55
84
|
async function getAudioDuration(audioPath) {
|
|
56
85
|
const metadata = await execFFprobe(audioPath);
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
86
|
+
if (metadata.format?.duration) {
|
|
87
|
+
const duration = parseFloat(String(metadata.format.duration));
|
|
88
|
+
if (!isNaN(duration) && duration > 0) {
|
|
89
|
+
return duration;
|
|
90
|
+
}
|
|
60
91
|
}
|
|
61
|
-
|
|
92
|
+
if (metadata.streams?.length) {
|
|
93
|
+
for (const stream of metadata.streams) {
|
|
94
|
+
if (stream.duration) {
|
|
95
|
+
const duration = parseFloat(String(stream.duration));
|
|
96
|
+
if (!isNaN(duration) && duration > 0) {
|
|
97
|
+
return duration;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
const ffmpegDuration = await getDurationViaFfmpeg(audioPath);
|
|
103
|
+
if (ffmpegDuration !== void 0 && ffmpegDuration > 0) {
|
|
104
|
+
return ffmpegDuration;
|
|
105
|
+
}
|
|
106
|
+
const hasFormat = !!metadata.format;
|
|
107
|
+
const hasStreams = !!metadata.streams?.length;
|
|
108
|
+
throw new Error(
|
|
109
|
+
`Could not determine audio duration (format: ${hasFormat}, streams: ${hasStreams}). File may be corrupted or in an unsupported format.`
|
|
110
|
+
);
|
|
62
111
|
}
|
|
63
112
|
async function detectSilenceRegions(audioPath, config = {}) {
|
|
64
113
|
const { minSilenceDurSec, silenceThreshold } = { ...DEFAULT_SPLIT_CONFIG, ...config };
|
package/dist/index.min.js
CHANGED
|
@@ -365,10 +365,11 @@ async function execFFprobe(audioPath) {
|
|
|
365
365
|
try {
|
|
366
366
|
const { stdout } = await execa("ffprobe", [
|
|
367
367
|
"-v",
|
|
368
|
-
"
|
|
368
|
+
"error",
|
|
369
369
|
"-print_format",
|
|
370
370
|
"json",
|
|
371
371
|
"-show_format",
|
|
372
|
+
"-show_streams",
|
|
372
373
|
audioPath
|
|
373
374
|
]);
|
|
374
375
|
return JSON.parse(stdout);
|
|
@@ -402,13 +403,61 @@ async function extractAudioSegment(inputPath, outputPath, startSec, durationSec)
|
|
|
402
403
|
throw new Error(`Failed to extract segment: ${err instanceof Error ? err.message : String(err)}`);
|
|
403
404
|
}
|
|
404
405
|
}
|
|
406
|
+
async function getDurationViaFfmpeg(audioPath) {
|
|
407
|
+
try {
|
|
408
|
+
const { stderr } = await execa("ffmpeg", [
|
|
409
|
+
"-i",
|
|
410
|
+
audioPath,
|
|
411
|
+
"-f",
|
|
412
|
+
"null",
|
|
413
|
+
"-"
|
|
414
|
+
], { reject: false });
|
|
415
|
+
const durationMatch = stderr.match(/Duration:\s*(\d+):(\d+):(\d+(?:\.\d+)?)/);
|
|
416
|
+
if (durationMatch) {
|
|
417
|
+
const hours = parseFloat(durationMatch[1]);
|
|
418
|
+
const minutes = parseFloat(durationMatch[2]);
|
|
419
|
+
const seconds = parseFloat(durationMatch[3]);
|
|
420
|
+
return hours * 3600 + minutes * 60 + seconds;
|
|
421
|
+
}
|
|
422
|
+
const timeMatches = [...stderr.matchAll(/time=(\d+):(\d+):(\d+(?:\.\d+)?)/g)];
|
|
423
|
+
if (timeMatches.length > 0) {
|
|
424
|
+
const lastMatch = timeMatches[timeMatches.length - 1];
|
|
425
|
+
const hours = parseFloat(lastMatch[1]);
|
|
426
|
+
const minutes = parseFloat(lastMatch[2]);
|
|
427
|
+
const seconds = parseFloat(lastMatch[3]);
|
|
428
|
+
return hours * 3600 + minutes * 60 + seconds;
|
|
429
|
+
}
|
|
430
|
+
} catch {
|
|
431
|
+
}
|
|
432
|
+
return void 0;
|
|
433
|
+
}
|
|
405
434
|
async function getAudioDuration(audioPath) {
|
|
406
435
|
const metadata = await execFFprobe(audioPath);
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
436
|
+
if (metadata.format?.duration) {
|
|
437
|
+
const duration = parseFloat(String(metadata.format.duration));
|
|
438
|
+
if (!isNaN(duration) && duration > 0) {
|
|
439
|
+
return duration;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
if (metadata.streams?.length) {
|
|
443
|
+
for (const stream of metadata.streams) {
|
|
444
|
+
if (stream.duration) {
|
|
445
|
+
const duration = parseFloat(String(stream.duration));
|
|
446
|
+
if (!isNaN(duration) && duration > 0) {
|
|
447
|
+
return duration;
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
}
|
|
410
451
|
}
|
|
411
|
-
|
|
452
|
+
const ffmpegDuration = await getDurationViaFfmpeg(audioPath);
|
|
453
|
+
if (ffmpegDuration !== void 0 && ffmpegDuration > 0) {
|
|
454
|
+
return ffmpegDuration;
|
|
455
|
+
}
|
|
456
|
+
const hasFormat = !!metadata.format;
|
|
457
|
+
const hasStreams = !!metadata.streams?.length;
|
|
458
|
+
throw new Error(
|
|
459
|
+
`Could not determine audio duration (format: ${hasFormat}, streams: ${hasStreams}). File may be corrupted or in an unsupported format.`
|
|
460
|
+
);
|
|
412
461
|
}
|
|
413
462
|
async function detectSilenceRegions(audioPath, config = {}) {
|
|
414
463
|
const { minSilenceDurSec, silenceThreshold } = { ...DEFAULT_SPLIT_CONFIG, ...config };
|
|
@@ -726,17 +775,44 @@ var defaultLogger = {
|
|
|
726
775
|
}
|
|
727
776
|
// silent by default
|
|
728
777
|
};
|
|
778
|
+
var MIME_TO_EXT = {
|
|
779
|
+
"audio/mpeg": ".mp3",
|
|
780
|
+
"audio/mp3": ".mp3",
|
|
781
|
+
"audio/wav": ".wav",
|
|
782
|
+
"audio/x-wav": ".wav",
|
|
783
|
+
"audio/ogg": ".ogg",
|
|
784
|
+
"audio/flac": ".flac",
|
|
785
|
+
"audio/x-flac": ".flac",
|
|
786
|
+
"audio/mp4": ".m4a",
|
|
787
|
+
"audio/m4a": ".m4a",
|
|
788
|
+
"audio/aac": ".aac",
|
|
789
|
+
"audio/webm": ".webm",
|
|
790
|
+
"audio/opus": ".opus"
|
|
791
|
+
};
|
|
792
|
+
function getExtFromContentType(contentType, url) {
|
|
793
|
+
if (contentType) {
|
|
794
|
+
const mimeType = contentType.split(";")[0].trim().toLowerCase();
|
|
795
|
+
if (MIME_TO_EXT[mimeType]) {
|
|
796
|
+
return MIME_TO_EXT[mimeType];
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
try {
|
|
800
|
+
const urlPath = new URL(url).pathname;
|
|
801
|
+
const ext = path3.extname(urlPath).toLowerCase();
|
|
802
|
+
if (ext && [".mp3", ".wav", ".ogg", ".flac", ".m4a", ".aac", ".webm", ".opus"].includes(ext)) {
|
|
803
|
+
return ext;
|
|
804
|
+
}
|
|
805
|
+
} catch {
|
|
806
|
+
}
|
|
807
|
+
return ".audio";
|
|
808
|
+
}
|
|
729
809
|
async function downloadToTempFile(url, outputDir) {
|
|
730
|
-
const tempPath = path3.join(outputDir, `download-${Date.now()}.audio`);
|
|
731
|
-
const file = fs3.createWriteStream(tempPath);
|
|
732
810
|
return new Promise((resolve, reject) => {
|
|
733
811
|
const protocol = url.startsWith("https") ? https : http;
|
|
734
812
|
protocol.get(url, (response) => {
|
|
735
813
|
if (response.statusCode === 301 || response.statusCode === 302) {
|
|
736
814
|
const redirectUrl = response.headers.location;
|
|
737
815
|
if (redirectUrl) {
|
|
738
|
-
file.close();
|
|
739
|
-
fs3.unlinkSync(tempPath);
|
|
740
816
|
downloadToTempFile(redirectUrl, outputDir).then(resolve).catch(reject);
|
|
741
817
|
return;
|
|
742
818
|
}
|
|
@@ -745,14 +821,20 @@ async function downloadToTempFile(url, outputDir) {
|
|
|
745
821
|
reject(new Error(`Failed to download: HTTP ${response.statusCode}`));
|
|
746
822
|
return;
|
|
747
823
|
}
|
|
824
|
+
const ext = getExtFromContentType(response.headers["content-type"], url);
|
|
825
|
+
const tempPath = path3.join(outputDir, `download-${Date.now()}${ext}`);
|
|
826
|
+
const file = fs3.createWriteStream(tempPath);
|
|
748
827
|
response.pipe(file);
|
|
749
828
|
file.on("finish", () => {
|
|
750
829
|
file.close();
|
|
751
830
|
resolve(tempPath);
|
|
752
831
|
});
|
|
753
|
-
|
|
754
|
-
|
|
832
|
+
file.on("error", (err) => {
|
|
833
|
+
fs3.unlink(tempPath, () => {
|
|
834
|
+
});
|
|
835
|
+
reject(err);
|
|
755
836
|
});
|
|
837
|
+
}).on("error", (err) => {
|
|
756
838
|
reject(err);
|
|
757
839
|
});
|
|
758
840
|
});
|
package/dist/providers.min.js
CHANGED
|
@@ -372,10 +372,11 @@ async function execFFprobe(audioPath) {
|
|
|
372
372
|
try {
|
|
373
373
|
const { stdout } = await execa("ffprobe", [
|
|
374
374
|
"-v",
|
|
375
|
-
"
|
|
375
|
+
"error",
|
|
376
376
|
"-print_format",
|
|
377
377
|
"json",
|
|
378
378
|
"-show_format",
|
|
379
|
+
"-show_streams",
|
|
379
380
|
audioPath
|
|
380
381
|
]);
|
|
381
382
|
return JSON.parse(stdout);
|
|
@@ -409,13 +410,61 @@ async function extractAudioSegment(inputPath, outputPath, startSec, durationSec)
|
|
|
409
410
|
throw new Error(`Failed to extract segment: ${err instanceof Error ? err.message : String(err)}`);
|
|
410
411
|
}
|
|
411
412
|
}
|
|
413
|
+
async function getDurationViaFfmpeg(audioPath) {
|
|
414
|
+
try {
|
|
415
|
+
const { stderr } = await execa("ffmpeg", [
|
|
416
|
+
"-i",
|
|
417
|
+
audioPath,
|
|
418
|
+
"-f",
|
|
419
|
+
"null",
|
|
420
|
+
"-"
|
|
421
|
+
], { reject: false });
|
|
422
|
+
const durationMatch = stderr.match(/Duration:\s*(\d+):(\d+):(\d+(?:\.\d+)?)/);
|
|
423
|
+
if (durationMatch) {
|
|
424
|
+
const hours = parseFloat(durationMatch[1]);
|
|
425
|
+
const minutes = parseFloat(durationMatch[2]);
|
|
426
|
+
const seconds = parseFloat(durationMatch[3]);
|
|
427
|
+
return hours * 3600 + minutes * 60 + seconds;
|
|
428
|
+
}
|
|
429
|
+
const timeMatches = [...stderr.matchAll(/time=(\d+):(\d+):(\d+(?:\.\d+)?)/g)];
|
|
430
|
+
if (timeMatches.length > 0) {
|
|
431
|
+
const lastMatch = timeMatches[timeMatches.length - 1];
|
|
432
|
+
const hours = parseFloat(lastMatch[1]);
|
|
433
|
+
const minutes = parseFloat(lastMatch[2]);
|
|
434
|
+
const seconds = parseFloat(lastMatch[3]);
|
|
435
|
+
return hours * 3600 + minutes * 60 + seconds;
|
|
436
|
+
}
|
|
437
|
+
} catch {
|
|
438
|
+
}
|
|
439
|
+
return void 0;
|
|
440
|
+
}
|
|
412
441
|
async function getAudioDuration(audioPath) {
|
|
413
442
|
const metadata = await execFFprobe(audioPath);
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
443
|
+
if (metadata.format?.duration) {
|
|
444
|
+
const duration = parseFloat(String(metadata.format.duration));
|
|
445
|
+
if (!isNaN(duration) && duration > 0) {
|
|
446
|
+
return duration;
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
if (metadata.streams?.length) {
|
|
450
|
+
for (const stream of metadata.streams) {
|
|
451
|
+
if (stream.duration) {
|
|
452
|
+
const duration = parseFloat(String(stream.duration));
|
|
453
|
+
if (!isNaN(duration) && duration > 0) {
|
|
454
|
+
return duration;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
}
|
|
417
458
|
}
|
|
418
|
-
|
|
459
|
+
const ffmpegDuration = await getDurationViaFfmpeg(audioPath);
|
|
460
|
+
if (ffmpegDuration !== void 0 && ffmpegDuration > 0) {
|
|
461
|
+
return ffmpegDuration;
|
|
462
|
+
}
|
|
463
|
+
const hasFormat = !!metadata.format;
|
|
464
|
+
const hasStreams = !!metadata.streams?.length;
|
|
465
|
+
throw new Error(
|
|
466
|
+
`Could not determine audio duration (format: ${hasFormat}, streams: ${hasStreams}). File may be corrupted or in an unsupported format.`
|
|
467
|
+
);
|
|
419
468
|
}
|
|
420
469
|
async function detectSilenceRegions(audioPath, config = {}) {
|
|
421
470
|
const { minSilenceDurSec, silenceThreshold } = { ...DEFAULT_SPLIT_CONFIG, ...config };
|
|
@@ -648,17 +697,44 @@ var defaultLogger = {
|
|
|
648
697
|
}
|
|
649
698
|
// silent by default
|
|
650
699
|
};
|
|
700
|
+
var MIME_TO_EXT = {
|
|
701
|
+
"audio/mpeg": ".mp3",
|
|
702
|
+
"audio/mp3": ".mp3",
|
|
703
|
+
"audio/wav": ".wav",
|
|
704
|
+
"audio/x-wav": ".wav",
|
|
705
|
+
"audio/ogg": ".ogg",
|
|
706
|
+
"audio/flac": ".flac",
|
|
707
|
+
"audio/x-flac": ".flac",
|
|
708
|
+
"audio/mp4": ".m4a",
|
|
709
|
+
"audio/m4a": ".m4a",
|
|
710
|
+
"audio/aac": ".aac",
|
|
711
|
+
"audio/webm": ".webm",
|
|
712
|
+
"audio/opus": ".opus"
|
|
713
|
+
};
|
|
714
|
+
function getExtFromContentType(contentType, url) {
|
|
715
|
+
if (contentType) {
|
|
716
|
+
const mimeType = contentType.split(";")[0].trim().toLowerCase();
|
|
717
|
+
if (MIME_TO_EXT[mimeType]) {
|
|
718
|
+
return MIME_TO_EXT[mimeType];
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
try {
|
|
722
|
+
const urlPath = new URL(url).pathname;
|
|
723
|
+
const ext = path3.extname(urlPath).toLowerCase();
|
|
724
|
+
if (ext && [".mp3", ".wav", ".ogg", ".flac", ".m4a", ".aac", ".webm", ".opus"].includes(ext)) {
|
|
725
|
+
return ext;
|
|
726
|
+
}
|
|
727
|
+
} catch {
|
|
728
|
+
}
|
|
729
|
+
return ".audio";
|
|
730
|
+
}
|
|
651
731
|
async function downloadToTempFile(url, outputDir) {
|
|
652
|
-
const tempPath = path3.join(outputDir, `download-${Date.now()}.audio`);
|
|
653
|
-
const file = fs3.createWriteStream(tempPath);
|
|
654
732
|
return new Promise((resolve, reject) => {
|
|
655
733
|
const protocol = url.startsWith("https") ? https : http;
|
|
656
734
|
protocol.get(url, (response) => {
|
|
657
735
|
if (response.statusCode === 301 || response.statusCode === 302) {
|
|
658
736
|
const redirectUrl = response.headers.location;
|
|
659
737
|
if (redirectUrl) {
|
|
660
|
-
file.close();
|
|
661
|
-
fs3.unlinkSync(tempPath);
|
|
662
738
|
downloadToTempFile(redirectUrl, outputDir).then(resolve).catch(reject);
|
|
663
739
|
return;
|
|
664
740
|
}
|
|
@@ -667,14 +743,20 @@ async function downloadToTempFile(url, outputDir) {
|
|
|
667
743
|
reject(new Error(`Failed to download: HTTP ${response.statusCode}`));
|
|
668
744
|
return;
|
|
669
745
|
}
|
|
746
|
+
const ext = getExtFromContentType(response.headers["content-type"], url);
|
|
747
|
+
const tempPath = path3.join(outputDir, `download-${Date.now()}${ext}`);
|
|
748
|
+
const file = fs3.createWriteStream(tempPath);
|
|
670
749
|
response.pipe(file);
|
|
671
750
|
file.on("finish", () => {
|
|
672
751
|
file.close();
|
|
673
752
|
resolve(tempPath);
|
|
674
753
|
});
|
|
675
|
-
|
|
676
|
-
|
|
754
|
+
file.on("error", (err) => {
|
|
755
|
+
fs3.unlink(tempPath, () => {
|
|
756
|
+
});
|
|
757
|
+
reject(err);
|
|
677
758
|
});
|
|
759
|
+
}).on("error", (err) => {
|
|
678
760
|
reject(err);
|
|
679
761
|
});
|
|
680
762
|
});
|
|
@@ -50,6 +50,8 @@ export interface AudioSegment {
|
|
|
50
50
|
export declare const DEFAULT_SPLIT_CONFIG: SplitConfig;
|
|
51
51
|
/**
|
|
52
52
|
* Get the duration of an audio file in seconds
|
|
53
|
+
* Tries format.duration first, then falls back to stream duration,
|
|
54
|
+
* and finally uses ffmpeg decode as last resort
|
|
53
55
|
*/
|
|
54
56
|
export declare function getAudioDuration(audioPath: string): Promise<number>;
|
|
55
57
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split.d.ts","sourceRoot":"","sources":["../../../src/utils/audio/split.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAA;IACtB,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,CAAA;IACxB,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,CAAA;IACxB,wDAAwD;IACxD,mBAAmB,EAAE,OAAO,CAAA;IAC5B,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAMlC,CAAA;
|
|
1
|
+
{"version":3,"file":"split.d.ts","sourceRoot":"","sources":["../../../src/utils/audio/split.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAA;IACtB,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,CAAA;IACxB,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,CAAA;IACxB,wDAAwD;IACxD,mBAAmB,EAAE,OAAO,CAAA;IAC5B,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAMlC,CAAA;AAsFD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoCzE;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAChC,OAAO,CAAC,aAAa,EAAE,CAAC,CAsD1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,aAAa,EAAE,EAC/B,aAAa,EAAE,MAAM,EACrB,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAChC,UAAU,EAAE,CAwEd;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,UAAU,EAAE,EACzB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,EAAE,CAAC,CA2CzB;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CAuCzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,UAAU,EAAE,OAAO,CAAA;CACpB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAChC,OAAO,CAAC,aAAa,CAAC,CA0BxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcribe.d.ts","sourceRoot":"","sources":["../../../src/utils/transcription/transcribe.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAA6B,KAAK,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAErG,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC7B;AAQD,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,uCAAuC;IACvC,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;
|
|
1
|
+
{"version":3,"file":"transcribe.d.ts","sourceRoot":"","sources":["../../../src/utils/transcription/transcribe.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAA6B,KAAK,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAErG,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC7B;AAQD,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,uCAAuC;IACvC,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AA6FD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAA;CAC3E;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,GAAG,kBAAkB,CA4K7F;AAED,+BAA+B;AAC/B,eAAO,MAAM,UAAU,iCAA2B,CAAA"}
|