@the_library/public 1.0.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.
Files changed (90) hide show
  1. package/README.md +2298 -0
  2. package/assets/branding/data-pond.png +0 -0
  3. package/assets/branding/dsafe-logo.png +0 -0
  4. package/assets/branding/founder-photo.jpg +0 -0
  5. package/assets/branding/icon_transparent.png +0 -0
  6. package/assets/branding/library-favicon.png +0 -0
  7. package/assets/branding/pond-enterprise-logo.jpg +0 -0
  8. package/assets/branding/pond-enterprise-logo.svg +27 -0
  9. package/dist/branding/index.d.ts +48 -0
  10. package/dist/branding/index.js +67 -0
  11. package/dist/branding/index.js.map +1 -0
  12. package/dist/chunk-2HFOWE5R.js +296 -0
  13. package/dist/chunk-2HFOWE5R.js.map +1 -0
  14. package/dist/chunk-3L6LH2XK.js +465 -0
  15. package/dist/chunk-3L6LH2XK.js.map +1 -0
  16. package/dist/chunk-4CWVFPBN.js +28 -0
  17. package/dist/chunk-4CWVFPBN.js.map +1 -0
  18. package/dist/chunk-AGHPATVL.js +65 -0
  19. package/dist/chunk-AGHPATVL.js.map +1 -0
  20. package/dist/chunk-JDUYLUDJ.js +4835 -0
  21. package/dist/chunk-JDUYLUDJ.js.map +1 -0
  22. package/dist/chunk-OEZK7IX7.js +77 -0
  23. package/dist/chunk-OEZK7IX7.js.map +1 -0
  24. package/dist/chunk-PUYDAUCI.js +2873 -0
  25. package/dist/chunk-PUYDAUCI.js.map +1 -0
  26. package/dist/chunk-WHWMTS7D.js +99 -0
  27. package/dist/chunk-WHWMTS7D.js.map +1 -0
  28. package/dist/chunk-Y7RS6RTM.js +342 -0
  29. package/dist/chunk-Y7RS6RTM.js.map +1 -0
  30. package/dist/chunk-ZEZGI2TP.js +197 -0
  31. package/dist/chunk-ZEZGI2TP.js.map +1 -0
  32. package/dist/core-dao-core-logo-VDT2I5IW.svg +33 -0
  33. package/dist/downloader/dl2-sw.js +199 -0
  34. package/dist/downloader/dl2-sw.js.map +1 -0
  35. package/dist/downloader/file-worker-v2.js +258 -0
  36. package/dist/downloader/file-worker-v2.js.map +1 -0
  37. package/dist/downloader/index.d.ts +45 -0
  38. package/dist/downloader/index.js +538 -0
  39. package/dist/downloader/index.js.map +1 -0
  40. package/dist/downloader/mu-worker-v2.js +197 -0
  41. package/dist/downloader/mu-worker-v2.js.map +1 -0
  42. package/dist/downloader/react.d.ts +19 -0
  43. package/dist/downloader/react.js +32 -0
  44. package/dist/downloader/react.js.map +1 -0
  45. package/dist/downloader/solid.d.ts +21 -0
  46. package/dist/downloader/solid.js +19 -0
  47. package/dist/downloader/solid.js.map +1 -0
  48. package/dist/downloader/sw.d.ts +22 -0
  49. package/dist/downloader/sw.js +119 -0
  50. package/dist/downloader/sw.js.map +1 -0
  51. package/dist/downloader/vue.d.ts +23 -0
  52. package/dist/downloader/vue.js +19 -0
  53. package/dist/downloader/vue.js.map +1 -0
  54. package/dist/level-state-J3pj64Tr.d.ts +15 -0
  55. package/dist/models/astro.d.ts +47 -0
  56. package/dist/models/astro.js +44 -0
  57. package/dist/models/astro.js.map +1 -0
  58. package/dist/models/index.d.ts +244 -0
  59. package/dist/models/index.js +340 -0
  60. package/dist/models/index.js.map +1 -0
  61. package/dist/models/models.d.ts +524 -0
  62. package/dist/models/models.js +46 -0
  63. package/dist/models/models.js.map +1 -0
  64. package/dist/models/models_v2.global.js +1 -0
  65. package/dist/models/patch-worker.js +543 -0
  66. package/dist/models/patch-worker.js.map +1 -0
  67. package/dist/models/react.d.ts +43 -0
  68. package/dist/models/react.js +73 -0
  69. package/dist/models/react.js.map +1 -0
  70. package/dist/models/solid.d.ts +73 -0
  71. package/dist/models/solid.js +95 -0
  72. package/dist/models/solid.js.map +1 -0
  73. package/dist/models/vue.d.ts +51 -0
  74. package/dist/models/vue.js +98 -0
  75. package/dist/models/vue.js.map +1 -0
  76. package/dist/orm-BvkX0aBT.d.ts +507 -0
  77. package/dist/session-vqOnyxga.d.ts +184 -0
  78. package/dist/state-BTsp-E4v.d.ts +111 -0
  79. package/dist/types-Dn0EFMO_.d.ts +293 -0
  80. package/dist/types-Xb8Ta9tZ.d.ts +155 -0
  81. package/dist/web3/index.d.ts +820 -0
  82. package/dist/web3/index.js +1020 -0
  83. package/dist/web3/index.js.map +1 -0
  84. package/dist/web3/registry.d.ts +145 -0
  85. package/dist/web3/registry.js +23 -0
  86. package/dist/web3/registry.js.map +1 -0
  87. package/dist/web3/vue.d.ts +174 -0
  88. package/dist/web3/vue.js +391 -0
  89. package/dist/web3/vue.js.map +1 -0
  90. package/package.json +124 -0
