@livestore/utils 0.4.0 → 0.5.0-dev.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 (247) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/NoopTracer.d.ts +7 -8
  3. package/dist/NoopTracer.d.ts.map +1 -1
  4. package/dist/NoopTracer.js +3 -18
  5. package/dist/NoopTracer.js.map +1 -1
  6. package/dist/NoopTracer.test.d.ts +2 -0
  7. package/dist/NoopTracer.test.d.ts.map +1 -0
  8. package/dist/NoopTracer.test.js +17 -0
  9. package/dist/NoopTracer.test.js.map +1 -0
  10. package/dist/browser/Opfs/Opfs.d.ts +179 -29
  11. package/dist/browser/Opfs/Opfs.d.ts.map +1 -1
  12. package/dist/browser/Opfs/Opfs.js +132 -307
  13. package/dist/browser/Opfs/Opfs.js.map +1 -1
  14. package/dist/browser/Opfs/debug-utils.d.ts.map +1 -1
  15. package/dist/browser/Opfs/debug-utils.js +5 -4
  16. package/dist/browser/Opfs/debug-utils.js.map +1 -1
  17. package/dist/browser/Opfs/utils.d.ts +8 -8
  18. package/dist/browser/Opfs/utils.d.ts.map +1 -1
  19. package/dist/browser/Opfs/utils.js +35 -26
  20. package/dist/browser/Opfs/utils.js.map +1 -1
  21. package/dist/browser/QuotaExceededError.d.ts +10 -9
  22. package/dist/browser/QuotaExceededError.d.ts.map +1 -1
  23. package/dist/browser/WebChannelBrowser.d.ts.map +1 -1
  24. package/dist/browser/WebChannelBrowser.js +21 -10
  25. package/dist/browser/WebChannelBrowser.js.map +1 -1
  26. package/dist/browser/WebError.d.ts +54 -86
  27. package/dist/browser/WebError.d.ts.map +1 -1
  28. package/dist/browser/WebError.js +91 -84
  29. package/dist/browser/WebError.js.map +1 -1
  30. package/dist/browser/WebError.test.js +6 -6
  31. package/dist/browser/WebError.test.js.map +1 -1
  32. package/dist/browser/WebLock.d.ts.map +1 -1
  33. package/dist/browser/WebLock.js +13 -13
  34. package/dist/browser/WebLock.js.map +1 -1
  35. package/dist/effect/Debug.d.ts +4 -7
  36. package/dist/effect/Debug.d.ts.map +1 -1
  37. package/dist/effect/Debug.js +32 -36
  38. package/dist/effect/Debug.js.map +1 -1
  39. package/dist/effect/Effect.d.ts +31 -22
  40. package/dist/effect/Effect.d.ts.map +1 -1
  41. package/dist/effect/Effect.js +51 -47
  42. package/dist/effect/Effect.js.map +1 -1
  43. package/dist/effect/Effect.test.d.ts +2 -0
  44. package/dist/effect/Effect.test.d.ts.map +1 -0
  45. package/dist/effect/Effect.test.js +72 -0
  46. package/dist/effect/Effect.test.js.map +1 -0
  47. package/dist/effect/Error.d.ts +4 -6
  48. package/dist/effect/Error.d.ts.map +1 -1
  49. package/dist/effect/Logger.d.ts +0 -6
  50. package/dist/effect/Logger.d.ts.map +1 -1
  51. package/dist/effect/Logger.js +0 -32
  52. package/dist/effect/Logger.js.map +1 -1
  53. package/dist/effect/OtelTracer.d.ts +1 -1
  54. package/dist/effect/OtelTracer.d.ts.map +1 -1
  55. package/dist/effect/OtelTracer.js +2 -3
  56. package/dist/effect/OtelTracer.js.map +1 -1
  57. package/dist/effect/RpcClient.d.ts +7 -7
  58. package/dist/effect/RpcClient.d.ts.map +1 -1
  59. package/dist/effect/RpcClient.js +72 -52
  60. package/dist/effect/RpcClient.js.map +1 -1
  61. package/dist/effect/Schedule.d.ts +1 -1
  62. package/dist/effect/Schedule.d.ts.map +1 -1
  63. package/dist/effect/Schedule.js +2 -2
  64. package/dist/effect/Schedule.js.map +1 -1
  65. package/dist/effect/Schema/debug-diff.d.ts +1 -1
  66. package/dist/effect/Schema/debug-diff.d.ts.map +1 -1
  67. package/dist/effect/Schema/debug-diff.js +5 -7
  68. package/dist/effect/Schema/debug-diff.js.map +1 -1
  69. package/dist/effect/Schema/debug-diff.test.js +7 -4
  70. package/dist/effect/Schema/debug-diff.test.js.map +1 -1
  71. package/dist/effect/Schema/index.d.ts +28 -20
  72. package/dist/effect/Schema/index.d.ts.map +1 -1
  73. package/dist/effect/Schema/index.js +55 -28
  74. package/dist/effect/Schema/index.js.map +1 -1
  75. package/dist/effect/Stream.d.ts +13 -5
  76. package/dist/effect/Stream.d.ts.map +1 -1
  77. package/dist/effect/Stream.js +19 -12
  78. package/dist/effect/Stream.js.map +1 -1
  79. package/dist/effect/Stream.test.js +9 -9
  80. package/dist/effect/Stream.test.js.map +1 -1
  81. package/dist/effect/Subscribable.d.ts +9 -3
  82. package/dist/effect/Subscribable.d.ts.map +1 -1
  83. package/dist/effect/Subscribable.js +20 -35
  84. package/dist/effect/Subscribable.js.map +1 -1
  85. package/dist/effect/SubscriptionRef.d.ts +5 -6
  86. package/dist/effect/SubscriptionRef.d.ts.map +1 -1
  87. package/dist/effect/SubscriptionRef.js +2 -3
  88. package/dist/effect/SubscriptionRef.js.map +1 -1
  89. package/dist/effect/TaskTracing.d.ts +1 -1
  90. package/dist/effect/TaskTracing.d.ts.map +1 -1
  91. package/dist/effect/TaskTracing.js +12 -16
  92. package/dist/effect/TaskTracing.js.map +1 -1
  93. package/dist/effect/WebChannel/WebChannel.d.ts +7 -7
  94. package/dist/effect/WebChannel/WebChannel.d.ts.map +1 -1
  95. package/dist/effect/WebChannel/WebChannel.js +64 -43
  96. package/dist/effect/WebChannel/WebChannel.js.map +1 -1
  97. package/dist/effect/WebChannel/WebChannel.test.js +15 -15
  98. package/dist/effect/WebChannel/WebChannel.test.js.map +1 -1
  99. package/dist/effect/WebChannel/broadcastChannelWithAck.d.ts.map +1 -1
  100. package/dist/effect/WebChannel/broadcastChannelWithAck.js +16 -9
  101. package/dist/effect/WebChannel/broadcastChannelWithAck.js.map +1 -1
  102. package/dist/effect/WebChannel/common.d.ts +16 -17
  103. package/dist/effect/WebChannel/common.d.ts.map +1 -1
  104. package/dist/effect/WebChannel/common.js +6 -6
  105. package/dist/effect/WebChannel/common.js.map +1 -1
  106. package/dist/effect/WebSocket.d.ts +4 -6
  107. package/dist/effect/WebSocket.d.ts.map +1 -1
  108. package/dist/effect/WebSocket.js +4 -4
  109. package/dist/effect/WebSocket.js.map +1 -1
  110. package/dist/effect/WebSocket.test.js +2 -2
  111. package/dist/effect/WebSocket.test.js.map +1 -1
  112. package/dist/effect/mod.browser-build.test.d.ts +2 -0
  113. package/dist/effect/mod.browser-build.test.d.ts.map +1 -0
  114. package/dist/effect/mod.browser-build.test.js +18 -0
  115. package/dist/effect/mod.browser-build.test.js.map +1 -0
  116. package/dist/effect/mod.d.ts +13 -15
  117. package/dist/effect/mod.d.ts.map +1 -1
  118. package/dist/effect/mod.js +13 -18
  119. package/dist/effect/mod.js.map +1 -1
  120. package/dist/effect/spanEvent.d.ts.map +1 -1
  121. package/dist/effect/spanEvent.js +2 -2
  122. package/dist/effect/spanEvent.js.map +1 -1
  123. package/dist/effect/spanEvent.test.js +10 -13
  124. package/dist/effect/spanEvent.test.js.map +1 -1
  125. package/dist/fast-deep-equal.d.ts.map +1 -1
  126. package/dist/fast-deep-equal.js +1 -2
  127. package/dist/fast-deep-equal.js.map +1 -1
  128. package/dist/misc.js +2 -2
  129. package/dist/misc.js.map +1 -1
  130. package/dist/mod.d.ts +0 -35
  131. package/dist/mod.d.ts.map +1 -1
  132. package/dist/mod.js +0 -8
  133. package/dist/mod.js.map +1 -1
  134. package/dist/node/mod.d.ts +17 -11
  135. package/dist/node/mod.d.ts.map +1 -1
  136. package/dist/node/mod.js +23 -16
  137. package/dist/node/mod.js.map +1 -1
  138. package/dist/object/index.d.ts +0 -9
  139. package/dist/object/index.d.ts.map +1 -1
  140. package/dist/object/index.js +0 -9
  141. package/dist/object/index.js.map +1 -1
  142. package/dist/string.d.ts +0 -2
  143. package/dist/string.d.ts.map +1 -1
  144. package/dist/string.js +0 -2
  145. package/dist/string.js.map +1 -1
  146. package/package.json +18 -36
  147. package/src/NoopTracer.test.ts +20 -0
  148. package/src/NoopTracer.ts +18 -41
  149. package/src/browser/Opfs/Opfs.ts +304 -277
  150. package/src/browser/Opfs/debug-utils.ts +7 -6
  151. package/src/browser/Opfs/utils.ts +36 -26
  152. package/src/browser/QuotaExceededError.ts +13 -10
  153. package/src/browser/WebChannelBrowser.ts +25 -11
  154. package/src/browser/WebError.test.ts +6 -6
  155. package/src/browser/WebError.ts +107 -133
  156. package/src/browser/WebLock.ts +13 -14
  157. package/src/effect/Debug.ts +66 -59
  158. package/src/effect/Effect.test.ts +117 -0
  159. package/src/effect/Effect.ts +84 -71
  160. package/src/effect/Logger.ts +0 -48
  161. package/src/effect/OtelTracer.ts +2 -3
  162. package/src/effect/RpcClient.ts +80 -61
  163. package/src/effect/Schedule.ts +4 -5
  164. package/src/effect/Schema/debug-diff.test.ts +6 -6
  165. package/src/effect/Schema/debug-diff.ts +6 -8
  166. package/src/effect/Schema/index.ts +122 -61
  167. package/src/effect/Stream.test.ts +9 -9
  168. package/src/effect/Stream.ts +23 -16
  169. package/src/effect/Subscribable.ts +31 -42
  170. package/src/effect/SubscriptionRef.ts +8 -12
  171. package/src/effect/TaskTracing.ts +13 -16
  172. package/src/effect/WebChannel/WebChannel.test.ts +23 -23
  173. package/src/effect/WebChannel/WebChannel.ts +87 -55
  174. package/src/effect/WebChannel/broadcastChannelWithAck.ts +21 -11
  175. package/src/effect/WebChannel/common.ts +14 -15
  176. package/src/effect/WebSocket.test.ts +2 -2
  177. package/src/effect/WebSocket.ts +9 -6
  178. package/src/effect/mod.browser-build.test.ts +19 -0
  179. package/src/effect/mod.ts +35 -69
  180. package/src/effect/spanEvent.test.ts +10 -13
  181. package/src/effect/spanEvent.ts +5 -3
  182. package/src/fast-deep-equal.ts +1 -2
  183. package/src/misc.ts +2 -2
  184. package/src/mod.ts +0 -36
  185. package/src/node/mod.ts +26 -20
  186. package/src/object/index.ts +0 -24
  187. package/src/string.ts +0 -3
  188. package/dist/effect/BucketQueue.d.ts +0 -20
  189. package/dist/effect/BucketQueue.d.ts.map +0 -1
  190. package/dist/effect/BucketQueue.js +0 -34
  191. package/dist/effect/BucketQueue.js.map +0 -1
  192. package/dist/effect/Scheduler.d.ts +0 -4
  193. package/dist/effect/Scheduler.d.ts.map +0 -1
  194. package/dist/effect/Scheduler.js +0 -9
  195. package/dist/effect/Scheduler.js.map +0 -1
  196. package/dist/effect/ServiceContext.d.ts +0 -37
  197. package/dist/effect/ServiceContext.d.ts.map +0 -1
  198. package/dist/effect/ServiceContext.js +0 -55
  199. package/dist/effect/ServiceContext.js.map +0 -1
  200. package/dist/guards.d.ts +0 -20
  201. package/dist/guards.d.ts.map +0 -1
  202. package/dist/guards.js +0 -20
  203. package/dist/guards.js.map +0 -1
  204. package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts +0 -4
  205. package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts.map +0 -1
  206. package/dist/node/ChildProcessRunner/ChildProcessRunner.js +0 -128
  207. package/dist/node/ChildProcessRunner/ChildProcessRunner.js.map +0 -1
  208. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.d.ts +0 -10
  209. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.d.ts.map +0 -1
  210. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js +0 -217
  211. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js.map +0 -1
  212. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts +0 -84
  213. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts.map +0 -1
  214. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.js +0 -68
  215. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.js.map +0 -1
  216. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.d.ts +0 -2
  217. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.d.ts.map +0 -1
  218. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js +0 -52
  219. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js.map +0 -1
  220. package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts +0 -23
  221. package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts.map +0 -1
  222. package/dist/node/ChildProcessRunner/ChildProcessWorker.js +0 -138
  223. package/dist/node/ChildProcessRunner/ChildProcessWorker.js.map +0 -1
  224. package/dist/object/omit.d.ts +0 -3
  225. package/dist/object/omit.d.ts.map +0 -1
  226. package/dist/object/omit.js +0 -14
  227. package/dist/object/omit.js.map +0 -1
  228. package/dist/object/pick.d.ts +0 -14
  229. package/dist/object/pick.d.ts.map +0 -1
  230. package/dist/object/pick.js +0 -17
  231. package/dist/object/pick.js.map +0 -1
  232. package/dist/time.d.ts +0 -12
  233. package/dist/time.d.ts.map +0 -1
  234. package/dist/time.js +0 -22
  235. package/dist/time.js.map +0 -1
  236. package/src/effect/BucketQueue.ts +0 -49
  237. package/src/effect/Scheduler.ts +0 -13
  238. package/src/effect/ServiceContext.ts +0 -108
  239. package/src/guards.ts +0 -23
  240. package/src/node/ChildProcessRunner/ChildProcessRunner.ts +0 -148
  241. package/src/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.ts +0 -311
  242. package/src/node/ChildProcessRunner/ChildProcessRunnerTest/schema.ts +0 -78
  243. package/src/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.ts +0 -65
  244. package/src/node/ChildProcessRunner/ChildProcessWorker.ts +0 -169
  245. package/src/object/omit.ts +0 -17
  246. package/src/object/pick.ts +0 -27
  247. package/src/time.ts +0 -25
