@the_library/public 1.0.0 → 2.0.1
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/README.md +201 -28
- package/assets/branding/pond-enterprise-logo.svg +1 -1
- package/dist/Book-CYyj_y_4.d.ts +621 -0
- package/dist/bookSearchService-YQskauJS.d.ts +300 -0
- package/dist/branding/index.js +1 -66
- package/dist/branding/index.js.map +1 -1
- package/dist/chunk-3XUKOVEF.js +2 -0
- package/dist/chunk-3XUKOVEF.js.map +1 -0
- package/dist/chunk-46FQHZNM.js +2 -0
- package/dist/chunk-46FQHZNM.js.map +1 -0
- package/dist/chunk-7G3BMGV2.js +2 -0
- package/dist/chunk-7G3BMGV2.js.map +1 -0
- package/dist/chunk-D4DXGA2W.js +2 -0
- package/dist/chunk-D4DXGA2W.js.map +1 -0
- package/dist/chunk-EMA2QJTW.js +2 -0
- package/dist/chunk-EMA2QJTW.js.map +1 -0
- package/dist/chunk-FN52YV7L.js +2 -0
- package/dist/chunk-FN52YV7L.js.map +1 -0
- package/dist/chunk-GWQNULP4.js +2 -0
- package/dist/chunk-GWQNULP4.js.map +1 -0
- package/dist/chunk-OELHBR4F.js +2 -0
- package/dist/chunk-OELHBR4F.js.map +1 -0
- package/dist/chunk-PV3X54EU.js +2 -0
- package/dist/chunk-PV3X54EU.js.map +1 -0
- package/dist/chunk-SD3INWZF.js +2 -0
- package/dist/chunk-SD3INWZF.js.map +1 -0
- package/dist/downloader/dl2-sw.js +1 -198
- package/dist/downloader/dl2-sw.js.map +1 -1
- package/dist/downloader/file-worker-v2.js +1 -257
- package/dist/downloader/file-worker-v2.js.map +1 -1
- package/dist/downloader/index.d.ts +30 -2
- package/dist/downloader/index.js +1 -537
- package/dist/downloader/index.js.map +1 -1
- package/dist/downloader/mu-worker-v2.js +1 -196
- package/dist/downloader/mu-worker-v2.js.map +1 -1
- package/dist/downloader/react.d.ts +1 -1
- package/dist/downloader/react.js +1 -31
- package/dist/downloader/react.js.map +1 -1
- package/dist/downloader/solid.d.ts +1 -1
- package/dist/downloader/solid.js +1 -18
- package/dist/downloader/solid.js.map +1 -1
- package/dist/downloader/sw.js +1 -118
- package/dist/downloader/sw.js.map +1 -1
- package/dist/downloader/vue.d.ts +1 -1
- package/dist/downloader/vue.js +1 -18
- package/dist/downloader/vue.js.map +1 -1
- package/dist/enriched-index-T0sDG7JR.d.ts +209 -0
- package/dist/global/public.global.js +68 -0
- package/dist/global/public.manifest.json +484 -0
- package/dist/level-state-DXqglpAX.d.ts +27 -0
- package/dist/models/astro.d.ts +4 -3
- package/dist/models/astro.js +1 -43
- package/dist/models/astro.js.map +1 -1
- package/dist/models/index.d.ts +449 -23
- package/dist/models/index.js +1 -339
- package/dist/models/index.js.map +1 -1
- package/dist/models/models.d.ts +195 -441
- package/dist/models/models.js +1 -45
- package/dist/models/patch-worker.js +1 -542
- package/dist/models/patch-worker.js.map +1 -1
- package/dist/models/react.d.ts +6 -5
- package/dist/models/react.js +1 -72
- package/dist/models/react.js.map +1 -1
- package/dist/models/solid.d.ts +16 -6
- package/dist/models/solid.js +1 -94
- package/dist/models/solid.js.map +1 -1
- package/dist/models/vue.d.ts +89 -7
- package/dist/models/vue.js +1 -97
- package/dist/models/vue.js.map +1 -1
- package/dist/orm-MJTHCG9E.d.ts +1003 -0
- package/dist/{session-vqOnyxga.d.ts → session-JudUKAV7.d.ts} +76 -74
- package/dist/{state-BTsp-E4v.d.ts → state-CkYavOSt.d.ts} +16 -0
- package/dist/{types-Dn0EFMO_.d.ts → types-B-IX3HBn.d.ts} +94 -21
- package/dist/{types-Xb8Ta9tZ.d.ts → types-Blyx2A7F.d.ts} +10 -36
- package/dist/web3/auth.d.ts +89 -0
- package/dist/web3/auth.js +13 -0
- package/dist/web3/auth.js.map +1 -0
- package/dist/web3/index.d.ts +1913 -126
- package/dist/web3/index.js +1 -1019
- package/dist/web3/index.js.map +1 -1
- package/dist/web3/network.d.ts +6 -0
- package/dist/web3/network.js +2 -0
- package/dist/web3/network.js.map +1 -0
- package/dist/web3/registry.d.ts +34 -9
- package/dist/web3/registry.js +1 -22
- package/dist/web3/vue.d.ts +31 -14
- package/dist/web3/vue.js +1 -390
- package/dist/web3/vue.js.map +1 -1
- package/package.json +36 -15
- package/dist/chunk-2HFOWE5R.js +0 -296
- package/dist/chunk-2HFOWE5R.js.map +0 -1
- package/dist/chunk-3L6LH2XK.js +0 -465
- package/dist/chunk-3L6LH2XK.js.map +0 -1
- package/dist/chunk-4CWVFPBN.js +0 -28
- package/dist/chunk-4CWVFPBN.js.map +0 -1
- package/dist/chunk-AGHPATVL.js +0 -65
- package/dist/chunk-AGHPATVL.js.map +0 -1
- package/dist/chunk-JDUYLUDJ.js +0 -4835
- package/dist/chunk-JDUYLUDJ.js.map +0 -1
- package/dist/chunk-OEZK7IX7.js +0 -77
- package/dist/chunk-OEZK7IX7.js.map +0 -1
- package/dist/chunk-PUYDAUCI.js +0 -2873
- package/dist/chunk-PUYDAUCI.js.map +0 -1
- package/dist/chunk-WHWMTS7D.js +0 -99
- package/dist/chunk-WHWMTS7D.js.map +0 -1
- package/dist/chunk-Y7RS6RTM.js +0 -342
- package/dist/chunk-Y7RS6RTM.js.map +0 -1
- package/dist/chunk-ZEZGI2TP.js +0 -197
- package/dist/chunk-ZEZGI2TP.js.map +0 -1
- package/dist/core-dao-core-logo-VDT2I5IW.svg +0 -33
- package/dist/level-state-J3pj64Tr.d.ts +0 -15
- package/dist/models/models_v2.global.js +0 -1
- package/dist/orm-BvkX0aBT.d.ts +0 -507
package/dist/downloader/index.js
CHANGED
|
@@ -1,538 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
_clearFileState,
|
|
3
|
-
_clearRender,
|
|
4
|
-
_hydrateFiles,
|
|
5
|
-
_hydrateRenders,
|
|
6
|
-
_setBookData,
|
|
7
|
-
_setFileState,
|
|
8
|
-
_setPruning,
|
|
9
|
-
_setRenderPage,
|
|
10
|
-
downloadState
|
|
11
|
-
} from "../chunk-WHWMTS7D.js";
|
|
12
|
-
import {
|
|
13
|
-
getAllBookData,
|
|
14
|
-
getAllDownloadRecords,
|
|
15
|
-
getBookData,
|
|
16
|
-
getDownloadRecord,
|
|
17
|
-
openMetaDb,
|
|
18
|
-
putDownloadRecord
|
|
19
|
-
} from "../chunk-AGHPATVL.js";
|
|
20
|
-
|
|
21
|
-
// src/downloader/keys.ts
|
|
22
|
-
var CACHE_VERSION = 1;
|
|
23
|
-
var CACHES = {
|
|
24
|
-
pdf: `dl2-pdf-v${CACHE_VERSION}`,
|
|
25
|
-
preview: `dl2-preview-v${CACHE_VERSION}`,
|
|
26
|
-
pages: `dl2-pages-v${CACHE_VERSION}`
|
|
27
|
-
};
|
|
28
|
-
var DL2_SW_VERSION = "__DL2_SW_VERSION__";
|
|
29
|
-
var arKey = (txId) => `/ar/${txId}`;
|
|
30
|
-
var pdfKey = arKey;
|
|
31
|
-
var previewKey = arKey;
|
|
32
|
-
var pageKey = (txId, n) => `/pages/${encodeURIComponent(txId)}/${n}`;
|
|
33
|
-
|
|
34
|
-
// src/downloader/cache-store.ts
|
|
35
|
-
var openPdfCache = () => caches.open(CACHES.pdf);
|
|
36
|
-
var openPreviewCache = () => caches.open(CACHES.preview);
|
|
37
|
-
var openPagesCache = () => caches.open(CACHES.pages);
|
|
38
|
-
var matchPdf = async (txId) => {
|
|
39
|
-
const c = await openPdfCache();
|
|
40
|
-
return c.match(pdfKey(txId));
|
|
41
|
-
};
|
|
42
|
-
var matchPreview = async (txId) => {
|
|
43
|
-
const c = await openPreviewCache();
|
|
44
|
-
return c.match(previewKey(txId));
|
|
45
|
-
};
|
|
46
|
-
var matchPage = async (txId, n) => {
|
|
47
|
-
const c = await openPagesCache();
|
|
48
|
-
return c.match(pageKey(txId, n));
|
|
49
|
-
};
|
|
50
|
-
var deletePdf = async (txId) => {
|
|
51
|
-
const c = await openPdfCache();
|
|
52
|
-
return c.delete(pdfKey(txId));
|
|
53
|
-
};
|
|
54
|
-
var pdfKeys = async () => {
|
|
55
|
-
const c = await openPdfCache();
|
|
56
|
-
const reqs = await c.keys();
|
|
57
|
-
return reqs.map((r) => txIdFromArKey(r.url)).filter(Boolean);
|
|
58
|
-
};
|
|
59
|
-
var previewKeys = async () => {
|
|
60
|
-
const c = await openPreviewCache();
|
|
61
|
-
const reqs = await c.keys();
|
|
62
|
-
return reqs.map((r) => txIdFromArKey(r.url)).filter(Boolean);
|
|
63
|
-
};
|
|
64
|
-
var pageKeys = async () => {
|
|
65
|
-
const c = await openPagesCache();
|
|
66
|
-
const reqs = await c.keys();
|
|
67
|
-
return reqs.map((r) => txIdFromPageKey(r.url)).filter(Boolean);
|
|
68
|
-
};
|
|
69
|
-
function txIdFromArKey(url) {
|
|
70
|
-
const m = url.match(/\/ar\/([^/?#]+)/);
|
|
71
|
-
return m ? m[1] : null;
|
|
72
|
-
}
|
|
73
|
-
function txIdFromPageKey(url) {
|
|
74
|
-
const m = url.match(/\/pages\/([^/?#/]+)\//);
|
|
75
|
-
return m ? decodeURIComponent(m[1]) : null;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// src/downloader/queue.ts
|
|
79
|
-
var ConcurrentProcessor = class {
|
|
80
|
-
constructor(maxConcurrent) {
|
|
81
|
-
this.active = 0;
|
|
82
|
-
this.queue = [];
|
|
83
|
-
// key → promise for every task currently in-flight or waiting to run.
|
|
84
|
-
this.waiters = /* @__PURE__ */ new Map();
|
|
85
|
-
this.max = maxConcurrent;
|
|
86
|
-
}
|
|
87
|
-
add(key, task) {
|
|
88
|
-
const existing = this.waiters.get(key);
|
|
89
|
-
if (existing) return existing;
|
|
90
|
-
const p = new Promise((resolve, reject) => {
|
|
91
|
-
const run = () => {
|
|
92
|
-
this.active++;
|
|
93
|
-
Promise.resolve().then(task).then(resolve, reject).finally(() => {
|
|
94
|
-
this.waiters.delete(key);
|
|
95
|
-
this.active--;
|
|
96
|
-
this._drain();
|
|
97
|
-
});
|
|
98
|
-
};
|
|
99
|
-
if (this.active < this.max) {
|
|
100
|
-
run();
|
|
101
|
-
} else {
|
|
102
|
-
this.queue.push({ key, run, reject });
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
this.waiters.set(key, p);
|
|
106
|
-
return p;
|
|
107
|
-
}
|
|
108
|
-
start() {
|
|
109
|
-
}
|
|
110
|
-
// Drops queued-but-not-started tasks and rejects their callers (so they never
|
|
111
|
-
// hang waiting on a task that will now never run), then resolves once every
|
|
112
|
-
// already-active task has settled.
|
|
113
|
-
stop() {
|
|
114
|
-
const pending = this.queue;
|
|
115
|
-
this.queue = [];
|
|
116
|
-
for (const { key, reject } of pending) {
|
|
117
|
-
this.waiters.delete(key);
|
|
118
|
-
reject(new Error("[queue] stopped before task started"));
|
|
119
|
-
}
|
|
120
|
-
const remaining = [...this.waiters.values()];
|
|
121
|
-
return Promise.allSettled(remaining).then(() => void 0);
|
|
122
|
-
}
|
|
123
|
-
_drain() {
|
|
124
|
-
if (this.queue.length > 0 && this.active < this.max) {
|
|
125
|
-
const next = this.queue.shift();
|
|
126
|
-
next.run();
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
// src/downloader/orchestrator.ts
|
|
132
|
-
var MAX_RENDER_RETRIES = 2;
|
|
133
|
-
var DEFAULT_PDF_CONCURRENCY = 3;
|
|
134
|
-
var _fileThread = null;
|
|
135
|
-
var _muThread = null;
|
|
136
|
-
var _muTimeout = 6e4;
|
|
137
|
-
var _pdfProcessor = null;
|
|
138
|
-
var pendingPdf = /* @__PURE__ */ new Map();
|
|
139
|
-
var pendingPage = /* @__PURE__ */ new Map();
|
|
140
|
-
function initOrchestrator(fileThread, muThread, opts = {}) {
|
|
141
|
-
_fileThread = fileThread;
|
|
142
|
-
_muThread = muThread;
|
|
143
|
-
_muTimeout = opts.muWorkerTimeout ?? 6e4;
|
|
144
|
-
_pdfProcessor = new ConcurrentProcessor(opts.pdfConcurrency ?? DEFAULT_PDF_CONCURRENCY);
|
|
145
|
-
muThread.listen(handleMuWorkerMessage);
|
|
146
|
-
}
|
|
147
|
-
function handleMuWorkerMessage(msg) {
|
|
148
|
-
if (msg.type === "MuPageDone") {
|
|
149
|
-
_setRenderPage(msg.txId, msg.page, "done");
|
|
150
|
-
} else if (msg.type === "MuPageError") {
|
|
151
|
-
_setRenderPage(msg.txId, msg.page, "error");
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
function EnsurePdf(txId) {
|
|
155
|
-
const cached = pendingPdf.get(txId);
|
|
156
|
-
if (cached) return cached;
|
|
157
|
-
const p = _ensurePdfInner(txId).finally(() => pendingPdf.delete(txId));
|
|
158
|
-
pendingPdf.set(txId, p);
|
|
159
|
-
return p;
|
|
160
|
-
}
|
|
161
|
-
async function _ensurePdfInner(txId) {
|
|
162
|
-
const hit = await matchPdf(txId);
|
|
163
|
-
if (hit) return;
|
|
164
|
-
_setFileState(txId, { phase: "queued" });
|
|
165
|
-
await _pdfProcessor.add(txId, async () => {
|
|
166
|
-
const result = await _fileThread.rpc({ type: "GetFile", txId, mime: "pdf" });
|
|
167
|
-
if (!result.ok) {
|
|
168
|
-
throw new Error(result.error ?? "[orchestrator] download failed");
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
function EnsurePageImage(txId, page) {
|
|
173
|
-
const key = pageKey(txId, page);
|
|
174
|
-
const cached = pendingPage.get(key);
|
|
175
|
-
if (cached) return cached;
|
|
176
|
-
const p = _ensurePageInner(txId, page, key).finally(() => pendingPage.delete(key));
|
|
177
|
-
pendingPage.set(key, p);
|
|
178
|
-
return p;
|
|
179
|
-
}
|
|
180
|
-
async function _ensurePageInner(txId, page, pKey) {
|
|
181
|
-
const hit = await matchPage(txId, page);
|
|
182
|
-
if (hit) return hit;
|
|
183
|
-
_setRenderPage(txId, page, "queued");
|
|
184
|
-
let retries = 0;
|
|
185
|
-
while (retries <= MAX_RENDER_RETRIES) {
|
|
186
|
-
await EnsurePdf(txId);
|
|
187
|
-
_setRenderPage(txId, page, "downloading");
|
|
188
|
-
const renderResult = await requestRender(txId, page);
|
|
189
|
-
if (renderResult === "done") {
|
|
190
|
-
const resp = await matchPage(txId, page);
|
|
191
|
-
if (resp) return resp;
|
|
192
|
-
throw new Error(`[orchestrator] page ${page} not in cache after render`);
|
|
193
|
-
}
|
|
194
|
-
retries++;
|
|
195
|
-
if (retries > MAX_RENDER_RETRIES) {
|
|
196
|
-
_setRenderPage(txId, page, "error");
|
|
197
|
-
throw new Error(`[orchestrator] render failed for page ${page} of ${txId}`);
|
|
198
|
-
}
|
|
199
|
-
await deletePdf(txId);
|
|
200
|
-
pendingPdf.delete(txId);
|
|
201
|
-
}
|
|
202
|
-
throw new Error(`[orchestrator] unreachable`);
|
|
203
|
-
}
|
|
204
|
-
function requestRender(txId, page) {
|
|
205
|
-
return new Promise((resolve) => {
|
|
206
|
-
const timer = setTimeout(() => {
|
|
207
|
-
cleanup();
|
|
208
|
-
resolve("error");
|
|
209
|
-
}, _muTimeout);
|
|
210
|
-
const cleanup = _addOneShotMuListener(txId, page, (result) => {
|
|
211
|
-
clearTimeout(timer);
|
|
212
|
-
resolve(result);
|
|
213
|
-
});
|
|
214
|
-
_muThread.send({ type: "ProcessPages", txId, from: page, to: page });
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
function _addOneShotMuListener(txId, page, cb) {
|
|
218
|
-
const thread = _muThread;
|
|
219
|
-
let done = false;
|
|
220
|
-
const cleanup = () => {
|
|
221
|
-
done = true;
|
|
222
|
-
thread.unlisten(handler);
|
|
223
|
-
};
|
|
224
|
-
const handler = (msg) => {
|
|
225
|
-
if (done) return;
|
|
226
|
-
if (msg.type === "MuPageDone" && msg.txId === txId && msg.page === page) {
|
|
227
|
-
cleanup();
|
|
228
|
-
cb("done");
|
|
229
|
-
} else if (msg.type === "MuPageError" && msg.txId === txId && msg.page === page) {
|
|
230
|
-
cleanup();
|
|
231
|
-
cb("error");
|
|
232
|
-
}
|
|
233
|
-
};
|
|
234
|
-
thread.listen(handler);
|
|
235
|
-
return cleanup;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
// src/downloader/client/worker-client.ts
|
|
239
|
-
var RPC_TIMEOUT_MS = 9e4;
|
|
240
|
-
var BaseThread = class {
|
|
241
|
-
constructor() {
|
|
242
|
-
this.handlers = [];
|
|
243
|
-
this.pending = /* @__PURE__ */ new Map();
|
|
244
|
-
}
|
|
245
|
-
listen(cb) {
|
|
246
|
-
this.handlers.push(cb);
|
|
247
|
-
}
|
|
248
|
-
unlisten(cb) {
|
|
249
|
-
this.handlers = this.handlers.filter((h) => h !== cb);
|
|
250
|
-
}
|
|
251
|
-
rpc(cmd) {
|
|
252
|
-
return rpcWithTimeout(this.pending, cmd, (c) => this.send(c));
|
|
253
|
-
}
|
|
254
|
-
_dispatch(msg) {
|
|
255
|
-
if (msg.type === "FileRpcResponse") {
|
|
256
|
-
const list = this.pending.get(msg.key);
|
|
257
|
-
if (list && list.length > 0) {
|
|
258
|
-
const resolver = list.shift();
|
|
259
|
-
if (list.length === 0) this.pending.delete(msg.key);
|
|
260
|
-
resolver({ ok: msg.ok, key: msg.key, error: msg.error });
|
|
261
|
-
}
|
|
262
|
-
return;
|
|
263
|
-
}
|
|
264
|
-
for (const h of this.handlers) h(msg);
|
|
265
|
-
}
|
|
266
|
-
};
|
|
267
|
-
var DedicatedThread = class extends BaseThread {
|
|
268
|
-
constructor(scriptUrl) {
|
|
269
|
-
super();
|
|
270
|
-
this.w = new Worker(scriptUrl, { type: "module" });
|
|
271
|
-
this.w.onmessage = (e) => this._dispatch(e.data);
|
|
272
|
-
this.w.onerror = (e) => console.error("[DedicatedThread] worker error", e);
|
|
273
|
-
}
|
|
274
|
-
send(cmd) {
|
|
275
|
-
this.w.postMessage(cmd);
|
|
276
|
-
}
|
|
277
|
-
};
|
|
278
|
-
function rpcRequestKey(cmd) {
|
|
279
|
-
return "mime" in cmd ? `${cmd.txId}:${cmd.mime}` : cmd.txId;
|
|
280
|
-
}
|
|
281
|
-
function rpcWithTimeout(pending, cmd, send) {
|
|
282
|
-
return new Promise((resolve, reject) => {
|
|
283
|
-
const key = rpcRequestKey(cmd);
|
|
284
|
-
const list = pending.get(key) ?? [];
|
|
285
|
-
const settle = (r) => {
|
|
286
|
-
clearTimeout(timer);
|
|
287
|
-
resolve(r);
|
|
288
|
-
};
|
|
289
|
-
const timer = setTimeout(() => {
|
|
290
|
-
const l = pending.get(key);
|
|
291
|
-
if (l) {
|
|
292
|
-
const i = l.indexOf(settle);
|
|
293
|
-
if (i >= 0) l.splice(i, 1);
|
|
294
|
-
if (l.length === 0) pending.delete(key);
|
|
295
|
-
}
|
|
296
|
-
reject(new Error(`[worker-client] rpc timeout after ${RPC_TIMEOUT_MS}ms for ${key}`));
|
|
297
|
-
}, RPC_TIMEOUT_MS);
|
|
298
|
-
list.push(settle);
|
|
299
|
-
pending.set(key, list);
|
|
300
|
-
send(cmd);
|
|
301
|
-
});
|
|
302
|
-
}
|
|
303
|
-
function createFileThread(scriptUrl = "/file-worker-v2.js") {
|
|
304
|
-
return new DedicatedThread(scriptUrl);
|
|
305
|
-
}
|
|
306
|
-
function createMuThread(scriptUrl = "/mu-worker-v2.js") {
|
|
307
|
-
return new DedicatedThread(scriptUrl);
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
// src/downloader/client/progress.ts
|
|
311
|
-
function emitProgress(txId, loaded, total) {
|
|
312
|
-
if (typeof window === "undefined") return;
|
|
313
|
-
window.dispatchEvent(
|
|
314
|
-
new CustomEvent("ARWEAVE_DOWNLOAD_PROGRESS", {
|
|
315
|
-
detail: { txId, loaded, total },
|
|
316
|
-
bubbles: true
|
|
317
|
-
})
|
|
318
|
-
);
|
|
319
|
-
}
|
|
320
|
-
function emitDone(txId, mime) {
|
|
321
|
-
if (typeof window === "undefined") return;
|
|
322
|
-
window.dispatchEvent(
|
|
323
|
-
new CustomEvent("ARWEAVE_DOWNLOAD_DONE", {
|
|
324
|
-
detail: { txId, mime },
|
|
325
|
-
bubbles: true
|
|
326
|
-
})
|
|
327
|
-
);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
// src/downloader/client/files.ts
|
|
331
|
-
var DEFAULT_PREVIEW_CONCURRENCY = 6;
|
|
332
|
-
var _initPromise = null;
|
|
333
|
-
var _fileThread2 = null;
|
|
334
|
-
var _muThread2 = null;
|
|
335
|
-
var _previewProcessor = null;
|
|
336
|
-
function getFileThread() {
|
|
337
|
-
if (!_fileThread2) _fileThread2 = createFileThread();
|
|
338
|
-
return _fileThread2;
|
|
339
|
-
}
|
|
340
|
-
function getMuThread() {
|
|
341
|
-
if (!_muThread2) _muThread2 = createMuThread();
|
|
342
|
-
return _muThread2;
|
|
343
|
-
}
|
|
344
|
-
function preloadWorkersV2() {
|
|
345
|
-
getFileThread();
|
|
346
|
-
getMuThread();
|
|
347
|
-
}
|
|
348
|
-
var InitDownloaderV2 = (opts = {}) => {
|
|
349
|
-
if (_initPromise) return _initPromise;
|
|
350
|
-
_initPromise = _doInit(opts).catch((err) => {
|
|
351
|
-
_initPromise = null;
|
|
352
|
-
throw err;
|
|
353
|
-
});
|
|
354
|
-
return _initPromise;
|
|
355
|
-
};
|
|
356
|
-
async function _doInit(opts) {
|
|
357
|
-
const {
|
|
358
|
-
requestPersistence = true,
|
|
359
|
-
muWorkerTimeout,
|
|
360
|
-
mupdfUrl = "/js/mupdf.js"
|
|
361
|
-
} = opts;
|
|
362
|
-
if (requestPersistence && typeof navigator !== "undefined" && navigator.storage?.persist) {
|
|
363
|
-
navigator.storage.persist().catch(() => {
|
|
364
|
-
});
|
|
365
|
-
}
|
|
366
|
-
await openMetaDb();
|
|
367
|
-
const fileThread = getFileThread();
|
|
368
|
-
const muThread = getMuThread();
|
|
369
|
-
_previewProcessor = new ConcurrentProcessor(opts.concurrency?.preview ?? DEFAULT_PREVIEW_CONCURRENCY);
|
|
370
|
-
muThread.send({ type: "MuInit", mupdfUrl });
|
|
371
|
-
initOrchestrator(fileThread, muThread, {
|
|
372
|
-
muWorkerTimeout,
|
|
373
|
-
pdfConcurrency: opts.concurrency?.pdf
|
|
374
|
-
});
|
|
375
|
-
fileThread.listen((msg) => {
|
|
376
|
-
if (msg.type === "DownloadProgress") {
|
|
377
|
-
_setFileState(msg.txId, { phase: "downloading", loaded: msg.loaded, total: msg.total });
|
|
378
|
-
emitProgress(msg.txId, msg.loaded, msg.total);
|
|
379
|
-
} else if (msg.type === "DownloadFinished") {
|
|
380
|
-
_setFileState(msg.txId, { phase: "done" });
|
|
381
|
-
emitDone(msg.txId, msg.mime);
|
|
382
|
-
} else if (msg.type === "DownloadError") {
|
|
383
|
-
_setFileState(msg.txId, { phase: "error", error: msg.error });
|
|
384
|
-
} else if (msg.type === "StoragePruneStarted") {
|
|
385
|
-
_setPruning({ active: true });
|
|
386
|
-
} else if (msg.type === "StoragePruned") {
|
|
387
|
-
_setPruning({ active: false, freedBytes: msg.freedBytes, removedCount: msg.removed });
|
|
388
|
-
for (const txId of msg.prunedTxIds) {
|
|
389
|
-
_clearFileState(txId);
|
|
390
|
-
_clearRender(txId);
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
});
|
|
394
|
-
muThread.listen((msg) => {
|
|
395
|
-
if (msg.type === "MuPdfData") {
|
|
396
|
-
_setBookData(msg.txId, msg.bookData);
|
|
397
|
-
if (typeof window !== "undefined") {
|
|
398
|
-
window.dispatchEvent(new CustomEvent("WorkerEvent.MuPdfData", {
|
|
399
|
-
detail: { ...msg.bookData, fileId: msg.txId },
|
|
400
|
-
bubbles: true
|
|
401
|
-
}));
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
});
|
|
405
|
-
const [pdfTxIds, previewTxIds, pageTxIds, allBookData] = await Promise.all([
|
|
406
|
-
pdfKeys(),
|
|
407
|
-
previewKeys(),
|
|
408
|
-
pageKeys(),
|
|
409
|
-
getAllBookData()
|
|
410
|
-
]);
|
|
411
|
-
await _reconcileDownloads(pdfTxIds, previewTxIds);
|
|
412
|
-
const fileEntries = [
|
|
413
|
-
...pdfTxIds.map((id) => [id, { phase: "done" }]),
|
|
414
|
-
...previewTxIds.map((id) => [id, { phase: "done" }])
|
|
415
|
-
];
|
|
416
|
-
_hydrateFiles(fileEntries);
|
|
417
|
-
if (typeof window !== "undefined") {
|
|
418
|
-
pdfTxIds.forEach((id) => emitDone(id, "pdf"));
|
|
419
|
-
previewTxIds.forEach((id) => emitDone(id, "preview"));
|
|
420
|
-
}
|
|
421
|
-
for (const bd of allBookData) {
|
|
422
|
-
_setBookData(bd.txId, bd);
|
|
423
|
-
const pageEntries = bd.dimensions.map((_, i) => [i, "done"]);
|
|
424
|
-
_hydrateRenders([[bd.txId, pageEntries]]);
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
var GetPdf = async (txId) => {
|
|
428
|
-
await InitDownloaderV2();
|
|
429
|
-
const cached = await matchPdf(txId);
|
|
430
|
-
if (cached) {
|
|
431
|
-
_touchAccessTime(txId);
|
|
432
|
-
return cached;
|
|
433
|
-
}
|
|
434
|
-
await EnsurePdf(txId);
|
|
435
|
-
const resp = await matchPdf(txId);
|
|
436
|
-
if (!resp) throw new Error(`[downloader_v2] PDF not in cache after download: ${txId}`);
|
|
437
|
-
return resp;
|
|
438
|
-
};
|
|
439
|
-
var GetImage = async (txId) => {
|
|
440
|
-
await InitDownloaderV2();
|
|
441
|
-
const cached = await matchPreview(txId);
|
|
442
|
-
if (cached) {
|
|
443
|
-
_touchAccessTime(txId);
|
|
444
|
-
return cached;
|
|
445
|
-
}
|
|
446
|
-
const result = await _previewProcessor.add(txId, async () => {
|
|
447
|
-
return getFileThread().rpc({ type: "GetFile", txId, mime: "preview" });
|
|
448
|
-
});
|
|
449
|
-
if (!result.ok) throw new Error(`[downloader_v2] preview download failed for ${txId}: ${result.error}`);
|
|
450
|
-
const resp = await matchPreview(txId);
|
|
451
|
-
if (!resp) throw new Error(`[downloader_v2] preview not in cache after download: ${txId}`);
|
|
452
|
-
return resp;
|
|
453
|
-
};
|
|
454
|
-
var EnsurePageImage2 = async (txId, page) => {
|
|
455
|
-
await InitDownloaderV2();
|
|
456
|
-
return EnsurePageImage(txId, page);
|
|
457
|
-
};
|
|
458
|
-
var EnsurePdf2 = async (txId) => {
|
|
459
|
-
await InitDownloaderV2();
|
|
460
|
-
return EnsurePdf(txId);
|
|
461
|
-
};
|
|
462
|
-
var DownloadPdfToDisk = async (txId, filename) => {
|
|
463
|
-
await InitDownloaderV2();
|
|
464
|
-
await EnsurePdf(txId);
|
|
465
|
-
const pdfCache = await openPdfCache();
|
|
466
|
-
const response = await pdfCache.match(pdfKey(txId));
|
|
467
|
-
if (!response) throw new Error(`[downloader_v2] PDF not in cache after EnsurePdf`);
|
|
468
|
-
const blob = await response.blob();
|
|
469
|
-
const url = URL.createObjectURL(blob);
|
|
470
|
-
const a = document.createElement("a");
|
|
471
|
-
a.href = url;
|
|
472
|
-
a.download = filename.endsWith(".pdf") ? filename : `${filename}.pdf`;
|
|
473
|
-
document.body.appendChild(a);
|
|
474
|
-
a.click();
|
|
475
|
-
document.body.removeChild(a);
|
|
476
|
-
URL.revokeObjectURL(url);
|
|
477
|
-
};
|
|
478
|
-
var GetObjectUrl = async (resp) => {
|
|
479
|
-
const blob = await resp.blob();
|
|
480
|
-
return URL.createObjectURL(blob);
|
|
481
|
-
};
|
|
482
|
-
var revokeObjectUrl = (url) => {
|
|
483
|
-
URL.revokeObjectURL(url);
|
|
484
|
-
};
|
|
485
|
-
var storageEstimate = () => navigator.storage.estimate();
|
|
486
|
-
async function _reconcileDownloads(pdfTxIds, previewTxIds) {
|
|
487
|
-
const existing = new Set((await getAllDownloadRecords()).map((r) => r.txId));
|
|
488
|
-
const sizeOf = (resp) => {
|
|
489
|
-
const len = resp?.headers.get("content-length");
|
|
490
|
-
const n = len ? Number(len) : NaN;
|
|
491
|
-
return Number.isFinite(n) ? n : 0;
|
|
492
|
-
};
|
|
493
|
-
const reconcile = async (txId, fileType, resp) => {
|
|
494
|
-
if (existing.has(txId)) return;
|
|
495
|
-
await putDownloadRecord({
|
|
496
|
-
txId,
|
|
497
|
-
fileType,
|
|
498
|
-
sizeBytes: sizeOf(resp),
|
|
499
|
-
downloadedAt: 0,
|
|
500
|
-
lastAccessedAt: 0
|
|
501
|
-
});
|
|
502
|
-
};
|
|
503
|
-
await Promise.all([
|
|
504
|
-
...pdfTxIds.map(async (id) => reconcile(id, "pdf", await matchPdf(id))),
|
|
505
|
-
...previewTxIds.map(async (id) => reconcile(id, "preview", await matchPreview(id)))
|
|
506
|
-
]);
|
|
507
|
-
}
|
|
508
|
-
function _touchAccessTime(txId) {
|
|
509
|
-
const now = Date.now();
|
|
510
|
-
getDownloadRecord(txId).then((rec) => {
|
|
511
|
-
if (!rec) return;
|
|
512
|
-
if (now - rec.lastAccessedAt < 36e5) return;
|
|
513
|
-
putDownloadRecord({ ...rec, lastAccessedAt: now }).catch(() => {
|
|
514
|
-
});
|
|
515
|
-
}).catch(() => {
|
|
516
|
-
});
|
|
517
|
-
}
|
|
518
|
-
export {
|
|
519
|
-
CACHES,
|
|
520
|
-
CACHE_VERSION,
|
|
521
|
-
DL2_SW_VERSION,
|
|
522
|
-
DownloadPdfToDisk,
|
|
523
|
-
EnsurePageImage2 as EnsurePageImage,
|
|
524
|
-
EnsurePdf2 as EnsurePdf,
|
|
525
|
-
GetImage,
|
|
526
|
-
GetObjectUrl,
|
|
527
|
-
GetPdf,
|
|
528
|
-
InitDownloaderV2,
|
|
529
|
-
downloadState,
|
|
530
|
-
getBookData,
|
|
531
|
-
pageKey,
|
|
532
|
-
pdfKey,
|
|
533
|
-
preloadWorkersV2,
|
|
534
|
-
previewKey,
|
|
535
|
-
revokeObjectUrl,
|
|
536
|
-
storageEstimate
|
|
537
|
-
};
|
|
1
|
+
import{a as Re,b as p,c as l,d as I,e as Q,f as X,g as F,h as J,i as Z}from"../chunk-SD3INWZF.js";import{a as G,b as Ee,c as B,d as Y,e as A,f as z}from"../chunk-PV3X54EU.js";var xe=1,g={pdf:"dl2-pdf-v1",preview:"dl2-preview-v1",pages:"dl2-pages-v1"},ke="__DL2_SW_VERSION__",ee=e=>`/ar/${e}`,f=ee,U=ee,P=(e,r)=>`/pages/${encodeURIComponent(e)}/${r}`;var y=()=>caches.open(g.pdf),re=()=>caches.open(g.preview),te=()=>caches.open(g.pages),w=async e=>(await y()).match(f(e)),k=async e=>(await re()).match(U(e)),q=async(e,r)=>(await te()).match(P(e,r));var oe=async e=>(await y()).delete(f(e));var ne=async()=>(await(await y()).keys()).map(t=>ae(t.url)).filter(Boolean),se=async()=>(await(await re()).keys()).map(t=>ae(t.url)).filter(Boolean);var ie=async()=>(await(await te()).keys()).flatMap(t=>{let s=new URL(t.url).pathname.match(/^\/pages\/([^/]+)\/(\d+)$/);if(!s)return[];let i=Number(s[2]);if(!Number.isSafeInteger(i))return[];try{return[{txId:decodeURIComponent(s[1]),page:i}]}catch{return[]}});function ae(e){let r=e.match(/\/ar\/([^/?#]+)/);return r?r[1]:null}var m=class{constructor(r){this.active=0;this.queue=[];this.waiters=new Map;this.max=r}add(r,t){let s=this.waiters.get(r);if(s)return s;let i=new Promise((n,a)=>{let c=()=>{this.active++,Promise.resolve().then(t).then(n,a).finally(()=>{this.waiters.delete(r),this.active--,this._drain()})};this.active<this.max?c():this.queue.push({key:r,run:c,reject:a})});return this.waiters.set(r,i),i}start(){}stop(){let r=this.queue;this.queue=[];for(let{key:s,reject:i}of r)this.waiters.delete(s),i(new Error("[queue] stopped before task started"));let t=[...this.waiters.values()];return Promise.allSettled(t).then(()=>{})}_drain(){this.queue.length>0&&this.active<this.max&&this.queue.shift().run()}};var v=class extends Error{constructor(r,t){super(t??`Storage quota exceeded while caching ${r}`),this.name="DownloadQuotaExceededError",this.txId=r}};var ce=2,_e=3,de=null,b=null,$=6e4,ue=null,_=new Map,N=new Map;function pe(e,r,t={}){de=e,b=r,$=t.muWorkerTimeout??6e4,ue=new m(t.pdfConcurrency??_e),r.listen(be)}function be(e){e.type==="MuPageDone"?l(e.txId,e.page,"done"):e.type==="MuPageError"&&l(e.txId,e.page,"error")}function h(e){let r=_.get(e);if(r)return r;let t=Ce(e).finally(()=>_.delete(e));return _.set(e,t),t}async function Ce(e){await w(e)||(p(e,{phase:"queued"}),await ue.add(e,async()=>{let t=await de.rpc({type:"GetFile",txId:e,mime:"pdf"});if(!t.ok)throw t.quotaExceeded?new v(e,t.error):new Error(t.error??"[orchestrator] download failed")}))}function le(e,r){let t=P(e,r),s=N.get(t);if(s)return s;let i=De(e,r,t).finally(()=>N.delete(t));return N.set(t,i),i}async function De(e,r,t){let s=await q(e,r);if(s)return s;l(e,r,"queued");let i=0;for(;i<=ce;){if(await h(e),l(e,r,"downloading"),await Te(e,r)==="done"){let a=await q(e,r);if(a)return a;throw new Error(`[orchestrator] page ${r} not in cache after render`)}if(i++,i>ce)throw l(e,r,"error"),new Error(`[orchestrator] render failed for page ${r} of ${e}`);await oe(e),_.delete(e)}throw new Error("[orchestrator] unreachable")}function Te(e,r){return new Promise(t=>{let s=setTimeout(()=>{i(),t("error")},$),i=Me(e,r,n=>{clearTimeout(s),t(n)});b.send({type:"ProcessPages",txId:e,from:r,to:r})})}function Me(e,r,t){let s=b,i=!1,n=()=>{i=!0,s.unlisten(a)},a=c=>{i||(c.type==="MuPageDone"&&c.txId===e&&c.page===r?(n(),t("done")):c.type==="MuPageError"&&c.txId===e&&c.page===r&&(n(),t("error")))};return s.listen(a),n}async function fe(e){return await h(e),new Promise((r,t)=>{let s=setTimeout(()=>{n(),t(new Error(`[orchestrator] page count timed out for ${e}`))},$),i=b,n=()=>i.unlisten(a),a=c=>{c.type==="MuPageCountResult"&&c.txId===e?(clearTimeout(s),n(),r(c.pageCount)):c.type==="MuPageCountError"&&c.txId===e&&(clearTimeout(s),n(),t(new Error(c.error)))};i.listen(a),i.send({type:"GetPageCount",txId:e})})}var K=class{constructor(){this.handlers=[];this.pending=new Map}listen(r){this.handlers.push(r)}unlisten(r){this.handlers=this.handlers.filter(t=>t!==r)}rpc(r){return We(this.pending,r,t=>this.send(t))}_dispatch(r){if(r.type==="FileRpcResponse"){let t=this.pending.get(r.key);if(t&&t.length>0){let s=t.shift();t.length===0&&this.pending.delete(r.key),s({ok:r.ok,key:r.key,error:r.error,quotaExceeded:r.quotaExceeded})}return}for(let t of this.handlers)t(r)}},C=class extends K{constructor(r){super(),this.w=new Worker(r,{type:"module"}),this.w.onmessage=t=>this._dispatch(t.data),this.w.onerror=t=>console.error("[DedicatedThread] worker error",t)}send(r){this.w.postMessage(r)}};function Se(e){return"mime"in e?`${e.txId}:${e.mime}`:e.txId}function We(e,r,t){return new Promise((s,i)=>{let n=Se(r),a=e.get(n)??[],c=d=>{clearTimeout(W),s(d)},W=setTimeout(()=>{let d=e.get(n);if(d){let R=d.indexOf(c);R>=0&&d.splice(R,1),d.length===0&&e.delete(n)}i(new Error(`[worker-client] rpc timeout after 90000ms for ${n}`))},9e4);a.push(c),e.set(n,a),t(r)})}function we(e="/file-worker-v2.js"){return new C(e)}function me(e="/mu-worker-v2.js"){return new C(e)}function he(e,r,t){typeof window>"u"||window.dispatchEvent(new CustomEvent("ARWEAVE_DOWNLOAD_PROGRESS",{detail:{txId:e,loaded:r,total:t},bubbles:!0}))}function D(e,r){typeof window>"u"||window.dispatchEvent(new CustomEvent("ARWEAVE_DOWNLOAD_DONE",{detail:{txId:e,mime:r},bubbles:!0}))}var Oe=6,E=null,L=null,H=null,ge=null;function M(){return L||(L=we()),L}function Pe(){return H||(H=me()),H}function Ae(){M(),Pe()}var u=(e={})=>E||(E=Ie(e).catch(r=>{throw E=null,r}),E);async function Ie(e){let{requestPersistence:r=!0,muWorkerTimeout:t,mupdfUrl:s="/js/mupdf.js"}=e;r&&typeof navigator<"u"&&navigator.storage?.persist&&navigator.storage.persist().catch(()=>{}),await G();let i=M(),n=Pe();e.gateways?.length&&i.send({type:"FileInit",gateways:e.gateways}),ge=new m(e.concurrency?.preview??Oe),n.send({type:"MuInit",mupdfUrl:s}),pe(i,n,{muWorkerTimeout:t,pdfConcurrency:e.concurrency?.pdf}),i.listen(o=>{if(o.type==="DownloadProgress")p(o.txId,{phase:"downloading",loaded:o.loaded,total:o.total}),he(o.txId,o.loaded,o.total);else if(o.type==="DownloadFinished")p(o.txId,{phase:"done"}),D(o.txId,o.mime);else if(o.type==="DownloadError")p(o.txId,{phase:"error",error:o.error});else if(o.type==="StoragePruneStarted")F({active:!0});else if(o.type==="StoragePruned"){F({active:!1,freedBytes:o.freedBytes,removedCount:o.removed});for(let x of o.prunedTxIds)X(x),Q(x)}}),n.listen(o=>{o.type==="MuPdfData"&&(I(o.txId,o.bookData),typeof window<"u"&&window.dispatchEvent(new CustomEvent("WorkerEvent.MuPdfData",{detail:{...o.bookData,fileId:o.txId},bubbles:!0})))});let[a,c,W,d]=await Promise.all([ne(),se(),ie(),B()]);await Ge(a,c);let R=[...a.map(o=>[o,{phase:"done"}]),...c.map(o=>[o,{phase:"done"}])];J(R),typeof window<"u"&&(a.forEach(o=>D(o,"pdf")),c.forEach(o=>D(o,"preview")));for(let o of d)I(o.txId,o);let O=new Map;for(let{txId:o,page:x}of W){let j=O.get(o)??[];j.push([x,"done"]),O.set(o,j)}Z([...O])}var T=null,ye=[];function ve(){let e=new Set(ye);T&&e.add(T),M().send({type:"PinTxIds",txIds:Array.from(e)})}function S(e){T!==e&&(T=e,ve())}var Fe=e=>{ye=[...e],ve()},Ue=async e=>{await u(),S(e);let r=await w(e);if(r)return V(e),r;await h(e);let t=await w(e);if(!t)throw new Error(`[downloader_v2] PDF not in cache after download: ${e}`);return t},qe=async e=>{await u();let r=await k(e);if(r)return V(e),r;let t=await ge.add(e,async()=>M().rpc({type:"GetFile",txId:e,mime:"preview"}));if(!t.ok)throw new Error(`[downloader_v2] preview download failed for ${e}: ${t.error}`);let s=await k(e);if(!s)throw new Error(`[downloader_v2] preview not in cache after download: ${e}`);return s},Ne=async(e,r)=>(await u(),S(e),V(e),le(e,r)),$e=async e=>(await u(),S(e),h(e)),Ke=async e=>(await u(),S(e),fe(e)),Le=async(e,r)=>{await u(),await h(e);let s=await(await y()).match(f(e));if(!s)throw new Error("[downloader_v2] PDF not in cache after EnsurePdf");let i=await s.blob(),n=URL.createObjectURL(i),a=document.createElement("a");a.href=n,a.download=r.endsWith(".pdf")?r:`${r}.pdf`,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(n)},He=async e=>{let r=await e.blob();return URL.createObjectURL(r)},Ve=e=>{URL.revokeObjectURL(e)},je=()=>navigator.storage.estimate();async function Ge(e,r){let t=new Set((await z()).map(n=>n.txId)),s=n=>{let a=n?.headers.get("content-length"),c=a?Number(a):NaN;return Number.isFinite(c)?c:0},i=async(n,a,c)=>{t.has(n)||await A({txId:n,fileType:a,sizeBytes:s(c),downloadedAt:0,lastAccessedAt:0})};await Promise.all([...e.map(async n=>i(n,"pdf",await w(n))),...r.map(async n=>i(n,"preview",await k(n)))])}function V(e){let r=Date.now();Y(e).then(t=>{t&&(r-t.lastAccessedAt<36e5||A({...t,lastAccessedAt:r}).catch(()=>{}))}).catch(()=>{})}export{g as CACHES,xe as CACHE_VERSION,ke as DL2_SW_VERSION,Le as DownloadPdfToDisk,v as DownloadQuotaExceededError,Ke as EnsurePageCount,Ne as EnsurePageImage,$e as EnsurePdf,qe as GetImage,He as GetObjectUrl,Ue as GetPdf,u as InitDownloaderV2,Fe as SetPinnedPdfs,Re as downloadState,Ee as getBookData,P as pageKey,f as pdfKey,Ae as preloadWorkersV2,U as previewKey,Ve as revokeObjectUrl,je as storageEstimate};
|
|
538
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/downloader/keys.ts","../../src/downloader/cache-store.ts","../../src/downloader/queue.ts","../../src/downloader/orchestrator.ts","../../src/downloader/client/worker-client.ts","../../src/downloader/client/progress.ts","../../src/downloader/client/files.ts"],"mappings":"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","names":["_fileThread","_muThread","EnsurePageImage","EnsurePdf"]}
|
|
1
|
+
{"version":3,"sources":["../../src/downloader/keys.ts","../../src/downloader/cache-store.ts","../../src/downloader/queue.ts","../../src/downloader/errors.ts","../../src/downloader/orchestrator.ts","../../src/downloader/client/worker-client.ts","../../src/downloader/client/progress.ts","../../src/downloader/client/files.ts"],"mappings":"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","names":["CACHE_VERSION","CACHES","DL2_SW_VERSION","arKey","txId","pdfKey","previewKey","pageKey","n","openPdfCache","CACHES","openPreviewCache","openPagesCache","matchPdf","txId","pdfKey","matchPreview","previewKey","matchPage","n","pageKey","deletePdf","txId","openPdfCache","pdfKey","pdfKeys","openPdfCache","r","txIdFromArKey","previewKeys","openPreviewCache","pageEntries","openPagesCache","request","match","page","txIdFromArKey","url","m","ConcurrentProcessor","maxConcurrent","key","task","existing","p","resolve","reject","run","pending","remaining","DownloadQuotaExceededError","txId","message","MAX_RENDER_RETRIES","DEFAULT_PDF_CONCURRENCY","_fileThread","_muThread","_muTimeout","_pdfProcessor","pendingPdf","pendingPage","initOrchestrator","fileThread","muThread","opts","ConcurrentProcessor","handleMuWorkerMessage","msg","_setRenderPage","EnsurePdf","txId","cached","p","_ensurePdfInner","matchPdf","_setFileState","result","DownloadQuotaExceededError","EnsurePageImage","page","key","pageKey","_ensurePageInner","pKey","hit","matchPage","retries","requestRender","resp","deletePdf","resolve","timer","cleanup","_addOneShotMuListener","cb","thread","done","handler","EnsurePageCount","reject","BaseThread","cb","h","cmd","rpcWithTimeout","c","msg","list","resolver","DedicatedThread","scriptUrl","e","rpcRequestKey","pending","send","resolve","reject","key","settle","r","timer","l","i","createFileThread","scriptUrl","DedicatedThread","createMuThread","emitProgress","txId","loaded","total","emitDone","mime","DEFAULT_PREVIEW_CONCURRENCY","_initPromise","_fileThread","_muThread","_previewProcessor","getFileThread","createFileThread","getMuThread","createMuThread","preloadWorkersV2","InitDownloaderV2","opts","_doInit","err","requestPersistence","muWorkerTimeout","mupdfUrl","openMetaDb","fileThread","muThread","ConcurrentProcessor","initOrchestrator","msg","_setFileState","emitProgress","emitDone","_setPruning","txId","_clearFileState","_clearRender","_setBookData","pdfTxIds","previewTxIds","cachedPages","allBookData","pdfKeys","previewKeys","pageEntries","getAllBookData","_reconcileDownloads","fileEntries","id","_hydrateFiles","bd","renderedPages","page","pages","_hydrateRenders","_autoPinnedTxId","_explicitPins","_sendPins","txIds","_autoPin","SetPinnedPdfs","GetPdf","cached","matchPdf","_touchAccessTime","EnsurePdf","resp","GetImage","matchPreview","result","EnsurePageImage","EnsurePageCount","DownloadPdfToDisk","filename","response","openPdfCache","pdfKey","blob","url","GetObjectUrl","revokeObjectUrl","storageEstimate","existing","getAllDownloadRecords","r","sizeOf","len","n","reconcile","fileType","putDownloadRecord","now","getDownloadRecord","rec"]}
|