@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.
Files changed (61) hide show
  1. package/binding.gyp +26 -0
  2. package/dist/align/align.cjs +6 -7
  3. package/dist/align/align.js +6 -7
  4. package/dist/cli/bin.cjs +1 -1
  5. package/dist/cli/bin.js +2 -2
  6. package/dist/common/ffmpeg.cjs +12 -12
  7. package/dist/common/ffmpeg.js +12 -12
  8. package/dist/errorAlign/backtraceGraph.cjs +5 -8
  9. package/dist/errorAlign/backtraceGraph.js +5 -8
  10. package/dist/errorAlign/beamSearch.cjs +1 -2
  11. package/dist/errorAlign/beamSearch.js +1 -2
  12. package/dist/markup/markup.cjs +3 -4
  13. package/dist/markup/markup.js +3 -4
  14. package/dist/markup/serializeDom.cjs +1 -1
  15. package/dist/markup/serializeDom.js +1 -1
  16. package/dist/process/processAudiobook.cjs +8 -12
  17. package/dist/process/processAudiobook.js +8 -12
  18. package/dist/process/ranges.cjs +3 -3
  19. package/dist/process/ranges.js +3 -3
  20. package/dist/transcribe/transcribe.cjs +9 -14
  21. package/dist/transcribe/transcribe.js +9 -14
  22. package/package.json +3 -1
  23. package/prebuilds/darwin-arm64/@storyteller-platform+align.node +0 -0
  24. package/prebuilds/linux-arm64/@storyteller-platform+align.node +0 -0
  25. package/prebuilds/linux-x64/@storyteller-platform+align.node +0 -0
  26. package/dist/align/__tests__/align.test.cjs +0 -283
  27. package/dist/align/__tests__/align.test.d.cts +0 -2
  28. package/dist/align/__tests__/align.test.d.ts +0 -2
  29. package/dist/align/__tests__/align.test.js +0 -219
  30. package/dist/align/__tests__/slugify.test.cjs +0 -64
  31. package/dist/align/__tests__/slugify.test.d.cts +0 -2
  32. package/dist/align/__tests__/slugify.test.d.ts +0 -2
  33. package/dist/align/__tests__/slugify.test.js +0 -41
  34. package/dist/errorAlign/__tests__/errorAlign.test.cjs +0 -100
  35. package/dist/errorAlign/__tests__/errorAlign.test.d.cts +0 -2
  36. package/dist/errorAlign/__tests__/errorAlign.test.d.ts +0 -2
  37. package/dist/errorAlign/__tests__/errorAlign.test.js +0 -77
  38. package/dist/errorAlign/__tests__/native.test.cjs +0 -118
  39. package/dist/errorAlign/__tests__/native.test.d.cts +0 -2
  40. package/dist/errorAlign/__tests__/native.test.d.ts +0 -2
  41. package/dist/errorAlign/__tests__/native.test.js +0 -107
  42. package/dist/markup/__tests__/markup.test.cjs +0 -491
  43. package/dist/markup/__tests__/markup.test.d.cts +0 -2
  44. package/dist/markup/__tests__/markup.test.d.ts +0 -2
  45. package/dist/markup/__tests__/markup.test.js +0 -468
  46. package/dist/markup/__tests__/parseDom.test.cjs +0 -112
  47. package/dist/markup/__tests__/parseDom.test.d.cts +0 -2
  48. package/dist/markup/__tests__/parseDom.test.d.ts +0 -2
  49. package/dist/markup/__tests__/parseDom.test.js +0 -89
  50. package/dist/markup/__tests__/serializeDom.test.cjs +0 -120
  51. package/dist/markup/__tests__/serializeDom.test.d.cts +0 -2
  52. package/dist/markup/__tests__/serializeDom.test.d.ts +0 -2
  53. package/dist/markup/__tests__/serializeDom.test.js +0 -97
  54. package/dist/markup/__tests__/transform.test.cjs +0 -122
  55. package/dist/markup/__tests__/transform.test.d.cts +0 -2
  56. package/dist/markup/__tests__/transform.test.d.ts +0 -2
  57. package/dist/markup/__tests__/transform.test.js +0 -99
  58. package/dist/process/__tests__/processAudiobook.test.cjs +0 -232
  59. package/dist/process/__tests__/processAudiobook.test.d.cts +0 -2
  60. package/dist/process/__tests__/processAudiobook.test.d.ts +0 -2
  61. package/dist/process/__tests__/processAudiobook.test.js +0 -209