@@ -1,314 +1,139 @@
1
1
  /// <reference lib="webworker" />
2
- import { Effect, Option, Schema, Stream } from 'effect';
2
+ import { Context, Effect, Layer, Option, Schema, Stream } from 'effect';
3
3
  import * as WebError from "../WebError.js";
4
- /**
5
- * Effect service that exposes ergonomic wrappers around Origin Private File System (OPFS) operations.
6
- *
7
- * @remarks
8
- * - Helpers mirror the File System Access API where possible and parse web exceptions into Effect errors.
9
- * - Sync access handle helpers can only be used in dedicated workers; invoking them in other contexts fails at runtime.
10
- *
11
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Origin_private_file_system | MDN Reference}
12
- */
13
- export class Opfs extends Effect.Service()('@livestore/utils/Opfs', {
14
- sync: () => {
15
- /**
16
- * Acquire the OPFS root directory handle.
17
- *
18
- * @returns Root directory handle for the current origin.
19
- *
20
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/getDirectory | MDN Reference}
21
- */
22
- const getRootDirectoryHandle = Effect.tryPromise({
23
- try: () => navigator.storage.getDirectory(),
24
- catch: (u) => WebError.parseWebError(u, [WebError.SecurityError]),
25
- });
26
- /**
27
- * Resolve (and optionally create) a file handle relative to a directory.
28
- *
29
- * @param parent - Directory to search.
30
- * @param name - Target file name.
31
- * @param options - Forwarded `getFileHandle` options such as `{ create: true }`.
32
- *
33
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle/getFileHandle | MDN Reference}
34
- */
35
- const getFileHandle = (parent, name, options) => Effect.tryPromise({
36
- try: () => parent.getFileHandle(name, options),
37
- catch: (u) => WebError.parseWebError(u, [
38
- WebError.NotAllowedError,
39
- WebError.TypeError,
40
- WebError.TypeMismatchError,
41
- WebError.NotFoundError,
42
- ]),
43
- });
44
- /**
45
- * Resolve (and optionally create) a directory handle relative to another directory.
46
- *
47
- * @param parent - Directory to search.
48
- * @param name - Target directory name.
49
- * @param options - Forwarded `getDirectoryHandle` options such as `{ create: true }`.
50
- *
51
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle/getDirectoryHandle | MDN Reference}
52
- */
53
- const getDirectoryHandle = (parent, name, options) => Effect.tryPromise({
54
- try: () => parent.getDirectoryHandle(name, options),
55
- catch: (u) => WebError.parseWebError(u, [
56
- WebError.NotAllowedError,
57
- WebError.TypeError,
58
- WebError.TypeMismatchError,
59
- WebError.NotFoundError,
60
- ]),
61
- });
62
- /**
63
- * Remove a file-system entry (file or directory) from its parent directory.
64
- *
65
- * @param parent - Directory containing the entry.
66
- * @param name - Entry name.
67
- * @param options - Removal behavior (for example `{ recursive: true }`).
68
- *
69
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle/removeEntry | MDN Reference}
70
- */
71
- const removeEntry = (parent, name, options) => Effect.tryPromise({
72
- try: () => parent.removeEntry(name, options),
73
- catch: (u) => WebError.parseWebError(u, [
74
- WebError.TypeError,
75
- WebError.NotAllowedError,
76
- WebError.InvalidModificationError,
77
- WebError.NotFoundError,
78
- WebError.NoModificationAllowedError,
79
- ]),
80
- });
81
- /**
82
- * Return a stream of child file-system handles for a directory.
83
- *
84
- * @param directory - Directory whose children are to be streamed
85
- * @returns `Stream` of `FileSystemHandle`
86
- *
87
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle/values | MDN Reference}
88
- */
89
- const values = (directory) => Stream.fromAsyncIterable(directory.values(), (u) => WebError.parseWebError(u, [WebError.NotAllowedError, WebError.NotFoundError]));
90
- /**
91
- * Resolve the relative path from a parent directory to a descendant handle.
92
- *
93
- * @param parent - Reference directory.
94
- * @param child - File or directory handle within the parent hierarchy.
95
- * @returns `Option.some(pathSegments)` when reachable, otherwise `Option.none()`.
96
- *
97
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle/resolve | MDN Reference}
98
- */
99
- const resolve = (parent, child) => Effect.tryPromise({
100
- try: () => parent.resolve(child),
101
- catch: (u) => WebError.parseWebError(u),
102
- }).pipe(Effect.map((path) => (path === null ? Option.none() : Option.some(path))));
103
- /**
104
- * Read the underlying `File` for a file handle.
105
- *
106
- * @param handle - Handle referencing the target file.
107
- *
108
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle/getFile | MDN Reference}
109
- */
110
- const getFile = (handle) => Effect.tryPromise({
4
+ export class Opfs extends Context.Service()('@livestore/utils/Opfs') {
5
+ }
6
+ export const layer = Layer.succeed(Opfs, Opfs.of({
7
+ getRootDirectoryHandle: Effect.tryPromise({
8
+ try: () => navigator.storage.getDirectory(),
9
+ catch: (u) => WebError.classifyWebError(u, [WebError.SecurityError]),
10
+ }),
11
+ getFileHandle: (parent, name, options) => Effect.tryPromise({
12
+ try: () => parent.getFileHandle(name, options),
13
+ catch: (u) => WebError.classifyWebError(u, [
14
+ WebError.NotAllowedError,
15
+ WebError.TypeError,
16
+ WebError.TypeMismatchError,
17
+ WebError.NotFoundError,
18
+ ]),
19
+ }),
20
+ getDirectoryHandle: (parent, name, options) => Effect.tryPromise({
21
+ try: () => parent.getDirectoryHandle(name, options),
22
+ catch: (u) => WebError.classifyWebError(u, [
23
+ WebError.NotAllowedError,
24
+ WebError.TypeError,
25
+ WebError.TypeMismatchError,
26
+ WebError.NotFoundError,
27
+ ]),
28
+ }),
29
+ removeEntry: (parent, name, options) => Effect.tryPromise({
30
+ try: () => parent.removeEntry(name, options),
31
+ catch: (u) => WebError.classifyWebError(u, [
32
+ WebError.TypeError,
33
+ WebError.NotAllowedError,
34
+ WebError.InvalidModificationError,
35
+ WebError.NotFoundError,
36
+ WebError.NoModificationAllowedError,
37
+ ]),
38
+ }),
39
+ values: (directory) => Stream.fromAsyncIterable(directory.values(), (u) => WebError.classifyWebError(u, [WebError.NotAllowedError, WebError.NotFoundError])),
40
+ resolve: (parent, child) => Effect.tryPromise({
41
+ try: () => parent.resolve(child),
42
+ catch: (u) => WebError.classifyWebError(u),
43
+ }).pipe(Effect.map((path) => (path === null ? Option.none() : Option.some(path)))),
44
+ getFile: (handle) => Effect.tryPromise({
45
+ try: () => handle.getFile(),
46
+ catch: (u) => WebError.classifyWebError(u, [WebError.NotAllowedError, WebError.NotFoundError]),
47
+ }),
48
+ writeFile: (handle, data, options) => Effect.acquireUseRelease(Effect.tryPromise({
49
+ try: () => handle.createWritable(options),
50
+ catch: (u) => WebError.classifyWebError(u, [
51
+ WebError.NotAllowedError,
52
+ WebError.NotFoundError,
53
+ WebError.NoModificationAllowedError,
54
+ WebError.AbortError,
55
+ ]),
56
+ }), (stream) => Effect.tryPromise({
57
+ try: () => stream.write(data),
58
+ catch: (u) => WebError.classifyWebError(u, [WebError.NotAllowedError, WebError.QuotaExceededError, WebError.TypeError]),
59
+ }), (stream) => Effect.tryPromise({
60
+ try: () => stream.close(),
61
+ catch: (u) => WebError.classifyWebError(u, [WebError.TypeError]),
62
+ }).pipe(Effect.catchCause(() => Effect.void))),
63
+ appendToFile: (handle, data) => Effect.acquireUseRelease(Effect.tryPromise({
64
+ try: () => handle.createWritable({ keepExistingData: true }),
65
+ catch: (u) => WebError.classifyWebError(u, [
66
+ WebError.NotAllowedError,
67
+ WebError.NotFoundError,
68
+ WebError.NoModificationAllowedError,
69
+ WebError.AbortError,
70
+ ]),
71
+ }), (stream) => Effect.gen(function* () {
72
+ const file = yield* Effect.tryPromise({
111
73
  try: () => handle.getFile(),
112
- catch: (u) => WebError.parseWebError(u, [WebError.NotAllowedError, WebError.NotFoundError]),
74
+ catch: (u) => WebError.classifyWebError(u, [WebError.NotAllowedError, WebError.NotFoundError]),
113
75
  });
114
- /**
115
- * Overwrite the contents of a file with the provided data.
116
- *
117
- * @param handle - File to write to.
118
- * @param data - Chunk(s) accepted by `FileSystemWritableFileStream.write`.
119
- * @param options - Stream creation options (for example `{ keepExistingData: false }`).
120
- *
121
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle/createWritable | MDN Reference}
122
- */
123
- const writeFile = (handle, data, options) => Effect.acquireUseRelease(Effect.tryPromise({
124
- try: () => handle.createWritable(options),
125
- catch: (u) => WebError.parseWebError(u, [
126
- WebError.NotAllowedError,
127
- WebError.NotFoundError,
128
- WebError.NoModificationAllowedError,
129
- WebError.AbortError,
130
- ]),
131
- }), (stream) => Effect.tryPromise({
76
+ yield* Effect.tryPromise({
77
+ try: () => stream.seek(file.size),
78
+ catch: (u) => WebError.classifyWebError(u, [WebError.NotAllowedError, WebError.TypeError]),
79
+ });
80
+ yield* Effect.tryPromise({
132
81
  try: () => stream.write(data),
133
- catch: (u) => WebError.parseWebError(u, [WebError.NotAllowedError, WebError.QuotaExceededError, WebError.TypeError]),
134
- }), (stream) => Effect.tryPromise({
135
- try: () => stream.close(),
136
- catch: (u) => WebError.parseWebError(u, [WebError.TypeError]),
137
- }).pipe(Effect.orElse(() => Effect.void)));
138
- /**
139
- * Append data to the end of an existing file.
140
- *
141
- * @param handle - File to extend.
142
- * @param data - Data to append.
143
- *
144
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write | MDN Reference}
145
- */
146
- const appendToFile = (handle, data) => Effect.acquireUseRelease(Effect.tryPromise({
147
- try: () => handle.createWritable({ keepExistingData: true }),
148
- catch: (u) => WebError.parseWebError(u, [
149
- WebError.NotAllowedError,
150
- WebError.NotFoundError,
151
- WebError.NoModificationAllowedError,
152
- WebError.AbortError,
153
- ]),
154
- }), (stream) => Effect.gen(function* () {
155
- const file = yield* getFile(handle);
156
- yield* Effect.tryPromise({
157
- try: () => stream.seek(file.size),
158
- catch: (u) => WebError.parseWebError(u, [WebError.NotAllowedError, WebError.TypeError]),
159
- });
160
- yield* Effect.tryPromise({
161
- try: () => stream.write(data),
162
- catch: (u) => WebError.parseWebError(u, [WebError.NotAllowedError, WebError.QuotaExceededError, WebError.TypeError]),
163
- });
164
- }), (stream) => Effect.tryPromise({
165
- try: () => stream.close(),
166
- catch: (u) => WebError.parseWebError(u, [WebError.TypeError]),
167
- }).pipe(Effect.orElse(() => Effect.void)));
168
- /**
169
- * Truncate a file to the specified size in bytes.
170
- *
171
- * @param handle - File to shrink or pad.
172
- * @param size - Target byte length.
173
- *
174
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/truncate | MDN Reference}
175
- */
176
- const truncateFile = (handle, size) => Effect.acquireUseRelease(Effect.tryPromise({
177
- try: () => handle.createWritable({ keepExistingData: true }),
178
- catch: (u) => WebError.parseWebError(u, [
179
- WebError.NotAllowedError,
180
- WebError.NotFoundError,
181
- WebError.NoModificationAllowedError,
182
- WebError.AbortError,
183
- ]),
184
- }), (stream) => Effect.tryPromise({
185
- try: () => stream.truncate(size),
186
- catch: (u) => WebError.parseWebError(u, [WebError.NotAllowedError, WebError.TypeError, WebError.QuotaExceededError]),
187
- }), (stream) => Effect.tryPromise({
188
- try: () => stream.close(),
189
- catch: (u) => WebError.parseWebError(u, [WebError.TypeError]),
190
- }).pipe(Effect.orElse(() => Effect.void)));
191
- /**
192
- * Create a synchronous access handle for a file.
193
- *
194
- * @param handle - File handle to open.
195
- * @returns A managed handle that is automatically closed when released.
196
- *
197
- * @remarks
198
- * - Only available in Dedicated Web Workers.
199
- * - This method is asynchronous even though the `FileSystemSyncAccessHandle` APIs are synchronous.
200
- *
201
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle/createSyncAccessHandle | MDN Reference}
202
- */
203
- const createSyncAccessHandle = (handle) => Effect.acquireRelease(Effect.tryPromise({
204
- try: () => handle.createSyncAccessHandle(),
205
- catch: (u) => WebError.parseWebError(u, [
82
+ catch: (u) => WebError.classifyWebError(u, [
206
83
  WebError.NotAllowedError,
207
- WebError.InvalidStateError,
208
- WebError.NotFoundError,
209
- WebError.NoModificationAllowedError,
84
+ WebError.QuotaExceededError,
85
+ WebError.TypeError,
210
86
  ]),
211
- }), (syncHandle) => Effect.sync(() => syncHandle.close()));
212
- /**
213
- * Perform a synchronous read into the provided buffer from a sync access handle.
214
- *
215
- * @param handle - Sync access handle to read from.
216
- * @param buffer - Destination buffer (can be a specific view like Uint8Array).
217
- * @param options - Read position options.
218
- * @returns Number of bytes read.
219
- *
220
- * @remarks
221
- * Only available in Dedicated Web Workers.
222
- *
223
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemSyncAccessHandle/read | MDN Reference}
224
- */
225
- const syncRead = (handle, buffer, options) => Effect.try({
226
- try: () => handle.read(buffer, options),
227
- catch: (u) => WebError.parseWebError(u, [WebError.RangeError, WebError.InvalidStateError, WebError.TypeError]),
228
87
  });
229
- /**
230
- * Perform a synchronous write from the provided buffer into the file.
231
- *
232
- * @param handle - Sync access handle to write to.
233
- * @param buffer - Source data.
234
- * @param options - Write position options.
235
- * @returns Number of bytes written.
236
- *
237
- * @remarks
238
- * Only available in Dedicated Web Workers.
239
- *
240
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemSyncAccessHandle/write | MDN Reference}
241
- */
242
- const syncWrite = (handle, buffer, options) => Effect.try({
243
- try: () => handle.write(buffer, options),
244
- catch: (u) => WebError.parseWebError(u),
245
- });
246
- /**
247
- * Truncate the file associated with a sync access handle to the specified size.
248
- *
249
- * @param handle - Sync access handle to mutate.
250
- * @param size - Desired byte length.
251
- *
252
- * @remarks
253
- * Only available in Dedicated Web Workers.
254
- *
255
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemSyncAccessHandle/truncate | MDN Reference}
256
- */
257
- const syncTruncate = (handle, size) => Effect.try({
258
- try: () => handle.truncate(size),
259
- catch: (u) => WebError.parseWebError(u),
260
- });
261
- /**
262
- * Retrieve the current size of a file via its sync access handle.
263
- *
264
- * @param handle - Sync access handle.
265
- * @returns File size in bytes.
266
- *
267
- * @remarks
268
- * Only available in Dedicated Web Workers.
269
- *
270
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemSyncAccessHandle/getSize | MDN Reference}
271
- */
272
- const syncGetSize = (handle) => Effect.try({
273
- try: () => handle.getSize(),
274
- catch: (u) => WebError.parseWebError(u),
275
- });
276
- /**
277
- * Flush pending synchronous writes to durable storage.
278
- *
279
- * @param handle - Sync access handle to flush.
280
- *
281
- * @remarks
282
- * Only available in Dedicated Web Workers.
283
- *
284
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/FileSystemSyncAccessHandle/flush | MDN Reference}
285
- */
286
- const syncFlush = (handle) => Effect.try({
287
- try: () => handle.flush(),
288
- catch: (u) => WebError.parseWebError(u),
289
- });
290
- return {
291
- getRootDirectoryHandle,
292
- getFileHandle,
293
- getDirectoryHandle,
294
- removeEntry,
295
- values,
296
- resolve,
297
- getFile,
298
- writeFile,
299
- appendToFile,
300
- truncateFile,
301
- createSyncAccessHandle,
302
- syncRead,
303
- syncWrite,
304
- syncTruncate,
305
- syncGetSize,
306
- syncFlush,
307
- };
308
- },
309
- accessors: true,
310
- }) {
311
- }
88
+ }), (stream) => Effect.tryPromise({
89
+ try: () => stream.close(),
90
+ catch: (u) => WebError.classifyWebError(u, [WebError.TypeError]),
91
+ }).pipe(Effect.catchCause(() => Effect.void))),
92
+ truncateFile: (handle, size) => Effect.acquireUseRelease(Effect.tryPromise({
93
+ try: () => handle.createWritable({ keepExistingData: true }),
94
+ catch: (u) => WebError.classifyWebError(u, [
95
+ WebError.NotAllowedError,
96
+ WebError.NotFoundError,
97
+ WebError.NoModificationAllowedError,
98
+ WebError.AbortError,
99
+ ]),
100
+ }), (stream) => Effect.tryPromise({
101
+ try: () => stream.truncate(size),
102
+ catch: (u) => WebError.classifyWebError(u, [WebError.NotAllowedError, WebError.TypeError, WebError.QuotaExceededError]),
103
+ }), (stream) => Effect.tryPromise({
104
+ try: () => stream.close(),
105
+ catch: (u) => WebError.classifyWebError(u, [WebError.TypeError]),
106
+ }).pipe(Effect.catchCause(() => Effect.void))),
107
+ createSyncAccessHandle: (handle) => Effect.acquireRelease(Effect.tryPromise({
108
+ try: () => handle.createSyncAccessHandle(),
109
+ catch: (u) => WebError.classifyWebError(u, [
110
+ WebError.NotAllowedError,
111
+ WebError.InvalidStateError,
112
+ WebError.NotFoundError,
113
+ WebError.NoModificationAllowedError,
114
+ ]),
115
+ }), (syncHandle) => Effect.sync(() => syncHandle.close())),
116
+ syncRead: (handle, buffer, options) => Effect.try({
117
+ try: () => handle.read(buffer, options),
118
+ catch: (u) => WebError.classifyWebError(u, [WebError.RangeError, WebError.InvalidStateError, WebError.TypeError]),
119
+ }),
120
+ syncWrite: (handle, buffer, options) => Effect.try({
121
+ try: () => handle.write(buffer, options),
122
+ catch: (u) => WebError.classifyWebError(u),
123
+ }),
124
+ syncTruncate: (handle, size) => Effect.try({
125
+ try: () => handle.truncate(size),
126
+ catch: (u) => WebError.classifyWebError(u),
127
+ }),
128
+ syncGetSize: (handle) => Effect.try({
129
+ try: () => handle.getSize(),
130
+ catch: (u) => WebError.classifyWebError(u),
131
+ }),
132
+ syncFlush: (handle) => Effect.try({
133
+ try: () => handle.flush(),
134
+ catch: (u) => WebError.classifyWebError(u),
135
+ }),
136
+ }));
312
137
  const notFoundError = new WebError.NotFoundError({
313
138
  cause: new DOMException('The object can not be found here.', 'NotFoundError'),
314
139
  });
@@ -316,12 +141,12 @@ const unknownError = (message) => new WebError.UnknownError({ description: messa
316
141
  /**
317
142
  * A no-op Opfs service that can be used for testing.
318
143
  */
319
- export const noopOpfs = new Opfs({
144
+ export const layerNoop = Layer.succeed(Opfs, Opfs.of({
320
145
  getRootDirectoryHandle: Effect.fail(unknownError('OPFS is not supported in this environment')),
321
146
  getFileHandle: () => Effect.fail(notFoundError),
322
147
  getDirectoryHandle: () => Effect.fail(notFoundError),
323
148
  removeEntry: () => Effect.fail(notFoundError),
324
- values: () => Effect.fail(notFoundError),
149
+ values: () => Stream.fail(notFoundError),
325
150
  resolve: () => Effect.succeed(Option.none()),
326
151
  getFile: () => Effect.fail(notFoundError),
327
152
  writeFile: () => Effect.fail(notFoundError),
@@ -333,13 +158,13 @@ export const noopOpfs = new Opfs({
333
158
  syncTruncate: () => Effect.fail(unknownError('OPFS is not supported in this environment')),
334
159
  syncGetSize: () => Effect.fail(unknownError('OPFS is not supported in this environment')),
335
160
  syncFlush: () => Effect.fail(unknownError('OPFS is not supported in this environment')),
336
- });
161
+ }));
337
162
  /**
338
163
  * Error raised when OPFS operations fail.
339
164
  */
340
165
  export class OpfsError extends Schema.TaggedError('~@livestore/utils/OpfsError')('OpfsError', {
341
166
  message: Schema.String,
342
- cause: Schema.optional(Schema.Defect),
167
+ cause: Schema.optional(Schema.Defect()),
343
168
  }) {
344
169
  }
345
170
  //# sourceMappingURL=Opfs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Opfs.js","sourceRoot":"","sources":["../../../src/browser/Opfs/Opfs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Opfs.js","sourceRoot":"","sources":["../../../src/browser/Opfs/Opfs.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAc,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEnF,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAyN1C,MAAM,OAAO,IAAK,SAAQ,OAAO,CAAC,OAAO,EAAiB,CAAC,uBAAuB,CAAC;CAAG;AAEtF,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAChC,IAAI,EACJ,IAAI,CAAC,EAAE,CAAC;IACN,sBAAsB,EAAE,MAAM,CAAC,UAAU,CAAC;QACxC,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE;QAC3C,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;KACrE,CAAC;IACF,aAAa,EAAE,CAAC,MAAiC,EAAE,IAAY,EAAE,OAAkC,EAAE,EAAE,CACrG,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;QAC9C,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE;YAC3B,QAAQ,CAAC,eAAe;YACxB,QAAQ,CAAC,SAAS;YAClB,QAAQ,CAAC,iBAAiB;YAC1B,QAAQ,CAAC,aAAa;SACvB,CAAC;KACL,CAAC;IACJ,kBAAkB,EAAE,CAAC,MAAiC,EAAE,IAAY,EAAE,OAAuC,EAAE,EAAE,CAC/G,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC;QACnD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE;YAC3B,QAAQ,CAAC,eAAe;YACxB,QAAQ,CAAC,SAAS;YAClB,QAAQ,CAAC,iBAAiB;YAC1B,QAAQ,CAAC,aAAa;SACvB,CAAC;KACL,CAAC;IACJ,WAAW,EAAE,CAAC,MAAiC,EAAE,IAAY,EAAE,OAAiC,EAAE,EAAE,CAClG,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;QAC5C,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE;YAC3B,QAAQ,CAAC,SAAS;YAClB,QAAQ,CAAC,eAAe;YACxB,QAAQ,CAAC,wBAAwB;YACjC,QAAQ,CAAC,aAAa;YACtB,QAAQ,CAAC,0BAA0B;SACpC,CAAC;KACL,CAAC;IACJ,MAAM,EAAE,CACN,SAAoC,EAKpC,EAAE,CACF,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CACjD,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CACjF;IACH,OAAO,EAAE,CAAC,MAAiC,EAAE,KAAuB,EAAE,EAAE,CACtE,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAChC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAC3C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpF,OAAO,EAAE,CAAC,MAA4B,EAAE,EAAE,CACxC,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE;QAC3B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;KAC/F,CAAC;IACJ,SAAS,EAAE,CACT,MAA4B,EAC5B,IAA8B,EAC9B,OAAyC,EACzC,EAAE,CACF,MAAM,CAAC,iBAAiB,CACtB,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC;QACzC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE;YAC3B,QAAQ,CAAC,eAAe;YACxB,QAAQ,CAAC,aAAa;YACtB,QAAQ,CAAC,0BAA0B;YACnC,QAAQ,CAAC,UAAU;SACpB,CAAC;KACL,CAAC,EACF,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;KAC5G,CAAC,EACJ,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;QACzB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KACjE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAChD;IACH,YAAY,EAAE,CAAC,MAA4B,EAAE,IAA8B,EAAE,EAAE,CAC7E,MAAM,CAAC,iBAAiB,CACtB,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;QAC5D,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE;YAC3B,QAAQ,CAAC,eAAe;YACxB,QAAQ,CAAC,aAAa;YACtB,QAAQ,CAAC,0BAA0B;YACnC,QAAQ,CAAC,UAAU;SACpB,CAAC;KACL,CAAC,EACF,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YACpC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE;YAC3B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;SAC/F,CAAC,CAAA;QACF,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YACvB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;SAC3F,CAAC,CAAA;QACF,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YACvB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE;gBAC3B,QAAQ,CAAC,eAAe;gBACxB,QAAQ,CAAC,kBAAkB;gBAC3B,QAAQ,CAAC,SAAS;aACnB,CAAC;SACL,CAAC,CAAA;IACJ,CAAC,CAAC,EACJ,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;QACzB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KACjE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAChD;IACH,YAAY,EAAE,CAAC,MAA4B,EAAE,IAAY,EAAE,EAAE,CAC3D,MAAM,CAAC,iBAAiB,CACtB,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;QAC5D,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE;YAC3B,QAAQ,CAAC,eAAe;YACxB,QAAQ,CAAC,aAAa;YACtB,QAAQ,CAAC,0BAA0B;YACnC,QAAQ,CAAC,UAAU;SACpB,CAAC;KACL,CAAC,EACF,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;KAC5G,CAAC,EACJ,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;QACzB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KACjE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAChD;IACH,sBAAsB,EAAE,CAAC,MAA4B,EAAE,EAAE,CACvD,MAAM,CAAC,cAAc,CACnB,MAAM,CAAC,UAAU,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,EAAE;QAC1C,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE;YAC3B,QAAQ,CAAC,eAAe;YACxB,QAAQ,CAAC,iBAAiB;YAC1B,QAAQ,CAAC,aAAa;YACtB,QAAQ,CAAC,0BAA0B;SACpC,CAAC;KACL,CAAC,EACF,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CACtD;IACH,QAAQ,EAAE,CACR,MAAkC,EAClC,MAAqC,EACrC,OAAoC,EACpC,EAAE,CACF,MAAM,CAAC,GAAG,CAAC;QACT,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;QACvC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;KACtG,CAAC;IACJ,SAAS,EAAE,CACT,MAAkC,EAClC,MAA+B,EAC/B,OAAoC,EACpC,EAAE,CACF,MAAM,CAAC,GAAG,CAAC;QACT,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;QACxC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAC3C,CAAC;IACJ,YAAY,EAAE,CAAC,MAAkC,EAAE,IAAY,EAAE,EAAE,CACjE,MAAM,CAAC,GAAG,CAAC;QACT,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAC3C,CAAC;IACJ,WAAW,EAAE,CAAC,MAAkC,EAAE,EAAE,CAClD,MAAM,CAAC,GAAG,CAAC;QACT,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE;QAC3B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAC3C,CAAC;IACJ,SAAS,EAAE,CAAC,MAAkC,EAAE,EAAE,CAChD,MAAM,CAAC,GAAG,CAAC;QACT,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;QACzB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAC3C,CAAC;CACL,CAAC,CACH,CAAA;AAED,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,aAAa,CAAC;IAC/C,KAAK,EAAE,IAAI,YAAY,CAAC,mCAAmC,EAAE,eAAe,CAAC;CAC9E,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;AAE7F;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CACpC,IAAI,EACJ,IAAI,CAAC,EAAE,CAAC;IACN,sBAAsB,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,2CAA2C,CAAC,CAAC;IAC9F,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;IAC/C,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;IACpD,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;IAC7C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;IACxC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5C,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;IACzC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;IAC3C,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;IAC9C,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;IAC9C,sBAAsB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,2CAA2C,CAAC,CAAC;IACpG,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,2CAA2C,CAAC,CAAC;IACtF,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,2CAA2C,CAAC,CAAC;IACvF,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,2CAA2C,CAAC,CAAC;IAC1F,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,2CAA2C,CAAC,CAAC;IACzF,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,2CAA2C,CAAC,CAAC;CACxF,CAAC,CACH,CAAA;AAED;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,MAAM,CAAC,WAAW,CAAY,6BAA6B,CAAC,CAAC,WAAW,EAAE;IACvG,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;CACxC,CAAC;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"debug-utils.d.ts","sourceRoot":"","sources":["../../../src/browser/Opfs/debug-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuIH,eAAO,MAAM,UAAU;IACrB;;OAEG;8BACY,OAAO,CAAC,IAAI,CAAC;IAC5B;;OAEG;8BACY,OAAO,CAAC,IAAI,CAAC;IAC5B;;OAEG;kCACkB,MAAM,YAAY,6BAA6B;CAC5D,CAAA"}
1
+ {"version":3,"file":"debug-utils.d.ts","sourceRoot":"","sources":["../../../src/browser/Opfs/debug-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwIH,eAAO,MAAM,UAAU;IACrB;;OAEG;8BACY,OAAO,CAAC,IAAI,CAAC;IAC5B;;OAEG;8BACY,OAAO,CAAC,IAAI,CAAC;IAC5B;;OAEG;kCACkB,MAAM,YAAY,6BAA6B;CAC5D,CAAA"}
@@ -5,16 +5,17 @@
5
5
  */
6
6
  import { Effect, Stream } from 'effect';
7
7
  import prettyBytes from 'pretty-bytes';
8
- import { Opfs } from "./Opfs.js";
8
+ import * as Opfs from "./Opfs.js";
9
9
  import { getDirectoryHandleByPath, getMetadata, remove } from "./utils.js";
10
10
  const ROOT_NAME = '/';
11
11
  /**
12
12
  * Materialize the entire OPFS tree starting from the origin root.
13
13
  */
14
14
  const buildTree = Effect.fn('@livestore/utils:Opfs.buildTree')(function* () {
15
- const rootHandle = yield* Opfs.getRootDirectoryHandle;
15
+ const opfs = yield* Opfs.Opfs;
16
+ const rootHandle = yield* opfs.getRootDirectoryHandle;
16
17
  const collectDirectory = (handle, pathSegments) => Effect.gen(function* () {
17
- const handlesStream = yield* Opfs.values(handle);
18
+ const handlesStream = opfs.values(handle);
18
19
  const handles = yield* handlesStream.pipe(Stream.runCollect, Effect.map((chunk) => Array.from(chunk).sort((a, b) => a.name.localeCompare(b.name))));
19
20
  const children = yield* Effect.forEach(handles, (childHandle) => Effect.gen(function* () {
20
21
  const nextSegments = [...pathSegments, childHandle.name];
@@ -76,7 +77,7 @@ const printTree = Effect.gen(function* () {
76
77
  });
77
78
  const resetTree = remove('/');
78
79
  const getDirHandle = (path, options) => getDirectoryHandleByPath(path, options);
79
- const runOpfsEffect = (effect) => effect.pipe(Effect.provide(Opfs.Default), Effect.runPromise);
80
+ const runOpfsEffect = (effect) => effect.pipe(Effect.provide(Opfs.layer), Effect.runPromise);
80
81
  export const debugUtils = {
81
82
  /**
82
83
  * Print the entire OPFS tree structure to the console in an ASCII format.
@@ -1 +1 @@
1
- {"version":3,"file":"debug-utils.js","sourceRoot":"","sources":["../../../src/browser/Opfs/debug-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug-utils.js","sourceRoot":"","sources":["../../../src/browser/Opfs/debug-utils.ts"],"names":[],"mappings":"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"}