@lls/offline 24.27.0-d7760203 → 24.27.0-d955cd89

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.
@@ -1000,6 +1000,13 @@ var loadBook2 = async ({ id: bookId, forceRefresh }) => {
1000
1000
  asJson: true
1001
1001
  });
1002
1002
  loadBook(json);
1003
+ } else {
1004
+ try {
1005
+ const { createdAt } = await readZipEntry({ bookId, entryName: "manifest.json", asJson: true });
1006
+ console.debug("zipversion", createdAt);
1007
+ } catch (e) {
1008
+ console.debug("failed to read manifest.json", e);
1009
+ }
1003
1010
  }
1004
1011
  return true;
1005
1012
  } catch (e) {
@@ -1116,13 +1123,18 @@ var loadPreload2 = async () => {
1116
1123
  console.error("failed to load preload", e);
1117
1124
  }
1118
1125
  };
1126
+ var reset = async () => {
1127
+ await (await navigator.storage.getDirectory()).remove({ recursive: true });
1128
+ console.info("opfs cleared");
1129
+ };
1119
1130
  var mainHandle = makeSyncHandler(self, {
1120
1131
  initChannel,
1121
1132
  loadPreload: loadPreload2,
1122
1133
  readZipEntry,
1123
1134
  loadBooks,
1124
1135
  loadBook: loadBook2,
1125
- configure
1136
+ configure,
1137
+ reset
1126
1138
  });
1127
1139
  var { handler, ...sender } = makeSyncWorker(self, ["nativeWriteFile", "nativeReadFile", "nativeListZips"]);
1128
1140
  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.27.0-d7760203",
3
+ "version": "24.27.0-d955cd89",
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.27.0-d7760203"
55
+ "@lls/vitescripts": "24.27.0-d955cd89"
56
56
  },
57
57
  "dependencies": {
58
58
  "fflate": "0.8.2"