@casualoffice/sheets 0.9.0
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/LICENSE +200 -0
- package/dist/embed/embed-runtime.js +537 -0
- package/dist/embed/embed.html +29 -0
- package/dist/embed/parser.worker.js +48474 -0
- package/dist/embed.cjs +225 -0
- package/dist/embed.cjs.map +1 -0
- package/dist/embed.d.cts +100 -0
- package/dist/embed.d.ts +100 -0
- package/dist/embed.js +204 -0
- package/dist/embed.js.map +1 -0
- package/dist/index.cjs +1549 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +9 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +1530 -0
- package/dist/index.js.map +1 -0
- package/dist/parser.worker.cjs +48469 -0
- package/dist/parser.worker.cjs.map +1 -0
- package/dist/parser.worker.js +48474 -0
- package/dist/parser.worker.js.map +1 -0
- package/dist/protocol--KyBQUjU.d.cts +171 -0
- package/dist/protocol-cEzy7S0i.d.ts +171 -0
- package/dist/sheets.cjs +677 -0
- package/dist/sheets.cjs.map +1 -0
- package/dist/sheets.d.cts +177 -0
- package/dist/sheets.d.ts +177 -0
- package/dist/sheets.js +658 -0
- package/dist/sheets.js.map +1 -0
- package/dist/signing.cjs +706 -0
- package/dist/signing.cjs.map +1 -0
- package/dist/signing.d.cts +141 -0
- package/dist/signing.d.ts +141 -0
- package/dist/signing.js +683 -0
- package/dist/signing.js.map +1 -0
- package/dist/styles.cjs +10 -0
- package/dist/styles.cjs.map +1 -0
- package/dist/styles.d.cts +2 -0
- package/dist/styles.d.ts +2 -0
- package/dist/styles.js +8 -0
- package/dist/styles.js.map +1 -0
- package/dist/types-s_O0u6Cg.d.cts +90 -0
- package/dist/types-s_O0u6Cg.d.ts +90 -0
- package/dist/univer.cjs +220 -0
- package/dist/univer.cjs.map +1 -0
- package/dist/univer.d.cts +60 -0
- package/dist/univer.d.ts +60 -0
- package/dist/univer.js +187 -0
- package/dist/univer.js.map +1 -0
- package/dist/xlsx.cjs +3388 -0
- package/dist/xlsx.cjs.map +1 -0
- package/dist/xlsx.d.cts +383 -0
- package/dist/xlsx.d.ts +383 -0
- package/dist/xlsx.js +3383 -0
- package/dist/xlsx.js.map +1 -0
- package/package.json +293 -0
- package/src/embed/EmbedHostTransport.ts +226 -0
- package/src/embed/EmbedTransport.ts +323 -0
- package/src/embed/EmbedTransport.unit.test.ts +161 -0
- package/src/embed/index.ts +40 -0
- package/src/embed/protocol.ts +258 -0
- package/src/embed-runtime/embed.html +29 -0
- package/src/embed-runtime/index.tsx +440 -0
- package/src/index.ts +16 -0
- package/src/sheets/CasualSheets.tsx +319 -0
- package/src/sheets/CasualSheetsIframe.tsx +220 -0
- package/src/sheets/api.ts +108 -0
- package/src/sheets/index.ts +11 -0
- package/src/signing/SigningPane.tsx +374 -0
- package/src/signing/SigningProvider.tsx +126 -0
- package/src/signing/captures.tsx +316 -0
- package/src/signing/controller.ts +151 -0
- package/src/signing/controller.unit.test.ts +133 -0
- package/src/signing/index.ts +44 -0
- package/src/signing/types.ts +89 -0
- package/src/styles.ts +16 -0
- package/src/univer/index.ts +17 -0
- package/src/univer/lazy-plugins.ts +280 -0
- package/src/xlsx/_perf.ts +14 -0
- package/src/xlsx/_snapshot-constants.ts +15 -0
- package/src/xlsx/comments-resource.ts +209 -0
- package/src/xlsx/constants.ts +9 -0
- package/src/xlsx/data-validation-resource.ts +219 -0
- package/src/xlsx/import.ts +35 -0
- package/src/xlsx/index.ts +40 -0
- package/src/xlsx/page-setup-resource.ts +205 -0
- package/src/xlsx/parse-impl.ts +418 -0
- package/src/xlsx/parse-in-worker.ts +82 -0
- package/src/xlsx/parser.worker.ts +39 -0
- package/src/xlsx/passthrough-resource.ts +175 -0
- package/src/xlsx/pivot-passthrough.ts +359 -0
- package/src/xlsx/style-mapping.ts +171 -0
- package/src/xlsx/tables-resource.ts +211 -0
package/dist/xlsx.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/dist/jszip.min.js","../src/xlsx/_perf.ts","../src/xlsx/parse-in-worker.ts","../src/xlsx/import.ts","../src/xlsx/style-mapping.ts","../src/xlsx/constants.ts","../src/xlsx/comments-resource.ts","../src/xlsx/page-setup-resource.ts","../src/xlsx/data-validation-resource.ts","../src/xlsx/tables-resource.ts","../src/xlsx/passthrough-resource.ts","../src/xlsx/pivot-passthrough.ts"],"sourcesContent":["/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){\"use strict\";var d=e(\"./utils\"),c=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c=\"string\"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u=\"data:\";if(e.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>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<s;a++)e=e>>>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<s;a++)e=e>>>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<t;r++)n+=String.fromCharCode(255&e),e>>>=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.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var r=this.bytesWritten-e,n=function(e,t,r,n,i){var s=I.transformTo(\"string\",i(n));return R.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+A(e,2)+A(e,2)+A(t,4)+A(r,4)+A(s.length,2)+s}(this.dirRecords.length,r,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}})},s.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},s.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on(\"error\",function(e){t.error(e)}),this},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},s.prototype.error=function(e){var t=this._sources;if(!i.prototype.error.call(this,e))return!1;for(var r=0;r<t.length;r++)try{t[r].error(e)}catch(e){}return!0},s.prototype.lock=function(){i.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=s},{\"../crc32\":4,\"../signature\":23,\"../stream/GenericWorker\":28,\"../utf8\":31,\"../utils\":32}],9:[function(e,t,r){\"use strict\";var u=e(\"../compressions\"),n=e(\"./ZipFileWorker\");r.generateWorker=function(e,a,t){var o=new n(a.streamFiles,t,a.platform,a.encodeFileName),h=0;try{e.forEach(function(e,t){h++;var r=function(e,t){var r=e||t,n=u[r];if(!n)throw new Error(r+\" is not a valid compression method !\");return n}(t.options.compression,a.compression),n=t.options.compressionOptions||a.compressionOptions||{},i=t.dir,s=t.date;t._compressWorker(r,n).withStreamInfo(\"file\",{name:e,dir:i,date:s,comment:t.comment||\"\",unixPermissions:t.unixPermissions,dosPermissions:t.dosPermissions}).pipe(o)}),o.entriesCount=h}catch(e){o.error(e)}return o}},{\"../compressions\":3,\"./ZipFileWorker\":8}],10:[function(e,t,r){\"use strict\";function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");this.files=Object.create(null),this.comment=null,this.root=\"\",this.clone=function(){var e=new n;for(var t in this)\"function\"!=typeof this[t]&&(e[t]=this[t]);return e}}(n.prototype=e(\"./object\")).loadAsync=e(\"./load\"),n.support=e(\"./support\"),n.defaults=e(\"./defaults\"),n.version=\"3.10.1\",n.loadAsync=function(e,t){return(new n).loadAsync(e,t)},n.external=e(\"./external\"),t.exports=n},{\"./defaults\":5,\"./external\":6,\"./load\":11,\"./object\":15,\"./support\":30}],11:[function(e,t,r){\"use strict\";var u=e(\"./utils\"),i=e(\"./external\"),n=e(\"./utf8\"),s=e(\"./zipEntries\"),a=e(\"./stream/Crc32Probe\"),l=e(\"./nodejsUtils\");function f(n){return new i.Promise(function(e,t){var r=n.decompressed.getContentWorker().pipe(new a);r.on(\"error\",function(e){t(e)}).on(\"end\",function(){r.streamInfo.crc32!==n.decompressed.crc32?t(new Error(\"Corrupted zip : CRC32 mismatch\")):e()}).resume()})}t.exports=function(e,o){var h=this;return o=u.extend(o||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:n.utf8decode}),l.isNode&&l.isStream(e)?i.Promise.reject(new Error(\"JSZip can't accept a stream when loading a zip file.\")):u.prepareContent(\"the loaded zip file\",e,!0,o.optimizedBinaryString,o.base64).then(function(e){var t=new s(o);return t.load(e),t}).then(function(e){var t=[i.Promise.resolve(e)],r=e.files;if(o.checkCRC32)for(var n=0;n<r.length;n++)t.push(f(r[n]));return i.Promise.all(t)}).then(function(e){for(var t=e.shift(),r=t.files,n=0;n<r.length;n++){var i=r[n],s=i.fileNameStr,a=u.resolve(i.fileNameStr);h.file(a,i.decompressed,{binary:!0,optimizedBinaryString:!0,date:i.date,dir:i.dir,comment:i.fileCommentStr.length?i.fileCommentStr:null,unixPermissions:i.unixPermissions,dosPermissions:i.dosPermissions,createFolders:o.createFolders}),i.dir||(h.file(a).unsafeOriginalName=s)}return t.zipComment.length&&(h.comment=t.zipComment),h})}},{\"./external\":6,\"./nodejsUtils\":14,\"./stream/Crc32Probe\":25,\"./utf8\":31,\"./utils\":32,\"./zipEntries\":33}],12:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../stream/GenericWorker\");function s(e,t){i.call(this,\"Nodejs stream input adapter for \"+e),this._upstreamEnded=!1,this._bindStream(t)}n.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on(\"data\",function(e){t.push({data:e,meta:{percent:0}})}).on(\"error\",function(e){t.isPaused?this.generatedError=e:t.error(e)}).on(\"end\",function(){t.isPaused?t._upstreamEnded=!0:t.end()})},s.prototype.pause=function(){return!!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{\"../stream/GenericWorker\":28,\"../utils\":32}],13:[function(e,t,r){\"use strict\";var i=e(\"readable-stream\").Readable;function n(e,t,r){i.call(this,t),this._helper=e;var n=this;e.on(\"data\",function(e,t){n.push(e)||n._helper.pause(),r&&r(t)}).on(\"error\",function(e){n.emit(\"error\",e)}).on(\"end\",function(){n.push(null)})}e(\"../utils\").inherits(n,i),n.prototype._read=function(){this._helper.resume()},t.exports=n},{\"../utils\":32,\"readable-stream\":16}],14:[function(e,t,r){\"use strict\";t.exports={isNode:\"undefined\"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if(\"number\"==typeof e)throw new Error('The \"data\" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&\"function\"==typeof e.on&&\"function\"==typeof e.pause&&\"function\"==typeof e.resume}}},{}],15:[function(e,t,r){\"use strict\";function s(e,t,r){var n,i=u.getTypeOf(t),s=u.extend(r||{},f);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),\"string\"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(e=g(e)),s.createFolders&&(n=_(e))&&b.call(this,n,!0);var a=\"string\"===i&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!a),(t instanceof c&&0===t.uncompressedSize||s.dir||!t||0===t.length)&&(s.base64=!1,s.binary=!0,t=\"\",s.compression=\"STORE\",i=\"string\");var o=null;o=t instanceof c||t instanceof l?t:p.isNode&&p.isStream(t)?new m(e,t):u.prepareContent(e,t,s.binary,s.optimizedBinaryString,s.base64);var h=new d(e,o,s);this.files[e]=h}var i=e(\"./utf8\"),u=e(\"./utils\"),l=e(\"./stream/GenericWorker\"),a=e(\"./stream/StreamHelper\"),f=e(\"./defaults\"),c=e(\"./compressedObject\"),d=e(\"./zipObject\"),o=e(\"./generate\"),p=e(\"./nodejsUtils\"),m=e(\"./nodejs/NodejsStreamInputAdapter\"),_=function(e){\"/\"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf(\"/\");return 0<t?e.substring(0,t):\"\"},g=function(e){return\"/\"!==e.slice(-1)&&(e+=\"/\"),e},b=function(e,t){return t=void 0!==t?t:f.createFolders,e=g(e),this.files[e]||s.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function h(e){return\"[object RegExp]\"===Object.prototype.toString.call(e)}var n={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(e){var t,r,n;for(t in this.files)n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n)},filter:function(r){var n=[];return this.forEach(function(e,t){r(e,t)&&n.push(t)}),n},file:function(e,t,r){if(1!==arguments.length)return e=this.root+e,s.call(this,e,t,r),this;if(h(e)){var n=e;return this.filter(function(e,t){return!t.dir&&n.test(e)})}var i=this.files[this.root+e];return i&&!i.dir?i:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(e,t){return t.dir&&r.test(e)});var e=this.root+r,t=b.call(this,e),n=this.clone();return n.root=t.name,n},remove:function(r){r=this.root+r;var e=this.files[r];if(e||(\"/\"!==r.slice(-1)&&(r+=\"/\"),e=this.files[r]),e&&!e.dir)delete this.files[r];else for(var t=this.filter(function(e,t){return t.name.slice(0,r.length)===r}),n=0;n<t.length;n++)delete this.files[t[n].name];return this},generate:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},generateInternalStream:function(e){var t,r={};try{if((r=u.extend(e||{},{streamFiles:!1,compression:\"STORE\",compressionOptions:null,type:\"\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:i.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),\"binarystring\"===r.type&&(r.type=\"string\"),!r.type)throw new Error(\"No output type specified.\");u.checkSupport(r.type),\"darwin\"!==r.platform&&\"freebsd\"!==r.platform&&\"linux\"!==r.platform&&\"sunos\"!==r.platform||(r.platform=\"UNIX\"),\"win32\"===r.platform&&(r.platform=\"DOS\");var n=r.comment||this.comment||\"\";t=o.generateWorker(this,r,n)}catch(e){(t=new l(\"error\")).error(e)}return new a(t,r.type||\"string\",r.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type=\"nodebuffer\"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=n},{\"./compressedObject\":2,\"./defaults\":5,\"./generate\":9,\"./nodejs/NodejsStreamInputAdapter\":12,\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31,\"./utils\":32,\"./zipObject\":35}],16:[function(e,t,r){\"use strict\";t.exports=e(\"stream\")},{stream:void 0}],17:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===r&&this.data[s+2]===n&&this.data[s+3]===i)return s-this.zero;return-1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&r===s[1]&&n===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];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}],18:[function(e,t,r){\"use strict\";var n=e(\"../utils\");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+e+\"). Corrupted zip ?\")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t,r=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r<this._listeners[e].length;r++)this._listeners[e][r].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.end()}),e.on(\"error\",function(e){t.error(e)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e=\"Worker \"+this.name;return this.previous?this.previous+\" -> \"+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<t.length;r++)s+=t[r].length;switch(e){case\"string\":return t.join(\"\");case\"array\":return Array.prototype.concat.apply([],t);case\"uint8array\":for(i=new Uint8Array(s),r=0;r<t.length;r++)i.set(t[r],n),n+=t[r].length;return i;case\"nodebuffer\":return Buffer.concat(t);default:throw new Error(\"concat : unsupported type '\"+e+\"'\")}}(i,n),a);t(e)}catch(e){r(e)}n=[]}).resume()})}function f(e,t,r){var n=t;switch(t){case\"blob\":case\"arraybuffer\":n=\"uint8array\";break;case\"base64\":n=\"string\"}try{this._internalType=n,this._outputType=t,this._mimeType=r,h.checkSupport(n),this._worker=e.pipe(new i(n)),e.lock()}catch(e){this._worker=new s(\"error\"),this._worker.error(e)}}f.prototype={accumulate:function(e){return l(this,e)},on:function(e,t){var r=this;return\"data\"===e?this._worker.on(e,function(e){t.call(r,e.data,e.meta)}):this._worker.on(e,function(){h.delay(t,arguments,r)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(h.checkSupport(\"nodestream\"),\"nodebuffer\"!==this._outputType)throw new Error(this._outputType+\" is not supported by this method\");return new o(this,{objectMode:\"nodebuffer\"!==this._outputType},e)}},t.exports=f},{\"../base64\":1,\"../external\":6,\"../nodejs/NodejsStreamOutputAdapter\":13,\"../support\":30,\"../utils\":32,\"./ConvertWorker\":24,\"./GenericWorker\":28}],30:[function(e,t,r){\"use strict\";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,r.nodebuffer=\"undefined\"!=typeof Buffer,r.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)r.blob=!1;else{var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:\"application/zip\"}).size}catch(e){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob(\"application/zip\").size}catch(e){r.blob=!1}}}try{r.nodestream=!!e(\"readable-stream\").Readable}catch(e){r.nodestream=!1}},{\"readable-stream\":16}],31:[function(e,t,s){\"use strict\";for(var o=e(\"./utils\"),h=e(\"./support\"),r=e(\"./nodejsUtils\"),n=e(\"./stream/GenericWorker\"),u=new Array(256),i=0;i<256;i++)u[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;u[254]=u[254]=1;function a(){n.call(this,\"utf-8 decode\"),this.leftOver=null}function l(){n.call(this,\"utf-8 encode\")}s.utf8encode=function(e){return h.nodebuffer?r.newBufferFrom(e,\"utf-8\"):function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=h.uint8array?new Uint8Array(o):new Array(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|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<s;)if((n=e[t++])<128)a[r++]=n;else if(4<(i=u[n]))a[r++]=65533,t+=i-1;else{for(n&=2===i?31:3===i?15:7;1<i&&t<s;)n=n<<6|63&e[t++],i--;1<i?a[r++]=65533:n<65536?a[r++]=n:(n-=65536,a[r++]=55296|n>>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<e.length;++r)t[r]=255&e.charCodeAt(r);return t}e(\"setimmediate\"),a.newBlob=function(t,r){a.checkSupport(\"blob\");try{return new Blob([t],{type:r})}catch(e){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(t),n.getBlob(r)}catch(e){throw new Error(\"Bug : can't construct the Blob.\")}}};var i={stringifyByChunk:function(e,t,r){var n=[],i=0,s=e.length;if(s<=r)return String.fromCharCode.apply(null,e);for(;i<s;)\"array\"===t||\"nodebuffer\"===t?n.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+r,s)))):n.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+r,s)))),i+=r;return n.join(\"\")},stringifyByChar:function(e){for(var t=\"\",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},applyCanBeUsed:{uint8array:function(){try{return o.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return o.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(e){return!1}}()}};function s(e){var t=65536,r=a.getTypeOf(e),n=!0;if(\"uint8array\"===r?n=i.applyCanBeUsed.uint8array:\"nodebuffer\"===r&&(n=i.applyCanBeUsed.nodebuffer),n)for(;1<t;)try{return i.stringifyByChunk(e,r,t)}catch(e){t=Math.floor(t/2)}return i.stringifyByChar(e)}function f(e,t){for(var r=0;r<e.length;r++)t[r]=e[r];return t}a.applyFromCharCode=s;var c={};c.string={string:n,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return c.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,r.allocBuffer(e.length))}},c.array={string:s,array:n,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(e)}},c.arraybuffer={string:function(e){return s(new Uint8Array(e))},array:function(e){return f(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:n,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(new Uint8Array(e))}},c.uint8array={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:n,nodebuffer:function(e){return r.newBufferFrom(e)}},c.nodebuffer={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return c.nodebuffer.uint8array(e).buffer},uint8array:function(e){return f(e,new Uint8Array(e.length))},nodebuffer:n},a.transformTo=function(e,t){if(t=t||\"\",!e)return t;a.checkSupport(e);var r=a.getTypeOf(t);return c[r][e](t)},a.resolve=function(e){for(var t=e.split(\"/\"),r=[],n=0;n<t.length;n++){var i=t[n];\".\"===i||\"\"===i&&0!==n&&n!==t.length-1||(\"..\"===i?r.pop():r.push(i))}return r.join(\"/\")},a.getTypeOf=function(e){return\"string\"==typeof e?\"string\":\"[object Array]\"===Object.prototype.toString.call(e)?\"array\":o.nodebuffer&&r.isBuffer(e)?\"nodebuffer\":o.uint8array&&e instanceof Uint8Array?\"uint8array\":o.arraybuffer&&e instanceof ArrayBuffer?\"arraybuffer\":void 0},a.checkSupport=function(e){if(!o[e.toLowerCase()])throw new Error(e+\" is not supported by this platform\")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(e){var t,r,n=\"\";for(r=0;r<(e||\"\").length;r++)n+=\"\\\\x\"+((t=e.charCodeAt(r))<16?\"0\":\"\")+t.toString(16).toUpperCase();return n},a.delay=function(e,t,r){setImmediate(function(){e.apply(r||null,t||[])})},a.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.prototype=new r},a.extend=function(){var e,t,r={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===r[t]&&(r[t]=arguments[e][t]);return r},a.prepareContent=function(r,e,n,i,s){return u.Promise.resolve(e).then(function(n){return o.blob&&(n instanceof Blob||-1!==[\"[object File]\",\"[object Blob]\"].indexOf(Object.prototype.toString.call(n)))&&\"undefined\"!=typeof FileReader?new u.Promise(function(t,r){var e=new FileReader;e.onload=function(e){t(e.target.result)},e.onerror=function(e){r(e.target.error)},e.readAsArrayBuffer(n)}):n}).then(function(e){var t=a.getTypeOf(e);return t?(\"arraybuffer\"===t?e=a.transformTo(\"uint8array\",e):\"string\"===t&&(s?e=h.decode(e):n&&!0!==i&&(e=function(e){return l(e,o.uint8array?new Uint8Array(e.length):new Array(e.length))}(e))),e):u.Promise.reject(new Error(\"Can't read the data of '\"+r+\"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\"))})}},{\"./base64\":1,\"./external\":6,\"./nodejsUtils\":14,\"./support\":30,setimmediate:54}],33:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),i=e(\"./utils\"),s=e(\"./signature\"),a=e(\"./zipEntry\"),o=e(\"./support\");function h(e){this.files=[],this.loadOptions=e}h.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error(\"Corrupted zip or bug: unexpected signature (\"+i.pretty(t)+\", expected \"+i.pretty(e)+\")\")}},isSignature:function(e,t){var r=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4)===t;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=o.uint8array?\"uint8array\":\"array\",r=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,r,n=this.zip64EndOfCentralSize-44;0<n;)e=this.reader.readInt(2),t=this.reader.readInt(4),r=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw!this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error(\"Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\"):new Error(\"Corrupted zip: can't find end of central directory\");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=t-r;if(0<n)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(n)+\" bytes.\")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=h},{\"./reader/readerFor\":22,\"./signature\":23,\"./support\":30,\"./utils\":32,\"./zipEntry\":34}],34:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),s=e(\"./utils\"),i=e(\"./compressedObject\"),a=e(\"./crc32\"),o=e(\"./utf8\"),h=e(\"./compressions\"),u=e(\"./support\");function l(e,t){this.options=e,this.loadOptions=t}l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(t=function(e){for(var t in h)if(Object.prototype.hasOwnProperty.call(h,t)&&h[t].magic===e)return h[t];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+s.pretty(this.compressionMethod)+\" unknown (inner file : \"+s.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new i(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>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<i;)t=e.readInt(2),r=e.readInt(2),n=e.readData(r),this.extraFields[t]={id:t,length:r,value:n};e.setIndex(i)},handleUTF8:function(){var e=u.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var r=s.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else{var i=s.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(i)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileName)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileComment)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null}},t.exports=l},{\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./reader/readerFor\":22,\"./support\":30,\"./utf8\":31,\"./utils\":32}],35:[function(e,t,r){\"use strict\";function n(e,t,r){this.name=e,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=t,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var s=e(\"./stream/StreamHelper\"),i=e(\"./stream/DataWorker\"),a=e(\"./utf8\"),o=e(\"./compressedObject\"),h=e(\"./stream/GenericWorker\");n.prototype={internalStream:function(e){var t=null,r=\"string\";try{if(!e)throw new Error(\"No output type specified.\");var n=\"string\"===(r=e.toLowerCase())||\"text\"===r;\"binarystring\"!==r&&\"text\"!==r||(r=\"string\"),t=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(t=t.pipe(new a.Utf8EncodeWorker)),!i&&n&&(t=t.pipe(new a.Utf8DecodeWorker))}catch(e){(t=new h(\"error\")).error(e)}return new s(t,r,\"\")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||\"nodebuffer\").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof o&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,e,t)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof h?this._data:new i(this._data)}};for(var u=[\"asText\",\"asBinary\",\"asNodeBuffer\",\"asUint8Array\",\"asArrayBuffer\"],l=function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},f=0;f<u.length;f++)n.prototype[u[f]]=l;t.exports=n},{\"./compressedObject\":2,\"./stream/DataWorker\":27,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31}],36:[function(e,l,t){(function(t){\"use strict\";var r,n,e=t.MutationObserver||t.WebKitMutationObserver;if(e){var i=0,s=new e(u),a=t.document.createTextNode(\"\");s.observe(a,{characterData:!0}),r=function(){a.data=i=++i%2}}else if(t.setImmediate||void 0===t.MessageChannel)r=\"document\"in t&&\"onreadystatechange\"in t.document.createElement(\"script\")?function(){var e=t.document.createElement(\"script\");e.onreadystatechange=function(){u(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(u,0)};else{var o=new t.MessageChannel;o.port1.onmessage=u,r=function(){o.port2.postMessage(0)}}var h=[];function u(){var e,t;n=!0;for(var r=h.length;r;){for(t=h,h=[],e=-1;++e<r;)t[e]();r=h.length}n=!1}l.exports=function(e){1!==h.push(e)||n||r()}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],37:[function(e,t,r){\"use strict\";var i=e(\"immediate\");function u(){}var l={},s=[\"REJECTED\"],a=[\"FULFILLED\"],n=[\"PENDING\"];function o(e){if(\"function\"!=typeof e)throw new TypeError(\"resolver must be a function\");this.state=n,this.queue=[],this.outcome=void 0,e!==u&&d(this,e)}function h(e,t,r){this.promise=e,\"function\"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(t,r,n){i(function(){var e;try{e=r(n)}catch(e){return l.reject(t,e)}e===t?l.reject(t,new TypeError(\"Cannot resolve promise with itself\")):l.resolve(t,e)})}function c(e){var t=e&&e.then;if(e&&(\"object\"==typeof e||\"function\"==typeof e)&&\"function\"==typeof t)return function(){t.apply(e,arguments)}}function d(t,e){var r=!1;function n(e){r||(r=!0,l.reject(t,e))}function i(e){r||(r=!0,l.resolve(t,e))}var s=p(function(){e(i,n)});\"error\"===s.status&&n(s.value)}function p(e,t){var r={};try{r.value=e(t),r.status=\"success\"}catch(e){r.status=\"error\",r.value=e}return r}(t.exports=o).prototype.finally=function(t){if(\"function\"!=typeof t)return this;var r=this.constructor;return this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})})},o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,t){if(\"function\"!=typeof e&&this.state===a||\"function\"!=typeof t&&this.state===s)return this;var r=new this.constructor(u);this.state!==n?f(r,this.state===a?e:t,this.outcome):this.queue.push(new h(r,e,t));return r},h.prototype.callFulfilled=function(e){l.resolve(this.promise,e)},h.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e)},h.prototype.callRejected=function(e){l.reject(this.promise,e)},h.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e)},l.resolve=function(e,t){var r=p(c,t);if(\"error\"===r.status)return l.reject(e,r.value);var n=r.value;if(n)d(e,n);else{e.state=a,e.outcome=t;for(var i=-1,s=e.queue.length;++i<s;)e.queue[i].callFulfilled(t)}return e},l.reject=function(e,t){e.state=s,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},o.resolve=function(e){if(e instanceof this)return e;return l.resolve(new this(u),e)},o.reject=function(e){var t=new this(u);return l.reject(t,e)},o.all=function(e){var r=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var n=e.length,i=!1;if(!n)return this.resolve([]);var s=new Array(n),a=0,t=-1,o=new this(u);for(;++t<n;)h(e[t],t);return o;function h(e,t){r.resolve(e).then(function(e){s[t]=e,++a!==n||i||(i=!0,l.resolve(o,s))},function(e){i||(i=!0,l.reject(o,e))})}},o.race=function(e){var t=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var r=e.length,n=!1;if(!r)return this.resolve([]);var i=-1,s=new this(u);for(;++i<r;)a=e[i],t.resolve(a).then(function(e){n||(n=!0,l.resolve(s,e))},function(e){n||(n=!0,l.reject(s,e))});var a;return s}},{immediate:36}],38:[function(e,t,r){\"use strict\";var n={};(0,e(\"./lib/utils/common\").assign)(n,e(\"./lib/deflate\"),e(\"./lib/inflate\"),e(\"./lib/zlib/constants\")),t.exports=n},{\"./lib/deflate\":39,\"./lib/inflate\":40,\"./lib/utils/common\":41,\"./lib/zlib/constants\":44}],39:[function(e,t,r){\"use strict\";var a=e(\"./zlib/deflate\"),o=e(\"./utils/common\"),h=e(\"./utils/strings\"),i=e(\"./zlib/messages\"),s=e(\"./zlib/zstream\"),u=Object.prototype.toString,l=0,f=-1,c=0,d=8;function p(e){if(!(this instanceof p))return new p(e);this.options=o.assign({level:f,method:d,chunkSize:16384,windowBits:15,memLevel:8,strategy:c,to:\"\"},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==l)throw new Error(i[r]);if(t.header&&a.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n=\"string\"==typeof t.dictionary?h.string2buf(t.dictionary):\"[object ArrayBuffer]\"===u.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(r=a.deflateSetDictionary(this.strm,n))!==l)throw new Error(i[r]);this._dict_set=!0}}function n(e,t){var r=new p(t);if(r.push(e,!0),r.err)throw r.msg||i[r.err];return r.result}p.prototype.push=function(e,t){var r,n,i=this.strm,s=this.options.chunkSize;if(this.ended)return!1;n=t===~~t?t:!0===t?4:0,\"string\"==typeof e?i.input=h.string2buf(e):\"[object ArrayBuffer]\"===u.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new o.Buf8(s),i.next_out=0,i.avail_out=s),1!==(r=a.deflate(i,n))&&r!==l)return this.onEnd(r),!(this.ended=!0);0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||(\"string\"===this.options.to?this.onData(h.buf2binstring(o.shrinkBuf(i.output,i.next_out))):this.onData(o.shrinkBuf(i.output,i.next_out)))}while((0<i.avail_in||0===i.avail_out)&&1!==r);return 4===n?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===l):2!==n||(this.onEnd(l),!(i.avail_out=0))},p.prototype.onData=function(e){this.chunks.push(e)},p.prototype.onEnd=function(e){e===l&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Deflate=p,r.deflate=n,r.deflateRaw=function(e,t){return(t=t||{}).raw=!0,n(e,t)},r.gzip=function(e,t){return(t=t||{}).gzip=!0,n(e,t)}},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/deflate\":46,\"./zlib/messages\":51,\"./zlib/zstream\":53}],40:[function(e,t,r){\"use strict\";var c=e(\"./zlib/inflate\"),d=e(\"./utils/common\"),p=e(\"./utils/strings\"),m=e(\"./zlib/constants\"),n=e(\"./zlib/messages\"),i=e(\"./zlib/zstream\"),s=e(\"./zlib/gzheader\"),_=Object.prototype.toString;function a(e){if(!(this instanceof a))return new a(e);this.options=d.assign({chunkSize:16384,windowBits:0,to:\"\"},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new i,this.strm.avail_out=0;var r=c.inflateInit2(this.strm,t.windowBits);if(r!==m.Z_OK)throw new Error(n[r]);this.header=new s,c.inflateGetHeader(this.strm,this.header)}function o(e,t){var r=new a(t);if(r.push(e,!0),r.err)throw r.msg||n[r.err];return r.result}a.prototype.push=function(e,t){var r,n,i,s,a,o,h=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;n=t===~~t?t:!0===t?m.Z_FINISH:m.Z_NO_FLUSH,\"string\"==typeof e?h.input=p.binstring2buf(e):\"[object ArrayBuffer]\"===_.call(e)?h.input=new Uint8Array(e):h.input=e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new d.Buf8(u),h.next_out=0,h.avail_out=u),(r=c.inflate(h,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&l&&(o=\"string\"==typeof l?p.string2buf(l):\"[object ArrayBuffer]\"===_.call(l)?new Uint8Array(l):l,r=c.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===f&&(r=m.Z_OK,f=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);h.next_out&&(0!==h.avail_out&&r!==m.Z_STREAM_END&&(0!==h.avail_in||n!==m.Z_FINISH&&n!==m.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(i=p.utf8border(h.output,h.next_out),s=h.next_out-i,a=p.buf2string(h.output,i),h.next_out=s,h.avail_out=u-s,s&&d.arraySet(h.output,h.output,i,s,0),this.onData(a)):this.onData(d.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(f=!0)}while((0<h.avail_in||0===h.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(n=m.Z_FINISH),n===m.Z_FINISH?(r=c.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):n!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(h.avail_out=0))},a.prototype.onData=function(e){this.chunks.push(e)},a.prototype.onEnd=function(e){e===m.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=d.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=a,r.inflate=o,r.inflateRaw=function(e,t){return(t=t||{}).raw=!0,o(e,t)},r.ungzip=o},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/constants\":44,\"./zlib/gzheader\":47,\"./zlib/inflate\":49,\"./zlib/messages\":51,\"./zlib/zstream\":53}],41:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be non-object\");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){var t,r,n,i,s,a;for(t=n=0,r=e.length;t<r;t++)n+=e[t].length;for(a=new Uint8Array(n),t=i=0,r=e.length;t<r;t++)s=e[t],a.set(s,i),i+=s.length;return a}},s={arraySet:function(e,t,r,n,i){for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){return[].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,i)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(n)},{}],42:[function(e,t,r){\"use strict\";var h=e(\"./common\"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(e){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){s=!1}for(var u=new h.Buf8(256),n=0;n<256;n++)u[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,h.shrinkBuf(e,t));for(var r=\"\",n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r}u[254]=u[254]=1,r.string2buf=function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=new h.Buf8(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|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},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<n;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,n,i,s,a=t||e.length,o=new Array(2*a);for(r=n=0;r<a;)if((i=e[r++])<128)o[n++]=i;else if(4<(s=u[i]))o[n++]=65533,r+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&r<a;)i=i<<6|63&e[r++],s--;1<s?o[n++]=65533:i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>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<r?2e3:r;s=s+(i=i+t[n++]|0)|0,--a;);i%=65521,s%=65521}return i|s<<16|0}},{}],44:[function(e,t,r){\"use strict\";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,r){\"use strict\";var o=function(){for(var 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,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>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)-(4<e?9:0)}function D(e){for(var t=e.length;0<=--t;)e[t]=0}function F(e){var t=e.state,r=t.pending;r>e.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]&&s<c);if(n=S-(c-s),s=c-S,a<n){if(e.match_start=t,o<=(a=n))break;d=u[s+a-1],p=u[s+a]}}}while((t=f[t&l])>h&&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<l&&(l=u),r=0===l?0:(a.avail_in-=l,c.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=d(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),e.lookahead+=r,e.lookahead+e.insert>=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+x-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<x)););}while(e.lookahead<z&&0!==e.strm.avail_in)}function Z(e,t){for(var r,n;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r)),e.match_length>=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<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=e.strstart<x-1?e.strstart:x-1,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}function W(e,t){for(var r,n,i;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=x-1,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r),e.match_length<=5&&(1===e.strategy||e.match_length===x&&4096<e.strstart-e.match_start)&&(e.match_length=x-1)),e.prev_length>=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.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=x-1,e.strstart++,n&&(N(e,!1),0===e.strm.avail_out))return A}else if(e.match_available){if((n=u._tr_tally(e,0,e.window[e.strstart-1]))&&N(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return A}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=u._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<x-1?e.strstart:x-1,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}function M(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=v,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new c.Buf16(2*w),this.dyn_dtree=new c.Buf16(2*(2*a+1)),this.bl_tree=new c.Buf16(2*(2*o+1)),D(this.dyn_ltree),D(this.dyn_dtree),D(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new c.Buf16(k+1),this.heap=new c.Buf16(2*s+1),D(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new c.Buf16(2*s+1),D(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function G(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=i,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?C:E,e.adler=2===t.wrap?0:1,t.last_flush=l,u._tr_init(t),m):R(e,_)}function K(e){var t=G(e);return t===m&&function(e){e.window_size=2*e.w_size,D(e.head),e.max_lazy_match=h[e.level].max_lazy,e.good_match=h[e.level].good_length,e.nice_match=h[e.level].nice_length,e.max_chain_length=h[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=x-1,e.match_available=0,e.ins_h=0}(e.state),t}function Y(e,t,r,n,i,s){if(!e)return _;var a=1;if(t===g&&(t=6),n<0?(a=0,n=-n):15<n&&(a=2,n-=16),i<1||y<i||r!==v||n<8||15<n||t<0||9<t||s<0||b<s)return R(e,_);8===n&&(n=9);var o=new H;return(e.state=o).strm=e,o.wrap=a,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+x-1)/x),o.window=new c.Buf8(2*o.w_size),o.head=new c.Buf16(o.hash_size),o.prev=new c.Buf16(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new c.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=s,o.method=r,K(e)}h=[new M(0,0,0,0,function(e,t){var r=65535;for(r>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<t||t<0)return e?R(e,_):_;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||666===n.status&&t!==f)return R(e,0===e.avail_out?-5:_);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===C)if(2===n.wrap)e.adler=0,U(n,31),U(n,139),U(n,8),n.gzhead?(U(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),U(n,255&n.gzhead.time),U(n,n.gzhead.time>>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.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(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.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(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&&0<e.strstart&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){s=e.strstart+S;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<s);e.match_length=S-(s-i),e.match_length>e.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<n.wrap&&(n.wrap=-n.wrap),0!==n.pending?m:1)},r.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==C&&69!==t&&73!==t&&91!==t&&103!==t&&t!==E&&666!==t?R(e,_):(e.state=null,t===E?R(e,-3):m):_},r.deflateSetDictionary=function(e,t){var r,n,i,s,a,o,h,u,l=t.length;if(!e||!e.state)return _;if(2===(s=(r=e.state).wrap)||1===s&&r.status!==C||r.lookahead)return _;for(1===s&&(e.adler=d(e.adler,t,l,0)),r.wrap=0,l>=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<<r.hash_shift^r.window[n+x-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,--i;);r.strstart=n,r.lookahead=x-1,j(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=x-1,r.match_available=0,e.next_in=o,e.input=h,e.avail_in=a,r.wrap=s,m},r.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./messages\":51,\"./trees\":52}],47:[function(e,t,r){\"use strict\";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},{}],48:[function(e,t,r){\"use strict\";t.exports=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C;r=e.state,n=e.next_in,z=e.input,i=n+(e.avail_in-5),s=e.next_out,C=e.output,a=s-(t-e.avail_out),o=s+(e.avail_out-257),h=r.dmax,u=r.wsize,l=r.whave,f=r.wnext,c=r.window,d=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,b=(1<<r.distbits)-1;e:do{p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=m[d&g];t:for(;;){if(d>>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<<y)-1)];continue t}if(32&y){r.mode=12;break e}e.msg=\"invalid literal/length code\",r.mode=30;break e}w=65535&v,(y&=15)&&(p<y&&(d+=z[n++]<<p,p+=8),w+=d&(1<<y)-1,d>>>=y,p-=y),p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=_[d&b];r:for(;;){if(d>>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<<y)-1)];continue r}e.msg=\"invalid distance code\",r.mode=30;break e}if(k=65535&v,p<(y&=15)&&(d+=z[n++]<<p,(p+=8)<y&&(d+=z[n++]<<p,p+=8)),h<(k+=d&(1<<y)-1)){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(d>>>=y,p-=y,(y=s-a)<k){if(l<(y=k-y)&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(S=c,(x=0)===f){if(x+=u-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}}else if(f<y){if(x+=u+f-y,(y-=f)<w){for(w-=y;C[s++]=c[x++],--y;);if(x=0,f<w){for(w-=y=f;C[s++]=c[x++],--y;);x=s-k,S=C}}}else if(x+=f-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}for(;2<w;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],1<w&&(C[s++]=S[x++]))}else{for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],1<w&&(C[s++]=C[x++]))}break}}break}}while(n<i&&s<o);n-=w=p>>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=s<o?o-s+257:257-(s-o),r.hold=d,r.bits=p}},{}],49:[function(e,t,r){\"use strict\";var I=e(\"../utils/common\"),O=e(\"./adler32\"),B=e(\"./crc32\"),R=e(\"./inffast\"),T=e(\"./inftrees\"),D=1,F=2,N=0,U=-2,P=1,n=852,i=592;function L(e){return(e>>>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<t)?U:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,o(e))):U}function u(e,t){var r,n;return e?(n=new s,(e.state=n).window=null,(r=h(e,t))!==N&&(e.state=null),r):U}var l,f,c=!0;function j(e){if(c){var t;for(l=new I.Buf32(512),f=new I.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(T(D,e.lens,0,288,l,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;T(F,e.lens,0,32,f,0,e.work,{bits:5}),c=!1}e.lencode=l,e.lenbits=9,e.distcode=f,e.distbits=5}function Z(e,t,r,n){var i,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),n>=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<s.wsize&&(s.whave+=i))),0}r.inflateReset=o,r.inflateReset2=h,r.inflateResetKeep=a,r.inflateInit=function(e){return u(e,15)},r.inflateInit2=u,r.inflate=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C=0,E=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return U;12===(r=e.state).mode&&(r.mode=13),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,f=o,c=h,x=N;e:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(2&r.wrap&&35615===u){E[r.check=0]=255&u,E[1]=u>>>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<<k,e.adler=r.check=1,r.mode=512&u?10:12,l=u=0;break;case 2:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.flags=u,8!=(255&r.flags)){e.msg=\"unknown compression method\",r.mode=30;break}if(57344&r.flags){e.msg=\"unknown header flags set\",r.mode=30;break}r.head&&(r.head.text=u>>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++]<<l,l+=8}r.head&&(r.head.time=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>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++]<<l,l+=8}r.head&&(r.head.xflags=255&u,r.head.os=u>>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++]<<l,l+=8}r.length=u,r.head&&(r.head.extra_len=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>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<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(65535&r.check)){e.msg=\"header crc mismatch\",r.mode=30;break}l=u=0}r.head&&(r.head.hcrc=r.flags>>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++]<<l,l+=8}e.adler=r.check=L(u),l=u=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){u>>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}switch(r.last=1&u,l-=1,3&(u>>>=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++]<<l,l+=8}if((65535&u)!=(u>>>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<d&&(d=o),h<d&&(d=h),0===d)break e;I.arraySet(i,n,s,d,a),o-=d,s+=d,h-=d,a+=d,r.length-=d;break}r.mode=12;break;case 17:for(;l<14;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.nlen=257+(31&u),u>>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286<r.nlen||30<r.ndist){e.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.lens[A[r.have++]]=7&u,u>>>=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<r.nlen+r.ndist;){for(;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(b<16)u>>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u>>>=_,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<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=3+(7&(u>>>=_)),u>>>=3,l-=3}else{for(z=_+7;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=11+(127&(u>>>=_)),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<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(g&&0==(240&g)){for(v=_,y=g,w=b;g=(C=r.lencode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=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<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length+=u&(1<<r.extra)-1,u>>>=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<<r.distbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(0==(240&g)){for(v=_,y=g,w=b;g=(C=r.distcode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=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<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.offset+=u&(1<<r.extra)-1,u>>>=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(h<d&&(d=h),h-=d,r.length-=d;i[a++]=m[p++],--d;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break e;i[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;l<32;){if(0===o)break e;o--,u|=n[s++]<<l,l+=8}if(c-=h,e.total_out+=c,r.total+=c,c&&(e.adler=r.check=r.flags?B(r.check,i,c,a-c):O(r.check,i,c,a-c)),c=h,(r.flags?u:L(u))!==r.check){e.msg=\"incorrect data check\",r.mode=30;break}l=u=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(4294967295&r.total)){e.msg=\"incorrect length check\",r.mode=30;break}l=u=0}r.mode=29;case 29:x=1;break e;case 30:x=-3;break e;case 31:return-4;case 32:default:return U}return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,(r.wsize||c!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&Z(e,e.output,e.next_out,c-e.avail_out)?(r.mode=31,-4):(f-=e.avail_in,c-=e.avail_out,e.total_in+=f,e.total_out+=c,r.total+=c,r.wrap&&c&&(e.adler=r.check=r.flags?B(r.check,i,c,e.next_out-c):O(r.check,i,c,e.next_out-c)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==f&&0===c||4===t)&&x===N&&(x=-5),x)},r.inflateEnd=function(e){if(!e||!e.state)return U;var t=e.state;return t.window&&(t.window=null),e.state=null,N},r.inflateGetHeader=function(e,t){var r;return e&&e.state?0==(2&(r=e.state).wrap)?U:((r.head=t).done=!1,N):U},r.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,t,n,0)!==r.check?-3:Z(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./inffast\":48,\"./inftrees\":50}],50:[function(e,t,r){\"use strict\";var D=e(\"../utils/common\"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,r,n,i,s,a,o){var h,u,l,f,c,d,p,m,_,g=o.bits,b=0,v=0,y=0,w=0,k=0,x=0,S=0,z=0,C=0,E=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),R=null,T=0;for(b=0;b<=15;b++)O[b]=0;for(v=0;v<n;v++)O[t[r+v]]++;for(k=g,w=15;1<=w&&0===O[w];w--);if(w<k&&(k=w),0===w)return i[s++]=20971520,i[s++]=20971520,o.bits=1,0;for(y=1;y<w&&0===O[y];y++);for(k<y&&(k=y),b=z=1;b<=15;b++)if(z<<=1,(z-=O[b])<0)return-1;if(0<z&&(0===e||1!==w))return-1;for(B[1]=0,b=1;b<15;b++)B[b+1]=B[b]+O[b];for(v=0;v<n;v++)0!==t[r+v]&&(a[B[t[r+v]]++]=v);if(d=0===e?(A=R=a,19):1===e?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,c=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===e&&852<C||2===e&&592<C)return 1;for(;;){for(p=b-S,_=a[v]<d?(m=0,a[v]):a[v]>d?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<<b-S,y=u=1<<x;i[c+(E>>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<<b-1;E&h;)h>>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k<b&&(E&f)!==l){for(0===S&&(S=k),c+=y,z=1<<(x=b-S);x+S<w&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<<x,1===e&&852<C||2===e&&592<C)return 1;i[l=E&f]=k<<24|x<<16|c-s|0}}return 0!==E&&(i[c+E]=b-S<<24|64<<16|0),o.bits=k,0}},{\"../utils/common\":41}],51:[function(e,t,r){\"use strict\";t.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],52:[function(e,t,r){\"use strict\";var i=e(\"../utils/common\"),o=0,h=1;function n(e){for(var t=e.length;0<=--t;)e[t]=0}var s=0,a=29,u=256,l=u+1+a,f=30,c=19,_=2*l+1,g=15,d=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));n(z);var C=new Array(2*f);n(C);var E=new Array(512);n(E);var A=new Array(256);n(A);var I=new Array(a);n(I);var O,B,R,T=new Array(f);function D(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function F(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function N(e){return e<256?E[e]:E[256+(e>>>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<<e.bi_valid&65535,U(e,e.bi_buf),e.bi_buf=t>>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function L(e,t,r){P(e,r[2*t],r[2*t+1])}function j(e,t){for(var r=0;r|=1&e,e>>>=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<l;t++)e.dyn_ltree[2*t]=0;for(t=0;t<f;t++)e.dyn_dtree[2*t]=0;for(t=0;t<c;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*m]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function M(e){8<e.bi_valid?U(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function H(e,t,r,n){var i=2*t,s=2*r;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]}function G(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&H(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!H(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function K(e,t,r){var n,i,s,a,o=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],i=e.pending_buf[e.l_buf+o],o++,0===n?L(e,i,t):(L(e,(s=A[i])+u+1,t),0!==(a=w[s])&&P(e,i-=I[s],a),L(e,s=N(--n),r),0!==(a=k[s])&&P(e,n-=T[s],a)),o<e.last_lit;);L(e,m,t)}function Y(e,t){var r,n,i,s=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,h=t.stat_desc.elems,u=-1;for(e.heap_len=0,e.heap_max=_,r=0;r<h;r++)0!==s[2*r]?(e.heap[++e.heap_len]=u=r,e.depth[r]=0):s[2*r+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=u<2?++u:0)]=1,e.depth[i]=0,e.opt_len--,o&&(e.static_len-=a[2*i+1]);for(t.max_code=u,r=e.heap_len>>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<n||(e.bl_count[s]++,a=0,d<=n&&(a=c[n-d]),o=h[2*n],e.opt_len+=o*(s+a),f&&(e.static_len+=o*(l[2*n+1]+a)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2}while(0<m);for(s=p;0!==s;s--)for(n=e.bl_count[s];0!==n;)u<(i=e.heap[--r])||(h[2*i+1]!==s&&(e.opt_len+=(s-h[2*i+1])*h[2*i],h[2*i+1]=s),n--)}}(e,t),Z(s,u,e.bl_count)}function X(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++o<h&&i===a||(o<u?e.bl_tree[2*i]+=o:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[2*b]++):o<=10?e.bl_tree[2*v]++:e.bl_tree[2*y]++,s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4))}function V(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),n=0;n<=r;n++)if(i=a,a=t[2*(n+1)+1],!(++o<h&&i===a)){if(o<u)for(;L(e,i,e.bl_tree),0!=--o;);else 0!==i?(i!==s&&(L(e,i,e.bl_tree),o--),L(e,b,e.bl_tree),P(e,o-3,2)):o<=10?(L(e,v,e.bl_tree),P(e,o-3,3)):(L(e,y,e.bl_tree),P(e,o-11,7));s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4)}}n(T);var q=!1;function J(e,t,r,n){P(e,(s<<1)+(n?1:0),3),function(e,t,r,n){M(e),n&&(U(e,r),U(e,~r)),i.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}(e,t,r,!0)}r._tr_init=function(e){q||(function(){var e,t,r,n,i,s=new Array(g+1);for(n=r=0;n<a-1;n++)for(I[n]=r,e=0;e<1<<w[n];e++)A[r++]=n;for(A[r-1]=n,n=i=0;n<16;n++)for(T[n]=i,e=0;e<1<<k[n];e++)E[i++]=n;for(i>>=7;n<f;n++)for(T[n]=i<<7,e=0;e<1<<k[n]-7;e++)E[256+i++]=n;for(t=0;t<=g;t++)s[t]=0;for(e=0;e<=143;)z[2*e+1]=8,e++,s[8]++;for(;e<=255;)z[2*e+1]=9,e++,s[9]++;for(;e<=279;)z[2*e+1]=7,e++,s[7]++;for(;e<=287;)z[2*e+1]=8,e++,s[8]++;for(Z(z,l+1,s),e=0;e<f;e++)C[2*e+1]=5,C[2*e]=j(e,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,c,p)}(),q=!0),e.l_desc=new F(e.dyn_ltree,O),e.d_desc=new F(e.dyn_dtree,B),e.bl_desc=new F(e.bl_tree,R),e.bi_buf=0,e.bi_valid=0,W(e)},r._tr_stored_block=J,r._tr_flush_block=function(e,t,r,n){var i,s,a=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=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<u;t++)if(0!==e.dyn_ltree[2*t])return h;return o}(e)),Y(e,e.l_desc),Y(e,e.d_desc),a=function(e){var t;for(X(e,e.dyn_ltree,e.l_desc.max_code),X(e,e.dyn_dtree,e.d_desc.max_code),Y(e,e.bl_desc),t=c-1;3<=t&&0===e.bl_tree[2*S[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>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<n;i++)P(e,e.bl_tree[2*S[i]+1],3);V(e,e.dyn_ltree,t-1),V(e,e.dyn_dtree,r-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),K(e,e.dyn_ltree,e.dyn_dtree)),W(e),n&&M(e)},r._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>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<t.length;r++)t[r]=arguments[r+1];var n={callback:e,args:t};return h[o]=n,i(o),o++},e.clearImmediate=f}function f(e){delete h[e]}function c(e){if(u)setTimeout(c,0,e);else{var t=h[e];if(t){u=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r)}}(t)}finally{f(e),u=!1}}}}function d(e){e.source===r&&\"string\"==typeof e.data&&0===e.data.indexOf(a)&&c(+e.data.slice(a.length))}}(\"undefined\"==typeof self?void 0===e?this:e:self)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[10])(10)});","/**\n * Tiny perf shim — drop-in replacement for apps/web's `../perf` so the\n * SDK doesn't have to pull in a User Timing dependency. The host can\n * wrap individual SDK calls with its own timing if it wants spans;\n * inside the SDK they're cheap no-op forwards.\n */\n\nexport function timeIt<T>(_label: string, fn: () => T): T {\n return fn();\n}\n\nexport async function timeItAsync<T>(_label: string, fn: () => Promise<T>): Promise<T> {\n return fn();\n}\n","import type { ImportedWorkbook } from './import';\n\n/**\n * Main-thread entry point for xlsx parsing. Spawns a Web Worker,\n * transfers the buffer in (zero-copy), awaits a single response,\n * terminates the worker. The buffer becomes detached on the main\n * side after transfer — callers must not reuse it.\n *\n * Why a fresh worker per parse: parses are rare (open / drop /\n * collab seed) and the worker carries a ~600 KB ExcelJS payload —\n * keeping it alive between parses would idle that memory. A pool\n * is a follow-up optimization if we see many sequential opens.\n */\n\nlet nextId = 0;\n\n// Cap the wait at 3 minutes. A multi-hundred-MB ExcelJS parse can take\n// over a minute on slow hardware; anything past 3 minutes is almost\n// certainly a hung/deadlocked worker (e.g. crashed without firing\n// `error`). Reject so the UI shows an actionable message instead of\n// spinning forever.\nconst PARSE_TIMEOUT_MS = 180_000;\n\nexport function parseXlsxInWorker(buffer: ArrayBuffer): Promise<ImportedWorkbook> {\n return new Promise((resolve, reject) => {\n const worker = new Worker(new URL('./parser.worker.ts', import.meta.url), {\n type: 'module',\n name: 'xlsx-parser',\n });\n const id = ++nextId;\n let timeoutHandle: ReturnType<typeof setTimeout> | null = null;\n const cleanup = () => {\n if (timeoutHandle !== null) clearTimeout(timeoutHandle);\n worker.terminate();\n };\n timeoutHandle = setTimeout(() => {\n cleanup();\n reject(\n new Error(\n `xlsx parser worker timed out after ${Math.round(PARSE_TIMEOUT_MS / 1000)}s. The workbook may be corrupted or too large to parse in this browser.`,\n ),\n );\n }, PARSE_TIMEOUT_MS);\n worker.addEventListener(\n 'message',\n (e: MessageEvent<{ id: number; ok: true; data: ImportedWorkbook } | { id: number; ok: false; error: string }>) => {\n const msg = e.data;\n if (msg.id !== id) return;\n cleanup();\n if (msg.ok) resolve(msg.data);\n else reject(new Error(msg.error));\n },\n );\n worker.addEventListener('error', (e) => {\n cleanup();\n // ErrorEvent.message is \"\" when the worker crashes from OOM in\n // some browsers; with no message AND no filename it's almost\n // always OOM mid-allocation. Emit a clear hint instead of the\n // useless \"(unknown)\" we used to show.\n const hasDetail = Boolean(e.message || e.filename);\n if (!hasDetail) {\n reject(\n new Error(\n 'xlsx parser worker ran out of memory parsing this file. Try a smaller workbook or close other browser tabs.',\n ),\n );\n return;\n }\n const detail = e.message || `${e.filename ?? ''}:${e.lineno ?? ''}`;\n reject(\n new Error(\n `xlsx parser worker crashed (${detail}). The workbook may be too large for this browser to allocate.`,\n ),\n );\n });\n worker.addEventListener('messageerror', () => {\n cleanup();\n reject(new Error('xlsx parser worker returned an unserializable result.'));\n });\n worker.postMessage({ id, buffer }, [buffer]);\n });\n}\n","import type { IWorkbookData } from '@univerjs/core';\nimport { timeItAsync } from './_perf';\nimport { parseXlsxInWorker } from './parse-in-worker';\n\n/**\n * Public entry point for xlsx import. The actual ExcelJS work lives in a\n * Web Worker (`parser.worker.ts` → `parse-impl.ts`) so the main thread\n * stays responsive while a multi-MB workbook is being parsed. This file\n * stays type-only on the main bundle — ExcelJS doesn't get pulled in\n * here.\n *\n * Fidelity scope (MVP):\n * - Values + formulas (cell.value / cell.formula)\n * - Font (family, size, bold, italic, underline, color)\n * - Fill (solid background)\n * - Alignment (horizontal, vertical, wrap)\n * - Number format\n * - Borders (thin, per side, color preserved)\n * - Merges\n * - Sheet order + names\n *\n * Accepts loss: charts, drawings, pivots, validation, conditional formatting,\n * data tables, comments, hyperlinks, advanced borders (dashed/double), themes.\n */\n\n/**\n * Workbook data ready to mount. Stage 5 of the pipeline folded\n * hyperlinks into `cell.p.body.customRanges` inline, so no more\n * `__pendingHyperlinks` side-channel — the snapshot is self-contained.\n */\nexport type ImportedWorkbook = IWorkbookData;\n\nexport async function xlsxToWorkbookData(buffer: ArrayBuffer): Promise<ImportedWorkbook> {\n return timeItAsync('parse-xlsx', () => parseXlsxInWorker(buffer));\n}\n","import type { IStyleData } from '@univerjs/core';\nimport type * as ExcelJS from 'exceljs';\n\n/**\n * Mappings between ExcelJS and Univer style models.\n *\n * Univer's `IStyleData` uses two-letter compact keys (bl, it, ff, fs, cl, bg,\n * ht, vt, n, ul, bd) plus numeric enums for alignment. ExcelJS uses verbose\n * keys (font.bold, alignment.horizontal, numFmt, etc.). Round-trip preserves\n * the basics; advanced styling (gradients, patterns, complex borders) falls\n * back to defaults.\n */\n\nconst ARGB_RX = /^#?([0-9A-Fa-f]{6,8})$/;\n\nfunction normalizeColor(argb: string | undefined): string | undefined {\n if (!argb) return undefined;\n const m = ARGB_RX.exec(argb);\n if (!m) return undefined;\n const hex = m[1];\n // ExcelJS uses ARGB; drop alpha if present.\n const rgb = hex.length === 8 ? hex.slice(2) : hex;\n return `#${rgb.toLowerCase()}`;\n}\n\n// Accept Univer's Nullable<string> (string | null | void) by treating any\n// non-string input as undefined.\nfunction toARGB(rgb: unknown): string | undefined {\n if (typeof rgb !== 'string' || !rgb) return undefined;\n const m = ARGB_RX.exec(rgb);\n if (!m) return undefined;\n const hex = m[1];\n const norm = hex.length === 8 ? hex : `FF${hex}`;\n return norm.toUpperCase();\n}\n\n// Univer HorizontalAlign: 0 = default, 1 = LEFT, 2 = CENTER, 3 = RIGHT\nconst H_ALIGN_FROM_EXCEL: Record<string, number> = {\n left: 1,\n center: 2,\n right: 3,\n};\nconst H_ALIGN_TO_EXCEL: Record<number, string> = {\n 1: 'left',\n 2: 'center',\n 3: 'right',\n};\n\n// Univer VerticalAlign: 0 = default, 1 = TOP, 2 = MIDDLE, 3 = BOTTOM\nconst V_ALIGN_FROM_EXCEL: Record<string, number> = {\n top: 1,\n middle: 2,\n bottom: 3,\n};\nconst V_ALIGN_TO_EXCEL: Record<number, string> = {\n 1: 'top',\n 2: 'middle',\n 3: 'bottom',\n};\n\nexport function excelStyleToUniver(cell: ExcelJS.Cell): IStyleData | undefined {\n const s: IStyleData = {};\n\n if (cell.font) {\n if (cell.font.name) s.ff = cell.font.name;\n if (cell.font.size) s.fs = cell.font.size;\n if (cell.font.bold) s.bl = 1;\n if (cell.font.italic) s.it = 1;\n if (cell.font.underline) s.ul = { s: 1 };\n const fc = normalizeColor((cell.font.color as { argb?: string } | undefined)?.argb);\n if (fc) s.cl = { rgb: fc };\n }\n\n if (cell.fill && cell.fill.type === 'pattern' && cell.fill.pattern === 'solid') {\n const bg = normalizeColor((cell.fill.fgColor as { argb?: string } | undefined)?.argb);\n if (bg) s.bg = { rgb: bg };\n }\n\n if (cell.alignment) {\n const ha = cell.alignment.horizontal;\n if (ha && H_ALIGN_FROM_EXCEL[ha] !== undefined) s.ht = H_ALIGN_FROM_EXCEL[ha];\n const va = cell.alignment.vertical;\n if (va && V_ALIGN_FROM_EXCEL[va] !== undefined) s.vt = V_ALIGN_FROM_EXCEL[va];\n if (cell.alignment.wrapText) s.tb = 3; // WrapStrategy.WRAP\n }\n\n if (cell.numFmt) s.n = { pattern: cell.numFmt };\n\n // Borders — keep simple: any side present => thin border, color from spec.\n if (cell.border) {\n const bd: NonNullable<IStyleData['bd']> = {};\n const sides: Array<['t' | 'b' | 'l' | 'r', 'top' | 'bottom' | 'left' | 'right']> = [\n ['t', 'top'],\n ['b', 'bottom'],\n ['l', 'left'],\n ['r', 'right'],\n ];\n for (const [k, key] of sides) {\n const side = (cell.border as Record<string, unknown>)[key] as\n | { style?: string; color?: { argb?: string } }\n | undefined;\n if (side?.style && side.style !== 'none') {\n bd[k] = { s: 1, cl: { rgb: normalizeColor(side.color?.argb) ?? '#666666' } };\n }\n }\n if (Object.keys(bd).length > 0) s.bd = bd;\n }\n\n return Object.keys(s).length > 0 ? s : undefined;\n}\n\nexport function univerStyleToExcel(style: IStyleData): Partial<ExcelJS.Style> {\n const out: Partial<ExcelJS.Style> = {};\n\n const font: ExcelJS.Style['font'] = {};\n if (style.ff) font.name = style.ff;\n if (style.fs) font.size = style.fs;\n if (style.bl === 1) font.bold = true;\n if (style.it === 1) font.italic = true;\n if (style.ul?.s === 1) font.underline = true;\n if (style.cl && typeof style.cl === 'object' && 'rgb' in style.cl) {\n const argb = toARGB(style.cl.rgb);\n if (argb) font.color = { argb };\n }\n if (Object.keys(font).length > 0) out.font = font;\n\n if (style.bg && typeof style.bg === 'object' && 'rgb' in style.bg) {\n const argb = toARGB(style.bg.rgb);\n if (argb) {\n out.fill = {\n type: 'pattern',\n pattern: 'solid',\n fgColor: { argb },\n };\n }\n }\n\n const alignment: ExcelJS.Style['alignment'] = {};\n if (style.ht && H_ALIGN_TO_EXCEL[style.ht]) {\n alignment.horizontal = H_ALIGN_TO_EXCEL[style.ht] as ExcelJS.Style['alignment']['horizontal'];\n }\n if (style.vt && V_ALIGN_TO_EXCEL[style.vt]) {\n alignment.vertical = V_ALIGN_TO_EXCEL[style.vt] as ExcelJS.Style['alignment']['vertical'];\n }\n if (style.tb === 3) alignment.wrapText = true;\n if (Object.keys(alignment).length > 0) out.alignment = alignment;\n\n if (style.n?.pattern) out.numFmt = style.n.pattern;\n\n if (style.bd) {\n const border: ExcelJS.Style['border'] = {};\n const sides: Array<['t' | 'b' | 'l' | 'r', 'top' | 'bottom' | 'left' | 'right']> = [\n ['t', 'top'],\n ['b', 'bottom'],\n ['l', 'left'],\n ['r', 'right'],\n ];\n for (const [k, key] of sides) {\n const side = style.bd[k];\n if (!side) continue;\n const color = side.cl && 'rgb' in side.cl ? toARGB(side.cl.rgb) : undefined;\n (border as Record<string, unknown>)[key] = {\n style: 'thin',\n ...(color ? { color: { argb: color } } : {}),\n };\n }\n if (Object.keys(border).length > 0) out.border = border;\n }\n\n return out;\n}\n","/**\n * Name of a hidden worksheet we use to stash JSON we can't represent\n * natively in xlsx (Univer plugin state — e.g. table definitions, outline\n * groups). On open we recognize and consume it, never showing it to the\n * user. Defined in its own module so both the parser worker and the\n * exporter worker can import it without dragging the other one's\n * ExcelJS code into their bundle.\n */\nexport const RESOURCES_SHEET = '__casual_sheets_resources__';\n","import type ExcelJS from 'exceljs';\nimport type { IWorkbookData } from '@univerjs/core';\n\n/**\n * xlsx-native `cell.note` ⇄ Univer `thread-comment` resource bridge.\n *\n * Comments in xlsx live on the cell itself (`xl/comments<N>.xml`).\n * Univer's thread-comment plugin stores them in a workbook-level\n * resource keyed by sheet id under the name below — same\n * registration pattern as defined-names. Each side of the round-trip\n * has to translate to the shape the other one expects:\n *\n * xlsx cell.note (string | { texts: [{ text }] })\n * ⇅\n * { dataStream: \"<text>\\r\\n\" } (Univer IDocumentBody minimal form)\n *\n * Why this exists separately from the parser/exporter modules:\n * 1. Two-sided code lives next to itself so the inverse stays\n * obvious. The audit test fails the moment one side drifts.\n * 2. The `IThreadComment` row builder is non-trivial and reused\n * verbatim on both sides — extracting it keeps parse-impl and\n * export-impl from carrying near-duplicate shape definitions.\n */\n\n// Mirrors vendor/univer/packages/thread-comment/src/controllers/tc-resource.controller.ts:25\n// — the resource registration name the plugin's controller subscribes\n// to at workbook load. Hard-coding instead of importing avoids pulling\n// the plugin into the xlsx worker bundle (thread-comment ships UI deps\n// that don't tree-shake cleanly in a Worker context).\nexport const THREAD_COMMENT_RESOURCE = 'SHEET_UNIVER_THREAD_COMMENT_PLUGIN';\n\n// Minimal subset of Univer's `IThreadComment` we synthesise. The\n// plugin populates the rest (children, mentions, resolved) on\n// subsequent edits; xlsx-native comments don't carry any of them.\nexport type SynthComment = {\n id: string;\n threadId: string;\n ref: string; // \"B2\" style\n dT: string; // ISO date\n personId: string;\n text: { dataStream: string };\n unitId: string;\n subUnitId: string;\n // children: [] on import — Univer's controller tolerates this\n // because `addComment` of a root with no children is the normal\n // create path.\n children?: never[];\n};\n\nconst PERSON_FROM_XLSX = 'imported';\n\nfunction colToLetters(n: number): string {\n let out = '';\n let v = n;\n while (v >= 0) {\n out = String.fromCharCode(65 + (v % 26)) + out;\n v = Math.floor(v / 26) - 1;\n }\n return out;\n}\n\nfunction refOf(row: number, column: number): string {\n return `${colToLetters(column)}${row + 1}`;\n}\n\nfunction noteToString(note: unknown): string | null {\n if (typeof note === 'string') return note.trim() ? note : null;\n if (note && typeof note === 'object') {\n // ExcelJS's expanded shape: { texts: [{ text }] }. Fall back to\n // `.text` if a single-string variant came back through some\n // odder code path.\n const texts = (note as { texts?: Array<{ text?: string }> }).texts;\n if (Array.isArray(texts)) {\n const joined = texts.map((t) => t?.text ?? '').join('');\n return joined.trim() ? joined : null;\n }\n }\n return null;\n}\n\n/**\n * Walk every worksheet and collect xlsx-native `cell.note` entries\n * into a Univer thread-comment resource payload. The synthesised IDs\n * and dates aren't stable — re-opening the same file produces new\n * ones — which is fine for the use cases we care about (comments\n * survive the round-trip; nobody is referring to them by id).\n */\nexport function readCommentsFromXlsx(\n wb: ExcelJS.Workbook,\n unitId: string,\n sheetIdForExcel: (excelId: number) => string,\n): Record<string, SynthComment[]> {\n const out: Record<string, SynthComment[]> = {};\n let seq = 0;\n const nowIso = new Date().toISOString();\n\n for (const ws of wb.worksheets) {\n const subUnitId = sheetIdForExcel(ws.id);\n const bucket: SynthComment[] = [];\n ws.eachRow({ includeEmpty: false }, (row, rowNumber) => {\n row.eachCell({ includeEmpty: false }, (cell, colNumber) => {\n // ExcelJS exposes notes on cells with comments — the field is\n // missing entirely on the vast majority of cells, so iterating\n // every cell is cheap.\n const note = (cell as unknown as { note?: unknown }).note;\n const text = noteToString(note);\n if (!text) return;\n const id = `xc-${unitId}-${seq++}`;\n bucket.push({\n id,\n threadId: id, // single-comment thread; thread id = root id\n ref: refOf(rowNumber - 1, colNumber - 1),\n dT: nowIso,\n personId: PERSON_FROM_XLSX,\n // Univer's body convention terminates with `\\r\\n` (one paragraph).\n // Without it the cursor in the panel jumps a column on first\n // open of the comment.\n text: { dataStream: `${text}\\r\\n` },\n unitId,\n subUnitId,\n children: [],\n });\n });\n });\n if (bucket.length > 0) out[subUnitId] = bucket;\n }\n\n return out;\n}\n\n/**\n * Merge a synthesised comment payload into the workbook's `resources`\n * array. Skipped when the workbook already carries a thread-comment\n * resource from our hidden sidecar (`__casual_sheets_resources__`) —\n * that one has the full plugin shape; we shouldn't clobber it with a\n * lossy xlsx-native re-derivation.\n */\nexport function mergeCommentsIntoResources(\n resources: IWorkbookData['resources'],\n comments: Record<string, SynthComment[]>,\n): IWorkbookData['resources'] {\n if (Object.keys(comments).length === 0) return resources;\n const existing = resources?.find((r) => r.name === THREAD_COMMENT_RESOURCE);\n if (existing) return resources;\n const next = [...(resources ?? [])];\n next.push({\n name: THREAD_COMMENT_RESOURCE,\n data: JSON.stringify(comments),\n });\n return next;\n}\n\n/**\n * Read the thread-comment resource off a snapshot. Tolerant of older\n * / missing / malformed payloads — those cases return `{}` so the\n * exporter just skips writing notes rather than throwing on save.\n */\nexport function readCommentsFromSnapshot(\n data: IWorkbookData,\n): Record<string, SynthComment[]> {\n const entry = data.resources?.find((r) => r.name === THREAD_COMMENT_RESOURCE);\n if (!entry?.data) return {};\n try {\n const parsed = JSON.parse(entry.data) as Record<string, unknown>;\n if (!parsed || typeof parsed !== 'object') return {};\n const out: Record<string, SynthComment[]> = {};\n for (const [sheetId, value] of Object.entries(parsed)) {\n if (!Array.isArray(value)) continue;\n const bucket: SynthComment[] = [];\n for (const c of value) {\n if (!c || typeof c !== 'object') continue;\n const obj = c as Record<string, unknown>;\n const text = (obj.text as { dataStream?: string } | undefined)?.dataStream;\n const ref = typeof obj.ref === 'string' ? obj.ref : null;\n if (!ref || typeof text !== 'string') continue;\n bucket.push(c as SynthComment);\n }\n if (bucket.length > 0) out[sheetId] = bucket;\n }\n return out;\n } catch {\n return {};\n }\n}\n\n/**\n * Extract the plain string from a Univer comment body. Strips the\n * trailing `\\r\\n` (or `\\n`) that the body convention appends so the\n * xlsx-side note doesn't show as a blank line below the text in\n * Excel's pop-up.\n */\nexport function commentBodyToString(body: SynthComment['text']): string {\n const s = body?.dataStream ?? '';\n return s.replace(/[\\r\\n]+$/, '');\n}\n\n/**\n * Parse an \"A1\"-style ref back to a zero-based (row, col). Falls back\n * to (-1, -1) on malformed input — exporter callers should skip in\n * that case.\n */\nexport function refToRowCol(ref: string): { row: number; column: number } {\n const m = /^([A-Z]+)(\\d+)$/.exec(ref);\n if (!m) return { row: -1, column: -1 };\n const letters = m[1];\n let col = 0;\n for (let i = 0; i < letters.length; i++) col = col * 26 + (letters.charCodeAt(i) - 64);\n return { row: Number(m[2]) - 1, column: col - 1 };\n}\n","import type ExcelJS from 'exceljs';\nimport type { IWorkbookData } from '@univerjs/core';\n\n/**\n * Passthrough preservation for xlsx-native page-setup chrome —\n * orientation, paper size, margins, header/footer text. Univer\n * doesn't model any of this; the print dialog uses a per-user\n * localStorage slot. Without a passthrough, opening an xlsx that\n * was authored to print landscape and saving it again silently\n * resets to portrait.\n *\n * The round-trip stays inside our own resource sidecar\n * (`__casual_sheets_page_setup__`) — the data never reaches Univer\n * for editing; the parser stashes it on `IWorkbookData.resources`\n * and the exporter reads it back and applies to ExcelJS's native\n * `worksheet.pageSetup` + `worksheet.headerFooter`.\n *\n * If/when we add an in-app Page Setup editor, this resource is the\n * authoritative store — the localStorage fallback is per-user and\n * can't survive Save → Open in another tab.\n */\n\nexport const PAGE_SETUP_RESOURCE = '__casual_sheets_page_setup__';\n\nexport type SheetPageSetupV1 = {\n orientation?: 'landscape' | 'portrait';\n paperSize?: number;\n fitToPage?: boolean;\n fitToWidth?: number;\n fitToHeight?: number;\n scale?: number;\n printArea?: string;\n margins?: {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n header?: number;\n footer?: number;\n };\n headerFooter?: {\n oddHeader?: string;\n oddFooter?: string;\n evenHeader?: string;\n evenFooter?: string;\n differentFirst?: boolean;\n differentOddEven?: boolean;\n };\n};\n\ntype Payload = {\n v: 1;\n sheets: Record<string, SheetPageSetupV1>;\n};\n\nfunction isLandscape(o: unknown): o is 'landscape' {\n return o === 'landscape';\n}\n\n// ExcelJS materialises a default page-setup + margins object on every\n// worksheet during load, even when the source xlsx never authored one.\n// Capturing those defaults would write a `__casual_sheets_page_setup__`\n// resource to every workbook that opens here — visible noise in\n// snapshot diffs and a failing assertion in `xlsx-hyperlinks.spec.ts`'s\n// resources round-trip probe. Drop them so the sidecar only appears\n// when the user (or the source xlsx) authored a non-default value.\nconst PAGE_SETUP_DEFAULTS = {\n orientation: 'portrait' as const,\n fitToPage: false,\n fitToWidth: 1,\n fitToHeight: 1,\n scale: 100,\n};\nconst MARGIN_DEFAULTS = {\n top: 0.75,\n bottom: 0.75,\n left: 0.7,\n right: 0.7,\n header: 0.3,\n footer: 0.3,\n};\n\n/**\n * Walk the xlsx worksheets and pull each one's page-setup + header\n * /footer into a sidecar payload. Empty entries are dropped so the\n * resource isn't written for files that didn't carry any chrome.\n */\nexport function readPageSetupFromXlsx(\n wb: ExcelJS.Workbook,\n sheetIdForExcel: (excelId: number) => string,\n): Record<string, SheetPageSetupV1> {\n const out: Record<string, SheetPageSetupV1> = {};\n for (const ws of wb.worksheets) {\n const ps = (ws as unknown as { pageSetup?: Record<string, unknown> }).pageSetup;\n const hf = (ws as unknown as { headerFooter?: Record<string, unknown> }).headerFooter;\n const entry: SheetPageSetupV1 = {};\n\n if (ps && typeof ps === 'object') {\n // Only `landscape` matters — `portrait` is the xlsx default and\n // would otherwise tag every workbook with a sidecar.\n if (isLandscape(ps.orientation)) entry.orientation = 'landscape';\n if (typeof ps.paperSize === 'number') entry.paperSize = ps.paperSize;\n if (ps.fitToPage === true) entry.fitToPage = true;\n if (typeof ps.fitToWidth === 'number' && ps.fitToWidth !== PAGE_SETUP_DEFAULTS.fitToWidth) {\n entry.fitToWidth = ps.fitToWidth as number;\n }\n if (typeof ps.fitToHeight === 'number' && ps.fitToHeight !== PAGE_SETUP_DEFAULTS.fitToHeight) {\n entry.fitToHeight = ps.fitToHeight as number;\n }\n if (typeof ps.scale === 'number' && ps.scale !== PAGE_SETUP_DEFAULTS.scale) {\n entry.scale = ps.scale as number;\n }\n if (typeof ps.printArea === 'string') entry.printArea = ps.printArea as string;\n const margins = ps.margins as Record<string, unknown> | undefined;\n if (margins && typeof margins === 'object') {\n const m: SheetPageSetupV1['margins'] = {};\n for (const k of ['top', 'bottom', 'left', 'right', 'header', 'footer'] as const) {\n const v = margins[k];\n if (typeof v === 'number' && v !== MARGIN_DEFAULTS[k]) m[k] = v;\n }\n if (Object.keys(m).length > 0) entry.margins = m;\n }\n }\n\n if (hf && typeof hf === 'object') {\n const headerFooter: SheetPageSetupV1['headerFooter'] = {};\n for (const k of ['oddHeader', 'oddFooter', 'evenHeader', 'evenFooter'] as const) {\n const v = hf[k];\n if (typeof v === 'string' && v.length > 0) headerFooter[k] = v as string;\n }\n if (hf.differentFirst === true) headerFooter.differentFirst = true;\n if (hf.differentOddEven === true) headerFooter.differentOddEven = true;\n if (Object.keys(headerFooter).length > 0) entry.headerFooter = headerFooter;\n }\n\n if (Object.keys(entry).length > 0) {\n out[sheetIdForExcel(ws.id)] = entry;\n }\n }\n return out;\n}\n\n/** Merge a synthesised page-setup map into the snapshot resources. */\nexport function mergePageSetupIntoResources(\n resources: IWorkbookData['resources'],\n payload: Record<string, SheetPageSetupV1>,\n): IWorkbookData['resources'] {\n if (Object.keys(payload).length === 0) return resources;\n const existing = resources?.find((r) => r.name === PAGE_SETUP_RESOURCE);\n if (existing) return resources;\n const body: Payload = { v: 1, sheets: payload };\n const next = [...(resources ?? [])];\n next.push({ name: PAGE_SETUP_RESOURCE, data: JSON.stringify(body) });\n return next;\n}\n\n/** Read the page-setup resource off a snapshot. Tolerant of older /\n * missing / malformed payloads. */\nexport function readPageSetupFromSnapshot(\n data: IWorkbookData,\n): Record<string, SheetPageSetupV1> {\n const entry = data.resources?.find((r) => r.name === PAGE_SETUP_RESOURCE);\n if (!entry?.data) return {};\n try {\n const parsed = JSON.parse(entry.data) as Partial<Payload>;\n if (parsed?.v !== 1 || !parsed.sheets) return {};\n return parsed.sheets;\n } catch {\n return {};\n }\n}\n\n/** Apply a per-sheet entry onto an ExcelJS worksheet. */\nexport function applyPageSetupToXlsxWorksheet(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ws: any,\n entry: SheetPageSetupV1,\n): void {\n if (!entry) return;\n ws.pageSetup = ws.pageSetup ?? {};\n if (entry.orientation) ws.pageSetup.orientation = entry.orientation;\n if (typeof entry.paperSize === 'number') ws.pageSetup.paperSize = entry.paperSize;\n if (typeof entry.fitToPage === 'boolean') ws.pageSetup.fitToPage = entry.fitToPage;\n if (typeof entry.fitToWidth === 'number') ws.pageSetup.fitToWidth = entry.fitToWidth;\n if (typeof entry.fitToHeight === 'number') ws.pageSetup.fitToHeight = entry.fitToHeight;\n if (typeof entry.scale === 'number') ws.pageSetup.scale = entry.scale;\n if (typeof entry.printArea === 'string') ws.pageSetup.printArea = entry.printArea;\n if (entry.margins) {\n ws.pageSetup.margins = { ...(ws.pageSetup.margins ?? {}), ...entry.margins };\n }\n\n if (entry.headerFooter) {\n ws.headerFooter = ws.headerFooter ?? {};\n for (const k of ['oddHeader', 'oddFooter', 'evenHeader', 'evenFooter'] as const) {\n const v = entry.headerFooter[k];\n if (typeof v === 'string') ws.headerFooter[k] = v;\n }\n if (typeof entry.headerFooter.differentFirst === 'boolean') {\n ws.headerFooter.differentFirst = entry.headerFooter.differentFirst;\n }\n if (typeof entry.headerFooter.differentOddEven === 'boolean') {\n ws.headerFooter.differentOddEven = entry.headerFooter.differentOddEven;\n }\n }\n}\n","import type ExcelJS from 'exceljs';\nimport type { IRange, IWorkbookData } from '@univerjs/core';\n\n/**\n * xlsx-native `worksheet.dataValidations` ⇄ Univer\n * `SHEET_DATA_VALIDATION_PLUGIN` resource bridge.\n *\n * Data-validation rules live on the worksheet in xlsx (`xl/worksheets/\n * sheetN.xml` `<dataValidations>` element). Univer's data-validation\n * plugin keeps them in a resource keyed by sheet id under the name\n * below — same registration pattern as defined-names and\n * thread-comments. We mirror in both directions so:\n *\n * - a file authored in real Excel keeps its list / whole / date /\n * decimal constraints when opened here (parser fall-back)\n * - our save round-trip preserves the rule even when the exporter\n * is called without the live `extras` from the running app — eg.\n * the audit harness drives `parse → snapshot → export` only.\n *\n * Resource name matches Univer's plugin (`vendor/univer/packages/\n * data-validation/src/controllers/dv-resource.controller.ts:23`) so\n * the rules live-load into the plugin on re-open instead of just\n * sitting in our sidecar — bonus on top of the round-trip.\n */\n\nexport const DATA_VALIDATION_RESOURCE = 'SHEET_DATA_VALIDATION_PLUGIN';\n\nexport type SynthDvRule = {\n uid: string;\n type: string; // 'list' | 'whole' | 'decimal' | 'date' | 'time' | 'textLength' | 'custom' | 'any'\n ranges: IRange[];\n formula1?: string;\n formula2?: string;\n operator?: string;\n allowBlank?: boolean;\n error?: string;\n errorTitle?: string;\n showErrorMessage?: boolean;\n errorStyle?: string;\n prompt?: string;\n promptTitle?: string;\n showInputMessage?: boolean;\n};\n\nfunction lettersToCol(letters: string): number {\n let col = 0;\n for (let i = 0; i < letters.length; i++) col = col * 26 + (letters.charCodeAt(i) - 64);\n return col - 1;\n}\n\nfunction colToLetters(n: number): string {\n let out = '';\n let v = n;\n while (v >= 0) {\n out = String.fromCharCode(65 + (v % 26)) + out;\n v = Math.floor(v / 26) - 1;\n }\n return out;\n}\n\n/**\n * Parse a single ExcelJS range token (`'D2:D4'` or `'$A$1'`) into an\n * IRange. Returns null on malformed input — callers should skip.\n */\nfunction rangeStrToIRange(s: string): IRange | null {\n const part = s.includes('!') ? (s.split('!').pop() ?? s) : s;\n const m = /^\\$?([A-Z]+)\\$?(\\d+)(?::\\$?([A-Z]+)\\$?(\\d+))?$/.exec(part.trim());\n if (!m) return null;\n const c0 = lettersToCol(m[1]);\n const r0 = Number(m[2]) - 1;\n const c1 = m[3] ? lettersToCol(m[3]) : c0;\n const r1 = m[4] ? Number(m[4]) - 1 : r0;\n return { startRow: r0, endRow: r1, startColumn: c0, endColumn: c1 };\n}\n\nfunction iRangeToStr(r: IRange): string {\n const a = `${colToLetters(r.startColumn)}${r.startRow + 1}`;\n const b = `${colToLetters(r.endColumn)}${r.endRow + 1}`;\n return a === b ? a : `${a}:${b}`;\n}\n\n/**\n * Walk every worksheet and lift its `dataValidations.model` into the\n * synthesised plugin shape. ExcelJS stores rules keyed by a range\n * string that may be space-separated when a single rule covers\n * multiple ranges; we expand those into the `ranges` array.\n */\nexport function readDataValidationFromXlsx(\n wb: ExcelJS.Workbook,\n sheetIdForExcel: (excelId: number) => string,\n): Record<string, SynthDvRule[]> {\n const out: Record<string, SynthDvRule[]> = {};\n let seq = 0;\n for (const ws of wb.worksheets) {\n const dv = (ws as unknown as { dataValidations?: { model?: Record<string, unknown> } })\n .dataValidations;\n const model = dv?.model;\n if (!model || typeof model !== 'object') continue;\n\n const rules: SynthDvRule[] = [];\n for (const [rangeStr, specUnknown] of Object.entries(model)) {\n const spec = specUnknown as Record<string, unknown>;\n if (!spec || typeof spec !== 'object') continue;\n const ranges: IRange[] = [];\n // ExcelJS keys can be `'D2:D4'`, `'D2:D4 F2:F4'`, or comma-joined.\n for (const piece of rangeStr.split(/[\\s,]+/)) {\n const r = rangeStrToIRange(piece);\n if (r) ranges.push(r);\n }\n if (ranges.length === 0) continue;\n\n const formulae = Array.isArray(spec.formulae) ? (spec.formulae as unknown[]) : undefined;\n const rule: SynthDvRule = {\n uid: `dv-${seq++}`,\n type: typeof spec.type === 'string' ? spec.type : 'any',\n ranges,\n ...(typeof formulae?.[0] === 'string' ? { formula1: formulae[0] } : {}),\n ...(typeof formulae?.[1] === 'string' ? { formula2: formulae[1] } : {}),\n ...(typeof spec.operator === 'string' ? { operator: spec.operator } : {}),\n ...(typeof spec.allowBlank === 'boolean' ? { allowBlank: spec.allowBlank } : {}),\n ...(typeof spec.error === 'string' ? { error: spec.error } : {}),\n ...(typeof spec.errorTitle === 'string' ? { errorTitle: spec.errorTitle } : {}),\n ...(typeof spec.showErrorMessage === 'boolean'\n ? { showErrorMessage: spec.showErrorMessage }\n : {}),\n ...(typeof spec.errorStyle === 'string' ? { errorStyle: spec.errorStyle } : {}),\n ...(typeof spec.prompt === 'string' ? { prompt: spec.prompt } : {}),\n ...(typeof spec.promptTitle === 'string' ? { promptTitle: spec.promptTitle } : {}),\n ...(typeof spec.showInputMessage === 'boolean'\n ? { showInputMessage: spec.showInputMessage }\n : {}),\n };\n rules.push(rule);\n }\n if (rules.length > 0) out[sheetIdForExcel(ws.id)] = rules;\n }\n return out;\n}\n\n/**\n * Merge a synthesised DV map into the workbook's `resources` array.\n * Skipped when the workbook already carries the plugin resource (from\n * our hidden sidecar) — that one came through Univer's model and has\n * the full rule shape; xlsx-derived rules are a strict subset.\n */\nexport function mergeDataValidationIntoResources(\n resources: IWorkbookData['resources'],\n payload: Record<string, SynthDvRule[]>,\n): IWorkbookData['resources'] {\n if (Object.keys(payload).length === 0) return resources;\n const existing = resources?.find((r) => r.name === DATA_VALIDATION_RESOURCE);\n if (existing) return resources;\n const next = [...(resources ?? [])];\n next.push({ name: DATA_VALIDATION_RESOURCE, data: JSON.stringify(payload) });\n return next;\n}\n\n/** Read the DV resource off a snapshot. Tolerant of older / missing /\n * malformed payloads. */\nexport function readDataValidationFromSnapshot(\n data: IWorkbookData,\n): Record<string, SynthDvRule[]> {\n const entry = data.resources?.find((r) => r.name === DATA_VALIDATION_RESOURCE);\n if (!entry?.data) return {};\n try {\n const parsed = JSON.parse(entry.data) as Record<string, unknown>;\n if (!parsed || typeof parsed !== 'object') return {};\n const out: Record<string, SynthDvRule[]> = {};\n for (const [sheetId, value] of Object.entries(parsed)) {\n if (!Array.isArray(value)) continue;\n const bucket: SynthDvRule[] = [];\n for (const r of value) {\n if (!r || typeof r !== 'object') continue;\n const obj = r as Record<string, unknown>;\n if (!Array.isArray(obj.ranges) || typeof obj.type !== 'string') continue;\n bucket.push(r as SynthDvRule);\n }\n if (bucket.length > 0) out[sheetId] = bucket;\n }\n return out;\n } catch {\n return {};\n }\n}\n\n/** Apply a per-sheet rule set onto an ExcelJS worksheet. */\nexport function applyDataValidationToXlsxWorksheet(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ws: any,\n rules: SynthDvRule[],\n): void {\n if (!rules?.length) return;\n for (const rule of rules) {\n const formulae: string[] = [];\n if (rule.formula1 !== undefined) formulae.push(rule.formula1);\n if (rule.formula2 !== undefined) formulae.push(rule.formula2);\n const spec: Record<string, unknown> = {\n type: rule.type,\n ...(formulae.length ? { formulae } : {}),\n ...(rule.operator ? { operator: rule.operator } : {}),\n ...(rule.allowBlank !== undefined ? { allowBlank: rule.allowBlank } : {}),\n ...(rule.error !== undefined ? { error: rule.error } : {}),\n ...(rule.errorTitle !== undefined ? { errorTitle: rule.errorTitle } : {}),\n ...(rule.showErrorMessage !== undefined ? { showErrorMessage: rule.showErrorMessage } : {}),\n ...(rule.errorStyle !== undefined ? { errorStyle: rule.errorStyle } : {}),\n ...(rule.prompt !== undefined ? { prompt: rule.prompt } : {}),\n ...(rule.promptTitle !== undefined ? { promptTitle: rule.promptTitle } : {}),\n ...(rule.showInputMessage !== undefined ? { showInputMessage: rule.showInputMessage } : {}),\n };\n for (const range of rule.ranges) {\n try {\n ws.dataValidations.add(iRangeToStr(range), spec);\n } catch {\n // Bad ranges (eg. references into a now-deleted sheet) shouldn't\n // kill the export. Drop the entry quietly; the rest still ship.\n }\n }\n }\n}\n","import type ExcelJS from 'exceljs';\nimport type { IWorkbookData } from '@univerjs/core';\n\n/**\n * Passthrough preservation for xlsx ListObjects (a.k.a. Excel Tables).\n * Univer doesn't model tables as first-class objects — autofilters and\n * structured-reference parsing aren't there yet — so without a\n * passthrough, opening an xlsx that ships a defined table and saving\n * it again would silently strip the table back to plain cells.\n *\n * Data lives in our own sidecar (`__casual_sheets_tables__`); on\n * export we replay `ws.addTable(...)` so the saved file shows the\n * table to any reader (real Excel, gsheets, LibreOffice).\n *\n * When/if Univer grows native table support, this resource is the\n * place to switch from sidecar to plugin shape — readers of older\n * files keep working because the sidecar is forward-compatible.\n */\n\nexport const TABLES_RESOURCE = '__casual_sheets_tables__';\n\nexport type SynthTableColumn = {\n name: string;\n filterButton?: boolean;\n totalsRowFunction?: string;\n totalsRowLabel?: string;\n totalsRowFormula?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n style?: any;\n};\n\nexport type SynthTableV1 = {\n name: string;\n ref: string; // 'A1' or 'A1:C4'\n displayName?: string;\n headerRow?: boolean;\n totalsRow?: boolean;\n style?: {\n theme?: string;\n name?: string;\n showRowStripes?: boolean;\n showColumnStripes?: boolean;\n showFirstColumn?: boolean;\n showLastColumn?: boolean;\n };\n columns: SynthTableColumn[];\n rows: unknown[][];\n};\n\ntype Payload = {\n v: 1;\n sheets: Record<string, SynthTableV1[]>;\n};\n\n/**\n * Walk every worksheet and lift any defined tables into the sidecar\n * payload. ExcelJS stores tables on `ws.tables` keyed by table name;\n * each value is a Table *instance* whose actual fields hang off\n * `t.model` (`node_modules/exceljs/lib/doc/table.js:275`). Two\n * gotchas the parser must handle:\n *\n * 1. After `xlsx.load`, the model uses `tableRef` (full range) and\n * drops `ref` (the original top-left author hint). We coalesce\n * onto `ref` as a single canonical full-range string.\n * 2. The loaded model never carries `rows` — table cell data is\n * already on the worksheet. We don't need rows to round-trip.\n */\nexport function readTablesFromXlsx(\n wb: ExcelJS.Workbook,\n sheetIdForExcel: (excelId: number) => string,\n): Record<string, SynthTableV1[]> {\n const out: Record<string, SynthTableV1[]> = {};\n for (const ws of wb.worksheets) {\n const tableMap = (ws as unknown as { tables?: Record<string, unknown> | Map<string, unknown> })\n .tables;\n if (!tableMap) continue;\n const entries: unknown[] = tableMap instanceof Map\n ? Array.from(tableMap.values())\n : Object.values(tableMap);\n if (entries.length === 0) continue;\n\n const tables: SynthTableV1[] = [];\n for (const tUnknown of entries) {\n const tInstance = tUnknown as { model?: unknown };\n const modelUnknown = (tInstance && typeof tInstance === 'object' && 'model' in tInstance)\n ? tInstance.model\n : tUnknown;\n const model = modelUnknown as Record<string, unknown>;\n if (!model || typeof model !== 'object') continue;\n const name = model.name;\n // Prefer the post-load `tableRef` (full range, eg `'A1:B3'`).\n // Fall back to `ref` for tables that were `addTable`d in-process\n // and never made the round-trip through xform load.\n const refStr = typeof model.tableRef === 'string'\n ? model.tableRef\n : typeof model.ref === 'string'\n ? model.ref\n : null;\n if (typeof name !== 'string' || !refStr) continue;\n\n const cols: SynthTableColumn[] = Array.isArray(model.columns)\n ? (model.columns as unknown[]).map((cUnknown) => {\n const c = cUnknown as Record<string, unknown>;\n return {\n name: typeof c?.name === 'string' ? c.name : '',\n ...(typeof c?.filterButton === 'boolean' ? { filterButton: c.filterButton } : {}),\n ...(typeof c?.totalsRowFunction === 'string'\n ? { totalsRowFunction: c.totalsRowFunction }\n : {}),\n ...(typeof c?.totalsRowLabel === 'string'\n ? { totalsRowLabel: c.totalsRowLabel }\n : {}),\n ...(typeof c?.totalsRowFormula === 'string'\n ? { totalsRowFormula: c.totalsRowFormula }\n : {}),\n };\n })\n : [];\n\n tables.push({\n name,\n ref: refStr,\n ...(typeof model.displayName === 'string' ? { displayName: model.displayName } : {}),\n ...(typeof model.headerRow === 'boolean' ? { headerRow: model.headerRow } : {}),\n ...(typeof model.totalsRow === 'boolean' ? { totalsRow: model.totalsRow } : {}),\n ...(model.style && typeof model.style === 'object'\n ? { style: model.style as SynthTableV1['style'] }\n : {}),\n columns: cols,\n rows: [],\n });\n }\n if (tables.length > 0) out[sheetIdForExcel(ws.id)] = tables;\n }\n return out;\n}\n\n/** Merge a synthesised table map into the snapshot resources. */\nexport function mergeTablesIntoResources(\n resources: IWorkbookData['resources'],\n payload: Record<string, SynthTableV1[]>,\n): IWorkbookData['resources'] {\n if (Object.keys(payload).length === 0) return resources;\n const existing = resources?.find((r) => r.name === TABLES_RESOURCE);\n if (existing) return resources;\n const body: Payload = { v: 1, sheets: payload };\n const next = [...(resources ?? [])];\n next.push({ name: TABLES_RESOURCE, data: JSON.stringify(body) });\n return next;\n}\n\n/** Read the tables resource off a snapshot. */\nexport function readTablesFromSnapshot(\n data: IWorkbookData,\n): Record<string, SynthTableV1[]> {\n const entry = data.resources?.find((r) => r.name === TABLES_RESOURCE);\n if (!entry?.data) return {};\n try {\n const parsed = JSON.parse(entry.data) as Partial<Payload>;\n if (parsed?.v !== 1 || !parsed.sheets) return {};\n return parsed.sheets;\n } catch {\n return {};\n }\n}\n\n/**\n * Apply a per-sheet table set onto an ExcelJS worksheet.\n *\n * Why this bypasses `ws.addTable(...)`:\n *\n * `Table.validate()` (`node_modules/exceljs/lib/doc/table.js:129`)\n * throws when `table.rows` is missing — but our round-trip case\n * doesn't carry rows (cell data already lives in `cellData`). And\n * `Table.store()` would *re-write* every cell from the rows\n * array, clobbering whatever the user had set after the table was\n * created. So instead of going through `addTable`, we attach the\n * load-shape model directly the same way ExcelJS's worksheet xform\n * setter does on load (`node_modules/exceljs/lib/doc/worksheet.js:\n * 917`). The serializer then walks `Object.values(ws.tables).map(t\n * => t.model)` (`worksheet.js:856`) and writes the table parts —\n * `target` + `id` are filled in by `xlsx.js:632` during prepare.\n */\nexport function applyTablesToXlsxWorksheet(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ws: any,\n tables: SynthTableV1[],\n): void {\n if (!tables?.length) return;\n ws.tables = ws.tables ?? {};\n for (const t of tables) {\n if (!t?.name || !t?.ref || !Array.isArray(t.columns) || t.columns.length === 0) continue;\n const model: Record<string, unknown> = {\n name: t.name,\n displayName: t.displayName ?? t.name,\n tableRef: t.ref,\n autoFilterRef: t.ref,\n headerRow: t.headerRow ?? true,\n totalsRow: t.totalsRow ?? false,\n columns: t.columns.map((c) => ({\n name: c.name,\n ...(c.filterButton !== undefined ? { filterButton: c.filterButton } : {}),\n ...(c.totalsRowFunction ? { totalsRowFunction: c.totalsRowFunction } : {}),\n ...(c.totalsRowLabel ? { totalsRowLabel: c.totalsRowLabel } : {}),\n ...(c.totalsRowFormula ? { totalsRowFormula: c.totalsRowFormula } : {}),\n })),\n style: t.style ?? {},\n };\n ws.tables[t.name] = { model };\n }\n}\n","import JSZip from 'jszip';\nimport type { IWorkbookData } from '@univerjs/core';\nimport {\n applyPivotsToZip,\n capturePivotsFromBuffer,\n type PivotPassthroughPayload,\n} from './pivot-passthrough';\n\n/**\n * Sidecar resource that carries raw OOXML parts ExcelJS silently drops.\n *\n * Today we passthrough:\n * - `xl/vbaProject.bin` — `.xlsm` macros round-trip byte-equal.\n * - `xl/pivotCaches/**` + `xl/pivotTables/**` — pivot definitions\n * survive a round-trip so Excel still sees the file as having\n * pivot tables (the materialised cells already survive via the\n * normal cell pipeline; this re-instates the metadata Excel\n * needs to render filter dropdowns, refresh, etc).\n *\n * We never execute VBA. The pivot OOXML is treated as opaque bytes —\n * Univer doesn't render pivots from the OOXML, only the cells; this\n * preserves the metadata for Excel's benefit.\n */\nexport const XLSX_PASSTHROUGH_RESOURCE = '__casual_sheets_xlsx_passthrough__';\n\nexport type XlsxPassthroughPayload = {\n /** base64-encoded contents of xl/vbaProject.bin */\n vba?: { binBase64: string };\n /** raw OOXML pivot machinery — see pivot-passthrough.ts */\n pivots?: PivotPassthroughPayload;\n};\n\nconst VBA_REL_TYPE =\n 'http://schemas.microsoft.com/office/2006/relationships/vbaProject';\nconst VBA_CONTENT_TYPE = 'application/vnd.ms-office.vbaProject';\n\nexport const XLSX_MIME =\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\nexport const XLSM_MIME = 'application/vnd.ms-excel.sheet.macroEnabled.12';\n\nexport function mimeForPassthrough(\n payload: XlsxPassthroughPayload | undefined,\n): string {\n return payload?.vba ? XLSM_MIME : XLSX_MIME;\n}\n\nexport function extensionForPassthrough(\n payload: XlsxPassthroughPayload | undefined,\n): 'xlsx' | 'xlsm' {\n return payload?.vba ? 'xlsm' : 'xlsx';\n}\n\nexport async function capturePassthroughFromBuffer(\n buffer: ArrayBuffer,\n): Promise<XlsxPassthroughPayload | undefined> {\n // VBA — single binary part. Cheap probe; bail early if neither\n // VBA nor pivots are present.\n let vba: XlsxPassthroughPayload['vba'];\n try {\n const zip = await JSZip.loadAsync(buffer);\n const vbaFile = zip.file('xl/vbaProject.bin');\n if (vbaFile) {\n vba = { binBase64: await vbaFile.async('base64') };\n }\n } catch {\n return undefined;\n }\n\n // Pivots — re-opens the buffer internally. Could be optimised to a\n // single zip read but the second open is ~tens of ms even for big\n // files and the symmetry with VBA is more important.\n const pivots = await capturePivotsFromBuffer(buffer);\n\n if (!vba && !pivots) return undefined;\n return { vba, pivots };\n}\n\nexport function mergePassthroughIntoResources(\n resources: IWorkbookData['resources'],\n payload: XlsxPassthroughPayload | undefined,\n): IWorkbookData['resources'] {\n if (!payload) return resources;\n const filtered = (resources ?? []).filter(\n (r) => r.name !== XLSX_PASSTHROUGH_RESOURCE,\n );\n return [\n ...filtered,\n { name: XLSX_PASSTHROUGH_RESOURCE, data: JSON.stringify(payload) },\n ];\n}\n\nexport function readPassthroughFromSnapshot(\n data: IWorkbookData,\n): XlsxPassthroughPayload | undefined {\n const entry = data.resources?.find(\n (r) => r.name === XLSX_PASSTHROUGH_RESOURCE,\n );\n if (!entry?.data) return undefined;\n try {\n return JSON.parse(entry.data) as XlsxPassthroughPayload;\n } catch {\n return undefined;\n }\n}\n\nconst REL_TYPE_REGEX_ESCAPE = (s: string) =>\n s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n/**\n * Re-inject every captured OOXML payload into the ExcelJS-written\n * buffer in one pass. VBA + pivots share a single JSZip session so\n * the [Content_Types].xml + workbook.xml.rels patches compose cleanly\n * (each patch sees the previous step's writes).\n *\n * The input buffer is read but not mutated; a fresh ArrayBuffer is\n * returned. No-op when the payload is empty.\n */\nexport async function applyPassthroughToXlsxBuffer(\n excelJsBuffer: ArrayBuffer | Uint8Array,\n payload: XlsxPassthroughPayload | undefined,\n): Promise<ArrayBuffer> {\n if (!payload?.vba && !payload?.pivots) {\n if (excelJsBuffer instanceof ArrayBuffer) return excelJsBuffer;\n return excelJsBuffer.buffer.slice(\n excelJsBuffer.byteOffset,\n excelJsBuffer.byteOffset + excelJsBuffer.byteLength,\n ) as ArrayBuffer;\n }\n\n const zip = await JSZip.loadAsync(excelJsBuffer);\n\n if (payload.vba) await applyVbaToZip(zip, payload.vba);\n if (payload.pivots) await applyPivotsToZip(zip, payload.pivots);\n\n return zip.generateAsync({ type: 'arraybuffer' });\n}\n\nasync function applyVbaToZip(\n zip: JSZip,\n vba: NonNullable<XlsxPassthroughPayload['vba']>,\n): Promise<void> {\n zip.file('xl/vbaProject.bin', vba.binBase64, { base64: true });\n\n // [Content_Types].xml — add Override for /xl/vbaProject.bin if missing.\n const ctEntry = zip.file('[Content_Types].xml');\n if (ctEntry) {\n let ct = await ctEntry.async('string');\n if (!/PartName=\"\\/xl\\/vbaProject\\.bin\"/i.test(ct)) {\n const override = `<Override PartName=\"/xl/vbaProject.bin\" ContentType=\"${VBA_CONTENT_TYPE}\"/>`;\n ct = ct.replace('</Types>', `${override}</Types>`);\n zip.file('[Content_Types].xml', ct);\n }\n }\n\n // xl/_rels/workbook.xml.rels — append a vbaProject relationship\n // with the next-free rId. ExcelJS-written rels already declares\n // sheet / styles / theme / sharedStrings; just need a unique id.\n const relsPath = 'xl/_rels/workbook.xml.rels';\n const relsEntry = zip.file(relsPath);\n if (relsEntry) {\n let rels = await relsEntry.async('string');\n const vbaRelTypeRegex = new RegExp(\n `Type=\"${REL_TYPE_REGEX_ESCAPE(VBA_REL_TYPE)}\"`,\n );\n if (!vbaRelTypeRegex.test(rels)) {\n const used = new Set<number>();\n for (const m of rels.matchAll(/Id=\"rId(\\d+)\"/g)) used.add(Number(m[1]));\n let next = 1;\n while (used.has(next)) next++;\n const rel = `<Relationship Id=\"rId${next}\" Type=\"${VBA_REL_TYPE}\" Target=\"vbaProject.bin\"/>`;\n rels = rels.replace('</Relationships>', `${rel}</Relationships>`);\n zip.file(relsPath, rels);\n }\n }\n}\n","import JSZip from 'jszip';\n\n/**\n * Complex pivot cache + table passthrough.\n *\n * ExcelJS reads xlsx at the worksheet API level and never touches the\n * pivot OOXML parts. On a naive open→save loop, every pivot\n * definition gets silently dropped — the materialised cells survive,\n * but Excel sees the file as flat data on re-open.\n *\n * This module captures the raw OOXML parts at parse time and re-\n * injects them at export. Compared to VBA passthrough (single binary\n * with one rel + one Content_Type entry), pivots require:\n *\n * 1. Multiple parts: `xl/pivotCaches/pivotCacheDefinition{N}.xml`,\n * `xl/pivotCaches/pivotCacheRecords{N}.xml`,\n * `xl/pivotTables/pivotTable{N}.xml`, plus each part's own\n * `.rels` (which we ship verbatim — those rId spaces are local).\n * 2. Rel renumbering across `xl/_rels/workbook.xml.rels` AND every\n * sheet's `xl/worksheets/_rels/sheet{N}.xml.rels`. Original rIds\n * would collide with ExcelJS-assigned ones, so we map old → new\n * at inject time.\n * 3. Surgery on the ExcelJS-regenerated `xl/workbook.xml` to inject\n * a `<pivotCaches>` element with the REMAPPED rIds, since\n * ExcelJS regenerates that file from scratch and drops the\n * element.\n * 4. Multiple `Override` entries in `[Content_Types].xml` for the\n * three pivot ContentTypes.\n *\n * Sheet matching at inject time: the original capture records pivots\n * by **sheet name** (not by sheet rId), because ExcelJS may reorder\n * sheet files. At inject we look up the new sheet path via the\n * regenerated workbook.xml `<sheets>` block, then write into that\n * sheet's `.rels`.\n *\n * Constraints/assumptions:\n * - Univer renders the materialised cells from sheet.xml; the\n * pivot table itself is dropped from Univer's runtime model\n * today. Edits to the underlying data don't propagate back into\n * the pivot cache. This passthrough only preserves the OOXML so\n * Excel re-recognises the file as having pivots — not full\n * interactive pivot editing in our app.\n * - We never modify the pivot parts' own contents.\n * - We don't try to reconcile the cached pivot data with the live\n * cells if the user edits the source range. Excel's \"Refresh\"\n * handles that on its end.\n */\n\n/** Three OOXML namespaces that identify pivot parts in `*.rels`. */\nconst REL_TYPE_PIVOT_CACHE_DEF =\n 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheDefinition';\nconst REL_TYPE_PIVOT_TABLE =\n 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotTable';\n\nconst CT_PIVOT_CACHE_DEF =\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml';\nconst CT_PIVOT_CACHE_REC =\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml';\nconst CT_PIVOT_TABLE =\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml';\n\nexport type PivotPassthroughPayload = {\n /** Every captured part — pivotCaches/**, pivotTables/**, and any\n * per-part `.rels` files — keyed by zip path; base64 contents. */\n parts: Record<string, string>;\n /** The raw `<pivotCaches>…</pivotCaches>` block extracted from\n * `xl/workbook.xml` at parse time. The `r:id` refs inside get\n * remapped at inject time. */\n workbookPivotCachesXml: string;\n /** Workbook-level pivotCacheDefinition relationships. `origId` is\n * the captured rId — used to remap the `r:id` references inside\n * `workbookPivotCachesXml`. */\n workbookCacheRels: Array<{ origId: string; target: string }>;\n /** Pivot tables, grouped by the sheet they belong to. Sheets are\n * identified by NAME (not rId) because ExcelJS may reorder files. */\n perSheet: Array<{\n sheetName: string;\n /** sheet's pivotTable rels. `origId` is the captured rId in the\n * ORIGINAL sheet rels file; we assign fresh rIds at inject time. */\n pivotTableRels: Array<{ origId: string; target: string }>;\n }>;\n};\n\n/** Best-effort namespace-tolerant `r:id=\"...\"` extractor. */\nfunction extractRid(xml: string): string | null {\n const m = xml.match(/r:id=\"([^\"]+)\"/i) ?? xml.match(/r:Id=\"([^\"]+)\"/i);\n return m ? m[1] : null;\n}\n\n/** Strip the wrapping <Relationships> shell — used so we can append\n * captured rels without doubling up. */\nfunction parseRelationships(xml: string): Array<{ id: string; type: string; target: string }> {\n const out: Array<{ id: string; type: string; target: string }> = [];\n for (const m of xml.matchAll(/<Relationship\\b[^>]*\\/>/g)) {\n const tag = m[0];\n const id = tag.match(/Id=\"([^\"]+)\"/)?.[1];\n const type = tag.match(/Type=\"([^\"]+)\"/)?.[1];\n const target = tag.match(/Target=\"([^\"]+)\"/)?.[1];\n if (id && type && target) out.push({ id, type, target });\n }\n return out;\n}\n\n/** Closure that returns the next free `rIdN` string each call, given\n * a Set tracking which numbers are already used. The set is mutated\n * in place so successive calls don't collide. */\nfunction nextRidIssuer(used: Set<number>): () => string {\n return () => {\n let n = 1;\n while (used.has(n)) n++;\n used.add(n);\n return `rId${n}`;\n };\n}\n\n/**\n * Walk the input buffer (the raw uploaded xlsx) and pull out every\n * piece of pivot machinery. Returns `undefined` when no pivot parts\n * are present — callers should skip the rest of the pipeline in that\n * case to avoid bloating snapshots with empty payloads.\n */\nexport async function capturePivotsFromBuffer(\n buffer: ArrayBuffer,\n): Promise<PivotPassthroughPayload | undefined> {\n let zip: JSZip;\n try {\n zip = await JSZip.loadAsync(buffer);\n } catch {\n return undefined;\n }\n\n // Quick presence check — is there anything pivot-shaped at all?\n const hasPivots = Object.keys(zip.files).some(\n (p) => p.startsWith('xl/pivotCaches/') || p.startsWith('xl/pivotTables/'),\n );\n if (!hasPivots) return undefined;\n\n // 1. Capture every pivot-cache and pivot-table part + their own .rels.\n const parts: Record<string, string> = {};\n for (const [path, file] of Object.entries(zip.files)) {\n if (file.dir) continue;\n if (\n path.startsWith('xl/pivotCaches/') ||\n path.startsWith('xl/pivotTables/')\n ) {\n parts[path] = await file.async('base64');\n }\n }\n\n // 2. Extract <pivotCaches>...</pivotCaches> from xl/workbook.xml.\n const workbookXmlEntry = zip.file('xl/workbook.xml');\n if (!workbookXmlEntry) return undefined;\n const workbookXml = await workbookXmlEntry.async('string');\n const pivotCachesMatch = workbookXml.match(/<pivotCaches\\b[^>]*>[\\s\\S]*?<\\/pivotCaches>/);\n if (!pivotCachesMatch) return undefined;\n const workbookPivotCachesXml = pivotCachesMatch[0];\n\n // 3. Workbook-level pivotCacheDefinition rels.\n const workbookRelsEntry = zip.file('xl/_rels/workbook.xml.rels');\n if (!workbookRelsEntry) return undefined;\n const workbookRelsXml = await workbookRelsEntry.async('string');\n const workbookCacheRels = parseRelationships(workbookRelsXml)\n .filter((r) => r.type === REL_TYPE_PIVOT_CACHE_DEF)\n .map((r) => ({ origId: r.id, target: r.target }));\n\n // 4. Per-sheet pivotTable rels. Need to map sheet rels file → sheet\n // name via workbook.xml + workbook.xml.rels.\n // workbook.xml: <sheet name=\"...\" r:id=\"rIdN\"/>\n // workbook.xml.rels: rIdN → Target=\"worksheets/sheetN.xml\"\n // sheetN.xml.rels: pivot table rels live here.\n const sheetEntries: Array<{ name: string; rId: string; targetPath: string }> = [];\n for (const m of workbookXml.matchAll(/<sheet\\b[^>]*\\/>/g)) {\n const tag = m[0];\n const name = tag.match(/name=\"([^\"]+)\"/)?.[1];\n const rId = tag.match(/r:id=\"([^\"]+)\"/i)?.[1] ?? tag.match(/r:Id=\"([^\"]+)\"/)?.[1];\n if (!name || !rId) continue;\n const rel = parseRelationships(workbookRelsXml).find((r) => r.id === rId);\n if (!rel) continue;\n sheetEntries.push({ name, rId, targetPath: rel.target });\n }\n\n const perSheet: PivotPassthroughPayload['perSheet'] = [];\n for (const sheet of sheetEntries) {\n // target like \"worksheets/sheet1.xml\" — rels live at\n // \"xl/worksheets/_rels/sheet1.xml.rels\".\n const fileName = sheet.targetPath.split('/').pop()!;\n const sheetRelsPath = `xl/worksheets/_rels/${fileName}.rels`;\n const sheetRelsEntry = zip.file(sheetRelsPath);\n if (!sheetRelsEntry) continue;\n const sheetRelsXml = await sheetRelsEntry.async('string');\n const pivotTableRels = parseRelationships(sheetRelsXml)\n .filter((r) => r.type === REL_TYPE_PIVOT_TABLE)\n .map((r) => ({ origId: r.id, target: r.target }));\n if (pivotTableRels.length > 0) {\n perSheet.push({ sheetName: sheet.name, pivotTableRels });\n }\n }\n\n // Only emit a payload when we actually have something to round-trip.\n if (\n Object.keys(parts).length === 0 ||\n workbookCacheRels.length === 0\n ) {\n return undefined;\n }\n\n return {\n parts,\n workbookPivotCachesXml,\n workbookCacheRels,\n perSheet,\n };\n}\n\n/**\n * Re-inject every captured pivot piece into the ExcelJS-written xlsx\n * buffer. The input buffer is read but not mutated; the same JSZip\n * instance is finalised by the caller (so caller can compose multiple\n * passthrough steps).\n *\n * Mutates the passed zip in-place. Caller does the final\n * generateAsync. This shape lets `passthrough-resource.ts` compose\n * VBA and pivot passthrough into one final zip write.\n */\nexport async function applyPivotsToZip(\n zip: JSZip,\n payload: PivotPassthroughPayload,\n): Promise<void> {\n // 1. Drop every captured part back at its original path.\n for (const [path, base64] of Object.entries(payload.parts)) {\n zip.file(path, base64, { base64: true });\n }\n\n // 2. Patch [Content_Types].xml — add Overrides for any pivot part\n // that doesn't already have one. We pick the ContentType from\n // the path: pivotCacheDefinition / pivotCacheRecords / pivotTable.\n const ctEntry = zip.file('[Content_Types].xml');\n if (ctEntry) {\n let ct = await ctEntry.async('string');\n const inserts: string[] = [];\n for (const path of Object.keys(payload.parts)) {\n // Skip .rels files — those don't need ContentType Overrides\n // (the default rels ContentType in Defaults covers them).\n if (path.endsWith('.rels')) continue;\n const partName = `/${path}`;\n if (ct.includes(`PartName=\"${partName}\"`)) continue;\n let contentType: string;\n if (/pivotCacheDefinition\\d+\\.xml$/.test(path)) contentType = CT_PIVOT_CACHE_DEF;\n else if (/pivotCacheRecords\\d+\\.xml$/.test(path)) contentType = CT_PIVOT_CACHE_REC;\n else if (/pivotTable\\d+\\.xml$/.test(path)) contentType = CT_PIVOT_TABLE;\n else continue;\n inserts.push(`<Override PartName=\"${partName}\" ContentType=\"${contentType}\"/>`);\n }\n if (inserts.length > 0) {\n ct = ct.replace('</Types>', `${inserts.join('')}</Types>`);\n zip.file('[Content_Types].xml', ct);\n }\n }\n\n // 3. Patch xl/_rels/workbook.xml.rels — append the captured\n // pivotCacheDefinition rels with fresh rIds. Track the\n // origId → newId mapping for the <pivotCaches> patch in step 4.\n const workbookRelsPath = 'xl/_rels/workbook.xml.rels';\n const workbookRelsEntry = zip.file(workbookRelsPath);\n const cacheIdRemap = new Map<string, string>();\n if (workbookRelsEntry && payload.workbookCacheRels.length > 0) {\n let rels = await workbookRelsEntry.async('string');\n const used = new Set<number>();\n for (const m of rels.matchAll(/Id=\"rId(\\d+)\"/g)) used.add(Number(m[1]));\n const assign = nextRidIssuer(used);\n const additions: string[] = [];\n for (const r of payload.workbookCacheRels) {\n const newId = assign();\n cacheIdRemap.set(r.origId, newId);\n additions.push(\n `<Relationship Id=\"${newId}\" Type=\"${REL_TYPE_PIVOT_CACHE_DEF}\" Target=\"${r.target}\"/>`,\n );\n }\n rels = rels.replace('</Relationships>', `${additions.join('')}</Relationships>`);\n zip.file(workbookRelsPath, rels);\n }\n\n // 4. Patch xl/workbook.xml — inject <pivotCaches> with the\n // remapped rIds. The captured snippet has the original rIds;\n // we substitute them in place via the cacheIdRemap.\n const workbookXmlEntry = zip.file('xl/workbook.xml');\n if (workbookXmlEntry && payload.workbookPivotCachesXml) {\n let workbookXml = await workbookXmlEntry.async('string');\n // Remap r:id references inside the captured snippet.\n let snippet = payload.workbookPivotCachesXml;\n for (const [origId, newId] of cacheIdRemap) {\n // Anchor on quote boundaries so we don't accidentally rewrite\n // a longer rId that prefix-overlaps (rId1 vs rId10).\n snippet = snippet.replaceAll(`\"${origId}\"`, `\"${newId}\"`);\n }\n // ExcelJS regenerates workbook.xml so it never contains a\n // <pivotCaches> element. Inject ours immediately after </sheets>\n // (the OOXML-correct position).\n if (!workbookXml.includes('<pivotCaches')) {\n workbookXml = workbookXml.replace('</sheets>', `</sheets>${snippet}`);\n zip.file('xl/workbook.xml', workbookXml);\n }\n }\n\n // 5. Patch each sheet's .rels — append captured pivotTable rels\n // with fresh rIds. Sheet matching is by NAME via the regenerated\n // workbook.xml; sheet file names may have shifted.\n if (workbookXmlEntry && payload.perSheet.length > 0) {\n const workbookXml = await workbookXmlEntry.async('string');\n const workbookRels = workbookRelsEntry\n ? parseRelationships(await zip.file(workbookRelsPath)!.async('string'))\n : [];\n\n const sheetByName = new Map<string, string>();\n for (const m of workbookXml.matchAll(/<sheet\\b[^>]*\\/>/g)) {\n const tag = m[0];\n const name = tag.match(/name=\"([^\"]+)\"/)?.[1];\n const rId =\n tag.match(/r:id=\"([^\"]+)\"/i)?.[1] ?? tag.match(/r:Id=\"([^\"]+)\"/)?.[1];\n if (!name || !rId) continue;\n const rel = workbookRels.find((r) => r.id === rId);\n if (!rel) continue;\n sheetByName.set(name, rel.target);\n }\n\n for (const sheet of payload.perSheet) {\n const targetPath = sheetByName.get(sheet.sheetName);\n if (!targetPath) continue; // sheet renamed or removed — skip\n const fileName = targetPath.split('/').pop()!;\n const sheetRelsPath = `xl/worksheets/_rels/${fileName}.rels`;\n let sheetRels =\n (await zip.file(sheetRelsPath)?.async('string')) ??\n `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\n<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\"></Relationships>`;\n const used = new Set<number>();\n for (const m of sheetRels.matchAll(/Id=\"rId(\\d+)\"/g)) used.add(Number(m[1]));\n const assign = nextRidIssuer(used);\n const additions: string[] = [];\n for (const r of sheet.pivotTableRels) {\n const newId = assign();\n additions.push(\n `<Relationship Id=\"${newId}\" Type=\"${REL_TYPE_PIVOT_TABLE}\" Target=\"${r.target}\"/>`,\n );\n }\n if (sheetRels.includes('</Relationships>')) {\n sheetRels = sheetRels.replace(\n '</Relationships>',\n `${additions.join('')}</Relationships>`,\n );\n } else {\n sheetRels += `\\n${additions.join('')}`;\n }\n zip.file(sheetRelsPath, sheetRels);\n }\n }\n\n // unused — suppress TS unused-var noise on the helper. (We use\n // extractRid + the constants in other branches of the file.)\n void extractRid;\n}\n"],"mappings":"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","names":["e","t","r","c","n","i","s","a","o","h","u","l","f","d","p","m","colToLetters","import_jszip","JSZip","JSZip"]}
|