@effect-vfs/core 0.6.0 → 0.7.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.
package/README.md CHANGED
@@ -16,9 +16,8 @@ for the exact permission, path, timestamp, quota, and atomicity rules.
16
16
  npm install @effect-vfs/core@latest
17
17
  ```
18
18
 
19
- The package declares its exact Effect version as a peer dependency. An in-memory volume needs no platform service.
20
- The snapshot delta functions hash with SHA-256, so they take a `Crypto` service; on Node or Bun, install the matching
21
- provider and supply `NodeCrypto.layer` for those:
19
+ The package declares its exact Effect version as a peer dependency. Volume constructors and snapshot delta functions require Effect’s `Crypto` service. On Node, install the matching
20
+ provider and supply `NodeCrypto.layer` when running these effects:
22
21
 
23
22
  ```sh
24
23
  npm install "@effect/platform-node-shared@$(npm view @effect-vfs/core peerDependencies.effect)"
@@ -43,6 +42,7 @@ lifetime are explicit values that can be composed in one Effect program.
43
42
 
44
43
  ```ts
45
44
  import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
45
+ import * as NodeCrypto from "@effect/platform-node-shared/NodeCrypto"
46
46
  import { ByteSize, Effect } from "effect"
47
47
 
48
48
  const utf8 = new TextEncoder()
@@ -79,7 +79,7 @@ const program = Effect.scoped(Effect.gen(function*() {
79
79
  }
80
80
  }))
81
81
 
82
- const result = await Effect.runPromise(program)
82
+ const result = await Effect.runPromise(program.pipe(Effect.provide(NodeCrypto.layer)))
83
83
  console.log(result) // { config: { feature: "preview" }, mode: "640" }
84
84
  ```
85
85
 
@@ -97,6 +97,7 @@ contain names which are not valid UTF-8.
97
97
 
98
98
  ```ts
99
99
  import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
100
+ import * as NodeCrypto from "@effect/platform-node-shared/NodeCrypto"
100
101
  import { Effect } from "effect"
101
102
 
102
103
  const program = Effect.gen(function*() {
@@ -115,7 +116,7 @@ const program = Effect.gen(function*() {
115
116
  return { names: listing.value.map((entry) => Array.from(entry.name)), roundTrip: Array.from(roundTrip) }
116
117
  })
117
118
 
118
- console.log(await Effect.runPromise(program))
119
+ console.log(await Effect.runPromise(program.pipe(Effect.provide(NodeCrypto.layer))))
119
120
  // { names: [[255]], roundTrip: [47, 255] }
120
121
  ```
121
122
 
@@ -131,6 +132,7 @@ resettable sandboxes.
131
132
 
132
133
  ```ts
133
134
  import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
135
+ import * as NodeCrypto from "@effect/platform-node-shared/NodeCrypto"
134
136
  import { Effect } from "effect"
135
137
  import * as ByteSize from "effect/ByteSize"
136
138
 
@@ -168,7 +170,7 @@ const program = Effect.gen(function*() {
168
170
  return new TextDecoder().decode(yield* b.readFile("/project/settings.json"))
169
171
  })
170
172
 
171
- console.log(await Effect.runPromise(program)) // {"theme":"dark"}
173
+ console.log(await Effect.runPromise(program.pipe(Effect.provide(NodeCrypto.layer)))) // {"theme":"dark"}
172
174
  ```
173
175
 
174
176
  Fixture paths must be absolute and unique, and parent directories must be listed explicitly. Fixtures can also contain
@@ -196,6 +198,7 @@ interruption.
196
198
 
197
199
  ```ts
198
200
  import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
201
+ import * as NodeCrypto from "@effect/platform-node-shared/NodeCrypto"
199
202
  import { Effect } from "effect"
200
203
 
201
204
  const program = Effect.scoped(Effect.gen(function*() {
@@ -216,7 +219,7 @@ const program = Effect.scoped(Effect.gen(function*() {
216
219
  return [decode(first), decode(second), decode(preview.bytes), preview.eof]
217
220
  }))
218
221
 
219
- console.log(await Effect.runPromise(program)) // ["one\n", "two\n", "one", false]
222
+ console.log(await Effect.runPromise(program.pipe(Effect.provide(NodeCrypto.layer)))) // ["one\n", "two\n", "one", false]
220
223
  ```
221
224
 
