// 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; }