@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,5 +1,5 @@
1
1
  import { Effect } from 'effect';
2
- import { Opfs, OpfsError } from './Opfs.ts';
2
+ import * as Opfs from './Opfs.ts';
3
3
  /**
4
4
  * Resolve a directory handle using a slash-delimited OPFS path.
5
5
  *
@@ -7,7 +7,7 @@ import { Opfs, OpfsError } from './Opfs.ts';
7
7
  * @param options - Options forwarded to `getDirectoryHandle` when traversing segments.
8
8
  * @returns Directory handle for the final segment.
9
9
  */
10
- export declare const getDirectoryHandleByPath: (path: string, options?: FileSystemGetDirectoryOptions | undefined) => Effect.Effect<FileSystemDirectoryHandle, import("../WebError.ts").TypeError | import("../WebError.ts").NotFoundError | import("../WebError.ts").NotAllowedError | import("../WebError.ts").TypeMismatchError | import("../WebError.ts").SecurityError | import("../WebError.ts").UnknownError | OpfsError, Opfs>;
10
+ export declare const getDirectoryHandleByPath: (path: string, options?: FileSystemGetDirectoryOptions | undefined) => Effect.Effect<FileSystemDirectoryHandle, import("../WebError.ts").WebError | Opfs.OpfsError, Opfs.Opfs>;
11
11
  /**
12
12
  * Remove a file or directory identified by an OPFS path.
13
13
  *
@@ -16,14 +16,14 @@ export declare const getDirectoryHandleByPath: (path: string, options?: FileSyst
16
16
  */
17
17
  export declare const remove: (path: string, options?: {
18
18
  readonly recursive?: boolean;
19
- } | undefined) => Effect.Effect<void, import("../WebError.ts").TypeError | import("../WebError.ts").NoModificationAllowedError | import("../WebError.ts").NotFoundError | import("../WebError.ts").NotAllowedError | import("../WebError.ts").TypeMismatchError | import("../WebError.ts").InvalidModificationError | import("../WebError.ts").SecurityError | import("../WebError.ts").UnknownError | OpfsError, Opfs>;
19
+ } | undefined) => Effect.Effect<void, import("../WebError.ts").WebError | Opfs.OpfsError, Opfs.Opfs>;
20
20
  /**
21
21
  * Determine whether a file or directory exists at the given OPFS path.
22
22
  *
23
23
  * @param path - Slash-delimited path to inspect.
24
24
  * @returns `true` if the path resolves to a file or directory, otherwise `false`.
25
25
  */
26
- export declare const exists: (path: string) => Effect.Effect<boolean, import("../WebError.ts").TypeError | import("../WebError.ts").NotAllowedError | import("../WebError.ts").TypeMismatchError | import("../WebError.ts").SecurityError | import("../WebError.ts").UnknownError | OpfsError, Opfs>;
26
+ export declare const exists: (path: string) => Effect.Effect<boolean, import("../WebError.ts").EvalError | import("../WebError.ts").RangeError | import("../WebError.ts").ReferenceError | import("../WebError.ts").TypeError | import("../WebError.ts").URIError | import("../WebError.ts").NoModificationAllowedError | import("../WebError.ts").NotAllowedError | import("../WebError.ts").TypeMismatchError | import("../WebError.ts").InvalidStateError | import("../WebError.ts").AbortError | import("../WebError.ts").InvalidModificationError | import("../WebError.ts").SecurityError | import("../WebError.ts").DataCloneError | import("../WebError.ts").QuotaExceededError | import("../WebError.ts").UnknownError | Opfs.OpfsError, Opfs.Opfs>;
27
27
  /**
28
28
  * Create a directory at the provided path, optionally creating parents recursively.
29
29
  *
@@ -32,7 +32,7 @@ export declare const exists: (path: string) => Effect.Effect<boolean, import("..
32
32
  */