222
225
  Handles also expose an explicit `close` effect when early release matters. Calling explicit close twice fails, while
@@ -231,6 +234,7 @@ failures.
231
234
 
232
235
  ```ts
233
236
  import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
237
+ import * as NodeCrypto from "@effect/platform-node-shared/NodeCrypto"
234
238
  import { Effect } from "effect"
235
239
 
236
240
  const program = Effect.gen(function*() {
@@ -244,7 +248,7 @@ const program = Effect.gen(function*() {
244
248
  )
245
249
  })
246
250
 
247
- const bytes = await Effect.runPromise(program)
251
+ const bytes = await Effect.runPromise(program.pipe(Effect.provide(NodeCrypto.layer)))
248
252
  console.log(new TextDecoder().decode(bytes)) // {}
249
253
  ```
250
254
 
@@ -258,6 +262,7 @@ working directory.
258
262
 
259
263
  ```ts
260
264
  import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
265
+ import * as NodeCrypto from "@effect/platform-node-shared/NodeCrypto"
261
266
  import { Effect } from "effect"
262
267
 
263
268
  const loadConfig = Effect.gen(function*() {
@@ -276,7 +281,7 @@ const program = Effect.gen(function*() {
276
281
  })
277
282
 
278
283
  const bytes = await Effect.runPromise(
279
- program.pipe(Effect.provide(Vfs.Caller.layer()), Effect.provide(Vfs.Volume.layer()))
284
+ program.pipe(Effect.provide(Vfs.Caller.layer()), Effect.provide(Vfs.Volume.layer()), Effect.provide(NodeCrypto.layer))
280
285
  )
281
286
  console.log(new TextDecoder().decode(bytes)) // {}
282
287
  ```
@@ -33,6 +33,7 @@ export type BytePathId = typeof BytePathId;
33
33
  *
34
34
  * @example
35
35
  * ```ts
36
+ * import * as BunCrypto from "@effect/platform-bun/BunCrypto"
36
37
  * import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
37
38
  * import { Effect } from "effect"
38
39
  *
@@ -50,7 +51,7 @@ export type BytePathId = typeof BytePathId;
50
51
  * return (yield* caller.readDirectory("/")).value.map((entry) => entry.name)
51
52
  * })
52
53
  *
53
- * Effect.runPromise(program).then(console.log)
54
+ * Effect.runPromise(program.pipe(Effect.provide(BunCrypto.layer))).then(console.log)
54
55
  * // [ Uint8Array(2) [ 255, 254 ] ]
55
56
  * ```
56
57
  *
