tradezap
Version:
Get trading data in a zap
1,522 lines (1,507 loc) • 237 kB
JavaScript
// @bun
var __create = Object.create;
var __getProtoOf = Object.getPrototypeOf;
var __defProp = Object.defineProperty;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __toESM = (mod, isNodeMode, target) => {
target = mod != null ? __create(__getProtoOf(mod)) : {};
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
for (let key of __getOwnPropNames(mod))
if (!__hasOwnProp.call(to, key))
__defProp(to, key, {
get: () => mod[key],
enumerable: true
});
return to;
};
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
// node_modules/adm-zip/util/constants.js
var require_constants = __commonJS((exports, module) => {
module.exports = {
LOCHDR: 30,
LOCSIG: 67324752,
LOCVER: 4,
LOCFLG: 6,
LOCHOW: 8,
LOCTIM: 10,
LOCCRC: 14,
LOCSIZ: 18,
LOCLEN: 22,
LOCNAM: 26,
LOCEXT: 28,
EXTSIG: 134695760,
EXTHDR: 16,
EXTCRC: 4,
EXTSIZ: 8,
EXTLEN: 12,
CENHDR: 46,
CENSIG: 33639248,
CENVEM: 4,
CENVER: 6,
CENFLG: 8,
CENHOW: 10,
CENTIM: 12,
CENCRC: 16,
CENSIZ: 20,
CENLEN: 24,
CENNAM: 28,
CENEXT: 30,
CENCOM: 32,
CENDSK: 34,
CENATT: 36,
CENATX: 38,
CENOFF: 42,
ENDHDR: 22,
ENDSIG: 101010256,
ENDSUB: 8,
ENDTOT: 10,
ENDSIZ: 12,
ENDOFF: 16,
ENDCOM: 20,
END64HDR: 20,
END64SIG: 117853008,
END64START: 4,
END64OFF: 8,
END64NUMDISKS: 16,
ZIP64SIG: 101075792,
ZIP64HDR: 56,
ZIP64LEAD: 12,
ZIP64SIZE: 4,
ZIP64VEM: 12,
ZIP64VER: 14,
ZIP64DSK: 16,
ZIP64DSKDIR: 20,
ZIP64SUB: 24,
ZIP64TOT: 32,
ZIP64SIZB: 40,
ZIP64OFF: 48,
ZIP64EXTRA: 56,
STORED: 0,
SHRUNK: 1,
REDUCED1: 2,
REDUCED2: 3,
REDUCED3: 4,
REDUCED4: 5,
IMPLODED: 6,
DEFLATED: 8,
ENHANCED_DEFLATED: 9,
PKWARE: 10,
BZIP2: 12,
LZMA: 14,
IBM_TERSE: 18,
IBM_LZ77: 19,
AES_ENCRYPT: 99,
FLG_ENC: 1,
FLG_COMP1: 2,
FLG_COMP2: 4,
FLG_DESC: 8,
FLG_ENH: 16,
FLG_PATCH: 32,
FLG_STR: 64,
FLG_EFS: 2048,
FLG_MSK: 4096,
FILE: 2,
BUFFER: 1,
NONE: 0,
EF_ID: 0,
EF_SIZE: 2,
ID_ZIP64: 1,
ID_AVINFO: 7,
ID_PFS: 8,
ID_OS2: 9,
ID_NTFS: 10,
ID_OPENVMS: 12,
ID_UNIX: 13,
ID_FORK: 14,
ID_PATCH: 15,
ID_X509_PKCS7: 20,
ID_X509_CERTID_F: 21,
ID_X509_CERTID_C: 22,
ID_STRONGENC: 23,
ID_RECORD_MGT: 24,
ID_X509_PKCS7_RL: 25,
ID_IBM1: 101,
ID_IBM2: 102,
ID_POSZIP: 18064,
EF_ZIP64_OR_32: 4294967295,
EF_ZIP64_OR_16: 65535,
EF_ZIP64_SUNCOMP: 0,
EF_ZIP64_SCOMP: 8,
EF_ZIP64_RHO: 16,
EF_ZIP64_DSN: 24
};
});
// node_modules/adm-zip/util/errors.js
var require_errors = __commonJS((exports) => {
var errors = {
INVALID_LOC: "Invalid LOC header (bad signature)",
INVALID_CEN: "Invalid CEN header (bad signature)",
INVALID_END: "Invalid END header (bad signature)",
DESCRIPTOR_NOT_EXIST: "No descriptor present",
DESCRIPTOR_UNKNOWN: "Unknown descriptor format",
DESCRIPTOR_FAULTY: "Descriptor data is malformed",
NO_DATA: "Nothing to decompress",
BAD_CRC: "CRC32 checksum failed {0}",
FILE_IN_THE_WAY: "There is a file in the way: {0}",
UNKNOWN_METHOD: "Invalid/unsupported compression method",
AVAIL_DATA: "inflate::Available inflate data did not terminate",
INVALID_DISTANCE: "inflate::Invalid literal/length or distance code in fixed or dynamic block",
TO_MANY_CODES: "inflate::Dynamic block code description: too many length or distance codes",
INVALID_REPEAT_LEN: "inflate::Dynamic block code description: repeat more than specified lengths",
INVALID_REPEAT_FIRST: "inflate::Dynamic block code description: repeat lengths with no first length",
INCOMPLETE_CODES: "inflate::Dynamic block code description: code lengths codes incomplete",
INVALID_DYN_DISTANCE: "inflate::Dynamic block code description: invalid distance code lengths",
INVALID_CODES_LEN: "inflate::Dynamic block code description: invalid literal/length code lengths",
INVALID_STORE_BLOCK: "inflate::Stored block length did not match one's complement",
INVALID_BLOCK_TYPE: "inflate::Invalid block type (type == 3)",
CANT_EXTRACT_FILE: "Could not extract the file",
CANT_OVERRIDE: "Target file already exists",
DISK_ENTRY_TOO_LARGE: "Number of disk entries is too large",
NO_ZIP: "No zip file was loaded",
NO_ENTRY: "Entry doesn't exist",
DIRECTORY_CONTENT_ERROR: "A directory cannot have content",
FILE_NOT_FOUND: 'File not found: "{0}"',
NOT_IMPLEMENTED: "Not implemented",
INVALID_FILENAME: "Invalid filename",
INVALID_FORMAT: "Invalid or unsupported zip format. No END header found",
INVALID_PASS_PARAM: "Incompatible password parameter",
WRONG_PASSWORD: "Wrong Password",
COMMENT_TOO_LONG: "Comment is too long",
EXTRA_FIELD_PARSE_ERROR: "Extra field parsing error"
};
function E(message) {
return function(...args) {
if (args.length) {
message = message.replace(/\{(\d)\}/g, (_, n) => args[n] || "");
}
return new Error("ADM-ZIP: " + message);
};
}
for (const msg of Object.keys(errors)) {
exports[msg] = E(errors[msg]);
}
});
// node_modules/adm-zip/util/utils.js
var require_utils = __commonJS((exports, module) => {
var fsystem = import.meta.require("fs");
var pth = import.meta.require("path");
var Constants = require_constants();
var Errors = require_errors();
var isWin = typeof process === "object" && process.platform === "win32";
var is_Obj = (obj) => typeof obj === "object" && obj !== null;
var crcTable = new Uint32Array(256).map((t, c) => {
for (let k = 0;k < 8; k++) {
if ((c & 1) !== 0) {
c = 3988292384 ^ c >>> 1;
} else {
c >>>= 1;
}
}
return c >>> 0;
});
function Utils(opts) {
this.sep = pth.sep;
this.fs = fsystem;
if (is_Obj(opts)) {
if (is_Obj(opts.fs) && typeof opts.fs.statSync === "function") {
this.fs = opts.fs;
}
}
}
module.exports = Utils;
Utils.prototype.makeDir = function(folder) {
const self = this;
function mkdirSync(fpath) {
let resolvedPath = fpath.split(self.sep)[0];
fpath.split(self.sep).forEach(function(name) {
if (!name || name.substr(-1, 1) === ":")
return;
resolvedPath += self.sep + name;
var stat;
try {
stat = self.fs.statSync(resolvedPath);
} catch (e) {
self.fs.mkdirSync(resolvedPath);
}
if (stat && stat.isFile())
throw Errors.FILE_IN_THE_WAY(`"${resolvedPath}"`);
});
}
mkdirSync(folder);
};
Utils.prototype.writeFileTo = function(path, content, overwrite, attr) {
const self = this;
if (self.fs.existsSync(path)) {
if (!overwrite)
return false;
var stat = self.fs.statSync(path);
if (stat.isDirectory()) {
return false;
}
}
var folder = pth.dirname(path);
if (!self.fs.existsSync(folder)) {
self.makeDir(folder);
}
var fd;
try {
fd = self.fs.openSync(path, "w", 438);
} catch (e) {
self.fs.chmodSync(path, 438);
fd = self.fs.openSync(path, "w", 438);
}
if (fd) {
try {
self.fs.writeSync(fd, content, 0, content.length, 0);
} finally {
self.fs.closeSync(fd);
}
}
self.fs.chmodSync(path, attr || 438);
return true;
};
Utils.prototype.writeFileToAsync = function(path, content, overwrite, attr, callback) {
if (typeof attr === "function") {
callback = attr;
attr = undefined;
}
const self = this;
self.fs.exists(path, function(exist) {
if (exist && !overwrite)
return callback(false);
self.fs.stat(path, function(err, stat) {
if (exist && stat.isDirectory()) {
return callback(false);
}
var folder = pth.dirname(path);
self.fs.exists(folder, function(exists) {
if (!exists)
self.makeDir(folder);
self.fs.open(path, "w", 438, function(err2, fd) {
if (err2) {
self.fs.chmod(path, 438, function() {
self.fs.open(path, "w", 438, function(err3, fd2) {
self.fs.write(fd2, content, 0, content.length, 0, function() {
self.fs.close(fd2, function() {
self.fs.chmod(path, attr || 438, function() {
callback(true);
});
});
});
});
});
} else if (fd) {
self.fs.write(fd, content, 0, content.length, 0, function() {
self.fs.close(fd, function() {
self.fs.chmod(path, attr || 438, function() {
callback(true);
});
});
});
} else {
self.fs.chmod(path, attr || 438, function() {
callback(true);
});
}
});
});
});
});
};
Utils.prototype.findFiles = function(path) {
const self = this;
function findSync(dir, pattern, recursive) {
if (typeof pattern === "boolean") {
recursive = pattern;
pattern = undefined;
}
let files = [];
self.fs.readdirSync(dir).forEach(function(file) {
const path2 = pth.join(dir, file);
const stat = self.fs.statSync(path2);
if (!pattern || pattern.test(path2)) {
files.push(pth.normalize(path2) + (stat.isDirectory() ? self.sep : ""));
}
if (stat.isDirectory() && recursive)
files = files.concat(findSync(path2, pattern, recursive));
});
return files;
}
return findSync(path, undefined, true);
};
Utils.prototype.findFilesAsync = function(dir, cb) {
const self = this;
let results = [];
self.fs.readdir(dir, function(err, list) {
if (err)
return cb(err);
let list_length = list.length;
if (!list_length)
return cb(null, results);
list.forEach(function(file) {
file = pth.join(dir, file);
self.fs.stat(file, function(err2, stat) {
if (err2)
return cb(err2);
if (stat) {
results.push(pth.normalize(file) + (stat.isDirectory() ? self.sep : ""));
if (stat.isDirectory()) {
self.findFilesAsync(file, function(err3, res) {
if (err3)
return cb(err3);
results = results.concat(res);
if (!--list_length)
cb(null, results);
});
} else {
if (!--list_length)
cb(null, results);
}
}
});
});
});
};
Utils.prototype.getAttributes = function() {
};
Utils.prototype.setAttributes = function() {
};
Utils.crc32update = function(crc, byte) {
return crcTable[(crc ^ byte) & 255] ^ crc >>> 8;
};
Utils.crc32 = function(buf) {
if (typeof buf === "string") {
buf = Buffer.from(buf, "utf8");
}
let len = buf.length;
let crc = ~0;
for (let off = 0;off < len; )
crc = Utils.crc32update(crc, buf[off++]);
return ~crc >>> 0;
};
Utils.methodToString = function(method) {
switch (method) {
case Constants.STORED:
return "STORED (" + method + ")";
case Constants.DEFLATED:
return "DEFLATED (" + method + ")";
default:
return "UNSUPPORTED (" + method + ")";
}
};
Utils.canonical = function(path) {
if (!path)
return "";
const safeSuffix = pth.posix.normalize("/" + path.split("\\").join("/"));
return pth.join(".", safeSuffix);
};
Utils.zipnamefix = function(path) {
if (!path)
return "";
const safeSuffix = pth.posix.normalize("/" + path.split("\\").join("/"));
return pth.posix.join(".", safeSuffix);
};
Utils.findLast = function(arr, callback) {
if (!Array.isArray(arr))
throw new TypeError("arr is not array");
const len = arr.length >>> 0;
for (let i = len - 1;i >= 0; i--) {
if (callback(arr[i], i, arr)) {
return arr[i];
}
}
return;
};
Utils.sanitize = function(prefix, name) {
prefix = pth.resolve(pth.normalize(prefix));
var parts = name.split("/");
for (var i = 0, l = parts.length;i < l; i++) {
var path = pth.normalize(pth.join(prefix, parts.slice(i, l).join(pth.sep)));
if (path.indexOf(prefix) === 0) {
return path;
}
}
return pth.normalize(pth.join(prefix, pth.basename(name)));
};
Utils.toBuffer = function toBuffer(input, encoder) {
if (Buffer.isBuffer(input)) {
return input;
} else if (input instanceof Uint8Array) {
return Buffer.from(input);
} else {
return typeof input === "string" ? encoder(input) : Buffer.alloc(0);
}
};
Utils.readBigUInt64LE = function(buffer, index) {
var slice = Buffer.from(buffer.slice(index, index + 8));
slice.swap64();
return parseInt(`0x${slice.toString("hex")}`);
};
Utils.fromDOS2Date = function(val) {
return new Date((val >> 25 & 127) + 1980, Math.max((val >> 21 & 15) - 1, 0), Math.max(val >> 16 & 31, 1), val >> 11 & 31, val >> 5 & 63, (val & 31) << 1);
};
Utils.fromDate2DOS = function(val) {
let date = 0;
let time = 0;
if (val.getFullYear() > 1979) {
date = (val.getFullYear() - 1980 & 127) << 9 | val.getMonth() + 1 << 5 | val.getDate();
time = val.getHours() << 11 | val.getMinutes() << 5 | val.getSeconds() >> 1;
}
return date << 16 | time;
};
Utils.isWin = isWin;
Utils.crcTable = crcTable;
});
// node_modules/adm-zip/util/fattr.js
var require_fattr = __commonJS((exports, module) => {
var pth = import.meta.require("path");
module.exports = function(path, { fs }) {
var _path = path || "", _obj = newAttr(), _stat = null;
function newAttr() {
return {
directory: false,
readonly: false,
hidden: false,
executable: false,
mtime: 0,
atime: 0
};
}
if (_path && fs.existsSync(_path)) {
_stat = fs.statSync(_path);
_obj.directory = _stat.isDirectory();
_obj.mtime = _stat.mtime;
_obj.atime = _stat.atime;
_obj.executable = (73 & _stat.mode) !== 0;
_obj.readonly = (128 & _stat.mode) === 0;
_obj.hidden = pth.basename(_path)[0] === ".";
} else {
console.warn("Invalid path: " + _path);
}
return {
get directory() {
return _obj.directory;
},
get readOnly() {
return _obj.readonly;
},
get hidden() {
return _obj.hidden;
},
get mtime() {
return _obj.mtime;
},
get atime() {
return _obj.atime;
},
get executable() {
return _obj.executable;
},
decodeAttributes: function() {
},
encodeAttributes: function() {
},
toJSON: function() {
return {
path: _path,
isDirectory: _obj.directory,
isReadOnly: _obj.readonly,
isHidden: _obj.hidden,
isExecutable: _obj.executable,
mTime: _obj.mtime,
aTime: _obj.atime
};
},
toString: function() {
return JSON.stringify(this.toJSON(), null, "\t");
}
};
};
});
// node_modules/adm-zip/util/decoder.js
var require_decoder = __commonJS((exports, module) => {
module.exports = {
efs: true,
encode: (data) => Buffer.from(data, "utf8"),
decode: (data) => data.toString("utf8")
};
});
// node_modules/adm-zip/util/index.js
var require_util = __commonJS((exports, module) => {
module.exports = require_utils();
module.exports.Constants = require_constants();
module.exports.Errors = require_errors();
module.exports.FileAttr = require_fattr();
module.exports.decoder = require_decoder();
});
// node_modules/adm-zip/headers/entryHeader.js
var require_entryHeader = __commonJS((exports, module) => {
var Utils = require_util();
var Constants = Utils.Constants;
module.exports = function() {
var _verMade = 20, _version = 10, _flags = 0, _method = 0, _time = 0, _crc = 0, _compressedSize = 0, _size = 0, _fnameLen = 0, _extraLen = 0, _comLen = 0, _diskStart = 0, _inattr = 0, _attr = 0, _offset = 0;
_verMade |= Utils.isWin ? 2560 : 768;
_flags |= Constants.FLG_EFS;
const _localHeader = {
extraLen: 0
};
const uint32 = (val) => Math.max(0, val) >>> 0;
const uint16 = (val) => Math.max(0, val) & 65535;
const uint8 = (val) => Math.max(0, val) & 255;
_time = Utils.fromDate2DOS(new Date);
return {
get made() {
return _verMade;
},
set made(val) {
_verMade = val;
},
get version() {
return _version;
},
set version(val) {
_version = val;
},
get flags() {
return _flags;
},
set flags(val) {
_flags = val;
},
get flags_efs() {
return (_flags & Constants.FLG_EFS) > 0;
},
set flags_efs(val) {
if (val) {
_flags |= Constants.FLG_EFS;
} else {
_flags &= ~Constants.FLG_EFS;
}
},
get flags_desc() {
return (_flags & Constants.FLG_DESC) > 0;
},
set flags_desc(val) {
if (val) {
_flags |= Constants.FLG_DESC;
} else {
_flags &= ~Constants.FLG_DESC;
}
},
get method() {
return _method;
},
set method(val) {
switch (val) {
case Constants.STORED:
this.version = 10;
case Constants.DEFLATED:
default:
this.version = 20;
}
_method = val;
},
get time() {
return Utils.fromDOS2Date(this.timeval);
},
set time(val) {
this.timeval = Utils.fromDate2DOS(val);
},
get timeval() {
return _time;
},
set timeval(val) {
_time = uint32(val);
},
get timeHighByte() {
return uint8(_time >>> 8);
},
get crc() {
return _crc;
},
set crc(val) {
_crc = uint32(val);
},
get compressedSize() {
return _compressedSize;
},
set compressedSize(val) {
_compressedSize = uint32(val);
},
get size() {
return _size;
},
set size(val) {
_size = uint32(val);
},
get fileNameLength() {
return _fnameLen;
},
set fileNameLength(val) {
_fnameLen = val;
},
get extraLength() {
return _extraLen;
},
set extraLength(val) {
_extraLen = val;
},
get extraLocalLength() {
return _localHeader.extraLen;
},
set extraLocalLength(val) {
_localHeader.extraLen = val;
},
get commentLength() {
return _comLen;
},
set commentLength(val) {
_comLen = val;
},
get diskNumStart() {
return _diskStart;
},
set diskNumStart(val) {
_diskStart = uint32(val);
},
get inAttr() {
return _inattr;
},
set inAttr(val) {
_inattr = uint32(val);
},
get attr() {
return _attr;
},
set attr(val) {
_attr = uint32(val);
},
get fileAttr() {
return (_attr || 0) >> 16 & 4095;
},
get offset() {
return _offset;
},
set offset(val) {
_offset = uint32(val);
},
get encrypted() {
return (_flags & Constants.FLG_ENC) === Constants.FLG_ENC;
},
get centralHeaderSize() {
return Constants.CENHDR + _fnameLen + _extraLen + _comLen;
},
get realDataOffset() {
return _offset + Constants.LOCHDR + _localHeader.fnameLen + _localHeader.extraLen;
},
get localHeader() {
return _localHeader;
},
loadLocalHeaderFromBinary: function(input) {
var data = input.slice(_offset, _offset + Constants.LOCHDR);
if (data.readUInt32LE(0) !== Constants.LOCSIG) {
throw Utils.Errors.INVALID_LOC();
}
_localHeader.version = data.readUInt16LE(Constants.LOCVER);
_localHeader.flags = data.readUInt16LE(Constants.LOCFLG);
_localHeader.method = data.readUInt16LE(Constants.LOCHOW);
_localHeader.time = data.readUInt32LE(Constants.LOCTIM);
_localHeader.crc = data.readUInt32LE(Constants.LOCCRC);
_localHeader.compressedSize = data.readUInt32LE(Constants.LOCSIZ);
_localHeader.size = data.readUInt32LE(Constants.LOCLEN);
_localHeader.fnameLen = data.readUInt16LE(Constants.LOCNAM);
_localHeader.extraLen = data.readUInt16LE(Constants.LOCEXT);
const extraStart = _offset + Constants.LOCHDR + _localHeader.fnameLen;
const extraEnd = extraStart + _localHeader.extraLen;
return input.slice(extraStart, extraEnd);
},
loadFromBinary: function(data) {
if (data.length !== Constants.CENHDR || data.readUInt32LE(0) !== Constants.CENSIG) {
throw Utils.Errors.INVALID_CEN();
}
_verMade = data.readUInt16LE(Constants.CENVEM);
_version = data.readUInt16LE(Constants.CENVER);
_flags = data.readUInt16LE(Constants.CENFLG);
_method = data.readUInt16LE(Constants.CENHOW);
_time = data.readUInt32LE(Constants.CENTIM);
_crc = data.readUInt32LE(Constants.CENCRC);
_compressedSize = data.readUInt32LE(Constants.CENSIZ);
_size = data.readUInt32LE(Constants.CENLEN);
_fnameLen = data.readUInt16LE(Constants.CENNAM);
_extraLen = data.readUInt16LE(Constants.CENEXT);
_comLen = data.readUInt16LE(Constants.CENCOM);
_diskStart = data.readUInt16LE(Constants.CENDSK);
_inattr = data.readUInt16LE(Constants.CENATT);
_attr = data.readUInt32LE(Constants.CENATX);
_offset = data.readUInt32LE(Constants.CENOFF);
},
localHeaderToBinary: function() {
var data = Buffer.alloc(Constants.LOCHDR);
data.writeUInt32LE(Constants.LOCSIG, 0);
data.writeUInt16LE(_version, Constants.LOCVER);
data.writeUInt16LE(_flags, Constants.LOCFLG);
data.writeUInt16LE(_method, Constants.LOCHOW);
data.writeUInt32LE(_time, Constants.LOCTIM);
data.writeUInt32LE(_crc, Constants.LOCCRC);
data.writeUInt32LE(_compressedSize, Constants.LOCSIZ);
data.writeUInt32LE(_size, Constants.LOCLEN);
data.writeUInt16LE(_fnameLen, Constants.LOCNAM);
data.writeUInt16LE(_localHeader.extraLen, Constants.LOCEXT);
return data;
},
centralHeaderToBinary: function() {
var data = Buffer.alloc(Constants.CENHDR + _fnameLen + _extraLen + _comLen);
data.writeUInt32LE(Constants.CENSIG, 0);
data.writeUInt16LE(_verMade, Constants.CENVEM);
data.writeUInt16LE(_version, Constants.CENVER);
data.writeUInt16LE(_flags, Constants.CENFLG);
data.writeUInt16LE(_method, Constants.CENHOW);
data.writeUInt32LE(_time, Constants.CENTIM);
data.writeUInt32LE(_crc, Constants.CENCRC);
data.writeUInt32LE(_compressedSize, Constants.CENSIZ);
data.writeUInt32LE(_size, Constants.CENLEN);
data.writeUInt16LE(_fnameLen, Constants.CENNAM);
data.writeUInt16LE(_extraLen, Constants.CENEXT);
data.writeUInt16LE(_comLen, Constants.CENCOM);
data.writeUInt16LE(_diskStart, Constants.CENDSK);
data.writeUInt16LE(_inattr, Constants.CENATT);
data.writeUInt32LE(_attr, Constants.CENATX);
data.writeUInt32LE(_offset, Constants.CENOFF);
return data;
},
toJSON: function() {
const bytes = function(nr) {
return nr + " bytes";
};
return {
made: _verMade,
version: _version,
flags: _flags,
method: Utils.methodToString(_method),
time: this.time,
crc: "0x" + _crc.toString(16).toUpperCase(),
compressedSize: bytes(_compressedSize),
size: bytes(_size),
fileNameLength: bytes(_fnameLen),
extraLength: bytes(_extraLen),
commentLength: bytes(_comLen),
diskNumStart: _diskStart,
inAttr: _inattr,
attr: _attr,
offset: _offset,
centralHeaderSize: bytes(Constants.CENHDR + _fnameLen + _extraLen + _comLen)
};
},
toString: function() {
return JSON.stringify(this.toJSON(), null, "\t");
}
};
};
});
// node_modules/adm-zip/headers/mainHeader.js
var require_mainHeader = __commonJS((exports, module) => {
var Utils = require_util();
var Constants = Utils.Constants;
module.exports = function() {
var _volumeEntries = 0, _totalEntries = 0, _size = 0, _offset = 0, _commentLength = 0;
return {
get diskEntries() {
return _volumeEntries;
},
set diskEntries(val) {
_volumeEntries = _totalEntries = val;
},
get totalEntries() {
return _totalEntries;
},
set totalEntries(val) {
_totalEntries = _volumeEntries = val;
},
get size() {
return _size;
},
set size(val) {
_size = val;
},
get offset() {
return _offset;
},
set offset(val) {
_offset = val;
},
get commentLength() {
return _commentLength;
},
set commentLength(val) {
_commentLength = val;
},
get mainHeaderSize() {
return Constants.ENDHDR + _commentLength;
},
loadFromBinary: function(data) {
if ((data.length !== Constants.ENDHDR || data.readUInt32LE(0) !== Constants.ENDSIG) && (data.length < Constants.ZIP64HDR || data.readUInt32LE(0) !== Constants.ZIP64SIG)) {
throw Utils.Errors.INVALID_END();
}
if (data.readUInt32LE(0) === Constants.ENDSIG) {
_volumeEntries = data.readUInt16LE(Constants.ENDSUB);
_totalEntries = data.readUInt16LE(Constants.ENDTOT);
_size = data.readUInt32LE(Constants.ENDSIZ);
_offset = data.readUInt32LE(Constants.ENDOFF);
_commentLength = data.readUInt16LE(Constants.ENDCOM);
} else {
_volumeEntries = Utils.readBigUInt64LE(data, Constants.ZIP64SUB);
_totalEntries = Utils.readBigUInt64LE(data, Constants.ZIP64TOT);
_size = Utils.readBigUInt64LE(data, Constants.ZIP64SIZE);
_offset = Utils.readBigUInt64LE(data, Constants.ZIP64OFF);
_commentLength = 0;
}
},
toBinary: function() {
var b = Buffer.alloc(Constants.ENDHDR + _commentLength);
b.writeUInt32LE(Constants.ENDSIG, 0);
b.writeUInt32LE(0, 4);
b.writeUInt16LE(_volumeEntries, Constants.ENDSUB);
b.writeUInt16LE(_totalEntries, Constants.ENDTOT);
b.writeUInt32LE(_size, Constants.ENDSIZ);
b.writeUInt32LE(_offset, Constants.ENDOFF);
b.writeUInt16LE(_commentLength, Constants.ENDCOM);
b.fill(" ", Constants.ENDHDR);
return b;
},
toJSON: function() {
const offset = function(nr, len) {
let offs = nr.toString(16).toUpperCase();
while (offs.length < len)
offs = "0" + offs;
return "0x" + offs;
};
return {
diskEntries: _volumeEntries,
totalEntries: _totalEntries,
size: _size + " bytes",
offset: offset(_offset, 4),
commentLength: _commentLength
};
},
toString: function() {
return JSON.stringify(this.toJSON(), null, "\t");
}
};
};
});
// node_modules/adm-zip/headers/index.js
var require_headers = __commonJS((exports) => {
exports.EntryHeader = require_entryHeader();
exports.MainHeader = require_mainHeader();
});
// node_modules/adm-zip/methods/deflater.js
var require_deflater = __commonJS((exports, module) => {
module.exports = function(inbuf) {
var zlib = import.meta.require("zlib");
var opts = { chunkSize: (parseInt(inbuf.length / 1024) + 1) * 1024 };
return {
deflate: function() {
return zlib.deflateRawSync(inbuf, opts);
},
deflateAsync: function(callback) {
var tmp = zlib.createDeflateRaw(opts), parts = [], total = 0;
tmp.on("data", function(data) {
parts.push(data);
total += data.length;
});
tmp.on("end", function() {
var buf = Buffer.alloc(total), written = 0;
buf.fill(0);
for (var i = 0;i < parts.length; i++) {
var part = parts[i];
part.copy(buf, written);
written += part.length;
}
callback && callback(buf);
});
tmp.end(inbuf);
}
};
};
});
// node_modules/adm-zip/methods/inflater.js
var require_inflater = __commonJS((exports, module) => {
var version = +(process.versions ? process.versions.node : "").split(".")[0] || 0;
module.exports = function(inbuf, expectedLength) {
var zlib = import.meta.require("zlib");
const option = version >= 15 && expectedLength > 0 ? { maxOutputLength: expectedLength } : {};
return {
inflate: function() {
return zlib.inflateRawSync(inbuf, option);
},
inflateAsync: function(callback) {
var tmp = zlib.createInflateRaw(option), parts = [], total = 0;
tmp.on("data", function(data) {
parts.push(data);
total += data.length;
});
tmp.on("end", function() {
var buf = Buffer.alloc(total), written = 0;
buf.fill(0);
for (var i = 0;i < parts.length; i++) {
var part = parts[i];
part.copy(buf, written);
written += part.length;
}
callback && callback(buf);
});
tmp.end(inbuf);
}
};
};
});
// node_modules/adm-zip/methods/zipcrypto.js
var require_zipcrypto = __commonJS((exports, module) => {
var { randomFillSync } = import.meta.require("crypto");
var Errors = require_errors();
var crctable = new Uint32Array(256).map((t, crc) => {
for (let j = 0;j < 8; j++) {
if ((crc & 1) !== 0) {
crc = crc >>> 1 ^ 3988292384;
} else {
crc >>>= 1;
}
}
return crc >>> 0;
});
var uMul = (a, b) => Math.imul(a, b) >>> 0;
var crc32update = (pCrc32, bval) => {
return crctable[(pCrc32 ^ bval) & 255] ^ pCrc32 >>> 8;
};
var genSalt = () => {
if (typeof randomFillSync === "function") {
return randomFillSync(Buffer.alloc(12));
} else {
return genSalt.node();
}
};
genSalt.node = () => {
const salt = Buffer.alloc(12);
const len = salt.length;
for (let i = 0;i < len; i++)
salt[i] = Math.random() * 256 & 255;
return salt;
};
var config = {
genSalt
};
function Initkeys(pw) {
const pass = Buffer.isBuffer(pw) ? pw : Buffer.from(pw);
this.keys = new Uint32Array([305419896, 591751049, 878082192]);
for (let i = 0;i < pass.length; i++) {
this.updateKeys(pass[i]);
}
}
Initkeys.prototype.updateKeys = function(byteValue) {
const keys = this.keys;
keys[0] = crc32update(keys[0], byteValue);
keys[1] += keys[0] & 255;
keys[1] = uMul(keys[1], 134775813) + 1;
keys[2] = crc32update(keys[2], keys[1] >>> 24);
return byteValue;
};
Initkeys.prototype.next = function() {
const k = (this.keys[2] | 2) >>> 0;
return uMul(k, k ^ 1) >> 8 & 255;
};
function make_decrypter(pwd) {
const keys = new Initkeys(pwd);
return function(data) {
const result = Buffer.alloc(data.length);
let pos = 0;
for (let c of data) {
result[pos++] = keys.updateKeys(c ^ keys.next());
}
return result;
};
}
function make_encrypter(pwd) {
const keys = new Initkeys(pwd);
return function(data, result, pos = 0) {
if (!result)
result = Buffer.alloc(data.length);
for (let c of data) {
const k = keys.next();
result[pos++] = c ^ k;
keys.updateKeys(c);
}
return result;
};
}
function decrypt(data, header, pwd) {
if (!data || !Buffer.isBuffer(data) || data.length < 12) {
return Buffer.alloc(0);
}
const decrypter = make_decrypter(pwd);
const salt = decrypter(data.slice(0, 12));
const verifyByte = (header.flags & 8) === 8 ? header.timeHighByte : header.crc >>> 24;
if (salt[11] !== verifyByte) {
throw Errors.WRONG_PASSWORD();
}
return decrypter(data.slice(12));
}
function _salter(data) {
if (Buffer.isBuffer(data) && data.length >= 12) {
config.genSalt = function() {
return data.slice(0, 12);
};
} else if (data === "node") {
config.genSalt = genSalt.node;
} else {
config.genSalt = genSalt;
}
}
function encrypt(data, header, pwd, oldlike = false) {
if (data == null)
data = Buffer.alloc(0);
if (!Buffer.isBuffer(data))
data = Buffer.from(data.toString());
const encrypter = make_encrypter(pwd);
const salt = config.genSalt();
salt[11] = header.crc >>> 24 & 255;
if (oldlike)
salt[10] = header.crc >>> 16 & 255;
const result = Buffer.alloc(data.length + 12);
encrypter(salt, result);
return encrypter(data, result, 12);
}
module.exports = { decrypt, encrypt, _salter };
});
// node_modules/adm-zip/methods/index.js
var require_methods = __commonJS((exports) => {
exports.Deflater = require_deflater();
exports.Inflater = require_inflater();
exports.ZipCrypto = require_zipcrypto();
});
// node_modules/adm-zip/zipEntry.js
var require_zipEntry = __commonJS((exports, module) => {
var Utils = require_util();
var Headers = require_headers();
var Constants = Utils.Constants;
var Methods = require_methods();
module.exports = function(options, input) {
var _centralHeader = new Headers.EntryHeader, _entryName = Buffer.alloc(0), _comment = Buffer.alloc(0), _isDirectory = false, uncompressedData = null, _extra = Buffer.alloc(0), _extralocal = Buffer.alloc(0), _efs = true;
const opts = options;
const decoder = typeof opts.decoder === "object" ? opts.decoder : Utils.decoder;
_efs = decoder.hasOwnProperty("efs") ? decoder.efs : false;
function getCompressedDataFromZip() {
if (!input || !(input instanceof Uint8Array)) {
return Buffer.alloc(0);
}
_extralocal = _centralHeader.loadLocalHeaderFromBinary(input);
return input.slice(_centralHeader.realDataOffset, _centralHeader.realDataOffset + _centralHeader.compressedSize);
}
function crc32OK(data) {
if (!_centralHeader.flags_desc) {
if (Utils.crc32(data) !== _centralHeader.localHeader.crc) {
return false;
}
} else {
const descriptor = {};
const dataEndOffset = _centralHeader.realDataOffset + _centralHeader.compressedSize;
if (input.readUInt32LE(dataEndOffset) == Constants.LOCSIG || input.readUInt32LE(dataEndOffset) == Constants.CENSIG) {
throw Utils.Errors.DESCRIPTOR_NOT_EXIST();
}
if (input.readUInt32LE(dataEndOffset) == Constants.EXTSIG) {
descriptor.crc = input.readUInt32LE(dataEndOffset + Constants.EXTCRC);
descriptor.compressedSize = input.readUInt32LE(dataEndOffset + Constants.EXTSIZ);
descriptor.size = input.readUInt32LE(dataEndOffset + Constants.EXTLEN);
} else if (input.readUInt16LE(dataEndOffset + 12) === 19280) {
descriptor.crc = input.readUInt32LE(dataEndOffset + Constants.EXTCRC - 4);
descriptor.compressedSize = input.readUInt32LE(dataEndOffset + Constants.EXTSIZ - 4);
descriptor.size = input.readUInt32LE(dataEndOffset + Constants.EXTLEN - 4);
} else {
throw Utils.Errors.DESCRIPTOR_UNKNOWN();
}
if (descriptor.compressedSize !== _centralHeader.compressedSize || descriptor.size !== _centralHeader.size || descriptor.crc !== _centralHeader.crc) {
throw Utils.Errors.DESCRIPTOR_FAULTY();
}
if (Utils.crc32(data) !== descriptor.crc) {
return false;
}
}
return true;
}
function decompress(async, callback, pass) {
if (typeof callback === "undefined" && typeof async === "string") {
pass = async;
async = undefined;
}
if (_isDirectory) {
if (async && callback) {
callback(Buffer.alloc(0), Utils.Errors.DIRECTORY_CONTENT_ERROR());
}
return Buffer.alloc(0);
}
var compressedData = getCompressedDataFromZip();
if (compressedData.length === 0) {
if (async && callback)
callback(compressedData);
return compressedData;
}
if (_centralHeader.encrypted) {
if (typeof pass !== "string" && !Buffer.isBuffer(pass)) {
throw Utils.Errors.INVALID_PASS_PARAM();
}
compressedData = Methods.ZipCrypto.decrypt(compressedData, _centralHeader, pass);
}
var data = Buffer.alloc(_centralHeader.size);
switch (_centralHeader.method) {
case Utils.Constants.STORED:
compressedData.copy(data);
if (!crc32OK(data)) {
if (async && callback)
callback(data, Utils.Errors.BAD_CRC());
throw Utils.Errors.BAD_CRC();
} else {
if (async && callback)
callback(data);
return data;
}
case Utils.Constants.DEFLATED:
var inflater = new Methods.Inflater(compressedData, _centralHeader.size);
if (!async) {
const result = inflater.inflate(data);
result.copy(data, 0);
if (!crc32OK(data)) {
throw Utils.Errors.BAD_CRC(`"${decoder.decode(_entryName)}"`);
}
return data;
} else {
inflater.inflateAsync(function(result) {
result.copy(result, 0);
if (callback) {
if (!crc32OK(result)) {
callback(result, Utils.Errors.BAD_CRC());
} else {
callback(result);
}
}
});
}
break;
default:
if (async && callback)
callback(Buffer.alloc(0), Utils.Errors.UNKNOWN_METHOD());
throw Utils.Errors.UNKNOWN_METHOD();
}
}
function compress(async, callback) {
if ((!uncompressedData || !uncompressedData.length) && Buffer.isBuffer(input)) {
if (async && callback)
callback(getCompressedDataFromZip());
return getCompressedDataFromZip();
}
if (uncompressedData.length && !_isDirectory) {
var compressedData;
switch (_centralHeader.method) {
case Utils.Constants.STORED:
_centralHeader.compressedSize = _centralHeader.size;
compressedData = Buffer.alloc(uncompressedData.length);
uncompressedData.copy(compressedData);
if (async && callback)
callback(compressedData);
return compressedData;
default:
case Utils.Constants.DEFLATED:
var deflater = new Methods.Deflater(uncompressedData);
if (!async) {
var deflated = deflater.deflate();
_centralHeader.compressedSize = deflated.length;
return deflated;
} else {
deflater.deflateAsync(function(data) {
compressedData = Buffer.alloc(data.length);
_centralHeader.compressedSize = data.length;
data.copy(compressedData);
callback && callback(compressedData);
});
}
deflater = null;
break;
}
} else if (async && callback) {
callback(Buffer.alloc(0));
} else {
return Buffer.alloc(0);
}
}
function readUInt64LE(buffer, offset) {
return (buffer.readUInt32LE(offset + 4) << 4) + buffer.readUInt32LE(offset);
}
function parseExtra(data) {
try {
var offset = 0;
var signature, size, part;
while (offset + 4 < data.length) {
signature = data.readUInt16LE(offset);
offset += 2;
size = data.readUInt16LE(offset);
offset += 2;
part = data.slice(offset, offset + size);
offset += size;
if (Constants.ID_ZIP64 === signature) {
parseZip64ExtendedInformation(part);
}
}
} catch (error) {
throw Utils.Errors.EXTRA_FIELD_PARSE_ERROR();
}
}
function parseZip64ExtendedInformation(data) {
var size, compressedSize, offset, diskNumStart;
if (data.length >= Constants.EF_ZIP64_SCOMP) {
size = readUInt64LE(data, Constants.EF_ZIP64_SUNCOMP);
if (_centralHeader.size === Constants.EF_ZIP64_OR_32) {
_centralHeader.size = size;
}
}
if (data.length >= Constants.EF_ZIP64_RHO) {
compressedSize = readUInt64LE(data, Constants.EF_ZIP64_SCOMP);
if (_centralHeader.compressedSize === Constants.EF_ZIP64_OR_32) {
_centralHeader.compressedSize = compressedSize;
}
}
if (data.length >= Constants.EF_ZIP64_DSN) {
offset = readUInt64LE(data, Constants.EF_ZIP64_RHO);
if (_centralHeader.offset === Constants.EF_ZIP64_OR_32) {
_centralHeader.offset = offset;
}
}
if (data.length >= Constants.EF_ZIP64_DSN + 4) {
diskNumStart = data.readUInt32LE(Constants.EF_ZIP64_DSN);
if (_centralHeader.diskNumStart === Constants.EF_ZIP64_OR_16) {
_centralHeader.diskNumStart = diskNumStart;
}
}
}
return {
get entryName() {
return decoder.decode(_entryName);
},
get rawEntryName() {
return _entryName;
},
set entryName(val) {
_entryName = Utils.toBuffer(val, decoder.encode);
var lastChar = _entryName[_entryName.length - 1];
_isDirectory = lastChar === 47 || lastChar === 92;
_centralHeader.fileNameLength = _entryName.length;
},
get efs() {
if (typeof _efs === "function") {
return _efs(this.entryName);
} else {
return _efs;
}
},
get extra() {
return _extra;
},
set extra(val) {
_extra = val;
_centralHeader.extraLength = val.length;
parseExtra(val);
},
get comment() {
return decoder.decode(_comment);
},
set comment(val) {
_comment = Utils.toBuffer(val, decoder.encode);
_centralHeader.commentLength = _comment.length;
if (_comment.length > 65535)
throw Utils.Errors.COMMENT_TOO_LONG();
},
get name() {
var n = decoder.decode(_entryName);
return _isDirectory ? n.substr(n.length - 1).split("/").pop() : n.split("/").pop();
},
get isDirectory() {
return _isDirectory;
},
getCompressedData: function() {
return compress(false, null);
},
getCompressedDataAsync: function(callback) {
compress(true, callback);
},
setData: function(value) {
uncompressedData = Utils.toBuffer(value, Utils.decoder.encode);
if (!_isDirectory && uncompressedData.length) {
_centralHeader.size = uncompressedData.length;
_centralHeader.method = Utils.Constants.DEFLATED;
_centralHeader.crc = Utils.crc32(value);
_centralHeader.changed = true;
} else {
_centralHeader.method = Utils.Constants.STORED;
}
},
getData: function(pass) {
if (_centralHeader.changed) {
return uncompressedData;
} else {
return decompress(false, null, pass);
}
},
getDataAsync: function(callback, pass) {
if (_centralHeader.changed) {
callback(uncompressedData);
} else {
decompress(true, callback, pass);
}
},
set attr(attr) {
_centralHeader.attr = attr;
},
get attr() {
return _centralHeader.attr;
},
set header(data) {
_centralHeader.loadFromBinary(data);
},
get header() {
return _centralHeader;
},
packCentralHeader: function() {
_centralHeader.flags_efs = this.efs;
_centralHeader.extraLength = _extra.length;
var header = _centralHeader.centralHeaderToBinary();
var addpos = Utils.Constants.CENHDR;
_entryName.copy(header, addpos);
addpos += _entryName.length;
_extra.copy(header, addpos);
addpos += _centralHeader.extraLength;
_comment.copy(header, addpos);
return header;
},
packLocalHeader: function() {
let addpos = 0;
_centralHeader.flags_efs = this.efs;
_centralHeader.extraLocalLength = _extralocal.length;
const localHeaderBuf = _centralHeader.localHeaderToBinary();
const localHeader = Buffer.alloc(localHeaderBuf.length + _entryName.length + _centralHeader.extraLocalLength);
localHeaderBuf.copy(localHeader, addpos);
addpos += localHeaderBuf.length;
_entryName.copy(localHeader, addpos);
addpos += _entryName.length;
_extralocal.copy(localHeader, addpos);
addpos += _extralocal.length;
return localHeader;
},
toJSON: function() {
const bytes = function(nr) {
return "<" + (nr && nr.length + " bytes buffer" || "null") + ">";
};
return {
entryName: this.entryName,
name: this.name,
comment: this.comment,
isDirectory: this.isDirectory,
header: _centralHeader.toJSON(),
compressedData: bytes(input),
data: bytes(uncompressedData)
};
},
toString: function() {
return JSON.stringify(this.toJSON(), null, "\t");
}
};
};
});
// node_modules/adm-zip/zipFile.js
var require_zipFile = __commonJS((exports, module) => {
var ZipEntry = require_zipEntry();
var Headers = require_headers();
var Utils = require_util();
module.exports = function(inBuffer, options) {
var entryList = [], entryTable = {}, _comment = Buffer.alloc(0), mainHeader = new Headers.MainHeader, loadedEntries = false;
var password = null;
const temporary = new Set;
const opts = options;
const { noSort, decoder } = opts;
if (inBuffer) {
readMainHeader(opts.readEntries);
} else {
loadedEntries = true;
}
function makeTemporaryFolders() {
const foldersList = new Set;
for (const elem of Object.keys(entryTable)) {
const elements = elem.split("/");
elements.pop();
if (!elements.length)
continue;
for (let i = 0;i < elements.length; i++) {
const sub = elements.slice(0, i + 1).join("/") + "/";
foldersList.add(sub);
}
}
for (const elem of foldersList) {
if (!(elem in entryTable)) {
const tempfolder = new ZipEntry(opts);
tempfolder.entryName = elem;
tempfolder.attr = 16;
tempfolder.temporary = true;
entryList.push(tempfolder);
entryTable[tempfolder.entryName] = tempfolder;
temporary.add(tempfolder);
}
}
}
function readEntries() {
loadedEntries = true;
entryTable = {};
if (mainHeader.diskEntries > (inBuffer.length - mainHeader.offset) / Utils.Constants.CENHDR) {
throw Utils.Errors.DISK_ENTRY_TOO_LARGE();
}
entryList = new Array(mainHeader.diskEntries);
var index = mainHeader.offset;
for (var i = 0;i < entryList.length; i++) {
var tmp = index, entry = new ZipEntry(opts, inBuffer);
entry.header = inBuffer.slice(tmp, tmp += Utils.Constants.CENHDR);
entry.entryName = inBuffer.slice(tmp, tmp += entry.header.fileNameLength);
if (entry.header.extraLength) {
entry.extra = inBuffer.slice(tmp, tmp += entry.header.extraLength);
}
if (entry.header.commentLength)
entry.comment = inBuffer.slice(tmp, tmp + entry.header.commentLength);
index += entry.header.centralHeaderSize;
entryList[i] = entry;
entryTable[entry.entryName] = entry;
}
temporary.clear();
makeTemporaryFolders();
}
function readMainHeader(readNow) {
var i = inBuffer.length - Utils.Constants.ENDHDR, max = Math.max(0, i - 65535), n = max, endStart = inBuffer.length, endOffset = -1, commentEnd = 0;
const trailingSpace = typeof opts.trailingSpace === "boolean" ? opts.trailingSpace : false;
if (trailingSpace)
max = 0;
for (i;i >= n; i--) {
if (inBuffer[i] !== 80)
continue;
if (inBuffer.readUInt32LE(i) === Utils.Constants.ENDSIG) {
endOffset = i;
commentEnd = i;
endStart = i + Utils.Constants.ENDHDR;
n = i - Utils.Constants.END64HDR;
continue;
}
if (inBuffer.readUInt32LE(i) === Utils.Constants.END64SIG) {
n = max;
continue;
}
if (inBuffer.readUInt32LE(i) === Utils.Constants.ZIP64SIG) {
endOffset = i;
endStart = i + Utils.readBigUInt64LE(inBuffer, i + Utils.Constants.ZIP64SIZE) + Utils.Constants.ZIP64LEAD;
break;
}
}
if (endOffset == -1)
throw Utils.Errors.INVALID_