33
33
  export declare const makeDirectory: (path: string, options?: {
34
34
  readonly recursive?: boolean;
35
- } | undefined) => Effect.Effect<void, import("../WebError.ts").TypeError | import("../WebError.ts").NotFoundError | import("../WebError.ts").NotAllowedError | import("../WebError.ts").TypeMismatchError | import("../WebError.ts").SecurityError | import("../WebError.ts").UnknownError | OpfsError, Opfs>;
35
+ } | undefined) => Effect.Effect<void, import("../WebError.ts").WebError | Opfs.OpfsError, Opfs.Opfs>;
36
36
  /**
37
37
  * Extract basic metadata for a given file handle.
38
38
  *
@@ -44,7 +44,7 @@ export declare const getMetadata: (handle: FileSystemFileHandle) => Effect.Effec
44
44
  size: number;
45
45
  type: string;
46
46
  lastModified: number;
47
- }, import("../WebError.ts").NotFoundError | import("../WebError.ts").NotAllowedError | import("../WebError.ts").UnknownError, Opfs>;
47
+ }, import("../WebError.ts").WebError, Opfs.Opfs>;
48
48
  /**
49
49
  * Write bytes to an OPFS path, creating or replacing the target file.
50
50
  *
@@ -54,7 +54,7 @@ export declare const getMetadata: (handle: FileSystemFileHandle) => Effect.Effec
54
54
  * @remarks
55
55
  * - Only available in Safari 26 or higher (as of Dec 2025, not yet widely available).
56
56
  */
57
- export declare const writeFile: (path: string, data: Uint8Array<ArrayBufferLike>) => Effect.Effect<void, import("../WebError.ts").TypeError | import("../WebError.ts").NoModificationAllowedError | import("../WebError.ts").NotFoundError | import("../WebError.ts").NotAllowedError | import("../WebError.ts").TypeMismatchError | import("../WebError.ts").AbortError | import("../WebError.ts").SecurityError | import("../WebError.ts").QuotaExceededError | import("../WebError.ts").UnknownError | OpfsError, Opfs>;
57
+ export declare const writeFile: (path: string, data: Uint8Array<ArrayBufferLike>) => Effect.Effect<void, import("../WebError.ts").WebError | Opfs.OpfsError, Opfs.Opfs>;
58
58
  /**
59
59
  * Synchronously write bytes to an OPFS path, creating or replacing the target file.
60
60
  *
@@ -67,5 +67,5 @@ export declare const writeFile: (path: string, data: Uint8Array<ArrayBufferLike>
67
67
  * - Crash safety: not atomic. A crash mid-write can leave the file truncated or partially written.
68
68
  * For atomic replacement, prefer `writeFile` or a temp-file pattern with two prepared handles.
69
69
  */
70
- export declare const syncWriteFile: (path: string, data: Uint8Array<ArrayBufferLike>) => Effect.Effect<undefined, import("../WebError.ts").WebError | OpfsError, Opfs>;
70
+ export declare const syncWriteFile: (path: string, data: Uint8Array<ArrayBufferLike>) => Effect.Effect<undefined, import("../WebError.ts").WebError | Opfs.OpfsError, Opfs.Opfs>;
71
71
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/browser/Opfs/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AAEvC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAoG3C;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,yXAQnC,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,MAAM;yBAEgB,OAAO;uZAkBxC,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,MAAM,yQAiBjB,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa;yBAES,OAAO;6SASxC,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;mIAStB,CAAA;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,4dAoBpB,CAAA;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,oIAmCxB,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/browser/Opfs/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AAEvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAsGjC;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,gLAWnC,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,MAAM;yBAEgB,OAAO;oGAmBxC,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,MAAM,isBAkBjB,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa;yBAES,OAAO;oGASxC,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;gDAUtB,CAAA;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,yIAqBpB,CAAA;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,8IAoCxB,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Effect, Stream } from 'effect';
2
- import { Opfs, OpfsError } from "./Opfs.js";
2
+ import * as Opfs from "./Opfs.js";
3
3
  /**
4
4
  * Set of path segments that are forbidden by the File System specification.
5
5
  *
@@ -20,13 +20,13 @@ const DISALLOWED_SEGMENTS = new Set(['.', '..']);
20
20
  const parsePathSegments = (path) => Effect.gen(function* () {
21
21
  const segments = path.split('/').filter((segment) => segment.length > 0);
22
22
  if (segments.length === 0) {
23
- return yield* new OpfsError({
23
+ return yield* new Opfs.OpfsError({
24
24
  message: `Invalid OPFS path '${path}': path must contain at least one non-empty segment`,
25
25
  });
26
26
  }
27
27
  for (const segment of segments) {
28
28
  if (DISALLOWED_SEGMENTS.has(segment) === true) {
29
- return yield* new OpfsError({
29
+ return yield* new Opfs.OpfsError({
30
30
  message: `Invalid OPFS path '${path}': segment '${segment}' is not supported`,
31
31
  });
32
32
  }
@@ -54,10 +54,11 @@ const splitPathSegments = (segments) => ({
54
54
  * @param options - Options forwarded to each `getDirectoryHandle` call.
55
55
  */