@@ -1 +1 @@
1
- {"version":3,"file":"BytePath.d.ts","sourceRoot":"","sources":["../src/BytePath.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,WAAW,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAKvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,2BAAiD,CAAA;AAE1E;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAA;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,QAAS,SAAQ,KAAK,CAAC,KAAK,EAAE,QAAQ;IACrD,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;CAClC;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,oCAAgD,CAAA;AAUrE;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,QAA8B,CAAA;AAEpF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,UAAU,CAAoB,CAAA;AAExE;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAmD,CAAA;AAMjG;;;;;GAKG;AACH,eAAO,MAAM,SAAS,UAAW,UAAU,KAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CACvB,CAAA;AAExD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAM1E,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,UAAW,SAAS,KAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CACN,CAAA;AAExE;;;;;GAKG;AACH,eAAO,MAAM,OAAO,SAAU,QAAQ,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CACzB,CAAA;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,SAAU,QAAQ,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAItE,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,SAAU,QAAQ,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAgC,CAAA;AAEpG;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAErE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,SAAU,QAAQ,KAAG,OAIvC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,SAAU,QAAQ,KAAG,OAAqC,CAAA;AAEjF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,SAAU,QAAQ,KAAG,UAIzC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,SAAU,QAAQ,KAAG,QAOvC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,SAAU,QAAQ,QAAQ,MAAM,GAAG,UAAU,KAAG,QAWhE,CAAA"}
1
+ {"version":3,"file":"BytePath.d.ts","sourceRoot":"","sources":["../src/BytePath.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,WAAW,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAKvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,2BAAiD,CAAA;AAE1E;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAA;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,QAAS,SAAQ,KAAK,CAAC,KAAK,EAAE,QAAQ;IACrD,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;CAClC;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,oCAAgD,CAAA;AAUrE;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,QAA8B,CAAA;AAEpF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,UAAU,CAAoB,CAAA;AAExE;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAmD,CAAA;AAMjG;;;;;GAKG;AACH,eAAO,MAAM,SAAS,UAAW,UAAU,KAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CACvB,CAAA;AAExD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAM1E,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,UAAW,SAAS,KAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CACN,CAAA;AAExE;;;;;GAKG;AACH,eAAO,MAAM,OAAO,SAAU,QAAQ,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CACzB,CAAA;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,SAAU,QAAQ,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAItE,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,SAAU,QAAQ,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAgC,CAAA;AAEpG;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAErE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,SAAU,QAAQ,KAAG,OAIvC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,SAAU,QAAQ,KAAG,OAAqC,CAAA;AAEjF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,SAAU,QAAQ,KAAG,UAIzC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,SAAU,QAAQ,KAAG,QAOvC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,SAAU,QAAQ,QAAQ,MAAM,GAAG,UAAU,KAAG,QAWhE,CAAA"}
@@ -10,6 +10,7 @@
10
10
  */
11
11
  import { Context, Effect } from "effect";
12
12
  import * as ByteSize from "effect/ByteSize";
13
+ import type * as Crypto from "effect/Crypto";
13
14
  import type * as Scope from "effect/Scope";
14
15
  import { type ArgumentFailure, type StoreFailure, VfsError } from "./VfsError.js";
15
16
  import type { Volume, VolumeDurability, VolumeOptions } from "./VirtualFileSystem.js";
@@ -49,11 +50,12 @@ export interface Options {
49
50
  /**
50
51
  * Open a live volume using the supplied store Layer. The caller owns a Scope;
51
52
  * the volume shuts down before that Layer releases its storage resource.
53
+ * Requires `Crypto.Crypto` to mint a new volume or incarnation.
52
54
  *
53
55
  * @category constructors
54
56
  * @since 0.4.0
55
57
  */
56
- export declare const open: (options: Options) => Effect.Effect<Volume, VfsError, LiveImageStore | Scope.Scope>;
58
+ export declare const open: (options: Options) => Effect.Effect<Volume, VfsError, LiveImageStore | Scope.Scope | Crypto.Crypto>;
57
59
  /**
58
60
  * A live volume and the shutdown action its storage adapter must run before
59
61
  * closing the underlying store.
@@ -75,11 +77,12 @@ export interface ImageSession {
75
77
  /**
76
78
  * Construct a versioned image for a new, empty volume.
77
79
  * Store this image before opening it for mutation.
80
+ * Requires `Crypto.Crypto` for secure volume identifiers and reference keys.
78
81
  *
79
82
  * @category constructors
80
83
  * @since 0.4.0
81
84
  */
82
- export declare const prepareEmptyImage: (options?: VolumeOptions) => Effect.Effect<Uint8Array, VfsError>;
85
+ export declare const prepareEmptyImage: (options?: VolumeOptions) => Effect.Effect<Uint8Array, VfsError, Crypto.Crypto>;
83
86
  /**
84
87
  * Open a validated image and stage every mutation before calling `commit`.
85
88
  * The returned session contains the volume and a coordinated shutdown effect.
@@ -89,6 +92,6 @@ export declare const prepareEmptyImage: (options?: VolumeOptions) => Effect.Effe
89
92
  * @category constructors
90
93
  * @since 0.4.0
91
94
  */
92
- export declare const openImage: (image: Uint8Array, maxImageBytes: ByteSize.ByteSize, commit: (image: Uint8Array) => Effect.Effect<CommitOutcome>, durability?: VolumeDurability) => Effect.Effect<ImageSession, VfsError>;
95
+ export declare const openImage: (image: Uint8Array, maxImageBytes: ByteSize.ByteSize, commit: (image: Uint8Array) => Effect.Effect<CommitOutcome>, durability?: VolumeDurability) => Effect.Effect<ImageSession, VfsError, Crypto.Crypto>;
93
96
  export {};
94
97
  //# sourceMappingURL=LiveVolume.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiveVolume.d.ts","sourceRoot":"","sources":["../src/LiveVolume.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAG1C,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAErF;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAA;;IAW9D,4EAA4E;0BACtD,gBAAgB;2BACf,CAAC,OAAO,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,GAAG,eAAe,CAAC;qBACxF,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;;AAZtE;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,mBAKG;CAAG;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAA;IACzC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAC/B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CACpD,MAAM,EACN,QAAQ,EACR,cAAc,GAAG,KAAK,CAAC,KAAK,CAuC5B,CAAA;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACvC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CACxE,UAAU,EACV,QAAQ,CAKP,CAAA;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,EAAE,CACtB,KAAK,EAAE,UAAU,EACjB,aAAa,EAAE,QAAQ,CAAC,QAAQ,EAChC,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAC3D,UAAU,CAAC,EAAE,gBAAgB,KAC1B,MAAM,CAAC,MAAM,CAChB,YAAY,EACZ,QAAQ,CACe,CAAA"}
1
+ {"version":3,"file":"LiveVolume.d.ts","sourceRoot":"","sources":["../src/LiveVolume.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAG1C,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAErF;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAA;;IAW9D,4EAA4E;0BACtD,gBAAgB;2BACf,CAAC,OAAO,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,GAAG,eAAe,CAAC;qBACxF,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;;AAZtE;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,mBAKG;CAAG;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAA;IACzC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAC/B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CACpD,MAAM,EACN,QAAQ,EACR,cAAc,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAuC5C,CAAA;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACvC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CACxE,UAAU,EACV,QAAQ,EACR,MAAM,CAAC,MAAM,CAKZ,CAAA;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,EAAE,CACtB,KAAK,EAAE,UAAU,EACjB,aAAa,EAAE,QAAQ,CAAC,QAAQ,EAChC,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAC3D,UAAU,CAAC,EAAE,gBAAgB,KAC1B,MAAM,CAAC,MAAM,CAChB,YAAY,EACZ,QAAQ,EACR,MAAM,CAAC,MAAM,CACU,CAAA"}
@@ -26,6 +26,7 @@ export class LiveImageStore extends Context.Service()("@effect-vfs/core/LiveImag
26
26
  /**
27
27
  * Open a live volume using the supplied store Layer. The caller owns a Scope;
28
28
  * the volume shuts down before that Layer releases its storage resource.
29
+ * Requires `Crypto.Crypto` to mint a new volume or incarnation.
29
30
  *
30
31
  * @category constructors
31
32
  * @since 0.4.0
@@ -59,6 +60,7 @@ export const open = Effect.fn("LiveVolume.open")(function* (options) {
59
60
  /**
60
61
  * Construct a versioned image for a new, empty volume.
61
62
  * Store this image before opening it for mutation.
63
+ * Requires `Crypto.Crypto` for secure volume identifiers and reference keys.
62
64
  *
63
65
  * @category constructors
64
66
  * @since 0.4.0
@@ -45,6 +45,7 @@ export interface Snapshot {
45
45
  *
46
46
  * @example
47
47
  * ```ts
48
+ * import * as BunCrypto from "@effect/platform-bun/BunCrypto"
48
49
  * import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
49
50
  * import { ByteSize, Effect } from "effect"
50
51
  *
@@ -68,7 +69,7 @@ export interface Snapshot {
68
69
  * return "accepted"
69
70
  * })
70
71
  *
71
- * Effect.runPromise(program).then(console.log)
72
+ * Effect.runPromise(program.pipe(Effect.provide(BunCrypto.layer))).then(console.log)
72
73
  * // accepted
73
74
  * ```
74
75
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Snapshot.d.ts","sourceRoot":"","sources":["../src/Snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAG,2BAAoC,CAAA;AAElE;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAA;AAElD;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,cAAc,CAAA;CAC1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,YAAY;IACvB,sDAAsD;;IAEtD,0EAA0E;;IAE1E,sFAAsF;;IAEtF,wFAAwF;;IAExF;;;;OAIG;;EAEH,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA"}
1
+ {"version":3,"file":"Snapshot.d.ts","sourceRoot":"","sources":["../src/Snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAG,2BAAoC,CAAA;AAElE;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAA;AAElD;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,cAAc,CAAA;CAC1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,YAAY;IACvB,sDAAsD;;IAEtD,0EAA0E;;IAE1E,sFAAsF;;IAEtF,wFAAwF;;IAExF;;;;OAIG;;EAEH,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA"}
package/dist/Snapshot.js CHANGED
@@ -29,6 +29,7 @@ export const SnapshotTypeId = "@effect-vfs/core/Snapshot";
29
29
  *
30
30
  * @example
31
31
  * ```ts
32
+ * import * as BunCrypto from "@effect/platform-bun/BunCrypto"
32
33
  * import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
33
34
  * import { ByteSize, Effect } from "effect"
34
35
  *
@@ -52,7 +53,7 @@ export const SnapshotTypeId = "@effect-vfs/core/Snapshot";
52
53
  * return "accepted"
53
54
  * })
54
55
  *
55
- * Effect.runPromise(program).then(console.log)
56
+ * Effect.runPromise(program.pipe(Effect.provide(BunCrypto.layer))).then(console.log)
56
57
  * // accepted
57
58
  * ```
58
59
  *
package/dist/Testing.d.ts CHANGED
@@ -12,6 +12,7 @@
12
12
  *
13
13
  * @since 0.6.0
14
14
  */
15
+ import type * as Crypto from "effect/Crypto";
15
16
  import * as Effect from "effect/Effect";
16
17
  import * as Layer from "effect/Layer";
17
18
  import type * as Scope from "effect/Scope";
@@ -42,10 +43,11 @@ export interface LayerOptions {
42
43
  *
43
44
  * Every build constructs a new volume, from `fixture` when one is given. The
44
45
  * layer fails with the `VfsError` the constructor or the caller reports for
45
- * invalid options.
46
+ * invalid options. Provide `Crypto.Crypto` to build the volume.
46
47
  *
47
48
  * @example
48
49
  * ```ts
50
+ * import * as BunCrypto from "@effect/platform-bun/BunCrypto"
49
51
  * import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
50
52
  * import * as Testing from "@effect-vfs/core/Testing"
51
53
  * import { Effect } from "effect"
@@ -58,19 +60,20 @@ export interface LayerOptions {
58
60
  * })
59
61
  *
60
62
  * // Each provide builds its own volume, so neither run sees the other's writes.
61
- * Effect.runPromise(program.pipe(Effect.provide(Testing.layer()))).then(console.log)
63
+ * Effect.runPromise(program.pipe(Effect.provide(Testing.layer()), Effect.provide(BunCrypto.layer))).then(console.log)
62
64
  * // [ 'work' ]
63
65
  * ```
64
66
  *
65
67
  * @category layers
66
68
  * @since 0.6.0
67
69
  */
68
- export declare const layer: (options?: LayerOptions) => Layer.Layer<Volume | Caller, VfsError>;
70
+ export declare const layer: (options?: LayerOptions) => Layer.Layer<Volume | Caller, VfsError, Crypto.Crypto>;
69
71
  /**
70
72
  * A root caller with `identity` on the volume in context.
71
73
  *
72
74
  * @example
73
75
  * ```ts
76
+ * import * as BunCrypto from "@effect/platform-bun/BunCrypto"
74
77
  * import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
75
78
  * import * as Testing from "@effect-vfs/core/Testing"
76
79
  * import { Effect } from "effect"
@@ -83,7 +86,7 @@ export declare const layer: (options?: LayerOptions) => Layer.Layer<Volume | Cal
83
86
  * return (yield* Effect.flip(guest.readDirectory("/private"))).code
84
87
  * })
85
88
  *
86
- * Effect.runPromise(program.pipe(Effect.provide(Testing.layer()))).then(console.log)
89
+ * Effect.runPromise(program.pipe(Effect.provide(Testing.layer()), Effect.provide(BunCrypto.layer))).then(console.log)
87
90
  * // AccessDenied
88
91
  * ```
89
92
  *
@@ -104,6 +107,7 @@ export declare const callerAs: (identity: Identity, options?: Omit<RootCallerOpt
104
107
  *
105
108
  * @example
106
109
  * ```ts
110
+ * import * as BunCrypto from "@effect/platform-bun/BunCrypto"
107
111
  * import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
108
112
  * import * as Testing from "@effect-vfs/core/Testing"
109
113
  * import { Effect } from "effect"
@@ -117,7 +121,7 @@ export declare const callerAs: (identity: Identity, options?: Omit<RootCallerOpt
117
121
  * return (yield* changes).map((change) => change._tag)
118
122
  * })
119
123
  *
120
- * Effect.runPromise(program.pipe(Effect.scoped, Effect.provide(Testing.layer()))).then(console.log)
124
+ * Effect.runPromise(program.pipe(Effect.scoped, Effect.provide(Testing.layer()), Effect.provide(BunCrypto.layer))).then(console.log)
121
125
  * // [ 'Create' ]
122
126
  * ```
123
127
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Testing.d.ts","sourceRoot":"","sources":["../src/Testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAA;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,KAAK,aAAc,YAAY,KAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,QAAQ,CAOjF,CAAA;AAEH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,QAAQ,aACT,QAAQ,YACR,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CACoC,CAAA;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAC5B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3B,MAAM,KACR,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAIhE,CAAA"}
1
+ {"version":3,"file":"Testing.d.ts","sourceRoot":"","sources":["../src/Testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAA;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,KAAK,aAAc,YAAY,KAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAOhG,CAAA;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,QAAQ,aACT,QAAQ,YACR,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CACoC,CAAA;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAC5B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3B,MAAM,KACR,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAIhE,CAAA"}
package/dist/Testing.js CHANGED
@@ -1,17 +1,3 @@
1
- /**
2
- * Test helpers over the `Volume` and `Caller` services: a fresh volume with a
3
- * root caller as one layer, callers with other credentials on the volume in
4
- * context, and collecting a known number of watch changes.
5
- *
6
- * **Details**
7
- *
8
- * The helpers are plain Effect values with no test-runner dependency. Each
9
- * build of `layer` is a fresh volume, so provide it to every test that needs
10
- * its own state, and share one build only between tests that do not
11
- * interfere.
12
- *
13
- * @since 0.6.0
14
- */
15
1
  import * as Effect from "effect/Effect";
16
2
  import * as Fiber from "effect/Fiber";
17
3
  import * as Layer from "effect/Layer";
@@ -24,10 +10,11 @@ import { Caller, Volume } from "./VirtualFileSystem.js";
24
10
  *
25
11
  * Every build constructs a new volume, from `fixture` when one is given. The
26
12
  * layer fails with the `VfsError` the constructor or the caller reports for
27
- * invalid options.
13
+ * invalid options. Provide `Crypto.Crypto` to build the volume.
28
14
  *
29
15
  * @example
30
16
  * ```ts
17
+ * import * as BunCrypto from "@effect/platform-bun/BunCrypto"
31
18
  * import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
32
19
  * import * as Testing from "@effect-vfs/core/Testing"
33
20
  * import { Effect } from "effect"
@@ -40,7 +27,7 @@ import { Caller, Volume } from "./VirtualFileSystem.js";
40
27
  * })
41
28
  *
42
29
  * // Each provide builds its own volume, so neither run sees the other's writes.
43
- * Effect.runPromise(program.pipe(Effect.provide(Testing.layer()))).then(console.log)
30
+ * Effect.runPromise(program.pipe(Effect.provide(Testing.layer()), Effect.provide(BunCrypto.layer))).then(console.log)
44
31
  * // [ 'work' ]
45
32
  * ```
46
33
  *
@@ -55,6 +42,7 @@ export const layer = (options) => Caller.layer(options?.caller).pipe(Layer.provi
55
42
  *
56
43
  * @example
57
44
  * ```ts
45
+ * import * as BunCrypto from "@effect/platform-bun/BunCrypto"
58
46
  * import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
59
47
  * import * as Testing from "@effect-vfs/core/Testing"
60
48
  * import { Effect } from "effect"
@@ -67,7 +55,7 @@ export const layer = (options) => Caller.layer(options?.caller).pipe(Layer.provi
67
55
  * return (yield* Effect.flip(guest.readDirectory("/private"))).code
68
56
  * })
69
57
  *
70
- * Effect.runPromise(program.pipe(Effect.provide(Testing.layer()))).then(console.log)
58
+ * Effect.runPromise(program.pipe(Effect.provide(Testing.layer()), Effect.provide(BunCrypto.layer))).then(console.log)
71
59
  * // AccessDenied
72
60
  * ```
73
61
  *
@@ -88,6 +76,7 @@ export const callerAs = (identity, options) => Effect.flatMap(Volume, (volume) =
88
76
  *
89
77
  * @example
90
78
  * ```ts
79
+ * import * as BunCrypto from "@effect/platform-bun/BunCrypto"
91
80
  * import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
92
81
  * import * as Testing from "@effect-vfs/core/Testing"
93
82
  * import { Effect } from "effect"
@@ -101,7 +90,7 @@ export const callerAs = (identity, options) => Effect.flatMap(Volume, (volume) =
101
90
  * return (yield* changes).map((change) => change._tag)
102
91
  * })
103
92
  *
104
- * Effect.runPromise(program.pipe(Effect.scoped, Effect.provide(Testing.layer()))).then(console.log)
93
+ * Effect.runPromise(program.pipe(Effect.scoped, Effect.provide(Testing.layer()), Effect.provide(BunCrypto.layer))).then(console.log)
105
94
  * // [ 'Create' ]
106
95
  * ```
107
96
  *
@@ -106,6 +106,7 @@ declare const VfsError_base: Schema.Class<VfsError, Schema.TaggedStruct<"VfsErro
106
106
  * ```ts
107
107
  * import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
108
108
  * import { Effect } from "effect"
109
+ * import * as BunCrypto from "@effect/platform-bun/BunCrypto"
109
110
  *
110
111
  * const program = Effect.gen(function*() {
111
112
  * const fs = yield* (yield* Vfs.make()).caller()
@@ -115,7 +116,7 @@ declare const VfsError_base: Schema.Class<VfsError, Schema.TaggedStruct<"VfsErro
115
116
  * )
116
117
  * })
117
118
  *
118
- * Effect.runPromise(program).then(console.log)
119
+ * Effect.runPromise(program.pipe(Effect.provide(BunCrypto.layer))).then(console.log)
119
120
  * // readFile: NotFound
120
121
  * ```
121
122
  *
@@ -1 +1 @@
1
- {"version":3,"file":"VfsError.d.ts","sourceRoot":"","sources":["../src/VfsError.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAM7C;;;;;GAKG;AACH,eAAO,MAAM,MAAM,4bA+BjB,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,SAAS,0GAAkG,CAAA;AAExH;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,4CAAoC,CAAA;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,yFAAiF,CAAA;AAEvG;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,OAAO,ulBAKlB,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,gGAUrB,CAAA;;IA0BC,uBAAuB;;IAEvB,2CAA2C;;IAE3C,wEAAwE;;IAExE,gEAAgE;;IAEhE,qEAAqE;;;AAhCvE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,QAAS,SAAQ,aAW5B;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;AAED;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5D;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAElE;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAElE;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAA;AAE7E;;;;;;GAMG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,OAAO;IACtC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CACzB;AAUD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,KAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CAYtF,CAAA"}
1
+ {"version":3,"file":"VfsError.d.ts","sourceRoot":"","sources":["../src/VfsError.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAM7C;;;;;GAKG;AACH,eAAO,MAAM,MAAM,4bA+BjB,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,SAAS,0GAAkG,CAAA;AAExH;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,4CAAoC,CAAA;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,yFAAiF,CAAA;AAEvG;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,OAAO,ulBAKlB,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,gGAUrB,CAAA;;IA2BC,uBAAuB;;IAEvB,2CAA2C;;IAE3C,wEAAwE;;IAExE,gEAAgE;;IAEhE,qEAAqE;;;AAjCvE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,QAAS,SAAQ,aAW5B;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;AAED;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5D;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAElE;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAElE;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAA;AAE7E;;;;;;GAMG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,OAAO;IACtC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CACzB;AAUD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,KAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CAYtF,CAAA"}
package/dist/VfsError.js CHANGED
@@ -101,6 +101,7 @@ export const ErrorPath = Schema.Uint8ArrayFromBase64.check(Schema.makeFilter((by
101
101
  * ```ts
102
102
  * import { VirtualFileSystem as Vfs } from "@effect-vfs/core"
103
103
  * import { Effect } from "effect"
104
+ * import * as BunCrypto from "@effect/platform-bun/BunCrypto"
104
105
  *
105
106
  * const program = Effect.gen(function*() {
106
107
  * const fs = yield* (yield* Vfs.make()).caller()
@@ -110,7 +111,7 @@ export const ErrorPath = Schema.Uint8ArrayFromBase64.check(Schema.makeFilter((by
110
111
  * )
111
112
  * })
112
113
  *
113
- * Effect.runPromise(program).then(console.log)
114
+ * Effect.runPromise(program.pipe(Effect.provide(BunCrypto.layer))).then(console.log)
114
115
  * // readFile: NotFound
115
116
  * ```
116
117
  *