@prose-reader/streamer 1.95.0 → 1.97.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/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- import { urlJoin as S, PROSE_READER_RESOURCE_ERROR_INJECTED_META_NAME as oe, isXmlBasedMimeType as ce, detectMimeTypeFromName as V } from "@prose-reader/shared";
1
+ import { urlJoin as S, PROSE_READER_RESOURCE_ERROR_INJECTED_META_NAME as oe, isXmlBasedMimeType as ce, detectMimeTypeFromName as X } from "@prose-reader/shared";
2
2
  import $, { XmlDocument as de } from "xmldoc";
3
- import { Subject as I, mergeMap as k, EMPTY as le, from as A, map as v, catchError as T, NEVER as X, shareReplay as B, switchMap as C, startWith as me, distinctUntilChanged as pe, withLatestFrom as fe, timer as ue, tap as _, merge as H, takeUntil as he, BehaviorSubject as ge, filter as be, ignoreElements as ye, first as we, finalize as E, of as G, lastValueFrom as J } from "rxjs";
3
+ import { Subject as k, mergeMap as I, EMPTY as B, from as T, map as v, catchError as A, shareReplay as _, switchMap as C, startWith as le, distinctUntilChanged as me, withLatestFrom as pe, NEVER as ue, timer as fe, of as P, tap as H, merge as E, takeUntil as he, BehaviorSubject as ge, filter as be, ignoreElements as ye, first as we, finalize as G, lastValueFrom as J } from "rxjs";
4
4
  let N = !1;
