diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index efca8434d8..ff095d49b4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -162,6 +162,9 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile + - name: Validate PPT Live generated-file contract + run: pnpm run test:ppt-live + - name: Validate GitHub config run: pnpm run check:github-config diff --git a/package.json b/package.json index 723bba02e1..1baba40ccd 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "i18n:generate": "node scripts/generate-i18n-contract.mjs", "i18n:contract:test": "node --test scripts/i18n-contract.test.mjs", "i18n:contract:test:ci": "cross-env BITFUN_I18N_CONTRACT_TEST_PROFILE=ci node --test scripts/i18n-contract.test.mjs", + "test:ppt-live": "node --test src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/test/*.test.mjs", "i18n:audit": "node scripts/i18n-audit.mjs", "theme:color-audit": "node scripts/audit-theme-colors.mjs", "theme:color-audit:mobile": "node scripts/audit-theme-colors.mjs --root src/mobile-web/src --baseline scripts/theme-color-governance-baseline.mobile-web.json", @@ -106,6 +107,8 @@ }, "packageManager": "pnpm@10.15.0+sha512.486ebc259d3e999a4e8691ce03b5cac4a71cbeca39372a9b762cb500cfdf0873e2cb16abe3d951b1ee2cf012503f027b98b6584e4df22524e0c7450d9ec7aa7b", "dependencies": { + "jszip": "^3.10.1", + "pdf-lib": "^1.17.1", "pnpm": "^10.32.1", "pptxgenjs": "^4.0.1" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d29ec065f4..30132d17c6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,12 @@ importers: .: dependencies: + jszip: + specifier: ^3.10.1 + version: 3.10.1 + pdf-lib: + specifier: ^1.17.1 + version: 1.17.1 pnpm: specifier: ^10.32.1 version: 10.32.1 @@ -1309,6 +1315,12 @@ packages: resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} engines: {node: '>= 10.0.0'} + '@pdf-lib/standard-fonts@1.0.0': + resolution: {integrity: sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==} + + '@pdf-lib/upng@1.0.1': + resolution: {integrity: sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==} + '@pinojs/redact@0.4.0': resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} @@ -4334,6 +4346,9 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + pdf-lib@1.17.1: + resolution: {integrity: sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==} + pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} @@ -5068,6 +5083,9 @@ packages: '@swc/wasm': optional: true + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -6424,6 +6442,14 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.6 optional: true + '@pdf-lib/standard-fonts@1.0.0': + dependencies: + pako: 1.0.11 + + '@pdf-lib/upng@1.0.1': + dependencies: + pako: 1.0.11 + '@pinojs/redact@0.4.0': {} '@pkgjs/parseargs@0.11.0': @@ -10172,6 +10198,13 @@ snapshots: pathe@2.0.3: {} + pdf-lib@1.17.1: + dependencies: + '@pdf-lib/standard-fonts': 1.0.0 + '@pdf-lib/upng': 1.0.1 + pako: 1.0.11 + tslib: 1.14.1 + pend@1.2.0: {} picocolors@1.1.1: {} @@ -11077,6 +11110,8 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + tslib@1.14.1: {} + tslib@2.8.1: {} tsx@4.21.0: diff --git a/src/crates/assembly/core/builtin_skills/ppt-design/SKILL.md b/src/crates/assembly/core/builtin_skills/ppt-design/SKILL.md index b84787b835..95308771bf 100644 --- a/src/crates/assembly/core/builtin_skills/ppt-design/SKILL.md +++ b/src/crates/assembly/core/builtin_skills/ppt-design/SKILL.md @@ -12,10 +12,10 @@ license: MIT ## 项目约定 -`{{ppt_project_dir}}` 为当前 deck 根目录,**只在此目录读写**。 +Agent 启动时的**当前工作区根目录就是当前 deck 根目录**,不是待替换的模板变量,也不是工作区下另建的同名子目录。所有交付路径都相对当前工作区根目录,且**只在此工作区读写**。 - **页文件**:`slides/slide-01.html` …(两位数编号,与 `outline[].slide_id` 对应) -- **大纲**:`project.json` → `outline[]`:`{ id, title, bullets[], slide_id }` +- **大纲**:`project.json` → `outline[]`:`{ id, title, bullets[], slide_id }`;规划时 `status: "planning"`,仅在全部引用页面完整写入后改为 `status: "complete"` - **品牌图**:`brand/` ## 核心原则(严格遵守) @@ -64,7 +64,7 @@ license: MIT | 既要复杂视觉又要可改字 pptx | **不可兼得**——说明限制;保留 1920 演讲版或另做简化 960 版 | ``` -{{ppt_project_dir}}/ +当前工作区根目录/ ├── project.json # outline[], slide_order[], style, assumptions ├── brand/ ├── slides/slide-XX.html @@ -161,10 +161,10 @@ DNA 与样例 → `references/design-styles.md`。 ## 工作流 -1. **假设 + 纲**:更新 `project.json` 的 `outline[]` / `slide_order`;顺带识别可能受益于图表、图示或更强视觉表达的页面,先不批量写 HTML。**若主题涉及技术方案/工程/系统/项目分析,必须在 outline 阶段就识别出哪些页是「系统组成」「处理流程」「多角色协作」「根因分析」,并标注用架构图/流程图/泳道图/因果链**(参考上方「技术方案类内容的特别触发」)。 +1. **假设 + 纲**:先写 `project.json`,设置 `status: "planning"` 并完成 `outline[]` / `slide_order`,再开始任何 `slides/slide-NN.html`;顺带识别可能受益于图表、图示或更强视觉表达的页面,先不批量写 HTML。**若主题涉及技术方案/工程/系统/项目分析,必须在 outline 阶段就识别出哪些页是「系统组成」「处理流程」「多角色协作」「根因分析」,并标注用架构图/流程图/泳道图/因果链**(参考上方「技术方案类内容的特别触发」)。 2. **≥5 页先打样**:做 2 页视觉差异最大的 showcase,定 grammar 再批量(见 slide-decks.md)。 3. **逐页 HTML**:封面 `slide-01`(标题/副标题/作者或日期)→ 按 outline 生成其余页;根据内容与风格自由选择图表、图示、文字、图片或混合构图,每页完整内联 CSS。**写每页时一次写对**:写之前先做垂直预算心算(见「防溢出预算」),写的时候同时遵守四条 OOXML 硬约束(文字用 p/h\* 包裹、纯色无渐变、背景/边框只在 DIV、不用 background-image),写完即止。 -4. **禁止事后审计**:所有页面写完后**不得**再回头逐页 Read → Edit 返工,也不得用 Grep 批量检查约束。约束在写时遵守,不事后补救。写完最后一页后直接输出完成总结即可。 +4. **有界完成检查**:最后一页写完后仅检查一次生成文件协议:`outline[].slide_id` 与 `slide_order` 一一对应、每个 `slides/slide-NN.html` 存在且完整。只补写缺失或不完整文件,不做逐页内容审计,不用 Grep 批量检查设计约束;全部满足后将 `project.json.status` 改为 `"complete"` 并结束。 5. **改稿范围**(输入里若有 `scope`): - `deck`:可改 outline 与任意 `slides/*.html` - `current_slide` / `slide_index`:**只改指定页**,不动其他 slide 文件 diff --git a/src/crates/contracts/product-domains/src/miniapp/builtin.rs b/src/crates/contracts/product-domains/src/miniapp/builtin.rs index 6cc6aa19f2..24102cf780 100644 --- a/src/crates/contracts/product-domains/src/miniapp/builtin.rs +++ b/src/crates/contracts/product-domains/src/miniapp/builtin.rs @@ -151,7 +151,7 @@ pub const BUILTIN_APPS: &[BuiltinMiniAppBundle] = &[ }, BuiltinMiniAppBundle { id: "builtin-ppt-live", - version: 203, + version: 217, meta_json: include_str!("builtin/assets/ppt-live/meta.json"), html: include_str!("builtin/assets/ppt-live/index.html"), css: include_str!("builtin/assets/ppt-live/style.css"), @@ -560,20 +560,22 @@ mod tests { ); assert!(app.ui_js.contains("Unsupported PPT Live action")); // A single cowork agent turn loads the ppt-design skill and produces - // the whole deck end to end. The prompt is intentionally minimal — the - // skill owns all design rules via progressive disclosure. + // the whole deck end to end. Prompt construction is isolated from the + // host adapter so its generated-file contract can be tested directly. let adapter_source = include_str!("builtin/assets/ppt-live/src/bitfun-backend-adapter.js"); + let prompt_source = include_str!("builtin/assets/ppt-live/src/agent-prompt.js"); assert!(adapter_source.contains("sessionId: options.sessionId")); - assert!(adapter_source.contains("user::bitfun-system::ppt-design")); assert!(adapter_source.contains("buildAgentPrompt")); + assert!(prompt_source.contains("user::bitfun-system::ppt-design")); + assert!(prompt_source.contains("export function buildAgentPrompt")); assert!(!adapter_source.contains("app.ai")); assert!(!adapter_source.contains("installFallbackBackend")); // The prompt must delegate design rules to the skill, not restate them. - assert!(!adapter_source.contains("EDITABLE_PPTX_HARD_RULES")); - assert!(!adapter_source.contains("PPT_DESIGN_REQUIRED_REFERENCES")); - assert!(!adapter_source.contains("comparisons -> tables/matrices")); - assert!(!adapter_source.contains("Design quality bar")); - assert!(!adapter_source.contains("Müller-Brockmann")); + assert!(!prompt_source.contains("EDITABLE_PPTX_HARD_RULES")); + assert!(!prompt_source.contains("PPT_DESIGN_REQUIRED_REFERENCES")); + assert!(!prompt_source.contains("comparisons -> tables/matrices")); + assert!(!prompt_source.contains("Design quality bar")); + assert!(!prompt_source.contains("Müller-Brockmann")); assert!(app.ui_js.contains("Unknown MiniApp agent session")); // Generation follows the ppt-design skill's native file protocol: the // agent works inside a deck project directory under the app's appdata @@ -599,8 +601,8 @@ mod tests { assert!(!meta["permissions"]["ai"]["enabled"] .as_bool() .unwrap_or(true)); - // The single cowork agent turn loads the ppt-design skill itself. - assert!(adapter_source.contains("user::bitfun-system::ppt-design")); + // The single cowork agent turn loads the stable ppt-design skill key. + assert!(prompt_source.contains("user::bitfun-system::ppt-design")); let ppt_live_source = include_str!("builtin/assets/ppt-live/ui.js"); // Single-turn cowork generation: one agent turn produces the whole deck. assert!(ppt_live_source.contains("runCoworkDeckGeneration")); diff --git a/src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/bundle.json b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/bundle.json index 6fcea9d583..41c0d008f9 100644 --- a/src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/bundle.json +++ b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/bundle.json @@ -1,5 +1,5 @@ { "schemaVersion": 1, "id": "builtin-ppt-live", - "version": 203 + "version": 217 } diff --git a/src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/dist/ui.bundle.js b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/dist/ui.bundle.js index 9c46448bac..414dc6ad7e 100644 --- a/src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/dist/ui.bundle.js +++ b/src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/dist/ui.bundle.js @@ -30,9 +30,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge mod )); -// ../../../../../../../../../../../../node_modules/pako/lib/utils/common.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/common.js var require_common = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/utils/common.js"(exports) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/common.js"(exports) { "use strict"; var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined"; function _has(obj, key) { @@ -121,9 +121,9 @@ var require_common = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/lib/zlib/trees.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/trees.js var require_trees = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/zlib/trees.js"(exports) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/trees.js"(exports) { "use strict"; var utils = require_common(); var Z_FIXED = 4; @@ -763,9 +763,9 @@ var require_trees = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/lib/zlib/adler32.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/adler32.js var require_adler32 = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/zlib/adler32.js"(exports, module) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/adler32.js"(exports, module) { "use strict"; function adler32(adler, buf, len, pos) { var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0; @@ -785,9 +785,9 @@ var require_adler32 = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/lib/zlib/crc32.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/crc32.js var require_crc32 = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/zlib/crc32.js"(exports, module) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/crc32.js"(exports, module) { "use strict"; function makeTable() { var c, table = []; @@ -813,9 +813,9 @@ var require_crc32 = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/lib/zlib/messages.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/messages.js var require_messages = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/zlib/messages.js"(exports, module) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/messages.js"(exports, module) { "use strict"; module.exports = { 2: "need dictionary", @@ -840,9 +840,9 @@ var require_messages = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/lib/zlib/deflate.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/deflate.js var require_deflate = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/zlib/deflate.js"(exports) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/deflate.js"(exports) { "use strict"; var utils = require_common(); var trees = require_trees(); @@ -1889,9 +1889,9 @@ var require_deflate = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/lib/utils/strings.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/strings.js var require_strings = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/utils/strings.js"(exports) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/strings.js"(exports) { "use strict"; var utils = require_common(); var STR_APPLY_OK = true; @@ -2031,9 +2031,9 @@ var require_strings = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/lib/zlib/zstream.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/zstream.js var require_zstream = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/zlib/zstream.js"(exports, module) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/zstream.js"(exports, module) { "use strict"; function ZStream() { this.input = null; @@ -2053,9 +2053,9 @@ var require_zstream = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/lib/deflate.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/deflate.js var require_deflate2 = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/deflate.js"(exports) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/deflate.js"(exports) { "use strict"; var zlib_deflate = require_deflate(); var utils = require_common(); @@ -2214,9 +2214,9 @@ var require_deflate2 = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/lib/zlib/inffast.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inffast.js var require_inffast = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/zlib/inffast.js"(exports, module) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inffast.js"(exports, module) { "use strict"; var BAD = 30; var TYPE = 12; @@ -2443,9 +2443,9 @@ var require_inffast = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/lib/zlib/inftrees.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inftrees.js var require_inftrees = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/zlib/inftrees.js"(exports, module) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inftrees.js"(exports, module) { "use strict"; var utils = require_common(); var MAXBITS = 15; @@ -2759,9 +2759,9 @@ var require_inftrees = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/lib/zlib/inflate.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inflate.js var require_inflate = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/zlib/inflate.js"(exports) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inflate.js"(exports) { "use strict"; var utils = require_common(); var adler32 = require_adler32(); @@ -3998,9 +3998,9 @@ var require_inflate = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/lib/zlib/constants.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/constants.js var require_constants = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/zlib/constants.js"(exports, module) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/constants.js"(exports, module) { "use strict"; module.exports = { /* Allowed flush values; see deflate() and inflate() below for details */ @@ -4045,9 +4045,9 @@ var require_constants = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/lib/zlib/gzheader.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/gzheader.js var require_gzheader = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/zlib/gzheader.js"(exports, module) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/gzheader.js"(exports, module) { "use strict"; function GZheader() { this.text = 0; @@ -4065,9 +4065,9 @@ var require_gzheader = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/lib/inflate.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/inflate.js var require_inflate2 = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/lib/inflate.js"(exports) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/inflate.js"(exports) { "use strict"; var zlib_inflate = require_inflate(); var utils = require_common(); @@ -4239,9 +4239,9 @@ var require_inflate2 = __commonJS({ } }); -// ../../../../../../../../../../../../node_modules/pako/index.js +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/index.js var require_pako = __commonJS({ - "../../../../../../../../../../../../node_modules/pako/index.js"(exports, module) { + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/index.js"(exports, module) { "use strict"; var assign = require_common().assign; var deflate = require_deflate2(); @@ -4253,2375 +4253,9 @@ var require_pako = __commonJS({ } }); -// ../../../../../../../../../node_modules/jszip/dist/jszip.min.js +// node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/dist/jszip.min.js var require_jszip_min = __commonJS({ - "../../../../../../../../../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); - }); - } -}); - -// ../../../../../../../../../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/dist/jszip.min.js -var require_jszip_min2 = __commonJS({ - "../../../../../../../../../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/dist/jszip.min.js"(exports, module) { + "node_modules/.pnpm/jszip@3.10.1/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); @@ -8997,7 +6631,7 @@ var require_node_https = __commonJS({ } }); -// src/i18n.js +// src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/src/i18n.js var STRINGS = { "en-US": { eyebrow: "AI Deck Studio", @@ -9258,6 +6892,20 @@ var STRINGS = { exportPptxWorking: "Rendering editable PPTX...", exportPptxDone: "Editable PPTX downloaded.", exportPptxFailed: "PPTX export failed:", + exportDiagnosticsSummary: "Exported with visual adjustments: {{counts}}. {{locations}}", + exportDiagnosticsRepaired: "{{count}} automatic repairs", + exportDiagnosticsSvg: "{{count}} local SVG layers", + exportDiagnosticsLocalPng: "{{count}} local PNG layers", + exportDiagnosticsPageVisual: "{{count}} page visual layers", + exportDiagnosticsFullPage: "{{count}} full-page fallbacks", + exportDiagnosticsBlocking: "{{count}} blocking failures", + exportDiagnosticsLocation: "Slide {{slide}}, element {{source}} ({{phase}}): {{reason}}", + exportDiagnosticsPhaseRepair: "automatic repair", + exportDiagnosticsPhaseSvg: "local SVG", + exportDiagnosticsPhaseLocalPng: "local PNG", + exportDiagnosticsPhasePageVisual: "page visual fallback", + exportDiagnosticsPhaseFullPage: "full-page fallback", + exportDiagnosticsPhaseBlocking: "blocking failure", exportPdfWorking: "Rendering PDF...", exportPdfDone: "PDF downloaded.", exportPdfFailed: "PDF export failed:", @@ -9634,6 +7282,20 @@ var STRINGS = { exportPptxWorking: "\u6B63\u5728\u6E32\u67D3\u53EF\u7F16\u8F91 PPTX...", exportPptxDone: "\u53EF\u7F16\u8F91 PPTX \u5DF2\u4E0B\u8F7D\u3002", exportPptxFailed: "PPTX \u5BFC\u51FA\u5931\u8D25\uFF1A", + exportDiagnosticsSummary: "\u5DF2\u5B8C\u6210\u5BFC\u51FA\uFF0C\u5E76\u8FDB\u884C\u4E86\u89C6\u89C9\u8C03\u6574\uFF1A{{counts}}\u3002{{locations}}", + exportDiagnosticsRepaired: "\u81EA\u52A8\u4FEE\u590D {{count}} \u5904", + exportDiagnosticsSvg: "\u5C40\u90E8 SVG \u5C42 {{count}} \u4E2A", + exportDiagnosticsLocalPng: "\u5C40\u90E8 PNG \u5C42 {{count}} \u4E2A", + exportDiagnosticsPageVisual: "\u9875\u9762\u89C6\u89C9\u5C42 {{count}} \u4E2A", + exportDiagnosticsFullPage: "\u6574\u9875\u515C\u5E95 {{count}} \u9875", + exportDiagnosticsBlocking: "\u963B\u65AD\u5931\u8D25 {{count}} \u5904", + exportDiagnosticsLocation: "\u7B2C {{slide}} \u9875\uFF0C\u5143\u7D20 {{source}}\uFF08{{phase}}\uFF09\uFF1A{{reason}}", + exportDiagnosticsPhaseRepair: "\u81EA\u52A8\u4FEE\u590D", + exportDiagnosticsPhaseSvg: "\u5C40\u90E8 SVG", + exportDiagnosticsPhaseLocalPng: "\u5C40\u90E8 PNG", + exportDiagnosticsPhasePageVisual: "\u9875\u9762\u89C6\u89C9\u515C\u5E95", + exportDiagnosticsPhaseFullPage: "\u6574\u9875\u515C\u5E95", + exportDiagnosticsPhaseBlocking: "\u963B\u65AD\u5931\u8D25", exportPdfWorking: "\u6B63\u5728\u6E32\u67D3 PDF...", exportPdfDone: "PDF \u5DF2\u4E0B\u8F7D\u3002", exportPdfFailed: "PDF \u5BFC\u51FA\u5931\u8D25\uFF1A", @@ -9767,7 +7429,7 @@ function translate(key, params = {}) { return value2; } -// src/style-presets.js +// src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/src/style-presets.js var STYLE_PRESET_UI_KEYS = ["clean-business", "insight-report"]; var STYLE_PRESETS = { // === 商务/极简 === @@ -10034,7 +7696,7 @@ function getAllStylePresets(locale) { }); } -// src/state.js +// src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/src/state.js var STORAGE_KEY = "pptLiveStudioStateV6"; var HISTORY_KEY = "pptLiveDeckHistoryV1"; var SCHEMA_VERSION = 6; @@ -10775,7 +8437,7 @@ function pointsFor(title, index, state2) { return picks; } -// src/flat-select.js +// src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/src/flat-select.js var OPEN_SELECTS = /* @__PURE__ */ new Set(); function closeSelect(wrap) { const menu = wrap.querySelector(".ppt-flat-select__menu"); @@ -10944,7 +8606,7 @@ function enhanceFlatSelect(select) { function refreshFlatSelect(select) { syncFlatSelect(select); } -if (!window.__pptLiveFlatSelectBound) { +if (typeof window !== "undefined" && typeof document !== "undefined" && !window.__pptLiveFlatSelectBound) { window.__pptLiveFlatSelectBound = true; document.addEventListener("click", handleOutsideClick); document.addEventListener("keydown", (event) => { @@ -10956,7 +8618,584 @@ if (!window.__pptLiveFlatSelectBound) { document.addEventListener("scroll", handleOutsideScroll, true); } -// src/render.js +// src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/src/element-model-html.js +var escapeHtml2 = (value2) => String(value2 ?? "").replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'"); +var DEFAULT_THEME = { + background: "#ffffff", + ink: "#111111", + muted: "#666666", + primary: "#0f766e", + accent: "#f97316", + panel: "#ffffff" +}; +function colorMix(hex2, alpha) { + const raw = String(hex2 || DEFAULT_THEME.primary).replace("#", ""); + const normalized = raw.length === 3 ? raw.split("").map((value2) => value2 + value2).join("") : raw; + const parsed = Number.parseInt(normalized, 16); + if (!Number.isFinite(parsed)) return `rgba(15, 118, 110, ${alpha})`; + return `rgba(${parsed >> 16 & 255}, ${parsed >> 8 & 255}, ${parsed & 255}, ${alpha})`; +} +function resolveElementColor(value2, theme = {}) { + const palette = { ...DEFAULT_THEME, ...theme }; + if (!value2 || value2 === "transparent") return "transparent"; + if (value2 === "soft") return colorMix(palette.primary, 0.1); + if (Object.hasOwn(palette, value2)) return palette[value2]; + return String(value2); +} +function editorFontSize(value2) { + const size = Math.max(8, Number(value2) || 24); + const cqw = Math.round(size / 10.2 * 1e3) / 1e3; + return `clamp(8px, ${cqw}cqw, ${size}px)`; +} +function elementStyle(element2, theme, mode) { + const style = element2?.style || {}; + const fontSize = Math.max(8, Number(style.fontSize) || 24); + return [ + `left:${Number(element2?.x) || 0}%`, + `top:${Number(element2?.y) || 0}%`, + `width:${Number(element2?.w) || 0}%`, + `height:${Number(element2?.h) || 0}%`, + `font-size:${mode === "editor" ? editorFontSize(fontSize) : `${fontSize}px`}`, + `font-weight:${Number(style.fontWeight) || 600}`, + `color:${resolveElementColor(style.color || "ink", theme)}`, + `text-align:${style.align || "left"}`, + `background:${resolveElementColor(style.background || "transparent", theme)}`, + `opacity:${Number.isFinite(Number(style.opacity)) ? Number(style.opacity) : 1}`, + `border-radius:${Math.max(0, Number(style.borderRadius) || 0)}px` + ].join(";"); +} +function semanticElementContent(element2, mediaPlaceholder) { + const type = String(element2?.type || "text"); + if (type === "list") { + return ``; + } + if (type === "metric") { + return `