@@ -0,0 +1,197 @@
1
+ // src/models/promises.ts
2
+ var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
3
+ var proResolver = () => {
4
+ let resolver;
5
+ let rejecter;
6
+ let resolved = false;
7
+ let started = false;
8
+ const pro = new Promise((_resolve, _reject) => {
9
+ resolver = _resolve;
10
+ rejecter = _reject;
11
+ });
12
+ const resolve = (value) => {
13
+ if (!resolved) {
14
+ resolver(value);
15
+ resolved = true;
16
+ } else {
17
+ console.trace("resolve called twice");
18
+ }
19
+ };
20
+ const reject = (value) => {
21
+ if (!resolved) {
22
+ resolved = true;
23
+ rejecter(value);
24
+ } else {
25
+ console.error("reject called twice");
26
+ }
27
+ };
28
+ const start = () => started = true;
29
+ const isStarted = () => started;
30
+ return { pro, resolve, reject, start, isStarted };
31
+ };
32
+
33
+ // src/models/indexdb/common.ts
34
+ var version = 4;
35
+ var dbName = `the_world_library`;
36
+ var dbDeferred = proResolver();
37
+ var patchStoreName = `patches`;
38
+ var jsonStoreName = `catalog_json`;
39
+ var keyValStoreName = "key_value";
40
+ var pdfDataStoreName = "pdf_data";
41
+ var deviceStateStoreName = "deviceState";
42
+ var localRecordsStoreName = "localRecords";
43
+ var instanceRemapsStoreName = "instanceRemaps";
44
+ var Db = () => {
45
+ if (dbDeferred.isStarted()) {
46
+ return dbDeferred.pro;
47
+ }
48
+ dbDeferred.start();
49
+ const request = indexedDB.open(dbName, version);
50
+ request.onupgradeneeded = function() {
51
+ const db = request.result;
52
+ if (!db.objectStoreNames.contains(jsonStoreName))
53
+ db.createObjectStore(jsonStoreName, { keyPath: "id" });
54
+ if (!db.objectStoreNames.contains(keyValStoreName))
55
+ db.createObjectStore(keyValStoreName, { keyPath: "key" });
56
+ if (!db.objectStoreNames.contains(pdfDataStoreName))
57
+ db.createObjectStore(pdfDataStoreName, { keyPath: "fileId" });
58
+ if (!db.objectStoreNames.contains(patchStoreName)) {
59
+ const patchStore = db.createObjectStore(patchStoreName, { keyPath: ["username", "pk"] });
60
+ patchStore.createIndex("username", "username", { unique: false });
61
+ }
62
+ if (!db.objectStoreNames.contains(deviceStateStoreName)) {
63
+ db.createObjectStore(deviceStateStoreName);
64
+ }
65
+ if (!db.objectStoreNames.contains(localRecordsStoreName)) {
66
+ const localStore = db.createObjectStore(localRecordsStoreName, { keyPath: ["creatorUsername", "wireId"] });
67
+ localStore.createIndex("byCreator", "creatorUsername", { unique: false });
68
+ }
69
+ if (!db.objectStoreNames.contains(instanceRemapsStoreName)) {
70
+ db.createObjectStore(instanceRemapsStoreName, { keyPath: ["creatorUsername", "objectId", "langId", "originalIndex"] });
71
+ }
72
+ console.log("[IDB] models_v2 schema upgraded to version", db.version);
73
+ };
74
+ request.onerror = function(event) {
75
+ dbDeferred.reject(event);
76
+ };
77
+ request.onsuccess = function(event) {
78
+ dbDeferred.resolve(event.target.result);
79
+ };
80
+ return dbDeferred.pro;
81
+ };
82
+ var ClearDbData = async () => {
83
+ const db = await Db();
84
+ const storeNames = Array.from(db.objectStoreNames);
85
+ if (storeNames.length === 0) return;
86
+ const tx = db.transaction(storeNames, "readwrite");
87
+ storeNames.forEach((store) => tx.objectStore(store).clear());
88
+ return new Promise((resolve) => tx.oncomplete = resolve);
89
+ };
90
+
91
+ // src/models/indexdb/patch_storage.ts
92
+ var signature = (op) => JSON.stringify(op, Object.keys(op).sort());
93
+ var bulkAddPatches = (username, collection) => {
94
+ const deferred = proResolver();
95
+ Db().then((db) => {
96
+ if (collection.length === 0) return deferred.resolve(true);
97
+ getAllPatchesByUsername(username).then((existingPatches) => {
98
+ let nextPk = (existingPatches.length ? existingPatches[existingPatches.length - 1].pk : 0) + 1;
99
+ const tx = db.transaction(patchStoreName, "readwrite");
100
+ const store = tx.objectStore(patchStoreName);
101
+ const existing = new Set(existingPatches.map(({ pk, username: username2, ...op }) => signature(op)));
102
+ collection.forEach((op) => {
103
+ if (!existing.has(signature(op))) {
104
+ const add = store.add(Object.assign({}, { username, pk: nextPk }, op));
105
+ nextPk++;
106
+ add.onerror = function(event) {
107
+ console.error(`error inserting [${patchStoreName}]`, op, event.target);
108
+ deferred.reject(new Error(`error inserting patch`));
109
+ };
110
+ }
111
+ });
112
+ tx.oncomplete = function() {
113
+ deferred.resolve(true);
114
+ };
115
+ tx.onerror = function(event) {
116
+ console.error(`tx.onerror inserting [${patchStoreName}]: `, event);
117
+ deferred.reject(event.target);
118
+ };
119
+ }).catch((err) => {
120
+ console.error(err);
121
+ deferred.reject(err);
122
+ });
123
+ }).catch((e) => {
124
+ console.error(`[indexdb error:] bulkAddPatches ${e.message}`);
125
+ deferred.reject(e);
126
+ });
127
+ return deferred.pro;
128
+ };
129
+ var getNbPatches = (username) => {
130
+ const deferred = proResolver();
131
+ Db().then(async (db) => {
132
+ const tx = db.transaction(patchStoreName, "readonly");
133
+ tx.objectStore(patchStoreName).index("username").count(IDBKeyRange.only(username)).onsuccess = (event) => {
134
+ deferred.resolve(event.target.result || 0);
135
+ };
136
+ tx.onerror = function(event) {
137
+ console.log("worker: error counting patches", event.target);
138
+ deferred.reject(event.target);
139
+ };
140
+ });
141
+ return deferred.pro;
142
+ };
143
+ var getAllPatchesSince = (username, pk) => {
144
+ const deferred = proResolver();
145
+ Db().then(async (db) => {
146
+ const tx = db.transaction(patchStoreName, "readonly");
147
+ const store = tx.objectStore(patchStoreName);
148
+ store.index("username").getAll(IDBKeyRange.only(username)).onsuccess = (event) => {
149
+ const all = event.target.result || [];
150
+ const results = all.filter((row) => row.pk >= pk);
151
+ results.sort((a, b) => a.pk - b.pk);
152
+ deferred.resolve(results);
153
+ };
154
+ tx.onerror = function(event) {
155
+ console.error("worker: error loading patches since", pk, event.target);
156
+ deferred.reject(event.target);
157
+ };
158
+ }).catch(deferred.reject);
159
+ return deferred.pro;
160
+ };
161
+ var getAllPatchesByUsername = (username) => {
162
+ const deferred = proResolver();
163
+ Db().then(async (db) => {
164
+ const tx = db.transaction(patchStoreName, "readonly");
165
+ tx.objectStore(patchStoreName).index("username").getAll(IDBKeyRange.only(username)).onsuccess = (event) => {
166
+ const results = event.target.result || [];
167
+ results.sort((a, b) => a.pk - b.pk);
168
+ deferred.resolve(results);
169
+ };
170
+ tx.onerror = function(event) {
171
+ console.error("worker: error loading all patches", event.target);
172
+ deferred.reject(event.target);
173
+ };
174
+ }).catch(deferred.reject);
175
+ return deferred.pro;
176
+ };
177
+
178
+ export {
179
+ delay,
180
+ proResolver,
181
+ version,
182
+ dbName,
183
+ patchStoreName,
184
+ jsonStoreName,
185
+ keyValStoreName,
186
+ pdfDataStoreName,
187
+ deviceStateStoreName,
188
+ localRecordsStoreName,
189
+ instanceRemapsStoreName,
190
+ Db,
191
+ ClearDbData,
192
+ bulkAddPatches,
193
+ getNbPatches,
194
+ getAllPatchesSince,
195
+ getAllPatchesByUsername
196
+ };
197
+ //# sourceMappingURL=chunk-ZEZGI2TP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/models/promises.ts","../src/models/indexdb/common.ts","../src/models/indexdb/patch_storage.ts"],"mappings":"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","names":["username"]}
@@ -0,0 +1,33 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!--
3
+ - /*
4
+ - * Copyright (c) 2026 DataPond D-Library Pty Ltd. ("The Sanctuary")
5
+ - * Non-Profit Public Library — The World Library
6
+ - *
7
+ - * Licensed under the D-Open Code Sovereign Licence v1.0
8
+ - * https://registry.world.bibliotech.com/licence
9
+ - *
10
+ - * Technical Guardian ("The Shield"): Pond Enterprise Pty Ltd. (ACN 694 747 987)
11
+ - * All liability claims directed to Pond Enterprise Pty Ltd.
12
+ - * Modification automatically voids the certified liability protection.
13
+ - * Governing law: South Australia.
14
+ - */
15
+ -
16
+ -->
17
+
18
+ <!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
19
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
20
+ viewBox="0 0 321.3 368.1" style="enable-background:new 0 0 321.3 368.1;" xml:space="preserve">
21
+ <style type="text/css">
22
+ .st0{fill-rule:evenodd;clip-rule:evenodd;fill:#FF9211;}
23
+ .st1{fill:#FF9211;}
24
+ </style>
25
+ <path class="st0" d="M160.6,38.2L34.4,111.1V257l126.2,72.9L286.8,257V111.1L160.6,38.2z M165.9,1.4c-3.3-1.9-7.3-1.9-10.6,0
26
+ L5.3,88.1C2,90,0,93.5,0,97.3v173.4c0,3.8,2,7.3,5.3,9.2l150,86.7c3.3,1.9,7.3,1.9,10.6,0l150-86.7c3.3-1.9,5.3-5.4,5.3-9.2V97.3
27
+ c0-3.8-2-7.3-5.3-9.2L165.9,1.4z"/>
28
+ <path class="st1" d="M160.6,91l-80.5,46.5v93l80,46.2c0.3,0.2,0.5,0.5,0.5,0.9v15.9c0,0.8-0.9,1.3-1.6,0.9L68.2,242
29
+ c-2.5-1.4-4-4-4-6.9V132.9c0-2.8,1.5-5.5,4-6.9l88.4-51.1c2.5-1.4,5.5-1.4,7.9,0l91.2,52.5c0.7,0.4,0.7,1.4,0,1.8
30
+ c-5.4,3.2-8.1,4.6-14.2,8c-0.3,0.2-0.7,0.2-1,0L160.6,91z"/>
31
+ <path class="st1" d="M173.9,186c0-0.4,0.2-0.8,0.6-0.9l80-42.6c0.7-0.4,1.6,0.1,1.6,0.9v103.7c0,0.4-0.2,0.7-0.5,0.9l-80,46.5
32
+ c-0.7,0.4-1.6-0.1-1.6-0.9V186z"/>
33
+ </svg>
@@ -0,0 +1,199 @@
1
+ // src/downloader/keys.ts
2
+ var CACHE_VERSION = 1;
3
+ var CACHES = {
4
+ pdf: `dl2-pdf-v${CACHE_VERSION}`,
5
+ preview: `dl2-preview-v${CACHE_VERSION}`,
6
+ pages: `dl2-pages-v${CACHE_VERSION}`
7
+ };
8
+ var arKey = (txId) => `/ar/${txId}`;
9
+ var pdfKey = arKey;
10
+ var previewKey = arKey;
11
+ var pageKey = (txId, n) => `/pages/${encodeURIComponent(txId)}/${n}`;
12
+
13
+ // src/downloader/queue.ts
14
+ var ConcurrentProcessor = class {
15
+ constructor(maxConcurrent) {
16
+ this.active = 0;
17
+ this.queue = [];
18
+ // key → promise for every task currently in-flight or waiting to run.
19
+ this.waiters = /* @__PURE__ */ new Map();
20
+ this.max = maxConcurrent;
21
+ }
22
+ add(key, task) {
23
+ const existing = this.waiters.get(key);
24
+ if (existing) return existing;
25
+ const p = new Promise((resolve, reject) => {
26
+ const run = () => {
27
+ this.active++;
28
+ Promise.resolve().then(task).then(resolve, reject).finally(() => {
29
+ this.waiters.delete(key);
30
+ this.active--;
31
+ this._drain();
32
+ });
33
+ };
34
+ if (this.active < this.max) {
35
+ run();
36
+ } else {
37
+ this.queue.push({ key, run, reject });
38
+ }
39
+ });
40
+ this.waiters.set(key, p);
41
+ return p;
42
+ }
43
+ start() {
44
+ }
45
+ // Drops queued-but-not-started tasks and rejects their callers (so they never
46
+ // hang waiting on a task that will now never run), then resolves once every
47
+ // already-active task has settled.
48
+ stop() {
49
+ const pending = this.queue;
50
+ this.queue = [];
51
+ for (const { key, reject } of pending) {
52
+ this.waiters.delete(key);
53
+ reject(new Error("[queue] stopped before task started"));
54
+ }
55
+ const remaining = [...this.waiters.values()];
56
+ return Promise.allSettled(remaining).then(() => void 0);
57
+ }
58
+ _drain() {
59
+ if (this.queue.length > 0 && this.active < this.max) {
60
+ const next = this.queue.shift();
61
+ next.run();
62
+ }
63
+ }
64
+ };
65
+
66
+ // src/downloader/sw/sw.ts
67
+ var SW_VERSION = true ? "1783466701866" : "dev";
68
+ var GATEWAY_CONCURRENCY = 4;
69
+ var gatewayProcessor = new ConcurrentProcessor(GATEWAY_CONCURRENCY);
70
+ var SW = self;
71
+ SW.addEventListener("install", (_e) => {
72
+ SW.skipWaiting();
73
+ });
74
+ SW.addEventListener("activate", (e) => {
75
+ e.waitUntil((async () => {
76
+ await SW.clients.claim();
77
+ const VERSION_CACHE_PREFIX = "dl2-sw-version-";
78
+ const currentVersionCache = VERSION_CACHE_PREFIX + SW_VERSION;
79
+ const allCacheNames = await caches.keys();
80
+ if (!allCacheNames.includes(currentVersionCache)) {
81
+ console.log("[SW] Upgraded to version", SW_VERSION, "- clearing all caches.");
82
+ for (const name of allCacheNames) {
83
+ await caches.delete(name);
84
+ }
85
+ await caches.open(currentVersionCache);
86
+ }
87
+ })());
88
+ });
89
+ SW.addEventListener("fetch", (e) => {
90
+ const req = e.request;
91
+ if (req.method !== "GET") return;
92
+ const url = new URL(req.url);
93
+ if (url.searchParams.get("dl2-bypass") === "1") return;
94
+ if (url.origin === SW.location.origin) {
95
+ if (url.pathname.startsWith("/ar/")) {
96
+ e.respondWith(handleArRequest(req, url));
97
+ return;
98
+ }
99
+ if (url.pathname.startsWith("/pages/")) {
100
+ e.respondWith(handlePagesRequest(req, url));
101
+ return;
102
+ }
103
+ }
104
+ });
105
+ async function handleArRequest(req, url) {
106
+ const txId = url.pathname.slice("/ar/".length);
107
+ const pdfCache = await caches.open(CACHES.pdf);
108
+ const pdfHit = await pdfCache.match(pdfKey(txId));
109
+ if (pdfHit) return handleRangeRequest(req, pdfHit);
110
+ const previewCache = await caches.open(CACHES.preview);
111
+ const previewHit = await previewCache.match(previewKey(txId));
112
+ if (previewHit) return previewHit;
113
+ const outcome = await gatewayProcessor.add(txId, () => fetchAndCache(txId, pdfCache, previewCache));
114
+ if (outcome === "pdf") {
115
+ const cached = await pdfCache.match(pdfKey(txId));
116
+ return cached ? handleRangeRequest(req, cached) : new Response("Not Found", { status: 404 });
117
+ }
118
+ if (outcome === "preview") {
119
+ const cached = await previewCache.match(previewKey(txId));
120
+ return cached ?? new Response("Not Found", { status: 404 });
121
+ }
122
+ if (outcome === "error") return Response.error();
123
+ return new Response("Not Found", { status: 404 });
124
+ }
125
+ async function fetchAndCache(txId, pdfCache, previewCache) {
126
+ const gateways = ["https://arweave.net", "https://permagate.io", "https://ar-io.dev"];
127
+ for (const gw of gateways) {
128
+ try {
129
+ const corsRequest = new Request(`${gw}/${txId}`, { mode: "cors" });
130
+ const response = await fetch(corsRequest);
131
+ if (response.type === "opaque") return "error";
132
+ if (!response.ok) continue;
133
+ const contentType = response.headers.get("content-type") || "";
134
+ if (contentType.includes("application/pdf")) {
135
+ await pdfCache.put(pdfKey(txId), response);
136
+ return "pdf";
137
+ }
138
+ await previewCache.put(previewKey(txId), response);
139
+ return "preview";
140
+ } catch {
141
+ }
142
+ }
143
+ return "not-found";
144
+ }
145
+ async function handlePagesRequest(_req, url) {
146
+ const parts = url.pathname.split("/").filter(Boolean);
147
+ if (parts.length < 3) return new Response("Not Found", { status: 404 });
148
+ const txId = decodeURIComponent(parts[1]);
149
+ const page = parseInt(parts[2], 10);
150
+ const pagesCache = await caches.open(CACHES.pages);
151
+ const hit = await pagesCache.match(pageKey(txId, page));
152
+ if (hit) return hit;
153
+ return new Response("Not Found", { status: 404 });
154
+ }
155
+ async function handleRangeRequest(request, cachedResponse) {
156
+ const rangeHeader = request.headers.get("range");
157
+ if (!rangeHeader) return cachedResponse;
158
+ const blob = await cachedResponse.blob();
159
+ const size = blob.size;
160
+ const [startStr, endStr] = rangeHeader.replace(/bytes=/, "").split("-");
161
+ let start;
162
+ let end;
163
+ if (startStr === "") {
164
+ const suffix = parseInt(endStr, 10);
165
+ if (isNaN(suffix)) return cachedResponse;
166
+ start = Math.max(0, size - suffix);
167
+ end = size - 1;
168
+ } else {
169
+ start = parseInt(startStr, 10);
170
+ end = endStr ? parseInt(endStr, 10) : size - 1;
171
+ }
172
+ if (isNaN(start) || isNaN(end)) {
173
+ return new Response("Range Not Satisfiable", {
174
+ status: 416,
175
+ headers: { "Content-Range": `bytes */${size}` }
176
+ });
177
+ }
178
+ end = Math.min(end, size - 1);
179
+ if (start > end || start >= size) {
180
+ return new Response("Range Not Satisfiable", {
181
+ status: 416,
182
+ headers: { "Content-Range": `bytes */${size}` }
183
+ });
184
+ }
185
+ return new Response(blob.slice(start, end + 1), {
186
+ status: 206,
187
+ statusText: "Partial Content",
188
+ headers: {
189
+ "Content-Range": `bytes ${start}-${end}/${size}`,
190
+ "Accept-Ranges": "bytes",
191
+ "Content-Length": String(end - start + 1),
192
+ "Content-Type": cachedResponse.headers.get("Content-Type") ?? "application/octet-stream"
193
+ }
194
+ });
195
+ }
196
+ export {
197
+ handleRangeRequest
198
+ };
199
+ //# sourceMappingURL=dl2-sw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/downloader/keys.ts","../../src/downloader/queue.ts","../../src/downloader/sw/sw.ts"],"mappings":";AAgBO,IAAM,gBAAgB;AAEtB,IAAM,SAAS;AAAA,EAClB,KAAS,YAAY,aAAa;AAAA,EAClC,SAAS,gBAAgB,aAAa;AAAA,EACtC,OAAS,cAAc,aAAa;AACxC;AAOA,IAAM,QAAQ,CAAC,SAAyB,OAAO,IAAI;AAC5C,IAAM,SAAa;AACnB,IAAM,aAAa;AACnB,IAAM,UAAa,CAAC,MAAc,MACrC,UAAU,mBAAmB,IAAI,CAAC,IAAI,CAAC;;;ACjBpC,IAAM,sBAAN,MAAoC;AAAA,EAOvC,YAAY,eAAuB;AALnC,SAAQ,SAAW;AACnB,SAAQ,QAAmF,CAAC;AAE5F;AAAA,SAAQ,UAAmC,oBAAI,IAAI;AAG/C,SAAK,MAAM;AAAA,EACf;AAAA,EAEA,IAAI,KAAa,MAAoC;AAEjD,UAAM,WAAW,KAAK,QAAQ,IAAI,GAAG;AACrC,QAAI,SAAU,QAAO;AAErB,UAAM,IAAI,IAAI,QAAW,CAAC,SAAS,WAAW;AAC1C,YAAM,MAAM,MAAM;AACd,aAAK;AAKL,gBAAQ,QAAQ,EACX,KAAK,IAAI,EACT,KAAK,SAAS,MAAM,EACpB,QAAQ,MAAM;AACX,eAAK,QAAQ,OAAO,GAAG;AACvB,eAAK;AACL,eAAK,OAAO;AAAA,QAChB,CAAC;AAAA,MACT;AAEA,UAAI,KAAK,SAAS,KAAK,KAAK;AACxB,YAAI;AAAA,MACR,OAAO;AACH,aAAK,MAAM,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;AAAA,MACxC;AAAA,IACJ,CAAC;AAED,SAAK,QAAQ,IAAI,KAAK,CAAC;AACvB,WAAO;AAAA,EACX;AAAA,EAEA,QAAc;AAAA,EAEd;AAAA;AAAA;AAAA;AAAA,EAKA,OAAsB;AAClB,UAAM,UAAU,KAAK;AACrB,SAAK,QAAQ,CAAC;AACd,eAAW,EAAE,KAAK,OAAO,KAAK,SAAS;AACnC,WAAK,QAAQ,OAAO,GAAG;AACvB,aAAO,IAAI,MAAM,qCAAqC,CAAC;AAAA,IAC3D;AACA,UAAM,YAAY,CAAC,GAAG,KAAK,QAAQ,OAAO,CAAC;AAC3C,WAAO,QAAQ,WAAW,SAAS,EAAE,KAAK,MAAM,MAAS;AAAA,EAC7D;AAAA,EAEQ,SAAe;AACnB,QAAI,KAAK,MAAM,SAAS,KAAK,KAAK,SAAS,KAAK,KAAK;AACjD,YAAM,OAAO,KAAK,MAAM,MAAM;AAC9B,WAAK,IAAI;AAAA,IACb;AAAA,EACJ;AACJ;;;AClEA,IAAM,aAAqB,OAA4C,kBAAqB;AAK5F,IAAM,sBAAsB;AAC5B,IAAM,mBAAmB,IAAI,oBAA+D,mBAAmB;AAE/G,IAAM,KAAK;AAIX,GAAG,iBAAiB,WAAW,CAAC,OAAO;AACnC,KAAG,YAAY;AACnB,CAAC;AAID,GAAG,iBAAiB,YAAY,CAAC,MAAM;AACnC,IAAE,WAAW,YAAY;AACrB,UAAM,GAAG,QAAQ,MAAM;AAEvB,UAAM,uBAAuB;AAC7B,UAAM,sBAAsB,uBAAuB;AACnD,UAAM,gBAAgB,MAAM,OAAO,KAAK;AAExC,QAAI,CAAC,cAAc,SAAS,mBAAmB,GAAG;AAC9C,cAAQ,IAAI,4BAA4B,YAAY,wBAAwB;AAC5E,iBAAW,QAAQ,eAAe;AAC9B,cAAM,OAAO,OAAO,IAAI;AAAA,MAC5B;AACA,YAAM,OAAO,KAAK,mBAAmB;AAAA,IACzC;AAAA,EACJ,GAAG,CAAC;AACR,CAAC;AAID,GAAG,iBAAiB,SAAS,CAAC,MAAM;AAChC,QAAM,MAAM,EAAE;AACd,MAAI,IAAI,WAAW,MAAO;AAE1B,QAAM,MAAM,IAAI,IAAI,IAAI,GAAG;AAG3B,MAAI,IAAI,aAAa,IAAI,YAAY,MAAM,IAAK;AAGhD,MAAI,IAAI,WAAW,GAAG,SAAS,QAAQ;AACnC,QAAI,IAAI,SAAS,WAAW,MAAM,GAAG;AACjC,QAAE,YAAY,gBAAgB,KAAK,GAAG,CAAC;AACvC;AAAA,IACJ;AACA,QAAI,IAAI,SAAS,WAAW,SAAS,GAAG;AACpC,QAAE,YAAY,mBAAmB,KAAK,GAAG,CAAC;AAC1C;AAAA,IACJ;AAAA,EACJ;AAEJ,CAAC;AAED,eAAe,gBAAgB,KAAc,KAA6B;AACtE,QAAM,OAAO,IAAI,SAAS,MAAM,OAAO,MAAM;AAG7C,QAAM,WAAW,MAAM,OAAO,KAAK,OAAO,GAAG;AAC7C,QAAM,SAAW,MAAM,SAAS,MAAM,OAAO,IAAI,CAAC;AAClD,MAAI,OAAQ,QAAO,mBAAmB,KAAK,MAAM;AAGjD,QAAM,eAAe,MAAM,OAAO,KAAK,OAAO,OAAO;AACrD,QAAM,aAAe,MAAM,aAAa,MAAM,WAAW,IAAI,CAAC;AAC9D,MAAI,WAAY,QAAO;AASvB,QAAM,UAAU,MAAM,iBAAiB,IAAI,MAAM,MAAM,cAAc,MAAM,UAAU,YAAY,CAAC;AAElG,MAAI,YAAY,OAAO;AACnB,UAAM,SAAS,MAAM,SAAS,MAAM,OAAO,IAAI,CAAC;AAChD,WAAO,SAAS,mBAAmB,KAAK,MAAM,IAAI,IAAI,SAAS,aAAa,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC/F;AACA,MAAI,YAAY,WAAW;AACvB,UAAM,SAAS,MAAM,aAAa,MAAM,WAAW,IAAI,CAAC;AACxD,WAAO,UAAU,IAAI,SAAS,aAAa,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC9D;AACA,MAAI,YAAY,QAAS,QAAO,SAAS,MAAM;AAC/C,SAAO,IAAI,SAAS,aAAa,EAAE,QAAQ,IAAI,CAAC;AACpD;AAKA,eAAe,cACX,MACA,UACA,cACkD;AAClD,QAAM,WAAW,CAAC,uBAAuB,wBAAwB,mBAAmB;AACpF,aAAW,MAAM,UAAU;AACvB,QAAI;AACA,YAAM,cAAc,IAAI,QAAQ,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,OAAO,CAAC;AACjE,YAAM,WAAc,MAAM,MAAM,WAAW;AAC3C,UAAI,SAAS,SAAS,SAAU,QAAO;AACvC,UAAI,CAAC,SAAS,GAAI;AAClB,YAAM,cAAc,SAAS,QAAQ,IAAI,cAAc,KAAK;AAC5D,UAAI,YAAY,SAAS,iBAAiB,GAAG;AACzC,cAAM,SAAS,IAAI,OAAO,IAAI,GAAG,QAAQ;AACzC,eAAO;AAAA,MACX;AACA,YAAM,aAAa,IAAI,WAAW,IAAI,GAAG,QAAQ;AACjD,aAAO;AAAA,IACX,QAAQ;AAAA,IAAyB;AAAA,EACrC;AACA,SAAO;AACX;AAEA,eAAe,mBAAmB,MAAe,KAA6B;AAE1E,QAAM,QAAQ,IAAI,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AACpD,MAAI,MAAM,SAAS,EAAG,QAAO,IAAI,SAAS,aAAa,EAAE,QAAQ,IAAI,CAAC;AACtE,QAAM,OAAO,mBAAmB,MAAM,CAAC,CAAC;AACxC,QAAM,OAAO,SAAS,MAAM,CAAC,GAAG,EAAE;AAElC,QAAM,aAAa,MAAM,OAAO,KAAK,OAAO,KAAK;AACjD,QAAM,MAAa,MAAM,WAAW,MAAM,QAAQ,MAAM,IAAI,CAAC;AAC7D,MAAI,IAAK,QAAO;AAGhB,SAAO,IAAI,SAAS,aAAa,EAAE,QAAQ,IAAI,CAAC;AACpD;AAEA,eAAsB,mBAClB,SACA,gBACiB;AACjB,QAAM,cAAc,QAAQ,QAAQ,IAAI,OAAO;AAC/C,MAAI,CAAC,YAAa,QAAO;AAEzB,QAAM,OAAO,MAAM,eAAe,KAAK;AACvC,QAAM,OAAO,KAAK;AAClB,QAAM,CAAC,UAAU,MAAM,IAAI,YAAY,QAAQ,UAAU,EAAE,EAAE,MAAM,GAAG;AAEtE,MAAI;AACJ,MAAI;AACJ,MAAI,aAAa,IAAI;AAEjB,UAAM,SAAS,SAAS,QAAQ,EAAE;AAClC,QAAI,MAAM,MAAM,EAAG,QAAO;AAC1B,YAAQ,KAAK,IAAI,GAAG,OAAO,MAAM;AACjC,UAAQ,OAAO;AAAA,EACnB,OAAO;AACH,YAAQ,SAAS,UAAU,EAAE;AAC7B,UAAQ,SAAS,SAAS,QAAQ,EAAE,IAAI,OAAO;AAAA,EACnD;AAEA,MAAI,MAAM,KAAK,KAAK,MAAM,GAAG,GAAG;AAC5B,WAAO,IAAI,SAAS,yBAAyB;AAAA,MACzC,QAAS;AAAA,MACT,SAAS,EAAE,iBAAiB,WAAW,IAAI,GAAG;AAAA,IAClD,CAAC;AAAA,EACL;AAKA,QAAM,KAAK,IAAI,KAAK,OAAO,CAAC;AAE5B,MAAI,QAAQ,OAAO,SAAS,MAAM;AAC9B,WAAO,IAAI,SAAS,yBAAyB;AAAA,MACzC,QAAS;AAAA,MACT,SAAS,EAAE,iBAAiB,WAAW,IAAI,GAAG;AAAA,IAClD,CAAC;AAAA,EACL;AAEA,SAAO,IAAI,SAAS,KAAK,MAAM,OAAO,MAAM,CAAC,GAAG;AAAA,IAC5C,QAAY;AAAA,IACZ,YAAY;AAAA,IACZ,SAAS;AAAA,MACL,iBAAkB,SAAS,KAAK,IAAI,GAAG,IAAI,IAAI;AAAA,MAC/C,iBAAkB;AAAA,MAClB,kBAAkB,OAAO,MAAM,QAAQ,CAAC;AAAA,MACxC,gBAAkB,eAAe,QAAQ,IAAI,cAAc,KAAK;AAAA,IACpE;AAAA,EACJ,CAAC;AACL;","names":[]}