@lls/offline 24.26.0-f2751d4e → 24.27.0-0317dc7d

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.
@@ -112,7 +112,7 @@ var coreFetchBookDrawerScreen = async (_ev, { offlineWorkerSync: offlineWorkerSy
112
112
  console.info("fetchBookEffect::no book found", { slug, uris, bookIds });
113
113
  return {};
114
114
  }
115
- console.debug("backbook???", preloadBook);
115
+ console.debug("preloadBook", preloadBook);
116
116
  const back = {
117
117
  data: {
118
118
  viewer: {
@@ -122,7 +122,7 @@ var coreFetchBookDrawerScreen = async (_ev, { offlineWorkerSync: offlineWorkerSy
122
122
  }
123
123
  }
124
124
  };
125
- console.debug("MAXIME/////", back);
125
+ console.debug("coreFetchBookDrawerScreen", back);
126
126
  return back;
127
127
  };
128
128
  var coreFetchPagesApi = async (ev, { offlineWorkerSync: offlineWorkerSync2, variables }) => {
@@ -152,7 +152,6 @@ var coreFetchPagesApi = async (ev, { offlineWorkerSync: offlineWorkerSync2, vari
152
152
  throw new Error("no offline page");
153
153
  }
154
154
  const rawPage = pageResponse?.viewer?.pages?.hits?.[0];
155
- console.debug("before???", rawPage);
156
155
  const page = {
157
156
  ...rawPage,
158
157
  book: {
@@ -225,7 +224,7 @@ var handleScreenCall = async (ev, { offlineWorkerSync: offlineWorkerSync2, known
225
224
  const json = await handles[key](ev, { offlineWorkerSync: offlineWorkerSync2, variables, knownLinks: knownLinks2 });
226
225
  return { status: 200, json };
227
226
  } catch (e) {
228
- console.error(e);
227
+ console.error("failed to handle screencall", e);
229
228
  return { status: 500, json: JSON.stringify(e) };
230
229
  }
231
230
  };
@@ -253,7 +252,7 @@ var fetchAsset = async (_ev, { entryId, mimeType, offlineWorkerSync: offlineWork
253
252
  statusText: "OK"
254
253
  });
255
254
  } catch (e) {
256
- console.error("FAILED fetchAsset", e);
255
+ console.error("FAILED fetchAsset", entryId, mimeType, e);
257
256
  return new Response("FAILED fetchAsset", {
258
257
  // @ts-ignore: poor ts typing
259
258
  ok: false,
@@ -312,7 +311,7 @@ var onlineFirst = async (request, event) => {
312
311
  if (isValidZipName(request.url) && !isValidS3Zip(responseFromNetwork)) {
313
312
  throw new Error(`zip is invalid: got ${responseFromNetwork.headers.get("Content-Length")} bytes`);
314
313
  }
315
- const cached = putInCache(request, responseFromNetwork.clone());
314
+ const cached = request.method === "HEAD" ? Promise.resolve() : putInCache(request, responseFromNetwork.clone());
316
315
  if (request.url.endsWith(".zip")) {
317
316
  await cached;
318
317
  event.waitUntil(Promise.resolve());
@@ -424,6 +423,6 @@ swSelf.onmessage = async ({
424
423
  }
425
424
  throw new Error(`fetchworker:invalid methodName ${Object.keys(services)} ${methodName}`);
426
425
  } catch (e) {
427
- console.error("failed", e);
426
+ console.error("failed", methodName, arg, e);
428
427
  }
429
428
  };
@@ -834,7 +834,7 @@ var loadZip = async (buf, bookId) => {
834
834
  const buffers = [];
835
835
  file.ondata = (err2, data, final) => {
836
836
  if (err2) {
837
- console.error("err?????", err2);
837
+ console.error("failed to read zip data", file.name, err2);
838
838
  }
839
839
  if (data.byteLength) {
840
840
  buffers.push(data);
@@ -900,6 +900,7 @@ var fetchZipFile = async (zipUrl, { forceRefresh } = {}) => {
900
900
  const arrayBuffer = new ArrayBuffer(size);
901
901
  accessHandle.read(arrayBuffer);
902
902
  await accessHandle.close();
903
+ console.debug("zipfile:", zipUrl, "size:", size);
903
904
  return arrayBuffer;
904
905
  };
905
906
  try {
@@ -1002,7 +1003,7 @@ var loadBook2 = async ({ id: bookId, forceRefresh }) => {
1002
1003
  }
1003
1004
  return true;
1004
1005
  } catch (e) {
1005
- console.error("failed", e);
1006
+ console.error("failed to load bookId", `${ZIP_BASE_URL}/${bookId}.zip`, e);
1006
1007
  return false;
1007
1008
  }
1008
1009
  })
@@ -1112,16 +1113,21 @@ var loadPreload2 = async () => {
1112
1113
  const json = await readZipEntry({ entryName: "preload/books.json", bookId, asJson: true });
1113
1114
  loadPreload(json);
1114
1115
  } catch (e) {
1115
- console.error("failed", e);
1116
+ console.error("failed to load preload", e);
1116
1117
  }
1117
1118
  };
1119
+ var reset = async () => {
1120
+ await (await navigator.storage.getDirectory()).remove({ recursive: true });
1121
+ console.info("opfs cleared");
1122
+ };
1118
1123
  var mainHandle = makeSyncHandler(self, {
1119
1124
  initChannel,
1120
1125
  loadPreload: loadPreload2,
1121
1126
  readZipEntry,
1122
1127
  loadBooks,
1123
1128
  loadBook: loadBook2,
1124
- configure
1129
+ configure,
1130
+ reset
1125
1131
  });
1126
1132
  var { handler, ...sender } = makeSyncWorker(self, ["nativeWriteFile", "nativeReadFile", "nativeListZips"]);
1127
1133
  self.onmessage = combineHandlers(mainHandle, handler);
package/lib/index.js CHANGED
@@ -82,13 +82,14 @@ var combineHandlers = (...handlers) => {
82
82
  console.error("no handlers matched", methodName);
83
83
  };
84
84
  };
85
+ var clearCache = async (mode) => caches.delete(`LLS_OFFLINE_${mode}`);
85
86
 
86
87
  // src/hooks/useOfflineWorker.ts
87
88
  import { useCallback, useEffect, useState } from "react";
88
89
  var offlineWorker = new Worker("/src/worker/offline-worker.js", { type: "module" });
89
90
  var { handler, ...offlineWorkerSync } = makeSyncWorker(
90
91
  offlineWorker,
91
- ["initChannel", "readZipEntry", "configure", "loadPreload", "loadBooks", "loadBook"],
92
+ ["initChannel", "readZipEntry", "configure", "loadPreload", "loadBooks", "loadBook", "reset"],
92
93
  "app:offlineWorker"
93
94
  );
94
95
  var fetchWorkerPromise = new Promise(
@@ -195,9 +196,15 @@ var useOfflineWorker_default = ({
195
196
  },
196
197
  []
197
198
  );
199
+ const reset = useCallback(async () => {
200
+ await offlineWorkerSync.reset();
201
+ await clearCache(confEnv || "development");
202
+ console.debug("reset: keys:", await caches.keys());
203
+ }, [confEnv]);
198
204
  return {
199
205
  ready,
200
- loadBook
206
+ loadBook,
207
+ reset
201
208
  };
202
209
  };
203
210
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lls/offline",
3
- "version": "24.26.0-f2751d4e",
3
+ "version": "24.27.0-0317dc7d",
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.7",
53
53
  "vite-tsconfig-paths": "5.1.4",
54
54
  "zod": "3.25.50",
55
- "@lls/vitescripts": "24.26.0-f2751d4e"
55
+ "@lls/vitescripts": "24.27.0-0317dc7d"
56
56
  },
57
57
  "dependencies": {
58
58
  "fflate": "0.8.2"