@prose-reader/streamer 1.307.0 → 1.308.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/archives/createArchiveFromJszip/index.cjs.js +1 -1
- package/dist/archives/createArchiveFromJszip/index.cjs.js.map +1 -1
- package/dist/archives/createArchiveFromJszip/index.es.js +13 -20
- package/dist/archives/createArchiveFromJszip/index.es.js.map +1 -1
- package/dist/archives/createArchiveFromLibArchive/index.cjs.js +1 -1
- package/dist/archives/createArchiveFromLibArchive/index.cjs.js.map +1 -1
- package/dist/archives/createArchiveFromLibArchive/index.es.js +17 -20
- package/dist/archives/createArchiveFromLibArchive/index.es.js.map +1 -1
- package/dist/archives/createArchiveFromNodeUnrarJs/index.cjs.js +2 -0
- package/dist/archives/createArchiveFromNodeUnrarJs/index.cjs.js.map +1 -0
- package/dist/archives/createArchiveFromNodeUnrarJs/index.es.js +39 -0
- package/dist/archives/createArchiveFromNodeUnrarJs/index.es.js.map +1 -0
- package/dist/archives/createArchiveFromNodeUnrarJs.d.ts +7 -0
- package/dist/archives/createArchiveFromUnzipper/index.cjs.js +1 -1
- package/dist/archives/createArchiveFromUnzipper/index.cjs.js.map +1 -1
- package/dist/archives/createArchiveFromUnzipper/index.es.js +15 -22
- package/dist/archives/createArchiveFromUnzipper/index.es.js.map +1 -1
- package/dist/createArchive-BB7-JJjh.js +35 -0
- package/dist/createArchive-BB7-JJjh.js.map +1 -0
- package/dist/createArchive-CeuyJUIj.cjs +3 -0
- package/dist/createArchive-CeuyJUIj.cjs.map +1 -0
- package/dist/index/index.cjs.js +3 -3
- package/dist/index/index.cjs.js.map +1 -1
- package/dist/index/index.es.js +64 -64
- package/package.json +14 -4
- package/dist/printTree-CJzGASVu.js +0 -20
- package/dist/printTree-CJzGASVu.js.map +0 -1
- package/dist/printTree-DTFYKvW1.cjs +0 -3
- package/dist/printTree-DTFYKvW1.cjs.map +0 -1
- package/dist/report-Cs9DVdJl.cjs +0 -2
- package/dist/report-Cs9DVdJl.cjs.map +0 -1
- package/dist/report-uURLD5cl.js +0 -15
- package/dist/report-uURLD5cl.js.map +0 -1
package/dist/index/index.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as e, t } from "../
|
|
1
|
+
import { n as e, t } from "../createArchive-BB7-JJjh.js";
|
|
2
2
|
import { i as n, n as r, r as i, t as a } from "../uri-DBZYnB1I.js";
|
|
3
3
|
import { n as o, t as s } from "../fileAccessors-etcCPnpQ.js";
|
|
4
4
|
import { detectMimeTypeFromName as c, escapeXmlAttributeValue as l, isMediaContentMimeType as u, isXmlBasedMimeType as d, parseContentType as f, urlJoin as p } from "@prose-reader/shared";
|
|
@@ -6,9 +6,9 @@ import { APPLE_IBOOKS_DISPLAY_OPTIONS_FILENAME as m, COMIC_INFO_FILENAME as h, K
|
|
|
6
6
|
import { XmlDocument as v, XmlElement as ae, XmlTextNode as oe } from "xmldoc";
|
|
7
7
|
import { BehaviorSubject as se, EMPTY as y, NEVER as b, Subject as x, catchError as S, distinctUntilChanged as ce, filter as C, finalize as le, first as w, from as T, ignoreElements as ue, lastValueFrom as de, map as E, merge as D, mergeMap as O, of as fe, pairwise as pe, shareReplay as me, startWith as he, switchMap as k, takeUntil as ge, tap as A, timer as _e } from "rxjs";
|
|
8
8
|
//#region src/archives/createArchiveFromArrayBufferList.ts
|
|
9
|
-
var ve = async (
|
|
10
|
-
let l =
|
|
11
|
-
return i && (l = l.slice().sort((e, t) => n(e.name, t.name))),
|
|
9
|
+
var ve = async (e, { orderByAlpha: i, name: a, encodingFormat: o } = {}) => {
|
|
10
|
+
let l = e;
|
|
11
|
+
return i && (l = l.slice().sort((e, t) => n(e.name, t.name))), t({
|
|
12
12
|
filename: a,
|
|
13
13
|
encodingFormat: o,
|
|
14
14
|
records: l.map((e) => {
|
|
@@ -28,7 +28,7 @@ var ve = async (t, { orderByAlpha: i, name: a, encodingFormat: o } = {}) => {
|
|
|
28
28
|
}),
|
|
29
29
|
close: () => Promise.resolve()
|
|
30
30
|
});
|
|
31
|
-
}, ye = async (
|
|
31
|
+
}, ye = async (e, { mimeType: n, direction: i } = { mimeType: "text/plain" }) => {
|
|
32
32
|
let a = `
|
|
33
33
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
34
34
|
<package xmlns="http://www.idpf.org/2007/opf" version="3.0" xml:lang="ja" prefix="rendition: http://www.idpf.org/vocab/rendition/#"
|
|
@@ -45,7 +45,7 @@ var ve = async (t, { orderByAlpha: i, name: a, encodingFormat: o } = {}) => {
|
|
|
45
45
|
</spine>
|
|
46
46
|
</package>
|
|
47
47
|
`;
|
|
48
|
-
return
|
|
48
|
+
return t({
|
|
49
49
|
filename: "content.txt",
|
|
50
50
|
encodingFormat: n,
|
|
51
51
|
records: [{
|
|
@@ -58,9 +58,9 @@ var ve = async (t, { orderByAlpha: i, name: a, encodingFormat: o } = {}) => {
|
|
|
58
58
|
dir: !1,
|
|
59
59
|
basename: r("p01.txt"),
|
|
60
60
|
uri: "p01.txt",
|
|
61
|
-
size: typeof
|
|
61
|
+
size: typeof e == "string" ? new Blob([e]).size : e.size,
|
|
62
62
|
encodingFormat: n,
|
|
63
|
-
...o(async () => typeof
|
|
63
|
+
...o(async () => typeof e == "string" ? new Blob([e]) : e)
|
|
64
64
|
}],
|
|
65
65
|
close: () => Promise.resolve()
|
|
66
66
|
});
|
|
@@ -77,8 +77,8 @@ var ve = async (t, { orderByAlpha: i, name: a, encodingFormat: o } = {}) => {
|
|
|
77
77
|
}, F = () => {
|
|
78
78
|
let e = /* @__PURE__ */ new Set();
|
|
79
79
|
return (t) => P(t, e);
|
|
80
|
-
}, Te = async (
|
|
81
|
-
let i = F(), a =
|
|
80
|
+
}, Te = async (e, n) => {
|
|
81
|
+
let i = F(), a = e.map((e) => ({
|
|
82
82
|
id: i(e),
|
|
83
83
|
url: e
|
|
84
84
|
})), s = `
|
|
@@ -97,7 +97,7 @@ var ve = async (t, { orderByAlpha: i, name: a, encodingFormat: o } = {}) => {
|
|
|
97
97
|
${a.map(({ id: e }) => `<itemref idref="${e}" />`).join("\n")}
|
|
98
98
|
</spine>
|
|
99
99
|
</package>
|
|
100
|
-
`, u =
|
|
100
|
+
`, u = e.map((e) => ({
|
|
101
101
|
dir: !1,
|
|
102
102
|
basename: r(e),
|
|
103
103
|
encodingFormat: c(e),
|
|
@@ -105,7 +105,7 @@ var ve = async (t, { orderByAlpha: i, name: a, encodingFormat: o } = {}) => {
|
|
|
105
105
|
size: 0,
|
|
106
106
|
...o(async () => (await fetch(e)).blob())
|
|
107
107
|
}));
|
|
108
|
-
return
|
|
108
|
+
return t({
|
|
109
109
|
records: [{
|
|
110
110
|
dir: !1,
|
|
111
111
|
basename: "content.opf",
|
|
@@ -118,8 +118,8 @@ var ve = async (t, { orderByAlpha: i, name: a, encodingFormat: o } = {}) => {
|
|
|
118
118
|
}, I = (e) => !e.dir, Ee = (e) => e.dir, L = (e, t) => {
|
|
119
119
|
let n = e.recordsByUri.get(t);
|
|
120
120
|
return n && I(n) ? n : void 0;
|
|
121
|
-
}, De = h.toLowerCase(), R = (e) => e.records.find((e) => I(e) && e.basename.toLowerCase() === De), z = async (e) => new TextDecoder().decode(await e.arrayBuffer()), Oe = ({ enableReport:
|
|
122
|
-
|
|
121
|
+
}, De = h.toLowerCase(), R = (e) => e.records.find((e) => I(e) && e.basename.toLowerCase() === De), z = async (e) => new TextDecoder().decode(await e.arrayBuffer()), Oe = ({ enableReport: t } = {}) => {
|
|
122
|
+
e.enable(!!t);
|
|
123
123
|
}, B = (e) => {
|
|
124
124
|
let t = e.records.filter((e) => !e.dir).find((e) => e.uri.endsWith(".opf"));
|
|
125
125
|
return {
|
|
@@ -226,12 +226,12 @@ var ke = m.toLowerCase(), Ae = ({ archive: e }) => async (t) => {
|
|
|
226
226
|
}, Le = (e) => {
|
|
227
227
|
let t = e?.trim();
|
|
228
228
|
if (t === "cover" || t === "title-page" || t === "copyright-page" || t === "text") return t;
|
|
229
|
-
}, Re = ({ archive:
|
|
229
|
+
}, Re = ({ archive: t, baseUrl: n, archiveOpf: r }) => async (i) => {
|
|
230
230
|
if (!r) return i;
|
|
231
231
|
let { opf: a, basePath: o } = r, s = _(a);
|
|
232
|
-
|
|
233
|
-
let c = a.renditionLayoutMeta?.trim(), l = c === "reflowable" || c === "pre-paginated" ? c : s.renditionLayout, u = a.title?.trim() ||
|
|
234
|
-
archive:
|
|
232
|
+
e.groupCollapsed(...e.getGroupArgs("OPF parsed")), e.log("opf", a), e.groupEnd();
|
|
233
|
+
let c = a.renditionLayoutMeta?.trim(), l = c === "reflowable" || c === "pre-paginated" ? c : s.renditionLayout, u = a.title?.trim() || t.records.find(({ dir: e }) => e)?.basename || "", d = s.readingDirection ?? i.readingDirection, f = (await H({
|
|
234
|
+
archive: t,
|
|
235
235
|
archiveOpf: r
|
|
236
236
|
})).filter(I).reduce((e, t) => t.size + e, 0), p = a.guide, m = [];
|
|
237
237
|
for (let e of p) {
|
|
@@ -243,27 +243,27 @@ var ke = m.toLowerCase(), Ae = ({ archive: e }) => async (t) => {
|
|
|
243
243
|
});
|
|
244
244
|
}
|
|
245
245
|
return {
|
|
246
|
-
filename:
|
|
246
|
+
filename: t.filename ?? "",
|
|
247
247
|
renditionLayout: l,
|
|
248
248
|
renditionFlow: Fe(a.renditionFlowMeta),
|
|
249
249
|
renditionSpread: Ie(a.renditionSpreadMeta),
|
|
250
250
|
title: u,
|
|
251
251
|
readingDirection: d,
|
|
252
|
-
spineItems: a.spineRows.map((
|
|
253
|
-
let i = L(
|
|
252
|
+
spineItems: a.spineRows.map((e, r) => {
|
|
253
|
+
let i = L(t, o ? `${o}/${e.href}` : e.href), s = i ? i.size : 0, c = n || (/^https?:\/\//.test(e.href) ? "" : "file://");
|
|
254
254
|
return {
|
|
255
|
-
id:
|
|
255
|
+
id: e.id,
|
|
256
256
|
index: r,
|
|
257
|
-
href:
|
|
258
|
-
renditionLayout:
|
|
259
|
-
...
|
|
257
|
+
href: e.href.startsWith("https://") ? e.href : o ? `${c}${o}/${e.href}` : `${c}${e.href}`,
|
|
258
|
+
renditionLayout: e.renditionLayout ?? l,
|
|
259
|
+
...e.renditionFlow === void 0 ? {} : { renditionFlow: e.renditionFlow },
|
|
260
260
|
progressionWeight: f > 0 ? s / f : 1 / a.spineRows.length,
|
|
261
|
-
pageSpreadLeft:
|
|
262
|
-
pageSpreadRight:
|
|
263
|
-
mediaType:
|
|
261
|
+
pageSpreadLeft: e.pageSpreadLeft,
|
|
262
|
+
pageSpreadRight: e.pageSpreadRight,
|
|
263
|
+
mediaType: e.mediaType
|
|
264
264
|
};
|
|
265
265
|
}),
|
|
266
|
-
items: U(a.manifestItems,
|
|
266
|
+
items: U(a.manifestItems, t, (e) => /^https?:\/\//.test(e) ? "" : n || "file://"),
|
|
267
267
|
guide: m.length > 0 ? m : void 0
|
|
268
268
|
};
|
|
269
269
|
}, ze = (e) => {
|
|
@@ -451,43 +451,43 @@ var ke = m.toLowerCase(), Ae = ({ archive: e }) => async (t) => {
|
|
|
451
451
|
...r,
|
|
452
452
|
nav: { toc: i }
|
|
453
453
|
} : r;
|
|
454
|
-
}, it = (e) => e ? e.endsWith("/") ? e : `${e}/` : "", J = async (
|
|
455
|
-
|
|
456
|
-
let i = await V(
|
|
457
|
-
archive:
|
|
454
|
+
}, it = (e) => e ? e.endsWith("/") ? e : `${e}/` : "", J = async (t, { baseUrl: n = "", hooks: r = {} } = {}) => {
|
|
455
|
+
e.log("Generating manifest from archive", t);
|
|
456
|
+
let i = await V(t), a = it(n), o = (e) => (e ?? []).map((e) => e({
|
|
457
|
+
archive: t,
|
|
458
458
|
baseUrl: a
|
|
459
459
|
})), s = [
|
|
460
460
|
Re({
|
|
461
|
-
archive:
|
|
461
|
+
archive: t,
|
|
462
462
|
baseUrl: a,
|
|
463
463
|
archiveOpf: i
|
|
464
464
|
}),
|
|
465
465
|
Me({
|
|
466
|
-
archive:
|
|
466
|
+
archive: t,
|
|
467
467
|
baseUrl: a
|
|
468
468
|
}),
|
|
469
469
|
Ae({
|
|
470
|
-
archive:
|
|
470
|
+
archive: t,
|
|
471
471
|
baseUrl: a
|
|
472
472
|
}),
|
|
473
473
|
Ke({
|
|
474
|
-
archive:
|
|
474
|
+
archive: t,
|
|
475
475
|
baseUrl: a
|
|
476
476
|
}),
|
|
477
477
|
...o(r.content)
|
|
478
478
|
], c = o(r.spine), l = [
|
|
479
479
|
Ve({
|
|
480
|
-
archive:
|
|
480
|
+
archive: t,
|
|
481
481
|
baseUrl: a,
|
|
482
482
|
archiveOpf: i
|
|
483
483
|
}),
|
|
484
484
|
We({
|
|
485
|
-
archive:
|
|
485
|
+
archive: t,
|
|
486
486
|
baseUrl: a
|
|
487
487
|
}),
|
|
488
488
|
...o(r.presentation)
|
|
489
489
|
], u = [rt({
|
|
490
|
-
archive:
|
|
490
|
+
archive: t,
|
|
491
491
|
baseUrl: a,
|
|
492
492
|
archiveOpf: i
|
|
493
493
|
}), ...o(r.navigation)], d = [
|
|
@@ -499,16 +499,16 @@ var ke = m.toLowerCase(), Ae = ({ archive: e }) => async (t) => {
|
|
|
499
499
|
];
|
|
500
500
|
try {
|
|
501
501
|
let n = Pe({
|
|
502
|
-
archive:
|
|
502
|
+
archive: t,
|
|
503
503
|
baseUrl: a
|
|
504
504
|
})(), r = await d.reduce(async (e, t) => await t(await e), n);
|
|
505
|
-
if (
|
|
506
|
-
let
|
|
507
|
-
|
|
505
|
+
if (e.log("Generated manifest", r), process.env.NODE_ENV === "development" && e.isEnabled()) {
|
|
506
|
+
let t = JSON.stringify(r, null, 2);
|
|
507
|
+
e.groupCollapsed(...e.getGroupArgs("Generated manifest")), e.log(`\n${t}`), e.groupEnd();
|
|
508
508
|
}
|
|
509
509
|
return r;
|
|
510
|
-
} catch (
|
|
511
|
-
throw
|
|
510
|
+
} catch (t) {
|
|
511
|
+
throw e.error(t), t;
|
|
512
512
|
}
|
|
513
513
|
}, at = (e) => {
|
|
514
514
|
let t = e.descendantWithPath("head")?.childrenNamed("meta").find((e) => e.attr.name === "calibre:cover");
|
|
@@ -576,40 +576,40 @@ var ke = m.toLowerCase(), Ae = ({ archive: e }) => async (t) => {
|
|
|
576
576
|
};
|
|
577
577
|
}
|
|
578
578
|
return n;
|
|
579
|
-
}, X = async (
|
|
579
|
+
}, X = async (t, n, { hooks: r = [] } = {}) => {
|
|
580
580
|
let i = { params: {} }, a = [
|
|
581
|
-
...r.map((
|
|
582
|
-
archive:
|
|
581
|
+
...r.map((e) => e({
|
|
582
|
+
archive: t,
|
|
583
583
|
resourcePath: n
|
|
584
584
|
})),
|
|
585
585
|
ft({
|
|
586
|
-
archive:
|
|
586
|
+
archive: t,
|
|
587
587
|
resourcePath: n
|
|
588
588
|
}),
|
|
589
589
|
pt({
|
|
590
|
-
archive:
|
|
590
|
+
archive: t,
|
|
591
591
|
resourcePath: n
|
|
592
592
|
}),
|
|
593
593
|
lt({
|
|
594
|
-
archive:
|
|
594
|
+
archive: t,
|
|
595
595
|
resourcePath: n
|
|
596
596
|
}),
|
|
597
597
|
ct({
|
|
598
|
-
archive:
|
|
598
|
+
archive: t,
|
|
599
599
|
resourcePath: n
|
|
600
600
|
})
|
|
601
601
|
];
|
|
602
602
|
try {
|
|
603
603
|
let r = await a.reduce(async (e, t) => await t(await e), Promise.resolve(i));
|
|
604
|
-
if (
|
|
605
|
-
let o = L(
|
|
604
|
+
if (e.log("Generated resource", n, r), r.body !== void 0) return r;
|
|
605
|
+
let o = L(t, n);
|
|
606
606
|
if (!o) throw Error(`no file found for resourcePath:${n}`);
|
|
607
607
|
return {
|
|
608
608
|
...r,
|
|
609
609
|
body: await o.blob()
|
|
610
610
|
};
|
|
611
|
-
} catch (
|
|
612
|
-
throw
|
|
611
|
+
} catch (t) {
|
|
612
|
+
throw e.error(t), t;
|
|
613
613
|
}
|
|
614
614
|
}, mt = class {
|
|
615
615
|
constructor(e) {
|
|
@@ -636,19 +636,19 @@ var ke = m.toLowerCase(), Ae = ({ archive: e }) => async (t) => {
|
|
|
636
636
|
get overTTL$() {
|
|
637
637
|
return this.isUnlocked$.pipe(k((e) => e ? this.cleanArchiveAfter === Infinity ? b : _e(this.cleanArchiveAfter) : b));
|
|
638
638
|
}
|
|
639
|
-
}, ht = ({ getArchive:
|
|
639
|
+
}, ht = ({ getArchive: t, cleanArchiveAfter: n = 300 * 1e3 }) => {
|
|
640
640
|
let r = new x(), i = new x(), a = new x(), o = {};
|
|
641
641
|
return r.pipe(O((n) => {
|
|
642
642
|
let r = o[n];
|
|
643
643
|
if (!r || r.state.status !== "idle") return y;
|
|
644
|
-
let i = !1, s = (
|
|
645
|
-
|
|
646
|
-
let n = o[
|
|
647
|
-
delete o[
|
|
644
|
+
let i = !1, s = (t) => {
|
|
645
|
+
e.debug(`Cleaning up archive with key: ${t}`);
|
|
646
|
+
let n = o[t];
|
|
647
|
+
delete o[t], i ||= (n?.state.archive?.close(), !0);
|
|
648
648
|
};
|
|
649
649
|
r.update({ status: "loading" });
|
|
650
650
|
let c = r.locks$, l = r.isUnlocked$, u = c.pipe(pe(), C(([e, t]) => t > e), he(!0));
|
|
651
|
-
return T(
|
|
651
|
+
return T(t(n)).pipe(A((e) => {
|
|
652
652
|
r.update({
|
|
653
653
|
archive: e,
|
|
654
654
|
status: "success"
|
|
@@ -822,6 +822,6 @@ var ke = m.toLowerCase(), Ae = ({ archive: e }) => async (t) => {
|
|
|
822
822
|
}
|
|
823
823
|
};
|
|
824
824
|
//#endregion
|
|
825
|
-
export { Ct as ServiceWorkerStreamer, $ as Streamer, s as arrayBufferFileAccessors, o as blobFileAccessors, Oe as configure,
|
|
825
|
+
export { Ct as ServiceWorkerStreamer, $ as Streamer, s as arrayBufferFileAccessors, o as blobFileAccessors, Oe as configure, t as createArchive, ve as createArchiveFromArrayBufferList, ye as createArchiveFromText, Te as createArchiveFromUrls, P as createUniqueXmlSafeId, N as createXmlSafeId, F as createXmlSafeIdFactory, J as generateManifestFromArchive, X as generateResourceFromArchive, L as getArchiveFileRecordByUri, R as getArchiveHasComicInfo, B as getArchiveOpfInfo, a as getUriBasePath, r as getUriBasename, Ee as isDirectoryRecord, I as isFileRecord, z as readRecordAsText, i as removeTrailingSlash, n as sortByTitleComparator };
|
|
826
826
|
|
|
827
827
|
//# sourceMappingURL=index.es.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prose-reader/streamer",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.308.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index/index.cjs.js",
|
|
6
6
|
"module": "./dist/index/index.es.js",
|
|
@@ -24,6 +24,11 @@
|
|
|
24
24
|
"types": "./dist/archives/createArchiveFromUnzipper.d.ts",
|
|
25
25
|
"import": "./dist/archives/createArchiveFromUnzipper/index.es.js",
|
|
26
26
|
"require": "./dist/archives/createArchiveFromUnzipper/index.cjs.js"
|
|
27
|
+
},
|
|
28
|
+
"./archives/createArchiveFromNodeUnrarJs": {
|
|
29
|
+
"types": "./dist/archives/createArchiveFromNodeUnrarJs.d.ts",
|
|
30
|
+
"import": "./dist/archives/createArchiveFromNodeUnrarJs/index.es.js",
|
|
31
|
+
"require": "./dist/archives/createArchiveFromNodeUnrarJs/index.cjs.js"
|
|
27
32
|
}
|
|
28
33
|
},
|
|
29
34
|
"types": "./dist/index.d.ts",
|
|
@@ -39,14 +44,15 @@
|
|
|
39
44
|
"test:watch": "vitest watch"
|
|
40
45
|
},
|
|
41
46
|
"dependencies": {
|
|
42
|
-
"@prose-reader/archive-parser": "^1.
|
|
43
|
-
"@prose-reader/shared": "^1.
|
|
47
|
+
"@prose-reader/archive-parser": "^1.308.0",
|
|
48
|
+
"@prose-reader/shared": "^1.308.0",
|
|
44
49
|
"xmldoc": "^2.0.0"
|
|
45
50
|
},
|
|
46
51
|
"peerDependencies": {
|
|
47
52
|
"buffer": "^6.0.3",
|
|
48
53
|
"jszip": "^3.10.0",
|
|
49
54
|
"libarchive.js": "^2.0.2",
|
|
55
|
+
"node-unrar-js": "^2.0.2",
|
|
50
56
|
"rxjs": "*",
|
|
51
57
|
"unzipper": "^0.12.3"
|
|
52
58
|
},
|
|
@@ -59,15 +65,19 @@
|
|
|
59
65
|
},
|
|
60
66
|
"libarchive.js": {
|
|
61
67
|
"optional": true
|
|
68
|
+
},
|
|
69
|
+
"node-unrar-js": {
|
|
70
|
+
"optional": true
|
|
62
71
|
}
|
|
63
72
|
},
|
|
64
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "cac46ce4cf4cbfb4e2163cedcacb5b2c37374150",
|
|
65
74
|
"devDependencies": {
|
|
66
75
|
"@types/unzipper": "^0.10.11",
|
|
67
76
|
"buffer": "^6.0.3",
|
|
68
77
|
"isomorphic-fetch": "^3.0.0",
|
|
69
78
|
"jszip": "^3.10.0",
|
|
70
79
|
"libarchive.js": "^2.0.2",
|
|
80
|
+
"node-unrar-js": "^2.0.2",
|
|
71
81
|
"unzipper": "^0.12.3"
|
|
72
82
|
}
|
|
73
83
|
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
//#region src/archives/printTree.ts
|
|
2
|
-
var e = (e) => {
|
|
3
|
-
let t = {};
|
|
4
|
-
for (let n of e) {
|
|
5
|
-
let e = n.split("/"), r = t;
|
|
6
|
-
for (let t = 0; t < e.length; t++) {
|
|
7
|
-
let n = e[t];
|
|
8
|
-
n !== void 0 && (r[n] || (r[n] = {}), r = r[n]);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
let n = (e, t = "") => Object.keys(e).sort().map((r, i, a) => {
|
|
12
|
-
let o = i === a.length - 1, s = t + (o ? "└── " : "├── "), c = t + (o ? " " : "│ "), l = e[r];
|
|
13
|
-
return l && Object.keys(l).length > 0 ? `${s}${r}/\n${n(l, c)}` : `${s}${r}`;
|
|
14
|
-
}).join("\n");
|
|
15
|
-
return n(t);
|
|
16
|
-
};
|
|
17
|
-
//#endregion
|
|
18
|
-
export { e as t };
|
|
19
|
-
|
|
20
|
-
//# sourceMappingURL=printTree-CJzGASVu.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"printTree-CJzGASVu.js","names":[],"sources":["../src/archives/printTree.ts"],"sourcesContent":["interface TreeNode {\n [key: string]: TreeNode\n}\n\nexport const printTree = (paths: string[]): string => {\n // Split and collect all parts for tree reconstruction\n const tree: TreeNode = {}\n for (const path of paths) {\n const parts = path.split(\"/\")\n let node = tree\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i]\n if (part === undefined) continue\n if (!node[part]) {\n node[part] = {}\n }\n node = node[part]\n }\n }\n\n // Recursively build the tree string\n const render = (node: TreeNode, indent = \"\"): string => {\n return Object.keys(node)\n .sort()\n .map((key, i, arr) => {\n const isLast = i === arr.length - 1\n const prefix = indent + (isLast ? \"└── \" : \"├── \")\n const nextIndent = indent + (isLast ? \" \" : \"│ \")\n const value = node[key]\n if (value && Object.keys(value).length > 0) {\n return `${prefix}${key}/\\n${render(value, nextIndent)}`\n }\n return `${prefix}${key}`\n })\n .join(\"\\n\")\n }\n\n return render(tree)\n}\n"],"mappings":";AAIA,IAAa,KAAa,MAA4B;CAEpD,IAAM,IAAiB,CAAC;CACxB,KAAK,IAAM,KAAQ,GAAO;EACxB,IAAM,IAAQ,EAAK,MAAM,GAAG,GACxB,IAAO;EACX,KAAK,IAAI,IAAI,GAAG,IAAI,EAAM,QAAQ,KAAK;GACrC,IAAM,IAAO,EAAM;GACf,MAAS,KAAA,MACR,EAAK,OACR,EAAK,KAAQ,CAAC,IAEhB,IAAO,EAAK;EACd;CACF;CAGA,IAAM,KAAU,GAAgB,IAAS,OAChC,OAAO,KAAK,CAAI,EACpB,KAAK,EACL,KAAK,GAAK,GAAG,MAAQ;EACpB,IAAM,IAAS,MAAM,EAAI,SAAS,GAC5B,IAAS,KAAU,IAAS,SAAS,SACrC,IAAa,KAAU,IAAS,SAAS,SACzC,IAAQ,EAAK;EAInB,OAHI,KAAS,OAAO,KAAK,CAAK,EAAE,SAAS,IAChC,GAAG,IAAS,EAAI,KAAK,EAAO,GAAO,CAAU,MAE/C,GAAG,IAAS;CACrB,CAAC,EACA,KAAK,IAAI;CAGd,OAAO,EAAO,CAAI;AACpB"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var e=e=>{let t={};for(let n of e){let e=n.split(`/`),r=t;for(let t=0;t<e.length;t++){let n=e[t];n!==void 0&&(r[n]||(r[n]={}),r=r[n])}}let n=(e,t=``)=>Object.keys(e).sort().map((r,i,a)=>{let o=i===a.length-1,s=t+(o?`└── `:`├── `),c=t+(o?` `:`│ `),l=e[r];return l&&Object.keys(l).length>0?`${s}${r}/\n${n(l,c)}`:`${s}${r}`}).join(`
|
|
2
|
-
`);return n(t)};Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return e}});
|
|
3
|
-
//# sourceMappingURL=printTree-DTFYKvW1.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"printTree-DTFYKvW1.cjs","names":[],"sources":["../src/archives/printTree.ts"],"sourcesContent":["interface TreeNode {\n [key: string]: TreeNode\n}\n\nexport const printTree = (paths: string[]): string => {\n // Split and collect all parts for tree reconstruction\n const tree: TreeNode = {}\n for (const path of paths) {\n const parts = path.split(\"/\")\n let node = tree\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i]\n if (part === undefined) continue\n if (!node[part]) {\n node[part] = {}\n }\n node = node[part]\n }\n }\n\n // Recursively build the tree string\n const render = (node: TreeNode, indent = \"\"): string => {\n return Object.keys(node)\n .sort()\n .map((key, i, arr) => {\n const isLast = i === arr.length - 1\n const prefix = indent + (isLast ? \"└── \" : \"├── \")\n const nextIndent = indent + (isLast ? \" \" : \"│ \")\n const value = node[key]\n if (value && Object.keys(value).length > 0) {\n return `${prefix}${key}/\\n${render(value, nextIndent)}`\n }\n return `${prefix}${key}`\n })\n .join(\"\\n\")\n }\n\n return render(tree)\n}\n"],"mappings":"AAIA,IAAa,EAAa,GAA4B,CAEpD,IAAM,EAAiB,CAAC,EACxB,IAAK,IAAM,KAAQ,EAAO,CACxB,IAAM,EAAQ,EAAK,MAAM,GAAG,EACxB,EAAO,EACX,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACrC,IAAM,EAAO,EAAM,GACf,IAAS,IAAA,KACR,EAAK,KACR,EAAK,GAAQ,CAAC,GAEhB,EAAO,EAAK,GACd,CACF,CAGA,IAAM,GAAU,EAAgB,EAAS,KAChC,OAAO,KAAK,CAAI,EACpB,KAAK,EACL,KAAK,EAAK,EAAG,IAAQ,CACpB,IAAM,EAAS,IAAM,EAAI,OAAS,EAC5B,EAAS,GAAU,EAAS,OAAS,QACrC,EAAa,GAAU,EAAS,OAAS,QACzC,EAAQ,EAAK,GAInB,OAHI,GAAS,OAAO,KAAK,CAAK,EAAE,OAAS,EAChC,GAAG,IAAS,EAAI,KAAK,EAAO,EAAO,CAAU,IAE/C,GAAG,IAAS,GACrB,CAAC,EACA,KAAK;CAAI,EAGd,OAAO,EAAO,CAAI,CACpB"}
|
package/dist/report-Cs9DVdJl.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
let e=require("@prose-reader/shared");var t=({records:e,...t})=>{let n=new Map;for(let t of e)n.has(t.uri)||n.set(t.uri,t);return{...t,records:e,recordsByUri:n}},n=e.Report.namespace(`@prose-reader/streamer`,!1,{color:`#ffae42`});Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return n}});
|
|
2
|
-
//# sourceMappingURL=report-Cs9DVdJl.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"report-Cs9DVdJl.cjs","names":[],"sources":["../src/archives/createArchive.ts","../package.json","../src/report.ts"],"sourcesContent":["import type { Archive, ArchiveRecord } from \"./types\"\n\ntype ArchiveInit = Omit<Archive, \"recordsByUri\">\n\n/**\n * Builds an {@link Archive} from its records and derives the `recordsByUri`\n * lookup index once, so consumers resolve records in O(1) on the hot path\n * instead of scanning {@link Archive.records}. Duplicate URIs keep the first\n * record, matching the previous `Array.prototype.find` semantics.\n */\nexport const createArchive = ({ records, ...rest }: ArchiveInit): Archive => {\n const recordsByUri = new Map<string, ArchiveRecord>()\n\n for (const record of records) {\n if (!recordsByUri.has(record.uri)) {\n recordsByUri.set(record.uri, record)\n }\n }\n\n return {\n ...rest,\n records,\n recordsByUri,\n }\n}\n","{\n \"name\": \"@prose-reader/streamer\",\n \"version\": \"1.306.0\",\n \"type\": \"module\",\n \"main\": \"./dist/index/index.cjs.js\",\n \"module\": \"./dist/index/index.es.js\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index/index.es.js\",\n \"require\": \"./dist/index/index.cjs.js\"\n },\n \"./archives/createArchiveFromJszip\": {\n \"types\": \"./dist/archives/createArchiveFromJszip.d.ts\",\n \"import\": \"./dist/archives/createArchiveFromJszip/index.es.js\",\n \"require\": \"./dist/archives/createArchiveFromJszip/index.cjs.js\"\n },\n \"./archives/createArchiveFromLibArchive\": {\n \"types\": \"./dist/archives/createArchiveFromLibArchive.d.ts\",\n \"import\": \"./dist/archives/createArchiveFromLibArchive/index.es.js\",\n \"require\": \"./dist/archives/createArchiveFromLibArchive/index.cjs.js\"\n },\n \"./archives/createArchiveFromUnzipper\": {\n \"types\": \"./dist/archives/createArchiveFromUnzipper.d.ts\",\n \"import\": \"./dist/archives/createArchiveFromUnzipper/index.es.js\",\n \"require\": \"./dist/archives/createArchiveFromUnzipper/index.cjs.js\"\n }\n },\n \"types\": \"./dist/index.d.ts\",\n \"license\": \"MIT\",\n \"files\": [\n \"/dist\"\n ],\n \"scripts\": {\n \"start\": \"vite build --watch --mode development\",\n \"build\": \"tsc && vite build\",\n \"test\": \"vitest run --coverage\",\n \"tsc\": \"tsc\",\n \"test:watch\": \"vitest watch\"\n },\n \"dependencies\": {\n \"@prose-reader/archive-parser\": \"^1.306.0\",\n \"@prose-reader/shared\": \"^1.306.0\",\n \"xmldoc\": \"^2.0.0\"\n },\n \"peerDependencies\": {\n \"buffer\": \"^6.0.3\",\n \"jszip\": \"^3.10.0\",\n \"libarchive.js\": \"^2.0.2\",\n \"rxjs\": \"*\",\n \"unzipper\": \"^0.12.3\"\n },\n \"peerDependenciesMeta\": {\n \"jszip\": {\n \"optional\": true\n },\n \"unzipper\": {\n \"optional\": true\n },\n \"libarchive.js\": {\n \"optional\": true\n }\n },\n \"gitHead\": \"4601e14dcacf50b2295cb343582a7ef2c7e1eedc\",\n \"devDependencies\": {\n \"@types/unzipper\": \"^0.10.11\",\n \"buffer\": \"^6.0.3\",\n \"isomorphic-fetch\": \"^3.0.0\",\n \"jszip\": \"^3.10.0\",\n \"libarchive.js\": \"^2.0.2\",\n \"unzipper\": \"^0.12.3\"\n }\n}\n","import { Report as SharedReport } from \"@prose-reader/shared\"\nimport { name } from \"../package.json\"\n\nexport const Report = SharedReport.namespace(name, false, {\n color: \"#ffae42\",\n})\n"],"mappings":"sCAUA,IAAa,GAAiB,CAAE,UAAS,GAAG,KAAiC,CAC3E,IAAM,EAAe,IAAI,IAEzB,IAAK,IAAM,KAAU,EACd,EAAa,IAAI,EAAO,GAAG,GAC9B,EAAa,IAAI,EAAO,IAAK,CAAM,EAIvC,MAAO,CACL,GAAG,EACH,UACA,cACF,CACF,EErBa,EAAS,EAAA,OAAa,UAAU,yBAAM,GAAO,CACxD,MAAO,SACT,CAAC"}
|
package/dist/report-uURLD5cl.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Report as e } from "@prose-reader/shared";
|
|
2
|
-
//#region src/archives/createArchive.ts
|
|
3
|
-
var t = ({ records: e, ...t }) => {
|
|
4
|
-
let n = /* @__PURE__ */ new Map();
|
|
5
|
-
for (let t of e) n.has(t.uri) || n.set(t.uri, t);
|
|
6
|
-
return {
|
|
7
|
-
...t,
|
|
8
|
-
records: e,
|
|
9
|
-
recordsByUri: n
|
|
10
|
-
};
|
|
11
|
-
}, n = e.namespace("@prose-reader/streamer", !1, { color: "#ffae42" });
|
|
12
|
-
//#endregion
|
|
13
|
-
export { t as n, n as t };
|
|
14
|
-
|
|
15
|
-
//# sourceMappingURL=report-uURLD5cl.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"report-uURLD5cl.js","names":[],"sources":["../src/archives/createArchive.ts","../package.json","../src/report.ts"],"sourcesContent":["import type { Archive, ArchiveRecord } from \"./types\"\n\ntype ArchiveInit = Omit<Archive, \"recordsByUri\">\n\n/**\n * Builds an {@link Archive} from its records and derives the `recordsByUri`\n * lookup index once, so consumers resolve records in O(1) on the hot path\n * instead of scanning {@link Archive.records}. Duplicate URIs keep the first\n * record, matching the previous `Array.prototype.find` semantics.\n */\nexport const createArchive = ({ records, ...rest }: ArchiveInit): Archive => {\n const recordsByUri = new Map<string, ArchiveRecord>()\n\n for (const record of records) {\n if (!recordsByUri.has(record.uri)) {\n recordsByUri.set(record.uri, record)\n }\n }\n\n return {\n ...rest,\n records,\n recordsByUri,\n }\n}\n","{\n \"name\": \"@prose-reader/streamer\",\n \"version\": \"1.306.0\",\n \"type\": \"module\",\n \"main\": \"./dist/index/index.cjs.js\",\n \"module\": \"./dist/index/index.es.js\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index/index.es.js\",\n \"require\": \"./dist/index/index.cjs.js\"\n },\n \"./archives/createArchiveFromJszip\": {\n \"types\": \"./dist/archives/createArchiveFromJszip.d.ts\",\n \"import\": \"./dist/archives/createArchiveFromJszip/index.es.js\",\n \"require\": \"./dist/archives/createArchiveFromJszip/index.cjs.js\"\n },\n \"./archives/createArchiveFromLibArchive\": {\n \"types\": \"./dist/archives/createArchiveFromLibArchive.d.ts\",\n \"import\": \"./dist/archives/createArchiveFromLibArchive/index.es.js\",\n \"require\": \"./dist/archives/createArchiveFromLibArchive/index.cjs.js\"\n },\n \"./archives/createArchiveFromUnzipper\": {\n \"types\": \"./dist/archives/createArchiveFromUnzipper.d.ts\",\n \"import\": \"./dist/archives/createArchiveFromUnzipper/index.es.js\",\n \"require\": \"./dist/archives/createArchiveFromUnzipper/index.cjs.js\"\n }\n },\n \"types\": \"./dist/index.d.ts\",\n \"license\": \"MIT\",\n \"files\": [\n \"/dist\"\n ],\n \"scripts\": {\n \"start\": \"vite build --watch --mode development\",\n \"build\": \"tsc && vite build\",\n \"test\": \"vitest run --coverage\",\n \"tsc\": \"tsc\",\n \"test:watch\": \"vitest watch\"\n },\n \"dependencies\": {\n \"@prose-reader/archive-parser\": \"^1.306.0\",\n \"@prose-reader/shared\": \"^1.306.0\",\n \"xmldoc\": \"^2.0.0\"\n },\n \"peerDependencies\": {\n \"buffer\": \"^6.0.3\",\n \"jszip\": \"^3.10.0\",\n \"libarchive.js\": \"^2.0.2\",\n \"rxjs\": \"*\",\n \"unzipper\": \"^0.12.3\"\n },\n \"peerDependenciesMeta\": {\n \"jszip\": {\n \"optional\": true\n },\n \"unzipper\": {\n \"optional\": true\n },\n \"libarchive.js\": {\n \"optional\": true\n }\n },\n \"gitHead\": \"4601e14dcacf50b2295cb343582a7ef2c7e1eedc\",\n \"devDependencies\": {\n \"@types/unzipper\": \"^0.10.11\",\n \"buffer\": \"^6.0.3\",\n \"isomorphic-fetch\": \"^3.0.0\",\n \"jszip\": \"^3.10.0\",\n \"libarchive.js\": \"^2.0.2\",\n \"unzipper\": \"^0.12.3\"\n }\n}\n","import { Report as SharedReport } from \"@prose-reader/shared\"\nimport { name } from \"../package.json\"\n\nexport const Report = SharedReport.namespace(name, false, {\n color: \"#ffae42\",\n})\n"],"mappings":";;AAUA,IAAa,KAAiB,EAAE,YAAS,GAAG,QAAiC;CAC3E,IAAM,oBAAe,IAAI,IAA2B;CAEpD,KAAK,IAAM,KAAU,GACnB,AAAK,EAAa,IAAI,EAAO,GAAG,KAC9B,EAAa,IAAI,EAAO,KAAK,CAAM;CAIvC,OAAO;EACL,GAAG;EACH;EACA;CACF;AACF,GErBa,IAAS,EAAa,UAAU,0BAAM,IAAO,EACxD,OAAO,UACT,CAAC"}
|