@storyteller-platform/align 0.1.16 → 0.1.18
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/binding.gyp +26 -0
- package/dist/align/align.cjs +6 -7
- package/dist/align/align.js +6 -7
- package/dist/cli/bin.cjs +1 -1
- package/dist/cli/bin.js +2 -2
- package/dist/common/ffmpeg.cjs +12 -12
- package/dist/common/ffmpeg.js +12 -12
- package/dist/errorAlign/backtraceGraph.cjs +5 -8
- package/dist/errorAlign/backtraceGraph.js +5 -8
- package/dist/errorAlign/beamSearch.cjs +1 -2
- package/dist/errorAlign/beamSearch.js +1 -2
- package/dist/markup/markup.cjs +3 -4
- package/dist/markup/markup.js +3 -4
- package/dist/markup/serializeDom.cjs +1 -1
- package/dist/markup/serializeDom.js +1 -1
- package/dist/process/processAudiobook.cjs +8 -12
- package/dist/process/processAudiobook.js +8 -12
- package/dist/process/ranges.cjs +3 -3
- package/dist/process/ranges.js +3 -3
- package/dist/transcribe/transcribe.cjs +9 -14
- package/dist/transcribe/transcribe.js +9 -14
- package/package.json +3 -1
- package/prebuilds/darwin-arm64/@storyteller-platform+align.node +0 -0
- package/prebuilds/linux-arm64/@storyteller-platform+align.node +0 -0
- package/prebuilds/linux-x64/@storyteller-platform+align.node +0 -0
- package/dist/align/__tests__/align.test.cjs +0 -283
- package/dist/align/__tests__/align.test.d.cts +0 -2
- package/dist/align/__tests__/align.test.d.ts +0 -2
- package/dist/align/__tests__/align.test.js +0 -219
- package/dist/align/__tests__/slugify.test.cjs +0 -64
- package/dist/align/__tests__/slugify.test.d.cts +0 -2
- package/dist/align/__tests__/slugify.test.d.ts +0 -2
- package/dist/align/__tests__/slugify.test.js +0 -41
- package/dist/errorAlign/__tests__/errorAlign.test.cjs +0 -100
- package/dist/errorAlign/__tests__/errorAlign.test.d.cts +0 -2
- package/dist/errorAlign/__tests__/errorAlign.test.d.ts +0 -2
- package/dist/errorAlign/__tests__/errorAlign.test.js +0 -77
- package/dist/errorAlign/__tests__/native.test.cjs +0 -118
- package/dist/errorAlign/__tests__/native.test.d.cts +0 -2
- package/dist/errorAlign/__tests__/native.test.d.ts +0 -2
- package/dist/errorAlign/__tests__/native.test.js +0 -107
- package/dist/markup/__tests__/markup.test.cjs +0 -491
- package/dist/markup/__tests__/markup.test.d.cts +0 -2
- package/dist/markup/__tests__/markup.test.d.ts +0 -2
- package/dist/markup/__tests__/markup.test.js +0 -468
- package/dist/markup/__tests__/parseDom.test.cjs +0 -112
- package/dist/markup/__tests__/parseDom.test.d.cts +0 -2
- package/dist/markup/__tests__/parseDom.test.d.ts +0 -2
- package/dist/markup/__tests__/parseDom.test.js +0 -89
- package/dist/markup/__tests__/serializeDom.test.cjs +0 -120
- package/dist/markup/__tests__/serializeDom.test.d.cts +0 -2
- package/dist/markup/__tests__/serializeDom.test.d.ts +0 -2
- package/dist/markup/__tests__/serializeDom.test.js +0 -97
- package/dist/markup/__tests__/transform.test.cjs +0 -122
- package/dist/markup/__tests__/transform.test.d.cts +0 -2
- package/dist/markup/__tests__/transform.test.d.ts +0 -2
- package/dist/markup/__tests__/transform.test.js +0 -99
- package/dist/process/__tests__/processAudiobook.test.cjs +0 -232
- package/dist/process/__tests__/processAudiobook.test.d.cts +0 -2
- package/dist/process/__tests__/processAudiobook.test.d.ts +0 -2
- package/dist/process/__tests__/processAudiobook.test.js +0 -209
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert";
|
|
2
|
-
import { randomUUID } from "node:crypto";
|
|
3
|
-
import { mkdir, readdir } from "node:fs/promises";
|
|
4
|
-
import { availableParallelism } from "node:os";
|
|
5
|
-
import { join } from "node:path";
|
|
6
|
-
import { describe, it } from "node:test";
|
|
7
|
-
import { AsyncSemaphore } from "@esfx/async-semaphore";
|
|
8
|
-
import { createLogger } from "../../common/logging.js";
|
|
9
|
-
import { processFile } from "../processAudiobook.js";
|
|
10
|
-
function createTestLogger() {
|
|
11
|
-
return createLogger(process.env["CI"] ? "silent" : "info");
|
|
12
|
-
}
|
|
13
|
-
void describe("processFile", () => {
|
|
14
|
-
void it("can process mpeg4 files", async () => {
|
|
15
|
-
const input = join(
|
|
16
|
-
"src",
|
|
17
|
-
"__fixtures__",
|
|
18
|
-
"mpeg4",
|
|
19
|
-
"MobyDickOrTheWhalePart1_librivox.m4b"
|
|
20
|
-
);
|
|
21
|
-
const outDir = join("src", "__fixtures__", "__output__", randomUUID());
|
|
22
|
-
await mkdir(outDir, { recursive: true });
|
|
23
|
-
await processFile(input, outDir, "00000-", {
|
|
24
|
-
lock: new AsyncSemaphore(availableParallelism() - 1),
|
|
25
|
-
logger: createTestLogger()
|
|
26
|
-
});
|
|
27
|
-
const outFiles = await readdir(outDir);
|
|
28
|
-
assert.deepStrictEqual(outFiles, [
|
|
29
|
-
"00000-00001.mp4",
|
|
30
|
-
"00000-00002.mp4",
|
|
31
|
-
"00000-00003.mp4",
|
|
32
|
-
"00000-00004.mp4",
|
|
33
|
-
"00000-00005.mp4",
|
|
34
|
-
"00000-00006.mp4",
|
|
35
|
-
"00000-00007.mp4",
|
|
36
|
-
"00000-00008.mp4",
|
|
37
|
-
"00000-00009.mp4",
|
|
38
|
-
"00000-00010.mp4",
|
|
39
|
-
"00000-00011.mp4"
|
|
40
|
-
]);
|
|
41
|
-
});
|
|
42
|
-
void it("can process mp3 files", async () => {
|
|
43
|
-
const input = join(
|
|
44
|
-
"src",
|
|
45
|
-
"__fixtures__",
|
|
46
|
-
"mp3",
|
|
47
|
-
"MobyDickOrTheWhalePart1_librivox.mp3"
|
|
48
|
-
);
|
|
49
|
-
const outDir = join("src", "__fixtures__", "__output__", randomUUID());
|
|
50
|
-
await mkdir(outDir, { recursive: true });
|
|
51
|
-
await processFile(input, outDir, "00000-", {
|
|
52
|
-
lock: new AsyncSemaphore(availableParallelism() - 1),
|
|
53
|
-
logger: createTestLogger()
|
|
54
|
-
});
|
|
55
|
-
const outFiles = await readdir(outDir);
|
|
56
|
-
assert.deepStrictEqual(outFiles, [
|
|
57
|
-
"00000-00001.mp3",
|
|
58
|
-
"00000-00002.mp3",
|
|
59
|
-
"00000-00003.mp3",
|
|
60
|
-
"00000-00004.mp3",
|
|
61
|
-
"00000-00005.mp3",
|
|
62
|
-
"00000-00006.mp3",
|
|
63
|
-
"00000-00007.mp3",
|
|
64
|
-
"00000-00008.mp3",
|
|
65
|
-
"00000-00009.mp3",
|
|
66
|
-
"00000-00010.mp3",
|
|
67
|
-
"00000-00011.mp3"
|
|
68
|
-
]);
|
|
69
|
-
});
|
|
70
|
-
void it("can process opus files", async () => {
|
|
71
|
-
const input = join(
|
|
72
|
-
"src",
|
|
73
|
-
"__fixtures__",
|
|
74
|
-
"opus",
|
|
75
|
-
"MobyDickOrTheWhalePart1_librivox.opus"
|
|
76
|
-
);
|
|
77
|
-
const outDir = join("src", "__fixtures__", "__output__", randomUUID());
|
|
78
|
-
await mkdir(outDir, { recursive: true });
|
|
79
|
-
await processFile(input, outDir, "00000-", {
|
|
80
|
-
lock: new AsyncSemaphore(availableParallelism() - 1),
|
|
81
|
-
logger: createTestLogger()
|
|
82
|
-
});
|
|
83
|
-
const outFiles = await readdir(outDir);
|
|
84
|
-
assert.deepStrictEqual(outFiles, [
|
|
85
|
-
"00000-00001.mp4",
|
|
86
|
-
"00000-00002.mp4",
|
|
87
|
-
"00000-00003.mp4",
|
|
88
|
-
"00000-00004.mp4",
|
|
89
|
-
"00000-00005.mp4",
|
|
90
|
-
"00000-00006.mp4",
|
|
91
|
-
"00000-00007.mp4",
|
|
92
|
-
"00000-00008.mp4",
|
|
93
|
-
"00000-00009.mp4",
|
|
94
|
-
"00000-00010.mp4",
|
|
95
|
-
"00000-00011.mp4"
|
|
96
|
-
]);
|
|
97
|
-
});
|
|
98
|
-
void it("can handle nonstandard audio file", async () => {
|
|
99
|
-
const input = join("src", "__fixtures__", "flac", "mobydick.flac");
|
|
100
|
-
const outDir = join("src", "__fixtures__", "__output__", randomUUID());
|
|
101
|
-
await mkdir(outDir, { recursive: true });
|
|
102
|
-
await processFile(input, outDir, "00000-", {
|
|
103
|
-
lock: new AsyncSemaphore(availableParallelism() - 1),
|
|
104
|
-
logger: createTestLogger()
|
|
105
|
-
});
|
|
106
|
-
const outFiles = await readdir(outDir);
|
|
107
|
-
assert.deepStrictEqual(outFiles, ["00000-00001.flac"]);
|
|
108
|
-
});
|
|
109
|
-
void it("can transcode nonstandard audio file", async () => {
|
|
110
|
-
const input = join("src", "__fixtures__", "flac", "mobydick.flac");
|
|
111
|
-
const outDir = join("src", "__fixtures__", "__output__", randomUUID());
|
|
112
|
-
await mkdir(outDir, { recursive: true });
|
|
113
|
-
await processFile(input, outDir, "00000-", {
|
|
114
|
-
encoding: { codec: "libopus" },
|
|
115
|
-
lock: new AsyncSemaphore(availableParallelism() - 1),
|
|
116
|
-
logger: createTestLogger()
|
|
117
|
-
});
|
|
118
|
-
const outFiles = await readdir(outDir);
|
|
119
|
-
assert.deepStrictEqual(outFiles, ["00000-00001.mp4"]);
|
|
120
|
-
});
|
|
121
|
-
void it("can process zip files", async () => {
|
|
122
|
-
const input = join("src", "__fixtures__", "zip", "moby-dick-1-7-audio.zip");
|
|
123
|
-
const outDir = join("src", "__fixtures__", "__output__", randomUUID());
|
|
124
|
-
await mkdir(outDir, { recursive: true });
|
|
125
|
-
await processFile(input, outDir, "00000-", {
|
|
126
|
-
lock: new AsyncSemaphore(availableParallelism() - 1),
|
|
127
|
-
logger: createTestLogger()
|
|
128
|
-
});
|
|
129
|
-
const outFiles = await readdir(outDir);
|
|
130
|
-
assert.deepStrictEqual(outFiles, [
|
|
131
|
-
"00000-00001.mp3",
|
|
132
|
-
"00000-00002.mp3",
|
|
133
|
-
"00000-00003.mp3"
|
|
134
|
-
]);
|
|
135
|
-
});
|
|
136
|
-
void it("splits files longer than the max length", async () => {
|
|
137
|
-
const input = join("src", "__fixtures__", "zip", "moby-dick-1-7-audio.zip");
|
|
138
|
-
const outDir = join("src", "__fixtures__", "__output__", randomUUID());
|
|
139
|
-
await mkdir(outDir, { recursive: true });
|
|
140
|
-
await processFile(input, outDir, "00000-", {
|
|
141
|
-
maxLength: 0.1,
|
|
142
|
-
lock: new AsyncSemaphore(availableParallelism() - 1),
|
|
143
|
-
logger: createTestLogger()
|
|
144
|
-
});
|
|
145
|
-
const outFiles = await readdir(outDir);
|
|
146
|
-
assert.deepStrictEqual(outFiles, [
|
|
147
|
-
"00000-00001.mp3",
|
|
148
|
-
"00000-00002.mp3",
|
|
149
|
-
"00000-00003.mp3",
|
|
150
|
-
"00000-00004.mp3",
|
|
151
|
-
"00000-00005.mp3",
|
|
152
|
-
"00000-00006.mp3",
|
|
153
|
-
"00000-00007.mp3",
|
|
154
|
-
"00000-00008.mp3",
|
|
155
|
-
"00000-00009.mp3",
|
|
156
|
-
"00000-00010.mp3",
|
|
157
|
-
"00000-00011.mp3",
|
|
158
|
-
"00000-00012.mp3",
|
|
159
|
-
"00000-00013.mp3",
|
|
160
|
-
"00000-00014.mp3",
|
|
161
|
-
"00000-00015.mp3",
|
|
162
|
-
"00000-00016.mp3",
|
|
163
|
-
"00000-00017.mp3"
|
|
164
|
-
]);
|
|
165
|
-
});
|
|
166
|
-
void it("splits files longer than the max length, even if they have chapters", async () => {
|
|
167
|
-
const input = join(
|
|
168
|
-
"src",
|
|
169
|
-
"__fixtures__",
|
|
170
|
-
"mpeg4",
|
|
171
|
-
"MobyDickOrTheWhalePart1_librivox.m4b"
|
|
172
|
-
);
|
|
173
|
-
const outDir = join("src", "__fixtures__", "__output__", randomUUID());
|
|
174
|
-
await mkdir(outDir, { recursive: true });
|
|
175
|
-
await processFile(input, outDir, "00000-", {
|
|
176
|
-
maxLength: 0.25,
|
|
177
|
-
lock: new AsyncSemaphore(availableParallelism() - 1),
|
|
178
|
-
logger: createTestLogger()
|
|
179
|
-
});
|
|
180
|
-
const outFiles = await readdir(outDir);
|
|
181
|
-
assert.deepStrictEqual(outFiles, [
|
|
182
|
-
"00000-00001.mp4",
|
|
183
|
-
"00000-00002.mp4",
|
|
184
|
-
"00000-00003.mp4",
|
|
185
|
-
"00000-00004.mp4",
|
|
186
|
-
"00000-00005.mp4",
|
|
187
|
-
"00000-00006.mp4",
|
|
188
|
-
"00000-00007.mp4",
|
|
189
|
-
"00000-00008.mp4",
|
|
190
|
-
"00000-00009.mp4",
|
|
191
|
-
"00000-00010.mp4",
|
|
192
|
-
"00000-00011.mp4",
|
|
193
|
-
"00000-00012.mp4",
|
|
194
|
-
"00000-00013.mp4",
|
|
195
|
-
"00000-00014.mp4",
|
|
196
|
-
"00000-00015.mp4",
|
|
197
|
-
"00000-00016.mp4",
|
|
198
|
-
"00000-00017.mp4",
|
|
199
|
-
"00000-00018.mp4",
|
|
200
|
-
"00000-00019.mp4",
|
|
201
|
-
"00000-00020.mp4",
|
|
202
|
-
"00000-00021.mp4",
|
|
203
|
-
"00000-00022.mp4",
|
|
204
|
-
"00000-00023.mp4",
|
|
205
|
-
"00000-00024.mp4",
|
|
206
|
-
"00000-00025.mp4"
|
|
207
|
-
]);
|
|
208
|
-
});
|
|
209
|
-
});
|