@kenzuya/mediabunny 1.26.0 → 1.28.5
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/README.md +1 -1
- package/dist/bundles/{mediabunny.mjs → mediabunny.js} +21963 -21388
- package/dist/bundles/mediabunny.min.js +490 -0
- package/dist/modules/shared/mp3-misc.d.ts.map +1 -1
- package/dist/modules/src/adts/adts-demuxer.d.ts +6 -6
- package/dist/modules/src/adts/adts-demuxer.d.ts.map +1 -1
- package/dist/modules/src/adts/adts-muxer.d.ts +4 -4
- package/dist/modules/src/adts/adts-muxer.d.ts.map +1 -1
- package/dist/modules/src/adts/adts-reader.d.ts +1 -1
- package/dist/modules/src/adts/adts-reader.d.ts.map +1 -1
- package/dist/modules/src/avi/avi-demuxer.d.ts +44 -0
- package/dist/modules/src/avi/avi-demuxer.d.ts.map +1 -0
- package/dist/modules/src/avi/avi-misc.d.ts +88 -0
- package/dist/modules/src/avi/avi-misc.d.ts.map +1 -0
- package/dist/modules/src/avi/avi-muxer.d.ts +45 -0
- package/dist/modules/src/avi/avi-muxer.d.ts.map +1 -0
- package/dist/modules/src/avi/riff-writer.d.ts +26 -0
- package/dist/modules/src/avi/riff-writer.d.ts.map +1 -0
- package/dist/modules/src/codec-data.d.ts +8 -3
- package/dist/modules/src/codec-data.d.ts.map +1 -1
- package/dist/modules/src/codec.d.ts +10 -10
- package/dist/modules/src/codec.d.ts.map +1 -1
- package/dist/modules/src/conversion.d.ts +33 -16
- package/dist/modules/src/conversion.d.ts.map +1 -1
- package/dist/modules/src/custom-coder.d.ts +8 -8
- package/dist/modules/src/custom-coder.d.ts.map +1 -1
- package/dist/modules/src/demuxer.d.ts +3 -3
- package/dist/modules/src/demuxer.d.ts.map +1 -1
- package/dist/modules/src/encode.d.ts +8 -8
- package/dist/modules/src/encode.d.ts.map +1 -1
- package/dist/modules/src/flac/flac-demuxer.d.ts +7 -7
- package/dist/modules/src/flac/flac-demuxer.d.ts.map +1 -1
- package/dist/modules/src/flac/flac-misc.d.ts +3 -3
- package/dist/modules/src/flac/flac-misc.d.ts.map +1 -1
- package/dist/modules/src/flac/flac-muxer.d.ts +5 -5
- package/dist/modules/src/flac/flac-muxer.d.ts.map +1 -1
- package/dist/modules/src/id3.d.ts +3 -3
- package/dist/modules/src/id3.d.ts.map +1 -1
- package/dist/modules/src/index.d.ts +20 -20
- package/dist/modules/src/index.d.ts.map +1 -1
- package/dist/modules/src/input-format.d.ts +22 -0
- package/dist/modules/src/input-format.d.ts.map +1 -1
- package/dist/modules/src/input-track.d.ts +8 -8
- package/dist/modules/src/input-track.d.ts.map +1 -1
- package/dist/modules/src/input.d.ts +12 -12
- package/dist/modules/src/isobmff/isobmff-boxes.d.ts +2 -2
- package/dist/modules/src/isobmff/isobmff-boxes.d.ts.map +1 -1
- package/dist/modules/src/isobmff/isobmff-demuxer.d.ts +12 -12
- package/dist/modules/src/isobmff/isobmff-demuxer.d.ts.map +1 -1
- package/dist/modules/src/isobmff/isobmff-misc.d.ts.map +1 -1
- package/dist/modules/src/isobmff/isobmff-muxer.d.ts +11 -11
- package/dist/modules/src/isobmff/isobmff-muxer.d.ts.map +1 -1
- package/dist/modules/src/isobmff/isobmff-reader.d.ts +2 -2
- package/dist/modules/src/isobmff/isobmff-reader.d.ts.map +1 -1
- package/dist/modules/src/matroska/ebml.d.ts +3 -3
- package/dist/modules/src/matroska/ebml.d.ts.map +1 -1
- package/dist/modules/src/matroska/matroska-demuxer.d.ts +13 -13
- package/dist/modules/src/matroska/matroska-demuxer.d.ts.map +1 -1
- package/dist/modules/src/matroska/matroska-input.d.ts +33 -0
- package/dist/modules/src/matroska/matroska-input.d.ts.map +1 -0
- package/dist/modules/src/matroska/matroska-misc.d.ts.map +1 -1
- package/dist/modules/src/matroska/matroska-muxer.d.ts +5 -5
- package/dist/modules/src/matroska/matroska-muxer.d.ts.map +1 -1
- package/dist/modules/src/media-sink.d.ts +5 -5
- package/dist/modules/src/media-sink.d.ts.map +1 -1
- package/dist/modules/src/media-source.d.ts +22 -4
- package/dist/modules/src/media-source.d.ts.map +1 -1
- package/dist/modules/src/metadata.d.ts +2 -2
- package/dist/modules/src/metadata.d.ts.map +1 -1
- package/dist/modules/src/misc.d.ts +5 -4
- package/dist/modules/src/misc.d.ts.map +1 -1
- package/dist/modules/src/mp3/mp3-demuxer.d.ts +7 -7
- package/dist/modules/src/mp3/mp3-demuxer.d.ts.map +1 -1
- package/dist/modules/src/mp3/mp3-muxer.d.ts +4 -4
- package/dist/modules/src/mp3/mp3-muxer.d.ts.map +1 -1
- package/dist/modules/src/mp3/mp3-reader.d.ts +2 -2
- package/dist/modules/src/mp3/mp3-reader.d.ts.map +1 -1
- package/dist/modules/src/mp3/mp3-writer.d.ts +1 -1
- package/dist/modules/src/mp3/mp3-writer.d.ts.map +1 -1
- package/dist/modules/src/muxer.d.ts +4 -4
- package/dist/modules/src/muxer.d.ts.map +1 -1
- package/dist/modules/src/node.d.ts +1 -1
- package/dist/modules/src/ogg/ogg-demuxer.d.ts +7 -7
- package/dist/modules/src/ogg/ogg-demuxer.d.ts.map +1 -1
- package/dist/modules/src/ogg/ogg-misc.d.ts +1 -1
- package/dist/modules/src/ogg/ogg-misc.d.ts.map +1 -1
- package/dist/modules/src/ogg/ogg-muxer.d.ts +5 -5
- package/dist/modules/src/ogg/ogg-muxer.d.ts.map +1 -1
- package/dist/modules/src/ogg/ogg-reader.d.ts +1 -1
- package/dist/modules/src/ogg/ogg-reader.d.ts.map +1 -1
- package/dist/modules/src/output-format.d.ts +51 -6
- package/dist/modules/src/output-format.d.ts.map +1 -1
- package/dist/modules/src/output.d.ts +13 -13
- package/dist/modules/src/output.d.ts.map +1 -1
- package/dist/modules/src/packet.d.ts +1 -1
- package/dist/modules/src/packet.d.ts.map +1 -1
- package/dist/modules/src/pcm.d.ts.map +1 -1
- package/dist/modules/src/reader.d.ts +2 -2
- package/dist/modules/src/reader.d.ts.map +1 -1
- package/dist/modules/src/sample.d.ts +57 -15
- package/dist/modules/src/sample.d.ts.map +1 -1
- package/dist/modules/src/source.d.ts +3 -3
- package/dist/modules/src/source.d.ts.map +1 -1
- package/dist/modules/src/subtitles.d.ts +1 -1
- package/dist/modules/src/subtitles.d.ts.map +1 -1
- package/dist/modules/src/target.d.ts +2 -2
- package/dist/modules/src/target.d.ts.map +1 -1
- package/dist/modules/src/tsconfig.tsbuildinfo +1 -1
- package/dist/modules/src/wave/riff-writer.d.ts +1 -1
- package/dist/modules/src/wave/riff-writer.d.ts.map +1 -1
- package/dist/modules/src/wave/wave-demuxer.d.ts +6 -6
- package/dist/modules/src/wave/wave-demuxer.d.ts.map +1 -1
- package/dist/modules/src/wave/wave-muxer.d.ts +4 -4
- package/dist/modules/src/wave/wave-muxer.d.ts.map +1 -1
- package/dist/modules/src/writer.d.ts +1 -1
- package/dist/modules/src/writer.d.ts.map +1 -1
- package/dist/packages/eac3/eac3.wasm +0 -0
- package/dist/packages/eac3/mediabunny-eac3.js +1058 -0
- package/dist/packages/eac3/mediabunny-eac3.min.js +44 -0
- package/dist/packages/mp3-encoder/mediabunny-mp3-encoder.js +694 -0
- package/dist/packages/mp3-encoder/mediabunny-mp3-encoder.min.js +58 -0
- package/dist/packages/mpeg4/mediabunny-mpeg4.js +1198 -0
- package/dist/packages/mpeg4/mediabunny-mpeg4.min.js +44 -0
- package/dist/packages/mpeg4/xvid.wasm +0 -0
- package/package.json +18 -57
- package/dist/bundles/mediabunny.cjs +0 -26140
- package/dist/bundles/mediabunny.min.cjs +0 -147
- package/dist/bundles/mediabunny.min.mjs +0 -146
- package/dist/mediabunny.d.ts +0 -3319
- package/dist/modules/shared/mp3-misc.js +0 -147
- package/dist/modules/src/adts/adts-demuxer.js +0 -239
- package/dist/modules/src/adts/adts-muxer.js +0 -80
- package/dist/modules/src/adts/adts-reader.js +0 -63
- package/dist/modules/src/codec-data.js +0 -1730
- package/dist/modules/src/codec.js +0 -869
- package/dist/modules/src/conversion.js +0 -1459
- package/dist/modules/src/custom-coder.js +0 -117
- package/dist/modules/src/demuxer.js +0 -12
- package/dist/modules/src/encode.js +0 -442
- package/dist/modules/src/flac/flac-demuxer.js +0 -504
- package/dist/modules/src/flac/flac-misc.js +0 -135
- package/dist/modules/src/flac/flac-muxer.js +0 -222
- package/dist/modules/src/id3.js +0 -848
- package/dist/modules/src/index.js +0 -28
- package/dist/modules/src/input-format.js +0 -480
- package/dist/modules/src/input-track.js +0 -372
- package/dist/modules/src/input.js +0 -188
- package/dist/modules/src/isobmff/isobmff-boxes.js +0 -1480
- package/dist/modules/src/isobmff/isobmff-demuxer.js +0 -2618
- package/dist/modules/src/isobmff/isobmff-misc.js +0 -20
- package/dist/modules/src/isobmff/isobmff-muxer.js +0 -966
- package/dist/modules/src/isobmff/isobmff-reader.js +0 -72
- package/dist/modules/src/matroska/ebml.js +0 -653
- package/dist/modules/src/matroska/matroska-demuxer.js +0 -2133
- package/dist/modules/src/matroska/matroska-misc.js +0 -20
- package/dist/modules/src/matroska/matroska-muxer.js +0 -1017
- package/dist/modules/src/media-sink.js +0 -1736
- package/dist/modules/src/media-source.js +0 -1825
- package/dist/modules/src/metadata.js +0 -193
- package/dist/modules/src/misc.js +0 -623
- package/dist/modules/src/mp3/mp3-demuxer.js +0 -285
- package/dist/modules/src/mp3/mp3-muxer.js +0 -123
- package/dist/modules/src/mp3/mp3-reader.js +0 -26
- package/dist/modules/src/mp3/mp3-writer.js +0 -78
- package/dist/modules/src/muxer.js +0 -50
- package/dist/modules/src/node.js +0 -9
- package/dist/modules/src/ogg/ogg-demuxer.js +0 -763
- package/dist/modules/src/ogg/ogg-misc.js +0 -78
- package/dist/modules/src/ogg/ogg-muxer.js +0 -353
- package/dist/modules/src/ogg/ogg-reader.js +0 -65
- package/dist/modules/src/output-format.js +0 -527
- package/dist/modules/src/output.js +0 -300
- package/dist/modules/src/packet.js +0 -182
- package/dist/modules/src/pcm.js +0 -85
- package/dist/modules/src/reader.js +0 -236
- package/dist/modules/src/sample.js +0 -1056
- package/dist/modules/src/source.js +0 -1182
- package/dist/modules/src/subtitles.js +0 -575
- package/dist/modules/src/target.js +0 -140
- package/dist/modules/src/wave/riff-writer.js +0 -30
- package/dist/modules/src/wave/wave-demuxer.js +0 -447
- package/dist/modules/src/wave/wave-muxer.js +0 -318
- package/dist/modules/src/writer.js +0 -370
- package/src/adts/adts-demuxer.ts +0 -331
- package/src/adts/adts-muxer.ts +0 -111
- package/src/adts/adts-reader.ts +0 -85
- package/src/codec-data.ts +0 -2078
- package/src/codec.ts +0 -1092
- package/src/conversion.ts +0 -2112
- package/src/custom-coder.ts +0 -197
- package/src/demuxer.ts +0 -24
- package/src/encode.ts +0 -739
- package/src/flac/flac-demuxer.ts +0 -730
- package/src/flac/flac-misc.ts +0 -164
- package/src/flac/flac-muxer.ts +0 -320
- package/src/id3.ts +0 -925
- package/src/index.ts +0 -221
- package/src/input-format.ts +0 -541
- package/src/input-track.ts +0 -529
- package/src/input.ts +0 -235
- package/src/isobmff/isobmff-boxes.ts +0 -1719
- package/src/isobmff/isobmff-demuxer.ts +0 -3190
- package/src/isobmff/isobmff-misc.ts +0 -29
- package/src/isobmff/isobmff-muxer.ts +0 -1348
- package/src/isobmff/isobmff-reader.ts +0 -91
- package/src/matroska/ebml.ts +0 -730
- package/src/matroska/matroska-demuxer.ts +0 -2481
- package/src/matroska/matroska-misc.ts +0 -29
- package/src/matroska/matroska-muxer.ts +0 -1276
- package/src/media-sink.ts +0 -2179
- package/src/media-source.ts +0 -2243
- package/src/metadata.ts +0 -320
- package/src/misc.ts +0 -798
- package/src/mp3/mp3-demuxer.ts +0 -383
- package/src/mp3/mp3-muxer.ts +0 -166
- package/src/mp3/mp3-reader.ts +0 -34
- package/src/mp3/mp3-writer.ts +0 -120
- package/src/muxer.ts +0 -88
- package/src/node.ts +0 -11
- package/src/ogg/ogg-demuxer.ts +0 -1053
- package/src/ogg/ogg-misc.ts +0 -116
- package/src/ogg/ogg-muxer.ts +0 -497
- package/src/ogg/ogg-reader.ts +0 -93
- package/src/output-format.ts +0 -945
- package/src/output.ts +0 -488
- package/src/packet.ts +0 -263
- package/src/pcm.ts +0 -112
- package/src/reader.ts +0 -323
- package/src/sample.ts +0 -1461
- package/src/source.ts +0 -1688
- package/src/subtitles.ts +0 -711
- package/src/target.ts +0 -204
- package/src/tsconfig.json +0 -16
- package/src/wave/riff-writer.ts +0 -36
- package/src/wave/wave-demuxer.ts +0 -529
- package/src/wave/wave-muxer.ts +0 -371
- package/src/writer.ts +0 -490
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2025-present, Vanilagy and contributors
|
|
3
|
-
*
|
|
4
|
-
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
5
|
-
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
|
-
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Image data with additional metadata.
|
|
10
|
-
*
|
|
11
|
-
* @group Metadata tags
|
|
12
|
-
* @public
|
|
13
|
-
*/
|
|
14
|
-
export class RichImageData {
|
|
15
|
-
/** Creates a new {@link RichImageData}. */
|
|
16
|
-
constructor(
|
|
17
|
-
/** The raw image data. */
|
|
18
|
-
data,
|
|
19
|
-
/** An RFC 6838 MIME type (e.g. image/jpeg, image/png, etc.) */
|
|
20
|
-
mimeType) {
|
|
21
|
-
this.data = data;
|
|
22
|
-
this.mimeType = mimeType;
|
|
23
|
-
if (!(data instanceof Uint8Array)) {
|
|
24
|
-
throw new TypeError('data must be a Uint8Array.');
|
|
25
|
-
}
|
|
26
|
-
if (typeof mimeType !== 'string') {
|
|
27
|
-
throw new TypeError('mimeType must be a string.');
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* A file attached to a media file.
|
|
33
|
-
*
|
|
34
|
-
* @group Metadata tags
|
|
35
|
-
* @public
|
|
36
|
-
*/
|
|
37
|
-
export class AttachedFile {
|
|
38
|
-
/** Creates a new {@link AttachedFile}. */
|
|
39
|
-
constructor(
|
|
40
|
-
/** The raw file data. */
|
|
41
|
-
data,
|
|
42
|
-
/** An RFC 6838 MIME type (e.g. image/jpeg, image/png, font/ttf, etc.) */
|
|
43
|
-
mimeType,
|
|
44
|
-
/** The name of the file. */
|
|
45
|
-
name,
|
|
46
|
-
/** A description of the file. */
|
|
47
|
-
description) {
|
|
48
|
-
this.data = data;
|
|
49
|
-
this.mimeType = mimeType;
|
|
50
|
-
this.name = name;
|
|
51
|
-
this.description = description;
|
|
52
|
-
if (!(data instanceof Uint8Array)) {
|
|
53
|
-
throw new TypeError('data must be a Uint8Array.');
|
|
54
|
-
}
|
|
55
|
-
if (mimeType !== undefined && typeof mimeType !== 'string') {
|
|
56
|
-
throw new TypeError('mimeType, when provided, must be a string.');
|
|
57
|
-
}
|
|
58
|
-
if (name !== undefined && typeof name !== 'string') {
|
|
59
|
-
throw new TypeError('name, when provided, must be a string.');
|
|
60
|
-
}
|
|
61
|
-
if (description !== undefined && typeof description !== 'string') {
|
|
62
|
-
throw new TypeError('description, when provided, must be a string.');
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
;
|
|
67
|
-
export const validateMetadataTags = (tags) => {
|
|
68
|
-
if (!tags || typeof tags !== 'object') {
|
|
69
|
-
throw new TypeError('tags must be an object.');
|
|
70
|
-
}
|
|
71
|
-
if (tags.title !== undefined && typeof tags.title !== 'string') {
|
|
72
|
-
throw new TypeError('tags.title, when provided, must be a string.');
|
|
73
|
-
}
|
|
74
|
-
if (tags.description !== undefined && typeof tags.description !== 'string') {
|
|
75
|
-
throw new TypeError('tags.description, when provided, must be a string.');
|
|
76
|
-
}
|
|
77
|
-
if (tags.artist !== undefined && typeof tags.artist !== 'string') {
|
|
78
|
-
throw new TypeError('tags.artist, when provided, must be a string.');
|
|
79
|
-
}
|
|
80
|
-
if (tags.album !== undefined && typeof tags.album !== 'string') {
|
|
81
|
-
throw new TypeError('tags.album, when provided, must be a string.');
|
|
82
|
-
}
|
|
83
|
-
if (tags.albumArtist !== undefined && typeof tags.albumArtist !== 'string') {
|
|
84
|
-
throw new TypeError('tags.albumArtist, when provided, must be a string.');
|
|
85
|
-
}
|
|
86
|
-
if (tags.trackNumber !== undefined && (!Number.isInteger(tags.trackNumber) || tags.trackNumber <= 0)) {
|
|
87
|
-
throw new TypeError('tags.trackNumber, when provided, must be a positive integer.');
|
|
88
|
-
}
|
|
89
|
-
if (tags.tracksTotal !== undefined
|
|
90
|
-
&& (!Number.isInteger(tags.tracksTotal) || tags.tracksTotal <= 0)) {
|
|
91
|
-
throw new TypeError('tags.tracksTotal, when provided, must be a positive integer.');
|
|
92
|
-
}
|
|
93
|
-
if (tags.discNumber !== undefined && (!Number.isInteger(tags.discNumber) || tags.discNumber <= 0)) {
|
|
94
|
-
throw new TypeError('tags.discNumber, when provided, must be a positive integer.');
|
|
95
|
-
}
|
|
96
|
-
if (tags.discsTotal !== undefined
|
|
97
|
-
&& (!Number.isInteger(tags.discsTotal) || tags.discsTotal <= 0)) {
|
|
98
|
-
throw new TypeError('tags.discsTotal, when provided, must be a positive integer.');
|
|
99
|
-
}
|
|
100
|
-
if (tags.genre !== undefined && typeof tags.genre !== 'string') {
|
|
101
|
-
throw new TypeError('tags.genre, when provided, must be a string.');
|
|
102
|
-
}
|
|
103
|
-
if (tags.date !== undefined && (!(tags.date instanceof Date) || Number.isNaN(tags.date.getTime()))) {
|
|
104
|
-
throw new TypeError('tags.date, when provided, must be a valid Date.');
|
|
105
|
-
}
|
|
106
|
-
if (tags.lyrics !== undefined && typeof tags.lyrics !== 'string') {
|
|
107
|
-
throw new TypeError('tags.lyrics, when provided, must be a string.');
|
|
108
|
-
}
|
|
109
|
-
if (tags.images !== undefined) {
|
|
110
|
-
if (!Array.isArray(tags.images)) {
|
|
111
|
-
throw new TypeError('tags.images, when provided, must be an array.');
|
|
112
|
-
}
|
|
113
|
-
for (const image of tags.images) {
|
|
114
|
-
if (!image || typeof image !== 'object') {
|
|
115
|
-
throw new TypeError('Each image in tags.images must be an object.');
|
|
116
|
-
}
|
|
117
|
-
if (!(image.data instanceof Uint8Array)) {
|
|
118
|
-
throw new TypeError('Each image.data must be a Uint8Array.');
|
|
119
|
-
}
|
|
120
|
-
if (typeof image.mimeType !== 'string') {
|
|
121
|
-
throw new TypeError('Each image.mimeType must be a string.');
|
|
122
|
-
}
|
|
123
|
-
if (!['coverFront', 'coverBack', 'unknown'].includes(image.kind)) {
|
|
124
|
-
throw new TypeError('Each image.kind must be \'coverFront\', \'coverBack\', or \'unknown\'.');
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
if (tags.comment !== undefined && typeof tags.comment !== 'string') {
|
|
129
|
-
throw new TypeError('tags.comment, when provided, must be a string.');
|
|
130
|
-
}
|
|
131
|
-
if (tags.raw !== undefined) {
|
|
132
|
-
if (!tags.raw || typeof tags.raw !== 'object') {
|
|
133
|
-
throw new TypeError('tags.raw, when provided, must be an object.');
|
|
134
|
-
}
|
|
135
|
-
for (const value of Object.values(tags.raw)) {
|
|
136
|
-
if (value !== null
|
|
137
|
-
&& typeof value !== 'string'
|
|
138
|
-
&& !(value instanceof Uint8Array)
|
|
139
|
-
&& !(value instanceof RichImageData)
|
|
140
|
-
&& !(value instanceof AttachedFile)) {
|
|
141
|
-
throw new TypeError('Each value in tags.raw must be a string, Uint8Array, RichImageData, AttachedFile, or null.');
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
export const metadataTagsAreEmpty = (tags) => {
|
|
147
|
-
return tags.title === undefined
|
|
148
|
-
&& tags.description === undefined
|
|
149
|
-
&& tags.artist === undefined
|
|
150
|
-
&& tags.album === undefined
|
|
151
|
-
&& tags.albumArtist === undefined
|
|
152
|
-
&& tags.trackNumber === undefined
|
|
153
|
-
&& tags.tracksTotal === undefined
|
|
154
|
-
&& tags.discNumber === undefined
|
|
155
|
-
&& tags.discsTotal === undefined
|
|
156
|
-
&& tags.genre === undefined
|
|
157
|
-
&& tags.date === undefined
|
|
158
|
-
&& tags.lyrics === undefined
|
|
159
|
-
&& (!tags.images || tags.images.length === 0)
|
|
160
|
-
&& tags.comment === undefined
|
|
161
|
-
&& (tags.raw === undefined || Object.keys(tags.raw).length === 0);
|
|
162
|
-
};
|
|
163
|
-
export const DEFAULT_TRACK_DISPOSITION = {
|
|
164
|
-
default: true,
|
|
165
|
-
forced: false,
|
|
166
|
-
original: false,
|
|
167
|
-
commentary: false,
|
|
168
|
-
hearingImpaired: false,
|
|
169
|
-
visuallyImpaired: false,
|
|
170
|
-
};
|
|
171
|
-
export const validateTrackDisposition = (disposition) => {
|
|
172
|
-
if (!disposition || typeof disposition !== 'object') {
|
|
173
|
-
throw new TypeError('disposition must be an object.');
|
|
174
|
-
}
|
|
175
|
-
if (disposition.default !== undefined && typeof disposition.default !== 'boolean') {
|
|
176
|
-
throw new TypeError('disposition.default must be a boolean.');
|
|
177
|
-
}
|
|
178
|
-
if (disposition.forced !== undefined && typeof disposition.forced !== 'boolean') {
|
|
179
|
-
throw new TypeError('disposition.forced must be a boolean.');
|
|
180
|
-
}
|
|
181
|
-
if (disposition.original !== undefined && typeof disposition.original !== 'boolean') {
|
|
182
|
-
throw new TypeError('disposition.original must be a boolean.');
|
|
183
|
-
}
|
|
184
|
-
if (disposition.commentary !== undefined && typeof disposition.commentary !== 'boolean') {
|
|
185
|
-
throw new TypeError('disposition.commentary must be a boolean.');
|
|
186
|
-
}
|
|
187
|
-
if (disposition.hearingImpaired !== undefined && typeof disposition.hearingImpaired !== 'boolean') {
|
|
188
|
-
throw new TypeError('disposition.hearingImpaired must be a boolean.');
|
|
189
|
-
}
|
|
190
|
-
if (disposition.visuallyImpaired !== undefined && typeof disposition.visuallyImpaired !== 'boolean') {
|
|
191
|
-
throw new TypeError('disposition.visuallyImpaired must be a boolean.');
|
|
192
|
-
}
|
|
193
|
-
};
|