{"version":3,"sources":["jsdelivr-header.js","/npm/fontconv@0.0.7/script/mod.js"],"names":[],"mappings":"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","file":"/npm/fontconv@0.0.7/script/mod.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/fontconv@0.0.7/script/mod.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLigatureMap = void 0;\nexports.isOTF = isOTF;\nexports.isTTF = isTTF;\nexports.isEOT = isEOT;\nexports.isSVG = isSVG;\nexports.isWOFF = isWOFF;\nexports.isWOFF2 = isWOFF2;\nexports.otf2ttf = otf2ttf;\nexports.getFont = getFont;\nexports.getNameMap = getNameMap;\nexports.filterGlyphs = filterGlyphs;\nexports.convert = convert;\nconst dntShim = __importStar(require(\"./_dnt.shims.js\"));\nconst ligature_js_1 = require(\"./ligature.js\");\nObject.defineProperty(exports, \"getLigatureMap\", { enumerable: true, get: function () { return ligature_js_1.getLigatureMap; } });\nconst wawoff2_1 = require(\"wawoff2\");\nconst opentype_js_1 = require(\"opentype.js\");\nconst ttf2svg_1 = require(\"@marmooo/ttf2svg\");\nconst svg2ttf_1 = __importDefault(require(\"svg2ttf\"));\nconst ttf2eot_1 = __importDefault(require(\"ttf2eot\"));\nconst ttf2woff_1 = __importDefault(require(\"ttf2woff\"));\nfunction isOTF(uint8Array) {\n    return uint8Array[0] === 0x4F &&\n        uint8Array[1] === 0x54 &&\n        uint8Array[2] === 0x54 &&\n        uint8Array[3] === 0x4F;\n}\nfunction isTTF(uint8Array) {\n    return uint8Array[0] === 0x00 &&\n        uint8Array[1] === 0x01 &&\n        uint8Array[2] === 0x00 &&\n        uint8Array[3] === 0x00;\n}\nfunction isEOT(uint8Array) {\n    return uint8Array[34] === 0x4C && uint8Array[35] === 0x50;\n}\nfunction isSVG(object) {\n    return typeof object === \"string\";\n}\nfunction isWOFF(uint8Array) {\n    return uint8Array[0] === 0x77 &&\n        uint8Array[1] === 0x4F &&\n        uint8Array[2] === 0x46 &&\n        uint8Array[3] === 0x46;\n}\nfunction isWOFF2(uint8Array) {\n    return uint8Array[0] === 0x77 &&\n        uint8Array[1] === 0x4F &&\n        uint8Array[2] === 0x46 &&\n        uint8Array[3] === 0x32;\n}\n// glyph names are lost\n//   difficult: OTF --> TTF\n//   easy:      OTF --> SVG --> TTF\n// export function otf2ttf(otf) {\n//   const ttfObj = fonteditor.default.otf2ttfobject(otf);\n//   const ttfBuffer = new fonteditor.default.TTFWriter().write(ttfObj);\n//   return new Uint8Array(ttfBuffer);\n// }\nfunction otf2ttf(otf) {\n    const svg = (0, ttf2svg_1.ttf2svgFont)(new Uint8Array(otf));\n    return (0, svg2ttf_1.default)(svg).buffer;\n}\n// // TODO: not work\n// export function eot2ttf(eot) {\n//   const ttfObj = fonteditor.default.eot2ttf(eot.buffer);\n//   const ttfBuffer = new fonteditor.default.TTFWriter().write(ttfObj);\n//   return new Uint8Array(ttfBuffer);\n// }\nasync function getFont(fontContent) {\n    if (isSVG(fontContent)) {\n        const ttf = (0, svg2ttf_1.default)(fontContent);\n        return (0, opentype_js_1.parse)(ttf.buffer.buffer);\n    }\n    else if (isWOFF2(fontContent)) {\n        const data = await (0, wawoff2_1.decompress)(fontContent);\n        return (0, opentype_js_1.parse)(Uint8Array.from(data).buffer);\n    }\n    else if (isEOT(fontContent)) {\n        // const ttf = eot2ttf(fontContent);\n        // return parse(ttf.buffer);\n        throw new Error(\".eot format input is no supported.\");\n    }\n    else {\n        return (0, opentype_js_1.parse)(fontContent.buffer);\n    }\n}\nasync function convertFormat(font, format) {\n    const svg = (0, ttf2svg_1.font2svgFont)(font);\n    if (format === \".svg\")\n        return svg;\n    const ttf = (0, svg2ttf_1.default)(svg).buffer;\n    switch (format) {\n        case \".otf\": {\n            const tempFont = (0, opentype_js_1.parse)(ttf.buffer);\n            return new Uint8Array(tempFont.toArrayBuffer());\n        }\n        case \".ttf\":\n            return ttf;\n        case \".eot\":\n            return (0, ttf2eot_1.default)(ttf);\n        case \".woff\":\n            return (0, ttf2woff_1.default)(ttf);\n        case \".woff2\":\n            // return ttf2woff2(ttf);\n            return await (0, wawoff2_1.compress)(ttf);\n        default:\n            throw new Error(`${format} is not a supported format.`);\n    }\n}\nfunction getNameMap(font) {\n    const map = {};\n    for (const glyph of Object.values(font.glyphs.glyphs)) {\n        map[glyph.name] = glyph.index;\n    }\n    return map;\n}\nfunction filterGlyphs(font, options) {\n    if (options.textFile) {\n        const text = dntShim.Deno.readTextFileSync(options.textFile);\n        const glyphString = text.trimEnd().replace(/\\n/g, \"\");\n        return font.stringToGlyphs(glyphString);\n    }\n    else if (options.codeFile) {\n        const text = dntShim.Deno.readTextFileSync(options.codeFile);\n        const glyphString = text.trimEnd().split(\"\\n\")\n            .map((line) => String.fromCodePoint(Number(line))).join(\"\");\n        return font.stringToGlyphs(glyphString);\n    }\n    else if (options.nameFile) {\n        const nameMap = getNameMap(font);\n        const text = dntShim.Deno.readTextFileSync(options.nameFile);\n        return text.trimEnd().split(\"\\n\")\n            .map((line) => font.glyphs.get(nameMap[line]));\n    }\n    else if (options.ligatureFile) {\n        const ligatureMap = (0, ligature_js_1.getLigatureMap)(font, \"name\");\n        const text = dntShim.Deno.readTextFileSync(options.ligatureFile);\n        return text.trimEnd().split(\"\\n\")\n            .map((line) => font.glyphs.get(ligatureMap[line].by));\n    }\n    else if (options.text) {\n        return font.stringToGlyphs(options.text);\n    }\n    else if (options.code) {\n        const glyphString = options.code.split(\",\")\n            .map((code) => String.fromCodePoint(Number(code))).join(\"\");\n        return font.stringToGlyphs(glyphString);\n    }\n    else if (options.name) {\n        const nameMap = getNameMap(font);\n        return options.name.split(\",\")\n            .map((line) => font.glyphs.get(nameMap[line]));\n    }\n    else if (options.ligature) {\n        const ligatureMap = (0, ligature_js_1.getLigatureMap)(font, \"name\");\n        return options.ligature.split(\",\")\n            .map((line) => font.glyphs.get(ligatureMap[line].by));\n    }\n    else {\n        return Object.values(font.glyphs.glyphs);\n    }\n}\nfunction createTemporaryFont(font, glyphs) {\n    const notdefGlyph = font.glyphs.get(0);\n    notdefGlyph.name = \".notdef\";\n    // avoid the warning caused by opentype.js below\n    // Undefined CHARARRAY encountered and treated as an empty string.\n    glyphs.forEach((glyph) => {\n        if (!glyph.name)\n            glyph.name = \"\";\n    });\n    const tmpFont = new opentype_js_1.Font({\n        familyName: font.names.fontFamily.en,\n        styleName: font.names.fontSubfamily.en,\n        unitsPerEm: font.unitsPerEm,\n        ascender: font.ascender,\n        descender: font.descender,\n        glyphs: [notdefGlyph, ...glyphs],\n    });\n    tmpFont.names = font.names;\n    return tmpFont;\n}\nfunction createLigaturesFont(font, glyphs) {\n    const ligatureMap = (0, ligature_js_1.getLigatureMap)(font, \"by\");\n    const charSet = new Set();\n    for (const glyph of glyphs) {\n        const ligature = ligatureMap[glyph.index];\n        if (ligature) {\n            Array.from(ligature.name).forEach((char) => {\n                charSet.add(char);\n            });\n        }\n    }\n    glyphs.forEach((glyph) => {\n        const char = String.fromCharCode(glyph.unicode);\n        if (charSet.has(char))\n            charSet.delete(char);\n    });\n    const ligatureGlyphs = [];\n    charSet.forEach((char) => {\n        const unicode = char.codePointAt(0);\n        const glyphIndex = font.encoding.cmap.glyphIndexMap[unicode];\n        const glyph = font.glyphs.get(glyphIndex);\n        ligatureGlyphs.push(glyph);\n    });\n    const newGlyphs = [...ligatureGlyphs, ...glyphs];\n    const tmpFont = createTemporaryFont(font, newGlyphs);\n    const charMap = {};\n    newGlyphs.forEach((glyph, index) => {\n        const char = String.fromCharCode(glyph.unicode);\n        charMap[char] = index + 1;\n    });\n    glyphs.forEach((glyph, i) => {\n        const ligature = ligatureMap[glyph.index];\n        if (ligature) {\n            const sub = Array.from(ligature.name)\n                .map((char) => charMap[char]);\n            const by = ligatureGlyphs.length + i + 1;\n            tmpFont.substitution.addLigature(\"liga\", { sub, by });\n            glyph.name = ligature.name;\n        }\n    });\n    const otf = tmpFont.toArrayBuffer();\n    const newFont = (0, opentype_js_1.parse)(otf);\n    return newFont;\n}\nfunction createFont(font, glyphs, options) {\n    if (options.removeLigatures) {\n        return createTemporaryFont(font, glyphs);\n    }\n    else {\n        return createLigaturesFont(font, glyphs);\n    }\n}\nasync function convert(fontContent, format, options) {\n    const font = await getFont(fontContent);\n    const glyphs = filterGlyphs(font, options);\n    const tempFont = createFont(font, glyphs, options);\n    return await convertFormat(tempFont, format);\n}\n"]}