@prose-reader/archive-reader 1.359.0 → 1.361.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.
@@ -97,7 +97,52 @@ var v = async (e, t = {}) => n(e, (e) => e.isDir ? {
97
97
  data: t,
98
98
  basePath: t?.uri.substring(0, t.uri.lastIndexOf("/")) || ""
99
99
  };
100
- }, O = (e) => e === void 0 || e.trim().length === 0 ? [] : e.trim().split(/\s+/).filter((e) => e.length > 0), k = (e) => {
100
+ }, O = (e) => e === void 0 || e.trim().length === 0 ? [] : e.trim().split(/\s+/).filter((e) => e.length > 0), k = "http://www.idpf.org/2007/opf", te = "opf", A = "xmlns:", j = (e, t = {}) => {
101
+ let n;
102
+ for (let [r, i] of Object.entries(e)) {
103
+ if (!r.startsWith(A)) continue;
104
+ let e = r.slice(6), a = i?.trim();
105
+ e.length === 0 || a === void 0 || (n ??= { ...t }, n[e] = a);
106
+ }
107
+ return n ?? t;
108
+ }, ne = (e) => {
109
+ let t = Object.keys(e).filter(function(t) {
110
+ return e[t] === k;
111
+ });
112
+ return e[te] === void 0 ? [te, ...t] : t;
113
+ }, re = (e, t, n) => {
114
+ for (let r of n) for (let n of t) {
115
+ let t = e[`${n}:${r}`];
116
+ if (t !== void 0) return t;
117
+ }
118
+ for (let t of n) {
119
+ let n = e[t];
120
+ if (n !== void 0) return n;
121
+ }
122
+ }, ie = Object.freeze(["scheme", "Scheme"]), ae = Object.freeze([
123
+ "opf:scheme",
124
+ "opf:Scheme",
125
+ "scheme"
126
+ ]), oe = {
127
+ "02": "ISBN",
128
+ "03": "GTIN",
129
+ "04": "UPC",
130
+ "05": "ISMN",
131
+ "06": "DOI",
132
+ 13: "LCCN",
133
+ 14: "GTIN",
134
+ 15: "ISBN",
135
+ 22: "URN",
136
+ 23: "OCLC",
137
+ 24: "ISBN",
138
+ 25: "ISMN",
139
+ 26: "DOI",
140
+ 34: "GTIN",
141
+ 35: "ARK"
142
+ }, se = (e) => {
143
+ let t = e?.value?.trim();
144
+ if (!(t === void 0 || t.length === 0)) return e?.scheme?.trim().toLowerCase() === "onix:codelist5" ? oe[t] ?? t : t;
145
+ }, ce = (e, t = ["opf"]) => re(e, t, ie), le = (e) => {
101
146
  let t = O(e);
102
147
  if (t.length === 0) return {};
103
148
  let n;
@@ -109,30 +154,30 @@ var v = async (e, t = {}) => n(e, (e) => e.isDir ? {
109
154
  ...t.includes("page-spread-left") ? { pageSpreadLeft: !0 } : {},
110
155
  ...t.includes("page-spread-right") ? { pageSpreadRight: !0 } : {}
111
156
  };
112
- }, A = (e) => e.includes(":") ? e.slice(e.lastIndexOf(":") + 1) : e, j = (e, t) => A(e).toLowerCase() === t.toLowerCase(), te = (e) => e.type === "element", M = (e, t) => {
113
- for (let n of e.children) if (te(n) && j(n.name, t)) return n;
114
- }, N = (e, t) => {
157
+ }, M = (e) => e.includes(":") ? e.slice(e.lastIndexOf(":") + 1) : e, ue = (e, t) => M(e).toLowerCase() === t.toLowerCase(), de = (e) => e.type === "element", N = (e, t) => {
158
+ for (let n of e.children) if (de(n) && ue(n.name, t)) return n;
159
+ }, P = (e, t) => {
115
160
  let n = [];
116
- for (let r of e.children) te(r) && j(r.name, t) && n.push(r);
161
+ for (let r of e.children) de(r) && ue(r.name, t) && n.push(r);
117
162
  return n;
118
- }, ne = (e, t) => {
119
- let n = [];
163
+ }, fe = (e, t, n) => {
164
+ let r = [];
120
165
  return e.eachChild((e) => {
121
- if (A(e.name).toLowerCase() !== "identifier") return;
122
- let r = e.val.trim();
123
- if (r.length === 0) return;
124
- let i = (e.attr["opf:scheme"] ?? e.attr["opf:Scheme"] ?? e.attr.scheme)?.trim(), a = e.attr.id?.trim(), o = a !== void 0 && a.length > 0 ? a : void 0;
125
- n.push({
126
- value: r,
127
- ...i !== void 0 && i.length > 0 ? { scheme: i } : {},
128
- ...o === void 0 ? {} : { id: o },
129
- ...o !== void 0 && o === t ? { unique: !0 } : {}
166
+ if (M(e.name).toLowerCase() !== "identifier") return;
167
+ let i = e.val.trim();
168
+ if (i.length === 0) return;
169
+ let a = ce(e.attr, ne(j(e.attr, n)))?.trim(), o = e.attr.id?.trim(), s = o !== void 0 && o.length > 0 ? o : void 0;
170
+ r.push({
171
+ value: i,
172
+ ...a !== void 0 && a.length > 0 ? { scheme: a } : {},
173
+ ...s === void 0 ? {} : { id: s },
174
+ ...s !== void 0 && s === t ? { unique: !0 } : {}
130
175
  });
131
- }), n;
132
- }, re = (e) => {
176
+ }), r;
177
+ }, pe = (e) => {
133
178
  let t = [];
134
179
  return e.eachChild((e) => {
135
- if (A(e.name).toLowerCase() !== "title") return;
180
+ if (M(e.name).toLowerCase() !== "title") return;
136
181
  let n = e.val.trim();
137
182
  if (n.length === 0) return;
138
183
  let r = e.attr.id?.trim();
@@ -141,46 +186,49 @@ var v = async (e, t = {}) => n(e, (e) => e.isDir ? {
141
186
  ...r !== void 0 && r.length > 0 ? { id: r } : {}
142
187
  });
143
188
  }), t;
144
- }, P = (e, t) => {
189
+ }, F = (e, t) => {
145
190
  let n;
146
191
  return e.eachChild((e) => {
147
- if (n !== void 0 || A(e.name).toLowerCase() !== t.toLowerCase()) return;
192
+ if (n !== void 0 || M(e.name).toLowerCase() !== t.toLowerCase()) return;
148
193
  let r = e.val.trim();
149
194
  r.length > 0 && (n = r);
150
195
  }), n;
151
- }, ie = (e, t) => {
196
+ }, I = (e, t) => {
152
197
  let n = [];
153
198
  return e.eachChild((e) => {
154
- if (A(e.name).toLowerCase() !== t.toLowerCase()) return;
199
+ if (M(e.name).toLowerCase() !== t.toLowerCase()) return;
155
200
  let r = e.val.trim();
156
201
  r.length > 0 && n.push(r);
157
202
  }), n;
158
- }, ae = (e) => {
203
+ }, me = (e) => {
159
204
  let t;
160
205
  return e.eachChild((e) => {
161
- if (t !== void 0 || A(e.name).toLowerCase() !== "meta" || e.attr.name?.toLowerCase() !== "cover") return;
206
+ if (t !== void 0 || M(e.name).toLowerCase() !== "meta" || e.attr.name?.toLowerCase() !== "cover") return;
162
207
  let n = e.attr.content?.trim();
163
208
  n !== void 0 && n.length > 0 && (t = n);
164
209
  }), t;
165
- }, oe = ({ manifestItems: e, metadataEl: t }) => {
210
+ }, he = ({ manifestItems: e, metadataEl: t }) => {
166
211
  let n = (e) => e.mediaType?.toLowerCase().includes("image/") === !0, r = e.find((e) => n(e) ? O(e.properties).includes("cover-image") : !1);
167
212
  if (r !== void 0) return r.href;
168
213
  if (t !== void 0) {
169
- let r = ae(t);
214
+ let r = me(t);
170
215
  if (r !== void 0) {
171
216
  let t = e.find((e) => e.id === r && n(e));
172
217
  if (t !== void 0) return t.href;
173
218
  }
174
219
  }
175
220
  return e.find((e) => e.id.toLowerCase().includes("cover") && n(e))?.href;
176
- }, F = (e, t) => {
221
+ }, L = (e, t) => {
177
222
  let n = e.attr[t]?.trim();
178
223
  return n !== void 0 && n.length > 0 ? n : void 0;
179
- }, se = (e) => {
224
+ }, ge = (e, t, n) => {
225
+ let r = re(e.attr, t, [n])?.trim();
226
+ return r !== void 0 && r.length > 0 ? r : void 0;
227
+ }, _e = (e) => {
180
228
  let t = [];
181
229
  return e.eachChild((e) => {
182
- if (A(e.name).toLowerCase() !== "meta") return;
183
- let n = F(e, "property"), r = F(e, "refines"), i = F(e, "scheme"), a = F(e, "id"), o = F(e, "name"), s = F(e, "content"), c = e.val.trim(), l = c.length > 0 ? c : void 0, u = {
230
+ if (M(e.name).toLowerCase() !== "meta") return;
231
+ let n = L(e, "property"), r = L(e, "refines"), i = L(e, "scheme"), a = L(e, "id"), o = L(e, "name"), s = L(e, "content"), c = e.val.trim(), l = c.length > 0 ? c : void 0, u = {
184
232
  ...n === void 0 ? {} : { property: n },
185
233
  ...r === void 0 ? {} : { refines: r },
186
234
  ...i === void 0 ? {} : { scheme: i },
@@ -191,30 +239,30 @@ var v = async (e, t = {}) => n(e, (e) => e.isDir ? {
191
239
  };
192
240
  Object.keys(u).length !== 0 && t.push(u);
193
241
  }), t;
194
- }, ce = (e, t) => e.replace(/^#/, "") === t, le = (e, t) => {
195
- let n = [];
242
+ }, ve = (e, t) => e.replace(/^#/, "") === t, ye = (e, t, n) => {
243
+ let r = [];
196
244
  return e.eachChild((e) => {
197
- let r = A(e.name).toLowerCase();
198
- if (r !== "creator" && r !== "contributor") return;
199
- let i = e.val.trim();
200
- if (i.length === 0) return;
201
- let a = F(e, "id"), o = (e) => a === void 0 ? [] : t.flatMap((t) => t.refines !== void 0 && ce(t.refines, a) && t.property === e && t.value !== void 0 ? [t.value] : []), s = F(e, "opf:role") ?? F(e, "role"), c = [...s === void 0 ? [] : [s], ...o("role")], l = F(e, "opf:file-as") ?? F(e, "file-as") ?? o("file-as")[0];
202
- n.push({
203
- name: i,
204
- source: r,
205
- ...a === void 0 ? {} : { id: a },
206
- roles: c,
207
- ...l === void 0 ? {} : { fileAs: l }
245
+ let i = M(e.name).toLowerCase();
246
+ if (i !== "creator" && i !== "contributor") return;
247
+ let a = e.val.trim();
248
+ if (a.length === 0) return;
249
+ let o = L(e, "id"), s = (e) => o === void 0 ? [] : t.flatMap((t) => t.refines !== void 0 && ve(t.refines, o) && t.property === e && t.value !== void 0 ? [t.value] : []), c = ne(j(e.attr, n)), l = ge(e, c, "role"), u = [...l === void 0 ? [] : [l], ...s("role")], d = ge(e, c, "file-as") ?? s("file-as")[0];
250
+ r.push({
251
+ name: a,
252
+ source: i,
253
+ ...o === void 0 ? {} : { id: o },
254
+ roles: u,
255
+ ...d === void 0 ? {} : { fileAs: d }
208
256
  });
209
- }), n;
210
- }, I = (e, t) => {
211
- let n = N(e, "meta").find((e) => e.attr.property === t)?.val;
257
+ }), r;
258
+ }, be = (e, t) => {
259
+ let n = P(e, "meta").find((e) => e.attr.property === t)?.val;
212
260
  if (!(n === void 0 || n.trim().length === 0)) return n;
213
- }, ue = (e) => {
214
- let t = M(e, "guide");
261
+ }, xe = (e) => {
262
+ let t = N(e, "guide");
215
263
  if (t === void 0) return [];
216
264
  let n = [];
217
- for (let e of N(t, "reference")) {
265
+ for (let e of P(t, "reference")) {
218
266
  let t = e.attr.href?.trim();
219
267
  t === void 0 || t.length === 0 || n.push({
220
268
  href: t,
@@ -223,7 +271,7 @@ var v = async (e, t = {}) => n(e, (e) => e.isDir ? {
223
271
  });
224
272
  }
225
273
  return n;
226
- }, de = (e) => {
274
+ }, Se = (e) => {
227
275
  let t = e.attr.id, n = e.attr.href;
228
276
  if (t === void 0 || t.length === 0 || n === void 0 || n.length === 0) return;
229
277
  let r = e.attr["media-type"], i = e.attr.properties?.trim();
@@ -233,24 +281,24 @@ var v = async (e, t = {}) => n(e, (e) => e.isDir ? {
233
281
  ...r !== void 0 && r.length > 0 ? { mediaType: r } : {},
234
282
  ...i !== void 0 && i.length > 0 ? { properties: i } : {}
235
283
  };
236
- }, fe = (e) => {
284
+ }, Ce = (e) => {
237
285
  let t = [], n = /* @__PURE__ */ new Map();
238
- for (let r of N(e, "item")) {
239
- let e = de(r);
286
+ for (let r of P(e, "item")) {
287
+ let e = Se(r);
240
288
  e !== void 0 && (t.push(e), n.set(e.id, e));
241
289
  }
242
290
  return {
243
291
  items: t,
244
292
  byId: n
245
293
  };
246
- }, pe = (e, t) => {
294
+ }, we = (e, t) => {
247
295
  let n = [];
248
- for (let r of N(t, "itemref")) {
296
+ for (let r of P(t, "itemref")) {
249
297
  let t = r.attr.idref;
250
298
  if (t === void 0 || t.trim().length === 0) continue;
251
299
  let i = e.get(t);
252
300
  if (i === void 0) continue;
253
- let a = k(r.attr.properties);
301
+ let a = le(r.attr.properties);
254
302
  n.push({
255
303
  idref: t,
256
304
  id: i.id,
@@ -264,68 +312,71 @@ var v = async (e, t = {}) => n(e, (e) => e.isDir ? {
264
312
  });
265
313
  }
266
314
  return n;
267
- }, me = (e) => {
268
- let t = new h(e), n = M(t, "manifest"), r = M(t, "spine"), i = M(t, "metadata"), a = t.attr["unique-identifier"]?.trim(), o = a !== void 0 && a.length > 0 ? a : void 0, s = [], c = [];
315
+ }, Te = (e) => {
316
+ let t = new h(e), n = N(t, "manifest"), r = N(t, "spine"), i = N(t, "metadata"), a = j(t.attr), o = t.attr["unique-identifier"]?.trim(), s = o !== void 0 && o.length > 0 ? o : void 0, c = [], l = [];
269
317
  if (n !== void 0) {
270
- let { items: e, byId: t } = fe(n);
271
- s = e, r !== void 0 && (c = pe(t, r));
318
+ let { items: e, byId: t } = Ce(n);
319
+ c = e, r !== void 0 && (l = we(t, r));
320
+ }
321
+ let u = r?.attr["page-progression-direction"], d = u !== void 0 && u.trim().length > 0 ? u : void 0, f = r?.attr.toc, p = f !== void 0 && f.trim().length > 0 ? f.trim() : void 0, m = [], g, _, v, y, b = [], x = [], ee = [], S = [], C, w, T, E = [], D = [];
322
+ if (i !== void 0) {
323
+ let e = j(i.attr, a);
324
+ m = pe(i), g = F(i, "publisher"), _ = F(i, "description"), v = F(i, "rights"), y = F(i, "date"), b = I(i, "creator"), ee = I(i, "language"), S = I(i, "subject"), C = be(i, "rendition:layout"), w = be(i, "rendition:flow"), T = be(i, "rendition:spread"), E = _e(i), x = ye(i, E, e), D.push(...fe(i, s, e));
272
325
  }
273
- let l = r?.attr["page-progression-direction"], u = l !== void 0 && l.trim().length > 0 ? l : void 0, d = r?.attr.toc, f = d !== void 0 && d.trim().length > 0 ? d.trim() : void 0, p = [], m, g, _, v, y = [], b = [], x = [], ee = [], S, C, w, T = [], E = [];
274
- i !== void 0 && (p = re(i), m = P(i, "publisher"), g = P(i, "description"), _ = P(i, "rights"), v = P(i, "date"), y = ie(i, "creator"), x = ie(i, "language"), ee = ie(i, "subject"), S = I(i, "rendition:layout"), C = I(i, "rendition:flow"), w = I(i, "rendition:spread"), T = se(i), b = le(i, T), E.push(...ne(i, o)));
275
- let D = oe({
276
- manifestItems: s,
326
+ let O = he({
327
+ manifestItems: c,
277
328
  metadataEl: i
278
- }), O = ue(t);
329
+ }), k = xe(t);
279
330
  return {
280
331
  kind: "opf",
281
- manifestItems: s,
282
- spineRows: c,
283
- spineTocIdref: f,
284
- identifiers: E,
285
- titles: p,
286
- creators: y,
287
- contributors: b,
288
- publisher: m,
289
- description: g,
290
- rights: _,
291
- languages: x,
292
- subjects: ee,
293
- date: v,
294
- coverHref: D,
295
- renditionLayoutMeta: S,
296
- renditionFlowMeta: C,
297
- renditionSpreadMeta: w,
298
- pageProgressionDirection: u,
299
- guide: O,
300
- metas: T
332
+ manifestItems: c,
333
+ spineRows: l,
334
+ spineTocIdref: p,
335
+ identifiers: D,
336
+ titles: m,
337
+ creators: b,
338
+ contributors: x,
339
+ publisher: g,
340
+ description: _,
341
+ rights: v,
342
+ languages: ee,
343
+ subjects: S,
344
+ date: y,
345
+ coverHref: O,
346
+ renditionLayoutMeta: C,
347
+ renditionFlowMeta: w,
348
+ renditionSpreadMeta: T,
349
+ pageProgressionDirection: d,
350
+ guide: k,
351
+ metas: E
301
352
  };
302
353
  };
303
354
  //#endregion
304
355
  //#region src/metadata/opf/readArchiveOpf.ts
305
- async function L(e) {
356
+ async function R(e) {
306
357
  let { data: t, basePath: n } = D(e) || {};
307
358
  if (!(!t || t.dir)) return {
308
- opf: me(await E(t)),
359
+ opf: Te(await E(t)),
309
360
  basePath: n
310
361
  };
311
362
  }
312
363
  //#endregion
313
364
  //#region src/metadata/apple/parse.ts
314
- var R = "com.apple.ibooks.display-options.xml", he = (e) => e.childrenNamed("option").map((e) => ({
365
+ var Ee = "com.apple.ibooks.display-options.xml", De = (e) => e.childrenNamed("option").map((e) => ({
315
366
  name: e.attr?.name,
316
367
  value: e.val
317
- })), ge = (e) => {
368
+ })), Oe = (e) => {
318
369
  let t = new h(e);
319
370
  if (t.name?.toLowerCase() !== "display_options") return { kind: "apple" };
320
371
  let n = t.childNamed("platform");
321
372
  return {
322
373
  kind: "apple",
323
- displayOptions: { ...n === void 0 ? {} : { platform: { options: he(n) } } }
374
+ displayOptions: { ...n === void 0 ? {} : { platform: { options: De(n) } } }
324
375
  };
325
- }, z = "ComicInfo.xml", _e = /* @__PURE__ */ "AgeRating.AlternateCount.AlternateNumber.AlternateSeries.BlackAndWhite.Characters.Colorist.CommunityRating.Count.CoverArtist.Day.Editor.Format.Genre.GTIN.Imprint.Inker.LanguageISO.Letterer.Locations.MainCharacterOrTeam.Manga.Month.Notes.Number.PageCount.Penciller.Publisher.Review.ScanInformation.Series.SeriesGroup.StoryArc.StoryArcNumber.Summary.Tags.Teams.Title.Translator.Volume.Web.Writer.Year".split("."), ve = /* @__PURE__ */ new Set(["Pages", "ComicInfo"]), ye = (e) => e.children.some((e) => e.type === "element"), be = (e) => {
376
+ }, z = "ComicInfo.xml", ke = /* @__PURE__ */ "AgeRating.AlternateCount.AlternateNumber.AlternateSeries.BlackAndWhite.Characters.Colorist.CommunityRating.Count.CoverArtist.Day.Editor.Format.Genre.GTIN.Imprint.Inker.LanguageISO.Letterer.Locations.MainCharacterOrTeam.Manga.Month.Notes.Number.PageCount.Penciller.Publisher.Review.ScanInformation.Series.SeriesGroup.StoryArc.StoryArcNumber.Summary.Tags.Teams.Title.Translator.Volume.Web.Writer.Year".split("."), Ae = /* @__PURE__ */ new Set(["Pages", "ComicInfo"]), je = (e) => e.children.some((e) => e.type === "element"), Me = (e) => {
326
377
  let t = e.val.trim();
327
378
  return t.length > 0 ? t : void 0;
328
- }, xe = (e) => {
379
+ }, Ne = (e) => {
329
380
  let t;
330
381
  try {
331
382
  t = new h(e);
@@ -335,28 +386,28 @@ var R = "com.apple.ibooks.display-options.xml", he = (e) => e.childrenNamed("opt
335
386
  }
336
387
  let n = {};
337
388
  return t.eachChild((e) => {
338
- if (e.type !== "element" || ve.has(e.name) || ye(e)) return;
339
- let t = be(e);
389
+ if (e.type !== "element" || Ae.has(e.name) || je(e)) return;
390
+ let t = Me(e);
340
391
  t !== void 0 && n[e.name] === void 0 && (n[e.name] = t);
341
392
  }), {
342
393
  kind: "comicInfo",
343
394
  ...n
344
395
  };
345
- }, Se = "com.kobobooks.display-options.xml", Ce = (e) => {
396
+ }, Pe = "com.kobobooks.display-options.xml", Fe = (e) => {
346
397
  let t = e.childNamed("platform");
347
398
  if (!t) return {};
348
399
  for (let e of t.childrenNamed("option")) if (e.attr?.name === "fixed-layout") return e.val.trim().toLowerCase() === "true" ? { renditionLayout: "pre-paginated" } : {};
349
400
  return {};
350
- }, we = (e) => {
401
+ }, Ie = (e) => {
351
402
  let t = new h(e);
352
403
  return t.name?.toLowerCase() === "display_options" ? {
353
404
  kind: "kobo",
354
- ...Ce(t)
405
+ ...Fe(t)
355
406
  } : { kind: "kobo" };
356
407
  }, B = (e) => {
357
408
  let t = Object.entries(e).filter(([, e]) => e !== void 0);
358
409
  return Object.fromEntries(t);
359
- }, Te = (e) => {
410
+ }, Le = (e) => {
360
411
  let t = [];
361
412
  for (let n of e.split("/")) if (n !== ".") {
362
413
  if (n === "..") {
@@ -366,12 +417,12 @@ var R = "com.apple.ibooks.display-options.xml", he = (e) => e.childrenNamed("opt
366
417
  t.push(n);
367
418
  }
368
419
  return t.join("/");
369
- }, Ee = (e, t) => /^https?:\/\//.test(e) ? e : Te(t ? `${t}/${e}` : e), De = (e) => {
420
+ }, Re = (e, t) => /^https?:\/\//.test(e) ? e : Le(t ? `${t}/${e}` : e), ze = (e) => {
370
421
  let t = e?.trim().toLowerCase();
371
422
  return t === "reflowable" || t === "pre-paginated" ? t : void 0;
372
- }, Oe = (e, { opf: t, basePath: n }) => {
373
- let r = De(t.renditionLayoutMeta), i = t.spineRows.map((t) => {
374
- let r = Ee(t.href, n);
423
+ }, Be = (e, { opf: t, basePath: n }) => {
424
+ let r = ze(t.renditionLayoutMeta), i = t.spineRows.map((t) => {
425
+ let r = Re(t.href, n);
375
426
  return {
376
427
  row: t,
377
428
  uri: r,
@@ -389,11 +440,11 @@ var R = "com.apple.ibooks.display-options.xml", he = (e) => e.childrenNamed("opt
389
440
  pageSpreadRight: e.pageSpreadRight,
390
441
  progressionWeight: a > 0 ? (i?.size ?? 0) / a : 1 / t.spineRows.length
391
442
  }));
392
- }, ke = z.toLowerCase(), Ae = R.toLowerCase(), je = (e) => {
443
+ }, Ve = z.toLowerCase(), He = Ee.toLowerCase(), Ue = (e) => {
393
444
  let t = e.basename.toLowerCase();
394
- return t === ke || t === Ae || e.uri.endsWith("com.kobobooks.display-options.xml") || t.endsWith(".db");
395
- }, Me = (e) => {
396
- let t = e.records.filter(x).filter((e) => !je(e));
445
+ return t === Ve || t === He || e.uri.endsWith("com.kobobooks.display-options.xml") || t.endsWith(".db");
446
+ }, We = (e) => {
447
+ let t = e.records.filter(x).filter((e) => !Ue(e));
397
448
  return t.map((e) => {
398
449
  let n = f(e.encodingFormat ?? "") || o(e.basename);
399
450
  return B({
@@ -405,18 +456,18 @@ var R = "com.apple.ibooks.display-options.xml", he = (e) => e.childrenNamed("opt
405
456
  });
406
457
  });
407
458
  }, V = async (e, { opf: t } = {}) => {
408
- let n = t ?? await L(e).catch(() => void 0);
409
- return n ? Oe(e, n) : Me(e);
410
- }, Ne = (e, t) => {
459
+ let n = t ?? await R(e).catch(() => void 0);
460
+ return n ? Be(e, n) : We(e);
461
+ }, Ge = (e, t) => {
411
462
  let n = S(e, t);
412
463
  if (n !== void 0) return f(n.encodingFormat ?? "") || o(n.basename);
413
- }, Pe = async (e, { opf: t, readingOrder: n } = {}) => {
414
- let r = t ?? await L(e).catch(() => void 0);
464
+ }, Ke = async (e, { opf: t, readingOrder: n } = {}) => {
465
+ let r = t ?? await R(e).catch(() => void 0);
415
466
  if (r !== void 0 && r.opf.coverHref !== void 0) {
416
- let t = Ee(r.opf.coverHref, r.basePath);
467
+ let t = Re(r.opf.coverHref, r.basePath);
417
468
  return B({
418
469
  uri: t,
419
- mediaType: Ne(e, t),
470
+ mediaType: Ge(e, t),
420
471
  confidence: "derived"
421
472
  });
422
473
  }
@@ -426,10 +477,10 @@ var R = "com.apple.ibooks.display-options.xml", he = (e) => e.childrenNamed("opt
426
477
  mediaType: i.mediaType,
427
478
  confidence: "assumed"
428
479
  });
429
- }, Fe = (e) => {
480
+ }, qe = (e) => {
430
481
  let t = e.descendantWithPath("head")?.childrenNamed("meta").find((e) => e.attr.name === "viewport");
431
482
  return !!(t && t.attr.name === "viewport");
432
- }, Ie = async (e, n) => {
483
+ }, Je = async (e, n) => {
433
484
  if (n.length === 0) return !1;
434
485
  for (let r of n) {
435
486
  if (!d({
@@ -439,47 +490,47 @@ var R = "com.apple.ibooks.display-options.xml", he = (e) => e.childrenNamed("opt
439
490
  let n = S(e, r.uri);
440
491
  if (!n || !x(n)) return !1;
441
492
  try {
442
- if (!Fe(new h(await E(n)))) return !1;
493
+ if (!qe(new h(await E(n)))) return !1;
443
494
  } catch (e) {
444
495
  return t.error(`layout scan: unable to inspect ${r.uri}`, e), !1;
445
496
  }
446
497
  }
447
498
  return !0;
448
- }, Le = R.toLowerCase();
449
- async function Re(e) {
450
- let t = e.records.find((e) => x(e) && e.basename.toLowerCase() === Le);
451
- if (t) return ge(await E(t));
499
+ }, Ye = Ee.toLowerCase();
500
+ async function Xe(e) {
501
+ let t = e.records.find((e) => x(e) && e.basename.toLowerCase() === Ye);
502
+ if (t) return Oe(await E(t));
452
503
  }
453
504
  //#endregion
454
505
  //#region src/metadata/comicInfo/getArchiveHasComicInfo.ts
455
- var ze = z.toLowerCase(), Be = (e) => e.records.find((e) => x(e) && e.basename.toLowerCase() === ze), Ve = [
506
+ var Ze = z.toLowerCase(), Qe = (e) => e.records.find((e) => x(e) && e.basename.toLowerCase() === Ze), $e = [
456
507
  "Unknown",
457
508
  "No",
458
509
  "Yes",
459
510
  "YesAndRightToLeft"
460
- ], He = (e) => {
461
- for (let t of Ve) if (t === e) return !0;
511
+ ], et = (e) => {
512
+ for (let t of $e) if (t === e) return !0;
462
513
  return !1;
463
514
  };
464
515
  //#endregion
465
516
  //#region src/metadata/comicInfo/readArchiveComicInfo.ts
466
- async function Ue(e) {
467
- let t = Be(e);
468
- if (t) return xe(await E(t));
517
+ async function tt(e) {
518
+ let t = Qe(e);
519
+ if (t) return Ne(await E(t));
469
520
  }
470
521
  //#endregion
471
522
  //#region src/metadata/kobo/readArchiveKobo.ts
472
- async function We(e) {
523
+ async function nt(e) {
473
524
  let n = e.records.filter((e) => x(e) && e.uri.endsWith("com.kobobooks.display-options.xml"));
474
525
  if (n.length === 0) return;
475
526
  let r;
476
527
  for (let e of n) {
477
528
  let n = await E(e);
478
529
  try {
479
- let { renditionLayout: e } = we(n);
530
+ let { renditionLayout: e } = Ie(n);
480
531
  e && (r = e);
481
532
  } catch (n) {
482
- t.error(`Unable to parse ${Se} (${e.uri})`, n);
533
+ t.error(`Unable to parse ${Pe} (${e.uri})`, n);
483
534
  }
484
535
  }
485
536
  return {
@@ -489,11 +540,11 @@ async function We(e) {
489
540
  }
490
541
  //#endregion
491
542
  //#region src/metadata/opf/getSpineItemFilesFromArchive.ts
492
- var Ge = async ({ archive: e, archiveOpf: t }) => {
543
+ var rt = async ({ archive: e, archiveOpf: t }) => {
493
544
  if (!t) return [];
494
545
  let { opf: n, basePath: r } = t, { spineRows: i } = n;
495
546
  return e.records.filter((e) => i.find((t) => r ? `${r}/${t.href}` === e.uri : `${t.href}` === e.uri));
496
- }, Ke = (e) => e.toLowerCase().endsWith(".opf"), qe = (e) => e.records.some((e) => !e.dir && (Ke(e.basename) || Ke(e.uri))), Je = (e) => {
547
+ }, it = (e) => e.toLowerCase().endsWith(".opf"), at = (e) => e.records.some((e) => !e.dir && (it(e.basename) || it(e.uri))), ot = (e) => {
497
548
  let t = e.displayOptions?.platform?.options, n = t?.find((e) => e.name === "fixed-layout")?.value.trim().toLowerCase(), r = n === "true" || n !== "false" && void 0, i = B({
498
549
  fixedLayout: r,
499
550
  options: t !== void 0 && t.length > 0 ? t.map(({ name: e, value: t }) => B({
@@ -505,7 +556,7 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
505
556
  renditionLayout: r === !0 ? "pre-paginated" : void 0,
506
557
  apple: Object.keys(i).length > 0 ? i : void 0
507
558
  });
508
- }, Ye = (e) => {
559
+ }, st = (e) => {
509
560
  switch (e.Manga) {
510
561
  case "YesAndRightToLeft": return "rtl";
511
562
  case "Yes":
@@ -526,25 +577,25 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
526
577
  if (t === void 0 || !/^\d+(\.\d+)?$/.test(t)) return;
527
578
  let n = Number.parseFloat(t);
528
579
  return Number.isFinite(n) ? n : void 0;
529
- }, Xe = (e) => {
580
+ }, ct = (e) => {
530
581
  let t = H(e)?.toLowerCase();
531
582
  if (t === "yes") return !0;
532
583
  if (t === "no") return !1;
533
- }, Ze = (e) => {
584
+ }, lt = (e) => {
534
585
  switch (e.Manga) {
535
586
  case "Yes":
536
587
  case "YesAndRightToLeft": return !0;
537
588
  case "No": return !1;
538
589
  default: return;
539
590
  }
540
- }, Qe = (e) => {
591
+ }, ut = (e) => {
541
592
  let t = W(e.Year), n = W(e.Month), r = W(e.Day);
542
593
  if (!(t === void 0 && n === void 0 && r === void 0)) return {
543
594
  ...t === void 0 ? {} : { year: t },
544
595
  ...n === void 0 ? {} : { month: n },
545
596
  ...r === void 0 ? {} : { day: r }
546
597
  };
547
- }, $e = [
598
+ }, dt = [
548
599
  ["Writer", "author"],
549
600
  ["Penciller", "penciler"],
550
601
  ["Inker", "inker"],
@@ -553,9 +604,9 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
553
604
  ["CoverArtist", "coverArtist"],
554
605
  ["Editor", "editor"],
555
606
  ["Translator", "translator"]
556
- ], et = (e) => {
607
+ ], ft = (e) => {
557
608
  let t = /* @__PURE__ */ new Map();
558
- for (let [n, r] of $e) for (let i of U(e[n])) {
609
+ for (let [n, r] of dt) for (let i of U(e[n])) {
559
610
  let e = t.get(i);
560
611
  e ? e.roles.includes(r) || e.roles.push(r) : t.set(i, {
561
612
  name: i,
@@ -563,21 +614,21 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
563
614
  });
564
615
  }
565
616
  return [...t.values()];
566
- }, tt = (e) => {
617
+ }, pt = (e) => {
567
618
  let t = B({
568
619
  name: H(e.Series),
569
620
  position: G(e.Number),
570
621
  total: W(e.Count)
571
622
  });
572
623
  return Object.keys(t).length > 0 ? t : void 0;
573
- }, nt = (e) => {
624
+ }, mt = (e) => {
574
625
  let t = H(e.AlternateSeries);
575
626
  if (t !== void 0) return B({
576
627
  name: t,
577
628
  position: G(e.AlternateNumber),
578
629
  total: W(e.AlternateCount)
579
630
  });
580
- }, rt = (e) => {
631
+ }, ht = (e) => {
581
632
  let t = U(e.StoryArc);
582
633
  if (t.length === 0) return [];
583
634
  let n = U(e.StoryArcNumber);
@@ -585,20 +636,20 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
585
636
  name: e,
586
637
  position: G(n[t])
587
638
  }));
588
- }, K = (e) => e.length > 0 ? e : void 0, it = (e) => (e.Web ?? "").split(/\s+/).filter((e) => e.length > 0), at = (e) => {
639
+ }, K = (e) => e.length > 0 ? e : void 0, gt = (e) => (e.Web ?? "").split(/\s+/).filter((e) => e.length > 0), _t = (e) => {
589
640
  try {
590
641
  let t = new URL(e);
591
642
  return (t.protocol === "http:" || t.protocol === "https:") && t.hostname.length > 0;
592
643
  } catch {
593
644
  return !1;
594
645
  }
595
- }, ot = (e) => e.filter((e, t, n) => at(e) && n.indexOf(e) === t).map((e) => ({
646
+ }, vt = (e) => e.filter((e, t, n) => _t(e) && n.indexOf(e) === t).map((e) => ({
596
647
  value: e,
597
648
  scheme: "URL"
598
- })), st = (e, t) => {
649
+ })), yt = (e, t) => {
599
650
  let n = B({
600
- manga: Ze(e),
601
- blackAndWhite: Xe(e.BlackAndWhite),
651
+ manga: lt(e),
652
+ blackAndWhite: ct(e.BlackAndWhite),
602
653
  volume: W(e.Volume),
603
654
  format: H(e.Format),
604
655
  ageRating: H(e.AgeRating),
@@ -610,25 +661,25 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
610
661
  characters: K(U(e.Characters)),
611
662
  teams: K(U(e.Teams)),
612
663
  locations: K(U(e.Locations)),
613
- storyArcs: K(rt(e)),
614
- alternateSeries: nt(e)
664
+ storyArcs: K(ht(e)),
665
+ alternateSeries: mt(e)
615
666
  });
616
667
  return Object.keys(n).length > 0 ? n : void 0;
617
- }, ct = (e) => {
668
+ }, bt = (e) => {
618
669
  let t = G(e.CommunityRating);
619
670
  return t !== void 0 && t <= 5 ? { value: t } : void 0;
620
- }, lt = (e) => {
621
- let t = tt(e), n = K(U(e.SeriesGroup).map((e) => ({ name: e })));
671
+ }, xt = (e) => {
672
+ let t = pt(e), n = K(U(e.SeriesGroup).map((e) => ({ name: e })));
622
673
  if (!(t === void 0 && n === void 0)) return B({
623
674
  series: t === void 0 ? void 0 : [t],
624
675
  collection: n
625
676
  });
626
- }, ut = (e) => {
627
- let t = e.GTIN, n = H(t), r = it(e), i = [...n === void 0 ? [] : [{
677
+ }, St = (e) => {
678
+ let t = e.GTIN, n = H(t), r = gt(e), i = [...n === void 0 ? [] : [{
628
679
  value: n,
629
680
  scheme: "GTIN"
630
- }], ...ot(r)], a = H(e.LanguageISO), o = [...U(e.Genre), ...U(e.Tags)], s = B({
631
- date: Qe(e),
681
+ }], ...vt(r)], a = H(e.LanguageISO), o = [...U(e.Genre), ...U(e.Tags)], s = B({
682
+ date: ut(e),
632
683
  publisher: H(e.Publisher),
633
684
  imprint: H(e.Imprint)
634
685
  }), c = H(e.Title);
@@ -638,35 +689,35 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
638
689
  publication: s.date !== void 0 || s.publisher !== void 0 || s.imprint !== void 0 ? { edition: s } : void 0,
639
690
  languages: a === void 0 ? void 0 : [a],
640
691
  subjects: K(o),
641
- contributors: K(et(e)),
642
- readingDirection: Ye(e),
692
+ contributors: K(ft(e)),
693
+ readingDirection: st(e),
643
694
  numberOfPages: W(e.PageCount),
644
- aggregateRating: ct(e),
695
+ aggregateRating: bt(e),
645
696
  identifiers: K(i),
646
- belongsTo: lt(e),
647
- comicInfo: st(e, r)
697
+ belongsTo: xt(e),
698
+ comicInfo: yt(e, r)
648
699
  });
649
- }, dt = (e) => B({
700
+ }, Ct = (e) => B({
650
701
  renditionLayout: e.renditionLayout,
651
702
  kobo: e.renditionLayout === void 0 ? void 0 : { fixedLayout: e.renditionLayout === "pre-paginated" }
652
- }), ft = /[0-9Xx]+/g, pt = /^(?:97[89])?\d{9}[\dXx]$/, mt = (e) => {
703
+ }), wt = /[0-9Xx]+/g, Tt = /^(?:97[89])?\d{9}[\dXx]$/, Et = (e) => {
653
704
  if (e == null) return;
654
705
  let t = String(e).trim().replace(/^urn:isbn:/i, "").replace(/^isbn[:\s-]*/i, ""), n = t.replace(/[^0-9Xx]/g, "");
655
706
  if (n.length === 10 || n.length === 13) return n.toUpperCase();
656
- for (let e of t.match(ft) ?? []) if (pt.test(e)) return e.toUpperCase();
657
- }, ht = (e) => {
658
- let t = mt(e);
707
+ for (let e of t.match(wt) ?? []) if (Tt.test(e)) return e.toUpperCase();
708
+ }, Dt = (e) => {
709
+ let t = Et(e);
659
710
  if (t !== void 0) return t.length === 10 || /^97[89]/.test(t) ? t : void 0;
660
- }, gt = /* @__PURE__ */ new Set([
711
+ }, Ot = /* @__PURE__ */ new Set([
661
712
  8,
662
713
  12,
663
714
  13,
664
715
  14
665
- ]), _t = (e) => {
716
+ ]), kt = (e) => {
666
717
  if (e == null) return;
667
718
  let t = String(e).replace(/\D/g, "");
668
- if (!(t.length === 0 || !gt.has(t.length))) return t;
669
- }, vt = new Map(Object.entries({
719
+ if (!(t.length === 0 || !Ot.has(t.length))) return t;
720
+ }, At = new Map(Object.entries({
670
721
  isbn: "ISBN",
671
722
  gtin: "GTIN",
672
723
  doi: "DOI",
@@ -677,8 +728,8 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
677
728
  unknown: "Unknown"
678
729
  })), q = (e) => {
679
730
  let t = e.trim();
680
- return vt.get(t.toLowerCase()) ?? t;
681
- }, yt = (e) => {
731
+ return At.get(t.toLowerCase()) ?? t;
732
+ }, jt = (e) => {
682
733
  if (e === void 0) return;
683
734
  let t = e.trim().match(/^(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?/);
684
735
  if (t === null) return;
@@ -688,14 +739,14 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
688
739
  ...r === void 0 ? {} : { month: Number.parseInt(r, 10) },
689
740
  ...i === void 0 ? {} : { day: Number.parseInt(i, 10) }
690
741
  };
691
- }, bt = (e) => {
742
+ }, Mt = (e) => {
692
743
  let t = e.trim();
693
744
  if (/^https?:\/\//i.test(t)) try {
694
745
  let e = new URL(t);
695
746
  if ((e.protocol === "http:" || e.protocol === "https:") && e.hostname.length > 0) return "URL";
696
747
  } catch {}
697
- return ht(t) === void 0 ? _t(t) === void 0 ? "Unknown" : "GTIN" : "ISBN";
698
- }, xt = {
748
+ return Dt(t) === void 0 ? kt(t) === void 0 ? "Unknown" : "GTIN" : "ISBN";
749
+ }, Nt = {
699
750
  art: "artist",
700
751
  aut: "author",
701
752
  clr: "colorist",
@@ -704,72 +755,53 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
704
755
  ill: "illustrator",
705
756
  nrt: "narrator",
706
757
  trl: "translator"
707
- }, St = (e) => e.map((e) => {
708
- let t = e.roles.map((e) => xt[e.trim().toLowerCase()] ?? e);
758
+ }, Pt = (e) => e.map((e) => {
759
+ let t = e.roles.map((e) => Nt[e.trim().toLowerCase()] ?? e);
709
760
  return B({
710
761
  name: e.name,
711
762
  roles: t.length > 0 ? t : [e.source === "creator" ? "author" : "contributor"],
712
763
  sortAs: e.fileAs
713
764
  });
714
- }), J = (e, t) => e.refines !== void 0 && e.refines.replace(/^#/, "") === t, Ct = {
715
- "02": "ISBN",
716
- "03": "GTIN",
717
- "04": "UPC",
718
- "05": "ISMN",
719
- "06": "DOI",
720
- 13: "LCCN",
721
- 14: "GTIN",
722
- 15: "ISBN",
723
- 22: "URN",
724
- 23: "OCLC",
725
- 24: "ISBN",
726
- 25: "ISMN",
727
- 26: "DOI",
728
- 34: "GTIN",
729
- 35: "ARK"
730
- }, wt = (e) => {
731
- let t = e?.value?.trim();
732
- if (!(t === void 0 || t.length === 0)) return e?.scheme?.trim().toLowerCase() === "onix:codelist5" ? Ct[t] ?? t : t;
733
- }, Tt = (e, t) => {
765
+ }), J = (e, t) => e.refines !== void 0 && e.refines.replace(/^#/, "") === t, Ft = (e, t) => {
734
766
  let n = e.id;
735
- if (n !== void 0) return wt(t.find((e) => e.property === "identifier-type" && J(e, n) && e.value !== void 0));
736
- }, Et = (e) => {
767
+ if (n !== void 0) return se(t.find((e) => e.property === "identifier-type" && J(e, n) && e.value !== void 0));
768
+ }, It = (e) => {
737
769
  let t = e?.trim();
738
770
  if (t === void 0 || !/^\d+(\.\d+)?$/.test(t)) return;
739
771
  let n = Number.parseFloat(t);
740
772
  return Number.isFinite(n) ? n : void 0;
741
- }, Dt = (e) => {
773
+ }, Lt = (e) => {
742
774
  let t = e?.trim();
743
775
  if (t === void 0 || !/^\d+$/.test(t)) return;
744
776
  let n = Number.parseInt(t, 10);
745
777
  return Number.isFinite(n) ? n : void 0;
746
- }, Ot = (e) => {
778
+ }, Rt = (e) => {
747
779
  let t = e?.trim();
748
780
  return t !== void 0 && t.length > 0 ? t : void 0;
749
- }, Y = (e, t, n) => t === void 0 ? void 0 : e.find((e) => J(e, t) && e.property === n && e.value !== void 0)?.value, kt = (e, t) => e.map((e) => B({
781
+ }, Y = (e, t, n) => t === void 0 ? void 0 : e.find((e) => J(e, t) && e.property === n && e.value !== void 0)?.value, zt = (e, t) => e.map((e) => B({
750
782
  value: e.value,
751
- type: Ot(Y(t, e.id, "title-type"))?.toLowerCase(),
752
- displaySeq: Dt(Y(t, e.id, "display-seq")),
753
- sortAs: Ot(Y(t, e.id, "file-as"))
754
- })), At = (e, t) => {
783
+ type: Rt(Y(t, e.id, "title-type"))?.toLowerCase(),
784
+ displaySeq: Lt(Y(t, e.id, "display-seq")),
785
+ sortAs: Rt(Y(t, e.id, "file-as"))
786
+ })), Bt = (e, t) => {
755
787
  if (t === void 0) return;
756
788
  let n = e.flatMap((n) => {
757
789
  if (!J(n, t) || n.property !== "dcterms:identifier") return [];
758
- let r = Ot(n.value);
790
+ let r = Rt(n.value);
759
791
  return r === void 0 ? [] : [{
760
792
  value: r,
761
- scheme: q(wt(e.find((e) => n.id !== void 0 && J(e, n.id) && e.property === "identifier-type")) ?? bt(r))
793
+ scheme: q(se(e.find((e) => n.id !== void 0 && J(e, n.id) && e.property === "identifier-type")) ?? Mt(r))
762
794
  }];
763
795
  });
764
796
  return n.length > 0 ? n : void 0;
765
- }, jt = (e) => {
797
+ }, Vt = (e) => {
766
798
  let t = [], n = [];
767
799
  for (let r of e) {
768
800
  if (r.property !== "belongs-to-collection" || r.value === void 0) continue;
769
801
  let i = r.id, a = (t) => Y(e, i, t), o = a("collection-type")?.trim().toLowerCase(), s = B({
770
802
  name: r.value,
771
- identifiers: At(e, i),
772
- position: Et(a("group-position"))
803
+ identifiers: Bt(e, i),
804
+ position: It(a("group-position"))
773
805
  });
774
806
  o === "series" ? t.push(s) : n.push(s);
775
807
  }
@@ -777,49 +809,49 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
777
809
  let n = e.find((e) => e.name?.toLowerCase() === "calibre:series" && e.content !== void 0)?.content;
778
810
  n !== void 0 && t.push(B({
779
811
  name: n,
780
- position: Et(e.find((e) => e.name?.toLowerCase() === "calibre:series_index")?.content)
812
+ position: It(e.find((e) => e.name?.toLowerCase() === "calibre:series_index")?.content)
781
813
  }));
782
814
  }
783
815
  return {
784
816
  series: t,
785
817
  collection: n
786
818
  };
787
- }, Mt = (e) => {
819
+ }, Ht = (e) => {
788
820
  let t = e?.trim();
789
821
  if (t === "scrolled-continuous" || t === "scrolled-doc" || t === "paginated" || t === "auto") return t;
790
- }, Nt = (e) => {
822
+ }, Ut = (e) => {
791
823
  let t = e?.trim();
792
824
  if (t === "none" || t === "landscape" || t === "portrait" || t === "both" || t === "auto") return t;
793
- }, Pt = (e) => {
794
- let { titles: t, contributors: n, publisher: r, description: i, rights: a, languages: o, subjects: s, date: c, renditionLayoutMeta: l, renditionFlowMeta: u, renditionSpreadMeta: d, pageProgressionDirection: f, identifiers: p, metas: m, kind: h, creators: g, manifestItems: _, spineRows: v, spineTocIdref: y, coverHref: b, guide: x, ...ee } = e, S = f?.trim().toLowerCase(), C = S === "ltr" || S === "rtl" ? S : void 0, w = l?.trim().toLowerCase(), T = w === "reflowable" || w === "pre-paginated" ? w : void 0, E = St(n), D = kt(t, m), { series: O, collection: k } = jt(m), A = O.length > 0 || k.length > 0 ? B({
825
+ }, Wt = (e) => {
826
+ let { titles: t, contributors: n, publisher: r, description: i, rights: a, languages: o, subjects: s, date: c, renditionLayoutMeta: l, renditionFlowMeta: u, renditionSpreadMeta: d, pageProgressionDirection: f, identifiers: p, metas: m, kind: h, creators: g, manifestItems: _, spineRows: v, spineTocIdref: y, coverHref: b, guide: x, ...ee } = e, S = f?.trim().toLowerCase(), C = S === "ltr" || S === "rtl" ? S : void 0, w = l?.trim().toLowerCase(), T = w === "reflowable" || w === "pre-paginated" ? w : void 0, E = Pt(n), D = zt(t, m), { series: O, collection: k } = Vt(m), te = O.length > 0 || k.length > 0 ? B({
795
827
  series: O.length > 0 ? O : void 0,
796
828
  collection: k.length > 0 ? k : void 0
797
- }) : void 0, j = B({
798
- date: yt(c),
829
+ }) : void 0, A = B({
830
+ date: jt(c),
799
831
  publisher: r
800
832
  });
801
833
  return B({
802
834
  titles: D.length > 0 ? D : void 0,
803
835
  description: i,
804
- publication: j.date !== void 0 || j.publisher !== void 0 ? { edition: j } : void 0,
836
+ publication: A.date !== void 0 || A.publisher !== void 0 ? { edition: A } : void 0,
805
837
  rights: a,
806
838
  languages: o.length > 0 ? [...o] : void 0,
807
839
  subjects: s.length > 0 ? [...s] : void 0,
808
840
  contributors: E.length > 0 ? E : void 0,
809
841
  readingDirection: C,
810
842
  renditionLayout: T,
811
- renditionFlow: Mt(u),
812
- renditionSpread: Nt(d),
843
+ renditionFlow: Ht(u),
844
+ renditionSpread: Ut(d),
813
845
  identifiers: p.length > 0 ? p.map((e) => B({
814
846
  value: e.value,
815
- scheme: q(e.scheme ?? Tt(e, m) ?? bt(e.value)),
847
+ scheme: q(e.scheme ?? Ft(e, m) ?? Mt(e.value)),
816
848
  unique: e.unique
817
849
  })) : void 0,
818
- belongsTo: A,
850
+ belongsTo: te,
819
851
  properties: m.length > 0 ? [...m] : void 0
820
852
  });
821
- }, Ft = (e) => e.kind === "comicInfo" ? ut(e) : e.kind === "kobo" ? dt(e) : e.kind === "apple" ? Je(e) : Pt(e), It = (e) => {
822
- let t = e.opf === void 0 ? void 0 : Pt(e.opf), n = e.comicInfo === void 0 ? void 0 : ut(e.comicInfo), r = e.apple === void 0 ? void 0 : Je(e.apple), i = e.kobo === void 0 ? void 0 : dt(e.kobo), a = [...t?.identifiers ?? [], ...n?.identifiers ?? []], o = B({
853
+ }, Gt = (e) => e.kind === "comicInfo" ? St(e) : e.kind === "kobo" ? Ct(e) : e.kind === "apple" ? ot(e) : Wt(e), Kt = (e) => {
854
+ let t = e.opf === void 0 ? void 0 : Wt(e.opf), n = e.comicInfo === void 0 ? void 0 : St(e.comicInfo), r = e.apple === void 0 ? void 0 : ot(e.apple), i = e.kobo === void 0 ? void 0 : Ct(e.kobo), a = [...t?.identifiers ?? [], ...n?.identifiers ?? []], o = B({
823
855
  date: t?.publication?.edition?.date ?? n?.publication?.edition?.date,
824
856
  publisher: t?.publication?.edition?.publisher ?? n?.publication?.edition?.publisher,
825
857
  imprint: t?.publication?.edition?.imprint ?? n?.publication?.edition?.imprint
@@ -845,7 +877,7 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
845
877
  apple: r?.apple,
846
878
  kobo: i?.kobo
847
879
  });
848
- }, Lt = (e) => {
880
+ }, qt = (e) => {
849
881
  let t = [...e.records].sort((e, t) => p(e.uri, t.uri)), n = (e, t, r, i, a) => {
850
882
  let o = e.find((e) => e.title === t), [s, ...c] = r;
851
883
  return o ? s ? [...e.filter((e) => e !== o), {
@@ -874,71 +906,71 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
874
906
  let a = encodeURI(t.uri).replace(/#/g, "%23").replace(/\?/g, "%3F").replace(/\/$/, ""), o = t.uri.replace(/\/$/, "");
875
907
  return n(e, r, i, a, o);
876
908
  }, []);
877
- }, Rt = (e) => e ? e.children.map((e) => e instanceof _ ? e.text : e instanceof g ? Rt(e) : "").join("").trim() : "", zt = (e) => O(e.properties).includes("nav"), Bt = (e, { basePath: t }) => {
909
+ }, Jt = (e) => e ? e.children.map((e) => e instanceof _ ? e.text : e instanceof g ? Jt(e) : "").join("").trim() : "", Yt = (e) => O(e.properties).includes("nav"), Xt = (e, { basePath: t }) => {
878
910
  let n = {
879
911
  contents: [],
880
912
  path: "",
881
913
  containerHref: "",
882
914
  title: ""
883
915
  }, r = e.childNamed("span") || e.childNamed("a");
884
- n.title = (r?.attr.title || r?.val.trim() || Rt(r)) ?? "";
916
+ n.title = (r?.attr.title || r?.val.trim() || Jt(r)) ?? "";
885
917
  let i = r?.name;
886
918
  i !== "a" && (r = e.descendantWithPath(`${i}.a`), r && (i = r.name.toLowerCase())), i === "a" && r?.attr.href && (n.path = m(t, r.attr.href), n.containerHref = n.path);
887
919
  let a = e.childNamed("ol");
888
920
  if (a) {
889
921
  let e = a.childrenNamed("li");
890
- e && e.length > 0 && (n.contents = e.map((e) => Bt(e, { basePath: t })));
922
+ e && e.length > 0 && (n.contents = e.map((e) => Xt(e, { basePath: t })));
891
923
  }
892
924
  return n;
893
- }, Vt = (e, { basePath: t }) => {
925
+ }, Zt = (e, { basePath: t }) => {
894
926
  let n = [], r;
895
927
  return e.descendantWithPath("body.nav.ol") ? r = e.descendantWithPath("body.nav.ol")?.children : e.descendantWithPath("body.section.nav.ol") && (r = e.descendantWithPath("body.section.nav.ol")?.children), r && r.length > 0 && r.filter((e) => e instanceof g && e.name === "li").forEach((e) => {
896
- n.push(Bt(e, { basePath: t }));
928
+ n.push(Xt(e, { basePath: t }));
897
929
  }), n;
898
- }, Ht = async (e, t) => {
899
- let n = e.manifestItems.find(zt);
930
+ }, Qt = async (e, t) => {
931
+ let n = e.manifestItems.find(Yt);
900
932
  if (n?.href) {
901
933
  let e = t.records.find((e) => e.uri.endsWith(n.href));
902
- if (e && !e.dir) return Vt(new h(await E(e)), { basePath: c(e.uri) });
934
+ if (e && !e.dir) return Zt(new h(await E(e)), { basePath: c(e.uri) });
903
935
  }
904
- }, Ut = (e, { basePath: t, prefix: n }) => {
936
+ }, $t = (e, { basePath: t, prefix: n }) => {
905
937
  let r = m(t, e?.childNamed(`${n}content`)?.attr.src || ""), i = {
906
938
  title: e?.descendantWithPath(`${n}navLabel.${n}text`)?.val || "",
907
939
  path: r,
908
940
  containerHref: r,
909
941
  contents: []
910
942
  }, a = e.childrenNamed(`${n}navPoint`);
911
- return a && a.length > 0 && (i.contents = a.map((e) => Ut(e, {
943
+ return a && a.length > 0 && (i.contents = a.map((e) => $t(e, {
912
944
  basePath: t,
913
945
  prefix: n
914
946
  }))), i;
915
- }, Wt = (e, { basePath: t }) => {
947
+ }, en = (e, { basePath: t }) => {
916
948
  let n = [], r = e.name, i = "";
917
949
  return r.indexOf(":") !== -1 && (i = `${r.split(":")[0]}:`), e.childNamed(`${i}navMap`)?.childrenNamed(`${i}navPoint`).forEach((e) => {
918
- n.push(Ut(e, {
950
+ n.push($t(e, {
919
951
  basePath: t,
920
952
  prefix: i
921
953
  }));
922
954
  }), n;
923
- }, Gt = async ({ opf: e, opfBasePath: t, archive: n }) => {
955
+ }, tn = async ({ opf: e, opfBasePath: t, archive: n }) => {
924
956
  let r = e.spineTocIdref;
925
957
  if (r) {
926
958
  let i = e.manifestItems.find((e) => e.id === r);
927
959
  if (i) {
928
960
  let e = `${t}${t === "" ? "" : "/"}${i.href}`, r = n.records.find((t) => t.uri.endsWith(e));
929
- if (r && !r.dir) return Wt(new h(await E(r)), { basePath: c(r.uri) });
961
+ if (r && !r.dir) return en(new h(await E(r)), { basePath: c(r.uri) });
930
962
  }
931
963
  }
932
- }, Kt = async (e, { opf: t } = {}) => {
933
- let n = t ?? await L(e);
934
- if (n) return await Ht(n.opf, e) || await Gt({
964
+ }, nn = async (e, { opf: t } = {}) => {
965
+ let n = t ?? await R(e);
966
+ if (n) return await Qt(n.opf, e) || await tn({
935
967
  opf: n.opf,
936
968
  opfBasePath: n.basePath,
937
969
  archive: e
938
970
  }) || [];
939
- let r = Lt(e);
971
+ let r = qt(e);
940
972
  return r.length === 0 ? void 0 : r;
941
- }, qt = [
973
+ }, rn = [
942
974
  "metadata",
943
975
  "readingOrder",
944
976
  "toc"
@@ -954,39 +986,39 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
954
986
  failed: !0
955
987
  };
956
988
  }
957
- }, Jt = (e) => {
989
+ }, an = (e) => {
958
990
  let t = (e) => e?.startsWith("audio/") === !0 || e?.startsWith("video/") === !0, n = e.filter((e) => e.renditionLayout === "pre-paginated" && !t(e.mediaType)).length;
959
991
  return n > 0 ? n : void 0;
960
- }, Yt = ({ archive: e, opf: t, comicInfo: n, apple: r, kobo: i }) => {
992
+ }, on = ({ archive: e, opf: t, comicInfo: n, apple: r, kobo: i }) => {
961
993
  let a = [];
962
- return t !== void 0 && t.value === void 0 && (t.failed || qe(e)) && a.push("opf"), n?.failed && a.push("comicInfo"), r?.failed && a.push("apple"), i?.failed && a.push("kobo"), a;
963
- }, Xt = 3, Zt = async (e, t = {}) => {
964
- let n = new Set(t.include ?? qt), r = n.has("metadata"), i = n.has("sources"), a = n.has("readingOrder"), o = n.has("toc"), s = t.layoutScan === !0 && (r || a), c = r || i || a || o ? await X(() => L(e), "opf") : void 0, l = c?.value, u = r || i || s, d = u ? await X(() => Ue(e), "comicInfo") : void 0, f = d?.value, p = u ? await X(() => Re(e), "apple") : void 0, m = p?.value, h = u ? await X(() => We(e), "kobo") : void 0, g = h?.value, _ = r || s ? It({
994
+ return t !== void 0 && t.value === void 0 && (t.failed || at(e)) && a.push("opf"), n?.failed && a.push("comicInfo"), r?.failed && a.push("apple"), i?.failed && a.push("kobo"), a;
995
+ }, sn = 3, cn = async (e, t = {}) => {
996
+ let n = new Set(t.include ?? rn), r = n.has("metadata"), i = n.has("sources"), a = n.has("readingOrder"), o = n.has("toc"), s = t.layoutScan === !0 && (r || a), c = r || i || a || o ? await X(() => R(e), "opf") : void 0, l = c?.value, u = r || i || s, d = u ? await X(() => tt(e), "comicInfo") : void 0, f = d?.value, p = u ? await X(() => Xe(e), "apple") : void 0, m = p?.value, h = u ? await X(() => nt(e), "kobo") : void 0, g = h?.value, _ = r || s ? Kt({
965
997
  opf: l?.opf,
966
998
  comicInfo: f,
967
999
  apple: m,
968
1000
  kobo: g
969
1001
  }) : void 0, v = a || s ? await V(e, { opf: l }) : void 0;
970
- if (s && _ !== void 0 && v !== void 0 && _.renditionLayout === "reflowable" && v.every((e) => e.renditionLayout === "reflowable") && await Ie(e, v) && (_ = {
1002
+ if (s && _ !== void 0 && v !== void 0 && _.renditionLayout === "reflowable" && v.every((e) => e.renditionLayout === "reflowable") && await Je(e, v) && (_ = {
971
1003
  ..._,
972
1004
  renditionLayout: "pre-paginated"
973
1005
  }, v = v.map((e) => ({
974
1006
  ...e,
975
1007
  renditionLayout: "pre-paginated"
976
1008
  }))), r && _ !== void 0) {
977
- let t = v ?? await V(e, { opf: l }), n = await Pe(e, {
1009
+ let t = v ?? await V(e, { opf: l }), n = await Ke(e, {
978
1010
  opf: l,
979
1011
  readingOrder: t
980
- }), r = _.numberOfPages ?? Jt(t);
1012
+ }), r = _.numberOfPages ?? an(t);
981
1013
  _ = B({
982
1014
  ..._,
983
1015
  cover: n,
984
1016
  numberOfPages: r
985
1017
  });
986
1018
  }
987
- let y = o ? (await X(() => Kt(e, { opf: l }), "toc")).value : void 0, b = {
988
- version: Xt,
989
- unreadableSources: Yt({
1019
+ let y = o ? (await X(() => nn(e, { opf: l }), "toc")).value : void 0, b = {
1020
+ version: sn,
1021
+ unreadableSources: on({
990
1022
  archive: e,
991
1023
  opf: c,
992
1024
  comicInfo: d,
@@ -1000,16 +1032,16 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
1000
1032
  apple: m,
1001
1033
  kobo: g
1002
1034
  })), b;
1003
- }, Qt = (e) => {
1035
+ }, ln = (e) => {
1004
1036
  let t = e.trim().toLowerCase();
1005
1037
  return t === "url" || t === "uri" || t === "unknown";
1006
- }, $t = (e) => {
1038
+ }, un = (e) => {
1007
1039
  try {
1008
1040
  return decodeURIComponent(e);
1009
1041
  } catch {
1010
1042
  return;
1011
1043
  }
1012
- }, en = (e) => {
1044
+ }, dn = (e) => {
1013
1045
  try {
1014
1046
  let t = new URL(e.trim());
1015
1047
  return t.protocol === "http:" || t.protocol === "https:" ? t : void 0;
@@ -1017,91 +1049,91 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
1017
1049
  return;
1018
1050
  }
1019
1051
  }, Z = (e, t) => {
1020
- let n = en(e);
1052
+ let n = dn(e);
1021
1053
  return n !== void 0 && t(n.hostname.toLowerCase()) ? n : void 0;
1022
- }, tn = /^books\.google\.(?:com|[a-z]{2}|com\.[a-z]{2}|co\.[a-z]{2})$/i, nn = /* @__PURE__ */ new Set(["books.googleapis.com", "www.googleapis.com"]), rn = /^\/books\/v1\/volumes\/([^/]+)\/?$/i, an = (e) => {
1054
+ }, fn = /^books\.google\.(?:com|[a-z]{2}|com\.[a-z]{2}|co\.[a-z]{2})$/i, pn = /* @__PURE__ */ new Set(["books.googleapis.com", "www.googleapis.com"]), mn = /^\/books\/v1\/volumes\/([^/]+)\/?$/i, hn = (e) => {
1023
1055
  let t = e.trim();
1024
1056
  return /^[a-z0-9_-]+$/i.test(t) ? t : void 0;
1025
- }, on = (e) => {
1026
- let t = Z(e, (e) => tn.test(e) || nn.has(e));
1057
+ }, gn = (e) => {
1058
+ let t = Z(e, (e) => fn.test(e) || pn.has(e));
1027
1059
  if (t !== void 0) {
1028
- if (nn.has(t.hostname.toLowerCase())) {
1029
- let e = rn.exec(t.pathname)?.[1], n = e === void 0 ? void 0 : $t(e);
1030
- return n === void 0 ? void 0 : an(n);
1060
+ if (pn.has(t.hostname.toLowerCase())) {
1061
+ let e = mn.exec(t.pathname)?.[1], n = e === void 0 ? void 0 : un(e);
1062
+ return n === void 0 ? void 0 : hn(n);
1031
1063
  }
1032
- return an(t.searchParams.get("id") ?? "");
1064
+ return hn(t.searchParams.get("id") ?? "");
1033
1065
  }
1034
- }, sn = /* @__PURE__ */ new Set(["gutenberg.org", "www.gutenberg.org"]), cn = [
1066
+ }, _n = /* @__PURE__ */ new Set(["gutenberg.org", "www.gutenberg.org"]), vn = [
1035
1067
  /^\/ebooks\/(\d+)(?:[./]|$)/i,
1036
1068
  /^\/files\/(\d+)(?:\/|$)/i,
1037
1069
  /^\/cache\/epub\/(\d+)(?:\/|$)/i,
1038
1070
  /^\/(\d+)(?:\/|$)/
1039
- ], ln = (e) => {
1071
+ ], yn = (e) => {
1040
1072
  let t = e.trim();
1041
1073
  if (!/^\d+$/.test(t)) return;
1042
1074
  let n = t.replace(/^0+(?=\d)/, "");
1043
1075
  return n === "0" ? void 0 : n;
1044
- }, un = (e) => {
1045
- let t = Z(e, (e) => sn.has(e));
1046
- if (t !== void 0) for (let e of cn) {
1076
+ }, bn = (e) => {
1077
+ let t = Z(e, (e) => _n.has(e));
1078
+ if (t !== void 0) for (let e of vn) {
1047
1079
  let n = e.exec(t.pathname)?.[1];
1048
- if (n !== void 0) return ln(n);
1080
+ if (n !== void 0) return yn(n);
1049
1081
  }
1050
- }, dn = /* @__PURE__ */ new Set(["openlibrary.org", "www.openlibrary.org"]), fn = /^\/(works|books|authors)\/(OL\d+[A-Z])(?:\/|$)/i, pn = /^OL\d+([MWA])$/i, mn = {
1082
+ }, xn = /* @__PURE__ */ new Set(["openlibrary.org", "www.openlibrary.org"]), Sn = /^\/(works|books|authors)\/(OL\d+[A-Z])(?:\/|$)/i, Cn = /^OL\d+([MWA])$/i, wn = {
1051
1083
  M: "books",
1052
1084
  W: "works",
1053
1085
  A: "authors"
1054
- }, hn = (e) => {
1055
- let t = e.trim(), n = fn.exec(t);
1086
+ }, Tn = (e) => {
1087
+ let t = e.trim(), n = Sn.exec(t);
1056
1088
  if (n?.[1] !== void 0 && n[2] !== void 0) return `/${n[1].toLowerCase()}/${n[2].toUpperCase()}`;
1057
- let r = mn[pn.exec(t)?.[1]?.toUpperCase() ?? ""];
1089
+ let r = wn[Cn.exec(t)?.[1]?.toUpperCase() ?? ""];
1058
1090
  return r === void 0 ? void 0 : `/${r}/${t.toUpperCase()}`;
1059
- }, gn = (e) => {
1060
- let t = Z(e, (e) => dn.has(e));
1061
- return t === void 0 ? void 0 : hn(t.pathname);
1062
- }, _n = /* @__PURE__ */ new Set([
1091
+ }, En = (e) => {
1092
+ let t = Z(e, (e) => xn.has(e));
1093
+ return t === void 0 ? void 0 : Tn(t.pathname);
1094
+ }, Dn = /* @__PURE__ */ new Set([
1063
1095
  "doi.org",
1064
1096
  "dx.doi.org",
1065
1097
  "www.doi.org"
1066
- ]), vn = /^10\.\d{4,9}\/\S+$/, yn = (e) => {
1098
+ ]), On = /^10\.\d{4,9}\/\S+$/, kn = (e) => {
1067
1099
  let t = e.trim().replace(/^doi:/i, "");
1068
- return vn.test(t) ? t : void 0;
1069
- }, bn = (e) => e.split("/").map(encodeURIComponent).join("/"), Q = [
1100
+ return On.test(t) ? t : void 0;
1101
+ }, An = (e) => e.split("/").map(encodeURIComponent).join("/"), Q = [
1070
1102
  {
1071
1103
  scheme: "GoogleBooks",
1072
- normalizeValue: an,
1073
- valueFromUrl: on,
1104
+ normalizeValue: hn,
1105
+ valueFromUrl: gn,
1074
1106
  toUrl: (e) => `https://books.google.com/books?id=${encodeURIComponent(e)}`
1075
1107
  },
1076
1108
  {
1077
1109
  scheme: "ProjectGutenberg",
1078
- normalizeValue: ln,
1079
- valueFromUrl: un,
1110
+ normalizeValue: yn,
1111
+ valueFromUrl: bn,
1080
1112
  toUrl: (e) => `https://www.gutenberg.org/ebooks/${e}`
1081
1113
  },
1082
1114
  {
1083
1115
  scheme: "OpenLibrary",
1084
- normalizeValue: hn,
1085
- valueFromUrl: gn,
1116
+ normalizeValue: Tn,
1117
+ valueFromUrl: En,
1086
1118
  toUrl: (e) => `https://openlibrary.org${e}`
1087
1119
  },
1088
1120
  {
1089
1121
  scheme: "DOI",
1090
- normalizeValue: yn,
1122
+ normalizeValue: kn,
1091
1123
  valueFromUrl: (e) => {
1092
- let t = Z(e, (e) => _n.has(e)), n = t === void 0 ? void 0 : $t(t.pathname.replace(/^\//, ""));
1093
- return n === void 0 ? void 0 : yn(n);
1124
+ let t = Z(e, (e) => Dn.has(e)), n = t === void 0 ? void 0 : un(t.pathname.replace(/^\//, ""));
1125
+ return n === void 0 ? void 0 : kn(n);
1094
1126
  },
1095
- toUrl: (e) => `https://doi.org/${bn(e)}`
1127
+ toUrl: (e) => `https://doi.org/${An(e)}`
1096
1128
  }
1097
- ], xn = Q.map(function(e) {
1129
+ ], jn = Q.map(function(e) {
1098
1130
  return e.scheme;
1099
- }), Sn = (e) => {
1131
+ }), Mn = (e) => {
1100
1132
  let t = e.trim().toLowerCase();
1101
1133
  return Q.find(function(e) {
1102
1134
  return e.scheme.toLowerCase() === t;
1103
1135
  });
1104
- }, Cn = (e) => Sn(e) !== void 0, wn = (e) => {
1136
+ }, Nn = (e) => Mn(e) !== void 0, Pn = (e) => {
1105
1137
  for (let t of Q) {
1106
1138
  let n = t.valueFromUrl(e);
1107
1139
  if (n !== void 0) return {
@@ -1109,47 +1141,47 @@ var Ge = async ({ archive: e, archiveOpf: t }) => {
1109
1141
  scheme: t.scheme
1110
1142
  };
1111
1143
  }
1112
- }, Tn = ({ scheme: e, value: t }) => {
1113
- let n = Sn(e), r = n?.normalizeValue(t);
1144
+ }, Fn = ({ scheme: e, value: t }) => {
1145
+ let n = Mn(e), r = n?.normalizeValue(t);
1114
1146
  if (n === void 0 || r === void 0) return;
1115
1147
  let i = n.toUrl(r);
1116
1148
  return n.valueFromUrl(i) === r ? i : void 0;
1117
- }, En = (e) => {
1149
+ }, In = (e) => {
1118
1150
  let t = Q.find(function(t) {
1119
1151
  return t.scheme === e;
1120
1152
  });
1121
1153
  if (t === void 0) throw Error(`No catalog rule for scheme ${e}`);
1122
1154
  return t;
1123
- }, Dn = (e) => {
1155
+ }, Ln = (e) => {
1124
1156
  let t = q(e);
1125
1157
  return t === "ISBN" || t === "GTIN";
1126
- }, On = (e) => ({
1127
- carries: Dn,
1158
+ }, Rn = (e) => ({
1159
+ carries: Ln,
1128
1160
  normalizeValue: e
1129
1161
  }), $ = (e) => ({
1130
1162
  carries: (t) => q(t) === e,
1131
- ...En(e)
1132
- }), kn = {
1133
- ISBN: On(ht),
1134
- GTIN: On(_t),
1163
+ ...In(e)
1164
+ }), zn = {
1165
+ ISBN: Rn(Dt),
1166
+ GTIN: Rn(kt),
1135
1167
  GoogleBooks: $("GoogleBooks"),
1136
1168
  OpenLibrary: $("OpenLibrary"),
1137
1169
  ProjectGutenberg: $("ProjectGutenberg"),
1138
1170
  DOI: $("DOI")
1139
- }, An = (e, t) => {
1140
- let n = kn[t];
1171
+ }, Bn = (e, t) => {
1172
+ let n = zn[t];
1141
1173
  for (let t of e ?? []) {
1142
1174
  if (n.carries(t.scheme)) {
1143
1175
  let e = n.normalizeValue(t.value) ?? n.valueFromUrl?.(t.value);
1144
1176
  if (e !== void 0) return e;
1145
1177
  continue;
1146
1178
  }
1147
- if (n.valueFromUrl === void 0 || !Qt(t.scheme)) continue;
1179
+ if (n.valueFromUrl === void 0 || !ln(t.scheme)) continue;
1148
1180
  let e = n.valueFromUrl(t.value);
1149
1181
  if (e !== void 0) return e;
1150
1182
  }
1151
- }, jn = (e) => e?.titles?.[0]?.value;
1183
+ }, Vn = (e) => e?.titles?.[0]?.value;
1152
1184
  //#endregion
1153
- export { R as APPLE_IBOOKS_DISPLAY_OPTIONS_FILENAME, z as COMIC_INFO_FILENAME, _e as COMIC_INFO_KNOWN_FIELDS, Ve as COMIC_INFO_MANGA_VALUES, Se as KOBO_DISPLAY_OPTIONS_FILENAME, xn as METADATA_CATALOG_SCHEMES, i as arrayBufferFileAccessors, r as blobFileAccessors, wn as catalogIdentifierFromUrl, Tn as catalogUrlFromIdentifier, e as createArchive, v as createArchiveFromArrayBufferList, n as createArchiveFromEntries, y as createArchiveFromText, b as createArchiveFromUrls, S as getArchiveFileRecordByUri, Be as getArchiveHasComicInfo, T as getArchiveImageRecords, D as getArchiveOpfInfo, Ge as getSpineItemFilesFromArchive, An as identifierValue, qe as isArchiveEpub, He as isComicInfoManga, ee as isDirectoryRecord, x as isFileRecord, w as isImageRecord, Dn as isIsbnBearingScheme, Cn as isMetadataCatalogScheme, jn as mainTitle, _t as normalizeGtin, q as normalizeIdentifierScheme, mt as normalizeIsbn, ge as parseAppleDisplayOptionsXml, xe as parseComicInfo, we as parseKoboXml, me as parseOpf, yt as parseW3cDtfDate, Re as readArchiveApple, Ue as readArchiveComicInfo, We as readArchiveKobo, L as readArchiveOpf, E as readRecordAsText, Ie as readingOrderDocumentsAllHaveViewport, Zt as resolveArchive, Pe as resolveArchiveCover, Ft as resolveArchiveMetadata, V as resolveArchiveReadingOrder, Kt as resolveArchiveToc, It as resolveMetadata, O as tokenizeXmlSpaceSeparatedList };
1185
+ export { Ee as APPLE_IBOOKS_DISPLAY_OPTIONS_FILENAME, z as COMIC_INFO_FILENAME, ke as COMIC_INFO_KNOWN_FIELDS, $e as COMIC_INFO_MANGA_VALUES, Pe as KOBO_DISPLAY_OPTIONS_FILENAME, jn as METADATA_CATALOG_SCHEMES, ae as OPF_IDENTIFIER_SCHEME_ATTRIBUTES, ie as OPF_IDENTIFIER_SCHEME_LOCAL_NAMES, k as OPF_NAMESPACE, i as arrayBufferFileAccessors, r as blobFileAccessors, Pn as catalogIdentifierFromUrl, Fn as catalogUrlFromIdentifier, e as createArchive, v as createArchiveFromArrayBufferList, n as createArchiveFromEntries, y as createArchiveFromText, b as createArchiveFromUrls, S as getArchiveFileRecordByUri, Qe as getArchiveHasComicInfo, T as getArchiveImageRecords, D as getArchiveOpfInfo, rt as getSpineItemFilesFromArchive, Bn as identifierValue, at as isArchiveEpub, et as isComicInfoManga, ee as isDirectoryRecord, x as isFileRecord, w as isImageRecord, Ln as isIsbnBearingScheme, Nn as isMetadataCatalogScheme, Vn as mainTitle, kt as normalizeGtin, q as normalizeIdentifierScheme, Et as normalizeIsbn, ce as opfIdentifierSchemeAttribute, se as opfIdentifierTypeScheme, ne as opfNamespacePrefixes, re as opfNamespacedAttribute, Oe as parseAppleDisplayOptionsXml, Ne as parseComicInfo, Ie as parseKoboXml, Te as parseOpf, jt as parseW3cDtfDate, Xe as readArchiveApple, tt as readArchiveComicInfo, nt as readArchiveKobo, R as readArchiveOpf, E as readRecordAsText, Je as readingOrderDocumentsAllHaveViewport, cn as resolveArchive, Ke as resolveArchiveCover, Gt as resolveArchiveMetadata, V as resolveArchiveReadingOrder, nn as resolveArchiveToc, Kt as resolveMetadata, O as tokenizeXmlSpaceSeparatedList, j as xmlNamespaceScope };
1154
1186
 
1155
1187
  //# sourceMappingURL=index.js.map