deno.land / x / sheetjs@v0.18.3 / packages / otorp / index.node.js
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548var __defProp = Object.defineProperty;var __getOwnPropDesc = Object.getOwnPropertyDescriptor;var __getOwnPropNames = Object.getOwnPropertyNames;var __hasOwnProp = Object.prototype.hasOwnProperty;var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true });};var __reExport = (target, module2, copyDefault, desc) => { if (module2 && typeof module2 === "object" || typeof module2 === "function") { for (let key of __getOwnPropNames(module2)) if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default")) __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); } return target;};var __toCommonJS = /* @__PURE__ */ ((cache) => { return (module2, temp) => { return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp); };})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
// index.node.tsvar index_node_exports = {};__export(index_node_exports, { otorp: () => otorp_default});
// ../../modules/src/util.tsvar u8_to_dataview = (array) => new DataView(array.buffer, array.byteOffset, array.byteLength);var u8str = (u8) => new TextDecoder().decode(u8);var indent = (str, depth) => str.split(/\n/g).map((x) => x && " ".repeat(depth) + x).join("\n");function u8indexOf(u8, data, byteOffset) { if (typeof data == "number") return u8.indexOf(data, byteOffset); var l = byteOffset; if (typeof data == "string") { outs: while ((l = u8.indexOf(data.charCodeAt(0), l)) > -1) { ++l; for (var j = 1; j < data.length; ++j) if (u8[l + j - 1] != data.charCodeAt(j)) continue outs; return l - 1; } } else { outb: while ((l = u8.indexOf(data[0], l)) > -1) { ++l; for (var j = 1; j < data.length; ++j) if (u8[l + j - 1] != data[j]) continue outb; return l - 1; } } return -1;}
// src/macho.tsvar parse_fat = (buf) => { var dv = u8_to_dataview(buf); if (dv.getUint32(0, false) !== 3405691582) throw new Error("Unsupported file"); var nfat_arch = dv.getUint32(4, false); var out = []; for (var i = 0; i < nfat_arch; ++i) { var start = i * 20 + 8; var cputype = dv.getUint32(start, false); var cpusubtype = dv.getUint32(start + 4, false); var offset = dv.getUint32(start + 8, false); var size = dv.getUint32(start + 12, false); var align = dv.getUint32(start + 16, false); out.push({ type: cputype, subtype: cpusubtype, offset, size, align, data: buf.slice(offset, offset + size) }); } return out;};var parse_macho = (buf) => { var dv = u8_to_dataview(buf); var magic = dv.getUint32(0, false); switch (magic) { case 3405691582: return parse_fat(buf); case 3489328638: return [{ type: dv.getUint32(4, false), subtype: dv.getUint32(8, false), offset: 0, size: buf.length, data: buf }]; } throw new Error("Unsupported file");};
// ../../modules/src/proto.tsfunction parse_varint49(buf, ptr) { var l = ptr ? ptr[0] : 0; var usz = buf[l] & 127; varint: if (buf[l++] >= 128) { usz |= (buf[l] & 127) << 7; if (buf[l++] < 128) break varint; usz |= (buf[l] & 127) << 14; if (buf[l++] < 128) break varint; usz |= (buf[l] & 127) << 21; if (buf[l++] < 128) break varint; usz += (buf[l] & 127) * Math.pow(2, 28); ++l; if (buf[l++] < 128) break varint; usz += (buf[l] & 127) * Math.pow(2, 35); ++l; if (buf[l++] < 128) break varint; usz += (buf[l] & 127) * Math.pow(2, 42); ++l; if (buf[l++] < 128) break varint; } if (ptr) ptr[0] = l; return usz;}function varint_to_i32(buf) { var l = 0, i32 = buf[l] & 127; varint: if (buf[l++] >= 128) { i32 |= (buf[l] & 127) << 7; if (buf[l++] < 128) break varint; i32 |= (buf[l] & 127) << 14; if (buf[l++] < 128) break varint; i32 |= (buf[l] & 127) << 21; if (buf[l++] < 128) break varint; i32 |= (buf[l] & 127) << 28; } return i32;}function parse_shallow(buf) { var out = [], ptr = [0]; while (ptr[0] < buf.length) { var off = ptr[0]; var num = parse_varint49(buf, ptr); var type = num & 7; num = Math.floor(num / 8); var len = 0; var res; if (num == 0) break; switch (type) { case 0: { var l = ptr[0]; while (buf[ptr[0]++] >= 128) ; res = buf.slice(l, ptr[0]); } break; case 5: len = 4; res = buf.slice(ptr[0], ptr[0] + len); ptr[0] += len; break; case 1: len = 8; res = buf.slice(ptr[0], ptr[0] + len); ptr[0] += len; break; case 2: len = parse_varint49(buf, ptr); res = buf.slice(ptr[0], ptr[0] + len); ptr[0] += len; break; case 3: case 4: default: throw new Error(`PB Type ${type} for Field ${num} at offset ${off}`); } var v = { offset: off, data: res }; if (out[num] == null) out[num] = [v]; else out[num].push(v); } return out;}function mappa(data, cb) { if (!data) return []; return data.map((d) => { try { return cb(d.data); } catch (e) { var m = e.message?.match(/at offset (\d+)/); if (m) e.message = e.message.replace(/at offset (\d+)/, "at offset " + (+m[1] + d.offset)); throw e; } });}
// src/descriptor.tsvar TYPES = [ "error", "double", "float", "int64", "uint64", "int32", "fixed64", "fixed32", "bool", "string", "group", "message", "bytes", "uint32", "enum", "sfixed32", "sfixed64", "sint32", "sint64"];function parse_FileOptions(buf) { var data = parse_shallow(buf); var out = {}; if (data[1]?.[0]) out.javaPackage = u8str(data[1][0].data); if (data[8]?.[0]) out.javaOuterClassname = u8str(data[8][0].data); if (data[11]?.[0]) out.goPackage = u8str(data[11][0].data); return out;}function parse_EnumValue(buf) { var data = parse_shallow(buf); var out = {}; if (data[1]?.[0]) out.name = u8str(data[1][0].data); if (data[2]?.[0]) out.number = varint_to_i32(data[2][0].data); return out;}function parse_Enum(buf) { var data = parse_shallow(buf); var out = {}; if (data[1]?.[0]) out.name = u8str(data[1][0].data); out.value = mappa(data[2], parse_EnumValue); return out;}var write_Enum = (en) => { var out = [`enum ${en.name} {`]; en.value?.forEach(({ name, number }) => out.push(` ${name} = ${number};`)); return out.concat(`}`).join("\n");};function parse_FieldOptions(buf) { var data = parse_shallow(buf); var out = {}; if (data[2]?.[0]) out.packed = !!data[2][0].data; if (data[3]?.[0]) out.deprecated = !!data[3][0].data; return out;}function parse_Field(buf) { var data = parse_shallow(buf); var out = {}; if (data[1]?.[0]) out.name = u8str(data[1][0].data); if (data[2]?.[0]) out.extendee = u8str(data[2][0].data); if (data[3]?.[0]) out.number = varint_to_i32(data[3][0].data); if (data[4]?.[0]) out.label = varint_to_i32(data[4][0].data); if (data[5]?.[0]) out.type = varint_to_i32(data[5][0].data); if (data[6]?.[0]) out.typeName = u8str(data[6][0].data); if (data[7]?.[0]) out.defaultValue = u8str(data[7][0].data); if (data[8]?.[0]) out.options = parse_FieldOptions(data[8][0].data); return out;}function write_Field(field) { var out = []; var label = ["", "optional ", "required ", "repeated "][field.label] || ""; var type = field.typeName || TYPES[field.type] || "s5s"; var opts = []; if (field.defaultValue) opts.push(`default = ${field.defaultValue}`); if (field.options?.packed) opts.push(`packed = true`); if (field.options?.deprecated) opts.push(`deprecated = true`); var os = opts.length ? ` [${opts.join(", ")}]` : ""; out.push(`${label}${type} ${field.name} = ${field.number}${os};`); return out.length ? indent(out.join("\n"), 1) : "";}function write_extensions(ext, xtra = false, coalesce = true) { var res = []; var xt = []; ext.forEach((ext2) => { if (!ext2.extendee) return; var row = coalesce ? xt.find((x) => x[0] == ext2.extendee) : xt[xt.length - 1]?.[0] == ext2.extendee ? xt[xt.length - 1] : null; if (row) row[1].push(ext2); else xt.push([ext2.extendee, [ext2]]); }); xt.forEach((extrow) => { var out = [`extend ${extrow[0]} {`]; extrow[1].forEach((ext2) => out.push(write_Field(ext2))); res.push(out.concat(`}`).join("\n") + (xtra ? "\n" : "")); }); return res.join("\n");}function parse_mtype(buf) { var data = parse_shallow(buf); var out = {}; if (data[1]?.[0]) out.name = u8str(data[1][0].data); if (data[2]?.length >= 1) out.field = mappa(data[2], parse_Field); if (data[3]?.length >= 1) out.nestedType = mappa(data[3], parse_mtype); if (data[4]?.length >= 1) out.enumType = mappa(data[4], parse_Enum); if (data[6]?.length >= 1) out.extension = mappa(data[6], parse_Field); if (data[5]?.length >= 1) out.extensionRange = data[5].map((d) => { var data2 = parse_shallow(d.data); var out2 = {}; if (data2[1]?.[0]) out2.start = varint_to_i32(data2[1][0].data); if (data2[2]?.[0]) out2.end = varint_to_i32(data2[2][0].data); return out2; }); return out;}var write_mtype = (message) => { var out = [`message ${message.name} {`]; message.nestedType?.forEach((m) => out.push(indent(write_mtype(m), 1))); message.enumType?.forEach((en) => out.push(indent(write_Enum(en), 1))); message.field?.forEach((field) => out.push(write_Field(field))); if (message.extensionRange) message.extensionRange.forEach((er) => out.push(` extensions ${er.start} to ${er.end - 1};`)); if (message.extension?.length) out.push(indent(write_extensions(message.extension), 1)); return out.concat(`}`).join("\n");};function parse_FileDescriptor(buf) { var data = parse_shallow(buf); var out = {}; if (data[1]?.[0]) out.name = u8str(data[1][0].data); if (data[2]?.[0]) out.package = u8str(data[2][0].data); if (data[3]?.[0]) out.dependency = data[3].map((x) => u8str(x.data)); if (data[4]?.length >= 1) out.messageType = mappa(data[4], parse_mtype); if (data[5]?.length >= 1) out.enumType = mappa(data[5], parse_Enum); if (data[7]?.length >= 1) out.extension = mappa(data[7], parse_Field); if (data[8]?.[0]) out.options = parse_FileOptions(data[8][0].data); return out;}var write_FileDescriptor = (pb) => { var out = [ 'syntax = "proto2";', "" ]; if (pb.dependency) pb.dependency.forEach((n) => { if (n) out.push(`import "${n}";`); }); if (pb.package) out.push(`package ${pb.package};`); if (pb.options) { var o = out.length; if (pb.options.javaPackage) out.push(`option java_package = "${pb.options.javaPackage}";`); if (pb.options.javaOuterClassname?.replace(/\W/g, "")) out.push(`option java_outer_classname = "${pb.options.javaOuterClassname}";`); if (pb.options.javaMultipleFiles) out.push(`option java_multiple_files = true;`); if (pb.options.goPackage) out.push(`option go_package = "${pb.options.goPackage}";`); if (out.length > o) out.push(""); } pb.enumType?.forEach((en) => { if (en.name) out.push(write_Enum(en) + "\n"); }); pb.messageType?.forEach((m) => { if (m.name) { var o2 = write_mtype(m); if (o2) out.push(o2 + "\n"); } }); if (pb.extension?.length) { var e = write_extensions(pb.extension, true, false); if (e) out.push(e); } return out.join("\n") + "\n";};
// src/otorp.tsfunction otorp(buf, builtins = false) { var res = proto_offsets(buf); var registry = {}; var names = /* @__PURE__ */ new Set(); var out = []; res.forEach((r, i) => { if (!builtins && r[1].startsWith("google/protobuf/")) return; var b = buf.slice(r[0], i < res.length - 1 ? res[i + 1][0] : buf.length); var pb = parse_FileDescriptorProto(b); names.add(r[1]); registry[r[1]] = pb; }); names.forEach((name) => { names.delete(name); var pb = registry[name]; var doit = (pb.dependency || []).every((d) => !names.has(d)); if (!doit) { names.add(name); return; } var dups = res.filter((r) => r[1] == name); if (dups.length == 1) return out.push({ name, proto: write_FileDescriptor(pb) }); var pbs = dups.map((r) => { var i = res.indexOf(r); var b = buf.slice(r[0], i < res.length - 1 ? res[i + 1][0] : buf.length); var pb2 = parse_FileDescriptorProto(b); return write_FileDescriptor(pb2); }); for (var l = 1; l < pbs.length; ++l) if (pbs[l] != pbs[0]) throw new Error(`Conflicting definitions for ${name} at offsets 0x${dups[0][0].toString(16)} and 0x${dups[l][0].toString(16)}`); return out.push({ name, proto: pbs[0] }); }); return out;}var otorp_default = otorp;var is_referenced = (buf, pos) => { var dv = u8_to_dataview(buf); for (var leaddr = 0; leaddr > -1 && leaddr < pos; leaddr = u8indexOf(buf, 141, leaddr + 1)) if (dv.getUint32(leaddr + 2, true) == pos - leaddr - 6) return true; try { var headers = parse_macho(buf); for (var i = 0; i < headers.length; ++i) { if (pos < headers[i].offset || pos > headers[i].offset + headers[i].size) continue; var b = headers[i].data; var p = pos - headers[i].offset; var ref = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]); var dv = u8_to_dataview(ref); dv.setInt32(0, p, true); if (u8indexOf(b, ref, 0) > 0) return true; ref[4] = 1; if (u8indexOf(b, ref, 0) > 0) return true; } } catch (e) { } return false;};var proto_offsets = (buf) => { var meta = parse_macho(buf); var out = []; var off = 0; search: while ((off = u8indexOf(buf, ".proto", off + 1)) > -1) { var pos = off; off += 6; while (off - pos < 256 && buf[pos] != off - pos - 1) { if (buf[pos] > 127 || buf[pos] < 32) continue search; --pos; } if (off - pos > 250) continue; var name = u8str(buf.slice(pos + 1, off)); if (buf[--pos] != 10) continue; if (!is_referenced(buf, pos)) { console.error(`Reference to ${name} not found`); continue; } var bin = meta.find((m) => m.offset <= pos && m.offset + m.size >= pos); out.push([pos, name, bin?.type || -1, bin?.subtype || -1]); } return out;};var parse_FileDescriptorProto = (buf) => { var l = buf.length; while (l > 0) try { var b = buf.slice(0, l); var o = parse_FileDescriptor(b); return o; } catch (e) { var m = e.message.match(/at offset (\d+)/); if (m && parseInt(m[1], 10) < buf.length) l = parseInt(m[1], 10) - 1; else --l; } throw new RangeError("no protobuf message in range");};module.exports = __toCommonJS(index_node_exports);// Annotate the CommonJS export names for ESM import in node:0 && (module.exports = { otorp});/*! otorp (C) 2013-present SheetJS -- http://sheetjs.com *//*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */
Version Info