@prose-reader/archive-reader 1.338.0 → 1.340.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.
@@ -144,39 +144,39 @@ var D = (e) => {
144
144
  kind: "comicInfo",
145
145
  ...n
146
146
  };
147
- }, ue = j.toLowerCase(), de = (e) => e.records.find((e) => S(e) && e.basename.toLowerCase() === ue), fe = [
147
+ }, ue = j.toLowerCase(), M = (e) => e.records.find((e) => S(e) && e.basename.toLowerCase() === ue), de = [
148
148
  "Unknown",
149
149
  "No",
150
150
  "Yes",
151
151
  "YesAndRightToLeft"
152
- ], pe = (e) => {
153
- for (let t of fe) if (t === e) return !0;
152
+ ], fe = (e) => {
153
+ for (let t of de) if (t === e) return !0;
154
154
  return !1;
155
155
  };
156
156
  //#endregion
157
157
  //#region src/comicInfo/readArchiveComicInfo.ts
158
- async function M(e) {
159
- let t = de(e);
158
+ async function N(e) {
159
+ let t = M(e);
160
160
  if (t) return le(await x(t));
161
161
  }
162
162
  //#endregion
163
163
  //#region src/utils/normalizeGtin.ts
164
- var me = /* @__PURE__ */ new Set([
164
+ var pe = /* @__PURE__ */ new Set([
165
165
  8,
166
166
  12,
167
167
  13,
168
168
  14
169
- ]), N = (e) => {
169
+ ]), P = (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 || !pe.has(t.length))) return t;
173
+ }, me = /(?:97[89])?\d{9}[\dXx]/, F = (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(me);
178
178
  if (r) return r[0].toUpperCase();
179
- }, ge = {
179
+ }, he = {
180
180
  AgeRating: "comic.ageRating",
181
181
  AlternateCount: "comic.alternateSeries",
182
182
  AlternateNumber: "comic.alternateSeries",
@@ -187,24 +187,24 @@ var me = /* @__PURE__ */ new Set([
187
187
  CommunityRating: "comic.communityRating",
188
188
  Count: "belongsTo.series",
189
189
  CoverArtist: "contributors",
190
- Day: "published",
190
+ Day: "publication.edition.date",
191
191
  Editor: "contributors",
192
192
  Format: "comic.format",
193
193
  Genre: "subjects",
194
194
  GTIN: "identifiers",
195
- Imprint: "imprint",
195
+ Imprint: "publication.edition.imprint",
196
196
  Inker: "contributors",
197
197
  LanguageISO: "languages",
198
198
  Letterer: "contributors",
199
199
  Locations: "comic.locations",
200
200
  MainCharacterOrTeam: "comic.mainCharacterOrTeam",
201
201
  Manga: "readingDirection",
202
- Month: "published",
202
+ Month: "publication.edition.date",
203
203
  Notes: "comic.notes",
204
204
  Number: "belongsTo.series",
205
205
  PageCount: "numberOfPages",
206
206
  Penciller: "contributors",
207
- Publisher: "publisher",
207
+ Publisher: "publication.edition.publisher",
208
208
  Review: "comic.review",
209
209
  ScanInformation: "comic.scanInformation",
210
210
  Series: "belongsTo.series",
@@ -219,47 +219,47 @@ var me = /* @__PURE__ */ new Set([
219
219
  Volume: "comic.volume",
220
220
  Web: "comic.web",
221
221
  Writer: "contributors",
222
- Year: "published"
223
- }, _e = (e) => {
222
+ Year: "publication.edition.date"
223
+ }, ge = (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
+ }, I = (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
+ }, L = (e) => e === void 0 ? [] : e.split(",").map((e) => e.trim()).filter((e) => e.length > 0), R = (e) => {
235
+ let t = I(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
+ }, z = (e) => {
240
+ let t = I(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
+ }, _e = (e) => {
245
+ let t = I(e)?.toLowerCase();
246
246
  if (t === "yes") return !0;
247
247
  if (t === "no") return !1;
248
- }, ye = (e) => {
248
+ }, ve = (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
+ }, ye = (e) => {
256
+ let t = R(e.Year), n = R(e.Month), r = R(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
+ }, be = [
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
+ ], xe = (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 be) for (let i of L(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,84 +278,86 @@ var me = /* @__PURE__ */ new Set([
278
278
  });
279
279
  }
280
280
  return [...t.values()];
281
- }, Ce = (e) => {
282
- let t = F(e.Series);
281
+ }, Se = (e) => {
282
+ let t = I(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: z(e.Number),
286
+ total: R(e.Count)
287
287
  });
288
- }, we = (e) => {
289
- let t = F(e.AlternateSeries);
288
+ }, Ce = (e) => {
289
+ let t = I(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: z(e.AlternateNumber),
293
+ total: R(e.AlternateCount)
294
294
  });
295
- }, Te = (e) => {
296
- let t = I(e.StoryArc);
295
+ }, we = (e) => {
296
+ let t = L(e.StoryArc);
297
297
  if (t.length === 0) return [];
298
- let n = I(e.StoryArcNumber);
298
+ let n = L(e.StoryArcNumber);
299
299
  return t.map((e, t) => D({
300
300
  name: e,
301
- position: R(n[t])
301
+ position: z(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
+ }, B = (e) => e.length > 0 ? e : void 0, Te = (e) => {
304
+ let t = B((e.Web ?? "").split(/\s+/).filter((e) => e.length > 0)), n = D({
305
+ manga: ve(e),
306
+ blackAndWhite: _e(e.BlackAndWhite),
307
+ volume: R(e.Volume),
308
+ format: I(e.Format),
309
+ ageRating: I(e.AgeRating),
310
+ communityRating: z(e.CommunityRating),
311
+ notes: I(e.Notes),
312
+ review: I(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: I(e.ScanInformation),
315
+ mainCharacterOrTeam: I(e.MainCharacterOrTeam),
316
+ characters: B(L(e.Characters)),
317
+ teams: B(L(e.Teams)),
318
+ locations: B(L(e.Locations)),
319
+ storyArcs: B(we(e)),
320
+ alternateSeries: Ce(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
+ }, Ee = (e) => {
324
+ let t = Se(e), n = B(L(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
- }, B = (e) => {
330
- let t = e.GTIN, n = F(t), r = F(e.LanguageISO), i = [...I(e.Genre), ...I(e.Tags)];
329
+ }, V = (e) => {
330
+ let t = e.GTIN, n = I(t), r = I(e.LanguageISO), i = [...L(e.Genre), ...L(e.Tags)], a = D({
331
+ date: ye(e),
332
+ publisher: I(e.Publisher),
333
+ imprint: I(e.Imprint)
334
+ });
331
335
  return D({
332
- title: F(e.Title),
333
- description: F(e.Summary),
334
- publisher: F(e.Publisher),
335
- imprint: F(e.Imprint),
336
+ title: I(e.Title),
337
+ description: I(e.Summary),
338
+ publication: a.date !== void 0 || a.publisher !== void 0 || a.imprint !== void 0 ? { edition: a } : void 0,
336
339
  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),
340
+ subjects: B(i),
341
+ contributors: B(xe(e)),
342
+ readingDirection: ge(e),
343
+ numberOfPages: R(e.PageCount),
344
+ gtin: P(t),
345
+ isbn: F(t),
344
346
  identifiers: n === void 0 ? void 0 : [{
345
347
  value: n,
346
348
  scheme: "GTIN"
347
349
  }],
348
- belongsTo: De(e),
349
- comic: Ee(e)
350
+ belongsTo: Ee(e),
351
+ comic: Te(e)
350
352
  });
351
- }, V = (e) => {
353
+ }, H = (e) => {
352
354
  let t = e.records.filter((e) => !e.dir).find((e) => e.uri.endsWith(".opf"));
353
355
  return {
354
356
  data: t,
355
357
  basePath: t?.uri.substring(0, t.uri.lastIndexOf("/")) || ""
356
358
  };
357
- }, H = (e) => e === void 0 || e.trim().length === 0 ? [] : e.trim().split(/\s+/).filter((e) => e.length > 0), Oe = (e) => {
358
- let t = H(e);
359
+ }, U = (e) => e === void 0 || e.trim().length === 0 ? [] : e.trim().split(/\s+/).filter((e) => e.length > 0), De = (e) => {
360
+ let t = U(e);
359
361
  if (t.length === 0) return {};
360
362
  let n;
361
363
  t.includes("rendition:layout-reflowable") && (n = "reflowable"), t.includes("rendition:layout-pre-paginated") && (n = "pre-paginated");
@@ -366,16 +368,16 @@ var me = /* @__PURE__ */ new Set([
366
368
  ...t.includes("page-spread-left") ? { pageSpreadLeft: !0 } : {},
367
369
  ...t.includes("page-spread-right") ? { pageSpreadRight: !0 } : {}
368
370
  };
369
- }, U = (e) => e.includes(":") ? e.slice(e.lastIndexOf(":") + 1) : e, ke = (e, t) => U(e).toLowerCase() === t.toLowerCase(), Ae = (e) => e.type === "element", W = (e, t) => {
370
- for (let n of e.children) if (Ae(n) && ke(n.name, t)) return n;
371
- }, G = (e, t) => {
371
+ }, W = (e) => e.includes(":") ? e.slice(e.lastIndexOf(":") + 1) : e, Oe = (e, t) => W(e).toLowerCase() === t.toLowerCase(), ke = (e) => e.type === "element", G = (e, t) => {
372
+ for (let n of e.children) if (ke(n) && Oe(n.name, t)) return n;
373
+ }, K = (e, t) => {
372
374
  let n = [];
373
- for (let r of e.children) Ae(r) && ke(r.name, t) && n.push(r);
375
+ for (let r of e.children) ke(r) && Oe(r.name, t) && n.push(r);
374
376
  return n;
375
- }, je = (e, t) => {
377
+ }, Ae = (e, t) => {
376
378
  let n = [];
377
379
  return e.eachChild((e) => {
378
- if (U(e.name).toLowerCase() !== "identifier") return;
380
+ if (W(e.name).toLowerCase() !== "identifier") return;
379
381
  let r = e.val.trim();
380
382
  if (r.length === 0) return;
381
383
  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;
@@ -386,46 +388,46 @@ var me = /* @__PURE__ */ new Set([
386
388
  ...o !== void 0 && o === t ? { unique: !0 } : {}
387
389
  });
388
390
  }), n;
389
- }, K = (e, t) => {
391
+ }, q = (e, t) => {
390
392
  let n;
391
393
  return e.eachChild((e) => {
392
- if (n !== void 0 || U(e.name).toLowerCase() !== t.toLowerCase()) return;
394
+ if (n !== void 0 || W(e.name).toLowerCase() !== t.toLowerCase()) return;
393
395
  let r = e.val.trim();
394
396
  r.length > 0 && (n = r);
395
397
  }), n;
396
- }, q = (e, t) => {
398
+ }, J = (e, t) => {
397
399
  let n = [];
398
400
  return e.eachChild((e) => {
399
- if (U(e.name).toLowerCase() !== t.toLowerCase()) return;
401
+ if (W(e.name).toLowerCase() !== t.toLowerCase()) return;
400
402
  let r = e.val.trim();
401
403
  r.length > 0 && n.push(r);
402
404
  }), n;
403
- }, Me = (e) => {
405
+ }, je = (e) => {
404
406
  let t;
405
407
  return e.eachChild((e) => {
406
- if (t !== void 0 || U(e.name).toLowerCase() !== "meta" || e.attr.name?.toLowerCase() !== "cover") return;
408
+ if (t !== void 0 || W(e.name).toLowerCase() !== "meta" || e.attr.name?.toLowerCase() !== "cover") return;
407
409
  let n = e.attr.content?.trim();
408
410
  n !== void 0 && n.length > 0 && (t = n);
409
411
  }), t;
410
- }, Ne = ({ manifestItems: e, metadataEl: t }) => {
411
- let n = (e) => e.mediaType?.toLowerCase().includes("image/") === !0, r = e.find((e) => n(e) ? H(e.properties).includes("cover-image") : !1);
412
+ }, Me = ({ manifestItems: e, metadataEl: t }) => {
413
+ let n = (e) => e.mediaType?.toLowerCase().includes("image/") === !0, r = e.find((e) => n(e) ? U(e.properties).includes("cover-image") : !1);
412
414
  if (r !== void 0) return r.href;
413
415
  if (t !== void 0) {
414
- let r = Me(t);
416
+ let r = je(t);
415
417
  if (r !== void 0) {
416
418
  let t = e.find((e) => e.id === r && n(e));
417
419
  if (t !== void 0) return t.href;
418
420
  }
419
421
  }
420
422
  return e.find((e) => e.id.toLowerCase().includes("cover") && n(e))?.href;
421
- }, J = (e, t) => {
423
+ }, Y = (e, t) => {
422
424
  let n = e.attr[t]?.trim();
423
425
  return n !== void 0 && n.length > 0 ? n : void 0;
424
- }, Pe = (e) => {
426
+ }, Ne = (e) => {
425
427
  let t = [];
426
428
  return e.eachChild((e) => {
427
- if (U(e.name).toLowerCase() !== "meta") return;
428
- let n = J(e, "property"), r = J(e, "refines"), i = J(e, "scheme"), a = J(e, "id"), o = J(e, "name"), s = J(e, "content"), c = e.val.trim(), l = c.length > 0 ? c : void 0, u = {
429
+ if (W(e.name).toLowerCase() !== "meta") return;
430
+ let n = Y(e, "property"), r = Y(e, "refines"), i = Y(e, "scheme"), a = Y(e, "id"), o = Y(e, "name"), s = Y(e, "content"), c = e.val.trim(), l = c.length > 0 ? c : void 0, u = {
429
431
  ...n === void 0 ? {} : { property: n },
430
432
  ...r === void 0 ? {} : { refines: r },
431
433
  ...i === void 0 ? {} : { scheme: i },
@@ -436,14 +438,14 @@ var me = /* @__PURE__ */ new Set([
436
438
  };
437
439
  Object.keys(u).length !== 0 && t.push(u);
438
440
  }), t;
439
- }, Fe = (e, t) => e.replace(/^#/, "") === t, Ie = (e, t) => {
441
+ }, Pe = (e, t) => e.replace(/^#/, "") === t, Fe = (e, t) => {
440
442
  let n = [];
441
443
  return e.eachChild((e) => {
442
- let r = U(e.name).toLowerCase();
444
+ let r = W(e.name).toLowerCase();
443
445
  if (r !== "creator" && r !== "contributor") return;
444
446
  let i = e.val.trim();
445
447
  if (i.length === 0) return;
446
- let a = J(e, "id"), o = (e) => a === void 0 ? [] : t.flatMap((t) => t.refines !== void 0 && Fe(t.refines, a) && t.property === e && t.value !== void 0 ? [t.value] : []), s = J(e, "opf:role") ?? J(e, "role"), c = [...s === void 0 ? [] : [s], ...o("role")], l = J(e, "opf:file-as") ?? J(e, "file-as") ?? o("file-as")[0];
448
+ let a = Y(e, "id"), o = (e) => a === void 0 ? [] : t.flatMap((t) => t.refines !== void 0 && Pe(t.refines, a) && t.property === e && t.value !== void 0 ? [t.value] : []), s = Y(e, "opf:role") ?? Y(e, "role"), c = [...s === void 0 ? [] : [s], ...o("role")], l = Y(e, "opf:file-as") ?? Y(e, "file-as") ?? o("file-as")[0];
447
449
  n.push({
448
450
  name: i,
449
451
  source: r,
@@ -452,14 +454,14 @@ var me = /* @__PURE__ */ new Set([
452
454
  ...l === void 0 ? {} : { fileAs: l }
453
455
  });
454
456
  }), n;
455
- }, Y = (e, t) => {
456
- let n = G(e, "meta").find((e) => e.attr.property === t)?.val;
457
+ }, X = (e, t) => {
458
+ let n = K(e, "meta").find((e) => e.attr.property === t)?.val;
457
459
  if (!(n === void 0 || n.trim().length === 0)) return n;
458
- }, Le = (e) => {
459
- let t = W(e, "guide");
460
+ }, Ie = (e) => {
461
+ let t = G(e, "guide");
460
462
  if (t === void 0) return [];
461
463
  let n = [];
462
- for (let e of G(t, "reference")) {
464
+ for (let e of K(t, "reference")) {
463
465
  let t = e.attr.href?.trim();
464
466
  t === void 0 || t.length === 0 || n.push({
465
467
  href: t,
@@ -468,7 +470,7 @@ var me = /* @__PURE__ */ new Set([
468
470
  });
469
471
  }
470
472
  return n;
471
- }, Re = (e) => {
473
+ }, Le = (e) => {
472
474
  let t = e.attr.id, n = e.attr.href;
473
475
  if (t === void 0 || t.length === 0 || n === void 0 || n.length === 0) return;
474
476
  let r = e.attr["media-type"], i = e.attr.properties?.trim();
@@ -478,24 +480,24 @@ var me = /* @__PURE__ */ new Set([
478
480
  ...r !== void 0 && r.length > 0 ? { mediaType: r } : {},
479
481
  ...i !== void 0 && i.length > 0 ? { properties: i } : {}
480
482
  };
481
- }, ze = (e) => {
483
+ }, Re = (e) => {
482
484
  let t = [], n = /* @__PURE__ */ new Map();
483
- for (let r of G(e, "item")) {
484
- let e = Re(r);
485
+ for (let r of K(e, "item")) {
486
+ let e = Le(r);
485
487
  e !== void 0 && (t.push(e), n.set(e.id, e));
486
488
  }
487
489
  return {
488
490
  items: t,
489
491
  byId: n
490
492
  };
491
- }, Be = (e, t) => {
493
+ }, ze = (e, t) => {
492
494
  let n = [];
493
- for (let r of G(t, "itemref")) {
495
+ for (let r of K(t, "itemref")) {
494
496
  let t = r.attr.idref;
495
497
  if (t === void 0 || t.trim().length === 0) continue;
496
498
  let i = e.get(t);
497
499
  if (i === void 0) continue;
498
- let a = Oe(r.attr.properties);
500
+ let a = De(r.attr.properties);
499
501
  n.push({
500
502
  idref: t,
501
503
  id: i.id,
@@ -509,18 +511,18 @@ var me = /* @__PURE__ */ new Set([
509
511
  });
510
512
  }
511
513
  return n;
512
- }, X = (e) => {
513
- let t = new a(e), n = W(t, "manifest"), r = W(t, "spine"), i = W(t, "metadata"), o = t.attr["unique-identifier"]?.trim(), s = o !== void 0 && o.length > 0 ? o : void 0, c = [], l = [];
514
+ }, Be = (e) => {
515
+ let t = new a(e), n = G(t, "manifest"), r = G(t, "spine"), i = G(t, "metadata"), o = t.attr["unique-identifier"]?.trim(), s = o !== void 0 && o.length > 0 ? o : void 0, c = [], l = [];
514
516
  if (n !== void 0) {
515
- let { items: e, byId: t } = ze(n);
516
- c = e, r !== void 0 && (l = Be(t, r));
517
+ let { items: e, byId: t } = Re(n);
518
+ c = e, r !== void 0 && (l = ze(t, r));
517
519
  }
518
520
  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, h, g, _, v, y = [], b = [], x = [], S = [], C, w, T, E = [], D = [];
519
- i !== void 0 && (m = K(i, "title"), h = K(i, "publisher"), g = K(i, "description"), _ = K(i, "rights"), v = K(i, "date"), y = q(i, "creator"), x = q(i, "language"), S = q(i, "subject"), C = Y(i, "rendition:layout"), w = Y(i, "rendition:flow"), T = Y(i, "rendition:spread"), E = Pe(i), b = Ie(i, E), D.push(...je(i, s)));
520
- let O = Ne({
521
+ i !== void 0 && (m = q(i, "title"), h = q(i, "publisher"), g = q(i, "description"), _ = q(i, "rights"), v = q(i, "date"), y = J(i, "creator"), x = J(i, "language"), S = J(i, "subject"), C = X(i, "rendition:layout"), w = X(i, "rendition:flow"), T = X(i, "rendition:spread"), E = Ne(i), b = Fe(i, E), D.push(...Ae(i, s)));
522
+ let O = Me({
521
523
  manifestItems: c,
522
524
  metadataEl: i
523
- }), k = Le(t);
525
+ }), k = Ie(t);
524
526
  return {
525
527
  kind: "opf",
526
528
  manifestItems: c,
@@ -548,9 +550,9 @@ var me = /* @__PURE__ */ new Set([
548
550
  //#endregion
549
551
  //#region src/opf/readArchiveOpf.ts
550
552
  async function Z(e) {
551
- let { data: t, basePath: n } = V(e) || {};
553
+ let { data: t, basePath: n } = H(e) || {};
552
554
  if (!(!t || t.dir)) return {
553
- opf: X(await x(t)),
555
+ opf: Be(await x(t)),
554
556
  basePath: n
555
557
  };
556
558
  }
@@ -704,12 +706,12 @@ var tt = { renditionLayout: "renditionLayout" }, nt = (e) => D({
704
706
  title: "title",
705
707
  creators: "contributors",
706
708
  contributors: "contributors",
707
- publisher: "publisher",
709
+ publisher: "publication.edition.publisher",
708
710
  description: "description",
709
711
  rights: "rights",
710
712
  languages: "languages",
711
713
  subjects: "subjects",
712
- date: "published",
714
+ date: "publication.edition.date",
713
715
  coverHref: "cover",
714
716
  renditionLayoutMeta: "renditionLayout",
715
717
  renditionFlowMeta: "renditionFlow",
@@ -718,9 +720,17 @@ var tt = { renditionLayout: "renditionLayout" }, nt = (e) => D({
718
720
  guide: "guide",
719
721
  metas: "properties"
720
722
  }, ut = (e) => {
721
- for (let t of e) if (t.scheme !== void 0 && t.scheme.trim().toLowerCase() === "isbn" && P(t.value) !== void 0) return t.value;
722
- for (let t of e) if (P(t.value) !== void 0) return t.value;
723
- }, dt = {
723
+ for (let t of e) if (t.scheme !== void 0 && t.scheme.trim().toLowerCase() === "isbn" && F(t.value) !== void 0) return t.value;
724
+ for (let t of e) if (F(t.value) !== void 0) return t.value;
725
+ }, dt = (e) => {
726
+ let t = e.trim();
727
+ if (/^https?:\/\//i.test(t)) try {
728
+ let e = new URL(t);
729
+ return (e.protocol === "http:" || e.protocol === "https:") && e.hostname.length > 0 ? "URL" : void 0;
730
+ } catch {
731
+ return;
732
+ }
733
+ }, ft = {
724
734
  art: "artist",
725
735
  aut: "author",
726
736
  clr: "colorist",
@@ -729,25 +739,47 @@ var tt = { renditionLayout: "renditionLayout" }, nt = (e) => D({
729
739
  ill: "illustrator",
730
740
  nrt: "narrator",
731
741
  trl: "translator"
732
- }, ft = (e) => e.contributors.map((e) => {
733
- let t = e.roles.map((e) => dt[e.trim().toLowerCase()] ?? e);
742
+ }, pt = (e) => e.contributors.map((e) => {
743
+ let t = e.roles.map((e) => ft[e.trim().toLowerCase()] ?? e);
734
744
  return D({
735
745
  name: e.name,
736
746
  roles: t.length > 0 ? t : [e.source === "creator" ? "author" : "contributor"],
737
747
  sortAs: e.fileAs
738
748
  });
739
- }), pt = (e, t) => e.refines !== void 0 && e.refines.replace(/^#/, "") === t, mt = (e) => {
749
+ }), mt = (e, t) => e.refines !== void 0 && e.refines.replace(/^#/, "") === t, ht = {
750
+ "02": "ISBN",
751
+ "03": "GTIN",
752
+ "04": "UPC",
753
+ "05": "ISMN",
754
+ "06": "DOI",
755
+ 13: "LCCN",
756
+ 14: "GTIN",
757
+ 15: "ISBN",
758
+ 22: "URN",
759
+ 23: "OCLC",
760
+ 24: "ISBN",
761
+ 25: "ISMN",
762
+ 26: "DOI",
763
+ 34: "GTIN",
764
+ 35: "ARK"
765
+ }, gt = (e) => {
766
+ let t = e?.value?.trim();
767
+ if (!(t === void 0 || t.length === 0)) return e?.scheme?.trim().toLowerCase() === "onix:codelist5" ? ht[t] ?? t : t;
768
+ }, _t = (e, t) => {
769
+ let n = e.id;
770
+ if (n !== void 0) return gt(t.find((e) => e.property === "identifier-type" && mt(e, n) && e.value !== void 0));
771
+ }, vt = (e) => {
740
772
  let t = e?.trim();
741
773
  if (t === void 0 || !/^\d+(\.\d+)?$/.test(t)) return;
742
774
  let n = Number.parseFloat(t);
743
775
  return Number.isFinite(n) ? n : void 0;
744
- }, ht = (e) => {
776
+ }, yt = (e) => {
745
777
  let t = [], n = [];
746
778
  for (let r of e) {
747
779
  if (r.property !== "belongs-to-collection" || r.value === void 0) continue;
748
- let i = r.id, a = (t) => i === void 0 ? void 0 : e.find((e) => pt(e, i) && e.property === t && e.value !== void 0)?.value, o = a("collection-type")?.trim().toLowerCase(), s = D({
780
+ let i = r.id, a = (t) => i === void 0 ? void 0 : e.find((e) => mt(e, i) && e.property === t && e.value !== void 0)?.value, o = a("collection-type")?.trim().toLowerCase(), s = D({
749
781
  name: r.value,
750
- position: mt(a("group-position"))
782
+ position: vt(a("group-position"))
751
783
  });
752
784
  o === "series" ? t.push(s) : n.push(s);
753
785
  }
@@ -755,59 +787,63 @@ var tt = { renditionLayout: "renditionLayout" }, nt = (e) => D({
755
787
  let n = e.find((e) => e.name?.toLowerCase() === "calibre:series" && e.content !== void 0)?.content;
756
788
  n !== void 0 && t.push(D({
757
789
  name: n,
758
- position: mt(e.find((e) => e.name?.toLowerCase() === "calibre:series_index")?.content)
790
+ position: vt(e.find((e) => e.name?.toLowerCase() === "calibre:series_index")?.content)
759
791
  }));
760
792
  }
761
793
  return {
762
794
  series: t,
763
795
  collection: n
764
796
  };
765
- }, gt = (e) => {
797
+ }, bt = (e) => {
766
798
  let t = e?.trim();
767
799
  if (t === "scrolled-continuous" || t === "scrolled-doc" || t === "paginated" || t === "auto") return t;
768
- }, _t = (e) => {
800
+ }, xt = (e) => {
769
801
  let t = e?.trim();
770
802
  if (t === "none" || t === "landscape" || t === "portrait" || t === "both" || t === "auto") return t;
771
- }, vt = (e) => {
772
- let t = e.pageProgressionDirection?.trim().toLowerCase(), n = t === "ltr" || t === "rtl" ? t : void 0, r = e.renditionLayoutMeta?.trim().toLowerCase(), i = r === "reflowable" || r === "pre-paginated" ? r : void 0, a = ut(e.identifiers), o = ft(e), { series: s, collection: c } = ht(e.metas), l = s.length > 0 || c.length > 0 ? D({
803
+ }, St = (e) => {
804
+ let t = e.pageProgressionDirection?.trim().toLowerCase(), n = t === "ltr" || t === "rtl" ? t : void 0, r = e.renditionLayoutMeta?.trim().toLowerCase(), i = r === "reflowable" || r === "pre-paginated" ? r : void 0, a = ut(e.identifiers), o = pt(e), { series: s, collection: c } = yt(e.metas), l = s.length > 0 || c.length > 0 ? D({
773
805
  series: s.length > 0 ? s : void 0,
774
806
  collection: c.length > 0 ? c : void 0
775
- }) : void 0;
807
+ }) : void 0, u = D({
808
+ date: ct(e.date),
809
+ publisher: e.publisher
810
+ });
776
811
  return D({
777
812
  title: e.title,
778
813
  description: e.description,
779
- publisher: e.publisher,
814
+ publication: u.date !== void 0 || u.publisher !== void 0 ? { edition: u } : void 0,
780
815
  rights: e.rights,
781
816
  languages: e.languages.length > 0 ? [...e.languages] : void 0,
782
817
  subjects: e.subjects.length > 0 ? [...e.subjects] : void 0,
783
818
  contributors: o.length > 0 ? o : void 0,
784
- published: ct(e.date),
785
819
  readingDirection: n,
786
820
  renditionLayout: i,
787
- renditionFlow: gt(e.renditionFlowMeta),
788
- renditionSpread: _t(e.renditionSpreadMeta),
789
- gtin: N(a),
790
- isbn: P(a),
791
- identifiers: e.identifiers.length > 0 ? e.identifiers.map(({ value: e, scheme: t, unique: n }) => D({
792
- value: e,
793
- scheme: t,
794
- unique: n
821
+ renditionFlow: bt(e.renditionFlowMeta),
822
+ renditionSpread: xt(e.renditionSpreadMeta),
823
+ gtin: P(a),
824
+ isbn: F(a),
825
+ identifiers: e.identifiers.length > 0 ? e.identifiers.map((t) => D({
826
+ value: t.value,
827
+ scheme: t.scheme ?? _t(t, e.metas) ?? dt(t.value),
828
+ unique: t.unique
795
829
  })) : void 0,
796
830
  belongsTo: l,
797
831
  properties: e.metas.length > 0 ? [...e.metas] : void 0
798
832
  });
799
- }, yt = (e) => e.kind === "comicInfo" ? B(e) : e.kind === "kobo" ? nt(e) : e.kind === "apple" ? k(e) : vt(e), bt = (e) => {
800
- let t = e.opf === void 0 ? void 0 : vt(e.opf), n = e.comicInfo === void 0 ? void 0 : B(e.comicInfo), r = e.apple === void 0 ? void 0 : k(e.apple), i = e.kobo === void 0 ? void 0 : nt(e.kobo), a = [...t?.identifiers ?? [], ...n?.identifiers ?? []];
833
+ }, Ct = (e) => e.kind === "comicInfo" ? V(e) : e.kind === "kobo" ? nt(e) : e.kind === "apple" ? k(e) : St(e), wt = (e) => {
834
+ let t = e.opf === void 0 ? void 0 : St(e.opf), n = e.comicInfo === void 0 ? void 0 : V(e.comicInfo), r = e.apple === void 0 ? void 0 : k(e.apple), i = e.kobo === void 0 ? void 0 : nt(e.kobo), a = [...t?.identifiers ?? [], ...n?.identifiers ?? []], o = D({
835
+ date: t?.publication?.edition?.date ?? n?.publication?.edition?.date,
836
+ publisher: t?.publication?.edition?.publisher ?? n?.publication?.edition?.publisher,
837
+ imprint: t?.publication?.edition?.imprint ?? n?.publication?.edition?.imprint
838
+ });
801
839
  return D({
802
840
  title: t?.title ?? n?.title,
803
841
  description: t?.description ?? n?.description,
804
- publisher: t?.publisher ?? n?.publisher,
805
- imprint: n?.imprint,
842
+ publication: o.date !== void 0 || o.publisher !== void 0 || o.imprint !== void 0 ? { edition: o } : void 0,
806
843
  rights: t?.rights,
807
844
  languages: t?.languages ?? n?.languages,
808
845
  subjects: t?.subjects ?? n?.subjects,
809
846
  contributors: t?.contributors ?? n?.contributors,
810
- published: t?.published ?? n?.published,
811
847
  readingDirection: n?.readingDirection ?? t?.readingDirection,
812
848
  renditionLayout: t?.renditionLayout ?? r?.renditionLayout ?? i?.renditionLayout,
813
849
  renditionFlow: t?.renditionFlow,
@@ -822,7 +858,7 @@ var tt = { renditionLayout: "renditionLayout" }, nt = (e) => D({
822
858
  apple: r?.apple,
823
859
  kobo: i?.kobo
824
860
  });
825
- }, xt = (e) => {
861
+ }, Tt = (e) => {
826
862
  let t = [...e.records].sort((e, t) => g(e.uri, t.uri)), n = (e, t, r, i, a) => {
827
863
  let o = e.find((e) => e.title === t), [s, ...c] = r;
828
864
  return o ? s ? [...e.filter((e) => e !== o), {
@@ -851,71 +887,71 @@ var tt = { renditionLayout: "renditionLayout" }, nt = (e) => D({
851
887
  let a = encodeURI(t.uri).replace(/#/g, "%23").replace(/\?/g, "%3F").replace(/\/$/, ""), o = t.uri.replace(/\/$/, "");
852
888
  return n(e, r, i, a, o);
853
889
  }, []);
854
- }, St = (e) => e ? e.children.map((e) => e instanceof s ? e.text : e instanceof o ? St(e) : "").join("").trim() : "", Ct = (e) => H(e.properties).includes("nav"), wt = (e, { basePath: t }) => {
890
+ }, Et = (e) => e ? e.children.map((e) => e instanceof s ? e.text : e instanceof o ? Et(e) : "").join("").trim() : "", Dt = (e) => U(e.properties).includes("nav"), Ot = (e, { basePath: t }) => {
855
891
  let n = {
856
892
  contents: [],
857
893
  path: "",
858
894
  containerHref: "",
859
895
  title: ""
860
896
  }, r = e.childNamed("span") || e.childNamed("a");
861
- n.title = (r?.attr.title || r?.val.trim() || St(r)) ?? "";
897
+ n.title = (r?.attr.title || r?.val.trim() || Et(r)) ?? "";
862
898
  let i = r?.name;
863
899
  i !== "a" && (r = e.descendantWithPath(`${i}.a`), r && (i = r.name.toLowerCase())), i === "a" && r?.attr.href && (n.path = _(t, r.attr.href), n.containerHref = n.path);
864
900
  let a = e.childNamed("ol");
865
901
  if (a) {
866
902
  let e = a.childrenNamed("li");
867
- e && e.length > 0 && (n.contents = e.map((e) => wt(e, { basePath: t })));
903
+ e && e.length > 0 && (n.contents = e.map((e) => Ot(e, { basePath: t })));
868
904
  }
869
905
  return n;
870
- }, Tt = (e, { basePath: t }) => {
906
+ }, kt = (e, { basePath: t }) => {
871
907
  let n = [], r;
872
908
  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 o && e.name === "li").forEach((e) => {
873
- n.push(wt(e, { basePath: t }));
909
+ n.push(Ot(e, { basePath: t }));
874
910
  }), n;
875
- }, Et = async (e, t) => {
876
- let n = e.manifestItems.find(Ct);
911
+ }, At = async (e, t) => {
912
+ let n = e.manifestItems.find(Dt);
877
913
  if (n?.href) {
878
914
  let e = t.records.find((e) => e.uri.endsWith(n.href));
879
- if (e && !e.dir) return Tt(new a(await x(e)), { basePath: d(e.uri) });
915
+ if (e && !e.dir) return kt(new a(await x(e)), { basePath: d(e.uri) });
880
916
  }
881
- }, Dt = (e, { basePath: t, prefix: n }) => {
917
+ }, jt = (e, { basePath: t, prefix: n }) => {
882
918
  let r = _(t, e?.childNamed(`${n}content`)?.attr.src || ""), i = {
883
919
  title: e?.descendantWithPath(`${n}navLabel.${n}text`)?.val || "",
884
920
  path: r,
885
921
  containerHref: r,
886
922
  contents: []
887
923
  }, a = e.childrenNamed(`${n}navPoint`);
888
- return a && a.length > 0 && (i.contents = a.map((e) => Dt(e, {
924
+ return a && a.length > 0 && (i.contents = a.map((e) => jt(e, {
889
925
  basePath: t,
890
926
  prefix: n
891
927
  }))), i;
892
- }, Ot = (e, { basePath: t }) => {
928
+ }, Mt = (e, { basePath: t }) => {
893
929
  let n = [], r = e.name, i = "";
894
930
  return r.indexOf(":") !== -1 && (i = `${r.split(":")[0]}:`), e.childNamed(`${i}navMap`)?.childrenNamed(`${i}navPoint`).forEach((e) => {
895
- n.push(Dt(e, {
931
+ n.push(jt(e, {
896
932
  basePath: t,
897
933
  prefix: i
898
934
  }));
899
935
  }), n;
900
- }, kt = async ({ opf: e, opfBasePath: t, archive: n }) => {
936
+ }, Nt = async ({ opf: e, opfBasePath: t, archive: n }) => {
901
937
  let r = e.spineTocIdref;
902
938
  if (r) {
903
939
  let i = e.manifestItems.find((e) => e.id === r);
904
940
  if (i) {
905
941
  let e = `${t}${t === "" ? "" : "/"}${i.href}`, r = n.records.find((t) => t.uri.endsWith(e));
906
- if (r && !r.dir) return Ot(new a(await x(r)), { basePath: d(r.uri) });
942
+ if (r && !r.dir) return Mt(new a(await x(r)), { basePath: d(r.uri) });
907
943
  }
908
944
  }
909
- }, At = async (e, { opf: t } = {}) => {
945
+ }, Pt = async (e, { opf: t } = {}) => {
910
946
  let n = t ?? await Z(e);
911
- if (n) return await Et(n.opf, e) || await kt({
947
+ if (n) return await At(n.opf, e) || await Nt({
912
948
  opf: n.opf,
913
949
  opfBasePath: n.basePath,
914
950
  archive: e
915
951
  }) || [];
916
- let r = xt(e);
952
+ let r = Tt(e);
917
953
  return r.length === 0 ? void 0 : r;
918
- }, jt = [
954
+ }, Ft = [
919
955
  "metadata",
920
956
  "readingOrder",
921
957
  "toc"
@@ -931,14 +967,14 @@ var tt = { renditionLayout: "renditionLayout" }, nt = (e) => D({
931
967
  failed: !0
932
968
  };
933
969
  }
934
- }, Mt = (e) => {
970
+ }, It = (e) => {
935
971
  let t = (e) => e?.startsWith("audio/") === !0 || e?.startsWith("video/") === !0, n = e.filter((e) => e.renditionLayout === "pre-paginated" && !t(e.mediaType)).length;
936
972
  return n > 0 ? n : void 0;
937
- }, Nt = ({ archive: e, opf: t, comicInfo: n, apple: r, kobo: i }) => {
973
+ }, Lt = ({ archive: e, opf: t, comicInfo: n, apple: r, kobo: i }) => {
938
974
  let a = [];
939
975
  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;
940
- }, Pt = 1, Ft = async (e, t = {}) => {
941
- 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 $(() => Z(e), "opf") : void 0, l = c?.value, u = r || i || s, d = u ? await $(() => M(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({
976
+ }, Rt = 2, zt = async (e, t = {}) => {
977
+ let n = new Set(t.include ?? Ft), 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 $(() => Z(e), "opf") : void 0, l = c?.value, u = r || i || s, d = u ? await $(() => N(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 ? wt({
942
978
  opf: l?.opf,
943
979
  comicInfo: f,
944
980
  apple: m,
@@ -954,16 +990,16 @@ var tt = { renditionLayout: "renditionLayout" }, nt = (e) => D({
954
990
  let t = v ?? await Q(e, { opf: l }), n = await $e(e, {
955
991
  opf: l,
956
992
  readingOrder: t
957
- }), r = _.numberOfPages ?? Mt(t);
993
+ }), r = _.numberOfPages ?? It(t);
958
994
  _ = D({
959
995
  ..._,
960
996
  cover: n,
961
997
  numberOfPages: r
962
998
  });
963
999
  }
964
- let y = o ? (await $(() => At(e, { opf: l }), "toc")).value : void 0, b = {
965
- version: Pt,
966
- unreadableSources: Nt({
1000
+ let y = o ? (await $(() => Pt(e, { opf: l }), "toc")).value : void 0, b = {
1001
+ version: Rt,
1002
+ unreadableSources: Lt({
967
1003
  archive: e,
968
1004
  opf: c,
969
1005
  comicInfo: d,
@@ -979,6 +1015,6 @@ var tt = { renditionLayout: "renditionLayout" }, nt = (e) => D({
979
1015
  })), b;
980
1016
  };
981
1017
  //#endregion
982
- export { v as APPLE_IBOOKS_DISPLAY_OPTIONS_FILENAME, j as COMIC_INFO_FILENAME, ae as COMIC_INFO_KNOWN_FIELDS, fe as COMIC_INFO_MANGA_VALUES, Ve as KOBO_DISPLAY_OPTIONS_FILENAME, O as appleMetadataHomes, i as arrayBufferFileAccessors, r as blobFileAccessors, ge as comicInfoMetadataHomes, e as createArchive, ee as createArchiveFromArrayBufferList, n as createArchiveFromEntries, te as createArchiveFromText, ne as createArchiveFromUrls, w as getArchiveFileRecordByUri, de as getArchiveHasComicInfo, ie as getArchiveImageRecords, V as getArchiveOpfInfo, at as getSpineItemFilesFromArchive, st as isArchiveEpub, pe as isComicInfoManga, C as isDirectoryRecord, S as isFileRecord, A as isImageRecord, tt as koboMetadataHomes, N as normalizeGtin, P as normalizeIsbn, lt as opfMetadataHomes, b as parseAppleDisplayOptionsXml, le as parseComicInfo, Ue as parseKoboXml, X as parseOpf, ct as parseW3cDtfDate, E as readArchiveApple, M as readArchiveComicInfo, et as readArchiveKobo, Z 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, H as tokenizeXmlSpaceSeparatedList };
1018
+ export { v as APPLE_IBOOKS_DISPLAY_OPTIONS_FILENAME, j as COMIC_INFO_FILENAME, ae as COMIC_INFO_KNOWN_FIELDS, de as COMIC_INFO_MANGA_VALUES, Ve as KOBO_DISPLAY_OPTIONS_FILENAME, O as appleMetadataHomes, i as arrayBufferFileAccessors, r as blobFileAccessors, he as comicInfoMetadataHomes, e as createArchive, ee as createArchiveFromArrayBufferList, n as createArchiveFromEntries, te as createArchiveFromText, ne as createArchiveFromUrls, w as getArchiveFileRecordByUri, M as getArchiveHasComicInfo, ie as getArchiveImageRecords, H as getArchiveOpfInfo, at as getSpineItemFilesFromArchive, st as isArchiveEpub, fe as isComicInfoManga, C as isDirectoryRecord, S as isFileRecord, A as isImageRecord, tt as koboMetadataHomes, P as normalizeGtin, F as normalizeIsbn, lt as opfMetadataHomes, b as parseAppleDisplayOptionsXml, le as parseComicInfo, Ue as parseKoboXml, Be as parseOpf, ct as parseW3cDtfDate, E as readArchiveApple, N as readArchiveComicInfo, et as readArchiveKobo, Z as readArchiveOpf, x as readRecordAsText, it as readingOrderDocumentsAllHaveViewport, zt as resolveArchive, $e as resolveArchiveCover, Ct as resolveArchiveMetadata, Q as resolveArchiveReadingOrder, Pt as resolveArchiveToc, wt as resolveMetadata, U as tokenizeXmlSpaceSeparatedList };
983
1019
 
984
1020
  //# sourceMappingURL=index.js.map