@pixerate/editor 0.113.0 → 0.114.0
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/THIRD_PARTY_NOTICES.md +5 -0
- package/dist/animation-editor/index.cjs +60 -54
- package/dist/animation-editor/index.cjs.map +1 -1
- package/dist/animation-editor/index.d.cts +3 -3
- package/dist/animation-editor/index.d.ts +3 -3
- package/dist/animation-editor/index.js +14 -8
- package/dist/animation-editor/index.js.map +1 -1
- package/dist/builtin-CY97ppKM.d.cts +354 -0
- package/dist/builtin-CY97ppKM.d.ts +354 -0
- package/dist/canvas/index.cjs +3 -3
- package/dist/canvas/index.cjs.map +1 -1
- package/dist/canvas/index.js +9 -9
- package/dist/chunk-26PGXHY7.cjs +753 -0
- package/dist/chunk-26PGXHY7.cjs.map +1 -0
- package/dist/chunk-2OJACTPR.cjs +929 -0
- package/dist/chunk-2OJACTPR.cjs.map +1 -0
- package/dist/chunk-3UFGNHSP.js +929 -0
- package/dist/chunk-3UFGNHSP.js.map +1 -0
- package/dist/{chunk-YGIMK4NX.cjs → chunk-5OVJHMZQ.cjs} +757 -825
- package/dist/chunk-5OVJHMZQ.cjs.map +1 -0
- package/dist/chunk-643B2HKC.cjs +534 -0
- package/dist/chunk-643B2HKC.cjs.map +1 -0
- package/dist/chunk-6FCKOS2B.js +534 -0
- package/dist/chunk-6FCKOS2B.js.map +1 -0
- package/dist/chunk-BRLYOPLT.js +2574 -0
- package/dist/chunk-BRLYOPLT.js.map +1 -0
- package/dist/{chunk-LQEEDHOP.js → chunk-C6C5PDKU.js} +759 -761
- package/dist/chunk-C6C5PDKU.js.map +1 -0
- package/dist/{chunk-4KLT7ZYS.cjs → chunk-DFQEX3AM.cjs} +29 -29
- package/dist/{chunk-4KLT7ZYS.cjs.map → chunk-DFQEX3AM.cjs.map} +1 -1
- package/dist/{chunk-CZOXTEMN.js → chunk-EUVSQ25B.js} +336 -404
- package/dist/chunk-EUVSQ25B.js.map +1 -0
- package/dist/chunk-G5NMLUVF.cjs +2574 -0
- package/dist/chunk-G5NMLUVF.cjs.map +1 -0
- package/dist/{chunk-LPYOIVLA.js → chunk-LKCYANMW.js} +3 -3
- package/dist/{chunk-W3GXSUSQ.cjs → chunk-LPLCWZTM.cjs} +5087 -1283
- package/dist/chunk-LPLCWZTM.cjs.map +1 -0
- package/dist/chunk-MMVHBKMM.js +753 -0
- package/dist/chunk-MMVHBKMM.js.map +1 -0
- package/dist/{chunk-POGBUYWE.cjs → chunk-ST7E3NEE.cjs} +857 -859
- package/dist/chunk-ST7E3NEE.cjs.map +1 -0
- package/dist/{chunk-7VOHOPLW.cjs → chunk-TCKIXI46.cjs} +59 -59
- package/dist/{chunk-7VOHOPLW.cjs.map → chunk-TCKIXI46.cjs.map} +1 -1
- package/dist/{chunk-XIOMMGPD.cjs → chunk-TFOPHZ3U.cjs} +1 -1
- package/dist/chunk-TFOPHZ3U.cjs.map +1 -0
- package/dist/{chunk-Z4BC6M74.js → chunk-UBIXVXPR.js} +2 -2
- package/dist/{chunk-BLWCAQCW.js → chunk-VXR7XWMF.js} +4574 -770
- package/dist/chunk-VXR7XWMF.js.map +1 -0
- package/dist/{chunk-HNS7UHCM.js → chunk-XK5LZKBD.js} +1 -1
- package/dist/chunk-XK5LZKBD.js.map +1 -0
- package/dist/cms/index.cjs +146 -0
- package/dist/cms/index.cjs.map +1 -0
- package/dist/cms/index.d.cts +51 -0
- package/dist/cms/index.d.ts +51 -0
- package/dist/cms/index.js +146 -0
- package/dist/cms/index.js.map +1 -0
- package/dist/{export-DIkoK8-r.d.ts → export-_1dUKwpF.d.ts} +217 -191
- package/dist/{export-CEXEzqBf.d.cts → export-b6NjCZ5-.d.cts} +217 -191
- package/dist/image-editor/index.cjs +1779 -1280
- package/dist/image-editor/index.cjs.map +1 -1
- package/dist/image-editor/index.d.cts +77 -93
- package/dist/image-editor/index.d.ts +77 -93
- package/dist/image-editor/index.js +740 -241
- package/dist/image-editor/index.js.map +1 -1
- package/dist/opentype-BZEOSOX3.d.ts +188 -0
- package/dist/opentype-Dpe75vL5.d.cts +188 -0
- package/dist/paint/index.cjs +4 -4
- package/dist/paint/index.d.cts +2 -2
- package/dist/paint/index.d.ts +2 -2
- package/dist/paint/index.js +3 -3
- package/dist/paint-editor/index.cjs +146 -145
- package/dist/paint-editor/index.cjs.map +1 -1
- package/dist/paint-editor/index.d.cts +9 -8
- package/dist/paint-editor/index.d.ts +9 -8
- package/dist/paint-editor/index.js +6 -5
- package/dist/paint-editor/index.js.map +1 -1
- package/dist/raster/index.cjs +53 -3
- package/dist/raster/index.cjs.map +1 -1
- package/dist/raster/index.d.cts +62 -91
- package/dist/raster/index.d.ts +62 -91
- package/dist/raster/index.js +59 -9
- package/dist/{render-BEriFuqK.d.cts → render-B1K_OoLy.d.cts} +87 -2
- package/dist/{render-tjzKaik-.d.ts → render-CrmHOgpo.d.ts} +87 -2
- package/dist/{retouch-CEIKR22W.d.cts → retouch-Bxkuc0KH.d.cts} +1 -1
- package/dist/{retouch-BXmeSCaB.d.ts → retouch-Do6tBs2H.d.ts} +1 -1
- package/dist/{surface-C8RRg_Bh.d.cts → surface-Cn30xIV6.d.cts} +6 -1
- package/dist/{surface-C8RRg_Bh.d.ts → surface-Cn30xIV6.d.ts} +6 -1
- package/dist/{svg-D_cfkhlB.d.cts → svg-BnRj0q8i.d.cts} +16 -4
- package/dist/{svg-wIaKLrU0.d.ts → svg-CmmBFfGT.d.ts} +16 -4
- package/dist/{types-DtL_qLFz.d.ts → types-1SUQKDAw.d.ts} +273 -4
- package/dist/{types-DyQq-WPY.d.cts → types-yINF17Ta.d.cts} +273 -4
- package/dist/vector/index.cjs +12170 -7343
- package/dist/vector/index.cjs.map +1 -1
- package/dist/vector/index.d.cts +1579 -16
- package/dist/vector/index.d.ts +1579 -16
- package/dist/vector/index.js +6303 -1476
- package/dist/vector/index.js.map +1 -1
- package/dist/warp-B39VsOtd.d.cts +348 -0
- package/dist/warp-DMN30aY6.d.ts +348 -0
- package/dist/zlib-dxQdgHyN.d.cts +95 -0
- package/dist/zlib-dxQdgHyN.d.ts +95 -0
- package/package.json +6 -1
- package/skills/pixerate-image-editor/SKILL.md +12 -36
- package/skills/pixerate-image-editor/references/color-management.md +37 -0
- package/skills/pixerate-image-editor/references/photoshop-files.md +39 -0
- package/skills/pixerate-vector/SKILL.md +54 -2
- package/dist/chunk-BLWCAQCW.js.map +0 -1
- package/dist/chunk-CZOXTEMN.js.map +0 -1
- package/dist/chunk-HNS7UHCM.js.map +0 -1
- package/dist/chunk-JLYX4V57.cjs +0 -2001
- package/dist/chunk-JLYX4V57.cjs.map +0 -1
- package/dist/chunk-KB2YBCVS.js +0 -2001
- package/dist/chunk-KB2YBCVS.js.map +0 -1
- package/dist/chunk-LQEEDHOP.js.map +0 -1
- package/dist/chunk-POGBUYWE.cjs.map +0 -1
- package/dist/chunk-W3GXSUSQ.cjs.map +0 -1
- package/dist/chunk-XIOMMGPD.cjs.map +0 -1
- package/dist/chunk-YGIMK4NX.cjs.map +0 -1
- package/dist/homography-CZ-tFjay.d.cts +0 -50
- package/dist/homography-Ctfjoc1b.d.ts +0 -50
- package/dist/warp-CWHZzE3x.d.ts +0 -118
- package/dist/warp-D5jz_tN7.d.cts +0 -118
- /package/dist/{chunk-LPYOIVLA.js.map → chunk-LKCYANMW.js.map} +0 -0
- /package/dist/{chunk-Z4BC6M74.js.map → chunk-UBIXVXPR.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/text/opentype.ts"],"sourcesContent":["/**\n * A small OpenType reader: enough of a font file to set Latin, Cyrillic, Greek and CJK text as\n * outlines without a third-party library. It reads TrueType (`glyf`) and CFF (`CFF `, CID-keyed\n * included) outlines, `cmap` (formats 4 and 12), horizontal metrics, `kern` (format 0) and `GPOS`\n * pair kerning (lookup type 2, formats 1 and 2, the `kern` feature), and the family, PostScript\n * name, weight and style. It does not apply `GSUB` (ligatures, contextual forms) or complex-script\n * shaping, so Arabic, Indic and similar scripts set as isolated glyphs.\n *\n * The result has the shape of opentype.js's `Font` that `createOutlineTextShaper` takes, so hosts\n * can pass either. Written from the OpenType specification (TrueType glyph outlines, the CFF\n * specification and the Type 2 charstring format), not ported.\n */\n\nimport type { OutlineFontFace, OutlinePathCommand } from './shapers';\n\n/** A parsed font, usable as an `OutlineFontFace`. */\nexport interface OpenTypeFont extends OutlineFontFace {\n /** The family name (typographic family when the font has one). */\n readonly family: string;\n /** The subfamily (\"Bold Italic\"). */\n readonly style: string;\n readonly postScriptName: string;\n readonly weight: number;\n readonly italic: boolean;\n readonly numGlyphs: number;\n /** `glyf` (TrueType quadratic outlines) or `cff` (cubic). */\n readonly outlines: 'glyf' | 'cff';\n /** The glyph for a code point (0, `.notdef`, when the font lacks it). */\n glyphIndex(codePoint: number): number;\n /** A glyph's advance in font units. */\n advance(glyph: number): number;\n /** Kerning between two glyphs in font units (negative pulls them together). */\n kerning(left: number, right: number): number;\n /** A glyph's outline in font units, y up, origin on the baseline. */\n glyphPath(glyph: number): OutlinePathCommand[];\n}\n\nconst fail = (message: string): never => {\n throw new Error(message);\n};\n\nclass Reader {\n constructor(\n readonly view: DataView,\n public pos = 0\n ) {}\n u8(): number {\n return this.view.getUint8(this.pos++);\n }\n i8(): number {\n return this.view.getInt8(this.pos++);\n }\n u16(): number {\n const v = this.view.getUint16(this.pos);\n this.pos += 2;\n return v;\n }\n i16(): number {\n const v = this.view.getInt16(this.pos);\n this.pos += 2;\n return v;\n }\n u32(): number {\n const v = this.view.getUint32(this.pos);\n this.pos += 4;\n return v;\n }\n tag(): string {\n let s = '';\n for (let i = 0; i < 4; i++) s += String.fromCharCode(this.u8());\n return s;\n }\n}\n\ninterface Table {\n offset: number;\n length: number;\n}\n\nfunction tableDirectory(view: DataView, at: number): Map<string, Table> {\n const r = new Reader(view, at);\n const version = r.tag();\n if (version !== '\\0\\x01\\0\\0' && version !== 'OTTO' && version !== 'true') fail('This is not a TrueType or OpenType font (WOFF2 is not supported; convert it to TTF or OTF).');\n const count = r.u16();\n r.pos += 6;\n const tables = new Map<string, Table>();\n for (let i = 0; i < count; i++) {\n const tag = r.tag();\n r.u32();\n const offset = r.u32();\n const length = r.u32();\n if (offset + length > view.byteLength) fail(`The font's \"${tag}\" table runs past the end of the file.`);\n tables.set(tag, { offset, length });\n }\n return tables;\n}\n\n// ---------------------------------------------------------------------------\n// cmap\n// ---------------------------------------------------------------------------\n\nfunction readCmap(view: DataView, t: Table): (cp: number) => number {\n const r = new Reader(view, t.offset);\n r.u16();\n const n = r.u16();\n const subtables: Array<{ platform: number; encoding: number; offset: number; format: number }> = [];\n for (let i = 0; i < n; i++) {\n const platform = r.u16();\n const encoding = r.u16();\n const offset = t.offset + r.u32();\n subtables.push({ platform, encoding, offset, format: view.getUint16(offset) });\n }\n const rank = (s: (typeof subtables)[number]) =>\n s.format === 12 && ((s.platform === 3 && s.encoding === 10) || s.platform === 0) ? 0 : s.format === 4 && ((s.platform === 3 && (s.encoding === 1 || s.encoding === 0)) || s.platform === 0) ? 1 : s.format === 12 || s.format === 4 ? 2 : 9;\n const best = subtables.filter((s) => rank(s) < 9).sort((a, b) => rank(a) - rank(b))[0];\n if (!best) return () => 0;\n const map = new Map<number, number>();\n const at = best.offset;\n if (best.format === 4) {\n const segX2 = view.getUint16(at + 6);\n const segs = segX2 / 2;\n const ends = at + 14;\n const starts = ends + segX2 + 2;\n const deltas = starts + segX2;\n const ranges = deltas + segX2;\n return (cp) => {\n if (cp > 0xffff) return 0;\n let lo = 0;\n let hi = segs - 1;\n while (lo < hi) {\n const mid = (lo + hi) >> 1;\n if (view.getUint16(ends + mid * 2) < cp) lo = mid + 1;\n else hi = mid;\n }\n const start = view.getUint16(starts + lo * 2);\n if (cp < start || cp > view.getUint16(ends + lo * 2)) return 0;\n const delta = view.getInt16(deltas + lo * 2);\n const rangeAt = ranges + lo * 2;\n const range = view.getUint16(rangeAt);\n if (range === 0) return (cp + delta) & 0xffff;\n const g = view.getUint16(rangeAt + range + (cp - start) * 2);\n return g === 0 ? 0 : (g + delta) & 0xffff;\n };\n }\n // Format 12: sequential map groups.\n const groups = view.getUint32(at + 12);\n for (let i = 0; i < groups && i < 200000; i++) {\n const g = at + 16 + i * 12;\n const start = view.getUint32(g);\n const end = view.getUint32(g + 4);\n const glyph = view.getUint32(g + 8);\n if (end - start > 0x10ffff) continue;\n map.set(start, glyph);\n for (let c = start + 1; c <= end; c++) map.set(c, glyph + c - start);\n }\n return (cp) => map.get(cp) ?? 0;\n}\n\n// ---------------------------------------------------------------------------\n// name\n// ---------------------------------------------------------------------------\n\nfunction readNames(view: DataView, t: Table | undefined): Map<number, string> {\n const out = new Map<number, string>();\n if (!t) return out;\n const r = new Reader(view, t.offset);\n r.u16();\n const count = r.u16();\n const strings = t.offset + r.u16();\n const ranked = new Map<number, number>();\n for (let i = 0; i < count; i++) {\n const platform = r.u16();\n const encoding = r.u16();\n const language = r.u16();\n const id = r.u16();\n const length = r.u16();\n const offset = r.u16();\n let rank: number;\n let text = '';\n if (platform === 3 && (encoding === 1 || encoding === 10)) {\n rank = language === 0x409 ? 0 : 2;\n for (let k = 0; k + 1 < length; k += 2) text += String.fromCharCode(view.getUint16(strings + offset + k));\n } else if (platform === 1 && encoding === 0) {\n rank = language === 0 ? 1 : 3;\n for (let k = 0; k < length; k++) text += String.fromCharCode(view.getUint8(strings + offset + k));\n } else if (platform === 0) {\n rank = 2;\n for (let k = 0; k + 1 < length; k += 2) text += String.fromCharCode(view.getUint16(strings + offset + k));\n } else continue;\n if (!text || (ranked.get(id) ?? 9) <= rank) continue;\n ranked.set(id, rank);\n out.set(id, text);\n }\n return out;\n}\n\n// ---------------------------------------------------------------------------\n// glyf\n// ---------------------------------------------------------------------------\n\ntype Pt = { x: number; y: number; on: boolean };\n\nfunction glyfOutlines(view: DataView, glyf: Table, loca: Table, longLoca: boolean, numGlyphs: number): (g: number) => OutlinePathCommand[] {\n const offsetOf = (g: number) => (longLoca ? view.getUint32(loca.offset + g * 4) : view.getUint16(loca.offset + g * 2) * 2);\n const contoursOf = (g: number, depth: number): Pt[][] => {\n if (g < 0 || g >= numGlyphs || depth > 8) return [];\n const start = offsetOf(g);\n const end = offsetOf(g + 1);\n if (end <= start) return [];\n const r = new Reader(view, glyf.offset + start);\n const n = r.i16();\n r.pos += 8;\n if (n >= 0) {\n const ends: number[] = [];\n for (let i = 0; i < n; i++) ends.push(r.u16());\n const count = n ? ends[n - 1] + 1 : 0;\n const instructions = r.u16();\n r.pos += instructions;\n const flags: number[] = [];\n while (flags.length < count) {\n const f = r.u8();\n flags.push(f);\n if (f & 8) for (let k = r.u8(); k > 0; k--) flags.push(f);\n }\n const xs: number[] = [];\n let v = 0;\n for (const f of flags) {\n if (f & 2) v += f & 16 ? r.u8() : -r.u8();\n else if (!(f & 16)) v += r.i16();\n xs.push(v);\n }\n const ys: number[] = [];\n v = 0;\n for (const f of flags) {\n if (f & 4) v += f & 32 ? r.u8() : -r.u8();\n else if (!(f & 32)) v += r.i16();\n ys.push(v);\n }\n const out: Pt[][] = [];\n let s = 0;\n for (const e of ends) {\n const c: Pt[] = [];\n for (let i = s; i <= e && i < count; i++) c.push({ x: xs[i], y: ys[i], on: (flags[i] & 1) === 1 });\n out.push(c);\n s = e + 1;\n }\n return out;\n }\n // Composite: components placed by offsets (point matching is not supported) and scaled.\n const out: Pt[][] = [];\n for (;;) {\n const flags = r.u16();\n const glyph = r.u16();\n let dx: number;\n let dy: number;\n if (flags & 1) {\n dx = flags & 2 ? r.i16() : r.u16();\n dy = flags & 2 ? r.i16() : r.u16();\n } else {\n dx = flags & 2 ? r.i8() : r.u8();\n dy = flags & 2 ? r.i8() : r.u8();\n }\n if (!(flags & 2)) dx = dy = 0;\n let a = 1;\n let b = 0;\n let c = 0;\n let d = 1;\n const f2 = () => r.i16() / 16384;\n if (flags & 8) a = d = f2();\n else if (flags & 0x40) {\n a = f2();\n d = f2();\n } else if (flags & 0x80) {\n a = f2();\n b = f2();\n c = f2();\n d = f2();\n }\n for (const contour of contoursOf(glyph, depth + 1)) out.push(contour.map((p) => ({ x: a * p.x + c * p.y + dx, y: b * p.x + d * p.y + dy, on: p.on })));\n if (!(flags & 0x20)) break;\n }\n return out;\n };\n return (g) => {\n const cmds: OutlinePathCommand[] = [];\n for (const c of contoursOf(g, 0)) {\n if (!c.length) continue;\n // Start on an on-curve point (or the midpoint of the first two off-curve points).\n let first = c.findIndex((p) => p.on);\n let pts = c;\n if (first < 0) {\n const m = { x: (c[0].x + c[1 % c.length].x) / 2, y: (c[0].y + c[1 % c.length].y) / 2, on: true };\n pts = [m, ...c.slice(1), c[0]];\n first = 0;\n } else pts = [...c.slice(first), ...c.slice(0, first)];\n const start = pts[0];\n cmds.push({ type: 'M', x: start.x, y: start.y });\n let ctrl: Pt | null = null;\n for (let i = 1; i <= pts.length; i++) {\n const p = i === pts.length ? start : pts[i];\n if (p.on) {\n if (ctrl) cmds.push({ type: 'Q', x1: ctrl.x, y1: ctrl.y, x: p.x, y: p.y });\n else if (i < pts.length) cmds.push({ type: 'L', x: p.x, y: p.y });\n ctrl = null;\n } else {\n if (ctrl) cmds.push({ type: 'Q', x1: ctrl.x, y1: ctrl.y, x: (ctrl.x + p.x) / 2, y: (ctrl.y + p.y) / 2 });\n ctrl = p;\n }\n }\n cmds.push({ type: 'Z' });\n }\n return cmds;\n };\n}\n\n// ---------------------------------------------------------------------------\n// CFF\n// ---------------------------------------------------------------------------\n\n/** Offsets of an INDEX's items and where it ends. */\nfunction cffIndex(view: DataView, at: number): { items: Array<[number, number]>; end: number } {\n const count = view.getUint16(at);\n if (count === 0) return { items: [], end: at + 2 };\n const size = view.getUint8(at + 2);\n const read = (i: number) => {\n let v = 0;\n for (let k = 0; k < size; k++) v = v * 256 + view.getUint8(at + 3 + i * size + k);\n return v;\n };\n const base = at + 2 + (count + 1) * size;\n const items: Array<[number, number]> = [];\n for (let i = 0; i < count; i++) items.push([base + read(i), base + read(i + 1)]);\n return { items, end: base + read(count) };\n}\n\n/** A DICT's operators with their operands (two-byte operators as 1200 + b). */\nfunction cffDict(view: DataView, start: number, end: number): Map<number, number[]> {\n const out = new Map<number, number[]>();\n let ops: number[] = [];\n let p = start;\n while (p < end) {\n const b = view.getUint8(p++);\n if (b <= 21) {\n const op = b === 12 ? 1200 + view.getUint8(p++) : b;\n out.set(op, ops);\n ops = [];\n } else if (b === 28) {\n ops.push(view.getInt16(p));\n p += 2;\n } else if (b === 29) {\n ops.push(view.getInt32(p));\n p += 4;\n } else if (b === 30) {\n let s = '';\n const nib = '0123456789.EE?-';\n for (;;) {\n const v = view.getUint8(p++);\n const hi = v >> 4;\n const lo = v & 15;\n if (hi === 15) break;\n s += hi === 12 ? 'E-' : nib[hi];\n if (lo === 15) break;\n s += lo === 12 ? 'E-' : nib[lo];\n }\n ops.push(parseFloat(s));\n } else if (b >= 32 && b <= 246) ops.push(b - 139);\n else if (b >= 247 && b <= 250) ops.push((b - 247) * 256 + view.getUint8(p++) + 108);\n else if (b >= 251 && b <= 254) ops.push(-(b - 251) * 256 - view.getUint8(p++) - 108);\n else break;\n }\n return out;\n}\n\nconst subrBias = (n: number) => (n < 1240 ? 107 : n < 33900 ? 1131 : 32768);\n\ninterface CffPrivate {\n subrs: Array<[number, number]>;\n defaultWidth: number;\n nominalWidth: number;\n}\n\nfunction cffOutlines(view: DataView, t: Table, numGlyphs: number): { path: (g: number) => OutlinePathCommand[]; width: (g: number) => number | null } {\n const base = t.offset;\n const hdrSize = view.getUint8(base + 2);\n const names = cffIndex(view, base + hdrSize);\n const tops = cffIndex(view, names.end);\n const strings = cffIndex(view, tops.end);\n const gsubrs = cffIndex(view, strings.end).items;\n if (!tops.items.length) fail('The font\\'s CFF table has no Top DICT.');\n const top = cffDict(view, tops.items[0][0], tops.items[0][1]);\n const charStrings = cffIndex(view, base + (top.get(17)?.[0] ?? fail('The font\\'s CFF table has no CharStrings.'))).items;\n const privateOf = (dict: Map<number, number[]>): CffPrivate => {\n const pv = dict.get(18);\n if (!pv || pv.length < 2) return { subrs: [], defaultWidth: 0, nominalWidth: 0 };\n const [size, off] = pv;\n const priv = cffDict(view, base + off, base + off + size);\n const subrsOff = priv.get(19)?.[0];\n return {\n subrs: subrsOff !== undefined ? cffIndex(view, base + off + subrsOff).items : [],\n defaultWidth: priv.get(20)?.[0] ?? 0,\n nominalWidth: priv.get(21)?.[0] ?? 0,\n };\n };\n // CID-keyed fonts pick a private dict per glyph through FDSelect.\n let fdFor: (g: number) => CffPrivate;\n const fdArrayOff = top.get(1236)?.[0];\n const fdSelectOff = top.get(1237)?.[0];\n if (fdArrayOff !== undefined && fdSelectOff !== undefined) {\n const fds = cffIndex(view, base + fdArrayOff).items.map(([a, b]) => privateOf(cffDict(view, a, b)));\n const sel = base + fdSelectOff;\n const format = view.getUint8(sel);\n if (format === 0) fdFor = (g) => fds[view.getUint8(sel + 1 + g)] ?? fds[0];\n else {\n const ranges = view.getUint16(sel + 1);\n fdFor = (g) => {\n for (let i = 0; i < ranges; i++) {\n const first = view.getUint16(sel + 3 + i * 3);\n const next = view.getUint16(sel + 3 + (i + 1) * 3);\n if (g >= first && g < next) return fds[view.getUint8(sel + 5 + i * 3)] ?? fds[0];\n }\n return fds[0];\n };\n }\n } else {\n const p = privateOf(top);\n fdFor = () => p;\n }\n const widths = new Map<number, number | null>();\n const run = (g: number): OutlinePathCommand[] => {\n const priv = fdFor(g);\n const cmds: OutlinePathCommand[] = [];\n const stack: number[] = [];\n let x = 0;\n let y = 0;\n let stems = 0;\n let open = false;\n let width: number | null = null;\n let haveWidth = false;\n let done = false;\n const moveTo = (nx: number, ny: number) => {\n if (open) cmds.push({ type: 'Z' });\n x = nx;\n y = ny;\n cmds.push({ type: 'M', x, y });\n open = true;\n };\n const lineTo = (nx: number, ny: number) => {\n x = nx;\n y = ny;\n cmds.push({ type: 'L', x, y });\n };\n const curveTo = (x1: number, y1: number, x2: number, y2: number, nx: number, ny: number) => {\n x = nx;\n y = ny;\n cmds.push({ type: 'C', x1, y1, x2, y2, x, y });\n };\n // The first stack-clearing operator may carry the advance first: stem hints, rmoveto and\n // endchar take an even number of arguments, so an odd count means a width.\n const takeWidth = () => {\n if (haveWidth) return;\n haveWidth = true;\n if (stack.length % 2 === 1) width = priv.nominalWidth + (stack.shift() as number);\n };\n const exec = (start: number, end: number, depth: number) => {\n let p = start;\n while (p < end && !done) {\n const b = view.getUint8(p++);\n if (b >= 32 || b === 28) {\n if (b === 28) {\n stack.push(view.getInt16(p));\n p += 2;\n } else if (b <= 246) stack.push(b - 139);\n else if (b <= 250) stack.push((b - 247) * 256 + view.getUint8(p++) + 108);\n else if (b <= 254) stack.push(-(b - 251) * 256 - view.getUint8(p++) - 108);\n else {\n stack.push(view.getInt32(p) / 65536);\n p += 4;\n }\n continue;\n }\n switch (b) {\n case 1:\n case 3:\n case 18:\n case 23:\n takeWidth();\n stems += stack.length >> 1;\n stack.length = 0;\n break;\n case 19:\n case 20:\n takeWidth();\n stems += stack.length >> 1;\n stack.length = 0;\n p += (stems + 7) >> 3;\n break;\n case 21:\n takeWidth();\n moveTo(x + stack[0], y + stack[1]);\n stack.length = 0;\n break;\n case 22:\n if (!haveWidth) {\n haveWidth = true;\n if (stack.length > 1) width = priv.nominalWidth + (stack.shift() as number);\n }\n moveTo(x + stack[0], y);\n stack.length = 0;\n break;\n case 4:\n if (!haveWidth) {\n haveWidth = true;\n if (stack.length > 1) width = priv.nominalWidth + (stack.shift() as number);\n }\n moveTo(x, y + stack[0]);\n stack.length = 0;\n break;\n case 5:\n for (let i = 0; i + 1 < stack.length; i += 2) lineTo(x + stack[i], y + stack[i + 1]);\n stack.length = 0;\n break;\n case 6:\n case 7: {\n let horizontal = b === 6;\n for (const v of stack) {\n if (horizontal) lineTo(x + v, y);\n else lineTo(x, y + v);\n horizontal = !horizontal;\n }\n stack.length = 0;\n break;\n }\n case 8:\n for (let i = 0; i + 5 < stack.length; i += 6) curveTo(x + stack[i], y + stack[i + 1], x + stack[i] + stack[i + 2], y + stack[i + 1] + stack[i + 3], x + stack[i] + stack[i + 2] + stack[i + 4], y + stack[i + 1] + stack[i + 3] + stack[i + 5]);\n stack.length = 0;\n break;\n case 24: {\n let i = 0;\n for (; i + 7 < stack.length; i += 6) curveTo(x + stack[i], y + stack[i + 1], x + stack[i] + stack[i + 2], y + stack[i + 1] + stack[i + 3], x + stack[i] + stack[i + 2] + stack[i + 4], y + stack[i + 1] + stack[i + 3] + stack[i + 5]);\n lineTo(x + stack[i], y + stack[i + 1]);\n stack.length = 0;\n break;\n }\n case 25: {\n let i = 0;\n for (; i + 7 < stack.length; i += 2) lineTo(x + stack[i], y + stack[i + 1]);\n curveTo(x + stack[i], y + stack[i + 1], x + stack[i] + stack[i + 2], y + stack[i + 1] + stack[i + 3], x + stack[i] + stack[i + 2] + stack[i + 4], y + stack[i + 1] + stack[i + 3] + stack[i + 5]);\n stack.length = 0;\n break;\n }\n case 26: {\n let i = 0;\n let dx = 0;\n if (stack.length % 2) dx = stack[i++];\n for (; i + 3 < stack.length; i += 4) {\n const x1 = x + dx;\n const y1 = y + stack[i];\n curveTo(x1, y1, x1 + stack[i + 1], y1 + stack[i + 2], x1 + stack[i + 1], y1 + stack[i + 2] + stack[i + 3]);\n dx = 0;\n }\n stack.length = 0;\n break;\n }\n case 27: {\n let i = 0;\n let dy = 0;\n if (stack.length % 2) dy = stack[i++];\n for (; i + 3 < stack.length; i += 4) {\n const x1 = x + stack[i];\n const y1 = y + dy;\n curveTo(x1, y1, x1 + stack[i + 1], y1 + stack[i + 2], x1 + stack[i + 1] + stack[i + 3], y1 + stack[i + 2]);\n dy = 0;\n }\n stack.length = 0;\n break;\n }\n case 30:\n case 31: {\n let horizontal = b === 31;\n let i = 0;\n while (i + 3 < stack.length) {\n const last = stack.length - i === 5;\n if (horizontal) {\n const x1 = x + stack[i];\n const y1 = y;\n const x2 = x1 + stack[i + 1];\n const y2 = y1 + stack[i + 2];\n const y3 = y2 + stack[i + 3];\n curveTo(x1, y1, x2, y2, last ? x2 + stack[i + 4] : x2, y3);\n } else {\n const x1 = x;\n const y1 = y + stack[i];\n const x2 = x1 + stack[i + 1];\n const y2 = y1 + stack[i + 2];\n const x3 = x2 + stack[i + 3];\n curveTo(x1, y1, x2, y2, x3, last ? y2 + stack[i + 4] : y2);\n }\n i += last ? 5 : 4;\n horizontal = !horizontal;\n }\n stack.length = 0;\n break;\n }\n case 10:\n case 29: {\n const list = b === 10 ? priv.subrs : gsubrs;\n const idx = (stack.pop() as number) + subrBias(list.length);\n const sub = list[idx];\n if (sub && depth < 10) exec(sub[0], sub[1], depth + 1);\n break;\n }\n case 11:\n return;\n case 14:\n takeWidth();\n if (open) cmds.push({ type: 'Z' });\n open = false;\n done = true;\n stack.length = 0;\n return;\n case 12: {\n const op = view.getUint8(p++);\n const s = stack;\n if (op === 35 && s.length >= 13) {\n curveTo(x + s[0], y + s[1], x + s[0] + s[2], y + s[1] + s[3], x + s[0] + s[2] + s[4], y + s[1] + s[3] + s[5]);\n curveTo(x + s[6], y + s[7], x + s[6] + s[8], y + s[7] + s[9], x + s[6] + s[8] + s[10], y + s[7] + s[9] + s[11]);\n } else if (op === 34 && s.length >= 7) {\n const y0 = y;\n curveTo(x + s[0], y, x + s[0] + s[1], y + s[2], x + s[0] + s[1] + s[3], y + s[2]);\n curveTo(x + s[4], y, x + s[4] + s[5], y0, x + s[4] + s[5] + s[6], y0);\n } else if (op === 36 && s.length >= 9) {\n const y0 = y;\n curveTo(x + s[0], y + s[1], x + s[0] + s[2], y + s[1] + s[3], x + s[0] + s[2] + s[4], y + s[1] + s[3]);\n curveTo(x + s[5], y, x + s[5] + s[6], y + s[7], x + s[5] + s[6] + s[8], y0);\n } else if (op === 37 && s.length >= 11) {\n const x0 = x;\n const y0 = y;\n const x1 = x + s[0];\n const y1 = y + s[1];\n const x2 = x1 + s[2];\n const y2 = y1 + s[3];\n const x3 = x2 + s[4];\n const y3 = y2 + s[5];\n const x4 = x3 + s[6];\n const y4 = y3 + s[7];\n const x5 = x4 + s[8];\n const y5 = y4 + s[9];\n curveTo(x1, y1, x2, y2, x3, y3);\n if (Math.abs(x5 - x0) > Math.abs(y5 - y0)) curveTo(x4, y4, x5, y5, x5 + s[10], y0);\n else curveTo(x4, y4, x5, y5, x0, y5 + s[10]);\n }\n stack.length = 0;\n break;\n }\n default:\n stack.length = 0;\n }\n }\n };\n const cs = charStrings[g];\n if (cs) exec(cs[0], cs[1], 0);\n if (open) cmds.push({ type: 'Z' });\n widths.set(g, width ?? (haveWidth ? priv.defaultWidth : null));\n return cmds;\n };\n return {\n path: (g) => (g >= 0 && g < numGlyphs ? run(g) : []),\n width: (g) => {\n if (!widths.has(g)) run(g);\n return widths.get(g) ?? null;\n },\n };\n}\n\n// ---------------------------------------------------------------------------\n// Kerning\n// ---------------------------------------------------------------------------\n\nfunction readKern(view: DataView, t: Table | undefined): Map<number, number> {\n const out = new Map<number, number>();\n if (!t) return out;\n const r = new Reader(view, t.offset);\n const version = r.u16();\n if (version !== 0) return out;\n const n = r.u16();\n for (let i = 0; i < n; i++) {\n const start = r.pos;\n r.u16();\n const length = r.u16();\n const coverage = r.u16();\n if (coverage >> 8 === 0 && (coverage & 1) === 1) {\n const pairs = r.u16();\n r.pos += 6;\n for (let k = 0; k < pairs; k++) {\n const left = r.u16();\n const right = r.u16();\n out.set(left * 65536 + right, r.i16());\n }\n }\n r.pos = start + length;\n }\n return out;\n}\n\nfunction coverageIndex(view: DataView, at: number, g: number): number {\n const format = view.getUint16(at);\n const n = view.getUint16(at + 2);\n if (format === 1) {\n let lo = 0;\n let hi = n - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >> 1;\n const v = view.getUint16(at + 4 + mid * 2);\n if (v === g) return mid;\n if (v < g) lo = mid + 1;\n else hi = mid - 1;\n }\n return -1;\n }\n for (let i = 0; i < n; i++) {\n const r = at + 4 + i * 6;\n const s = view.getUint16(r);\n const e = view.getUint16(r + 2);\n if (g >= s && g <= e) return view.getUint16(r + 4) + g - s;\n }\n return -1;\n}\n\nfunction classOf(view: DataView, at: number, g: number): number {\n const format = view.getUint16(at);\n if (format === 1) {\n const start = view.getUint16(at + 2);\n const n = view.getUint16(at + 4);\n return g >= start && g < start + n ? view.getUint16(at + 6 + (g - start) * 2) : 0;\n }\n const n = view.getUint16(at + 2);\n for (let i = 0; i < n; i++) {\n const r = at + 4 + i * 6;\n if (g >= view.getUint16(r) && g <= view.getUint16(r + 2)) return view.getUint16(r + 4);\n }\n return 0;\n}\n\nconst valueSize = (format: number) => {\n let n = 0;\n for (let f = format; f; f >>= 1) n += f & 1;\n return n * 2;\n};\n\n/** X advance adjustment of the first value record of a pair (`valueFormat` bit 4 is XAdvance). */\nfunction xAdvance(view: DataView, at: number, format: number): number {\n if (!(format & 4)) return 0;\n let skip = 0;\n if (format & 1) skip += 2;\n if (format & 2) skip += 2;\n return view.getInt16(at + skip);\n}\n\nfunction gposKerning(view: DataView, t: Table | undefined): ((a: number, b: number) => number) | null {\n if (!t) return null;\n const base = t.offset;\n const scripts = base + view.getUint16(base + 4);\n const features = base + view.getUint16(base + 6);\n const lookups = base + view.getUint16(base + 8);\n void scripts;\n const lookupIds = new Set<number>();\n const nf = view.getUint16(features);\n for (let i = 0; i < nf; i++) {\n const rec = features + 2 + i * 6;\n let tag = '';\n for (let k = 0; k < 4; k++) tag += String.fromCharCode(view.getUint8(rec + k));\n if (tag !== 'kern') continue;\n const f = features + view.getUint16(rec + 4);\n const n = view.getUint16(f + 2);\n for (let k = 0; k < n; k++) lookupIds.add(view.getUint16(f + 4 + k * 2));\n }\n const subtables: number[] = [];\n const nl = view.getUint16(lookups);\n for (const id of [...lookupIds].sort((a, b) => a - b)) {\n if (id >= nl) continue;\n const l = lookups + view.getUint16(lookups + 2 + id * 2);\n let type = view.getUint16(l);\n const n = view.getUint16(l + 4);\n for (let k = 0; k < n; k++) {\n let st = l + view.getUint16(l + 6 + k * 2);\n if (type === 9) {\n type = view.getUint16(st + 2);\n st = st + view.getUint32(st + 4);\n }\n if (type === 2) subtables.push(st);\n type = view.getUint16(l);\n }\n }\n if (!subtables.length) return null;\n return (a, b) => {\n for (const st of subtables) {\n const format = view.getUint16(st);\n const ci = coverageIndex(view, st + view.getUint16(st + 2), a);\n if (ci < 0) continue;\n const vf1 = view.getUint16(st + 4);\n const vf2 = view.getUint16(st + 6);\n const recSize = valueSize(vf1) + valueSize(vf2);\n if (format === 1) {\n const set = st + view.getUint16(st + 10 + ci * 2);\n const n = view.getUint16(set);\n let lo = 0;\n let hi = n - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >> 1;\n const rec = set + 2 + mid * (2 + recSize);\n const g = view.getUint16(rec);\n if (g === b) return xAdvance(view, rec + 2, vf1);\n if (g < b) lo = mid + 1;\n else hi = mid - 1;\n }\n } else if (format === 2) {\n const c1 = classOf(view, st + view.getUint16(st + 8), a);\n const c2 = classOf(view, st + view.getUint16(st + 10), b);\n const n2 = view.getUint16(st + 14);\n const rec = st + 16 + (c1 * n2 + c2) * recSize;\n const v = xAdvance(view, rec, vf1);\n if (v) return v;\n }\n }\n return 0;\n };\n}\n\n// ---------------------------------------------------------------------------\n// Font\n// ---------------------------------------------------------------------------\n\nconst toView = (data: ArrayBuffer | ArrayBufferView): DataView =>\n data instanceof ArrayBuffer ? new DataView(data) : new DataView(data.buffer, data.byteOffset, data.byteLength);\n\n/**\n * Reads a TrueType or OpenType font (`.ttf`, `.otf`, or face `index` of a `.ttc` collection).\n * Throws with the reason when the file is not one, or lacks the tables layout needs. For WOFF files\n * use `loadOpenTypeFont`.\n */\nexport function parseOpenTypeFont(data: ArrayBuffer | ArrayBufferView, options: { index?: number } = {}): OpenTypeFont {\n const view = toView(data);\n if (view.byteLength < 12) fail('The font file is too short.');\n let at = 0;\n if (view.getUint32(0) === 0x74746366) {\n const n = view.getUint32(8);\n const index = options.index ?? 0;\n if (index < 0 || index >= n) fail(`The collection has ${n} faces; index ${index} is out of range.`);\n at = view.getUint32(12 + index * 4);\n }\n const tables = tableDirectory(view, at);\n const need = (tag: string) => tables.get(tag) ?? fail(`The font has no \"${tag}\" table.`);\n const head = need('head');\n const unitsPerEm = view.getUint16(head.offset + 18) || 1000;\n const longLoca = view.getInt16(head.offset + 50) === 1;\n const macStyle = view.getUint16(head.offset + 44);\n const hhea = need('hhea');\n let ascender = view.getInt16(hhea.offset + 4);\n let descender = view.getInt16(hhea.offset + 6);\n const numHMetrics = view.getUint16(hhea.offset + 34);\n const numGlyphs = view.getUint16(need('maxp').offset + 4);\n const hmtx = need('hmtx');\n const os2 = tables.get('OS/2');\n let weight = macStyle & 1 ? 700 : 400;\n let fsSelection = macStyle & 2 ? 1 : 0;\n if (os2 && os2.length >= 78) {\n weight = view.getUint16(os2.offset + 4) || weight;\n fsSelection = view.getUint16(os2.offset + 62);\n // USE_TYPO_METRICS: the typographic ascender and descender are the ones to use.\n if (fsSelection & 128) {\n ascender = view.getInt16(os2.offset + 68);\n descender = view.getInt16(os2.offset + 70);\n }\n }\n if (!ascender && !descender) {\n ascender = Math.round(unitsPerEm * 0.8);\n descender = -Math.round(unitsPerEm * 0.2);\n }\n const names = readNames(view, tables.get('name'));\n const family = names.get(16) ?? names.get(1) ?? 'Font';\n const style = names.get(17) ?? names.get(2) ?? 'Regular';\n const postScriptName = names.get(6) ?? family.replace(/\\s+/g, '');\n const italic = Boolean(fsSelection & 1) || /italic|oblique/i.test(style);\n const cmap = readCmap(view, need('cmap'));\n const glyf = tables.get('glyf');\n const cff = tables.get('CFF ');\n let pathOf: (g: number) => OutlinePathCommand[];\n let cffWidth: ((g: number) => number | null) | null = null;\n let outlines: 'glyf' | 'cff';\n if (glyf) {\n pathOf = glyfOutlines(view, glyf, need('loca'), longLoca, numGlyphs);\n outlines = 'glyf';\n } else if (cff) {\n const c = cffOutlines(view, cff, numGlyphs);\n pathOf = c.path;\n cffWidth = c.width;\n outlines = 'cff';\n } else return fail('The font has neither TrueType (\"glyf\") nor CFF outlines (CFF2 and bitmap fonts are not supported).');\n const advance = (g: number) => {\n if (g < 0 || g >= numGlyphs) return 0;\n const i = Math.min(g, numHMetrics - 1);\n if (i >= 0 && hmtx.offset + i * 4 + 2 <= hmtx.offset + hmtx.length) return view.getUint16(hmtx.offset + i * 4);\n return cffWidth?.(g) ?? 0;\n };\n const kernPairs = readKern(view, tables.get('kern'));\n const gpos = gposKerning(view, tables.get('GPOS'));\n const kerning = (a: number, b: number) => (gpos ? gpos(a, b) : 0) || kernPairs.get(a * 65536 + b) || 0;\n const glyphIndex = (cp: number) => cmap(cp);\n const pathCache = new Map<number, OutlinePathCommand[]>();\n const glyphPath = (g: number) => {\n let p = pathCache.get(g);\n if (!p) {\n p = pathOf(g);\n if (pathCache.size > 4096) pathCache.clear();\n pathCache.set(g, p);\n }\n return p;\n };\n const glyphs = (text: string) => {\n const out: number[] = [];\n for (const ch of text) {\n const cp = ch.codePointAt(0)!;\n // Lone surrogates (a caret inside a pair) and line breaks draw nothing.\n if ((cp >= 0xd800 && cp <= 0xdfff) || cp === 10 || cp === 13) continue;\n out.push(glyphIndex(cp));\n }\n return out;\n };\n const layout = (text: string, kern: boolean) => {\n const gs = glyphs(text);\n const xs: number[] = [];\n let x = 0;\n for (let i = 0; i < gs.length; i++) {\n if (i > 0 && kern) x += kerning(gs[i - 1], gs[i]);\n xs.push(x);\n x += advance(gs[i]);\n }\n return { gs, xs, width: x };\n };\n return {\n family,\n style,\n postScriptName,\n weight,\n italic,\n numGlyphs,\n outlines,\n unitsPerEm,\n ascender,\n descender,\n names: { fontFamily: { en: family }, postScriptName: { en: postScriptName } },\n tables: { os2: { usWeightClass: weight, fsSelection: italic ? fsSelection | 1 : fsSelection } },\n glyphIndex,\n advance,\n kerning,\n glyphPath,\n getAdvanceWidth(text, fontSize, opts) {\n return (layout(text, opts?.kerning !== false).width * fontSize) / unitsPerEm;\n },\n getPath(text, x, y, fontSize, opts) {\n const k = fontSize / unitsPerEm;\n const { gs, xs } = layout(text, opts?.kerning !== false);\n const commands: OutlinePathCommand[] = [];\n gs.forEach((g, i) => {\n const ox = x + xs[i] * k;\n for (const c of glyphPath(g)) {\n if (c.type === 'Z') commands.push({ type: 'Z' });\n else {\n const m: OutlinePathCommand = { type: c.type, x: ox + c.x! * k, y: y - c.y! * k };\n if (c.x1 !== undefined) {\n m.x1 = ox + c.x1 * k;\n m.y1 = y - c.y1! * k;\n }\n if (c.x2 !== undefined) {\n m.x2 = ox + c.x2 * k;\n m.y2 = y - c.y2! * k;\n }\n commands.push(m);\n }\n }\n });\n return { commands };\n },\n };\n}\n\n/**\n * Reads a font file: TrueType, OpenType, a collection (`index`) or WOFF 1.0 (decompressed with the\n * platform's `DecompressionStream`). WOFF2 needs Brotli, which browsers do not expose, so it is\n * refused with a hint.\n */\nexport async function loadOpenTypeFont(data: ArrayBuffer | ArrayBufferView | Blob, options: { index?: number } = {}): Promise<OpenTypeFont> {\n const buffer = typeof Blob !== 'undefined' && data instanceof Blob ? await data.arrayBuffer() : (data as ArrayBuffer | ArrayBufferView);\n const view = toView(buffer);\n const sig = view.byteLength >= 4 ? view.getUint32(0) : 0;\n if (sig === 0x774f4632) fail('WOFF2 fonts are not supported (they need Brotli); use the TTF, OTF or WOFF file.');\n if (sig !== 0x774f4646) return parseOpenTypeFont(view, options);\n return parseOpenTypeFont(await unwoff(view), options);\n}\n\nasync function inflate(bytes: Uint8Array): Promise<Uint8Array> {\n if (typeof DecompressionStream === 'undefined') fail('Reading WOFF fonts needs DecompressionStream, which this platform lacks; use the TTF or OTF file.');\n const stream = new Blob([bytes as BlobPart]).stream().pipeThrough(new DecompressionStream('deflate'));\n return new Uint8Array(await new Response(stream).arrayBuffer());\n}\n\n/** A WOFF 1.0 file rebuilt as an SFNT. */\nasync function unwoff(view: DataView): Promise<DataView> {\n const r = new Reader(view, 4);\n const flavor = r.u32();\n r.u32();\n const n = r.u16();\n r.u16();\n const total = r.u32();\n const out = new Uint8Array(total);\n const o = new DataView(out.buffer);\n o.setUint32(0, flavor);\n o.setUint16(4, n);\n let pos = 12 + n * 16;\n for (let i = 0; i < n; i++) {\n const e = 44 + i * 20;\n const tag = view.getUint32(e);\n const offset = view.getUint32(e + 4);\n const comp = view.getUint32(e + 8);\n const orig = view.getUint32(e + 12);\n const checksum = view.getUint32(e + 16);\n const raw = new Uint8Array(view.buffer, view.byteOffset + offset, comp);\n const bytes = comp < orig ? await inflate(raw) : raw;\n out.set(bytes.subarray(0, orig), pos);\n const d = 12 + i * 16;\n o.setUint32(d, tag);\n o.setUint32(d + 4, checksum);\n o.setUint32(d + 8, pos);\n o.setUint32(d + 12, orig);\n pos += (orig + 3) & ~3;\n }\n return o;\n}\n"],"mappings":"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","names":["out","n"]}
|