@effect-vfs/core 0.1.0 → 0.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualFileSystem.d.ts","sourceRoot":"","sources":["../src/VirtualFileSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VirtualFileSystem.d.ts","sourceRoot":"","sources":["../src/VirtualFileSystem.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@
8
8
  *
9
9
  * @since 0.1.0
10
10
  */
11
+ import * as ByteSize from "effect/ByteSize";
11
12
  import * as Clock from "effect/Clock";
12
13
  import * as Context from "effect/Context";
13
14
  import { DecodeLimits, ImageError } from "./Snapshot.js";
@@ -18,26 +19,24 @@ import * as Encoding from "effect/Encoding";
18
19
  import * as PubSub from "effect/PubSub";
19
20
  import * as Result from "effect/Result";
20
21
  import * as Schema from "effect/Schema";
22
+ import * as SchemaIssue from "effect/SchemaIssue";
23
+ import * as SchemaTransformation from "effect/SchemaTransformation";
21
24
  import * as Scope from "effect/Scope";
22
25
  import * as Semaphore from "effect/Semaphore";
23
26
  import * as Stream from "effect/Stream";
27
+ import { BytePath, getBytes as getBytePathBytes, make as makeBytePath } from "./BytePath.js";
28
+ export { BytePath } from "./BytePath.js";
24
29
  import * as Content from "./internal/content.js";
25
30
  import * as Image from "./internal/image.js";
26
31
  import { compareOverlay } from "./internal/overlayChanges.js";
27
32
  import * as OverlayTesting from "./internal/overlayTesting.js";
28
- const BytePathId = Symbol("@effect-vfs/core/BytePath");
33
+ import * as SnapshotDeltaInternal from "./internal/snapshotDelta.js";
34
+ import * as SnapshotDeltaModel from "./SnapshotDelta.js";
35
+ export { SnapshotChange, SnapshotChangesOptions, SnapshotDeltaError, SnapshotDeltaLimits, SnapshotDeltaTypeId, SnapshotDifference, SnapshotNodeKind } from "./SnapshotDelta.js";
29
36
  const VolumeId = Symbol("@effect-vfs/core/Volume");
30
37
  const CallerId = Symbol("@effect-vfs/core/Caller");
31
38
  const FileHandleId = Symbol("@effect-vfs/core/FileHandle");
32
39
  const DirectoryHandleId = Symbol("@effect-vfs/core/DirectoryHandle");
33
- const bytePaths = new WeakMap();
34
- /**
35
- * Schema for an opaque byte-preserving filesystem path.
36
- *
37
- * @category schemas
38
- * @since 0.1.0
39
- */
40
- export const BytePath = Schema.declare((value) => typeof value === "object" && value !== null && bytePaths.has(value));
41
40
  /**
42
41
  * Schema for portable virtual filesystem error codes.
43
42
  *
@@ -119,11 +118,11 @@ export const VolumeOptions = Schema.Struct({
119
118
  /** Maximum number of filesystem nodes. Omission leaves the count unbounded. */
120
119
  maxEntries: Schema.optionalKey(Natural),
121
120
  /** Maximum combined regular-file content in bytes. */
122
- maxBytes: Schema.optionalKey(Natural),
121
+ maxBytes: Schema.optionalKey(Schema.ByteSize),
123
122
  /** Maximum content size of one regular file in bytes. */
124
- maxFileBytes: Schema.optionalKey(Natural.check(Schema.isLessThanOrEqualTo(0xffffffff))),
123
+ maxFileBytes: Schema.optionalKey(Schema.ByteSize.check(Schema.makeFilter((size) => ByteSize.isLessThanOrEqualTo(size, ByteSize.bytes(0xffffffff)) ? undefined : "must be at most 4294967295 bytes"))),
125
124
  /** Maximum encoded byte length of an absolute or relative path. */
126
- maxPathBytes: Schema.optionalKey(Natural.check(Schema.isGreaterThanOrEqualTo(1)))
125
+ maxPathBytes: Schema.optionalKey(Schema.ByteSize.check(Schema.makeFilter((size) => ByteSize.isGreaterThanOrEqualTo(size, ByteSize.bytes(1)) ? undefined : "must be at least 1 byte")))
127
126
  });
128
127
  // Match snapshot v1's canonical signed decimal timestamp domain.
129
128
  const timestampLimit = 10n ** 128n - 1n;
@@ -291,21 +290,66 @@ export const encodeSnapshot = Image.encodeSnapshot;
291
290
  * @since 0.1.0
292
291
  */
293
292
  export const decodeSnapshot = Image.decodeSnapshot;
