@prose-reader/archive-reader 1.332.0 → 1.334.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.
@@ -127,7 +127,7 @@ var D = (e) => {
127
127
  }, ae = (e) => h(e.encodingFormat ?? "") || l(e.basename), O = (e) => S(e) && ae(e)?.startsWith("image/") === !0, oe = (e) => e.records.filter(S).filter(O), k = "ComicInfo.xml", se = /* @__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("."), ce = /* @__PURE__ */ new Set(["Pages", "ComicInfo"]), le = (e) => e.children.some((e) => e.type === "element"), ue = (e) => {
128
128
  let t = e.val.trim();
129
129
  return t.length > 0 ? t : void 0;
130
- }, A = (e) => {
130
+ }, de = (e) => {
131
131
  let t;
132
132
  try {
133
133
  t = new a(e);
@@ -144,39 +144,39 @@ var D = (e) => {
144
144
  kind: "comicInfo",
145
145
  ...n
146
146
  };
147
- }, de = k.toLowerCase(), j = (e) => e.records.find((e) => S(e) && e.basename.toLowerCase() === de), M = [
147
+ }, fe = k.toLowerCase(), pe = (e) => e.records.find((e) => S(e) && e.basename.toLowerCase() === fe), A = [
148
148
  "Unknown",
149
149
  "No",
150
150
  "Yes",
151
151
  "YesAndRightToLeft"
152
- ], fe = (e) => {
153
- for (let t of M) if (t === e) return !0;
152
+ ], me = (e) => {
153
+ for (let t of A) if (t === e) return !0;
154
154
  return !1;
155
155
  };
156
156
  //#endregion
157
157
  //#region src/comicInfo/readArchiveComicInfo.ts
158
- async function pe(e) {
159
- let t = j(e);
160
- if (t) return A(await x(t));
158
+ async function he(e) {
159
+ let t = pe(e);
160
+ if (t) return de(await x(t));
161
161
  }
162
162
  //#endregion
163
163
  //#region src/utils/normalizeGtin.ts
164
- var me = /* @__PURE__ */ new Set([
164
+ var ge = /* @__PURE__ */ new Set([
165
165
  8,
166
166
  12,
167
167
  13,
168
168
  14
169
- ]), N = (e) => {
169
+ ]), j = (e) => {
170
170
  if (e == null) return;
171
171
  let t = String(e).replace(/\D/g, "");
172
- if (!(t.length === 0 || !me.has(t.length))) return t;
173
- }, he = /(?:97[89])?\d{9}[\dXx]/, P = (e) => {
172
+ if (!(t.length === 0 || !ge.has(t.length))) return t;
173
+ }, _e = /(?:97[89])?\d{9}[\dXx]/, M = (e) => {
174
174
  if (e == null) return;
175
175
  let t = String(e).trim().replace(/^urn:isbn:/i, "").replace(/^isbn[:\s-]*/i, ""), n = t.replace(/[^0-9Xx]/g, "");
176
176
  if (n.length === 10 || n.length === 13) return n.toUpperCase();
177
- let r = t.match(he);
177
+ let r = t.match(_e);
178
178
  if (r) return r[0].toUpperCase();
179
- }, ge = {
179
+ }, ve = {
180
180
  AgeRating: "comic.ageRating",
181
181
  AlternateCount: "comic.alternateSeries",
182
182
  AlternateNumber: "comic.alternateSeries",
@@ -220,46 +220,46 @@ var me = /* @__PURE__ */ new Set([
220
220
  Web: "comic.web",
221
221
  Writer: "contributors",
222
222
  Year: "published"
223
- }, _e = (e) => {
223
+ }, ye = (e) => {
224
224
  switch (e.Manga) {
225
225
  case "YesAndRightToLeft": return "rtl";
226
226
  case "Yes":
227
227
  case "No": return "ltr";
228
228
  default: return;
229
229
  }
230
- }, F = (e) => {
230
+ }, N = (e) => {
231
231
  if (e === void 0) return;
232
232
  let t = e.trim();
233
233
  return t.length > 0 ? t : void 0;
234
- }, I = (e) => e === void 0 ? [] : e.split(",").map((e) => e.trim()).filter((e) => e.length > 0), L = (e) => {
235
- let t = F(e);
234
+ }, P = (e) => e === void 0 ? [] : e.split(",").map((e) => e.trim()).filter((e) => e.length > 0), F = (e) => {
235
+ let t = N(e);
236
236
  if (t === void 0 || !/^\d+$/.test(t)) return;
237
237
  let n = Number.parseInt(t, 10);
238
238
  return Number.isFinite(n) ? n : void 0;
239
- }, R = (e) => {
240
- let t = F(e);
239
+ }, I = (e) => {
240
+ let t = N(e);
241
241
  if (t === void 0 || !/^\d+(\.\d+)?$/.test(t)) return;
242
242
  let n = Number.parseFloat(t);
243
243
  return Number.isFinite(n) ? n : void 0;
244
- }, ve = (e) => {
245
- let t = F(e)?.toLowerCase();
244
+ }, be = (e) => {
245
+ let t = N(e)?.toLowerCase();
246
246
  if (t === "yes") return !0;
247
247
  if (t === "no") return !1;
248
- }, ye = (e) => {
248
+ }, xe = (e) => {
249
249
  switch (e.Manga) {
250
250
  case "Yes":
251
251
  case "YesAndRightToLeft": return !0;
252
252
  case "No": return !1;
253
253
  default: return;
254
254
  }
255
- }, be = (e) => {
256
- let t = L(e.Year), n = L(e.Month), r = L(e.Day);
255
+ }, Se = (e) => {
256
+ let t = F(e.Year), n = F(e.Month), r = F(e.Day);
257
257
  if (!(t === void 0 && n === void 0 && r === void 0)) return {
258
258
  ...t === void 0 ? {} : { year: t },
259
259
  ...n === void 0 ? {} : { month: n },
260
260
  ...r === void 0 ? {} : { day: r }
261
261
  };
262
- }, xe = [
262
+ }, Ce = [
263
263
  ["Writer", "author"],
264
264
  ["Penciller", "penciler"],
265
265
  ["Inker", "inker"],
@@ -268,9 +268,9 @@ var me = /* @__PURE__ */ new Set([
268
268
  ["CoverArtist", "coverArtist"],
269
269
  ["Editor", "editor"],
270
270
  ["Translator", "translator"]
271
- ], Se = (e) => {
271
+ ], we = (e) => {
272
272
  let t = /* @__PURE__ */ new Map();
273
- for (let [n, r] of xe) for (let i of I(e[n])) {
273
+ for (let [n, r] of Ce) for (let i of P(e[n])) {
274
274
  let e = t.get(i);
275
275
  e ? e.roles.includes(r) || e.roles.push(r) : t.set(i, {
276
276
  name: i,
@@ -278,77 +278,77 @@ var me = /* @__PURE__ */ new Set([
278
278
  });
279
279
  }
280
280
  return [...t.values()];
281
- }, Ce = (e) => {
282
- let t = F(e.Series);
281
+ }, Te = (e) => {
282
+ let t = N(e.Series);
283
283
  if (t !== void 0) return D({
284
284
  name: t,
285
- position: R(e.Number),
286
- total: L(e.Count)
285
+ position: I(e.Number),
286
+ total: F(e.Count)
287
287
  });
288
- }, we = (e) => {
289
- let t = F(e.AlternateSeries);
288
+ }, Ee = (e) => {
289
+ let t = N(e.AlternateSeries);
290
290
  if (t !== void 0) return D({
291
291
  name: t,
292
- position: R(e.AlternateNumber),
293
- total: L(e.AlternateCount)
292
+ position: I(e.AlternateNumber),
293
+ total: F(e.AlternateCount)
294
294
  });
295
- }, Te = (e) => {
296
- let t = I(e.StoryArc);
295
+ }, De = (e) => {
296
+ let t = P(e.StoryArc);
297
297
  if (t.length === 0) return [];
298
- let n = I(e.StoryArcNumber);
298
+ let n = P(e.StoryArcNumber);
299
299
  return t.map((e, t) => D({
300
300
  name: e,
301
- position: R(n[t])
301
+ position: I(n[t])
302
302
  }));
303
- }, z = (e) => e.length > 0 ? e : void 0, Ee = (e) => {
304
- let t = z((e.Web ?? "").split(/\s+/).filter((e) => e.length > 0)), n = D({
305
- manga: ye(e),
306
- blackAndWhite: ve(e.BlackAndWhite),
307
- volume: L(e.Volume),
308
- format: F(e.Format),
309
- ageRating: F(e.AgeRating),
310
- communityRating: R(e.CommunityRating),
311
- notes: F(e.Notes),
312
- review: F(e.Review),
303
+ }, L = (e) => e.length > 0 ? e : void 0, Oe = (e) => {
304
+ let t = L((e.Web ?? "").split(/\s+/).filter((e) => e.length > 0)), n = D({
305
+ manga: xe(e),
306
+ blackAndWhite: be(e.BlackAndWhite),
307
+ volume: F(e.Volume),
308
+ format: N(e.Format),
309
+ ageRating: N(e.AgeRating),
310
+ communityRating: I(e.CommunityRating),
311
+ notes: N(e.Notes),
312
+ review: N(e.Review),
313
313
  web: t,
314
- scanInformation: F(e.ScanInformation),
315
- mainCharacterOrTeam: F(e.MainCharacterOrTeam),
316
- characters: z(I(e.Characters)),
317
- teams: z(I(e.Teams)),
318
- locations: z(I(e.Locations)),
319
- storyArcs: z(Te(e)),
320
- alternateSeries: we(e)
314
+ scanInformation: N(e.ScanInformation),
315
+ mainCharacterOrTeam: N(e.MainCharacterOrTeam),
316
+ characters: L(P(e.Characters)),
317
+ teams: L(P(e.Teams)),
318
+ locations: L(P(e.Locations)),
319
+ storyArcs: L(De(e)),
320
+ alternateSeries: Ee(e)
321
321
  });
322
322
  return Object.keys(n).length > 0 ? n : void 0;
323
- }, De = (e) => {
324
- let t = Ce(e), n = z(I(e.SeriesGroup).map((e) => ({ name: e })));
323
+ }, ke = (e) => {
324
+ let t = Te(e), n = L(P(e.SeriesGroup).map((e) => ({ name: e })));
325
325
  if (!(t === void 0 && n === void 0)) return D({
326
326
  series: t === void 0 ? void 0 : [t],
327
327
  collection: n
328
328
  });
329
- }, Oe = (e) => {
330
- let t = e.GTIN, n = F(t), r = F(e.LanguageISO), i = [...I(e.Genre), ...I(e.Tags)];
329
+ }, R = (e) => {
330
+ let t = e.GTIN, n = N(t), r = N(e.LanguageISO), i = [...P(e.Genre), ...P(e.Tags)];
331
331
  return D({
332
- title: F(e.Title),
333
- description: F(e.Summary),
334
- publisher: F(e.Publisher),
335
- imprint: F(e.Imprint),
332
+ title: N(e.Title),
333
+ description: N(e.Summary),
334
+ publisher: N(e.Publisher),
335
+ imprint: N(e.Imprint),
336
336
  languages: r === void 0 ? void 0 : [r],
337
- subjects: z(i),
338
- contributors: z(Se(e)),
339
- published: be(e),
340
- readingDirection: _e(e),
341
- numberOfPages: L(e.PageCount),
342
- gtin: N(t),
343
- isbn: P(t),
337
+ subjects: L(i),
338
+ contributors: L(we(e)),
339
+ published: Se(e),
340
+ readingDirection: ye(e),
341
+ numberOfPages: F(e.PageCount),
342
+ gtin: j(t),
343
+ isbn: M(t),
344
344
  identifiers: n === void 0 ? void 0 : [{
345
345
  value: n,
346
346
  scheme: "GTIN"
347
347
  }],
348
- belongsTo: De(e),
349
- comic: Ee(e)
348
+ belongsTo: ke(e),
349
+ comic: Oe(e)
350
350
  });
351
- }, ke = (e) => {
351
+ }, z = (e) => {
352
352
  let t = e.records.filter((e) => !e.dir).find((e) => e.uri.endsWith(".opf"));
353
353
  return {
354
354
  data: t,
@@ -546,7 +546,7 @@ var me = /* @__PURE__ */ new Set([
546
546
  //#endregion
547
547
  //#region src/opf/readArchiveOpf.ts
548
548
  async function X(e) {
549
- let { data: t, basePath: n } = ke(e) || {};
549
+ let { data: t, basePath: n } = z(e) || {};
550
550
  if (!(!t || t.dir)) return {
551
551
  opf: Ve(await x(t)),
552
552
  basePath: n
@@ -559,13 +559,13 @@ var He = "com.kobobooks.display-options.xml", Ue = (e) => {
559
559
  if (!t) return {};
560
560
  for (let e of t.childrenNamed("option")) if (e.attr?.name === "fixed-layout") return e.val.trim().toLowerCase() === "true" ? { renditionLayout: "pre-paginated" } : {};
561
561
  return {};
562
- }, We = (e) => {
562
+ }, Z = (e) => {
563
563
  let t = new a(e);
564
564
  return t.name?.toLowerCase() === "display_options" ? {
565
565
  kind: "kobo",
566
566
  ...Ue(t)
567
567
  } : { kind: "kobo" };
568
- }, Ge = (e) => {
568
+ }, We = (e) => {
569
569
  let t = [];
570
570
  for (let n of e.split("/")) if (n !== ".") {
571
571
  if (n === "..") {
@@ -575,12 +575,12 @@ var He = "com.kobobooks.display-options.xml", Ue = (e) => {
575
575
  t.push(n);
576
576
  }
577
577
  return t.join("/");
578
- }, Ke = (e, t) => /^https?:\/\//.test(e) ? e : Ge(t ? `${t}/${e}` : e), qe = (e) => {
578
+ }, Ge = (e, t) => /^https?:\/\//.test(e) ? e : We(t ? `${t}/${e}` : e), Ke = (e) => {
579
579
  let t = e?.trim().toLowerCase();
580
580
  return t === "reflowable" || t === "pre-paginated" ? t : void 0;
581
- }, Je = (e, { opf: t, basePath: n }) => {
582
- let r = qe(t.renditionLayoutMeta), i = t.spineRows.map((t) => {
583
- let r = Ke(t.href, n);
581
+ }, qe = (e, { opf: t, basePath: n }) => {
582
+ let r = Ke(t.renditionLayoutMeta), i = t.spineRows.map((t) => {
583
+ let r = Ge(t.href, n);
584
584
  return {
585
585
  row: t,
586
586
  uri: r,
@@ -598,11 +598,11 @@ var He = "com.kobobooks.display-options.xml", Ue = (e) => {
598
598
  pageSpreadRight: e.pageSpreadRight,
599
599
  progressionWeight: a > 0 ? (i?.size ?? 0) / a : 1 / t.spineRows.length
600
600
  }));
601
- }, Ye = k.toLowerCase(), Xe = v.toLowerCase(), Ze = (e) => {
601
+ }, Je = k.toLowerCase(), Ye = v.toLowerCase(), Xe = (e) => {
602
602
  let t = e.basename.toLowerCase();
603
- return t === Ye || t === Xe || e.uri.endsWith("com.kobobooks.display-options.xml") || t.endsWith(".db");
604
- }, Qe = (e) => {
605
- let t = e.records.filter(S).filter((e) => !Ze(e));
603
+ return t === Je || t === Ye || e.uri.endsWith("com.kobobooks.display-options.xml") || t.endsWith(".db");
604
+ }, Ze = (e) => {
605
+ let t = e.records.filter(S).filter((e) => !Xe(e));
606
606
  return t.map((e) => {
607
607
  let n = h(e.encodingFormat ?? "") || l(e.basename);
608
608
  return D({
@@ -613,23 +613,23 @@ var He = "com.kobobooks.display-options.xml", Ue = (e) => {
613
613
  progressionWeight: 1 / t.length
614
614
  });
615
615
  });
616
- }, Z = async (e, { opf: t } = {}) => {
616
+ }, Q = async (e, { opf: t } = {}) => {
617
617
  let n = t ?? await X(e).catch(() => void 0);
618
- return n ? Je(e, n) : Qe(e);
619
- }, $e = (e, t) => {
618
+ return n ? qe(e, n) : Ze(e);
619
+ }, Qe = (e, t) => {
620
620
  let n = w(e, t);
621
621
  if (n !== void 0) return h(n.encodingFormat ?? "") || l(n.basename);
622
- }, et = async (e, { opf: t, readingOrder: n } = {}) => {
622
+ }, $e = async (e, { opf: t, readingOrder: n } = {}) => {
623
623
  let r = t ?? await X(e).catch(() => void 0);
624
624
  if (r !== void 0 && r.opf.coverHref !== void 0) {
625
- let t = Ke(r.opf.coverHref, r.basePath);
625
+ let t = Ge(r.opf.coverHref, r.basePath);
626
626
  return D({
627
627
  uri: t,
628
- mediaType: $e(e, t),
628
+ mediaType: Qe(e, t),
629
629
  confidence: "derived"
630
630
  });
631
631
  }
632
- let i = (n ?? await Z(e, { opf: r })).find((e) => e.mediaType?.startsWith("image/") === !0);
632
+ let i = (n ?? await Q(e, { opf: r })).find((e) => e.mediaType?.startsWith("image/") === !0);
633
633
  if (i !== void 0) return D({
634
634
  uri: i.uri,
635
635
  mediaType: i.mediaType,
@@ -638,14 +638,14 @@ var He = "com.kobobooks.display-options.xml", Ue = (e) => {
638
638
  };
639
639
  //#endregion
640
640
  //#region src/kobo/readArchiveKobo.ts
641
- async function tt(e) {
641
+ async function et(e) {
642
642
  let n = e.records.filter((e) => S(e) && e.uri.endsWith("com.kobobooks.display-options.xml"));
643
643
  if (n.length === 0) return;
644
644
  let r;
645
645
  for (let e of n) {
646
646
  let n = await x(e);
647
647
  try {
648
- let { renditionLayout: e } = We(n);
648
+ let { renditionLayout: e } = Z(n);
649
649
  e && (r = e);
650
650
  } catch (n) {
651
651
  t.error(`Unable to parse ${He} (${e.uri})`, n);
@@ -658,13 +658,13 @@ async function tt(e) {
658
658
  }
659
659
  //#endregion
660
660
  //#region src/kobo/resolve.ts
661
- var nt = { renditionLayout: "renditionLayout" }, rt = (e) => D({
661
+ var tt = { renditionLayout: "renditionLayout" }, nt = (e) => D({
662
662
  renditionLayout: e.renditionLayout,
663
663
  kobo: e.renditionLayout === void 0 ? void 0 : { fixedLayout: e.renditionLayout === "pre-paginated" }
664
- }), it = (e) => {
664
+ }), rt = (e) => {
665
665
  let t = e.descendantWithPath("head")?.childrenNamed("meta").find((e) => e.attr.name === "viewport");
666
666
  return !!(t && t.attr.name === "viewport");
667
- }, at = async (e, n) => {
667
+ }, it = async (e, n) => {
668
668
  if (n.length === 0) return !1;
669
669
  for (let r of n) {
670
670
  if (!m({
@@ -674,17 +674,17 @@ var nt = { renditionLayout: "renditionLayout" }, rt = (e) => D({
674
674
  let n = w(e, r.uri);
675
675
  if (!n || !S(n)) return !1;
676
676
  try {
677
- if (!it(new a(await x(n)))) return !1;
677
+ if (!rt(new a(await x(n)))) return !1;
678
678
  } catch (e) {
679
679
  return t.error(`layout scan: unable to inspect ${r.uri}`, e), !1;
680
680
  }
681
681
  }
682
682
  return !0;
683
- }, ot = async ({ archive: e, archiveOpf: t }) => {
683
+ }, at = async ({ archive: e, archiveOpf: t }) => {
684
684
  if (!t) return [];
685
685
  let { opf: n, basePath: r } = t, { spineRows: i } = n;
686
686
  return e.records.filter((e) => i.find((t) => r ? `${r}/${t.href}` === e.uri : `${t.href}` === e.uri));
687
- }, st = (e) => e.toLowerCase().endsWith(".opf"), ct = (e) => e.records.some((e) => !e.dir && (st(e.basename) || st(e.uri))), Q = (e) => {
687
+ }, ot = (e) => e.toLowerCase().endsWith(".opf"), st = (e) => e.records.some((e) => !e.dir && (ot(e.basename) || ot(e.uri))), ct = (e) => {
688
688
  if (e === void 0) return;
689
689
  let t = e.trim().match(/^(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?/);
690
690
  if (t === null) return;
@@ -716,8 +716,8 @@ var nt = { renditionLayout: "renditionLayout" }, rt = (e) => D({
716
716
  guide: "guide",
717
717
  metas: "properties"
718
718
  }, ut = (e) => {
719
- for (let t of e) if (t.scheme !== void 0 && t.scheme.trim().toLowerCase() === "isbn" && P(t.value) !== void 0) return t.value;
720
- for (let t of e) if (P(t.value) !== void 0) return t.value;
719
+ for (let t of e) if (t.scheme !== void 0 && t.scheme.trim().toLowerCase() === "isbn" && M(t.value) !== void 0) return t.value;
720
+ for (let t of e) if (M(t.value) !== void 0) return t.value;
721
721
  }, dt = {
722
722
  art: "artist",
723
723
  aut: "author",
@@ -779,13 +779,13 @@ var nt = { renditionLayout: "renditionLayout" }, rt = (e) => D({
779
779
  languages: e.languages.length > 0 ? [...e.languages] : void 0,
780
780
  subjects: e.subjects.length > 0 ? [...e.subjects] : void 0,
781
781
  contributors: o.length > 0 ? o : void 0,
782
- published: Q(e.date),
782
+ published: ct(e.date),
783
783
  readingDirection: n,
784
784
  renditionLayout: i,
785
785
  renditionFlow: gt(e.renditionFlowMeta),
786
786
  renditionSpread: _t(e.renditionSpreadMeta),
787
- gtin: N(a),
788
- isbn: P(a),
787
+ gtin: j(a),
788
+ isbn: M(a),
789
789
  identifiers: e.identifiers.length > 0 ? e.identifiers.map(({ value: e, scheme: t }) => D({
790
790
  value: e,
791
791
  scheme: t
@@ -793,8 +793,8 @@ var nt = { renditionLayout: "renditionLayout" }, rt = (e) => D({
793
793
  belongsTo: l,
794
794
  properties: e.metas.length > 0 ? [...e.metas] : void 0
795
795
  });
796
- }, yt = (e) => e.kind === "comicInfo" ? Oe(e) : e.kind === "kobo" ? rt(e) : e.kind === "apple" ? te(e) : vt(e), bt = (e) => {
797
- let t = e.opf === void 0 ? void 0 : vt(e.opf), n = e.comicInfo === void 0 ? void 0 : Oe(e.comicInfo), r = e.apple === void 0 ? void 0 : te(e.apple), i = e.kobo === void 0 ? void 0 : rt(e.kobo), a = [...t?.identifiers ?? [], ...n?.identifiers ?? []];
796
+ }, yt = (e) => e.kind === "comicInfo" ? R(e) : e.kind === "kobo" ? nt(e) : e.kind === "apple" ? te(e) : vt(e), bt = (e) => {
797
+ let t = e.opf === void 0 ? void 0 : vt(e.opf), n = e.comicInfo === void 0 ? void 0 : R(e.comicInfo), r = e.apple === void 0 ? void 0 : te(e.apple), i = e.kobo === void 0 ? void 0 : nt(e.kobo), a = [...t?.identifiers ?? [], ...n?.identifiers ?? []];
798
798
  return D({
799
799
  title: t?.title ?? n?.title,
800
800
  description: t?.description ?? n?.description,
@@ -875,7 +875,7 @@ var nt = { renditionLayout: "renditionLayout" }, rt = (e) => D({
875
875
  let e = t.records.find((e) => e.uri.endsWith(n.href));
876
876
  if (e && !e.dir) return Tt(new a(await x(e)), { basePath: d(e.uri) });
877
877
  }
878
- }, Dt = (e, { opfBasePath: t, prefix: n }) => {
878
+ }, Dt = (e, { basePath: t, prefix: n }) => {
879
879
  let r = _(t, e?.childNamed(`${n}content`)?.attr.src || ""), i = {
880
880
  title: e?.descendantWithPath(`${n}navLabel.${n}text`)?.val || "",
881
881
  path: r,
@@ -883,14 +883,14 @@ var nt = { renditionLayout: "renditionLayout" }, rt = (e) => D({
883
883
  contents: []
884
884
  }, a = e.childrenNamed(`${n}navPoint`);
885
885
  return a && a.length > 0 && (i.contents = a.map((e) => Dt(e, {
886
- opfBasePath: t,
886
+ basePath: t,
887
887
  prefix: n
888
888
  }))), i;
889
- }, Ot = (e, { opfBasePath: t }) => {
889
+ }, Ot = (e, { basePath: t }) => {
890
890
  let n = [], r = e.name, i = "";
891
891
  return r.indexOf(":") !== -1 && (i = `${r.split(":")[0]}:`), e.childNamed(`${i}navMap`)?.childrenNamed(`${i}navPoint`).forEach((e) => {
892
892
  n.push(Dt(e, {
893
- opfBasePath: t,
893
+ basePath: t,
894
894
  prefix: i
895
895
  }));
896
896
  }), n;
@@ -900,7 +900,7 @@ var nt = { renditionLayout: "renditionLayout" }, rt = (e) => D({
900
900
  let i = e.manifestItems.find((e) => e.id === r);
901
901
  if (i) {
902
902
  let e = `${t}${t === "" ? "" : "/"}${i.href}`, r = n.records.find((t) => t.uri.endsWith(e));
903
- if (r && !r.dir) return Ot(new a(await x(r)), { opfBasePath: t });
903
+ if (r && !r.dir) return Ot(new a(await x(r)), { basePath: d(r.uri) });
904
904
  }
905
905
  }
906
906
  }, At = async (e, { opf: t } = {}) => {
@@ -918,47 +918,64 @@ var nt = { renditionLayout: "renditionLayout" }, rt = (e) => D({
918
918
  "toc"
919
919
  ], $ = async (e, n) => {
920
920
  try {
921
- return await e();
921
+ return {
922
+ value: await e(),
923
+ failed: !1
924
+ };
922
925
  } catch (e) {
923
- t.error(`resolveArchive: unable to read ${n}`, e);
924
- return;
926
+ return t.error(`resolveArchive: unable to read ${n}`, e), {
927
+ value: void 0,
928
+ failed: !0
929
+ };
925
930
  }
926
931
  }, Mt = (e) => {
927
932
  let t = (e) => e?.startsWith("audio/") === !0 || e?.startsWith("video/") === !0, n = e.filter((e) => e.renditionLayout === "pre-paginated" && !t(e.mediaType)).length;
928
933
  return n > 0 ? n : void 0;
929
- }, Nt = 1, Pt = async (e, t = {}) => {
930
- let n = new Set(t.include ?? jt), 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(e), "opf") : void 0, l = r || i || s, u = l ? await $(() => pe(e), "comicInfo") : void 0, d = l ? await $(() => E(e), "apple") : void 0, f = l ? await $(() => tt(e), "kobo") : void 0, p = r || s ? bt({
931
- opf: c?.opf,
932
- comicInfo: u,
933
- apple: d,
934
- kobo: f
935
- }) : void 0, m = a || s ? await Z(e, { opf: c }) : void 0;
936
- if (s && p !== void 0 && m !== void 0 && p.renditionLayout === "reflowable" && m.every((e) => e.renditionLayout === "reflowable") && await at(e, m) && (p = {
937
- ...p,
934
+ }, Nt = ({ archive: e, opf: t, comicInfo: n, apple: r, kobo: i }) => {
935
+ let a = [];
936
+ return t !== void 0 && t.value === void 0 && (t.failed || st(e)) && a.push("opf"), n?.failed && a.push("comicInfo"), r?.failed && a.push("apple"), i?.failed && a.push("kobo"), a;
937
+ }, Pt = 1, Ft = async (e, t = {}) => {
938
+ let n = new Set(t.include ?? jt), 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(e), "opf") : void 0, l = c?.value, u = r || i || s, d = u ? await $(() => he(e), "comicInfo") : void 0, f = d?.value, p = u ? await $(() => E(e), "apple") : void 0, m = p?.value, h = u ? await $(() => et(e), "kobo") : void 0, g = h?.value, _ = r || s ? bt({
939
+ opf: l?.opf,
940
+ comicInfo: f,
941
+ apple: m,
942
+ kobo: g
943
+ }) : void 0, v = a || s ? await Q(e, { opf: l }) : void 0;
944
+ if (s && _ !== void 0 && v !== void 0 && _.renditionLayout === "reflowable" && v.every((e) => e.renditionLayout === "reflowable") && await it(e, v) && (_ = {
945
+ ..._,
938
946
  renditionLayout: "pre-paginated"
939
- }, m = m.map((e) => ({
947
+ }, v = v.map((e) => ({
940
948
  ...e,
941
949
  renditionLayout: "pre-paginated"
942
- }))), r && p !== void 0) {
943
- let t = m ?? await Z(e, { opf: c }), n = await et(e, {
944
- opf: c,
950
+ }))), r && _ !== void 0) {
951
+ let t = v ?? await Q(e, { opf: l }), n = await $e(e, {
952
+ opf: l,
945
953
  readingOrder: t
946
- }), r = p.numberOfPages ?? Mt(t);
947
- p = D({
948
- ...p,
954
+ }), r = _.numberOfPages ?? Mt(t);
955
+ _ = D({
956
+ ..._,
949
957
  cover: n,
950
958
  numberOfPages: r
951
959
  });
952
960
  }
953
- let h = o ? await $(() => At(e, { opf: c }), "toc") : void 0, g = { version: Nt };
954
- return r && p !== void 0 && (g.metadata = p), a && m !== void 0 && (g.readingOrder = m), o && h !== void 0 && (g.toc = h), i && (g.sources = D({
955
- opf: c,
956
- comicInfo: u,
957
- apple: d,
958
- kobo: f
959
- })), g;
961
+ let y = o ? (await $(() => At(e, { opf: l }), "toc")).value : void 0, b = {
962
+ version: Pt,
963
+ unreadableSources: Nt({
964
+ archive: e,
965
+ opf: c,
966
+ comicInfo: d,
967
+ apple: p,
968
+ kobo: h
969
+ })
970
+ };
971
+ return r && _ !== void 0 && (b.metadata = _), a && v !== void 0 && (b.readingOrder = v), o && y !== void 0 && (b.toc = y), i && (b.sources = D({
972
+ opf: l,
973
+ comicInfo: f,
974
+ apple: m,
975
+ kobo: g
976
+ })), b;
960
977
  };
961
978
  //#endregion
962
- export { v as APPLE_IBOOKS_DISPLAY_OPTIONS_FILENAME, k as COMIC_INFO_FILENAME, se as COMIC_INFO_KNOWN_FIELDS, M as COMIC_INFO_MANGA_VALUES, He as KOBO_DISPLAY_OPTIONS_FILENAME, ee as appleMetadataHomes, i as arrayBufferFileAccessors, r as blobFileAccessors, ge as comicInfoMetadataHomes, e as createArchive, ne as createArchiveFromArrayBufferList, n as createArchiveFromEntries, re as createArchiveFromText, ie as createArchiveFromUrls, w as getArchiveFileRecordByUri, j as getArchiveHasComicInfo, oe as getArchiveImageRecords, ke as getArchiveOpfInfo, ot as getSpineItemFilesFromArchive, ct as isArchiveEpub, fe as isComicInfoManga, C as isDirectoryRecord, S as isFileRecord, O as isImageRecord, nt as koboMetadataHomes, N as normalizeGtin, P as normalizeIsbn, lt as opfMetadataHomes, b as parseAppleDisplayOptionsXml, A as parseComicInfo, We as parseKoboXml, Ve as parseOpf, Q as parseW3cDtfDate, E as readArchiveApple, pe as readArchiveComicInfo, tt as readArchiveKobo, X as readArchiveOpf, x as readRecordAsText, at as readingOrderDocumentsAllHaveViewport, Pt as resolveArchive, et as resolveArchiveCover, yt as resolveArchiveMetadata, Z as resolveArchiveReadingOrder, At as resolveArchiveToc, bt as resolveMetadata, B as tokenizeXmlSpaceSeparatedList };
979
+ export { v as APPLE_IBOOKS_DISPLAY_OPTIONS_FILENAME, k as COMIC_INFO_FILENAME, se as COMIC_INFO_KNOWN_FIELDS, A as COMIC_INFO_MANGA_VALUES, He as KOBO_DISPLAY_OPTIONS_FILENAME, ee as appleMetadataHomes, i as arrayBufferFileAccessors, r as blobFileAccessors, ve as comicInfoMetadataHomes, e as createArchive, ne as createArchiveFromArrayBufferList, n as createArchiveFromEntries, re as createArchiveFromText, ie as createArchiveFromUrls, w as getArchiveFileRecordByUri, pe as getArchiveHasComicInfo, oe as getArchiveImageRecords, z as getArchiveOpfInfo, at as getSpineItemFilesFromArchive, st as isArchiveEpub, me as isComicInfoManga, C as isDirectoryRecord, S as isFileRecord, O as isImageRecord, tt as koboMetadataHomes, j as normalizeGtin, M as normalizeIsbn, lt as opfMetadataHomes, b as parseAppleDisplayOptionsXml, de as parseComicInfo, Z as parseKoboXml, Ve as parseOpf, ct as parseW3cDtfDate, E as readArchiveApple, he as readArchiveComicInfo, et as readArchiveKobo, X as readArchiveOpf, x as readRecordAsText, it as readingOrderDocumentsAllHaveViewport, Ft as resolveArchive, $e as resolveArchiveCover, yt as resolveArchiveMetadata, Q as resolveArchiveReadingOrder, At as resolveArchiveToc, bt as resolveMetadata, B as tokenizeXmlSpaceSeparatedList };
963
980
 
964
981
  //# sourceMappingURL=index.js.map