{"version":3,"sources":["webpack://_N_E/./node_modules/ajax-hook/src/xhr-hook.js","webpack://_N_E/./node_modules/ajax-hook/src/xhr-proxy.js","webpack://_N_E/./node_modules/@byted/asgw-font-loader/output/index.es.development.js"],"names":["configEvent","event","xhrProxy","e","attr","target","currentTarget","singleton","events","eventLoad","eventLoadEnd","eventTimeout","eventError","eventReadyStateChange","eventAbort","unProxy","window","XMLHttpRequest","undefined","getEventTarget","xhr","watcher","document","createElement","triggerListener","name","evt","getProxy","callback","type","Event","bubbles","createEvent","initEvent","dispatchEvent","Handler","this","makeHandler","next","sub","call","Object","create","resolve","response","readyState","resHeader","headers","responseText","statusText","status","reject","error","RequestHandler","rq","key","config","withCredentials","open","method","url","async","user","password","setRequestHeader","send","body","ResponseHandler","ErrorHandler","Proxy","proxy","onRequest","onResponse","onError","onerror","handler","preventXhrProxyCallback","errorCallback","stateChangeCallback","ret","getAllResponseHeaders","split","reduce","ob","str","m","shift","replace","trim","join","handleResponse","getterFactory","v","hasOwnProperty","attrGetterHook","setterFactory","that","hook","substring","attrSetterHook","hookFunction","fun","args","slice","arguments","apply","defineProperty","get","set","enumerable","onload","onloadend","ontimeout","onabort","onreadystatechange","_this","evName","defaultErrorHandler","forEach","req","setTimeout","toLowerCase","addEventListener","indexOf","isTrusted","_","header","getResponseHeader","__assign","assign","t","s","i","n","length","p","prototype","ASGW_FONT_CONFUSE_HEADER_NAME","fontFormatMap","woff2","woff","opentype","defaultFontFormats","originalFetch","fetch","fetchHookCallbacks","xhrHookCallbacks","hookXhr","value","cb","push","index","splice","FontMeta","domains","filename","base64","fontKey","tosSuffix","entries","_a","match","configurable","toFontFaceContent","_b","_c","formats","_d","weight","isValid","src","base64String","format","domain","tosBucket","toFontFaceString","weights","map","toClassContent","fallbackFonts","fontFamily","toClassString","toStyleString","fontWeights","parseStringConfig","result","currentKey","currentValue","currentWord","lastIsBackslash","char","parseConfig","input","isHeaders","StyleSheet","_id","_elements","destroy","values","element","head","removeChild","insertRule","ruleStr","id","dataset","toString","innerText","appendChild","deleteRule","FontLoader","_sheet","_fontFaceMap","_classNameMap","hookFetch","debug","generateClassName","fontFormats","parseHeaders","_insertFontFaceRule","fontName","rule","_insertClassNameRule","delete","auto","_stopHookFetch","_i","request","then","res","index_1","addFromConfigString","_stopHookXhr","fontMeta"],"mappings":"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","file":"static/chunks/1550-dc0aa93cdd09ee045e53.js","sourcesContent":["/*\n * author: wendux\n * email: 824783146@qq.com\n * source code: https://github.com/wendux/Ajax-hook\n */\n\n// Save original XMLHttpRequest as _rxhr\nvar realXhr = \"_rxhr\"\n\nexport function configEvent(event, xhrProxy) {\n var e = {};\n for (var attr in event) e[attr] = event[attr];\n // xhrProxy instead\n e.target = e.currentTarget = xhrProxy\n return e;\n}\n\nexport function hook(proxy) {\n // Avoid double hookAjax\n window[realXhr] = window[realXhr] || XMLHttpRequest\n\n XMLHttpRequest = function () {\n var xhr = new window[realXhr];\n // We shouldn't hookAjax XMLHttpRequest.prototype because we can't\n // guarantee that all attributes are on the prototype。\n // Instead, hooking XMLHttpRequest instance can avoid this problem.\n for (var attr in xhr) {\n var type = \"\";\n try {\n type = typeof xhr[attr] // May cause exception on some browser\n } catch (e) {\n }\n if (type === \"function\") {\n // hookAjax methods of xhr, such as `open`、`send` ...\n this[attr] = hookFunction(attr);\n } else {\n Object.defineProperty(this, attr, {\n get: getterFactory(attr),\n set: setterFactory(attr),\n enumerable: true\n })\n }\n }\n var that = this;\n xhr.getProxy = function () {\n return that\n }\n this.xhr = xhr;\n }\n\n // Generate getter for attributes of xhr\n function getterFactory(attr) {\n return function () {\n var v = this.hasOwnProperty(attr + \"_\") ? this[attr + \"_\"] : this.xhr[attr];\n var attrGetterHook = (proxy[attr] || {})[\"getter\"]\n return attrGetterHook && attrGetterHook(v, this) || v\n }\n }\n\n // Generate setter for attributes of xhr; by this we have an opportunity\n // to hookAjax event callbacks (eg: `onload`) of xhr;\n function setterFactory(attr) {\n return function (v) {\n var xhr = this.xhr;\n var that = this;\n var hook = proxy[attr];\n // hookAjax event callbacks such as `onload`、`onreadystatechange`...\n if (attr.substring(0, 2) === 'on') {\n that[attr + \"_\"] = v;\n xhr[attr] = function (e) {\n e = configEvent(e, that)\n var ret = proxy[attr] && proxy[attr].call(that, xhr, e)\n ret || v.call(that, e);\n }\n } else {\n //If the attribute isn't writable, generate proxy attribute\n var attrSetterHook = (hook || {})[\"setter\"];\n v = attrSetterHook && attrSetterHook(v, that) || v\n this[attr + \"_\"] = v;\n try {\n // Not all attributes of xhr are writable(setter may undefined).\n xhr[attr] = v;\n } catch (e) {\n }\n }\n }\n }\n\n // Hook methods of xhr.\n function hookFunction(fun) {\n return function () {\n var args = [].slice.call(arguments)\n if (proxy[fun]) {\n var ret = proxy[fun].call(this, args, this.xhr)\n // If the proxy return value exists, return it directly,\n // otherwise call the function of xhr.\n if (ret) return ret;\n }\n return this.xhr[fun].apply(this.xhr, args);\n }\n }\n\n // Return the real XMLHttpRequest\n return window[realXhr];\n}\n\nexport function unHook() {\n if (window[realXhr]) XMLHttpRequest = window[realXhr];\n window[realXhr] = undefined;\n}\n\n\n","/*\n * author: wendux\n * email: 824783146@qq.com\n * source code: https://github.com/wendux/Ajax-hook\n */\n\nimport {hook, unHook, configEvent} from \"./xhr-hook\";\n\nvar events = ['load', 'loadend', 'timeout', 'error', 'readystatechange', 'abort'];\nvar eventLoad = events[0],\n eventLoadEnd = events[1],\n eventTimeout = events[2],\n eventError = events[3],\n eventReadyStateChange = events[4],\n eventAbort = events[5];\n\n\nvar singleton,\n prototype = 'prototype';\n\n\nexport function proxy(proxy) {\n if (singleton) throw \"Proxy already exists\";\n return singleton = new Proxy(proxy);\n}\n\nexport function unProxy() {\n singleton = null\n unHook()\n}\n\nfunction trim(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nfunction getEventTarget(xhr) {\n return xhr.watcher || (xhr.watcher = document.createElement('a'));\n}\n\nfunction triggerListener(xhr, name) {\n var xhrProxy = xhr.getProxy();\n var callback = 'on' + name + '_';\n var event = configEvent({type: name}, xhrProxy);\n xhrProxy[callback] && xhrProxy[callback](event);\n var evt;\n if(typeof(Event) === 'function') {\n evt = new Event(name,{bubbles: false});\n } else {\n // https://stackoverflow.com/questions/27176983/dispatchevent-not-working-in-ie11\n evt = document.createEvent('Event');\n evt.initEvent(name, false, true);\n }\n getEventTarget(xhr).dispatchEvent(evt);\n}\n\n\nfunction Handler(xhr) {\n this.xhr = xhr;\n this.xhrProxy = xhr.getProxy();\n}\n\nHandler[prototype] = Object.create({\n resolve: function resolve(response) {\n var xhrProxy = this.xhrProxy;\n var xhr = this.xhr;\n xhrProxy.readyState = 4;\n xhr.resHeader = response.headers;\n xhrProxy.response = xhrProxy.responseText = response.response;\n xhrProxy.statusText = response.statusText;\n xhrProxy.status = response.status;\n triggerListener(xhr, eventReadyStateChange);\n triggerListener(xhr, eventLoad);\n triggerListener(xhr, eventLoadEnd);\n },\n reject: function reject(error) {\n this.xhrProxy.status = 0;\n triggerListener(this.xhr, error.type);\n triggerListener(this.xhr, eventLoadEnd);\n }\n});\n\nfunction makeHandler(next) {\n function sub(xhr) {\n Handler.call(this, xhr);\n }\n\n sub[prototype] = Object.create(Handler[prototype]);\n sub[prototype].next = next;\n return sub;\n}\n\nvar RequestHandler = makeHandler(function (rq) {\n var xhr = this.xhr;\n rq = rq || xhr.config;\n xhr.withCredentials = rq.withCredentials;\n xhr.open(rq.method, rq.url, rq.async !== false, rq.user, rq.password);\n for (var key in rq.headers) {\n xhr.setRequestHeader(key, rq.headers[key]);\n }\n xhr.send(rq.body);\n});\n\nvar ResponseHandler = makeHandler(function (response) {\n this.resolve(response);\n});\n\nvar ErrorHandler = makeHandler(function (error) {\n this.reject(error);\n});\n\nfunction Proxy(proxy) {\n var onRequest = proxy.onRequest,\n onResponse = proxy.onResponse,\n onError = proxy.onError;\n\n function handleResponse(xhr, xhrProxy) {\n var handler = new ResponseHandler(xhr);\n if (!onResponse) return handler.resolve();\n var ret = {\n response: xhrProxy.response,\n status: xhrProxy.status,\n statusText: xhrProxy.statusText,\n config: xhr.config,\n headers: xhr.resHeader || xhr.getAllResponseHeaders().split('\\r\\n').reduce(function (ob, str) {\n if (str === \"\") return ob;\n var m = str.split(\":\");\n ob[m.shift()] = trim(m.join(':'));\n return ob;\n }, {})\n };\n onResponse(ret, handler);\n }\n\n function onerror(xhr, xhrProxy, e) {\n var handler = new ErrorHandler(xhr);\n var error = {config: xhr.config, error: e};\n if (onError) {\n onError(error, handler);\n } else {\n handler.next(error);\n }\n }\n\n function preventXhrProxyCallback() {\n return true;\n }\n\n function errorCallback(xhr, e) {\n onerror(xhr, this, e);\n return true;\n }\n\n function stateChangeCallback(xhr, xhrProxy) {\n if (xhr.readyState === 4 && xhr.status !== 0) {\n handleResponse(xhr, xhrProxy);\n } else if (xhr.readyState !== 4) {\n triggerListener(xhr, eventReadyStateChange);\n }\n return true;\n }\n\n return hook({\n onload: preventXhrProxyCallback,\n onloadend: preventXhrProxyCallback,\n onerror: errorCallback,\n ontimeout: errorCallback,\n onabort: errorCallback,\n onreadystatechange: function (xhr) {\n return stateChangeCallback(xhr, this);\n },\n open: function open(args, xhr) {\n var _this = this;\n var config = xhr.config = {headers: {}};\n config.method = args[0];\n config.url = args[1];\n config.async = args[2];\n config.user = args[3];\n config.password = args[4];\n config.xhr = xhr;\n var evName = 'on' + eventReadyStateChange;\n if (!xhr[evName]) {\n xhr[evName] = function () {\n return stateChangeCallback(xhr, _this);\n };\n }\n\n var defaultErrorHandler = function defaultErrorHandler(e) {\n onerror(xhr, _this, configEvent(e, _this));\n };\n [eventError, eventTimeout, eventAbort].forEach(function (e) {\n var event = 'on' + e;\n if (!xhr[event]) xhr[event] = defaultErrorHandler;\n });\n\n // 如果有请求拦截器,则在调用onRequest后再打开链接。因为onRequest最佳调用时机是在send前,\n // 所以我们在send拦截函数中再手动调用open,因此返回true阻止xhr.open调用。\n //\n // 如果没有请求拦截器,则不用阻断xhr.open调用\n if (onRequest) return true;\n },\n send: function (args, xhr) {\n var config = xhr.config\n config.withCredentials=xhr.withCredentials\n config.body = args[0];\n if (onRequest) {\n // In 'onRequest', we may call XHR's event handler, such as `xhr.onload`.\n // However, XHR's event handler may not be set until xhr.send is called in\n // the user's code, so we use `setTimeout` to avoid this situation\n var req = function () {\n onRequest(config, new RequestHandler(xhr));\n }\n config.async === false ? req() : setTimeout(req)\n return true;\n }\n },\n setRequestHeader: function (args, xhr) {\n // Collect request headers\n xhr.config.headers[args[0].toLowerCase()] = args[1];\n return true;\n },\n addEventListener: function (args, xhr) {\n var _this = this;\n if (events.indexOf(args[0]) !== -1) {\n var handler = args[1];\n getEventTarget(xhr).addEventListener(args[0], function (e) {\n var event = configEvent(e, _this);\n event.type = args[0];\n event.isTrusted = true;\n handler.call(_this, event);\n });\n return true;\n }\n },\n getAllResponseHeaders: function (_, xhr) {\n var headers = xhr.resHeader\n if (headers) {\n var header = \"\";\n for (var key in headers) {\n header += key + ': ' + headers[key] + '\\r\\n';\n }\n return header;\n }\n },\n getResponseHeader: function (args, xhr) {\n var headers = xhr.resHeader\n if (headers) {\n return headers[(args[0] || '').toLowerCase()];\n }\n }\n });\n}\n\n\n\n\n","import { unProxy, proxy } from 'ajax-hook';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\n/**\r\n * header 名称\r\n */\r\nvar ASGW_FONT_CONFUSE_HEADER_NAME = 'x-tt-zhal';\r\nvar fontFormatMap = {\r\n woff2: 'woff2',\r\n woff: 'woff',\r\n opentype: 'otf',\r\n // truetype: 'ttf',\r\n};\r\nvar defaultFontFormats = ['woff2', 'woff', 'opentype'];\n\nvar originalFetch = typeof window === 'undefined' ? undefined : window.fetch;\r\nvar fetchHookCallbacks = [];\r\n/**\r\n * 拦截 fetch 请求,获取 header\r\n * @param {HookCallback} callback 回调函数,参数为混淆 header 的值\r\n * @returns 注销函数,当回调函数为空时,解除拦截\r\n */\r\nfunction hookFetch(callback) {\r\n if (originalFetch) {\r\n if (fetchHookCallbacks.length === 0) {\r\n window.fetch = function fetch() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var request = originalFetch.apply(window, args);\r\n request.then(function (res) {\r\n var value = res.headers.get(ASGW_FONT_CONFUSE_HEADER_NAME);\r\n if (typeof value === 'string')\r\n fetchHookCallbacks.forEach(function (cb) { return cb(value); });\r\n });\r\n return request;\r\n };\r\n }\r\n fetchHookCallbacks.push(callback);\r\n var index_1 = fetchHookCallbacks.length - 1;\r\n return function () {\r\n fetchHookCallbacks.splice(index_1, 1);\r\n if (fetchHookCallbacks.length === 0)\r\n window.fetch = originalFetch;\r\n };\r\n }\r\n return function () { };\r\n}\n\nvar xhrHookCallbacks = [];\r\nfunction hookXhr(callback) {\r\n if (xhrHookCallbacks.length === 0) {\r\n proxy({\r\n onResponse: function (response, handler) {\r\n var value = response.headers[ASGW_FONT_CONFUSE_HEADER_NAME];\r\n if (typeof value === 'string')\r\n xhrHookCallbacks.forEach(function (cb) { return cb(value); });\r\n handler.next(response);\r\n },\r\n });\r\n }\r\n xhrHookCallbacks.push(callback);\r\n var index = xhrHookCallbacks.length - 1;\r\n return function () {\r\n xhrHookCallbacks.splice(index, 1);\r\n if (xhrHookCallbacks.length === 0)\r\n unProxy();\r\n };\r\n}\n\nvar FontMeta = /** @class */ (function () {\r\n function FontMeta(config) {\r\n var _this = this;\r\n if (config === void 0) { config = {}; }\r\n /** 域名列表 */\r\n this.domains = [];\r\n /** 本次混淆使用的文件名,不含后缀 */\r\n this.filename = '';\r\n /** 预留,后续可支持小字体直接返回 base64 */\r\n this.base64 = [];\r\n /** 目前可认为是和接口一一对应,这里是为了避免暴露 ID */\r\n this.fontKey = '';\r\n /** tos bucket 后缀,主要用于海外 */\r\n this.tosSuffix = '';\r\n Object.entries(config).forEach(function (_a) {\r\n var key = _a[0], value = _a[1];\r\n if (key === 'f')\r\n _this.filename = value;\r\n else if (key === 'k')\r\n _this.fontKey = value;\r\n else if (key === 's')\r\n _this.tosSuffix = value;\r\n else if (key.match(/^d\\d+$/))\r\n _this.domains.push(value);\r\n else if (key.match(/^b\\d+$/))\r\n _this.base64.push(value);\r\n });\r\n if (!this.domains.length)\r\n this.domains = ['tosv.boe.byted.org'];\r\n }\r\n Object.defineProperty(FontMeta.prototype, \"isValid\", {\r\n /** 必要信息是否齐全。如果不全,通常代表字体混淆未开启 */\r\n get: function () {\r\n if (!this.fontKey)\r\n return false;\r\n if (!this.domains.length)\r\n return false;\r\n if (!this.filename && !this.base64.length)\r\n return false;\r\n return true;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FontMeta.prototype, \"tosBucket\", {\r\n get: function () {\r\n return \"awesome-font\" + this.tosSuffix;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * 输出 @font-face 的内容\r\n *\r\n * font-family: xxx;\r\n * font-display: block;\r\n * src: url(xxx), url(xxx);\r\n */\r\n FontMeta.prototype.toFontFaceContent = function (_a) {\r\n var _this = this;\r\n var _b = _a === void 0 ? {} : _a, _c = _b.formats, formats = _c === void 0 ? defaultFontFormats : _c, _d = _b.weight, weight = _d === void 0 ? '400' : _d;\r\n if (!this.isValid)\r\n return '';\r\n var src = [];\r\n this.base64.forEach(function (base64String) { return src.push(\"url(\\\"\" + base64String + \"\\\")\"); });\r\n var filename = weight === '400' ? this.filename : this.filename + \"-\" + weight;\r\n formats.forEach(function (format) {\r\n return _this.domains.forEach(function (domain) {\r\n return src.push(\"url(\\\"https://\" + domain + \"/obj/\" + _this.tosBucket + \"/c/\" + filename + \".\" + fontFormatMap[format] + \"\\\")\" +\r\n (\"format(\\\"\" + format + \"\\\")\"));\r\n });\r\n });\r\n return (\"font-family:\" + this.fontKey + \";\" + \"font-display:block;\" + (\"src:\" + src.join(',') + \";\") + (\"font-weight:\" + weight + \";\"));\r\n };\r\n /**\r\n * 输出 @font-face\r\n *\r\n * ```css\r\n * @font-face xxx {\r\n * font-family: xxx;\r\n * font-display: block;\r\n * src: url(xxx), url(xxx);\r\n * }\r\n * ```\r\n */\r\n FontMeta.prototype.toFontFaceString = function (_a) {\r\n var _this = this;\r\n var _b = _a === void 0 ? {} : _a, _c = _b.formats, formats = _c === void 0 ? defaultFontFormats : _c, _d = _b.weights, weights = _d === void 0 ? ['400', '500', '700'] : _d;\r\n if (!this.isValid)\r\n return '';\r\n return weights.map(function (weight) { return \"@font-face{\" + _this.toFontFaceContent({ formats: formats, weight: weight }) + \"}\"; }).join('');\r\n };\r\n /**\r\n * 输出 class 的内容\r\n *\r\n * font-family: DzAsSqy_gmwrBEF1, 'nunito_for_arco', 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;\r\n */\r\n FontMeta.prototype.toClassContent = function (fallbackFonts) {\r\n if (fallbackFonts === void 0) { fallbackFonts = ''; }\r\n if (!this.isValid)\r\n return '';\r\n var fontFamily = this.fontKey;\r\n if (fallbackFonts)\r\n fontFamily += ',' + fallbackFonts;\r\n return \"font-family:\" + fontFamily + \";\";\r\n };\r\n /**\r\n * 输出 class\r\n *\r\n * .font-DzAsSqy_gmwrBEF1 {\r\n * font-family: DzAsSqy_gmwrBEF1, 'nunito_for_arco', 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;\r\n * }\r\n */\r\n FontMeta.prototype.toClassString = function (fallbackFonts) {\r\n if (fallbackFonts === void 0) { fallbackFonts = ''; }\r\n if (!this.isValid)\r\n return '';\r\n return \".font-\" + this.fontKey + \"{\" + this.toClassContent(fallbackFonts) + \"}\";\r\n };\r\n /**\r\n * 输出整个 style\r\n *\r\n * ```css\r\n * @font-face xxx {\r\n * font-family: xxx;\r\n * font-display: block;\r\n * src: url(xxx), url(xxx);\r\n * }\r\n * .font-DzAsSqy_gmwrBEF1 {\r\n * font-family: DzAsSqy_gmwrBEF1, 'nunito_for_arco', 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;\r\n * }\r\n * ```\r\n */\r\n FontMeta.prototype.toStyleString = function (config) {\r\n if (!this.isValid)\r\n return '';\r\n return (this.toFontFaceString({ formats: config === null || config === void 0 ? void 0 : config.formats, weights: config === null || config === void 0 ? void 0 : config.fontWeights }) +\r\n this.toClassString(config === null || config === void 0 ? void 0 : config.fallbackFonts));\r\n };\r\n return FontMeta;\r\n}());\n\nfunction parseStringConfig(str) {\r\n if (!str || typeof str !== 'string')\r\n return new FontMeta();\r\n var result = {};\r\n var currentKey = '';\r\n var currentValue = '';\r\n var currentWord = '';\r\n var lastIsBackslash = false;\r\n for (var i = 0; i < str.length; i++) {\r\n var char = str[i];\r\n if (lastIsBackslash) {\r\n switch (char) {\r\n case '\\\\':\r\n case ';':\r\n case '=':\r\n currentWord += char;\r\n break;\r\n default:\r\n currentWord += '\\\\';\r\n currentWord += char;\r\n break;\r\n }\r\n lastIsBackslash = false;\r\n }\r\n else if (char === '=') {\r\n currentKey = currentWord;\r\n currentWord = '';\r\n lastIsBackslash = false;\r\n }\r\n else if (char === ';') {\r\n currentValue = currentWord;\r\n currentWord = '';\r\n result[currentKey] = currentValue;\r\n currentKey = '';\r\n currentValue = '';\r\n lastIsBackslash = false;\r\n }\r\n else if (char === '\\\\') {\r\n lastIsBackslash = true;\r\n }\r\n else {\r\n currentWord += char;\r\n lastIsBackslash = false;\r\n }\r\n }\r\n if (currentKey)\r\n result[currentKey] = currentWord;\r\n return new FontMeta(result);\r\n}\r\n/**\r\n * 从 Response Header 中获取本次混淆的字体信息\r\n * @param {string|Record|Headers} input 输入,可以为字符串、普通对象(如来自axios)、Headers对象(如来fetch)\r\n * @returns {FontMeta} 解析出的字体信息\r\n */\r\nfunction parseConfig(input) {\r\n if (typeof input === 'string')\r\n return parseStringConfig(input);\r\n if (isHeaders(input)) {\r\n var value = input.get(ASGW_FONT_CONFUSE_HEADER_NAME);\r\n return parseStringConfig(value);\r\n }\r\n if (typeof input === 'object') {\r\n var value = input[ASGW_FONT_CONFUSE_HEADER_NAME];\r\n return parseStringConfig(value);\r\n }\r\n return new FontMeta();\r\n}\r\nfunction isHeaders(input) {\r\n return !!input && typeof input.get === 'function';\r\n}\n\nvar StyleSheet = /** @class */ (function () {\r\n function StyleSheet() {\r\n this._id = 1;\r\n this._elements = {};\r\n }\r\n StyleSheet.prototype.destroy = function () {\r\n if (typeof document !== 'undefined') {\r\n Object.values(this._elements).forEach(function (element) {\r\n if (element)\r\n document.head.removeChild(element);\r\n });\r\n }\r\n this._elements = {};\r\n };\r\n StyleSheet.prototype.insertRule = function (ruleStr) {\r\n var id = this._id++;\r\n if (typeof document !== 'undefined') {\r\n var element = document.createElement('style');\r\n element.dataset['font'] = id.toString();\r\n element.innerText = ruleStr;\r\n this._elements[id] = element;\r\n document.head.appendChild(element);\r\n }\r\n return id;\r\n };\r\n StyleSheet.prototype.deleteRule = function (id) {\r\n var element = this._elements[id];\r\n if (element && typeof document !== 'undefined') {\r\n document.head.removeChild(element);\r\n delete this._elements[id];\r\n }\r\n };\r\n return StyleSheet;\r\n}());\n\nvar FontLoader = /** @class */ (function () {\r\n function FontLoader() {\r\n this._sheet = new StyleSheet();\r\n this._fontFaceMap = {};\r\n this._classNameMap = {};\r\n this.config = {\r\n hookFetch: true,\r\n hookXhr: false,\r\n debug: false,\r\n generateClassName: true,\r\n fontFormats: defaultFontFormats,\r\n fallbackFonts: '',\r\n fontWeights: ['400', '500', '700'],\r\n };\r\n this.parseHeaders = parseConfig;\r\n }\r\n FontLoader.prototype._insertFontFaceRule = function (fontName, rule) {\r\n if (this._fontFaceMap[fontName])\r\n this._sheet.deleteRule(this._fontFaceMap[fontName]);\r\n var id = this._sheet.insertRule(rule);\r\n this._fontFaceMap[fontName] = id;\r\n };\r\n FontLoader.prototype._insertClassNameRule = function (fontName, rule) {\r\n if (this._classNameMap[fontName])\r\n this._sheet.deleteRule(this._classNameMap[fontName]);\r\n var id = this._sheet.insertRule(rule);\r\n this._classNameMap[fontName] = id;\r\n };\r\n FontLoader.prototype.delete = function (fontName) {\r\n if (this._fontFaceMap[fontName]) {\r\n this._sheet.deleteRule(this._fontFaceMap[fontName]);\r\n delete this._fontFaceMap[fontName];\r\n }\r\n };\r\n FontLoader.prototype.auto = function (config) {\r\n var _this = this;\r\n this.config = __assign(__assign({}, this.config), config);\r\n if (this.config.hookFetch)\r\n this._stopHookFetch = hookFetch(function (v) {\r\n _this.addFromConfigString(v || '');\r\n });\r\n if (this.config.hookXhr)\r\n this._stopHookXhr = hookXhr(function (v) {\r\n _this.addFromConfigString(v || '');\r\n });\r\n };\r\n FontLoader.prototype.addFromConfigString = function (value) {\r\n var fontMeta = parseConfig(value);\r\n if (fontMeta) {\r\n this._insertFontFaceRule(fontMeta.fontKey, fontMeta.toFontFaceString({ formats: this.config.fontFormats, weights: this.config.fontWeights }));\r\n this._insertClassNameRule(fontMeta.fontKey, fontMeta.toClassString(this.config.fallbackFonts));\r\n }\r\n };\r\n return FontLoader;\r\n}());\r\nvar instance = new FontLoader();\n\nexport default instance;\nexport { FontLoader, instance };\n"],"sourceRoot":""}