@livestore/adapter-web 0.4.0-dev.2 → 0.4.0-dev.20

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 (61) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/in-memory/in-memory-adapter.d.ts +15 -5
  3. package/dist/in-memory/in-memory-adapter.d.ts.map +1 -1
  4. package/dist/in-memory/in-memory-adapter.js +29 -15
  5. package/dist/in-memory/in-memory-adapter.js.map +1 -1
  6. package/dist/web-worker/client-session/client-session-devtools.d.ts +1 -1
  7. package/dist/web-worker/client-session/client-session-devtools.d.ts.map +1 -1
  8. package/dist/web-worker/client-session/client-session-devtools.js +14 -3
  9. package/dist/web-worker/client-session/client-session-devtools.js.map +1 -1
  10. package/dist/web-worker/client-session/persisted-adapter.d.ts +15 -0
  11. package/dist/web-worker/client-session/persisted-adapter.d.ts.map +1 -1
  12. package/dist/web-worker/client-session/persisted-adapter.js +67 -46
  13. package/dist/web-worker/client-session/persisted-adapter.js.map +1 -1
  14. package/dist/web-worker/client-session/sqlite-loader.d.ts +2 -0
  15. package/dist/web-worker/client-session/sqlite-loader.d.ts.map +1 -0
  16. package/dist/web-worker/client-session/sqlite-loader.js +16 -0
  17. package/dist/web-worker/client-session/sqlite-loader.js.map +1 -0
  18. package/dist/web-worker/common/persisted-sqlite.d.ts +23 -7
  19. package/dist/web-worker/common/persisted-sqlite.d.ts.map +1 -1
  20. package/dist/web-worker/common/persisted-sqlite.js +114 -76
  21. package/dist/web-worker/common/persisted-sqlite.js.map +1 -1
  22. package/dist/web-worker/common/shutdown-channel.d.ts +3 -2
  23. package/dist/web-worker/common/shutdown-channel.d.ts.map +1 -1
  24. package/dist/web-worker/common/shutdown-channel.js +2 -2
  25. package/dist/web-worker/common/shutdown-channel.js.map +1 -1
  26. package/dist/web-worker/common/worker-disconnect-channel.d.ts +2 -6
  27. package/dist/web-worker/common/worker-disconnect-channel.d.ts.map +1 -1
  28. package/dist/web-worker/common/worker-disconnect-channel.js +3 -2
  29. package/dist/web-worker/common/worker-disconnect-channel.js.map +1 -1
  30. package/dist/web-worker/common/worker-schema.d.ts +103 -58
  31. package/dist/web-worker/common/worker-schema.d.ts.map +1 -1
  32. package/dist/web-worker/common/worker-schema.js +48 -36
  33. package/dist/web-worker/common/worker-schema.js.map +1 -1
  34. package/dist/web-worker/leader-worker/make-leader-worker.d.ts +4 -2
  35. package/dist/web-worker/leader-worker/make-leader-worker.d.ts.map +1 -1
  36. package/dist/web-worker/leader-worker/make-leader-worker.js +47 -21
  37. package/dist/web-worker/leader-worker/make-leader-worker.js.map +1 -1
  38. package/dist/web-worker/shared-worker/make-shared-worker.d.ts +2 -1
  39. package/dist/web-worker/shared-worker/make-shared-worker.d.ts.map +1 -1
  40. package/dist/web-worker/shared-worker/make-shared-worker.js +65 -49
  41. package/dist/web-worker/shared-worker/make-shared-worker.js.map +1 -1
  42. package/dist/web-worker/vite-dev-polyfill.js +1 -0
  43. package/dist/web-worker/vite-dev-polyfill.js.map +1 -1
  44. package/package.json +8 -9
  45. package/src/in-memory/in-memory-adapter.ts +36 -20
  46. package/src/web-worker/ambient.d.ts +7 -24
  47. package/src/web-worker/client-session/client-session-devtools.ts +18 -3
  48. package/src/web-worker/client-session/persisted-adapter.ts +112 -59
  49. package/src/web-worker/client-session/sqlite-loader.ts +19 -0
  50. package/src/web-worker/common/persisted-sqlite.ts +219 -113
  51. package/src/web-worker/common/shutdown-channel.ts +10 -3
  52. package/src/web-worker/common/worker-disconnect-channel.ts +10 -3
  53. package/src/web-worker/common/worker-schema.ts +62 -35
  54. package/src/web-worker/leader-worker/make-leader-worker.ts +58 -33
  55. package/src/web-worker/shared-worker/make-shared-worker.ts +95 -75
  56. package/src/web-worker/vite-dev-polyfill.ts +1 -0
  57. package/dist/opfs-utils.d.ts +0 -5
  58. package/dist/opfs-utils.d.ts.map +0 -1
  59. package/dist/opfs-utils.js +0 -43
  60. package/dist/opfs-utils.js.map +0 -1
  61. package/src/opfs-utils.ts +0 -61
package/src/opfs-utils.ts DELETED
@@ -1,61 +0,0 @@
1
- // NOTE we're already firing off this promise call here since we'll need it anyway and need it cached
2
-
3
- import { prettyBytes } from '@livestore/utils'
4
-
5
- // To improve LiveStore compatibility with e.g. Node.js we're guarding for `navigator` / `navigator.storage` to be defined.
6
- export const rootHandlePromise =
7
- typeof navigator === 'undefined' || navigator.storage === undefined
8
- ? // We're using a proxy here to make the promise reject lazy
9
- (new Proxy(
10
- {},
11
- {
12
- get: () =>
13
- Promise.reject(
14
- new Error(`Can't get OPFS root handle in this environment as navigator.storage is undefined`),
15
- ),
16
- },
17
- ) as never)
18
- : navigator.storage.getDirectory()
19
-
20
- export const getDirHandle = async (absDirPath: string | undefined) => {
21
- const rootHandle = await rootHandlePromise
22
- if (absDirPath === undefined) return rootHandle
23
-
24
- let dirHandle = rootHandle
25
- const directoryStack = absDirPath?.split('/').filter(Boolean)
26
- while (directoryStack.length > 0) {
27
- dirHandle = await dirHandle.getDirectoryHandle(directoryStack.shift()!)
28
- }
29
-
30
- return dirHandle
31
- }
32
-
33
- export const printTree = async (
34
- directoryHandle_: FileSystemDirectoryHandle | Promise<FileSystemDirectoryHandle> = rootHandlePromise,
35
- depth: number = Number.POSITIVE_INFINITY,
36
- prefix = '',
37
- ): Promise<void> => {
38
- if (depth < 0) return
39
-
40
- const directoryHandle = await directoryHandle_
41
- const entries = directoryHandle.values()
42
-
43
- for await (const entry of entries) {
44
- const isDirectory = entry.kind === 'directory'
45
- const size = entry.kind === 'file' ? await entry.getFile().then((file) => prettyBytes(file.size)) : undefined
46
- console.log(`${prefix}${isDirectory ? '📁' : '📄'} ${entry.name} ${size ? `(${size})` : ''}`)
47
-
48
- if (isDirectory) {
49
- const nestedDirectoryHandle = await directoryHandle.getDirectoryHandle(entry.name)
50
- await printTree(nestedDirectoryHandle, depth - 1, `${prefix} `)
51
- }
52
- }
53
- }
54
-
55
- export const deleteAll = async (directoryHandle: FileSystemDirectoryHandle) => {
56
- if (directoryHandle.kind !== 'directory') return
57
-
58
- for await (const entryName of directoryHandle.keys()) {
59
- await directoryHandle.removeEntry(entryName, { recursive: true })
60
- }
61
- }