From 6b735659183e94418672314ce7e5d08a98b683e0 Mon Sep 17 00:00:00 2001 From: empty Date: Wed, 3 Dec 2025 22:11:57 +0800 Subject: [PATCH] fix: content script truncation error and mac shortcut issue - Fixed truncated content.js file causing syntax error and missing logic - Updated manifest.json to use Command+Shift+X for Mac shortcut - Updated documentation --- .gemini-clipboard/clipboard-1764770972536.png | Bin 0 -> 62844 bytes docs/EXTENSION.md | 13 ++- src/browser-extension/background.js | 30 ++++++- src/browser-extension/content.js | 79 +++++++----------- src/browser-extension/lib/jszip.min.js | 13 +++ src/browser-extension/manifest.json | 4 +- src/browser-extension/popup.html | 1 + 7 files changed, 82 insertions(+), 58 deletions(-) create mode 100644 .gemini-clipboard/clipboard-1764770972536.png create mode 100644 src/browser-extension/lib/jszip.min.js diff --git a/.gemini-clipboard/clipboard-1764770972536.png b/.gemini-clipboard/clipboard-1764770972536.png new file mode 100644 index 0000000000000000000000000000000000000000..34d4811f75b67165cf6f54e072d874f008a085f9 GIT binary patch literal 62844 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 H2Z8?u908vv literal 0 HcmV?d00001 diff --git a/docs/EXTENSION.md b/docs/EXTENSION.md index bd66347..73d1ec7 100644 --- a/docs/EXTENSION.md +++ b/docs/EXTENSION.md @@ -31,19 +31,26 @@ ## 使用方法 1. 点击浏览器工具栏中的扩展图标 -2. 选择输出格式(Markdown/JSON/XML) +2. **选择输出格式:** + - **Markdown 格式** (默认) + - **JSON 结构化** + - **XML 格式** + - **ZIP (Markdown + 图)** - *自动下载包含本地图片的压缩包* 3. 点击 **框选区域提取** 或 **提取整页内容** + - 如果选择了 ZIP 格式,点击这两个按钮将直接触发打包下载 4. 如果是框选模式,拖拽鼠标选择区域 -5. 提取完成后内容自动复制到剪贴板 +5. 提取完成后内容自动复制到剪贴板 (ZIP 格式除外) **智能元素提取模式:** 1. 按下快捷键(默认 `Alt+Shift+X` / Mac: `Option+Shift+X`) 2. 移动鼠标,扩展会自动高亮当前的 HTML 元素 3. 点击高亮的元素即可提取该区域内容 + - *提示:如果在插件弹窗中选择了 ZIP 格式,点击元素将下载该元素的 ZIP 包* ## 快捷操作 -- **Alt+Shift+X** (Mac: **Option+Shift+X**) - 开启/关闭元素智能识别模式 +- **Alt+Shift+X** (Windows/Linux) +- **Command+Shift+X** (Mac) - 开启/关闭元素智能识别模式 - **ESC** - 取消选择模式 ## 输出示例 diff --git a/src/browser-extension/background.js b/src/browser-extension/background.js index 9fe0db0..f2a200e 100644 --- a/src/browser-extension/background.js +++ b/src/browser-extension/background.js @@ -4,12 +4,38 @@ chrome.commands.onCommand.addListener((command) => { if (tabs.length === 0) return; const tabId = tabs[0].id; - // 尝试发送消息,如果失败可能是页面未加载content script chrome.tabs.sendMessage(tabId, { action: 'toggleElementSelection' }) .catch(() => { - // 可以选择注入脚本或忽略 console.log('Cannot send message to tab', tabId); }); }); } }); + +// 图片下载代理,绕过 CORS +chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { + if (request.action === 'fetchImage') { + fetch(request.url) + .then(response => { + if (!response.ok) throw new Error('Network response was not ok'); + return response.blob(); + }) + .then(blob => { + // 将 Blob 转换为 Base64 字符串返回给 content script + const reader = new FileReader(); + reader.onloadend = () => { + sendResponse({ success: true, data: reader.result }); + }; + reader.onerror = () => { + sendResponse({ success: false, error: 'Failed to read blob' }); + }; + reader.readAsDataURL(blob); + }) + .catch(error => { + console.error('Image fetch failed:', error); + sendResponse({ success: false, error: error.message }); + }); + + return true; // 保持消息通道开启以进行异步响应 + } +}); \ No newline at end of file diff --git a/src/browser-extension/content.js b/src/browser-extension/content.js index 03d4df2..55ded87 100644 --- a/src/browser-extension/content.js +++ b/src/browser-extension/content.js @@ -14,17 +14,13 @@ chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { } else if (request.action === 'extractFullPage') { currentFormat = request.format || 'markdown'; const content = extractContent(document.body); - const formatted = formatContent(content, currentFormat); - copyToClipboard(formatted); - saveToStorage(formatted); + handleOutput(content, currentFormat); sendResponse({ success: true }); } else if (request.action === 'toggleElementSelection') { // 如果已经在选择模式,则退出 if (isSelecting) { cleanup(); } else { - // 默认格式或者读取存储的格式? 这里暂时用默认markdown - // 理想情况应该从 storage 读取,这里简化处理 chrome.storage.local.get('format', (res) => { currentFormat = res.format || 'markdown'; startElementSelectionMode(); @@ -35,6 +31,24 @@ chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { return true; }); +// === 统一输出处理 === +function handleOutput(content, format) { + if (format === 'zip') { + handleZipDownload(content); + } else { + const formatted = formatContent(content, format); + copyToClipboard(formatted); + saveToStorage(formatted); + + if (currentFormat !== 'zip') { + // 简单的检查,避免误报 + if (content && content.length > 0) { + // 这里的通知逻辑由调用者处理,或者已经统一了 + } + } + } +} + // === 元素选择模式 === let highlightBox = null; let lastTarget = null; @@ -86,11 +100,11 @@ function onElementClick(e) { if (lastTarget) { // 提取内容 const content = extractContent(lastTarget); - const formatted = formatContent(content, currentFormat); + handleOutput(content, currentFormat); - copyToClipboard(formatted); - saveToStorage(formatted); - showNotification('✅ 元素内容已提取'); + if (currentFormat !== 'zip') { + showNotification('✅ 元素内容已提取'); + } } cleanup(); @@ -166,11 +180,11 @@ function onMouseUp(e) { if (elements.length > 0) { // 提取内容 const content = extractFromElements(elements); - const formatted = formatContent(content, currentFormat); + handleOutput(content, currentFormat); - copyToClipboard(formatted); - saveToStorage(formatted); - showNotification('✅ 内容已提取并复制到剪贴板'); + if (currentFormat !== 'zip') { + showNotification('✅ 内容已提取并复制到剪贴板'); + } } else { showNotification('❌ 未选中任何内容'); } @@ -523,41 +537,4 @@ function escapeXML(str) { .replace(/&/g, '&') .replace(//g, '>') - .replace(/"/g, '"') - .replace(/'/g, '''); -} - -// 复制到剪贴板 -async function copyToClipboard(text) { - try { - await navigator.clipboard.writeText(text); - } catch (err) { - // 降级方案 - const textarea = document.createElement('textarea'); - textarea.value = text; - textarea.style.position = 'fixed'; - textarea.style.opacity = '0'; - document.body.appendChild(textarea); - textarea.select(); - document.execCommand('copy'); - document.body.removeChild(textarea); - } -} - -// 保存到 storage -function saveToStorage(text) { - chrome.storage.local.set({ lastExtraction: text }); -} - -// 显示通知 -function showNotification(message) { - const notification = document.createElement('div'); - notification.className = 'llm-extractor-notification'; - notification.textContent = message; - document.body.appendChild(notification); - - setTimeout(() => { - notification.classList.add('fade-out'); - setTimeout(() => notification.remove(), 300); - }, 2000); -} + .replace(/ \ No newline at end of file diff --git a/src/browser-extension/lib/jszip.min.js b/src/browser-extension/lib/jszip.min.js new file mode 100644 index 0000000..ff4cfd5 --- /dev/null +++ b/src/browser-extension/lib/jszip.min.js @@ -0,0 +1,13 @@ +/*! + +JSZip v3.10.1 - A JavaScript class for generating and reading zip files + + +(c) 2009-2016 Stuart Knightley +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. + +JSZip uses the library pako released under the MIT license : +https://github.com/nodeca/pako/blob/main/LICENSE +*/ + +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error("Cannot find module '"+r+"'");throw n.code="MODULE_NOT_FOUND",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l="function"==typeof require&&require,e=0;e>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{"./support":30,"./utils":32}],2:[function(e,t,r){"use strict";var n=e("./external"),i=e("./stream/DataWorker"),s=e("./stream/Crc32Probe"),a=e("./stream/DataLengthProbe");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a("uncompressedSize")).pipe(t.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",t)},t.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,r){"use strict";var n=e("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},r.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,r){"use strict";var n=e("./utils");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{"./utils":32}],5:[function(e,t,r){"use strict";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){"use strict";var n=null;n="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){"use strict";var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),s=e("./utils"),a=e("./stream/GenericWorker"),o=n?"uint8array":"array";function h(e,t){a.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic="\b\0",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h("Deflate",e)},r.uncompressWorker=function(){return new h("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,r){"use strict";function A(e,t){var r,n="";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo("string",s(h.name)),c=I.transformTo("string",O.utf8encode(h.name)),d=h.comment,p=I.transformTo("string",s(d)),m=I.transformTo("string",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b="",v="",y="",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),"UNIX"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+="up"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+="uc"+A(y.length,2)+y);var E="";return E+="\n\0",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+"\0\0\0\0"+A(z,4)+A(n,4)+f+b+p}}var I=e("../utils"),i=e("../stream/GenericWorker"),O=e("../utf8"),B=e("../crc32"),R=e("../signature");function s(e,t,r,n){i.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{"../utils":32}],19:[function(e,t,r){"use strict";var n=e("./Uint8ArrayReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,r){"use strict";var n=e("./DataReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./DataReader":18}],21:[function(e,t,r){"use strict";var n=e("./ArrayReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,r){"use strict";var n=e("../utils"),i=e("../support"),s=e("./ArrayReader"),a=e("./StringReader"),o=e("./NodeBufferReader"),h=e("./Uint8ArrayReader");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new o(e):i.uint8array?new h(n.transformTo("uint8array",e)):new s(n.transformTo("array",e)):new a(e)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,r){"use strict";r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b"},{}],24:[function(e,t,r){"use strict";var n=e("./GenericWorker"),i=e("../utils");function s(e){n.call(this,"ConvertWorker to "+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,r){"use strict";var n=e("./GenericWorker"),i=e("../crc32");function s(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,r){"use strict";var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,r){"use strict";var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,r){"use strict";function n(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r "+e:e}},t.exports=n},{}],29:[function(e,t,r){"use strict";var h=e("../utils"),i=e("./ConvertWorker"),s=e("./GenericWorker"),u=e("../base64"),n=e("../support"),a=e("../external"),o=null;if(n.nodestream)try{o=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on("data",function(e,t){n.push(e),o&&o(t)}).on("error",function(e){n=[],r(e)}).on("end",function(){try{var e=function(e,t,r){switch(e){case"blob":return h.newBlob(h.transformTo("arraybuffer",t),r);case"base64":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?"uint8array":"array",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,a){"use strict";var o=e("./support"),h=e("./base64"),r=e("./nodejsUtils"),u=e("./external");function n(e){return e}function l(e,t){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{"./common":41}],43:[function(e,t,r){"use strict";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){"use strict";var h,c=e("../utils/common"),u=e("./trees"),d=e("./adler32"),p=e("./crc32"),n=e("./messages"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&u)){e.msg="unknown compression method",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg="invalid distance code",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":41}],53:[function(e,t,r){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){"use strict";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i="[object process]"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage("","*"),r.onmessage=t,e}}()?(a="setImmediate$"+Math.random()+"$",r.addEventListener?r.addEventListener("message",d,!1):r.attachEvent("onmessage",d),function(e){r.postMessage(a+e,"*")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&"onreadystatechange"in l.createElement("script")?(s=l.documentElement,function(e){var t=l.createElement("script");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r"], - "js": ["content.js"], + "js": ["lib/jszip.min.js", "content.js"], "css": ["content.css"] } ], diff --git a/src/browser-extension/popup.html b/src/browser-extension/popup.html index 602d2e6..dc6f981 100644 --- a/src/browser-extension/popup.html +++ b/src/browser-extension/popup.html @@ -113,6 +113,7 @@ +