single-file-core 1.5.95 → 1.5.96

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/core/helper.js CHANGED
@@ -91,6 +91,8 @@ const CustomEvent = globalThis.CustomEvent;
91
91
  const MutationObserver = globalThis.MutationObserver;
92
92
  const URL = globalThis.URL;
93
93
  const DOMParser = globalThis.DOMParser;
94
+ const Uint8Array = globalThis.Uint8Array;
95
+ const btoa = globalThis.btoa;
94
96
 
95
97
  export {
96
98
  initUserScriptHandler,
@@ -105,6 +107,7 @@ export {
105
107
  getShadowRoot,
106
108
  appendInfobar,
107
109
  getContentSize,
110
+ getDataURI,
108
111
  digest,
109
112
  getValidFilename,
110
113
  parseDocContent,
@@ -297,7 +300,10 @@ function markInvalidNesting(doc) {
297
300
 
298
301
  function addTrackIds(element, index = 0, parentTrackId = "") {
299
302
  const trackId = parentTrackId ? `${parentTrackId}.${index + 1}` : `${index + 1}`;
300
- element.setAttribute(NESTING_TRACK_ID_ATTRIBUTE_NAME, trackId);
303
+ const tagName = element.tagName.toUpperCase();
304
+ if (!(parentTrackId && (tagName == "BODY" || tagName == "HEAD" || tagName == "HTML"))) {
305
+ element.setAttribute(NESTING_TRACK_ID_ATTRIBUTE_NAME, trackId);
306
+ }
301
307
  Array.from(element.children).forEach((child, indexChild) => addTrackIds(child, indexChild, trackId));
302
308
  }
303
309
 
@@ -338,7 +344,7 @@ function fixInvalidNesting(document, NESTING_TRACK_ID_ATTRIBUTE_NAME, preventCle
338
344
  if (idParts.length > 1) {
339
345
  const parentId = idParts.slice(0, -1).join(".");
340
346
  const expectedParent = trackIds[parentId];
341
- if (expectedParent && element.parentElement !== expectedParent) {
347
+ if (expectedParent && element.parentElement !== expectedParent && !element.contains(expectedParent)) {
342
348
  expectedParent.appendChild(element);
343
349
  }
344
350
  }
@@ -793,6 +799,15 @@ function getContentSize(content) {
793
799
  return new Blob([content]).size;
794
800
  }
795
801
 
802
+ async function getDataURI(blob) {
803
+ const bytes = new Uint8Array(await blob.arrayBuffer());
804
+ let content = "";
805
+ for (let offset = 0; offset < bytes.length; offset += 8192) {
806
+ content += String.fromCharCode(...bytes.subarray(offset, offset + 8192));
807
+ }
808
+ return "data:" + (blob.type || "application/octet-stream") + ";base64," + btoa(content);
809
+ }
810
+
796
811
  async function digest(algo, text) {
797
812
  try {
798
813
  const data = new TextEncoder("utf-8").encode(text);
@@ -23,7 +23,8 @@
23
23
 
24
24
  import {
25
25
  normalizeFontFamily,
26
- getFontWeight
26
+ getFontWeight,
27
+ getDataURI
27
28
  } from "./../helper.js";
28
29
 
29
30
  const DATA_URI_PREFIX = "data:";
@@ -60,7 +61,6 @@ const FONT_STRETCHES = {
60
61
  "ultra-expanded": "200%"
61
62
  };
62
63
  const Blob = globalThis.Blob;
63
- const FileReader = globalThis.FileReader;
64
64
  const Image = globalThis.Image;
65
65
  const OffscreenCanvas = globalThis.OffscreenCanvas;
66
66
 
@@ -710,10 +710,5 @@ async function resizeImage(doc, dataURI, { imageReductionFactor }) {
710
710
 
711
711
  function toDataURI(content, contentType, charset) {
712
712
  const blob = content instanceof Blob ? content : new Blob([content], { type: (contentType || "") + (charset ? ";charset=" + charset : "") });
713
- return new Promise((resolve, reject) => {
714
- const reader = new FileReader();
715
- reader.onload = () => resolve(reader.result);
716
- reader.onerror = () => reject(new Error(reader.error));
717
- reader.readAsDataURL(blob);
718
- });
713
+ return getDataURI(blob);
719
714
  }
package/core/util.js CHANGED
@@ -66,7 +66,6 @@ const CONTENT_TYPE_OCTET_STREAM = "application/octet-stream";
66
66
  const URL = globalThis.URL;
67
67
  const DOMParser = globalThis.DOMParser;
68
68
  const Blob = globalThis.Blob;
69
- const FileReader = globalThis.FileReader;
70
69
  const fetch = (url, options) => {
71
70
  options.cache = "force-cache";
72
71
  options.referrerPolicy = "strict-origin-when-cross-origin";
@@ -351,12 +350,7 @@ async function getFetchResponse(resourceURL, options, data, charset, contentType
351
350
  if (data) {
352
351
  if (options.asBinary) {
353
352
  if (options.inline) {
354
- const reader = new FileReader();
355
- reader.readAsDataURL(new Blob([data], { type: contentType + (options.charset ? ";charset=" + options.charset : "") }));
356
- data = await new Promise((resolve, reject) => {
357
- reader.addEventListener("load", () => resolve(reader.result), false);
358
- reader.addEventListener("error", reject, false);
359
- });
353
+ data = await helper.getDataURI(new Blob([data], { type: contentType + (options.charset ? ";charset=" + options.charset : "") }));
360
354
  } else {
361
355
  data = new Uint8Array(data);
362
356
  }
@@ -4,7 +4,6 @@ import { build } from "esbuild";
4
4
 
5
5
  const require = createRequire(import.meta.url);
6
6
  const packagePath = require.resolve("css-tree/package.json");
7
- const tokenStreamPath = packagePath.replace(/package\.json$/, "lib/tokenizer/TokenStream.js");
8
7
  const licensePath = packagePath.replace(/package\.json$/, "LICENSE");
9
8
  const { version } = JSON.parse(readFileSync(packagePath));
10
9
 
package/eslint.config.mjs CHANGED
@@ -1,6 +1,12 @@
1
1
  import js from "@eslint/js";
2
2
 
3
3
  export default [
4
+ {
5
+ ignores: [
6
+ "vendor/**",
7
+ "zip-build/lib/**"
8
+ ]
9
+ },
4
10
  js.configs.recommended,
5
11
  {
6
12
  languageOptions: {
@@ -27,5 +33,22 @@ export default [
27
33
  "warn"
28
34
  ]
29
35
  }
36
+ },
37
+ {
38
+ files: ["test/sfz-harness/**"],
39
+ languageOptions: {
40
+ globals: {
41
+ Deno: "readonly",
42
+ setTimeout: "readonly",
43
+ Blob: "readonly",
44
+ TextDecoder: "readonly",
45
+ TextEncoder: "readonly",
46
+ URL: "readonly",
47
+ performance: "readonly"
48
+ }
49
+ },
50
+ rules: {
51
+ "no-console": "off"
52
+ }
30
53
  }
31
54
  ];
@@ -27,7 +27,6 @@ import { parse } from "./template-parser.js";
27
27
  import { getContentSize, digest, getValidFilename } from "./../core/helper.js";
28
28
 
29
29
  const Blob = globalThis.Blob;
30
- const FileReader = globalThis.FileReader;
31
30
  const URL = globalThis.URL;
32
31
  const Intl = globalThis.Intl;
33
32
  const URLSearchParams = globalThis.URLSearchParams;
@@ -17263,26 +17262,14 @@ function getLastSegment(url, replacementCharacter) {
17263
17262
  return lastSegment;
17264
17263
  }
17265
17264
 
17266
- function truncateText(content, maxSize) {
17265
+ async function truncateText(content, maxSize) {
17267
17266
  const blob = new Blob([content]);
17268
- const reader = new FileReader();
17269
- reader.readAsText(blob.slice(0, maxSize));
17270
- return new Promise((resolve, reject) => {
17271
- reader.addEventListener(
17272
- "load",
17273
- () => {
17274
- if (content.startsWith(reader.result)) {
17275
- resolve(reader.result);
17276
- } else {
17277
- truncateText(content, maxSize - 1)
17278
- .then(resolve)
17279
- .catch(reject);
17280
- }
17281
- },
17282
- false
17283
- );
17284
- reader.addEventListener("error", reject, false);
17285
- });
17267
+ const result = await blob.slice(0, maxSize).text();
17268
+ if (content.startsWith(result)) {
17269
+ return result;
17270
+ } else {
17271
+ return truncateText(content, maxSize - 1);
17272
+ }
17286
17273
  }
17287
17274
 
17288
17275
  function getFilenameExtension(options) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "single-file-core",
3
- "version": "1.5.95",
3
+ "version": "1.5.96",
4
4
  "description": "SingleFile Core",
5
5
  "author": "Gildas Lormeau",
6
6
  "license": "AGPL-3.0-or-later",
@@ -20,6 +20,7 @@
20
20
  },
21
21
  "homepage": "https://github.com/gildas-lormeau/single-file-core#readme",
22
22
  "devDependencies": {
23
- "eslint": "^9.39.1"
23
+ "@eslint/js": "^9.39.5",
24
+ "eslint": "^10.9.1"
24
25
  }
25
26
  }
@@ -21,7 +21,7 @@
21
21
  * Source.
22
22
  */
23
23
 
24
- /* global zip, Blob, FileReader, URL */
24
+ /* global zip, Blob, btoa, URL */
25
25
 
26
26
  export {
27
27
  extract
@@ -220,12 +220,13 @@ async function extract(content, { password, prompt = () => { }, zipOptions = { u
220
220
  }
221
221
 
222
222
  async function getDataURI(textContent, mimeType) {
223
- const reader = new FileReader();
224
- reader.readAsDataURL(new Blob([textContent], { type: mimeType }));
225
- return new Promise((resolve, reject) => {
226
- reader.onload = () => resolve(reader.result.replace(CHARSET_UTF8, ""));
227
- reader.onerror = reject;
228
- });
223
+ const blob = new Blob([textContent], { type: mimeType });
224
+ const bytes = new Uint8Array(await blob.arrayBuffer());
225
+ let content = "";
226
+ for (let offset = 0; offset < bytes.length; offset += 8192) {
227
+ content += String.fromCharCode(...bytes.subarray(offset, offset + 8192));
228
+ }
229
+ return ("data:" + (blob.type || "application/octet-stream") + ";base64," + btoa(content)).replace(CHARSET_UTF8, "");
229
230
  }
230
231
 
231
232
  function replaceAll(string, search, replacement) {
@@ -606,6 +606,7 @@ async function getContent() {
606
606
  displayMessage("sfz-wait-message", 2);
607
607
  resolve(pageData);
608
608
  } catch (error) {
609
+ // eslint-disable-next-line no-console
609
610
  console.error(error);
610
611
  displayMessage("sfz-error-message", 2);
611
612
  reject(error);
@@ -397,8 +397,8 @@ function sendMessage(targetWindow, message, useChannel) {
397
397
  }
398
398
  }
399
399
 
400
- function getFrameData(document, globalThis, windowId, options, scrolling) {
401
- const docData = helper.preProcessDoc(document, globalThis, options);
400
+ function getFrameData(document, win, windowId, options, scrolling) {
401
+ const docData = helper.preProcessDoc(document, win, options);
402
402
  const content = helper.serialize(document);
403
403
  helper.postProcessDoc(document, docData.markedElements, docData.invalidElements);
404
404
  const baseURI = document.baseURI.split("#")[0];
@@ -21,7 +21,7 @@
21
21
  * Source.
22
22
  */
23
23
 
24
- (globalThis => {
24
+ (() => {
25
25
 
26
26
  const LOAD_DEFERRED_IMAGES_START_EVENT = "single-file-load-deferred-images-start";
27
27
  const LOAD_DEFERRED_IMAGES_END_EVENT = "single-file-load-deferred-images-end";
@@ -71,8 +71,8 @@
71
71
  const Element = globalThis.Element;
72
72
  const UIEvent = globalThis.UIEvent;
73
73
  const Event = globalThis.Event;
74
- const FileReader = globalThis.FileReader;
75
- const Blob = globalThis.Blob;
74
+ const Uint8Array = globalThis.Uint8Array;
75
+ const btoa = globalThis.btoa;
76
76
  const JSON = globalThis.JSON;
77
77
  const MutationObserver = globalThis.MutationObserver;
78
78
  const URL = globalThis.URL;
@@ -88,83 +88,126 @@
88
88
  new MutationObserver(init).observe(document, { childList: true });
89
89
 
90
90
  function init() {
91
- document.addEventListener(LOAD_DEFERRED_IMAGES_START_EVENT, () => loadDeferredImagesStart());
92
- document.addEventListener(LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_START_EVENT, () => loadDeferredImagesStart(true));
93
- document.addEventListener(LOAD_DEFERRED_IMAGES_END_EVENT, () => loadDeferredImagesEnd());
94
- document.addEventListener(LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_END_EVENT, () => loadDeferredImagesEnd(true));
91
+ document.addEventListener(LOAD_DEFERRED_IMAGES_START_EVENT, onLoadDeferredImagesStart);
92
+ document.addEventListener(LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_START_EVENT, onLoadDeferredImagesKeepZoomLevelStart);
93
+ document.addEventListener(LOAD_DEFERRED_IMAGES_END_EVENT, onLoadDeferredImagesEnd);
94
+ document.addEventListener(LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_END_EVENT, onLoadDeferredImagesKeepZoomLevelEnd);
95
95
  document.addEventListener(LOAD_DEFERRED_IMAGES_RESET_EVENT, resetScreenSize);
96
- document.addEventListener(LOAD_DEFERRED_IMAGES_RESET_ZOOM_LEVEL_EVENT, () => {
97
- const transform = document.documentElement.style.getPropertyValue("-sf-transform");
98
- const transformPriority = document.documentElement.style.getPropertyPriority("-sf-transform");
99
- const transformOrigin = document.documentElement.style.getPropertyValue("-sf-transform-origin");
100
- const transformOriginPriority = document.documentElement.style.getPropertyPriority("-sf-transform-origin");
101
- const minHeight = document.documentElement.style.getPropertyValue("-sf-min-height");
102
- const minHeightPriority = document.documentElement.style.getPropertyPriority("-sf-min-height");
103
- document.documentElement.style.setProperty("transform", transform, transformPriority);
104
- document.documentElement.style.setProperty("transform-origin", transformOrigin, transformOriginPriority);
105
- document.documentElement.style.setProperty("min-height", minHeight, minHeightPriority);
106
- document.documentElement.style.removeProperty("-sf-transform");
107
- document.documentElement.style.removeProperty("-sf-transform-origin");
108
- document.documentElement.style.removeProperty("-sf-min-height");
109
- resetScreenSize();
110
- });
111
- document.addEventListener(DISPATCH_SCROLL_START_EVENT, () => { dispatchScrollEvent = true; });
112
- document.addEventListener(DISPATCH_SCROLL_END_EVENT, () => { dispatchScrollEvent = false; });
113
- document.addEventListener(BLOCK_COOKIES_START_EVENT, () => {
114
- try {
115
- document.__defineGetter__("cookie", () => { throw new Error("document.cookie temporary blocked by SingleFile"); });
116
- // eslint-disable-next-line no-unused-vars
117
- } catch (error) {
118
- // ignored
119
- }
120
- });
121
- document.addEventListener(BLOCK_COOKIES_END_EVENT, () => { delete document.cookie; });
122
- document.addEventListener(BLOCK_STORAGE_START_EVENT, () => {
123
- if (!globalThis._singleFile_localStorage) {
124
- globalThis._singleFile_localStorage = globalThis.localStorage;
125
- globalThis.__defineGetter__("localStorage", () => { throw new Error("localStorage temporary blocked by SingleFile"); });
126
- }
127
- if (!globalThis._singleFile_indexedDB) {
128
- globalThis._singleFile_indexedDB = globalThis.indexedDB;
129
- globalThis.__defineGetter__("indexedDB", () => { throw new Error("indexedDB temporary blocked by SingleFile"); });
130
- }
131
- });
132
- document.addEventListener(BLOCK_STORAGE_END_EVENT, () => {
133
- if (globalThis._singleFile_localStorage) {
134
- delete globalThis.localStorage;
135
- globalThis.localStorage = globalThis._singleFile_localStorage;
136
- delete globalThis._singleFile_localStorage;
137
- }
138
- if (!globalThis._singleFile_indexedDB) {
139
- delete globalThis.indexedDB;
140
- globalThis.indexedDB = globalThis._singleFile_indexedDB;
141
- delete globalThis._singleFile_indexedDB;
142
- }
143
- });
144
- document.addEventListener(FETCH_SUPPORTED_REQUEST_EVENT, () =>
145
- document.dispatchEvent(new CustomEvent(FETCH_SUPPORTED_RESPONSE_EVENT)));
146
- document.addEventListener(FETCH_REQUEST_EVENT, async event => {
147
- const { url, options } = JSON.parse(event.detail);
148
- let detail;
149
- try {
150
- const response = await fetch(url, options);
151
- detail = { url, response: await response.arrayBuffer(), headers: [...response.headers], status: response.status };
152
- } catch (error) {
153
- detail = { url, error: error && (error.message || error.toString()) };
154
- }
155
- document.dispatchEvent(new CustomEvent(FETCH_RESPONSE_EVENT, { detail }));
156
- });
96
+ document.addEventListener(LOAD_DEFERRED_IMAGES_RESET_ZOOM_LEVEL_EVENT, onLoadDeferredImagesResetZoomLevel);
97
+ document.addEventListener(DISPATCH_SCROLL_START_EVENT, onDispatchScrollStart);
98
+ document.addEventListener(DISPATCH_SCROLL_END_EVENT, onDispatchScrollEnd);
99
+ document.addEventListener(BLOCK_COOKIES_START_EVENT, onBlockCookiesStart);
100
+ document.addEventListener(BLOCK_COOKIES_END_EVENT, onBlockCookiesEnd);
101
+ document.addEventListener(BLOCK_STORAGE_START_EVENT, onBlockStorageStart);
102
+ document.addEventListener(BLOCK_STORAGE_END_EVENT, onBlockStorageEnd);
103
+ document.addEventListener(FETCH_SUPPORTED_REQUEST_EVENT, onFetchSupportedRequest);
104
+ document.addEventListener(FETCH_REQUEST_EVENT, onFetchRequest);
157
105
  document.addEventListener(GET_ADOPTED_STYLESHEETS_REQUEST_EVENT, getAdoptedStylesheetsListener);
158
- document.addEventListener(BOOTSTRAP_EVENT, event => {
159
- try {
160
- if (globalThis.bootstrap && event.detail.data) {
161
- globalThis.bootstrap(event.detail.data);
162
- }
163
- // eslint-disable-next-line no-unused-vars
164
- } catch (error) {
165
- // ignored
106
+ document.addEventListener(BOOTSTRAP_EVENT, onBootstrap);
107
+ }
108
+
109
+ function onLoadDeferredImagesStart() {
110
+ loadDeferredImagesStart();
111
+ }
112
+
113
+ function onLoadDeferredImagesKeepZoomLevelStart() {
114
+ loadDeferredImagesStart(true);
115
+ }
116
+
117
+ function onLoadDeferredImagesEnd() {
118
+ loadDeferredImagesEnd();
119
+ }
120
+
121
+ function onLoadDeferredImagesKeepZoomLevelEnd() {
122
+ loadDeferredImagesEnd(true);
123
+ }
124
+
125
+ function onLoadDeferredImagesResetZoomLevel() {
126
+ const transform = document.documentElement.style.getPropertyValue("-sf-transform");
127
+ const transformPriority = document.documentElement.style.getPropertyPriority("-sf-transform");
128
+ const transformOrigin = document.documentElement.style.getPropertyValue("-sf-transform-origin");
129
+ const transformOriginPriority = document.documentElement.style.getPropertyPriority("-sf-transform-origin");
130
+ const minHeight = document.documentElement.style.getPropertyValue("-sf-min-height");
131
+ const minHeightPriority = document.documentElement.style.getPropertyPriority("-sf-min-height");
132
+ document.documentElement.style.setProperty("transform", transform, transformPriority);
133
+ document.documentElement.style.setProperty("transform-origin", transformOrigin, transformOriginPriority);
134
+ document.documentElement.style.setProperty("min-height", minHeight, minHeightPriority);
135
+ document.documentElement.style.removeProperty("-sf-transform");
136
+ document.documentElement.style.removeProperty("-sf-transform-origin");
137
+ document.documentElement.style.removeProperty("-sf-min-height");
138
+ resetScreenSize();
139
+ }
140
+
141
+ function onDispatchScrollStart() {
142
+ dispatchScrollEvent = true;
143
+ }
144
+
145
+ function onDispatchScrollEnd() {
146
+ dispatchScrollEvent = false;
147
+ }
148
+
149
+ function onBlockCookiesStart() {
150
+ try {
151
+ document.__defineGetter__("cookie", () => { throw new Error("document.cookie temporary blocked by SingleFile"); });
152
+ // eslint-disable-next-line no-unused-vars
153
+ } catch (error) {
154
+ // ignored
155
+ }
156
+ }
157
+
158
+ function onBlockCookiesEnd() {
159
+ delete document.cookie;
160
+ }
161
+
162
+ function onBlockStorageStart() {
163
+ if (!globalThis._singleFile_localStorage) {
164
+ globalThis._singleFile_localStorage = globalThis.localStorage;
165
+ globalThis.__defineGetter__("localStorage", () => { throw new Error("localStorage temporary blocked by SingleFile"); });
166
+ }
167
+ if (!globalThis._singleFile_indexedDB) {
168
+ globalThis._singleFile_indexedDB = globalThis.indexedDB;
169
+ globalThis.__defineGetter__("indexedDB", () => { throw new Error("indexedDB temporary blocked by SingleFile"); });
170
+ }
171
+ }
172
+
173
+ function onBlockStorageEnd() {
174
+ if (globalThis._singleFile_localStorage) {
175
+ delete globalThis.localStorage;
176
+ globalThis.localStorage = globalThis._singleFile_localStorage;
177
+ delete globalThis._singleFile_localStorage;
178
+ }
179
+ if (!globalThis._singleFile_indexedDB) {
180
+ delete globalThis.indexedDB;
181
+ globalThis.indexedDB = globalThis._singleFile_indexedDB;
182
+ delete globalThis._singleFile_indexedDB;
183
+ }
184
+ }
185
+
186
+ function onFetchSupportedRequest() {
187
+ document.dispatchEvent(new CustomEvent(FETCH_SUPPORTED_RESPONSE_EVENT));
188
+ }
189
+
190
+ async function onFetchRequest(event) {
191
+ const { url, options } = JSON.parse(event.detail);
192
+ let detail;
193
+ try {
194
+ const response = await fetch(url, options);
195
+ detail = { url, response: await response.arrayBuffer(), headers: [...response.headers], status: response.status };
196
+ } catch (error) {
197
+ detail = { url, error: error && (error.message || error.toString()) };
198
+ }
199
+ document.dispatchEvent(new CustomEvent(FETCH_RESPONSE_EVENT, { detail }));
200
+ }
201
+
202
+ function onBootstrap(event) {
203
+ try {
204
+ if (globalThis.bootstrap && event.detail.data) {
205
+ globalThis.bootstrap(event.detail.data);
166
206
  }
167
- });
207
+ // eslint-disable-next-line no-unused-vars
208
+ } catch (error) {
209
+ // ignored
210
+ }
168
211
  }
169
212
 
170
213
  function loadDeferredImagesStart(keepZoomLevel) {
@@ -521,18 +564,15 @@
521
564
  }
522
565
  });
523
566
  }
524
- return new Promise(resolve => {
525
- if (detail.src instanceof ArrayBuffer) {
526
- const reader = new FileReader();
527
- reader.readAsDataURL(new Blob([detail.src]));
528
- reader.addEventListener("load", () => {
529
- detail.src = "url(" + reader.result + ")";
530
- resolve(detail);
531
- });
532
- } else {
533
- resolve(detail);
567
+ if (detail.src instanceof ArrayBuffer) {
568
+ const bytes = new Uint8Array(detail.src);
569
+ let content = "";
570
+ for (let offset = 0; offset < bytes.length; offset += 8192) {
571
+ content += String.fromCharCode(...bytes.subarray(offset, offset + 8192));
534
572
  }
535
- });
573
+ detail.src = "url(data:application/octet-stream;base64," + btoa(content) + ")";
574
+ }
575
+ return detail;
536
576
  }
537
577
 
538
578
  function dispatchResizeEvent() {
@@ -547,4 +587,4 @@
547
587
  }
548
588
  }
549
589
 
550
- })(typeof globalThis == "object" ? globalThis : globalThis.window);
590
+ })();
@@ -65,26 +65,36 @@ new MutationObserver(init).observe(document, { childList: true });
65
65
 
66
66
  function init() {
67
67
  if (document instanceof Document) {
68
- document.addEventListener(NEW_FONT_FACE_EVENT, event => {
69
- const detail = event.detail;
70
- const key = Object.assign({}, detail);
71
- delete key.src;
72
- fontFaces.set(JSON.stringify(key), detail);
73
- });
74
- document.addEventListener(DELETE_FONT_EVENT, event => {
75
- const detail = event.detail;
76
- const key = Object.assign({}, detail);
77
- delete key.src;
78
- fontFaces.delete(JSON.stringify(key));
79
- });
80
- document.addEventListener(CLEAR_FONTS_EVENT, () => fontFaces = new Map());
81
- document.addEventListener(NEW_WORKLET_EVENT, event => {
82
- const detail = event.detail;
83
- worklets.set(detail.moduleURL, detail);
84
- });
68
+ document.addEventListener(NEW_FONT_FACE_EVENT, onNewFontFace);
69
+ document.addEventListener(DELETE_FONT_EVENT, onDeleteFont);
70
+ document.addEventListener(CLEAR_FONTS_EVENT, onClearFonts);
71
+ document.addEventListener(NEW_WORKLET_EVENT, onNewWorklet);
85
72
  }
86
73
  }
87
74
 
75
+ function onNewFontFace(event) {
76
+ const detail = event.detail;
77
+ const key = Object.assign({}, detail);
78
+ delete key.src;
79
+ fontFaces.set(JSON.stringify(key), detail);
80
+ }
81
+
82
+ function onDeleteFont(event) {
83
+ const detail = event.detail;
84
+ const key = Object.assign({}, detail);
85
+ delete key.src;
86
+ fontFaces.delete(JSON.stringify(key));
87
+ }
88
+
89
+ function onClearFonts() {
90
+ fontFaces.clear();
91
+ }
92
+
93
+ function onNewWorklet(event) {
94
+ const detail = event.detail;
95
+ worklets.set(detail.moduleURL, detail);
96
+ }
97
+
88
98
  export {
89
99
  getFontsData,
90
100
  getWorkletsData,
@@ -21,11 +21,11 @@
21
21
  * Source.
22
22
  */
23
23
 
24
- /* global window, document */
24
+ /* global document */
25
25
 
26
26
  import { appendInfobar, refreshInfobarInfo, extractInfobarData } from "./core/infobar.js";
27
27
 
28
- (globalThis => {
28
+ (() => {
29
29
 
30
30
  const browser = globalThis.browser;
31
31
  const MutationObserver = globalThis.MutationObserver;
@@ -36,7 +36,8 @@ import { appendInfobar, refreshInfobarInfo, extractInfobarData } from "./core/in
36
36
  if (globalThis.window == globalThis.top) {
37
37
  document.addEventListener("single-file-display-infobar", displayIcon, false);
38
38
  if (document.documentElement.getAttribute("data-sfz") == "" && !mutationObserver) {
39
- mutationObserver = new MutationObserver(init).observe(document, { childList: true });
39
+ mutationObserver = new MutationObserver(init);
40
+ mutationObserver.observe(document, { childList: true });
40
41
  } else {
41
42
  if (document.readyState == "loading") {
42
43
  document.addEventListener("DOMContentLoaded", displayIcon, false);
@@ -77,4 +78,4 @@ import { appendInfobar, refreshInfobarInfo, extractInfobarData } from "./core/in
77
78
  }
78
79
  }
79
80
 
80
- })(typeof globalThis == "object" ? globalThis : window);
81
+ })();
package/single-file.js CHANGED
@@ -128,13 +128,7 @@ async function getPageData(options = {}, initOptions, doc, win) {
128
128
  embeddedPdf: options.embeddedPdf
129
129
  });
130
130
  delete pageData.resources;
131
- const reader = new globalThis.FileReader();
132
- reader.readAsArrayBuffer(blob);
133
- const arrayBuffer = await new Promise((resolve, reject) => {
134
- reader.addEventListener("load", () => resolve(reader.result), false);
135
- reader.addEventListener("error", event => reject(event.detail.error), false);
136
- });
137
- pageData.content = Array.from(new Uint8Array(arrayBuffer));
131
+ pageData.content = Array.from(new Uint8Array(await blob.arrayBuffer()));
138
132
  }
139
133
  return pageData;
140
134
  }
@@ -1 +1 @@
1
- !function(){"use strict";const{Array:t,Object:e,Number:n,Math:r,Error:s,Uint8Array:o,Uint16Array:c,Uint32Array:a,Int32Array:i,Map:u,DataView:f,Promise:l,TextEncoder:w,crypto:h,postMessage:p,TransformStream:d,ReadableStream:y,WritableStream:m,CompressionStream:g,DecompressionStream:S}=self,v=void 0,k="undefined",z="function",b=new o,C=[[],[],[],[],[],[],[],[]];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)e=1&e?e>>>1^3988292384:e>>>1;C[0][t]=e}for(let t=0;256>t;t++)for(let e=1;8>e;e++){const n=C[e-1][t];C[e][t]=n>>>8^C[0][255&n]}const[I,A,x,P,M,B,D,F]=C;class _{constructor(t){this.o=t||-1}append(t){let e=0|this.o;const n=0|t.length;let r=0;if(n>=8&&t.buffer){const s=new f(t.buffer,t.byteOffset,n),o=n-8;for(;o>=r;r+=8){const t=e^s.getInt32(r,!0),n=s.getInt32(r+4,!0);e=F[255&t]^D[t>>>8&255]^B[t>>>16&255]^M[t>>>24&255]^P[255&n]^x[n>>>8&255]^A[n>>>16&255]^I[n>>>24&255]}}for(;n>r;r++)e=e>>>8^I[255&(e^t[r])];this.o=e}get(){return~this.o}}class R extends d{constructor(){let t;const e=new _;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new o(4);new f(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function T(t,e){const n=new o(t.length+e.length);return n.set(t),n.set(e,t.length),n}function U(t){return new f(t.buffer,t.byteOffset,t.byteLength)}const V={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=V.l(n);return 32===r?t.concat(e):V.h(e,r,0|n,t.slice(0,t.length-1))},bitLength(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+V.l(n)},m(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,r.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=V.S(e,t[n-1]&2147483648>>e-1,1)),t},S:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,l:t=>r.round(t/1099511627776)||32,h(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let s=0;s<t.length;s++)r.push(n|t[s]>>>e),n=t[s]<<32-e;const s=t.length?t[t.length-1]:0,o=V.l(s);return r.push(V.S(e+o&31,e+o>32?n:r.pop(),1)),r}},K={bytes:{v(t){const e=V.bitLength(t)/8,n=new o(e);let r;for(let s=0;e>s;s++)3&s||(r=t[s/4]),n[s]=r>>>24,r<<=8;return n},C(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3&~n||(e.push(r),r=0);return 3&n&&e.push(V.S(8*(3&n),r)),e}}},E=class{constructor(t){const e=this;e.blockSize=512,e.I=[1732584193,4023233417,2562383102,271733878,3285377520],e.A=[1518500249,1859775393,2400959708,3395469782],t?(e.P=t.P.slice(0),e.M=t.M.slice(0),e.B=t.B):e.reset()}reset(){const t=this;return t.P=t.I.slice(0),t.M=[],t.B=0,t}update(t){const e=this;"string"==typeof t&&(t=K.D.C(t));const n=e.M=V.concat(e.M,t),r=e.B,o=e.B=r+V.bitLength(t);if(o>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const c=new a(n);let i=0;for(let t=e.blockSize+r-(e.blockSize+r&e.blockSize-1);o>=t;t+=e.blockSize)e.F(c.subarray(16*i,16*(i+1))),i+=1;return n.splice(0,16*i),e}_(){const t=this;let e=t.M;const n=t.P;e=V.concat(e,[V.S(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(r.floor(t.B/4294967296)),e.push(0|t.B);e.length;)t.F(e.splice(0,16));return t.reset(),n}R(t,e,n,r){return t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r}T(t,e){return e<<t|e>>>32-t}F(e){const n=this,s=n.P,o=t(80);for(let t=0;16>t;t++)o[t]=e[t];let c=s[0],a=s[1],i=s[2],u=s[3],f=s[4];for(let t=0;79>=t;t++){16>t||(o[t]=n.T(1,o[t-3]^o[t-8]^o[t-14]^o[t-16]));const e=n.T(5,c)+n.R(t,a,i,u)+f+o[t]+n.A[r.floor(t/20)]|0;f=u,u=i,i=n.T(30,a),a=c,c=e}s[0]=s[0]+c|0,s[1]=s[1]+a|0,s[2]=s[2]+i|0,s[3]=s[3]+u|0,s[4]=s[4]+f|0}},O={importKey:t=>new O.U(K.bytes.C(t)),V(t,e,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const o=1+(r>>5)<<2;let c,a,i,u,l;const w=new ArrayBuffer(o),h=new f(w);let p=0;const d=V;for(e=K.bytes.C(e),l=1;(o||1)>p;l++){for(c=a=t.encrypt(d.concat(e,[l])),i=1;n>i;i++)for(a=t.encrypt(a),u=0;u<a.length;u++)c[u]^=a[u];for(i=0;(o||1)>p&&i<c.length;i++)h.setInt32(p,c[i]),p+=4}return w.slice(0,r/8)},U:class{constructor(t){const e=this,n=e.K=E,r=[[],[]];e.O=[new n,new n];const s=e.O[0].blockSize/32;t.length>s&&(t=(new n).update(t)._());for(let e=0;s>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.O[0].update(r[0]),e.O[1].update(r[1]),e.W=new n(e.O[0])}reset(){const t=this;t.W=new t.K(t.O[0]),t.j=!1}update(t){this.j=!0,this.W.update(t)}digest(){const t=this,e=t.W._(),n=new t.K(t.O[1]).update(e)._();return t.reset(),n}encrypt(t){if(this.j)throw new s("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},W=typeof h!=k&&typeof h.getRandomValues==z,j="Invalid password",H="Invalid signature",L=H,N="zipjs-abort-check-password";function q(t){if(W)return h.getRandomValues(t);throw new s("Crypto API not supported")}const G=16,J={name:"PBKDF2"},Q=e.assign({hash:{name:"HMAC"}},J),X=e.assign({iterations:1e3,hash:{name:"SHA-1"}},J),Y=["deriveBits"],Z=[8,12,16],$=[16,24,32],tt=10,et=[0,0,0,0],nt=typeof h!=k,rt=nt&&h.subtle,st=nt&&typeof rt!=k,ot=K.bytes,ct=class{constructor(t){const e=this;e.H=[[[],[],[],[],[]],[[],[],[],[],[]]],e.H[0][0][0]||e.L();const n=e.H[0][4],r=e.H[1],o=t.length;let c,a,i,u=1;if(4!==o&&6!==o&&8!==o)throw new s("invalid aes key size");for(e.A=[a=t.slice(0),i=[]],c=o;4*o+28>c;c++){let t=a[c-1];(c%o===0||8===o&&c%o===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],c%o===0&&(t=t<<8^t>>>24^u<<24,u=u<<1^283*(u>>7))),a[c]=a[c-o]^t}for(let t=0;c;t++,c--){const e=a[3&t?c:c-4];i[t]=4>=c||4>t?e:r[0][n[e>>>24]]^r[1][n[e>>16&255]]^r[2][n[e>>8&255]]^r[3][n[255&e]]}}encrypt(t){return this.N(t,0)}decrypt(t){return this.N(t,1)}L(){const t=this.H[0],e=this.H[1],n=t[4],r=e[4],s=[],o=[];let c,a,i,u;for(let t=0;256>t;t++)o[(s[t]=t<<1^283*(t>>7))^t]=t;for(let f=c=0;!n[f];f^=a||1,c=o[c]||1){let o=c^c<<1^c<<2^c<<3^c<<4;o=o>>8^255&o^99,n[f]=o,r[o]=f,u=s[i=s[a=s[f]]];let l=16843009*u^65537*i^257*a^16843008*f,w=257*s[o]^16843008*o;for(let n=0;4>n;n++)t[n][f]=w=w<<24^w>>>8,e[n][o]=l=l<<24^l>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}N(t,e){if(4!==t.length)throw new s("invalid aes block size");const n=this.A[e],r=n.length/4-2,o=[0,0,0,0],c=this.H[e],a=c[0],i=c[1],u=c[2],f=c[3],l=c[4];let w,h,p,d=t[0]^n[0],y=t[e?3:1]^n[1],m=t[2]^n[2],g=t[e?1:3]^n[3],S=4;for(let t=0;r>t;t++)w=a[d>>>24]^i[y>>16&255]^u[m>>8&255]^f[255&g]^n[S],h=a[y>>>24]^i[m>>16&255]^u[g>>8&255]^f[255&d]^n[S+1],p=a[m>>>24]^i[g>>16&255]^u[d>>8&255]^f[255&y]^n[S+2],g=a[g>>>24]^i[d>>16&255]^u[y>>8&255]^f[255&m]^n[S+3],S+=4,d=w,y=h,m=p;for(let t=0;4>t;t++)o[e?3&-t:t]=l[d>>>24]<<24^l[y>>16&255]<<16^l[m>>8&255]<<8^l[255&g]^n[S++],w=d,d=y,y=m,m=g,g=w;return o}},at=class{constructor(t,e){this.G=t,this.J=e,this.X=e}reset(){this.X=this.J}update(t){return this.Y(this.G,t,this.X)}Z(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}return t}$(t){0===(t[0]=this.Z(t[0]))&&(t[1]=this.Z(t[1]))}Y(t,e,n){let r;if(!(r=e.length))return[];const s=V.bitLength(e);for(let s=0;r>s;s+=4){this.$(n);const r=t.encrypt(n);e[s]^=r[0],e[s+1]^=r[1],e[s+2]^=r[2],e[s+3]^=r[3]}return V.m(e,s)}},it=O.U;let ut=nt&&st&&typeof rt.importKey==z,ft=nt&&st&&typeof rt.deriveBits==z;class lt extends d{constructor({password:t,rawPassword:e,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:c=!0}){super({start(){ht(this,t,e,n)},async transform(t,e){const n=this,{password:c,strength:a,et:i,ready:u}=n;c?(await(async(t,e,n,r)=>{const o=await dt(t,e,n,mt(r,0,Z[e])),c=mt(r,Z[e]);if(o[0]!=c[0]||o[1]!=c[1])throw new s(j)})(n,a,c,mt(t,0,Z[a]+2)),t=mt(t,Z[a]+2),r?e.error(new s(N)):i()):await u;const f=new o(t.length-tt-(t.length-tt)%G);e.enqueue(pt(n,t,f,0,tt,!0))},async flush(t){const{nt:e,st:n,ot:r,ready:o}=this;if(n&&e){await o;const a=mt(r,0,r.length-tt),i=mt(r,r.length-tt);let u=b;if(a.length){const t=St(ot,a);n.update(t);const r=e.update(t);u=gt(ot,r)}const f=mt(gt(ot,n.digest()),0,tt);let l=r.length<tt?1:0;for(let t=0;tt>t;t++)l|=f[t]^i[t];if(l&&c)throw new s(L);t.enqueue(u)}}})}}class wt extends d{constructor({password:t,rawPassword:e,encryptionStrength:n}){super({start(){ht(this,t,e,n)},async transform(t,e){const n=this,{password:r,strength:s,et:c,ready:a}=n;let i=b;r?(i=await(async(t,e,n)=>{const r=q(new o(Z[e]));return T(r,await dt(t,e,n,r))})(n,s,r),c()):await a;const u=new o(i.length+t.length-t.length%G);u.set(i,0),e.enqueue(pt(n,t,u,i.length,0))},async flush(t){const{nt:e,st:n,ot:r,ready:s}=this;if(n&&e){await s;let o=b;if(r.length){const t=e.update(St(ot,r));n.update(t),o=gt(ot,t)}const c=gt(ot,n.digest()).slice(0,tt);t.enqueue(T(o,c))}}})}}function ht(t,n,r,s){e.assign(t,{ready:new l(e=>t.et=e),password:yt(n,r),strength:s-1,ot:b})}function pt(t,e,n,r,s,c){const{nt:a,st:i,ot:u}=t;u.length&&(e=T(u,e));const f=e.length-s;let l;for(n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new o(e)).set(n,0)}return t})(n,r+(f-f%G)),l=0;f-G>=l;l+=G){const t=St(ot,mt(e,l,l+G));c&&i.update(t);const s=a.update(t);c||i.update(s),n.set(gt(ot,s),l+r)}return t.ot=mt(e,l),n}async function dt(n,r,s,c){n.password=null;const a=await(async(t,e,n,r,s)=>{if(!ut)return O.importKey(e);try{return await rt.importKey("raw",e,n,!1,s)}catch{return ut=!1,O.importKey(e)}})(0,s,Q,0,Y),i=await(async(t,e,n)=>{if(!ft)return O.V(e,t.salt,X.iterations,n);try{return await rt.deriveBits(t,e,n)}catch{return ft=!1,O.V(e,t.salt,X.iterations,n)}})(e.assign({salt:c},X),a,8*(2*$[r]+2)),u=new o(i),f=St(ot,mt(u,0,$[r])),l=St(ot,mt(u,$[r],2*$[r])),w=mt(u,2*$[r]);return e.assign(n,{keys:{key:f,ct:l,passwordVerification:w},nt:new at(new ct(f),t.from(et)),st:new it(l)}),w}function yt(t,e){return e===v?(t=>{if(typeof w==k){const e=new o((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new w).encode(t)})(t):e}function mt(t,e,n){return t.subarray(e,n)}function gt(t,e){return t.v(e)}function St(t,e){return t.C(e)}class vt extends d{constructor({password:t,rawPassword:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){zt(this,t,e,n)},transform(t,e){const n=this;if(n.password||n.rawPassword){const e=bt(n,t.subarray(0,12));if(n.password=n.rawPassword=null,0!=(e[11]^n.passwordVerification))throw new s(j);t=t.subarray(12)}r?e.error(new s(N)):e.enqueue(bt(n,t))}})}}class kt extends d{constructor({password:t,rawPassword:e,passwordVerification:n}){super({start(){zt(this,t,e,n)},transform(t,e){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const e=q(new o(12));e[11]=n.passwordVerification,r=new o(t.length+e.length),r.set(Ct(n,e),0),s=12}else r=new o(t.length),s=0;r.set(Ct(n,t),s),e.enqueue(r)}})}}function zt(t,n,r,s){e.assign(t,{password:n,rawPassword:r,passwordVerification:s}),((t,n,r)=>{const s=[305419896,591751049,878082192];if(e.assign(t,{keys:s,it:new _(s[0]),ut:new _(s[2])}),r)for(let e=0;e<r.length;e++)It(t,r[e]);else for(let e=0;e<n.length;e++)It(t,n.charCodeAt(e))})(t,n,r)}function bt(t,e){const n=new o(e.length);for(let r=0;r<e.length;r++)n[r]=At(t)^e[r],It(t,n[r]);return n}function Ct(t,e){const n=new o(e.length);for(let r=0;r<e.length;r++)n[r]=At(t)^e[r],It(t,e[r]);return n}function It(t,e){let[,n]=t.keys;t.it.append([e]);const s=~t.it.get();n=Pt(r.imul(Pt(n+xt(s)),134775813)+1),t.ut.append([n>>>24]);const o=~t.ut.get();t.keys=[s,n,o]}function At(t){const e=2|t.keys[2];return xt(r.imul(e,1^e)>>>8)}function xt(t){return 255&t}function Pt(t){return 4294967295&t}function Mt(t){if(t instanceof y)return t;const e=t.getReader();return new y({async pull(t){const{value:n,done:r}=await e.read();r?t.close():t.enqueue(n)},cancel:t=>e.cancel(t)})}const Bt=new u;function Dt(t){return Bt.get(t)}const Ft="Invalid uncompressed size",_t=H,Rt="deflate-raw",Tt="gzip",Ut=[31,139,8];class Vt extends d{constructor(t,{chunkSize:e,CompressionStreamFallback:n,CompressionStream:r}){super({});const{compressed:s,encrypted:o,useCompressionStream:c,zipCrypto:a,computeCrc32:i,level:u,deflate64:l,format:w,compressionMethod:h}=t,p=this;let d,y,m,g=super.readable;const S=w&&Dt(w),v=i&&s&&!l&&!S&&(!o||a)&&!(!c||!r);if(o&&!a||!i||v||(d=new R,g=Lt(g,d)),s)if(S)g=Nt(g,jt(S.CompressionStream,w,{level:u,chunkSize:e,compressionMethod:h}));else if(v)m=new Kt,g=Nt(g,new r(Tt)),g=Lt(g,m);else try{g=Ht(g,c,{level:u,chunkSize:e},r,n)}catch(t){let e;try{e=new r(Tt)}catch{throw t}g=Nt(g,e),g=Lt(g,new Kt)}o&&(a?g=Lt(g,new kt(t)):(y=new wt(t),g=Lt(g,y))),Wt(p,g,()=>{o&&!a||!i||(p.crc32=v?m.crc32:new f(d.value.buffer).getUint32(0))})}}class Kt extends d{constructor(){let t,e=10,n=new o(0);super({transform(t,s){if(e){const n=r.min(e,t.length);if(e-=n,!(t=t.subarray(n)).length)return}const o=n.length+t.length;if(8>=o)return void(n=T(n,t));const c=o-8,a=r.min(c,n.length);s.enqueue(T(n.subarray(0,a),t.subarray(0,c-a))),n=T(n.subarray(a),t.subarray(c-a))},flush(){const e=U(n);t.crc32=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class Et extends d{constructor(t,{chunkSize:e,DecompressionStreamFallback:n,DecompressionStream:r}){super({});const{zipCrypto:c,encrypted:a,checkCrc32:i,crc32:u,compressed:w,useCompressionStream:h,deflate64:p,format:m,compressionMethod:g,rawBitFlag:S,outputSize:k}=t;let z,b,C=super.readable;if(a&&(c?C=Lt(C,new vt(t)):(b=new lt(t),C=Lt(C,b))),w){const t=m&&Dt(m);if(t)C=Nt(C,jt(t.DecompressionStream,m,{chunkSize:e,compressionMethod:g,rawBitFlag:S,uncompressedSize:k}));else try{C=Ht(C,h,{chunkSize:e,deflate64:p},r,n)}catch(t){if(p||k===v)throw t;let e;try{e=new r(Tt)}catch{throw t}C=((t,e,n)=>{const r=new _;let c,a,i,u=0,f=!1;const w=new l((t,e)=>{a=t,i=e});w.catch(()=>{}),n||a();const h=new d({start(t){const e=new o(10);e.set(Ut),t.enqueue(e)},transform(t,e){e.enqueue(t)},async flush(t){f=!0,y();try{await w}finally{m()}const e=new o(8),s=U(e);s.setUint32(0,r.get(),!0),s.setUint32(4,n,!0),t.enqueue(e)},cancel(t){i(t)}}),p=new d({transform(t,e){r.append(t),u+=t.length,n>u?f&&y():a(),e.enqueue(t)},cancel(t){i(t)}});return t=Lt(t,h),Lt(t=Nt(t,e),p);function y(){m(),c=setTimeout(()=>i(new s(Ft)),5e3)}function m(){clearTimeout(c)}})(C,e,k)}C=(t=>{const e=t.getReader();return new y({async pull(t){let n;try{n=await e.read()}catch(t){if(t&&t.message)throw t;const e=new s("Invalid compressed data");throw e.cause=t,e}const{value:r,done:o}=n;o?t.close():t.enqueue(r)},cancel:t=>e.cancel(t)})})(C)}i&&(z=new R,C=Lt(C,z)),Wt(this,C,()=>{if(i){const t=new f(z.value.buffer);if(u!=t.getUint32(0,!1))throw new s(_t)}})}}const Ot=new u;function Wt(t,n,r){n=Lt(n,new d({flush:r})),e.defineProperty(t,"readable",{get:()=>n})}function jt(t,e,n){if(!t)throw new s("Compression method not supported");return new t(e,n)}function Ht(t,e,n,r,s){const o=e&&r?r:s||r,c=n.deflate64?"deflate64-raw":Rt;let a;try{a=new o(c,n)}catch(t){if(!e||!s||o==s)throw t;a=new s(c,n)}return Nt(t,a)}function Lt(t,e){return Mt(t).pipeThrough(e)}function Nt(t,e){const n=e.writable.getWriter(),r=t.getReader();return(async()=>{try{for(;;){await n.ready;const t=await r.read();if(t.done){await n.close();break}await n.write(t.value)}}catch(t){await(async(t,e)=>{try{await t.abort(e)}catch{}})(n,t),await(async(t,e)=>{try{await t.cancel(e)}catch{}})(r,t)}})(),e.readable}const qt="data",Gt="close",Jt="deflate";class Qt extends d{constructor(t,n){super({});const r=this,{codecType:o}=t;let c;o.startsWith(Jt)?c=Vt:o.startsWith("inflate")&&(c=Et),r.outputSize=0;let a=0;const i=new c(t,n),u=super.readable,f=new d({transform(t,e){t&&t.length&&(a+=t.length,e.enqueue(t))},flush(){e.assign(r,{inputSize:a})}}),l=new d({transform(e,n){if(e&&e.length&&(n.enqueue(e),r.outputSize+=e.length,t.outputSize!==v&&r.outputSize>t.outputSize))throw new s(Ft)},flush(){const{crc32:t}=i;e.assign(r,{crc32:t,inputSize:a})}});e.defineProperty(r,"readable",{get:()=>u.pipeThrough(f).pipeThrough(i).pipeThrough(l)})}}class Xt extends d{constructor(t){const e=[];let r=0;function s(){const n=new o(t);let s=0;for(;t>s;){const r=e[0],o=t-s;r.length>o?(n.set(r.subarray(0,o),s),e[0]=r.subarray(o),s+=o):(n.set(r,s),s+=r.length,e.shift())}return r-=t,n}n.isFinite(t)&&t>=1||(t=65536),super({transform(n,o){for(e.push(n),r+=n.length;r>t;)o.enqueue(s())},flush(t){r&&t.enqueue(((t,e)=>{const n=new o(e);let r=0;for(const e of t)n.set(e,r),r+=e.length;return n})(e,r))}})}}let Yt=2;try{typeof navigator!=k&&navigator.hardwareConcurrency&&(Yt=navigator.hardwareConcurrency)}catch{}const Zt=new u,$t=new u;let te,ee=0;async function ne(t){let e,o;try{const{options:c,config:a}=t;if(c.format)try{await(async(t,e)=>{!Bt.has(t)&&e&&((t,e)=>{const{CompressionStream:n,DecompressionStream:r}=e;if(typeof n!=z&&typeof r!=z)throw new s("Invalid codec module");Bt.set(t,{CompressionStream:n,DecompressionStream:r})})(t,await(import(e)))})(c.format,c.codecURI)}catch(t){throw t.codecImportFailed=!0,t}if(a.CompressionStream=self.CompressionStream,a.DecompressionStream=self.DecompressionStream,c.compressed&&!c.format)if(c.useCompressionStream){if(!((t,e)=>{if(!t)return!1;let n=Ot.get(t);n||(n=new u,Ot.set(t,n));let r=n.get(e);if(r===v){try{new t(e),r=!0}catch{r=!1}n.set(e,r)}return r})(c.codecType.startsWith(Jt)?a.CompressionStream:a.DecompressionStream,Rt))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{c.useCompressionStream=!0}!a.CompressionStreamFallback&&a.CompressionStreamZlib&&(a.CompressionStreamFallback=a.CompressionStreamZlib),!a.DecompressionStreamFallback&&a.DecompressionStreamZlib&&(a.DecompressionStreamFallback=a.DecompressionStreamZlib);const i={highWaterMark:1},f=t.readable?Mt(t.readable):new y({async pull(t){const e=new l(t=>Zt.set(ee,t));re({type:"pull",messageId:ee}),ee=(ee+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await e;t.enqueue(r),s&&t.close()}},i);o=t.writable?(t=>{if(t instanceof m)return t;const e=t.getWriter();return new m({write:t=>e.write(t),close:()=>e.close(),abort:t=>e.abort(t)})})(t.writable):new m({async write(t){let e;const r=new l(t=>e=t);$t.set(ee,e),re({type:qt,value:t,messageId:ee}),ee=(ee+1)%n.MAX_SAFE_INTEGER,await r}},i),e=new Qt(c,a),te=new AbortController;const{signal:w}=te;await f.pipeThrough(e).pipeThrough(new Xt((t=>{return s="string"==typeof(e=s=t.chunkSize)&&e.trim()?n(e):e,n.isInteger(s)&&s>=1?r.max(s,64):65536;var e,s})(a))).pipeTo(o,{signal:w,preventClose:!0,preventAbort:!0}),await o.getWriter().close();const{crc32:h,inputSize:p,outputSize:d}=e;re({type:Gt,result:{crc32:h,inputSize:p,outputSize:d}})}catch(t){if(t.outputSize=e?e.outputSize:0,o&&!o.locked)try{await o.getWriter().close()}catch{}se(t)}}function re(t){const{value:e}=t;if(e)if(e.length)try{t.value=(n=e,n.byteOffset||n.byteLength!=n.buffer.byteLength?new o(n):n).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var n}function se(t=new s("Unknown error")){const{message:e,stack:n,code:r,name:o,outputSize:c,cause:a,codecImportFailed:i}=t,u={message:e,stack:n,code:r,name:o,outputSize:c};a&&(u.cause={name:a.name,message:a.message}),i&&(u.codecImportFailed=!0),p({error:u})}addEventListener("message",({data:t})=>{const{type:e,messageId:n,value:r,done:s}=t;try{if("start"==e&&ne(t),e==qt){const t=Zt.get(n);Zt.delete(n),t({value:r||new o,done:s})}if("ack"==e){const t=$t.get(n);$t.delete(n),t()}e==Gt&&te.abort()}catch(t){se(t)}}),p({type:"ready"}),((t={})=>{const{init:e}=t,n=t.CompressionStreamFallback||t.CompressionStreamZlib,r=t.DecompressionStreamFallback||t.DecompressionStreamZlib;self.initModule=async t=>{e&&await e(t),n&&(t.CompressionStreamFallback=n),r&&(t.DecompressionStreamFallback=r)}})()}();
1
+ !function(){"use strict";const{Array:t,Object:e,Number:n,Math:r,Error:s,Uint8Array:o,Uint16Array:c,Uint32Array:a,Int32Array:i,Map:u,DataView:f,Promise:l,TextEncoder:w,crypto:h,postMessage:p,TransformStream:d,ReadableStream:y,WritableStream:m,CompressionStream:S,DecompressionStream:g}=self,v=void 0,k="undefined",z="function",b=new o,C=[[],[],[],[],[],[],[],[]];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)e=1&e?e>>>1^3988292384:e>>>1;C[0][t]=e}for(let t=0;256>t;t++)for(let e=1;8>e;e++){const n=C[e-1][t];C[e][t]=n>>>8^C[0][255&n]}const[I,A,x,P,M,B,D,F]=C;class _{constructor(t){this.o=t||-1}append(t){let e=0|this.o;const n=0|t.length;let r=0;if(n>=8&&t.buffer){const s=new f(t.buffer,t.byteOffset,n),o=n-8;for(;o>=r;r+=8){const t=e^s.getInt32(r,!0),n=s.getInt32(r+4,!0);e=F[255&t]^D[t>>>8&255]^B[t>>>16&255]^M[t>>>24&255]^P[255&n]^x[n>>>8&255]^A[n>>>16&255]^I[n>>>24&255]}}for(;n>r;r++)e=e>>>8^I[255&(e^t[r])];this.o=e}get(){return~this.o}}class R extends d{constructor(){let t;const e=new _;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new o(4);new f(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function T(t,e){const n=new o(t.length+e.length);return n.set(t),n.set(e,t.length),n}function U(t){return new f(t.buffer,t.byteOffset,t.byteLength)}const V={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=V.l(n);return 32===r?t.concat(e):V.h(e,r,0|n,t.slice(0,t.length-1))},bitLength(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+V.l(n)},m(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,r.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=V.S(e,t[n-1]&2147483648>>e-1,1)),t},S:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,l:t=>r.round(t/1099511627776)||32,h(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let s=0;s<t.length;s++)r.push(n|t[s]>>>e),n=t[s]<<32-e;const s=t.length?t[t.length-1]:0,o=V.l(s);return r.push(V.S(e+o&31,e+o>32?n:r.pop(),1)),r}},K={bytes:{v(t){const e=V.bitLength(t)/8,n=new o(e);let r;for(let s=0;e>s;s++)3&s||(r=t[s/4]),n[s]=r>>>24,r<<=8;return n},C(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3&~n||(e.push(r),r=0);return 3&n&&e.push(V.S(8*(3&n),r)),e}}},E=class{constructor(t){const e=this;e.blockSize=512,e.I=[1732584193,4023233417,2562383102,271733878,3285377520],e.A=[1518500249,1859775393,2400959708,3395469782],t?(e.P=t.P.slice(0),e.M=t.M.slice(0),e.B=t.B):e.reset()}reset(){const t=this;return t.P=t.I.slice(0),t.M=[],t.B=0,t}update(t){const e=this;"string"==typeof t&&(t=K.D.C(t));const n=e.M=V.concat(e.M,t),r=e.B,o=e.B=r+V.bitLength(t);if(o>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const c=new a(n);let i=0;for(let t=e.blockSize+r-(e.blockSize+r&e.blockSize-1);o>=t;t+=e.blockSize)e.F(c.subarray(16*i,16*(i+1))),i+=1;return n.splice(0,16*i),e}_(){const t=this;let e=t.M;const n=t.P;e=V.concat(e,[V.S(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(r.floor(t.B/4294967296)),e.push(0|t.B);e.length;)t.F(e.splice(0,16));return t.reset(),n}R(t,e,n,r){return t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r}T(t,e){return e<<t|e>>>32-t}F(e){const n=this,s=n.P,o=t(80);for(let t=0;16>t;t++)o[t]=e[t];let c=s[0],a=s[1],i=s[2],u=s[3],f=s[4];for(let t=0;79>=t;t++){16>t||(o[t]=n.T(1,o[t-3]^o[t-8]^o[t-14]^o[t-16]));const e=n.T(5,c)+n.R(t,a,i,u)+f+o[t]+n.A[r.floor(t/20)]|0;f=u,u=i,i=n.T(30,a),a=c,c=e}s[0]=s[0]+c|0,s[1]=s[1]+a|0,s[2]=s[2]+i|0,s[3]=s[3]+u|0,s[4]=s[4]+f|0}},O={importKey:t=>new O.U(K.bytes.C(t)),V(t,e,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const o=1+(r>>5)<<2;let c,a,i,u,l;const w=new ArrayBuffer(o),h=new f(w);let p=0;const d=V;for(e=K.bytes.C(e),l=1;(o||1)>p;l++){for(c=a=t.encrypt(d.concat(e,[l])),i=1;n>i;i++)for(a=t.encrypt(a),u=0;u<a.length;u++)c[u]^=a[u];for(i=0;(o||1)>p&&i<c.length;i++)h.setInt32(p,c[i]),p+=4}return w.slice(0,r/8)},U:class{constructor(t){const e=this,n=e.K=E,r=[[],[]];e.O=[new n,new n];const s=e.O[0].blockSize/32;t.length>s&&(t=(new n).update(t)._());for(let e=0;s>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.O[0].update(r[0]),e.O[1].update(r[1]),e.W=new n(e.O[0])}reset(){const t=this;t.W=new t.K(t.O[0]),t.j=!1}update(t){this.j=!0,this.W.update(t)}digest(){const t=this,e=t.W._(),n=new t.K(t.O[1]).update(e)._();return t.reset(),n}encrypt(t){if(this.j)throw new s("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},W=typeof h!=k&&typeof h.getRandomValues==z,j="Invalid password",H="Invalid signature",L=H,N="zipjs-abort-check-password";function q(t){if(W)return h.getRandomValues(t);throw new s("Crypto API not supported")}const G=16,J={name:"PBKDF2"},Q=e.assign({hash:{name:"HMAC"}},J),X=e.assign({iterations:1e3,hash:{name:"SHA-1"}},J),Y=["deriveBits"],Z=[8,12,16],$=[16,24,32],tt=10,et=[0,0,0,0],nt=typeof h!=k,rt=nt&&h.subtle,st=nt&&typeof rt!=k,ot=K.bytes,ct=class{constructor(t){const e=this;e.H=[[[],[],[],[],[]],[[],[],[],[],[]]],e.H[0][0][0]||e.L();const n=e.H[0][4],r=e.H[1],o=t.length;let c,a,i,u=1;if(4!==o&&6!==o&&8!==o)throw new s("invalid aes key size");for(e.A=[a=t.slice(0),i=[]],c=o;4*o+28>c;c++){let t=a[c-1];(c%o===0||8===o&&c%o===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],c%o===0&&(t=t<<8^t>>>24^u<<24,u=u<<1^283*(u>>7))),a[c]=a[c-o]^t}for(let t=0;c;t++,c--){const e=a[3&t?c:c-4];i[t]=4>=c||4>t?e:r[0][n[e>>>24]]^r[1][n[e>>16&255]]^r[2][n[e>>8&255]]^r[3][n[255&e]]}}encrypt(t){return this.N(t,0)}decrypt(t){return this.N(t,1)}L(){const t=this.H[0],e=this.H[1],n=t[4],r=e[4],s=[],o=[];let c,a,i,u;for(let t=0;256>t;t++)o[(s[t]=t<<1^283*(t>>7))^t]=t;for(let f=c=0;!n[f];f^=a||1,c=o[c]||1){let o=c^c<<1^c<<2^c<<3^c<<4;o=o>>8^255&o^99,n[f]=o,r[o]=f,u=s[i=s[a=s[f]]];let l=16843009*u^65537*i^257*a^16843008*f,w=257*s[o]^16843008*o;for(let n=0;4>n;n++)t[n][f]=w=w<<24^w>>>8,e[n][o]=l=l<<24^l>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}N(t,e){if(4!==t.length)throw new s("invalid aes block size");const n=this.A[e],r=n.length/4-2,o=[0,0,0,0],c=this.H[e],a=c[0],i=c[1],u=c[2],f=c[3],l=c[4];let w,h,p,d=t[0]^n[0],y=t[e?3:1]^n[1],m=t[2]^n[2],S=t[e?1:3]^n[3],g=4;for(let t=0;r>t;t++)w=a[d>>>24]^i[y>>16&255]^u[m>>8&255]^f[255&S]^n[g],h=a[y>>>24]^i[m>>16&255]^u[S>>8&255]^f[255&d]^n[g+1],p=a[m>>>24]^i[S>>16&255]^u[d>>8&255]^f[255&y]^n[g+2],S=a[S>>>24]^i[d>>16&255]^u[y>>8&255]^f[255&m]^n[g+3],g+=4,d=w,y=h,m=p;for(let t=0;4>t;t++)o[e?3&-t:t]=l[d>>>24]<<24^l[y>>16&255]<<16^l[m>>8&255]<<8^l[255&S]^n[g++],w=d,d=y,y=m,m=S,S=w;return o}},at=class{constructor(t,e){this.G=t,this.J=e,this.X=e}reset(){this.X=this.J}update(t){return this.Y(this.G,t,this.X)}Z(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}return t}$(t){0===(t[0]=this.Z(t[0]))&&(t[1]=this.Z(t[1]))}Y(t,e,n){let r;if(!(r=e.length))return[];const s=V.bitLength(e);for(let s=0;r>s;s+=4){this.$(n);const r=t.encrypt(n);e[s]^=r[0],e[s+1]^=r[1],e[s+2]^=r[2],e[s+3]^=r[3]}return V.m(e,s)}},it=O.U;let ut=nt&&st&&typeof rt.importKey==z,ft=nt&&st&&typeof rt.deriveBits==z;class lt extends d{constructor({password:t,rawPassword:e,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:c=!0}){super({start(){ht(this,t,e,n)},async transform(t,e){const n=this,{password:c,strength:a,et:i,ready:u}=n;c?(await(async(t,e,n,r)=>{const o=await dt(t,e,n,mt(r,0,Z[e])),c=mt(r,Z[e]);if(o[0]!=c[0]||o[1]!=c[1])throw new s(j)})(n,a,c,mt(t,0,Z[a]+2)),t=mt(t,Z[a]+2),r?e.error(new s(N)):i()):await u;const f=new o(t.length-tt-(t.length-tt)%G);e.enqueue(pt(n,t,f,0,tt,!0))},async flush(t){const{nt:e,st:n,ot:r,ready:o}=this;if(n&&e){await o;const a=mt(r,0,r.length-tt),i=mt(r,r.length-tt);let u=b;if(a.length){const t=gt(ot,a);n.update(t);const r=e.update(t);u=St(ot,r)}const f=mt(St(ot,n.digest()),0,tt);let l=r.length<tt?1:0;for(let t=0;tt>t;t++)l|=f[t]^i[t];if(l&&c)throw new s(L);t.enqueue(u)}}})}}class wt extends d{constructor({password:t,rawPassword:e,encryptionStrength:n}){super({start(){ht(this,t,e,n)},async transform(t,e){const n=this,{password:r,strength:s,et:c,ready:a}=n;let i=b;r?(i=await(async(t,e,n)=>{const r=q(new o(Z[e]));return T(r,await dt(t,e,n,r))})(n,s,r),c()):await a;const u=new o(i.length+t.length-t.length%G);u.set(i,0),e.enqueue(pt(n,t,u,i.length,0))},async flush(t){const{nt:e,st:n,ot:r,ready:s}=this;if(n&&e){await s;let o=b;if(r.length){const t=e.update(gt(ot,r));n.update(t),o=St(ot,t)}const c=St(ot,n.digest()).slice(0,tt);t.enqueue(T(o,c))}}})}}function ht(t,n,r,s){e.assign(t,{ready:new l(e=>t.et=e),password:yt(n,r),strength:s-1,ot:b})}function pt(t,e,n,r,s,c){const{nt:a,st:i,ot:u}=t;u.length&&(e=T(u,e));const f=e.length-s;let l;for(n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new o(e)).set(n,0)}return t})(n,r+(f-f%G)),l=0;f-G>=l;l+=G){const t=gt(ot,mt(e,l,l+G));c&&i.update(t);const s=a.update(t);c||i.update(s),n.set(St(ot,s),l+r)}return t.ot=mt(e,l),n}async function dt(n,r,s,c){n.password=null;const a=await(async(t,e,n,r,s)=>{if(!ut)return O.importKey(e);try{return await rt.importKey("raw",e,n,!1,s)}catch{return ut=!1,O.importKey(e)}})(0,s,Q,0,Y),i=await(async(t,e,n)=>{if(!ft)return O.V(e,t.salt,X.iterations,n);try{return await rt.deriveBits(t,e,n)}catch{return ft=!1,O.V(e,t.salt,X.iterations,n)}})(e.assign({salt:c},X),a,8*(2*$[r]+2)),u=new o(i),f=gt(ot,mt(u,0,$[r])),l=gt(ot,mt(u,$[r],2*$[r])),w=mt(u,2*$[r]);return e.assign(n,{keys:{key:f,ct:l,passwordVerification:w},nt:new at(new ct(f),t.from(et)),st:new it(l)}),w}function yt(t,e){return e===v?(t=>{if(typeof w==k){const e=new o((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new w).encode(t)})(t):e}function mt(t,e,n){return t.subarray(e,n)}function St(t,e){return t.v(e)}function gt(t,e){return t.C(e)}class vt extends d{constructor({password:t,rawPassword:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){zt(this,t,e,n)},transform(t,e){const n=this;if(n.password||n.rawPassword){const e=bt(n,t.subarray(0,12));if(n.password=n.rawPassword=null,0!=(e[11]^n.passwordVerification))throw new s(j);t=t.subarray(12)}r?e.error(new s(N)):e.enqueue(bt(n,t))}})}}class kt extends d{constructor({password:t,rawPassword:e,passwordVerification:n}){super({start(){zt(this,t,e,n)},transform(t,e){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const e=q(new o(12));e[11]=n.passwordVerification,r=new o(t.length+e.length),r.set(Ct(n,e),0),s=12}else r=new o(t.length),s=0;r.set(Ct(n,t),s),e.enqueue(r)}})}}function zt(t,n,r,s){e.assign(t,{password:n,rawPassword:r,passwordVerification:s}),((t,n,r)=>{const s=[305419896,591751049,878082192];if(e.assign(t,{keys:s,it:new _(s[0]),ut:new _(s[2])}),r)for(let e=0;e<r.length;e++)It(t,r[e]);else for(let e=0;e<n.length;e++)It(t,n.charCodeAt(e))})(t,n,r)}function bt(t,e){const n=new o(e.length);for(let r=0;r<e.length;r++)n[r]=At(t)^e[r],It(t,n[r]);return n}function Ct(t,e){const n=new o(e.length);for(let r=0;r<e.length;r++)n[r]=At(t)^e[r],It(t,e[r]);return n}function It(t,e){let[,n]=t.keys;t.it.append([e]);const s=~t.it.get();n=Pt(r.imul(Pt(n+xt(s)),134775813)+1),t.ut.append([n>>>24]);const o=~t.ut.get();t.keys=[s,n,o]}function At(t){const e=2|t.keys[2];return xt(r.imul(e,1^e)>>>8)}function xt(t){return 255&t}function Pt(t){return 4294967295&t}function Mt(t){if(t instanceof y)return t;const e=t.getReader();return new y({async pull(t){const{value:n,done:r}=await e.read();r?t.close():t.enqueue(n)},cancel:t=>e.cancel(t)})}const Bt=new u;function Dt(t){return Bt.get(t)}const Ft="Invalid uncompressed size",_t=H,Rt="deflate-raw",Tt="gzip",Ut=[31,139,8];class Vt extends d{constructor(t,{chunkSize:e,CompressionStreamFallback:n,CompressionStream:r}){super({});const{compressed:s,encrypted:o,useCompressionStream:c,zipCrypto:a,computeCrc32:i,level:u,deflate64:l,format:w,compressionMethod:h,inputSize:p}=t,d=this;let y,m,S,g=super.readable;const v=w&&Dt(w),k=i&&s&&!l&&!v&&(!o||a)&&!(!c||!r);if(o&&!a||!i||k||(y=new R,g=Lt(g,y)),s)if(v)g=Nt(g,jt(v.CompressionStream,w,{level:u,chunkSize:e,compressionMethod:h,uncompressedSize:p}));else if(k)S=new Kt,g=Nt(g,new r(Tt)),g=Lt(g,S);else try{g=Ht(g,c,{level:u,chunkSize:e},r,n)}catch(t){let e;try{e=new r(Tt)}catch{throw t}g=Nt(g,e),g=Lt(g,new Kt)}o&&(a?g=Lt(g,new kt(t)):(m=new wt(t),g=Lt(g,m))),Wt(d,g,()=>{o&&!a||!i||(d.crc32=k?S.crc32:new f(y.value.buffer).getUint32(0))})}}class Kt extends d{constructor(){let t,e=10,n=new o(0);super({transform(t,s){if(e){const n=r.min(e,t.length);if(e-=n,!(t=t.subarray(n)).length)return}const o=n.length+t.length;if(8>=o)return void(n=T(n,t));const c=o-8,a=r.min(c,n.length);s.enqueue(T(n.subarray(0,a),t.subarray(0,c-a))),n=T(n.subarray(a),t.subarray(c-a))},flush(){const e=U(n);t.crc32=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class Et extends d{constructor(t,{chunkSize:e,DecompressionStreamFallback:n,DecompressionStream:r}){super({});const{zipCrypto:c,encrypted:a,checkCrc32:i,crc32:u,compressed:w,useCompressionStream:h,deflate64:p,format:m,compressionMethod:S,rawBitFlag:g,outputSize:k}=t;let z,b,C=super.readable;if(a&&(c?C=Lt(C,new vt(t)):(b=new lt(t),C=Lt(C,b))),w){const t=m&&Dt(m);if(t)C=Nt(C,jt(t.DecompressionStream,m,{chunkSize:e,compressionMethod:S,rawBitFlag:g,uncompressedSize:k}));else try{C=Ht(C,h,{chunkSize:e,deflate64:p},r,n)}catch(t){if(p||k===v)throw t;let e;try{e=new r(Tt)}catch{throw t}C=((t,e,n)=>{const r=new _;let c,a,i,u=0,f=!1;const w=new l((t,e)=>{a=t,i=e});w.catch(()=>{}),n||a();const h=new d({start(t){const e=new o(10);e.set(Ut),t.enqueue(e)},transform(t,e){e.enqueue(t)},async flush(t){f=!0,y();try{await w}finally{m()}const e=new o(8),s=U(e);s.setUint32(0,r.get(),!0),s.setUint32(4,n,!0),t.enqueue(e)},cancel(t){i(t)}}),p=new d({transform(t,e){r.append(t),u+=t.length,n>u?f&&y():a(),e.enqueue(t)},cancel(t){i(t)}});return t=Lt(t,h),Lt(t=Nt(t,e),p);function y(){m(),c=setTimeout(()=>i(new s(Ft)),5e3)}function m(){clearTimeout(c)}})(C,e,k)}C=(t=>{const e=t.getReader();return new y({async pull(t){let n;try{n=await e.read()}catch(t){if(t&&t.message)throw t;const e=new s("Invalid compressed data");throw e.cause=t,e}const{value:r,done:o}=n;o?t.close():t.enqueue(r)},cancel:t=>e.cancel(t)})})(C)}i&&(z=new R,C=Lt(C,z)),Wt(this,C,()=>{if(i){const t=new f(z.value.buffer);if(u!=t.getUint32(0,!1))throw new s(_t)}})}}const Ot=new u;function Wt(t,n,r){n=Lt(n,new d({flush:r})),e.defineProperty(t,"readable",{get:()=>n})}function jt(t,e,n){if(!t)throw new s("Compression method not supported");return new t(e,n)}function Ht(t,e,n,r,s){const o=e&&r?r:s||r,c=n.deflate64?"deflate64-raw":Rt;let a;try{a=new o(c,n)}catch(t){if(!e||!s||o==s)throw t;a=new s(c,n)}return Nt(t,a)}function Lt(t,e){return Mt(t).pipeThrough(e)}function Nt(t,e){const n=e.writable.getWriter(),r=t.getReader();return(async()=>{try{for(;;){await n.ready;const t=await r.read();if(t.done){await n.close();break}await n.write(t.value)}}catch(t){await(async(t,e)=>{try{await t.abort(e)}catch{}})(n,t),await(async(t,e)=>{try{await t.cancel(e)}catch{}})(r,t)}})(),e.readable}const qt="data",Gt="close",Jt="deflate";class Qt extends d{constructor(t,n){super({});const r=this,{codecType:o}=t;let c;o.startsWith(Jt)?c=Vt:o.startsWith("inflate")&&(c=Et),r.outputSize=0;let a=0;const i=new c(t,n),u=super.readable,f=new d({transform(t,e){t&&t.length&&(a+=t.length,e.enqueue(t))},flush(){e.assign(r,{inputSize:a})}}),l=new d({transform(e,n){if(e&&e.length&&(n.enqueue(e),r.outputSize+=e.length,t.outputSize!==v&&r.outputSize>t.outputSize))throw new s(Ft)},flush(){const{crc32:t}=i;e.assign(r,{crc32:t,inputSize:a})}});e.defineProperty(r,"readable",{get:()=>u.pipeThrough(f).pipeThrough(i).pipeThrough(l)})}}class Xt extends d{constructor(t){const e=[];let r=0;function s(){const n=new o(t);let s=0;for(;t>s;){const r=e[0],o=t-s;r.length>o?(n.set(r.subarray(0,o),s),e[0]=r.subarray(o),s+=o):(n.set(r,s),s+=r.length,e.shift())}return r-=t,n}n.isFinite(t)&&t>=1||(t=65536),super({transform(n,o){for(e.push(n),r+=n.length;r>t;)o.enqueue(s())},flush(t){r&&t.enqueue(((t,e)=>{const n=new o(e);let r=0;for(const e of t)n.set(e,r),r+=e.length;return n})(e,r))}})}}let Yt=2;try{typeof navigator!=k&&navigator.hardwareConcurrency&&(Yt=navigator.hardwareConcurrency)}catch{}const Zt=new u,$t=new u;let te,ee=0;async function ne(t){let e,o;try{const{options:c,config:a}=t;if(c.format)try{await(async(t,e)=>{!Bt.has(t)&&e&&((t,e)=>{const{CompressionStream:n,DecompressionStream:r}=e;if(typeof n!=z&&typeof r!=z)throw new s("Invalid codec module");Bt.set(t,{CompressionStream:n,DecompressionStream:r})})(t,await(import(e)))})(c.format,c.codecURI)}catch(t){throw t.codecImportFailed=!0,t}if(a.CompressionStream=self.CompressionStream,a.DecompressionStream=self.DecompressionStream,c.compressed&&!c.format)if(c.useCompressionStream){if(!((t,e)=>{if(!t)return!1;let n=Ot.get(t);n||(n=new u,Ot.set(t,n));let r=n.get(e);if(r===v){try{new t(e),r=!0}catch{r=!1}n.set(e,r)}return r})(c.codecType.startsWith(Jt)?a.CompressionStream:a.DecompressionStream,Rt))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{c.useCompressionStream=!0}!a.CompressionStreamFallback&&a.CompressionStreamZlib&&(a.CompressionStreamFallback=a.CompressionStreamZlib),!a.DecompressionStreamFallback&&a.DecompressionStreamZlib&&(a.DecompressionStreamFallback=a.DecompressionStreamZlib);const i={highWaterMark:1},f=t.readable?Mt(t.readable):new y({async pull(t){const e=new l(t=>Zt.set(ee,t));re({type:"pull",messageId:ee}),ee=(ee+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await e;t.enqueue(r),s&&t.close()}},i);o=t.writable?(t=>{if(t instanceof m)return t;const e=t.getWriter();return new m({write:t=>e.write(t),close:()=>e.close(),abort:t=>e.abort(t)})})(t.writable):new m({async write(t){let e;const r=new l(t=>e=t);$t.set(ee,e),re({type:qt,value:t,messageId:ee}),ee=(ee+1)%n.MAX_SAFE_INTEGER,await r}},i),e=new Qt(c,a),te=new AbortController;const{signal:w}=te;await f.pipeThrough(e).pipeThrough(new Xt((t=>{return s="string"==typeof(e=s=t.chunkSize)&&e.trim()?n(e):e,n.isInteger(s)&&s>=1?r.max(s,64):65536;var e,s})(a))).pipeTo(o,{signal:w,preventClose:!0,preventAbort:!0}),await o.getWriter().close();const{crc32:h,inputSize:p,outputSize:d}=e;re({type:Gt,result:{crc32:h,inputSize:p,outputSize:d}})}catch(t){if(t.outputSize=e?e.outputSize:0,o&&!o.locked)try{await o.getWriter().close()}catch{}se(t)}}function re(t){const{value:e}=t;if(e)if(e.length)try{t.value=(n=e,n.byteOffset||n.byteLength!=n.buffer.byteLength?new o(n):n).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var n}function se(t=new s("Unknown error")){const{message:e,stack:n,code:r,name:o,outputSize:c,cause:a,codecImportFailed:i}=t,u={message:e,stack:n,code:r,name:o,outputSize:c};a&&(u.cause={name:a.name,message:a.message}),i&&(u.codecImportFailed=!0),p({error:u})}addEventListener("message",({data:t})=>{const{type:e,messageId:n,value:r,done:s}=t;try{if("start"==e&&ne(t),e==qt){const t=Zt.get(n);Zt.delete(n),t({value:r||new o,done:s})}if("ack"==e){const t=$t.get(n);$t.delete(n),t()}e==Gt&&te.abort()}catch(t){se(t)}}),p({type:"ready"}),((t={})=>{const{init:e}=t,n=t.CompressionStreamFallback||t.CompressionStreamZlib,r=t.DecompressionStreamFallback||t.DecompressionStreamZlib;self.initModule=async t=>{e&&await e(t),n&&(t.CompressionStreamFallback=n),r&&(t.DecompressionStreamFallback=r)}})()}();
package/vendor/zip/zip.js CHANGED
@@ -2075,6 +2075,10 @@ function getRegisteredCodec(compressionMethod) {
2075
2075
  return registeredCodecs.get(compressionMethod);
2076
2076
  }
2077
2077
 
2078
+ function getRegisteredCodecs() {
2079
+ return Array.from(registeredCodecs.values(), codec => Object.assign({}, codec, codecStreams.get(codec.format)));
2080
+ }
2081
+
2078
2082
  function getCodecStreams(format) {
2079
2083
  return codecStreams.get(format);
2080
2084
  }
@@ -2138,7 +2142,7 @@ class DeflateStream extends TransformStream {
2138
2142
 
2139
2143
  constructor(options, { chunkSize, CompressionStreamFallback, CompressionStream }) {
2140
2144
  super({});
2141
- const { compressed, encrypted, useCompressionStream, zipCrypto, computeCrc32, level, deflate64, format, compressionMethod } = options;
2145
+ const { compressed, encrypted, useCompressionStream, zipCrypto, computeCrc32, level, deflate64, format, compressionMethod, inputSize } = options;
2142
2146
  const stream = this;
2143
2147
  let crc32Stream, encryptionStream, gzipCrc32Stream;
2144
2148
  let readable = super.readable;
@@ -2151,7 +2155,7 @@ class DeflateStream extends TransformStream {
2151
2155
  }
2152
2156
  if (compressed) {
2153
2157
  if (codecStreams) {
2154
- readable = pipeThroughBackpressured(readable, createCodecStream(codecStreams.CompressionStream, format, { level, chunkSize, compressionMethod }));
2158
+ readable = pipeThroughBackpressured(readable, createCodecStream(codecStreams.CompressionStream, format, { level, chunkSize, compressionMethod, uncompressedSize: inputSize }));
2155
2159
  } else if (useGzipCrc32) {
2156
2160
  gzipCrc32Stream = new GzipToRawDeflateStream();
2157
2161
  readable = pipeThroughBackpressured(readable, new CompressionStream(FORMAT_GZIP));
@@ -7316,6 +7320,7 @@ async function createFileEntry(reader, writer, { diskNumberStart, lockFileEntry
7316
7320
  const workerOptions = {
7317
7321
  options: {
7318
7322
  codecType: CODEC_DEFLATE,
7323
+ inputSize: size,
7319
7324
  level,
7320
7325
  rawPassword,
7321
7326
  password,
@@ -8426,6 +8431,111 @@ function getMimeType() {
8426
8431
  */
8427
8432
 
8428
8433
 
8434
+ function getSupportedCompressionMethods() {
8435
+ const { CompressionStream, DecompressionStream, CompressionStreamFallback, DecompressionStreamFallback } = getConfiguration();
8436
+ const supportedMethods = [{
8437
+ compressionMethod: COMPRESSION_METHOD_STORE,
8438
+ compression: true,
8439
+ decompression: true,
8440
+ registered: false
8441
+ }, {
8442
+ compressionMethod: COMPRESSION_METHOD_DEFLATE,
8443
+ compression: formatSupported(CompressionStreamFallback, FORMAT_DEFLATE_RAW) ||
8444
+ formatSupported(CompressionStream, FORMAT_DEFLATE_RAW) || formatSupported(CompressionStream, FORMAT_GZIP),
8445
+ decompression: formatSupported(DecompressionStreamFallback, FORMAT_DEFLATE_RAW) ||
8446
+ formatSupported(DecompressionStream, FORMAT_DEFLATE_RAW) || formatSupported(DecompressionStream, FORMAT_GZIP),
8447
+ registered: false
8448
+ }, {
8449
+ compressionMethod: COMPRESSION_METHOD_DEFLATE_64,
8450
+ compression: false,
8451
+ decompression: formatSupported(DecompressionStreamFallback, FORMAT_DEFLATE64_RAW) ||
8452
+ formatSupported(DecompressionStream, FORMAT_DEFLATE64_RAW),
8453
+ registered: false
8454
+ }];
8455
+ for (const codec of getRegisteredCodecs()) {
8456
+ const codecStreams = getCodecStreams(codec.format);
8457
+ supportedMethods.push({
8458
+ compressionMethod: codec.compressionMethod,
8459
+ // deno-lint-ignore valid-typeof
8460
+ compression: codecStreams ? typeof codecStreams.CompressionStream == FUNCTION_TYPE : UNDEFINED_VALUE,
8461
+ // deno-lint-ignore valid-typeof
8462
+ decompression: codecStreams ? typeof codecStreams.DecompressionStream == FUNCTION_TYPE : UNDEFINED_VALUE,
8463
+ registered: true
8464
+ });
8465
+ }
8466
+ return supportedMethods;
8467
+ }
8468
+
8469
+ function formatSupported(StreamClass, format) {
8470
+ if (!StreamClass) {
8471
+ return false;
8472
+ }
8473
+ const { supportedFormats } = StreamClass;
8474
+ if (supportedFormats) {
8475
+ return supportedFormats.includes(format);
8476
+ }
8477
+ return supportsFormat(StreamClass, format);
8478
+ }
8479
+
8480
+ /*
8481
+ Copyright (c) 2025 Gildas Lormeau. All rights reserved.
8482
+
8483
+ Redistribution and use in source and binary forms, with or without
8484
+ modification, are permitted provided that the following conditions are met:
8485
+
8486
+ 1. Redistributions of source code must retain the above copyright notice,
8487
+ this list of conditions and the following disclaimer.
8488
+
8489
+ 2. Redistributions in binary form must reproduce the above copyright
8490
+ notice, this list of conditions and the following disclaimer in
8491
+ the documentation and/or other materials provided with the distribution.
8492
+
8493
+ 3. The names of the authors may not be used to endorse or promote products
8494
+ derived from this software without specific prior written permission.
8495
+
8496
+ THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
8497
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
8498
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
8499
+ INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
8500
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
8501
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
8502
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
8503
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
8504
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
8505
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8506
+ */
8507
+
8508
+ const VERSION = "2.8.60";
8509
+
8510
+ /*
8511
+ Copyright (c) 2025 Gildas Lormeau. All rights reserved.
8512
+
8513
+ Redistribution and use in source and binary forms, with or without
8514
+ modification, are permitted provided that the following conditions are met:
8515
+
8516
+ 1. Redistributions of source code must retain the above copyright notice,
8517
+ this list of conditions and the following disclaimer.
8518
+
8519
+ 2. Redistributions in binary form must reproduce the above copyright
8520
+ notice, this list of conditions and the following disclaimer in
8521
+ the documentation and/or other materials provided with the distribution.
8522
+
8523
+ 3. The names of the authors may not be used to endorse or promote products
8524
+ derived from this software without specific prior written permission.
8525
+
8526
+ THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
8527
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
8528
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
8529
+ INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
8530
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
8531
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
8532
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
8533
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
8534
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
8535
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8536
+ */
8537
+
8538
+
8429
8539
  const DEFAULT_THRESHOLD$2 = 1024 * 1024;
8430
8540
  const DEFAULT_DIRECTORY_NAME$1 = ".zip.js-temp";
8431
8541
 
@@ -9589,4 +9699,4 @@ try {
9589
9699
  }
9590
9700
  catch (e) { }
9591
9701
 
9592
- export { BlobReader, BlobWriter, Data64URIReader, Data64URIWriter, ERR_AMBIGUOUS_ARCHIVE, ERR_BAD_FORMAT, ERR_CENTRAL_DIRECTORY_NOT_FOUND, ERR_DUPLICATED_NAME, ERR_ENCRYPTED, ERR_ENCRYPTED_CENTRAL_DIRECTORY, ERR_ENTRY_DATA_OUT_OF_BOUNDS, ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND, ERR_EOCDR_NOT_FOUND, ERR_EXTRAFIELD_ZIP64_NOT_FOUND, ERR_HTTP_RANGE, ERR_HTTP_RESOURCE_CHANGED, ERR_INVALID_AUTHENTICATION_CODE, ERR_INVALID_CODEC_DEFINITION, ERR_INVALID_CODEC_MODULE, ERR_INVALID_COMMENT, ERR_INVALID_COMMENT_TYPE, ERR_INVALID_COMPRESSED_DATA, ERR_INVALID_CRC32, ERR_INVALID_DATE, ERR_INVALID_ENCRYPTION_STRENGTH, ERR_INVALID_ENTRY_COMMENT, ERR_INVALID_ENTRY_COMMENT_TYPE, ERR_INVALID_ENTRY_NAME, ERR_INVALID_EXTRAFIELD, ERR_INVALID_EXTRAFIELD_DATA, ERR_INVALID_EXTRAFIELD_DATA_TYPE, ERR_INVALID_EXTRAFIELD_TYPE, ERR_INVALID_FILENAME_VALIDATION, ERR_INVALID_FUNCTION_OPTION, ERR_INVALID_GID, ERR_INVALID_LEVEL, ERR_INVALID_MAX_APPENDED_DATA_SIZE, ERR_INVALID_MAX_WORKERS, ERR_INVALID_MSDOS_ATTRIBUTES, ERR_INVALID_MSDOS_DATA, ERR_INVALID_PASSWORD, ERR_INVALID_PASSWORD_TYPE, ERR_INVALID_SIGNAL, ERR_INVALID_SIGNATURE, ERR_INVALID_SIGNATURE_DATA, ERR_INVALID_STRICTNESS, ERR_INVALID_UID, ERR_INVALID_UNCOMPRESSED_SIZE, ERR_INVALID_UNIX_EXTRA_FIELD_TYPE, ERR_INVALID_UNIX_ID_SIZE, ERR_INVALID_UNIX_MODE, ERR_INVALID_VERSION, ERR_ITERATOR_COMPLETED_TOO_SOON, ERR_LOCAL_FILE_HEADER_NOT_FOUND, ERR_OVERLAPPING_ENTRY, ERR_RESERVED_COMPRESSION_METHOD, ERR_SPLIT_ZIP_FILE, ERR_UNDEFINED_COMPRESSION_METHOD, ERR_UNDEFINED_READER, ERR_UNDEFINED_UNCOMPRESSED_SIZE, ERR_UNDETERMINED_SIZE, ERR_UNSAFE_FILENAME, ERR_UNSUPPORTED_COMPRESSION$1 as ERR_UNSUPPORTED_COMPRESSION, ERR_UNSUPPORTED_CONTEXT, ERR_UNSUPPORTED_CRYPTO_API, ERR_UNSUPPORTED_ENCRYPTION, ERR_UNSUPPORTED_ENCRYPTION_PASS_THROUGH, ERR_UNSUPPORTED_ENCRYPTION_USDZ, ERR_UNSUPPORTED_FORMAT, ERR_UNSUPPORTED_UINT64, ERR_WORKER_STARTUP_TIMEOUT, ERR_WRITER_NOT_INITIALIZED, ERR_ZIP_NOT_EMPTY, HttpRangeReader, HttpReader, Reader, SplitDataReader, SplitDataWriter, TextReader, TextWriter, Uint8ArrayReader, Uint8ArrayWriter, WARNING_APPENDED_DATA, WARNING_COMPRESSED_PATCHED_DATA, WARNING_DUPLICATE_FILENAME, WARNING_MALFORMED_EXTRA_FIELD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG, WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES, WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY, WARNING_PREPENDED_DATA, WARNING_TRAILING_CENTRAL_DIRECTORY_DATA, WARNING_UNKNOWN_VERSION, WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA, WARNING_UNSORTED_CENTRAL_DIRECTORY, WARNING_WRAPPED_ENTRIES_COUNT, Writer, ZipReader, ZipReaderStream, ZipWriter, ZipWriterStream, configure, createBlobTempStream, createOPFSTempStream, createSyncAccessHandleTempStream, deflateSync as deflateRaw, getMimeType, inflateSync as inflateRaw, initStream, isZipFile, readUint8Array, registerCodec, resetConfiguration, terminateWorkers, unregisterCodec };
9702
+ export { BlobReader, BlobWriter, Data64URIReader, Data64URIWriter, ERR_AMBIGUOUS_ARCHIVE, ERR_BAD_FORMAT, ERR_CENTRAL_DIRECTORY_NOT_FOUND, ERR_DUPLICATED_NAME, ERR_ENCRYPTED, ERR_ENCRYPTED_CENTRAL_DIRECTORY, ERR_ENTRY_DATA_OUT_OF_BOUNDS, ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND, ERR_EOCDR_NOT_FOUND, ERR_EXTRAFIELD_ZIP64_NOT_FOUND, ERR_HTTP_RANGE, ERR_HTTP_RESOURCE_CHANGED, ERR_INVALID_AUTHENTICATION_CODE, ERR_INVALID_CODEC_DEFINITION, ERR_INVALID_CODEC_MODULE, ERR_INVALID_COMMENT, ERR_INVALID_COMMENT_TYPE, ERR_INVALID_COMPRESSED_DATA, ERR_INVALID_CRC32, ERR_INVALID_DATE, ERR_INVALID_ENCRYPTION_STRENGTH, ERR_INVALID_ENTRY_COMMENT, ERR_INVALID_ENTRY_COMMENT_TYPE, ERR_INVALID_ENTRY_NAME, ERR_INVALID_EXTRAFIELD, ERR_INVALID_EXTRAFIELD_DATA, ERR_INVALID_EXTRAFIELD_DATA_TYPE, ERR_INVALID_EXTRAFIELD_TYPE, ERR_INVALID_FILENAME_VALIDATION, ERR_INVALID_FUNCTION_OPTION, ERR_INVALID_GID, ERR_INVALID_LEVEL, ERR_INVALID_MAX_APPENDED_DATA_SIZE, ERR_INVALID_MAX_WORKERS, ERR_INVALID_MSDOS_ATTRIBUTES, ERR_INVALID_MSDOS_DATA, ERR_INVALID_PASSWORD, ERR_INVALID_PASSWORD_TYPE, ERR_INVALID_SIGNAL, ERR_INVALID_SIGNATURE, ERR_INVALID_SIGNATURE_DATA, ERR_INVALID_STRICTNESS, ERR_INVALID_UID, ERR_INVALID_UNCOMPRESSED_SIZE, ERR_INVALID_UNIX_EXTRA_FIELD_TYPE, ERR_INVALID_UNIX_ID_SIZE, ERR_INVALID_UNIX_MODE, ERR_INVALID_VERSION, ERR_ITERATOR_COMPLETED_TOO_SOON, ERR_LOCAL_FILE_HEADER_NOT_FOUND, ERR_OVERLAPPING_ENTRY, ERR_RESERVED_COMPRESSION_METHOD, ERR_SPLIT_ZIP_FILE, ERR_UNDEFINED_COMPRESSION_METHOD, ERR_UNDEFINED_READER, ERR_UNDEFINED_UNCOMPRESSED_SIZE, ERR_UNDETERMINED_SIZE, ERR_UNSAFE_FILENAME, ERR_UNSUPPORTED_COMPRESSION$1 as ERR_UNSUPPORTED_COMPRESSION, ERR_UNSUPPORTED_CONTEXT, ERR_UNSUPPORTED_CRYPTO_API, ERR_UNSUPPORTED_ENCRYPTION, ERR_UNSUPPORTED_ENCRYPTION_PASS_THROUGH, ERR_UNSUPPORTED_ENCRYPTION_USDZ, ERR_UNSUPPORTED_FORMAT, ERR_UNSUPPORTED_UINT64, ERR_WORKER_STARTUP_TIMEOUT, ERR_WRITER_NOT_INITIALIZED, ERR_ZIP_NOT_EMPTY, HttpRangeReader, HttpReader, Reader, SplitDataReader, SplitDataWriter, TextReader, TextWriter, Uint8ArrayReader, Uint8ArrayWriter, VERSION, WARNING_APPENDED_DATA, WARNING_COMPRESSED_PATCHED_DATA, WARNING_DUPLICATE_FILENAME, WARNING_MALFORMED_EXTRA_FIELD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG, WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES, WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY, WARNING_PREPENDED_DATA, WARNING_TRAILING_CENTRAL_DIRECTORY_DATA, WARNING_UNKNOWN_VERSION, WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA, WARNING_UNSORTED_CENTRAL_DIRECTORY, WARNING_WRAPPED_ENTRIES_COUNT, Writer, ZipReader, ZipReaderStream, ZipWriter, ZipWriterStream, configure, createBlobTempStream, createOPFSTempStream, createSyncAccessHandleTempStream, deflateSync as deflateRaw, getMimeType, getRegisteredCodecs, getSupportedCompressionMethods, inflateSync as inflateRaw, initStream, isZipFile, readUint8Array, registerCodec, resetConfiguration, terminateWorkers, unregisterCodec };
@@ -1 +1 @@
1
- ((t,e)=>{"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).zip={})})(this,function(t){"use strict";const{Array:e,Object:n,String:r,Number:s,BigInt:o,Math:a,Date:i,Map:c,Set:f,Response:u,URL:l,Error:w,Uint8Array:d,Uint16Array:h,Uint32Array:p,DataView:m,Blob:y,Promise:g,TextEncoder:b,TextDecoder:v,crypto:k,btoa:S,TransformStream:x,ReadableStream:z,WritableStream:R,CompressionStream:D,DecompressionStream:F,navigator:C,Worker:A,setTimeout:T,clearTimeout:U}="undefined"!=typeof globalThis?globalThis:this||self,E=4294967295,I=65535,W=255,M=134695760,O=M,L=33639248,P=101075792,B=117853008,H=22,V=20,Z=56,q=61440,N=new i(1980,0,1),_=void 0,j="undefined",K="function",G="string",X=new d,J="strict",Q="balanced",Y="tolerant";function $(t){if(t&&typeof t!=K)throw new w("Invalid option (must be a function)");return t}function tt(t){return typeof t==G&&t.trim()?s(t):t}let et=2;try{typeof C!=j&&C.hardwareConcurrency&&(et=C.hardwareConcurrency)}catch{}const nt={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:et,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof D!=j&&D,DecompressionStream:typeof F!=j&&F},rt="maxWorkers",st=["chunkSize",rt,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],ot=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],at=["baseURI","wasmURI","workerURI","useCompressionStream","useWebWorkers","transferStreams",...st,...ot],it={...nt};function ct(){return it}function ft(t){return ut(t.chunkSize)}function ut(t){return t=tt(t),s.isInteger(t)&&t>=1?a.max(t,64):65536}function lt(t){const e={};for(const n of at){const r=t[n];r!==_&&(e[n]=wt(n,r))}return e}function wt(t,e){if(st.includes(t)){if(e=tt(e),t==rt&&(!s.isInteger(e)||1>e))throw new w("Invalid maxWorkers (must be an integer greater than 0)")}else ot.includes(t)&&$(e);return e}function dt(t){t=t||{};const{CompressionStreamZlib:e,DecompressionStreamZlib:r}=t;if(e===_&&r===_)return t;const s=n.assign({},t);return s.CompressionStreamFallback===_&&(s.CompressionStreamFallback=e),s.DecompressionStreamFallback===_&&(s.DecompressionStreamFallback=r),s}var ht=d,pt=h,mt=Int32Array,yt=new ht([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,0,0,0]),gt=new ht([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,0,0]),bt=new ht([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),vt=(t,e)=>{for(var n=new pt(31),r=0;31>r;++r)n[r]=e+=1<<t[r-1];var s=new mt(n[30]);for(r=1;30>r;++r)for(var o=n[r];o<n[r+1];++o)s[o]=o-n[r]<<5|r;return{b:n,r:s}},kt=vt(yt,2),St=kt.b,xt=kt.r;St[28]=258,xt[258]=28;for(var zt=vt(gt,0).b,Rt=new pt(32768),Dt=0;32768>Dt;++Dt){var Ft=(43690&Dt)>>1|(21845&Dt)<<1;Ft=(61680&(Ft=(52428&Ft)>>2|(13107&Ft)<<2))>>4|(3855&Ft)<<4,Rt[Dt]=((65280&Ft)>>8|(255&Ft)<<8)>>1}var Ct=(t,e,n)=>{for(var r=t.length,s=0,o=new pt(e);r>s;++s)t[s]&&++o[t[s]-1];var a,i=new pt(e);for(s=1;e>s;++s)i[s]=i[s-1]+o[s-1]<<1;if(n){a=new pt(1<<e);var c=15-e;for(s=0;r>s;++s)if(t[s])for(var f=s<<4|t[s],u=e-t[s],l=i[t[s]-1]++<<u,w=l|(1<<u)-1;w>=l;++l)a[Rt[l]>>c]=f}else for(a=new pt(r),s=0;r>s;++s)t[s]&&(a[s]=Rt[i[t[s]-1]++]>>15-t[s]);return a},At=new ht(288);for(Dt=0;144>Dt;++Dt)At[Dt]=8;for(Dt=144;256>Dt;++Dt)At[Dt]=9;for(Dt=256;280>Dt;++Dt)At[Dt]=7;for(Dt=280;288>Dt;++Dt)At[Dt]=8;var Tt=new ht(32);for(Dt=0;32>Dt;++Dt)Tt[Dt]=5;var Ut=Ct(At,9,1),Et=Ct(Tt,5,1),It=t=>{for(var e=t[0],n=1;n<t.length;++n)t[n]>e&&(e=t[n]);return e},Wt=(t,e,n)=>{var r=e/8|0;return(t[r]|t[r+1]<<8)>>(7&e)&n},Mt=(t,e)=>{var n=e/8|0;return(t[n]|t[n+1]<<8|t[n+2]<<16)>>(7&e)},Ot=t=>(t+7)/8|0,Lt=(t,e,n)=>((null==e||0>e)&&(e=0),(null==n||n>t.length)&&(n=t.length),new ht(t.subarray(e,n))),Pt=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Bt=(t,e,n)=>{var r=new w(e||Pt[t]);if(r.code=t,w.captureStackTrace&&w.captureStackTrace(r,Bt),!n)throw r;return r},Ht=(t,e,n,r)=>{var s=t.length,o=r?r.length:0;if(!s||e.f&&!e.o)return n||new ht(0);var i=!n,c=i||2!=e.i,f=e.i;i&&(n=new ht(3*s));var u=t=>{var e=n.length;if(t>e){var r=new ht(a.max(2*e,t));r.set(n),n=r}},l=e.f||0,w=e.p||0,d=e.b||0,h=e.o,p=e.d,m=e.l,y=e.n,g=8*s;do{if(!h){l=Wt(t,w,1);var b=Wt(t,w+1,3);if(w+=3,!b){var v=t[(U=Ot(w)+4)-4]|t[U-3]<<8,k=U+v;if(k>s){f&&Bt(0);break}c&&u(d+v),n.set(t.subarray(U,k),d),e.b=d+=v,e.p=w=8*k,e.f=l;continue}if(1==b)h=Ut,p=Et,m=9,y=5;else if(2==b){var S=Wt(t,w,31)+257,x=Wt(t,w+10,15)+4,z=S+Wt(t,w+5,31)+1;w+=14;for(var R=new ht(z),D=new ht(19),F=0;x>F;++F)D[bt[F]]=Wt(t,w+3*F,7);w+=3*x;var C=It(D),A=(1<<C)-1,T=Ct(D,C,1);for(F=0;z>F;){var U,E=T[Wt(t,w,A)];if(w+=15&E,16>(U=E>>4))R[F++]=U;else{var I=0,W=0;for(16==U?(W=3+Wt(t,w,3),w+=2,I=R[F-1]):17==U?(W=3+Wt(t,w,7),w+=3):18==U&&(W=11+Wt(t,w,127),w+=7);W--;)R[F++]=I}}var M=R.subarray(0,S),O=R.subarray(S);m=It(M),y=It(O),h=Ct(M,m,1),p=Ct(O,y,1)}else Bt(1);if(w>g){f&&Bt(0);break}}c&&u(d+131072);for(var L=(1<<m)-1,P=(1<<y)-1,B=w;;B=w){var H=(I=h[Mt(t,w)&L])>>4;if((w+=15&I)>g){f&&Bt(0);break}if(I||Bt(2),256>H)n[d++]=H;else{if(256==H){B=w,h=null;break}var V=H-254;if(H>264){var Z=yt[F=H-257];V=Wt(t,w,(1<<Z)-1)+St[F],w+=Z}var q=p[Mt(t,w)&P],N=q>>4;if(q||Bt(3),w+=15&q,O=zt[N],N>3&&(Z=gt[N],O+=Mt(t,w)&(1<<Z)-1,w+=Z),w>g){f&&Bt(0);break}c&&u(d+131072);var _=d+V;if(O>d){var j=o-O,K=a.min(O,_);for(0>j+d&&Bt(3);K>d;++d)n[d]=r[j+d]}for(;_>d;++d)n[d]=n[d-O]}}e.o=h,e.p=B,e.b=d,e.f=l,h&&(l=1,e.l=m,e.d=p,e.n=y)}while(!l);return d!=n.length&&i?Lt(n,0,d):n.subarray(0,d)},Vt=new ht(0),Zt=function(){function t(t,e){"function"==typeof t&&(e=t,t={}),this.h=e;var n=t&&t.m&&t.m.subarray(-32768);this.s={i:0,b:n?n.length:0},this.v=new ht(32768),this.p=new ht(0),n&&this.v.set(n)}return t.prototype.e=function(t){if(this.h||Bt(5),this.d&&Bt(4),this.p.length){if(t.length){var e=new ht(this.p.length+t.length);e.set(this.p),e.set(t,this.p.length),this.p=e}}else this.p=t},t.prototype.c=function(t){this.s.i=+(this.d=t||!1);var e=this.s.b,n=Ht(this.p,this.s,this.v);this.h(Lt(n,e,this.s.b),this.d),this.v=Lt(n,this.s.b-32768),this.s.b=this.v.length,this.p=Lt(this.p,this.s.p/8|0),this.s.p&=7},t.prototype.push=function(t,e){this.e(t),this.c(e)},t}(),qt=void 0!==v&&new v;try{qt.decode(Vt,{stream:!0})}catch(t){}class Nt extends x{constructor(t){super({start(e){t.h=t=>{t.length&&e.enqueue(t)}},transform(e){t.push(e)},flush(){t.push(new d(0),!0)}})}}const _t=new c,jt=new c;function Kt(t){return jt.get(t)}const Gt=[[],[],[],[],[],[],[],[]];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)e=1&e?e>>>1^3988292384:e>>>1;Gt[0][t]=e}for(let t=0;256>t;t++)for(let e=1;8>e;e++){const n=Gt[e-1][t];Gt[e][t]=n>>>8^Gt[0][255&n]}const[Xt,Jt,Qt,Yt,$t,te,ee,ne]=Gt;class re{constructor(t){this.S=t||-1}append(t){let e=0|this.S;const n=0|t.length;let r=0;if(n>=8&&t.buffer){const s=new m(t.buffer,t.byteOffset,n),o=n-8;for(;o>=r;r+=8){const t=e^s.getInt32(r,!0),n=s.getInt32(r+4,!0);e=ne[255&t]^ee[t>>>8&255]^te[t>>>16&255]^$t[t>>>24&255]^Yt[255&n]^Qt[n>>>8&255]^Jt[n>>>16&255]^Xt[n>>>24&255]}}for(;n>r;r++)e=e>>>8^Xt[255&(e^t[r])];this.S=e}get(){return~this.S}}class se extends x{constructor(){let t;const e=new re;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new d(4);new m(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function oe(t,e){const n=new d(t.length+e.length);return n.set(t),n.set(e,t.length),n}function ae(t){return new m(t.buffer,t.byteOffset,t.byteLength)}const ie={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=ie.R(n);return 32===r?t.concat(e):ie.D(e,r,0|n,t.slice(0,t.length-1))},bitLength(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+ie.R(n)},F(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,a.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=ie.C(e,t[n-1]&2147483648>>e-1,1)),t},C:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,R:t=>a.round(t/1099511627776)||32,D(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let s=0;s<t.length;s++)r.push(n|t[s]>>>e),n=t[s]<<32-e;const s=t.length?t[t.length-1]:0,o=ie.R(s);return r.push(ie.C(e+o&31,e+o>32?n:r.pop(),1)),r}},ce={bytes:{A(t){const e=ie.bitLength(t)/8,n=new d(e);let r;for(let s=0;e>s;s++)3&s||(r=t[s/4]),n[s]=r>>>24,r<<=8;return n},T(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3&~n||(e.push(r),r=0);return 3&n&&e.push(ie.C(8*(3&n),r)),e}}},fe=class{constructor(t){const e=this;e.blockSize=512,e.U=[1732584193,4023233417,2562383102,271733878,3285377520],e.I=[1518500249,1859775393,2400959708,3395469782],t?(e.W=t.W.slice(0),e.M=t.M.slice(0),e.O=t.O):e.reset()}reset(){const t=this;return t.W=t.U.slice(0),t.M=[],t.O=0,t}update(t){const e=this;"string"==typeof t&&(t=ce.L.T(t));const n=e.M=ie.concat(e.M,t),r=e.O,s=e.O=r+ie.bitLength(t);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const o=new p(n);let a=0;for(let t=e.blockSize+r-(e.blockSize+r&e.blockSize-1);s>=t;t+=e.blockSize)e.P(o.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),e}B(){const t=this;let e=t.M;const n=t.W;e=ie.concat(e,[ie.C(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(a.floor(t.O/4294967296)),e.push(0|t.O);e.length;)t.P(e.splice(0,16));return t.reset(),n}H(t,e,n,r){return t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r}V(t,e){return e<<t|e>>>32-t}P(t){const n=this,r=n.W,s=e(80);for(let e=0;16>e;e++)s[e]=t[e];let o=r[0],i=r[1],c=r[2],f=r[3],u=r[4];for(let t=0;79>=t;t++){16>t||(s[t]=n.V(1,s[t-3]^s[t-8]^s[t-14]^s[t-16]));const e=n.V(5,o)+n.H(t,i,c,f)+u+s[t]+n.I[a.floor(t/20)]|0;u=f,f=c,c=n.V(30,i),i=o,o=e}r[0]=r[0]+o|0,r[1]=r[1]+i|0,r[2]=r[2]+c|0,r[3]=r[3]+f|0,r[4]=r[4]+u|0}},ue={importKey:t=>new ue.Z(ce.bytes.T(t)),N(t,e,n,r){if(n=n||1e4,0>r||0>n)throw new w("invalid params to pbkdf2");const s=1+(r>>5)<<2;let o,a,i,c,f;const u=new ArrayBuffer(s),l=new m(u);let d=0;const h=ie;for(e=ce.bytes.T(e),f=1;(s||1)>d;f++){for(o=a=t.encrypt(h.concat(e,[f])),i=1;n>i;i++)for(a=t.encrypt(a),c=0;c<a.length;c++)o[c]^=a[c];for(i=0;(s||1)>d&&i<o.length;i++)l.setInt32(d,o[i]),d+=4}return u.slice(0,r/8)},Z:class{constructor(t){const e=this,n=e._=fe,r=[[],[]];e.j=[new n,new n];const s=e.j[0].blockSize/32;t.length>s&&(t=(new n).update(t).B());for(let e=0;s>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.j[0].update(r[0]),e.j[1].update(r[1]),e.K=new n(e.j[0])}reset(){const t=this;t.K=new t._(t.j[0]),t.G=!1}update(t){this.G=!0,this.K.update(t)}digest(){const t=this,e=t.K.B(),n=new t._(t.j[1]).update(e).B();return t.reset(),n}encrypt(t){if(this.G)throw new w("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},le=typeof k!=j&&typeof k.getRandomValues==K,we="Invalid password",de="Invalid signature",he=de,pe="zipjs-abort-check-password";function me(t){if(le)return k.getRandomValues(t);throw new w("Crypto API not supported")}const ye=16,ge={name:"PBKDF2"},be=n.assign({hash:{name:"HMAC"}},ge),ve=n.assign({iterations:1e3,hash:{name:"SHA-1"}},ge),ke=["deriveBits"],Se=[8,12,16],xe=[16,24,32],ze=10,Re=[0,0,0,0],De=typeof k!=j,Fe=De&&k.subtle,Ce=De&&typeof Fe!=j,Ae=ce.bytes,Te=class{constructor(t){const e=this;e.X=[[[],[],[],[],[]],[[],[],[],[],[]]],e.X[0][0][0]||e.J();const n=e.X[0][4],r=e.X[1],s=t.length;let o,a,i,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(e.I=[a=t.slice(0),i=[]],o=s;4*s+28>o;o++){let t=a[o-1];(o%s===0||8===s&&o%s===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],o%s===0&&(t=t<<8^t>>>24^c<<24,c=c<<1^283*(c>>7))),a[o]=a[o-s]^t}for(let t=0;o;t++,o--){const e=a[3&t?o:o-4];i[t]=4>=o||4>t?e:r[0][n[e>>>24]]^r[1][n[e>>16&255]]^r[2][n[e>>8&255]]^r[3][n[255&e]]}}encrypt(t){return this.Y(t,0)}decrypt(t){return this.Y(t,1)}J(){const t=this.X[0],e=this.X[1],n=t[4],r=e[4],s=[],o=[];let a,i,c,f;for(let t=0;256>t;t++)o[(s[t]=t<<1^283*(t>>7))^t]=t;for(let u=a=0;!n[u];u^=i||1,a=o[a]||1){let o=a^a<<1^a<<2^a<<3^a<<4;o=o>>8^255&o^99,n[u]=o,r[o]=u,f=s[c=s[i=s[u]]];let l=16843009*f^65537*c^257*i^16843008*u,w=257*s[o]^16843008*o;for(let n=0;4>n;n++)t[n][u]=w=w<<24^w>>>8,e[n][o]=l=l<<24^l>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}Y(t,e){if(4!==t.length)throw new w("invalid aes block size");const n=this.I[e],r=n.length/4-2,s=[0,0,0,0],o=this.X[e],a=o[0],i=o[1],c=o[2],f=o[3],u=o[4];let l,d,h,p=t[0]^n[0],m=t[e?3:1]^n[1],y=t[2]^n[2],g=t[e?1:3]^n[3],b=4;for(let t=0;r>t;t++)l=a[p>>>24]^i[m>>16&255]^c[y>>8&255]^f[255&g]^n[b],d=a[m>>>24]^i[y>>16&255]^c[g>>8&255]^f[255&p]^n[b+1],h=a[y>>>24]^i[g>>16&255]^c[p>>8&255]^f[255&m]^n[b+2],g=a[g>>>24]^i[p>>16&255]^c[m>>8&255]^f[255&y]^n[b+3],b+=4,p=l,m=d,y=h;for(let t=0;4>t;t++)s[e?3&-t:t]=u[p>>>24]<<24^u[m>>16&255]<<16^u[y>>8&255]<<8^u[255&g]^n[b++],l=p,p=m,m=y,y=g,g=l;return s}},Ue=class{constructor(t,e){this.$=t,this.et=e,this.nt=e}reset(){this.nt=this.et}update(t){return this.st(this.$,t,this.nt)}ot(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}return t}it(t){0===(t[0]=this.ot(t[0]))&&(t[1]=this.ot(t[1]))}st(t,e,n){let r;if(!(r=e.length))return[];const s=ie.bitLength(e);for(let s=0;r>s;s+=4){this.it(n);const r=t.encrypt(n);e[s]^=r[0],e[s+1]^=r[1],e[s+2]^=r[2],e[s+3]^=r[3]}return ie.F(e,s)}},Ee=ue.Z;let Ie=De&&Ce&&typeof Fe.importKey==K,We=De&&Ce&&typeof Fe.deriveBits==K;class Me extends x{constructor({password:t,rawPassword:e,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:s=!0}){super({start(){Le(this,t,e,n)},async transform(t,e){const n=this,{password:s,strength:o,ct:a,ready:i}=n;s?(await(async(t,e,n,r)=>{const s=await Be(t,e,n,Ve(r,0,Se[e])),o=Ve(r,Se[e]);if(s[0]!=o[0]||s[1]!=o[1])throw new w(we)})(n,o,s,Ve(t,0,Se[o]+2)),t=Ve(t,Se[o]+2),r?e.error(new w(pe)):a()):await i;const c=new d(t.length-ze-(t.length-ze)%ye);e.enqueue(Pe(n,t,c,0,ze,!0))},async flush(t){const{ft:e,ut:n,lt:r,ready:o}=this;if(n&&e){await o;const a=Ve(r,0,r.length-ze),i=Ve(r,r.length-ze);let c=X;if(a.length){const t=qe(Ae,a);n.update(t);const r=e.update(t);c=Ze(Ae,r)}const f=Ve(Ze(Ae,n.digest()),0,ze);let u=r.length<ze?1:0;for(let t=0;ze>t;t++)u|=f[t]^i[t];if(u&&s)throw new w(he);t.enqueue(c)}}})}}class Oe extends x{constructor({password:t,rawPassword:e,encryptionStrength:n}){super({start(){Le(this,t,e,n)},async transform(t,e){const n=this,{password:r,strength:s,ct:o,ready:a}=n;let i=X;r?(i=await(async(t,e,n)=>{const r=me(new d(Se[e]));return oe(r,await Be(t,e,n,r))})(n,s,r),o()):await a;const c=new d(i.length+t.length-t.length%ye);c.set(i,0),e.enqueue(Pe(n,t,c,i.length,0))},async flush(t){const{ft:e,ut:n,lt:r,ready:s}=this;if(n&&e){await s;let o=X;if(r.length){const t=e.update(qe(Ae,r));n.update(t),o=Ze(Ae,t)}const a=Ze(Ae,n.digest()).slice(0,ze);t.enqueue(oe(o,a))}}})}}function Le(t,e,r,s){n.assign(t,{ready:new g(e=>t.ct=e),password:He(e,r),strength:s-1,lt:X})}function Pe(t,e,n,r,s,o){const{ft:a,ut:i,lt:c}=t;c.length&&(e=oe(c,e));const f=e.length-s;let u;for(n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new d(e)).set(n,0)}return t})(n,r+(f-f%ye)),u=0;f-ye>=u;u+=ye){const t=qe(Ae,Ve(e,u,u+ye));o&&i.update(t);const s=a.update(t);o||i.update(s),n.set(Ze(Ae,s),u+r)}return t.lt=Ve(e,u),n}async function Be(t,r,s,o){t.password=null;const a=await(async(t,e,n,r,s)=>{if(!Ie)return ue.importKey(e);try{return await Fe.importKey("raw",e,n,!1,s)}catch{return Ie=!1,ue.importKey(e)}})(0,s,be,0,ke),i=await(async(t,e,n)=>{if(!We)return ue.N(e,t.salt,ve.iterations,n);try{return await Fe.deriveBits(t,e,n)}catch{return We=!1,ue.N(e,t.salt,ve.iterations,n)}})(n.assign({salt:o},ve),a,8*(2*xe[r]+2)),c=new d(i),f=qe(Ae,Ve(c,0,xe[r])),u=qe(Ae,Ve(c,xe[r],2*xe[r])),l=Ve(c,2*xe[r]);return n.assign(t,{keys:{key:f,wt:u,passwordVerification:l},ft:new Ue(new Te(f),e.from(Re)),ut:new Ee(u)}),l}function He(t,e){return e===_?(t=>{if(typeof b==j){const e=new d((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new b).encode(t)})(t):e}function Ve(t,e,n){return t.subarray(e,n)}function Ze(t,e){return t.A(e)}function qe(t,e){return t.T(e)}class Ne extends x{constructor({password:t,rawPassword:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){je(this,t,e,n)},transform(t,e){const n=this;if(n.password||n.rawPassword){const e=Ke(n,t.subarray(0,12));if(n.password=n.rawPassword=null,0!=(e[11]^n.passwordVerification))throw new w(we);t=t.subarray(12)}r?e.error(new w(pe)):e.enqueue(Ke(n,t))}})}}class _e extends x{constructor({password:t,rawPassword:e,passwordVerification:n}){super({start(){je(this,t,e,n)},transform(t,e){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const e=me(new d(12));e[11]=n.passwordVerification,r=new d(t.length+e.length),r.set(Ge(n,e),0),s=12}else r=new d(t.length),s=0;r.set(Ge(n,t),s),e.enqueue(r)}})}}function je(t,e,r,s){n.assign(t,{password:e,rawPassword:r,passwordVerification:s}),((t,e,r)=>{const s=[305419896,591751049,878082192];if(n.assign(t,{keys:s,ht:new re(s[0]),yt:new re(s[2])}),r)for(let e=0;e<r.length;e++)Xe(t,r[e]);else for(let n=0;n<e.length;n++)Xe(t,e.charCodeAt(n))})(t,e,r)}function Ke(t,e){const n=new d(e.length);for(let r=0;r<e.length;r++)n[r]=Je(t)^e[r],Xe(t,n[r]);return n}function Ge(t,e){const n=new d(e.length);for(let r=0;r<e.length;r++)n[r]=Je(t)^e[r],Xe(t,e[r]);return n}function Xe(t,e){let[,n]=t.keys;t.ht.append([e]);const r=~t.ht.get();n=Ye(a.imul(Ye(n+Qe(r)),134775813)+1),t.yt.append([n>>>24]);const s=~t.yt.get();t.keys=[r,n,s]}function Je(t){const e=2|t.keys[2];return Qe(a.imul(e,1^e)>>>8)}function Qe(t){return 255&t}function Ye(t){return 4294967295&t}function $e(t){if(t instanceof z)return t;const e=t.getReader();return new z({async pull(t){const{value:n,done:r}=await e.read();r?t.close():t.enqueue(n)},cancel:t=>e.cancel(t)})}function tn(t,e){t=$e(t);const n=e?{type:e}:{};if(typeof y.prototype.stream!=K||new y([]).stream()instanceof z)return new u(t).blob().then(t=>e?new y([t],n):t);const r=[];return t.pipeTo(new R({write(t){r.push(t)}})).then(()=>new y(r,n))}function en(t){if(t instanceof R)return t;const e=t.getWriter();return new R({write:t=>e.write(t),close:()=>e.close(),abort:t=>e.abort(t)})}const nn="Invalid uncompressed size",rn=de,sn="deflate-raw",on="gzip",an=[31,139,8];class cn extends x{constructor(t,{chunkSize:e,CompressionStreamFallback:n,CompressionStream:r}){super({});const{compressed:s,encrypted:o,useCompressionStream:a,zipCrypto:i,computeCrc32:c,level:f,deflate64:u,format:l,compressionMethod:w}=t,d=this;let h,p,y,g=super.readable;const b=l&&Kt(l),v=c&&s&&!u&&!b&&(!o||i)&&!(!a||!r);if(o&&!i||!c||v||(h=new se,g=pn(g,h)),s)if(b)g=mn(g,dn(b.CompressionStream,l,{level:f,chunkSize:e,compressionMethod:w}));else if(v)y=new fn,g=mn(g,new r(on)),g=pn(g,y);else try{g=hn(g,a,{level:f,chunkSize:e},r,n)}catch(t){let e;try{e=new r(on)}catch{throw t}g=mn(g,e),g=pn(g,new fn)}o&&(i?g=pn(g,new _e(t)):(p=new Oe(t),g=pn(g,p))),wn(d,g,()=>{o&&!i||!c||(d.crc32=v?y.crc32:new m(h.value.buffer).getUint32(0))})}}class fn extends x{constructor(){let t,e=10,n=new d(0);super({transform(t,r){if(e){const n=a.min(e,t.length);if(e-=n,!(t=t.subarray(n)).length)return}const s=n.length+t.length;if(8>=s)return void(n=oe(n,t));const o=s-8,i=a.min(o,n.length);r.enqueue(oe(n.subarray(0,i),t.subarray(0,o-i))),n=oe(n.subarray(i),t.subarray(o-i))},flush(){const e=ae(n);t.crc32=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class un extends x{constructor(t,{chunkSize:e,DecompressionStreamFallback:n,DecompressionStream:r}){super({});const{zipCrypto:s,encrypted:o,checkCrc32:a,crc32:i,compressed:c,useCompressionStream:f,deflate64:u,format:l,compressionMethod:h,rawBitFlag:p,outputSize:y}=t;let b,v,k=super.readable;if(o&&(s?k=pn(k,new Ne(t)):(v=new Me(t),k=pn(k,v))),c){const t=l&&Kt(l);if(t)k=mn(k,dn(t.DecompressionStream,l,{chunkSize:e,compressionMethod:h,rawBitFlag:p,uncompressedSize:y}));else try{k=hn(k,f,{chunkSize:e,deflate64:u},r,n)}catch(t){if(u||y===_)throw t;let e;try{e=new r(on)}catch{throw t}k=((t,e,n)=>{const r=new re;let s,o,a,i=0,c=!1;const f=new g((t,e)=>{o=t,a=e});f.catch(()=>{}),n||o();const u=new x({start(t){const e=new d(10);e.set(an),t.enqueue(e)},transform(t,e){e.enqueue(t)},async flush(t){c=!0,h();try{await f}finally{p()}const e=new d(8),s=ae(e);s.setUint32(0,r.get(),!0),s.setUint32(4,n,!0),t.enqueue(e)},cancel(t){a(t)}}),l=new x({transform(t,e){r.append(t),i+=t.length,n>i?c&&h():o(),e.enqueue(t)},cancel(t){a(t)}});return t=pn(t,u),pn(t=mn(t,e),l);function h(){p(),s=T(()=>a(new w(nn)),5e3)}function p(){U(s)}})(k,e,y)}k=(t=>{const e=t.getReader();return new z({async pull(t){let n;try{n=await e.read()}catch(t){if(t&&t.message)throw t;const e=new w("Invalid compressed data");throw e.cause=t,e}const{value:r,done:s}=n;s?t.close():t.enqueue(r)},cancel:t=>e.cancel(t)})})(k)}a&&(b=new se,k=pn(k,b)),wn(this,k,()=>{if(a){const t=new m(b.value.buffer);if(i!=t.getUint32(0,!1))throw new w(rn)}})}}const ln=new c;function wn(t,e,r){e=pn(e,new x({flush:r})),n.defineProperty(t,"readable",{get:()=>e})}function dn(t,e,n){if(!t)throw new w("Compression method not supported");return new t(e,n)}function hn(t,e,n,r,s){const o=e&&r?r:s||r,a=n.deflate64?"deflate64-raw":sn;let i;try{i=new o(a,n)}catch(t){if(!e||!s||o==s)throw t;i=new s(a,n)}return mn(t,i)}function pn(t,e){return $e(t).pipeThrough(e)}function mn(t,e){const n=e.writable.getWriter(),r=t.getReader();return(async()=>{try{for(;;){await n.ready;const t=await r.read();if(t.done){await n.close();break}await n.write(t.value)}}catch(t){await(async(t,e)=>{try{await t.abort(e)}catch{}})(n,t),await(async(t,e)=>{try{await t.cancel(e)}catch{}})(r,t)}})(),e.readable}const yn="deflate",gn="inflate";class bn extends x{constructor(t,e){super({});const r=this,{codecType:s}=t;let o;s.startsWith(yn)?o=cn:s.startsWith(gn)&&(o=un),r.outputSize=0;let a=0;const i=new o(t,e),c=super.readable,f=new x({transform(t,e){t&&t.length&&(a+=t.length,e.enqueue(t))},flush(){n.assign(r,{inputSize:a})}}),u=new x({transform(e,n){if(e&&e.length&&(n.enqueue(e),r.outputSize+=e.length,t.outputSize!==_&&r.outputSize>t.outputSize))throw new w(nn)},flush(){const{crc32:t}=i;n.assign(r,{crc32:t,inputSize:a})}});n.defineProperty(r,"readable",{get:()=>c.pipeThrough(f).pipeThrough(i).pipeThrough(u)})}}class vn extends x{constructor(t){const e=[];let n=0;function r(){const r=new d(t);let s=0;for(;t>s;){const n=e[0],o=t-s;n.length>o?(r.set(n.subarray(0,o),s),e[0]=n.subarray(o),s+=o):(r.set(n,s),s+=n.length,e.shift())}return n-=t,r}s.isFinite(t)&&t>=1||(t=65536),super({transform(s,o){for(e.push(s),n+=s.length;n>t;)o.enqueue(r())},flush(t){n&&t.enqueue(((t,e)=>{const n=new d(e);let r=0;for(const e of t)n.set(e,r),r+=e.length;return n})(e,n))}})}}class kn{constructor(t,{readable:e,writable:r},{options:s,config:o,gt:a,useWebWorkers:i,transferStreams:f,workerURI:u,createWorker:l},w){const{signal:d}=a;return n.assign(t,{bt:!0,vt:(t.vt||0)+1,readable:e.pipeThrough(new vn(ft(o))).pipeThrough(new Sn(a),{signal:d}),writable:r,options:n.assign({},s),workerURI:u,createWorker:l,transferStreams:f,terminate:()=>new g(e=>{const{kt:n,bt:r}=t;n?(r?t.St=e:(n.terminate(),e()),t.xt=null):e()}),zt(){if(t.bt){const{St:e}=t;e&&(t.St=null,t.Rt=!0,t.kt.terminate(),e()),t.bt=!1,w(t)}}}),((t,e)=>({run:()=>(async({options:t,readable:e,writable:n,zt:r},s)=>{let o;try{if(t.compressed&&!t.format){const e=t.codecType.startsWith(yn),n=e?s.CompressionStreamFallback:s.DecompressionStreamFallback,r=e?s.CompressionStream:s.DecompressionStream;if(t.useCompressionStream){if(n&&n.Dt&&!((t,e)=>{if(!t)return!1;let n=ln.get(t);n||(n=new c,ln.set(t,n));let r=n.get(e);if(r===_){try{new t(e),r=!0}catch{r=!1}n.set(e,r)}return r})(r,sn))try{await void 0}catch{}}else try{await void 0}catch{n&&!n.Dt||(t.useCompressionStream=!0)}}o=new bn(t,s),await e.pipeThrough(o).pipeThrough(new vn(ft(s))).pipeTo(n,{preventClose:!0,preventAbort:!0});const{crc32:r,inputSize:a,outputSize:i}=o;return{crc32:r,inputSize:a,outputSize:i}}catch(t){throw o&&(t.outputSize=o.outputSize),t}finally{r()}})(t,e)}))(t,o)}}class Sn extends x{constructor({onstart:t,onprogress:e,size:n,onend:r}){let s=0;super({async start(){t&&await xn(t,n)},async transform(t,r){s+=t.length,e&&await xn(e,s,n),r.enqueue(t)},async flush(){r&&await xn(r,s)}})}}async function xn(t,...e){try{await t(...e)}catch{}}let zn=[];const Rn=[];let Dn,Fn,Cn=0;function An(){!Dn&&Rn.length&&s.isFinite(Fn)&&Fn>=0&&(Dn=T(Un,Fn))}function Tn(){Dn&&(U(Dn),Dn=null)}function Un(){if(Dn=null,Rn.length){const[{resolve:t,stream:e,Ft:r}]=Rn.splice(0,1),s=n.assign({},r,{useWebWorkers:!1,workerURI:_,createWorker:_});t(new kn({},e,s,En)),An()}}function En(){Tn(),An()}function In(t){const{Ct:e}=t;e&&(U(e),t.Ct=null)}const Wn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Mn(t,e){return On(t,e,!0)}function On(t,e,n){return e&&"cp437"==e.trim().toLowerCase()?(t=>{{let e="";for(let n=0;n<t.length;n++)e+=Wn[t[n]];return e}})(t):new v(e,{ignoreBOM:n}).decode(t)}const Ln="HTTP error ",Pn="HTTP Range not supported",Bn="HTTP resource changed",Hn="Content-Range",Vn="Range",Zn="GET",qn="bytes",Nn=16777216,_n="writable",jn=Symbol();class Kn{constructor(){this.size=0}init(){this.initialized=!0}}class Gn extends Kn{get readable(){return this.createReadable()}createReadable({offset:t=0,size:e,chunkSize:n=ft(ct())}={}){const r=this;let s=0;return n=ut(n),new z({async pull(o){const i=e===_?n:a.min(n,e-s),c=await zr(r,t+s,i);c.length&&o.enqueue(c),s+n>=e||!c.length&&i?o.close():s+=n}})}}class Xn extends Kn{constructor(){super();const t=this,e=new R({write(e){if(!t.initialized)throw new w("Writer not initialized");return t.writeUint8Array((n=e).byteOffset||n.byteLength!=n.buffer.byteLength?new d(n):n);var n}});n.defineProperty(t,_n,{get:()=>e})}writeUint8Array(){}}let Jn,Qn;class Yn extends Gn{constructor(t){super(),n.assign(this,{At:t,size:t.size}),Qn||(Qn=(async()=>{try{const t=new y([new d(3)]).slice(1,2).stream().getReader();let e=0,n=await t.read();for(;!n.done;)e+=n.value.length,n=await t.read();Jn=1==e}catch{Jn=!1}})())}createReadable(t){const{At:e,size:n}=this,{offset:r=0,size:s=n-r}=t||{};return r||n>s?Jn?$e(e.slice(r,r+s).stream()):super.createReadable(t):$e(e.stream())}async readUint8Array(t,e){const n=this,r=t+e,s=t||r<n.size?n.At.slice(t,r):n.At;let o=await s.arrayBuffer();return o.byteLength>e&&(o=o.slice(t,r)),new d(o)}}class $n extends Kn{constructor(t){super();const e=this,r=new x;n.defineProperty(e,_n,{get:()=>r.writable}),e.contentType=t,e.Tt=tn(r.readable,t),e.Tt.catch(()=>{})}getData(){return this.Tt}}class tr extends Gn{constructor(t,e){super(),nr(this,t,e)}async init(){await rr(this,pr,lr),super.init()}createReadable(t){const e=this,{useRangeHeader:n,forceRangeRequests:r,size:o}=e;if((n||r)&&o!==_){const{offset:n=0,size:r=o-n}=t||{};if(r>0&&o>n)return((t,e,n)=>{let r,o=e,i=0,c=n;return new z({start:()=>f(),async pull(t){r||await f();const{value:e,done:n}=await r.read();if(n)throw new w(Pn);const s=e.length>i?e.subarray(0,i):e;i-=s.length,c-=s.length,s.length&&t.enqueue(s),i||(await(async()=>{const t=r;r=_,await t.cancel()})(),c||t.close())},cancel:t=>r&&r.cancel(t)});async function f(){const e=a.min(t.maximumRangeSize,c),n=await pr(Zn,t,fr(t,o,e));if(206!=n.status)throw new w(Pn);const f=n.headers.get(Hn);if(f){const t=s(f.trim().split(/[\s-]+/)[1]);if(!s.isNaN(t)&&t!=o)throw new w(Pn)}cr(t,n),ir(t,n),o+=e,i=e,r=n.body.getReader()}})(e,n,a.min(r,o-n))}return super.createReadable(t)}readUint8Array(t,e){return sr(this,t,e,pr,lr)}}class er extends Gn{constructor(t,e){super(),nr(this,t,e)}async init(){await rr(this,mr,wr),super.init()}readUint8Array(t,e){return sr(this,t,e,mr,wr)}}function nr(t,e,r){const{preventHeadRequest:s,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c=!0,maximumRangeSize:f=Nn,fetch:u}=r;delete(r=n.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.checkResourceChanges,delete r.maximumRangeSize,delete r.useXHR,delete r.fetch,n.assign(t,{url:e,options:r,preventHeadRequest:s,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c,maximumRangeSize:f,fetch:u})}async function rr(t,e,n){const{url:r,preventHeadRequest:s,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i}=t;if((t=>{const{baseURI:e}=ct(),{protocol:n}=new l(t,e);return"http:"==n||"https:"==n})(r)&&(o||a)&&(typeof s==j||s)){const r=await e(Zn,t,fr(t,i?-22:void 0)),s=r.headers.get("Accept-Ranges");if(!(a||s&&s.toLowerCase()==qn))throw new w(Pn);{if(i){const e=new d(await r.arrayBuffer());206==r.status&&e.length==H&&(t.Ut=e)}ir(t,r);const s=or(r);s===_?await hr(t,e,n):t.size=s}}else await hr(t,e,n)}async function sr(t,e,n,r,o){const{useRangeHeader:a,forceRangeRequests:i,Ut:c,size:f,options:u}=t;if(a||i){if(c&&e==f-H&&n==H)return c;if(f>e&&0!==n){e+n>f&&(n=f-e);const o=await r(Zn,t,fr(t,e,n));if(206!=o.status)throw new w(Pn);const a=o.headers.get(Hn);if(a){const t=s(a.trim().split(/[\s-]+/)[1]);if(!s.isNaN(t)&&t!=e)throw new w(Pn)}cr(t,o),ir(t,o);const i=new d(await o.arrayBuffer());if(i.length!=n)throw new w(Pn);return i}return X}{const{data:r}=t;return r||await o(t,u),t.data.subarray(e,e+n)}}function or(t){const e=t.headers.get(Hn);if(e){const t=e.trim().split(/\s*\/\s*/)[1];if(t&&"*"!=t){const e=s(t);if(!s.isNaN(e))return e}}}function ar({headers:t}){return{Et:t.get("Etag")||_,lastModified:t.get("Last-Modified")||_}}function ir(t,e){const{checkResourceChanges:n,It:r}=t;n&&!r&&206==e.status&&(t.It=ar(e))}function cr(t,e){const{checkResourceChanges:r,It:s,size:o}=t;if(r){const t=or(e);if(t!==_&&o!==_&&t!=o)throw new w(Bn);if(s){const t=ar(e);if(n.entries(s).some(([e,n])=>n!==_&&t[e]!==_&&n!=t[e]))throw new w(Bn)}}}function fr(t,e=0,r=1){return n.assign({},ur(t),{[Vn]:qn+"="+(0>e?e:e+"-"+(e+r-1))})}function ur({options:t}){const{headers:e}=t;if(e)return Symbol.iterator in e?n.fromEntries(e):e}async function lr(t){await dr(t,pr)}async function wr(t){await dr(t,mr)}async function dr(t,e){const n=await e(Zn,t,ur(t));t.data=new d(await n.arrayBuffer()),t.size=t.data.length}async function hr(t,e,n){if(t.preventHeadRequest)await n(t,t.options);else{const r=await e("HEAD",t,ur(t)),o=r.headers.get("Content-Length");o&&!r.headers.get("Content-Encoding")?t.size=s(o):await n(t,t.options)}}async function pr(t,{fetch:e=fetch,options:r,url:s},o){const a=await e(s,n.assign({},r,{method:t,headers:o}));if(400>a.status)return a;throw 416==a.status?new w(Pn):new w(Ln+(a.statusText||a.status))}function mr(t,{url:e},r){return new g((s,o)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(400>a.status){const t=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(e=>{const n=e.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,t=>t.toUpperCase()),t.push(n)}),s({status:a.status,arrayBuffer:()=>a.response,headers:new c(t)})}else o(416==a.status?new w(Pn):new w(Ln+(a.statusText||a.status)))},!1),a.addEventListener("error",t=>o(t.detail?t.detail.error:new w("Network error")),!1),a.open(t,e),r)for(const t of n.entries(r))a.setRequestHeader(t[0],t[1]);a.responseType="arraybuffer",a.send()})}class yr extends Gn{constructor(t,e={}){super(),n.assign(this,{url:t,reader:e.useXHR&&!e.fetch?new er(t,e):new tr(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(t){return this.reader.createReadable(t)}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class gr extends Gn{constructor(t){super(),this.Wt=t}async init(){const t=this;t.Mt=0;const e=t.Wt=await g.all(t.Wt.map(xr));t.Ot=e.map(e=>{const n=t.size;return t.size+=e.size,n}),super.init()}Lt(t){const{Ot:e,size:n}=this,r=e[t];return r===_?n:r}async readUint8Array(t,e){const n=this,{Wt:r}=this;let s,o=0,i=t;for(;r[o]&&i>=r[o].size;)i-=r[o].size,o++;const c=r[o];if(c){const r=c.size;if(i+e>r){const o=r-i;s=oe(await zr(c,i,o),await n.readUint8Array(t+o,e-o))}else s=await zr(c,i,e)}else s=X;return n.Mt=a.max(o,n.Mt),s}}class br extends Kn{constructor(t,e=4294967295){super();const r=this;let s,o,a;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const i=new R({async write(e){if(e===jn)return void(a&&await f());const{availableSize:n}=r;if(a)e.length<n?await c(e):(await c(e.subarray(0,n)),await f(),e.length>n&&await this.write(e.subarray(n)));else{const{value:n,done:i}=await t.next();if(i&&!n)throw new w("Writer iterator completed too soon");s=n,s.size=0,s.maxSize&&(r.maxSize=s.maxSize),r.availableSize=r.maxSize,await Sr(s),o=n.writable,a=o.getWriter(),await this.write(e)}},async close(){a&&(await a.ready,await u())},async abort(t){a&&await a.abort(t)}});async function c(t){const e=t.length;e&&(await a.ready,await a.write(t),s.size+=e,r.availableSize-=e)}async function f(){await u(),r.diskOffset+=s.size,r.diskNumber++,a=null,r.availableSize=r.maxSize}async function u(){await a.close()}n.defineProperty(r,_n,{get:()=>i})}async closeDisk(){const t=this.writable.getWriter();try{await t.ready,await t.write(jn)}finally{t.releaseLock()}}}class vr{constructor(t){return e.isArray(t)&&(t=new gr(t)),(t instanceof z||typeof t.getReader==K)&&(t={readable:$e(t)}),t}}class kr{constructor(t){return t.writable===_&&typeof t.next==K&&(t=new br(t)),(t instanceof R||typeof t.getWriter==K)&&(t={writable:en(t)}),t.size===_&&(t.size=0),t}}async function Sr(t,e){if(!t.init||t.initialized)return g.resolve();await t.init(e)}async function xr(t){return t=new vr(t),await Sr(t),t.size!==_&&t.readUint8Array||(t=new Yn(await tn(t.readable)),await Sr(t)),t}function zr(t,e,n){return t.readUint8Array(e,n)}const Rr="filename",Dr="rawFilename",Fr="comment",Cr="rawComment",Ar="uncompressedSize",Tr="compressedSize",Ur="offset",Er="diskNumberStart",Ir="lastModDate",Wr="rawLastModDate",Mr="lastAccessDate",Or="rawLastAccessDate",Lr="creationDate",Pr="rawCreationDate",Br=[Rr,Dr,Ar,Tr,Ir,Wr,Fr,Cr,Mr,Or,Lr,Pr,Ur,Er,"internalFileAttributes","externalFileAttributes","internalFileAttribute","externalFileAttribute","msdosAttributesRaw","msdosAttributes","msDosCompatible","zip64","encrypted","version","versionMadeBy","zipCrypto","directory","executable","symlink","compressionMethod","signature","crc32","extraField","extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid","unixMode","unixExternalUpper","setuid","setgid","sticky","bitFlag","rawBitFlag","filenameLength","extraFieldLength","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class Hr{constructor(t){Br.forEach(e=>this[e]=t[e])}}const Vr="File format is not recognized",Zr="Encryption method not supported",qr="Compression method not supported",Nr="Split zip file",_r="malformed extra field",jr="wrapped entries count",Kr="appended data",Gr="prepended data",Xr="mismatched zip64 end of central directory record",Jr=/^[a-zA-Z]:/,Qr="utf-8",Yr="cp437",$r=[[Ar,E],[Tr,E],[Ur,E],[Er,I]],ts={[I]:{Pt:Es,bytes:4},[E]:{Pt:Is,bytes:8}},es=o(s.MAX_SAFE_INTEGER);class ns{constructor(t,e){n.assign(this,{reader:t,options:e})}async getData(t,e,n,r={}){const o=this,i=ct(),{reader:c,index:f,offset:u,diskNumberStart:h,extraFieldAES:p,extraFieldZip64:m,compressionMethod:y,bitFlag:b,rawBitFlag:v,crc32:k,rawLastModDate:S,uncompressedSize:x,compressedSize:z}=o,{dataDescriptor:D}=b,F=e.localDirectory={},C=e.warnings=[],A=ds(c,h)+u,U=await zr(c,A,30),E=ae(U);let I=Ds(o,r,"password"),M=Ds(o,r,"rawPassword");const L=Ds(o,r,"passThrough");if(((t,e)=>{if(t&&typeof t!=G||e&&!(e instanceof d))throw new w("Invalid password (password must be a string, rawPassword must be a Uint8Array)")})(I,M),I=I&&I.length&&I,M=M&&M.length&&M,p&&99!=p.originalCompressionMethod)throw new w(qr);if(30>U.length||67324752!=Es(E,0))throw new w("Local file header not found");as(F,E,4);const{extraFieldLength:P,filenameLength:B}=F,H=F.dataOffset=A+30+B+P,V=Ds(o,r,"checkLocalDirectory"),Z=ms(r,o.options),q=((t,e)=>t===_?e!=Y:!!t)(V,Z),N=((t,e)=>t===_?e==J:!!t)(V,Z);let j=X;if(N&&(B||P)){const t=await zr(c,A+30,B+P);j=t.subarray(0,B),F.rawExtraField=t.subarray(B)}else F.rawExtraField=P?await zr(c,A+30+B,P):X;N&&(F.rawFilename=j),is(o,F,E,4,!0)&&zs(C,_r),((t,e,n,r,s)=>{const{rawFilename:o}=t,a=!s,i=t.Bt&&!(8192&~e.rawBitFlag);!r||i||n.length==o.length&&!n.some((t,e)=>t!=o[e])||xs(a,s,"mismatched local file header (filename)"),(2057&e.rawBitFlag)!=(2057&t.rawBitFlag)&&xs(a,s,"mismatched local file header (general purpose bit flag)"),e.compressionMethod!=t.compressionMethod&&xs(a,s,"mismatched local file header (compression method)"),e.bitFlag.dataDescriptor||i||!(e.crc32||e.compressedSize||e.uncompressedSize)||e.crc32==t.crc32&&e.compressedSize==t.compressedSize&&e.uncompressedSize==t.uncompressedSize||xs(a,s,"mismatched local file header (crc32 or sizes)")})(o,F,j,N,q?_:C);const{lastAccessDate:Q,creationDate:$,uid:tt,gid:et}=F;Q&&(e.lastAccessDate=Q),$&&(e.creationDate=$),tt!==_&&e.uid===_&&(e.uid=tt),et!==_&&e.gid===_&&(e.gid=et);const nt=o.encrypted&&F.encrypted&&!L,rt=nt&&!p;if(L||(e.zipCrypto=rt),nt&&!(64&~F.rawBitFlag))throw new w(Zr);const st=L?_:(t=>_t.get(t))(y);if(0!=y&&8!=y&&9!=y&&!st&&!L)throw new w(qr);if(nt){if(!rt&&(1>p.strength||p.strength>3))throw new w(Zr);if(!I&&!M)throw new w("File contains encrypted entry")}if(H+z>c.size)throw new w("Entry data out of bounds");const ot=z,at=$e(c.createReadable({offset:H,size:ot})),it=(t=>{if(t&&(typeof t.addEventListener!=K||"boolean"!=typeof t.aborted))throw new w("Invalid signal (must be an AbortSignal instance)");return t||_})(Ds(o,r,"signal")),ft=Ds(o,r,"checkPasswordOnly");let ut=Ds(o,r,"checkOverlappingEntry");const lt=Ds(o,r,"checkOverlappingEntryOnly");lt&&(ut=!0);const{onstart:wt,onprogress:dt,onend:ht}=r,pt=0!=y&&!L,mt=L?z:x,yt=9==y;let gt=Ds(o,r,"useCompressionStream");yt&&(gt=!1);const bt=Ds(o,r,"checkCrc32"),vt=(bt===_?Ds(o,r,"checkSignature"):bt)&&!L&&(!nt||rt||p&&1==p.vendorVersion),kt={options:{codecType:gn,password:I,rawPassword:M,zipCrypto:rt,encryptionStrength:p&&p.strength,checkCrc32:vt,checkAuthenticationCode:Ds(o,r,"checkAuthenticationCode"),passwordVerification:rt&&(D?S>>>8&W:k>>>24&W),outputSize:mt,crc32:k,compressed:pt,encrypted:nt,useWebWorkers:Ds(o,r,"useWebWorkers"),useCompressionStream:gt,transferStreams:Ds(o,r,"transferStreams"),deflate64:yt,format:st?st.format:_,codecURI:st?st.codecURI:_,compressionMethod:y,rawBitFlag:v,checkPasswordOnly:ft},config:i,gt:{signal:it,size:ot,onstart:wt,onprogress:dt,onend:ht}};let St,xt;ut&&await(async({reader:t,Ht:e,index:n,offset:r,crc32:s,compressedSize:o,uncompressedSize:a,dataOffset:i,dataDescriptor:c,extraFieldZip64:f,Vt:u})=>{let l=0;if(c&&(l=f?20:12),l){const n=await zr(t,i+o,l+4),r=ae(n);let c=n.length==l+4&&Es(r,0)==O;if(c){const t=ws(r,4,f);(e.encrypted&&!e.zipCrypto||t.crc32==s)&&t.compressedSize==o&&t.uncompressedSize==a?l+=4:c=!1}if(n.length>=l){const t=ws(r,c?4:0,f);t.signature=c,e.localDirectory.dataDescriptor=t}}const d={start:r,end:i+o+l,Ht:e};for(const[t,e]of u)if(t!=n&&d.start<e.end&&e.start<d.end){const t=new w("Overlapping entry found");throw t.overlappingEntry=e.Ht,t}u.set(n,d)})({reader:c,Ht:e,index:f,offset:A,crc32:k,compressedSize:z,uncompressedSize:x,dataOffset:H,dataDescriptor:D||F.bitFlag.dataDescriptor,extraFieldZip64:m||F.extraFieldZip64,Vt:n});try{if(!lt){ft&&(t=new R),t=new kr(t),await Sr(t,((t,e,n)=>a.min(t,n?1032*e:e))(mt,z,pt)),({writable:St}=t);const{outputSize:e}=await async function(t,e){const{options:n,config:r}=e,{transferStreams:o,useWebWorkers:a,useCompressionStream:i,compressed:c,checkCrc32:f,computeCrc32:u,encrypted:d,format:h,codecURI:p}=n,{workerURI:m,createWorker:y,maxWorkers:b}=r;h&&(p&&(n.codecURI=((t,e)=>{try{return new l(t,e).toString()}catch{return t}})(p,r.baseURI)),await(async(t,e)=>{!jt.has(t)&&e&&((t,e)=>{const{CompressionStream:n,DecompressionStream:r}=e;if(typeof n!=K&&typeof r!=K)throw new w("Invalid codec module");jt.set(t,{CompressionStream:n,DecompressionStream:r})})(t,await(import(e)))})(h,n.codecURI)),e.transferStreams=!h&&(o||o===_&&r.transferStreams);const v=!(c||f||u||d),k=h===_||!!n.codecURI;return e.useWebWorkers=!v&&k&&(a||a===_&&r.useWebWorkers),e.workerURI=e.useWebWorkers&&m?m:_,e.createWorker=e.useWebWorkers&&y?y:_,n.useCompressionStream=i||i===_&&r.useCompressionStream,(await(async()=>{const n=zn.find(t=>!t.bt);if(n)return In(n),new kn(n,t,e,S);if(zn.length<b){const n={Zt:Cn};return Cn++,zn.push(n),new kn(n,t,e,S)}return new g(n=>{Rn.push({resolve:n,stream:t,Ft:e}),Fn=r.workerStarvationTimeout,An()})})()).run();function S(t){if(Tn(),Rn.length){const[{resolve:e,stream:n,Ft:r}]=Rn.splice(0,1);e(new kn(t,n,r,S)),An()}else t.kt?(In(t),((t,e)=>{const{config:n}=e,{terminateWorkerTimeout:r}=n;s.isFinite(r)&&r>=0&&(t.Rt?t.Rt=!1:t.Ct=T(async()=>{zn=zn.filter(e=>e!=t);try{await t.terminate()}catch{}},r))})(t,e)):zn=zn.filter(e=>e!=t)}}({readable:at,writable:St},kt);if(t.size+=e,e!=mt)throw new w(nn)}}catch(e){if(e.outputSize!==_&&(t.size+=e.outputSize),!ft||e.message!=pe)throw xt=e,e}finally{const e=!(t=>!(!t||!t.getData))(t)&&Ds(o,r,"preventClose");if(!e&&St&&!St.locked){const t=St.getWriter();if(xt)try{await t.abort(xt)}catch{}else await t.close()}}return ft||lt?_:t.getData?t.getData():St}}function rs(t){const e=a.min(t.byteLength,1024)-3;for(let n=0;e>n;n++)if(134630224==Es(t,n))return!0;return!1}function ss(t,e,n){let r=0;for(;n+46<=e.length&&Es(t,n)==L;)n+=46+Us(t,n+28)+Us(t,n+30)+Us(t,n+32),r++;return r%65536?0:r}function os(t){if(t.length>=6){const e=ae(t);if(84233040==Es(e,0)){const n=Us(e,4);if(6+n<=t.length)return t.subarray(6,6+n)}}}function as(t,e,r){const s=t.rawBitFlag=Us(e,r+2),o=!(1&~s),a=Es(e,r+6);n.assign(t,{encrypted:o,version:Us(e,r),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:!(2048&~s)},rawLastModDate:a,lastModDate:Cs(a),filenameLength:Us(e,r+22),extraFieldLength:Us(e,r+24)})}function is(t,e,r,s,o){const{rawExtraField:a}=e,f=e.extraField=new c,u=ae(a);let l=0,d=!1;try{for(;l<a.length;){const t=Us(u,l),e=Us(u,l+2);f.set(t,{type:t,data:a.slice(l+4,l+4+e)}),l+=4+e}}catch{d=!0}l>a.length&&(d=!0);const h=Us(r,s+4);n.assign(e,{signature:Es(r,s+10),crc32:Es(r,s+10),compressedSize:Es(r,s+14),uncompressedSize:Es(r,s+18)});const p=f.get(1);p&&(((t,e)=>{e.zip64=!0;const n=ae(t.data),r=$r.filter(([t,n])=>e[t]==n),s=r.reduce((t,[,e])=>t+ts[e].bytes,0);if(t.data.length<s)throw new w("Zip64 extra field not found");for(let s=0,o=0;s<r.length;s++){const[a,i]=r[s],c=ts[i];e[a]=t[a]=c.Pt(n,o),o+=c.bytes}})(p,e),e.extraFieldZip64=p);const m=f.get(28789);m&&(cs(m,Rr,Dr,e,t),e.extraFieldUnicodePath=m);const y=f.get(25461);y&&(cs(y,Fr,Cr,e,t),e.extraFieldUnicodeComment=y);const g=f.get(39169);g&&g.data.length>=7?(((t,e,r)=>{const s=ae(t.data),o=Ts(s,4);n.assign(t,{vendorVersion:Ts(s,0),vendorId:Ts(s,2),strength:o,originalCompressionMethod:r,compressionMethod:Us(s,5)}),e.compressionMethod=t.compressionMethod,1!=t.vendorVersion&&(e.crc32=_)})(g,e,h),e.extraFieldAES=g):e.compressionMethod=h;const b=f.get(13);b&&(fs(b,e),e.extraFieldPkwareUnix=b);const v=f.get(22613);v&&(fs(v,e),e.extraFieldUnixType1=v);const k=f.get(10);k&&(((t,e)=>{const r=ae(t.data);let s,o=4;try{for(;o<t.data.length&&!s;){const e=Us(r,o),n=Us(r,o+2);1==e&&(s=t.data.slice(o+4,o+4+n)),o+=4+n}}catch{}if(s&&24==s.length){const r=ae(s),o=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),i=r.getBigUint64(16,!0);n.assign(t,{rawLastModDate:o,rawLastAccessDate:a,rawCreationDate:i});const c={lastModDate:As(o),lastAccessDate:As(a),creationDate:As(i)};n.assign(t,c),n.assign(e,c,{rawLastAccessDate:a,rawCreationDate:i})}})(k,e),e.extraFieldNTFS=k);const S=f.get(30805);let x;if(S&&(x=us(S,e,!1),e.extraFieldUnix=S),!x){const t=f.get(30837);t&&(us(t,e,!0),e.extraFieldInfoZip=t)}const z=f.get(21589);z&&(((t,e,n)=>{if(!t.data.length)return;const r=ae(t.data),s=Ts(r,0),o=[],a=[];n?(1&~s||(o.push(Ir),a.push(Wr)),2&~s||(o.push(Mr),a.push(Or)),4&~s||(o.push(Lr),a.push(Pr))):5>t.data.length||(o.push(Ir),a.push(Wr));let c=1;o.forEach((n,s)=>{if(t.data.length>=c+4){const o=Es(r,c);e[n]=t[n]=new i(1e3*(0|o));const f=a[s];t[f]=o}c+=4})})(z,e,o),e.extraFieldExtendedTimestamp=z);const R=f.get(6534);return R&&(e.extraFieldUSDZ=R),d}function cs(t,e,r,s,o){if(5>t.data.length)return void(t.valid=!1);const a=ae(t.data),i=new re;i.append(o[r]);const c=ae(new d(4));c.setUint32(0,i.get(),!0);const f=Es(a,1),u=Ts(a,0);n.assign(t,{version:u,[e]:Mn(t.data.subarray(5)),valid:1==u&&!o.bitFlag.languageEncodingFlag&&f==Es(c,0)}),t.valid&&(s[e]=t[e],s[e+"UTF8"]=!0)}function fs(t,e){if(8>t.data.length)return;const r=ae(t.data),s={lastAccessDate:new i(1e3*(0|Es(r,0))),lastModDate:new i(1e3*(0|Es(r,4)))};12>t.data.length||(s.uid=Us(r,8),s.gid=Us(r,10)),n.assign(t,s),n.assign(e,s)}function us(t,e,r){try{const s=ae(t.data);let o,a;if(r){let e=0;const r=Ts(s,e++),i=Ts(s,e++);o=ls(t.data.subarray(e,e+i)),e+=i;const c=Ts(s,e++);a=ls(t.data.subarray(e,e+c)),n.assign(t,{version:r,uid:o,gid:a})}else 4>t.data.length||(o=Us(s,0),a=Us(s,2),n.assign(t,{uid:o,gid:a}));return o!==_&&(e.uid=o),a!==_&&(e.gid=a),o!==_||a!==_}catch{}}function ls(t){const e=new d(4);return e.set(t,0),new m(e.buffer,e.byteOffset,4).getUint32(0,!0)}function ws(t,e,n){const r=Es(t,e);let s,o;return n?(s=Is(t,e+4),o=Is(t,e+12)):(s=Es(t,e+4),o=Es(t,e+8)),{crc32:r,compressedSize:s,uncompressedSize:o}}function ds(t,e){return t.Lt?t.Lt(e):0}async function hs(t){return Es(ae(await zr(t,0,4)))}function ps(t){return t===J||t===Q||t===Y}function ms(t,e){return ys(t,ys(e,Q))}function ys(t,e){const n=t.strictness;if(n!==_){if(!ps(n))throw new w("Invalid strictness (must be 'strict', 'balanced' or 'tolerant')");return n}const r=t.checkAmbiguity;return r===_?e:r?J:e==Y?Y:Q}function gs(t,e){if(e==Y)return!1;const n=t.split("/");return n.length>1&&""===n[n.length-1]&&n.pop(),!!(n.includes("..")||t.startsWith("/")||t.startsWith("\\\\")||Jr.test(t))||e==J&&(n.includes(".")||n.includes(""))}async function*bs(t,e){const n=t.size-e,r=await zr(t,n,e),s=ae(r);for(let t=r.length-H;t>=0;t--)101010256==Es(s,t)&&(yield[s,n,r,t,n+t])}function vs(t,e,n){return{offset:n,buffer:t.slice(e,e+H).buffer}}async function ks(t,e,n,r,s,o,a){const i=Us(e,r+10),c=Es(e,r+12),f=Es(e,r+16);if(i==I||c==E||f==E)return await Ss(t,e,n,s-V,o,a)==B?2:0;if(!i&&!c)return 1;const u=Us(e,r+6);for(const r of[s-c,ds(t,u)+f])if(await Ss(t,e,n,r,o,a)==L)return 2;return 0}async function Ss(t,e,n,r,s,o){return 0>r||r+4>s?_:n>r?o.count>0?(o.count--,Es(ae(await zr(t,r,4)),0)):_:Es(e,r-n)}function xs(t,e,n){t?Rs(n):zs(e,n)}function zs(t,e,n){if(!t.some(t=>t.reason==e)){const r={reason:e};n!==_&&(r.filename=n),t.push(r)}}function Rs(t){const e=new w("Ambiguous archive");throw e.reason=t,e}function Ds(t,e,n){return e[n]===_?t.options[n]:e[n]}function Fs(t,e,n){return $(Ds(t,e,n))}function Cs(t){const e=(4294901760&t)>>16,n=t&I,r=new i(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&n)>>11,(2016&n)>>5,2*(31&n),0);return N>r?N:r}function As(t){return new i(s(t/o(1e4)-o(116444736e5)))}function Ts(t,e){return t.getUint8(e)}function Us(t,e){return t.getUint16(e,!0)}function Es(t,e){return t.getUint32(e,!0)}function Is(t,e){const n=t.getBigUint64(e,!0);if(n>es)throw new w("64-bit value exceeds Number.MAX_SAFE_INTEGER");return s(n)}(t=>{const e=lt(dt(t));n.assign(nt,e),n.assign(it,e)})({workerURI:null,wasmURI:null,DecompressionStreamFallback:class extends Nt{constructor(t){(t=>{if("deflate-raw"!=t)throw new TypeError("Unsupported compression format: "+t)})(t),super(new Zt)}}}),t.BlobReader=Yn,t.BlobWriter=$n,t.Data64URIWriter=class extends Xn{constructor(t){super(),n.assign(this,{contentType:t,data:"data:"+(t||"")+";base64,",qt:""})}writeUint8Array(t){const e=this;let n,s=e.qt;const o=e.qt.length;for(e.qt="",n=0;n<3*a.floor((o+t.length)/3)-o;n++)s+=r.fromCharCode(t[n]);for(;n<t.length;n++)e.qt+=r.fromCharCode(t[n]);s.length>2?e.data+=S(s):e.qt=s+e.qt}getData(){return this.data+S(this.qt)}},t.HttpRangeReader=class extends yr{constructor(t,e={}){super(t,n.assign({},e,{useRangeHeader:!0}))}},t.TextWriter=class extends $n{constructor(t){super(),n.assign(this,{encoding:t,Nt:!t||"utf-8"==t.toLowerCase()})}async getData(){const{encoding:t,Nt:e}=this,n=await super.getData();return n.text&&e?n.text():((t,e)=>On(t,e,!1))(new d(await n.arrayBuffer()),t)}},t.ZipReader=class{constructor(t,e={}){n.assign(this,{reader:new vr(t),options:e,Vt:new c})}async*getEntriesGenerator(t={}){const e=this;let{reader:r}=e;if(await Sr(r),r.size!==_&&r.readUint8Array||(r=new Yn(await tn(r.readable)),await Sr(r)),r.size<H)throw new w(Vr);const o=e.warnings=[],i=ms(t,e.options),c=i==J,u=i!=Y,l=((t,e)=>{if(t!==_){const e=tt(t);if("number"!=typeof e||s.isNaN(e)||0>e)throw new w("Invalid maxAppendedDataSize (must be a number greater than or equal to 0)");return e}return e==J?0:e==Y?1/0:I})(Ds(e,t,"maxAppendedDataSize"),i),d=((t,e)=>{if(t===_)return e;if(!ps(t))throw new w("Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')");return t})(Ds(e,t,"filenameValidation"),i),h=Ds(e,t,"normalizeFilename"),{_t:p,jt:m}=await(async(t,e,n)=>{const{size:r}=t,s=a.min(r,65557),o={count:64};let i,c,f=0;for await(const[n,a,u,l,w]of bs(t,s)){const s=Us(n,l+20);if(w+H+s==r){const s=await ks(t,n,a,l,w,r,o);if(2==s){if(i||(i=vs(u,l,w)),f++,!e||f>1)break}else 1!=s||c||(c=vs(u,l,w))}}return i||(i=c),i||(i=await(async(t,e,n)=>{const{size:r}=t,s=a.min(r,e==1/0?r:65557+e);let o,i;for await(const[e,a,c,f,u]of bs(t,s)){const s=vs(c,f,u);o||(o=s);const l=await ks(t,e,a,f,u,r,n);if(2==l)return s;1!=l||i||(i=s)}return i||o})(t,n,o)),{_t:i,jt:f}})(r,u,l);if(!p)throw await(async t=>await hs(t)==M)(r)?new w(Nr):new w("End of central directory not found");u&&m>1&&Rs("multiple end of central directory records");const y=ae(p);let g=Es(y,12),b=Es(y,16);const v=p.offset,k=Us(y,20),S=v+H+k,z=r.size-S;z>l&&Rs(Kr),z>0&&zs(o,Kr);let R=Us(y,4);const D=r.Mt||0;let F,C,A,T,U=Us(y,6),O=Us(y,10),N=0,j=Z;const K=b==E||g==E||O==I||U==I;if(b!=E&&U!=I&&(b+=ds(r,U)),K){const t=p.offset<V?X:await zr(r,p.offset-V,V),e=ae(t);if(t.length==V&&Es(e,0)==B){b=ds(r,Es(e,4))+Is(e,8);let t=await zr(r,b,Z),s=ae(t);const i=p.offset-V-Z;if((t.length<Z||Es(s,0)!=P)&&b!=i&&i>=0){const e=b;b=i,b>e&&(N=b-e),t=await zr(r,b,Z),s=ae(t)}if(t.length<Z||Es(s,0)!=P)throw new w("End of Zip64 central directory locator not found");if(C=!0,A=Is(s,4)>44,A){const t=a.min(Is(s,4)-44,r.size-b-Z);t>0&&(j+=t,T=(t=>{const e={rawExtensibleData:t};if(t.length>=28){const r=ae(t),s=Us(r,26);n.assign(e,{compressionMethod:Us(r,0),compressedSize:Is(r,2),uncompressedSize:Is(r,10),encryptionAlgorithm:Us(r,18),bitLength:Us(r,20),flags:Us(r,22),hashAlgorithm:Us(r,24),hashData:t.subarray(28,28+s)})}return e})(await zr(r,b+Z,t)))}R==I?R=Es(s,16):R!=Es(s,16)&&xs(c,o,Xr),U==I?U=Es(s,20):U!=Es(s,20)&&xs(c,o,Xr),O==I?O=Is(s,32):O!=Is(s,32)&&xs(c,o,Xr),g==E?g=Is(s,40):g!=Is(s,40)&&xs(c,o,Xr),b=ds(r,U)+Is(s,48)+N}}let G=g;const Q=p.offset-(C?j+V:0);if(b<r.size||(N=r.size-b-g-H,b=r.size-g-H),D!=R)throw new w(Nr);if(0>b)throw new w(Vr);let $=0,et=await zr(r,b,g),nt=ae(et);if(g){if(4>et.length)throw new w(Vr);const t=Q-g;if(b!=t&&U==R){let e=!(Es(nt,$)==L||T&&T.compressedSize||rs(nt));if(e||0>t||t+4>r.size||(e=Es(ae(await zr(r,t,4)),0)==L),e){const e=b;b=t,b>e&&(N+=b-e),et=await zr(r,b,g),nt=ae(et)}}}const rt=Q-b;if(g==rt||0>rt||U!=R||(g=rt,et=await zr(r,b,g),nt=ae(et)),0>b||b>=r.size)throw new w(Vr);e.directoryOffset=b,e.directoryLength=G;const st=Fs(e,t,"decryptCentralDirectory");let ot,at;if(st&&O&&et.length>=4&&Es(nt,0)!=L&&(A||rs(nt))){const t=((t,e,n)=>{const r=t&&t.compressedSize?t.compressedSize:e;return r>0&&n>=r?r:n})(T,G,et.length);at=et.subarray(t),et=await st(et.subarray(0,t),T),nt=ae(et),G=et.length,ot=!0}!T||ot||et.length>=4&&Es(nt,0)!=L||zs(o,"unknown zip64 extensible data"),F=b;const it=Ds(e,t,"filenameEncoding"),ct=Ds(e,t,"commentEncoding"),ft=new f;let ut,lt=-1;const wt=!c&&!C;!O&&wt&&(O=ss(nt,et,$),O&&zs(o,jr));for(let s=0;O>s;s++){const i=new ns(r,e.options);if($+46>et.length||Es(nt,$)!=L){if(0==s&&!ot&&(A||rs(nt)))throw new w("Encrypted central directory is not supported");throw new w("Central directory header not found")}as(i,nt,$+6);const c=!!i.bitFlag.languageEncodingFlag,f=$+46,u=f+i.filenameLength,l=u+i.extraFieldLength,p=Us(nt,$+4),m=!(p>>8),y=p>>8==3,g=et.subarray(f,u),b=Us(nt,$+32),v=l+b,k=et.subarray(l,v),S=c,z=c,R=Es(nt,$+38),D=R&W,C={readOnly:!!(1&D),hidden:!!(2&D),system:!!(4&D),directory:!!(16&D),archive:!!(32&D)},T=Es(nt,$+42),U=Fs(e,t,"decodeText")||Mn,E=S?Qr:it||Yr,M=z?Qr:ct||Yr;let P=U(g,E,"filename");if(P===_&&(P=Mn(g,E)),h){const t=h(P);t!==_&&(P=t)}if(gs(P,d)){const t=new w("Unsafe filename");throw t.filename=P,t}let B=U(k,M,"comment");B===_&&(B=Mn(k,M)),n.assign(i,{index:s,Bt:ot,versionMadeBy:p,msDosCompatible:m,zip64:!1,compressedSize:0,uncompressedSize:0,Kt:b,offset:T,diskNumberStart:Us(nt,$+34),internalFileAttributes:Us(nt,$+36),externalFileAttributes:R,msdosAttributesRaw:D,msdosAttributes:C,rawFilename:g,filenameUTF8:S,commentUTF8:z,rawExtraField:et.subarray(u,l),rawComment:k,filename:P,comment:B}),is(i,i,nt,$+6)&&zs(o,_r,P),i.offset+=N;const H=ds(r,i.diskNumberStart)+i.offset;F=a.min(H,F),lt>H&&zs(o,"unsorted central directory",P),lt=H,(i.version&W)>63&&zs(o,"unknown version needed to extract",P),32&~i.rawBitFlag||zs(o,"compressed patched data",P),ft.has(i.filename)&&(ut=!0),ft.add(i.filename);const V=i.externalFileAttributes>>16&I;i.unixMode===_&&16877&V&&(i.unixMode=V);const Z=!!(2048&i.unixMode),j=!!(1024&i.unixMode),K=!!(512&i.unixMode),G=40960==((i.unixMode===_?V:i.unixMode)&q),X=!G&&(i.unixMode!==_?!!(73&i.unixMode):y&&!!(73&V)),J=i.unixMode!==_&&16384==(i.unixMode&q),Q=16384==(V&q);n.assign(i,{setuid:Z,setgid:j,sticky:K,symlink:G,unixExternalUpper:V,internalFileAttribute:i.internalFileAttributes,externalFileAttribute:i.externalFileAttributes,executable:X,directory:J||Q||m&&C.directory||i.filename.endsWith("/"),zipCrypto:i.encrypted&&!i.extraFieldAES});const Y=new Hr(i);if(Y.getData=(t,n)=>i.getData(t,Y,e.Vt,n),Y.arrayBuffer=async t=>{const n=new x,r=tn(n.readable).then(t=>t.arrayBuffer());return r.catch(()=>{}),await i.getData(n,Y,e.Vt,t),r},$=v,s==O-1&&wt){const t=ss(nt,et,$);t&&(O+=t,zs(o,jr))}const{onprogress:tt}=t;if(tt)try{await tt(s+1,O,new Hr(i))}catch{}yield Y}let dt=$,ht=os(et.subarray($))||(ot?os(at):_);if(!ht&&!ot){const t=b+$,e=a.min(Q-t,65541);6>e||(ht=os(await zr(r,t,e)))}ht&&(e.digitalSignature=ht,dt=$+6+ht.length),($!=G&&dt!=G||!ot&&$!=g&&dt!=g)&&xs(c,o,"trailing central directory data"),ut&&xs(c,o,"duplicate filename");const pt=Ds(e,t,"extractPrependedData"),mt=Ds(e,t,"extractAppendedData"),yt=(c||pt)&&O&&4==F&&await(async t=>{const e=await hs(t);return e==M||808471376==e})(r)?4:0;return c&&(N||O&&F>yt)&&Rs(Gr),(N||O&&F>4)&&zs(o,Gr),pt&&(e.prependedData=F>yt?await zr(r,yt,F-yt):X),e.comment=k?await zr(r,v+H,k):X,mt&&(e.appendedData=S<r.size?await zr(r,S,r.size-S):X),!0}async getEntries(t={}){const e=[];for await(const n of this.getEntriesGenerator(t))e.push(n);return e}async close(){const{reader:t}=this;t.readUint8Array||!t.readable||t.readable.locked||await t.readable.cancel()}},t.configure=t=>{n.assign(it,lt(dt(t)))},t.inflateRaw=(t,e)=>Ht(t,{i:2},e&&e.Gt,e&&e.m)});
1
+ ((t,e)=>{"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).zip={})})(this,function(t){"use strict";const{Array:e,Object:n,String:r,Number:s,BigInt:o,Math:a,Date:i,Map:c,Set:u,Response:f,URL:l,Error:w,Uint8Array:d,Uint16Array:h,Uint32Array:p,DataView:m,Blob:y,Promise:g,TextEncoder:b,TextDecoder:v,crypto:S,btoa:k,TransformStream:x,ReadableStream:z,WritableStream:R,CompressionStream:D,DecompressionStream:F,navigator:C,Worker:A,setTimeout:T,clearTimeout:U}="undefined"!=typeof globalThis?globalThis:this||self,E=4294967295,I=65535,W=255,M=134695760,O=M,L=33639248,P=101075792,B=117853008,H=22,V=20,Z=56,q=61440,N=new i(1980,0,1),_=void 0,j="undefined",K="function",G="string",X=new d,J="strict",Q="balanced",Y="tolerant";function $(t){if(t&&typeof t!=K)throw new w("Invalid option (must be a function)");return t}function tt(t){return typeof t==G&&t.trim()?s(t):t}let et=2;try{typeof C!=j&&C.hardwareConcurrency&&(et=C.hardwareConcurrency)}catch{}const nt={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:et,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof D!=j&&D,DecompressionStream:typeof F!=j&&F},rt="maxWorkers",st=["chunkSize",rt,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],ot=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],at=["baseURI","wasmURI","workerURI","useCompressionStream","useWebWorkers","transferStreams",...st,...ot],it={...nt};function ct(){return it}function ut(t){return ft(t.chunkSize)}function ft(t){return t=tt(t),s.isInteger(t)&&t>=1?a.max(t,64):65536}function lt(t){const e={};for(const n of at){const r=t[n];r!==_&&(e[n]=wt(n,r))}return e}function wt(t,e){if(st.includes(t)){if(e=tt(e),t==rt&&(!s.isInteger(e)||1>e))throw new w("Invalid maxWorkers (must be an integer greater than 0)")}else ot.includes(t)&&$(e);return e}function dt(t){t=t||{};const{CompressionStreamZlib:e,DecompressionStreamZlib:r}=t;if(e===_&&r===_)return t;const s=n.assign({},t);return s.CompressionStreamFallback===_&&(s.CompressionStreamFallback=e),s.DecompressionStreamFallback===_&&(s.DecompressionStreamFallback=r),s}var ht=d,pt=h,mt=Int32Array,yt=new ht([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,0,0,0]),gt=new ht([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,0,0]),bt=new ht([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),vt=(t,e)=>{for(var n=new pt(31),r=0;31>r;++r)n[r]=e+=1<<t[r-1];var s=new mt(n[30]);for(r=1;30>r;++r)for(var o=n[r];o<n[r+1];++o)s[o]=o-n[r]<<5|r;return{b:n,r:s}},St=vt(yt,2),kt=St.b,xt=St.r;kt[28]=258,xt[258]=28;for(var zt=vt(gt,0).b,Rt=new pt(32768),Dt=0;32768>Dt;++Dt){var Ft=(43690&Dt)>>1|(21845&Dt)<<1;Ft=(61680&(Ft=(52428&Ft)>>2|(13107&Ft)<<2))>>4|(3855&Ft)<<4,Rt[Dt]=((65280&Ft)>>8|(255&Ft)<<8)>>1}var Ct=(t,e,n)=>{for(var r=t.length,s=0,o=new pt(e);r>s;++s)t[s]&&++o[t[s]-1];var a,i=new pt(e);for(s=1;e>s;++s)i[s]=i[s-1]+o[s-1]<<1;if(n){a=new pt(1<<e);var c=15-e;for(s=0;r>s;++s)if(t[s])for(var u=s<<4|t[s],f=e-t[s],l=i[t[s]-1]++<<f,w=l|(1<<f)-1;w>=l;++l)a[Rt[l]>>c]=u}else for(a=new pt(r),s=0;r>s;++s)t[s]&&(a[s]=Rt[i[t[s]-1]++]>>15-t[s]);return a},At=new ht(288);for(Dt=0;144>Dt;++Dt)At[Dt]=8;for(Dt=144;256>Dt;++Dt)At[Dt]=9;for(Dt=256;280>Dt;++Dt)At[Dt]=7;for(Dt=280;288>Dt;++Dt)At[Dt]=8;var Tt=new ht(32);for(Dt=0;32>Dt;++Dt)Tt[Dt]=5;var Ut=Ct(At,9,1),Et=Ct(Tt,5,1),It=t=>{for(var e=t[0],n=1;n<t.length;++n)t[n]>e&&(e=t[n]);return e},Wt=(t,e,n)=>{var r=e/8|0;return(t[r]|t[r+1]<<8)>>(7&e)&n},Mt=(t,e)=>{var n=e/8|0;return(t[n]|t[n+1]<<8|t[n+2]<<16)>>(7&e)},Ot=t=>(t+7)/8|0,Lt=(t,e,n)=>((null==e||0>e)&&(e=0),(null==n||n>t.length)&&(n=t.length),new ht(t.subarray(e,n))),Pt=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Bt=(t,e,n)=>{var r=new w(e||Pt[t]);if(r.code=t,w.captureStackTrace&&w.captureStackTrace(r,Bt),!n)throw r;return r},Ht=(t,e,n,r)=>{var s=t.length,o=r?r.length:0;if(!s||e.f&&!e.o)return n||new ht(0);var i=!n,c=i||2!=e.i,u=e.i;i&&(n=new ht(3*s));var f=t=>{var e=n.length;if(t>e){var r=new ht(a.max(2*e,t));r.set(n),n=r}},l=e.f||0,w=e.p||0,d=e.b||0,h=e.o,p=e.d,m=e.l,y=e.n,g=8*s;do{if(!h){l=Wt(t,w,1);var b=Wt(t,w+1,3);if(w+=3,!b){var v=t[(U=Ot(w)+4)-4]|t[U-3]<<8,S=U+v;if(S>s){u&&Bt(0);break}c&&f(d+v),n.set(t.subarray(U,S),d),e.b=d+=v,e.p=w=8*S,e.f=l;continue}if(1==b)h=Ut,p=Et,m=9,y=5;else if(2==b){var k=Wt(t,w,31)+257,x=Wt(t,w+10,15)+4,z=k+Wt(t,w+5,31)+1;w+=14;for(var R=new ht(z),D=new ht(19),F=0;x>F;++F)D[bt[F]]=Wt(t,w+3*F,7);w+=3*x;var C=It(D),A=(1<<C)-1,T=Ct(D,C,1);for(F=0;z>F;){var U,E=T[Wt(t,w,A)];if(w+=15&E,16>(U=E>>4))R[F++]=U;else{var I=0,W=0;for(16==U?(W=3+Wt(t,w,3),w+=2,I=R[F-1]):17==U?(W=3+Wt(t,w,7),w+=3):18==U&&(W=11+Wt(t,w,127),w+=7);W--;)R[F++]=I}}var M=R.subarray(0,k),O=R.subarray(k);m=It(M),y=It(O),h=Ct(M,m,1),p=Ct(O,y,1)}else Bt(1);if(w>g){u&&Bt(0);break}}c&&f(d+131072);for(var L=(1<<m)-1,P=(1<<y)-1,B=w;;B=w){var H=(I=h[Mt(t,w)&L])>>4;if((w+=15&I)>g){u&&Bt(0);break}if(I||Bt(2),256>H)n[d++]=H;else{if(256==H){B=w,h=null;break}var V=H-254;if(H>264){var Z=yt[F=H-257];V=Wt(t,w,(1<<Z)-1)+kt[F],w+=Z}var q=p[Mt(t,w)&P],N=q>>4;if(q||Bt(3),w+=15&q,O=zt[N],N>3&&(Z=gt[N],O+=Mt(t,w)&(1<<Z)-1,w+=Z),w>g){u&&Bt(0);break}c&&f(d+131072);var _=d+V;if(O>d){var j=o-O,K=a.min(O,_);for(0>j+d&&Bt(3);K>d;++d)n[d]=r[j+d]}for(;_>d;++d)n[d]=n[d-O]}}e.o=h,e.p=B,e.b=d,e.f=l,h&&(l=1,e.l=m,e.d=p,e.n=y)}while(!l);return d!=n.length&&i?Lt(n,0,d):n.subarray(0,d)},Vt=new ht(0),Zt=function(){function t(t,e){"function"==typeof t&&(e=t,t={}),this.h=e;var n=t&&t.m&&t.m.subarray(-32768);this.s={i:0,b:n?n.length:0},this.v=new ht(32768),this.p=new ht(0),n&&this.v.set(n)}return t.prototype.e=function(t){if(this.h||Bt(5),this.d&&Bt(4),this.p.length){if(t.length){var e=new ht(this.p.length+t.length);e.set(this.p),e.set(t,this.p.length),this.p=e}}else this.p=t},t.prototype.c=function(t){this.s.i=+(this.d=t||!1);var e=this.s.b,n=Ht(this.p,this.s,this.v);this.h(Lt(n,e,this.s.b),this.d),this.v=Lt(n,this.s.b-32768),this.s.b=this.v.length,this.p=Lt(this.p,this.s.p/8|0),this.s.p&=7},t.prototype.push=function(t,e){this.e(t),this.c(e)},t}(),qt=void 0!==v&&new v;try{qt.decode(Vt,{stream:!0})}catch(t){}class Nt extends x{constructor(t){super({start(e){t.h=t=>{t.length&&e.enqueue(t)}},transform(e){t.push(e)},flush(){t.push(new d(0),!0)}})}}const _t=new c,jt=new c;function Kt(t){return jt.get(t)}const Gt=[[],[],[],[],[],[],[],[]];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)e=1&e?e>>>1^3988292384:e>>>1;Gt[0][t]=e}for(let t=0;256>t;t++)for(let e=1;8>e;e++){const n=Gt[e-1][t];Gt[e][t]=n>>>8^Gt[0][255&n]}const[Xt,Jt,Qt,Yt,$t,te,ee,ne]=Gt;class re{constructor(t){this.S=t||-1}append(t){let e=0|this.S;const n=0|t.length;let r=0;if(n>=8&&t.buffer){const s=new m(t.buffer,t.byteOffset,n),o=n-8;for(;o>=r;r+=8){const t=e^s.getInt32(r,!0),n=s.getInt32(r+4,!0);e=ne[255&t]^ee[t>>>8&255]^te[t>>>16&255]^$t[t>>>24&255]^Yt[255&n]^Qt[n>>>8&255]^Jt[n>>>16&255]^Xt[n>>>24&255]}}for(;n>r;r++)e=e>>>8^Xt[255&(e^t[r])];this.S=e}get(){return~this.S}}class se extends x{constructor(){let t;const e=new re;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new d(4);new m(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function oe(t,e){const n=new d(t.length+e.length);return n.set(t),n.set(e,t.length),n}function ae(t){return new m(t.buffer,t.byteOffset,t.byteLength)}const ie={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=ie.R(n);return 32===r?t.concat(e):ie.D(e,r,0|n,t.slice(0,t.length-1))},bitLength(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+ie.R(n)},F(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,a.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=ie.C(e,t[n-1]&2147483648>>e-1,1)),t},C:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,R:t=>a.round(t/1099511627776)||32,D(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let s=0;s<t.length;s++)r.push(n|t[s]>>>e),n=t[s]<<32-e;const s=t.length?t[t.length-1]:0,o=ie.R(s);return r.push(ie.C(e+o&31,e+o>32?n:r.pop(),1)),r}},ce={bytes:{A(t){const e=ie.bitLength(t)/8,n=new d(e);let r;for(let s=0;e>s;s++)3&s||(r=t[s/4]),n[s]=r>>>24,r<<=8;return n},T(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3&~n||(e.push(r),r=0);return 3&n&&e.push(ie.C(8*(3&n),r)),e}}},ue=class{constructor(t){const e=this;e.blockSize=512,e.U=[1732584193,4023233417,2562383102,271733878,3285377520],e.I=[1518500249,1859775393,2400959708,3395469782],t?(e.W=t.W.slice(0),e.M=t.M.slice(0),e.O=t.O):e.reset()}reset(){const t=this;return t.W=t.U.slice(0),t.M=[],t.O=0,t}update(t){const e=this;"string"==typeof t&&(t=ce.L.T(t));const n=e.M=ie.concat(e.M,t),r=e.O,s=e.O=r+ie.bitLength(t);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const o=new p(n);let a=0;for(let t=e.blockSize+r-(e.blockSize+r&e.blockSize-1);s>=t;t+=e.blockSize)e.P(o.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),e}B(){const t=this;let e=t.M;const n=t.W;e=ie.concat(e,[ie.C(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(a.floor(t.O/4294967296)),e.push(0|t.O);e.length;)t.P(e.splice(0,16));return t.reset(),n}H(t,e,n,r){return t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r}V(t,e){return e<<t|e>>>32-t}P(t){const n=this,r=n.W,s=e(80);for(let e=0;16>e;e++)s[e]=t[e];let o=r[0],i=r[1],c=r[2],u=r[3],f=r[4];for(let t=0;79>=t;t++){16>t||(s[t]=n.V(1,s[t-3]^s[t-8]^s[t-14]^s[t-16]));const e=n.V(5,o)+n.H(t,i,c,u)+f+s[t]+n.I[a.floor(t/20)]|0;f=u,u=c,c=n.V(30,i),i=o,o=e}r[0]=r[0]+o|0,r[1]=r[1]+i|0,r[2]=r[2]+c|0,r[3]=r[3]+u|0,r[4]=r[4]+f|0}},fe={importKey:t=>new fe.Z(ce.bytes.T(t)),N(t,e,n,r){if(n=n||1e4,0>r||0>n)throw new w("invalid params to pbkdf2");const s=1+(r>>5)<<2;let o,a,i,c,u;const f=new ArrayBuffer(s),l=new m(f);let d=0;const h=ie;for(e=ce.bytes.T(e),u=1;(s||1)>d;u++){for(o=a=t.encrypt(h.concat(e,[u])),i=1;n>i;i++)for(a=t.encrypt(a),c=0;c<a.length;c++)o[c]^=a[c];for(i=0;(s||1)>d&&i<o.length;i++)l.setInt32(d,o[i]),d+=4}return f.slice(0,r/8)},Z:class{constructor(t){const e=this,n=e._=ue,r=[[],[]];e.j=[new n,new n];const s=e.j[0].blockSize/32;t.length>s&&(t=(new n).update(t).B());for(let e=0;s>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.j[0].update(r[0]),e.j[1].update(r[1]),e.K=new n(e.j[0])}reset(){const t=this;t.K=new t._(t.j[0]),t.G=!1}update(t){this.G=!0,this.K.update(t)}digest(){const t=this,e=t.K.B(),n=new t._(t.j[1]).update(e).B();return t.reset(),n}encrypt(t){if(this.G)throw new w("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},le=typeof S!=j&&typeof S.getRandomValues==K,we="Invalid password",de="Invalid signature",he=de,pe="zipjs-abort-check-password";function me(t){if(le)return S.getRandomValues(t);throw new w("Crypto API not supported")}const ye=16,ge={name:"PBKDF2"},be=n.assign({hash:{name:"HMAC"}},ge),ve=n.assign({iterations:1e3,hash:{name:"SHA-1"}},ge),Se=["deriveBits"],ke=[8,12,16],xe=[16,24,32],ze=10,Re=[0,0,0,0],De=typeof S!=j,Fe=De&&S.subtle,Ce=De&&typeof Fe!=j,Ae=ce.bytes,Te=class{constructor(t){const e=this;e.X=[[[],[],[],[],[]],[[],[],[],[],[]]],e.X[0][0][0]||e.J();const n=e.X[0][4],r=e.X[1],s=t.length;let o,a,i,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(e.I=[a=t.slice(0),i=[]],o=s;4*s+28>o;o++){let t=a[o-1];(o%s===0||8===s&&o%s===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],o%s===0&&(t=t<<8^t>>>24^c<<24,c=c<<1^283*(c>>7))),a[o]=a[o-s]^t}for(let t=0;o;t++,o--){const e=a[3&t?o:o-4];i[t]=4>=o||4>t?e:r[0][n[e>>>24]]^r[1][n[e>>16&255]]^r[2][n[e>>8&255]]^r[3][n[255&e]]}}encrypt(t){return this.Y(t,0)}decrypt(t){return this.Y(t,1)}J(){const t=this.X[0],e=this.X[1],n=t[4],r=e[4],s=[],o=[];let a,i,c,u;for(let t=0;256>t;t++)o[(s[t]=t<<1^283*(t>>7))^t]=t;for(let f=a=0;!n[f];f^=i||1,a=o[a]||1){let o=a^a<<1^a<<2^a<<3^a<<4;o=o>>8^255&o^99,n[f]=o,r[o]=f,u=s[c=s[i=s[f]]];let l=16843009*u^65537*c^257*i^16843008*f,w=257*s[o]^16843008*o;for(let n=0;4>n;n++)t[n][f]=w=w<<24^w>>>8,e[n][o]=l=l<<24^l>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}Y(t,e){if(4!==t.length)throw new w("invalid aes block size");const n=this.I[e],r=n.length/4-2,s=[0,0,0,0],o=this.X[e],a=o[0],i=o[1],c=o[2],u=o[3],f=o[4];let l,d,h,p=t[0]^n[0],m=t[e?3:1]^n[1],y=t[2]^n[2],g=t[e?1:3]^n[3],b=4;for(let t=0;r>t;t++)l=a[p>>>24]^i[m>>16&255]^c[y>>8&255]^u[255&g]^n[b],d=a[m>>>24]^i[y>>16&255]^c[g>>8&255]^u[255&p]^n[b+1],h=a[y>>>24]^i[g>>16&255]^c[p>>8&255]^u[255&m]^n[b+2],g=a[g>>>24]^i[p>>16&255]^c[m>>8&255]^u[255&y]^n[b+3],b+=4,p=l,m=d,y=h;for(let t=0;4>t;t++)s[e?3&-t:t]=f[p>>>24]<<24^f[m>>16&255]<<16^f[y>>8&255]<<8^f[255&g]^n[b++],l=p,p=m,m=y,y=g,g=l;return s}},Ue=class{constructor(t,e){this.$=t,this.et=e,this.nt=e}reset(){this.nt=this.et}update(t){return this.st(this.$,t,this.nt)}ot(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}return t}it(t){0===(t[0]=this.ot(t[0]))&&(t[1]=this.ot(t[1]))}st(t,e,n){let r;if(!(r=e.length))return[];const s=ie.bitLength(e);for(let s=0;r>s;s+=4){this.it(n);const r=t.encrypt(n);e[s]^=r[0],e[s+1]^=r[1],e[s+2]^=r[2],e[s+3]^=r[3]}return ie.F(e,s)}},Ee=fe.Z;let Ie=De&&Ce&&typeof Fe.importKey==K,We=De&&Ce&&typeof Fe.deriveBits==K;class Me extends x{constructor({password:t,rawPassword:e,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:s=!0}){super({start(){Le(this,t,e,n)},async transform(t,e){const n=this,{password:s,strength:o,ct:a,ready:i}=n;s?(await(async(t,e,n,r)=>{const s=await Be(t,e,n,Ve(r,0,ke[e])),o=Ve(r,ke[e]);if(s[0]!=o[0]||s[1]!=o[1])throw new w(we)})(n,o,s,Ve(t,0,ke[o]+2)),t=Ve(t,ke[o]+2),r?e.error(new w(pe)):a()):await i;const c=new d(t.length-ze-(t.length-ze)%ye);e.enqueue(Pe(n,t,c,0,ze,!0))},async flush(t){const{ut:e,ft:n,lt:r,ready:o}=this;if(n&&e){await o;const a=Ve(r,0,r.length-ze),i=Ve(r,r.length-ze);let c=X;if(a.length){const t=qe(Ae,a);n.update(t);const r=e.update(t);c=Ze(Ae,r)}const u=Ve(Ze(Ae,n.digest()),0,ze);let f=r.length<ze?1:0;for(let t=0;ze>t;t++)f|=u[t]^i[t];if(f&&s)throw new w(he);t.enqueue(c)}}})}}class Oe extends x{constructor({password:t,rawPassword:e,encryptionStrength:n}){super({start(){Le(this,t,e,n)},async transform(t,e){const n=this,{password:r,strength:s,ct:o,ready:a}=n;let i=X;r?(i=await(async(t,e,n)=>{const r=me(new d(ke[e]));return oe(r,await Be(t,e,n,r))})(n,s,r),o()):await a;const c=new d(i.length+t.length-t.length%ye);c.set(i,0),e.enqueue(Pe(n,t,c,i.length,0))},async flush(t){const{ut:e,ft:n,lt:r,ready:s}=this;if(n&&e){await s;let o=X;if(r.length){const t=e.update(qe(Ae,r));n.update(t),o=Ze(Ae,t)}const a=Ze(Ae,n.digest()).slice(0,ze);t.enqueue(oe(o,a))}}})}}function Le(t,e,r,s){n.assign(t,{ready:new g(e=>t.ct=e),password:He(e,r),strength:s-1,lt:X})}function Pe(t,e,n,r,s,o){const{ut:a,ft:i,lt:c}=t;c.length&&(e=oe(c,e));const u=e.length-s;let f;for(n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new d(e)).set(n,0)}return t})(n,r+(u-u%ye)),f=0;u-ye>=f;f+=ye){const t=qe(Ae,Ve(e,f,f+ye));o&&i.update(t);const s=a.update(t);o||i.update(s),n.set(Ze(Ae,s),f+r)}return t.lt=Ve(e,f),n}async function Be(t,r,s,o){t.password=null;const a=await(async(t,e,n,r,s)=>{if(!Ie)return fe.importKey(e);try{return await Fe.importKey("raw",e,n,!1,s)}catch{return Ie=!1,fe.importKey(e)}})(0,s,be,0,Se),i=await(async(t,e,n)=>{if(!We)return fe.N(e,t.salt,ve.iterations,n);try{return await Fe.deriveBits(t,e,n)}catch{return We=!1,fe.N(e,t.salt,ve.iterations,n)}})(n.assign({salt:o},ve),a,8*(2*xe[r]+2)),c=new d(i),u=qe(Ae,Ve(c,0,xe[r])),f=qe(Ae,Ve(c,xe[r],2*xe[r])),l=Ve(c,2*xe[r]);return n.assign(t,{keys:{key:u,wt:f,passwordVerification:l},ut:new Ue(new Te(u),e.from(Re)),ft:new Ee(f)}),l}function He(t,e){return e===_?(t=>{if(typeof b==j){const e=new d((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new b).encode(t)})(t):e}function Ve(t,e,n){return t.subarray(e,n)}function Ze(t,e){return t.A(e)}function qe(t,e){return t.T(e)}class Ne extends x{constructor({password:t,rawPassword:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){je(this,t,e,n)},transform(t,e){const n=this;if(n.password||n.rawPassword){const e=Ke(n,t.subarray(0,12));if(n.password=n.rawPassword=null,0!=(e[11]^n.passwordVerification))throw new w(we);t=t.subarray(12)}r?e.error(new w(pe)):e.enqueue(Ke(n,t))}})}}class _e extends x{constructor({password:t,rawPassword:e,passwordVerification:n}){super({start(){je(this,t,e,n)},transform(t,e){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const e=me(new d(12));e[11]=n.passwordVerification,r=new d(t.length+e.length),r.set(Ge(n,e),0),s=12}else r=new d(t.length),s=0;r.set(Ge(n,t),s),e.enqueue(r)}})}}function je(t,e,r,s){n.assign(t,{password:e,rawPassword:r,passwordVerification:s}),((t,e,r)=>{const s=[305419896,591751049,878082192];if(n.assign(t,{keys:s,ht:new re(s[0]),yt:new re(s[2])}),r)for(let e=0;e<r.length;e++)Xe(t,r[e]);else for(let n=0;n<e.length;n++)Xe(t,e.charCodeAt(n))})(t,e,r)}function Ke(t,e){const n=new d(e.length);for(let r=0;r<e.length;r++)n[r]=Je(t)^e[r],Xe(t,n[r]);return n}function Ge(t,e){const n=new d(e.length);for(let r=0;r<e.length;r++)n[r]=Je(t)^e[r],Xe(t,e[r]);return n}function Xe(t,e){let[,n]=t.keys;t.ht.append([e]);const r=~t.ht.get();n=Ye(a.imul(Ye(n+Qe(r)),134775813)+1),t.yt.append([n>>>24]);const s=~t.yt.get();t.keys=[r,n,s]}function Je(t){const e=2|t.keys[2];return Qe(a.imul(e,1^e)>>>8)}function Qe(t){return 255&t}function Ye(t){return 4294967295&t}function $e(t){if(t instanceof z)return t;const e=t.getReader();return new z({async pull(t){const{value:n,done:r}=await e.read();r?t.close():t.enqueue(n)},cancel:t=>e.cancel(t)})}function tn(t,e){t=$e(t);const n=e?{type:e}:{};if(typeof y.prototype.stream!=K||new y([]).stream()instanceof z)return new f(t).blob().then(t=>e?new y([t],n):t);const r=[];return t.pipeTo(new R({write(t){r.push(t)}})).then(()=>new y(r,n))}function en(t){if(t instanceof R)return t;const e=t.getWriter();return new R({write:t=>e.write(t),close:()=>e.close(),abort:t=>e.abort(t)})}const nn="Invalid uncompressed size",rn=de,sn="deflate-raw",on="gzip",an=[31,139,8];class cn extends x{constructor(t,{chunkSize:e,CompressionStreamFallback:n,CompressionStream:r}){super({});const{compressed:s,encrypted:o,useCompressionStream:a,zipCrypto:i,computeCrc32:c,level:u,deflate64:f,format:l,compressionMethod:w,inputSize:d}=t,h=this;let p,y,g,b=super.readable;const v=l&&Kt(l),S=c&&s&&!f&&!v&&(!o||i)&&!(!a||!r);if(o&&!i||!c||S||(p=new se,b=pn(b,p)),s)if(v)b=mn(b,dn(v.CompressionStream,l,{level:u,chunkSize:e,compressionMethod:w,uncompressedSize:d}));else if(S)g=new un,b=mn(b,new r(on)),b=pn(b,g);else try{b=hn(b,a,{level:u,chunkSize:e},r,n)}catch(t){let e;try{e=new r(on)}catch{throw t}b=mn(b,e),b=pn(b,new un)}o&&(i?b=pn(b,new _e(t)):(y=new Oe(t),b=pn(b,y))),wn(h,b,()=>{o&&!i||!c||(h.crc32=S?g.crc32:new m(p.value.buffer).getUint32(0))})}}class un extends x{constructor(){let t,e=10,n=new d(0);super({transform(t,r){if(e){const n=a.min(e,t.length);if(e-=n,!(t=t.subarray(n)).length)return}const s=n.length+t.length;if(8>=s)return void(n=oe(n,t));const o=s-8,i=a.min(o,n.length);r.enqueue(oe(n.subarray(0,i),t.subarray(0,o-i))),n=oe(n.subarray(i),t.subarray(o-i))},flush(){const e=ae(n);t.crc32=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class fn extends x{constructor(t,{chunkSize:e,DecompressionStreamFallback:n,DecompressionStream:r}){super({});const{zipCrypto:s,encrypted:o,checkCrc32:a,crc32:i,compressed:c,useCompressionStream:u,deflate64:f,format:l,compressionMethod:h,rawBitFlag:p,outputSize:y}=t;let b,v,S=super.readable;if(o&&(s?S=pn(S,new Ne(t)):(v=new Me(t),S=pn(S,v))),c){const t=l&&Kt(l);if(t)S=mn(S,dn(t.DecompressionStream,l,{chunkSize:e,compressionMethod:h,rawBitFlag:p,uncompressedSize:y}));else try{S=hn(S,u,{chunkSize:e,deflate64:f},r,n)}catch(t){if(f||y===_)throw t;let e;try{e=new r(on)}catch{throw t}S=((t,e,n)=>{const r=new re;let s,o,a,i=0,c=!1;const u=new g((t,e)=>{o=t,a=e});u.catch(()=>{}),n||o();const f=new x({start(t){const e=new d(10);e.set(an),t.enqueue(e)},transform(t,e){e.enqueue(t)},async flush(t){c=!0,h();try{await u}finally{p()}const e=new d(8),s=ae(e);s.setUint32(0,r.get(),!0),s.setUint32(4,n,!0),t.enqueue(e)},cancel(t){a(t)}}),l=new x({transform(t,e){r.append(t),i+=t.length,n>i?c&&h():o(),e.enqueue(t)},cancel(t){a(t)}});return t=pn(t,f),pn(t=mn(t,e),l);function h(){p(),s=T(()=>a(new w(nn)),5e3)}function p(){U(s)}})(S,e,y)}S=(t=>{const e=t.getReader();return new z({async pull(t){let n;try{n=await e.read()}catch(t){if(t&&t.message)throw t;const e=new w("Invalid compressed data");throw e.cause=t,e}const{value:r,done:s}=n;s?t.close():t.enqueue(r)},cancel:t=>e.cancel(t)})})(S)}a&&(b=new se,S=pn(S,b)),wn(this,S,()=>{if(a){const t=new m(b.value.buffer);if(i!=t.getUint32(0,!1))throw new w(rn)}})}}const ln=new c;function wn(t,e,r){e=pn(e,new x({flush:r})),n.defineProperty(t,"readable",{get:()=>e})}function dn(t,e,n){if(!t)throw new w("Compression method not supported");return new t(e,n)}function hn(t,e,n,r,s){const o=e&&r?r:s||r,a=n.deflate64?"deflate64-raw":sn;let i;try{i=new o(a,n)}catch(t){if(!e||!s||o==s)throw t;i=new s(a,n)}return mn(t,i)}function pn(t,e){return $e(t).pipeThrough(e)}function mn(t,e){const n=e.writable.getWriter(),r=t.getReader();return(async()=>{try{for(;;){await n.ready;const t=await r.read();if(t.done){await n.close();break}await n.write(t.value)}}catch(t){await(async(t,e)=>{try{await t.abort(e)}catch{}})(n,t),await(async(t,e)=>{try{await t.cancel(e)}catch{}})(r,t)}})(),e.readable}const yn="deflate",gn="inflate";class bn extends x{constructor(t,e){super({});const r=this,{codecType:s}=t;let o;s.startsWith(yn)?o=cn:s.startsWith(gn)&&(o=fn),r.outputSize=0;let a=0;const i=new o(t,e),c=super.readable,u=new x({transform(t,e){t&&t.length&&(a+=t.length,e.enqueue(t))},flush(){n.assign(r,{inputSize:a})}}),f=new x({transform(e,n){if(e&&e.length&&(n.enqueue(e),r.outputSize+=e.length,t.outputSize!==_&&r.outputSize>t.outputSize))throw new w(nn)},flush(){const{crc32:t}=i;n.assign(r,{crc32:t,inputSize:a})}});n.defineProperty(r,"readable",{get:()=>c.pipeThrough(u).pipeThrough(i).pipeThrough(f)})}}class vn extends x{constructor(t){const e=[];let n=0;function r(){const r=new d(t);let s=0;for(;t>s;){const n=e[0],o=t-s;n.length>o?(r.set(n.subarray(0,o),s),e[0]=n.subarray(o),s+=o):(r.set(n,s),s+=n.length,e.shift())}return n-=t,r}s.isFinite(t)&&t>=1||(t=65536),super({transform(s,o){for(e.push(s),n+=s.length;n>t;)o.enqueue(r())},flush(t){n&&t.enqueue(((t,e)=>{const n=new d(e);let r=0;for(const e of t)n.set(e,r),r+=e.length;return n})(e,n))}})}}class Sn{constructor(t,{readable:e,writable:r},{options:s,config:o,gt:a,useWebWorkers:i,transferStreams:u,workerURI:f,createWorker:l},w){const{signal:d}=a;return n.assign(t,{bt:!0,vt:(t.vt||0)+1,readable:e.pipeThrough(new vn(ut(o))).pipeThrough(new kn(a),{signal:d}),writable:r,options:n.assign({},s),workerURI:f,createWorker:l,transferStreams:u,terminate:()=>new g(e=>{const{St:n,bt:r}=t;n?(r?t.kt=e:(n.terminate(),e()),t.xt=null):e()}),zt(){if(t.bt){const{kt:e}=t;e&&(t.kt=null,t.Rt=!0,t.St.terminate(),e()),t.bt=!1,w(t)}}}),((t,e)=>({run:()=>(async({options:t,readable:e,writable:n,zt:r},s)=>{let o;try{if(t.compressed&&!t.format){const e=t.codecType.startsWith(yn),n=e?s.CompressionStreamFallback:s.DecompressionStreamFallback,r=e?s.CompressionStream:s.DecompressionStream;if(t.useCompressionStream){if(n&&n.Dt&&!((t,e)=>{if(!t)return!1;let n=ln.get(t);n||(n=new c,ln.set(t,n));let r=n.get(e);if(r===_){try{new t(e),r=!0}catch{r=!1}n.set(e,r)}return r})(r,sn))try{await void 0}catch{}}else try{await void 0}catch{n&&!n.Dt||(t.useCompressionStream=!0)}}o=new bn(t,s),await e.pipeThrough(o).pipeThrough(new vn(ut(s))).pipeTo(n,{preventClose:!0,preventAbort:!0});const{crc32:r,inputSize:a,outputSize:i}=o;return{crc32:r,inputSize:a,outputSize:i}}catch(t){throw o&&(t.outputSize=o.outputSize),t}finally{r()}})(t,e)}))(t,o)}}class kn extends x{constructor({onstart:t,onprogress:e,size:n,onend:r}){let s=0;super({async start(){t&&await xn(t,n)},async transform(t,r){s+=t.length,e&&await xn(e,s,n),r.enqueue(t)},async flush(){r&&await xn(r,s)}})}}async function xn(t,...e){try{await t(...e)}catch{}}let zn=[];const Rn=[];let Dn,Fn,Cn=0;function An(){!Dn&&Rn.length&&s.isFinite(Fn)&&Fn>=0&&(Dn=T(Un,Fn))}function Tn(){Dn&&(U(Dn),Dn=null)}function Un(){if(Dn=null,Rn.length){const[{resolve:t,stream:e,Ft:r}]=Rn.splice(0,1),s=n.assign({},r,{useWebWorkers:!1,workerURI:_,createWorker:_});t(new Sn({},e,s,En)),An()}}function En(){Tn(),An()}function In(t){const{Ct:e}=t;e&&(U(e),t.Ct=null)}const Wn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Mn(t,e){return On(t,e,!0)}function On(t,e,n){return e&&"cp437"==e.trim().toLowerCase()?(t=>{{let e="";for(let n=0;n<t.length;n++)e+=Wn[t[n]];return e}})(t):new v(e,{ignoreBOM:n}).decode(t)}const Ln="HTTP error ",Pn="HTTP Range not supported",Bn="HTTP resource changed",Hn="Content-Range",Vn="Range",Zn="GET",qn="bytes",Nn=16777216,_n="writable",jn=Symbol();class Kn{constructor(){this.size=0}init(){this.initialized=!0}}class Gn extends Kn{get readable(){return this.createReadable()}createReadable({offset:t=0,size:e,chunkSize:n=ut(ct())}={}){const r=this;let s=0;return n=ft(n),new z({async pull(o){const i=e===_?n:a.min(n,e-s),c=await zr(r,t+s,i);c.length&&o.enqueue(c),s+n>=e||!c.length&&i?o.close():s+=n}})}}class Xn extends Kn{constructor(){super();const t=this,e=new R({write(e){if(!t.initialized)throw new w("Writer not initialized");return t.writeUint8Array((n=e).byteOffset||n.byteLength!=n.buffer.byteLength?new d(n):n);var n}});n.defineProperty(t,_n,{get:()=>e})}writeUint8Array(){}}let Jn,Qn;class Yn extends Gn{constructor(t){super(),n.assign(this,{At:t,size:t.size}),Qn||(Qn=(async()=>{try{const t=new y([new d(3)]).slice(1,2).stream().getReader();let e=0,n=await t.read();for(;!n.done;)e+=n.value.length,n=await t.read();Jn=1==e}catch{Jn=!1}})())}createReadable(t){const{At:e,size:n}=this,{offset:r=0,size:s=n-r}=t||{};return r||n>s?Jn?$e(e.slice(r,r+s).stream()):super.createReadable(t):$e(e.stream())}async readUint8Array(t,e){const n=this,r=t+e,s=t||r<n.size?n.At.slice(t,r):n.At;let o=await s.arrayBuffer();return o.byteLength>e&&(o=o.slice(t,r)),new d(o)}}class $n extends Kn{constructor(t){super();const e=this,r=new x;n.defineProperty(e,_n,{get:()=>r.writable}),e.contentType=t,e.Tt=tn(r.readable,t),e.Tt.catch(()=>{})}getData(){return this.Tt}}class tr extends Gn{constructor(t,e){super(),nr(this,t,e)}async init(){await rr(this,pr,lr),super.init()}createReadable(t){const e=this,{useRangeHeader:n,forceRangeRequests:r,size:o}=e;if((n||r)&&o!==_){const{offset:n=0,size:r=o-n}=t||{};if(r>0&&o>n)return((t,e,n)=>{let r,o=e,i=0,c=n;return new z({start:()=>u(),async pull(t){r||await u();const{value:e,done:n}=await r.read();if(n)throw new w(Pn);const s=e.length>i?e.subarray(0,i):e;i-=s.length,c-=s.length,s.length&&t.enqueue(s),i||(await(async()=>{const t=r;r=_,await t.cancel()})(),c||t.close())},cancel:t=>r&&r.cancel(t)});async function u(){const e=a.min(t.maximumRangeSize,c),n=await pr(Zn,t,ur(t,o,e));if(206!=n.status)throw new w(Pn);const u=n.headers.get(Hn);if(u){const t=s(u.trim().split(/[\s-]+/)[1]);if(!s.isNaN(t)&&t!=o)throw new w(Pn)}cr(t,n),ir(t,n),o+=e,i=e,r=n.body.getReader()}})(e,n,a.min(r,o-n))}return super.createReadable(t)}readUint8Array(t,e){return sr(this,t,e,pr,lr)}}class er extends Gn{constructor(t,e){super(),nr(this,t,e)}async init(){await rr(this,mr,wr),super.init()}readUint8Array(t,e){return sr(this,t,e,mr,wr)}}function nr(t,e,r){const{preventHeadRequest:s,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c=!0,maximumRangeSize:u=Nn,fetch:f}=r;delete(r=n.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.checkResourceChanges,delete r.maximumRangeSize,delete r.useXHR,delete r.fetch,n.assign(t,{url:e,options:r,preventHeadRequest:s,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c,maximumRangeSize:u,fetch:f})}async function rr(t,e,n){const{url:r,preventHeadRequest:s,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i}=t;if((t=>{const{baseURI:e}=ct(),{protocol:n}=new l(t,e);return"http:"==n||"https:"==n})(r)&&(o||a)&&(typeof s==j||s)){const r=await e(Zn,t,ur(t,i?-22:void 0)),s=r.headers.get("Accept-Ranges");if(!(a||s&&s.toLowerCase()==qn))throw new w(Pn);{if(i){const e=new d(await r.arrayBuffer());206==r.status&&e.length==H&&(t.Ut=e)}ir(t,r);const s=or(r);s===_?await hr(t,e,n):t.size=s}}else await hr(t,e,n)}async function sr(t,e,n,r,o){const{useRangeHeader:a,forceRangeRequests:i,Ut:c,size:u,options:f}=t;if(a||i){if(c&&e==u-H&&n==H)return c;if(u>e&&0!==n){e+n>u&&(n=u-e);const o=await r(Zn,t,ur(t,e,n));if(206!=o.status)throw new w(Pn);const a=o.headers.get(Hn);if(a){const t=s(a.trim().split(/[\s-]+/)[1]);if(!s.isNaN(t)&&t!=e)throw new w(Pn)}cr(t,o),ir(t,o);const i=new d(await o.arrayBuffer());if(i.length!=n)throw new w(Pn);return i}return X}{const{data:r}=t;return r||await o(t,f),t.data.subarray(e,e+n)}}function or(t){const e=t.headers.get(Hn);if(e){const t=e.trim().split(/\s*\/\s*/)[1];if(t&&"*"!=t){const e=s(t);if(!s.isNaN(e))return e}}}function ar({headers:t}){return{Et:t.get("Etag")||_,lastModified:t.get("Last-Modified")||_}}function ir(t,e){const{checkResourceChanges:n,It:r}=t;n&&!r&&206==e.status&&(t.It=ar(e))}function cr(t,e){const{checkResourceChanges:r,It:s,size:o}=t;if(r){const t=or(e);if(t!==_&&o!==_&&t!=o)throw new w(Bn);if(s){const t=ar(e);if(n.entries(s).some(([e,n])=>n!==_&&t[e]!==_&&n!=t[e]))throw new w(Bn)}}}function ur(t,e=0,r=1){return n.assign({},fr(t),{[Vn]:qn+"="+(0>e?e:e+"-"+(e+r-1))})}function fr({options:t}){const{headers:e}=t;if(e)return Symbol.iterator in e?n.fromEntries(e):e}async function lr(t){await dr(t,pr)}async function wr(t){await dr(t,mr)}async function dr(t,e){const n=await e(Zn,t,fr(t));t.data=new d(await n.arrayBuffer()),t.size=t.data.length}async function hr(t,e,n){if(t.preventHeadRequest)await n(t,t.options);else{const r=await e("HEAD",t,fr(t)),o=r.headers.get("Content-Length");o&&!r.headers.get("Content-Encoding")?t.size=s(o):await n(t,t.options)}}async function pr(t,{fetch:e=fetch,options:r,url:s},o){const a=await e(s,n.assign({},r,{method:t,headers:o}));if(400>a.status)return a;throw 416==a.status?new w(Pn):new w(Ln+(a.statusText||a.status))}function mr(t,{url:e},r){return new g((s,o)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(400>a.status){const t=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(e=>{const n=e.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,t=>t.toUpperCase()),t.push(n)}),s({status:a.status,arrayBuffer:()=>a.response,headers:new c(t)})}else o(416==a.status?new w(Pn):new w(Ln+(a.statusText||a.status)))},!1),a.addEventListener("error",t=>o(t.detail?t.detail.error:new w("Network error")),!1),a.open(t,e),r)for(const t of n.entries(r))a.setRequestHeader(t[0],t[1]);a.responseType="arraybuffer",a.send()})}class yr extends Gn{constructor(t,e={}){super(),n.assign(this,{url:t,reader:e.useXHR&&!e.fetch?new er(t,e):new tr(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(t){return this.reader.createReadable(t)}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class gr extends Gn{constructor(t){super(),this.Wt=t}async init(){const t=this;t.Mt=0;const e=t.Wt=await g.all(t.Wt.map(xr));t.Ot=e.map(e=>{const n=t.size;return t.size+=e.size,n}),super.init()}Lt(t){const{Ot:e,size:n}=this,r=e[t];return r===_?n:r}async readUint8Array(t,e){const n=this,{Wt:r}=this;let s,o=0,i=t;for(;r[o]&&i>=r[o].size;)i-=r[o].size,o++;const c=r[o];if(c){const r=c.size;if(i+e>r){const o=r-i;s=oe(await zr(c,i,o),await n.readUint8Array(t+o,e-o))}else s=await zr(c,i,e)}else s=X;return n.Mt=a.max(o,n.Mt),s}}class br extends Kn{constructor(t,e=4294967295){super();const r=this;let s,o,a;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const i=new R({async write(e){if(e===jn)return void(a&&await u());const{availableSize:n}=r;if(a)e.length<n?await c(e):(await c(e.subarray(0,n)),await u(),e.length>n&&await this.write(e.subarray(n)));else{const{value:n,done:i}=await t.next();if(i&&!n)throw new w("Writer iterator completed too soon");s=n,s.size=0,s.maxSize&&(r.maxSize=s.maxSize),r.availableSize=r.maxSize,await kr(s),o=n.writable,a=o.getWriter(),await this.write(e)}},async close(){a&&(await a.ready,await f())},async abort(t){a&&await a.abort(t)}});async function c(t){const e=t.length;e&&(await a.ready,await a.write(t),s.size+=e,r.availableSize-=e)}async function u(){await f(),r.diskOffset+=s.size,r.diskNumber++,a=null,r.availableSize=r.maxSize}async function f(){await a.close()}n.defineProperty(r,_n,{get:()=>i})}async closeDisk(){const t=this.writable.getWriter();try{await t.ready,await t.write(jn)}finally{t.releaseLock()}}}class vr{constructor(t){return e.isArray(t)&&(t=new gr(t)),(t instanceof z||typeof t.getReader==K)&&(t={readable:$e(t)}),t}}class Sr{constructor(t){return t.writable===_&&typeof t.next==K&&(t=new br(t)),(t instanceof R||typeof t.getWriter==K)&&(t={writable:en(t)}),t.size===_&&(t.size=0),t}}async function kr(t,e){if(!t.init||t.initialized)return g.resolve();await t.init(e)}async function xr(t){return t=new vr(t),await kr(t),t.size!==_&&t.readUint8Array||(t=new Yn(await tn(t.readable)),await kr(t)),t}function zr(t,e,n){return t.readUint8Array(e,n)}const Rr="filename",Dr="rawFilename",Fr="comment",Cr="rawComment",Ar="uncompressedSize",Tr="compressedSize",Ur="offset",Er="diskNumberStart",Ir="lastModDate",Wr="rawLastModDate",Mr="lastAccessDate",Or="rawLastAccessDate",Lr="creationDate",Pr="rawCreationDate",Br=[Rr,Dr,Ar,Tr,Ir,Wr,Fr,Cr,Mr,Or,Lr,Pr,Ur,Er,"internalFileAttributes","externalFileAttributes","internalFileAttribute","externalFileAttribute","msdosAttributesRaw","msdosAttributes","msDosCompatible","zip64","encrypted","version","versionMadeBy","zipCrypto","directory","executable","symlink","compressionMethod","signature","crc32","extraField","extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid","unixMode","unixExternalUpper","setuid","setgid","sticky","bitFlag","rawBitFlag","filenameLength","extraFieldLength","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class Hr{constructor(t){Br.forEach(e=>this[e]=t[e])}}const Vr="File format is not recognized",Zr="Encryption method not supported",qr="Compression method not supported",Nr="Split zip file",_r="malformed extra field",jr="wrapped entries count",Kr="appended data",Gr="prepended data",Xr="mismatched zip64 end of central directory record",Jr=/^[a-zA-Z]:/,Qr="utf-8",Yr="cp437",$r=[[Ar,E],[Tr,E],[Ur,E],[Er,I]],ts={[I]:{Pt:Es,bytes:4},[E]:{Pt:Is,bytes:8}},es=o(s.MAX_SAFE_INTEGER);class ns{constructor(t,e){n.assign(this,{reader:t,options:e})}async getData(t,e,n,r={}){const o=this,i=ct(),{reader:c,index:u,offset:f,diskNumberStart:h,extraFieldAES:p,extraFieldZip64:m,compressionMethod:y,bitFlag:b,rawBitFlag:v,crc32:S,rawLastModDate:k,uncompressedSize:x,compressedSize:z}=o,{dataDescriptor:D}=b,F=e.localDirectory={},C=e.warnings=[],A=ds(c,h)+f,U=await zr(c,A,30),E=ae(U);let I=Ds(o,r,"password"),M=Ds(o,r,"rawPassword");const L=Ds(o,r,"passThrough");if(((t,e)=>{if(t&&typeof t!=G||e&&!(e instanceof d))throw new w("Invalid password (password must be a string, rawPassword must be a Uint8Array)")})(I,M),I=I&&I.length&&I,M=M&&M.length&&M,p&&99!=p.originalCompressionMethod)throw new w(qr);if(30>U.length||67324752!=Es(E,0))throw new w("Local file header not found");as(F,E,4);const{extraFieldLength:P,filenameLength:B}=F,H=F.dataOffset=A+30+B+P,V=Ds(o,r,"checkLocalDirectory"),Z=ms(r,o.options),q=((t,e)=>t===_?e!=Y:!!t)(V,Z),N=((t,e)=>t===_?e==J:!!t)(V,Z);let j=X;if(N&&(B||P)){const t=await zr(c,A+30,B+P);j=t.subarray(0,B),F.rawExtraField=t.subarray(B)}else F.rawExtraField=P?await zr(c,A+30+B,P):X;N&&(F.rawFilename=j),is(o,F,E,4,!0)&&zs(C,_r),((t,e,n,r,s)=>{const{rawFilename:o}=t,a=!s,i=t.Bt&&!(8192&~e.rawBitFlag);!r||i||n.length==o.length&&!n.some((t,e)=>t!=o[e])||xs(a,s,"mismatched local file header (filename)"),(2057&e.rawBitFlag)!=(2057&t.rawBitFlag)&&xs(a,s,"mismatched local file header (general purpose bit flag)"),e.compressionMethod!=t.compressionMethod&&xs(a,s,"mismatched local file header (compression method)"),e.bitFlag.dataDescriptor||i||!(e.crc32||e.compressedSize||e.uncompressedSize)||e.crc32==t.crc32&&e.compressedSize==t.compressedSize&&e.uncompressedSize==t.uncompressedSize||xs(a,s,"mismatched local file header (crc32 or sizes)")})(o,F,j,N,q?_:C);const{lastAccessDate:Q,creationDate:$,uid:tt,gid:et}=F;Q&&(e.lastAccessDate=Q),$&&(e.creationDate=$),tt!==_&&e.uid===_&&(e.uid=tt),et!==_&&e.gid===_&&(e.gid=et);const nt=o.encrypted&&F.encrypted&&!L,rt=nt&&!p;if(L||(e.zipCrypto=rt),nt&&!(64&~F.rawBitFlag))throw new w(Zr);const st=L?_:(t=>_t.get(t))(y);if(0!=y&&8!=y&&9!=y&&!st&&!L)throw new w(qr);if(nt){if(!rt&&(1>p.strength||p.strength>3))throw new w(Zr);if(!I&&!M)throw new w("File contains encrypted entry")}if(H+z>c.size)throw new w("Entry data out of bounds");const ot=z,at=$e(c.createReadable({offset:H,size:ot})),it=(t=>{if(t&&(typeof t.addEventListener!=K||"boolean"!=typeof t.aborted))throw new w("Invalid signal (must be an AbortSignal instance)");return t||_})(Ds(o,r,"signal")),ut=Ds(o,r,"checkPasswordOnly");let ft=Ds(o,r,"checkOverlappingEntry");const lt=Ds(o,r,"checkOverlappingEntryOnly");lt&&(ft=!0);const{onstart:wt,onprogress:dt,onend:ht}=r,pt=0!=y&&!L,mt=L?z:x,yt=9==y;let gt=Ds(o,r,"useCompressionStream");yt&&(gt=!1);const bt=Ds(o,r,"checkCrc32"),vt=(bt===_?Ds(o,r,"checkSignature"):bt)&&!L&&(!nt||rt||p&&1==p.vendorVersion),St={options:{codecType:gn,password:I,rawPassword:M,zipCrypto:rt,encryptionStrength:p&&p.strength,checkCrc32:vt,checkAuthenticationCode:Ds(o,r,"checkAuthenticationCode"),passwordVerification:rt&&(D?k>>>8&W:S>>>24&W),outputSize:mt,crc32:S,compressed:pt,encrypted:nt,useWebWorkers:Ds(o,r,"useWebWorkers"),useCompressionStream:gt,transferStreams:Ds(o,r,"transferStreams"),deflate64:yt,format:st?st.format:_,codecURI:st?st.codecURI:_,compressionMethod:y,rawBitFlag:v,checkPasswordOnly:ut},config:i,gt:{signal:it,size:ot,onstart:wt,onprogress:dt,onend:ht}};let kt,xt;ft&&await(async({reader:t,Ht:e,index:n,offset:r,crc32:s,compressedSize:o,uncompressedSize:a,dataOffset:i,dataDescriptor:c,extraFieldZip64:u,Vt:f})=>{let l=0;if(c&&(l=u?20:12),l){const n=await zr(t,i+o,l+4),r=ae(n);let c=n.length==l+4&&Es(r,0)==O;if(c){const t=ws(r,4,u);(e.encrypted&&!e.zipCrypto||t.crc32==s)&&t.compressedSize==o&&t.uncompressedSize==a?l+=4:c=!1}if(n.length>=l){const t=ws(r,c?4:0,u);t.signature=c,e.localDirectory.dataDescriptor=t}}const d={start:r,end:i+o+l,Ht:e};for(const[t,e]of f)if(t!=n&&d.start<e.end&&e.start<d.end){const t=new w("Overlapping entry found");throw t.overlappingEntry=e.Ht,t}f.set(n,d)})({reader:c,Ht:e,index:u,offset:A,crc32:S,compressedSize:z,uncompressedSize:x,dataOffset:H,dataDescriptor:D||F.bitFlag.dataDescriptor,extraFieldZip64:m||F.extraFieldZip64,Vt:n});try{if(!lt){ut&&(t=new R),t=new Sr(t),await kr(t,((t,e,n)=>a.min(t,n?1032*e:e))(mt,z,pt)),({writable:kt}=t);const{outputSize:e}=await async function(t,e){const{options:n,config:r}=e,{transferStreams:o,useWebWorkers:a,useCompressionStream:i,compressed:c,checkCrc32:u,computeCrc32:f,encrypted:d,format:h,codecURI:p}=n,{workerURI:m,createWorker:y,maxWorkers:b}=r;h&&(p&&(n.codecURI=((t,e)=>{try{return new l(t,e).toString()}catch{return t}})(p,r.baseURI)),await(async(t,e)=>{!jt.has(t)&&e&&((t,e)=>{const{CompressionStream:n,DecompressionStream:r}=e;if(typeof n!=K&&typeof r!=K)throw new w("Invalid codec module");jt.set(t,{CompressionStream:n,DecompressionStream:r})})(t,await(import(e)))})(h,n.codecURI)),e.transferStreams=!h&&(o||o===_&&r.transferStreams);const v=!(c||u||f||d),S=h===_||!!n.codecURI;return e.useWebWorkers=!v&&S&&(a||a===_&&r.useWebWorkers),e.workerURI=e.useWebWorkers&&m?m:_,e.createWorker=e.useWebWorkers&&y?y:_,n.useCompressionStream=i||i===_&&r.useCompressionStream,(await(async()=>{const n=zn.find(t=>!t.bt);if(n)return In(n),new Sn(n,t,e,k);if(zn.length<b){const n={Zt:Cn};return Cn++,zn.push(n),new Sn(n,t,e,k)}return new g(n=>{Rn.push({resolve:n,stream:t,Ft:e}),Fn=r.workerStarvationTimeout,An()})})()).run();function k(t){if(Tn(),Rn.length){const[{resolve:e,stream:n,Ft:r}]=Rn.splice(0,1);e(new Sn(t,n,r,k)),An()}else t.St?(In(t),((t,e)=>{const{config:n}=e,{terminateWorkerTimeout:r}=n;s.isFinite(r)&&r>=0&&(t.Rt?t.Rt=!1:t.Ct=T(async()=>{zn=zn.filter(e=>e!=t);try{await t.terminate()}catch{}},r))})(t,e)):zn=zn.filter(e=>e!=t)}}({readable:at,writable:kt},St);if(t.size+=e,e!=mt)throw new w(nn)}}catch(e){if(e.outputSize!==_&&(t.size+=e.outputSize),!ut||e.message!=pe)throw xt=e,e}finally{const e=!(t=>!(!t||!t.getData))(t)&&Ds(o,r,"preventClose");if(!e&&kt&&!kt.locked){const t=kt.getWriter();if(xt)try{await t.abort(xt)}catch{}else await t.close()}}return ut||lt?_:t.getData?t.getData():kt}}function rs(t){const e=a.min(t.byteLength,1024)-3;for(let n=0;e>n;n++)if(134630224==Es(t,n))return!0;return!1}function ss(t,e,n){let r=0;for(;n+46<=e.length&&Es(t,n)==L;)n+=46+Us(t,n+28)+Us(t,n+30)+Us(t,n+32),r++;return r%65536?0:r}function os(t){if(t.length>=6){const e=ae(t);if(84233040==Es(e,0)){const n=Us(e,4);if(6+n<=t.length)return t.subarray(6,6+n)}}}function as(t,e,r){const s=t.rawBitFlag=Us(e,r+2),o=!(1&~s),a=Es(e,r+6);n.assign(t,{encrypted:o,version:Us(e,r),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:!(2048&~s)},rawLastModDate:a,lastModDate:Cs(a),filenameLength:Us(e,r+22),extraFieldLength:Us(e,r+24)})}function is(t,e,r,s,o){const{rawExtraField:a}=e,u=e.extraField=new c,f=ae(a);let l=0,d=!1;try{for(;l<a.length;){const t=Us(f,l),e=Us(f,l+2);u.set(t,{type:t,data:a.slice(l+4,l+4+e)}),l+=4+e}}catch{d=!0}l>a.length&&(d=!0);const h=Us(r,s+4);n.assign(e,{signature:Es(r,s+10),crc32:Es(r,s+10),compressedSize:Es(r,s+14),uncompressedSize:Es(r,s+18)});const p=u.get(1);p&&(((t,e)=>{e.zip64=!0;const n=ae(t.data),r=$r.filter(([t,n])=>e[t]==n),s=r.reduce((t,[,e])=>t+ts[e].bytes,0);if(t.data.length<s)throw new w("Zip64 extra field not found");for(let s=0,o=0;s<r.length;s++){const[a,i]=r[s],c=ts[i];e[a]=t[a]=c.Pt(n,o),o+=c.bytes}})(p,e),e.extraFieldZip64=p);const m=u.get(28789);m&&(cs(m,Rr,Dr,e,t),e.extraFieldUnicodePath=m);const y=u.get(25461);y&&(cs(y,Fr,Cr,e,t),e.extraFieldUnicodeComment=y);const g=u.get(39169);g&&g.data.length>=7?(((t,e,r)=>{const s=ae(t.data),o=Ts(s,4);n.assign(t,{vendorVersion:Ts(s,0),vendorId:Ts(s,2),strength:o,originalCompressionMethod:r,compressionMethod:Us(s,5)}),e.compressionMethod=t.compressionMethod,1!=t.vendorVersion&&(e.crc32=_)})(g,e,h),e.extraFieldAES=g):e.compressionMethod=h;const b=u.get(13);b&&(us(b,e),e.extraFieldPkwareUnix=b);const v=u.get(22613);v&&(us(v,e),e.extraFieldUnixType1=v);const S=u.get(10);S&&(((t,e)=>{const r=ae(t.data);let s,o=4;try{for(;o<t.data.length&&!s;){const e=Us(r,o),n=Us(r,o+2);1==e&&(s=t.data.slice(o+4,o+4+n)),o+=4+n}}catch{}if(s&&24==s.length){const r=ae(s),o=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),i=r.getBigUint64(16,!0);n.assign(t,{rawLastModDate:o,rawLastAccessDate:a,rawCreationDate:i});const c={lastModDate:As(o),lastAccessDate:As(a),creationDate:As(i)};n.assign(t,c),n.assign(e,c,{rawLastAccessDate:a,rawCreationDate:i})}})(S,e),e.extraFieldNTFS=S);const k=u.get(30805);let x;if(k&&(x=fs(k,e,!1),e.extraFieldUnix=k),!x){const t=u.get(30837);t&&(fs(t,e,!0),e.extraFieldInfoZip=t)}const z=u.get(21589);z&&(((t,e,n)=>{if(!t.data.length)return;const r=ae(t.data),s=Ts(r,0),o=[],a=[];n?(1&~s||(o.push(Ir),a.push(Wr)),2&~s||(o.push(Mr),a.push(Or)),4&~s||(o.push(Lr),a.push(Pr))):5>t.data.length||(o.push(Ir),a.push(Wr));let c=1;o.forEach((n,s)=>{if(t.data.length>=c+4){const o=Es(r,c);e[n]=t[n]=new i(1e3*(0|o));const u=a[s];t[u]=o}c+=4})})(z,e,o),e.extraFieldExtendedTimestamp=z);const R=u.get(6534);return R&&(e.extraFieldUSDZ=R),d}function cs(t,e,r,s,o){if(5>t.data.length)return void(t.valid=!1);const a=ae(t.data),i=new re;i.append(o[r]);const c=ae(new d(4));c.setUint32(0,i.get(),!0);const u=Es(a,1),f=Ts(a,0);n.assign(t,{version:f,[e]:Mn(t.data.subarray(5)),valid:1==f&&!o.bitFlag.languageEncodingFlag&&u==Es(c,0)}),t.valid&&(s[e]=t[e],s[e+"UTF8"]=!0)}function us(t,e){if(8>t.data.length)return;const r=ae(t.data),s={lastAccessDate:new i(1e3*(0|Es(r,0))),lastModDate:new i(1e3*(0|Es(r,4)))};12>t.data.length||(s.uid=Us(r,8),s.gid=Us(r,10)),n.assign(t,s),n.assign(e,s)}function fs(t,e,r){try{const s=ae(t.data);let o,a;if(r){let e=0;const r=Ts(s,e++),i=Ts(s,e++);o=ls(t.data.subarray(e,e+i)),e+=i;const c=Ts(s,e++);a=ls(t.data.subarray(e,e+c)),n.assign(t,{version:r,uid:o,gid:a})}else 4>t.data.length||(o=Us(s,0),a=Us(s,2),n.assign(t,{uid:o,gid:a}));return o!==_&&(e.uid=o),a!==_&&(e.gid=a),o!==_||a!==_}catch{}}function ls(t){const e=new d(4);return e.set(t,0),new m(e.buffer,e.byteOffset,4).getUint32(0,!0)}function ws(t,e,n){const r=Es(t,e);let s,o;return n?(s=Is(t,e+4),o=Is(t,e+12)):(s=Es(t,e+4),o=Es(t,e+8)),{crc32:r,compressedSize:s,uncompressedSize:o}}function ds(t,e){return t.Lt?t.Lt(e):0}async function hs(t){return Es(ae(await zr(t,0,4)))}function ps(t){return t===J||t===Q||t===Y}function ms(t,e){return ys(t,ys(e,Q))}function ys(t,e){const n=t.strictness;if(n!==_){if(!ps(n))throw new w("Invalid strictness (must be 'strict', 'balanced' or 'tolerant')");return n}const r=t.checkAmbiguity;return r===_?e:r?J:e==Y?Y:Q}function gs(t,e){if(e==Y)return!1;const n=t.split("/");return n.length>1&&""===n[n.length-1]&&n.pop(),!!(n.includes("..")||t.startsWith("/")||t.startsWith("\\\\")||Jr.test(t))||e==J&&(n.includes(".")||n.includes(""))}async function*bs(t,e){const n=t.size-e,r=await zr(t,n,e),s=ae(r);for(let t=r.length-H;t>=0;t--)101010256==Es(s,t)&&(yield[s,n,r,t,n+t])}function vs(t,e,n){return{offset:n,buffer:t.slice(e,e+H).buffer}}async function Ss(t,e,n,r,s,o,a){const i=Us(e,r+10),c=Es(e,r+12),u=Es(e,r+16);if(i==I||c==E||u==E)return await ks(t,e,n,s-V,o,a)==B?2:0;if(!i&&!c)return 1;const f=Us(e,r+6);for(const r of[s-c,ds(t,f)+u])if(await ks(t,e,n,r,o,a)==L)return 2;return 0}async function ks(t,e,n,r,s,o){return 0>r||r+4>s?_:n>r?o.count>0?(o.count--,Es(ae(await zr(t,r,4)),0)):_:Es(e,r-n)}function xs(t,e,n){t?Rs(n):zs(e,n)}function zs(t,e,n){if(!t.some(t=>t.reason==e)){const r={reason:e};n!==_&&(r.filename=n),t.push(r)}}function Rs(t){const e=new w("Ambiguous archive");throw e.reason=t,e}function Ds(t,e,n){return e[n]===_?t.options[n]:e[n]}function Fs(t,e,n){return $(Ds(t,e,n))}function Cs(t){const e=(4294901760&t)>>16,n=t&I,r=new i(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&n)>>11,(2016&n)>>5,2*(31&n),0);return N>r?N:r}function As(t){return new i(s(t/o(1e4)-o(116444736e5)))}function Ts(t,e){return t.getUint8(e)}function Us(t,e){return t.getUint16(e,!0)}function Es(t,e){return t.getUint32(e,!0)}function Is(t,e){const n=t.getBigUint64(e,!0);if(n>es)throw new w("64-bit value exceeds Number.MAX_SAFE_INTEGER");return s(n)}(t=>{const e=lt(dt(t));n.assign(nt,e),n.assign(it,e)})({workerURI:null,wasmURI:null,DecompressionStreamFallback:class extends Nt{constructor(t){(t=>{if("deflate-raw"!=t)throw new TypeError("Unsupported compression format: "+t)})(t),super(new Zt)}}}),t.BlobReader=Yn,t.BlobWriter=$n,t.Data64URIWriter=class extends Xn{constructor(t){super(),n.assign(this,{contentType:t,data:"data:"+(t||"")+";base64,",qt:""})}writeUint8Array(t){const e=this;let n,s=e.qt;const o=e.qt.length;for(e.qt="",n=0;n<3*a.floor((o+t.length)/3)-o;n++)s+=r.fromCharCode(t[n]);for(;n<t.length;n++)e.qt+=r.fromCharCode(t[n]);s.length>2?e.data+=k(s):e.qt=s+e.qt}getData(){return this.data+k(this.qt)}},t.HttpRangeReader=class extends yr{constructor(t,e={}){super(t,n.assign({},e,{useRangeHeader:!0}))}},t.TextWriter=class extends $n{constructor(t){super(),n.assign(this,{encoding:t,Nt:!t||"utf-8"==t.toLowerCase()})}async getData(){const{encoding:t,Nt:e}=this,n=await super.getData();return n.text&&e?n.text():((t,e)=>On(t,e,!1))(new d(await n.arrayBuffer()),t)}},t.ZipReader=class{constructor(t,e={}){n.assign(this,{reader:new vr(t),options:e,Vt:new c})}async*getEntriesGenerator(t={}){const e=this;let{reader:r}=e;if(await kr(r),r.size!==_&&r.readUint8Array||(r=new Yn(await tn(r.readable)),await kr(r)),r.size<H)throw new w(Vr);const o=e.warnings=[],i=ms(t,e.options),c=i==J,f=i!=Y,l=((t,e)=>{if(t!==_){const e=tt(t);if("number"!=typeof e||s.isNaN(e)||0>e)throw new w("Invalid maxAppendedDataSize (must be a number greater than or equal to 0)");return e}return e==J?0:e==Y?1/0:I})(Ds(e,t,"maxAppendedDataSize"),i),d=((t,e)=>{if(t===_)return e;if(!ps(t))throw new w("Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')");return t})(Ds(e,t,"filenameValidation"),i),h=Ds(e,t,"normalizeFilename"),{_t:p,jt:m}=await(async(t,e,n)=>{const{size:r}=t,s=a.min(r,65557),o={count:64};let i,c,u=0;for await(const[n,a,f,l,w]of bs(t,s)){const s=Us(n,l+20);if(w+H+s==r){const s=await Ss(t,n,a,l,w,r,o);if(2==s){if(i||(i=vs(f,l,w)),u++,!e||u>1)break}else 1!=s||c||(c=vs(f,l,w))}}return i||(i=c),i||(i=await(async(t,e,n)=>{const{size:r}=t,s=a.min(r,e==1/0?r:65557+e);let o,i;for await(const[e,a,c,u,f]of bs(t,s)){const s=vs(c,u,f);o||(o=s);const l=await Ss(t,e,a,u,f,r,n);if(2==l)return s;1!=l||i||(i=s)}return i||o})(t,n,o)),{_t:i,jt:u}})(r,f,l);if(!p)throw await(async t=>await hs(t)==M)(r)?new w(Nr):new w("End of central directory not found");f&&m>1&&Rs("multiple end of central directory records");const y=ae(p);let g=Es(y,12),b=Es(y,16);const v=p.offset,S=Us(y,20),k=v+H+S,z=r.size-k;z>l&&Rs(Kr),z>0&&zs(o,Kr);let R=Us(y,4);const D=r.Mt||0;let F,C,A,T,U=Us(y,6),O=Us(y,10),N=0,j=Z;const K=b==E||g==E||O==I||U==I;if(b!=E&&U!=I&&(b+=ds(r,U)),K){const t=p.offset<V?X:await zr(r,p.offset-V,V),e=ae(t);if(t.length==V&&Es(e,0)==B){b=ds(r,Es(e,4))+Is(e,8);let t=await zr(r,b,Z),s=ae(t);const i=p.offset-V-Z;if((t.length<Z||Es(s,0)!=P)&&b!=i&&i>=0){const e=b;b=i,b>e&&(N=b-e),t=await zr(r,b,Z),s=ae(t)}if(t.length<Z||Es(s,0)!=P)throw new w("End of Zip64 central directory locator not found");if(C=!0,A=Is(s,4)>44,A){const t=a.min(Is(s,4)-44,r.size-b-Z);t>0&&(j+=t,T=(t=>{const e={rawExtensibleData:t};if(t.length>=28){const r=ae(t),s=Us(r,26);n.assign(e,{compressionMethod:Us(r,0),compressedSize:Is(r,2),uncompressedSize:Is(r,10),encryptionAlgorithm:Us(r,18),bitLength:Us(r,20),flags:Us(r,22),hashAlgorithm:Us(r,24),hashData:t.subarray(28,28+s)})}return e})(await zr(r,b+Z,t)))}R==I?R=Es(s,16):R!=Es(s,16)&&xs(c,o,Xr),U==I?U=Es(s,20):U!=Es(s,20)&&xs(c,o,Xr),O==I?O=Is(s,32):O!=Is(s,32)&&xs(c,o,Xr),g==E?g=Is(s,40):g!=Is(s,40)&&xs(c,o,Xr),b=ds(r,U)+Is(s,48)+N}}let G=g;const Q=p.offset-(C?j+V:0);if(b<r.size||(N=r.size-b-g-H,b=r.size-g-H),D!=R)throw new w(Nr);if(0>b)throw new w(Vr);let $=0,et=await zr(r,b,g),nt=ae(et);if(g){if(4>et.length)throw new w(Vr);const t=Q-g;if(b!=t&&U==R){let e=!(Es(nt,$)==L||T&&T.compressedSize||rs(nt));if(e||0>t||t+4>r.size||(e=Es(ae(await zr(r,t,4)),0)==L),e){const e=b;b=t,b>e&&(N+=b-e),et=await zr(r,b,g),nt=ae(et)}}}const rt=Q-b;if(g==rt||0>rt||U!=R||(g=rt,et=await zr(r,b,g),nt=ae(et)),0>b||b>=r.size)throw new w(Vr);e.directoryOffset=b,e.directoryLength=G;const st=Fs(e,t,"decryptCentralDirectory");let ot,at;if(st&&O&&et.length>=4&&Es(nt,0)!=L&&(A||rs(nt))){const t=((t,e,n)=>{const r=t&&t.compressedSize?t.compressedSize:e;return r>0&&n>=r?r:n})(T,G,et.length);at=et.subarray(t),et=await st(et.subarray(0,t),T),nt=ae(et),G=et.length,ot=!0}!T||ot||et.length>=4&&Es(nt,0)!=L||zs(o,"unknown zip64 extensible data"),F=b;const it=Ds(e,t,"filenameEncoding"),ct=Ds(e,t,"commentEncoding"),ut=new u;let ft,lt=-1;const wt=!c&&!C;!O&&wt&&(O=ss(nt,et,$),O&&zs(o,jr));for(let s=0;O>s;s++){const i=new ns(r,e.options);if($+46>et.length||Es(nt,$)!=L){if(0==s&&!ot&&(A||rs(nt)))throw new w("Encrypted central directory is not supported");throw new w("Central directory header not found")}as(i,nt,$+6);const c=!!i.bitFlag.languageEncodingFlag,u=$+46,f=u+i.filenameLength,l=f+i.extraFieldLength,p=Us(nt,$+4),m=!(p>>8),y=p>>8==3,g=et.subarray(u,f),b=Us(nt,$+32),v=l+b,S=et.subarray(l,v),k=c,z=c,R=Es(nt,$+38),D=R&W,C={readOnly:!!(1&D),hidden:!!(2&D),system:!!(4&D),directory:!!(16&D),archive:!!(32&D)},T=Es(nt,$+42),U=Fs(e,t,"decodeText")||Mn,E=k?Qr:it||Yr,M=z?Qr:ct||Yr;let P=U(g,E,"filename");if(P===_&&(P=Mn(g,E)),h){const t=h(P);t!==_&&(P=t)}if(gs(P,d)){const t=new w("Unsafe filename");throw t.filename=P,t}let B=U(S,M,"comment");B===_&&(B=Mn(S,M)),n.assign(i,{index:s,Bt:ot,versionMadeBy:p,msDosCompatible:m,zip64:!1,compressedSize:0,uncompressedSize:0,Kt:b,offset:T,diskNumberStart:Us(nt,$+34),internalFileAttributes:Us(nt,$+36),externalFileAttributes:R,msdosAttributesRaw:D,msdosAttributes:C,rawFilename:g,filenameUTF8:k,commentUTF8:z,rawExtraField:et.subarray(f,l),rawComment:S,filename:P,comment:B}),is(i,i,nt,$+6)&&zs(o,_r,P),i.offset+=N;const H=ds(r,i.diskNumberStart)+i.offset;F=a.min(H,F),lt>H&&zs(o,"unsorted central directory",P),lt=H,(i.version&W)>63&&zs(o,"unknown version needed to extract",P),32&~i.rawBitFlag||zs(o,"compressed patched data",P),ut.has(i.filename)&&(ft=!0),ut.add(i.filename);const V=i.externalFileAttributes>>16&I;i.unixMode===_&&16877&V&&(i.unixMode=V);const Z=!!(2048&i.unixMode),j=!!(1024&i.unixMode),K=!!(512&i.unixMode),G=40960==((i.unixMode===_?V:i.unixMode)&q),X=!G&&(i.unixMode!==_?!!(73&i.unixMode):y&&!!(73&V)),J=i.unixMode!==_&&16384==(i.unixMode&q),Q=16384==(V&q);n.assign(i,{setuid:Z,setgid:j,sticky:K,symlink:G,unixExternalUpper:V,internalFileAttribute:i.internalFileAttributes,externalFileAttribute:i.externalFileAttributes,executable:X,directory:J||Q||m&&C.directory||i.filename.endsWith("/"),zipCrypto:i.encrypted&&!i.extraFieldAES});const Y=new Hr(i);if(Y.getData=(t,n)=>i.getData(t,Y,e.Vt,n),Y.arrayBuffer=async t=>{const n=new x,r=tn(n.readable).then(t=>t.arrayBuffer());return r.catch(()=>{}),await i.getData(n,Y,e.Vt,t),r},$=v,s==O-1&&wt){const t=ss(nt,et,$);t&&(O+=t,zs(o,jr))}const{onprogress:tt}=t;if(tt)try{await tt(s+1,O,new Hr(i))}catch{}yield Y}let dt=$,ht=os(et.subarray($))||(ot?os(at):_);if(!ht&&!ot){const t=b+$,e=a.min(Q-t,65541);6>e||(ht=os(await zr(r,t,e)))}ht&&(e.digitalSignature=ht,dt=$+6+ht.length),($!=G&&dt!=G||!ot&&$!=g&&dt!=g)&&xs(c,o,"trailing central directory data"),ft&&xs(c,o,"duplicate filename");const pt=Ds(e,t,"extractPrependedData"),mt=Ds(e,t,"extractAppendedData"),yt=(c||pt)&&O&&4==F&&await(async t=>{const e=await hs(t);return e==M||808471376==e})(r)?4:0;return c&&(N||O&&F>yt)&&Rs(Gr),(N||O&&F>4)&&zs(o,Gr),pt&&(e.prependedData=F>yt?await zr(r,yt,F-yt):X),e.comment=S?await zr(r,v+H,S):X,mt&&(e.appendedData=k<r.size?await zr(r,k,r.size-k):X),!0}async getEntries(t={}){const e=[];for await(const n of this.getEntriesGenerator(t))e.push(n);return e}async close(){const{reader:t}=this;t.readUint8Array||!t.readable||t.readable.locked||await t.readable.cancel()}},t.configure=t=>{n.assign(it,lt(dt(t)))},t.inflateRaw=(t,e)=>Ht(t,{i:2},e&&e.Gt,e&&e.m)});
@@ -7,7 +7,7 @@
7
7
  "name": "single-file-core-zip-build",
8
8
  "devDependencies": {
9
9
  "@rollup/plugin-terser": "1.0.0",
10
- "@zip.js/zip.js": "2.8.59",
10
+ "@zip.js/zip.js": "2.8.60",
11
11
  "rollup": "4.62.4",
12
12
  "terser": "5.50.0"
13
13
  }
@@ -502,9 +502,9 @@
502
502
  "license": "MIT"
503
503
  },
504
504
  "node_modules/@zip.js/zip.js": {
505
- "version": "2.8.59",
506
- "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.59.tgz",
507
- "integrity": "sha512-gD5q0xfvv4Xdg1bkl+mvcYaNE9tyf7jqIcDLkv4mq3WPtPgJ38jJtu5dzfyEo/CnZl46nnh+/KzFBot5BdTYRg==",
505
+ "version": "2.8.60",
506
+ "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.60.tgz",
507
+ "integrity": "sha512-pULv0waMlnKAUUxrsuAOa0ADONGRuhdHORtuXVgClNlScDB5YjImCV8DZrE1SicaROyE6MwGkH8CLJ+o4Nx07g==",
508
508
  "dev": true,
509
509
  "license": "BSD-3-Clause",
510
510
  "engines": {
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "devDependencies": {
10
10
  "@rollup/plugin-terser": "1.0.0",
11
- "@zip.js/zip.js": "2.8.59",
11
+ "@zip.js/zip.js": "2.8.60",
12
12
  "rollup": "4.62.4",
13
13
  "terser": "5.50.0"
14
14
  }
@@ -6,12 +6,19 @@
6
6
  "writable",
7
7
  "CompressionStreamLike",
8
8
  "DecompressionStreamLike",
9
+ "VERSION",
9
10
  "configure",
10
11
  "resetConfiguration",
11
12
  "registerCodec",
12
13
  "unregisterCodec",
13
- "CodecDefinition",
14
+ "getRegisteredCodecs",
15
+ "getSupportedCompressionMethods",
16
+ "SupportedCompressionMethod",
14
17
  "compressionMethod",
18
+ "compression",
19
+ "decompression",
20
+ "registered",
21
+ "CodecDefinition",
15
22
  "format",
16
23
  "codecURI",
17
24
  "CompressionStream",
@@ -20,10 +27,10 @@
20
27
  "CompressionStreamOptions",
21
28
  "level",
22
29
  "chunkSize",
30
+ "uncompressedSize",
23
31
  "DecompressionStreamOptions",
24
32
  "deflate64",
25
33
  "rawBitFlag",
26
- "uncompressedSize",
27
34
  "Configuration",
28
35
  "maxWorkers",
29
36
  "terminateWorkerTimeout",
@@ -4745,7 +4752,6 @@
4745
4752
  "DECR_WRAP",
4746
4753
  "VENDOR",
4747
4754
  "RENDERER",
4748
- "VERSION",
4749
4755
  "NEAREST",
4750
4756
  "LINEAR",
4751
4757
  "NEAREST_MIPMAP_NEAREST",