SnapshotDelta overview

Opaque portable snapshot deltas and their public inspection models.

Added in v0.1.0


utils

SnapshotChange

Schema for a path-oriented difference between two snapshots.

Independent snapshots do not preserve shared lineage, so moves are reported as a removal and an addition rather than an inferred rename.

Signature

export declare const SnapshotChange: Schema.Union<
  readonly [
    Schema.TaggedStruct<
      "Added",
      {
        readonly path: Schema.declare<BytePath, BytePath>;
        readonly kind: Schema.Literals<
          readonly ["directory", "file", "symlink"]
        >;
      }
    >,
    Schema.TaggedStruct<
      "Removed",
      {
        readonly path: Schema.declare<BytePath, BytePath>;
        readonly kind: Schema.Literals<
          readonly ["directory", "file", "symlink"]
        >;
      }
    >,
    Schema.TaggedStruct<
      "Updated",
      {
        readonly path: Schema.declare<BytePath, BytePath>;
        readonly beforeKind: Schema.Literals<
          readonly ["directory", "file", "symlink"]
        >;
        readonly afterKind: Schema.Literals<
          readonly ["directory", "file", "symlink"]
        >;
        readonly differences: Schema.$Array<
          Schema.Literals<
            readonly [
              "kind",
              "content",
              "target",
              "hardLinks",
              "mode",
              "uid",
              "gid",
              "atimeNs",
              "mtimeNs",
              "ctimeNs",
              "birthtimeNs",
            ]
          >
        >;
      }
    >,
  ]
>;

SnapshotChange (type alias)

A path-oriented semantic difference between two snapshots.

Signature

export type SnapshotChange = typeof SnapshotChange.Type;

SnapshotChangesOptions

Schema for snapshot-delta inspection options.

Signature

export declare const SnapshotChangesOptions: Schema.Struct<{
  readonly includeTimestamps: Schema.optionalKey<Schema.Boolean>;
}>;

SnapshotChangesOptions (type alias)

Filtering options for snapshot-delta inspection.

Signature

export type SnapshotChangesOptions = typeof SnapshotChangesOptions.Type;

SnapshotDelta

Schema for an already validated opaque snapshot delta.

Signature

export declare const SnapshotDelta: Schema.declare<
  SnapshotDelta,
  SnapshotDelta
>;

SnapshotDelta (interface)

An immutable, opaque description of the exact difference between two snapshots.

Signature

export interface SnapshotDelta {
  readonly [SnapshotDeltaTypeId]: SnapshotDeltaTypeId;
}

SnapshotDeltaError (class)

A valid snapshot delta was inspected or applied against a valid but semantically different base.

Signature

export declare class SnapshotDeltaError

SnapshotDeltaLimits

Schema for a complete snapshot-delta resource policy, with frozen presets.

The constrained preset is intended for memory-sensitive environments. The default preset permits larger snapshots and payloads while remaining finite.

Signature

export declare const SnapshotDeltaLimits: Schema.Struct<{
  readonly maxEncodedBytes: Schema.ByteSize;
  readonly maxIdentityBytes: Schema.ByteSize;
  readonly maxDeltaRecords: Schema.Finite;
  readonly maxDecodedDeltaBytes: Schema.ByteSize;
  readonly maxBaseRecords: Schema.Finite;
  readonly maxTargetRecords: Schema.Finite;
  readonly maxEntries: Schema.Finite;
  readonly maxOutputRecords: Schema.Finite;
  readonly maxOutputBytes: Schema.ByteSize;
  readonly maxInheritedRecords: Schema.Finite;
}> & {
  constrained: {
    readonly maxEncodedBytes: ByteSize.ByteSize;
    readonly maxIdentityBytes: ByteSize.ByteSize;
    readonly maxDeltaRecords: number;
    readonly maxDecodedDeltaBytes: ByteSize.ByteSize;
    readonly maxBaseRecords: number;
    readonly maxTargetRecords: number;
    readonly maxEntries: number;
    readonly maxOutputRecords: number;
    readonly maxOutputBytes: ByteSize.ByteSize;
    readonly maxInheritedRecords: number;
  };
  default: {
    readonly maxEncodedBytes: ByteSize.ByteSize;
    readonly maxIdentityBytes: ByteSize.ByteSize;
    readonly maxDeltaRecords: number;
    readonly maxDecodedDeltaBytes: ByteSize.ByteSize;
    readonly maxBaseRecords: number;
    readonly maxTargetRecords: number;
    readonly maxEntries: number;
    readonly maxOutputRecords: number;
    readonly maxOutputBytes: ByteSize.ByteSize;
    readonly maxInheritedRecords: number;
  };
};

SnapshotDeltaLimits (type alias)

Resource limits shared by delta creation, inspection, encoding, decoding, and application.

Signature

export type SnapshotDeltaLimits = typeof SnapshotDeltaLimitsSchema.Type;

SnapshotDeltaTypeId

Type identifier for opaque snapshot deltas.

Signature

export declare const SnapshotDeltaTypeId: typeof SnapshotDeltaTypeId;

SnapshotDeltaTypeId (type alias)

Type identifier for opaque snapshot deltas.

Signature

export type SnapshotDeltaTypeId = typeof SnapshotDeltaTypeId;

SnapshotDifference

Schema for semantic fields that can differ between snapshots.

Signature

export declare const SnapshotDifference: Schema.Literals<
  readonly [
    "kind",
    "content",
    "target",
    "hardLinks",
    "mode",
    "uid",
    "gid",
    "atimeNs",
    "mtimeNs",
    "ctimeNs",
    "birthtimeNs",
  ]
>;

SnapshotDifference (type alias)

A semantic field that differs between two snapshots.

Signature

export type SnapshotDifference = typeof SnapshotDifference.Type;

SnapshotNodeKind

Schema for filesystem entry kinds reported by snapshot inspection.

Signature

export declare const SnapshotNodeKind: Schema.Literals<
  readonly ["directory", "file", "symlink"]
>;

SnapshotNodeKind (type alias)

A filesystem entry kind reported by snapshot inspection.

Signature

export type SnapshotNodeKind = typeof SnapshotNodeKind.Type;