${escapeHtml2(element2.text || "")}

${escapeHtml2(element2.label || "")}

`; + } + if (type === "chart") { + const points = Array.isArray(element2.data) ? element2.data : []; + const max = Math.max(1, ...points.map((point) => Math.abs(Number(point?.value) || 0))); + return `

${escapeHtml2(element2.text || "")}

${points.map((point) => { + const value2 = Number(point?.value) || 0; + const height = Math.max(8, Math.abs(value2) / max * 100); + return `

${escapeHtml2(point?.label || "")}

${escapeHtml2(value2)}

`; + }).join("")}
`; + } + if (type === "media") { + const source = element2.src || element2.url || element2.dataUrl || element2.imageUrl || ""; + const caption = element2.text || element2.label || mediaPlaceholder; + return `
${source ? `${escapeHtml2(caption)}` : ""}

${escapeHtml2(caption)}

`; + } + const text2 = element2.text || ""; + return text2 ? `

${escapeHtml2(text2)}

` : ""; +} +function editorElementContent(element2, mediaPlaceholder, editable) { + const type = String(element2?.type || "text"); + if (type === "list") { + return ``; + } + if (type === "metric") { + return `${escapeHtml2(element2.text)}${escapeHtml2(element2.label)}`; + } + if (type === "chart") { + const points = Array.isArray(element2.data) ? element2.data : []; + const max = Math.max(1, ...points.map((point) => Number(point?.value) || 0)); + return `${escapeHtml2(element2.text)}
${points.map((point) => `${escapeHtml2(point?.label)}`).join("")}
`; + } + if (type === "media") return `${escapeHtml2(element2.text || mediaPlaceholder)}`; + return editable ? `${escapeHtml2(element2.text || "")}` : escapeHtml2(element2.text || ""); +} +function elementModelElementHtml(element2 = {}, theme = {}, { + mode = "semantic", + editable = false, + selectedId = "", + mediaPlaceholder = "Media placeholder" +} = {}) { + const type = String(element2.type || "text"); + const selected = mode === "editor" && editable && selectedId === element2.id; + const content = mode === "editor" ? editorElementContent(element2, mediaPlaceholder, editable) : semanticElementContent(element2, mediaPlaceholder); + return `
${content}${selected ? '' : ""}
`; +} +function buildElementSlideHtml(slide = {}) { + const theme = { ...DEFAULT_THEME, ...slide.theme || {} }; + const elements = Array.isArray(slide.elements) ? slide.elements : []; + const fallback = elements.length ? "" : `