293
+ const deltaLimits = (limits) => {
294
+ const decoded = decodeConfiguration(SnapshotDeltaModel.SnapshotDeltaLimits, limits ?? SnapshotDeltaModel.SnapshotDeltaLimits.default);
295
+ return Result.isFailure(decoded) ? Effect.fail(decoded.failure) : Effect.succeed(decoded.success);
296
+ };
297
+ /**
298
+ * Computes an exact portable delta between two immutable snapshots.
299
+ * Requires the platform-neutral `Crypto.Crypto` service for base identity.
300
+ *
301
+ * @category snapshots
302
+ * @since 0.1.0
303
+ */
304
+ export const diffSnapshots = Effect.fn("VirtualFileSystem.diffSnapshots")(function* (base, target, limits) {
305
+ return yield* SnapshotDeltaInternal.diffSnapshots(base, target, yield* deltaLimits(limits));
306
+ });
307
+ /**
308
+ * Verifies an exact snapshot delta against its base and derives an owned path-oriented summary.
309
+ * Requires the platform-neutral `Crypto.Crypto` service for base identity.
310
+ */
311
+ export const inspectSnapshotDelta = Effect.fn("VirtualFileSystem.inspectSnapshotDelta")(function* (base, delta, options, limits) {
312
+ const decoded = decodeConfiguration(SnapshotDeltaModel.SnapshotChangesOptions, options ?? {});
313
+ if (Result.isFailure(decoded))
314
+ return yield* decoded.failure;
315
+ return yield* SnapshotDeltaInternal.inspectSnapshotDelta(base, delta, decoded.success, yield* deltaLimits(limits));
316
+ });
317
+ /**
318
+ * Applies an exact delta to its semantically matching base and returns a new snapshot.
319
+ * Requires the platform-neutral `Crypto.Crypto` service for base identity.
320
+ *
321
+ * @category snapshots
322
+ * @since 0.1.0
323
+ */
324
+ export const applySnapshotDelta = Effect.fn("VirtualFileSystem.applySnapshotDelta")(function* (base, delta, limits) {
325
+ return yield* SnapshotDeltaInternal.applySnapshotDelta(base, delta, yield* deltaLimits(limits));
326
+ });
327
+ const deltaSchemaIssue = (cause, input, options) => new SchemaIssue.InvalidValue({ message: `Snapshot delta ${cause.code}${cause.field === undefined ? "" : ` at ${cause.field}`}` }, input, options);
328
+ /**
329
+ * Creates an Effect Schema codec between owned bytes and opaque snapshot deltas.
330
+ * Omission uses `SnapshotDeltaLimits.default`.
331
+ */
332
+ export const SnapshotDeltaFromBytes = (limits) => {
333
+ const selected = Schema.decodeResult(SnapshotDeltaModel.SnapshotDeltaLimits, { onExcessProperty: "error" })(limits ?? SnapshotDeltaModel.SnapshotDeltaLimits.default);
334
+ return Schema.Uint8Array.pipe(Schema.decodeTo(SnapshotDeltaModel.SnapshotDelta, SchemaTransformation.transformEffect({
335
+ decode: (input, options) => Result.isFailure(selected)
336
+ ? Effect.fail(new SchemaIssue.InvalidValue({ message: "Invalid snapshot delta limits" }, limits, options))
337
+ : SnapshotDeltaInternal.decodeSnapshotDelta(input, selected.success).pipe(Effect.mapError((cause) => deltaSchemaIssue(cause, input, options))),
338
+ encode: (delta, options) => Result.isFailure(selected)
339
+ ? Effect.fail(new SchemaIssue.InvalidValue({ message: "Invalid snapshot delta limits" }, limits, options))
340
+ : SnapshotDeltaInternal.encodeSnapshotDelta(delta, selected.success).pipe(Effect.mapError((cause) => deltaSchemaIssue(cause, delta, options)))
341
+ })));
342
+ };
294
343
  const failure = (code, operation, path) => new FsError({ code, operation, ...(path === undefined ? {} : { path }) });
295
344
  const ownedPath = (bytes) => {
296
- const path = Object.freeze({ [BytePathId]: true });
297
- bytePaths.set(path, bytes);
298
- return path;
345
+ return makeBytePath(bytes);
299
346
  };
300
347
  const strictString = (bytes, operation) => Effect.try({
301
348
  try: () => new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(bytes),
302
349
  catch: () => failure("UnrepresentableName", operation)
303
350
  });
304
351
  const nameBytes = (name) => {
305
- const bytes = new Uint8Array(name.length / 2);
306
- for (let i = 0; i < bytes.length; i++)
307
- bytes[i] = Number.parseInt(name.slice(i * 2, i * 2 + 2), 16);
308
- return bytes;
352
+ return Result.getOrThrow(Encoding.decodeHex(name));
309
353
  };
310
354
  // A zero-length view distinguishes a detached buffer from a valid empty buffer.
