UNPKG

vue-files-preview-inno

Version:

A tool for previewing files such as doc, excel, pdf, image, markdown, txt, audio, and video and so on.

1 lines 3.91 kB
{"version":3,"file":"encode.mjs","sources":["../../../../../node_modules/mdurl/lib/encode.mjs"],"sourcesContent":["const encodeCache = {}\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache (exclude) {\n let cache = encodeCache[exclude]\n if (cache) { return cache }\n\n cache = encodeCache[exclude] = []\n\n for (let i = 0; i < 128; i++) {\n const ch = String.fromCharCode(i)\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch)\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2))\n }\n }\n\n for (let i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i]\n }\n\n return cache\n}\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode (string, exclude, keepEscaped) {\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude\n exclude = encode.defaultChars\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true\n }\n\n const cache = getEncodeCache(exclude)\n let result = ''\n\n for (let i = 0, l = string.length; i < l; i++) {\n const code = string.charCodeAt(i)\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3)\n i += 2\n continue\n }\n }\n\n if (code < 128) {\n result += cache[code]\n continue\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n const nextCode = string.charCodeAt(i + 1)\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1])\n i++\n continue\n }\n }\n result += '%EF%BF%BD'\n continue\n }\n\n result += encodeURIComponent(string[i])\n }\n\n return result\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\"\nencode.componentChars = \"-_.!~*'()\"\n\nexport default encode\n"],"names":["encodeCache","getEncodeCache","exclude","cache","i","ch","encode","string","keepEscaped","result","l","code","nextCode"],"mappings":"AAAA,MAAMA,IAAc,CAAA;AAKpB,SAASC,EAAgBC,GAAS;AAChC,MAAIC,IAAQH,EAAYE,CAAO;AAC/B,MAAIC;AAAS,WAAOA;AAEpB,EAAAA,IAAQH,EAAYE,CAAO,IAAI,CAAA;AAE/B,WAASE,IAAI,GAAGA,IAAI,KAAKA,KAAK;AAC5B,UAAMC,IAAK,OAAO,aAAaD,CAAC;AAEhC,IAAI,cAAc,KAAKC,CAAE,IAEvBF,EAAM,KAAKE,CAAE,IAEbF,EAAM,KAAK,OAAO,MAAMC,EAAE,SAAS,EAAE,EAAE,eAAe,MAAM,EAAE,CAAC;AAAA,EAEnE;AAEA,WAASA,IAAI,GAAGA,IAAIF,EAAQ,QAAQE;AAClC,IAAAD,EAAMD,EAAQ,WAAWE,CAAC,CAAC,IAAIF,EAAQE,CAAC;AAG1C,SAAOD;AACT;AASA,SAASG,EAAQC,GAAQL,GAASM,GAAa;AAC7C,EAAI,OAAON,KAAY,aAErBM,IAAcN,GACdA,IAAUI,EAAO,eAGf,OAAOE,IAAgB,QACzBA,IAAc;AAGhB,QAAML,IAAQF,EAAeC,CAAO;AACpC,MAAIO,IAAS;AAEb,WAASL,IAAI,GAAGM,IAAIH,EAAO,QAAQH,IAAIM,GAAGN,KAAK;AAC7C,UAAMO,IAAOJ,EAAO,WAAWH,CAAC;AAEhC,QAAII,KAAeG,MAAS,MAAgBP,IAAI,IAAIM,KAC9C,iBAAiB,KAAKH,EAAO,MAAMH,IAAI,GAAGA,IAAI,CAAC,CAAC,GAAG;AACrD,MAAAK,KAAUF,EAAO,MAAMH,GAAGA,IAAI,CAAC,GAC/BA,KAAK;AACL;AAAA,IACF;AAGF,QAAIO,IAAO,KAAK;AACd,MAAAF,KAAUN,EAAMQ,CAAI;AACpB;AAAA,IACF;AAEA,QAAIA,KAAQ,SAAUA,KAAQ,OAAQ;AACpC,UAAIA,KAAQ,SAAUA,KAAQ,SAAUP,IAAI,IAAIM,GAAG;AACjD,cAAME,IAAWL,EAAO,WAAWH,IAAI,CAAC;AACxC,YAAIQ,KAAY,SAAUA,KAAY,OAAQ;AAC5C,UAAAH,KAAU,mBAAmBF,EAAOH,CAAC,IAAIG,EAAOH,IAAI,CAAC,CAAC,GACtDA;AACA;AAAA,QACF;AAAA,MACF;AACA,MAAAK,KAAU;AACV;AAAA,IACF;AAEA,IAAAA,KAAU,mBAAmBF,EAAOH,CAAC,CAAC;AAAA,EACxC;AAEA,SAAOK;AACT;AAEAH,EAAO,eAAe;AACtBA,EAAO,iBAAiB;","x_google_ignoreList":[0]}