diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..485dee6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index f2dc375..d1f039b 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,5 +1,5 @@ { - "name": "test1", + "name": "phone-app------test1-", "lockfileVersion": 3, "requires": true, "packages": { @@ -226,6 +226,12 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz", @@ -259,6 +265,18 @@ "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", "license": "MIT" }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, "node_modules/is-what": { "version": "5.5.0", "resolved": "https://registry.npmmirror.com/is-what/-/is-what-5.5.0.tgz", @@ -271,6 +289,33 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmmirror.com/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz", @@ -318,6 +363,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, "node_modules/perfect-debounce": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz", @@ -381,12 +432,45 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, "node_modules/rfdc": { "version": "1.4.1", "resolved": "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz", "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "license": "MIT" }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, "node_modules/snarkdown": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/snarkdown/-/snarkdown-2.0.0.tgz", @@ -412,6 +496,15 @@ "node": ">=0.10.0" } }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/superjson": { "version": "2.2.6", "resolved": "https://registry.npmmirror.com/superjson/-/superjson-2.2.6.tgz", @@ -424,6 +517,12 @@ "node": ">=16" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, "node_modules/vue": { "version": "3.5.33", "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.33.tgz", diff --git a/node_modules/core-util-is/LICENSE b/node_modules/core-util-is/LICENSE new file mode 100644 index 0000000..d8d7f94 --- /dev/null +++ b/node_modules/core-util-is/LICENSE @@ -0,0 +1,19 @@ +Copyright Node.js contributors. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. diff --git a/node_modules/core-util-is/README.md b/node_modules/core-util-is/README.md new file mode 100644 index 0000000..5a76b41 --- /dev/null +++ b/node_modules/core-util-is/README.md @@ -0,0 +1,3 @@ +# core-util-is + +The `util.is*` functions introduced in Node v0.12. diff --git a/node_modules/core-util-is/lib/util.js b/node_modules/core-util-is/lib/util.js new file mode 100644 index 0000000..6e5a20d --- /dev/null +++ b/node_modules/core-util-is/lib/util.js @@ -0,0 +1,107 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. + +function isArray(arg) { + if (Array.isArray) { + return Array.isArray(arg); + } + return objectToString(arg) === '[object Array]'; +} +exports.isArray = isArray; + +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; + +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; + +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; + +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; + +function isString(arg) { + return typeof arg === 'string'; +} +exports.isString = isString; + +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; + +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; + +function isRegExp(re) { + return objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} +exports.isObject = isObject; + +function isDate(d) { + return objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; + +function isError(e) { + return (objectToString(e) === '[object Error]' || e instanceof Error); +} +exports.isError = isError; + +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; + +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} +exports.isPrimitive = isPrimitive; + +exports.isBuffer = require('buffer').Buffer.isBuffer; + +function objectToString(o) { + return Object.prototype.toString.call(o); +} diff --git a/node_modules/core-util-is/package.json b/node_modules/core-util-is/package.json new file mode 100644 index 0000000..b0c51f5 --- /dev/null +++ b/node_modules/core-util-is/package.json @@ -0,0 +1,38 @@ +{ + "name": "core-util-is", + "version": "1.0.3", + "description": "The `util.is*` functions introduced in Node v0.12.", + "main": "lib/util.js", + "files": [ + "lib" + ], + "repository": { + "type": "git", + "url": "git://github.com/isaacs/core-util-is" + }, + "keywords": [ + "util", + "isBuffer", + "isArray", + "isNumber", + "isString", + "isRegExp", + "isThis", + "isThat", + "polyfill" + ], + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "license": "MIT", + "bugs": { + "url": "https://github.com/isaacs/core-util-is/issues" + }, + "scripts": { + "test": "tap test.js", + "preversion": "npm test", + "postversion": "npm publish", + "prepublishOnly": "git push origin --follow-tags" + }, + "devDependencies": { + "tap": "^15.0.9" + } +} diff --git a/node_modules/immediate/LICENSE.txt b/node_modules/immediate/LICENSE.txt new file mode 100644 index 0000000..88c18c2 --- /dev/null +++ b/node_modules/immediate/LICENSE.txt @@ -0,0 +1,20 @@ +Copyright (c) 2012 Barnesandnoble.com, llc, Donavon West, Domenic Denicola, Brian Cavalier + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/immediate/README.md b/node_modules/immediate/README.md new file mode 100644 index 0000000..d661ae8 --- /dev/null +++ b/node_modules/immediate/README.md @@ -0,0 +1,93 @@ +# immediate [![Build Status](https://travis-ci.org/calvinmetcalf/immediate.svg?branch=master)](https://travis-ci.org/calvinmetcalf/immediate) + +``` +npm install immediate --save +``` + +then + +```js +var immediate = require("immediate"); + +immediate(function () { + // this will run soon +}); + +immediate(function (arg1, arg2) { + // get your args like in iojs +}, thing1, thing2); +``` + +## Introduction + +**immediate** is a microtask library, decended from [NobleJS's setImmediate](https://github.com/NobleJS/setImmediate), but including ideas from [Cujo's When](https://github.com/cujojs/when) and [RSVP][RSVP]. + +immediate takes the tricks from setImmedate and RSVP and combines them with the schedualer inspired (vaugly) by whens. + +Note versions 2.6.5 and earlier were strictly speaking a 'macrotask' library not a microtask one, [see this for the difference](https://github.com/YuzuJS/setImmediate#macrotasks-and-microtasks), if you need a macrotask library, [I got you covered](https://github.com/calvinmetcalf/macrotask). + +Several new features were added in versions 3.1.0 and 3.2.0 to maintain parity with +process.nextTick, but the 3.0.x series is still being kept up to date if you just need +the small barebones version. + + +## The Tricks + +### `process.nextTick` + +Note that we check for *actual* Node.js environments, not emulated ones like those produced by browserify or similar. + +### `MutationObserver` + +This is what [RSVP][RSVP] uses, it's very fast, details on [MDN](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver). + + +### `MessageChannel` + +Unfortunately, `postMessage` has completely different semantics inside web workers, and so cannot be used there. So we +turn to [`MessageChannel`][MessageChannel], which has worse browser support, but does work inside a web worker. + +### ` + + diff --git a/pages/WorkSpace/WorkSpace.vue b/pages/WorkSpace/WorkSpace.vue index 8b48837..6390e44 100644 --- a/pages/WorkSpace/WorkSpace.vue +++ b/pages/WorkSpace/WorkSpace.vue @@ -283,8 +283,10 @@ // 长按文件 const handleLongPress = (folder) => { if (isSelectFolder.value) return; + const isWyxd = folder.name && folder.name.toLowerCase().endsWith('.wyxd'); + const itemList = isWyxd ? ['下载', '删除', 'WYXD查看器'] : ['下载', '删除']; uni.showActionSheet({ - itemList: ['下载', '删除'], // ['删除', '下载', '压缩', '重命名'] + itemList: itemList, success: (res) => { switch (res.tapIndex) { case 0: @@ -293,12 +295,9 @@ case 1: handleDelete(folder); break; - // case 2: - // handleDownload(folder); - // break; - // case 3: - // handleRename(folder); - // break; + case 2: + if (isWyxd) openWyxdViewer(folder); + break; } } }) @@ -458,6 +457,17 @@ }); }; + // WYXD 查看器入口 + const openWyxdViewer = (folder) => { + const filePath = folder.path.startsWith('./') ? folder.path.slice(2) : folder.path; + uni.navigateTo({ + url: '/pages/WYXD/WYXD?workspaceId=' + encodeURIComponent(workspaceId.value) + + '&filePath=' + encodeURIComponent(filePath) + + '&fileName=' + encodeURIComponent(folder.name) + + '&userToken=' + encodeURIComponent(UserToken.value) + }); + }; + // 删除 const handleDelete = (folder) => { uni.showModal({ diff --git a/unpackage/dist/cache/.vite/deps/_metadata.json b/unpackage/dist/cache/.vite/deps/_metadata.json index 6a07d14..519ebba 100644 --- a/unpackage/dist/cache/.vite/deps/_metadata.json +++ b/unpackage/dist/cache/.vite/deps/_metadata.json @@ -1,25 +1,25 @@ { - "hash": "e0bb2a2f", - "configHash": "72122489", - "lockfileHash": "4872f2b8", - "browserHash": "5bee3c96", + "hash": "4dd2a69b", + "configHash": "d342a709", + "lockfileHash": "1e456fb2", + "browserHash": "4e27b22f", "optimized": { "snarkdown": { "src": "../../../../../node_modules/snarkdown/dist/snarkdown.es.js", "file": "snarkdown.js", - "fileHash": "3bb14d01", + "fileHash": "b76ccfaf", "needsInterop": false }, - "marked": { - "src": "../../../../../node_modules/marked/lib/marked.esm.js", - "file": "marked.js", - "fileHash": "3cae6674", - "needsInterop": false + "jszip": { + "src": "../../../../../node_modules/jszip/dist/jszip.min.js", + "file": "jszip.js", + "fileHash": "0f2d87b8", + "needsInterop": true } }, "chunks": { - "chunk-F3FYYIAV": { - "file": "chunk-F3FYYIAV.js" + "chunk-TDUMLE5V": { + "file": "chunk-TDUMLE5V.js" } } } \ No newline at end of file diff --git a/unpackage/dist/cache/.vite/deps/chunk-F3FYYIAV.js b/unpackage/dist/cache/.vite/deps/chunk-F3FYYIAV.js deleted file mode 100644 index 82ce66a..0000000 --- a/unpackage/dist/cache/.vite/deps/chunk-F3FYYIAV.js +++ /dev/null @@ -1,11 +0,0 @@ -var __defProp = Object.defineProperty; -var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; -var __publicField = (obj, key, value) => { - __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); - return value; -}; - -export { - __publicField -}; -//# sourceMappingURL=chunk-F3FYYIAV.js.map diff --git a/unpackage/dist/cache/.vite/deps/chunk-TDUMLE5V.js b/unpackage/dist/cache/.vite/deps/chunk-TDUMLE5V.js new file mode 100644 index 0000000..fd28525 --- /dev/null +++ b/unpackage/dist/cache/.vite/deps/chunk-TDUMLE5V.js @@ -0,0 +1,17 @@ +var __getOwnPropNames = Object.getOwnPropertyNames; +var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { + get: (a, b) => (typeof require !== "undefined" ? require : a)[b] +}) : x)(function(x) { + if (typeof require !== "undefined") + return require.apply(this, arguments); + throw Error('Dynamic require of "' + x + '" is not supported'); +}); +var __commonJS = (cb, mod) => function __require2() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; + +export { + __require, + __commonJS +}; +//# sourceMappingURL=chunk-TDUMLE5V.js.map diff --git a/unpackage/dist/cache/.vite/deps/chunk-F3FYYIAV.js.map b/unpackage/dist/cache/.vite/deps/chunk-TDUMLE5V.js.map similarity index 100% rename from unpackage/dist/cache/.vite/deps/chunk-F3FYYIAV.js.map rename to unpackage/dist/cache/.vite/deps/chunk-TDUMLE5V.js.map diff --git a/unpackage/dist/cache/.vite/deps/jszip.js b/unpackage/dist/cache/.vite/deps/jszip.js new file mode 100644 index 0000000..2106398 --- /dev/null +++ b/unpackage/dist/cache/.vite/deps/jszip.js @@ -0,0 +1,2717 @@ +import { + __commonJS, + __require +} from "./chunk-TDUMLE5V.js"; + +// ../../../../../py/77/phone-app------test1-/node_modules/jszip/dist/jszip.min.js +var require_jszip_min = __commonJS({ + "../../../../../py/77/phone-app------test1-/node_modules/jszip/dist/jszip.min.js"(exports, module) { + !function(e) { + if ("object" == typeof exports && "undefined" != typeof module) + module.exports = e(); + else if ("function" == typeof define && define.amd) + define([], e); + else { + ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).JSZip = e(); + } + }(function() { + return function s(a, o, h) { + function u(r, e2) { + if (!o[r]) { + if (!a[r]) { + var t = "function" == typeof __require && __require; + if (!e2 && t) + return t(r, true); + if (l) + return l(r, true); + var n = new Error("Cannot find module '" + r + "'"); + throw n.code = "MODULE_NOT_FOUND", n; + } + var i = o[r] = { exports: {} }; + a[r][0].call(i.exports, function(e3) { + var t2 = a[r][1][e3]; + return u(t2 || e3); + }, i, i.exports, s, a, o, h); + } + return o[r].exports; + } + for (var l = "function" == typeof __require && __require, e = 0; e < h.length; e++) + u(h[e]); + return u; + }({ 1: [function(e, t, r) { + "use strict"; + var d = e("./utils"), c = e("./support"), p = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + r.encode = function(e2) { + for (var t2, r2, n, i, s, a, o, h = [], u = 0, l = e2.length, f = l, c2 = "string" !== d.getTypeOf(e2); u < e2.length; ) + f = l - u, n = c2 ? (t2 = e2[u++], r2 = u < l ? e2[u++] : 0, u < l ? e2[u++] : 0) : (t2 = e2.charCodeAt(u++), r2 = u < l ? e2.charCodeAt(u++) : 0, u < l ? e2.charCodeAt(u++) : 0), i = t2 >> 2, s = (3 & t2) << 4 | r2 >> 4, a = 1 < f ? (15 & r2) << 2 | n >> 6 : 64, o = 2 < f ? 63 & n : 64, h.push(p.charAt(i) + p.charAt(s) + p.charAt(a) + p.charAt(o)); + return h.join(""); + }, r.decode = function(e2) { + var t2, r2, n, i, s, a, o = 0, h = 0, u = "data:"; + if (e2.substr(0, u.length) === u) + throw new Error("Invalid base64 input, it looks like a data url."); + var l, f = 3 * (e2 = e2.replace(/[^A-Za-z0-9+/=]/g, "")).length / 4; + if (e2.charAt(e2.length - 1) === p.charAt(64) && f--, e2.charAt(e2.length - 2) === p.charAt(64) && f--, f % 1 != 0) + throw new Error("Invalid base64 input, bad content length."); + for (l = c.uint8array ? new Uint8Array(0 | f) : new Array(0 | f); o < e2.length; ) + t2 = p.indexOf(e2.charAt(o++)) << 2 | (i = p.indexOf(e2.charAt(o++))) >> 4, r2 = (15 & i) << 4 | (s = p.indexOf(e2.charAt(o++))) >> 2, n = (3 & s) << 6 | (a = p.indexOf(e2.charAt(o++))), l[h++] = t2, 64 !== s && (l[h++] = r2), 64 !== a && (l[h++] = n); + return l; + }; + }, { "./support": 30, "./utils": 32 }], 2: [function(e, t, r) { + "use strict"; + var n = e("./external"), i = e("./stream/DataWorker"), s = e("./stream/Crc32Probe"), a = e("./stream/DataLengthProbe"); + function o(e2, t2, r2, n2, i2) { + this.compressedSize = e2, this.uncompressedSize = t2, this.crc32 = r2, this.compression = n2, this.compressedContent = i2; + } + o.prototype = { getContentWorker: function() { + var e2 = new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")), t2 = this; + return e2.on("end", function() { + if (this.streamInfo.data_length !== t2.uncompressedSize) + throw new Error("Bug : uncompressed data size mismatch"); + }), e2; + }, getCompressedWorker: function() { + return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize", this.compressedSize).withStreamInfo("uncompressedSize", this.uncompressedSize).withStreamInfo("crc32", this.crc32).withStreamInfo("compression", this.compression); + } }, o.createWorkerFrom = function(e2, t2, r2) { + return e2.pipe(new s()).pipe(new a("uncompressedSize")).pipe(t2.compressWorker(r2)).pipe(new a("compressedSize")).withStreamInfo("compression", t2); + }, t.exports = o; + }, { "./external": 6, "./stream/Crc32Probe": 25, "./stream/DataLengthProbe": 26, "./stream/DataWorker": 27 }], 3: [function(e, t, r) { + "use strict"; + var n = e("./stream/GenericWorker"); + r.STORE = { magic: "\0\0", compressWorker: function() { + return new n("STORE compression"); + }, uncompressWorker: function() { + return new n("STORE decompression"); + } }, r.DEFLATE = e("./flate"); + }, { "./flate": 7, "./stream/GenericWorker": 28 }], 4: [function(e, t, r) { + "use strict"; + var n = e("./utils"); + var o = function() { + for (var e2, t2 = [], r2 = 0; r2 < 256; r2++) { + e2 = r2; + for (var n2 = 0; n2 < 8; n2++) + e2 = 1 & e2 ? 3988292384 ^ e2 >>> 1 : e2 >>> 1; + t2[r2] = e2; + } + return t2; + }(); + t.exports = function(e2, t2) { + return void 0 !== e2 && e2.length ? "string" !== n.getTypeOf(e2) ? function(e3, t3, r2, n2) { + var i = o, s = n2 + r2; + e3 ^= -1; + for (var a = n2; a < s; a++) + e3 = e3 >>> 8 ^ i[255 & (e3 ^ t3[a])]; + return -1 ^ e3; + }(0 | t2, e2, e2.length, 0) : function(e3, t3, r2, n2) { + var i = o, s = n2 + r2; + e3 ^= -1; + for (var a = n2; a < s; a++) + e3 = e3 >>> 8 ^ i[255 & (e3 ^ t3.charCodeAt(a))]; + return -1 ^ e3; + }(0 | t2, e2, e2.length, 0) : 0; + }; + }, { "./utils": 32 }], 5: [function(e, t, r) { + "use strict"; + r.base64 = false, r.binary = false, r.dir = false, r.createFolders = true, r.date = null, r.compression = null, r.compressionOptions = null, r.comment = null, r.unixPermissions = null, r.dosPermissions = null; + }, {}], 6: [function(e, t, r) { + "use strict"; + var n = null; + n = "undefined" != typeof Promise ? Promise : e("lie"), t.exports = { Promise: n }; + }, { lie: 37 }], 7: [function(e, t, r) { + "use strict"; + var n = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Uint32Array, i = e("pako"), s = e("./utils"), a = e("./stream/GenericWorker"), o = n ? "uint8array" : "array"; + function h(e2, t2) { + a.call(this, "FlateWorker/" + e2), this._pako = null, this._pakoAction = e2, this._pakoOptions = t2, this.meta = {}; + } + r.magic = "\b\0", s.inherits(h, a), h.prototype.processChunk = function(e2) { + this.meta = e2.meta, null === this._pako && this._createPako(), this._pako.push(s.transformTo(o, e2.data), false); + }, h.prototype.flush = function() { + a.prototype.flush.call(this), null === this._pako && this._createPako(), this._pako.push([], true); + }, h.prototype.cleanUp = function() { + a.prototype.cleanUp.call(this), this._pako = null; + }, h.prototype._createPako = function() { + this._pako = new i[this._pakoAction]({ raw: true, level: this._pakoOptions.level || -1 }); + var t2 = this; + this._pako.onData = function(e2) { + t2.push({ data: e2, meta: t2.meta }); + }; + }, r.compressWorker = function(e2) { + return new h("Deflate", e2); + }, r.uncompressWorker = function() { + return new h("Inflate", {}); + }; + }, { "./stream/GenericWorker": 28, "./utils": 32, pako: 38 }], 8: [function(e, t, r) { + "use strict"; + function A(e2, t2) { + var r2, n2 = ""; + for (r2 = 0; r2 < t2; r2++) + n2 += String.fromCharCode(255 & e2), e2 >>>= 8; + return n2; + } + function n(e2, t2, r2, n2, i2, s2) { + var a, o, h = e2.file, u = e2.compression, l = s2 !== O.utf8encode, f = I.transformTo("string", s2(h.name)), c = I.transformTo("string", O.utf8encode(h.name)), d = h.comment, p = I.transformTo("string", s2(d)), m = I.transformTo("string", O.utf8encode(d)), _ = c.length !== h.name.length, g = m.length !== d.length, b = "", v = "", y = "", w = h.dir, k = h.date, x = { crc32: 0, compressedSize: 0, uncompressedSize: 0 }; + t2 && !r2 || (x.crc32 = e2.crc32, x.compressedSize = e2.compressedSize, x.uncompressedSize = e2.uncompressedSize); + var S = 0; + t2 && (S |= 8), l || !_ && !g || (S |= 2048); + var z = 0, C = 0; + w && (z |= 16), "UNIX" === i2 ? (C = 798, z |= function(e3, t3) { + var r3 = e3; + return e3 || (r3 = t3 ? 16893 : 33204), (65535 & r3) << 16; + }(h.unixPermissions, w)) : (C = 20, z |= function(e3) { + return 63 & (e3 || 0); + }(h.dosPermissions)), a = k.getUTCHours(), a <<= 6, a |= k.getUTCMinutes(), a <<= 5, a |= k.getUTCSeconds() / 2, o = k.getUTCFullYear() - 1980, o <<= 4, o |= k.getUTCMonth() + 1, o <<= 5, o |= k.getUTCDate(), _ && (v = A(1, 1) + A(B(f), 4) + c, b += "up" + A(v.length, 2) + v), g && (y = A(1, 1) + A(B(p), 4) + m, b += "uc" + A(y.length, 2) + y); + var E = ""; + return E += "\n\0", E += A(S, 2), E += u.magic, E += A(a, 2), E += A(o, 2), E += A(x.crc32, 4), E += A(x.compressedSize, 4), E += A(x.uncompressedSize, 4), E += A(f.length, 2), E += A(b.length, 2), { fileRecord: R.LOCAL_FILE_HEADER + E + f + b, dirRecord: R.CENTRAL_FILE_HEADER + A(C, 2) + E + A(p.length, 2) + "\0\0\0\0" + A(z, 4) + A(n2, 4) + f + b + p }; + } + var I = e("../utils"), i = e("../stream/GenericWorker"), O = e("../utf8"), B = e("../crc32"), R = e("../signature"); + function s(e2, t2, r2, n2) { + i.call(this, "ZipFileWorker"), this.bytesWritten = 0, this.zipComment = t2, this.zipPlatform = r2, this.encodeFileName = n2, this.streamFiles = e2, this.accumulate = false, this.contentBuffer = [], this.dirRecords = [], this.currentSourceOffset = 0, this.entriesCount = 0, this.currentFile = null, this._sources = []; + } + I.inherits(s, i), s.prototype.push = function(e2) { + var t2 = e2.meta.percent || 0, r2 = this.entriesCount, n2 = this._sources.length; + this.accumulate ? this.contentBuffer.push(e2) : (this.bytesWritten += e2.data.length, i.prototype.push.call(this, { data: e2.data, meta: { currentFile: this.currentFile, percent: r2 ? (t2 + 100 * (r2 - n2 - 1)) / r2 : 100 } })); + }, s.prototype.openedSource = function(e2) { + this.currentSourceOffset = this.bytesWritten, this.currentFile = e2.file.name; + var t2 = this.streamFiles && !e2.file.dir; + if (t2) { + var r2 = n(e2, t2, false, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); + this.push({ data: r2.fileRecord, meta: { percent: 0 } }); + } else + this.accumulate = true; + }, s.prototype.closedSource = function(e2) { + this.accumulate = false; + var t2 = this.streamFiles && !e2.file.dir, r2 = n(e2, t2, true, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); + if (this.dirRecords.push(r2.dirRecord), t2) + this.push({ data: function(e3) { + return R.DATA_DESCRIPTOR + A(e3.crc32, 4) + A(e3.compressedSize, 4) + A(e3.uncompressedSize, 4); + }(e2), meta: { percent: 100 } }); + else + for (this.push({ data: r2.fileRecord, meta: { percent: 0 } }); this.contentBuffer.length; ) + this.push(this.contentBuffer.shift()); + this.currentFile = null; + }, s.prototype.flush = function() { + for (var e2 = this.bytesWritten, t2 = 0; t2 < this.dirRecords.length; t2++) + this.push({ data: this.dirRecords[t2], meta: { percent: 100 } }); + var r2 = this.bytesWritten - e2, n2 = function(e3, t3, r3, n3, i2) { + var s2 = I.transformTo("string", i2(n3)); + return R.CENTRAL_DIRECTORY_END + "\0\0\0\0" + A(e3, 2) + A(e3, 2) + A(t3, 4) + A(r3, 4) + A(s2.length, 2) + s2; + }(this.dirRecords.length, r2, e2, this.zipComment, this.encodeFileName); + this.push({ data: n2, meta: { percent: 100 } }); + }, s.prototype.prepareNextSource = function() { + this.previous = this._sources.shift(), this.openedSource(this.previous.streamInfo), this.isPaused ? this.previous.pause() : this.previous.resume(); + }, s.prototype.registerPrevious = function(e2) { + this._sources.push(e2); + var t2 = this; + return e2.on("data", function(e3) { + t2.processChunk(e3); + }), e2.on("end", function() { + t2.closedSource(t2.previous.streamInfo), t2._sources.length ? t2.prepareNextSource() : t2.end(); + }), e2.on("error", function(e3) { + t2.error(e3); + }), this; + }, s.prototype.resume = function() { + return !!i.prototype.resume.call(this) && (!this.previous && this._sources.length ? (this.prepareNextSource(), true) : this.previous || this._sources.length || this.generatedError ? void 0 : (this.end(), true)); + }, s.prototype.error = function(e2) { + var t2 = this._sources; + if (!i.prototype.error.call(this, e2)) + return false; + for (var r2 = 0; r2 < t2.length; r2++) + try { + t2[r2].error(e2); + } catch (e3) { + } + return true; + }, s.prototype.lock = function() { + i.prototype.lock.call(this); + for (var e2 = this._sources, t2 = 0; t2 < e2.length; t2++) + e2[t2].lock(); + }, t.exports = s; + }, { "../crc32": 4, "../signature": 23, "../stream/GenericWorker": 28, "../utf8": 31, "../utils": 32 }], 9: [function(e, t, r) { + "use strict"; + var u = e("../compressions"), n = e("./ZipFileWorker"); + r.generateWorker = function(e2, a, t2) { + var o = new n(a.streamFiles, t2, a.platform, a.encodeFileName), h = 0; + try { + e2.forEach(function(e3, t3) { + h++; + var r2 = function(e4, t4) { + var r3 = e4 || t4, n3 = u[r3]; + if (!n3) + throw new Error(r3 + " is not a valid compression method !"); + return n3; + }(t3.options.compression, a.compression), n2 = t3.options.compressionOptions || a.compressionOptions || {}, i = t3.dir, s = t3.date; + t3._compressWorker(r2, n2).withStreamInfo("file", { name: e3, dir: i, date: s, comment: t3.comment || "", unixPermissions: t3.unixPermissions, dosPermissions: t3.dosPermissions }).pipe(o); + }), o.entriesCount = h; + } catch (e3) { + o.error(e3); + } + return o; + }; + }, { "../compressions": 3, "./ZipFileWorker": 8 }], 10: [function(e, t, r) { + "use strict"; + function n() { + if (!(this instanceof n)) + return new n(); + if (arguments.length) + throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide."); + this.files = /* @__PURE__ */ Object.create(null), this.comment = null, this.root = "", this.clone = function() { + var e2 = new n(); + for (var t2 in this) + "function" != typeof this[t2] && (e2[t2] = this[t2]); + return e2; + }; + } + (n.prototype = e("./object")).loadAsync = e("./load"), n.support = e("./support"), n.defaults = e("./defaults"), n.version = "3.10.1", n.loadAsync = function(e2, t2) { + return new n().loadAsync(e2, t2); + }, n.external = e("./external"), t.exports = n; + }, { "./defaults": 5, "./external": 6, "./load": 11, "./object": 15, "./support": 30 }], 11: [function(e, t, r) { + "use strict"; + var u = e("./utils"), i = e("./external"), n = e("./utf8"), s = e("./zipEntries"), a = e("./stream/Crc32Probe"), l = e("./nodejsUtils"); + function f(n2) { + return new i.Promise(function(e2, t2) { + var r2 = n2.decompressed.getContentWorker().pipe(new a()); + r2.on("error", function(e3) { + t2(e3); + }).on("end", function() { + r2.streamInfo.crc32 !== n2.decompressed.crc32 ? t2(new Error("Corrupted zip : CRC32 mismatch")) : e2(); + }).resume(); + }); + } + t.exports = function(e2, o) { + var h = this; + return o = u.extend(o || {}, { base64: false, checkCRC32: false, optimizedBinaryString: false, createFolders: false, decodeFileName: n.utf8decode }), l.isNode && l.isStream(e2) ? i.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")) : u.prepareContent("the loaded zip file", e2, true, o.optimizedBinaryString, o.base64).then(function(e3) { + var t2 = new s(o); + return t2.load(e3), t2; + }).then(function(e3) { + var t2 = [i.Promise.resolve(e3)], r2 = e3.files; + if (o.checkCRC32) + for (var n2 = 0; n2 < r2.length; n2++) + t2.push(f(r2[n2])); + return i.Promise.all(t2); + }).then(function(e3) { + for (var t2 = e3.shift(), r2 = t2.files, n2 = 0; n2 < r2.length; n2++) { + var i2 = r2[n2], s2 = i2.fileNameStr, a2 = u.resolve(i2.fileNameStr); + h.file(a2, i2.decompressed, { binary: true, optimizedBinaryString: true, date: i2.date, dir: i2.dir, comment: i2.fileCommentStr.length ? i2.fileCommentStr : null, unixPermissions: i2.unixPermissions, dosPermissions: i2.dosPermissions, createFolders: o.createFolders }), i2.dir || (h.file(a2).unsafeOriginalName = s2); + } + return t2.zipComment.length && (h.comment = t2.zipComment), h; + }); + }; + }, { "./external": 6, "./nodejsUtils": 14, "./stream/Crc32Probe": 25, "./utf8": 31, "./utils": 32, "./zipEntries": 33 }], 12: [function(e, t, r) { + "use strict"; + var n = e("../utils"), i = e("../stream/GenericWorker"); + function s(e2, t2) { + i.call(this, "Nodejs stream input adapter for " + e2), this._upstreamEnded = false, this._bindStream(t2); + } + n.inherits(s, i), s.prototype._bindStream = function(e2) { + var t2 = this; + (this._stream = e2).pause(), e2.on("data", function(e3) { + t2.push({ data: e3, meta: { percent: 0 } }); + }).on("error", function(e3) { + t2.isPaused ? this.generatedError = e3 : t2.error(e3); + }).on("end", function() { + t2.isPaused ? t2._upstreamEnded = true : t2.end(); + }); + }, s.prototype.pause = function() { + return !!i.prototype.pause.call(this) && (this._stream.pause(), true); + }, s.prototype.resume = function() { + return !!i.prototype.resume.call(this) && (this._upstreamEnded ? this.end() : this._stream.resume(), true); + }, t.exports = s; + }, { "../stream/GenericWorker": 28, "../utils": 32 }], 13: [function(e, t, r) { + "use strict"; + var i = e("readable-stream").Readable; + function n(e2, t2, r2) { + i.call(this, t2), this._helper = e2; + var n2 = this; + e2.on("data", function(e3, t3) { + n2.push(e3) || n2._helper.pause(), r2 && r2(t3); + }).on("error", function(e3) { + n2.emit("error", e3); + }).on("end", function() { + n2.push(null); + }); + } + e("../utils").inherits(n, i), n.prototype._read = function() { + this._helper.resume(); + }, t.exports = n; + }, { "../utils": 32, "readable-stream": 16 }], 14: [function(e, t, r) { + "use strict"; + t.exports = { isNode: "undefined" != typeof Buffer, newBufferFrom: function(e2, t2) { + if (Buffer.from && Buffer.from !== Uint8Array.from) + return Buffer.from(e2, t2); + if ("number" == typeof e2) + throw new Error('The "data" argument must not be a number'); + return new Buffer(e2, t2); + }, allocBuffer: function(e2) { + if (Buffer.alloc) + return Buffer.alloc(e2); + var t2 = new Buffer(e2); + return t2.fill(0), t2; + }, isBuffer: function(e2) { + return Buffer.isBuffer(e2); + }, isStream: function(e2) { + return e2 && "function" == typeof e2.on && "function" == typeof e2.pause && "function" == typeof e2.resume; + } }; + }, {}], 15: [function(e, t, r) { + "use strict"; + function s(e2, t2, r2) { + var n2, i2 = u.getTypeOf(t2), s2 = u.extend(r2 || {}, f); + s2.date = s2.date || /* @__PURE__ */ new Date(), null !== s2.compression && (s2.compression = s2.compression.toUpperCase()), "string" == typeof s2.unixPermissions && (s2.unixPermissions = parseInt(s2.unixPermissions, 8)), s2.unixPermissions && 16384 & s2.unixPermissions && (s2.dir = true), s2.dosPermissions && 16 & s2.dosPermissions && (s2.dir = true), s2.dir && (e2 = g(e2)), s2.createFolders && (n2 = _(e2)) && b.call(this, n2, true); + var a2 = "string" === i2 && false === s2.binary && false === s2.base64; + r2 && void 0 !== r2.binary || (s2.binary = !a2), (t2 instanceof c && 0 === t2.uncompressedSize || s2.dir || !t2 || 0 === t2.length) && (s2.base64 = false, s2.binary = true, t2 = "", s2.compression = "STORE", i2 = "string"); + var o2 = null; + o2 = t2 instanceof c || t2 instanceof l ? t2 : p.isNode && p.isStream(t2) ? new m(e2, t2) : u.prepareContent(e2, t2, s2.binary, s2.optimizedBinaryString, s2.base64); + var h2 = new d(e2, o2, s2); + this.files[e2] = h2; + } + var i = e("./utf8"), u = e("./utils"), l = e("./stream/GenericWorker"), a = e("./stream/StreamHelper"), f = e("./defaults"), c = e("./compressedObject"), d = e("./zipObject"), o = e("./generate"), p = e("./nodejsUtils"), m = e("./nodejs/NodejsStreamInputAdapter"), _ = function(e2) { + "/" === e2.slice(-1) && (e2 = e2.substring(0, e2.length - 1)); + var t2 = e2.lastIndexOf("/"); + return 0 < t2 ? e2.substring(0, t2) : ""; + }, g = function(e2) { + return "/" !== e2.slice(-1) && (e2 += "/"), e2; + }, b = function(e2, t2) { + return t2 = void 0 !== t2 ? t2 : f.createFolders, e2 = g(e2), this.files[e2] || s.call(this, e2, null, { dir: true, createFolders: t2 }), this.files[e2]; + }; + function h(e2) { + return "[object RegExp]" === Object.prototype.toString.call(e2); + } + var n = { load: function() { + throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); + }, forEach: function(e2) { + var t2, r2, n2; + for (t2 in this.files) + n2 = this.files[t2], (r2 = t2.slice(this.root.length, t2.length)) && t2.slice(0, this.root.length) === this.root && e2(r2, n2); + }, filter: function(r2) { + var n2 = []; + return this.forEach(function(e2, t2) { + r2(e2, t2) && n2.push(t2); + }), n2; + }, file: function(e2, t2, r2) { + if (1 !== arguments.length) + return e2 = this.root + e2, s.call(this, e2, t2, r2), this; + if (h(e2)) { + var n2 = e2; + return this.filter(function(e3, t3) { + return !t3.dir && n2.test(e3); + }); + } + var i2 = this.files[this.root + e2]; + return i2 && !i2.dir ? i2 : null; + }, folder: function(r2) { + if (!r2) + return this; + if (h(r2)) + return this.filter(function(e3, t3) { + return t3.dir && r2.test(e3); + }); + var e2 = this.root + r2, t2 = b.call(this, e2), n2 = this.clone(); + return n2.root = t2.name, n2; + }, remove: function(r2) { + r2 = this.root + r2; + var e2 = this.files[r2]; + if (e2 || ("/" !== r2.slice(-1) && (r2 += "/"), e2 = this.files[r2]), e2 && !e2.dir) + delete this.files[r2]; + else + for (var t2 = this.filter(function(e3, t3) { + return t3.name.slice(0, r2.length) === r2; + }), n2 = 0; n2 < t2.length; n2++) + delete this.files[t2[n2].name]; + return this; + }, generate: function() { + throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); + }, generateInternalStream: function(e2) { + var t2, r2 = {}; + try { + if ((r2 = u.extend(e2 || {}, { streamFiles: false, compression: "STORE", compressionOptions: null, type: "", platform: "DOS", comment: null, mimeType: "application/zip", encodeFileName: i.utf8encode })).type = r2.type.toLowerCase(), r2.compression = r2.compression.toUpperCase(), "binarystring" === r2.type && (r2.type = "string"), !r2.type) + throw new Error("No output type specified."); + u.checkSupport(r2.type), "darwin" !== r2.platform && "freebsd" !== r2.platform && "linux" !== r2.platform && "sunos" !== r2.platform || (r2.platform = "UNIX"), "win32" === r2.platform && (r2.platform = "DOS"); + var n2 = r2.comment || this.comment || ""; + t2 = o.generateWorker(this, r2, n2); + } catch (e3) { + (t2 = new l("error")).error(e3); + } + return new a(t2, r2.type || "string", r2.mimeType); + }, generateAsync: function(e2, t2) { + return this.generateInternalStream(e2).accumulate(t2); + }, generateNodeStream: function(e2, t2) { + return (e2 = e2 || {}).type || (e2.type = "nodebuffer"), this.generateInternalStream(e2).toNodejsStream(t2); + } }; + t.exports = n; + }, { "./compressedObject": 2, "./defaults": 5, "./generate": 9, "./nodejs/NodejsStreamInputAdapter": 12, "./nodejsUtils": 14, "./stream/GenericWorker": 28, "./stream/StreamHelper": 29, "./utf8": 31, "./utils": 32, "./zipObject": 35 }], 16: [function(e, t, r) { + "use strict"; + t.exports = e("stream"); + }, { stream: void 0 }], 17: [function(e, t, r) { + "use strict"; + var n = e("./DataReader"); + function i(e2) { + n.call(this, e2); + for (var t2 = 0; t2 < this.data.length; t2++) + e2[t2] = 255 & e2[t2]; + } + e("../utils").inherits(i, n), i.prototype.byteAt = function(e2) { + return this.data[this.zero + e2]; + }, i.prototype.lastIndexOfSignature = function(e2) { + for (var t2 = e2.charCodeAt(0), r2 = e2.charCodeAt(1), n2 = e2.charCodeAt(2), i2 = e2.charCodeAt(3), s = this.length - 4; 0 <= s; --s) + if (this.data[s] === t2 && this.data[s + 1] === r2 && this.data[s + 2] === n2 && this.data[s + 3] === i2) + return s - this.zero; + return -1; + }, i.prototype.readAndCheckSignature = function(e2) { + var t2 = e2.charCodeAt(0), r2 = e2.charCodeAt(1), n2 = e2.charCodeAt(2), i2 = e2.charCodeAt(3), s = this.readData(4); + return t2 === s[0] && r2 === s[1] && n2 === s[2] && i2 === s[3]; + }, i.prototype.readData = function(e2) { + if (this.checkOffset(e2), 0 === e2) + return []; + var t2 = this.data.slice(this.zero + this.index, this.zero + this.index + e2); + return this.index += e2, t2; + }, t.exports = i; + }, { "../utils": 32, "./DataReader": 18 }], 18: [function(e, t, r) { + "use strict"; + var n = e("../utils"); + function i(e2) { + this.data = e2, this.length = e2.length, this.index = 0, this.zero = 0; + } + i.prototype = { checkOffset: function(e2) { + this.checkIndex(this.index + e2); + }, checkIndex: function(e2) { + if (this.length < this.zero + e2 || e2 < 0) + throw new Error("End of data reached (data length = " + this.length + ", asked index = " + e2 + "). Corrupted zip ?"); + }, setIndex: function(e2) { + this.checkIndex(e2), this.index = e2; + }, skip: function(e2) { + this.setIndex(this.index + e2); + }, byteAt: function() { + }, readInt: function(e2) { + var t2, r2 = 0; + for (this.checkOffset(e2), t2 = this.index + e2 - 1; t2 >= this.index; t2--) + r2 = (r2 << 8) + this.byteAt(t2); + return this.index += e2, r2; + }, readString: function(e2) { + return n.transformTo("string", this.readData(e2)); + }, readData: function() { + }, lastIndexOfSignature: function() { + }, readAndCheckSignature: function() { + }, readDate: function() { + var e2 = this.readInt(4); + return new Date(Date.UTC(1980 + (e2 >> 25 & 127), (e2 >> 21 & 15) - 1, e2 >> 16 & 31, e2 >> 11 & 31, e2 >> 5 & 63, (31 & e2) << 1)); + } }, t.exports = i; + }, { "../utils": 32 }], 19: [function(e, t, r) { + "use strict"; + var n = e("./Uint8ArrayReader"); + function i(e2) { + n.call(this, e2); + } + e("../utils").inherits(i, n), i.prototype.readData = function(e2) { + this.checkOffset(e2); + var t2 = this.data.slice(this.zero + this.index, this.zero + this.index + e2); + return this.index += e2, t2; + }, t.exports = i; + }, { "../utils": 32, "./Uint8ArrayReader": 21 }], 20: [function(e, t, r) { + "use strict"; + var n = e("./DataReader"); + function i(e2) { + n.call(this, e2); + } + e("../utils").inherits(i, n), i.prototype.byteAt = function(e2) { + return this.data.charCodeAt(this.zero + e2); + }, i.prototype.lastIndexOfSignature = function(e2) { + return this.data.lastIndexOf(e2) - this.zero; + }, i.prototype.readAndCheckSignature = function(e2) { + return e2 === this.readData(4); + }, i.prototype.readData = function(e2) { + this.checkOffset(e2); + var t2 = this.data.slice(this.zero + this.index, this.zero + this.index + e2); + return this.index += e2, t2; + }, t.exports = i; + }, { "../utils": 32, "./DataReader": 18 }], 21: [function(e, t, r) { + "use strict"; + var n = e("./ArrayReader"); + function i(e2) { + n.call(this, e2); + } + e("../utils").inherits(i, n), i.prototype.readData = function(e2) { + if (this.checkOffset(e2), 0 === e2) + return new Uint8Array(0); + var t2 = this.data.subarray(this.zero + this.index, this.zero + this.index + e2); + return this.index += e2, t2; + }, t.exports = i; + }, { "../utils": 32, "./ArrayReader": 17 }], 22: [function(e, t, r) { + "use strict"; + var n = e("../utils"), i = e("../support"), s = e("./ArrayReader"), a = e("./StringReader"), o = e("./NodeBufferReader"), h = e("./Uint8ArrayReader"); + t.exports = function(e2) { + var t2 = n.getTypeOf(e2); + return n.checkSupport(t2), "string" !== t2 || i.uint8array ? "nodebuffer" === t2 ? new o(e2) : i.uint8array ? new h(n.transformTo("uint8array", e2)) : new s(n.transformTo("array", e2)) : new a(e2); + }; + }, { "../support": 30, "../utils": 32, "./ArrayReader": 17, "./NodeBufferReader": 19, "./StringReader": 20, "./Uint8ArrayReader": 21 }], 23: [function(e, t, r) { + "use strict"; + r.LOCAL_FILE_HEADER = "PK", r.CENTRAL_FILE_HEADER = "PK", r.CENTRAL_DIRECTORY_END = "PK", r.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x07", r.ZIP64_CENTRAL_DIRECTORY_END = "PK", r.DATA_DESCRIPTOR = "PK\x07\b"; + }, {}], 24: [function(e, t, r) { + "use strict"; + var n = e("./GenericWorker"), i = e("../utils"); + function s(e2) { + n.call(this, "ConvertWorker to " + e2), this.destType = e2; + } + i.inherits(s, n), s.prototype.processChunk = function(e2) { + this.push({ data: i.transformTo(this.destType, e2.data), meta: e2.meta }); + }, t.exports = s; + }, { "../utils": 32, "./GenericWorker": 28 }], 25: [function(e, t, r) { + "use strict"; + var n = e("./GenericWorker"), i = e("../crc32"); + function s() { + n.call(this, "Crc32Probe"), this.withStreamInfo("crc32", 0); + } + e("../utils").inherits(s, n), s.prototype.processChunk = function(e2) { + this.streamInfo.crc32 = i(e2.data, this.streamInfo.crc32 || 0), this.push(e2); + }, t.exports = s; + }, { "../crc32": 4, "../utils": 32, "./GenericWorker": 28 }], 26: [function(e, t, r) { + "use strict"; + var n = e("../utils"), i = e("./GenericWorker"); + function s(e2) { + i.call(this, "DataLengthProbe for " + e2), this.propName = e2, this.withStreamInfo(e2, 0); + } + n.inherits(s, i), s.prototype.processChunk = function(e2) { + if (e2) { + var t2 = this.streamInfo[this.propName] || 0; + this.streamInfo[this.propName] = t2 + e2.data.length; + } + i.prototype.processChunk.call(this, e2); + }, t.exports = s; + }, { "../utils": 32, "./GenericWorker": 28 }], 27: [function(e, t, r) { + "use strict"; + var n = e("../utils"), i = e("./GenericWorker"); + function s(e2) { + i.call(this, "DataWorker"); + var t2 = this; + this.dataIsReady = false, this.index = 0, this.max = 0, this.data = null, this.type = "", this._tickScheduled = false, e2.then(function(e3) { + t2.dataIsReady = true, t2.data = e3, t2.max = e3 && e3.length || 0, t2.type = n.getTypeOf(e3), t2.isPaused || t2._tickAndRepeat(); + }, function(e3) { + t2.error(e3); + }); + } + n.inherits(s, i), s.prototype.cleanUp = function() { + i.prototype.cleanUp.call(this), this.data = null; + }, s.prototype.resume = function() { + return !!i.prototype.resume.call(this) && (!this._tickScheduled && this.dataIsReady && (this._tickScheduled = true, n.delay(this._tickAndRepeat, [], this)), true); + }, s.prototype._tickAndRepeat = function() { + this._tickScheduled = false, this.isPaused || this.isFinished || (this._tick(), this.isFinished || (n.delay(this._tickAndRepeat, [], this), this._tickScheduled = true)); + }, s.prototype._tick = function() { + if (this.isPaused || this.isFinished) + return false; + var e2 = null, t2 = Math.min(this.max, this.index + 16384); + if (this.index >= this.max) + return this.end(); + switch (this.type) { + case "string": + e2 = this.data.substring(this.index, t2); + break; + case "uint8array": + e2 = this.data.subarray(this.index, t2); + break; + case "array": + case "nodebuffer": + e2 = this.data.slice(this.index, t2); + } + return this.index = t2, this.push({ data: e2, meta: { percent: this.max ? this.index / this.max * 100 : 0 } }); + }, t.exports = s; + }, { "../utils": 32, "./GenericWorker": 28 }], 28: [function(e, t, r) { + "use strict"; + function n(e2) { + this.name = e2 || "default", this.streamInfo = {}, this.generatedError = null, this.extraStreamInfo = {}, this.isPaused = true, this.isFinished = false, this.isLocked = false, this._listeners = { data: [], end: [], error: [] }, this.previous = null; + } + n.prototype = { push: function(e2) { + this.emit("data", e2); + }, end: function() { + if (this.isFinished) + return false; + this.flush(); + try { + this.emit("end"), this.cleanUp(), this.isFinished = true; + } catch (e2) { + this.emit("error", e2); + } + return true; + }, error: function(e2) { + return !this.isFinished && (this.isPaused ? this.generatedError = e2 : (this.isFinished = true, this.emit("error", e2), this.previous && this.previous.error(e2), this.cleanUp()), true); + }, on: function(e2, t2) { + return this._listeners[e2].push(t2), this; + }, cleanUp: function() { + this.streamInfo = this.generatedError = this.extraStreamInfo = null, this._listeners = []; + }, emit: function(e2, t2) { + if (this._listeners[e2]) + for (var r2 = 0; r2 < this._listeners[e2].length; r2++) + this._listeners[e2][r2].call(this, t2); + }, pipe: function(e2) { + return e2.registerPrevious(this); + }, registerPrevious: function(e2) { + if (this.isLocked) + throw new Error("The stream '" + this + "' has already been used."); + this.streamInfo = e2.streamInfo, this.mergeStreamInfo(), this.previous = e2; + var t2 = this; + return e2.on("data", function(e3) { + t2.processChunk(e3); + }), e2.on("end", function() { + t2.end(); + }), e2.on("error", function(e3) { + t2.error(e3); + }), this; + }, pause: function() { + return !this.isPaused && !this.isFinished && (this.isPaused = true, this.previous && this.previous.pause(), true); + }, resume: function() { + if (!this.isPaused || this.isFinished) + return false; + var e2 = this.isPaused = false; + return this.generatedError && (this.error(this.generatedError), e2 = true), this.previous && this.previous.resume(), !e2; + }, flush: function() { + }, processChunk: function(e2) { + this.push(e2); + }, withStreamInfo: function(e2, t2) { + return this.extraStreamInfo[e2] = t2, this.mergeStreamInfo(), this; + }, mergeStreamInfo: function() { + for (var e2 in this.extraStreamInfo) + Object.prototype.hasOwnProperty.call(this.extraStreamInfo, e2) && (this.streamInfo[e2] = this.extraStreamInfo[e2]); + }, lock: function() { + if (this.isLocked) + throw new Error("The stream '" + this + "' has already been used."); + this.isLocked = true, this.previous && this.previous.lock(); + }, toString: function() { + var e2 = "Worker " + this.name; + return this.previous ? this.previous + " -> " + e2 : e2; + } }, t.exports = n; + }, {}], 29: [function(e, t, r) { + "use strict"; + var h = e("../utils"), i = e("./ConvertWorker"), s = e("./GenericWorker"), u = e("../base64"), n = e("../support"), a = e("../external"), o = null; + if (n.nodestream) + try { + o = e("../nodejs/NodejsStreamOutputAdapter"); + } catch (e2) { + } + function l(e2, o2) { + return new a.Promise(function(t2, r2) { + var n2 = [], i2 = e2._internalType, s2 = e2._outputType, a2 = e2._mimeType; + e2.on("data", function(e3, t3) { + n2.push(e3), o2 && o2(t3); + }).on("error", function(e3) { + n2 = [], r2(e3); + }).on("end", function() { + try { + var e3 = function(e4, t3, r3) { + switch (e4) { + case "blob": + return h.newBlob(h.transformTo("arraybuffer", t3), r3); + case "base64": + return u.encode(t3); + default: + return h.transformTo(e4, t3); + } + }(s2, function(e4, t3) { + var r3, n3 = 0, i3 = null, s3 = 0; + for (r3 = 0; r3 < t3.length; r3++) + s3 += t3[r3].length; + switch (e4) { + case "string": + return t3.join(""); + case "array": + return Array.prototype.concat.apply([], t3); + case "uint8array": + for (i3 = new Uint8Array(s3), r3 = 0; r3 < t3.length; r3++) + i3.set(t3[r3], n3), n3 += t3[r3].length; + return i3; + case "nodebuffer": + return Buffer.concat(t3); + default: + throw new Error("concat : unsupported type '" + e4 + "'"); + } + }(i2, n2), a2); + t2(e3); + } catch (e4) { + r2(e4); + } + n2 = []; + }).resume(); + }); + } + function f(e2, t2, r2) { + var n2 = t2; + switch (t2) { + case "blob": + case "arraybuffer": + n2 = "uint8array"; + break; + case "base64": + n2 = "string"; + } + try { + this._internalType = n2, this._outputType = t2, this._mimeType = r2, h.checkSupport(n2), this._worker = e2.pipe(new i(n2)), e2.lock(); + } catch (e3) { + this._worker = new s("error"), this._worker.error(e3); + } + } + f.prototype = { accumulate: function(e2) { + return l(this, e2); + }, on: function(e2, t2) { + var r2 = this; + return "data" === e2 ? this._worker.on(e2, function(e3) { + t2.call(r2, e3.data, e3.meta); + }) : this._worker.on(e2, function() { + h.delay(t2, arguments, r2); + }), this; + }, resume: function() { + return h.delay(this._worker.resume, [], this._worker), this; + }, pause: function() { + return this._worker.pause(), this; + }, toNodejsStream: function(e2) { + if (h.checkSupport("nodestream"), "nodebuffer" !== this._outputType) + throw new Error(this._outputType + " is not supported by this method"); + return new o(this, { objectMode: "nodebuffer" !== this._outputType }, e2); + } }, t.exports = f; + }, { "../base64": 1, "../external": 6, "../nodejs/NodejsStreamOutputAdapter": 13, "../support": 30, "../utils": 32, "./ConvertWorker": 24, "./GenericWorker": 28 }], 30: [function(e, t, r) { + "use strict"; + if (r.base64 = true, r.array = true, r.string = true, r.arraybuffer = "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array, r.nodebuffer = "undefined" != typeof Buffer, r.uint8array = "undefined" != typeof Uint8Array, "undefined" == typeof ArrayBuffer) + r.blob = false; + else { + var n = new ArrayBuffer(0); + try { + r.blob = 0 === new Blob([n], { type: "application/zip" }).size; + } catch (e2) { + try { + var i = new (self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder)(); + i.append(n), r.blob = 0 === i.getBlob("application/zip").size; + } catch (e3) { + r.blob = false; + } + } + } + try { + r.nodestream = !!e("readable-stream").Readable; + } catch (e2) { + r.nodestream = false; + } + }, { "readable-stream": 16 }], 31: [function(e, t, s) { + "use strict"; + for (var o = e("./utils"), h = e("./support"), r = e("./nodejsUtils"), n = e("./stream/GenericWorker"), u = new Array(256), i = 0; i < 256; i++) + u[i] = 252 <= i ? 6 : 248 <= i ? 5 : 240 <= i ? 4 : 224 <= i ? 3 : 192 <= i ? 2 : 1; + u[254] = u[254] = 1; + function a() { + n.call(this, "utf-8 decode"), this.leftOver = null; + } + function l() { + n.call(this, "utf-8 encode"); + } + s.utf8encode = function(e2) { + return h.nodebuffer ? r.newBufferFrom(e2, "utf-8") : function(e3) { + var t2, r2, n2, i2, s2, a2 = e3.length, o2 = 0; + for (i2 = 0; i2 < a2; i2++) + 55296 == (64512 & (r2 = e3.charCodeAt(i2))) && i2 + 1 < a2 && 56320 == (64512 & (n2 = e3.charCodeAt(i2 + 1))) && (r2 = 65536 + (r2 - 55296 << 10) + (n2 - 56320), i2++), o2 += r2 < 128 ? 1 : r2 < 2048 ? 2 : r2 < 65536 ? 3 : 4; + for (t2 = h.uint8array ? new Uint8Array(o2) : new Array(o2), i2 = s2 = 0; s2 < o2; i2++) + 55296 == (64512 & (r2 = e3.charCodeAt(i2))) && i2 + 1 < a2 && 56320 == (64512 & (n2 = e3.charCodeAt(i2 + 1))) && (r2 = 65536 + (r2 - 55296 << 10) + (n2 - 56320), i2++), r2 < 128 ? t2[s2++] = r2 : (r2 < 2048 ? t2[s2++] = 192 | r2 >>> 6 : (r2 < 65536 ? t2[s2++] = 224 | r2 >>> 12 : (t2[s2++] = 240 | r2 >>> 18, t2[s2++] = 128 | r2 >>> 12 & 63), t2[s2++] = 128 | r2 >>> 6 & 63), t2[s2++] = 128 | 63 & r2); + return t2; + }(e2); + }, s.utf8decode = function(e2) { + return h.nodebuffer ? o.transformTo("nodebuffer", e2).toString("utf-8") : function(e3) { + var t2, r2, n2, i2, s2 = e3.length, a2 = new Array(2 * s2); + for (t2 = r2 = 0; t2 < s2; ) + if ((n2 = e3[t2++]) < 128) + a2[r2++] = n2; + else if (4 < (i2 = u[n2])) + a2[r2++] = 65533, t2 += i2 - 1; + else { + for (n2 &= 2 === i2 ? 31 : 3 === i2 ? 15 : 7; 1 < i2 && t2 < s2; ) + n2 = n2 << 6 | 63 & e3[t2++], i2--; + 1 < i2 ? a2[r2++] = 65533 : n2 < 65536 ? a2[r2++] = n2 : (n2 -= 65536, a2[r2++] = 55296 | n2 >> 10 & 1023, a2[r2++] = 56320 | 1023 & n2); + } + return a2.length !== r2 && (a2.subarray ? a2 = a2.subarray(0, r2) : a2.length = r2), o.applyFromCharCode(a2); + }(e2 = o.transformTo(h.uint8array ? "uint8array" : "array", e2)); + }, o.inherits(a, n), a.prototype.processChunk = function(e2) { + var t2 = o.transformTo(h.uint8array ? "uint8array" : "array", e2.data); + if (this.leftOver && this.leftOver.length) { + if (h.uint8array) { + var r2 = t2; + (t2 = new Uint8Array(r2.length + this.leftOver.length)).set(this.leftOver, 0), t2.set(r2, this.leftOver.length); + } else + t2 = this.leftOver.concat(t2); + this.leftOver = null; + } + var n2 = function(e3, t3) { + var r3; + for ((t3 = t3 || e3.length) > e3.length && (t3 = e3.length), r3 = t3 - 1; 0 <= r3 && 128 == (192 & e3[r3]); ) + r3--; + return r3 < 0 ? t3 : 0 === r3 ? t3 : r3 + u[e3[r3]] > t3 ? r3 : t3; + }(t2), i2 = t2; + n2 !== t2.length && (h.uint8array ? (i2 = t2.subarray(0, n2), this.leftOver = t2.subarray(n2, t2.length)) : (i2 = t2.slice(0, n2), this.leftOver = t2.slice(n2, t2.length))), this.push({ data: s.utf8decode(i2), meta: e2.meta }); + }, a.prototype.flush = function() { + this.leftOver && this.leftOver.length && (this.push({ data: s.utf8decode(this.leftOver), meta: {} }), this.leftOver = null); + }, s.Utf8DecodeWorker = a, o.inherits(l, n), l.prototype.processChunk = function(e2) { + this.push({ data: s.utf8encode(e2.data), meta: e2.meta }); + }, s.Utf8EncodeWorker = l; + }, { "./nodejsUtils": 14, "./stream/GenericWorker": 28, "./support": 30, "./utils": 32 }], 32: [function(e, t, a) { + "use strict"; + var o = e("./support"), h = e("./base64"), r = e("./nodejsUtils"), u = e("./external"); + function n(e2) { + return e2; + } + function l(e2, t2) { + for (var r2 = 0; r2 < e2.length; ++r2) + t2[r2] = 255 & e2.charCodeAt(r2); + return t2; + } + e("setimmediate"), a.newBlob = function(t2, r2) { + a.checkSupport("blob"); + try { + return new Blob([t2], { type: r2 }); + } catch (e2) { + try { + var n2 = new (self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder)(); + return n2.append(t2), n2.getBlob(r2); + } catch (e3) { + throw new Error("Bug : can't construct the Blob."); + } + } + }; + var i = { stringifyByChunk: function(e2, t2, r2) { + var n2 = [], i2 = 0, s2 = e2.length; + if (s2 <= r2) + return String.fromCharCode.apply(null, e2); + for (; i2 < s2; ) + "array" === t2 || "nodebuffer" === t2 ? n2.push(String.fromCharCode.apply(null, e2.slice(i2, Math.min(i2 + r2, s2)))) : n2.push(String.fromCharCode.apply(null, e2.subarray(i2, Math.min(i2 + r2, s2)))), i2 += r2; + return n2.join(""); + }, stringifyByChar: function(e2) { + for (var t2 = "", r2 = 0; r2 < e2.length; r2++) + t2 += String.fromCharCode(e2[r2]); + return t2; + }, applyCanBeUsed: { uint8array: function() { + try { + return o.uint8array && 1 === String.fromCharCode.apply(null, new Uint8Array(1)).length; + } catch (e2) { + return false; + } + }(), nodebuffer: function() { + try { + return o.nodebuffer && 1 === String.fromCharCode.apply(null, r.allocBuffer(1)).length; + } catch (e2) { + return false; + } + }() } }; + function s(e2) { + var t2 = 65536, r2 = a.getTypeOf(e2), n2 = true; + if ("uint8array" === r2 ? n2 = i.applyCanBeUsed.uint8array : "nodebuffer" === r2 && (n2 = i.applyCanBeUsed.nodebuffer), n2) + for (; 1 < t2; ) + try { + return i.stringifyByChunk(e2, r2, t2); + } catch (e3) { + t2 = Math.floor(t2 / 2); + } + return i.stringifyByChar(e2); + } + function f(e2, t2) { + for (var r2 = 0; r2 < e2.length; r2++) + t2[r2] = e2[r2]; + return t2; + } + a.applyFromCharCode = s; + var c = {}; + c.string = { string: n, array: function(e2) { + return l(e2, new Array(e2.length)); + }, arraybuffer: function(e2) { + return c.string.uint8array(e2).buffer; + }, uint8array: function(e2) { + return l(e2, new Uint8Array(e2.length)); + }, nodebuffer: function(e2) { + return l(e2, r.allocBuffer(e2.length)); + } }, c.array = { string: s, array: n, arraybuffer: function(e2) { + return new Uint8Array(e2).buffer; + }, uint8array: function(e2) { + return new Uint8Array(e2); + }, nodebuffer: function(e2) { + return r.newBufferFrom(e2); + } }, c.arraybuffer = { string: function(e2) { + return s(new Uint8Array(e2)); + }, array: function(e2) { + return f(new Uint8Array(e2), new Array(e2.byteLength)); + }, arraybuffer: n, uint8array: function(e2) { + return new Uint8Array(e2); + }, nodebuffer: function(e2) { + return r.newBufferFrom(new Uint8Array(e2)); + } }, c.uint8array = { string: s, array: function(e2) { + return f(e2, new Array(e2.length)); + }, arraybuffer: function(e2) { + return e2.buffer; + }, uint8array: n, nodebuffer: function(e2) { + return r.newBufferFrom(e2); + } }, c.nodebuffer = { string: s, array: function(e2) { + return f(e2, new Array(e2.length)); + }, arraybuffer: function(e2) { + return c.nodebuffer.uint8array(e2).buffer; + }, uint8array: function(e2) { + return f(e2, new Uint8Array(e2.length)); + }, nodebuffer: n }, a.transformTo = function(e2, t2) { + if (t2 = t2 || "", !e2) + return t2; + a.checkSupport(e2); + var r2 = a.getTypeOf(t2); + return c[r2][e2](t2); + }, a.resolve = function(e2) { + for (var t2 = e2.split("/"), r2 = [], n2 = 0; n2 < t2.length; n2++) { + var i2 = t2[n2]; + "." === i2 || "" === i2 && 0 !== n2 && n2 !== t2.length - 1 || (".." === i2 ? r2.pop() : r2.push(i2)); + } + return r2.join("/"); + }, a.getTypeOf = function(e2) { + return "string" == typeof e2 ? "string" : "[object Array]" === Object.prototype.toString.call(e2) ? "array" : o.nodebuffer && r.isBuffer(e2) ? "nodebuffer" : o.uint8array && e2 instanceof Uint8Array ? "uint8array" : o.arraybuffer && e2 instanceof ArrayBuffer ? "arraybuffer" : void 0; + }, a.checkSupport = function(e2) { + if (!o[e2.toLowerCase()]) + throw new Error(e2 + " is not supported by this platform"); + }, a.MAX_VALUE_16BITS = 65535, a.MAX_VALUE_32BITS = -1, a.pretty = function(e2) { + var t2, r2, n2 = ""; + for (r2 = 0; r2 < (e2 || "").length; r2++) + n2 += "\\x" + ((t2 = e2.charCodeAt(r2)) < 16 ? "0" : "") + t2.toString(16).toUpperCase(); + return n2; + }, a.delay = function(e2, t2, r2) { + setImmediate(function() { + e2.apply(r2 || null, t2 || []); + }); + }, a.inherits = function(e2, t2) { + function r2() { + } + r2.prototype = t2.prototype, e2.prototype = new r2(); + }, a.extend = function() { + var e2, t2, r2 = {}; + for (e2 = 0; e2 < arguments.length; e2++) + for (t2 in arguments[e2]) + Object.prototype.hasOwnProperty.call(arguments[e2], t2) && void 0 === r2[t2] && (r2[t2] = arguments[e2][t2]); + return r2; + }, a.prepareContent = function(r2, e2, n2, i2, s2) { + return u.Promise.resolve(e2).then(function(n3) { + return o.blob && (n3 instanceof Blob || -1 !== ["[object File]", "[object Blob]"].indexOf(Object.prototype.toString.call(n3))) && "undefined" != typeof FileReader ? new u.Promise(function(t2, r3) { + var e3 = new FileReader(); + e3.onload = function(e4) { + t2(e4.target.result); + }, e3.onerror = function(e4) { + r3(e4.target.error); + }, e3.readAsArrayBuffer(n3); + }) : n3; + }).then(function(e3) { + var t2 = a.getTypeOf(e3); + return t2 ? ("arraybuffer" === t2 ? e3 = a.transformTo("uint8array", e3) : "string" === t2 && (s2 ? e3 = h.decode(e3) : n2 && true !== i2 && (e3 = function(e4) { + return l(e4, o.uint8array ? new Uint8Array(e4.length) : new Array(e4.length)); + }(e3))), e3) : u.Promise.reject(new Error("Can't read the data of '" + r2 + "'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?")); + }); + }; + }, { "./base64": 1, "./external": 6, "./nodejsUtils": 14, "./support": 30, setimmediate: 54 }], 33: [function(e, t, r) { + "use strict"; + var n = e("./reader/readerFor"), i = e("./utils"), s = e("./signature"), a = e("./zipEntry"), o = e("./support"); + function h(e2) { + this.files = [], this.loadOptions = e2; + } + h.prototype = { checkSignature: function(e2) { + if (!this.reader.readAndCheckSignature(e2)) { + this.reader.index -= 4; + var t2 = this.reader.readString(4); + throw new Error("Corrupted zip or bug: unexpected signature (" + i.pretty(t2) + ", expected " + i.pretty(e2) + ")"); + } + }, isSignature: function(e2, t2) { + var r2 = this.reader.index; + this.reader.setIndex(e2); + var n2 = this.reader.readString(4) === t2; + return this.reader.setIndex(r2), n2; + }, readBlockEndOfCentral: function() { + this.diskNumber = this.reader.readInt(2), this.diskWithCentralDirStart = this.reader.readInt(2), this.centralDirRecordsOnThisDisk = this.reader.readInt(2), this.centralDirRecords = this.reader.readInt(2), this.centralDirSize = this.reader.readInt(4), this.centralDirOffset = this.reader.readInt(4), this.zipCommentLength = this.reader.readInt(2); + var e2 = this.reader.readData(this.zipCommentLength), t2 = o.uint8array ? "uint8array" : "array", r2 = i.transformTo(t2, e2); + this.zipComment = this.loadOptions.decodeFileName(r2); + }, readBlockZip64EndOfCentral: function() { + this.zip64EndOfCentralSize = this.reader.readInt(8), this.reader.skip(4), this.diskNumber = this.reader.readInt(4), this.diskWithCentralDirStart = this.reader.readInt(4), this.centralDirRecordsOnThisDisk = this.reader.readInt(8), this.centralDirRecords = this.reader.readInt(8), this.centralDirSize = this.reader.readInt(8), this.centralDirOffset = this.reader.readInt(8), this.zip64ExtensibleData = {}; + for (var e2, t2, r2, n2 = this.zip64EndOfCentralSize - 44; 0 < n2; ) + e2 = this.reader.readInt(2), t2 = this.reader.readInt(4), r2 = this.reader.readData(t2), this.zip64ExtensibleData[e2] = { id: e2, length: t2, value: r2 }; + }, readBlockZip64EndOfCentralLocator: function() { + if (this.diskWithZip64CentralDirStart = this.reader.readInt(4), this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8), this.disksCount = this.reader.readInt(4), 1 < this.disksCount) + throw new Error("Multi-volumes zip are not supported"); + }, readLocalFiles: function() { + var e2, t2; + for (e2 = 0; e2 < this.files.length; e2++) + t2 = this.files[e2], this.reader.setIndex(t2.localHeaderOffset), this.checkSignature(s.LOCAL_FILE_HEADER), t2.readLocalPart(this.reader), t2.handleUTF8(), t2.processAttributes(); + }, readCentralDir: function() { + var e2; + for (this.reader.setIndex(this.centralDirOffset); this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER); ) + (e2 = new a({ zip64: this.zip64 }, this.loadOptions)).readCentralPart(this.reader), this.files.push(e2); + if (this.centralDirRecords !== this.files.length && 0 !== this.centralDirRecords && 0 === this.files.length) + throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length); + }, readEndOfCentral: function() { + var e2 = this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END); + if (e2 < 0) + throw !this.isSignature(0, s.LOCAL_FILE_HEADER) ? new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html") : new Error("Corrupted zip: can't find end of central directory"); + this.reader.setIndex(e2); + var t2 = e2; + if (this.checkSignature(s.CENTRAL_DIRECTORY_END), this.readBlockEndOfCentral(), this.diskNumber === i.MAX_VALUE_16BITS || this.diskWithCentralDirStart === i.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === i.MAX_VALUE_16BITS || this.centralDirRecords === i.MAX_VALUE_16BITS || this.centralDirSize === i.MAX_VALUE_32BITS || this.centralDirOffset === i.MAX_VALUE_32BITS) { + if (this.zip64 = true, (e2 = this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR)) < 0) + throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator"); + if (this.reader.setIndex(e2), this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR), this.readBlockZip64EndOfCentralLocator(), !this.isSignature(this.relativeOffsetEndOfZip64CentralDir, s.ZIP64_CENTRAL_DIRECTORY_END) && (this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END), this.relativeOffsetEndOfZip64CentralDir < 0)) + throw new Error("Corrupted zip: can't find the ZIP64 end of central directory"); + this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir), this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END), this.readBlockZip64EndOfCentral(); + } + var r2 = this.centralDirOffset + this.centralDirSize; + this.zip64 && (r2 += 20, r2 += 12 + this.zip64EndOfCentralSize); + var n2 = t2 - r2; + if (0 < n2) + this.isSignature(t2, s.CENTRAL_FILE_HEADER) || (this.reader.zero = n2); + else if (n2 < 0) + throw new Error("Corrupted zip: missing " + Math.abs(n2) + " bytes."); + }, prepareReader: function(e2) { + this.reader = n(e2); + }, load: function(e2) { + this.prepareReader(e2), this.readEndOfCentral(), this.readCentralDir(), this.readLocalFiles(); + } }, t.exports = h; + }, { "./reader/readerFor": 22, "./signature": 23, "./support": 30, "./utils": 32, "./zipEntry": 34 }], 34: [function(e, t, r) { + "use strict"; + var n = e("./reader/readerFor"), s = e("./utils"), i = e("./compressedObject"), a = e("./crc32"), o = e("./utf8"), h = e("./compressions"), u = e("./support"); + function l(e2, t2) { + this.options = e2, this.loadOptions = t2; + } + l.prototype = { isEncrypted: function() { + return 1 == (1 & this.bitFlag); + }, useUTF8: function() { + return 2048 == (2048 & this.bitFlag); + }, readLocalPart: function(e2) { + var t2, r2; + if (e2.skip(22), this.fileNameLength = e2.readInt(2), r2 = e2.readInt(2), this.fileName = e2.readData(this.fileNameLength), e2.skip(r2), -1 === this.compressedSize || -1 === this.uncompressedSize) + throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)"); + if (null === (t2 = function(e3) { + for (var t3 in h) + if (Object.prototype.hasOwnProperty.call(h, t3) && h[t3].magic === e3) + return h[t3]; + return null; + }(this.compressionMethod))) + throw new Error("Corrupted zip : compression " + s.pretty(this.compressionMethod) + " unknown (inner file : " + s.transformTo("string", this.fileName) + ")"); + this.decompressed = new i(this.compressedSize, this.uncompressedSize, this.crc32, t2, e2.readData(this.compressedSize)); + }, readCentralPart: function(e2) { + this.versionMadeBy = e2.readInt(2), e2.skip(2), this.bitFlag = e2.readInt(2), this.compressionMethod = e2.readString(2), this.date = e2.readDate(), this.crc32 = e2.readInt(4), this.compressedSize = e2.readInt(4), this.uncompressedSize = e2.readInt(4); + var t2 = e2.readInt(2); + if (this.extraFieldsLength = e2.readInt(2), this.fileCommentLength = e2.readInt(2), this.diskNumberStart = e2.readInt(2), this.internalFileAttributes = e2.readInt(2), this.externalFileAttributes = e2.readInt(4), this.localHeaderOffset = e2.readInt(4), this.isEncrypted()) + throw new Error("Encrypted zip are not supported"); + e2.skip(t2), this.readExtraFields(e2), this.parseZIP64ExtraField(e2), this.fileComment = e2.readData(this.fileCommentLength); + }, processAttributes: function() { + this.unixPermissions = null, this.dosPermissions = null; + var e2 = this.versionMadeBy >> 8; + this.dir = !!(16 & this.externalFileAttributes), 0 == e2 && (this.dosPermissions = 63 & this.externalFileAttributes), 3 == e2 && (this.unixPermissions = this.externalFileAttributes >> 16 & 65535), this.dir || "/" !== this.fileNameStr.slice(-1) || (this.dir = true); + }, parseZIP64ExtraField: function() { + if (this.extraFields[1]) { + var e2 = n(this.extraFields[1].value); + this.uncompressedSize === s.MAX_VALUE_32BITS && (this.uncompressedSize = e2.readInt(8)), this.compressedSize === s.MAX_VALUE_32BITS && (this.compressedSize = e2.readInt(8)), this.localHeaderOffset === s.MAX_VALUE_32BITS && (this.localHeaderOffset = e2.readInt(8)), this.diskNumberStart === s.MAX_VALUE_32BITS && (this.diskNumberStart = e2.readInt(4)); + } + }, readExtraFields: function(e2) { + var t2, r2, n2, i2 = e2.index + this.extraFieldsLength; + for (this.extraFields || (this.extraFields = {}); e2.index + 4 < i2; ) + t2 = e2.readInt(2), r2 = e2.readInt(2), n2 = e2.readData(r2), this.extraFields[t2] = { id: t2, length: r2, value: n2 }; + e2.setIndex(i2); + }, handleUTF8: function() { + var e2 = u.uint8array ? "uint8array" : "array"; + if (this.useUTF8()) + this.fileNameStr = o.utf8decode(this.fileName), this.fileCommentStr = o.utf8decode(this.fileComment); + else { + var t2 = this.findExtraFieldUnicodePath(); + if (null !== t2) + this.fileNameStr = t2; + else { + var r2 = s.transformTo(e2, this.fileName); + this.fileNameStr = this.loadOptions.decodeFileName(r2); + } + var n2 = this.findExtraFieldUnicodeComment(); + if (null !== n2) + this.fileCommentStr = n2; + else { + var i2 = s.transformTo(e2, this.fileComment); + this.fileCommentStr = this.loadOptions.decodeFileName(i2); + } + } + }, findExtraFieldUnicodePath: function() { + var e2 = this.extraFields[28789]; + if (e2) { + var t2 = n(e2.value); + return 1 !== t2.readInt(1) ? null : a(this.fileName) !== t2.readInt(4) ? null : o.utf8decode(t2.readData(e2.length - 5)); + } + return null; + }, findExtraFieldUnicodeComment: function() { + var e2 = this.extraFields[25461]; + if (e2) { + var t2 = n(e2.value); + return 1 !== t2.readInt(1) ? null : a(this.fileComment) !== t2.readInt(4) ? null : o.utf8decode(t2.readData(e2.length - 5)); + } + return null; + } }, t.exports = l; + }, { "./compressedObject": 2, "./compressions": 3, "./crc32": 4, "./reader/readerFor": 22, "./support": 30, "./utf8": 31, "./utils": 32 }], 35: [function(e, t, r) { + "use strict"; + function n(e2, t2, r2) { + this.name = e2, this.dir = r2.dir, this.date = r2.date, this.comment = r2.comment, this.unixPermissions = r2.unixPermissions, this.dosPermissions = r2.dosPermissions, this._data = t2, this._dataBinary = r2.binary, this.options = { compression: r2.compression, compressionOptions: r2.compressionOptions }; + } + var s = e("./stream/StreamHelper"), i = e("./stream/DataWorker"), a = e("./utf8"), o = e("./compressedObject"), h = e("./stream/GenericWorker"); + n.prototype = { internalStream: function(e2) { + var t2 = null, r2 = "string"; + try { + if (!e2) + throw new Error("No output type specified."); + var n2 = "string" === (r2 = e2.toLowerCase()) || "text" === r2; + "binarystring" !== r2 && "text" !== r2 || (r2 = "string"), t2 = this._decompressWorker(); + var i2 = !this._dataBinary; + i2 && !n2 && (t2 = t2.pipe(new a.Utf8EncodeWorker())), !i2 && n2 && (t2 = t2.pipe(new a.Utf8DecodeWorker())); + } catch (e3) { + (t2 = new h("error")).error(e3); + } + return new s(t2, r2, ""); + }, async: function(e2, t2) { + return this.internalStream(e2).accumulate(t2); + }, nodeStream: function(e2, t2) { + return this.internalStream(e2 || "nodebuffer").toNodejsStream(t2); + }, _compressWorker: function(e2, t2) { + if (this._data instanceof o && this._data.compression.magic === e2.magic) + return this._data.getCompressedWorker(); + var r2 = this._decompressWorker(); + return this._dataBinary || (r2 = r2.pipe(new a.Utf8EncodeWorker())), o.createWorkerFrom(r2, e2, t2); + }, _decompressWorker: function() { + return this._data instanceof o ? this._data.getContentWorker() : this._data instanceof h ? this._data : new i(this._data); + } }; + for (var u = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"], l = function() { + throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); + }, f = 0; f < u.length; f++) + n.prototype[u[f]] = l; + t.exports = n; + }, { "./compressedObject": 2, "./stream/DataWorker": 27, "./stream/GenericWorker": 28, "./stream/StreamHelper": 29, "./utf8": 31 }], 36: [function(e, l, t) { + (function(t2) { + "use strict"; + var r, n, e2 = t2.MutationObserver || t2.WebKitMutationObserver; + if (e2) { + var i = 0, s = new e2(u), a = t2.document.createTextNode(""); + s.observe(a, { characterData: true }), r = function() { + a.data = i = ++i % 2; + }; + } else if (t2.setImmediate || void 0 === t2.MessageChannel) + r = "document" in t2 && "onreadystatechange" in t2.document.createElement("script") ? function() { + var e3 = t2.document.createElement("script"); + e3.onreadystatechange = function() { + u(), e3.onreadystatechange = null, e3.parentNode.removeChild(e3), e3 = null; + }, t2.document.documentElement.appendChild(e3); + } : function() { + setTimeout(u, 0); + }; + else { + var o = new t2.MessageChannel(); + o.port1.onmessage = u, r = function() { + o.port2.postMessage(0); + }; + } + var h = []; + function u() { + var e3, t3; + n = true; + for (var r2 = h.length; r2; ) { + for (t3 = h, h = [], e3 = -1; ++e3 < r2; ) + t3[e3](); + r2 = h.length; + } + n = false; + } + l.exports = function(e3) { + 1 !== h.push(e3) || n || r(); + }; + }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}); + }, {}], 37: [function(e, t, r) { + "use strict"; + var i = e("immediate"); + function u() { + } + var l = {}, s = ["REJECTED"], a = ["FULFILLED"], n = ["PENDING"]; + function o(e2) { + if ("function" != typeof e2) + throw new TypeError("resolver must be a function"); + this.state = n, this.queue = [], this.outcome = void 0, e2 !== u && d(this, e2); + } + function h(e2, t2, r2) { + this.promise = e2, "function" == typeof t2 && (this.onFulfilled = t2, this.callFulfilled = this.otherCallFulfilled), "function" == typeof r2 && (this.onRejected = r2, this.callRejected = this.otherCallRejected); + } + function f(t2, r2, n2) { + i(function() { + var e2; + try { + e2 = r2(n2); + } catch (e3) { + return l.reject(t2, e3); + } + e2 === t2 ? l.reject(t2, new TypeError("Cannot resolve promise with itself")) : l.resolve(t2, e2); + }); + } + function c(e2) { + var t2 = e2 && e2.then; + if (e2 && ("object" == typeof e2 || "function" == typeof e2) && "function" == typeof t2) + return function() { + t2.apply(e2, arguments); + }; + } + function d(t2, e2) { + var r2 = false; + function n2(e3) { + r2 || (r2 = true, l.reject(t2, e3)); + } + function i2(e3) { + r2 || (r2 = true, l.resolve(t2, e3)); + } + var s2 = p(function() { + e2(i2, n2); + }); + "error" === s2.status && n2(s2.value); + } + function p(e2, t2) { + var r2 = {}; + try { + r2.value = e2(t2), r2.status = "success"; + } catch (e3) { + r2.status = "error", r2.value = e3; + } + return r2; + } + (t.exports = o).prototype.finally = function(t2) { + if ("function" != typeof t2) + return this; + var r2 = this.constructor; + return this.then(function(e2) { + return r2.resolve(t2()).then(function() { + return e2; + }); + }, function(e2) { + return r2.resolve(t2()).then(function() { + throw e2; + }); + }); + }, o.prototype.catch = function(e2) { + return this.then(null, e2); + }, o.prototype.then = function(e2, t2) { + if ("function" != typeof e2 && this.state === a || "function" != typeof t2 && this.state === s) + return this; + var r2 = new this.constructor(u); + this.state !== n ? f(r2, this.state === a ? e2 : t2, this.outcome) : this.queue.push(new h(r2, e2, t2)); + return r2; + }, h.prototype.callFulfilled = function(e2) { + l.resolve(this.promise, e2); + }, h.prototype.otherCallFulfilled = function(e2) { + f(this.promise, this.onFulfilled, e2); + }, h.prototype.callRejected = function(e2) { + l.reject(this.promise, e2); + }, h.prototype.otherCallRejected = function(e2) { + f(this.promise, this.onRejected, e2); + }, l.resolve = function(e2, t2) { + var r2 = p(c, t2); + if ("error" === r2.status) + return l.reject(e2, r2.value); + var n2 = r2.value; + if (n2) + d(e2, n2); + else { + e2.state = a, e2.outcome = t2; + for (var i2 = -1, s2 = e2.queue.length; ++i2 < s2; ) + e2.queue[i2].callFulfilled(t2); + } + return e2; + }, l.reject = function(e2, t2) { + e2.state = s, e2.outcome = t2; + for (var r2 = -1, n2 = e2.queue.length; ++r2 < n2; ) + e2.queue[r2].callRejected(t2); + return e2; + }, o.resolve = function(e2) { + if (e2 instanceof this) + return e2; + return l.resolve(new this(u), e2); + }, o.reject = function(e2) { + var t2 = new this(u); + return l.reject(t2, e2); + }, o.all = function(e2) { + var r2 = this; + if ("[object Array]" !== Object.prototype.toString.call(e2)) + return this.reject(new TypeError("must be an array")); + var n2 = e2.length, i2 = false; + if (!n2) + return this.resolve([]); + var s2 = new Array(n2), a2 = 0, t2 = -1, o2 = new this(u); + for (; ++t2 < n2; ) + h2(e2[t2], t2); + return o2; + function h2(e3, t3) { + r2.resolve(e3).then(function(e4) { + s2[t3] = e4, ++a2 !== n2 || i2 || (i2 = true, l.resolve(o2, s2)); + }, function(e4) { + i2 || (i2 = true, l.reject(o2, e4)); + }); + } + }, o.race = function(e2) { + var t2 = this; + if ("[object Array]" !== Object.prototype.toString.call(e2)) + return this.reject(new TypeError("must be an array")); + var r2 = e2.length, n2 = false; + if (!r2) + return this.resolve([]); + var i2 = -1, s2 = new this(u); + for (; ++i2 < r2; ) + a2 = e2[i2], t2.resolve(a2).then(function(e3) { + n2 || (n2 = true, l.resolve(s2, e3)); + }, function(e3) { + n2 || (n2 = true, l.reject(s2, e3)); + }); + var a2; + return s2; + }; + }, { immediate: 36 }], 38: [function(e, t, r) { + "use strict"; + var n = {}; + (0, e("./lib/utils/common").assign)(n, e("./lib/deflate"), e("./lib/inflate"), e("./lib/zlib/constants")), t.exports = n; + }, { "./lib/deflate": 39, "./lib/inflate": 40, "./lib/utils/common": 41, "./lib/zlib/constants": 44 }], 39: [function(e, t, r) { + "use strict"; + var a = e("./zlib/deflate"), o = e("./utils/common"), h = e("./utils/strings"), i = e("./zlib/messages"), s = e("./zlib/zstream"), u = Object.prototype.toString, l = 0, f = -1, c = 0, d = 8; + function p(e2) { + if (!(this instanceof p)) + return new p(e2); + this.options = o.assign({ level: f, method: d, chunkSize: 16384, windowBits: 15, memLevel: 8, strategy: c, to: "" }, e2 || {}); + var t2 = this.options; + t2.raw && 0 < t2.windowBits ? t2.windowBits = -t2.windowBits : t2.gzip && 0 < t2.windowBits && t2.windowBits < 16 && (t2.windowBits += 16), this.err = 0, this.msg = "", this.ended = false, this.chunks = [], this.strm = new s(), this.strm.avail_out = 0; + var r2 = a.deflateInit2(this.strm, t2.level, t2.method, t2.windowBits, t2.memLevel, t2.strategy); + if (r2 !== l) + throw new Error(i[r2]); + if (t2.header && a.deflateSetHeader(this.strm, t2.header), t2.dictionary) { + var n2; + if (n2 = "string" == typeof t2.dictionary ? h.string2buf(t2.dictionary) : "[object ArrayBuffer]" === u.call(t2.dictionary) ? new Uint8Array(t2.dictionary) : t2.dictionary, (r2 = a.deflateSetDictionary(this.strm, n2)) !== l) + throw new Error(i[r2]); + this._dict_set = true; + } + } + function n(e2, t2) { + var r2 = new p(t2); + if (r2.push(e2, true), r2.err) + throw r2.msg || i[r2.err]; + return r2.result; + } + p.prototype.push = function(e2, t2) { + var r2, n2, i2 = this.strm, s2 = this.options.chunkSize; + if (this.ended) + return false; + n2 = t2 === ~~t2 ? t2 : true === t2 ? 4 : 0, "string" == typeof e2 ? i2.input = h.string2buf(e2) : "[object ArrayBuffer]" === u.call(e2) ? i2.input = new Uint8Array(e2) : i2.input = e2, i2.next_in = 0, i2.avail_in = i2.input.length; + do { + if (0 === i2.avail_out && (i2.output = new o.Buf8(s2), i2.next_out = 0, i2.avail_out = s2), 1 !== (r2 = a.deflate(i2, n2)) && r2 !== l) + return this.onEnd(r2), !(this.ended = true); + 0 !== i2.avail_out && (0 !== i2.avail_in || 4 !== n2 && 2 !== n2) || ("string" === this.options.to ? this.onData(h.buf2binstring(o.shrinkBuf(i2.output, i2.next_out))) : this.onData(o.shrinkBuf(i2.output, i2.next_out))); + } while ((0 < i2.avail_in || 0 === i2.avail_out) && 1 !== r2); + return 4 === n2 ? (r2 = a.deflateEnd(this.strm), this.onEnd(r2), this.ended = true, r2 === l) : 2 !== n2 || (this.onEnd(l), !(i2.avail_out = 0)); + }, p.prototype.onData = function(e2) { + this.chunks.push(e2); + }, p.prototype.onEnd = function(e2) { + e2 === l && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = o.flattenChunks(this.chunks)), this.chunks = [], this.err = e2, this.msg = this.strm.msg; + }, r.Deflate = p, r.deflate = n, r.deflateRaw = function(e2, t2) { + return (t2 = t2 || {}).raw = true, n(e2, t2); + }, r.gzip = function(e2, t2) { + return (t2 = t2 || {}).gzip = true, n(e2, t2); + }; + }, { "./utils/common": 41, "./utils/strings": 42, "./zlib/deflate": 46, "./zlib/messages": 51, "./zlib/zstream": 53 }], 40: [function(e, t, r) { + "use strict"; + var c = e("./zlib/inflate"), d = e("./utils/common"), p = e("./utils/strings"), m = e("./zlib/constants"), n = e("./zlib/messages"), i = e("./zlib/zstream"), s = e("./zlib/gzheader"), _ = Object.prototype.toString; + function a(e2) { + if (!(this instanceof a)) + return new a(e2); + this.options = d.assign({ chunkSize: 16384, windowBits: 0, to: "" }, e2 || {}); + var t2 = this.options; + t2.raw && 0 <= t2.windowBits && t2.windowBits < 16 && (t2.windowBits = -t2.windowBits, 0 === t2.windowBits && (t2.windowBits = -15)), !(0 <= t2.windowBits && t2.windowBits < 16) || e2 && e2.windowBits || (t2.windowBits += 32), 15 < t2.windowBits && t2.windowBits < 48 && 0 == (15 & t2.windowBits) && (t2.windowBits |= 15), this.err = 0, this.msg = "", this.ended = false, this.chunks = [], this.strm = new i(), this.strm.avail_out = 0; + var r2 = c.inflateInit2(this.strm, t2.windowBits); + if (r2 !== m.Z_OK) + throw new Error(n[r2]); + this.header = new s(), c.inflateGetHeader(this.strm, this.header); + } + function o(e2, t2) { + var r2 = new a(t2); + if (r2.push(e2, true), r2.err) + throw r2.msg || n[r2.err]; + return r2.result; + } + a.prototype.push = function(e2, t2) { + var r2, n2, i2, s2, a2, o2, h = this.strm, u = this.options.chunkSize, l = this.options.dictionary, f = false; + if (this.ended) + return false; + n2 = t2 === ~~t2 ? t2 : true === t2 ? m.Z_FINISH : m.Z_NO_FLUSH, "string" == typeof e2 ? h.input = p.binstring2buf(e2) : "[object ArrayBuffer]" === _.call(e2) ? h.input = new Uint8Array(e2) : h.input = e2, h.next_in = 0, h.avail_in = h.input.length; + do { + if (0 === h.avail_out && (h.output = new d.Buf8(u), h.next_out = 0, h.avail_out = u), (r2 = c.inflate(h, m.Z_NO_FLUSH)) === m.Z_NEED_DICT && l && (o2 = "string" == typeof l ? p.string2buf(l) : "[object ArrayBuffer]" === _.call(l) ? new Uint8Array(l) : l, r2 = c.inflateSetDictionary(this.strm, o2)), r2 === m.Z_BUF_ERROR && true === f && (r2 = m.Z_OK, f = false), r2 !== m.Z_STREAM_END && r2 !== m.Z_OK) + return this.onEnd(r2), !(this.ended = true); + h.next_out && (0 !== h.avail_out && r2 !== m.Z_STREAM_END && (0 !== h.avail_in || n2 !== m.Z_FINISH && n2 !== m.Z_SYNC_FLUSH) || ("string" === this.options.to ? (i2 = p.utf8border(h.output, h.next_out), s2 = h.next_out - i2, a2 = p.buf2string(h.output, i2), h.next_out = s2, h.avail_out = u - s2, s2 && d.arraySet(h.output, h.output, i2, s2, 0), this.onData(a2)) : this.onData(d.shrinkBuf(h.output, h.next_out)))), 0 === h.avail_in && 0 === h.avail_out && (f = true); + } while ((0 < h.avail_in || 0 === h.avail_out) && r2 !== m.Z_STREAM_END); + return r2 === m.Z_STREAM_END && (n2 = m.Z_FINISH), n2 === m.Z_FINISH ? (r2 = c.inflateEnd(this.strm), this.onEnd(r2), this.ended = true, r2 === m.Z_OK) : n2 !== m.Z_SYNC_FLUSH || (this.onEnd(m.Z_OK), !(h.avail_out = 0)); + }, a.prototype.onData = function(e2) { + this.chunks.push(e2); + }, a.prototype.onEnd = function(e2) { + e2 === m.Z_OK && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = d.flattenChunks(this.chunks)), this.chunks = [], this.err = e2, this.msg = this.strm.msg; + }, r.Inflate = a, r.inflate = o, r.inflateRaw = function(e2, t2) { + return (t2 = t2 || {}).raw = true, o(e2, t2); + }, r.ungzip = o; + }, { "./utils/common": 41, "./utils/strings": 42, "./zlib/constants": 44, "./zlib/gzheader": 47, "./zlib/inflate": 49, "./zlib/messages": 51, "./zlib/zstream": 53 }], 41: [function(e, t, r) { + "use strict"; + var n = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Int32Array; + r.assign = function(e2) { + for (var t2 = Array.prototype.slice.call(arguments, 1); t2.length; ) { + var r2 = t2.shift(); + if (r2) { + if ("object" != typeof r2) + throw new TypeError(r2 + "must be non-object"); + for (var n2 in r2) + r2.hasOwnProperty(n2) && (e2[n2] = r2[n2]); + } + } + return e2; + }, r.shrinkBuf = function(e2, t2) { + return e2.length === t2 ? e2 : e2.subarray ? e2.subarray(0, t2) : (e2.length = t2, e2); + }; + var i = { arraySet: function(e2, t2, r2, n2, i2) { + if (t2.subarray && e2.subarray) + e2.set(t2.subarray(r2, r2 + n2), i2); + else + for (var s2 = 0; s2 < n2; s2++) + e2[i2 + s2] = t2[r2 + s2]; + }, flattenChunks: function(e2) { + var t2, r2, n2, i2, s2, a; + for (t2 = n2 = 0, r2 = e2.length; t2 < r2; t2++) + n2 += e2[t2].length; + for (a = new Uint8Array(n2), t2 = i2 = 0, r2 = e2.length; t2 < r2; t2++) + s2 = e2[t2], a.set(s2, i2), i2 += s2.length; + return a; + } }, s = { arraySet: function(e2, t2, r2, n2, i2) { + for (var s2 = 0; s2 < n2; s2++) + e2[i2 + s2] = t2[r2 + s2]; + }, flattenChunks: function(e2) { + return [].concat.apply([], e2); + } }; + r.setTyped = function(e2) { + e2 ? (r.Buf8 = Uint8Array, r.Buf16 = Uint16Array, r.Buf32 = Int32Array, r.assign(r, i)) : (r.Buf8 = Array, r.Buf16 = Array, r.Buf32 = Array, r.assign(r, s)); + }, r.setTyped(n); + }, {}], 42: [function(e, t, r) { + "use strict"; + var h = e("./common"), i = true, s = true; + try { + String.fromCharCode.apply(null, [0]); + } catch (e2) { + i = false; + } + try { + String.fromCharCode.apply(null, new Uint8Array(1)); + } catch (e2) { + s = false; + } + for (var u = new h.Buf8(256), n = 0; n < 256; n++) + u[n] = 252 <= n ? 6 : 248 <= n ? 5 : 240 <= n ? 4 : 224 <= n ? 3 : 192 <= n ? 2 : 1; + function l(e2, t2) { + if (t2 < 65537 && (e2.subarray && s || !e2.subarray && i)) + return String.fromCharCode.apply(null, h.shrinkBuf(e2, t2)); + for (var r2 = "", n2 = 0; n2 < t2; n2++) + r2 += String.fromCharCode(e2[n2]); + return r2; + } + u[254] = u[254] = 1, r.string2buf = function(e2) { + var t2, r2, n2, i2, s2, a = e2.length, o = 0; + for (i2 = 0; i2 < a; i2++) + 55296 == (64512 & (r2 = e2.charCodeAt(i2))) && i2 + 1 < a && 56320 == (64512 & (n2 = e2.charCodeAt(i2 + 1))) && (r2 = 65536 + (r2 - 55296 << 10) + (n2 - 56320), i2++), o += r2 < 128 ? 1 : r2 < 2048 ? 2 : r2 < 65536 ? 3 : 4; + for (t2 = new h.Buf8(o), i2 = s2 = 0; s2 < o; i2++) + 55296 == (64512 & (r2 = e2.charCodeAt(i2))) && i2 + 1 < a && 56320 == (64512 & (n2 = e2.charCodeAt(i2 + 1))) && (r2 = 65536 + (r2 - 55296 << 10) + (n2 - 56320), i2++), r2 < 128 ? t2[s2++] = r2 : (r2 < 2048 ? t2[s2++] = 192 | r2 >>> 6 : (r2 < 65536 ? t2[s2++] = 224 | r2 >>> 12 : (t2[s2++] = 240 | r2 >>> 18, t2[s2++] = 128 | r2 >>> 12 & 63), t2[s2++] = 128 | r2 >>> 6 & 63), t2[s2++] = 128 | 63 & r2); + return t2; + }, r.buf2binstring = function(e2) { + return l(e2, e2.length); + }, r.binstring2buf = function(e2) { + for (var t2 = new h.Buf8(e2.length), r2 = 0, n2 = t2.length; r2 < n2; r2++) + t2[r2] = e2.charCodeAt(r2); + return t2; + }, r.buf2string = function(e2, t2) { + var r2, n2, i2, s2, a = t2 || e2.length, o = new Array(2 * a); + for (r2 = n2 = 0; r2 < a; ) + if ((i2 = e2[r2++]) < 128) + o[n2++] = i2; + else if (4 < (s2 = u[i2])) + o[n2++] = 65533, r2 += s2 - 1; + else { + for (i2 &= 2 === s2 ? 31 : 3 === s2 ? 15 : 7; 1 < s2 && r2 < a; ) + i2 = i2 << 6 | 63 & e2[r2++], s2--; + 1 < s2 ? o[n2++] = 65533 : i2 < 65536 ? o[n2++] = i2 : (i2 -= 65536, o[n2++] = 55296 | i2 >> 10 & 1023, o[n2++] = 56320 | 1023 & i2); + } + return l(o, n2); + }, r.utf8border = function(e2, t2) { + var r2; + for ((t2 = t2 || e2.length) > e2.length && (t2 = e2.length), r2 = t2 - 1; 0 <= r2 && 128 == (192 & e2[r2]); ) + r2--; + return r2 < 0 ? t2 : 0 === r2 ? t2 : r2 + u[e2[r2]] > t2 ? r2 : t2; + }; + }, { "./common": 41 }], 43: [function(e, t, r) { + "use strict"; + t.exports = function(e2, t2, r2, n) { + for (var i = 65535 & e2 | 0, s = e2 >>> 16 & 65535 | 0, a = 0; 0 !== r2; ) { + for (r2 -= a = 2e3 < r2 ? 2e3 : r2; s = s + (i = i + t2[n++] | 0) | 0, --a; ) + ; + i %= 65521, s %= 65521; + } + return i | s << 16 | 0; + }; + }, {}], 44: [function(e, t, r) { + "use strict"; + t.exports = { Z_NO_FLUSH: 0, Z_PARTIAL_FLUSH: 1, Z_SYNC_FLUSH: 2, Z_FULL_FLUSH: 3, Z_FINISH: 4, Z_BLOCK: 5, Z_TREES: 6, Z_OK: 0, Z_STREAM_END: 1, Z_NEED_DICT: 2, Z_ERRNO: -1, Z_STREAM_ERROR: -2, Z_DATA_ERROR: -3, Z_BUF_ERROR: -5, Z_NO_COMPRESSION: 0, Z_BEST_SPEED: 1, Z_BEST_COMPRESSION: 9, Z_DEFAULT_COMPRESSION: -1, Z_FILTERED: 1, Z_HUFFMAN_ONLY: 2, Z_RLE: 3, Z_FIXED: 4, Z_DEFAULT_STRATEGY: 0, Z_BINARY: 0, Z_TEXT: 1, Z_UNKNOWN: 2, Z_DEFLATED: 8 }; + }, {}], 45: [function(e, t, r) { + "use strict"; + var o = function() { + for (var e2, t2 = [], r2 = 0; r2 < 256; r2++) { + e2 = r2; + for (var n = 0; n < 8; n++) + e2 = 1 & e2 ? 3988292384 ^ e2 >>> 1 : e2 >>> 1; + t2[r2] = e2; + } + return t2; + }(); + t.exports = function(e2, t2, r2, n) { + var i = o, s = n + r2; + e2 ^= -1; + for (var a = n; a < s; a++) + e2 = e2 >>> 8 ^ i[255 & (e2 ^ t2[a])]; + return -1 ^ e2; + }; + }, {}], 46: [function(e, t, r) { + "use strict"; + var h, c = e("../utils/common"), u = e("./trees"), d = e("./adler32"), p = e("./crc32"), n = e("./messages"), l = 0, f = 4, m = 0, _ = -2, g = -1, b = 4, i = 2, v = 8, y = 9, s = 286, a = 30, o = 19, w = 2 * s + 1, k = 15, x = 3, S = 258, z = S + x + 1, C = 42, E = 113, A = 1, I = 2, O = 3, B = 4; + function R(e2, t2) { + return e2.msg = n[t2], t2; + } + function T(e2) { + return (e2 << 1) - (4 < e2 ? 9 : 0); + } + function D(e2) { + for (var t2 = e2.length; 0 <= --t2; ) + e2[t2] = 0; + } + function F(e2) { + var t2 = e2.state, r2 = t2.pending; + r2 > e2.avail_out && (r2 = e2.avail_out), 0 !== r2 && (c.arraySet(e2.output, t2.pending_buf, t2.pending_out, r2, e2.next_out), e2.next_out += r2, t2.pending_out += r2, e2.total_out += r2, e2.avail_out -= r2, t2.pending -= r2, 0 === t2.pending && (t2.pending_out = 0)); + } + function N(e2, t2) { + u._tr_flush_block(e2, 0 <= e2.block_start ? e2.block_start : -1, e2.strstart - e2.block_start, t2), e2.block_start = e2.strstart, F(e2.strm); + } + function U(e2, t2) { + e2.pending_buf[e2.pending++] = t2; + } + function P(e2, t2) { + e2.pending_buf[e2.pending++] = t2 >>> 8 & 255, e2.pending_buf[e2.pending++] = 255 & t2; + } + function L(e2, t2) { + var r2, n2, i2 = e2.max_chain_length, s2 = e2.strstart, a2 = e2.prev_length, o2 = e2.nice_match, h2 = e2.strstart > e2.w_size - z ? e2.strstart - (e2.w_size - z) : 0, u2 = e2.window, l2 = e2.w_mask, f2 = e2.prev, c2 = e2.strstart + S, d2 = u2[s2 + a2 - 1], p2 = u2[s2 + a2]; + e2.prev_length >= e2.good_match && (i2 >>= 2), o2 > e2.lookahead && (o2 = e2.lookahead); + do { + if (u2[(r2 = t2) + a2] === p2 && u2[r2 + a2 - 1] === d2 && u2[r2] === u2[s2] && u2[++r2] === u2[s2 + 1]) { + s2 += 2, r2++; + do { + } while (u2[++s2] === u2[++r2] && u2[++s2] === u2[++r2] && u2[++s2] === u2[++r2] && u2[++s2] === u2[++r2] && u2[++s2] === u2[++r2] && u2[++s2] === u2[++r2] && u2[++s2] === u2[++r2] && u2[++s2] === u2[++r2] && s2 < c2); + if (n2 = S - (c2 - s2), s2 = c2 - S, a2 < n2) { + if (e2.match_start = t2, o2 <= (a2 = n2)) + break; + d2 = u2[s2 + a2 - 1], p2 = u2[s2 + a2]; + } + } + } while ((t2 = f2[t2 & l2]) > h2 && 0 != --i2); + return a2 <= e2.lookahead ? a2 : e2.lookahead; + } + function j(e2) { + var t2, r2, n2, i2, s2, a2, o2, h2, u2, l2, f2 = e2.w_size; + do { + if (i2 = e2.window_size - e2.lookahead - e2.strstart, e2.strstart >= f2 + (f2 - z)) { + for (c.arraySet(e2.window, e2.window, f2, f2, 0), e2.match_start -= f2, e2.strstart -= f2, e2.block_start -= f2, t2 = r2 = e2.hash_size; n2 = e2.head[--t2], e2.head[t2] = f2 <= n2 ? n2 - f2 : 0, --r2; ) + ; + for (t2 = r2 = f2; n2 = e2.prev[--t2], e2.prev[t2] = f2 <= n2 ? n2 - f2 : 0, --r2; ) + ; + i2 += f2; + } + if (0 === e2.strm.avail_in) + break; + if (a2 = e2.strm, o2 = e2.window, h2 = e2.strstart + e2.lookahead, u2 = i2, l2 = void 0, l2 = a2.avail_in, u2 < l2 && (l2 = u2), r2 = 0 === l2 ? 0 : (a2.avail_in -= l2, c.arraySet(o2, a2.input, a2.next_in, l2, h2), 1 === a2.state.wrap ? a2.adler = d(a2.adler, o2, l2, h2) : 2 === a2.state.wrap && (a2.adler = p(a2.adler, o2, l2, h2)), a2.next_in += l2, a2.total_in += l2, l2), e2.lookahead += r2, e2.lookahead + e2.insert >= x) + for (s2 = e2.strstart - e2.insert, e2.ins_h = e2.window[s2], e2.ins_h = (e2.ins_h << e2.hash_shift ^ e2.window[s2 + 1]) & e2.hash_mask; e2.insert && (e2.ins_h = (e2.ins_h << e2.hash_shift ^ e2.window[s2 + x - 1]) & e2.hash_mask, e2.prev[s2 & e2.w_mask] = e2.head[e2.ins_h], e2.head[e2.ins_h] = s2, s2++, e2.insert--, !(e2.lookahead + e2.insert < x)); ) + ; + } while (e2.lookahead < z && 0 !== e2.strm.avail_in); + } + function Z(e2, t2) { + for (var r2, n2; ; ) { + if (e2.lookahead < z) { + if (j(e2), e2.lookahead < z && t2 === l) + return A; + if (0 === e2.lookahead) + break; + } + if (r2 = 0, e2.lookahead >= x && (e2.ins_h = (e2.ins_h << e2.hash_shift ^ e2.window[e2.strstart + x - 1]) & e2.hash_mask, r2 = e2.prev[e2.strstart & e2.w_mask] = e2.head[e2.ins_h], e2.head[e2.ins_h] = e2.strstart), 0 !== r2 && e2.strstart - r2 <= e2.w_size - z && (e2.match_length = L(e2, r2)), e2.match_length >= x) + if (n2 = u._tr_tally(e2, e2.strstart - e2.match_start, e2.match_length - x), e2.lookahead -= e2.match_length, e2.match_length <= e2.max_lazy_match && e2.lookahead >= x) { + for (e2.match_length--; e2.strstart++, e2.ins_h = (e2.ins_h << e2.hash_shift ^ e2.window[e2.strstart + x - 1]) & e2.hash_mask, r2 = e2.prev[e2.strstart & e2.w_mask] = e2.head[e2.ins_h], e2.head[e2.ins_h] = e2.strstart, 0 != --e2.match_length; ) + ; + e2.strstart++; + } else + e2.strstart += e2.match_length, e2.match_length = 0, e2.ins_h = e2.window[e2.strstart], e2.ins_h = (e2.ins_h << e2.hash_shift ^ e2.window[e2.strstart + 1]) & e2.hash_mask; + else + n2 = u._tr_tally(e2, 0, e2.window[e2.strstart]), e2.lookahead--, e2.strstart++; + if (n2 && (N(e2, false), 0 === e2.strm.avail_out)) + return A; + } + return e2.insert = e2.strstart < x - 1 ? e2.strstart : x - 1, t2 === f ? (N(e2, true), 0 === e2.strm.avail_out ? O : B) : e2.last_lit && (N(e2, false), 0 === e2.strm.avail_out) ? A : I; + } + function W(e2, t2) { + for (var r2, n2, i2; ; ) { + if (e2.lookahead < z) { + if (j(e2), e2.lookahead < z && t2 === l) + return A; + if (0 === e2.lookahead) + break; + } + if (r2 = 0, e2.lookahead >= x && (e2.ins_h = (e2.ins_h << e2.hash_shift ^ e2.window[e2.strstart + x - 1]) & e2.hash_mask, r2 = e2.prev[e2.strstart & e2.w_mask] = e2.head[e2.ins_h], e2.head[e2.ins_h] = e2.strstart), e2.prev_length = e2.match_length, e2.prev_match = e2.match_start, e2.match_length = x - 1, 0 !== r2 && e2.prev_length < e2.max_lazy_match && e2.strstart - r2 <= e2.w_size - z && (e2.match_length = L(e2, r2), e2.match_length <= 5 && (1 === e2.strategy || e2.match_length === x && 4096 < e2.strstart - e2.match_start) && (e2.match_length = x - 1)), e2.prev_length >= x && e2.match_length <= e2.prev_length) { + for (i2 = e2.strstart + e2.lookahead - x, n2 = u._tr_tally(e2, e2.strstart - 1 - e2.prev_match, e2.prev_length - x), e2.lookahead -= e2.prev_length - 1, e2.prev_length -= 2; ++e2.strstart <= i2 && (e2.ins_h = (e2.ins_h << e2.hash_shift ^ e2.window[e2.strstart + x - 1]) & e2.hash_mask, r2 = e2.prev[e2.strstart & e2.w_mask] = e2.head[e2.ins_h], e2.head[e2.ins_h] = e2.strstart), 0 != --e2.prev_length; ) + ; + if (e2.match_available = 0, e2.match_length = x - 1, e2.strstart++, n2 && (N(e2, false), 0 === e2.strm.avail_out)) + return A; + } else if (e2.match_available) { + if ((n2 = u._tr_tally(e2, 0, e2.window[e2.strstart - 1])) && N(e2, false), e2.strstart++, e2.lookahead--, 0 === e2.strm.avail_out) + return A; + } else + e2.match_available = 1, e2.strstart++, e2.lookahead--; + } + return e2.match_available && (n2 = u._tr_tally(e2, 0, e2.window[e2.strstart - 1]), e2.match_available = 0), e2.insert = e2.strstart < x - 1 ? e2.strstart : x - 1, t2 === f ? (N(e2, true), 0 === e2.strm.avail_out ? O : B) : e2.last_lit && (N(e2, false), 0 === e2.strm.avail_out) ? A : I; + } + function M(e2, t2, r2, n2, i2) { + this.good_length = e2, this.max_lazy = t2, this.nice_length = r2, this.max_chain = n2, this.func = i2; + } + function H() { + this.strm = null, this.status = 0, this.pending_buf = null, this.pending_buf_size = 0, this.pending_out = 0, this.pending = 0, this.wrap = 0, this.gzhead = null, this.gzindex = 0, this.method = v, this.last_flush = -1, this.w_size = 0, this.w_bits = 0, this.w_mask = 0, this.window = null, this.window_size = 0, this.prev = null, this.head = null, this.ins_h = 0, this.hash_size = 0, this.hash_bits = 0, this.hash_mask = 0, this.hash_shift = 0, this.block_start = 0, this.match_length = 0, this.prev_match = 0, this.match_available = 0, this.strstart = 0, this.match_start = 0, this.lookahead = 0, this.prev_length = 0, this.max_chain_length = 0, this.max_lazy_match = 0, this.level = 0, this.strategy = 0, this.good_match = 0, this.nice_match = 0, this.dyn_ltree = new c.Buf16(2 * w), this.dyn_dtree = new c.Buf16(2 * (2 * a + 1)), this.bl_tree = new c.Buf16(2 * (2 * o + 1)), D(this.dyn_ltree), D(this.dyn_dtree), D(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new c.Buf16(k + 1), this.heap = new c.Buf16(2 * s + 1), D(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new c.Buf16(2 * s + 1), D(this.depth), this.l_buf = 0, this.lit_bufsize = 0, this.last_lit = 0, this.d_buf = 0, this.opt_len = 0, this.static_len = 0, this.matches = 0, this.insert = 0, this.bi_buf = 0, this.bi_valid = 0; + } + function G(e2) { + var t2; + return e2 && e2.state ? (e2.total_in = e2.total_out = 0, e2.data_type = i, (t2 = e2.state).pending = 0, t2.pending_out = 0, t2.wrap < 0 && (t2.wrap = -t2.wrap), t2.status = t2.wrap ? C : E, e2.adler = 2 === t2.wrap ? 0 : 1, t2.last_flush = l, u._tr_init(t2), m) : R(e2, _); + } + function K(e2) { + var t2 = G(e2); + return t2 === m && function(e3) { + e3.window_size = 2 * e3.w_size, D(e3.head), e3.max_lazy_match = h[e3.level].max_lazy, e3.good_match = h[e3.level].good_length, e3.nice_match = h[e3.level].nice_length, e3.max_chain_length = h[e3.level].max_chain, e3.strstart = 0, e3.block_start = 0, e3.lookahead = 0, e3.insert = 0, e3.match_length = e3.prev_length = x - 1, e3.match_available = 0, e3.ins_h = 0; + }(e2.state), t2; + } + function Y(e2, t2, r2, n2, i2, s2) { + if (!e2) + return _; + var a2 = 1; + if (t2 === g && (t2 = 6), n2 < 0 ? (a2 = 0, n2 = -n2) : 15 < n2 && (a2 = 2, n2 -= 16), i2 < 1 || y < i2 || r2 !== v || n2 < 8 || 15 < n2 || t2 < 0 || 9 < t2 || s2 < 0 || b < s2) + return R(e2, _); + 8 === n2 && (n2 = 9); + var o2 = new H(); + return (e2.state = o2).strm = e2, o2.wrap = a2, o2.gzhead = null, o2.w_bits = n2, o2.w_size = 1 << o2.w_bits, o2.w_mask = o2.w_size - 1, o2.hash_bits = i2 + 7, o2.hash_size = 1 << o2.hash_bits, o2.hash_mask = o2.hash_size - 1, o2.hash_shift = ~~((o2.hash_bits + x - 1) / x), o2.window = new c.Buf8(2 * o2.w_size), o2.head = new c.Buf16(o2.hash_size), o2.prev = new c.Buf16(o2.w_size), o2.lit_bufsize = 1 << i2 + 6, o2.pending_buf_size = 4 * o2.lit_bufsize, o2.pending_buf = new c.Buf8(o2.pending_buf_size), o2.d_buf = 1 * o2.lit_bufsize, o2.l_buf = 3 * o2.lit_bufsize, o2.level = t2, o2.strategy = s2, o2.method = r2, K(e2); + } + h = [new M(0, 0, 0, 0, function(e2, t2) { + var r2 = 65535; + for (r2 > e2.pending_buf_size - 5 && (r2 = e2.pending_buf_size - 5); ; ) { + if (e2.lookahead <= 1) { + if (j(e2), 0 === e2.lookahead && t2 === l) + return A; + if (0 === e2.lookahead) + break; + } + e2.strstart += e2.lookahead, e2.lookahead = 0; + var n2 = e2.block_start + r2; + if ((0 === e2.strstart || e2.strstart >= n2) && (e2.lookahead = e2.strstart - n2, e2.strstart = n2, N(e2, false), 0 === e2.strm.avail_out)) + return A; + if (e2.strstart - e2.block_start >= e2.w_size - z && (N(e2, false), 0 === e2.strm.avail_out)) + return A; + } + return e2.insert = 0, t2 === f ? (N(e2, true), 0 === e2.strm.avail_out ? O : B) : (e2.strstart > e2.block_start && (N(e2, false), e2.strm.avail_out), A); + }), new M(4, 4, 8, 4, Z), new M(4, 5, 16, 8, Z), new M(4, 6, 32, 32, Z), new M(4, 4, 16, 16, W), new M(8, 16, 32, 32, W), new M(8, 16, 128, 128, W), new M(8, 32, 128, 256, W), new M(32, 128, 258, 1024, W), new M(32, 258, 258, 4096, W)], r.deflateInit = function(e2, t2) { + return Y(e2, t2, v, 15, 8, 0); + }, r.deflateInit2 = Y, r.deflateReset = K, r.deflateResetKeep = G, r.deflateSetHeader = function(e2, t2) { + return e2 && e2.state ? 2 !== e2.state.wrap ? _ : (e2.state.gzhead = t2, m) : _; + }, r.deflate = function(e2, t2) { + var r2, n2, i2, s2; + if (!e2 || !e2.state || 5 < t2 || t2 < 0) + return e2 ? R(e2, _) : _; + if (n2 = e2.state, !e2.output || !e2.input && 0 !== e2.avail_in || 666 === n2.status && t2 !== f) + return R(e2, 0 === e2.avail_out ? -5 : _); + if (n2.strm = e2, r2 = n2.last_flush, n2.last_flush = t2, n2.status === C) + if (2 === n2.wrap) + e2.adler = 0, U(n2, 31), U(n2, 139), U(n2, 8), n2.gzhead ? (U(n2, (n2.gzhead.text ? 1 : 0) + (n2.gzhead.hcrc ? 2 : 0) + (n2.gzhead.extra ? 4 : 0) + (n2.gzhead.name ? 8 : 0) + (n2.gzhead.comment ? 16 : 0)), U(n2, 255 & n2.gzhead.time), U(n2, n2.gzhead.time >> 8 & 255), U(n2, n2.gzhead.time >> 16 & 255), U(n2, n2.gzhead.time >> 24 & 255), U(n2, 9 === n2.level ? 2 : 2 <= n2.strategy || n2.level < 2 ? 4 : 0), U(n2, 255 & n2.gzhead.os), n2.gzhead.extra && n2.gzhead.extra.length && (U(n2, 255 & n2.gzhead.extra.length), U(n2, n2.gzhead.extra.length >> 8 & 255)), n2.gzhead.hcrc && (e2.adler = p(e2.adler, n2.pending_buf, n2.pending, 0)), n2.gzindex = 0, n2.status = 69) : (U(n2, 0), U(n2, 0), U(n2, 0), U(n2, 0), U(n2, 0), U(n2, 9 === n2.level ? 2 : 2 <= n2.strategy || n2.level < 2 ? 4 : 0), U(n2, 3), n2.status = E); + else { + var a2 = v + (n2.w_bits - 8 << 4) << 8; + a2 |= (2 <= n2.strategy || n2.level < 2 ? 0 : n2.level < 6 ? 1 : 6 === n2.level ? 2 : 3) << 6, 0 !== n2.strstart && (a2 |= 32), a2 += 31 - a2 % 31, n2.status = E, P(n2, a2), 0 !== n2.strstart && (P(n2, e2.adler >>> 16), P(n2, 65535 & e2.adler)), e2.adler = 1; + } + if (69 === n2.status) + if (n2.gzhead.extra) { + for (i2 = n2.pending; n2.gzindex < (65535 & n2.gzhead.extra.length) && (n2.pending !== n2.pending_buf_size || (n2.gzhead.hcrc && n2.pending > i2 && (e2.adler = p(e2.adler, n2.pending_buf, n2.pending - i2, i2)), F(e2), i2 = n2.pending, n2.pending !== n2.pending_buf_size)); ) + U(n2, 255 & n2.gzhead.extra[n2.gzindex]), n2.gzindex++; + n2.gzhead.hcrc && n2.pending > i2 && (e2.adler = p(e2.adler, n2.pending_buf, n2.pending - i2, i2)), n2.gzindex === n2.gzhead.extra.length && (n2.gzindex = 0, n2.status = 73); + } else + n2.status = 73; + if (73 === n2.status) + if (n2.gzhead.name) { + i2 = n2.pending; + do { + if (n2.pending === n2.pending_buf_size && (n2.gzhead.hcrc && n2.pending > i2 && (e2.adler = p(e2.adler, n2.pending_buf, n2.pending - i2, i2)), F(e2), i2 = n2.pending, n2.pending === n2.pending_buf_size)) { + s2 = 1; + break; + } + s2 = n2.gzindex < n2.gzhead.name.length ? 255 & n2.gzhead.name.charCodeAt(n2.gzindex++) : 0, U(n2, s2); + } while (0 !== s2); + n2.gzhead.hcrc && n2.pending > i2 && (e2.adler = p(e2.adler, n2.pending_buf, n2.pending - i2, i2)), 0 === s2 && (n2.gzindex = 0, n2.status = 91); + } else + n2.status = 91; + if (91 === n2.status) + if (n2.gzhead.comment) { + i2 = n2.pending; + do { + if (n2.pending === n2.pending_buf_size && (n2.gzhead.hcrc && n2.pending > i2 && (e2.adler = p(e2.adler, n2.pending_buf, n2.pending - i2, i2)), F(e2), i2 = n2.pending, n2.pending === n2.pending_buf_size)) { + s2 = 1; + break; + } + s2 = n2.gzindex < n2.gzhead.comment.length ? 255 & n2.gzhead.comment.charCodeAt(n2.gzindex++) : 0, U(n2, s2); + } while (0 !== s2); + n2.gzhead.hcrc && n2.pending > i2 && (e2.adler = p(e2.adler, n2.pending_buf, n2.pending - i2, i2)), 0 === s2 && (n2.status = 103); + } else + n2.status = 103; + if (103 === n2.status && (n2.gzhead.hcrc ? (n2.pending + 2 > n2.pending_buf_size && F(e2), n2.pending + 2 <= n2.pending_buf_size && (U(n2, 255 & e2.adler), U(n2, e2.adler >> 8 & 255), e2.adler = 0, n2.status = E)) : n2.status = E), 0 !== n2.pending) { + if (F(e2), 0 === e2.avail_out) + return n2.last_flush = -1, m; + } else if (0 === e2.avail_in && T(t2) <= T(r2) && t2 !== f) + return R(e2, -5); + if (666 === n2.status && 0 !== e2.avail_in) + return R(e2, -5); + if (0 !== e2.avail_in || 0 !== n2.lookahead || t2 !== l && 666 !== n2.status) { + var o2 = 2 === n2.strategy ? function(e3, t3) { + for (var r3; ; ) { + if (0 === e3.lookahead && (j(e3), 0 === e3.lookahead)) { + if (t3 === l) + return A; + break; + } + if (e3.match_length = 0, r3 = u._tr_tally(e3, 0, e3.window[e3.strstart]), e3.lookahead--, e3.strstart++, r3 && (N(e3, false), 0 === e3.strm.avail_out)) + return A; + } + return e3.insert = 0, t3 === f ? (N(e3, true), 0 === e3.strm.avail_out ? O : B) : e3.last_lit && (N(e3, false), 0 === e3.strm.avail_out) ? A : I; + }(n2, t2) : 3 === n2.strategy ? function(e3, t3) { + for (var r3, n3, i3, s3, a3 = e3.window; ; ) { + if (e3.lookahead <= S) { + if (j(e3), e3.lookahead <= S && t3 === l) + return A; + if (0 === e3.lookahead) + break; + } + if (e3.match_length = 0, e3.lookahead >= x && 0 < e3.strstart && (n3 = a3[i3 = e3.strstart - 1]) === a3[++i3] && n3 === a3[++i3] && n3 === a3[++i3]) { + s3 = e3.strstart + S; + do { + } while (n3 === a3[++i3] && n3 === a3[++i3] && n3 === a3[++i3] && n3 === a3[++i3] && n3 === a3[++i3] && n3 === a3[++i3] && n3 === a3[++i3] && n3 === a3[++i3] && i3 < s3); + e3.match_length = S - (s3 - i3), e3.match_length > e3.lookahead && (e3.match_length = e3.lookahead); + } + if (e3.match_length >= x ? (r3 = u._tr_tally(e3, 1, e3.match_length - x), e3.lookahead -= e3.match_length, e3.strstart += e3.match_length, e3.match_length = 0) : (r3 = u._tr_tally(e3, 0, e3.window[e3.strstart]), e3.lookahead--, e3.strstart++), r3 && (N(e3, false), 0 === e3.strm.avail_out)) + return A; + } + return e3.insert = 0, t3 === f ? (N(e3, true), 0 === e3.strm.avail_out ? O : B) : e3.last_lit && (N(e3, false), 0 === e3.strm.avail_out) ? A : I; + }(n2, t2) : h[n2.level].func(n2, t2); + if (o2 !== O && o2 !== B || (n2.status = 666), o2 === A || o2 === O) + return 0 === e2.avail_out && (n2.last_flush = -1), m; + if (o2 === I && (1 === t2 ? u._tr_align(n2) : 5 !== t2 && (u._tr_stored_block(n2, 0, 0, false), 3 === t2 && (D(n2.head), 0 === n2.lookahead && (n2.strstart = 0, n2.block_start = 0, n2.insert = 0))), F(e2), 0 === e2.avail_out)) + return n2.last_flush = -1, m; + } + return t2 !== f ? m : n2.wrap <= 0 ? 1 : (2 === n2.wrap ? (U(n2, 255 & e2.adler), U(n2, e2.adler >> 8 & 255), U(n2, e2.adler >> 16 & 255), U(n2, e2.adler >> 24 & 255), U(n2, 255 & e2.total_in), U(n2, e2.total_in >> 8 & 255), U(n2, e2.total_in >> 16 & 255), U(n2, e2.total_in >> 24 & 255)) : (P(n2, e2.adler >>> 16), P(n2, 65535 & e2.adler)), F(e2), 0 < n2.wrap && (n2.wrap = -n2.wrap), 0 !== n2.pending ? m : 1); + }, r.deflateEnd = function(e2) { + var t2; + return e2 && e2.state ? (t2 = e2.state.status) !== C && 69 !== t2 && 73 !== t2 && 91 !== t2 && 103 !== t2 && t2 !== E && 666 !== t2 ? R(e2, _) : (e2.state = null, t2 === E ? R(e2, -3) : m) : _; + }, r.deflateSetDictionary = function(e2, t2) { + var r2, n2, i2, s2, a2, o2, h2, u2, l2 = t2.length; + if (!e2 || !e2.state) + return _; + if (2 === (s2 = (r2 = e2.state).wrap) || 1 === s2 && r2.status !== C || r2.lookahead) + return _; + for (1 === s2 && (e2.adler = d(e2.adler, t2, l2, 0)), r2.wrap = 0, l2 >= r2.w_size && (0 === s2 && (D(r2.head), r2.strstart = 0, r2.block_start = 0, r2.insert = 0), u2 = new c.Buf8(r2.w_size), c.arraySet(u2, t2, l2 - r2.w_size, r2.w_size, 0), t2 = u2, l2 = r2.w_size), a2 = e2.avail_in, o2 = e2.next_in, h2 = e2.input, e2.avail_in = l2, e2.next_in = 0, e2.input = t2, j(r2); r2.lookahead >= x; ) { + for (n2 = r2.strstart, i2 = r2.lookahead - (x - 1); r2.ins_h = (r2.ins_h << r2.hash_shift ^ r2.window[n2 + x - 1]) & r2.hash_mask, r2.prev[n2 & r2.w_mask] = r2.head[r2.ins_h], r2.head[r2.ins_h] = n2, n2++, --i2; ) + ; + r2.strstart = n2, r2.lookahead = x - 1, j(r2); + } + return r2.strstart += r2.lookahead, r2.block_start = r2.strstart, r2.insert = r2.lookahead, r2.lookahead = 0, r2.match_length = r2.prev_length = x - 1, r2.match_available = 0, e2.next_in = o2, e2.input = h2, e2.avail_in = a2, r2.wrap = s2, m; + }, r.deflateInfo = "pako deflate (from Nodeca project)"; + }, { "../utils/common": 41, "./adler32": 43, "./crc32": 45, "./messages": 51, "./trees": 52 }], 47: [function(e, t, r) { + "use strict"; + t.exports = function() { + this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = false; + }; + }, {}], 48: [function(e, t, r) { + "use strict"; + t.exports = function(e2, t2) { + var r2, n, i, s, a, o, h, u, l, f, c, d, p, m, _, g, b, v, y, w, k, x, S, z, C; + r2 = e2.state, n = e2.next_in, z = e2.input, i = n + (e2.avail_in - 5), s = e2.next_out, C = e2.output, a = s - (t2 - e2.avail_out), o = s + (e2.avail_out - 257), h = r2.dmax, u = r2.wsize, l = r2.whave, f = r2.wnext, c = r2.window, d = r2.hold, p = r2.bits, m = r2.lencode, _ = r2.distcode, g = (1 << r2.lenbits) - 1, b = (1 << r2.distbits) - 1; + e: + do { + p < 15 && (d += z[n++] << p, p += 8, d += z[n++] << p, p += 8), v = m[d & g]; + t: + for (; ; ) { + if (d >>>= y = v >>> 24, p -= y, 0 === (y = v >>> 16 & 255)) + C[s++] = 65535 & v; + else { + if (!(16 & y)) { + if (0 == (64 & y)) { + v = m[(65535 & v) + (d & (1 << y) - 1)]; + continue t; + } + if (32 & y) { + r2.mode = 12; + break e; + } + e2.msg = "invalid literal/length code", r2.mode = 30; + break e; + } + w = 65535 & v, (y &= 15) && (p < y && (d += z[n++] << p, p += 8), w += d & (1 << y) - 1, d >>>= y, p -= y), p < 15 && (d += z[n++] << p, p += 8, d += z[n++] << p, p += 8), v = _[d & b]; + r: + for (; ; ) { + if (d >>>= y = v >>> 24, p -= y, !(16 & (y = v >>> 16 & 255))) { + if (0 == (64 & y)) { + v = _[(65535 & v) + (d & (1 << y) - 1)]; + continue r; + } + e2.msg = "invalid distance code", r2.mode = 30; + break e; + } + if (k = 65535 & v, p < (y &= 15) && (d += z[n++] << p, (p += 8) < y && (d += z[n++] << p, p += 8)), h < (k += d & (1 << y) - 1)) { + e2.msg = "invalid distance too far back", r2.mode = 30; + break e; + } + if (d >>>= y, p -= y, (y = s - a) < k) { + if (l < (y = k - y) && r2.sane) { + e2.msg = "invalid distance too far back", r2.mode = 30; + break e; + } + if (S = c, (x = 0) === f) { + if (x += u - y, y < w) { + for (w -= y; C[s++] = c[x++], --y; ) + ; + x = s - k, S = C; + } + } else if (f < y) { + if (x += u + f - y, (y -= f) < w) { + for (w -= y; C[s++] = c[x++], --y; ) + ; + if (x = 0, f < w) { + for (w -= y = f; C[s++] = c[x++], --y; ) + ; + x = s - k, S = C; + } + } + } else if (x += f - y, y < w) { + for (w -= y; C[s++] = c[x++], --y; ) + ; + x = s - k, S = C; + } + for (; 2 < w; ) + C[s++] = S[x++], C[s++] = S[x++], C[s++] = S[x++], w -= 3; + w && (C[s++] = S[x++], 1 < w && (C[s++] = S[x++])); + } else { + for (x = s - k; C[s++] = C[x++], C[s++] = C[x++], C[s++] = C[x++], 2 < (w -= 3); ) + ; + w && (C[s++] = C[x++], 1 < w && (C[s++] = C[x++])); + } + break; + } + } + break; + } + } while (n < i && s < o); + n -= w = p >> 3, d &= (1 << (p -= w << 3)) - 1, e2.next_in = n, e2.next_out = s, e2.avail_in = n < i ? i - n + 5 : 5 - (n - i), e2.avail_out = s < o ? o - s + 257 : 257 - (s - o), r2.hold = d, r2.bits = p; + }; + }, {}], 49: [function(e, t, r) { + "use strict"; + var I = e("../utils/common"), O = e("./adler32"), B = e("./crc32"), R = e("./inffast"), T = e("./inftrees"), D = 1, F = 2, N = 0, U = -2, P = 1, n = 852, i = 592; + function L(e2) { + return (e2 >>> 24 & 255) + (e2 >>> 8 & 65280) + ((65280 & e2) << 8) + ((255 & e2) << 24); + } + function s() { + this.mode = 0, this.last = false, this.wrap = 0, this.havedict = false, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new I.Buf16(320), this.work = new I.Buf16(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0; + } + function a(e2) { + var t2; + return e2 && e2.state ? (t2 = e2.state, e2.total_in = e2.total_out = t2.total = 0, e2.msg = "", t2.wrap && (e2.adler = 1 & t2.wrap), t2.mode = P, t2.last = 0, t2.havedict = 0, t2.dmax = 32768, t2.head = null, t2.hold = 0, t2.bits = 0, t2.lencode = t2.lendyn = new I.Buf32(n), t2.distcode = t2.distdyn = new I.Buf32(i), t2.sane = 1, t2.back = -1, N) : U; + } + function o(e2) { + var t2; + return e2 && e2.state ? ((t2 = e2.state).wsize = 0, t2.whave = 0, t2.wnext = 0, a(e2)) : U; + } + function h(e2, t2) { + var r2, n2; + return e2 && e2.state ? (n2 = e2.state, t2 < 0 ? (r2 = 0, t2 = -t2) : (r2 = 1 + (t2 >> 4), t2 < 48 && (t2 &= 15)), t2 && (t2 < 8 || 15 < t2) ? U : (null !== n2.window && n2.wbits !== t2 && (n2.window = null), n2.wrap = r2, n2.wbits = t2, o(e2))) : U; + } + function u(e2, t2) { + var r2, n2; + return e2 ? (n2 = new s(), (e2.state = n2).window = null, (r2 = h(e2, t2)) !== N && (e2.state = null), r2) : U; + } + var l, f, c = true; + function j(e2) { + if (c) { + var t2; + for (l = new I.Buf32(512), f = new I.Buf32(32), t2 = 0; t2 < 144; ) + e2.lens[t2++] = 8; + for (; t2 < 256; ) + e2.lens[t2++] = 9; + for (; t2 < 280; ) + e2.lens[t2++] = 7; + for (; t2 < 288; ) + e2.lens[t2++] = 8; + for (T(D, e2.lens, 0, 288, l, 0, e2.work, { bits: 9 }), t2 = 0; t2 < 32; ) + e2.lens[t2++] = 5; + T(F, e2.lens, 0, 32, f, 0, e2.work, { bits: 5 }), c = false; + } + e2.lencode = l, e2.lenbits = 9, e2.distcode = f, e2.distbits = 5; + } + function Z(e2, t2, r2, n2) { + var i2, s2 = e2.state; + return null === s2.window && (s2.wsize = 1 << s2.wbits, s2.wnext = 0, s2.whave = 0, s2.window = new I.Buf8(s2.wsize)), n2 >= s2.wsize ? (I.arraySet(s2.window, t2, r2 - s2.wsize, s2.wsize, 0), s2.wnext = 0, s2.whave = s2.wsize) : (n2 < (i2 = s2.wsize - s2.wnext) && (i2 = n2), I.arraySet(s2.window, t2, r2 - n2, i2, s2.wnext), (n2 -= i2) ? (I.arraySet(s2.window, t2, r2 - n2, n2, 0), s2.wnext = n2, s2.whave = s2.wsize) : (s2.wnext += i2, s2.wnext === s2.wsize && (s2.wnext = 0), s2.whave < s2.wsize && (s2.whave += i2))), 0; + } + r.inflateReset = o, r.inflateReset2 = h, r.inflateResetKeep = a, r.inflateInit = function(e2) { + return u(e2, 15); + }, r.inflateInit2 = u, r.inflate = function(e2, t2) { + var r2, n2, i2, s2, a2, o2, h2, u2, l2, f2, c2, d, p, m, _, g, b, v, y, w, k, x, S, z, C = 0, E = new I.Buf8(4), A = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; + if (!e2 || !e2.state || !e2.output || !e2.input && 0 !== e2.avail_in) + return U; + 12 === (r2 = e2.state).mode && (r2.mode = 13), a2 = e2.next_out, i2 = e2.output, h2 = e2.avail_out, s2 = e2.next_in, n2 = e2.input, o2 = e2.avail_in, u2 = r2.hold, l2 = r2.bits, f2 = o2, c2 = h2, x = N; + e: + for (; ; ) + switch (r2.mode) { + case P: + if (0 === r2.wrap) { + r2.mode = 13; + break; + } + for (; l2 < 16; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + if (2 & r2.wrap && 35615 === u2) { + E[r2.check = 0] = 255 & u2, E[1] = u2 >>> 8 & 255, r2.check = B(r2.check, E, 2, 0), l2 = u2 = 0, r2.mode = 2; + break; + } + if (r2.flags = 0, r2.head && (r2.head.done = false), !(1 & r2.wrap) || (((255 & u2) << 8) + (u2 >> 8)) % 31) { + e2.msg = "incorrect header check", r2.mode = 30; + break; + } + if (8 != (15 & u2)) { + e2.msg = "unknown compression method", r2.mode = 30; + break; + } + if (l2 -= 4, k = 8 + (15 & (u2 >>>= 4)), 0 === r2.wbits) + r2.wbits = k; + else if (k > r2.wbits) { + e2.msg = "invalid window size", r2.mode = 30; + break; + } + r2.dmax = 1 << k, e2.adler = r2.check = 1, r2.mode = 512 & u2 ? 10 : 12, l2 = u2 = 0; + break; + case 2: + for (; l2 < 16; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + if (r2.flags = u2, 8 != (255 & r2.flags)) { + e2.msg = "unknown compression method", r2.mode = 30; + break; + } + if (57344 & r2.flags) { + e2.msg = "unknown header flags set", r2.mode = 30; + break; + } + r2.head && (r2.head.text = u2 >> 8 & 1), 512 & r2.flags && (E[0] = 255 & u2, E[1] = u2 >>> 8 & 255, r2.check = B(r2.check, E, 2, 0)), l2 = u2 = 0, r2.mode = 3; + case 3: + for (; l2 < 32; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + r2.head && (r2.head.time = u2), 512 & r2.flags && (E[0] = 255 & u2, E[1] = u2 >>> 8 & 255, E[2] = u2 >>> 16 & 255, E[3] = u2 >>> 24 & 255, r2.check = B(r2.check, E, 4, 0)), l2 = u2 = 0, r2.mode = 4; + case 4: + for (; l2 < 16; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + r2.head && (r2.head.xflags = 255 & u2, r2.head.os = u2 >> 8), 512 & r2.flags && (E[0] = 255 & u2, E[1] = u2 >>> 8 & 255, r2.check = B(r2.check, E, 2, 0)), l2 = u2 = 0, r2.mode = 5; + case 5: + if (1024 & r2.flags) { + for (; l2 < 16; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + r2.length = u2, r2.head && (r2.head.extra_len = u2), 512 & r2.flags && (E[0] = 255 & u2, E[1] = u2 >>> 8 & 255, r2.check = B(r2.check, E, 2, 0)), l2 = u2 = 0; + } else + r2.head && (r2.head.extra = null); + r2.mode = 6; + case 6: + if (1024 & r2.flags && (o2 < (d = r2.length) && (d = o2), d && (r2.head && (k = r2.head.extra_len - r2.length, r2.head.extra || (r2.head.extra = new Array(r2.head.extra_len)), I.arraySet(r2.head.extra, n2, s2, d, k)), 512 & r2.flags && (r2.check = B(r2.check, n2, d, s2)), o2 -= d, s2 += d, r2.length -= d), r2.length)) + break e; + r2.length = 0, r2.mode = 7; + case 7: + if (2048 & r2.flags) { + if (0 === o2) + break e; + for (d = 0; k = n2[s2 + d++], r2.head && k && r2.length < 65536 && (r2.head.name += String.fromCharCode(k)), k && d < o2; ) + ; + if (512 & r2.flags && (r2.check = B(r2.check, n2, d, s2)), o2 -= d, s2 += d, k) + break e; + } else + r2.head && (r2.head.name = null); + r2.length = 0, r2.mode = 8; + case 8: + if (4096 & r2.flags) { + if (0 === o2) + break e; + for (d = 0; k = n2[s2 + d++], r2.head && k && r2.length < 65536 && (r2.head.comment += String.fromCharCode(k)), k && d < o2; ) + ; + if (512 & r2.flags && (r2.check = B(r2.check, n2, d, s2)), o2 -= d, s2 += d, k) + break e; + } else + r2.head && (r2.head.comment = null); + r2.mode = 9; + case 9: + if (512 & r2.flags) { + for (; l2 < 16; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + if (u2 !== (65535 & r2.check)) { + e2.msg = "header crc mismatch", r2.mode = 30; + break; + } + l2 = u2 = 0; + } + r2.head && (r2.head.hcrc = r2.flags >> 9 & 1, r2.head.done = true), e2.adler = r2.check = 0, r2.mode = 12; + break; + case 10: + for (; l2 < 32; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + e2.adler = r2.check = L(u2), l2 = u2 = 0, r2.mode = 11; + case 11: + if (0 === r2.havedict) + return e2.next_out = a2, e2.avail_out = h2, e2.next_in = s2, e2.avail_in = o2, r2.hold = u2, r2.bits = l2, 2; + e2.adler = r2.check = 1, r2.mode = 12; + case 12: + if (5 === t2 || 6 === t2) + break e; + case 13: + if (r2.last) { + u2 >>>= 7 & l2, l2 -= 7 & l2, r2.mode = 27; + break; + } + for (; l2 < 3; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + switch (r2.last = 1 & u2, l2 -= 1, 3 & (u2 >>>= 1)) { + case 0: + r2.mode = 14; + break; + case 1: + if (j(r2), r2.mode = 20, 6 !== t2) + break; + u2 >>>= 2, l2 -= 2; + break e; + case 2: + r2.mode = 17; + break; + case 3: + e2.msg = "invalid block type", r2.mode = 30; + } + u2 >>>= 2, l2 -= 2; + break; + case 14: + for (u2 >>>= 7 & l2, l2 -= 7 & l2; l2 < 32; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + if ((65535 & u2) != (u2 >>> 16 ^ 65535)) { + e2.msg = "invalid stored block lengths", r2.mode = 30; + break; + } + if (r2.length = 65535 & u2, l2 = u2 = 0, r2.mode = 15, 6 === t2) + break e; + case 15: + r2.mode = 16; + case 16: + if (d = r2.length) { + if (o2 < d && (d = o2), h2 < d && (d = h2), 0 === d) + break e; + I.arraySet(i2, n2, s2, d, a2), o2 -= d, s2 += d, h2 -= d, a2 += d, r2.length -= d; + break; + } + r2.mode = 12; + break; + case 17: + for (; l2 < 14; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + if (r2.nlen = 257 + (31 & u2), u2 >>>= 5, l2 -= 5, r2.ndist = 1 + (31 & u2), u2 >>>= 5, l2 -= 5, r2.ncode = 4 + (15 & u2), u2 >>>= 4, l2 -= 4, 286 < r2.nlen || 30 < r2.ndist) { + e2.msg = "too many length or distance symbols", r2.mode = 30; + break; + } + r2.have = 0, r2.mode = 18; + case 18: + for (; r2.have < r2.ncode; ) { + for (; l2 < 3; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + r2.lens[A[r2.have++]] = 7 & u2, u2 >>>= 3, l2 -= 3; + } + for (; r2.have < 19; ) + r2.lens[A[r2.have++]] = 0; + if (r2.lencode = r2.lendyn, r2.lenbits = 7, S = { bits: r2.lenbits }, x = T(0, r2.lens, 0, 19, r2.lencode, 0, r2.work, S), r2.lenbits = S.bits, x) { + e2.msg = "invalid code lengths set", r2.mode = 30; + break; + } + r2.have = 0, r2.mode = 19; + case 19: + for (; r2.have < r2.nlen + r2.ndist; ) { + for (; g = (C = r2.lencode[u2 & (1 << r2.lenbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l2); ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + if (b < 16) + u2 >>>= _, l2 -= _, r2.lens[r2.have++] = b; + else { + if (16 === b) { + for (z = _ + 2; l2 < z; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + if (u2 >>>= _, l2 -= _, 0 === r2.have) { + e2.msg = "invalid bit length repeat", r2.mode = 30; + break; + } + k = r2.lens[r2.have - 1], d = 3 + (3 & u2), u2 >>>= 2, l2 -= 2; + } else if (17 === b) { + for (z = _ + 3; l2 < z; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + l2 -= _, k = 0, d = 3 + (7 & (u2 >>>= _)), u2 >>>= 3, l2 -= 3; + } else { + for (z = _ + 7; l2 < z; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + l2 -= _, k = 0, d = 11 + (127 & (u2 >>>= _)), u2 >>>= 7, l2 -= 7; + } + if (r2.have + d > r2.nlen + r2.ndist) { + e2.msg = "invalid bit length repeat", r2.mode = 30; + break; + } + for (; d--; ) + r2.lens[r2.have++] = k; + } + } + if (30 === r2.mode) + break; + if (0 === r2.lens[256]) { + e2.msg = "invalid code -- missing end-of-block", r2.mode = 30; + break; + } + if (r2.lenbits = 9, S = { bits: r2.lenbits }, x = T(D, r2.lens, 0, r2.nlen, r2.lencode, 0, r2.work, S), r2.lenbits = S.bits, x) { + e2.msg = "invalid literal/lengths set", r2.mode = 30; + break; + } + if (r2.distbits = 6, r2.distcode = r2.distdyn, S = { bits: r2.distbits }, x = T(F, r2.lens, r2.nlen, r2.ndist, r2.distcode, 0, r2.work, S), r2.distbits = S.bits, x) { + e2.msg = "invalid distances set", r2.mode = 30; + break; + } + if (r2.mode = 20, 6 === t2) + break e; + case 20: + r2.mode = 21; + case 21: + if (6 <= o2 && 258 <= h2) { + e2.next_out = a2, e2.avail_out = h2, e2.next_in = s2, e2.avail_in = o2, r2.hold = u2, r2.bits = l2, R(e2, c2), a2 = e2.next_out, i2 = e2.output, h2 = e2.avail_out, s2 = e2.next_in, n2 = e2.input, o2 = e2.avail_in, u2 = r2.hold, l2 = r2.bits, 12 === r2.mode && (r2.back = -1); + break; + } + for (r2.back = 0; g = (C = r2.lencode[u2 & (1 << r2.lenbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l2); ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + if (g && 0 == (240 & g)) { + for (v = _, y = g, w = b; g = (C = r2.lencode[w + ((u2 & (1 << v + y) - 1) >> v)]) >>> 16 & 255, b = 65535 & C, !(v + (_ = C >>> 24) <= l2); ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + u2 >>>= v, l2 -= v, r2.back += v; + } + if (u2 >>>= _, l2 -= _, r2.back += _, r2.length = b, 0 === g) { + r2.mode = 26; + break; + } + if (32 & g) { + r2.back = -1, r2.mode = 12; + break; + } + if (64 & g) { + e2.msg = "invalid literal/length code", r2.mode = 30; + break; + } + r2.extra = 15 & g, r2.mode = 22; + case 22: + if (r2.extra) { + for (z = r2.extra; l2 < z; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + r2.length += u2 & (1 << r2.extra) - 1, u2 >>>= r2.extra, l2 -= r2.extra, r2.back += r2.extra; + } + r2.was = r2.length, r2.mode = 23; + case 23: + for (; g = (C = r2.distcode[u2 & (1 << r2.distbits) - 1]) >>> 16 & 255, b = 65535 & C, !((_ = C >>> 24) <= l2); ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + if (0 == (240 & g)) { + for (v = _, y = g, w = b; g = (C = r2.distcode[w + ((u2 & (1 << v + y) - 1) >> v)]) >>> 16 & 255, b = 65535 & C, !(v + (_ = C >>> 24) <= l2); ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + u2 >>>= v, l2 -= v, r2.back += v; + } + if (u2 >>>= _, l2 -= _, r2.back += _, 64 & g) { + e2.msg = "invalid distance code", r2.mode = 30; + break; + } + r2.offset = b, r2.extra = 15 & g, r2.mode = 24; + case 24: + if (r2.extra) { + for (z = r2.extra; l2 < z; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + r2.offset += u2 & (1 << r2.extra) - 1, u2 >>>= r2.extra, l2 -= r2.extra, r2.back += r2.extra; + } + if (r2.offset > r2.dmax) { + e2.msg = "invalid distance too far back", r2.mode = 30; + break; + } + r2.mode = 25; + case 25: + if (0 === h2) + break e; + if (d = c2 - h2, r2.offset > d) { + if ((d = r2.offset - d) > r2.whave && r2.sane) { + e2.msg = "invalid distance too far back", r2.mode = 30; + break; + } + p = d > r2.wnext ? (d -= r2.wnext, r2.wsize - d) : r2.wnext - d, d > r2.length && (d = r2.length), m = r2.window; + } else + m = i2, p = a2 - r2.offset, d = r2.length; + for (h2 < d && (d = h2), h2 -= d, r2.length -= d; i2[a2++] = m[p++], --d; ) + ; + 0 === r2.length && (r2.mode = 21); + break; + case 26: + if (0 === h2) + break e; + i2[a2++] = r2.length, h2--, r2.mode = 21; + break; + case 27: + if (r2.wrap) { + for (; l2 < 32; ) { + if (0 === o2) + break e; + o2--, u2 |= n2[s2++] << l2, l2 += 8; + } + if (c2 -= h2, e2.total_out += c2, r2.total += c2, c2 && (e2.adler = r2.check = r2.flags ? B(r2.check, i2, c2, a2 - c2) : O(r2.check, i2, c2, a2 - c2)), c2 = h2, (r2.flags ? u2 : L(u2)) !== r2.check) { + e2.msg = "incorrect data check", r2.mode = 30; + break; + } + l2 = u2 = 0; + } + r2.mode = 28; + case 28: + if (r2.wrap && r2.flags) { + for (; l2 < 32; ) { + if (0 === o2) + break e; + o2--, u2 += n2[s2++] << l2, l2 += 8; + } + if (u2 !== (4294967295 & r2.total)) { + e2.msg = "incorrect length check", r2.mode = 30; + break; + } + l2 = u2 = 0; + } + r2.mode = 29; + case 29: + x = 1; + break e; + case 30: + x = -3; + break e; + case 31: + return -4; + case 32: + default: + return U; + } + return e2.next_out = a2, e2.avail_out = h2, e2.next_in = s2, e2.avail_in = o2, r2.hold = u2, r2.bits = l2, (r2.wsize || c2 !== e2.avail_out && r2.mode < 30 && (r2.mode < 27 || 4 !== t2)) && Z(e2, e2.output, e2.next_out, c2 - e2.avail_out) ? (r2.mode = 31, -4) : (f2 -= e2.avail_in, c2 -= e2.avail_out, e2.total_in += f2, e2.total_out += c2, r2.total += c2, r2.wrap && c2 && (e2.adler = r2.check = r2.flags ? B(r2.check, i2, c2, e2.next_out - c2) : O(r2.check, i2, c2, e2.next_out - c2)), e2.data_type = r2.bits + (r2.last ? 64 : 0) + (12 === r2.mode ? 128 : 0) + (20 === r2.mode || 15 === r2.mode ? 256 : 0), (0 == f2 && 0 === c2 || 4 === t2) && x === N && (x = -5), x); + }, r.inflateEnd = function(e2) { + if (!e2 || !e2.state) + return U; + var t2 = e2.state; + return t2.window && (t2.window = null), e2.state = null, N; + }, r.inflateGetHeader = function(e2, t2) { + var r2; + return e2 && e2.state ? 0 == (2 & (r2 = e2.state).wrap) ? U : ((r2.head = t2).done = false, N) : U; + }, r.inflateSetDictionary = function(e2, t2) { + var r2, n2 = t2.length; + return e2 && e2.state ? 0 !== (r2 = e2.state).wrap && 11 !== r2.mode ? U : 11 === r2.mode && O(1, t2, n2, 0) !== r2.check ? -3 : Z(e2, t2, n2, n2) ? (r2.mode = 31, -4) : (r2.havedict = 1, N) : U; + }, r.inflateInfo = "pako inflate (from Nodeca project)"; + }, { "../utils/common": 41, "./adler32": 43, "./crc32": 45, "./inffast": 48, "./inftrees": 50 }], 50: [function(e, t, r) { + "use strict"; + var D = e("../utils/common"), F = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0], N = [16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78], U = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0], P = [16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64]; + t.exports = function(e2, t2, r2, n, i, s, a, o) { + var h, u, l, f, c, d, p, m, _, g = o.bits, b = 0, v = 0, y = 0, w = 0, k = 0, x = 0, S = 0, z = 0, C = 0, E = 0, A = null, I = 0, O = new D.Buf16(16), B = new D.Buf16(16), R = null, T = 0; + for (b = 0; b <= 15; b++) + O[b] = 0; + for (v = 0; v < n; v++) + O[t2[r2 + v]]++; + for (k = g, w = 15; 1 <= w && 0 === O[w]; w--) + ; + if (w < k && (k = w), 0 === w) + return i[s++] = 20971520, i[s++] = 20971520, o.bits = 1, 0; + for (y = 1; y < w && 0 === O[y]; y++) + ; + for (k < y && (k = y), b = z = 1; b <= 15; b++) + if (z <<= 1, (z -= O[b]) < 0) + return -1; + if (0 < z && (0 === e2 || 1 !== w)) + return -1; + for (B[1] = 0, b = 1; b < 15; b++) + B[b + 1] = B[b] + O[b]; + for (v = 0; v < n; v++) + 0 !== t2[r2 + v] && (a[B[t2[r2 + v]]++] = v); + if (d = 0 === e2 ? (A = R = a, 19) : 1 === e2 ? (A = F, I -= 257, R = N, T -= 257, 256) : (A = U, R = P, -1), b = y, c = s, S = v = E = 0, l = -1, f = (C = 1 << (x = k)) - 1, 1 === e2 && 852 < C || 2 === e2 && 592 < C) + return 1; + for (; ; ) { + for (p = b - S, _ = a[v] < d ? (m = 0, a[v]) : a[v] > d ? (m = R[T + a[v]], A[I + a[v]]) : (m = 96, 0), h = 1 << b - S, y = u = 1 << x; i[c + (E >> S) + (u -= h)] = p << 24 | m << 16 | _ | 0, 0 !== u; ) + ; + for (h = 1 << b - 1; E & h; ) + h >>= 1; + if (0 !== h ? (E &= h - 1, E += h) : E = 0, v++, 0 == --O[b]) { + if (b === w) + break; + b = t2[r2 + a[v]]; + } + if (k < b && (E & f) !== l) { + for (0 === S && (S = k), c += y, z = 1 << (x = b - S); x + S < w && !((z -= O[x + S]) <= 0); ) + x++, z <<= 1; + if (C += 1 << x, 1 === e2 && 852 < C || 2 === e2 && 592 < C) + return 1; + i[l = E & f] = k << 24 | x << 16 | c - s | 0; + } + } + return 0 !== E && (i[c + E] = b - S << 24 | 64 << 16 | 0), o.bits = k, 0; + }; + }, { "../utils/common": 41 }], 51: [function(e, t, r) { + "use strict"; + t.exports = { 2: "need dictionary", 1: "stream end", 0: "", "-1": "file error", "-2": "stream error", "-3": "data error", "-4": "insufficient memory", "-5": "buffer error", "-6": "incompatible version" }; + }, {}], 52: [function(e, t, r) { + "use strict"; + var i = e("../utils/common"), o = 0, h = 1; + function n(e2) { + for (var t2 = e2.length; 0 <= --t2; ) + e2[t2] = 0; + } + var s = 0, a = 29, u = 256, l = u + 1 + a, f = 30, c = 19, _ = 2 * l + 1, g = 15, d = 16, p = 7, m = 256, b = 16, v = 17, y = 18, w = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0], k = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13], x = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7], S = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], z = new Array(2 * (l + 2)); + n(z); + var C = new Array(2 * f); + n(C); + var E = new Array(512); + n(E); + var A = new Array(256); + n(A); + var I = new Array(a); + n(I); + var O, B, R, T = new Array(f); + function D(e2, t2, r2, n2, i2) { + this.static_tree = e2, this.extra_bits = t2, this.extra_base = r2, this.elems = n2, this.max_length = i2, this.has_stree = e2 && e2.length; + } + function F(e2, t2) { + this.dyn_tree = e2, this.max_code = 0, this.stat_desc = t2; + } + function N(e2) { + return e2 < 256 ? E[e2] : E[256 + (e2 >>> 7)]; + } + function U(e2, t2) { + e2.pending_buf[e2.pending++] = 255 & t2, e2.pending_buf[e2.pending++] = t2 >>> 8 & 255; + } + function P(e2, t2, r2) { + e2.bi_valid > d - r2 ? (e2.bi_buf |= t2 << e2.bi_valid & 65535, U(e2, e2.bi_buf), e2.bi_buf = t2 >> d - e2.bi_valid, e2.bi_valid += r2 - d) : (e2.bi_buf |= t2 << e2.bi_valid & 65535, e2.bi_valid += r2); + } + function L(e2, t2, r2) { + P(e2, r2[2 * t2], r2[2 * t2 + 1]); + } + function j(e2, t2) { + for (var r2 = 0; r2 |= 1 & e2, e2 >>>= 1, r2 <<= 1, 0 < --t2; ) + ; + return r2 >>> 1; + } + function Z(e2, t2, r2) { + var n2, i2, s2 = new Array(g + 1), a2 = 0; + for (n2 = 1; n2 <= g; n2++) + s2[n2] = a2 = a2 + r2[n2 - 1] << 1; + for (i2 = 0; i2 <= t2; i2++) { + var o2 = e2[2 * i2 + 1]; + 0 !== o2 && (e2[2 * i2] = j(s2[o2]++, o2)); + } + } + function W(e2) { + var t2; + for (t2 = 0; t2 < l; t2++) + e2.dyn_ltree[2 * t2] = 0; + for (t2 = 0; t2 < f; t2++) + e2.dyn_dtree[2 * t2] = 0; + for (t2 = 0; t2 < c; t2++) + e2.bl_tree[2 * t2] = 0; + e2.dyn_ltree[2 * m] = 1, e2.opt_len = e2.static_len = 0, e2.last_lit = e2.matches = 0; + } + function M(e2) { + 8 < e2.bi_valid ? U(e2, e2.bi_buf) : 0 < e2.bi_valid && (e2.pending_buf[e2.pending++] = e2.bi_buf), e2.bi_buf = 0, e2.bi_valid = 0; + } + function H(e2, t2, r2, n2) { + var i2 = 2 * t2, s2 = 2 * r2; + return e2[i2] < e2[s2] || e2[i2] === e2[s2] && n2[t2] <= n2[r2]; + } + function G(e2, t2, r2) { + for (var n2 = e2.heap[r2], i2 = r2 << 1; i2 <= e2.heap_len && (i2 < e2.heap_len && H(t2, e2.heap[i2 + 1], e2.heap[i2], e2.depth) && i2++, !H(t2, n2, e2.heap[i2], e2.depth)); ) + e2.heap[r2] = e2.heap[i2], r2 = i2, i2 <<= 1; + e2.heap[r2] = n2; + } + function K(e2, t2, r2) { + var n2, i2, s2, a2, o2 = 0; + if (0 !== e2.last_lit) + for (; n2 = e2.pending_buf[e2.d_buf + 2 * o2] << 8 | e2.pending_buf[e2.d_buf + 2 * o2 + 1], i2 = e2.pending_buf[e2.l_buf + o2], o2++, 0 === n2 ? L(e2, i2, t2) : (L(e2, (s2 = A[i2]) + u + 1, t2), 0 !== (a2 = w[s2]) && P(e2, i2 -= I[s2], a2), L(e2, s2 = N(--n2), r2), 0 !== (a2 = k[s2]) && P(e2, n2 -= T[s2], a2)), o2 < e2.last_lit; ) + ; + L(e2, m, t2); + } + function Y(e2, t2) { + var r2, n2, i2, s2 = t2.dyn_tree, a2 = t2.stat_desc.static_tree, o2 = t2.stat_desc.has_stree, h2 = t2.stat_desc.elems, u2 = -1; + for (e2.heap_len = 0, e2.heap_max = _, r2 = 0; r2 < h2; r2++) + 0 !== s2[2 * r2] ? (e2.heap[++e2.heap_len] = u2 = r2, e2.depth[r2] = 0) : s2[2 * r2 + 1] = 0; + for (; e2.heap_len < 2; ) + s2[2 * (i2 = e2.heap[++e2.heap_len] = u2 < 2 ? ++u2 : 0)] = 1, e2.depth[i2] = 0, e2.opt_len--, o2 && (e2.static_len -= a2[2 * i2 + 1]); + for (t2.max_code = u2, r2 = e2.heap_len >> 1; 1 <= r2; r2--) + G(e2, s2, r2); + for (i2 = h2; r2 = e2.heap[1], e2.heap[1] = e2.heap[e2.heap_len--], G(e2, s2, 1), n2 = e2.heap[1], e2.heap[--e2.heap_max] = r2, e2.heap[--e2.heap_max] = n2, s2[2 * i2] = s2[2 * r2] + s2[2 * n2], e2.depth[i2] = (e2.depth[r2] >= e2.depth[n2] ? e2.depth[r2] : e2.depth[n2]) + 1, s2[2 * r2 + 1] = s2[2 * n2 + 1] = i2, e2.heap[1] = i2++, G(e2, s2, 1), 2 <= e2.heap_len; ) + ; + e2.heap[--e2.heap_max] = e2.heap[1], function(e3, t3) { + var r3, n3, i3, s3, a3, o3, h3 = t3.dyn_tree, u3 = t3.max_code, l2 = t3.stat_desc.static_tree, f2 = t3.stat_desc.has_stree, c2 = t3.stat_desc.extra_bits, d2 = t3.stat_desc.extra_base, p2 = t3.stat_desc.max_length, m2 = 0; + for (s3 = 0; s3 <= g; s3++) + e3.bl_count[s3] = 0; + for (h3[2 * e3.heap[e3.heap_max] + 1] = 0, r3 = e3.heap_max + 1; r3 < _; r3++) + p2 < (s3 = h3[2 * h3[2 * (n3 = e3.heap[r3]) + 1] + 1] + 1) && (s3 = p2, m2++), h3[2 * n3 + 1] = s3, u3 < n3 || (e3.bl_count[s3]++, a3 = 0, d2 <= n3 && (a3 = c2[n3 - d2]), o3 = h3[2 * n3], e3.opt_len += o3 * (s3 + a3), f2 && (e3.static_len += o3 * (l2[2 * n3 + 1] + a3))); + if (0 !== m2) { + do { + for (s3 = p2 - 1; 0 === e3.bl_count[s3]; ) + s3--; + e3.bl_count[s3]--, e3.bl_count[s3 + 1] += 2, e3.bl_count[p2]--, m2 -= 2; + } while (0 < m2); + for (s3 = p2; 0 !== s3; s3--) + for (n3 = e3.bl_count[s3]; 0 !== n3; ) + u3 < (i3 = e3.heap[--r3]) || (h3[2 * i3 + 1] !== s3 && (e3.opt_len += (s3 - h3[2 * i3 + 1]) * h3[2 * i3], h3[2 * i3 + 1] = s3), n3--); + } + }(e2, t2), Z(s2, u2, e2.bl_count); + } + function X(e2, t2, r2) { + var n2, i2, s2 = -1, a2 = t2[1], o2 = 0, h2 = 7, u2 = 4; + for (0 === a2 && (h2 = 138, u2 = 3), t2[2 * (r2 + 1) + 1] = 65535, n2 = 0; n2 <= r2; n2++) + i2 = a2, a2 = t2[2 * (n2 + 1) + 1], ++o2 < h2 && i2 === a2 || (o2 < u2 ? e2.bl_tree[2 * i2] += o2 : 0 !== i2 ? (i2 !== s2 && e2.bl_tree[2 * i2]++, e2.bl_tree[2 * b]++) : o2 <= 10 ? e2.bl_tree[2 * v]++ : e2.bl_tree[2 * y]++, s2 = i2, u2 = (o2 = 0) === a2 ? (h2 = 138, 3) : i2 === a2 ? (h2 = 6, 3) : (h2 = 7, 4)); + } + function V(e2, t2, r2) { + var n2, i2, s2 = -1, a2 = t2[1], o2 = 0, h2 = 7, u2 = 4; + for (0 === a2 && (h2 = 138, u2 = 3), n2 = 0; n2 <= r2; n2++) + if (i2 = a2, a2 = t2[2 * (n2 + 1) + 1], !(++o2 < h2 && i2 === a2)) { + if (o2 < u2) + for (; L(e2, i2, e2.bl_tree), 0 != --o2; ) + ; + else + 0 !== i2 ? (i2 !== s2 && (L(e2, i2, e2.bl_tree), o2--), L(e2, b, e2.bl_tree), P(e2, o2 - 3, 2)) : o2 <= 10 ? (L(e2, v, e2.bl_tree), P(e2, o2 - 3, 3)) : (L(e2, y, e2.bl_tree), P(e2, o2 - 11, 7)); + s2 = i2, u2 = (o2 = 0) === a2 ? (h2 = 138, 3) : i2 === a2 ? (h2 = 6, 3) : (h2 = 7, 4); + } + } + n(T); + var q = false; + function J(e2, t2, r2, n2) { + P(e2, (s << 1) + (n2 ? 1 : 0), 3), function(e3, t3, r3, n3) { + M(e3), n3 && (U(e3, r3), U(e3, ~r3)), i.arraySet(e3.pending_buf, e3.window, t3, r3, e3.pending), e3.pending += r3; + }(e2, t2, r2, true); + } + r._tr_init = function(e2) { + q || (function() { + var e3, t2, r2, n2, i2, s2 = new Array(g + 1); + for (n2 = r2 = 0; n2 < a - 1; n2++) + for (I[n2] = r2, e3 = 0; e3 < 1 << w[n2]; e3++) + A[r2++] = n2; + for (A[r2 - 1] = n2, n2 = i2 = 0; n2 < 16; n2++) + for (T[n2] = i2, e3 = 0; e3 < 1 << k[n2]; e3++) + E[i2++] = n2; + for (i2 >>= 7; n2 < f; n2++) + for (T[n2] = i2 << 7, e3 = 0; e3 < 1 << k[n2] - 7; e3++) + E[256 + i2++] = n2; + for (t2 = 0; t2 <= g; t2++) + s2[t2] = 0; + for (e3 = 0; e3 <= 143; ) + z[2 * e3 + 1] = 8, e3++, s2[8]++; + for (; e3 <= 255; ) + z[2 * e3 + 1] = 9, e3++, s2[9]++; + for (; e3 <= 279; ) + z[2 * e3 + 1] = 7, e3++, s2[7]++; + for (; e3 <= 287; ) + z[2 * e3 + 1] = 8, e3++, s2[8]++; + for (Z(z, l + 1, s2), e3 = 0; e3 < f; e3++) + C[2 * e3 + 1] = 5, C[2 * e3] = j(e3, 5); + O = new D(z, w, u + 1, l, g), B = new D(C, k, 0, f, g), R = new D(new Array(0), x, 0, c, p); + }(), q = true), e2.l_desc = new F(e2.dyn_ltree, O), e2.d_desc = new F(e2.dyn_dtree, B), e2.bl_desc = new F(e2.bl_tree, R), e2.bi_buf = 0, e2.bi_valid = 0, W(e2); + }, r._tr_stored_block = J, r._tr_flush_block = function(e2, t2, r2, n2) { + var i2, s2, a2 = 0; + 0 < e2.level ? (2 === e2.strm.data_type && (e2.strm.data_type = function(e3) { + var t3, r3 = 4093624447; + for (t3 = 0; t3 <= 31; t3++, r3 >>>= 1) + if (1 & r3 && 0 !== e3.dyn_ltree[2 * t3]) + return o; + if (0 !== e3.dyn_ltree[18] || 0 !== e3.dyn_ltree[20] || 0 !== e3.dyn_ltree[26]) + return h; + for (t3 = 32; t3 < u; t3++) + if (0 !== e3.dyn_ltree[2 * t3]) + return h; + return o; + }(e2)), Y(e2, e2.l_desc), Y(e2, e2.d_desc), a2 = function(e3) { + var t3; + for (X(e3, e3.dyn_ltree, e3.l_desc.max_code), X(e3, e3.dyn_dtree, e3.d_desc.max_code), Y(e3, e3.bl_desc), t3 = c - 1; 3 <= t3 && 0 === e3.bl_tree[2 * S[t3] + 1]; t3--) + ; + return e3.opt_len += 3 * (t3 + 1) + 5 + 5 + 4, t3; + }(e2), i2 = e2.opt_len + 3 + 7 >>> 3, (s2 = e2.static_len + 3 + 7 >>> 3) <= i2 && (i2 = s2)) : i2 = s2 = r2 + 5, r2 + 4 <= i2 && -1 !== t2 ? J(e2, t2, r2, n2) : 4 === e2.strategy || s2 === i2 ? (P(e2, 2 + (n2 ? 1 : 0), 3), K(e2, z, C)) : (P(e2, 4 + (n2 ? 1 : 0), 3), function(e3, t3, r3, n3) { + var i3; + for (P(e3, t3 - 257, 5), P(e3, r3 - 1, 5), P(e3, n3 - 4, 4), i3 = 0; i3 < n3; i3++) + P(e3, e3.bl_tree[2 * S[i3] + 1], 3); + V(e3, e3.dyn_ltree, t3 - 1), V(e3, e3.dyn_dtree, r3 - 1); + }(e2, e2.l_desc.max_code + 1, e2.d_desc.max_code + 1, a2 + 1), K(e2, e2.dyn_ltree, e2.dyn_dtree)), W(e2), n2 && M(e2); + }, r._tr_tally = function(e2, t2, r2) { + return e2.pending_buf[e2.d_buf + 2 * e2.last_lit] = t2 >>> 8 & 255, e2.pending_buf[e2.d_buf + 2 * e2.last_lit + 1] = 255 & t2, e2.pending_buf[e2.l_buf + e2.last_lit] = 255 & r2, e2.last_lit++, 0 === t2 ? e2.dyn_ltree[2 * r2]++ : (e2.matches++, t2--, e2.dyn_ltree[2 * (A[r2] + u + 1)]++, e2.dyn_dtree[2 * N(t2)]++), e2.last_lit === e2.lit_bufsize - 1; + }, r._tr_align = function(e2) { + P(e2, 2, 3), L(e2, m, z), function(e3) { + 16 === e3.bi_valid ? (U(e3, e3.bi_buf), e3.bi_buf = 0, e3.bi_valid = 0) : 8 <= e3.bi_valid && (e3.pending_buf[e3.pending++] = 255 & e3.bi_buf, e3.bi_buf >>= 8, e3.bi_valid -= 8); + }(e2); + }; + }, { "../utils/common": 41 }], 53: [function(e, t, r) { + "use strict"; + t.exports = function() { + this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0; + }; + }, {}], 54: [function(e, t, r) { + (function(e2) { + !function(r2, n) { + "use strict"; + if (!r2.setImmediate) { + var i, s, t2, a, o = 1, h = {}, u = false, l = r2.document, e3 = Object.getPrototypeOf && Object.getPrototypeOf(r2); + e3 = e3 && e3.setTimeout ? e3 : r2, i = "[object process]" === {}.toString.call(r2.process) ? function(e4) { + process.nextTick(function() { + c(e4); + }); + } : function() { + if (r2.postMessage && !r2.importScripts) { + var e4 = true, t3 = r2.onmessage; + return r2.onmessage = function() { + e4 = false; + }, r2.postMessage("", "*"), r2.onmessage = t3, e4; + } + }() ? (a = "setImmediate$" + Math.random() + "$", r2.addEventListener ? r2.addEventListener("message", d, false) : r2.attachEvent("onmessage", d), function(e4) { + r2.postMessage(a + e4, "*"); + }) : r2.MessageChannel ? ((t2 = new MessageChannel()).port1.onmessage = function(e4) { + c(e4.data); + }, function(e4) { + t2.port2.postMessage(e4); + }) : l && "onreadystatechange" in l.createElement("script") ? (s = l.documentElement, function(e4) { + var t3 = l.createElement("script"); + t3.onreadystatechange = function() { + c(e4), t3.onreadystatechange = null, s.removeChild(t3), t3 = null; + }, s.appendChild(t3); + }) : function(e4) { + setTimeout(c, 0, e4); + }, e3.setImmediate = function(e4) { + "function" != typeof e4 && (e4 = new Function("" + e4)); + for (var t3 = new Array(arguments.length - 1), r3 = 0; r3 < t3.length; r3++) + t3[r3] = arguments[r3 + 1]; + var n2 = { callback: e4, args: t3 }; + return h[o] = n2, i(o), o++; + }, e3.clearImmediate = f; + } + function f(e4) { + delete h[e4]; + } + function c(e4) { + if (u) + setTimeout(c, 0, e4); + else { + var t3 = h[e4]; + if (t3) { + u = true; + try { + !function(e5) { + var t4 = e5.callback, r3 = e5.args; + switch (r3.length) { + case 0: + t4(); + break; + case 1: + t4(r3[0]); + break; + case 2: + t4(r3[0], r3[1]); + break; + case 3: + t4(r3[0], r3[1], r3[2]); + break; + default: + t4.apply(n, r3); + } + }(t3); + } finally { + f(e4), u = false; + } + } + } + } + function d(e4) { + e4.source === r2 && "string" == typeof e4.data && 0 === e4.data.indexOf(a) && c(+e4.data.slice(a.length)); + } + }("undefined" == typeof self ? void 0 === e2 ? this : e2 : self); + }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}); + }, {}] }, {}, [10])(10); + }); + } +}); +export default require_jszip_min(); +/*! Bundled license information: + +jszip/dist/jszip.min.js: + (*! + + JSZip v3.10.1 - A JavaScript class for generating and reading zip files + + + (c) 2009-2016 Stuart Knightley + Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. + + JSZip uses the library pako released under the MIT license : + https://github.com/nodeca/pako/blob/main/LICENSE + *) +*/ +//# sourceMappingURL=jszip.js.map diff --git a/unpackage/dist/cache/.vite/deps/jszip.js.map b/unpackage/dist/cache/.vite/deps/jszip.js.map new file mode 100644 index 0000000..653e02f --- /dev/null +++ b/unpackage/dist/cache/.vite/deps/jszip.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../../../node_modules/jszip/dist/jszip.min.js"], + "sourcesContent": ["/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n\n\n(c) 2009-2016 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r null }; -function E(l3) { - let e = []; - return (t) => { - let n = Math.max(0, Math.min(3, t - 1)), s = e[n]; - return s || (s = l3(n), e[n] = s), s; - }; -} -function d(l3, e = "") { - let t = typeof l3 == "string" ? l3 : l3.source, n = { replace: (s, r) => { - let i = typeof r == "string" ? r : r.source; - return i = i.replace(m.caret, "$1"), t = t.replace(s, i), n; - }, getRegex: () => new RegExp(t, e) }; - return n; -} -var Te = ((l3 = "") => { - try { - return !!new RegExp("(?<=1)(?/, blockquoteSetextReplace: /\n {0,3}((?:=+|-+) *)(?=\n|$)/g, blockquoteSetextReplace2: /^ {0,3}>[ \t]?/gm, listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g, listIsTask: /^\[[ xX]\] +\S/, listReplaceTask: /^\[[ xX]\] +/, listTaskCheckbox: /\[[ xX]\]/, anyLine: /\n.*\n/, hrefBrackets: /^<(.*)>$/, tableDelimiter: /[:|]/, tableAlignChars: /^\||\| *$/g, tableRowBlankLine: /\n[ \t]*$/, tableAlignRight: /^ *-+: *$/, tableAlignCenter: /^ *:-+: *$/, tableAlignLeft: /^ *:-+ *$/, startATag: /^/i, startPreScriptTag: /^<(pre|code|kbd|script)(\s|>)/i, endPreScriptTag: /^<\/(pre|code|kbd|script)(\s|>)/i, startAngleBracket: /^$/, pedanticHrefTitle: /^([^'"]*[^\s])\s+(['"])(.*)\2/, unicodeAlphaNumeric: /[\p{L}\p{N}]/u, escapeTest: /[&<>"']/, escapeReplace: /[&<>"']/g, escapeTestNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/, escapeReplaceNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g, caret: /(^|[^\[])\^/g, percentDecode: /%25/g, findPipe: /\|/g, splitPipe: / \|/, slashPipe: /\\\|/g, carriageReturn: /\r\n|\r/g, spaceLine: /^ +$/gm, notSpaceStart: /^\S*/, endingNewline: /\n$/, listItemRegex: (l3) => new RegExp(`^( {0,3}${l3})((?:[ ][^\\n]*)?(?:\\n|$))`), nextBulletRegex: E((l3) => new RegExp(`^ {0,${l3}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)), hrRegex: E((l3) => new RegExp(`^ {0,${l3}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)), fencesBeginRegex: E((l3) => new RegExp(`^ {0,${l3}}(?:\`\`\`|~~~)`)), headingBeginRegex: E((l3) => new RegExp(`^ {0,${l3}}#`)), htmlBeginRegex: E((l3) => new RegExp(`^ {0,${l3}}<(?:[a-z].*>|!--)`, "i")), blockquoteBeginRegex: E((l3) => new RegExp(`^ {0,${l3}}>`)) }; -var Oe = /^(?:[ \t]*(?:\n|$))+/; -var we = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/; -var ye = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/; -var B = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/; -var Pe = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/; -var j = / {0,3}(?:[*+-]|\d{1,9}[.)])/; -var oe = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/; -var ae = d(oe).replace(/bull/g, j).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/\|table/g, "").getRegex(); -var Se = d(oe).replace(/bull/g, j).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/table/g, / {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(); -var F = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/; -var $e = /^[^\n]+/; -var U = /(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/; -var Le = d(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label", U).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(); -var _e = d(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, j).getRegex(); -var H = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul"; -var K = /|$))/; -var ze = d("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))", "i").replace("comment", K).replace("tag", H).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(); -var le = d(F).replace("hr", B).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", H).getRegex(); -var Me = d(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", le).getRegex(); -var W = { blockquote: Me, code: we, def: Le, fences: ye, heading: Pe, hr: B, html: ze, lheading: ae, list: _e, newline: Oe, paragraph: le, table: _, text: $e }; -var se = d("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", B).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", "(?: {4}| {0,3} )[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", H).getRegex(); -var Ee = { ...W, lheading: Se, table: se, paragraph: d(F).replace("hr", B).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", se).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", H).getRegex() }; -var Ie = { ...W, html: d(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment", K).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(), def: /^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/, heading: /^(#{1,6})(.*)(?:\n+|$)/, fences: _, lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/, paragraph: d(F).replace("hr", B).replace("heading", ` *#{1,6} *[^ -]`).replace("lheading", ae).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex() }; -var Ae = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/; -var Ce = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/; -var ue = /^( {2,}|\\)\n(?!\s*$)/; -var Be = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-", Te ? "(?`+)[^`]+\k(?!`)/).replace("html", /<(?! )[^<>]*?>/).getRegex(); -var ce = /^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/; -var Ze = d(ce, "u").replace(/punct/g, I).getRegex(); -var Ge = d(ce, "u").replace(/punct/g, pe).getRegex(); -var he = "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)"; -var Ne = d(he, "gu").replace(/notPunctSpace/g, X).replace(/punctSpace/g, Z).replace(/punct/g, I).getRegex(); -var Qe = d(he, "gu").replace(/notPunctSpace/g, ve).replace(/punctSpace/g, qe).replace(/punct/g, pe).getRegex(); -var je = d("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)", "gu").replace(/notPunctSpace/g, X).replace(/punctSpace/g, Z).replace(/punct/g, I).getRegex(); -var Fe = d(/^~~?(?:((?!~)punct)|[^\s~])/, "u").replace(/punct/g, I).getRegex(); -var Ue = "^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)"; -var Ke = d(Ue, "gu").replace(/notPunctSpace/g, X).replace(/punctSpace/g, Z).replace(/punct/g, I).getRegex(); -var We = d(/\\(punct)/, "gu").replace(/punct/g, I).getRegex(); -var Xe = d(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(); -var Je = d(K).replace("(?:-->|$)", "-->").getRegex(); -var Ve = d("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment", Je).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(); -var v = /(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/; -var Ye = d(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label", v).replace("href", /<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(); -var ke = d(/^!?\[(label)\]\[(ref)\]/).replace("label", v).replace("ref", U).getRegex(); -var de = d(/^!?\[(ref)\](?:\[\])?/).replace("ref", U).getRegex(); -var et = d("reflink|nolink(?!\\()", "g").replace("reflink", ke).replace("nolink", de).getRegex(); -var ie = /[hH][tT][tT][pP][sS]?|[fF][tT][pP]/; -var J = { _backpedal: _, anyPunctuation: We, autolink: Xe, blockSkip: He, br: ue, code: Ce, del: _, delLDelim: _, delRDelim: _, emStrongLDelim: Ze, emStrongRDelimAst: Ne, emStrongRDelimUnd: je, escape: Ae, link: Ye, nolink: de, punctuation: De, reflink: ke, reflinkSearch: et, tag: Ve, text: Be, url: _ }; -var tt = { ...J, link: d(/^!?\[(label)\]\((.*?)\)/).replace("label", v).getRegex(), reflink: d(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", v).getRegex() }; -var Q = { ...J, emStrongRDelimAst: Qe, emStrongLDelim: Ge, delLDelim: Fe, delRDelim: Ke, url: d(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol", ie).replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(), _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/, del: /^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/, text: d(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\": ">", '"': """, "'": "'" }; -var ge = (l3) => rt[l3]; -function O(l3, e) { - if (e) { - if (m.escapeTest.test(l3)) - return l3.replace(m.escapeReplace, ge); - } else if (m.escapeTestNoEncode.test(l3)) - return l3.replace(m.escapeReplaceNoEncode, ge); - return l3; -} -function V(l3) { - try { - l3 = encodeURI(l3).replace(m.percentDecode, "%"); - } catch { - return null; - } - return l3; -} -function Y(l3, e) { - var _a2; - let t = l3.replace(m.findPipe, (r, i, o) => { - let u = false, a = i; - for (; --a >= 0 && o[a] === "\\"; ) - u = !u; - return u ? "|" : " |"; - }), n = t.split(m.splitPipe), s = 0; - if (n[0].trim() || n.shift(), n.length > 0 && !((_a2 = n.at(-1)) == null ? void 0 : _a2.trim()) && n.pop(), e) - if (n.length > e) - n.splice(e); - else - for (; n.length < e; ) - n.push(""); - for (; s < n.length; s++) - n[s] = n[s].trim().replace(m.slashPipe, "|"); - return n; -} -function $(l3, e, t) { - let n = l3.length; - if (n === 0) - return ""; - let s = 0; - for (; s < n; ) { - let r = l3.charAt(n - s - 1); - if (r === e && !t) - s++; - else if (r !== e && t) - s++; - else - break; - } - return l3.slice(0, n - s); -} -function ee(l3) { - let e = l3.split(` -`), t = e.length - 1; - for (; t >= 0 && m.blankLine.test(e[t]); ) - t--; - return e.length - t <= 2 ? l3 : e.slice(0, t + 1).join(` -`); -} -function fe(l3, e) { - if (l3.indexOf(e[1]) === -1) - return -1; - let t = 0; - for (let n = 0; n < l3.length; n++) - if (l3[n] === "\\") - n++; - else if (l3[n] === e[0]) - t++; - else if (l3[n] === e[1] && (t--, t < 0)) - return n; - return t > 0 ? -2 : -1; -} -function me(l3, e = 0) { - let t = e, n = ""; - for (let s of l3) - if (s === " ") { - let r = 4 - t % 4; - n += " ".repeat(r), t += r; - } else - n += s, t++; - return n; -} -function xe(l3, e, t, n, s) { - let r = e.href, i = e.title || null, o = l3[1].replace(s.other.outputLinkReplace, "$1"); - n.state.inLink = true; - let u = { type: l3[0].charAt(0) === "!" ? "image" : "link", raw: t, href: r, title: i, text: o, tokens: n.inlineTokens(o) }; - return n.state.inLink = false, u; -} -function st(l3, e, t) { - let n = l3.match(t.other.indentCodeCompensation); - if (n === null) - return e; - let s = n[1]; - return e.split(` -`).map((r) => { - let i = r.match(t.other.beginningSpace); - if (i === null) - return r; - let [o] = i; - return o.length >= s.length ? r.slice(s.length) : r; - }).join(` -`); -} -var w = class { - constructor(e) { - __publicField(this, "options"); - __publicField(this, "rules"); - __publicField(this, "lexer"); - this.options = e || T; - } - space(e) { - let t = this.rules.block.newline.exec(e); - if (t && t[0].length > 0) - return { type: "space", raw: t[0] }; - } - code(e) { - let t = this.rules.block.code.exec(e); - if (t) { - let n = this.options.pedantic ? t[0] : ee(t[0]), s = n.replace(this.rules.other.codeRemoveIndent, ""); - return { type: "code", raw: n, codeBlockStyle: "indented", text: s }; - } - } - fences(e) { - let t = this.rules.block.fences.exec(e); - if (t) { - let n = t[0], s = st(n, t[3] || "", this.rules); - return { type: "code", raw: n, lang: t[2] ? t[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : t[2], text: s }; - } - } - heading(e) { - let t = this.rules.block.heading.exec(e); - if (t) { - let n = t[2].trim(); - if (this.rules.other.endingHash.test(n)) { - let s = $(n, "#"); - (this.options.pedantic || !s || this.rules.other.endingSpaceChar.test(s)) && (n = s.trim()); - } - return { type: "heading", raw: $(t[0], ` -`), depth: t[1].length, text: n, tokens: this.lexer.inline(n) }; - } - } - hr(e) { - let t = this.rules.block.hr.exec(e); - if (t) - return { type: "hr", raw: $(t[0], ` -`) }; - } - blockquote(e) { - let t = this.rules.block.blockquote.exec(e); - if (t) { - let n = $(t[0], ` -`).split(` -`), s = "", r = "", i = []; - for (; n.length > 0; ) { - let o = false, u = [], a; - for (a = 0; a < n.length; a++) - if (this.rules.other.blockquoteStart.test(n[a])) - u.push(n[a]), o = true; - else if (!o) - u.push(n[a]); - else - break; - n = n.slice(a); - let c = u.join(` -`), p = c.replace(this.rules.other.blockquoteSetextReplace, ` - $1`).replace(this.rules.other.blockquoteSetextReplace2, ""); - s = s ? `${s} -${c}` : c, r = r ? `${r} -${p}` : p; - let k = this.lexer.state.top; - if (this.lexer.state.top = true, this.lexer.blockTokens(p, i, true), this.lexer.state.top = k, n.length === 0) - break; - let h = i.at(-1); - if ((h == null ? void 0 : h.type) === "code") - break; - if ((h == null ? void 0 : h.type) === "blockquote") { - let R = h, f = R.raw + ` -` + n.join(` -`), S = this.blockquote(f); - i[i.length - 1] = S, s = s.substring(0, s.length - R.raw.length) + S.raw, r = r.substring(0, r.length - R.text.length) + S.text; - break; - } else if ((h == null ? void 0 : h.type) === "list") { - let R = h, f = R.raw + ` -` + n.join(` -`), S = this.list(f); - i[i.length - 1] = S, s = s.substring(0, s.length - h.raw.length) + S.raw, r = r.substring(0, r.length - R.raw.length) + S.raw, n = f.substring(i.at(-1).raw.length).split(` -`); - continue; - } - } - return { type: "blockquote", raw: s, tokens: i, text: r }; - } - } - list(e) { - let t = this.rules.block.list.exec(e); - if (t) { - let n = t[1].trim(), s = n.length > 1, r = { type: "list", raw: "", ordered: s, start: s ? +n.slice(0, -1) : "", loose: false, items: [] }; - n = s ? `\\d{1,9}\\${n.slice(-1)}` : `\\${n}`, this.options.pedantic && (n = s ? n : "[*+-]"); - let i = this.rules.other.listItemRegex(n), o = false; - for (; e; ) { - let a = false, c = "", p = ""; - if (!(t = i.exec(e)) || this.rules.block.hr.test(e)) - break; - c = t[0], e = e.substring(c.length); - let k = me(t[2].split(` -`, 1)[0], t[1].length), h = e.split(` -`, 1)[0], R = !k.trim(), f = 0; - if (this.options.pedantic ? (f = 2, p = k.trimStart()) : R ? f = t[1].length + 1 : (f = k.search(this.rules.other.nonSpaceChar), f = f > 4 ? 1 : f, p = k.slice(f), f += t[1].length), R && this.rules.other.blankLine.test(h) && (c += h + ` -`, e = e.substring(h.length + 1), a = true), !a) { - let S = this.rules.other.nextBulletRegex(f), te = this.rules.other.hrRegex(f), ne = this.rules.other.fencesBeginRegex(f), re = this.rules.other.headingBeginRegex(f), be = this.rules.other.htmlBeginRegex(f), Re = this.rules.other.blockquoteBeginRegex(f); - for (; e; ) { - let G = e.split(` -`, 1)[0], C; - if (h = G, this.options.pedantic ? (h = h.replace(this.rules.other.listReplaceNesting, " "), C = h) : C = h.replace(this.rules.other.tabCharGlobal, " "), ne.test(h) || re.test(h) || be.test(h) || Re.test(h) || S.test(h) || te.test(h)) - break; - if (C.search(this.rules.other.nonSpaceChar) >= f || !h.trim()) - p += ` -` + C.slice(f); - else { - if (R || k.replace(this.rules.other.tabCharGlobal, " ").search(this.rules.other.nonSpaceChar) >= 4 || ne.test(k) || re.test(k) || te.test(k)) - break; - p += ` -` + h; - } - R = !h.trim(), c += G + ` -`, e = e.substring(G.length + 1), k = C.slice(f); - } - } - r.loose || (o ? r.loose = true : this.rules.other.doubleBlankLine.test(c) && (o = true)), r.items.push({ type: "list_item", raw: c, task: !!this.options.gfm && this.rules.other.listIsTask.test(p), loose: false, text: p, tokens: [] }), r.raw += c; - } - let u = r.items.at(-1); - if (u) - u.raw = u.raw.trimEnd(), u.text = u.text.trimEnd(); - else - return; - r.raw = r.raw.trimEnd(); - for (let a of r.items) { - this.lexer.state.top = false, a.tokens = this.lexer.blockTokens(a.text, []); - let c = a.tokens[0]; - if (a.task && ((c == null ? void 0 : c.type) === "text" || (c == null ? void 0 : c.type) === "paragraph")) { - a.text = a.text.replace(this.rules.other.listReplaceTask, ""), c.raw = c.raw.replace(this.rules.other.listReplaceTask, ""), c.text = c.text.replace(this.rules.other.listReplaceTask, ""); - for (let k = this.lexer.inlineQueue.length - 1; k >= 0; k--) - if (this.rules.other.listIsTask.test(this.lexer.inlineQueue[k].src)) { - this.lexer.inlineQueue[k].src = this.lexer.inlineQueue[k].src.replace(this.rules.other.listReplaceTask, ""); - break; - } - let p = this.rules.other.listTaskCheckbox.exec(a.raw); - if (p) { - let k = { type: "checkbox", raw: p[0] + " ", checked: p[0] !== "[ ]" }; - a.checked = k.checked, r.loose ? a.tokens[0] && ["paragraph", "text"].includes(a.tokens[0].type) && "tokens" in a.tokens[0] && a.tokens[0].tokens ? (a.tokens[0].raw = k.raw + a.tokens[0].raw, a.tokens[0].text = k.raw + a.tokens[0].text, a.tokens[0].tokens.unshift(k)) : a.tokens.unshift({ type: "paragraph", raw: k.raw, text: k.raw, tokens: [k] }) : a.tokens.unshift(k); - } - } else - a.task && (a.task = false); - if (!r.loose) { - let p = a.tokens.filter((h) => h.type === "space"), k = p.length > 0 && p.some((h) => this.rules.other.anyLine.test(h.raw)); - r.loose = k; - } - } - if (r.loose) - for (let a of r.items) { - a.loose = true; - for (let c of a.tokens) - c.type === "text" && (c.type = "paragraph"); - } - return r; - } - } - html(e) { - let t = this.rules.block.html.exec(e); - if (t) { - let n = ee(t[0]); - return { type: "html", block: true, raw: n, pre: t[1] === "pre" || t[1] === "script" || t[1] === "style", text: n }; - } - } - def(e) { - let t = this.rules.block.def.exec(e); - if (t) { - let n = t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, " "), s = t[2] ? t[2].replace(this.rules.other.hrefBrackets, "$1").replace(this.rules.inline.anyPunctuation, "$1") : "", r = t[3] ? t[3].substring(1, t[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : t[3]; - return { type: "def", tag: n, raw: $(t[0], ` -`), href: s, title: r }; - } - } - table(e) { - var _a2; - let t = this.rules.block.table.exec(e); - if (!t || !this.rules.other.tableDelimiter.test(t[2])) - return; - let n = Y(t[1]), s = t[2].replace(this.rules.other.tableAlignChars, "").split("|"), r = ((_a2 = t[3]) == null ? void 0 : _a2.trim()) ? t[3].replace(this.rules.other.tableRowBlankLine, "").split(` -`) : [], i = { type: "table", raw: $(t[0], ` -`), header: [], align: [], rows: [] }; - if (n.length === s.length) { - for (let o of s) - this.rules.other.tableAlignRight.test(o) ? i.align.push("right") : this.rules.other.tableAlignCenter.test(o) ? i.align.push("center") : this.rules.other.tableAlignLeft.test(o) ? i.align.push("left") : i.align.push(null); - for (let o = 0; o < n.length; o++) - i.header.push({ text: n[o], tokens: this.lexer.inline(n[o]), header: true, align: i.align[o] }); - for (let o of r) - i.rows.push(Y(o, i.header.length).map((u, a) => ({ text: u, tokens: this.lexer.inline(u), header: false, align: i.align[a] }))); - return i; - } - } - lheading(e) { - let t = this.rules.block.lheading.exec(e); - if (t) { - let n = t[1].trim(); - return { type: "heading", raw: $(t[0], ` -`), depth: t[2].charAt(0) === "=" ? 1 : 2, text: n, tokens: this.lexer.inline(n) }; - } - } - paragraph(e) { - let t = this.rules.block.paragraph.exec(e); - if (t) { - let n = t[1].charAt(t[1].length - 1) === ` -` ? t[1].slice(0, -1) : t[1]; - return { type: "paragraph", raw: t[0], text: n, tokens: this.lexer.inline(n) }; - } - } - text(e) { - let t = this.rules.block.text.exec(e); - if (t) - return { type: "text", raw: t[0], text: t[0], tokens: this.lexer.inline(t[0]) }; - } - escape(e) { - let t = this.rules.inline.escape.exec(e); - if (t) - return { type: "escape", raw: t[0], text: t[1] }; - } - tag(e) { - let t = this.rules.inline.tag.exec(e); - if (t) - return !this.lexer.state.inLink && this.rules.other.startATag.test(t[0]) ? this.lexer.state.inLink = true : this.lexer.state.inLink && this.rules.other.endATag.test(t[0]) && (this.lexer.state.inLink = false), !this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(t[0]) ? this.lexer.state.inRawBlock = true : this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(t[0]) && (this.lexer.state.inRawBlock = false), { type: "html", raw: t[0], inLink: this.lexer.state.inLink, inRawBlock: this.lexer.state.inRawBlock, block: false, text: t[0] }; - } - link(e) { - let t = this.rules.inline.link.exec(e); - if (t) { - let n = t[2].trim(); - if (!this.options.pedantic && this.rules.other.startAngleBracket.test(n)) { - if (!this.rules.other.endAngleBracket.test(n)) - return; - let i = $(n.slice(0, -1), "\\"); - if ((n.length - i.length) % 2 === 0) - return; - } else { - let i = fe(t[2], "()"); - if (i === -2) - return; - if (i > -1) { - let u = (t[0].indexOf("!") === 0 ? 5 : 4) + t[1].length + i; - t[2] = t[2].substring(0, i), t[0] = t[0].substring(0, u).trim(), t[3] = ""; - } - } - let s = t[2], r = ""; - if (this.options.pedantic) { - let i = this.rules.other.pedanticHrefTitle.exec(s); - i && (s = i[1], r = i[3]); - } else - r = t[3] ? t[3].slice(1, -1) : ""; - return s = s.trim(), this.rules.other.startAngleBracket.test(s) && (this.options.pedantic && !this.rules.other.endAngleBracket.test(n) ? s = s.slice(1) : s = s.slice(1, -1)), xe(t, { href: s && s.replace(this.rules.inline.anyPunctuation, "$1"), title: r && r.replace(this.rules.inline.anyPunctuation, "$1") }, t[0], this.lexer, this.rules); - } - } - reflink(e, t) { - let n; - if ((n = this.rules.inline.reflink.exec(e)) || (n = this.rules.inline.nolink.exec(e))) { - let s = (n[2] || n[1]).replace(this.rules.other.multipleSpaceGlobal, " "), r = t[s.toLowerCase()]; - if (!r) { - let i = n[0].charAt(0); - return { type: "text", raw: i, text: i }; - } - return xe(n, r, n[0], this.lexer, this.rules); - } - } - emStrong(e, t, n = "") { - let s = this.rules.inline.emStrongLDelim.exec(e); - if (!s || !s[1] && !s[2] && !s[3] && !s[4] || s[4] && n.match(this.rules.other.unicodeAlphaNumeric)) - return; - if (!(s[1] || s[3] || "") || !n || this.rules.inline.punctuation.exec(n)) { - let i = [...s[0]].length - 1, o, u, a = i, c = 0, p = s[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd; - for (p.lastIndex = 0, t = t.slice(-1 * e.length + i); (s = p.exec(t)) !== null; ) { - if (o = s[1] || s[2] || s[3] || s[4] || s[5] || s[6], !o) - continue; - if (u = [...o].length, s[3] || s[4]) { - a += u; - continue; - } else if ((s[5] || s[6]) && i % 3 && !((i + u) % 3)) { - c += u; - continue; - } - if (a -= u, a > 0) - continue; - u = Math.min(u, u + a + c); - let k = [...s[0]][0].length, h = e.slice(0, i + s.index + k + u); - if (Math.min(i, u) % 2) { - let f = h.slice(1, -1); - return { type: "em", raw: h, text: f, tokens: this.lexer.inlineTokens(f) }; - } - let R = h.slice(2, -2); - return { type: "strong", raw: h, text: R, tokens: this.lexer.inlineTokens(R) }; - } - } - } - codespan(e) { - let t = this.rules.inline.code.exec(e); - if (t) { - let n = t[2].replace(this.rules.other.newLineCharGlobal, " "), s = this.rules.other.nonSpaceChar.test(n), r = this.rules.other.startingSpaceChar.test(n) && this.rules.other.endingSpaceChar.test(n); - return s && r && (n = n.substring(1, n.length - 1)), { type: "codespan", raw: t[0], text: n }; - } - } - br(e) { - let t = this.rules.inline.br.exec(e); - if (t) - return { type: "br", raw: t[0] }; - } - del(e, t, n = "") { - let s = this.rules.inline.delLDelim.exec(e); - if (!s) - return; - if (!(s[1] || "") || !n || this.rules.inline.punctuation.exec(n)) { - let i = [...s[0]].length - 1, o, u, a = i, c = this.rules.inline.delRDelim; - for (c.lastIndex = 0, t = t.slice(-1 * e.length + i); (s = c.exec(t)) !== null; ) { - if (o = s[1] || s[2] || s[3] || s[4] || s[5] || s[6], !o || (u = [...o].length, u !== i)) - continue; - if (s[3] || s[4]) { - a += u; - continue; - } - if (a -= u, a > 0) - continue; - u = Math.min(u, u + a); - let p = [...s[0]][0].length, k = e.slice(0, i + s.index + p + u), h = k.slice(i, -i); - return { type: "del", raw: k, text: h, tokens: this.lexer.inlineTokens(h) }; - } - } - } - autolink(e) { - let t = this.rules.inline.autolink.exec(e); - if (t) { - let n, s; - return t[2] === "@" ? (n = t[1], s = "mailto:" + n) : (n = t[1], s = n), { type: "link", raw: t[0], text: n, href: s, tokens: [{ type: "text", raw: n, text: n }] }; - } - } - url(e) { - var _a2; - let t; - if (t = this.rules.inline.url.exec(e)) { - let n, s; - if (t[2] === "@") - n = t[0], s = "mailto:" + n; - else { - let r; - do - r = t[0], t[0] = ((_a2 = this.rules.inline._backpedal.exec(t[0])) == null ? void 0 : _a2[0]) ?? ""; - while (r !== t[0]); - n = t[0], t[1] === "www." ? s = "http://" + t[0] : s = t[0]; - } - return { type: "link", raw: t[0], text: n, href: s, tokens: [{ type: "text", raw: n, text: n }] }; - } - } - inlineText(e) { - let t = this.rules.inline.text.exec(e); - if (t) { - let n = this.lexer.state.inRawBlock; - return { type: "text", raw: t[0], text: t[0], escaped: n }; - } - } -}; -var x = class l { - constructor(e) { - __publicField(this, "tokens"); - __publicField(this, "options"); - __publicField(this, "state"); - __publicField(this, "inlineQueue"); - __publicField(this, "tokenizer"); - this.tokens = [], this.tokens.links = /* @__PURE__ */ Object.create(null), this.options = e || T, this.options.tokenizer = this.options.tokenizer || new w(), this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, this.tokenizer.lexer = this, this.inlineQueue = [], this.state = { inLink: false, inRawBlock: false, top: true }; - let t = { other: m, block: D.normal, inline: A.normal }; - this.options.pedantic ? (t.block = D.pedantic, t.inline = A.pedantic) : this.options.gfm && (t.block = D.gfm, this.options.breaks ? t.inline = A.breaks : t.inline = A.gfm), this.tokenizer.rules = t; - } - static get rules() { - return { block: D, inline: A }; - } - static lex(e, t) { - return new l(t).lex(e); - } - static lexInline(e, t) { - return new l(t).inlineTokens(e); - } - lex(e) { - e = e.replace(m.carriageReturn, ` -`), this.blockTokens(e, this.tokens); - for (let t = 0; t < this.inlineQueue.length; t++) { - let n = this.inlineQueue[t]; - this.inlineTokens(n.src, n.tokens); - } - return this.inlineQueue = [], this.tokens; - } - blockTokens(e, t = [], n = false) { - var _a2, _b, _c; - this.tokenizer.lexer = this, this.options.pedantic && (e = e.replace(m.tabCharGlobal, " ").replace(m.spaceLine, "")); - let s = 1 / 0; - for (; e; ) { - if (e.length < s) - s = e.length; - else { - this.infiniteLoopError(e.charCodeAt(0)); - break; - } - let r; - if ((_b = (_a2 = this.options.extensions) == null ? void 0 : _a2.block) == null ? void 0 : _b.some((o) => (r = o.call({ lexer: this }, e, t)) ? (e = e.substring(r.raw.length), t.push(r), true) : false)) - continue; - if (r = this.tokenizer.space(e)) { - e = e.substring(r.raw.length); - let o = t.at(-1); - r.raw.length === 1 && o !== void 0 ? o.raw += ` -` : t.push(r); - continue; - } - if (r = this.tokenizer.code(e)) { - e = e.substring(r.raw.length); - let o = t.at(-1); - (o == null ? void 0 : o.type) === "paragraph" || (o == null ? void 0 : o.type) === "text" ? (o.raw += (o.raw.endsWith(` -`) ? "" : ` -`) + r.raw, o.text += ` -` + r.text, this.inlineQueue.at(-1).src = o.text) : t.push(r); - continue; - } - if (r = this.tokenizer.fences(e)) { - e = e.substring(r.raw.length), t.push(r); - continue; - } - if (r = this.tokenizer.heading(e)) { - e = e.substring(r.raw.length), t.push(r); - continue; - } - if (r = this.tokenizer.hr(e)) { - e = e.substring(r.raw.length), t.push(r); - continue; - } - if (r = this.tokenizer.blockquote(e)) { - e = e.substring(r.raw.length), t.push(r); - continue; - } - if (r = this.tokenizer.list(e)) { - e = e.substring(r.raw.length), t.push(r); - continue; - } - if (r = this.tokenizer.html(e)) { - e = e.substring(r.raw.length), t.push(r); - continue; - } - if (r = this.tokenizer.def(e)) { - e = e.substring(r.raw.length); - let o = t.at(-1); - (o == null ? void 0 : o.type) === "paragraph" || (o == null ? void 0 : o.type) === "text" ? (o.raw += (o.raw.endsWith(` -`) ? "" : ` -`) + r.raw, o.text += ` -` + r.raw, this.inlineQueue.at(-1).src = o.text) : this.tokens.links[r.tag] || (this.tokens.links[r.tag] = { href: r.href, title: r.title }, t.push(r)); - continue; - } - if (r = this.tokenizer.table(e)) { - e = e.substring(r.raw.length), t.push(r); - continue; - } - if (r = this.tokenizer.lheading(e)) { - e = e.substring(r.raw.length), t.push(r); - continue; - } - let i = e; - if ((_c = this.options.extensions) == null ? void 0 : _c.startBlock) { - let o = 1 / 0, u = e.slice(1), a; - this.options.extensions.startBlock.forEach((c) => { - a = c.call({ lexer: this }, u), typeof a == "number" && a >= 0 && (o = Math.min(o, a)); - }), o < 1 / 0 && o >= 0 && (i = e.substring(0, o + 1)); - } - if (this.state.top && (r = this.tokenizer.paragraph(i))) { - let o = t.at(-1); - n && (o == null ? void 0 : o.type) === "paragraph" ? (o.raw += (o.raw.endsWith(` -`) ? "" : ` -`) + r.raw, o.text += ` -` + r.text, this.inlineQueue.pop(), this.inlineQueue.at(-1).src = o.text) : t.push(r), n = i.length !== e.length, e = e.substring(r.raw.length); - continue; - } - if (r = this.tokenizer.text(e)) { - e = e.substring(r.raw.length); - let o = t.at(-1); - (o == null ? void 0 : o.type) === "text" ? (o.raw += (o.raw.endsWith(` -`) ? "" : ` -`) + r.raw, o.text += ` -` + r.text, this.inlineQueue.pop(), this.inlineQueue.at(-1).src = o.text) : t.push(r); - continue; - } - if (e) { - this.infiniteLoopError(e.charCodeAt(0)); - break; - } - } - return this.state.top = true, t; - } - inline(e, t = []) { - return this.inlineQueue.push({ src: e, tokens: t }), t; - } - inlineTokens(e, t = []) { - var _a2, _b, _c, _d, _e2; - this.tokenizer.lexer = this; - let n = e, s = null; - if (this.tokens.links) { - let a = Object.keys(this.tokens.links); - if (a.length > 0) - for (; (s = this.tokenizer.rules.inline.reflinkSearch.exec(n)) !== null; ) - a.includes(s[0].slice(s[0].lastIndexOf("[") + 1, -1)) && (n = n.slice(0, s.index) + "[" + "a".repeat(s[0].length - 2) + "]" + n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex)); - } - for (; (s = this.tokenizer.rules.inline.anyPunctuation.exec(n)) !== null; ) - n = n.slice(0, s.index) + "++" + n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex); - let r; - for (; (s = this.tokenizer.rules.inline.blockSkip.exec(n)) !== null; ) - r = s[2] ? s[2].length : 0, n = n.slice(0, s.index + r) + "[" + "a".repeat(s[0].length - r - 2) + "]" + n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex); - n = ((_b = (_a2 = this.options.hooks) == null ? void 0 : _a2.emStrongMask) == null ? void 0 : _b.call({ lexer: this }, n)) ?? n; - let i = false, o = "", u = 1 / 0; - for (; e; ) { - if (e.length < u) - u = e.length; - else { - this.infiniteLoopError(e.charCodeAt(0)); - break; - } - i || (o = ""), i = false; - let a; - if ((_d = (_c = this.options.extensions) == null ? void 0 : _c.inline) == null ? void 0 : _d.some((p) => (a = p.call({ lexer: this }, e, t)) ? (e = e.substring(a.raw.length), t.push(a), true) : false)) - continue; - if (a = this.tokenizer.escape(e)) { - e = e.substring(a.raw.length), t.push(a); - continue; - } - if (a = this.tokenizer.tag(e)) { - e = e.substring(a.raw.length), t.push(a); - continue; - } - if (a = this.tokenizer.link(e)) { - e = e.substring(a.raw.length), t.push(a); - continue; - } - if (a = this.tokenizer.reflink(e, this.tokens.links)) { - e = e.substring(a.raw.length); - let p = t.at(-1); - a.type === "text" && (p == null ? void 0 : p.type) === "text" ? (p.raw += a.raw, p.text += a.text) : t.push(a); - continue; - } - if (a = this.tokenizer.emStrong(e, n, o)) { - e = e.substring(a.raw.length), t.push(a); - continue; - } - if (a = this.tokenizer.codespan(e)) { - e = e.substring(a.raw.length), t.push(a); - continue; - } - if (a = this.tokenizer.br(e)) { - e = e.substring(a.raw.length), t.push(a); - continue; - } - if (a = this.tokenizer.del(e, n, o)) { - e = e.substring(a.raw.length), t.push(a); - continue; - } - if (a = this.tokenizer.autolink(e)) { - e = e.substring(a.raw.length), t.push(a); - continue; - } - if (!this.state.inLink && (a = this.tokenizer.url(e))) { - e = e.substring(a.raw.length), t.push(a); - continue; - } - let c = e; - if ((_e2 = this.options.extensions) == null ? void 0 : _e2.startInline) { - let p = 1 / 0, k = e.slice(1), h; - this.options.extensions.startInline.forEach((R) => { - h = R.call({ lexer: this }, k), typeof h == "number" && h >= 0 && (p = Math.min(p, h)); - }), p < 1 / 0 && p >= 0 && (c = e.substring(0, p + 1)); - } - if (a = this.tokenizer.inlineText(c)) { - e = e.substring(a.raw.length), a.raw.slice(-1) !== "_" && (o = a.raw.slice(-1)), i = true; - let p = t.at(-1); - (p == null ? void 0 : p.type) === "text" ? (p.raw += a.raw, p.text += a.text) : t.push(a); - continue; - } - if (e) { - this.infiniteLoopError(e.charCodeAt(0)); - break; - } - } - return t; - } - infiniteLoopError(e) { - let t = "Infinite loop on byte: " + e; - if (this.options.silent) - console.error(t); - else - throw new Error(t); - } -}; -var y = class { - constructor(e) { - __publicField(this, "options"); - __publicField(this, "parser"); - this.options = e || T; - } - space(e) { - return ""; - } - code({ text: e, lang: t, escaped: n }) { - var _a2; - let s = (_a2 = (t || "").match(m.notSpaceStart)) == null ? void 0 : _a2[0], r = e.replace(m.endingNewline, "") + ` -`; - return s ? '
' + (n ? r : O(r, true)) + `
-` : "
" + (n ? r : O(r, true)) + `
-`; - } - blockquote({ tokens: e }) { - return `
-${this.parser.parse(e)}
-`; - } - html({ text: e }) { - return e; - } - def(e) { - return ""; - } - heading({ tokens: e, depth: t }) { - return `${this.parser.parseInline(e)} -`; - } - hr(e) { - return `
-`; - } - list(e) { - let t = e.ordered, n = e.start, s = ""; - for (let o = 0; o < e.items.length; o++) { - let u = e.items[o]; - s += this.listitem(u); - } - let r = t ? "ol" : "ul", i = t && n !== 1 ? ' start="' + n + '"' : ""; - return "<" + r + i + `> -` + s + " -`; - } - listitem(e) { - return `
  • ${this.parser.parse(e.tokens)}
  • -`; - } - checkbox({ checked: e }) { - return " '; - } - paragraph({ tokens: e }) { - return `

    ${this.parser.parseInline(e)}

    -`; - } - table(e) { - let t = "", n = ""; - for (let r = 0; r < e.header.length; r++) - n += this.tablecell(e.header[r]); - t += this.tablerow({ text: n }); - let s = ""; - for (let r = 0; r < e.rows.length; r++) { - let i = e.rows[r]; - n = ""; - for (let o = 0; o < i.length; o++) - n += this.tablecell(i[o]); - s += this.tablerow({ text: n }); - } - return s && (s = `${s}`), ` - -` + t + ` -` + s + `
    -`; - } - tablerow({ text: e }) { - return ` -${e} -`; - } - tablecell(e) { - let t = this.parser.parseInline(e.tokens), n = e.header ? "th" : "td"; - return (e.align ? `<${n} align="${e.align}">` : `<${n}>`) + t + ` -`; - } - strong({ tokens: e }) { - return `${this.parser.parseInline(e)}`; - } - em({ tokens: e }) { - return `${this.parser.parseInline(e)}`; - } - codespan({ text: e }) { - return `${O(e, true)}`; - } - br(e) { - return "
    "; - } - del({ tokens: e }) { - return `${this.parser.parseInline(e)}`; - } - link({ href: e, title: t, tokens: n }) { - let s = this.parser.parseInline(n), r = V(e); - if (r === null) - return s; - e = r; - let i = '
    ", i; - } - image({ href: e, title: t, text: n, tokens: s }) { - s && (n = this.parser.parseInline(s, this.parser.textRenderer)); - let r = V(e); - if (r === null) - return O(n); - e = r; - let i = `${O(n)} { - let o = r[i].flat(1 / 0); - n = n.concat(this.walkTokens(o, t)); - }) : r.tokens && (n = n.concat(this.walkTokens(r.tokens, t))); - } - } - return n; - } - use(...e) { - let t = this.defaults.extensions || { renderers: {}, childTokens: {} }; - return e.forEach((n) => { - let s = { ...n }; - if (s.async = this.defaults.async || s.async || false, n.extensions && (n.extensions.forEach((r) => { - if (!r.name) - throw new Error("extension name required"); - if ("renderer" in r) { - let i = t.renderers[r.name]; - i ? t.renderers[r.name] = function(...o) { - let u = r.renderer.apply(this, o); - return u === false && (u = i.apply(this, o)), u; - } : t.renderers[r.name] = r.renderer; - } - if ("tokenizer" in r) { - if (!r.level || r.level !== "block" && r.level !== "inline") - throw new Error("extension level must be 'block' or 'inline'"); - let i = t[r.level]; - i ? i.unshift(r.tokenizer) : t[r.level] = [r.tokenizer], r.start && (r.level === "block" ? t.startBlock ? t.startBlock.push(r.start) : t.startBlock = [r.start] : r.level === "inline" && (t.startInline ? t.startInline.push(r.start) : t.startInline = [r.start])); - } - "childTokens" in r && r.childTokens && (t.childTokens[r.name] = r.childTokens); - }), s.extensions = t), n.renderer) { - let r = this.defaults.renderer || new y(this.defaults); - for (let i in n.renderer) { - if (!(i in r)) - throw new Error(`renderer '${i}' does not exist`); - if (["options", "parser"].includes(i)) - continue; - let o = i, u = n.renderer[o], a = r[o]; - r[o] = (...c) => { - let p = u.apply(r, c); - return p === false && (p = a.apply(r, c)), p || ""; - }; - } - s.renderer = r; - } - if (n.tokenizer) { - let r = this.defaults.tokenizer || new w(this.defaults); - for (let i in n.tokenizer) { - if (!(i in r)) - throw new Error(`tokenizer '${i}' does not exist`); - if (["options", "rules", "lexer"].includes(i)) - continue; - let o = i, u = n.tokenizer[o], a = r[o]; - r[o] = (...c) => { - let p = u.apply(r, c); - return p === false && (p = a.apply(r, c)), p; - }; - } - s.tokenizer = r; - } - if (n.hooks) { - let r = this.defaults.hooks || new P(); - for (let i in n.hooks) { - if (!(i in r)) - throw new Error(`hook '${i}' does not exist`); - if (["options", "block"].includes(i)) - continue; - let o = i, u = n.hooks[o], a = r[o]; - P.passThroughHooks.has(i) ? r[o] = (c) => { - if (this.defaults.async && P.passThroughHooksRespectAsync.has(i)) - return (async () => { - let k = await u.call(r, c); - return a.call(r, k); - })(); - let p = u.call(r, c); - return a.call(r, p); - } : r[o] = (...c) => { - if (this.defaults.async) - return (async () => { - let k = await u.apply(r, c); - return k === false && (k = await a.apply(r, c)), k; - })(); - let p = u.apply(r, c); - return p === false && (p = a.apply(r, c)), p; - }; - } - s.hooks = r; - } - if (n.walkTokens) { - let r = this.defaults.walkTokens, i = n.walkTokens; - s.walkTokens = function(o) { - let u = []; - return u.push(i.call(this, o)), r && (u = u.concat(r.call(this, o))), u; - }; - } - this.defaults = { ...this.defaults, ...s }; - }), this; - } - setOptions(e) { - return this.defaults = { ...this.defaults, ...e }, this; - } - lexer(e, t) { - return x.lex(e, t ?? this.defaults); - } - parser(e, t) { - return b.parse(e, t ?? this.defaults); - } - parseMarkdown(e) { - return (n, s) => { - let r = { ...s }, i = { ...this.defaults, ...r }, o = this.onError(!!i.silent, !!i.async); - if (this.defaults.async === true && r.async === false) - return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.")); - if (typeof n > "u" || n === null) - return o(new Error("marked(): input parameter is undefined or null")); - if (typeof n != "string") - return o(new Error("marked(): input parameter is of type " + Object.prototype.toString.call(n) + ", string expected")); - if (i.hooks && (i.hooks.options = i, i.hooks.block = e), i.async) - return (async () => { - let u = i.hooks ? await i.hooks.preprocess(n) : n, c = await (i.hooks ? await i.hooks.provideLexer(e) : e ? x.lex : x.lexInline)(u, i), p = i.hooks ? await i.hooks.processAllTokens(c) : c; - i.walkTokens && await Promise.all(this.walkTokens(p, i.walkTokens)); - let h = await (i.hooks ? await i.hooks.provideParser(e) : e ? b.parse : b.parseInline)(p, i); - return i.hooks ? await i.hooks.postprocess(h) : h; - })().catch(o); - try { - i.hooks && (n = i.hooks.preprocess(n)); - let a = (i.hooks ? i.hooks.provideLexer(e) : e ? x.lex : x.lexInline)(n, i); - i.hooks && (a = i.hooks.processAllTokens(a)), i.walkTokens && this.walkTokens(a, i.walkTokens); - let p = (i.hooks ? i.hooks.provideParser(e) : e ? b.parse : b.parseInline)(a, i); - return i.hooks && (p = i.hooks.postprocess(p)), p; - } catch (u) { - return o(u); - } - }; - } - onError(e, t) { - return (n) => { - if (n.message += ` -Please report this to https://github.com/markedjs/marked.`, e) { - let s = "

    An error occurred:

    " + O(n.message + "", true) + "
    "; - return t ? Promise.resolve(s) : s; - } - if (t) - return Promise.reject(n); - throw n; - }; - } -}; -var z = new q(); -function g(l3, e) { - return z.parse(l3, e); -} -g.options = g.setOptions = function(l3) { - return z.setOptions(l3), g.defaults = z.defaults, N(g.defaults), g; -}; -g.getDefaults = M; -g.defaults = T; -g.use = function(...l3) { - return z.use(...l3), g.defaults = z.defaults, N(g.defaults), g; -}; -g.walkTokens = function(l3, e) { - return z.walkTokens(l3, e); -}; -g.parseInline = z.parseInline; -g.Parser = b; -g.parser = b.parse; -g.Renderer = y; -g.TextRenderer = L; -g.Lexer = x; -g.lexer = x.lex; -g.Tokenizer = w; -g.Hooks = P; -g.parse = g; -var Ft = g.options; -var Ut = g.setOptions; -var Kt = g.use; -var Wt = g.walkTokens; -var Xt = g.parseInline; -var Jt = g; -var Vt = b.parse; -var Yt = x.lex; -export { - P as Hooks, - x as Lexer, - q as Marked, - b as Parser, - y as Renderer, - L as TextRenderer, - w as Tokenizer, - T as defaults, - M as getDefaults, - Yt as lexer, - g as marked, - Ft as options, - Jt as parse, - Xt as parseInline, - Vt as parser, - Ut as setOptions, - Kt as use, - Wt as walkTokens -}; -//# sourceMappingURL=marked.js.map diff --git a/unpackage/dist/cache/.vite/deps/marked.js.map b/unpackage/dist/cache/.vite/deps/marked.js.map deleted file mode 100644 index 876989b..0000000 --- a/unpackage/dist/cache/.vite/deps/marked.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../../node_modules/marked/src/defaults.ts", "../../../../../node_modules/marked/src/rules.ts", "../../../../../node_modules/marked/src/helpers.ts", "../../../../../node_modules/marked/src/Tokenizer.ts", "../../../../../node_modules/marked/src/Lexer.ts", "../../../../../node_modules/marked/src/Renderer.ts", "../../../../../node_modules/marked/src/TextRenderer.ts", "../../../../../node_modules/marked/src/Parser.ts", "../../../../../node_modules/marked/src/Hooks.ts", "../../../../../node_modules/marked/src/Instance.ts", "../../../../../node_modules/marked/src/marked.ts"], - "sourcesContent": ["import type { MarkedOptions } from './MarkedOptions.ts';\n\n/**\n * Gets the original marked default options.\n */\nexport function _getDefaults(): MarkedOptions {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null,\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport let _defaults: MarkedOptions = _getDefaults();\n\nexport function changeDefaults(newDefaults: MarkedOptions) {\n _defaults = newDefaults;\n}\n", "const noopTest = { exec: () => null } as unknown as RegExp;\n\nfunction cachedIndentRegex(createRegex: (indent: number) => RegExp) {\n const cache: RegExp[] = [];\n return (indent: number) => {\n const cacheIndex = Math.max(0, Math.min(3, indent - 1));\n let regex = cache[cacheIndex];\n if (!regex) {\n regex = createRegex(cacheIndex);\n cache[cacheIndex] = regex;\n }\n return regex;\n };\n}\n\nfunction edit(regex: string | RegExp, opt = '') {\n let source = typeof regex === 'string' ? regex : regex.source;\n const obj = {\n replace: (name: string | RegExp, val: string | RegExp) => {\n let valSource = typeof val === 'string' ? val : val.source;\n valSource = valSource.replace(other.caret, '$1');\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n },\n };\n return obj;\n}\n\n// use a default variable to ensure the regex is evaluated on client an not removed by minifiers\nconst supportsLookbehind = ((a = '') => {\ntry {\n return !!new RegExp('(?<=1)(?/,\n blockquoteSetextReplace: /\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,\n blockquoteSetextReplace2: /^ {0,3}>[ \\t]?/gm,\n listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,\n listIsTask: /^\\[[ xX]\\] +\\S/,\n listReplaceTask: /^\\[[ xX]\\] +/,\n listTaskCheckbox: /\\[[ xX]\\]/,\n anyLine: /\\n.*\\n/,\n hrefBrackets: /^<(.*)>$/,\n tableDelimiter: /[:|]/,\n tableAlignChars: /^\\||\\| *$/g,\n tableRowBlankLine: /\\n[ \\t]*$/,\n tableAlignRight: /^ *-+: *$/,\n tableAlignCenter: /^ *:-+: *$/,\n tableAlignLeft: /^ *:-+ *$/,\n startATag: /^
    /i,\n startPreScriptTag: /^<(pre|code|kbd|script)(\\s|>)/i,\n endPreScriptTag: /^<\\/(pre|code|kbd|script)(\\s|>)/i,\n startAngleBracket: /^$/,\n pedanticHrefTitle: /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,\n unicodeAlphaNumeric: /[\\p{L}\\p{N}]/u,\n escapeTest: /[&<>\"']/,\n escapeReplace: /[&<>\"']/g,\n escapeTestNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n escapeReplaceNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,\n caret: /(^|[^\\[])\\^/g,\n percentDecode: /%25/g,\n findPipe: /\\|/g,\n splitPipe: / \\|/,\n slashPipe: /\\\\\\|/g,\n carriageReturn: /\\r\\n|\\r/g,\n spaceLine: /^ +$/gm,\n notSpaceStart: /^\\S*/,\n endingNewline: /\\n$/,\n listItemRegex: (bull: string) => new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`),\n nextBulletRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`)),\n hrRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`)),\n fencesBeginRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}(?:\\`\\`\\`|~~~)`)),\n headingBeginRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}#`)),\n htmlBeginRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}<(?:[a-z].*>|!--)`, 'i')),\n blockquoteBeginRegex: cachedIndentRegex((indent: number) => new RegExp(`^ {0,${indent}}>`)),\n};\n\n/**\n * Block-Level Grammar\n */\n\nconst newline = /^(?:[ \\t]*(?:\\n|$))+/;\nconst blockCode = /^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/;\nconst fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nconst hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nconst heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nconst bullet = / {0,3}(?:[*+-]|\\d{1,9}[.)])/;\nconst lheadingCore = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/;\nconst lheading = edit(lheadingCore)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, /(?: {4}| {0,3}\\t)/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .replace(/\\|table/g, '') // table not in commonmark\n .getRegex();\nconst lheadingGfm = edit(lheadingCore)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, /(?: {4}| {0,3}\\t)/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .replace(/table/g, / {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/) // table can interrupt\n .getRegex();\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nconst blockText = /^[^\\n]+/;\nconst _blockLabel = /(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/;\nconst def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/)\n .replace('label', _blockLabel)\n .replace('title', /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/)\n .getRegex();\n\nconst list = edit(/^(bull)([ \\t][^\\n]+?)?(?:\\n|$)/)\n .replace(/bull/g, bullet)\n .getRegex();\n\nconst _tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title'\n + '|tr|track|ul';\nconst _comment = /|$))/;\nconst html = edit(\n '^ {0,3}(?:' // optional indentation\n+ '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n+ '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n+ '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n+ '|\\\\n*|$)' // (4)\n+ '|\\\\n*|$)' // (5)\n+ '|)[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (6)\n+ '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (7) open tag\n+ '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \\t]*)+\\\\n|$)' // (7) closing tag\n+ ')', 'i')\n .replace('comment', _comment)\n .replace('tag', _tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nconst paragraph = edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)])[ \\\\t]') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nconst blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/)\n .replace('paragraph', paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nconst blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText,\n};\n\ntype BlockKeys = keyof typeof blockNormal;\n\n/**\n * GFM Block Grammar\n */\n\nconst gfmTable = edit(\n '^ *([^\\\\n ].*)\\\\n' // Header\n+ ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n+ '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)') // Cells\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('blockquote', ' {0,3}>')\n .replace('code', '(?: {4}| {0,3}\\t)[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)])[ \\\\t]') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nconst blockGfm: Record = {\n ...blockNormal,\n lheading: lheadingGfm,\n table: gfmTable,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('table', gfmTable) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)])[ \\\\t]') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex(),\n};\n\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nconst blockPedantic: Record = {\n ...blockNormal,\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', _comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', lheading)\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .replace('|tag', '')\n .getRegex(),\n};\n\n/**\n * Inline-Level Grammar\n */\n\nconst escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nconst inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nconst br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nconst inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\\nconst blockSkip = edit(/link|precode-code|html/, 'g')\n .replace('link', /\\[(?:[^\\[\\]`]|(?`+)[^`]+\\k(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/)\n .replace('precode-', supportsLookbehind ? '(?`+)[^`]+\\k(?!`)/)\n .replace('html', /<(?! )[^<>]*?>/)\n .getRegex();\n\nconst emStrongLDelimCore = /^(?:\\*+(?:((?!\\*)punct)|([^\\s*]))?)|^_+(?:((?!_)punct)|([^\\s_]))?/;\n\nconst emStrongLDelim = edit(emStrongLDelimCore, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst emStrongLDelimGfm = edit(emStrongLDelimCore, 'u')\n .replace(/punct/g, _punctuationGfmStrongEm)\n .getRegex();\n\nconst emStrongRDelimAstCore =\n '^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n+ '|[^*]+(?=[^*])' // Consume to delim\n+ '|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n+ '|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)' // (2) a***#, a*** can only be a Right Delimiter\n+ '|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)' // (3) #***a, ***a can only be Left Delimiter\n+ '|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)' // (4) ***# can only be Left Delimiter\n+ '|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)' // (5) #***# can be either Left or Right Delimiter\n+ '|notPunctSpace(\\\\*+)(?=notPunctSpace)'; // (6) a***a can be either Left or Right Delimiter\n\nconst emStrongRDelimAst = edit(emStrongRDelimAstCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst emStrongRDelimAstGfm = edit(emStrongRDelimAstCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpaceGfmStrongEm)\n .replace(/punctSpace/g, _punctuationOrSpaceGfmStrongEm)\n .replace(/punct/g, _punctuationGfmStrongEm)\n .getRegex();\n\n// (6) Not allowed for _\nconst emStrongRDelimUnd = edit(\n '^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n+ '|[^_]+(?=[^_])' // Consume to delim\n+ '|(?!_)punct(_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n+ '|notPunctSpace(_+)(?!_)(?=punctSpace|$)' // (2) a___#, a___ can only be a Right Delimiter\n+ '|(?!_)punctSpace(_+)(?=notPunctSpace)' // (3) #___a, ___a can only be Left Delimiter\n+ '|[\\\\s](_+)(?!_)(?=punct)' // (4) ___# can only be Left Delimiter\n+ '|(?!_)punct(_+)(?!_)(?=punct)', 'gu') // (5) #___# can be either Left or Right Delimiter\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\n// Tilde left delimiter for strikethrough (similar to emStrongLDelim for asterisk)\nconst delLDelim = edit(/^~~?(?:((?!~)punct)|[^\\s~])/, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\n\n// Tilde delimiter patterns for strikethrough (similar to asterisk)\nconst delRDelimCore =\n '^[^~]+(?=[^~])' // Consume to delim\n+ '|(?!~)punct(~~?)(?=[\\\\s]|$)' // (1) #~~ can only be a Right Delimiter\n+ '|notPunctSpace(~~?)(?!~)(?=punctSpace|$)' // (2) a~~#, a~~ can only be a Right Delimiter\n+ '|(?!~)punctSpace(~~?)(?=notPunctSpace)' // (3) #~~a, ~~a can only be Left Delimiter\n+ '|[\\\\s](~~?)(?!~)(?=punct)' // (4) ~~# can only be Left Delimiter\n+ '|(?!~)punct(~~?)(?!~)(?=punct)' // (5) #~~# can be either Left or Right Delimiter\n+ '|notPunctSpace(~~?)(?=notPunctSpace)'; // (6) a~~a can be either Left or Right Delimiter\n\nconst delRDelim = edit(delRDelimCore, 'gu')\n .replace(/notPunctSpace/g, _notPunctuationOrSpace)\n .replace(/punctSpace/g, _punctuationOrSpace)\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst anyPunctuation = edit(/\\\\(punct)/, 'gu')\n .replace(/punct/g, _punctuation)\n .getRegex();\n\nconst autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/)\n .replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/)\n .replace('email', /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/)\n .getRegex();\n\nconst _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();\nconst tag = edit(\n '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^') // CDATA section\n .replace('comment', _inlineComment)\n .replace('attribute', /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nconst _inlineLabel = /(?:\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\\])|[^\\[\\]\\\\`])*?/;\n\nconst link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]+(?:\\n[ \\t]*)?|\\n[ \\t]*)(title))?\\s*\\)/)\n .replace('label', _inlineLabel)\n .replace('href', /<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/)\n .replace('title', /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/)\n .getRegex();\n\nconst reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/)\n .replace('label', _inlineLabel)\n .replace('ref', _blockLabel)\n .getRegex();\n\nconst nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/)\n .replace('ref', _blockLabel)\n .getRegex();\n\nconst reflinkSearch = edit('reflink|nolink(?!\\\\()', 'g')\n .replace('reflink', reflink)\n .replace('nolink', nolink)\n .getRegex();\n\nconst _caseInsensitiveProtocol = /[hH][tT][tT][pP][sS]?|[fF][tT][pP]/;\n\n/**\n * Normal Inline Grammar\n */\n\nconst inlineNormal = {\n _backpedal: noopTest, // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n delLDelim: noopTest,\n delRDelim: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest,\n};\n\ntype InlineKeys = keyof typeof inlineNormal;\n\n/**\n * Pedantic Inline Grammar\n */\n\nconst inlinePedantic: Record = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', _inlineLabel)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', _inlineLabel)\n .getRegex(),\n};\n\n/**\n * GFM Inline Grammar\n */\n\nconst inlineGfm: Record = {\n ...inlineNormal,\n emStrongRDelimAst: emStrongRDelimAstGfm,\n emStrongLDelim: emStrongLDelimGfm,\n delLDelim,\n delRDelim,\n url: edit(/^((?:protocol):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/)\n .replace('protocol', _caseInsensitiveProtocol)\n .replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/)\n .getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])((?:\\\\[\\s\\S]|[^\\\\])*?(?:\\\\[\\s\\S]|[^\\s~\\\\]))\\1(?=[^~]|$)/,\n text: edit(/^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ = {\n ...inlineGfm,\n br: edit(br).replace('{2,}', '*').getRegex(),\n text: edit(inlineGfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex(),\n};\n\n/**\n * exports\n */\n\nexport const block = {\n normal: blockNormal,\n gfm: blockGfm,\n pedantic: blockPedantic,\n};\n\nexport const inline = {\n normal: inlineNormal,\n gfm: inlineGfm,\n breaks: inlineBreaks,\n pedantic: inlinePedantic,\n};\n\nexport interface Rules {\n other: typeof other\n block: Record\n inline: Record\n}\n", "import { other } from './rules.ts';\n\n/**\n * Helpers\n */\nconst escapeReplacements: { [index: string]: string } = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n};\nconst getEscapeReplacement = (ch: string) => escapeReplacements[ch];\n\nexport function escapeHtmlEntities(html: string, encode?: boolean) {\n if (encode) {\n if (other.escapeTest.test(html)) {\n return html.replace(other.escapeReplace, getEscapeReplacement);\n }\n } else {\n if (other.escapeTestNoEncode.test(html)) {\n return html.replace(other.escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nexport function cleanUrl(href: string) {\n try {\n href = encodeURI(href).replace(other.percentDecode, '%');\n } catch {\n return null;\n }\n return href;\n}\n\nexport function splitCells(tableRow: string, count?: number) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(other.findPipe, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(other.splitPipe);\n let i = 0;\n\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells.at(-1)?.trim()) {\n cells.pop();\n }\n\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(other.slashPipe, '|');\n }\n return cells;\n}\n\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nexport function rtrim(str: string, c: string, invert?: boolean) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.slice(0, l - suffLen);\n}\n\nexport function trimTrailingBlankLines(str: string) {\n const lines = str.split('\\n');\n let end = lines.length - 1;\n while (end >= 0 && other.blankLine.test(lines[end])) {\n end--;\n }\n if (lines.length - end <= 2) {\n // we want to keep single trailing blank lines\n return str;\n }\n\n return lines.slice(0, end + 1).join('\\n');\n}\n\nexport function findClosingBracket(str: string, b: string) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n if (level > 0) {\n return -2;\n }\n\n return -1;\n}\n\nexport function expandTabs(line: string, indent = 0) {\n let col = indent;\n let expanded = '';\n for (const char of line) {\n if (char === '\\t') {\n const added = 4 - (col % 4);\n expanded += ' '.repeat(added);\n col += added;\n } else {\n expanded += char;\n col++;\n }\n }\n\n return expanded;\n}\n", "import { _defaults } from './defaults.ts';\nimport {\n rtrim,\n splitCells,\n findClosingBracket,\n expandTabs,\n trimTrailingBlankLines,\n} from './helpers.ts';\nimport type { Rules } from './rules.ts';\nimport type { _Lexer } from './Lexer.ts';\nimport type { Links, Tokens, Token } from './Tokens.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\n\nfunction outputLink(cap: string[], link: Pick, raw: string, lexer: _Lexer, rules: Rules): Tokens.Link | Tokens.Image {\n const href = link.href;\n const title = link.title || null;\n const text = cap[1].replace(rules.other.outputLinkReplace, '$1');\n\n lexer.state.inLink = true;\n const token: Tokens.Link | Tokens.Image = {\n type: cap[0].charAt(0) === '!' ? 'image' : 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text),\n };\n lexer.state.inLink = false;\n return token;\n}\n\nfunction indentCodeCompensation(raw: string, text: string, rules: Rules) {\n const matchIndentToCode = raw.match(rules.other.indentCodeCompensation);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n const indentToCode = matchIndentToCode[1];\n\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(rules.other.beginningSpace);\n if (matchIndentInNode === null) {\n return node;\n }\n\n const [indentInNode] = matchIndentInNode;\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n })\n .join('\\n');\n}\n\n/**\n * Tokenizer\n */\nexport class _Tokenizer {\n options: MarkedOptions;\n rules!: Rules; // set by the lexer\n lexer!: _Lexer; // set by the lexer\n\n constructor(options?: MarkedOptions) {\n this.options = options || _defaults;\n }\n\n space(src: string): Tokens.Space | undefined {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0],\n };\n }\n }\n\n code(src: string): Tokens.Code | undefined {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const raw = this.options.pedantic\n ? cap[0]\n : trimTrailingBlankLines(cap[0]);\n const text = raw.replace(this.rules.other.codeRemoveIndent, '');\n return {\n type: 'code',\n raw,\n codeBlockStyle: 'indented',\n text,\n };\n }\n }\n\n fences(src: string): Tokens.Code | undefined {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '', this.rules);\n\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],\n text,\n };\n }\n }\n\n heading(src: string): Tokens.Heading | undefined {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n\n // remove trailing #s\n if (this.rules.other.endingHash.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || this.rules.other.endingSpaceChar.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n return {\n type: 'heading',\n raw: rtrim(cap[0], '\\n'),\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n\n hr(src: string): Tokens.Hr | undefined {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: rtrim(cap[0], '\\n'),\n };\n }\n }\n\n blockquote(src: string): Tokens.Blockquote | undefined {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n let lines = rtrim(cap[0], '\\n').split('\\n');\n let raw = '';\n let text = '';\n const tokens: Token[] = [];\n\n while (lines.length > 0) {\n let inBlockquote = false;\n const currentLines = [];\n\n let i;\n for (i = 0; i < lines.length; i++) {\n // get lines up to a continuation\n if (this.rules.other.blockquoteStart.test(lines[i])) {\n currentLines.push(lines[i]);\n inBlockquote = true;\n } else if (!inBlockquote) {\n currentLines.push(lines[i]);\n } else {\n break;\n }\n }\n lines = lines.slice(i);\n\n const currentRaw = currentLines.join('\\n');\n const currentText = currentRaw\n // precede setext continuation with 4 spaces so it isn't a setext\n .replace(this.rules.other.blockquoteSetextReplace, '\\n $1')\n .replace(this.rules.other.blockquoteSetextReplace2, '');\n raw = raw ? `${raw}\\n${currentRaw}` : currentRaw;\n text = text ? `${text}\\n${currentText}` : currentText;\n\n // parse blockquote lines as top level tokens\n // merge paragraphs if this is a continuation\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n this.lexer.blockTokens(currentText, tokens, true);\n this.lexer.state.top = top;\n\n // if there is no continuation then we are done\n if (lines.length === 0) {\n break;\n }\n\n const lastToken = tokens.at(-1);\n\n if (lastToken?.type === 'code') {\n // blockquote continuation cannot be preceded by a code block\n break;\n } else if (lastToken?.type === 'blockquote') {\n // include continuation in nested blockquote\n const oldToken = lastToken as Tokens.Blockquote;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.blockquote(newText)!;\n tokens[tokens.length - 1] = newToken;\n\n raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.text.length) + newToken.text;\n break;\n } else if (lastToken?.type === 'list') {\n // include continuation in nested list\n const oldToken = lastToken as Tokens.List;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.list(newText)!;\n tokens[tokens.length - 1] = newToken;\n\n raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;\n lines = newText.substring(tokens.at(-1)!.raw.length).split('\\n');\n continue;\n }\n }\n\n return {\n type: 'blockquote',\n raw,\n tokens,\n text,\n };\n }\n }\n\n list(src: string): Tokens.List | undefined {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n\n const list: Tokens.List = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: [],\n };\n\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n\n // Get next list item\n const itemRegex = this.rules.other.listItemRegex(bull);\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n let raw = '';\n let itemContents = '';\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n\n let line = expandTabs(cap[2].split('\\n', 1)[0], cap[1].length);\n let nextLine = src.split('\\n', 1)[0];\n let blankLine = !line.trim();\n\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n } else if (blankLine) {\n indent = cap[1].length + 1;\n } else {\n indent = line.search(this.rules.other.nonSpaceChar); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n if (blankLine && this.rules.other.blankLine.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n const nextBulletRegex = this.rules.other.nextBulletRegex(indent);\n const hrRegex = this.rules.other.hrRegex(indent);\n const fencesBeginRegex = this.rules.other.fencesBeginRegex(indent);\n const headingBeginRegex = this.rules.other.headingBeginRegex(indent);\n const htmlBeginRegex = this.rules.other.htmlBeginRegex(indent);\n const blockquoteBeginRegex = this.rules.other.blockquoteBeginRegex(indent);\n\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n let nextLineWithoutTabs;\n nextLine = rawLine;\n\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(this.rules.other.listReplaceNesting, ' ');\n nextLineWithoutTabs = nextLine;\n } else {\n nextLineWithoutTabs = nextLine.replace(this.rules.other.tabCharGlobal, ' ');\n }\n\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of html block\n if (htmlBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of blockquote\n if (blockquoteBeginRegex.test(nextLine)) {\n break;\n }\n\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n\n // Horizontal rule found\n if (hrRegex.test(nextLine)) {\n break;\n }\n\n if (nextLineWithoutTabs.search(this.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLineWithoutTabs.slice(indent);\n } else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n\n // paragraph continuation unless last line was a different block level element\n if (line.replace(this.rules.other.tabCharGlobal, ' ').search(this.rules.other.nonSpaceChar) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n\n itemContents += '\\n' + nextLine;\n }\n\n blankLine = !nextLine.trim();\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLineWithoutTabs.slice(indent);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (this.rules.other.doubleBlankLine.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw,\n task: !!this.options.gfm && this.rules.other.listIsTask.test(itemContents),\n loose: false,\n text: itemContents,\n tokens: [],\n });\n\n list.raw += raw;\n }\n\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n const lastItem = list.items.at(-1);\n if (lastItem) {\n lastItem.raw = lastItem.raw.trimEnd();\n lastItem.text = lastItem.text.trimEnd();\n } else {\n // not a list since there were no items\n return;\n }\n list.raw = list.raw.trimEnd();\n\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (const item of list.items) {\n this.lexer.state.top = false;\n item.tokens = this.lexer.blockTokens(item.text, []);\n const itemToken = item.tokens[0];\n if (item.task && (itemToken?.type === 'text' || itemToken?.type === 'paragraph')) {\n // Remove checkbox markdown from item tokens\n item.text = item.text.replace(this.rules.other.listReplaceTask, '');\n itemToken.raw = itemToken.raw.replace(this.rules.other.listReplaceTask, '');\n itemToken.text = itemToken.text.replace(this.rules.other.listReplaceTask, '');\n for (let i = this.lexer.inlineQueue.length - 1; i >= 0; i--) {\n if (this.rules.other.listIsTask.test(this.lexer.inlineQueue[i].src)) {\n this.lexer.inlineQueue[i].src = this.lexer.inlineQueue[i].src.replace(this.rules.other.listReplaceTask, '');\n break;\n }\n }\n\n const taskRaw = this.rules.other.listTaskCheckbox.exec(item.raw);\n if (taskRaw) {\n const checkboxToken: Tokens.Checkbox = {\n type: 'checkbox',\n raw: taskRaw[0] + ' ',\n checked: taskRaw[0] !== '[ ]',\n };\n item.checked = checkboxToken.checked;\n if (list.loose) {\n if (item.tokens[0] && ['paragraph', 'text'].includes(item.tokens[0].type) && 'tokens' in item.tokens[0] && item.tokens[0].tokens) {\n item.tokens[0].raw = checkboxToken.raw + item.tokens[0].raw;\n item.tokens[0].text = checkboxToken.raw + item.tokens[0].text;\n item.tokens[0].tokens.unshift(checkboxToken);\n } else {\n item.tokens.unshift({\n type: 'paragraph',\n raw: checkboxToken.raw,\n text: checkboxToken.raw,\n tokens: [checkboxToken],\n });\n }\n } else {\n item.tokens.unshift(checkboxToken);\n }\n }\n } else if (item.task) {\n item.task = false;\n }\n\n if (!list.loose) {\n // Check if list should be loose\n const spacers = item.tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => this.rules.other.anyLine.test(t.raw));\n\n list.loose = hasMultipleLineBreaks;\n }\n }\n\n // Set all items to loose if list is loose\n if (list.loose) {\n for (const item of list.items) {\n item.loose = true;\n for (const token of item.tokens) {\n if (token.type === 'text') {\n token.type = 'paragraph';\n }\n }\n }\n }\n\n return list;\n }\n }\n\n html(src: string): Tokens.HTML | undefined {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const raw = trimTrailingBlankLines(cap[0]);\n const token: Tokens.HTML = {\n type: 'html',\n block: true,\n raw,\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: raw,\n };\n return token;\n }\n }\n\n def(src: string): Tokens.Def | undefined {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, ' ');\n const href = cap[2] ? cap[2].replace(this.rules.other.hrefBrackets, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: rtrim(cap[0], '\\n'),\n href,\n title,\n };\n }\n }\n\n table(src: string): Tokens.Table | undefined {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n\n if (!this.rules.other.tableDelimiter.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(this.rules.other.tableAlignChars, '').split('|');\n const rows = cap[3]?.trim() ? cap[3].replace(this.rules.other.tableRowBlankLine, '').split('\\n') : [];\n\n const item: Tokens.Table = {\n type: 'table',\n raw: rtrim(cap[0], '\\n'),\n header: [],\n align: [],\n rows: [],\n };\n\n if (headers.length !== aligns.length) {\n // header and align columns must be equal, rows can be different.\n return;\n }\n\n for (const align of aligns) {\n if (this.rules.other.tableAlignRight.test(align)) {\n item.align.push('right');\n } else if (this.rules.other.tableAlignCenter.test(align)) {\n item.align.push('center');\n } else if (this.rules.other.tableAlignLeft.test(align)) {\n item.align.push('left');\n } else {\n item.align.push(null);\n }\n }\n\n for (let i = 0; i < headers.length; i++) {\n item.header.push({\n text: headers[i],\n tokens: this.lexer.inline(headers[i]),\n header: true,\n align: item.align[i],\n });\n }\n\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map((cell, i) => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell),\n header: false,\n align: item.align[i],\n };\n }));\n }\n\n return item;\n }\n\n lheading(src: string): Tokens.Heading | undefined {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n const text = cap[1].trim();\n return {\n type: 'heading',\n raw: rtrim(cap[0], '\\n'),\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n\n paragraph(src: string): Tokens.Paragraph | undefined {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n\n text(src: string): Tokens.Text | undefined {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0]),\n };\n }\n }\n\n escape(src: string): Tokens.Escape | undefined {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: cap[1],\n };\n }\n }\n\n tag(src: string): Tokens.Tag | undefined {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && this.rules.other.startATag.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && this.rules.other.endATag.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0],\n };\n }\n }\n\n link(src: string): Tokens.Link | Tokens.Image | undefined {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && this.rules.other.startAngleBracket.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(this.rules.other.endAngleBracket.test(trimmedUrl))) {\n return;\n }\n\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex === -2) {\n // more open parens than closed\n return;\n }\n\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = this.rules.other.pedanticHrefTitle.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n if (this.rules.other.startAngleBracket.test(href)) {\n if (this.options.pedantic && !(this.rules.other.endAngleBracket.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title,\n }, cap[0], this.lexer, this.rules);\n }\n }\n\n reflink(src: string, links: Links): Tokens.Link | Tokens.Image | Tokens.Text | undefined {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(this.rules.other.multipleSpaceGlobal, ' ');\n const link = links[linkString.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text,\n };\n }\n return outputLink(cap, link, cap[0], this.lexer, this.rules);\n }\n }\n\n emStrong(src: string, maskedSrc: string, prevChar = ''): Tokens.Em | Tokens.Strong | undefined {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match) return;\n if (!match[1] && !match[2] && !match[3] && !match[4]) return;\n\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[4] && prevChar.match(this.rules.other.unicodeAlphaNumeric)) return;\n\n const nextChar = match[1] || match[3] || '';\n\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) !== null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = [...rDelim].length;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n }\n }\n\n codespan(src: string): Tokens.Codespan | undefined {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(this.rules.other.newLineCharGlobal, ' ');\n const hasNonSpaceChars = this.rules.other.nonSpaceChar.test(text);\n const hasSpaceCharsOnBothEnds = this.rules.other.startingSpaceChar.test(text) && this.rules.other.endingSpaceChar.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n return {\n type: 'codespan',\n raw: cap[0],\n text,\n };\n }\n }\n\n br(src: string): Tokens.Br | undefined {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0],\n };\n }\n }\n\n del(src: string, maskedSrc: string, prevChar = ''): Tokens.Del | undefined {\n let match = this.rules.inline.delLDelim.exec(src);\n if (!match) return;\n\n const nextChar = match[1] || '';\n\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength;\n\n const endReg = this.rules.inline.delRDelim;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) !== null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue;\n\n rLength = [...rDelim].length;\n\n if (rLength !== lLength) continue;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters\n rLength = Math.min(rLength, rLength + delimTotal);\n // char length can be >1 for unicode characters\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n\n // Create del token - only single ~ or double ~~ supported\n const text = raw.slice(lLength, -lLength);\n return {\n type: 'del',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n }\n }\n\n autolink(src: string): Tokens.Link | undefined {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = cap[1];\n href = 'mailto:' + text;\n } else {\n text = cap[1];\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n\n url(src: string): Tokens.Link | undefined {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = cap[0];\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';\n } while (prevCapZero !== cap[0]);\n text = cap[0];\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n } else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n\n inlineText(src: string): Tokens.Text | undefined {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n const escaped = this.lexer.state.inRawBlock;\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n escaped,\n };\n }\n }\n}\n", "import { _Tokenizer } from './Tokenizer.ts';\nimport { _defaults } from './defaults.ts';\nimport { other, block, inline } from './rules.ts';\nimport type { Token, TokensList, Tokens } from './Tokens.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\n\n/**\n * Block Lexer\n */\nexport class _Lexer {\n tokens: TokensList;\n options: MarkedOptions;\n state: {\n inLink: boolean;\n inRawBlock: boolean;\n top: boolean;\n };\n\n public inlineQueue: { src: string, tokens: Token[] }[];\n\n private tokenizer: _Tokenizer;\n\n constructor(options?: MarkedOptions) {\n // TokenList cannot be created in one go\n this.tokens = [] as unknown as TokensList;\n this.tokens.links = Object.create(null);\n this.options = options || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true,\n };\n\n const rules = {\n other,\n block: block.normal,\n inline: inline.normal,\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline,\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src: string, options?: MarkedOptions) {\n const lexer = new _Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src: string, options?: MarkedOptions) {\n const lexer = new _Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src: string) {\n src = src.replace(other.carriageReturn, '\\n');\n\n this.blockTokens(src, this.tokens);\n\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src: string, tokens?: Token[], lastParagraphClipped?: boolean): Token[];\n blockTokens(src: string, tokens?: TokensList, lastParagraphClipped?: boolean): TokensList;\n blockTokens(src: string, tokens: Token[] = [], lastParagraphClipped = false) {\n this.tokenizer.lexer = this;\n if (this.options.pedantic) {\n src = src.replace(other.tabCharGlobal, ' ').replace(other.spaceLine, '');\n }\n\n let srcLength = Infinity;\n while (src) {\n if (src.length < srcLength) {\n srcLength = src.length;\n } else {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n\n let token: Tokens.Generic | undefined;\n\n if (this.options.extensions?.block?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.raw.length === 1 && lastToken !== undefined) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unnecessary paragraph tags\n lastToken.raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n // An indented code block cannot interrupt a paragraph.\n if (lastToken?.type === 'paragraph' || lastToken?.type === 'text') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'paragraph' || lastToken?.type === 'text') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title,\n };\n tokens.push(token);\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n let cutSrc = src;\n if (this.options.extensions?.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n const lastToken = tokens.at(-1);\n if (lastParagraphClipped && lastToken?.type === 'paragraph') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'text') {\n lastToken.raw += (lastToken.raw.endsWith('\\n') ? '' : '\\n') + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1)!.src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src: string, tokens: Token[] = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src: string, tokens: Token[] = []): Token[] {\n this.tokenizer.lexer = this;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match: RegExpExecArray | null = null;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) !== null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index)\n + '[' + 'a'.repeat(match[0].length - 2) + ']'\n + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) !== null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n\n // Mask out other blocks\n let offset;\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) !== null) {\n offset = match[2] ? match[2].length : 0;\n maskedSrc = maskedSrc.slice(0, match.index + offset) + '[' + 'a'.repeat(match[0].length - offset - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out blocks from extensions\n maskedSrc = this.options.hooks?.emStrongMask?.call({ lexer: this }, maskedSrc) ?? maskedSrc;\n\n let keepPrevChar = false;\n let prevChar = '';\n let srcLength = Infinity;\n while (src) {\n if (src.length < srcLength) {\n srcLength = src.length;\n } else {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n let token: Tokens.Generic | undefined;\n\n // extensions\n if (this.options.extensions?.inline?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.type === 'text' && lastToken?.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n let cutSrc = src;\n if (this.options.extensions?.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n const lastToken = tokens.at(-1);\n if (lastToken?.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n this.infiniteLoopError(src.charCodeAt(0));\n break;\n }\n }\n\n return tokens;\n }\n\n private infiniteLoopError(byte: number) {\n const errMsg = 'Infinite loop on byte: ' + byte;\n if (this.options.silent) {\n console.error(errMsg);\n } else {\n throw new Error(errMsg);\n }\n }\n}\n", "import { _defaults } from './defaults.ts';\nimport {\n cleanUrl,\n escapeHtmlEntities,\n} from './helpers.ts';\nimport { other } from './rules.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\nimport type { Tokens } from './Tokens.ts';\nimport type { _Parser } from './Parser.ts';\n\n/**\n * Renderer\n */\nexport class _Renderer {\n options: MarkedOptions;\n parser!: _Parser; // set by the parser\n constructor(options?: MarkedOptions) {\n this.options = options || _defaults;\n }\n\n space(token: Tokens.Space): RendererOutput {\n return '' as RendererOutput;\n }\n\n code({ text, lang, escaped }: Tokens.Code): RendererOutput {\n const langString = (lang || '').match(other.notSpaceStart)?.[0];\n\n const code = text.replace(other.endingNewline, '') + '\\n';\n\n if (!langString) {\n return '
    '\n        + (escaped ? code : escapeHtmlEntities(code, true))\n        + '
    \\n' as RendererOutput;\n }\n\n return '
    '\n      + (escaped ? code : escapeHtmlEntities(code, true))\n      + '
    \\n' as RendererOutput;\n }\n\n blockquote({ tokens }: Tokens.Blockquote): RendererOutput {\n const body = this.parser.parse(tokens);\n return `
    \\n${body}
    \\n` as RendererOutput;\n }\n\n html({ text }: Tokens.HTML | Tokens.Tag): RendererOutput {\n return text as RendererOutput;\n }\n\n def(token: Tokens.Def): RendererOutput {\n return '' as RendererOutput;\n }\n\n heading({ tokens, depth }: Tokens.Heading): RendererOutput {\n return `${this.parser.parseInline(tokens)}\\n` as RendererOutput;\n }\n\n hr(token: Tokens.Hr): RendererOutput {\n return '
    \\n' as RendererOutput;\n }\n\n list(token: Tokens.List): RendererOutput {\n const ordered = token.ordered;\n const start = token.start;\n\n let body = '';\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n body += this.listitem(item);\n }\n\n const type = ordered ? 'ol' : 'ul';\n const startAttr = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startAttr + '>\\n' + body + '\\n' as RendererOutput;\n }\n\n listitem(item: Tokens.ListItem): RendererOutput {\n return `
  • ${this.parser.parse(item.tokens)}
  • \\n` as RendererOutput;\n }\n\n checkbox({ checked }: Tokens.Checkbox): RendererOutput {\n return ' ' as RendererOutput;\n }\n\n paragraph({ tokens }: Tokens.Paragraph): RendererOutput {\n return `

    ${this.parser.parseInline(tokens)}

    \\n` as RendererOutput;\n }\n\n table(token: Tokens.Table): RendererOutput {\n let header = '';\n\n // header\n let cell = '';\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell(token.header[j]);\n }\n header += this.tablerow({ text: cell as ParserOutput });\n\n let body = '';\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell(row[k]);\n }\n\n body += this.tablerow({ text: cell as ParserOutput });\n }\n if (body) body = `${body}`;\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n' as RendererOutput;\n }\n\n tablerow({ text }: Tokens.TableRow): RendererOutput {\n return `\\n${text}\\n` as RendererOutput;\n }\n\n tablecell(token: Tokens.TableCell): RendererOutput {\n const content = this.parser.parseInline(token.tokens);\n const type = token.header ? 'th' : 'td';\n const tag = token.align\n ? `<${type} align=\"${token.align}\">`\n : `<${type}>`;\n return tag + content + `\\n` as RendererOutput;\n }\n\n /**\n * span level renderer\n */\n strong({ tokens }: Tokens.Strong): RendererOutput {\n return `${this.parser.parseInline(tokens)}` as RendererOutput;\n }\n\n em({ tokens }: Tokens.Em): RendererOutput {\n return `${this.parser.parseInline(tokens)}` as RendererOutput;\n }\n\n codespan({ text }: Tokens.Codespan): RendererOutput {\n return `${escapeHtmlEntities(text, true)}` as RendererOutput;\n }\n\n br(token: Tokens.Br): RendererOutput {\n return '
    ' as RendererOutput;\n }\n\n del({ tokens }: Tokens.Del): RendererOutput {\n return `${this.parser.parseInline(tokens)}` as RendererOutput;\n }\n\n link({ href, title, tokens }: Tokens.Link): RendererOutput {\n const text = this.parser.parseInline(tokens) as string;\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text as RendererOutput;\n }\n href = cleanHref;\n let out = '
    ';\n return out as RendererOutput;\n }\n\n image({ href, title, text, tokens }: Tokens.Image): RendererOutput {\n if (tokens) {\n text = this.parser.parseInline(tokens, this.parser.textRenderer) as string;\n }\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return escapeHtmlEntities(text) as RendererOutput;\n }\n href = cleanHref;\n\n let out = `\"${escapeHtmlEntities(text)}\"`;\n {\n // no need for block level renderers\n strong({ text }: Tokens.Strong): RendererOutput {\n return text as RendererOutput;\n }\n\n em({ text }: Tokens.Em): RendererOutput {\n return text as RendererOutput;\n }\n\n codespan({ text }: Tokens.Codespan): RendererOutput {\n return text as RendererOutput;\n }\n\n del({ text }: Tokens.Del): RendererOutput {\n return text as RendererOutput;\n }\n\n html({ text }: Tokens.HTML | Tokens.Tag): RendererOutput {\n return text as RendererOutput;\n }\n\n text({ text }: Tokens.Text | Tokens.Escape | Tokens.Tag): RendererOutput {\n return text as RendererOutput;\n }\n\n link({ text }: Tokens.Link): RendererOutput {\n return '' + text as RendererOutput;\n }\n\n image({ text }: Tokens.Image): RendererOutput {\n return '' + text as RendererOutput;\n }\n\n br(): RendererOutput {\n return '' as RendererOutput;\n }\n\n checkbox({ raw }: Tokens.Checkbox): RendererOutput {\n return raw as RendererOutput;\n }\n}\n", "import { _Renderer } from './Renderer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { _defaults } from './defaults.ts';\nimport type { MarkedToken, Token, Tokens } from './Tokens.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\n\n/**\n * Parsing & Compiling\n */\nexport class _Parser {\n options: MarkedOptions;\n renderer: _Renderer;\n textRenderer: _TextRenderer;\n constructor(options?: MarkedOptions) {\n this.options = options || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.renderer.parser = this;\n this.textRenderer = new _TextRenderer();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens: Token[], options?: MarkedOptions) {\n const parser = new _Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens: Token[], options?: MarkedOptions) {\n const parser = new _Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens: Token[]): ParserOutput {\n this.renderer.parser = this;\n let out = '';\n\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const genericToken = anyToken as Tokens.Generic;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'def', 'paragraph', 'text'].includes(genericToken.type)) {\n out += ret || '';\n continue;\n }\n }\n\n const token = anyToken as MarkedToken;\n\n switch (token.type) {\n case 'space': {\n out += this.renderer.space(token);\n break;\n }\n case 'hr': {\n out += this.renderer.hr(token);\n break;\n }\n case 'heading': {\n out += this.renderer.heading(token);\n break;\n }\n case 'code': {\n out += this.renderer.code(token);\n break;\n }\n case 'table': {\n out += this.renderer.table(token);\n break;\n }\n case 'blockquote': {\n out += this.renderer.blockquote(token);\n break;\n }\n case 'list': {\n out += this.renderer.list(token);\n break;\n }\n case 'checkbox': {\n out += this.renderer.checkbox(token);\n break;\n }\n case 'html': {\n out += this.renderer.html(token);\n break;\n }\n case 'def': {\n out += this.renderer.def(token);\n break;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(token);\n break;\n }\n case 'text': {\n out += this.renderer.text(token);\n break;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '' as ParserOutput;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out as ParserOutput;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens: Token[], renderer: _Renderer | _TextRenderer = this.renderer): ParserOutput {\n this.renderer.parser = this;\n let out = '';\n\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(anyToken.type)) {\n out += ret || '';\n continue;\n }\n }\n\n const token = anyToken as MarkedToken;\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token);\n break;\n }\n case 'html': {\n out += renderer.html(token);\n break;\n }\n case 'link': {\n out += renderer.link(token);\n break;\n }\n case 'image': {\n out += renderer.image(token);\n break;\n }\n case 'checkbox': {\n out += renderer.checkbox(token);\n break;\n }\n case 'strong': {\n out += renderer.strong(token);\n break;\n }\n case 'em': {\n out += renderer.em(token);\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token);\n break;\n }\n case 'br': {\n out += renderer.br(token);\n break;\n }\n case 'del': {\n out += renderer.del(token);\n break;\n }\n case 'text': {\n out += renderer.text(token);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '' as ParserOutput;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out as ParserOutput;\n }\n}\n", "import { _defaults } from './defaults.ts';\nimport { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport type { MarkedOptions } from './MarkedOptions.ts';\nimport type { Token, TokensList } from './Tokens.ts';\n\nexport class _Hooks {\n options: MarkedOptions;\n block?: boolean;\n\n constructor(options?: MarkedOptions) {\n this.options = options || _defaults;\n }\n\n static passThroughHooks = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens',\n 'emStrongMask',\n ]);\n\n static passThroughHooksRespectAsync = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens',\n ]);\n\n /**\n * Process markdown before marked\n */\n preprocess(markdown: string) {\n return markdown;\n }\n\n /**\n * Process HTML after marked is finished\n */\n postprocess(html: ParserOutput) {\n return html;\n }\n\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens: Token[] | TokensList) {\n return tokens;\n }\n\n /**\n * Mask contents that should not be interpreted as em/strong delimiters\n */\n emStrongMask(src: string) {\n return src;\n }\n\n /**\n * Provide function to tokenize markdown\n */\n provideLexer(block = this.block) {\n return block ? _Lexer.lex : _Lexer.lexInline;\n }\n\n /**\n * Provide function to parse tokens\n */\n provideParser(block = this.block) {\n return block ? _Parser.parse : _Parser.parseInline;\n }\n}\n", "import { _getDefaults } from './defaults.ts';\nimport { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport { _Hooks } from './Hooks.ts';\nimport { _Renderer } from './Renderer.ts';\nimport { _Tokenizer } from './Tokenizer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { escapeHtmlEntities } from './helpers.ts';\nimport type { MarkedExtension, MarkedOptions } from './MarkedOptions.ts';\nimport type { Token, Tokens, TokensList } from './Tokens.ts';\n\nexport type MaybePromise = void | Promise;\n\ntype UnknownFunction = (...args: unknown[]) => unknown;\ntype GenericRendererFunction = (...args: unknown[]) => string | false;\n\nexport class Marked {\n defaults = _getDefaults();\n options = this.setOptions;\n\n parse = this.parseMarkdown(true);\n parseInline = this.parseMarkdown(false);\n\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n\n constructor(...args: MarkedExtension[]) {\n this.use(...args);\n }\n\n /**\n * Run callback for every token\n */\n walkTokens(tokens: Token[] | TokensList, callback: (token: Token) => MaybePromise | MaybePromise[]) {\n let values: MaybePromise[] = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table': {\n const tableToken = token as Tokens.Table;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list': {\n const listToken = token as Tokens.List;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token as Tokens.Generic;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens = genericToken[childTokens].flat(Infinity) as Token[] | TokensList;\n values = values.concat(this.walkTokens(tokens, callback));\n });\n } else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n\n use(...args: MarkedExtension[]) {\n const extensions: MarkedOptions['extensions'] = this.defaults.extensions || { renderers: {}, childTokens: {} };\n\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack } as MarkedOptions;\n\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if (['options', 'parser'].includes(prop)) {\n // ignore options property\n continue;\n }\n const rendererProp = prop as Exclude, 'options' | 'parser'>;\n const rendererFunc = pack.renderer[rendererProp] as GenericRendererFunction;\n const prevRenderer = renderer[rendererProp] as GenericRendererFunction;\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererProp] = (...args: unknown[]) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return (ret || '') as RendererOutput;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if (['options', 'rules', 'lexer'].includes(prop)) {\n // ignore options, rules, and lexer properties\n continue;\n }\n const tokenizerProp = prop as Exclude, 'options' | 'rules' | 'lexer'>;\n const tokenizerFunc = pack.tokenizer[tokenizerProp] as UnknownFunction;\n const prevTokenizer = tokenizer[tokenizerProp] as UnknownFunction;\n // Replace tokenizer with func to run extension, but fall back if false\n // @ts-expect-error cannot type tokenizer function dynamically\n tokenizer[tokenizerProp] = (...args: unknown[]) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if (['options', 'block'].includes(prop)) {\n // ignore options and block properties\n continue;\n }\n const hooksProp = prop as Exclude, 'options' | 'block'>;\n const hooksFunc = pack.hooks[hooksProp] as UnknownFunction;\n const prevHook = hooks[hooksProp] as UnknownFunction;\n if (_Hooks.passThroughHooks.has(prop)) {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (arg: unknown) => {\n if (this.defaults.async && _Hooks.passThroughHooksRespectAsync.has(prop)) {\n return (async() => {\n const ret = await hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n })();\n }\n\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n } else {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (...args: unknown[]) => {\n if (this.defaults.async) {\n return (async() => {\n let ret = await hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = await prevHook.apply(hooks, args);\n }\n return ret;\n })();\n }\n\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function(token) {\n let values: MaybePromise[] = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n\n this.defaults = { ...this.defaults, ...opts };\n });\n\n return this;\n }\n\n setOptions(opt: MarkedOptions) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n\n lexer(src: string, options?: MarkedOptions) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n\n parser(tokens: Token[], options?: MarkedOptions) {\n return _Parser.parse(tokens, options ?? this.defaults);\n }\n\n private parseMarkdown(blockType: boolean) {\n type overloadedParse = {\n (src: string, options: MarkedOptions & { async: true }): Promise;\n (src: string, options: MarkedOptions & { async: false }): ParserOutput;\n (src: string, options?: MarkedOptions | null): ParserOutput | Promise;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const parse: overloadedParse = (src: string, options?: MarkedOptions | null): any => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n\n const throwError = this.onError(!!opt.silent, !!opt.async);\n\n // throw error if an extension set async to true but parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n return throwError(new Error('marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.'));\n }\n\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n\n if (opt.hooks) {\n opt.hooks.options = opt;\n opt.hooks.block = blockType;\n }\n\n if (opt.async) {\n return (async() => {\n const processedSrc = opt.hooks ? await opt.hooks.preprocess(src) : src;\n const lexer = opt.hooks ? await opt.hooks.provideLexer(blockType) : (blockType ? _Lexer.lex : _Lexer.lexInline);\n const tokens = await lexer(processedSrc, opt);\n const processedTokens = opt.hooks ? await opt.hooks.processAllTokens(tokens) : tokens;\n if (opt.walkTokens) {\n await Promise.all(this.walkTokens(processedTokens, opt.walkTokens));\n }\n const parser = opt.hooks ? await opt.hooks.provideParser(blockType) : (blockType ? _Parser.parse : _Parser.parseInline);\n const html = await parser(processedTokens, opt);\n return opt.hooks ? await opt.hooks.postprocess(html) : html;\n })().catch(throwError);\n }\n\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src) as string;\n }\n const lexer = opt.hooks ? opt.hooks.provideLexer(blockType) : (blockType ? _Lexer.lex : _Lexer.lexInline);\n let tokens = lexer(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n const parser = opt.hooks ? opt.hooks.provideParser(blockType) : (blockType ? _Parser.parse : _Parser.parseInline);\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n } catch(e) {\n return throwError(e as Error);\n }\n };\n\n return parse;\n }\n\n private onError(silent: boolean, async: boolean) {\n return (e: Error): string | Promise => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (silent) {\n const msg = '

    An error occurred:

    '\n          + escapeHtmlEntities(e.message + '', true)\n          + '
    ';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n", "import { _Lexer } from './Lexer.ts';\nimport { _Parser } from './Parser.ts';\nimport { _Tokenizer } from './Tokenizer.ts';\nimport { _Renderer } from './Renderer.ts';\nimport { _TextRenderer } from './TextRenderer.ts';\nimport { _Hooks } from './Hooks.ts';\nimport { Marked } from './Instance.ts';\nimport {\n _getDefaults,\n changeDefaults,\n _defaults,\n} from './defaults.ts';\nimport type { MarkedExtension, MarkedOptions } from './MarkedOptions.ts';\nimport type { Token, TokensList } from './Tokens.ts';\nimport type { MaybePromise } from './Instance.ts';\n\nconst markedInstance = new Marked();\n\n/**\n * Compiles markdown to HTML asynchronously.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options, having async: true\n * @return Promise of string of compiled HTML\n */\nexport function marked(src: string, options: MarkedOptions & { async: true }): Promise;\n\n/**\n * Compiles markdown to HTML.\n *\n * @param src String of markdown source to be compiled\n * @param options Optional hash of options\n * @return String of compiled HTML. Will be a Promise of string if async is set to true by any extensions.\n */\nexport function marked(src: string, options: MarkedOptions & { async: false }): string;\nexport function marked(src: string, options: MarkedOptions & { async: true }): Promise;\nexport function marked(src: string, options?: MarkedOptions | null): string | Promise;\nexport function marked(src: string, opt?: MarkedOptions | null): string | Promise {\n return markedInstance.parse(src, opt);\n}\n\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function(options: MarkedOptions) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\n\nmarked.defaults = _defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args: MarkedExtension[]) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens: Token[] | TokensList, callback: (token: Token) => MaybePromise | MaybePromise[]) {\n return markedInstance.walkTokens(tokens, callback);\n};\n\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\n\nexport const options = marked.options;\nexport const setOptions = marked.setOptions;\nexport const use = marked.use;\nexport const walkTokens = marked.walkTokens;\nexport const parseInline = marked.parseInline;\nexport const parse = marked;\nexport const parser = _Parser.parse;\nexport const lexer = _Lexer.lex;\nexport { _defaults as defaults, _getDefaults as getDefaults } from './defaults.ts';\nexport { _Lexer as Lexer } from './Lexer.ts';\nexport { _Parser as Parser } from './Parser.ts';\nexport { _Tokenizer as Tokenizer } from './Tokenizer.ts';\nexport { _Renderer as Renderer } from './Renderer.ts';\nexport { _TextRenderer as TextRenderer } from './TextRenderer.ts';\nexport { _Hooks as Hooks } from './Hooks.ts';\nexport { Marked } from './Instance.ts';\nexport type * from './MarkedOptions.ts';\nexport type * from './Tokens.ts';\n"], - "mappings": "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", - "names": ["_getDefaults", "_defaults", "changeDefaults", "newDefaults", "noopTest", "cachedIndentRegex", "createRegex", "cache", "indent", "cacheIndex", "regex", "edit", "opt", "source", "obj", "name", "val", "valSource", "other", "supportsLookbehind", "a", "bull", "newline", "blockCode", "fences", "hr", "heading", "bullet", "lheadingCore", "lheading", "lheadingGfm", "_paragraph", "blockText", "_blockLabel", "def", "list", "_tag", "_comment", "html", "paragraph", "blockquote", "blockNormal", "gfmTable", "blockGfm", "blockPedantic", "escape", "inlineCode", "br", "inlineText", "_punctuation", "_punctuationOrSpace", "_notPunctuationOrSpace", "punctuation", "_punctuationGfmStrongEm", "_punctuationOrSpaceGfmStrongEm", "_notPunctuationOrSpaceGfmStrongEm", "blockSkip", "emStrongLDelimCore", "emStrongLDelim", "emStrongLDelimGfm", "emStrongRDelimAstCore", "emStrongRDelimAst", "emStrongRDelimAstGfm", "emStrongRDelimUnd", "delLDelim", "delRDelimCore", "delRDelim", "anyPunctuation", "autolink", "_inlineComment", "tag", "_inlineLabel", "link", "reflink", "nolink", "reflinkSearch", "_caseInsensitiveProtocol", "inlineNormal", "inlinePedantic", "inlineGfm", "inlineBreaks", "block", "inline", "escapeReplacements", "getEscapeReplacement", "ch", "escapeHtmlEntities", "encode", "cleanUrl", "href", "splitCells", "tableRow", "count", "row", "match", "offset", "str", "escaped", "curr", "cells", "i", "rtrim", "c", "invert", "l", "suffLen", "currChar", "trimTrailingBlankLines", "lines", "end", "findClosingBracket", "b", "level", "expandTabs", "line", "col", "expanded", "char", "added", "outputLink", "cap", "raw", "lexer", "rules", "title", "text", "token", "indentCodeCompensation", "matchIndentToCode", "indentToCode", "node", "matchIndentInNode", "indentInNode", "_Tokenizer", "options", "src", "trimmed", "tokens", "inBlockquote", "currentLines", "currentRaw", "currentText", "top", "lastToken", "oldToken", "newText", "newToken", "isordered", "itemRegex", "endsWithBlankLine", "endEarly", "itemContents", "nextLine", "blankLine", "nextBulletRegex", "hrRegex", "fencesBeginRegex", "headingBeginRegex", "htmlBeginRegex", "blockquoteBeginRegex", "rawLine", "nextLineWithoutTabs", "lastItem", "item", "itemToken", "taskRaw", "checkboxToken", "spacers", "t", "hasMultipleLineBreaks", "headers", "aligns", "rows", "align", "cell", "trimmedUrl", "rtrimSlash", "lastParenIndex", "linkLen", "links", "linkString", "maskedSrc", "prevChar", "lLength", "rDelim", "rLength", "delimTotal", "midDelimTotal", "endReg", "lastCharLength", "hasNonSpaceChars", "hasSpaceCharsOnBothEnds", "prevCapZero", "_a", "_Lexer", "__Lexer", "next", "lastParagraphClipped", "srcLength", "extTokenizer", "cutSrc", "startIndex", "tempSrc", "tempStart", "getStartIndex", "keepPrevChar", "_e", "byte", "errMsg", "_Renderer", "lang", "langString", "code", "depth", "ordered", "start", "body", "j", "type", "startAttr", "checked", "header", "k", "content", "cleanHref", "out", "_TextRenderer", "_Parser", "__Parser", "anyToken", "genericToken", "ret", "renderer", "_Hooks", "markdown", "Marked", "args", "callback", "values", "tableToken", "listToken", "childTokens", "extensions", "pack", "opts", "ext", "prevRenderer", "extLevel", "prop", "rendererProp", "rendererFunc", "tokenizer", "tokenizerProp", "tokenizerFunc", "prevTokenizer", "hooks", "hooksProp", "hooksFunc", "prevHook", "arg", "walkTokens", "packWalktokens", "blockType", "origOpt", "throwError", "processedSrc", "processedTokens", "e", "silent", "async", "msg", "markedInstance", "marked", "setOptions", "use", "parseInline", "parse", "parser"] -} diff --git a/unpackage/dist/cache/.vite/deps/snarkdown.js b/unpackage/dist/cache/.vite/deps/snarkdown.js index 5ced2b6..fe048dc 100644 --- a/unpackage/dist/cache/.vite/deps/snarkdown.js +++ b/unpackage/dist/cache/.vite/deps/snarkdown.js @@ -1,6 +1,6 @@ -import "./chunk-F3FYYIAV.js"; +import "./chunk-TDUMLE5V.js"; -// ../../../../Projects/uniapp/app-test/test1/node_modules/snarkdown/dist/snarkdown.es.js +// ../../../../../py/77/phone-app------test1-/node_modules/snarkdown/dist/snarkdown.es.js var e = { "": ["", ""], _: ["", ""], "*": ["", ""], "~": ["", ""], "\n": ["
    "], " ": ["
    "], "-": ["
    "] }; function n(e2) { return e2.replace(RegExp("^" + (e2.match(/^(\t| )+/) || "")[0], "gm"), ""); diff --git a/utils/wyxd-parser.js b/utils/wyxd-parser.js new file mode 100644 index 0000000..dc910c1 --- /dev/null +++ b/utils/wyxd-parser.js @@ -0,0 +1,292 @@ +import JSZip from 'jszip' + +const BASE_URL = 'https://cloud.yuxindazhineng.com' +const CACHE_PREFIX = 'wyxd_' + +// ===== 缓存管理 ===== + +const cacheKey = (workspaceId, filePath) => `${CACHE_PREFIX}${workspaceId}_${filePath}` + +export const isWyxdCached = (workspaceId, filePath) => { + try { + const cached = uni.getStorageSync(cacheKey(workspaceId, filePath)) + return !!(cached && cached.slides && cached.slides.length > 0) + } catch (_) { + return false + } +} + +export const getCachedWyxd = (workspaceId, filePath) => { + try { + const cached = uni.getStorageSync(cacheKey(workspaceId, filePath)) + if (cached && cached.slides && cached.slides.length > 0) return cached + } catch (_) {} + return null +} + +export const setCachedWyxd = (workspaceId, filePath, data) => { + try { + const toStore = { ...data, cachedAt: Date.now() } + uni.setStorageSync(cacheKey(workspaceId, filePath), toStore) + } catch (_) {} +} + +export const clearCachedWyxd = (workspaceId, filePath) => { + try { + uni.removeStorageSync(cacheKey(workspaceId, filePath)) + } catch (_) {} +} + +// ===== 下载 ===== + +const getDownloadUrl = (token, workspaceId, filePath) => { + return new Promise((resolve, reject) => { + const cleanPath = filePath.startsWith('./') ? filePath.slice(2) : filePath + uni.request({ + url: `${BASE_URL}/cloud_api/phone/workspace/downloadFile`, + method: 'POST', + header: { 'Content-Type': 'application/json' }, + data: { + access_token: token, + workspaces_id: workspaceId, + file_path: cleanPath + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data + const arr = respond.success ? (respond.message || respond.data) : respond + const fileInfo = Array.isArray(arr) ? arr[0] : arr + if (fileInfo && fileInfo.url) { + resolve(fileInfo.url) + } else { + reject(respond?.error || '获取下载地址失败') + } + } else { + reject(`请求失败:${res.statusCode}`) + } + }, + fail: (err) => reject(err) + }) + }) +} + +export const downloadWyxdAsZip = (token, workspaceId, filePath, onProgress) => { + return new Promise(async (resolve, reject) => { + try { + const downloadUrl = await getDownloadUrl(token, workspaceId, filePath) + const downloadTask = uni.downloadFile({ + url: downloadUrl, + success: (res) => { + if (res.statusCode === 200) { + resolve(res.tempFilePath) + } else { + reject(`下载失败:${res.statusCode}`) + } + }, + fail: (err) => reject(err) + }) + if (onProgress && downloadTask) { + downloadTask.onProgressUpdate((res) => { + onProgress(res.progress) + }) + } + } catch (err) { + reject(err) + } + }) +} + +// ===== 解压 ===== + +// 手动 UTF-8 解码,兼容不支持 TextDecoder 的旧版本 WebView +const utf8Decode = (uint8arr) => { + let result = '' + let i = 0 + while (i < uint8arr.length) { + const b0 = uint8arr[i] + if (b0 < 128) { + result += String.fromCharCode(b0) + i++ + } else if (b0 < 224) { + result += String.fromCharCode(((b0 & 31) << 6) | (uint8arr[i + 1] & 63)) + i += 2 + } else if (b0 < 240) { + result += String.fromCharCode(((b0 & 15) << 12) | ((uint8arr[i + 1] & 63) << 6) | (uint8arr[i + 2] & 63)) + i += 3 + } else { + result += String.fromCharCode(((b0 & 7) << 18) | ((uint8arr[i + 1] & 63) << 12) | ((uint8arr[i + 2] & 63) << 6) | (uint8arr[i + 3] & 63)) + i += 4 + } + } + return result +} + +const readFileAsArrayBuffer = (filePath) => { + return new Promise((resolve, reject) => { + // App 环境:uni.getFileSystemManager + const fs = uni.getFileSystemManager + if (typeof fs === 'function') { + fs().readFile({ + filePath: filePath, + encoding: 'base64', + success: (res) => { + const base64 = res.data || '' + const binary = atob(base64) + const bytes = new Uint8Array(binary.length) + for (let i = 0; i < binary.length; i++) { + bytes[i] = binary.charCodeAt(i) + } + resolve(bytes) + }, + fail: (err) => reject(new Error('无法读取文件:' + (err.errMsg || err.message || ''))) + }) + return + } + // H5 环境:fetch blob URL + fetch(filePath) + .then(res => { + if (!res.ok) throw new Error('文件请求失败:' + res.status) + return res.arrayBuffer() + }) + .then(buf => resolve(new Uint8Array(buf))) + .catch(err => reject(new Error('H5 读取文件失败:' + (err.message || err)))) + }) +} + +export const extractWyxd = async (zipFilePath) => { + const data = await readFileAsArrayBuffer(zipFilePath) + const zip = await JSZip.loadAsync(data) + const result = { header: '', html: '', images: {} } + + for (const [filename, zipEntry] of Object.entries(zip.files)) { + if (zipEntry.dir) continue + const pureName = filename.replace(/^.*[/\\]/, '') + const content = await zipEntry.async('uint8array') + + if (pureName === 'header.txt') { + result.header = utf8Decode(content) + } else if (pureName.endsWith('.html') || pureName.endsWith('.htm')) { + result.html = utf8Decode(content) + } else if (/\.(png|jpg|jpeg|gif|svg|webp|bmp)$/i.test(pureName)) { + result.images[filename.replace(/^\.[/\\]?/, '')] = arrayBufferToBase64(content, pureName) + } + } + return result +} + +const arrayBufferToBase64 = (buffer, filename) => { + let binary = '' + const bytes = new Uint8Array(buffer) + for (let i = 0; i < bytes.byteLength; i++) { + binary += String.fromCharCode(bytes[i]) + } + const ext = (filename || '').split('.').pop().toLowerCase() + const mimeMap = { png: 'image/png', jpg: 'image/jpeg', jpeg: 'image/jpeg', + gif: 'image/gif', svg: 'image/svg+xml', webp: 'image/webp', bmp: 'image/bmp' } + const mime = mimeMap[ext] || 'image/png' + return `data:${mime};base64,${btoa(binary)}` +} + +// ===== 解析 HTML 为幻灯片 ===== + +export const parseSlides = (fullHtml, headerHtml, imageMap) => { + const bodyMatch = fullHtml.match(/]*>([\s\S]*?)<\/body>/i) + const bodyHtml = bodyMatch ? bodyMatch[1] : fullHtml + + const pageRegex = /]*\/?>/gi + const parts = bodyHtml.split(pageRegex) + if (parts.length === 0) return [] + + const pageTags = bodyHtml.match(pageRegex) || [] + + const slides = [] + + // 第一段(封面之前可能没有 page 标签) + parts.forEach((part, idx) => { + const html = part.trim() + if (!html) return + + // 获取对应的 page 标签参数 + let pageAttrs = { order: idx, num: 0 } + if (idx < pageTags.length) { + const tagStr = pageTags[idx] + const orderMatch = tagStr.match(/order\s*=\s*["'](\d+)["']/i) + const numMatch = tagStr.match(/num\s*=\s*["'](\d+)["']/i) + if (orderMatch) pageAttrs.order = parseInt(orderMatch[1]) + if (numMatch) pageAttrs.num = parseInt(numMatch[1]) + } + + const slide = { + order: pageAttrs.order, + num: pageAttrs.num, + type: 'content', + html: html + } + + if (/class\s*=\s*["'][^"']*\bwyxd-cover\b/i.test(html)) { + slide.type = 'cover' + } else if (/class\s*=\s*["'][^"']*\bwyxd-toc\b/i.test(html)) { + slide.type = 'toc' + } + + slides.push(slide) + }) + + return buildSlideHtml(slides, headerHtml, imageMap, fullHtml) +} + +const getHeadContent = (html) => { + const match = String(html).match(/]*>([\s\S]*?)<\/head>/i) + return match ? match[1] : '' +} + +const buildSlideHtml = (slides, headerHtml, imageMap, fullHtml) => { + const headContent = getHeadContent(fullHtml) + const baseStyle = extractBaseStyle(fullHtml) + + return slides.map((slide) => { + let processedHtml = slide.html + + // 替换图片 src + processedHtml = processedHtml.replace(/src\s*=\s*["']([^"']+)["']/gi, (match, src) => { + // 尝试多种路径匹配 + let base64 = imageMap[src] || + imageMap[src.replace(/^.*?images\//i, 'images/')] + if (base64) { + return `src="${base64}"` + } + return match + }) + + // 正文页:注入页眉 + 页码 + if (slide.type === 'content') { + // 页眉 + if (headerHtml) { + processedHtml = headerHtml + processedHtml + } + // 页码 + if (slide.num > 0) { + const pageNumHtml = + `
    + + ${slide.num}
    ` + processedHtml += pageNumHtml + } + } + + return { + ...slide, + html: `
    + + ${processedHtml} +
    `, + headStyle: headContent + } + }) +} + +const extractBaseStyle = (html) => { + const styleMatch = html.match(/]*>([\s\S]*?)<\/style>/i) + return styleMatch ? styleMatch[1] : '' +}