@lls/offline 24.22.0-bdccc0f6 → 24.22.0-bfdb7edf

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.
@@ -291,9 +291,7 @@ var ACCEPTED_EXTENSIONS = {
291
291
  ".gif": "image/gif",
292
292
  ".webm": "video/webm",
293
293
  ".m4a": "audio/mp4",
294
- ".webp": "image/webp",
295
- ".riv": "application/octet-stream",
296
- ".pdf": "application/pdf"
294
+ ".webp": "image/webp"
297
295
  };
298
296
  var putInCache = async (request, response) => {
299
297
  const cache = await openCache(CONF_ENV);
@@ -310,20 +308,17 @@ var onlineFirst = async (request, event) => {
310
308
  event.waitUntil(cached);
311
309
  }
312
310
  return responseFromNetwork;
313
- } catch (e) {
311
+ } catch (_e) {
314
312
  const over = /\/\?story=basic/.test(request.url) ? request.url.replace(/\/\?story=.*$/, "") : request;
315
313
  const responseFromCache = await caches.match(over);
316
314
  if (!responseFromCache) {
317
- return new Response(
318
- `FAILED fetch ${e && typeof e === "object" && "message" in e ? e.message : e?.toString?.()}`,
319
- {
320
- // @ts-ignore: poor ts typing
321
- ok: false,
322
- status: 500,
323
- type: "cors",
324
- url: event.request.url
325
- }
326
- );
315
+ return new Response("FAILED fetch", {
316
+ // @ts-ignore: poor ts typing
317
+ ok: false,
318
+ status: 500,
319
+ type: "cors",
320
+ url: event.request.url
321
+ });
327
322
  }
328
323
  return responseFromCache;
329
324
  }
@@ -84,16 +84,6 @@ var combineHandlers = (...handlers) => {
84
84
  };
85
85
  };
86
86
  var openCache = async (mode) => caches.open(`LLS_OFFLINE_${mode}`);
87
- var concatArrayBuffers = (buffers) => {
88
- const totalLength = buffers.reduce((sum, buf) => sum + buf.byteLength, 0);
89
- const concatenated = new Uint8Array(totalLength);
90
- let offset = 0;
91
- for (const buffer of buffers) {
92
- concatenated.set(new Uint8Array(buffer), offset);
93
- offset += buffer.byteLength;
94
- }
95
- return concatenated.buffer;
96
- };
97
87
 
98
88
  // src/worker/wwApi.ts
99
89
  var STATE = {
@@ -775,9 +765,6 @@ async function decryptData(encryptedData, key2, iv2) {
775
765
  return decryptedData;
776
766
  }
777
767
  var BOOKS = {};
778
- var zipNameInMedias = (zipName) => {
779
- return /^(pages|book)/.test(zipName);
780
- };
781
768
  var readZipEntry = async ({
782
769
  bookId,
783
770
  entryName,
@@ -787,20 +774,9 @@ var readZipEntry = async ({
787
774
  console.trace("no bookId", bookId, "found");
788
775
  return null;
789
776
  }
790
- const manifest = BOOKS[bookId].manifest;
791
- let overridenName = entryName;
792
- if (manifest && !entryName.includes("gqls/")) {
793
- const zipName = entryName.replace("medias/", "");
794
- if (zipNameInMedias(zipName)) {
795
- const originalName = manifest.medias[zipName];
796
- overridenName = `medias/${originalName}`;
797
- } else {
798
- console.error("any media should exist in manifest", zipName, entryName, bookId);
799
- }
800
- }
801
- const bookEntry = BOOKS[bookId].map.get(overridenName);
777
+ const bookEntry = BOOKS[bookId].get(entryName);
802
778
  if (!bookEntry) {
803
- console.info("no bookEntry", entryName, "found", overridenName);
779
+ console.info("no bookEntry", entryName, "found");
804
780
  return null;
805
781
  }
806
782
  if (!bookEntry.decoded) {
@@ -811,6 +787,16 @@ var readZipEntry = async ({
811
787
  var hasZip = (bookId) => {
812
788
  return !!BOOKS[bookId];
813
789
  };
790
+ function concatArrayBuffers(buffers) {
791
+ const totalLength = buffers.reduce((sum, buf) => sum + buf.byteLength, 0);
792
+ const concatenated = new Uint8Array(totalLength);
793
+ let offset = 0;
794
+ for (const buffer of buffers) {
795
+ concatenated.set(new Uint8Array(buffer), offset);
796
+ offset += buffer.byteLength;
797
+ }
798
+ return concatenated.buffer;
799
+ }
814
800
  var loadZip = async (buf, bookId) => {
815
801
  const m = /* @__PURE__ */ new Map();
816
802
  const unzipper = new Unzip();
@@ -850,19 +836,8 @@ var loadZip = async (buf, bookId) => {
850
836
  await sleep;
851
837
  }
852
838
  unzipper.push(buf.slice((nChunks - 1) * chunkSize, buf.byteLength), true);
853
- BOOKS[bookId] = {
854
- map: m,
855
- manifest: null
856
- };
857
- const manifestEntry = m.get("manifest.json");
858
- const keys = [...m.keys()];
859
- if (manifestEntry) {
860
- manifestEntry.decoded = await decryptData(await manifestEntry.zipEntry.getData(), key, iv);
861
- BOOKS[bookId].manifest = bufToJson(manifestEntry.decoded);
862
- const { medias } = BOOKS[bookId].manifest;
863
- keys.push(...Object.keys(medias).map((entryName) => `medias/${entryName}`));
864
- }
865
- return keys;
839
+ BOOKS[bookId] = m;
840
+ return [...m.keys()];
866
841
  };
867
842
 
868
843
  // src/worker/offline-worker.ts
@@ -1053,7 +1028,7 @@ var loadBooks = async ({ primaryOnly = false } = {}) => {
1053
1028
  const cache = await openCache(CONF_ENV);
1054
1029
  const keys = await cache.keys();
1055
1030
  const zips = keys.filter((key2) => {
1056
- return key2.url.match(/lecture-cp\.zip|story-.*?\.zip/);
1031
+ return key2.url.match(/lecture-cp\.zip/);
1057
1032
  });
1058
1033
  entries = zips.map((zip) => ({ name: String(zip.url.split("/").pop()) }));
1059
1034
  }
package/lib/index.js CHANGED
@@ -94,9 +94,6 @@ var { handler, ...offlineWorkerSync } = makeSyncWorker(
94
94
  var fetchWorkerPromise = new Promise(
95
95
  tryCatch(async () => {
96
96
  let fetchWorker = null;
97
- await navigator.serviceWorker.getRegistrations().then((registrations) => {
98
- return Promise.all(registrations.map((reg) => reg.unregister()));
99
- });
100
97
  await navigator.serviceWorker.register("/fetch-worker.js", { type: "module" }).then((reg) => {
101
98
  return reg.update().catch((e) => {
102
99
  console.debug(e, "likely we are offline");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lls/offline",
3
- "version": "24.22.0-bdccc0f6",
3
+ "version": "24.22.0-bfdb7edf",
4
4
  "description": "offline",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./lib/index.js",
@@ -52,7 +52,7 @@
52
52
  "vite": "7.0.0",
53
53
  "vite-tsconfig-paths": "5.1.4",
54
54
  "zod": "3.25.50",
55
- "@lls/vitescripts": "24.22.0-bdccc0f6"
55
+ "@lls/vitescripts": "24.22.0-bfdb7edf"
56
56
  },
57
57
  "dependencies": {
58
58
  "fflate": "0.8.2"