311
355
  const attachedBuffer = (bytes) => {
@@ -338,9 +382,7 @@ export const pathFromBytes = Effect.fn("VirtualFileSystem.pathFromBytes")(functi
338
382
  const owned = new Uint8Array(bytes);
339
383
  if (owned.length === 0 || owned.includes(0))
340
384
  return yield* failure("InvalidArgument", "pathFromBytes");
341
- const path = Object.freeze({ [BytePathId]: true });
342
- bytePaths.set(path, owned);
343
- return path;
385
+ return makeBytePath(owned);
344
386
  });
345
387
  /**
346
388
  * Copies the bytes held by an opaque byte path.
@@ -349,7 +391,7 @@ export const pathFromBytes = Effect.fn("VirtualFileSystem.pathFromBytes")(functi
349
391
  * @since 0.1.0
350
392
  */
351
393
  export const pathToBytes = Effect.fn("VirtualFileSystem.pathToBytes")(function* (path) {
352
- const bytes = bytePaths.get(path);
394
+ const bytes = getBytePathBytes(path);
353
395
  if (bytes === undefined)
354
396
  return yield* failure("InvalidArgument", "pathToBytes");
355
397
  return new Uint8Array(bytes);
@@ -377,7 +419,7 @@ const preparePath = (input, operation, maxPathBytes) => {
377
419
  bytes = new TextEncoder().encode(input);
378
420
  }
379
421
  else if (typeof input === "object" && input !== null) {
380
- bytes = bytePaths.get(input);
422
+ bytes = getBytePathBytes(input);
381
423
  }
382
424
  if (bytes === undefined)
383
425
  return Result.fail(failure("InvalidArgument", operation));
@@ -385,7 +427,7 @@ const preparePath = (input, operation, maxPathBytes) => {
385
427
  return Result.fail(failure("NotFound", operation, input));
386
428
  if (bytes.includes(0))
387
429
  return Result.fail(failure("InvalidArgument", operation, input));
388
- if (maxPathBytes !== undefined && bytes.length > maxPathBytes) {
430
+ if (maxPathBytes !== undefined && ByteSize.isGreaterThan(ByteSize.bytes(bytes.length), maxPathBytes)) {
389
431
  return Result.fail(failure("PathTooLong", operation, input));
390
432
  }
391
433
  const components = [];
@@ -469,11 +511,12 @@ const makeVolume = Effect.fn("VirtualFileSystem.makeVolume")(function* (source,
469
511
  };
470
512
  let nextInode = 2n;
471
513
  let entries = 0;
472
- let usedBytes = 0;
473
- const maxFileBytes = settings.maxFileBytes ?? 0xffffffff;
514
+ let usedBytes = 0n;
515
+ // The schema caps this value at uint32, so this boundary conversion is exact.
516
+ const maxFileBytes = Number(ByteSize.toBigInt(settings.maxFileBytes ?? ByteSize.bytes(0xffffffff)));
474
517
  if (image !== undefined) {
475
518
  const incoming = new Map();
476
- let content = 0;
519
+ let content = 0n;
477
520
  let count = 0;
478
521
  for (const record of image.records) {
479
522
  if (record.kind === "directory")
@@ -483,11 +526,11 @@ const makeVolume = Effect.fn("VirtualFileSystem.makeVolume")(function* (source,
483
526
  if (record.kind === "file" && length > maxFileBytes) {
484
527
  return yield* new ImageError({ code: "LimitExceeded", field: "maxFileBytes" });
485
528
  }
486
- content += length;
529
+ content += BigInt(length);
487
530
  }
488
531
  }
489
532
  if ((settings.maxEntries !== undefined && count > settings.maxEntries) ||
490
- (settings.maxBytes !== undefined && content > settings.maxBytes)) {
533
+ (settings.maxBytes !== undefined && content > ByteSize.toBigInt(settings.maxBytes))) {
491
534
  return yield* new ImageError({ code: "LimitExceeded", field: "volume" });
492
535
  }
493
536
  const baseContents = source._tag === "Overlay" ? Content.forOverlay(source.base, image) : undefined;
@@ -685,7 +728,7 @@ const makeVolume = Effect.fn("VirtualFileSystem.makeVolume")(function* (source,
685
728
  };
686
729
  const reclaim = (file) => {
687
730
  if (file.metadata.nlink === 0 && file.openCount === 0) {
688
- usedBytes -= file.data.bytes.length;
731
+ usedBytes -= BigInt(file.data.bytes.length);
689
732
  file.data = Content.empty();
690
733
  }
691
734
  };
@@ -699,7 +742,7 @@ const makeVolume = Effect.fn("VirtualFileSystem.makeVolume")(function* (source,
699
742
  if (node.kind === "file")
700
743
  reclaim(node);
701
744
  else if (node.metadata.nlink === 0)
702
- usedBytes -= node.target.length;
745
+ usedBytes -= BigInt(node.target.length);
703
746
  }
704
747
  };
705
748
  const releaseFile = (ref) => {
@@ -716,13 +759,14 @@ const makeVolume = Effect.fn("VirtualFileSystem.makeVolume")(function* (source,
716
759
  if (length > BigInt(maxFileBytes))
717
760
  return yield* failure("FileTooLarge", operation);
718
761
  const size = Number(length);
719
- if (size - file.data.bytes.length > (settings.maxBytes ?? Number.MAX_SAFE_INTEGER) - usedBytes) {
762
+ if (settings.maxBytes !== undefined &&
763
+ BigInt(size - file.data.bytes.length) > ByteSize.toBigInt(settings.maxBytes) - usedBytes) {
720
764
  return yield* failure("NoSpace", operation);
721
765
  }
722
766
  const data = new Uint8Array(size);
723
767
  data.set(file.data.bytes.subarray(0, size));
724
768
  const now = yield* timestamp(operation);
725
- usedBytes += size - file.data.bytes.length;
769
+ usedBytes += BigInt(size - file.data.bytes.length);
726
770
  file.data = Content.make(data);
727
771
  file.metadata = {
728
772
  ...file.metadata,
@@ -772,8 +816,11 @@ const makeVolume = Effect.fn("VirtualFileSystem.makeVolume")(function* (source,
772
816
  if (offset >= BigInt(maxFileBytes))
773
817
  return yield* failure("FileTooLarge", "write");
774
818
  const start = Number(offset);
775
- const free = (settings.maxBytes ?? Number.MAX_SAFE_INTEGER) - usedBytes;
776
- const end = Math.min(maxFileBytes, file.data.bytes.length + free);
819
+ const free = settings.maxBytes === undefined
820
+ ? BigInt(maxFileBytes)
821
+ : ByteSize.toBigInt(settings.maxBytes) - usedBytes;
822
+ const maximumEnd = BigInt(file.data.bytes.length) + free;
823
+ const end = Number(BigInt(maxFileBytes) < maximumEnd ? BigInt(maxFileBytes) : maximumEnd);
777
824
  const count = Math.min(bytes.length, Math.max(0, end - start));
778
825
  if (count === 0)
779
826
  return yield* failure("NoSpace", "write");
@@ -784,7 +831,7 @@ const makeVolume = Effect.fn("VirtualFileSystem.makeVolume")(function* (source,
784
831
  data.set(file.data.bytes);
785
832
  const now = yield* timestamp("write");
786
833
  data.set(bytes.subarray(0, count), start);
787
- usedBytes += size - file.data.bytes.length;
834
+ usedBytes += BigInt(size - file.data.bytes.length);
788
835
  file.data = Content.make(data);
789
836
  file.metadata = {
790
837
  ...file.metadata,
@@ -902,7 +949,8 @@ const makeVolume = Effect.fn("VirtualFileSystem.makeVolume")(function* (source,
902
949
  if (++traversals > 40)
903
950
  return yield* failure("SymlinkLoop", operation, path.input);
904
951
  const suffix = work.suffixes[index] ?? new Uint8Array(0);
905
- if (settings.maxPathBytes !== undefined && child.target.length + suffix.length > settings.maxPathBytes) {
952
+ if (settings.maxPathBytes !== undefined &&
953
+ ByteSize.isGreaterThan(ByteSize.bytes(child.target.length + suffix.length), settings.maxPathBytes)) {
906
954
  return yield* failure("PathTooLong", operation, path.input);
907
955
  }
908
956
  const expansion = new Uint8Array(child.target.length + suffix.length);
@@ -1168,7 +1216,8 @@ const makeVolume = Effect.fn("VirtualFileSystem.makeVolume")(function* (source,
1168
1216
  if (size > maxFileBytes)
1169
1217
  return yield* failure("FileTooLarge", "writeFile", input);
1170
1218
  const reclaimed = replaced !== undefined && replaced.metadata.nlink === 1 ? replaced.target.length : 0;
1171
- if (size - previous > (settings.maxBytes ?? Number.MAX_SAFE_INTEGER) - usedBytes + reclaimed) {
1219
+ if (settings.maxBytes !== undefined &&
1220
+ BigInt(size - previous) > ByteSize.toBigInt(settings.maxBytes) - usedBytes + BigInt(reclaimed)) {
1172
1221
  return yield* failure("NoSpace", "writeFile", input);
1173
1222
  }
1174
1223
  if (file !== undefined && !chosen.truncate && captured.length === 0 && chosen.finalMode === undefined) {
@@ -1202,7 +1251,7 @@ const makeVolume = Effect.fn("VirtualFileSystem.makeVolume")(function* (source,
1202
1251
  mtimeNs: now,
1203
1252
  ctimeNs: now
1204
1253
  };
1205
- usedBytes += size - previous;
1254
+ usedBytes += BigInt(size - previous);
1206
1255
  if (file === undefined) {
1207
1256
  if (replaced !== undefined)
1208
1257
  detach(replaced, now);
@@ -1305,7 +1354,7 @@ const makeVolume = Effect.fn("VirtualFileSystem.makeVolume")(function* (source,
1305
1354
  if (typeof target === "string" && !wellFormed(target)) {
1306
1355
  return yield* failure("InvalidPathEncoding", "symlink", target);
1307
1356
  }
1308
- const rawTarget = typeof target === "string" ? new TextEncoder().encode(target) : bytePaths.get(target);
1357
+ const rawTarget = typeof target === "string" ? new TextEncoder().encode(target) : getBytePathBytes(target);
1309
1358
  if (rawTarget === undefined || rawTarget.includes(0)) {
1310
1359
  return yield* failure("InvalidArgument", "symlink", target);
1311
1360
  }
@@ -1323,7 +1372,8 @@ const makeVolume = Effect.fn("VirtualFileSystem.makeVolume")(function* (source,
1323
1372
  if (path.trailingSlash)
1324
1373
  return yield* failure("NotDirectory", "symlink", input);
1325
1374
  if ((settings.maxEntries !== undefined && entries >= settings.maxEntries) ||
1326
- bytes.length > (settings.maxBytes ?? Number.MAX_SAFE_INTEGER) - usedBytes)
1375
+ (settings.maxBytes !== undefined &&
1376
+ BigInt(bytes.length) > ByteSize.toBigInt(settings.maxBytes) - usedBytes))
1327
1377
  return yield* failure("NoSpace", "symlink", input);
1328
1378
  const now = yield* timestamp("symlink");
1329
1379
  const node = {
@@ -1341,7 +1391,7 @@ const makeVolume = Effect.fn("VirtualFileSystem.makeVolume")(function* (source,
1341
1391
  parent.metadata = { ...parent.metadata, mtimeNs: now, ctimeNs: now };
1342
1392
  nextInode += 1n;
1343
1393
  entries += 1;
1344
- usedBytes += bytes.length;
1394
+ usedBytes += BigInt(bytes.length);
1345
1395
  publishEntry("Create", parent, name);
1346
1396
  }));
1347
1397
  }),
@@ -1790,7 +1840,7 @@ const FixtureMetadata = Schema.Struct({
1790
1840
  });
1791
1841
  const FixturePath = Schema.Union([
1792
1842
  Schema.String,
1793
- Schema.declare((value) => typeof value === "object" && value !== null && BytePathId in value && value[BytePathId] === true)
1843
+ BytePath
1794
1844
  ]);
1795
1845
  /**
1796
1846
  * Schema for a complete fixture namespace with optional metadata and forward hard links.
@@ -1908,7 +1958,7 @@ export const fromFixture = Effect.fn("VirtualFileSystem.fromFixture")(function*
1908
1958
  }
1909
1959
  const target = typeof entry.target === "string"
1910
1960
  ? new TextEncoder().encode(entry.target)
1911
- : bytePaths.get(entry.target);
1961
+ : getBytePathBytes(entry.target);
1912
1962
  if (target === undefined || target.includes(0)) {
1913
1963
  return yield* new ImageError({
1914
1964
  code: "InvalidStructure",
@@ -0,0 +1,7 @@
1
+ /** Strict padded base64 check, including canonical unused pad bits and no ignored whitespace. */
2
+ export declare const isCanonical: (value: string) => boolean;
3
+ /** Decoded length for an already canonical base64 string, without allocating its payload. */
4
+ export declare const decodedLength: (value: string) => number;
5
+ /** Decodes base64 previously accepted by `isCanonical`. */
6
+ export declare const decodeTrusted: (value: string) => Uint8Array;
7
+ //# sourceMappingURL=canonicalBase64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonicalBase64.d.ts","sourceRoot":"","sources":["../../src/internal/canonicalBase64.ts"],"names":[],"mappings":"AAKA,iGAAiG;AACjG,eAAO,MAAM,WAAW,UAAW,MAAM,KAAG,OAGP,CAAA;AAErC,6FAA6F;AAC7F,eAAO,MAAM,aAAa,UAAW,MAAM,KAAG,MACmC,CAAA;AAEjF,2DAA2D;AAC3D,eAAO,MAAM,aAAa,UAAW,MAAM,KAAG,UAC4D,CAAA"}
@@ -0,0 +1,11 @@
1
+ import * as Encoding from "effect/Encoding";
2
+ import * as Result from "effect/Result";
3
+ const canonicalTail = /^(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/][AQgw]==|[A-Za-z0-9+/]{2}[AEIMQUYcgkosw048]=)?(?![\s\S])/;
4
+ /** Strict padded base64 check, including canonical unused pad bits and no ignored whitespace. */
5
+ export const isCanonical = (value) => value.length % 4 === 0 &&
6
+ !/[^A-Za-z0-9+/]/.test(value.slice(0, -4)) &&
7
+ canonicalTail.test(value.slice(-4));
8
+ /** Decoded length for an already canonical base64 string, without allocating its payload. */
9
+ export const decodedLength = (value) => value.length / 4 * 3 - (value.endsWith("==") ? 2 : value.endsWith("=") ? 1 : 0);
10
+ /** Decodes base64 previously accepted by `isCanonical`. */
11
+ export const decodeTrusted = (value) => Result.getOrThrowWith(Encoding.decodeBase64(value), () => new Error("Invalid trusted canonical base64"));
@@ -3,9 +3,11 @@
3
3
  *
4
4
  * @internal
5
5
  */
6
+ import * as ByteSize from "effect/ByteSize";
6
7
  import * as Effect from "effect/Effect";
7
8
  import * as Schema from "effect/Schema";
8
9
  import { ImageError, type Snapshot } from "../Snapshot.js";
10
+ import * as CanonicalBase64 from "./canonicalBase64.js";
9
11
  /** @internal */
10
12
  export declare const StoredMetadata: Schema.Struct<{
11
13
  readonly uid: Schema.Finite;
@@ -116,7 +118,7 @@ export declare const Document: Schema.Struct<{
116
118
  /** @internal */
117
119
  export type Document = typeof Document.Type;
118
120
  /** @internal */
119
- export declare const decodedLength: (value: string) => number;
121
+ export declare const decodedLength: typeof CanonicalBase64.decodedLength;
120
122
  /** @internal */
121
123
  export declare const base64: (input: Uint8Array) => string;
122
124
  /** @internal */
@@ -125,18 +127,18 @@ export declare const bytes: (value: string) => Uint8Array;
125
127
  export declare const inspect: (snapshot: Snapshot) => Effect.Effect<Document, ImageError>;
126
128
  /** @internal */
127
129
  export declare const capture: (input: unknown, limits?: {
128
- readonly maxEncodedBytes: number;
130
+ readonly maxEncodedBytes: ByteSize.ByteSize;
129
131
  readonly maxRecords: number;
130
132
  readonly maxEntries: number;
131
- readonly maxDecodedBytes: number;
133
+ readonly maxDecodedBytes: ByteSize.ByteSize;
132
134
  } | undefined) => Effect.Effect<Snapshot, ImageError, never>;
133
135
  /** @internal */
134
136
  export declare const encodeSnapshot: (snapshot: Snapshot) => Effect.Effect<Uint8Array<ArrayBuffer>, ImageError, never>;
135
137
  /** @internal */
136
138
  export declare const decodeSnapshot: (input: Uint8Array<ArrayBufferLike>, limits: {
137
- readonly maxEncodedBytes: number;
139
+ readonly maxEncodedBytes: ByteSize.ByteSize;
138
140
  readonly maxRecords: number;
139
141
  readonly maxEntries: number;
140
- readonly maxDecodedBytes: number;
142
+ readonly maxDecodedBytes: ByteSize.ByteSize;
141
143
  }) => Effect.Effect<Snapshot, ImageError, never>;
142
144
  //# sourceMappingURL=image.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/internal/image.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAgB,UAAU,EAAE,KAAK,QAAQ,EAAkB,MAAM,gBAAgB,CAAA;AAaxF,gBAAgB;AAChB,eAAO,MAAM,cAAc;;;;;;;;EAQzB,CAAA;AACF,gBAAgB;AAChB,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,gBAAgB;AAChB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASjB,CAAA;AACF,gBAAgB;AAChB,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AACvC,gBAAgB;AAChB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKnB,CAAA;AACF,gBAAgB;AAChB,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAO3C,gBAAgB;AAChB,eAAO,MAAM,aAAa,UAAW,MAAM,KAAG,MACmC,CAAA;AACjF,gBAAgB;AAChB,eAAO,MAAM,MAAM,UAAW,UAAU,KAAG,MAU1C,CAAA;AAGD,gBAAgB;AAChB,eAAO,MAAM,KAAK,UAAW,MAAM,KAAG,UAIrC,CAAA;AACD,gBAAgB;AAChB,eAAO,MAAM,OAAO,aAAc,QAAQ,KAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAI3E,CAAA;AAEJ,gBAAgB;AAChB,eAAO,MAAM,OAAO;;;;;4DAwElB,CAAA;AAEF,gBAAgB;AAChB,eAAO,MAAM,cAAc,mFAKzB,CAAA;AACF,gBAAgB;AAChB,eAAO,MAAM,cAAc;;;;;gDAmB1B,CAAA"}
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/internal/image.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAgB,UAAU,EAAE,KAAK,QAAQ,EAAkB,MAAM,gBAAgB,CAAA;AACxF,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAavD,gBAAgB;AAChB,eAAO,MAAM,cAAc;;;;;;;;EAQzB,CAAA;AACF,gBAAgB;AAChB,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,gBAAgB;AAChB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASjB,CAAA;AACF,gBAAgB;AAChB,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AACvC,gBAAgB;AAChB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKnB,CAAA;AACF,gBAAgB;AAChB,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAE3C,gBAAgB;AAChB,eAAO,MAAM,aAAa,sCAAgC,CAAA;AAC1D,gBAAgB;AAChB,eAAO,MAAM,MAAM,UAAW,UAAU,KAAG,MAU1C,CAAA;AAGD,gBAAgB;AAChB,eAAO,MAAM,KAAK,UAAW,MAAM,KAAG,UAErC,CAAA;AACD,gBAAgB;AAChB,eAAO,MAAM,OAAO,aAAc,QAAQ,KAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAI3E,CAAA;AAEJ,gBAAgB;AAChB,eAAO,MAAM,OAAO;;;;;4DAwElB,CAAA;AAEF,gBAAgB;AAChB,eAAO,MAAM,cAAc,mFAKzB,CAAA;AACF,gBAAgB;AAChB,eAAO,MAAM,cAAc;;;;;gDAqB1B,CAAA"}
@@ -3,11 +3,13 @@
3
3
  *
4
4
  * @internal
5
5
  */
6
+ import * as ByteSize from "effect/ByteSize";
6
7
  import * as Effect from "effect/Effect";
7
8
  import * as Encoding from "effect/Encoding";
8
9
  import * as Result from "effect/Result";
9
10
  import * as Schema from "effect/Schema";
10
11
  import { DecodeLimits, ImageError, SnapshotTypeId } from "../Snapshot.js";
12
+ import * as CanonicalBase64 from "./canonicalBase64.js";
11
13
  const natural = Schema.Finite.check(Schema.isInt(), Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(Number.MAX_SAFE_INTEGER));
12
14
  class SnapshotImpl {
13
15
  [SnapshotTypeId] = SnapshotTypeId;
@@ -43,12 +45,8 @@ export const Document = Schema.Struct({
43
45
  records: Schema.Array(Record)
44
46
  });
45
47
  const snapshots = new WeakMap();
46
- const canonicalBase64Tail = /^(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/][AQgw]==|[A-Za-z0-9+/]{2}[AEIMQUYcgkosw048]=)?(?![\s\S])/;
47
- // Only the final quartet can contain padding. Scanning the alphabet separately avoids
48
- // the regexp stack growth caused by repeating a four-character group over large files.
49
- const canonicalBase64 = (value) => value.length % 4 === 0 && !/[^A-Za-z0-9+/]/.test(value.slice(0, -4)) && canonicalBase64Tail.test(value.slice(-4));
50
48
  /** @internal */
51
- export const decodedLength = (value) => value.length / 4 * 3 - (value.endsWith("==") ? 2 : value.endsWith("=") ? 1 : 0);
49
+ export const decodedLength = CanonicalBase64.decodedLength;
52
50
  /** @internal */
53
51
  export const base64 = (input) => {
54
52
  // Effect's encoder concatenates individual characters. Join bounded chunks so snapshots
@@ -64,10 +62,7 @@ export const base64 = (input) => {
64
62
  const error = (code, field) => new ImageError({ code, ...(field === undefined ? {} : { field }) });
65
63
  /** @internal */
66
64
  export const bytes = (value) => {
67
- const result = Encoding.decodeBase64(value);
68
- if (Result.isFailure(result))
69
- throw new Error("Invalid trusted snapshot base64");
70
- return result.success;
65
+ return CanonicalBase64.decodeTrusted(value);
71
66
  };
72
67
  /** @internal */
73
68
  export const inspect = (snapshot) => Effect.suspend(() => {
@@ -82,7 +77,7 @@ export const capture = Effect.fnUntraced(function* (input, limits) {
82
77
  const document = decoded.success;
83
78
  const records = new Map();
84
79
  let entries = 0;
85
- let payload = 0;
80
+ let payload = ByteSize.zero;
86
81
  if (limits !== undefined && document.records.length > limits.maxRecords) {
87
82
  return yield* error("LimitExceeded", "records");
88
83
  }
@@ -101,10 +96,10 @@ export const capture = Effect.fnUntraced(function* (input, limits) {
101
96
  ? record.entries.map((entry) => entry.name)
102
97
  : [record.kind === "file" ? record.data : record.target];
103
98
  for (const value of values) {
104
- if (!canonicalBase64(value))
99
+ if (!CanonicalBase64.isCanonical(value))
105
100
  return yield* error("InvalidEncoding", record.id);
106
- payload += decodedLength(value);
107
- if (!Number.isSafeInteger(payload) || (limits !== undefined && payload > limits.maxDecodedBytes)) {
101
+ payload = ByteSize.sum(payload, ByteSize.bytes(decodedLength(value)));
102
+ if (limits !== undefined && ByteSize.isGreaterThan(payload, limits.maxDecodedBytes)) {
108
103
  return yield* error("LimitExceeded", "bytes");
109
104
  }
110
105
  }
@@ -173,8 +168,9 @@ export const decodeSnapshot = Effect.fn("VirtualFileSystem.decodeSnapshot")(func
173
168
  return yield* error("InvalidStructure", "limits");
174
169
  if (!(input instanceof Uint8Array) || !(input.buffer instanceof ArrayBuffer))
175
170
  return yield* error("InvalidEncoding");
176
- if (input.byteLength > checked.success.maxEncodedBytes)
171
+ if (ByteSize.isGreaterThan(ByteSize.bytes(input.byteLength), checked.success.maxEncodedBytes)) {
177
172
  return yield* error("LimitExceeded", "encodedBytes");
173
+ }
178
174
  const text = yield* Effect.try({
179
175
  try: () => new TextDecoder("utf-8", { fatal: true }).decode(new Uint8Array(input)),
180
176
  catch: () => error("InvalidEncoding")
@@ -1 +1 @@
1
- {"version":3,"file":"overlayChanges.d.ts","sourceRoot":"","sources":["../../src/internal/overlayChanges.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,gBAAgB;AAChB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;CACvC;AAED,gBAAgB;AAChB,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAA;AAEtH,gBAAgB;AAChB,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAAE,GAC9F;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAAE,GAChG;IACA,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC7C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC5C,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;CACvD,GACC;IACA,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACvC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;CACvD,GACC;IACA,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACvC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;CACvD,CAAA;AAqFH,gBAAgB;AAChB,eAAO,MAAM,cAAc,SACnB,aAAa,CAAC,gBAAgB,CAAC,WAC5B,aAAa,CAAC,gBAAgB,CAAC,kCAEvC,aAAa,CAAC,gBAAgB,CAoEhC,CAAA"}
1
+ {"version":3,"file":"overlayChanges.d.ts","sourceRoot":"","sources":["../../src/internal/overlayChanges.ts"],"names":[],"mappings":"AAGA,gBAAgB;AAChB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,gBAAgB;AAChB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;CACvC;AAED,gBAAgB;AAChB,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAA;AAEtH,gBAAgB;AAChB,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAAE,GAC9F;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;CAAE,GAChG;IACA,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC7C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC5C,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;CACvD,GACC;IACA,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACvC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;CACvD,GACC;IACA,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACvC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;CACvD,CAAA;AA4EH,gBAAgB;AAChB,eAAO,MAAM,cAAc,SACnB,aAAa,CAAC,gBAAgB,CAAC,WAC5B,aAAa,CAAC,gBAAgB,CAAC,kCAEvC,aAAa,CAAC,gBAAgB,CAoEhC,CAAA"}
@@ -1,3 +1,5 @@
1
+ import * as Encoding from "effect/Encoding";
2
+ import * as Equal from "effect/Equal";
1
3
  const timestampFields = new Set(["atimeNs", "mtimeNs", "ctimeNs", "birthtimeNs"]);
2
4
  const differenceOrder = [
3
5
  "content",
@@ -16,12 +18,7 @@ const tagOrder = {
16
18
  Renamed: 3,
17
19
  Updated: 4
18
20
  };
19
- const key = (path) => {
20
- let result = "";
21
- for (const byte of path)
22
- result += byte.toString(16).padStart(2, "0");
23
- return result;
24
- };
21
+ const key = Encoding.encodeHex;
25
22
  const comparePaths = (left, right) => {
26
23
  const length = Math.min(left.length, right.length);
27
24
  for (let index = 0; index < length; index++) {
@@ -32,15 +29,7 @@ const comparePaths = (left, right) => {
32
29
  return left.length - right.length;
33
30
  };
34
31
  const sameBytes = (left, right) => {
35
- if (left === right)
36
- return true;
37
- if (left === undefined || right === undefined || left.length !== right.length)
38
- return false;
39
- for (let index = 0; index < left.length; index++) {
40
- if (left[index] !== right[index])
41
- return false;
42
- }
43
- return true;
32
+ return Equal.equals(left, right);
44
33
  };
45
34
  const differences = (before, after, includeTimestamps) => differenceOrder.filter((field) => {
46
35
  if (!includeTimestamps && timestampFields.has(field))