cn-font-split
Version:
划时代的字体切割工具,CJK与任何字符!支持 otf、ttf、woff2 字体多线程切割,完美地细颗粒度地进行包大小控制。A revolutionary font subetter that supports CJK and any characters! It enables multi-threaded subset of otf, ttf, and woff2 fonts, allowing for precise control over package size.
1 lines • 138 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../src/gen/index.ts"],"sourcesContent":["/**\n * Generated by the protoc-gen-ts. DO NOT EDIT!\n * compiler version: 5.28.3\n * source: index.proto\n * git: https://github.com/thesayyn/protoc-gen-ts */\nimport * as pb_1 from \"google-protobuf\";\nexport namespace api_interface {\n export enum EventName {\n UNSPECIFIED = 0,\n OUTPUT_DATA = 1,\n END = 2\n }\n export class InputTemplate extends pb_1.Message {\n #one_of_decls: number[][] = [[2], [5], [6], [9], [10], [11], [13], [14], [15], [18], [20], [8], [21], [22], [23], [24], [25]];\n constructor(data?: any[] | ({\n input?: Uint8Array;\n subsets?: Uint8Array[];\n } & (({\n outDir?: string;\n }) | ({\n css?: InputTemplate.CssProperties;\n }) | ({\n targetType?: string;\n }) | ({\n chunkSize?: number;\n }) | ({\n chunkSizeTolerance?: number;\n }) | ({\n maxAllowSubsetsCount?: number;\n }) | ({\n testHtml?: boolean;\n }) | ({\n reporter?: boolean;\n }) | ({\n previewImage?: InputTemplate.PreviewImage;\n }) | ({\n renameOutputFont?: string;\n }) | ({\n buildMode?: string;\n }) | ({\n languageAreas?: boolean;\n }) | ({\n multiThreads?: boolean;\n }) | ({\n fontFeature?: boolean;\n }) | ({\n reduceMins?: boolean;\n }) | ({\n autoSubset?: boolean;\n }) | ({\n subsetRemainChars?: boolean;\n })))) {\n super();\n pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [7], this.#one_of_decls);\n if (!Array.isArray(data) && typeof data == \"object\") {\n if (\"input\" in data && data.input != undefined) {\n this.input = data.input;\n }\n if (\"outDir\" in data && data.outDir != undefined) {\n this.outDir = data.outDir;\n }\n if (\"css\" in data && data.css != undefined) {\n this.css = data.css;\n }\n if (\"targetType\" in data && data.targetType != undefined) {\n this.targetType = data.targetType;\n }\n if (\"subsets\" in data && data.subsets != undefined) {\n this.subsets = data.subsets;\n }\n if (\"chunkSize\" in data && data.chunkSize != undefined) {\n this.chunkSize = data.chunkSize;\n }\n if (\"chunkSizeTolerance\" in data && data.chunkSizeTolerance != undefined) {\n this.chunkSizeTolerance = data.chunkSizeTolerance;\n }\n if (\"maxAllowSubsetsCount\" in data && data.maxAllowSubsetsCount != undefined) {\n this.maxAllowSubsetsCount = data.maxAllowSubsetsCount;\n }\n if (\"testHtml\" in data && data.testHtml != undefined) {\n this.testHtml = data.testHtml;\n }\n if (\"reporter\" in data && data.reporter != undefined) {\n this.reporter = data.reporter;\n }\n if (\"previewImage\" in data && data.previewImage != undefined) {\n this.previewImage = data.previewImage;\n }\n if (\"renameOutputFont\" in data && data.renameOutputFont != undefined) {\n this.renameOutputFont = data.renameOutputFont;\n }\n if (\"buildMode\" in data && data.buildMode != undefined) {\n this.buildMode = data.buildMode;\n }\n if (\"languageAreas\" in data && data.languageAreas != undefined) {\n this.languageAreas = data.languageAreas;\n }\n if (\"multiThreads\" in data && data.multiThreads != undefined) {\n this.multiThreads = data.multiThreads;\n }\n if (\"fontFeature\" in data && data.fontFeature != undefined) {\n this.fontFeature = data.fontFeature;\n }\n if (\"reduceMins\" in data && data.reduceMins != undefined) {\n this.reduceMins = data.reduceMins;\n }\n if (\"autoSubset\" in data && data.autoSubset != undefined) {\n this.autoSubset = data.autoSubset;\n }\n if (\"subsetRemainChars\" in data && data.subsetRemainChars != undefined) {\n this.subsetRemainChars = data.subsetRemainChars;\n }\n }\n }\n get input() {\n return pb_1.Message.getFieldWithDefault(this, 1, new Uint8Array(0)) as Uint8Array;\n }\n set input(value: Uint8Array) {\n pb_1.Message.setField(this, 1, value);\n }\n get outDir() {\n return pb_1.Message.getFieldWithDefault(this, 2, \"\") as string;\n }\n set outDir(value: string) {\n pb_1.Message.setOneofField(this, 2, this.#one_of_decls[0], value);\n }\n get hasOutDir() {\n return pb_1.Message.getField(this, 2) != null;\n }\n get css() {\n return pb_1.Message.getWrapperField(this, InputTemplate.CssProperties, 5) as InputTemplate.CssProperties;\n }\n set css(value: InputTemplate.CssProperties) {\n pb_1.Message.setOneofWrapperField(this, 5, this.#one_of_decls[1], value);\n }\n get hasCss() {\n return pb_1.Message.getField(this, 5) != null;\n }\n get targetType() {\n return pb_1.Message.getFieldWithDefault(this, 6, \"\") as string;\n }\n set targetType(value: string) {\n pb_1.Message.setOneofField(this, 6, this.#one_of_decls[2], value);\n }\n get hasTargetType() {\n return pb_1.Message.getField(this, 6) != null;\n }\n get subsets() {\n return pb_1.Message.getFieldWithDefault(this, 7, []) as Uint8Array[];\n }\n set subsets(value: Uint8Array[]) {\n pb_1.Message.setField(this, 7, value);\n }\n get chunkSize() {\n return pb_1.Message.getFieldWithDefault(this, 9, 0) as number;\n }\n set chunkSize(value: number) {\n pb_1.Message.setOneofField(this, 9, this.#one_of_decls[3], value);\n }\n get hasChunkSize() {\n return pb_1.Message.getField(this, 9) != null;\n }\n get chunkSizeTolerance() {\n return pb_1.Message.getFieldWithDefault(this, 10, 0) as number;\n }\n set chunkSizeTolerance(value: number) {\n pb_1.Message.setOneofField(this, 10, this.#one_of_decls[4], value);\n }\n get hasChunkSizeTolerance() {\n return pb_1.Message.getField(this, 10) != null;\n }\n get maxAllowSubsetsCount() {\n return pb_1.Message.getFieldWithDefault(this, 11, 0) as number;\n }\n set maxAllowSubsetsCount(value: number) {\n pb_1.Message.setOneofField(this, 11, this.#one_of_decls[5], value);\n }\n get hasMaxAllowSubsetsCount() {\n return pb_1.Message.getField(this, 11) != null;\n }\n get testHtml() {\n return pb_1.Message.getFieldWithDefault(this, 13, false) as boolean;\n }\n set testHtml(value: boolean) {\n pb_1.Message.setOneofField(this, 13, this.#one_of_decls[6], value);\n }\n get hasTestHtml() {\n return pb_1.Message.getField(this, 13) != null;\n }\n get reporter() {\n return pb_1.Message.getFieldWithDefault(this, 14, false) as boolean;\n }\n set reporter(value: boolean) {\n pb_1.Message.setOneofField(this, 14, this.#one_of_decls[7], value);\n }\n get hasReporter() {\n return pb_1.Message.getField(this, 14) != null;\n }\n get previewImage() {\n return pb_1.Message.getWrapperField(this, InputTemplate.PreviewImage, 15) as InputTemplate.PreviewImage;\n }\n set previewImage(value: InputTemplate.PreviewImage) {\n pb_1.Message.setOneofWrapperField(this, 15, this.#one_of_decls[8], value);\n }\n get hasPreviewImage() {\n return pb_1.Message.getField(this, 15) != null;\n }\n get renameOutputFont() {\n return pb_1.Message.getFieldWithDefault(this, 18, \"\") as string;\n }\n set renameOutputFont(value: string) {\n pb_1.Message.setOneofField(this, 18, this.#one_of_decls[9], value);\n }\n get hasRenameOutputFont() {\n return pb_1.Message.getField(this, 18) != null;\n }\n get buildMode() {\n return pb_1.Message.getFieldWithDefault(this, 20, \"\") as string;\n }\n set buildMode(value: string) {\n pb_1.Message.setOneofField(this, 20, this.#one_of_decls[10], value);\n }\n get hasBuildMode() {\n return pb_1.Message.getField(this, 20) != null;\n }\n get languageAreas() {\n return pb_1.Message.getFieldWithDefault(this, 8, false) as boolean;\n }\n set languageAreas(value: boolean) {\n pb_1.Message.setOneofField(this, 8, this.#one_of_decls[11], value);\n }\n get hasLanguageAreas() {\n return pb_1.Message.getField(this, 8) != null;\n }\n get multiThreads() {\n return pb_1.Message.getFieldWithDefault(this, 21, false) as boolean;\n }\n set multiThreads(value: boolean) {\n pb_1.Message.setOneofField(this, 21, this.#one_of_decls[12], value);\n }\n get hasMultiThreads() {\n return pb_1.Message.getField(this, 21) != null;\n }\n get fontFeature() {\n return pb_1.Message.getFieldWithDefault(this, 22, false) as boolean;\n }\n set fontFeature(value: boolean) {\n pb_1.Message.setOneofField(this, 22, this.#one_of_decls[13], value);\n }\n get hasFontFeature() {\n return pb_1.Message.getField(this, 22) != null;\n }\n get reduceMins() {\n return pb_1.Message.getFieldWithDefault(this, 23, false) as boolean;\n }\n set reduceMins(value: boolean) {\n pb_1.Message.setOneofField(this, 23, this.#one_of_decls[14], value);\n }\n get hasReduceMins() {\n return pb_1.Message.getField(this, 23) != null;\n }\n get autoSubset() {\n return pb_1.Message.getFieldWithDefault(this, 24, false) as boolean;\n }\n set autoSubset(value: boolean) {\n pb_1.Message.setOneofField(this, 24, this.#one_of_decls[15], value);\n }\n get hasAutoSubset() {\n return pb_1.Message.getField(this, 24) != null;\n }\n get subsetRemainChars() {\n return pb_1.Message.getFieldWithDefault(this, 25, false) as boolean;\n }\n set subsetRemainChars(value: boolean) {\n pb_1.Message.setOneofField(this, 25, this.#one_of_decls[16], value);\n }\n get hasSubsetRemainChars() {\n return pb_1.Message.getField(this, 25) != null;\n }\n get _out_dir() {\n const cases: {\n [index: number]: \"none\" | \"outDir\";\n } = {\n 0: \"none\",\n 2: \"outDir\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [2])];\n }\n get _css() {\n const cases: {\n [index: number]: \"none\" | \"css\";\n } = {\n 0: \"none\",\n 5: \"css\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [5])];\n }\n get _target_type() {\n const cases: {\n [index: number]: \"none\" | \"targetType\";\n } = {\n 0: \"none\",\n 6: \"targetType\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [6])];\n }\n get _chunk_size() {\n const cases: {\n [index: number]: \"none\" | \"chunkSize\";\n } = {\n 0: \"none\",\n 9: \"chunkSize\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [9])];\n }\n get _chunk_size_tolerance() {\n const cases: {\n [index: number]: \"none\" | \"chunkSizeTolerance\";\n } = {\n 0: \"none\",\n 10: \"chunkSizeTolerance\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [10])];\n }\n get _max_allow_subsets_count() {\n const cases: {\n [index: number]: \"none\" | \"maxAllowSubsetsCount\";\n } = {\n 0: \"none\",\n 11: \"maxAllowSubsetsCount\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [11])];\n }\n get _test_html() {\n const cases: {\n [index: number]: \"none\" | \"testHtml\";\n } = {\n 0: \"none\",\n 13: \"testHtml\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [13])];\n }\n get _reporter() {\n const cases: {\n [index: number]: \"none\" | \"reporter\";\n } = {\n 0: \"none\",\n 14: \"reporter\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [14])];\n }\n get _preview_image() {\n const cases: {\n [index: number]: \"none\" | \"previewImage\";\n } = {\n 0: \"none\",\n 15: \"previewImage\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [15])];\n }\n get _rename_output_font() {\n const cases: {\n [index: number]: \"none\" | \"renameOutputFont\";\n } = {\n 0: \"none\",\n 18: \"renameOutputFont\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [18])];\n }\n get _build_mode() {\n const cases: {\n [index: number]: \"none\" | \"buildMode\";\n } = {\n 0: \"none\",\n 20: \"buildMode\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [20])];\n }\n get _language_areas() {\n const cases: {\n [index: number]: \"none\" | \"languageAreas\";\n } = {\n 0: \"none\",\n 8: \"languageAreas\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [8])];\n }\n get _multi_threads() {\n const cases: {\n [index: number]: \"none\" | \"multiThreads\";\n } = {\n 0: \"none\",\n 21: \"multiThreads\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [21])];\n }\n get _font_feature() {\n const cases: {\n [index: number]: \"none\" | \"fontFeature\";\n } = {\n 0: \"none\",\n 22: \"fontFeature\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [22])];\n }\n get _reduce_mins() {\n const cases: {\n [index: number]: \"none\" | \"reduceMins\";\n } = {\n 0: \"none\",\n 23: \"reduceMins\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [23])];\n }\n get _auto_subset() {\n const cases: {\n [index: number]: \"none\" | \"autoSubset\";\n } = {\n 0: \"none\",\n 24: \"autoSubset\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [24])];\n }\n get _subset_remain_chars() {\n const cases: {\n [index: number]: \"none\" | \"subsetRemainChars\";\n } = {\n 0: \"none\",\n 25: \"subsetRemainChars\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [25])];\n }\n static fromObject(data: {\n input?: Uint8Array;\n outDir?: string;\n css?: ReturnType<typeof InputTemplate.CssProperties.prototype.toObject>;\n targetType?: string;\n subsets?: Uint8Array[];\n chunkSize?: number;\n chunkSizeTolerance?: number;\n maxAllowSubsetsCount?: number;\n testHtml?: boolean;\n reporter?: boolean;\n previewImage?: ReturnType<typeof InputTemplate.PreviewImage.prototype.toObject>;\n renameOutputFont?: string;\n buildMode?: string;\n languageAreas?: boolean;\n multiThreads?: boolean;\n fontFeature?: boolean;\n reduceMins?: boolean;\n autoSubset?: boolean;\n subsetRemainChars?: boolean;\n }): InputTemplate {\n const message = new InputTemplate({});\n if (data.input != null) {\n message.input = data.input;\n }\n if (data.outDir != null) {\n message.outDir = data.outDir;\n }\n if (data.css != null) {\n message.css = InputTemplate.CssProperties.fromObject(data.css);\n }\n if (data.targetType != null) {\n message.targetType = data.targetType;\n }\n if (data.subsets != null) {\n message.subsets = data.subsets;\n }\n if (data.chunkSize != null) {\n message.chunkSize = data.chunkSize;\n }\n if (data.chunkSizeTolerance != null) {\n message.chunkSizeTolerance = data.chunkSizeTolerance;\n }\n if (data.maxAllowSubsetsCount != null) {\n message.maxAllowSubsetsCount = data.maxAllowSubsetsCount;\n }\n if (data.testHtml != null) {\n message.testHtml = data.testHtml;\n }\n if (data.reporter != null) {\n message.reporter = data.reporter;\n }\n if (data.previewImage != null) {\n message.previewImage = InputTemplate.PreviewImage.fromObject(data.previewImage);\n }\n if (data.renameOutputFont != null) {\n message.renameOutputFont = data.renameOutputFont;\n }\n if (data.buildMode != null) {\n message.buildMode = data.buildMode;\n }\n if (data.languageAreas != null) {\n message.languageAreas = data.languageAreas;\n }\n if (data.multiThreads != null) {\n message.multiThreads = data.multiThreads;\n }\n if (data.fontFeature != null) {\n message.fontFeature = data.fontFeature;\n }\n if (data.reduceMins != null) {\n message.reduceMins = data.reduceMins;\n }\n if (data.autoSubset != null) {\n message.autoSubset = data.autoSubset;\n }\n if (data.subsetRemainChars != null) {\n message.subsetRemainChars = data.subsetRemainChars;\n }\n return message;\n }\n toObject() {\n const data: {\n input?: Uint8Array;\n outDir?: string;\n css?: ReturnType<typeof InputTemplate.CssProperties.prototype.toObject>;\n targetType?: string;\n subsets?: Uint8Array[];\n chunkSize?: number;\n chunkSizeTolerance?: number;\n maxAllowSubsetsCount?: number;\n testHtml?: boolean;\n reporter?: boolean;\n previewImage?: ReturnType<typeof InputTemplate.PreviewImage.prototype.toObject>;\n renameOutputFont?: string;\n buildMode?: string;\n languageAreas?: boolean;\n multiThreads?: boolean;\n fontFeature?: boolean;\n reduceMins?: boolean;\n autoSubset?: boolean;\n subsetRemainChars?: boolean;\n } = {};\n if (this.input != null) {\n data.input = this.input;\n }\n if (this.outDir != null) {\n data.outDir = this.outDir;\n }\n if (this.css != null) {\n data.css = this.css.toObject();\n }\n if (this.targetType != null) {\n data.targetType = this.targetType;\n }\n if (this.subsets != null) {\n data.subsets = this.subsets;\n }\n if (this.chunkSize != null) {\n data.chunkSize = this.chunkSize;\n }\n if (this.chunkSizeTolerance != null) {\n data.chunkSizeTolerance = this.chunkSizeTolerance;\n }\n if (this.maxAllowSubsetsCount != null) {\n data.maxAllowSubsetsCount = this.maxAllowSubsetsCount;\n }\n if (this.testHtml != null) {\n data.testHtml = this.testHtml;\n }\n if (this.reporter != null) {\n data.reporter = this.reporter;\n }\n if (this.previewImage != null) {\n data.previewImage = this.previewImage.toObject();\n }\n if (this.renameOutputFont != null) {\n data.renameOutputFont = this.renameOutputFont;\n }\n if (this.buildMode != null) {\n data.buildMode = this.buildMode;\n }\n if (this.languageAreas != null) {\n data.languageAreas = this.languageAreas;\n }\n if (this.multiThreads != null) {\n data.multiThreads = this.multiThreads;\n }\n if (this.fontFeature != null) {\n data.fontFeature = this.fontFeature;\n }\n if (this.reduceMins != null) {\n data.reduceMins = this.reduceMins;\n }\n if (this.autoSubset != null) {\n data.autoSubset = this.autoSubset;\n }\n if (this.subsetRemainChars != null) {\n data.subsetRemainChars = this.subsetRemainChars;\n }\n return data;\n }\n serialize(): Uint8Array;\n serialize(w: pb_1.BinaryWriter): void;\n serialize(w?: pb_1.BinaryWriter): Uint8Array | void {\n const writer = w || new pb_1.BinaryWriter();\n if (this.input.length)\n writer.writeBytes(1, this.input);\n if (this.hasOutDir)\n writer.writeString(2, this.outDir);\n if (this.hasCss)\n writer.writeMessage(5, this.css, () => this.css.serialize(writer));\n if (this.hasTargetType)\n writer.writeString(6, this.targetType);\n if (this.subsets.length)\n writer.writeRepeatedBytes(7, this.subsets);\n if (this.hasChunkSize)\n writer.writeInt32(9, this.chunkSize);\n if (this.hasChunkSizeTolerance)\n writer.writeFloat(10, this.chunkSizeTolerance);\n if (this.hasMaxAllowSubsetsCount)\n writer.writeInt32(11, this.maxAllowSubsetsCount);\n if (this.hasTestHtml)\n writer.writeBool(13, this.testHtml);\n if (this.hasReporter)\n writer.writeBool(14, this.reporter);\n if (this.hasPreviewImage)\n writer.writeMessage(15, this.previewImage, () => this.previewImage.serialize(writer));\n if (this.hasRenameOutputFont)\n writer.writeString(18, this.renameOutputFont);\n if (this.hasBuildMode)\n writer.writeString(20, this.buildMode);\n if (this.hasLanguageAreas)\n writer.writeBool(8, this.languageAreas);\n if (this.hasMultiThreads)\n writer.writeBool(21, this.multiThreads);\n if (this.hasFontFeature)\n writer.writeBool(22, this.fontFeature);\n if (this.hasReduceMins)\n writer.writeBool(23, this.reduceMins);\n if (this.hasAutoSubset)\n writer.writeBool(24, this.autoSubset);\n if (this.hasSubsetRemainChars)\n writer.writeBool(25, this.subsetRemainChars);\n if (!w)\n return writer.getResultBuffer();\n }\n static deserialize(bytes: Uint8Array | pb_1.BinaryReader): InputTemplate {\n const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new InputTemplate();\n while (reader.nextField()) {\n if (reader.isEndGroup())\n break;\n switch (reader.getFieldNumber()) {\n case 1:\n message.input = reader.readBytes();\n break;\n case 2:\n message.outDir = reader.readString();\n break;\n case 5:\n reader.readMessage(message.css, () => message.css = InputTemplate.CssProperties.deserialize(reader));\n break;\n case 6:\n message.targetType = reader.readString();\n break;\n case 7:\n pb_1.Message.addToRepeatedField(message, 7, reader.readBytes());\n break;\n case 9:\n message.chunkSize = reader.readInt32();\n break;\n case 10:\n message.chunkSizeTolerance = reader.readFloat();\n break;\n case 11:\n message.maxAllowSubsetsCount = reader.readInt32();\n break;\n case 13:\n message.testHtml = reader.readBool();\n break;\n case 14:\n message.reporter = reader.readBool();\n break;\n case 15:\n reader.readMessage(message.previewImage, () => message.previewImage = InputTemplate.PreviewImage.deserialize(reader));\n break;\n case 18:\n message.renameOutputFont = reader.readString();\n break;\n case 20:\n message.buildMode = reader.readString();\n break;\n case 8:\n message.languageAreas = reader.readBool();\n break;\n case 21:\n message.multiThreads = reader.readBool();\n break;\n case 22:\n message.fontFeature = reader.readBool();\n break;\n case 23:\n message.reduceMins = reader.readBool();\n break;\n case 24:\n message.autoSubset = reader.readBool();\n break;\n case 25:\n message.subsetRemainChars = reader.readBool();\n break;\n default: reader.skipField();\n }\n }\n return message;\n }\n serializeBinary(): Uint8Array {\n return this.serialize();\n }\n static deserializeBinary(bytes: Uint8Array): InputTemplate {\n return InputTemplate.deserialize(bytes);\n }\n }\n export namespace InputTemplate {\n export class CssProperties extends pb_1.Message {\n #one_of_decls: number[][] = [[1], [2], [3], [4], [11], [12], [13], [8], [9]];\n constructor(data?: any[] | ({\n localFamily?: string[];\n polyfill?: InputTemplate.PolyfillType[];\n } & (({\n fontFamily?: string;\n }) | ({\n fontWeight?: string;\n }) | ({\n fontStyle?: string;\n }) | ({\n fontDisplay?: string;\n }) | ({\n commentBase?: boolean;\n }) | ({\n commentNameTable?: boolean;\n }) | ({\n commentUnicodes?: boolean;\n }) | ({\n compress?: boolean;\n }) | ({\n fileName?: string;\n })))) {\n super();\n pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [5, 6], this.#one_of_decls);\n if (!Array.isArray(data) && typeof data == \"object\") {\n if (\"fontFamily\" in data && data.fontFamily != undefined) {\n this.fontFamily = data.fontFamily;\n }\n if (\"fontWeight\" in data && data.fontWeight != undefined) {\n this.fontWeight = data.fontWeight;\n }\n if (\"fontStyle\" in data && data.fontStyle != undefined) {\n this.fontStyle = data.fontStyle;\n }\n if (\"fontDisplay\" in data && data.fontDisplay != undefined) {\n this.fontDisplay = data.fontDisplay;\n }\n if (\"localFamily\" in data && data.localFamily != undefined) {\n this.localFamily = data.localFamily;\n }\n if (\"polyfill\" in data && data.polyfill != undefined) {\n this.polyfill = data.polyfill;\n }\n if (\"commentBase\" in data && data.commentBase != undefined) {\n this.commentBase = data.commentBase;\n }\n if (\"commentNameTable\" in data && data.commentNameTable != undefined) {\n this.commentNameTable = data.commentNameTable;\n }\n if (\"commentUnicodes\" in data && data.commentUnicodes != undefined) {\n this.commentUnicodes = data.commentUnicodes;\n }\n if (\"compress\" in data && data.compress != undefined) {\n this.compress = data.compress;\n }\n if (\"fileName\" in data && data.fileName != undefined) {\n this.fileName = data.fileName;\n }\n }\n }\n get fontFamily() {\n return pb_1.Message.getFieldWithDefault(this, 1, \"\") as string;\n }\n set fontFamily(value: string) {\n pb_1.Message.setOneofField(this, 1, this.#one_of_decls[0], value);\n }\n get hasFontFamily() {\n return pb_1.Message.getField(this, 1) != null;\n }\n get fontWeight() {\n return pb_1.Message.getFieldWithDefault(this, 2, \"\") as string;\n }\n set fontWeight(value: string) {\n pb_1.Message.setOneofField(this, 2, this.#one_of_decls[1], value);\n }\n get hasFontWeight() {\n return pb_1.Message.getField(this, 2) != null;\n }\n get fontStyle() {\n return pb_1.Message.getFieldWithDefault(this, 3, \"\") as string;\n }\n set fontStyle(value: string) {\n pb_1.Message.setOneofField(this, 3, this.#one_of_decls[2], value);\n }\n get hasFontStyle() {\n return pb_1.Message.getField(this, 3) != null;\n }\n get fontDisplay() {\n return pb_1.Message.getFieldWithDefault(this, 4, \"\") as string;\n }\n set fontDisplay(value: string) {\n pb_1.Message.setOneofField(this, 4, this.#one_of_decls[3], value);\n }\n get hasFontDisplay() {\n return pb_1.Message.getField(this, 4) != null;\n }\n get localFamily() {\n return pb_1.Message.getFieldWithDefault(this, 5, []) as string[];\n }\n set localFamily(value: string[]) {\n pb_1.Message.setField(this, 5, value);\n }\n get polyfill() {\n return pb_1.Message.getRepeatedWrapperField(this, InputTemplate.PolyfillType, 6) as InputTemplate.PolyfillType[];\n }\n set polyfill(value: InputTemplate.PolyfillType[]) {\n pb_1.Message.setRepeatedWrapperField(this, 6, value);\n }\n get commentBase() {\n return pb_1.Message.getFieldWithDefault(this, 11, false) as boolean;\n }\n set commentBase(value: boolean) {\n pb_1.Message.setOneofField(this, 11, this.#one_of_decls[4], value);\n }\n get hasCommentBase() {\n return pb_1.Message.getField(this, 11) != null;\n }\n get commentNameTable() {\n return pb_1.Message.getFieldWithDefault(this, 12, false) as boolean;\n }\n set commentNameTable(value: boolean) {\n pb_1.Message.setOneofField(this, 12, this.#one_of_decls[5], value);\n }\n get hasCommentNameTable() {\n return pb_1.Message.getField(this, 12) != null;\n }\n get commentUnicodes() {\n return pb_1.Message.getFieldWithDefault(this, 13, false) as boolean;\n }\n set commentUnicodes(value: boolean) {\n pb_1.Message.setOneofField(this, 13, this.#one_of_decls[6], value);\n }\n get hasCommentUnicodes() {\n return pb_1.Message.getField(this, 13) != null;\n }\n get compress() {\n return pb_1.Message.getFieldWithDefault(this, 8, false) as boolean;\n }\n set compress(value: boolean) {\n pb_1.Message.setOneofField(this, 8, this.#one_of_decls[7], value);\n }\n get hasCompress() {\n return pb_1.Message.getField(this, 8) != null;\n }\n get fileName() {\n return pb_1.Message.getFieldWithDefault(this, 9, \"\") as string;\n }\n set fileName(value: string) {\n pb_1.Message.setOneofField(this, 9, this.#one_of_decls[8], value);\n }\n get hasFileName() {\n return pb_1.Message.getField(this, 9) != null;\n }\n get _font_family() {\n const cases: {\n [index: number]: \"none\" | \"fontFamily\";\n } = {\n 0: \"none\",\n 1: \"fontFamily\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [1])];\n }\n get _font_weight() {\n const cases: {\n [index: number]: \"none\" | \"fontWeight\";\n } = {\n 0: \"none\",\n 2: \"fontWeight\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [2])];\n }\n get _font_style() {\n const cases: {\n [index: number]: \"none\" | \"fontStyle\";\n } = {\n 0: \"none\",\n 3: \"fontStyle\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [3])];\n }\n get _font_display() {\n const cases: {\n [index: number]: \"none\" | \"fontDisplay\";\n } = {\n 0: \"none\",\n 4: \"fontDisplay\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [4])];\n }\n get _comment_base() {\n const cases: {\n [index: number]: \"none\" | \"commentBase\";\n } = {\n 0: \"none\",\n 11: \"commentBase\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [11])];\n }\n get _comment_name_table() {\n const cases: {\n [index: number]: \"none\" | \"commentNameTable\";\n } = {\n 0: \"none\",\n 12: \"commentNameTable\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [12])];\n }\n get _comment_unicodes() {\n const cases: {\n [index: number]: \"none\" | \"commentUnicodes\";\n } = {\n 0: \"none\",\n 13: \"commentUnicodes\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [13])];\n }\n get _compress() {\n const cases: {\n [index: number]: \"none\" | \"compress\";\n } = {\n 0: \"none\",\n 8: \"compress\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [8])];\n }\n get _file_name() {\n const cases: {\n [index: number]: \"none\" | \"fileName\";\n } = {\n 0: \"none\",\n 9: \"fileName\"\n };\n return cases[pb_1.Message.computeOneofCase(this, [9])];\n }\n static fromObject(data: {\n fontFamily?: string;\n fontWeight?: string;\n fontStyle?: string;\n fontDisplay?: string;\n localFamily?: string[];\n polyfill?: ReturnType<typeof InputTemplate.PolyfillType.prototype.toObject>[];\n commentBase?: boolean;\n commentNameTable?: boolean;\n commentUnicodes?: boolean;\n compress?: boolean;\n fileName?: string;\n }): CssProperties {\n const message = new CssProperties({});\n if (data.fontFamily != null) {\n message.fontFamily = data.fontFamily;\n }\n if (data.fontWeight != null) {\n message.fontWeight = data.fontWeight;\n }\n if (data.fontStyle != null) {\n message.fontStyle = data.fontStyle;\n }\n if (data.fontDisplay != null) {\n message.fontDisplay = data.fontDisplay;\n }\n if (data.localFamily != null) {\n message.localFamily = data.localFamily;\n }\n if (data.polyfill != null) {\n message.polyfill = data.polyfill.map(item => InputTemplate.PolyfillType.fromObject(item));\n }\n if (data.commentBase != null) {\n message.commentBase = data.commentBase;\n }\n if (data.commentNameTable != null) {\n message.commentNameTable = data.commentNameTable;\n }\n if (data.commentUnicodes != null) {\n message.commentUnicodes = data.commentUnicodes;\n }\n if (data.compress != null) {\n message.compress = data.compress;\n }\n if (data.fileName != null) {\n message.fileName = data.fileName;\n }\n return message;\n }\n toObject() {\n const data: {\n fontFamily?: string;\n fontWeight?: string;\n fontStyle?: string;\n fontDisplay?: string;\n localFamily?: string[];\n polyfill?: ReturnType<typeof InputTemplate.PolyfillType.prototype.toObject>[];\n commentBase?: boolean;\n commentNameTable?: boolean;\n commentUnicodes?: boolean;\n compress?: boolean;\n fileName?: string;\n } = {};\n if (this.fontFamily != null) {\n data.fontFamily = this.fontFamily;\n }\n if (this.fontWeight != null) {\n data.fontWeight = this.fontWeight;\n }\n if (this.fontStyle != null) {\n data.fontStyle = this.fontStyle;\n }\n if (this.fontDisplay != null) {\n data.fontDisplay = this.fontDisplay;\n }\n if (this.localFamily != null) {\n data.localFamily = this.localFamily;\n }\n if (this.polyfill != null) {\n data.polyfill = this.polyfill.map((item: InputTemplate.PolyfillType) => item.toObject());\n }\n if (this.commentBase != null) {\n data.commentBase = this.commentBase;\n }\n if (this.commentNameTable != null) {\n data.commentNameTable = this.commentNameTable;\n }\n if (this.commentUnicodes != null) {\n data.commentUnicodes = this.commentUnicodes;\n }\n if (this.compress != null) {\n data.compress = this.compress;\n }\n if (this.fileName != null) {\n data.fileName = this.fileName;\n }\n return data;\n }\n serialize(): Uint8Array;\n serialize(w: pb_1.BinaryWriter): void;\n serialize(w?: pb_1.BinaryWriter): Uint8Array | void {\n const writer = w || new pb_1.BinaryWriter();\n if (this.hasFontFamily)\n writer.writeString(1, this.fontFamily);\n if (this.hasFontWeight)\n writer.writeString(2, this.fontWeight);\n if (this.hasFontStyle)\n writer.writeString(3, this.fontStyle);\n if (this.hasFontDisplay)\n writer.writeString(4, this.fontDisplay);\n if (this.localFamily.length)\n writer.writeRepeatedString(5, this.localFamily);\n if (this.polyfill.length)\n writer.writeRepeatedMessage(6, this.polyfill, (item: InputTemplate.PolyfillType) => item.serialize(writer));\n if (this.hasCommentBase)\n writer.writeBool(11, this.commentBase);\n if (this.hasCommentNameTable)\n writer.writeBool(12, this.commentNameTable);\n if (this.hasCommentUnicodes)\n writer.writeBool(13, this.commentUnicodes);\n if (this.hasCompress)\n writer.writeBool(8, this.compress);\n if (this.hasFileName)\n writer.writeString(9, this.fileName);\n if (!w)\n return writer.getResultBuffer();\n }\n static deserialize(bytes: Uint8Array | pb_1.BinaryReader): CssProperties {\n const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new CssProperties();\n while (reader.nextField()) {\n if (reader.isEndGroup())\n break;\n switch (reader.getFieldNumber()) {\n case 1:\n message.fontFamily = reader.readString();\n break;\n case 2:\n message.fontWeight = reader.readString();\n break;\n case 3:\n message.fontStyle = reader.readString();\n break;\n case 4:\n message.fontDisplay = reader.readString();\n break;\n case 5:\n pb_1.Message.addToRepeatedField(message, 5, reader.readString());\n break;\n case 6:\n reader.readMessage(message.polyfill, () => pb_1.Message.addToRepeatedWrapperField(message, 6, InputTemplate.PolyfillType.deserialize(reader), InputTemplate.PolyfillType));\n break;\n case 11:\n message.commentBase = reader.readBool();\n break;\n case 12:\n message.commentNameTable = reader.readBool();\n break;\n case 13:\n message.commentUnicodes = reader.readBool();\n break;\n case 8:\n message.compress = reader.readBool();\n break;\n case 9:\n message.fileName = reader.readString();\n break;\n default: reader.skipField();\n }\n }\n return message;\n }\n serializeBinary(): Uint8Array {\n return this.serialize();\n }\n static deserializeBinary(bytes: Uint8Array): CssProperties {\n return CssProperties.deserialize(bytes);\n }\n }\n export class PolyfillType extends pb_1.Message {\n #one_of_decls: number[][] = [];\n constructor(data?: any[] | {\n name?: string;\n format?: string;\n }) {\n super();\n pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);\n if (!Array.isArray(data) && typeof data == \"object\") {\n if (\"name\" in data && data.name != undefined) {\n this.name = data.name;\n }\n if (\"format\" in data && data.format != undefined) {\n this.format = data.format;\n }\n }\n }\n get name() {\n return pb_1.Message.getFieldWithDefault(this, 1, \"\") as string;\n }\n set name(value: string) {\n pb_1.Message.setField(this, 1, value);\n }\n get format() {\n return pb_1.Message.getFieldWithDefault(this, 2, \"\") as string;\n }\n set format(value: string) {\n pb_1.Message.setField(this, 2, value);\n }\n static fromObject(data: {\n name?: string;\n format?: string;\n }): PolyfillType {\n const message = new PolyfillType({});\n if (data.name != null) {\n message.name = data.name;\n }\n if (data.format != null) {\n message.format = data.format;\n }\n return message;\n }\n toObject() {\n const data: {\n name?: string;\n format?: string;\n } = {};\n if (this.name != null) {\n data.name = this.name;\n }\n if (this.format != null) {\n data.format = this.format;\n }\n return data;\n }\n serialize(): Uint8Array;\n serialize(w: pb_1.BinaryWriter): void;\n serialize(w?: pb_1.BinaryWriter): Uint8Array | void {\n const writer = w || new pb_1.BinaryWriter();\n if (this.name.length)\n writer.writeString(1, this.name);\n if (this.format.length)\n writer.writeString(2, this.format);\n if (!w)\n return writer.getResultBuffer();\n }\n static deserialize(bytes: Uint8Array | pb_1.BinaryReader): PolyfillType {\n const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new PolyfillType();\n while (reader.nextField()