vue-book-reader
Version:
vue-book-reader is a vue wrapper for [foliate-js](https://github.com/johnfactotum/foliate-js) - library for rendering e-books in the browser. Supports EPUB, MOBI, KF8 (AZW3), FB2, CBZ, PDF (experimental; requires PDF.js), or add support for other formats
163 lines (162 loc) • 5.94 kB
JavaScript
var c = Uint8Array, S = Uint16Array, Y = Uint32Array, r1 = new c([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0, 0]), n1 = new c([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 0, 0]), i1 = new c([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), e1 = function(n, e) {
for (var r = new S(31), v = 0; v < 31; ++v)
r[v] = e += 1 << n[v - 1];
var t = new Y(r[30]);
for (v = 1; v < 30; ++v)
for (var u = r[v]; u < r[v + 1]; ++u)
t[u] = u - r[v] << 5 | v;
return [r, t];
}, a1 = e1(r1, 2), t1 = a1[0], w1 = a1[1];
t1[28] = 258, w1[258] = 28;
for (var b1 = e1(n1, 0)[0], Z = new S(32768), f = 0; f < 32768; ++f) {
var x = (43690 & f) >>> 1 | (21845 & f) << 1;
x = (61680 & (x = (52428 & x) >>> 2 | (13107 & x) << 2)) >>> 4 | (3855 & x) << 4, Z[f] = ((65280 & x) >>> 8 | (255 & x) << 8) >>> 1;
}
var L = function(n, e, r) {
for (var v = n.length, t = 0, u = new S(e); t < v; ++t)
n[t] && ++u[n[t] - 1];
var s, b = new S(e);
for (t = 0; t < e; ++t)
b[t] = b[t - 1] + u[t - 1] << 1;
if (r) {
s = new S(1 << e);
var a = 15 - e;
for (t = 0; t < v; ++t)
if (n[t])
for (var o = t << 4 | n[t], l = e - n[t], E = b[n[t] - 1]++ << l, m = E | (1 << l) - 1; E <= m; ++E)
s[Z[E] >>> a] = o;
} else
for (s = new S(v), t = 0; t < v; ++t)
n[t] && (s[t] = Z[b[n[t] - 1]++] >>> 15 - n[t]);
return s;
}, M = new c(288);
for (f = 0; f < 144; ++f)
M[f] = 8;
for (f = 144; f < 256; ++f)
M[f] = 9;
for (f = 256; f < 280; ++f)
M[f] = 7;
for (f = 280; f < 288; ++f)
M[f] = 8;
var v1 = new c(32);
for (f = 0; f < 32; ++f)
v1[f] = 5;
var l1 = L(M, 9, 1), h1 = L(v1, 5, 1), G = function(n) {
for (var e = n[0], r = 1; r < n.length; ++r)
n[r] > e && (e = n[r]);
return e;
}, w = function(n, e, r) {
var v = e / 8 | 0;
return (n[v] | n[v + 1] << 8) >> (7 & e) & r;
}, J = function(n, e) {
var r = e / 8 | 0;
return (n[r] | n[r + 1] << 8 | n[r + 2] << 16) >> (7 & e);
}, s1 = ["unexpected EOF", "invalid block type", "invalid length/literal", "invalid distance", "stream finished", "no stream handler", , "no callback", "invalid UTF-8 data", "extra field too long", "date not in range 1980-2099", "filename too long", "stream finishing", "invalid zip data"], h = function(n, e, r) {
var v = new Error(e || s1[n]);
if (v.code = n, Error.captureStackTrace && Error.captureStackTrace(v, h), !r)
throw v;
return v;
}, E1 = function(n, e, r) {
var v = n.length;
if (!v || r && r.f && !r.l)
return e || new c(0);
var t = !e || r, u = !r || r.i;
r || (r = {}), e || (e = new c(3 * v));
var s = function(y) {
var T = e.length;
if (y > T) {
var k = new c(Math.max(2 * T, y));
k.set(e), e = k;
}
}, b = r.f || 0, a = r.p || 0, o = r.b || 0, l = r.l, E = r.d, m = r.m, _ = r.n, j = 8 * v;
do {
if (!l) {
b = w(n, a, 1);
var q = w(n, a + 1, 3);
if (a += 3, !q) {
var B = n[(p = 4 + ((a + 7) / 8 | 0)) - 4] | n[p - 3] << 8, D = p + B;
if (D > v) {
u && h(0);
break;
}
t && s(o + B), e.set(n.subarray(p, D), o), r.b = o += B, r.p = a = 8 * D, r.f = b;
continue;
}
if (q == 1)
l = l1, E = h1, m = 9, _ = 5;
else if (q == 2) {
var F = w(n, a, 31) + 257, P = w(n, a + 10, 15) + 4, W = F + w(n, a + 5, 31) + 1;
a += 14;
for (var d = new c(W), O = new c(19), i = 0; i < P; ++i)
O[i1[i]] = w(n, a + 3 * i, 7);
a += 3 * P;
var I = G(O), f1 = (1 << I) - 1, o1 = L(O, I, 1);
for (i = 0; i < W; ) {
var p, H = o1[w(n, a, f1)];
if (a += 15 & H, (p = H >>> 4) < 16)
d[i++] = p;
else {
var z = 0, N = 0;
for (p == 16 ? (N = 3 + w(n, a, 3), a += 2, z = d[i - 1]) : p == 17 ? (N = 3 + w(n, a, 7), a += 3) : p == 18 && (N = 11 + w(n, a, 127), a += 7); N--; )
d[i++] = z;
}
}
var $ = d.subarray(0, F), g = d.subarray(F);
m = G($), _ = G(g), l = L($, m, 1), E = L(g, _, 1);
} else
h(1);
if (a > j) {
u && h(0);
break;
}
}
t && s(o + 131072);
for (var u1 = (1 << m) - 1, c1 = (1 << _) - 1, Q = a; ; Q = a) {
var U = (z = l[J(n, a) & u1]) >>> 4;
if ((a += 15 & z) > j) {
u && h(0);
break;
}
if (z || h(2), U < 256)
e[o++] = U;
else {
if (U == 256) {
Q = a, l = null;
break;
}
var X = U - 254;
if (U > 264) {
var A = r1[i = U - 257];
X = w(n, a, (1 << A) - 1) + t1[i], a += A;
}
var R = E[J(n, a) & c1], V = R >>> 4;
if (R || h(3), a += 15 & R, g = b1[V], V > 3 && (A = n1[V], g += J(n, a) & (1 << A) - 1, a += A), a > j) {
u && h(0);
break;
}
t && s(o + 131072);
for (var K = o + X; o < K; o += 4)
e[o] = e[o - g], e[o + 1] = e[o + 1 - g], e[o + 2] = e[o + 2 - g], e[o + 3] = e[o + 3 - g];
o = K;
}
}
r.l = l, r.p = Q, r.b = o, r.f = b, l && (b = 1, r.m = m, r.d = E, r.n = _);
} while (!b);
return o == e.length ? e : function(y, T, k) {
(T == null || T < 0) && (T = 0), (k == null || k > y.length) && (k = y.length);
var C = new (y.BYTES_PER_ELEMENT == 2 ? S : y.BYTES_PER_ELEMENT == 4 ? Y : c)(k - T);
return C.set(y.subarray(T, k)), C;
}(e, 0, o);
}, p1 = new c(0);
function y1(n, e) {
return E1((((15 & (r = n)[0]) != 8 || r[0] >>> 4 > 7 || (r[0] << 8 | r[1]) % 31) && h(6, "invalid zlib data"), 32 & r[1] && h(6, "invalid zlib data: preset dictionaries not supported"), n.subarray(2, -4)), e);
var r;
}
var g1 = typeof TextDecoder < "u" && new TextDecoder();
try {
g1.decode(p1, { stream: !0 });
} catch {
}
export {
y1 as unzlibSync
};