201 lines
7.6 KiB
TypeScript
201 lines
7.6 KiB
TypeScript
// Metro module 14171 (f14172).
|
|
import { HermesBuiltin, $callWithNewTarget } from "../../../../../_hermes/prelude";
|
|
let c9947_1;
|
|
class VttParserError extends Error {
|
|
constructor(a0, a1) {
|
|
super(a0);
|
|
this.error = a1;
|
|
this.name = "ParserError";
|
|
}
|
|
}
|
|
c9947_1 = /([0-9]+)?:?([0-9]{2}):([0-9]{2}\.[0-9]{2,3})/;
|
|
export { VttParserError };
|
|
export function parseVtt(a0, r4 = {}) {
|
|
const meta = r4.meta;
|
|
let r8 = meta !== void 0 && meta;
|
|
const strict2 = r4.strict;
|
|
const strict3 = strict2 === void 0 || strict2;
|
|
const r29 = a0.trim().replace(/\r\n/g, "\n").replace(/\r/g, "\n").split("\n\n");
|
|
const r31 = r29.shift();
|
|
if (r31.startsWith("WEBVTT")) {
|
|
const r43 = r31.split("\n");
|
|
const r47 = r43[0].replace("WEBVTT", "");
|
|
if (r47.length > 0 && r47[0] !== " " && r47[0] !== "\t") {
|
|
const prototypeOf3 = Object.getPrototypeOf(VttParserError);
|
|
const r111 = Object.create(VttParserError.prototype);
|
|
const r114 = $callWithNewTarget(prototypeOf3, r111, VttParserError, "Header comment must start with space or tab");
|
|
const r115 = r114 instanceof Object ? r114 : r111;
|
|
r115.error = void 0;
|
|
r115.name = "ParserError";
|
|
throw r115;
|
|
}
|
|
if (r29.length === 0 && r43.length === 1) {
|
|
return {
|
|
valid: true,
|
|
strict: strict3,
|
|
cues: [],
|
|
errors: []
|
|
};
|
|
}
|
|
if (!r8 && r43.length > 1 && r43[1] !== "") {
|
|
const prototypeOf2 = Object.getPrototypeOf(VttParserError);
|
|
const r64 = Object.create(VttParserError.prototype);
|
|
const r67 = $callWithNewTarget(prototypeOf2, r64, VttParserError, "Missing blank line after signature");
|
|
const r68 = r67 instanceof Object ? r67 : r64;
|
|
r68.error = void 0;
|
|
r68.name = "ParserError";
|
|
throw r68;
|
|
}
|
|
const strict = strict3;
|
|
const errors = [];
|
|
let c21003_1 = errors;
|
|
const cues = r29.map((item, index) => {
|
|
let r7;
|
|
try {
|
|
r7 = (function parseCue(a0, a1, a2) {
|
|
const r9 = a0.split("\n").filter(Boolean);
|
|
if (r9.length > 0 && r9[0].trim().startsWith("NOTE")) {
|
|
return null;
|
|
}
|
|
if (r9.length === 1 && !r9[0].includes("-->")) {
|
|
const r41 = `Cue identifier cannot be standalone (cue #${a1})`;
|
|
const prototypeOf = Object.getPrototypeOf(VttParserError);
|
|
const r46 = Object.create(VttParserError.prototype);
|
|
const r48 = $callWithNewTarget(prototypeOf, r46, VttParserError, r41);
|
|
const r49 = r48 instanceof Object ? r48 : r46;
|
|
r49.error = void 0;
|
|
r49.name = "ParserError";
|
|
throw r49;
|
|
}
|
|
if (r9.length > 1 && !r9[0].includes("-->") && !r9[1].includes("-->")) {
|
|
const r65 = `Cue identifier needs to be followed by timestamp (cue #${a1})`;
|
|
const prototypeOf2 = Object.getPrototypeOf(VttParserError);
|
|
const r71 = Object.create(VttParserError.prototype);
|
|
const r74 = $callWithNewTarget(prototypeOf2, r71, VttParserError, r65);
|
|
const r75 = r74 instanceof Object ? r74 : r71;
|
|
r75.error = void 0;
|
|
r75.name = "ParserError";
|
|
throw r75;
|
|
}
|
|
const identifier = r9.length > 1 && r9[1].includes("-->") ? r9.shift() : "";
|
|
const r89 = r9[0].split(" --> ");
|
|
if (r89.length === 2 && c9947_1.test(r89[0]) && c9947_1.test(r89[1])) {
|
|
const r100 = r89[0].match(c9947_1);
|
|
const r4 = r100 == null;
|
|
let start = 0;
|
|
if (!r4) {
|
|
const r18 = parseFloat;
|
|
let r17 = r100[1];
|
|
if (r17 == null) {
|
|
r17 = "0";
|
|
}
|
|
start = 60 * r18(r17) * 60 + 60 * parseFloat(r100[2]) + parseFloat(r100[3]);
|
|
}
|
|
const r116 = r89[1].match(c9947_1);
|
|
const r117 = r116 == null;
|
|
let end = 0;
|
|
if (!r117) {
|
|
const r119 = parseFloat;
|
|
let r120 = r116[1];
|
|
if (r120 == null) {
|
|
r120 = "0";
|
|
}
|
|
end = 60 * r119(r120) * 60 + 60 * parseFloat(r116[2]) + parseFloat(r116[3]);
|
|
}
|
|
if (a2) {
|
|
if (start > end) {
|
|
const r190 = `Start timestamp greater than end (cue #${a1})`;
|
|
const prototypeOf5 = Object.getPrototypeOf(VttParserError);
|
|
const r196 = Object.create(VttParserError.prototype);
|
|
const r199 = $callWithNewTarget(prototypeOf5, r196, VttParserError, r190);
|
|
const r200 = r199 instanceof Object ? r199 : r196;
|
|
r200.error = void 0;
|
|
r200.name = "ParserError";
|
|
throw r200;
|
|
}
|
|
if (end <= start) {
|
|
const r171 = `End must be greater than start (cue #${a1})`;
|
|
const prototypeOf4 = Object.getPrototypeOf(VttParserError);
|
|
const r177 = Object.create(VttParserError.prototype);
|
|
const r180 = $callWithNewTarget(prototypeOf4, r177, VttParserError, r171);
|
|
const r181 = r180 instanceof Object ? r180 : r177;
|
|
r181.error = void 0;
|
|
r181.name = "ParserError";
|
|
throw r181;
|
|
}
|
|
}
|
|
if (!a2 && end < start) {
|
|
const r139 = `End must be greater or equal to start when not strict (cue #${a1})`;
|
|
const prototypeOf3 = Object.getPrototypeOf(VttParserError);
|
|
const r145 = Object.create(VttParserError.prototype);
|
|
const r148 = $callWithNewTarget(prototypeOf3, r145, VttParserError, r139);
|
|
const r149 = r148 instanceof Object ? r148 : r145;
|
|
r149.error = void 0;
|
|
r149.name = "ParserError";
|
|
throw r149;
|
|
}
|
|
const styles = r89[1].replace(c9947_1, "").trim();
|
|
r9.shift();
|
|
const text = r9.join("\n");
|
|
if (text.trim() === "") {
|
|
return false;
|
|
}
|
|
return {
|
|
identifier,
|
|
start,
|
|
end,
|
|
text,
|
|
styles
|
|
};
|
|
}
|
|
const r209 = `Invalid cue timestamp (cue #${a1})`;
|
|
const prototypeOf6 = Object.getPrototypeOf(VttParserError);
|
|
const r215 = Object.create(VttParserError.prototype);
|
|
const r218 = $callWithNewTarget(prototypeOf6, r215, VttParserError, r209);
|
|
const r219 = r218 instanceof Object ? r218 : r215;
|
|
r219.error = void 0;
|
|
r219.name = "ParserError";
|
|
throw r219;
|
|
})(item, index, strict);
|
|
} catch ($e) {
|
|
c21003_1.push($e);
|
|
return null;
|
|
}
|
|
return r7;
|
|
}).filter((item) => item !== null && item !== false);
|
|
if (strict && errors.length > 0) {
|
|
throw errors[0];
|
|
}
|
|
let meta2 = null;
|
|
if (r8) {
|
|
const r82 = {};
|
|
let c21004_0 = r82;
|
|
r43.slice(1).forEach((item) => {
|
|
const r6 = item.indexOf(":");
|
|
c21004_0[item.slice(0, r6).trim()] = item.slice(r6 + 1).trim();
|
|
});
|
|
meta2 = Object.keys(r82).length > 0 ? r82 : null;
|
|
}
|
|
const r97 = {
|
|
valid: errors.length === 0,
|
|
strict,
|
|
cues,
|
|
errors
|
|
};
|
|
if (r8) {
|
|
r8 = {
|
|
meta: meta2
|
|
};
|
|
}
|
|
HermesBuiltin.copyDataProperties(r97, r8);
|
|
return r97;
|
|
}
|
|
const prototypeOf = Object.getPrototypeOf(VttParserError);
|
|
const r12 = Object.create(VttParserError.prototype);
|
|
const r38 = $callWithNewTarget(prototypeOf, r12, VttParserError, "Must start with \"WEBVTT\"");
|
|
const r39 = r38 instanceof Object ? r38 : r12;
|
|
r39.error = void 0;
|
|
r39.name = "ParserError";
|
|
throw r39;
|
|
}
|