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