56
56
  const traverseDirectoryPath = (segments, options) => Effect.gen(function* () {
57
- let currentDirHandle = yield* Opfs.getRootDirectoryHandle;
57
+ const opfs = yield* Opfs.Opfs;
58
+ let currentDirHandle = yield* opfs.getRootDirectoryHandle;
58
59
  for (let index = 0; index < segments.length; index++) {
59
60
  const segment = segments[index];
60
- currentDirHandle = yield* Opfs.getDirectoryHandle(currentDirHandle, segment, options);
61
+ currentDirHandle = yield* opfs.getDirectoryHandle(currentDirHandle, segment, options);
61
62
  }
62
63
  return currentDirHandle;
63
64
  });
@@ -68,12 +69,13 @@ const traverseDirectoryPath = (segments, options) => Effect.gen(function* () {
68
69
  * @param options.recursive - When `true`, create every missing segment. Otherwise only the leaf is created.
69
70
  */
70
71
  const ensureDirectoryPath = (segments, options) => Effect.gen(function* () {
71
- let currentDirHandle = yield* Opfs.getRootDirectoryHandle;
72
+ const opfs = yield* Opfs.Opfs;
73
+ let currentDirHandle = yield* opfs.getRootDirectoryHandle;
72
74
  for (let index = 0; index < segments.length; index++) {
73
75
  const segment = segments[index];
74
76
  const isLast = index === segments.length - 1;
75
77
  const shouldCreate = options.recursive || isLast;
76
- currentDirHandle = yield* Opfs.getDirectoryHandle(currentDirHandle, segment, shouldCreate === true ? { create: true } : undefined);
78
+ currentDirHandle = yield* opfs.getDirectoryHandle(currentDirHandle, segment, shouldCreate === true ? { create: true } : undefined);
77
79
  }
78
80
  return currentDirHandle;
79
81
  });
@@ -85,8 +87,10 @@ const ensureDirectoryPath = (segments, options) => Effect.gen(function* () {
85
87
  * @returns Directory handle for the final segment.
86
88
  */
87
89
  export const getDirectoryHandleByPath = Effect.fn('@livestore/utils:Opfs.getDirectoryHandleByPath')(function* (path, options) {
88
- if (isRootPath(path) === true)
89
- return yield* Opfs.getRootDirectoryHandle;
90
+ if (isRootPath(path) === true) {
91
+ const opfs = yield* Opfs.Opfs;
92
+ return yield* opfs.getRootDirectoryHandle;
93
+ }
90
94
  const pathSegments = yield* parsePathSegments(path);
91
95
  return yield* traverseDirectoryPath(pathSegments, options);
92
96
  });
@@ -98,16 +102,17 @@ export const getDirectoryHandleByPath = Effect.fn('@livestore/utils:Opfs.getDire
98
102
  */
99
103
  export const remove = Effect.fn('@livestore/utils:Opfs.remove')(function* (path, options) {
100
104
  const recursive = options?.recursive ?? false;
105
+ const opfs = yield* Opfs.Opfs;
101
106
  if (isRootPath(path) === true) {
102
- const rootHandle = yield* Opfs.getRootDirectoryHandle;
103
- const handlesStream = yield* Opfs.values(rootHandle);
104
- yield* handlesStream.pipe(Stream.runForEach((handle) => Opfs.removeEntry(rootHandle, handle.name, { recursive: true })));
107
+ const rootHandle = yield* opfs.getRootDirectoryHandle;
108
+ const handlesStream = opfs.values(rootHandle);
109
+ yield* handlesStream.pipe(Stream.runForEach((handle) => opfs.removeEntry(rootHandle, handle.name, { recursive: true })));
105
110
  return;
106
111
  }
107
112
  const pathSegments = yield* parsePathSegments(path);
108
113
  const { parentSegments, leafSegment: targetName } = splitPathSegments(pathSegments);
109
114
  const parentDirHandle = yield* traverseDirectoryPath(parentSegments);
110
- yield* Opfs.removeEntry(parentDirHandle, targetName, { recursive });
115
+ yield* opfs.removeEntry(parentDirHandle, targetName, { recursive });
111
116
  });
112
117
  /**
113
118
  * Determine whether a file or directory exists at the given OPFS path.
@@ -120,10 +125,11 @@ export const exists = Effect.fn('@livestore/utils:Opfs.exists')(function* (path)
120
125
  return true;
121
126
  const pathSegments = yield* parsePathSegments(path);
122
127
  const { parentSegments, leafSegment: targetName } = splitPathSegments(pathSegments);
123
- const parentDirHandle = yield* traverseDirectoryPath(parentSegments, { create: false }).pipe(Effect.catchTag('NotFoundError', () => Effect.succeed(undefined)));
128
+ const parentDirHandle = yield* traverseDirectoryPath(parentSegments, { create: false }).pipe(Effect.catchTag('NotFoundError', () => Effect.void));
124
129
  if (parentDirHandle === undefined)
125
130
  return false;
126
- return yield* Opfs.getFileHandle(parentDirHandle, targetName).pipe(Effect.orElse(() => Opfs.getDirectoryHandle(parentDirHandle, targetName, { create: false })), Effect.as(true), Effect.catchTag('NotFoundError', () => Effect.succeed(false)));
131
+ const opfs = yield* Opfs.Opfs;
132
+ return yield* opfs.getFileHandle(parentDirHandle, targetName).pipe(Effect.catch(() => opfs.getDirectoryHandle(parentDirHandle, targetName, { create: false })), Effect.as(true), Effect.catchTag('NotFoundError', () => Effect.succeed(false)));
127
133
  });
128
134
  /**
129
135
  * Create a directory at the provided path, optionally creating parents recursively.
@@ -145,7 +151,8 @@ export const makeDirectory = Effect.fn('@livestore/utils:Opfs.makeDirectory')(fu
145
151
  * @returns Object containing name, size, MIME type, and last modification timestamp.
146
152
  */
147
153
  export const getMetadata = Effect.fn('@livestore/utils:Opfs.getMetadata')(function* (handle) {
148
- return yield* Opfs.getFile(handle).pipe(Effect.map((file) => ({
154
+ const opfs = yield* Opfs.Opfs;
155
+ return yield* opfs.getFile(handle).pipe(Effect.map((file) => ({
149
156
  name: file.name,
150
157
  size: file.size,
151
158
  type: file.type,
@@ -163,7 +170,7 @@ export const getMetadata = Effect.fn('@livestore/utils:Opfs.getMetadata')(functi
163
170
  */
164
171
  export const writeFile = Effect.fn('@livestore/utils:Opfs.writeFile')(function* (path, data) {
165
172
  if (isRootPath(path) === true) {
166
- return yield* new OpfsError({
173
+ return yield* new Opfs.OpfsError({
167
174
  message: `Invalid OPFS path '${path}': cannot write file directly to the OPFS root`,
168
175
  });
169
176
  }
@@ -171,8 +178,9 @@ export const writeFile = Effect.fn('@livestore/utils:Opfs.writeFile')(function*
171
178
  const { parentSegments, leafSegment: fileName } = splitPathSegments(pathSegments);
172
179
  return yield* Effect.scoped(Effect.gen(function* () {
173
180
  const parentDirHandle = yield* traverseDirectoryPath(parentSegments);
174
- const fileHandle = yield* Opfs.getFileHandle(parentDirHandle, fileName, { create: true });
175
- yield* Opfs.writeFile(fileHandle, new Uint8Array(data), {
181
+ const opfs = yield* Opfs.Opfs;
182
+ const fileHandle = yield* opfs.getFileHandle(parentDirHandle, fileName, { create: true });
183
+ yield* opfs.writeFile(fileHandle, new Uint8Array(data), {
176
184
  keepExistingData: false,
177
185
  });
178
186
  }));
@@ -191,7 +199,7 @@ export const writeFile = Effect.fn('@livestore/utils:Opfs.writeFile')(function*
191
199
  */
192
200
  export const syncWriteFile = Effect.fn('@livestore/utils:Opfs.syncWriteFile')(function* (path, data) {
193
201
  if (isRootPath(path) === true) {
194
- return yield* new OpfsError({
202
+ return yield* new Opfs.OpfsError({
195
203
  message: `Invalid OPFS path '${path}': cannot write file directly to the OPFS root`,
196
204
  });
197
205
  }
@@ -199,20 +207,21 @@ export const syncWriteFile = Effect.fn('@livestore/utils:Opfs.syncWriteFile')(fu
199
207
  const { parentSegments, leafSegment: fileName } = splitPathSegments(pathSegments);
200
208
  return yield* Effect.scoped(Effect.gen(function* () {
201
209
  const parentDirHandle = yield* traverseDirectoryPath(parentSegments);
202
- const fileHandle = yield* Opfs.getFileHandle(parentDirHandle, fileName, { create: true });
203
- const syncHandle = yield* Opfs.createSyncAccessHandle(fileHandle);
204
- yield* Opfs.syncTruncate(syncHandle, 0);
210
+ const opfs = yield* Opfs.Opfs;
211
+ const fileHandle = yield* opfs.getFileHandle(parentDirHandle, fileName, { create: true });
212
+ const syncHandle = yield* opfs.createSyncAccessHandle(fileHandle);
213
+ yield* opfs.syncTruncate(syncHandle, 0);
205
214
  let offset = 0;
206
215
  while (offset < data.byteLength) {
207
- const wrote = yield* Opfs.syncWrite(syncHandle, data.subarray(offset), { at: offset });
216
+ const wrote = yield* opfs.syncWrite(syncHandle, data.subarray(offset), { at: offset });
208
217
  if (wrote === 0) {
209
- return yield* new OpfsError({
218
+ return yield* new Opfs.OpfsError({
210
219
  message: `Short write: wrote ${offset} of ${data.byteLength} bytes.`,
211
220
  });
212
221
  }
213
222
  offset += Number(wrote);
214
223
  }
215
- yield* Opfs.syncFlush(syncHandle);
224
+ yield* opfs.syncFlush(syncHandle);
216
225
  }));
217
226
  });
218
227
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/browser/Opfs/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/browser/Opfs/utils.ts"],"names":[],"mappings":"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"}
@@ -26,17 +26,21 @@ declare global {
26
26
  */
27
27
  readonly message: string;
28
28
  /**
29
- * A number representing the quota limit in bytes, or undefined.
29
+ * A number representing the quota limit in bytes, or null.
30
30
  *
31
31
  * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/QuotaExceededError/quota)
32
32
  */
33
- readonly quota?: number;
33
+ readonly quota: number | null;
34
34
  /**
35
- * A number representing the requested amount of storage in bytes, or undefined.
35
+ * A number representing the requested amount of storage in bytes, or null.
36
36
  *
37
37
  * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/QuotaExceededError/requested)
38
38
  */
39
- readonly requested?: number;
39
+ readonly requested: number | null;
40
+ }
41
+ interface QuotaExceededErrorOptions {
42
+ quota?: number;
43
+ requested?: number;
40
44
  }
41
45
  /**
42
46
  * The **`QuotaExceededError`** represents an error when a requested operation would exceed a system-imposed storage quota.
@@ -49,11 +53,8 @@ declare global {
49
53
  */
50
54
  var QuotaExceededError: {
51
55
  prototype: QuotaExceededError;
52
- new (message?: string, options?: {
53
- quota: number;
54
- requested: number;
55
- }): QuotaExceededError;
56
- } | undefined;
56
+ new (message?: string, options?: QuotaExceededErrorOptions): QuotaExceededError;
57
+ };
57
58
  }
58
59
  export {};
59
60
  //# sourceMappingURL=QuotaExceededError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuotaExceededError.d.ts","sourceRoot":"","sources":["../../src/browser/QuotaExceededError.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,kBAAmB,SAAQ,YAAY;QAC/C;;;;WAIG;QACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB;;;;WAIG;QACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;QACvB;;;;WAIG;QACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAC5B;IAED;;;;;;;;OAQG;IACH,IAAI,kBAAkB,EAClB;QACE,SAAS,EAAE,kBAAkB,CAAA;QAC7B,KAAK,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,GAAG,kBAAkB,CAAA;KAC3F,GACD,SAAS,CAAA;CACd"}
1
+ {"version":3,"file":"QuotaExceededError.d.ts","sourceRoot":"","sources":["../../src/browser/QuotaExceededError.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,kBAAmB,SAAQ,YAAY;QAC/C;;;;WAIG;QACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB;;;;WAIG;QACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QAC7B;;;;WAIG;QACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAClC;IAED,UAAU,yBAAyB;QACjC,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB;IAED;;;;;;;;OAQG;IACH,IAAI,kBAAkB,EAAE;QACtB,SAAS,EAAE,kBAAkB,CAAA;QAC7B,KAAK,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,kBAAkB,CAAA;KAChF,CAAA;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"WebChannelBrowser.d.ts","sourceRoot":"","sources":["../../src/browser/WebChannelBrowser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,EAAE,MAAM,QAAQ,CAAA;AAE9C,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAG7C,OAAO,EACL,KAAK,WAAW,EAGhB,KAAK,UAAU,EAEhB,MAAM,gCAAgC,CAAA;AAEvC,iDAAiD;AACjD,eAAO,MAAM,gBAAgB,GAAI,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,uCAGpF;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAA;CAC1E,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAkCjE,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,uEAMjF;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACnC,MAAM,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAA;CAC1E,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CA2DjE,CAAA"}
1
+ {"version":3,"file":"WebChannelBrowser.d.ts","sourceRoot":"","sources":["../../src/browser/WebChannelBrowser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,EAAE,MAAM,QAAQ,CAAA;AAE5D,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAG7C,OAAO,EACL,KAAK,WAAW,EAGhB,KAAK,UAAU,EAEhB,MAAM,gCAAgC,CAAA;AAEvC,iDAAiD;AACjD,eAAO,MAAM,gBAAgB,GAAI,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,uCAGpF;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAA;CAC1E,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAuCjE,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,uEAMjF;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACnC,MAAM,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAA;CAC1E,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAoEjE,CAAA"}
@@ -1,4 +1,4 @@
1
- import { Deferred, Exit, Scope } from 'effect';
1
+ import { Cause, Deferred, Exit, Queue, Scope } from 'effect';
2
2
  import * as Effect from "../effect/Effect.js";
3
3
  import * as Schema from "../effect/Schema/index.js";
4
4
  import * as Stream from "../effect/Stream.js";
@@ -7,14 +7,17 @@ import { listenToDebugPing, mapSchema, WebChannelSymbol, } from "../effect/WebCh
7
7
  export const broadcastChannel = ({ channelName, schema: inputSchema, }) => Effect.scopeWithCloseable((scope) => Effect.gen(function* () {
8
8
  const schema = mapSchema(inputSchema);
9
9
  const channel = new BroadcastChannel(channelName);
10
- yield* Effect.addFinalizer(() => Effect.try(() => channel.close()).pipe(Effect.ignoreLogged));
10
+ yield* Effect.addFinalizer(() => Effect.try({
11
+ try: () => channel.close(),
12
+ catch: (cause) => new Cause.UnknownError(cause),
13
+ }).pipe(Effect.ignore));
11
14
  const send = (message) => Effect.gen(function* () {
12
- const messageEncoded = yield* Schema.encode(schema.send)(message);
15
+ const messageEncoded = yield* Schema.encodeEffect(schema.send)(message);
13
16
  channel.postMessage(messageEncoded);
14
17
  });
15
18
  // TODO also listen to `messageerror` in parallel
16
- const listen = Stream.fromEventListener(channel, 'message').pipe(Stream.map((_) => Schema.decodeEither(schema.listen)(_.data)), listenToDebugPing(channelName));
17
- const closedDeferred = yield* Deferred.make().pipe(Effect.acquireRelease(Deferred.done(Exit.void)));
19
+ const listen = Stream.fromEventListener(channel, 'message').pipe(Stream.map((_) => Schema.decodeResult(schema.listen)(_.data)), listenToDebugPing(channelName));
20
+ const closedDeferred = yield* Effect.acquireRelease(Deferred.make(), Deferred.done(Exit.void));
18
21
  const supportsTransferables = false;
19
22
  return {
20
23
  [WebChannelSymbol]: WebChannelSymbol,
@@ -41,12 +44,20 @@ export const windowChannel = ({ listenWindow, sendWindow, targetOrigin = '*', id
41
44
  message: schema.listen,
42
45
  from: Schema.Literal(ids.other),
43
46
  to: Schema.Literal(ids.own),
44
- }).annotations({ title: 'webmesh.WindowMessageListen' });
47
+ }).annotate({ title: 'webmesh.WindowMessageListen' });
45
48
  const WindowMessageSend = Schema.Struct({
46
49
  message: schema.send,
47
50
  from: Schema.Literal(ids.own),
48
51
  to: Schema.Literal(ids.other),
49
- }).annotations({ title: 'webmesh.WindowMessageSend' });
52
+ }).annotate({ title: 'webmesh.WindowMessageSend' });
53
+ // `window.postMessage` can fire before a lazily-started stream has installed its listener.
54
+ // Buffer events from channel construction time so Effect v4 scheduling cannot drop them.
55
+ const messageQueue = yield* Effect.acquireRelease(Queue.unbounded(), Queue.shutdown);
56
+ const handler = (event) => {
57
+ Queue.offerUnsafe(messageQueue, event);
58
+ };
59
+ listenWindow.addEventListener('message', handler);
60
+ yield* Effect.addFinalizer(() => Effect.sync(() => listenWindow.removeEventListener('message', handler)));
50
61
  const send = (message) => Effect.gen(function* () {
51
62
  debugInfo.sendTotal++;
52
63
  const [messageEncoded, transferables] = yield* Schema.encodeWithTransferables(WindowMessageSend)({
@@ -56,11 +67,11 @@ export const windowChannel = ({ listenWindow, sendWindow, targetOrigin = '*', id
56
67
  });
57
68
  sendWindow.postMessage(messageEncoded, targetOrigin, transferables);
58
69
  });
59
- const listen = Stream.fromEventListener(listenWindow, 'message').pipe(Stream.filter((_) => Schema.is(Schema.encodedSchema(WindowMessageListen))(_.data)), Stream.map((_) => {
70
+ const listen = Stream.fromQueue(messageQueue).pipe(Stream.filter((_) => Schema.is(Schema.toEncoded(WindowMessageListen))(_.data)), Stream.map((_) => {
60
71
  debugInfo.listenTotal++;
61
- return Schema.decodeEither(schema.listen)(_.data.message);
72
+ return Schema.decodeResult(schema.listen)(_.data.message);
62
73
  }), listenToDebugPing('window'));
63
- const closedDeferred = yield* Deferred.make().pipe(Effect.acquireRelease(Deferred.done(Exit.void)));
74
+ const closedDeferred = yield* Effect.acquireRelease(Deferred.make(), Deferred.done(Exit.void));
64
75
  const supportsTransferables = true;
65
76
  return {
66
77
  [WebChannelSymbol]: WebChannelSymbol,
@@ -1 +1 @@
1
- {"version":3,"file":"WebChannelBrowser.js","sourceRoot":"","sources":["../../src/browser/WebChannelBrowser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebChannelBrowser.js","sourceRoot":"","sources":["../../src/browser/WebChannelBrowser.ts"],"names":[],"mappings":"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"}