${escapeHtml2(slide.title || "Slide")}

${slide.subtitle || slide.claim ? `

${escapeHtml2(slide.subtitle || slide.claim)}

` : ""}
`; + return ` + + + + +${escapeHtml2(slide.title || "Slide")} + + + + ${elements.map((element2) => elementModelElementHtml(element2, theme)).join("\n ")} + ${fallback} + +`; +} + +// src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/src/sanitize-slide-markup.js +var SVG_NAMESPACE = "http://www.w3.org/2000/svg"; +var DELETE_WITH_CONTENT_TAGS = /* @__PURE__ */ new Set([ + "script", + "iframe", + "object", + "embed", + "base", + "meta", + "link", + "template", + "frame", + "frameset", + "portal" +]); +var HTML_ALLOWED_TAGS = /* @__PURE__ */ new Set([ + "html", + "head", + "body", + "title", + "style", + "div", + "section", + "article", + "main", + "header", + "footer", + "nav", + "aside", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "p", + "span", + "strong", + "b", + "em", + "i", + "u", + "s", + "small", + "mark", + "sub", + "sup", + "code", + "pre", + "blockquote", + "ul", + "ol", + "li", + "dl", + "dt", + "dd", + "br", + "hr", + "a", + "table", + "caption", + "colgroup", + "col", + "thead", + "tbody", + "tfoot", + "tr", + "th", + "td", + "figure", + "figcaption", + "img", + "label", + "time" +]); +var SVG_ALLOWED_TAGS = /* @__PURE__ */ new Set([ + "svg", + "g", + "defs", + "desc", + "title", + "rect", + "circle", + "ellipse", + "line", + "polyline", + "polygon", + "path", + "text", + "tspan", + "textpath", + "use", + "foreignobject", + "symbol", + "marker", + "lineargradient", + "radialgradient", + "stop", + "pattern", + "clippath", + "mask", + "filter", + "feblend", + "fecolormatrix", + "fecomponenttransfer", + "fecomposite", + "feconvolvematrix", + "fediffuselighting", + "fedisplacementmap", + "fedistantlight", + "fedropshadow", + "feflood", + "fefunca", + "fefuncb", + "fefuncg", + "fefuncr", + "fegaussianblur", + "feimage", + "femerge", + "femergenode", + "femorphology", + "feoffset", + "fepointlight", + "fespecularlighting", + "fespotlight", + "fetile", + "feturbulence" +]); +var GLOBAL_ALLOWED_ATTRIBUTES = /* @__PURE__ */ new Set([ + "id", + "class", + "style", + "title", + "role", + "lang", + "dir", + "hidden", + "tabindex", + "draggable", + "spellcheck", + "contenteditable" +]); +var TAG_ALLOWED_ATTRIBUTES = Object.freeze({ + img: /* @__PURE__ */ new Set(["src", "alt", "width", "height", "loading", "decoding"]), + ol: /* @__PURE__ */ new Set(["start", "reversed", "type"]), + li: /* @__PURE__ */ new Set(["value"]), + col: /* @__PURE__ */ new Set(["span"]), + th: /* @__PURE__ */ new Set(["colspan", "rowspan", "scope", "headers", "abbr"]), + td: /* @__PURE__ */ new Set(["colspan", "rowspan", "headers"]), + label: /* @__PURE__ */ new Set(["for"]), + time: /* @__PURE__ */ new Set(["datetime"]) +}); +var SVG_GLOBAL_ALLOWED_ATTRIBUTES = /* @__PURE__ */ new Set([ + "id", + "class", + "style", + "transform", + "fill", + "fill-opacity", + "fill-rule", + "stroke", + "stroke-width", + "stroke-opacity", + "stroke-linecap", + "stroke-linejoin", + "stroke-dasharray", + "stroke-dashoffset", + "opacity", + "filter", + "clip-path", + "clip-rule", + "mask", + "color", + "color-interpolation", + "color-interpolation-filters", + "visibility", + "display", + "font-family", + "font-size", + "font-style", + "font-weight", + "text-anchor", + "dominant-baseline", + "pointer-events", + "vector-effect", + "paint-order", + "shape-rendering", + "text-rendering", + "stop-color", + "stop-opacity", + "flood-color", + "flood-opacity", + "lighting-color", + "marker-start", + "marker-mid", + "marker-end" +]); +var SVG_RESOURCE_PRESENTATION_ATTRIBUTES = /* @__PURE__ */ new Set([ + "fill", + "stroke", + "filter", + "clip-path", + "mask", + "marker-start", + "marker-mid", + "marker-end" +]); +var SVG_GEOMETRY_ATTRIBUTES = /* @__PURE__ */ new Set([ + "x", + "y", + "x1", + "y1", + "x2", + "y2", + "cx", + "cy", + "r", + "rx", + "ry", + "width", + "height", + "d", + "points", + "pathlength" +]); +var SVG_FILTER_ATTRIBUTES = /* @__PURE__ */ new Set([ + "in", + "in2", + "result", + "operator", + "k1", + "k2", + "k3", + "k4", + "mode", + "type", + "values", + "tablevalues", + "slope", + "intercept", + "amplitude", + "exponent", + "offset", + "stddeviation", + "edgemode", + "kernelmatrix", + "kernelunitlength", + "targetx", + "targety", + "order", + "preservealpha", + "surfacescale", + "diffuseconstant", + "specularconstant", + "specularexponent", + "limitingconeangle", + "azimuth", + "elevation", + "pointsatx", + "pointsaty", + "pointsatz", + "basefrequency", + "numoctaves", + "seed", + "stitchtiles", + "scale", + "xchannelselector", + "ychannelselector", + "radius", + "dx", + "dy" +]); +var SVG_TAG_ALLOWED_ATTRIBUTES = Object.freeze({ + svg: /* @__PURE__ */ new Set(["viewbox", "width", "height", "x", "y", "preserveaspectratio", "xmlns", "xmlns:xlink"]), + symbol: /* @__PURE__ */ new Set(["viewbox", "x", "y", "width", "height", "preserveaspectratio"]), + marker: /* @__PURE__ */ new Set(["viewbox", "markerwidth", "markerheight", "markerunits", "orient", "preserveaspectratio", "refx", "refy"]), + rect: /* @__PURE__ */ new Set([...SVG_GEOMETRY_ATTRIBUTES]), + circle: /* @__PURE__ */ new Set([...SVG_GEOMETRY_ATTRIBUTES]), + ellipse: /* @__PURE__ */ new Set([...SVG_GEOMETRY_ATTRIBUTES]), + line: /* @__PURE__ */ new Set([...SVG_GEOMETRY_ATTRIBUTES]), + polyline: /* @__PURE__ */ new Set([...SVG_GEOMETRY_ATTRIBUTES]), + polygon: /* @__PURE__ */ new Set([...SVG_GEOMETRY_ATTRIBUTES]), + path: /* @__PURE__ */ new Set([...SVG_GEOMETRY_ATTRIBUTES]), + text: /* @__PURE__ */ new Set(["x", "y", "dx", "dy", "rotate", "textlength", "lengthadjust"]), + tspan: /* @__PURE__ */ new Set(["x", "y", "dx", "dy", "rotate", "textlength", "lengthadjust"]), + textpath: /* @__PURE__ */ new Set(["href", "xlink:href", "startoffset", "method", "spacing", "side", "textlength", "lengthadjust"]), + use: /* @__PURE__ */ new Set(["x", "y", "width", "height", "href", "xlink:href"]), + foreignobject: /* @__PURE__ */ new Set(["x", "y", "width", "height"]), + lineargradient: /* @__PURE__ */ new Set(["x1", "y1", "x2", "y2", "gradientunits", "gradienttransform", "spreadmethod", "href", "xlink:href"]), + radialgradient: /* @__PURE__ */ new Set(["cx", "cy", "r", "fx", "fy", "fr", "gradientunits", "gradienttransform", "spreadmethod", "href", "xlink:href"]), + stop: /* @__PURE__ */ new Set(["offset"]), + pattern: /* @__PURE__ */ new Set(["x", "y", "width", "height", "patternunits", "patterncontentunits", "patterntransform", "viewbox", "preserveaspectratio", "href", "xlink:href"]), + clippath: /* @__PURE__ */ new Set(["clippathunits"]), + mask: /* @__PURE__ */ new Set(["x", "y", "width", "height", "maskunits", "maskcontentunits"]), + filter: /* @__PURE__ */ new Set(["x", "y", "width", "height", "filterunits", "primitiveunits"]) +}); +function canonicalizeCssEscapes(value2) { + let current = String(value2 || ""); + for (let pass = 0; pass < 4; pass += 1) { + const decoded = current.replace(/\\([0-9a-f]{1,6})(?:\r\n|[ \n\r\t\f])?/gi, (_match, hex2) => String.fromCodePoint(Number.parseInt(hex2, 16) || 0)).replace(/\\([^\n\r\f0-9a-f])/gi, "$1"); + if (decoded === current) break; + current = decoded; + } + return current; +} +function hasUnsafeCss(value2) { + const css = canonicalizeCssEscapes(value2).toLowerCase(); + return /url\s*\(|@import\b|@font-face\b|expression\s*\(|behavior\s*:|-moz-binding\b|(?:-webkit-)?image-set\s*\(|(?:image|cross-fade|element|src)\s*\(/.test(css); +} +function isSafeRasterDataImage(value2) { + const candidate = String(value2 || "").trim(); + const match = candidate.match(/^data:image\/(png|jpeg|gif|webp)((?:;[a-z0-9._-]+=[a-z0-9._-]+)*)(;base64)?,([\s\S]*)$/i); + if (!match) return false; + const payload = match[4]; + if (!payload) return false; + return match[3] ? /^[a-z0-9+/=\s]+$/i.test(payload) : !/[<>"'`]/.test(payload) && /^(?:%[0-9a-f]{2}|[a-z0-9!$&()*+,\-./:;=?@_~\s])+$/i.test(payload); +} +function isAllowedResource(node, name, value2) { + const localName = String(node.localName || "").toLowerCase(); + const isSvg = node.namespaceURI === SVG_NAMESPACE || node.closest?.("svg"); + if ((name === "href" || name === "xlink:href") && isSvg) { + return /^#[a-z_][\w:.-]*$/i.test(canonicalizeCssEscapes(value2).trim()); + } + if (name === "src") return localName === "img" && isSafeRasterDataImage(value2); + return false; +} +function normalizedLocalPaintServer(value2) { + const canonical = canonicalizeCssEscapes(value2).trim(); + const match = canonical.match(/^url\(\s*(#[a-z_][\w:.-]*)\s*\)$/i); + return match ? `url(${match[1]})` : null; +} +function normalizedSvgResourceAttribute(name, value2) { + const canonical = canonicalizeCssEscapes(value2).trim(); + const lower = canonical.toLowerCase(); + if (name === "href" || name === "xlink:href") { + return /^#[a-z_][\w:.-]*$/i.test(canonical) ? canonical : null; + } + if (!SVG_RESOURCE_PRESENTATION_ATTRIBUTES.has(name)) return canonical; + if (/\burl\s*\(/i.test(canonical)) return normalizedLocalPaintServer(canonical); + if (name === "fill" || name === "stroke") { + if (/(?:javascript|vbscript|file|data|blob|https?):|(?:^|[\s"'(])\/\//i.test(lower)) return null; + if (/(?:-webkit-)?image-set\s*\(|(?:image|cross-fade|element|src)\s*\(/i.test(lower)) return null; + return canonical || null; + } + return /^(?:none|inherit|initial|unset)$/i.test(canonical) ? canonical : null; +} +function hasSafeCustomAttributeValue(value2) { + const canonical = canonicalizeCssEscapes(value2).trim().toLowerCase(); + return !/(?:javascript|vbscript|file|data|blob|https?):|(?:^|[\s"'(])\/\//.test(canonical) && !hasUnsafeCss(canonical); +} +function isSvgElement(node) { + return node.namespaceURI === SVG_NAMESPACE; +} +function allowedAttributeName(node, name) { + const tag = String(node.localName || "").toLowerCase(); + if (name.startsWith("data-") || name.startsWith("aria-")) return true; + if (isSvgElement(node)) { + if (GLOBAL_ALLOWED_ATTRIBUTES.has(name) || SVG_GLOBAL_ALLOWED_ATTRIBUTES.has(name)) return true; + if (SVG_TAG_ALLOWED_ATTRIBUTES[tag]?.has(name)) return true; + return tag.startsWith("fe") && (SVG_GEOMETRY_ATTRIBUTES.has(name) || SVG_FILTER_ATTRIBUTES.has(name)); + } + return GLOBAL_ALLOWED_ATTRIBUTES.has(name) || Boolean(TAG_ALLOWED_ATTRIBUTES[tag]?.has(name)); +} +function isAllowedSanitizedAttribute(node, rawName, value2) { + const name = String(rawName || "").toLowerCase(); + if (!name || name.startsWith("on") || !allowedAttributeName(node, name)) return false; + if (name.startsWith("data-") || name.startsWith("aria-")) { + return hasSafeCustomAttributeValue(value2); + } + if (name === "style") return !hasUnsafeCss(value2); + if (name === "src" || name === "href" || name === "xlink:href") { + return isAllowedResource(node, name, value2); + } + if (isSvgElement(node) && SVG_RESOURCE_PRESENTATION_ATTRIBUTES.has(name)) { + return normalizedSvgResourceAttribute(name, value2) !== null; + } + if (name === "xmlns") return value2 === SVG_NAMESPACE; + if (name === "xmlns:xlink") return value2 === "http://www.w3.org/1999/xlink"; + return true; +} +function unwrapNode(node) { + node.replaceWith(...node.childNodes); +} +function sanitizeSlideDocument(parsed) { + let repaired = false; + [...parsed.querySelectorAll("*")].forEach((node) => { + const tag = String(node.localName || node.tagName || "").toLowerCase(); + const allowedTags = isSvgElement(node) ? SVG_ALLOWED_TAGS : HTML_ALLOWED_TAGS; + if (DELETE_WITH_CONTENT_TAGS.has(tag)) { + repaired = true; + node.remove(); + } else if (!allowedTags.has(tag)) { + repaired = true; + unwrapNode(node); + } + }); + parsed.querySelectorAll("style").forEach((style) => { + if (hasUnsafeCss(style.textContent)) { + repaired = true; + style.remove(); + } + }); + parsed.querySelectorAll("*").forEach((node) => { + for (const attribute of [...node.attributes]) { + if (!isAllowedSanitizedAttribute(node, attribute.name, attribute.value)) { + repaired = true; + node.removeAttribute(attribute.name); + } else if (isSvgElement(node)) { + const name = attribute.name.toLowerCase(); + if (SVG_RESOURCE_PRESENTATION_ATTRIBUTES.has(name) || name === "href" || name === "xlink:href") { + const normalized = normalizedSvgResourceAttribute(name, attribute.value); + if (normalized !== attribute.value) { + repaired = true; + node.setAttribute(attribute.name, normalized); + } + } + } + } + }); + parsed._pptxSecurityDiagnostics = repaired ? [{ + severity: "repaired", + code: "active_content_removed", + message: "Unsafe active content and resource references were removed.", + sourceId: "slide-document", + phase: "security-repair" + }] : []; + return parsed; +} +function sanitizeSlideMarkup(markup) { + const parsed = new DOMParser().parseFromString(String(markup || ""), "text/html"); + sanitizeSlideDocument(parsed); + return `${parsed.documentElement.outerHTML}`; +} + +// src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/src/render.js function applyI18n() { document.documentElement.lang = getLocale(); document.querySelectorAll("[data-i18n]").forEach((node) => { @@ -11105,19 +9344,21 @@ function scopeSlideAuthorStyles(cssText, rootSelector, bodySelector) { var HTML_SLIDE_PREVIEW_HOST_CLASS = "html-slide-preview-host"; var HTML_SLIDE_PREVIEW_SCALER_CLASS = "html-slide-preview-scaler"; var DEFAULT_SLIDE_DESIGN = { width: 1280, height: 720 }; -function writeSandboxIframeDocument(frame, html) { +function writeSandboxIframeDocument(frame, sanitizedHtml) { const doc = frame.contentDocument; if (!doc) return false; doc.open(); - doc.write(normalizeSlideDocument(html)); + doc.write(sanitizedHtml); doc.close(); return true; } function mountSandboxIframeHtml(frame, html, onMounted) { + const sanitizedHtml = sanitizeSlideMarkup(normalizeSlideDocument(html)); frame.setAttribute("sandbox", "allow-same-origin"); + frame.srcdoc = sanitizedHtml; frame.src = "about:blank"; const mount = () => { - if (!writeSandboxIframeDocument(frame, html)) return false; + if (!writeSandboxIframeDocument(frame, sanitizedHtml)) return false; onMounted?.(); return true; }; @@ -11263,20 +9504,6 @@ function fitHtmlSlidePreviewSurface(host) { } var SLIDE_SHADOW_ROOT_CLASS = "ppt-slide-shadow-root"; var SLIDE_SHADOW_BODY_CLASS = "ppt-slide-shadow-body"; -function sanitizeParsedSlideDocument(parsed) { - parsed.querySelectorAll('script, iframe, object, embed, meta[http-equiv="refresh" i]').forEach((node) => node.remove()); - parsed.querySelectorAll("*").forEach((node) => { - for (const attr of [...node.attributes]) { - const name = attr.name.toLowerCase(); - if (name.startsWith("on")) { - node.removeAttribute(attr.name); - } else if ((name === "href" || name === "src" || name === "xlink:href") && /^\s*javascript:/i.test(attr.value)) { - node.removeAttribute(attr.name); - } - } - }); - return parsed; -} function createEditableSlideStage(html, frameClass) { const stage = document.createElement("div"); stage.className = frameClass; @@ -11284,9 +9511,8 @@ function createEditableSlideStage(html, frameClass) { stampFrameDesignSize(stage, html); const designW = Number(stage.dataset.designW); const designH = Number(stage.dataset.designH); - const parsed = sanitizeParsedSlideDocument( - new DOMParser().parseFromString(normalizeSlideDocument(html), "text/html") - ); + const sanitizedMarkup = sanitizeSlideMarkup(normalizeSlideDocument(html)); + const parsed = new DOMParser().parseFromString(sanitizedMarkup, "text/html"); const shadow = stage.attachShadow({ mode: "open" }); const rootEl = document.createElement("div"); rootEl.className = SLIDE_SHADOW_ROOT_CLASS; @@ -11335,7 +9561,7 @@ function createEditableSlideStage(html, frameClass) { bodyEl.style.margin = "0"; rootEl.appendChild(bodyEl); shadow.appendChild(rootEl); - stage._pptLiveSourceHtml = String(html || ""); + stage._pptLiveSourceHtml = sanitizedMarkup; return stage; } function createHtmlSlidePreviewSurface({ hostClass = "", frameClass, html, onReady, interactive = false }) { @@ -12059,7 +10285,7 @@ function hydrateHtmlSlideIframes(root = document) { function slideHtml(slide, options = {}) { if (slide?.html) { const mountId = `slide-${++pendingSlideHtmlMountSeq}`; - pendingSlideHtmlMounts.set(mountId, normalizeSlideDocument(slide.html)); + pendingSlideHtmlMounts.set(mountId, sanitizeSlideMarkup(normalizeSlideDocument(slide.html))); return ``; } const editable = Boolean(options.editable); @@ -12076,7 +10302,12 @@ function slideHtml(slide, options = {}) { ${slide.kicker ? `
${escapeHtml(slide.kicker)}
` : ""} ${slide.proofObject ? `
${escapeHtml(slide.proofObject)}
` : ""} ${slideQualityBadge(slide)} - ${(slide.elements || []).map((element2) => elementHtml(element2, slide.theme, editable, selectedId)).join("")} + ${(slide.elements || []).map((element2) => elementModelElementHtml(element2, slide.theme, { + mode: "editor", + editable, + selectedId, + mediaPlaceholder: translate("mediaPlaceholder") + })).join("")} ${slide.sourceNote ? `
${escapeHtml(slide.sourceNote)}
` : ""} `; } @@ -12169,60 +10400,6 @@ function normalizeSlideDocument(html) { if (/]/i.test(source)) return source; return `${source}`; } -function elementHtml(element2, theme, editable, selectedId) { - const selected = editable && selectedId === element2.id; - const style = [ - `left:${element2.x}%`, - `top:${element2.y}%`, - `width:${element2.w}%`, - `height:${element2.h}%`, - `font-size:${fontSizeCss(element2.style.fontSize)}`, - `font-weight:${element2.style.fontWeight}`, - `color:${resolveColor(element2.style.color, theme)}`, - `text-align:${element2.style.align || "left"}`, - `background:${resolveColor(element2.style.background, theme)}`, - `opacity:${element2.style.opacity}`, - `border-radius:${element2.style.borderRadius}px` - ].join(";"); - let content = ""; - if (element2.type === "list") { - content = ``; - } else if (element2.type === "metric") { - content = `${escapeHtml(element2.text)}${escapeHtml(element2.label)}`; - } else if (element2.type === "chart") { - const max = Math.max(1, ...(element2.data || []).map((point) => Number(point.value) || 0)); - content = `${escapeHtml(element2.text)}
${(element2.data || []).map((point) => `${escapeHtml(point.label)}`).join("")}
`; - } else if (element2.type === "media") { - content = `${escapeHtml(element2.text || translate("mediaPlaceholder"))}`; - } else { - content = editable ? `${escapeHtml(element2.text || "")}` : escapeHtml(element2.text || ""); - } - return `
${content}${selected ? '' : ""}
`; -} -function resolveColor(value2, theme) { - if (!value2 || value2 === "transparent") return "transparent"; - if (value2 === "ink") return theme.ink; - if (value2 === "muted") return theme.muted; - if (value2 === "primary") return theme.primary; - if (value2 === "accent") return theme.accent; - if (value2 === "panel") return theme.panel || "#ffffff"; - if (value2 === "soft") return colorMix(theme.primary, 0.1); - if (value2 === "background") return theme.background; - return value2; -} -function colorMix(hex2, alpha) { - const raw = String(hex2 || "#0f766e").replace("#", ""); - const int = parseInt(raw.length === 3 ? raw.split("").map((x) => x + x).join("") : raw, 16); - const r = int >> 16 & 255; - const g = int >> 8 & 255; - const b = int & 255; - return `rgba(${r}, ${g}, ${b}, ${alpha})`; -} -function fontSizeCss(value2) { - const size = Math.max(8, Number(value2) || 24); - const cqw = Math.round(size / 10.2 * 1e3) / 1e3; - return `clamp(8px, ${cqw}cqw, ${size}px)`; -} function byId(id) { return document.getElementById(id); } @@ -12241,13 +10418,102 @@ function round(value2) { return Math.round(Number(value2) * 10) / 10; } -// src/sanitize-slide-html.js +// src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/src/sanitize-slide-html.js function sanitizeSlideDocumentRoot(doc = document, aggressive = false) { const document2 = doc; const view = document2.defaultView || window; + const diagnostics = []; + const seenDiagnostics = /* @__PURE__ */ new Set(); const skipTags = /* @__PURE__ */ new Set(["SCRIPT", "STYLE", "PRE", "CODE", "SVG", "TEXTAREA"]); const inlineSelector = "strong,b,em,i,u,span,a,small,mark,sub,sup,code"; const textSelector = "p,h1,h2,h3,h4,h5,h6,li"; + const textContainerSelector = "p,h1,h2,h3,h4,h5,h6,li"; + const manualBulletPattern = /^(\s*)([•●○▪‣·▸◆◇■□–—*-])\s+/u; + const ambiguousBulletSymbols = /* @__PURE__ */ new Set(["-", "*", "\u2013", "\u2014"]); + function sourceIdOf(element2) { + return element2?.dataset?.pptxSourceId || element2?.id || null; + } + function assignSourceIds() { + const body = document2.body; + if (!body) return; + const elements = [body, ...body.querySelectorAll("*")]; + const reserved = new Set( + elements.map((element2) => element2.dataset.pptxSourceId?.trim()).filter(Boolean) + ); + const used = /* @__PURE__ */ new Set(); + elements.forEach((element2) => { + const sourceId = element2.dataset.pptxSourceId?.trim(); + if (!sourceId) return; + if (!used.has(sourceId)) { + element2.dataset.pptxSourceId = sourceId; + used.add(sourceId); + return; + } + let suffix = 2; + let candidate = `${sourceId}-${suffix}`; + while (used.has(candidate) || reserved.has(candidate)) { + suffix += 1; + candidate = `${sourceId}-${suffix}`; + } + element2.dataset.pptxSourceId = candidate; + used.add(candidate); + reserved.add(candidate); + addDiagnostic( + "repaired", + "duplicate_source_id_repaired", + `Duplicate source element id "${sourceId}" was reassigned to "${candidate}".`, + element2 + ); + }); + let sequence = 1; + elements.forEach((element2) => { + if (element2.dataset?.pptxSourceId) return; + while (used.has(`pptx-source-${sequence}`) || reserved.has(`pptx-source-${sequence}`)) { + sequence += 1; + } + const sourceId = `pptx-source-${sequence}`; + sequence += 1; + element2.dataset.pptxSourceId = sourceId; + used.add(sourceId); + }); + } + function derivedSourceId(element2, suffix) { + const base = sourceIdOf(element2) || "pptx-source"; + let candidate = `${base}-${suffix}`; + let sequence = 2; + while (document2.querySelector(`[data-pptx-source-id="${candidate}"]`)) { + candidate = `${base}-${suffix}-${sequence}`; + sequence += 1; + } + return candidate; + } + function addDiagnostic(severity, code, message, element2 = null) { + const sourceId = sourceIdOf(element2); + const key = `${severity}:${code}:${sourceId || ""}`; + if (seenDiagnostics.has(key)) return; + seenDiagnostics.add(key); + const diagnostic = { + severity, + kind: severity === "blocking" ? "blocking" : void 0, + code, + message, + sourceId, + tag: element2?.tagName?.toLowerCase?.() || null + }; + try { + const rect = element2?.getBoundingClientRect?.(); + if (rect && rect.width > 0 && rect.height > 0) { + diagnostic.bbox = { + x: rect.left, + y: rect.top, + width: rect.width, + height: rect.height + }; + } + } catch { + } + diagnostics.push(diagnostic); + } function inferBlockTag(node) { const cls = String(node.className || "").toLowerCase(); const role = String(node.getAttribute?.("role") || "").toLowerCase(); @@ -12282,19 +10548,84 @@ function sanitizeSlideDocumentRoot(doc = document, aggressive = false) { body.style.backgroundColor = rootBg; } } + function repairNestedParagraphs(root) { + root.querySelectorAll(textContainerSelector).forEach((outer) => { + const nested = [...outer.children].filter((child) => child.matches(textContainerSelector)); + if (!nested.length || !outer.parentNode) return; + const fragments = []; + let current = document2.createElement(outer.tagName.toLowerCase()); + const copyOuterAttributes = (target) => { + [...outer.attributes].forEach((attribute) => { + if (attribute.name !== "data-pptx-source-id") target.setAttribute(attribute.name, attribute.value); + }); + }; + copyOuterAttributes(current); + current.dataset.pptxSourceId = sourceIdOf(outer); + [...outer.childNodes].forEach((node) => { + if (node.nodeType === view.Node.ELEMENT_NODE && node.matches(textContainerSelector)) { + if (current.textContent.trim() || current.children.length) fragments.push(current); + fragments.push(node); + current = document2.createElement(outer.tagName.toLowerCase()); + copyOuterAttributes(current); + current.dataset.pptxSourceId = derivedSourceId(outer, `split-${fragments.length + 1}`); + } else { + current.appendChild(node); + } + }); + if (current.textContent.trim() || current.children.length) fragments.push(current); + outer.replaceWith(...fragments); + addDiagnostic( + "repaired", + "nested_paragraph_repaired", + "Nested paragraph structure was split into ordered sibling paragraphs.", + fragments[0] || nested[0] + ); + }); + } function wrapDirectTextNodes(root) { root.querySelectorAll("div").forEach((div) => { if (skipTags.has(div.tagName)) return; - [...div.childNodes].forEach((node) => { - if (node.nodeType !== Node.TEXT_NODE) return; - const text2 = node.textContent.replace(/\s+/g, " ").trim(); - if (!text2) { - node.remove(); - return; - } + let sequence = 1; + let nodes = [...div.childNodes]; + while (nodes.length) { + const firstDirectText = nodes.findIndex( + (node) => node.nodeType === view.Node.TEXT_NODE && node.textContent.trim() + ); + if (firstDirectText < 0) break; + let start = firstDirectText; + while (start > 0) { + const previous = nodes[start - 1]; + if (previous.nodeType === view.Node.ELEMENT_NODE && !previous.matches(inlineSelector) && previous.tagName !== "BR") break; + start -= 1; + } + let end = firstDirectText; + while (end + 1 < nodes.length) { + const next = nodes[end + 1]; + if (next.nodeType === view.Node.ELEMENT_NODE && !next.matches(inlineSelector) && next.tagName !== "BR") break; + end += 1; + } + const group = nodes.slice(start, end + 1); const block = document2.createElement(inferBlockTag(div)); - block.textContent = text2; - div.replaceChild(block, node); + block.dataset.pptxSourceId = derivedSourceId(div, `text-${sequence}`); + sequence += 1; + group[0].before(block); + group.forEach((node) => { + if (node.nodeType === view.Node.TEXT_NODE) { + node.textContent = node.textContent.replace(/\s+/g, " "); + } + block.appendChild(node); + }); + block.normalize(); + addDiagnostic( + "repaired", + "direct_text_wrapped", + "Direct container text was wrapped in a semantic text block.", + block + ); + nodes = [...div.childNodes]; + } + [...div.childNodes].forEach((node) => { + if (node.nodeType === view.Node.TEXT_NODE && !node.textContent.trim()) node.remove(); }); }); } @@ -12304,11 +10635,94 @@ function sanitizeSlideDocumentRoot(doc = document, aggressive = false) { const hasBg = computed.backgroundColor && computed.backgroundColor !== "rgba(0, 0, 0, 0)"; const hasBorder = hasVisibleBorder(computed); if (!hasBg && !hasBorder) return; + if (span.closest(textContainerSelector)) return; const block = document2.createElement("p"); if (span.className) block.className = span.className; if (span.getAttribute("style")) block.setAttribute("style", span.getAttribute("style")); - block.textContent = span.textContent; + block.dataset.pptxSourceId = sourceIdOf(span); + while (span.firstChild) block.appendChild(span.firstChild); span.replaceWith(block); + addDiagnostic( + "repaired", + "decorated_inline_promoted", + "Decorated inline text was promoted to a block that can be exported as shape plus text.", + block + ); + }); + } + function removeManualBullet(element2) { + const symbol = element2.textContent.match(manualBulletPattern)?.[2]; + if (!symbol) return; + const walker = document2.createTreeWalker(element2, view.NodeFilter.SHOW_TEXT); + let textNode = walker.nextNode(); + let removed = false; + while (textNode) { + if (!removed) { + const symbolIndex = textNode.textContent.search(/\S/u); + if (symbolIndex >= 0) { + if (textNode.textContent.slice(symbolIndex).startsWith(symbol)) { + textNode.textContent = textNode.textContent.slice(symbolIndex + symbol.length).replace(/^\s+/u, ""); + removed = true; + if (textNode.textContent) return; + } else { + return; + } + } + } else if (textNode.textContent) { + textNode.textContent = textNode.textContent.replace(/^\s+/u, ""); + return; + } + textNode = walker.nextNode(); + } + } + function normalizeManualBulletBlocks(root) { + root.querySelectorAll("body, div, section, article, aside, main, td, th").forEach((parent) => { + let group = []; + const flush = () => { + if (!group.length) return; + const first = group[0]; + const firstSymbol = first.textContent.match(manualBulletPattern)?.[2]; + if (group.length === 1 && ambiguousBulletSymbols.has(firstSymbol)) { + group = []; + return; + } + const list = document2.createElement("ul"); + list.dataset.pptxSourceId = derivedSourceId(first, "list"); + const firstComputed = view.getComputedStyle(first); + const authoredIndent = parseFloat(firstComputed.marginLeft || first.style.marginLeft || "0") || 0; + list.style.margin = "0"; + list.style.paddingLeft = `${Math.max(24, authoredIndent + 24)}px`; + first.parentNode.insertBefore(list, first); + group.forEach((block) => { + const item = document2.createElement("li"); + [...block.attributes].forEach((attribute) => { + if (!["id", "data-pptx-source-id"].includes(attribute.name)) { + item.setAttribute(attribute.name, attribute.value); + } + }); + item.dataset.pptxSourceId = sourceIdOf(block); + while (block.firstChild) item.appendChild(block.firstChild); + removeManualBullet(item); + list.appendChild(item); + block.remove(); + }); + addDiagnostic( + "repaired", + "manual_bullet_list", + `${group.length} consecutive manual bullet paragraph(s) were converted to a semantic list.`, + list + ); + group = []; + }; + [...parent.children].forEach((child) => { + const isTextBlock = /^(P|H[1-6])$/.test(child.tagName); + if (isTextBlock && manualBulletPattern.test(child.textContent || "")) { + group.push(child); + } else { + flush(); + } + }); + flush(); }); } function normalizeInlineLists(root) { @@ -12328,6 +10742,72 @@ function sanitizeSlideDocumentRoot(doc = document, aggressive = false) { } }); } + function collectFallbackDiagnostics(root) { + root.querySelectorAll("*").forEach((element2) => { + const computed = view.getComputedStyle(element2); + const backgroundImage = String(computed.backgroundImage || element2.style?.backgroundImage || ""); + if (backgroundImage.includes("gradient")) { + addDiagnostic( + "fallback", + "css_gradient", + "CSS gradient requires fallback rendering; native gradient mapping is not available.", + element2 + ); + } + const filter = String(computed.filter || element2.style?.filter || ""); + if (filter && filter !== "none") { + addDiagnostic( + "fallback", + "css_filter", + "CSS filter requires fallback rendering.", + element2 + ); + } + }); + root.querySelectorAll("svg").forEach((svg) => { + if (svg.querySelector("filter,mask,foreignObject,use,pattern,textPath,clipPath,image")) { + addDiagnostic( + "fallback", + "complex_svg_raster", + "SVG filter, mask, or foreignObject requires local browser raster rendering.", + svg + ); + } else if (svg.querySelector("path")) { + addDiagnostic( + "fallback", + "complex_svg_vector", + "Complex SVG geometry will be preserved as a local SVG image.", + svg + ); + } + }); + root.querySelectorAll("style").forEach((style) => { + let rules = []; + try { + rules = [...style.sheet?.cssRules || []]; + } catch { + return; + } + rules.forEach((rule) => { + const selector = rule.selectorText || ""; + const content = rule.style?.content; + if (!/::(before|after)/.test(selector) || !content || ["none", "normal", '""', "''"].includes(content)) return; + const baseSelector = selector.replace(/::(before|after)/g, "").trim(); + let matches = []; + try { + matches = [...root.querySelectorAll(baseSelector)]; + } catch { + return; + } + matches.forEach((element2) => addDiagnostic( + "fallback", + "generated_content", + "Pseudo-element generated content requires fallback rendering.", + element2 + )); + }); + }); + } function hasVisibleBorder(computed) { return ["Top", "Right", "Bottom", "Left"].some((side) => parseFloat(computed[`border${side}Width`] || 0) > 0); } @@ -12495,13 +10975,17 @@ function sanitizeSlideDocumentRoot(doc = document, aggressive = false) { `; (root.head || root.documentElement).appendChild(style); } + assignSourceIds(); + collectFallbackDiagnostics(document2); ensureExportCanvas(); - wrapDirectTextNodes(document2); + repairNestedParagraphs(document2); promoteDecoratedSpans(document2); + wrapDirectTextNodes(document2); + normalizeManualBulletBlocks(document2); normalizeInlineLists(document2); - flattenGradients(document2); - stripUnsupportedDivBackgrounds(document2); if (aggressive) { + flattenGradients(document2); + stripUnsupportedDivBackgrounds(document2); hoistTextDecorations(document2); resetInlineBoxModel(document2); enforceInlineElementsSafe(document2); @@ -12517,9 +11001,21 @@ function sanitizeSlideDocumentRoot(doc = document, aggressive = false) { } else { inlineSnapshotLayoutStyles(document2); } + return { diagnostics }; +} + +// src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/src/paint-order.js +function buildDomPaintOrderMap(doc) { + const map = /* @__PURE__ */ new Map(); + if (!doc?.body) return map; + [doc.body, ...doc.body.querySelectorAll("*")].forEach((element2, index) => { + const sourceId = element2.dataset?.pptxSourceId || element2.id || null; + if (sourceId && !map.has(sourceId)) map.set(sourceId, index); + }); + return map; } -// src/html2pptx-dom-core.js +// src/crates/contracts/product-domains/src/miniapp/builtin/assets/ppt-live/src/html2pptx-dom-core.js var PT_PER_PX = 0.75; function measureBodyDimensions(doc = document) { const view = doc.defaultView || window; @@ -12547,7 +11043,54 @@ function measureBodyDimensions(doc = document) { } function extractSlideDataFromDocument(doc = document) { const document2 = doc; - const view = document2.defaultView || window; + const view = document2?.defaultView || globalThis.window; + const diagnostics = []; + const diagnosticKeys = /* @__PURE__ */ new Set(); + const addDiagnostic = (severity, code, message, element2 = null) => { + const sourceId = element2?.dataset?.pptxSourceId || element2?.id || null; + const key = `${severity}:${code}:${sourceId || ""}`; + if (diagnosticKeys.has(key)) return; + diagnosticKeys.add(key); + const diagnostic = { + severity, + kind: severity === "blocking" ? "blocking" : void 0, + code, + message, + sourceId, + tag: element2?.tagName?.toLowerCase?.() || null + }; + try { + const rect = element2?.getBoundingClientRect?.(); + if (rect && rect.width > 0 && rect.height > 0) { + diagnostic.bbox = { + x: rect.left, + y: rect.top, + width: rect.width, + height: rect.height + }; + } + } catch { + } + diagnostics.push(diagnostic); + }; + if (!document2?.body || !view?.getComputedStyle) { + addDiagnostic( + "blocking", + "unreadable_document", + "Slide document has no readable body or computed-style view.", + document2?.documentElement || null + ); + const unreadableDiagnostic = diagnostics[diagnostics.length - 1]; + unreadableDiagnostic.sourceId = unreadableDiagnostic.sourceId || "slide-document"; + unreadableDiagnostic.tag = "document"; + return { + background: { type: "color", value: "FFFFFF" }, + elements: [], + placeholders: [], + diagnostics, + errors: diagnostics.map((item) => item.message) + }; + } const PT_PER_PX2 = 0.75; const PX_PER_IN2 = 96; const SINGLE_WEIGHT_FONTS = ["impact"]; @@ -12699,7 +11242,7 @@ function extractSlideDataFromDocument(doc = document) { let prevNodeIsText = false; element2.childNodes.forEach((node) => { let textTransform = baseTextTransform; - const isText = node.nodeType === Node.TEXT_NODE || node.tagName === "BR"; + const isText = node.nodeType === view.Node.TEXT_NODE || node.tagName === "BR"; if (isText) { const text2 = node.tagName === "BR" ? "\n" : textTransform(node.textContent.replace(/\s+/g, " ")); const prevRun = runs[runs.length - 1]; @@ -12708,7 +11251,7 @@ function extractSlideDataFromDocument(doc = document) { } else { runs.push({ text: text2, options: { ...baseOptions } }); } - } else if (node.nodeType === Node.ELEMENT_NODE && node.textContent.trim()) { + } else if (node.nodeType === view.Node.ELEMENT_NODE && node.textContent.trim()) { const options = { ...baseOptions }; const computed = view.getComputedStyle(node); if (["SPAN", "B", "STRONG", "I", "EM", "U", "SMALL", "LABEL", "A", "CODE", "MARK", "SUB", "SUP"].includes(node.tagName)) { @@ -12727,16 +11270,16 @@ function extractSlideDataFromDocument(doc = document) { textTransform = (text2) => applyTextTransform(text2, transformStr); } if (computed.marginLeft && parseFloat(computed.marginLeft) > 0) { - errors.push(`Inline element <${node.tagName.toLowerCase()}> has margin-left which is not supported in PowerPoint. Remove margin from inline elements.`); + addDiagnostic("fallback", "inline_margin", `Inline element <${node.tagName.toLowerCase()}> has margin-left; fallback layout may be needed.`, node); } if (computed.marginRight && parseFloat(computed.marginRight) > 0) { - errors.push(`Inline element <${node.tagName.toLowerCase()}> has margin-right which is not supported in PowerPoint. Remove margin from inline elements.`); + addDiagnostic("fallback", "inline_margin", `Inline element <${node.tagName.toLowerCase()}> has margin-right; fallback layout may be needed.`, node); } if (computed.marginTop && parseFloat(computed.marginTop) > 0) { - errors.push(`Inline element <${node.tagName.toLowerCase()}> has margin-top which is not supported in PowerPoint. Remove margin from inline elements.`); + addDiagnostic("fallback", "inline_margin", `Inline element <${node.tagName.toLowerCase()}> has margin-top; fallback layout may be needed.`, node); } if (computed.marginBottom && parseFloat(computed.marginBottom) > 0) { - errors.push(`Inline element <${node.tagName.toLowerCase()}> has margin-bottom which is not supported in PowerPoint. Remove margin from inline elements.`); + addDiagnostic("fallback", "inline_margin", `Inline element <${node.tagName.toLowerCase()}> has margin-bottom; fallback layout may be needed.`, node); } parseInlineFormatting(node, options, runs, textTransform); } @@ -12760,7 +11303,7 @@ function extractSlideDataFromDocument(doc = document) { const style = view.getComputedStyle(el); const bgImage = style.backgroundImage || ""; if (bgImage.includes("linear-gradient") || bgImage.includes("radial-gradient")) { - return { gradient: true }; + return { gradient: true, element: el }; } if (bgImage && bgImage !== "none") { const urlMatch = bgImage.match(/url\(["']?([^"')]+)["']?\)/); @@ -12775,6 +11318,14 @@ function extractSlideDataFromDocument(doc = document) { }; const body = document2.body; const bodyRect = body.getBoundingClientRect(); + if (!(bodyRect.width > 0) || !(bodyRect.height > 0)) { + addDiagnostic( + "blocking", + "unmeasurable_canvas", + "Slide canvas has no measurable width or height.", + body + ); + } const boxFor = (rect) => ({ left: rect.left - bodyRect.left, top: rect.top - bodyRect.top, @@ -12813,13 +11364,51 @@ function extractSlideDataFromDocument(doc = document) { return { x, y, w, h }; }; const readZIndex = (el) => { - const raw = view.getComputedStyle(el).zIndex; - if (!raw || raw === "auto") return 0; - const parsed = parseInt(raw, 10); - return Number.isFinite(parsed) ? parsed : 0; + let current = el; + while (current && current !== body) { + const raw = view.getComputedStyle(current).zIndex; + if (raw && raw !== "auto") { + const parsed = parseInt(raw, 10); + if (Number.isFinite(parsed)) return parsed; + } + current = current.parentElement; + } + return 0; + }; + const domPaintOrder = buildDomPaintOrderMap(document2); + const sourceSubOrders = /* @__PURE__ */ new Map(); + let unmappedPaintOrder = Math.max(-1, ...domPaintOrder.values()) + 1; + const nextPaintMetadata = (el) => { + const sourceId = el?.dataset?.pptxSourceId || el?.id || null; + const subOrder = sourceSubOrders.get(sourceId) || 0; + sourceSubOrders.set(sourceId, subOrder + 1); + return { + sourceId, + paintOrder: domPaintOrder.get(sourceId) ?? unmappedPaintOrder++, + subOrder + }; }; const pushElement = (entry, el) => { - if (el) entry.zIndex = readZIndex(el); + const paintMetadata = nextPaintMetadata(el); + entry.kind = entry.kind || "native"; + entry.paintOrder = entry.paintOrder ?? paintMetadata.paintOrder; + entry.subOrder = entry.subOrder ?? paintMetadata.subOrder; + if (!entry.bbox) { + if (entry.position) { + entry.bbox = { ...entry.position }; + } else if (entry.type === "line") { + entry.bbox = { + x: Math.min(entry.x1, entry.x2), + y: Math.min(entry.y1, entry.y2), + w: Math.abs(entry.x2 - entry.x1), + h: Math.abs(entry.y2 - entry.y1) + }; + } + } + if (el) { + entry.zIndex = readZIndex(el); + entry.sourceId = paintMetadata.sourceId; + } elements.push(entry); }; const resolveListBulletColor = (ul, liElements, textHex) => { @@ -12841,16 +11430,19 @@ function extractSlideDataFromDocument(doc = document) { } return null; }; - const errors = []; const bgResolved = resolveSlideBackground(body); if (bgResolved.gradient) { - errors.push( - "CSS gradients are not supported. Use Sharp to rasterize gradients as PNG images first, then reference with background-image: url('gradient.png')" + addDiagnostic( + "fallback", + "css_gradient", + "CSS gradient requires fallback rendering; native gradient mapping is not available.", + bgResolved.element || body ); } const background = bgResolved.gradient ? { type: "color", value: "FFFFFF" } : { type: bgResolved.type, ...bgResolved.path ? { path: bgResolved.path } : { value: bgResolved.value } }; const slideBackdropHex = background.value || "0E0E12"; const elements = []; + const slideDataFallbackLayers = []; const placeholders = []; const textTags = ["P", "H1", "H2", "H3", "H4", "H5", "H6", "UL", "OL", "LI"]; const genericInlineTextTags = /* @__PURE__ */ new Set([ @@ -12881,7 +11473,7 @@ function extractSlideDataFromDocument(doc = document) { return false; }; const hasDirectText = (el) => Array.from(el.childNodes).some( - (node) => node.nodeType === Node.TEXT_NODE && node.textContent.replace(/\s+/g, " ").trim() + (node) => node.nodeType === view.Node.TEXT_NODE && node.textContent.replace(/\s+/g, " ").trim() ); const isGenericTextElement = (el) => { if (!el.textContent.replace(/\s+/g, " ").trim() || hasTextOwnerAncestor(el)) return false; @@ -12931,11 +11523,13 @@ function extractSlideDataFromDocument(doc = document) { const rect = rectOverride || rectFor(el); const text2 = el.textContent.replace(/\s+/g, " ").trim(); if (rect.width === 0 || rect.height === 0 || !text2) return false; - if (type !== "text" && el.tagName !== "LI" && /^[•\-\*▪▸○●◆◇■□]\s/.test(text2.trimStart())) { - errors.push( - `Text element <${el.tagName.toLowerCase()}> starts with bullet symbol "${text2.substring(0, 20)}...". Use