5
5
  const y = {
6
6
  enable: (e) => {
@@ -25,168 +25,168 @@ const y = {
25
25
  N && console.timeEnd(`[prose-reader-streamer] [metric] ${e}`);
26
26
  },
27
27
  metric: (e, n = 1 / 0) => {
28
- const a = typeof e == "number" ? e : e.duration;
28
+ const s = typeof e == "number" ? e : e.duration;
29
29
  N && (e.duration <= n ? console.log(
30
30
  "[prose-reader-streamer] [metric] ",
31
- `${e.name} took ${a}ms`
31
+ `${e.name} took ${s}ms`
32
32
  ) : console.warn(
33
33
  "[prose-reader-streamer] [metric] ",
34
34
  `${e.name} took ${e.duration}ms which is above the ${n}ms target for this function`
35
35
  ));
36
36
  },
37
37
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
- measurePerformance: (e, n = 10, a) => (...r) => {
39
- const t = performance.now(), s = a(...r);
40
- if (s && s.then)
41
- return s.then((o) => {
38
+ measurePerformance: (e, n = 10, s) => (...a) => {
39
+ const t = performance.now(), r = s(...a);
40
+ if (r && r.then)
41
+ return r.then((o) => {
42
42
  const m = performance.now();
43
43
  return y.metric({ name: e, duration: m - t }, n), o;
44
44
  });
45
45
  const i = performance.now();
46
- return y.metric({ name: e, duration: i - t }, n), s;
46
+ return y.metric({ name: e, duration: i - t }, n), r;
47
47
  }
48
48
  }, ve = (e) => {
49
- var a;
50
- const n = (a = e.descendantWithPath("head")) == null ? void 0 : a.childrenNamed("meta").find((r) => r.attr.name === "calibre:cover");
49
+ var s;
50
+ const n = (s = e.descendantWithPath("head")) == null ? void 0 : s.childrenNamed("meta").find((a) => a.attr.name === "calibre:cover");
51
51
  return !!(n && n.attr.name === "calibre:cover");
52
52
  }, $e = (e) => {
53
- var n, a, r;
54
- return (r = (a = (n = e.descendantWithPath("body")) == null ? void 0 : n.descendantWithPath("div")) == null ? void 0 : a.childrenNamed("svg")) == null ? void 0 : r.find(
53
+ var n, s, a;
54
+ return (a = (s = (n = e.descendantWithPath("body")) == null ? void 0 : n.descendantWithPath("div")) == null ? void 0 : s.childrenNamed("svg")) == null ? void 0 : a.find(
55
55
  (t) => t.attr.width === "100%" && t.attr.preserveAspectRatio === "none"
56
56
  );
57
- }, xe = ({ archive: e, resourcePath: n }) => async (a) => {
58
- const r = Object.values(e.files).find(
57
+ }, xe = ({ archive: e, resourcePath: n }) => async (s) => {
58
+ const a = Object.values(e.files).find(
59
59
  (t) => t.uri === n
60
60
  );
61
- if (r != null && r.basename.endsWith(".xhtml")) {
62
- const t = a.body ?? await r.string(), s = new de(t);
63
- if (ve(s)) {
64
- const i = $e(s);
61
+ if (a != null && a.basename.endsWith(".xhtml")) {
62
+ const t = s.body ?? await a.string(), r = new de(t);
63
+ if (ve(r)) {
64
+ const i = $e(r);
65
65
  return i && delete i.attr.preserveAspectRatio, {
66
- ...a,
67
- body: s == null ? void 0 : s.toString()
66
+ ...s,
67
+ body: r == null ? void 0 : r.toString()
68
68
  };
69
69
  }
70
70
  }
71
- return a;
72
- }, Fe = ({ archive: e, resourcePath: n }) => async (a) => xe({ archive: e, resourcePath: n })(a), Ne = ({ archive: e, resourcePath: n }) => async (a) => {
73
- const r = Object.values(e.files).find(
71
+ return s;
72
+ }, Fe = ({ archive: e, resourcePath: n }) => async (s) => xe({ archive: e, resourcePath: n })(s), Ne = ({ archive: e, resourcePath: n }) => async (s) => {
73
+ const a = Object.values(e.files).find(
74
74
  (t) => t.uri === n
75
75
  );
76
- if (r != null && r.basename.endsWith(".css")) {
77
- const s = (a.body ?? await r.string()).replaceAll(
76
+ if (a != null && a.basename.endsWith(".css")) {
77
+ const r = (s.body ?? await a.string()).replaceAll(
78
78
  "-webkit-writing-mode",
79
79
  "writing-mode"
80
80
  );
81
81
  return {
82
- ...a,
83
- body: s
82
+ ...s,
83
+ body: r
84
84
  };
85
85
  }
86
- return a;
87
- }, L = (e) => {
88
- const a = Object.values(e.files).filter((r) => !r.dir).find((r) => r.uri.endsWith(".opf"));
86
+ return s;
87
+ }, W = (e) => {
88
+ const s = Object.values(e.files).filter((a) => !a.dir).find((a) => a.uri.endsWith(".opf"));
89
89
  return {
90
- data: a,
91
- basePath: (a == null ? void 0 : a.uri.substring(0, a.uri.lastIndexOf("/"))) || ""
90
+ data: s,
91
+ basePath: (s == null ? void 0 : s.uri.substring(0, s.uri.lastIndexOf("/"))) || ""
92
92
  };
93
- }, K = (e, { opfBasePath: n, baseUrl: a }) => {
94
- const r = {
93
+ }, K = (e, { opfBasePath: n, baseUrl: s }) => {
94
+ const a = {
95
95
  contents: [],
96
96
  path: "",
97
97
  href: "",
98
98
  title: ""
99
99
  };
100
100
  let t = e.childNamed("span") || e.childNamed("a");
101
- r.title = (t == null ? void 0 : t.attr.title) || (t == null ? void 0 : t.val.trim()) || r.title;
102
- let s = t == null ? void 0 : t.name;
103
- s !== "a" && (t = e.descendantWithPath(`${s}.a`), t && (s = t.name.toLowerCase())), s === "a" && (t != null && t.attr.href) && (r.path = S(n, t.attr.href), r.href = S(a, n, t.attr.href));
101
+ a.title = (t == null ? void 0 : t.attr.title) || (t == null ? void 0 : t.val.trim()) || a.title;
102
+ let r = t == null ? void 0 : t.name;
103
+ r !== "a" && (t = e.descendantWithPath(`${r}.a`), t && (r = t.name.toLowerCase())), r === "a" && (t != null && t.attr.href) && (a.path = S(n, t.attr.href), a.href = S(s, n, t.attr.href));
104
104
  const i = e.childNamed("ol");
105
105
  if (i) {
106
106
  const o = i.childrenNamed("li");
107
- o && o.length > 0 && (r.contents = o.map(
108
- (m) => K(m, { opfBasePath: n, baseUrl: a })
107
+ o && o.length > 0 && (a.contents = o.map(
108
+ (m) => K(m, { opfBasePath: n, baseUrl: s })
109
109
  ));
110
110
  }
111
- return r;
112
- }, Te = (e, { opfBasePath: n, baseUrl: a }) => {
113
- var s, i;
114
- const r = [];
111
+ return a;
112
+ }, Se = (e, { opfBasePath: n, baseUrl: s }) => {
113
+ var r, i;
114
+ const a = [];
115
115
  let t;
116
- return e.descendantWithPath("body.nav.ol") ? t = (s = e.descendantWithPath("body.nav.ol")) == null ? void 0 : s.children : e.descendantWithPath("body.section.nav.ol") && (t = (i = e.descendantWithPath("body.section.nav.ol")) == null ? void 0 : i.children), t && t.length > 0 && t.filter((o) => o.name === "li").forEach(
117
- (o) => r.push(K(o, { opfBasePath: n, baseUrl: a }))
118
- ), r;
119
- }, Se = async (e, n, { opfBasePath: a, baseUrl: r }) => {
120
- var s;
121
- const t = (s = e.childNamed("manifest")) == null ? void 0 : s.childrenNamed("item").find((i) => i.attr.properties === "nav");
116
+ return e.descendantWithPath("body.nav.ol") ? t = (r = e.descendantWithPath("body.nav.ol")) == null ? void 0 : r.children : e.descendantWithPath("body.section.nav.ol") && (t = (i = e.descendantWithPath("body.section.nav.ol")) == null ? void 0 : i.children), t && t.length > 0 && t.filter((o) => o.name === "li").forEach(
117
+ (o) => a.push(K(o, { opfBasePath: n, baseUrl: s }))
118
+ ), a;
119
+ }, Te = async (e, n, { opfBasePath: s, baseUrl: a }) => {
120
+ var r;
121
+ const t = (r = e.childNamed("manifest")) == null ? void 0 : r.childrenNamed("item").find((i) => i.attr.properties === "nav");
122
122
  if (t) {
123
123
  const i = Object.values(n.files).find(
124
124
  (o) => o.uri.endsWith(t.attr.href || "")
125
125
  );
126
126
  if (i) {
127
127
  const o = new $.XmlDocument(await i.string());
128
- return Te(o, { opfBasePath: a, baseUrl: r });
128
+ return Se(o, { opfBasePath: s, baseUrl: a });
129
129
  }
130
130
  }
131
131
  }, Y = (e, {
132
132
  opfBasePath: n,
133
- baseUrl: a,
134
- prefix: r
133
+ baseUrl: s,
134
+ prefix: a
135
135
  }) => {
136
136
  var o, m;
137
- const t = ((o = e == null ? void 0 : e.childNamed(`${r}content`)) == null ? void 0 : o.attr.src) || "", s = {
138
- title: ((m = e == null ? void 0 : e.descendantWithPath(`${r}navLabel.${r}text`)) == null ? void 0 : m.val) || "",
137
+ const t = ((o = e == null ? void 0 : e.childNamed(`${a}content`)) == null ? void 0 : o.attr.src) || "", r = {
138
+ title: ((m = e == null ? void 0 : e.descendantWithPath(`${a}navLabel.${a}text`)) == null ? void 0 : m.val) || "",
139
139
  path: S(n, t),
140
- href: S(a, n, t),
140
+ href: S(s, n, t),
141
141
  contents: []
142
- }, i = e.childrenNamed(`${r}navPoint`);
143
- return i && i.length > 0 && (s.contents = i.map(
144
- (u) => Y(u, { opfBasePath: n, baseUrl: a, prefix: r })
145
- )), s;
146
- }, Ae = (e, { opfBasePath: n, baseUrl: a }) => {
142
+ }, i = e.childrenNamed(`${a}navPoint`);
143
+ return i && i.length > 0 && (r.contents = i.map(
144
+ (f) => Y(f, { opfBasePath: n, baseUrl: s, prefix: a })
145
+ )), r;
146
+ }, Ae = (e, { opfBasePath: n, baseUrl: s }) => {
147
147
  var i;
148
- const r = [], t = e.name;
149
- let s = "";
150
- return t.indexOf(":") !== -1 && (s = t.split(":")[0] + ":"), (i = e.childNamed(`${s}navMap`)) == null || i.childrenNamed(`${s}navPoint`).forEach(
151
- (o) => r.push(Y(o, { opfBasePath: n, baseUrl: a, prefix: s }))
152
- ), r;
153
- }, Le = async ({
148
+ const a = [], t = e.name;
149
+ let r = "";
150
+ return t.indexOf(":") !== -1 && (r = t.split(":")[0] + ":"), (i = e.childNamed(`${r}navMap`)) == null || i.childrenNamed(`${r}navPoint`).forEach(
151
+ (o) => a.push(Y(o, { opfBasePath: n, baseUrl: s, prefix: r }))
152
+ ), a;
153
+ }, We = async ({
154
154
  opfData: e,
155
155
  opfBasePath: n,
156
- baseUrl: a,
157
- archive: r
156
+ baseUrl: s,
157
+ archive: a
158
158
  }) => {
159
159
  var i;
160
- const t = e.childNamed("spine"), s = t && t.attr.toc;
161
- if (s) {
162
- const o = (i = e.childNamed("manifest")) == null ? void 0 : i.childrenNamed("item").find((m) => m.attr.id === s);
160
+ const t = e.childNamed("spine"), r = t && t.attr.toc;
161
+ if (r) {
162
+ const o = (i = e.childNamed("manifest")) == null ? void 0 : i.childrenNamed("item").find((m) => m.attr.id === r);
163
163
  if (o) {
164
- const m = `${n}${n === "" ? "" : "/"}${o.attr.href}`, u = Object.values(r.files).find(
164
+ const m = `${n}${n === "" ? "" : "/"}${o.attr.href}`, f = Object.values(a.files).find(
165
165
  (c) => c.uri.endsWith(m)
166
166
  );
167
- if (u) {
168
- const c = new $.XmlDocument(await u.string());
169
- return Ae(c, { opfBasePath: n, baseUrl: a });
167
+ if (f) {
168
+ const c = new $.XmlDocument(await f.string());
169
+ return Ae(c, { opfBasePath: n, baseUrl: s });
170
170
  }
171
171
  }
172
172
  }
173
- }, Re = async (e, n, { baseUrl: a }) => {
174
- const { basePath: r } = L(n) || {}, t = await Le({
173
+ }, Le = async (e, n, { baseUrl: s }) => {
174
+ const { basePath: a } = W(n) || {}, t = await We({
175
175
  opfData: e,
176
- opfBasePath: r,
176
+ opfBasePath: a,
177
177
  archive: n,
178
- baseUrl: a
178
+ baseUrl: s
179
179
  });
180
- return t || await Se(e, n, { opfBasePath: r, baseUrl: a });
181
- }, We = async (e) => {
180
+ return t || await Te(e, n, { opfBasePath: a, baseUrl: s });
181
+ }, Re = async (e) => {
182
182
  const n = {
183
183
  renditionLayout: void 0
184
184
  };
185
185
  return await Promise.all(
186
- e.files.map(async (a) => {
187
- var r, t;
188
- if (a.uri.endsWith("com.kobobooks.display-options.xml")) {
189
- const i = (r = new $.XmlDocument(await a.string()).childNamed("platform")) == null ? void 0 : r.childNamed("option");
186
+ e.files.map(async (s) => {
187
+ var a, t;
188
+ if (s.uri.endsWith("com.kobobooks.display-options.xml")) {
189
+ const i = (a = new $.XmlDocument(await s.string()).childNamed("platform")) == null ? void 0 : a.childNamed("option");
190
190
  ((t = i == null ? void 0 : i.attr) == null ? void 0 : t.name) === "fixed-layout" && i.val === "true" && (n.renditionLayout = "pre-paginated");
191
191
  }
192
192
  })
@@ -194,33 +194,33 @@ const y = {
194
194
  }, Q = async ({
195
195
  archive: e
196
196
  }) => {
197
- const { data: n, basePath: a } = L(e) || {}, r = await (n == null ? void 0 : n.string());
198
- if (!r) return [];
199
- const t = new $.XmlDocument(r), s = t.childNamed("manifest"), i = t.childNamed("spine"), o = i == null ? void 0 : i.childrenNamed("itemref").map((c) => c.attr.idref), m = (s == null ? void 0 : s.childrenNamed("item").filter((c) => o.includes(c.attr.id || ""))) || [];
200
- return e.files.filter((c) => m.find((d) => a ? `${a}/${d.attr.href}` === c.uri : `${d.attr.href}` === c.uri));
197
+ const { data: n, basePath: s } = W(e) || {}, a = await (n == null ? void 0 : n.string());
198
+ if (!a) return [];
199
+ const t = new $.XmlDocument(a), r = t.childNamed("manifest"), i = t.childNamed("spine"), o = i == null ? void 0 : i.childrenNamed("itemref").map((c) => c.attr.idref), m = (r == null ? void 0 : r.childrenNamed("item").filter((c) => o.includes(c.attr.id || ""))) || [];
200
+ return e.files.filter((c) => m.find((d) => s ? `${s}/${d.attr.href}` === c.uri : `${d.attr.href}` === c.uri));
201
201
  }, Z = (e) => {
202
- var a;
202
+ var s;
203
203
  const n = e.childNamed("manifest");
204
- return ((a = n == null ? void 0 : n.childrenNamed("item")) == null ? void 0 : a.map((r) => ({
205
- href: r.attr.href || "",
206
- id: r.attr.id || "",
207
- mediaType: r.attr["media-type"]
204
+ return ((s = n == null ? void 0 : n.childrenNamed("item")) == null ? void 0 : s.map((a) => ({
205
+ href: a.attr.href || "",
206
+ id: a.attr.id || "",
207
+ mediaType: a.attr["media-type"]
208
208
  }))) || [];
209
- }, Ie = ({ archive: e, baseUrl: n }) => async (a) => {
210
- var O;
211
- const { data: r, basePath: t } = L(e) || {}, s = await We(e);
212
- if (!r)
213
- return a;
214
- const i = await r.string();
215
- y.log(i, s);
216
- const o = new $.XmlDocument(i), m = await Re(o, e, { baseUrl: n }) || [], u = o.childNamed("metadata"), c = o.childNamed("manifest"), d = o.childNamed("spine"), p = o.childNamed("guide"), b = u == null ? void 0 : u.childNamed("dc:title"), F = (u == null ? void 0 : u.childrenNamed("meta")) || [], g = F.find(
217
- (f) => f.attr.property === "rendition:layout"
209
+ }, ke = ({ archive: e, baseUrl: n }) => async (s) => {
210
+ var j;
211
+ const { data: a, basePath: t } = W(e) || {}, r = await Re(e);
212
+ if (!a)
213
+ return s;
214
+ const i = await a.string();
215
+ y.log(i, r);
216
+ const o = new $.XmlDocument(i), m = await Le(o, e, { baseUrl: n }) || [], f = o.childNamed("metadata"), c = o.childNamed("manifest"), d = o.childNamed("spine"), p = o.childNamed("guide"), b = f == null ? void 0 : f.childNamed("dc:title"), F = (f == null ? void 0 : f.childrenNamed("meta")) || [], g = F.find(
217
+ (u) => u.attr.property === "rendition:layout"
218
218
  ), h = F.find(
219
- (f) => f.attr.property === "rendition:flow"
220
- ), R = F.find(
221
- (f) => f.attr.property === "rendition:spread"
222
- ), D = g == null ? void 0 : g.val, ee = h == null ? void 0 : h.val, te = R == null ? void 0 : R.val, ne = (b == null ? void 0 : b.val) || ((O = e.files.find(({ dir: f }) => f)) == null ? void 0 : O.basename) || "", re = d == null ? void 0 : d.attr["page-progression-direction"], se = (await Q({ archive: e })).reduce(
223
- (f, l) => l.size + f,
219
+ (u) => u.attr.property === "rendition:flow"
220
+ ), L = F.find(
221
+ (u) => u.attr.property === "rendition:spread"
222
+ ), O = g == null ? void 0 : g.val, ee = h == null ? void 0 : h.val, te = L == null ? void 0 : L.val, ne = (b == null ? void 0 : b.val) || ((j = e.files.find(({ dir: u }) => u)) == null ? void 0 : j.basename) || "", re = d == null ? void 0 : d.attr["page-progression-direction"], ae = (await Q({ archive: e })).reduce(
223
+ (u, l) => l.size + u,
224
224
  0
225
225
  );
226
226
  return {
@@ -228,44 +228,44 @@ const y = {
228
228
  nav: {
229
229
  toc: m
230
230
  },
231
- renditionLayout: D || s.renditionLayout || "reflowable",
231
+ renditionLayout: O || r.renditionLayout || "reflowable",
232
232
  renditionFlow: ee || "auto",
233
233
  renditionSpread: te,
234
234
  title: ne,
235
235
  readingDirection: re || "ltr",
236
- spineItems: (d == null ? void 0 : d.childrenNamed("itemref").map((f) => {
237
- var M, z, U;
238
- const l = c == null ? void 0 : c.childrenNamed("item").find((w) => w.attr.id === (f == null ? void 0 : f.attr.idref)), ae = (l == null ? void 0 : l.attr.href) || "", W = ((M = f == null ? void 0 : f.attr.properties) == null ? void 0 : M.split(" ")) || [], ie = ((z = e.files.find((w) => w.uri.endsWith(ae))) == null ? void 0 : z.size) || 0, j = n ?? "";
236
+ spineItems: (d == null ? void 0 : d.childrenNamed("itemref").map((u) => {
237
+ var z, U, V;
238
+ const l = c == null ? void 0 : c.childrenNamed("item").find((w) => w.attr.id === (u == null ? void 0 : u.attr.idref)), se = (l == null ? void 0 : l.attr.href) || "", R = ((z = u == null ? void 0 : u.attr.properties) == null ? void 0 : z.split(" ")) || [], ie = ((U = e.files.find((w) => w.uri.endsWith(se))) == null ? void 0 : U.size) || 0, M = n ?? "";
239
239
  return {
240
240
  id: (l == null ? void 0 : l.attr.id) || "",
241
- href: (U = l == null ? void 0 : l.attr.href) != null && U.startsWith("https://") ? l == null ? void 0 : l.attr.href : t ? `${j}${t}/${l == null ? void 0 : l.attr.href}` : `${j}${l == null ? void 0 : l.attr.href}`,
242
- renditionLayout: D || "reflowable",
243
- ...W.find(
241
+ href: (V = l == null ? void 0 : l.attr.href) != null && V.startsWith("https://") ? l == null ? void 0 : l.attr.href : t ? `${M}${t}/${l == null ? void 0 : l.attr.href}` : `${M}${l == null ? void 0 : l.attr.href}`,
242
+ renditionLayout: O || "reflowable",
243
+ ...R.find(
244
244
  (w) => w === "rendition:layout-reflowable"
245
245
  ) && {
246
246
  renditionLayout: "reflowable"
247
247
  },
248
- progressionWeight: ie / se,
249
- pageSpreadLeft: W.some((w) => w === "page-spread-left") || void 0,
250
- pageSpreadRight: W.some((w) => w === "page-spread-right") || void 0,
248
+ progressionWeight: ie / ae,
249
+ pageSpreadLeft: R.some((w) => w === "page-spread-left") || void 0,
250
+ pageSpreadRight: R.some((w) => w === "page-spread-right") || void 0,
251
251
  // size: itemSize
252
252
  mediaType: l == null ? void 0 : l.attr["media-type"]
253
253
  };
254
254
  })) || [],
255
255
  items: Z(o),
256
- guide: p == null ? void 0 : p.childrenNamed("reference").map((f) => ({
257
- href: f.attr.href || "",
258
- title: f.attr.title || "",
259
- type: f.attr.type
256
+ guide: p == null ? void 0 : p.childrenNamed("reference").map((u) => ({
257
+ href: u.attr.href || "",
258
+ title: u.attr.title || "",
259
+ type: u.attr.type
260
260
  }))
261
261
  };
262
- }, ke = async (e, n) => {
263
- var t, s;
264
- const r = await ((t = L(e).data) == null ? void 0 : t.string());
265
- if (r) {
266
- const i = new $.XmlDocument(r);
262
+ }, Ie = async (e, n) => {
263
+ var t, r;
264
+ const a = await ((t = W(e).data) == null ? void 0 : t.string());
265
+ if (a) {
266
+ const i = new $.XmlDocument(a);
267
267
  return {
268
- mediaType: (s = Z(i).find((m) => n.endsWith(m.href))) == null ? void 0 : s.mediaType
268
+ mediaType: (r = Z(i).find((m) => n.endsWith(m.href))) == null ? void 0 : r.mediaType
269
269
  };
270
270
  }
271
271
  return {
@@ -282,20 +282,20 @@ const y = {
282
282
  return "video/mp4";
283
283
  if (e.endsWith(".svg"))
284
284
  return "image/svg+xml";
285
- }, Pe = ({ archive: e, resourcePath: n }) => async (a) => {
286
- const r = Object.values(e.files).find(
287
- (s) => s.uri === n
285
+ }, Pe = ({ archive: e, resourcePath: n }) => async (s) => {
286
+ const a = Object.values(e.files).find(
287
+ (r) => r.uri === n
288
288
  );
289
- if (!r) return a;
290
- const t = await ke(e, n);
289
+ if (!a) return s;
290
+ const t = await Ie(e, n);
291
291
  return {
292
- ...a,
292
+ ...s,
293
293
  params: {
294
- ...a.params,
294
+ ...s.params,
295
295
  status: 200,
296
296
  headers: {
297
- ...(r == null ? void 0 : r.encodingFormat) && {
298
- "Content-Type": r.encodingFormat
297
+ ...(a == null ? void 0 : a.encodingFormat) && {
298
+ "Content-Type": a.encodingFormat
299
299
  },
300
300
  ...t.mediaType && {
301
301
  "Content-Type": t.mediaType
@@ -304,12 +304,12 @@ const y = {
304
304
  }
305
305
  };
306
306
  }, De = async (e, n) => {
307
- const a = Object.values(e.files).find(
308
- (s) => s.uri === n
307
+ const s = Object.values(e.files).find(
308
+ (r) => r.uri === n
309
309
  );
310
- if (!a)
310
+ if (!s)
311
311
  throw new Error("no file found");
312
- const r = {
312
+ const a = {
313
313
  params: {
314
314
  status: 200
315
315
  }
@@ -319,13 +319,13 @@ const y = {
319
319
  Fe({ archive: e, resourcePath: n })
320
320
  ];
321
321
  try {
322
- const s = await t.reduce(async (i, o) => await o(await i), Promise.resolve(r));
323
- return y.log("Generated resource", n, s), {
324
- ...s,
325
- body: s.body || await a.blob()
322
+ const r = await t.reduce(async (i, o) => await o(await i), Promise.resolve(a));
323
+ return y.log("Generated resource", n, r), {
324
+ ...r,
325
+ body: r.body || await s.blob()
326
326
  };
327
- } catch (s) {
328
- throw y.error(s), s;
327
+ } catch (r) {
328
+ throw y.error(r), r;
329
329
  }
330
330
  }, Ye = (e) => ({
331
331
  body: `
@@ -346,111 +346,111 @@ const y = {
346
346
  }
347
347
  }
348
348
  }), Oe = ({ archive: e, baseUrl: n }) => async () => {
349
- var r;
350
- const a = Object.values(e.files).filter((t) => !t.dir);
349
+ var a;
350
+ const s = Object.values(e.files).filter((t) => !t.dir);
351
351
  return {
352
352
  filename: e.filename,
353
- title: ((r = e.files.find(({ dir: t }) => t)) == null ? void 0 : r.basename.replace(/\/$/, "")) || "",
353
+ title: ((a = e.files.find(({ dir: t }) => t)) == null ? void 0 : a.basename.replace(/\/$/, "")) || "",
354
354
  renditionLayout: "pre-paginated",
355
355
  renditionSpread: "auto",
356
356
  readingDirection: "ltr",
357
- spineItems: a.filter((t) => !t.basename.endsWith(".db")).map((t, s) => ({
357
+ spineItems: s.filter((t) => !t.basename.endsWith(".db")).map((t, r) => ({
358
358
  // some books such as cbz can have same basename inside different sub folder
359
359
  // we need to make sure to have unique index
360
360
  // /chap01/01.png, /chap02/01.png, etc
361
- id: `${s}.${t.basename}`,
361
+ id: `${r}.${t.basename}`,
362
362
  href: encodeURI(`${n}${t.uri}`),
363
363
  renditionLayout: "pre-paginated",
364
- progressionWeight: 1 / a.length,
364
+ progressionWeight: 1 / s.length,
365
365
  pageSpreadLeft: void 0,
366
366
  pageSpreadRight: void 0,
367
367
  mediaType: t.encodingFormat
368
368
  })),
369
- items: a.map((t, s) => ({
370
- id: `${s}.${t.basename}`,
369
+ items: s.map((t, r) => ({
370
+ id: `${r}.${t.basename}`,
371
371
  href: `${n}${t.uri}`
372
372
  }))
373
373
  };
374
374
  }, je = ({ archive: e }) => async (n) => {
375
- var s;
376
- const a = e.files.find(
375
+ var r;
376
+ const s = e.files.find(
377
377
  (i) => i.basename.toLowerCase() === "comicinfo.xml"
378
378
  );
379
- if (!a)
379
+ if (!s)
380
380
  return n;
381
- const r = {
381
+ const a = {
382
382
  ...n,
383
383
  spineItems: n.spineItems.filter((i) => !i.id.toLowerCase().endsWith("comicinfo.xml")).map((i, o, m) => ({
384
384
  ...i,
385
385
  progressionWeight: 1 / m.length
386
386
  }))
387
- }, t = await a.string();
387
+ }, t = await s.string();
388
388
  try {
389
- const o = ((s = new $.XmlDocument(t).childNamed("Manga")) == null ? void 0 : s.val) || "unknown";
389
+ const o = ((r = new $.XmlDocument(t).childNamed("Manga")) == null ? void 0 : r.val) || "unknown";
390
390
  return {
391
- ...r,
391
+ ...a,
392
392
  readingDirection: o === "YesAndRightToLeft" ? "rtl" : "ltr"
393
393
  };
394
394
  } catch (i) {
395
395
  return console.error(`Unable to parse comicinfo.xml for content
396
- `, t), console.error(i), r;
396
+ `, t), console.error(i), a;
397
397
  }
398
398
  }, Me = (e) => {
399
- var a;
400
- const n = (a = e.descendantWithPath("head")) == null ? void 0 : a.childrenNamed("meta").find((r) => r.attr.name === "viewport");
399
+ var s;
400
+ const n = (s = e.descendantWithPath("head")) == null ? void 0 : s.childrenNamed("meta").find((a) => a.attr.name === "viewport");
401
401
  return !!(n && n.attr.name === "viewport");
402
- }, ze = (e) => e.reduce(async (n, a) => {
402
+ }, ze = (e) => e.reduce(async (n, s) => {
403
403
  if (!await n || !ce({
404
- mimeType: a.encodingFormat,
405
- uri: a.uri
404
+ mimeType: s.encodingFormat,
405
+ uri: s.uri
406
406
  }))
407
407
  return !1;
408
- const t = await a.string();
408
+ const t = await s.string();
409
409
  return t ? Me(new $.XmlDocument(t)) : !1;
410
410
  }, Promise.resolve(!0)), Ue = ({ archive: e }) => async (n) => {
411
- if (n.renditionLayout === "reflowable" && n.spineItems.every((r) => r.renditionLayout === "reflowable")) {
412
- const r = await Q({ archive: e });
413
- if (await ze(r))
411
+ if (n.renditionLayout === "reflowable" && n.spineItems.every((a) => a.renditionLayout === "reflowable")) {
412
+ const a = await Q({ archive: e });
413
+ if (await ze(a))
414
414
  return {
415
415
  ...n,
416
- spineItems: n.spineItems.map((s) => ({
417
- ...s,
416
+ spineItems: n.spineItems.map((r) => ({
417
+ ...r,
418
418
  renditionLayout: "pre-paginated"
419
419
  })),
420
420
  renditionLayout: "pre-paginated"
421
421
  };
422
422
  }
423
423
  return n;
424
- }, P = (e, n) => {
424
+ }, D = (e, n) => {
425
425
  var t;
426
- const a = e.split(/(\d+)/), r = n.split(/(\d+)/);
427
- for (let s = 0, i = a.length; s < i; s++)
428
- if (a[s] !== r[s])
429
- return (t = a[s]) != null && t.match(/\d/) ? +(a[s] || "") - +(r[s] || "") : (a[s] || "").localeCompare(r[s] || "");
426
+ const s = e.split(/(\d+)/), a = n.split(/(\d+)/);
427
+ for (let r = 0, i = s.length; r < i; r++)
428
+ if (s[r] !== a[r])
429
+ return (t = s[r]) != null && t.match(/\d/) ? +(s[r] || "") - +(a[r] || "") : (s[r] || "").localeCompare(a[r] || "");
430
430
  return 1;
431
- }, Ve = ({ archive: e, baseUrl: n }) => async (a) => {
432
- if (a.nav) return a;
433
- const r = [...e.files].sort(
434
- (s, i) => P(s.uri, i.uri)
431
+ }, Ve = ({ archive: e, baseUrl: n }) => async (s) => {
432
+ if (s.nav) return s;
433
+ const a = [...e.files].sort(
434
+ (r, i) => D(r.uri, i.uri)
435
435
  ), t = Object.values(
436
- r
436
+ a
437
437
  ).reduce(
438
- (s, i) => {
438
+ (r, i) => {
439
439
  const o = i.uri.split("/");
440
- return !i.dir && o.length > 1 && o.forEach((u, c) => {
440
+ return !i.dir && o.length > 1 && o.forEach((f, c) => {
441
441
  if (c === o.length - 1) return;
442
- s.find(({ title: b }) => b === u) || s.push({
442
+ r.find(({ title: b }) => b === f) || r.push({
443
443
  contents: [],
444
444
  href: S(n, encodeURI(i.uri)).replace(/\/$/, ""),
445
445
  path: i.uri.replace(/\/$/, ""),
446
446
  title: o[0] ?? ""
447
447
  });
448
- }), s;
448
+ }), r;
449
449
  },
450
450
  []
451
451
  );
452
- return t.length === 0 ? a : {
453
- ...a,
452
+ return t.length === 0 ? s : {
453
+ ...s,
454
454
  nav: {
455
455
  toc: t
456
456
  }
@@ -467,21 +467,21 @@ const y = {
467
467
  spineItems: [],
468
468
  title: ""
469
469
  }, Be = async (e, { baseUrl: n = "" } = {}) => {
470
- const a = [
470
+ const s = [
471
471
  Oe({ archive: e, baseUrl: n }),
472
- Ie({ archive: e, baseUrl: n }),
472
+ ke({ archive: e, baseUrl: n }),
473
473
  Ue({ archive: e, baseUrl: n }),
474
474
  je({ archive: e, baseUrl: n }),
475
475
  Ve({ archive: e, baseUrl: n })
476
476
  ];
477
477
  try {
478
- const r = await a.reduce(async (t, s) => await s(await t), Promise.resolve(Xe));
479
- return y.log("Generated manifest", r), r;
480
- } catch (r) {
481
- throw y.error(r), r;
478
+ const a = await s.reduce(async (t, r) => await r(await t), Promise.resolve(Xe));
479
+ return y.log("Generated manifest", a), a;
480
+ } catch (a) {
481
+ throw y.error(a), a;
482
482
  }
483
483
  }, x = (e) => e.substring(e.lastIndexOf("/") + 1) || e, q = (e) => e.endsWith("/") ? e.slice(0, -1) : e, Qe = async (e, n) => {
484
- const a = `
484
+ const s = `
485
485
  <?xml version="1.0" encoding="UTF-8"?><package xmlns="http://www.idpf.org/2007/opf" version="2.0" unique-identifier="bookid">
486
486
  <metadata>
487
487
  <meta property="rendition:layout">${n != null && n.useRenditionFlow ? "reflowable" : "pre-paginated"}</meta>
@@ -489,20 +489,20 @@ const y = {
489
489
  </metadata>
490
490
  <manifest>
491
491
  ${e.map(
492
- (s) => `<item id="${x(s)}" href="${s}" media-type="${V(s)}"/>`
492
+ (r) => `<item id="${x(r)}" href="${r}" media-type="${X(r)}"/>`
493
493
  ).join(`
494
494
  `)}
495
495
  </manifest>
496
496
  <spine>
497
- ${e.map((s) => `<itemref idref="${x(s)}" />`).join(`
497
+ ${e.map((r) => `<itemref idref="${x(r)}" />`).join(`
498
498
  `)}
499
499
  </spine>
500
500
  </package>
501
- `, r = e.map((s) => ({
501
+ `, a = e.map((r) => ({
502
502
  dir: !1,
503
- basename: x(s),
504
- encodingFormat: V(s),
505
- uri: s,
503
+ basename: x(r),
504
+ encodingFormat: X(r),
505
+ uri: r,
506
506
  size: 100 / e.length,
507
507
  base64: async () => "",
508
508
  blob: async () => new Blob(),
@@ -515,23 +515,23 @@ const y = {
515
515
  basename: "content.opf",
516
516
  uri: "content.opf",
517
517
  size: 0,
518
- base64: async () => a,
518
+ base64: async () => s,
519
519
  blob: async () => new Blob(),
520
- string: async () => a
521
- }, ...r],
520
+ string: async () => s
521
+ }, ...a],
522
522
  close: () => Promise.resolve()
523
523
  };
524
524
  }, _e = async (e) => new Promise((n) => {
525
- const a = new FileReader();
526
- a.readAsDataURL(e), a.onloadend = function() {
527
- const r = a.result;
528
- n(r);
525
+ const s = new FileReader();
526
+ s.readAsDataURL(e), s.onloadend = function() {
527
+ const a = s.result;
528
+ n(a);
529
529
  };
530
530
  }), Ze = async (e, {
531
531
  mimeType: n,
532
- direction: a
532
+ direction: s
533
533
  } = { mimeType: "text/plain" }) => {
534
- const r = `
534
+ const a = `
535
535
  <?xml version="1.0" encoding="UTF-8"?>
536
536
  <package xmlns="http://www.idpf.org/2007/opf" version="3.0" xml:lang="ja" prefix="rendition: http://www.idpf.org/vocab/rendition/#"
537
537
  unique-identifier="ootuya-id">
@@ -542,7 +542,7 @@ const y = {
542
542
  <manifest>
543
543
  <item id="p01" href="p01.txt" media-type="text/plain"/>
544
544
  </manifest>
545
- <spine page-progression-direction="${a ?? "ltr"}">
545
+ <spine page-progression-direction="${s ?? "ltr"}">
546
546
  <itemref idref="p01" />
547
547
  </spine>
548
548
  </package>
@@ -554,9 +554,9 @@ const y = {
554
554
  dir: !1,
555
555
  basename: x("generated.opf"),
556
556
  uri: "generated.opf",
557
- blob: async () => new Blob([r]),
558
- string: async () => r,
559
- base64: async () => btoa(r),
557
+ blob: async () => new Blob([a]),
558
+ string: async () => a,
559
+ base64: async () => btoa(a),
560
560
  size: 0
561
561
  },
562
562
  {
@@ -572,34 +572,34 @@ const y = {
572
572
  ],
573
573
  close: () => Promise.resolve()
574
574
  };
575
- }, et = async (e, { orderByAlpha: n, name: a } = {}) => {
576
- let r = Object.values(e.files);
577
- n && (r = r.slice().sort((s, i) => P(s.name, i.name)));
575
+ }, et = async (e, { orderByAlpha: n, name: s } = {}) => {
576
+ let a = Object.values(e.files);
577
+ n && (a = a.slice().sort((r, i) => D(r.name, i.name)));
578
578
  const t = {
579
- filename: a || "",
580
- files: r.map((s) => ({
581
- dir: s.dir,
582
- basename: x(s.name),
583
- uri: s.name,
584
- blob: () => s.async("blob"),
585
- string: () => s.async("string"),
586
- base64: () => s.async("base64"),
587
- ...s.internalStream && {
588
- stream: s.internalStream
579
+ filename: s || "",
580
+ files: a.map((r) => ({
581
+ dir: r.dir,
582
+ basename: x(r.name),
583
+ uri: r.name,
584
+ blob: () => r.async("blob"),
585
+ string: () => r.async("string"),
586
+ base64: () => r.async("base64"),
587
+ ...r.internalStream && {
588
+ stream: r.internalStream
589
589
  },
590
590
  // this is private API
591
591
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
592
592
  // @ts-ignore
593
- size: s._data.uncompressedSize
593
+ size: r._data.uncompressedSize
594
594
  })),
595
595
  close: () => Promise.resolve()
596
596
  };
597
597
  return y.log("Generated archive", t), t;
598
598
  }, tt = async (e, { name: n } = {}) => {
599
- const a = await e.getFilesArray(), r = {
599
+ const s = await e.getFilesArray(), a = {
600
600
  close: () => e.close(),
601
601
  filename: n ?? "",
602
- files: a.map((t) => ({
602
+ files: s.map((t) => ({
603
603
  dir: !1,
604
604
  basename: t.file.name,
605
605
  size: t.file.size,
@@ -609,21 +609,21 @@ const y = {
609
609
  string: async () => (await t.file.extract()).text()
610
610
  }))
611
611
  };
612
- return y.log("Generated archive", r), r;
613
- }, nt = async (e, { orderByAlpha: n, name: a } = {}) => {
614
- let r = e;
615
- return n && (r = r.slice().sort((t, s) => P(t.name, s.name))), {
616
- filename: a || "",
617
- files: r.map((t) => ({
612
+ return y.log("Generated archive", a), a;
613
+ }, nt = async (e, { orderByAlpha: n, name: s } = {}) => {
614
+ let a = e;
615
+ return n && (a = a.slice().sort((t, r) => D(t.name, r.name))), {
616
+ filename: s || "",
617
+ files: a.map((t) => ({
618
618
  dir: t.isDir,
619
619
  basename: x(t.name),
620
620
  uri: t.name,
621
621
  blob: async () => new Blob([await t.data()]),
622
622
  string: async () => {
623
- const s = await t.data();
623
+ const r = await t.data();
624
624
  return String.fromCharCode.apply(
625
625
  null,
626
- Array.from(new Uint16Array(s))
626
+ Array.from(new Uint16Array(r))
627
627
  );
628
628
  },
629
629
  base64: async () => "",
@@ -639,59 +639,56 @@ const y = {
639
639
  getArchive: e,
640
640
  cleanArchiveAfter: n
641
641
  }) => {
642
- const a = new I(), r = new I(), t = new I(), s = {}, i = a.pipe(
643
- k((c) => {
644
- const d = s[c];
645
- return !d || d.getValue().status !== "idle" ? le : (d.next({
642
+ const s = new k(), a = new k(), t = new k(), r = {}, i = s.pipe(
643
+ I((c) => {
644
+ const d = r[c];
645
+ return !d || d.getValue().status !== "idle" ? B : (d.next({
646
646
  ...d.getValue(),
647
647
  status: "loading"
648
- }), A(e(c)).pipe(
648
+ }), T(e(c)).pipe(
649
649
  v((p) => (d.next({
650
650
  ...d.getValue(),
651
651
  archive: p,
652
652
  status: "success"
653
653
  }), { key: c, archiveEntry: d })),
654
- T((p) => {
655
- throw d.next({
656
- ...d.getValue(),
657
- status: "error",
658
- error: p
659
- }), p;
660
- })
654
+ A((p) => (d.next({
655
+ ...d.getValue(),
656
+ status: "error",
657
+ error: p
658
+ }), B))
661
659
  ));
662
660
  }),
663
- T(() => X),
664
- B()
661
+ _()
665
662
  ), o = i.pipe(
666
663
  C(({ archiveEntry: c, key: d }) => {
667
664
  const p = c.pipe(v(({ locks: g }) => g)), b = t.pipe(
668
665
  v(() => !0),
669
- me(!1),
670
- B()
666
+ le(!1),
667
+ _()
671
668
  );
672
669
  return p.pipe(
673
670
  v((g) => g <= 0),
674
- pe()
671
+ me()
675
672
  ).pipe(
676
- fe(b),
673
+ pe(b),
677
674
  C(
678
- ([g, h]) => g ? ue(h ? 1 : n) : X
675
+ ([g, h]) => g ? h ? P(null) : fe(n) : ue
679
676
  ),
680
- _(() => {
677
+ H(() => {
681
678
  var g;
682
- console.log("ARCHIVE DELETED"), delete s[d], (g = c.getValue().archive) == null || g.close();
679
+ delete r[d], (g = c.getValue().archive) == null || g.close();
683
680
  })
684
681
  );
685
682
  })
686
683
  ), m = (c) => {
687
684
  let d = !1;
688
- const p = s[c] ?? new ge({
685
+ const p = r[c] ?? new ge({
689
686
  archive: void 0,
690
687
  status: "idle",
691
688
  locks: 0,
692
689
  error: void 0
693
690
  });
694
- s[c] = p, p.next({
691
+ r[c] = p, p.next({
695
692
  ...p.getValue(),
696
693
  locks: p.getValue().locks + 1
697
694
  });
@@ -701,106 +698,110 @@ const y = {
701
698
  locks: p.getValue().locks - 1
702
699
  }));
703
700
  };
704
- a.next(c);
701
+ s.next(c);
705
702
  const F = p.pipe(
706
703
  v(({ archive: h }) => h),
707
704
  be((h) => !!h)
708
705
  ), g = p.pipe(
709
- _(({ error: h }) => {
706
+ H(({ error: h }) => {
710
707
  if (h)
711
708
  throw h;
712
709
  }),
713
710
  ye()
714
711
  );
715
- return H(F, g).pipe(
712
+ return E(F, g).pipe(
716
713
  we(),
717
714
  v((h) => ({ archive: h, release: b })),
718
- T((h) => {
715
+ A((h) => {
719
716
  throw b(), h;
720
717
  })
721
718
  );
722
- }, u = () => t.next();
723
- return H(o, i).pipe(he(r)).subscribe(), {
719
+ }, f = () => {
720
+ Object.keys(r).forEach((c) => {
721
+ delete r[c];
722
+ }), t.next();
723
+ };
724
+ return E(o, i).pipe(he(a)).subscribe(), {
724
725
  access: m,
725
- purge: u
726
+ purge: f
726
727
  };
727
728
  };
728
729
  class Ee {
729
730
  constructor({
730
731
  onError: n,
731
- onManifestSuccess: a,
732
- ...r
732
+ onManifestSuccess: s,
733
+ ...a
733
734
  }) {
734
- this.onError = (t) => new Response(String(t), { status: 500 }), this.epubLoader = He(r), this.onManifestSuccess = a ?? (({ manifest: t }) => Promise.resolve(t)), this.onError = n ?? this.onError;
735
+ this.onError = (t) => new Response(String(t), { status: 500 }), this.epubLoader = He(a), this.onManifestSuccess = s ?? (({ manifest: t }) => Promise.resolve(t)), this.onError = n ?? this.onError;
735
736
  }
736
737
  accessArchive(n) {
737
738
  return this.lastAccessedKey !== n && this.epubLoader.purge(), this.lastAccessedKey = n, this.epubLoader.access(n);
738
739
  }
739
- fetchManifest({ key: n, baseUrl: a }) {
740
- const r = this.accessArchive(n).pipe(
741
- k(({ archive: t, release: s }) => A(
742
- Be(t, { baseUrl: a })
740
+ fetchManifest({ key: n, baseUrl: s }) {
741
+ const a = this.accessArchive(n).pipe(
742
+ I(({ archive: t, release: r }) => T(
743
+ Be(t, { baseUrl: s })
743
744
  ).pipe(
744
745
  C(
745
- (o) => A(this.onManifestSuccess({ manifest: o, archive: t }))
746
+ (o) => T(this.onManifestSuccess({ manifest: o, archive: t }))
746
747
  ),
747
748
  v(
748
749
  (o) => new Response(JSON.stringify(o), {
749
750
  status: 200
750
751
  })
751
752
  ),
752
- E(() => {
753
- s();
753
+ G(() => {
754
+ r();
754
755
  })
755
756
  )),
756
- T((t) => G(this.onError(t)))
757
+ A((t) => P(this.onError(t)))
757
758
  );
758
- return J(r);
759
+ return J(a);
759
760
  }
760
761
  fetchResource({
761
762
  key: n,
762
- resourcePath: a
763
+ resourcePath: s
763
764
  }) {
764
- const r = this.accessArchive(n).pipe(
765
- k(({ archive: t, release: s }) => A(
766
- De(t, a)
765
+ const a = this.accessArchive(n).pipe(
766
+ I(({ archive: t, release: r }) => T(
767
+ De(t, s)
767
768
  ).pipe(
768
769
  v((o) => new Response(o.body, { status: 200 })),
769
- E(() => {
770
- s();
770
+ G(() => {
771
+ r();
771
772
  })
772
773
  )),
773
- T((t) => G(this.onError(t)))
774
+ A((t) => P(this.onError(t)))
774
775
  );
775
- return J(r);
776
+ return J(a);
776
777
  }
777
778
  }
778
- class st extends Ee {
779
+ class at extends Ee {
779
780
  constructor({
780
781
  getUriInfo: n,
781
- ...a
782
+ ...s
782
783
  }) {
783
- super(a), this.getUriInfo = n, this.fetchEventListener = this.fetchEventListener.bind(this);
784
+ super(s), this.getUriInfo = n, this.fetchEventListener = this.fetchEventListener.bind(this);
784
785
  }
785
786
  fetchEventListener(n) {
786
787
  try {
787
- const a = this.getUriInfo(n);
788
- if (!a) return;
789
- const r = q(a.baseUrl), t = n.request.url.substring(
790
- r.length + 1
791
- ), [s = ""] = t.split("/"), i = decodeURIComponent(
792
- q(t.substring(s.length + 1))
788
+ const s = this.getUriInfo(n);
789
+ if (!s) return;
790
+ const a = q(s.baseUrl), t = n.request.url.substring(
791
+ a.length + 1
792
+ ), [r = ""] = t.split("/"), i = decodeURIComponent(
793
+ q(t.substring(r.length + 1))
793
794
  );
794
795
  t.endsWith("/manifest") ? n.respondWith(
795
- this.fetchManifest({ key: s, baseUrl: `${r}/${s}/` })
796
- ) : n.respondWith(this.fetchResource({ key: s, resourcePath: i }));
797
- } catch (a) {
798
- n.respondWith(new Response(String(a), { status: 500 }));
796
+ this.fetchManifest({ key: r, baseUrl: `${a}/${r}/` })
797
+ ) : n.respondWith(this.fetchResource({ key: r, resourcePath: i }));
798
+ } catch (s) {
799
+ n.respondWith(new Response(String(s), { status: 500 }));
799
800
  }
800
801
  }
801
802
  }
802
803
  export {
803
- st as ServiceWorkerStreamer,
804
+ at as ServiceWorkerStreamer,
804
805
  Ee as Streamer,
805
806
  rt as configure,
806
807
  nt as createArchiveFromArrayBufferList,
@@ -811,6 +812,6 @@ export {
811
812
  Be as generateManifestFromArchive,
812
813
  De as generateResourceFromArchive,
813
814
  Ye as generateResourceFromError,
814
- L as getArchiveOpfInfo
815
+ W as getArchiveOpfInfo
815
816
  };
816
817
  //# sourceMappingURL=index.js.map