@@ -1,120 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (let key of __getOwnPropNames(from))
11
- if (!__hasOwnProp.call(to, key) && key !== except)
12
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- }
14
- return to;
15
- };
16
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
- // If the importer is in node compatibility mode or this is not an ESM
18
- // file that has been converted to a CommonJS file using a Babel-
19
- // compatible transform (i.e. "__esModule" has not been set), then set
20
- // "default" to the CommonJS "module.exports" for node compatibility.
21
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
- mod
23
- ));
24
- var import_node_assert = __toESM(require("node:assert"), 1);
25
- var import_node_test = require("node:test");
26
- var import_epub = require("@storyteller-platform/epub");
27
- var import_model = require("../model.cjs");
28
- var import_serializeDom = require("../serializeDom.cjs");
29
- void (0, import_node_test.describe)("serializeDom", () => {
30
- void (0, import_node_test.it)("should serialize nested DOM", () => {
31
- const result = (0, import_serializeDom.serializeDom)(
32
- new import_model.Root([new import_model.Node("p", {}, [new import_model.TextNode("Hello, world!")])])
33
- );
34
- import_node_assert.default.deepStrictEqual(result, [
35
- import_epub.Epub.createXmlElement("p", {}, [import_epub.Epub.createXmlTextNode("Hello, world!")])
36
- ]);
37
- });
38
- void (0, import_node_test.it)("should serialize nested marks", () => {
39
- const result = (0, import_serializeDom.serializeDom)(
40
- new import_model.Root([
41
- new import_model.Node("p", {}, [
42
- new import_model.TextNode("Hello, world!", [new import_model.Mark("strong"), new import_model.Mark("em")])
43
- ])
44
- ])
45
- );
46
- import_node_assert.default.deepStrictEqual(result, [
47
- import_epub.Epub.createXmlElement("p", {}, [
48
- import_epub.Epub.createXmlElement("strong", {}, [
49
- import_epub.Epub.createXmlElement("em", {}, [
50
- import_epub.Epub.createXmlTextNode("Hello, world!")
51
- ])
52
- ])
53
- ])
54
- ]);
55
- });
56
- void (0, import_node_test.it)("should join adjacent marks", () => {
57
- const result = (0, import_serializeDom.serializeDom)(
58
- new import_model.Root([
59
- new import_model.Node("p", {}, [
60
- new import_model.TextNode("Hello,", [new import_model.Mark("strong"), new import_model.Mark("em")]),
61
- new import_model.TextNode(" world!", [new import_model.Mark("strong")])
62
- ])
63
- ])
64
- );
65
- import_node_assert.default.deepStrictEqual(result, [
66
- import_epub.Epub.createXmlElement("p", {}, [
67
- import_epub.Epub.createXmlElement("strong", {}, [
68
- import_epub.Epub.createXmlElement("em", {}, [import_epub.Epub.createXmlTextNode("Hello,")]),
69
- import_epub.Epub.createXmlTextNode(" world!")
70
- ])
71
- ])
72
- ]);
73
- });
74
- void (0, import_node_test.it)("should preserve attributes", () => {
75
- const result = (0, import_serializeDom.serializeDom)(
76
- new import_model.Root([
77
- new import_model.Node("p", { id: "p1" }, [
78
- new import_model.TextNode("Hello, world!", [new import_model.Mark("span", { class: "red" })])
79
- ])
80
- ])
81
- );
82
- import_node_assert.default.deepStrictEqual(result, [
83
- import_epub.Epub.createXmlElement("p", { id: "p1" }, [
84
- import_epub.Epub.createXmlElement("span", { class: "red" }, [
85
- import_epub.Epub.createXmlTextNode("Hello, world!")
86
- ])
87
- ])
88
- ]);
89
- });
90
- void (0, import_node_test.it)("should preserve leaf nodes", () => {
91
- const result = (0, import_serializeDom.serializeDom)(
92
- new import_model.Root([
93
- new import_model.Node("p", {}, [
94
- new import_model.TextNode("Hello,", [new import_model.Mark("span")]),
95
- new import_model.Node(
96
- "a",
97
- { id: "Page_v" },
98
- [],
99
- [
100
- new import_model.Mark("span"),
101
- new import_model.Mark("span", { class: "x-ebookmaker-pageno" })
102
- ]
103
- ),
104
- new import_model.TextNode(" world!", [new import_model.Mark("span")])
105
- ])
106
- ])
107
- );
108
- import_node_assert.default.deepStrictEqual(result, [
109
- import_epub.Epub.createXmlElement("p", {}, [
110
- import_epub.Epub.createXmlElement("span", {}, [
111
- import_epub.Epub.createXmlTextNode("Hello,"),
112
- import_epub.Epub.createXmlElement("span", { class: "x-ebookmaker-pageno" }, [
113
- import_epub.Epub.createXmlElement("a", { id: "Page_v" })
114
- ]),
115
- import_epub.Epub.createXmlTextNode(" world!")
116
- ])
117
- ])
118
- ]);
119
- });
120
- });
@@ -1,2 +0,0 @@
1
-
2
- export { }
@@ -1,2 +0,0 @@
1
-
2
- export { }
@@ -1,97 +0,0 @@
1
- import assert from "node:assert";
2
- import { describe, it } from "node:test";
3
- import { Epub } from "@storyteller-platform/epub";
4
- import { Mark, Node, Root, TextNode } from "../model.js";
5
- import { serializeDom } from "../serializeDom.js";
6
- void describe("serializeDom", () => {
7
- void it("should serialize nested DOM", () => {
8
- const result = serializeDom(
9
- new Root([new Node("p", {}, [new TextNode("Hello, world!")])])
10
- );
11
- assert.deepStrictEqual(result, [
12
- Epub.createXmlElement("p", {}, [Epub.createXmlTextNode("Hello, world!")])
13
- ]);
14
- });
15
- void it("should serialize nested marks", () => {
16
- const result = serializeDom(
17
- new Root([
18
- new Node("p", {}, [
19
- new TextNode("Hello, world!", [new Mark("strong"), new Mark("em")])
20
- ])
21
- ])
22
- );
23
- assert.deepStrictEqual(result, [
24
- Epub.createXmlElement("p", {}, [
25
- Epub.createXmlElement("strong", {}, [
26
- Epub.createXmlElement("em", {}, [
27
- Epub.createXmlTextNode("Hello, world!")
28
- ])
29
- ])
30
- ])
31
- ]);
32
- });
33
- void it("should join adjacent marks", () => {
34
- const result = serializeDom(
35
- new Root([
36
- new Node("p", {}, [
37
- new TextNode("Hello,", [new Mark("strong"), new Mark("em")]),
38
- new TextNode(" world!", [new Mark("strong")])
39
- ])
40
- ])
41
- );
42
- assert.deepStrictEqual(result, [
43
- Epub.createXmlElement("p", {}, [
44
- Epub.createXmlElement("strong", {}, [
45
- Epub.createXmlElement("em", {}, [Epub.createXmlTextNode("Hello,")]),
46
- Epub.createXmlTextNode(" world!")
47
- ])
48
- ])
49
- ]);
50
- });
51
- void it("should preserve attributes", () => {
52
- const result = serializeDom(
53
- new Root([
54
- new Node("p", { id: "p1" }, [
55
- new TextNode("Hello, world!", [new Mark("span", { class: "red" })])
56
- ])
57
- ])
58
- );
59
- assert.deepStrictEqual(result, [
60
- Epub.createXmlElement("p", { id: "p1" }, [
61
- Epub.createXmlElement("span", { class: "red" }, [
62
- Epub.createXmlTextNode("Hello, world!")
63
- ])
64
- ])
65
- ]);
66
- });
67
- void it("should preserve leaf nodes", () => {
68
- const result = serializeDom(
69
- new Root([
70
- new Node("p", {}, [
71
- new TextNode("Hello,", [new Mark("span")]),
72
- new Node(
73
- "a",
74
- { id: "Page_v" },
75
- [],
76
- [
77
- new Mark("span"),
78
- new Mark("span", { class: "x-ebookmaker-pageno" })
79
- ]
80
- ),
81
- new TextNode(" world!", [new Mark("span")])
82
- ])
83
- ])
84
- );
85
- assert.deepStrictEqual(result, [
86
- Epub.createXmlElement("p", {}, [
87
- Epub.createXmlElement("span", {}, [
88
- Epub.createXmlTextNode("Hello,"),
89
- Epub.createXmlElement("span", { class: "x-ebookmaker-pageno" }, [
90
- Epub.createXmlElement("a", { id: "Page_v" })
91
- ]),
92
- Epub.createXmlTextNode(" world!")
93
- ])
94
- ])
95
- ]);
96
- });
97
- });
@@ -1,122 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (let key of __getOwnPropNames(from))
11
- if (!__hasOwnProp.call(to, key) && key !== except)
12
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- }
14
- return to;
15
- };
16
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
- // If the importer is in node compatibility mode or this is not an ESM
18
- // file that has been converted to a CommonJS file using a Babel-
19
- // compatible transform (i.e. "__esModule" has not been set), then set
20
- // "default" to the CommonJS "module.exports" for node compatibility.
21
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
- mod
23
- ));
24
- var import_node_assert = __toESM(require("node:assert"), 1);
25
- var import_node_test = require("node:test");
26
- var import_model = require("../model.cjs");
27
- var import_transform = require("../transform.cjs");
28
- void (0, import_node_test.describe)("addMark", () => {
29
- void (0, import_node_test.it)("should add a mark", () => {
30
- const result = (0, import_transform.addMark)(
31
- new import_model.Root([new import_model.Node("p", {}, [new import_model.TextNode("Hello, world!")])]),
32
- 1,
33
- 14,
34
- new import_model.Mark("span", { id: "test" })
35
- );
36
- import_node_assert.default.deepStrictEqual(
37
- result,
38
- new import_model.Root([
39
- new import_model.Node("p", {}, [
40
- new import_model.TextNode("Hello, world!", [new import_model.Mark("span", { id: "test" })])
41
- ])
42
- ])
43
- );
44
- });
45
- void (0, import_node_test.it)("should add a mark at the start of a text node", () => {
46
- const result = (0, import_transform.addMark)(
47
- new import_model.Root([new import_model.Node("p", {}, [new import_model.TextNode("Hello, world!")])]),
48
- 1,
49
- 7,
50
- new import_model.Mark("span", { id: "test" })
51
- );
52
- import_node_assert.default.deepStrictEqual(
53
- result,
54
- new import_model.Root([
55
- new import_model.Node("p", {}, [
56
- new import_model.TextNode("Hello,", [new import_model.Mark("span", { id: "test" })]),
57
- new import_model.TextNode(" world!")
58
- ])
59
- ])
60
- );
61
- });
62
- void (0, import_node_test.it)("should add a mark at the end of a text node", () => {
63
- const result = (0, import_transform.addMark)(
64
- new import_model.Root([new import_model.Node("p", {}, [new import_model.TextNode("Hello, world!")])]),
65
- 7,
66
- 14,
67
- new import_model.Mark("span", { id: "test" })
68
- );
69
- import_node_assert.default.deepStrictEqual(
70
- result,
71
- new import_model.Root([
72
- new import_model.Node("p", {}, [
73
- new import_model.TextNode("Hello,"),
74
- new import_model.TextNode(" world!", [new import_model.Mark("span", { id: "test" })])
75
- ])
76
- ])
77
- );
78
- });
79
- void (0, import_node_test.it)("should add a mark within a text node", () => {
80
- const result = (0, import_transform.addMark)(
81
- new import_model.Root([new import_model.Node("p", {}, [new import_model.TextNode("Hello, world!")])]),
82
- 4,
83
- 10,
84
- new import_model.Mark("span", { id: "test" })
85
- );
86
- import_node_assert.default.deepStrictEqual(
87
- result,
88
- new import_model.Root([
89
- new import_model.Node("p", {}, [
90
- new import_model.TextNode("Hel"),
91
- new import_model.TextNode("lo, wo", [new import_model.Mark("span", { id: "test" })]),
92
- new import_model.TextNode("rld!")
93
- ])
94
- ])
95
- );
96
- });
97
- void (0, import_node_test.it)("should preserve existing marks", () => {
98
- const result = (0, import_transform.addMark)(
99
- new import_model.Root([
100
- new import_model.Node("p", {}, [
101
- new import_model.TextNode("Hello, world!", [new import_model.Mark("span", { class: "red" })])
102
- ])
103
- ]),
104
- 4,
105
- 10,
106
- new import_model.Mark("span", { id: "test" })
107
- );
108
- import_node_assert.default.deepStrictEqual(
109
- result,
110
- new import_model.Root([
111
- new import_model.Node("p", {}, [
112
- new import_model.TextNode("Hel", [new import_model.Mark("span", { class: "red" })]),
113
- new import_model.TextNode("lo, wo", [
114
- new import_model.Mark("span", { id: "test" }),
115
- new import_model.Mark("span", { class: "red" })
116
- ]),
117
- new import_model.TextNode("rld!", [new import_model.Mark("span", { class: "red" })])
118
- ])
119
- ])
120
- );
121
- });
122
- });
@@ -1,2 +0,0 @@
1
-
2
- export { }
@@ -1,2 +0,0 @@
1
-
2
- export { }
@@ -1,99 +0,0 @@
1
- import assert from "node:assert";
2
- import { describe, it } from "node:test";
3
- import { Mark, Node, Root, TextNode } from "../model.js";
4
- import { addMark } from "../transform.js";
5
- void describe("addMark", () => {
6
- void it("should add a mark", () => {
7
- const result = addMark(
8
- new Root([new Node("p", {}, [new TextNode("Hello, world!")])]),
9
- 1,
10
- 14,
11
- new Mark("span", { id: "test" })
12
- );
13
- assert.deepStrictEqual(
14
- result,
15
- new Root([
16
- new Node("p", {}, [
17
- new TextNode("Hello, world!", [new Mark("span", { id: "test" })])
18
- ])
19
- ])
20
- );
21
- });
22
- void it("should add a mark at the start of a text node", () => {
23
- const result = addMark(
24
- new Root([new Node("p", {}, [new TextNode("Hello, world!")])]),
25
- 1,
26
- 7,
27
- new Mark("span", { id: "test" })
28
- );
29
- assert.deepStrictEqual(
30
- result,
31
- new Root([
32
- new Node("p", {}, [
33
- new TextNode("Hello,", [new Mark("span", { id: "test" })]),
34
- new TextNode(" world!")
35
- ])
36
- ])
37
- );
38
- });
39
- void it("should add a mark at the end of a text node", () => {
40
- const result = addMark(
41
- new Root([new Node("p", {}, [new TextNode("Hello, world!")])]),
42
- 7,
43
- 14,
44
- new Mark("span", { id: "test" })
45
- );
46
- assert.deepStrictEqual(
47
- result,
48
- new Root([
49
- new Node("p", {}, [
50
- new TextNode("Hello,"),
51
- new TextNode(" world!", [new Mark("span", { id: "test" })])
52
- ])
53
- ])
54
- );
55
- });
56
- void it("should add a mark within a text node", () => {
57
- const result = addMark(
58
- new Root([new Node("p", {}, [new TextNode("Hello, world!")])]),
59
- 4,
60
- 10,
61
- new Mark("span", { id: "test" })
62
- );
63
- assert.deepStrictEqual(
64
- result,
65
- new Root([
66
- new Node("p", {}, [
67
- new TextNode("Hel"),
68
- new TextNode("lo, wo", [new Mark("span", { id: "test" })]),
69
- new TextNode("rld!")
70
- ])
71
- ])
72
- );
73
- });
74
- void it("should preserve existing marks", () => {
75
- const result = addMark(
76
- new Root([
77
- new Node("p", {}, [
78
- new TextNode("Hello, world!", [new Mark("span", { class: "red" })])
79
- ])
80
- ]),
81
- 4,
82
- 10,
83
- new Mark("span", { id: "test" })
84
- );
85
- assert.deepStrictEqual(
86
- result,
87
- new Root([
88
- new Node("p", {}, [
89
- new TextNode("Hel", [new Mark("span", { class: "red" })]),
90
- new TextNode("lo, wo", [
91
- new Mark("span", { id: "test" }),
92
- new Mark("span", { class: "red" })
93
- ]),
94
- new TextNode("rld!", [new Mark("span", { class: "red" })])
95
- ])
96
- ])
97
- );
98
- });
99
- });
@@ -1,232 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (let key of __getOwnPropNames(from))
11
- if (!__hasOwnProp.call(to, key) && key !== except)
12
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- }
14
- return to;
15
- };
16
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
- // If the importer is in node compatibility mode or this is not an ESM
18
- // file that has been converted to a CommonJS file using a Babel-
19
- // compatible transform (i.e. "__esModule" has not been set), then set
20
- // "default" to the CommonJS "module.exports" for node compatibility.
21
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
- mod
23
- ));
24
- var import_node_assert = __toESM(require("node:assert"), 1);
25
- var import_node_crypto = require("node:crypto");
26
- var import_promises = require("node:fs/promises");
27
- var import_node_os = require("node:os");
28
- var import_node_path = require("node:path");
29
- var import_node_test = require("node:test");
30
- var import_async_semaphore = require("@esfx/async-semaphore");
31
- var import_logging = require("../../common/logging.cjs");
32
- var import_processAudiobook = require("../processAudiobook.cjs");
33
- function createTestLogger() {
34
- return (0, import_logging.createLogger)(process.env["CI"] ? "silent" : "info");
35
- }
36
- void (0, import_node_test.describe)("processFile", () => {
37
- void (0, import_node_test.it)("can process mpeg4 files", async () => {
38
- const input = (0, import_node_path.join)(
39
- "src",
40
- "__fixtures__",
41
- "mpeg4",
42
- "MobyDickOrTheWhalePart1_librivox.m4b"
43
- );
44
- const outDir = (0, import_node_path.join)("src", "__fixtures__", "__output__", (0, import_node_crypto.randomUUID)());
45
- await (0, import_promises.mkdir)(outDir, { recursive: true });
46
- await (0, import_processAudiobook.processFile)(input, outDir, "00000-", {
47
- lock: new import_async_semaphore.AsyncSemaphore((0, import_node_os.availableParallelism)() - 1),
48
- logger: createTestLogger()
49
- });
50
- const outFiles = await (0, import_promises.readdir)(outDir);
51
- import_node_assert.default.deepStrictEqual(outFiles, [
52
- "00000-00001.mp4",
53
- "00000-00002.mp4",
54
- "00000-00003.mp4",
55
- "00000-00004.mp4",
56
- "00000-00005.mp4",
57
- "00000-00006.mp4",
58
- "00000-00007.mp4",
59
- "00000-00008.mp4",
60
- "00000-00009.mp4",
61
- "00000-00010.mp4",
62
- "00000-00011.mp4"
63
- ]);
64
- });
65
- void (0, import_node_test.it)("can process mp3 files", async () => {
66
- const input = (0, import_node_path.join)(
67
- "src",
68
- "__fixtures__",
69
- "mp3",
70
- "MobyDickOrTheWhalePart1_librivox.mp3"
71
- );
72
- const outDir = (0, import_node_path.join)("src", "__fixtures__", "__output__", (0, import_node_crypto.randomUUID)());
73
- await (0, import_promises.mkdir)(outDir, { recursive: true });
74
- await (0, import_processAudiobook.processFile)(input, outDir, "00000-", {
75
- lock: new import_async_semaphore.AsyncSemaphore((0, import_node_os.availableParallelism)() - 1),
76
- logger: createTestLogger()
77
- });
78
- const outFiles = await (0, import_promises.readdir)(outDir);
79
- import_node_assert.default.deepStrictEqual(outFiles, [
80
- "00000-00001.mp3",
81
- "00000-00002.mp3",
82
- "00000-00003.mp3",
83
- "00000-00004.mp3",
84
- "00000-00005.mp3",
85
- "00000-00006.mp3",
86
- "00000-00007.mp3",
87
- "00000-00008.mp3",
88
- "00000-00009.mp3",
89
- "00000-00010.mp3",
90
- "00000-00011.mp3"
91
- ]);
92
- });
93
- void (0, import_node_test.it)("can process opus files", async () => {
94
- const input = (0, import_node_path.join)(
95
- "src",
96
- "__fixtures__",
97
- "opus",
98
- "MobyDickOrTheWhalePart1_librivox.opus"
99
- );
100
- const outDir = (0, import_node_path.join)("src", "__fixtures__", "__output__", (0, import_node_crypto.randomUUID)());
101
- await (0, import_promises.mkdir)(outDir, { recursive: true });
102
- await (0, import_processAudiobook.processFile)(input, outDir, "00000-", {
103
- lock: new import_async_semaphore.AsyncSemaphore((0, import_node_os.availableParallelism)() - 1),
104
- logger: createTestLogger()
105
- });
106
- const outFiles = await (0, import_promises.readdir)(outDir);
107
- import_node_assert.default.deepStrictEqual(outFiles, [
108
- "00000-00001.mp4",
109
- "00000-00002.mp4",
110
- "00000-00003.mp4",
111
- "00000-00004.mp4",
112
- "00000-00005.mp4",
113
- "00000-00006.mp4",
114
- "00000-00007.mp4",
115
- "00000-00008.mp4",
116
- "00000-00009.mp4",
117
- "00000-00010.mp4",
118
- "00000-00011.mp4"
119
- ]);
120
- });
121
- void (0, import_node_test.it)("can handle nonstandard audio file", async () => {
122
- const input = (0, import_node_path.join)("src", "__fixtures__", "flac", "mobydick.flac");
123
- const outDir = (0, import_node_path.join)("src", "__fixtures__", "__output__", (0, import_node_crypto.randomUUID)());
124
- await (0, import_promises.mkdir)(outDir, { recursive: true });
125
- await (0, import_processAudiobook.processFile)(input, outDir, "00000-", {
126
- lock: new import_async_semaphore.AsyncSemaphore((0, import_node_os.availableParallelism)() - 1),
127
- logger: createTestLogger()
128
- });
129
- const outFiles = await (0, import_promises.readdir)(outDir);
130
- import_node_assert.default.deepStrictEqual(outFiles, ["00000-00001.flac"]);
131
- });
132
- void (0, import_node_test.it)("can transcode nonstandard audio file", async () => {
133
- const input = (0, import_node_path.join)("src", "__fixtures__", "flac", "mobydick.flac");
134
- const outDir = (0, import_node_path.join)("src", "__fixtures__", "__output__", (0, import_node_crypto.randomUUID)());
135
- await (0, import_promises.mkdir)(outDir, { recursive: true });
136
- await (0, import_processAudiobook.processFile)(input, outDir, "00000-", {
137
- encoding: { codec: "libopus" },
138
- lock: new import_async_semaphore.AsyncSemaphore((0, import_node_os.availableParallelism)() - 1),
139
- logger: createTestLogger()
140
- });
141
- const outFiles = await (0, import_promises.readdir)(outDir);
142
- import_node_assert.default.deepStrictEqual(outFiles, ["00000-00001.mp4"]);
143
- });
144
- void (0, import_node_test.it)("can process zip files", async () => {
145
- const input = (0, import_node_path.join)("src", "__fixtures__", "zip", "moby-dick-1-7-audio.zip");
146
- const outDir = (0, import_node_path.join)("src", "__fixtures__", "__output__", (0, import_node_crypto.randomUUID)());
147
- await (0, import_promises.mkdir)(outDir, { recursive: true });
148
- await (0, import_processAudiobook.processFile)(input, outDir, "00000-", {
149
- lock: new import_async_semaphore.AsyncSemaphore((0, import_node_os.availableParallelism)() - 1),
150
- logger: createTestLogger()
151
- });
152
- const outFiles = await (0, import_promises.readdir)(outDir);
153
- import_node_assert.default.deepStrictEqual(outFiles, [
154
- "00000-00001.mp3",
155
- "00000-00002.mp3",
156
- "00000-00003.mp3"
157
- ]);
158
- });
159
- void (0, import_node_test.it)("splits files longer than the max length", async () => {
160
- const input = (0, import_node_path.join)("src", "__fixtures__", "zip", "moby-dick-1-7-audio.zip");
161
- const outDir = (0, import_node_path.join)("src", "__fixtures__", "__output__", (0, import_node_crypto.randomUUID)());
162
- await (0, import_promises.mkdir)(outDir, { recursive: true });
163
- await (0, import_processAudiobook.processFile)(input, outDir, "00000-", {
164
- maxLength: 0.1,
165
- lock: new import_async_semaphore.AsyncSemaphore((0, import_node_os.availableParallelism)() - 1),
166
- logger: createTestLogger()
167
- });
168
- const outFiles = await (0, import_promises.readdir)(outDir);
169
- import_node_assert.default.deepStrictEqual(outFiles, [
170
- "00000-00001.mp3",
171
- "00000-00002.mp3",
172
- "00000-00003.mp3",
173
- "00000-00004.mp3",
174
- "00000-00005.mp3",
175
- "00000-00006.mp3",
176
- "00000-00007.mp3",
177
- "00000-00008.mp3",
178
- "00000-00009.mp3",
179
- "00000-00010.mp3",
180
- "00000-00011.mp3",
181
- "00000-00012.mp3",
182
- "00000-00013.mp3",
183
- "00000-00014.mp3",
184
- "00000-00015.mp3",
185
- "00000-00016.mp3",
186
- "00000-00017.mp3"
187
- ]);
188
- });
189
- void (0, import_node_test.it)("splits files longer than the max length, even if they have chapters", async () => {
190
- const input = (0, import_node_path.join)(
191
- "src",
192
- "__fixtures__",
193
- "mpeg4",
194
- "MobyDickOrTheWhalePart1_librivox.m4b"
195
- );
196
- const outDir = (0, import_node_path.join)("src", "__fixtures__", "__output__", (0, import_node_crypto.randomUUID)());
197
- await (0, import_promises.mkdir)(outDir, { recursive: true });
198
- await (0, import_processAudiobook.processFile)(input, outDir, "00000-", {
199
- maxLength: 0.25,
200
- lock: new import_async_semaphore.AsyncSemaphore((0, import_node_os.availableParallelism)() - 1),
201
- logger: createTestLogger()
202
- });
203
- const outFiles = await (0, import_promises.readdir)(outDir);
204
- import_node_assert.default.deepStrictEqual(outFiles, [
205
- "00000-00001.mp4",
206
- "00000-00002.mp4",
207
- "00000-00003.mp4",
208
- "00000-00004.mp4",
209
- "00000-00005.mp4",
210
- "00000-00006.mp4",
211
- "00000-00007.mp4",
212
- "00000-00008.mp4",
213
- "00000-00009.mp4",
214
- "00000-00010.mp4",
215
- "00000-00011.mp4",
216
- "00000-00012.mp4",
217
- "00000-00013.mp4",
218
- "00000-00014.mp4",
219
- "00000-00015.mp4",
220
- "00000-00016.mp4",
221
- "00000-00017.mp4",
222
- "00000-00018.mp4",
223
- "00000-00019.mp4",
224
- "00000-00020.mp4",
225
- "00000-00021.mp4",
226
- "00000-00022.mp4",
227
- "00000-00023.mp4",
228
- "00000-00024.mp4",
229
- "00000-00025.mp4"
230
- ]);
231
- });
232
- });