@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 +14 -9
- package/dist/BytePath.d.ts +2 -1
- package/dist/BytePath.d.ts.map +1 -1
- package/dist/LiveVolume.d.ts +6 -3
- package/dist/LiveVolume.d.ts.map +1 -1
- package/dist/LiveVolume.js +2 -0
- package/dist/Snapshot.d.ts +2 -1
- package/dist/Snapshot.d.ts.map +1 -1
- package/dist/Snapshot.js +2 -1
- package/dist/Testing.d.ts +9 -5
- package/dist/Testing.d.ts.map +1 -1
- package/dist/Testing.js +7 -18
- package/dist/VfsError.d.ts +2 -1
- package/dist/VfsError.d.ts.map +1 -1
- package/dist/VfsError.js +2 -1
- package/dist/VirtualFileSystem.d.ts +89 -47
- package/dist/VirtualFileSystem.d.ts.map +1 -1
- package/dist/VirtualFileSystem.js +62 -29
- package/dist/internal/fixture.d.ts +1 -1
- package/dist/internal/fixture.d.ts.map +1 -1
- package/dist/internal/overlayDiff.d.ts.map +1 -1
- package/dist/internal/overlayDiff.js +4 -12
- package/dist/internal/snapshotDelta.d.ts.map +1 -1
- package/dist/internal/snapshotDelta.js +7 -13
- package/dist/internal/tree.d.ts.map +1 -1
- package/dist/internal/tree.js +12 -12
- package/dist/internal/virtualFileSystem.d.ts +13 -7
- package/dist/internal/virtualFileSystem.d.ts.map +1 -1
- package/dist/internal/virtualFileSystem.js +48 -50
- package/dist/internal/volumeState.d.ts +3 -2
- package/dist/internal/volumeState.d.ts.map +1 -1
- package/dist/internal/volumeState.js +28 -30
- package/package.json +7 -7
- package/dist/internal/stagedState.d.ts +0 -18
- package/dist/internal/stagedState.d.ts.map +0 -1
- package/dist/internal/stagedState.js +0 -18
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.
|
|
20
|
-
|
|
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
|
```
|
package/dist/BytePath.d.ts
CHANGED
|
@@ -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
|
*
|
package/dist/BytePath.d.ts.map
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/LiveVolume.d.ts
CHANGED
|
@@ -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
|
package/dist/LiveVolume.d.ts.map
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/LiveVolume.js
CHANGED
|
@@ -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
|
package/dist/Snapshot.d.ts
CHANGED
|
@@ -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
|
*
|
package/dist/Snapshot.d.ts.map
CHANGED
|
@@ -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
|
|
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
|
*
|
package/dist/Testing.d.ts.map
CHANGED
|
@@ -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
|
|
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
|
*
|
package/dist/VfsError.d.ts
CHANGED
|
@@ -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
|
*
|
package/dist/VfsError.d.ts.map
CHANGED
|
@@ -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;;
|
|
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
|
*
|