@effect-vfs/core 0.7.0 → 0.8.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 +15 -238
- package/dist/LiveVolume.d.ts.map +1 -1
- package/dist/LiveVolume.js +9 -9
- package/dist/Search.d.ts +730 -0
- package/dist/Search.d.ts.map +1 -0
- package/dist/Search.js +568 -0
- package/dist/SnapshotDelta.d.ts +234 -0
- package/dist/SnapshotDelta.d.ts.map +1 -1
- package/dist/SnapshotDelta.js +107 -0
- package/dist/VirtualFileSystem.d.ts +53 -1
- package/dist/VirtualFileSystem.d.ts.map +1 -1
- package/dist/VirtualFileSystem.js +59 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/internal/canonicalBase64.js +3 -3
- package/dist/internal/fixture.js +3 -3
- package/dist/internal/glob.d.ts +66 -0
- package/dist/internal/glob.d.ts.map +1 -0
- package/dist/internal/glob.js +248 -0
- package/dist/internal/image.d.ts +7 -1
- package/dist/internal/image.d.ts.map +1 -1
- package/dist/internal/image.js +9 -7
- package/dist/internal/liveImage.d.ts +1 -1
- package/dist/internal/liveImage.d.ts.map +1 -1
- package/dist/internal/liveImage.js +2 -10
- package/dist/internal/overlayDiff.js +2 -2
- package/dist/internal/path.d.ts.map +1 -1
- package/dist/internal/path.js +3 -3
- package/dist/internal/resolution.d.ts +135 -0
- package/dist/internal/resolution.d.ts.map +1 -0
- package/dist/internal/resolution.js +277 -0
- package/dist/internal/search.d.ts +24 -0
- package/dist/internal/search.d.ts.map +1 -0
- package/dist/internal/search.js +78 -0
- package/dist/internal/searchContent.d.ts +77 -0
- package/dist/internal/searchContent.d.ts.map +1 -0
- package/dist/internal/searchContent.js +223 -0
- package/dist/internal/searchModel.d.ts +83 -0
- package/dist/internal/searchModel.d.ts.map +1 -0
- package/dist/internal/searchModel.js +23 -0
- package/dist/internal/snapshotDelta.d.ts +470 -1
- package/dist/internal/snapshotDelta.d.ts.map +1 -1
- package/dist/internal/snapshotDelta.js +60 -26
- package/dist/internal/snapshotMerge.d.ts +54 -0
- package/dist/internal/snapshotMerge.d.ts.map +1 -0
- package/dist/internal/snapshotMerge.js +959 -0
- package/dist/internal/tokenRegistry.d.ts +77 -0
- package/dist/internal/tokenRegistry.d.ts.map +1 -0
- package/dist/internal/tokenRegistry.js +128 -0
- package/dist/internal/tree.js +2 -2
- package/dist/internal/virtualFileSystem.d.ts +32 -17
- package/dist/internal/virtualFileSystem.d.ts.map +1 -1
- package/dist/internal/virtualFileSystem.js +640 -993
- package/dist/internal/volumeLimits.d.ts +53 -0
- package/dist/internal/volumeLimits.d.ts.map +1 -0
- package/dist/internal/volumeLimits.js +63 -0
- package/dist/internal/volumeState.d.ts +2 -0
- package/dist/internal/volumeState.d.ts.map +1 -1
- package/dist/internal/volumeState.js +9 -0
- package/package.json +10 -6
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as ByteSize from "effect/ByteSize";
|
|
2
|
+
import * as Result from "effect/Result";
|
|
3
|
+
import type { VolumeLimits } from "../VirtualFileSystem.js";
|
|
4
|
+
import { type VolumeIdentity, VolumeOptions } from "../Volume.js";
|
|
5
|
+
import type * as Tree from "./tree.js";
|
|
6
|
+
type StoredLimits = Tree.Runtime["limits"];
|
|
7
|
+
/** @internal */
|
|
8
|
+
export declare const defaults: VolumeLimits;
|
|
9
|
+
/** @internal */
|
|
10
|
+
export declare const configuration: (options?: VolumeOptions, operation?: string) => Result.Result<{
|
|
11
|
+
options: {
|
|
12
|
+
readonly identity?: string & import("effect/Brand").Brand<"@effect-vfs/core/VolumeIdentity">;
|
|
13
|
+
readonly maxEntries?: number;
|
|
14
|
+
readonly maxPendingOperations?: number;
|
|
15
|
+
readonly maxWatchEvents?: number;
|
|
16
|
+
readonly maxBytes?: ByteSize.ByteSize;
|
|
17
|
+
readonly maxFileBytes?: ByteSize.ByteSize;
|
|
18
|
+
readonly maxPathBytes?: ByteSize.ByteSize;
|
|
19
|
+
};
|
|
20
|
+
identity: (string & import("effect/Brand").Brand<"@effect-vfs/core/VolumeIdentity">) | undefined;
|
|
21
|
+
limits: Readonly<{
|
|
22
|
+
maxEntries: number | undefined;
|
|
23
|
+
maxBytes: ByteSize.ByteSize | undefined;
|
|
24
|
+
maxFileBytes: ByteSize.ByteSize;
|
|
25
|
+
maxPathBytes: ByteSize.ByteSize | undefined;
|
|
26
|
+
maxPendingOperations: number;
|
|
27
|
+
maxWatchEvents: number;
|
|
28
|
+
}>;
|
|
29
|
+
}, import("../VfsError.js").ArgumentFailure>;
|
|
30
|
+
/** @internal */
|
|
31
|
+
export declare const fromOptions: (options?: VolumeOptions, operation?: string) => Result.Result<Readonly<{
|
|
32
|
+
maxEntries: number | undefined;
|
|
33
|
+
maxBytes: ByteSize.ByteSize | undefined;
|
|
34
|
+
maxFileBytes: ByteSize.ByteSize;
|
|
35
|
+
maxPathBytes: ByteSize.ByteSize | undefined;
|
|
36
|
+
maxPendingOperations: number;
|
|
37
|
+
maxWatchEvents: number;
|
|
38
|
+
}>, import("../VfsError.js").ArgumentFailure>;
|
|
39
|
+
/** @internal */
|
|
40
|
+
export declare const fromStored: (stored: StoredLimits, runtime?: VolumeLimits) => Result.Result<Readonly<{
|
|
41
|
+
maxEntries: number | undefined;
|
|
42
|
+
maxBytes: ByteSize.ByteSize | undefined;
|
|
43
|
+
maxFileBytes: ByteSize.ByteSize;
|
|
44
|
+
maxPathBytes: ByteSize.ByteSize | undefined;
|
|
45
|
+
maxPendingOperations: number;
|
|
46
|
+
maxWatchEvents: number;
|
|
47
|
+
}>, import("../VfsError.js").ArgumentFailure>;
|
|
48
|
+
/** @internal */
|
|
49
|
+
export declare const toStored: (limits: VolumeLimits) => StoredLimits;
|
|
50
|
+
/** @internal */
|
|
51
|
+
export declare const compatible: (stored: VolumeLimits, requested: VolumeLimits, identity: VolumeIdentity, requestedIdentity?: VolumeIdentity) => boolean;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=volumeLimits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"volumeLimits.d.ts","sourceRoot":"","sources":["../../src/internal/volumeLimits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,KAAK,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjE,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAA;AAGtC,KAAK,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAM1C,gBAAgB;AAChB,eAAO,MAAM,QAAQ,EAAE,YAOrB,CAAA;AAEF,gBAAgB;AAChB,eAAO,MAAM,aAAa,aAAc,aAAa;;;;;;;;;;;;;;;;;;;4CAelD,CAAA;AAEH,gBAAgB;AAChB,eAAO,MAAM,WAAW,aAAc,aAAa;;;;;;;6CACyB,CAAA;AAE5E,gBAAgB;AAChB,eAAO,MAAM,UAAU,WAAY,YAAY,YAAW,YAAY;;;;;;;6CAerE,CAAA;AAED,gBAAgB;AAChB,eAAO,MAAM,QAAQ,WAAY,YAAY,KAAG,YAY/C,CAAA;AAKD,gBAAgB;AAChB,eAAO,MAAM,UAAU,WACb,YAAY,aACT,YAAY,YACb,cAAc,sBACJ,cAAc,KACjC,OAGkE,CAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import * as ByteSize from "effect/ByteSize";
|
|
2
|
+
import * as Result from "effect/Result";
|
|
3
|
+
import { VolumeOptions } from "../Volume.js";
|
|
4
|
+
import { decodeConfiguration } from "./errors.js";
|
|
5
|
+
import { MAX_FILE_BYTES } from "./volumeState.js";
|
|
6
|
+
/** @internal */
|
|
7
|
+
export const defaults = Object.freeze({
|
|
8
|
+
maxEntries: undefined,
|
|
9
|
+
maxBytes: undefined,
|
|
10
|
+
maxFileBytes: ByteSize.bytes(MAX_FILE_BYTES),
|
|
11
|
+
maxPathBytes: undefined,
|
|
12
|
+
maxPendingOperations: 64,
|
|
13
|
+
maxWatchEvents: 256
|
|
14
|
+
});
|
|
15
|
+
/** @internal */
|
|
16
|
+
export const configuration = (options, operation = "make") => Result.map(decodeConfiguration(VolumeOptions, options === undefined ? {} : options, operation), (decoded) => ({
|
|
17
|
+
options: decoded,
|
|
18
|
+
identity: decoded.identity,
|
|
19
|
+
limits: Object.freeze({
|
|
20
|
+
maxEntries: decoded.maxEntries,
|
|
21
|
+
maxBytes: decoded.maxBytes,
|
|
22
|
+
maxFileBytes: decoded.maxFileBytes ?? defaults.maxFileBytes,
|
|
23
|
+
maxPathBytes: decoded.maxPathBytes,
|
|
24
|
+
maxPendingOperations: decoded.maxPendingOperations ?? defaults.maxPendingOperations,
|
|
25
|
+
maxWatchEvents: decoded.maxWatchEvents ?? defaults.maxWatchEvents
|
|
26
|
+
})
|
|
27
|
+
}));
|
|
28
|
+
/** @internal */
|
|
29
|
+
export const fromOptions = (options, operation = "make") => Result.map(configuration(options, operation), (decoded) => decoded.limits);
|
|
30
|
+
/** @internal */
|
|
31
|
+
export const fromStored = (stored, runtime = defaults) => {
|
|
32
|
+
const options = {
|
|
33
|
+
maxPendingOperations: runtime.maxPendingOperations,
|
|
34
|
+
maxWatchEvents: runtime.maxWatchEvents
|
|
35
|
+
};
|
|
36
|
+
if (stored.maxEntries !== undefined)
|
|
37
|
+
options.maxEntries = stored.maxEntries;
|
|
38
|
+
if (stored.maxBytes !== undefined)
|
|
39
|
+
options.maxBytes = ByteSize.bytes(stored.maxBytes);
|
|
40
|
+
if (stored.maxFileBytes !== undefined)
|
|
41
|
+
options.maxFileBytes = ByteSize.bytes(stored.maxFileBytes);
|
|
42
|
+
if (stored.maxPathBytes !== undefined)
|
|
43
|
+
options.maxPathBytes = ByteSize.bytes(stored.maxPathBytes);
|
|
44
|
+
return fromOptions(options);
|
|
45
|
+
};
|
|
46
|
+
/** @internal */
|
|
47
|
+
export const toStored = (limits) => {
|
|
48
|
+
const stored = {
|
|
49
|
+
maxFileBytes: ByteSize.toBigInt(limits.maxFileBytes)
|
|
50
|
+
};
|
|
51
|
+
if (limits.maxEntries !== undefined)
|
|
52
|
+
stored.maxEntries = limits.maxEntries;
|
|
53
|
+
if (limits.maxBytes !== undefined)
|
|
54
|
+
stored.maxBytes = ByteSize.toBigInt(limits.maxBytes);
|
|
55
|
+
if (limits.maxPathBytes !== undefined)
|
|
56
|
+
stored.maxPathBytes = ByteSize.toBigInt(limits.maxPathBytes);
|
|
57
|
+
return stored;
|
|
58
|
+
};
|
|
59
|
+
const sameSize = (left, right) => left === undefined || right === undefined ? left === right : ByteSize.toBigInt(left) === ByteSize.toBigInt(right);
|
|
60
|
+
/** @internal */
|
|
61
|
+
export const compatible = (stored, requested, identity, requestedIdentity) => stored.maxEntries === requested.maxEntries && sameSize(stored.maxBytes, requested.maxBytes) &&
|
|
62
|
+
sameSize(stored.maxFileBytes, requested.maxFileBytes) && sameSize(stored.maxPathBytes, requested.maxPathBytes) &&
|
|
63
|
+
(requestedIdentity === undefined || requestedIdentity === identity);
|
|
@@ -75,6 +75,8 @@ export declare const directoryMetadata: (ino: bigint, uid: number, gid: number,
|
|
|
75
75
|
/** @internal */
|
|
76
76
|
export declare const emptyRoot: (now: bigint) => Directory;
|
|
77
77
|
/** @internal */
|
|
78
|
+
export declare const emptyState: (now: bigint) => VolumeState;
|
|
79
|
+
/** @internal */
|
|
78
80
|
export declare const storedMetadata: (metadata: NodeMetadata) => StoredMetadata;
|
|
79
81
|
/** @internal */
|
|
80
82
|
export declare const reachableNodes: (state: VolumeState) => Effect.Effect<Node[], never, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"volumeState.d.ts","sourceRoot":"","sources":["../../src/internal/volumeState.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"volumeState.d.ts","sourceRoot":"","sources":["../../src/internal/volumeState.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,15 @@ export const emptyRoot = (now) => ({
|
|
|
63
63
|
revision: 1n
|
|
64
64
|
});
|
|
65
65
|
/** @internal */
|
|
66
|
+
export const emptyState = (now) => ({
|
|
67
|
+
inodes: InodeTable.set(InodeTable.empty(), ROOT_INO, emptyRoot(now)),
|
|
68
|
+
open: new Map(),
|
|
69
|
+
nextInode: Ino(2),
|
|
70
|
+
revision: 1n,
|
|
71
|
+
entries: 0,
|
|
72
|
+
usedBytes: 0n
|
|
73
|
+
});
|
|
74
|
+
/** @internal */
|
|
66
75
|
export const storedMetadata = (metadata) => ({
|
|
67
76
|
uid: metadata.uid,
|
|
68
77
|
gid: metadata.gid,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-vfs/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "A runtime-neutral virtual filesystem core for Effect.",
|
|
5
5
|
"homepage": "https://github.com/lloydrichards/effect-virtual-fs#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
"type-check": "tsc --noEmit && tsc --project contracts/tsconfig.json"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
|
-
"effect": "4.0.0
|
|
28
|
+
"effect": "^4.0.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@effect/platform-bun": "4.0.0
|
|
32
|
-
"@effect/platform-node-shared": "4.0.0
|
|
33
|
-
"@effect/vitest": "4.0.0
|
|
31
|
+
"@effect/platform-bun": "4.0.0",
|
|
32
|
+
"@effect/platform-node-shared": "4.0.0",
|
|
33
|
+
"@effect/vitest": "4.0.0",
|
|
34
34
|
"@repo/config-typescript": "workspace:*",
|
|
35
|
-
"effect": "4.0.0
|
|
35
|
+
"effect": "4.0.0"
|
|
36
36
|
},
|
|
37
37
|
"exports": {
|
|
38
38
|
".": {
|
|
@@ -87,6 +87,10 @@
|
|
|
87
87
|
"types": "./dist/Snapshot.d.ts",
|
|
88
88
|
"import": "./dist/Snapshot.js"
|
|
89
89
|
},
|
|
90
|
+
"./Search": {
|
|
91
|
+
"types": "./dist/Search.d.ts",
|
|
92
|
+
"import": "./dist/Search.js"
|
|
93
|
+
},
|
|
90
94
|
"./SnapshotDelta": {
|
|
91
95
|
"types": "./dist/SnapshotDelta.d.ts",
|
|
92
96
|
"import": "./dist/SnapshotDelta.js"
|