@avalanche-io/c4-node 1.0.10
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/dist/packages/core/src/base58.d.ts +5 -0
- package/dist/packages/core/src/base58.d.ts.map +1 -0
- package/dist/packages/core/src/base58.js +42 -0
- package/dist/packages/core/src/base58.js.map +1 -0
- package/dist/packages/core/src/browser/filesystem.d.ts +34 -0
- package/dist/packages/core/src/browser/filesystem.d.ts.map +1 -0
- package/dist/packages/core/src/browser/filesystem.js +169 -0
- package/dist/packages/core/src/browser/filesystem.js.map +1 -0
- package/dist/packages/core/src/browser/index.d.ts +4 -0
- package/dist/packages/core/src/browser/index.d.ts.map +1 -0
- package/dist/packages/core/src/browser/index.js +6 -0
- package/dist/packages/core/src/browser/index.js.map +1 -0
- package/dist/packages/core/src/browser/store.d.ts +28 -0
- package/dist/packages/core/src/browser/store.d.ts.map +1 -0
- package/dist/packages/core/src/browser/store.js +142 -0
- package/dist/packages/core/src/browser/store.js.map +1 -0
- package/dist/packages/core/src/browser/worker.d.ts +34 -0
- package/dist/packages/core/src/browser/worker.d.ts.map +1 -0
- package/dist/packages/core/src/browser/worker.js +96 -0
- package/dist/packages/core/src/browser/worker.js.map +1 -0
- package/dist/packages/core/src/decoder.d.ts +23 -0
- package/dist/packages/core/src/decoder.d.ts.map +1 -0
- package/dist/packages/core/src/decoder.js +431 -0
- package/dist/packages/core/src/decoder.js.map +1 -0
- package/dist/packages/core/src/diff.d.ts +48 -0
- package/dist/packages/core/src/diff.d.ts.map +1 -0
- package/dist/packages/core/src/diff.js +169 -0
- package/dist/packages/core/src/diff.js.map +1 -0
- package/dist/packages/core/src/encoder.d.ts +13 -0
- package/dist/packages/core/src/encoder.d.ts.map +1 -0
- package/dist/packages/core/src/encoder.js +125 -0
- package/dist/packages/core/src/encoder.js.map +1 -0
- package/dist/packages/core/src/entry.d.ts +59 -0
- package/dist/packages/core/src/entry.d.ts.map +1 -0
- package/dist/packages/core/src/entry.js +266 -0
- package/dist/packages/core/src/entry.js.map +1 -0
- package/dist/packages/core/src/errors.d.ts +29 -0
- package/dist/packages/core/src/errors.d.ts.map +1 -0
- package/dist/packages/core/src/errors.js +56 -0
- package/dist/packages/core/src/errors.js.map +1 -0
- package/dist/packages/core/src/filesystem.d.ts +68 -0
- package/dist/packages/core/src/filesystem.d.ts.map +1 -0
- package/dist/packages/core/src/filesystem.js +62 -0
- package/dist/packages/core/src/filesystem.js.map +1 -0
- package/dist/packages/core/src/id.d.ts +33 -0
- package/dist/packages/core/src/id.d.ts.map +1 -0
- package/dist/packages/core/src/id.js +126 -0
- package/dist/packages/core/src/id.js.map +1 -0
- package/dist/packages/core/src/identify-content.d.ts +17 -0
- package/dist/packages/core/src/identify-content.d.ts.map +1 -0
- package/dist/packages/core/src/identify-content.js +70 -0
- package/dist/packages/core/src/identify-content.js.map +1 -0
- package/dist/packages/core/src/index.d.ts +23 -0
- package/dist/packages/core/src/index.d.ts.map +1 -0
- package/dist/packages/core/src/index.js +41 -0
- package/dist/packages/core/src/index.js.map +1 -0
- package/dist/packages/core/src/manifest.d.ts +68 -0
- package/dist/packages/core/src/manifest.d.ts.map +1 -0
- package/dist/packages/core/src/manifest.js +463 -0
- package/dist/packages/core/src/manifest.js.map +1 -0
- package/dist/packages/core/src/memory-fs.d.ts +33 -0
- package/dist/packages/core/src/memory-fs.d.ts.map +1 -0
- package/dist/packages/core/src/memory-fs.js +187 -0
- package/dist/packages/core/src/memory-fs.js.map +1 -0
- package/dist/packages/core/src/memory-store.d.ts +21 -0
- package/dist/packages/core/src/memory-store.d.ts.map +1 -0
- package/dist/packages/core/src/memory-store.js +57 -0
- package/dist/packages/core/src/memory-store.js.map +1 -0
- package/dist/packages/core/src/naturalsort.d.ts +2 -0
- package/dist/packages/core/src/naturalsort.d.ts.map +1 -0
- package/dist/packages/core/src/naturalsort.js +88 -0
- package/dist/packages/core/src/naturalsort.js.map +1 -0
- package/dist/packages/core/src/observable.d.ts +54 -0
- package/dist/packages/core/src/observable.d.ts.map +1 -0
- package/dist/packages/core/src/observable.js +150 -0
- package/dist/packages/core/src/observable.js.map +1 -0
- package/dist/packages/core/src/pool.d.ts +38 -0
- package/dist/packages/core/src/pool.d.ts.map +1 -0
- package/dist/packages/core/src/pool.js +113 -0
- package/dist/packages/core/src/pool.js.map +1 -0
- package/dist/packages/core/src/reconcile.d.ts +43 -0
- package/dist/packages/core/src/reconcile.d.ts.map +1 -0
- package/dist/packages/core/src/reconcile.js +172 -0
- package/dist/packages/core/src/reconcile.js.map +1 -0
- package/dist/packages/core/src/resolver.d.ts +67 -0
- package/dist/packages/core/src/resolver.d.ts.map +1 -0
- package/dist/packages/core/src/resolver.js +110 -0
- package/dist/packages/core/src/resolver.js.map +1 -0
- package/dist/packages/core/src/safename.d.ts +7 -0
- package/dist/packages/core/src/safename.d.ts.map +1 -0
- package/dist/packages/core/src/safename.js +354 -0
- package/dist/packages/core/src/safename.js.map +1 -0
- package/dist/packages/core/src/scanner.d.ts +25 -0
- package/dist/packages/core/src/scanner.d.ts.map +1 -0
- package/dist/packages/core/src/scanner.js +97 -0
- package/dist/packages/core/src/scanner.js.map +1 -0
- package/dist/packages/core/src/store.d.ts +39 -0
- package/dist/packages/core/src/store.d.ts.map +1 -0
- package/dist/packages/core/src/store.js +53 -0
- package/dist/packages/core/src/store.js.map +1 -0
- package/dist/packages/core/src/tree.d.ts +16 -0
- package/dist/packages/core/src/tree.d.ts.map +1 -0
- package/dist/packages/core/src/tree.js +45 -0
- package/dist/packages/core/src/tree.js.map +1 -0
- package/dist/packages/core/src/verify.d.ts +29 -0
- package/dist/packages/core/src/verify.d.ts.map +1 -0
- package/dist/packages/core/src/verify.js +85 -0
- package/dist/packages/core/src/verify.js.map +1 -0
- package/dist/packages/core/src/workspace.d.ts +72 -0
- package/dist/packages/core/src/workspace.d.ts.map +1 -0
- package/dist/packages/core/src/workspace.js +135 -0
- package/dist/packages/core/src/workspace.js.map +1 -0
- package/dist/packages/node/src/index.d.ts +4 -0
- package/dist/packages/node/src/index.d.ts.map +1 -0
- package/dist/packages/node/src/index.js +6 -0
- package/dist/packages/node/src/index.js.map +1 -0
- package/dist/packages/node/src/node-fs.d.ts +24 -0
- package/dist/packages/node/src/node-fs.d.ts.map +1 -0
- package/dist/packages/node/src/node-fs.js +84 -0
- package/dist/packages/node/src/node-fs.js.map +1 -0
- package/dist/packages/node/src/tree-store.d.ts +22 -0
- package/dist/packages/node/src/tree-store.d.ts.map +1 -0
- package/dist/packages/node/src/tree-store.js +77 -0
- package/dist/packages/node/src/tree-store.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../../../core/src/entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Sentinel errors for the c4m package. */
|
|
2
|
+
export declare class C4Error extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class InvalidEntryError extends C4Error {
|
|
6
|
+
constructor(detail?: string);
|
|
7
|
+
}
|
|
8
|
+
export declare class DuplicatePathError extends C4Error {
|
|
9
|
+
constructor(path: string);
|
|
10
|
+
}
|
|
11
|
+
export declare class PathTraversalError extends C4Error {
|
|
12
|
+
constructor(name: string);
|
|
13
|
+
}
|
|
14
|
+
export declare class InvalidFlowTargetError extends C4Error {
|
|
15
|
+
constructor(target?: string);
|
|
16
|
+
}
|
|
17
|
+
export declare class PatchIDMismatchError extends C4Error {
|
|
18
|
+
constructor(line: number, got: string, want: string);
|
|
19
|
+
}
|
|
20
|
+
export declare class EmptyPatchError extends C4Error {
|
|
21
|
+
constructor(detail?: string);
|
|
22
|
+
}
|
|
23
|
+
export declare class BadIDLengthError extends C4Error {
|
|
24
|
+
constructor(length: number);
|
|
25
|
+
}
|
|
26
|
+
export declare class BadIDCharError extends C4Error {
|
|
27
|
+
constructor(position: number);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../core/src/errors.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAE3C,qBAAa,OAAQ,SAAQ,KAAK;gBACpB,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,OAAO;gBAChC,MAAM,CAAC,EAAE,MAAM;CAI5B;AAED,qBAAa,kBAAmB,SAAQ,OAAO;gBACjC,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,kBAAmB,SAAQ,OAAO;gBACjC,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,sBAAuB,SAAQ,OAAO;gBACrC,MAAM,CAAC,EAAE,MAAM;CAI5B;AAED,qBAAa,oBAAqB,SAAQ,OAAO;gBACnC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAIpD;AAED,qBAAa,eAAgB,SAAQ,OAAO;gBAC9B,MAAM,CAAC,EAAE,MAAM;CAI5B;AAED,qBAAa,gBAAiB,SAAQ,OAAO;gBAC/B,MAAM,EAAE,MAAM;CAI3B;AAED,qBAAa,cAAe,SAAQ,OAAO;gBAC7B,QAAQ,EAAE,MAAM;CAI7B"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/** Sentinel errors for the c4m package. */
|
|
2
|
+
export class C4Error extends Error {
|
|
3
|
+
constructor(message) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.name = 'C4Error';
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export class InvalidEntryError extends C4Error {
|
|
9
|
+
constructor(detail) {
|
|
10
|
+
super(detail ? `c4m: invalid entry: ${detail}` : 'c4m: invalid entry');
|
|
11
|
+
this.name = 'InvalidEntryError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export class DuplicatePathError extends C4Error {
|
|
15
|
+
constructor(path) {
|
|
16
|
+
super(`c4m: duplicate path: ${path}`);
|
|
17
|
+
this.name = 'DuplicatePathError';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export class PathTraversalError extends C4Error {
|
|
21
|
+
constructor(name) {
|
|
22
|
+
super(`c4m: path traversal: ${name}`);
|
|
23
|
+
this.name = 'PathTraversalError';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export class InvalidFlowTargetError extends C4Error {
|
|
27
|
+
constructor(target) {
|
|
28
|
+
super(target ? `c4m: invalid flow target: ${target}` : 'c4m: invalid flow target');
|
|
29
|
+
this.name = 'InvalidFlowTargetError';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export class PatchIDMismatchError extends C4Error {
|
|
33
|
+
constructor(line, got, want) {
|
|
34
|
+
super(`c4m: patch ID does not match prior content: line ${line}: got ${got}, want ${want}`);
|
|
35
|
+
this.name = 'PatchIDMismatchError';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export class EmptyPatchError extends C4Error {
|
|
39
|
+
constructor(detail) {
|
|
40
|
+
super(detail ? `c4m: empty patch section (${detail})` : 'c4m: empty patch section');
|
|
41
|
+
this.name = 'EmptyPatchError';
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export class BadIDLengthError extends C4Error {
|
|
45
|
+
constructor(length) {
|
|
46
|
+
super(`c4 ids must be 90 characters long, input length ${length}`);
|
|
47
|
+
this.name = 'BadIDLengthError';
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export class BadIDCharError extends C4Error {
|
|
51
|
+
constructor(position) {
|
|
52
|
+
super(`non c4 id character at position ${position}`);
|
|
53
|
+
this.name = 'BadIDCharError';
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../core/src/errors.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAE3C,MAAM,OAAO,OAAQ,SAAQ,KAAK;IAChC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACvB,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,OAAO;IAC5C,YAAY,MAAe;QACzB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAA;QACtE,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACjC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,OAAO;IAC7C,YAAY,IAAY;QACtB,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;IAClC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,OAAO;IAC7C,YAAY,IAAY;QACtB,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;IAClC,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,OAAO;IACjD,YAAY,MAAe;QACzB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAA;QAClF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAA;IACtC,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,OAAO;IAC/C,YAAY,IAAY,EAAE,GAAW,EAAE,IAAY;QACjD,KAAK,CAAC,oDAAoD,IAAI,SAAS,GAAG,UAAU,IAAI,EAAE,CAAC,CAAA;QAC3F,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACpC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAC1C,YAAY,MAAe;QACzB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B,MAAM,GAAG,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAA;QACnF,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,OAAO;IAC3C,YAAY,MAAc;QACxB,KAAK,CAAC,mDAAmD,MAAM,EAAE,CAAC,CAAA;QAClE,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;IAChC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,OAAO;IACzC,YAAY,QAAgB;QAC1B,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAA;QACpD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC;CACF"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract filesystem interface. Decouples workspace/scanner/reconciler
|
|
3
|
+
* from the underlying storage backend.
|
|
4
|
+
*
|
|
5
|
+
* Implementations:
|
|
6
|
+
* - MemoryFS (core) — in-memory tree, for tests
|
|
7
|
+
* - FileSystemAccessFS (core/browser) — wraps File System Access API handles
|
|
8
|
+
* - NodeFS (c4-node) — wraps node:fs/promises
|
|
9
|
+
*/
|
|
10
|
+
/** A single directory entry returned by readDir. */
|
|
11
|
+
export interface DirEntry {
|
|
12
|
+
name: string;
|
|
13
|
+
isDirectory: boolean;
|
|
14
|
+
isSymlink: boolean;
|
|
15
|
+
}
|
|
16
|
+
/** File/directory metadata. */
|
|
17
|
+
export interface FileStat {
|
|
18
|
+
size: number;
|
|
19
|
+
mode: number;
|
|
20
|
+
mtime: Date;
|
|
21
|
+
isDirectory: boolean;
|
|
22
|
+
isSymlink: boolean;
|
|
23
|
+
}
|
|
24
|
+
/** Abstract filesystem operations. */
|
|
25
|
+
export interface FileSystem {
|
|
26
|
+
/** List entries in a directory. */
|
|
27
|
+
readDir(path: string): AsyncIterable<DirEntry>;
|
|
28
|
+
/** Get metadata for a path. */
|
|
29
|
+
stat(path: string): Promise<FileStat>;
|
|
30
|
+
/** Read file content as a stream. */
|
|
31
|
+
readFile(path: string): Promise<ReadableStream<Uint8Array>>;
|
|
32
|
+
/** Read file content as bytes (convenience, default implementation collects stream). */
|
|
33
|
+
readFileBytes?(path: string): Promise<Uint8Array>;
|
|
34
|
+
/** Write file content from a stream or bytes. */
|
|
35
|
+
writeFile(path: string, data: ReadableStream<Uint8Array> | Uint8Array): Promise<void>;
|
|
36
|
+
/** Create a directory (and parents if recursive). */
|
|
37
|
+
mkdir(path: string, options?: {
|
|
38
|
+
recursive?: boolean;
|
|
39
|
+
}): Promise<void>;
|
|
40
|
+
/** Remove a file or directory. */
|
|
41
|
+
remove(path: string, options?: {
|
|
42
|
+
recursive?: boolean;
|
|
43
|
+
}): Promise<void>;
|
|
44
|
+
/** Rename/move a file or directory. */
|
|
45
|
+
rename(oldPath: string, newPath: string): Promise<void>;
|
|
46
|
+
/** Set file metadata (permissions, timestamps). Optional. */
|
|
47
|
+
setMeta?(path: string, meta: {
|
|
48
|
+
mode?: number;
|
|
49
|
+
mtime?: Date;
|
|
50
|
+
}): Promise<void>;
|
|
51
|
+
}
|
|
52
|
+
/** Error thrown when a path is not found. */
|
|
53
|
+
export declare class FileNotFoundError extends Error {
|
|
54
|
+
readonly path: string;
|
|
55
|
+
constructor(path: string);
|
|
56
|
+
}
|
|
57
|
+
/** Error thrown when a path already exists (e.g. mkdir without recursive). */
|
|
58
|
+
export declare class FileExistsError extends Error {
|
|
59
|
+
readonly path: string;
|
|
60
|
+
constructor(path: string);
|
|
61
|
+
}
|
|
62
|
+
/** Helper: collect a ReadableStream into a Uint8Array. */
|
|
63
|
+
export declare function streamToBytes(stream: ReadableStream<Uint8Array>): Promise<Uint8Array>;
|
|
64
|
+
/** Helper: create a ReadableStream from a Uint8Array. */
|
|
65
|
+
export declare function bytesToStream(data: Uint8Array): ReadableStream<Uint8Array>;
|
|
66
|
+
/** Helper: join path segments with /. */
|
|
67
|
+
export declare function joinPath(...parts: string[]): string;
|
|
68
|
+
//# sourceMappingURL=filesystem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../../../../core/src/filesystem.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,oDAAoD;AACpD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,+BAA+B;AAC/B,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,IAAI,CAAA;IACX,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,sCAAsC;AACtC,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IAE9C,+BAA+B;IAC/B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAErC,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA;IAE3D,wFAAwF;IACxF,aAAa,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAEjD,iDAAiD;IACjD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAErF,qDAAqD;IACrD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAErE,kCAAkC;IAClC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtE,uCAAuC;IACvC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvD,6DAA6D;IAC7D,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7E;AAED,6CAA6C;AAC7C,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBACT,IAAI,EAAE,MAAM;CAKzB;AAED,8EAA8E;AAC9E,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBACT,IAAI,EAAE,MAAM;CAKzB;AAED,0DAA0D;AAC1D,wBAAsB,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAiB3F;AAED,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAO1E;AAED,yCAAyC;AACzC,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAKnD"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract filesystem interface. Decouples workspace/scanner/reconciler
|
|
3
|
+
* from the underlying storage backend.
|
|
4
|
+
*
|
|
5
|
+
* Implementations:
|
|
6
|
+
* - MemoryFS (core) — in-memory tree, for tests
|
|
7
|
+
* - FileSystemAccessFS (core/browser) — wraps File System Access API handles
|
|
8
|
+
* - NodeFS (c4-node) — wraps node:fs/promises
|
|
9
|
+
*/
|
|
10
|
+
/** Error thrown when a path is not found. */
|
|
11
|
+
export class FileNotFoundError extends Error {
|
|
12
|
+
constructor(path) {
|
|
13
|
+
super(`not found: ${path}`);
|
|
14
|
+
this.name = 'FileNotFoundError';
|
|
15
|
+
this.path = path;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/** Error thrown when a path already exists (e.g. mkdir without recursive). */
|
|
19
|
+
export class FileExistsError extends Error {
|
|
20
|
+
constructor(path) {
|
|
21
|
+
super(`already exists: ${path}`);
|
|
22
|
+
this.name = 'FileExistsError';
|
|
23
|
+
this.path = path;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** Helper: collect a ReadableStream into a Uint8Array. */
|
|
27
|
+
export async function streamToBytes(stream) {
|
|
28
|
+
const reader = stream.getReader();
|
|
29
|
+
const chunks = [];
|
|
30
|
+
let total = 0;
|
|
31
|
+
for (;;) {
|
|
32
|
+
const { done, value } = await reader.read();
|
|
33
|
+
if (done)
|
|
34
|
+
break;
|
|
35
|
+
chunks.push(value);
|
|
36
|
+
total += value.length;
|
|
37
|
+
}
|
|
38
|
+
const result = new Uint8Array(total);
|
|
39
|
+
let offset = 0;
|
|
40
|
+
for (const chunk of chunks) {
|
|
41
|
+
result.set(chunk, offset);
|
|
42
|
+
offset += chunk.length;
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
/** Helper: create a ReadableStream from a Uint8Array. */
|
|
47
|
+
export function bytesToStream(data) {
|
|
48
|
+
return new ReadableStream({
|
|
49
|
+
start(controller) {
|
|
50
|
+
controller.enqueue(data);
|
|
51
|
+
controller.close();
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/** Helper: join path segments with /. */
|
|
56
|
+
export function joinPath(...parts) {
|
|
57
|
+
return parts
|
|
58
|
+
.filter(p => p !== '')
|
|
59
|
+
.join('/')
|
|
60
|
+
.replace(/\/+/g, '/');
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=filesystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../../../../core/src/filesystem.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgDH,6CAA6C;AAC7C,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAE1C,YAAY,IAAY;QACtB,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;QAC3B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;AAED,8EAA8E;AAC9E,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAExC,YAAY,IAAY;QACtB,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAkC;IACpE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IACjC,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,SAAS,CAAC;QACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAC3C,IAAI,IAAI;YAAE,MAAK;QACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClB,KAAK,IAAI,KAAK,CAAC,MAAM,CAAA;IACvB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;IACpC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACzB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAA;IACxB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,aAAa,CAAC,IAAgB;IAC5C,OAAO,IAAI,cAAc,CAAC;QACxB,KAAK,CAAC,UAAU;YACd,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACxB,UAAU,CAAC,KAAK,EAAE,CAAA;QACpB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,QAAQ,CAAC,GAAG,KAAe;IACzC,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;SACrB,IAAI,CAAC,GAAG,CAAC;SACT,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AACzB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare class C4ID {
|
|
2
|
+
readonly digest: Uint8Array;
|
|
3
|
+
constructor(digest: Uint8Array);
|
|
4
|
+
/** Returns the canonical string: "c4" + 88 base58 chars. */
|
|
5
|
+
toString(): string;
|
|
6
|
+
/** Lowercase hex of the 64-byte digest. */
|
|
7
|
+
hex(): string;
|
|
8
|
+
/** True if every byte of the digest is zero. */
|
|
9
|
+
isNil(): boolean;
|
|
10
|
+
/** Byte-wise equality. */
|
|
11
|
+
equals(other: C4ID): boolean;
|
|
12
|
+
/** -1, 0, or 1 — big-endian byte comparison like Go's bytes.Compare. */
|
|
13
|
+
compareTo(other: C4ID): number;
|
|
14
|
+
/**
|
|
15
|
+
* Order-independent sum of two IDs.
|
|
16
|
+
* Sort by digest (smaller first), then SHA-512(smaller || larger).
|
|
17
|
+
* If both are equal, return self.
|
|
18
|
+
*/
|
|
19
|
+
sum(other: C4ID): Promise<C4ID>;
|
|
20
|
+
/** Parse a "c4..." string. Throws on invalid input. */
|
|
21
|
+
static parse(s: string): C4ID;
|
|
22
|
+
/** Construct from a 64-byte digest (copies the data). */
|
|
23
|
+
static fromDigest(d: Uint8Array): C4ID;
|
|
24
|
+
/** The nil ID: all 64 bytes zero. */
|
|
25
|
+
static nil(): C4ID;
|
|
26
|
+
}
|
|
27
|
+
/** Identify content from a ReadableStream, ArrayBuffer, or Uint8Array. */
|
|
28
|
+
export declare function identify(source: ReadableStream<Uint8Array> | ArrayBuffer | Uint8Array): Promise<C4ID>;
|
|
29
|
+
/** Hash a Uint8Array with SHA-512 and return its C4ID. */
|
|
30
|
+
export declare function identifyBytes(data: Uint8Array): Promise<C4ID>;
|
|
31
|
+
/** Parse a "c4..." string synchronously (base58 decode only, no hashing). */
|
|
32
|
+
export declare function parse(s: string): C4ID;
|
|
33
|
+
//# sourceMappingURL=id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../../../../core/src/id.ts"],"names":[],"mappings":"AAYA,qBAAa,IAAI;IACf,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;gBAEhB,MAAM,EAAE,UAAU;IAO9B,4DAA4D;IAC5D,QAAQ,IAAI,MAAM;IAIlB,2CAA2C;IAC3C,GAAG,IAAI,MAAM;IAQb,gDAAgD;IAChD,KAAK,IAAI,OAAO;IAOhB,0BAA0B;IAC1B,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAI5B,wEAAwE;IACxE,SAAS,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM;IAQ9B;;;;OAIG;IACG,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAerC,uDAAuD;IACvD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAI7B,yDAAyD;IACzD,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAMtC,qCAAqC;IACrC,MAAM,CAAC,GAAG,IAAI,IAAI;CAGnB;AAED,0EAA0E;AAC1E,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,WAAW,GAAG,UAAU,GAC5D,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,0DAA0D;AAC1D,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnE;AAED,6EAA6E;AAC7E,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CASrC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { encode, decode } from "./base58.js";
|
|
2
|
+
import { BadIDLengthError, BadIDCharError } from "./errors.js";
|
|
3
|
+
const digestLen = 64;
|
|
4
|
+
const prefix = "c4";
|
|
5
|
+
const idLen = 90; // "c4" + 88 base58 chars
|
|
6
|
+
async function sha512(data) {
|
|
7
|
+
const buf = await crypto.subtle.digest("SHA-512", data);
|
|
8
|
+
return new Uint8Array(buf);
|
|
9
|
+
}
|
|
10
|
+
export class C4ID {
|
|
11
|
+
constructor(digest) {
|
|
12
|
+
if (digest.length !== digestLen) {
|
|
13
|
+
throw new Error(`digest must be ${digestLen} bytes, got ${digest.length}`);
|
|
14
|
+
}
|
|
15
|
+
this.digest = digest;
|
|
16
|
+
}
|
|
17
|
+
/** Returns the canonical string: "c4" + 88 base58 chars. */
|
|
18
|
+
toString() {
|
|
19
|
+
return prefix + encode(this.digest);
|
|
20
|
+
}
|
|
21
|
+
/** Lowercase hex of the 64-byte digest. */
|
|
22
|
+
hex() {
|
|
23
|
+
let s = "";
|
|
24
|
+
for (let i = 0; i < this.digest.length; i++) {
|
|
25
|
+
s += this.digest[i].toString(16).padStart(2, "0");
|
|
26
|
+
}
|
|
27
|
+
return s;
|
|
28
|
+
}
|
|
29
|
+
/** True if every byte of the digest is zero. */
|
|
30
|
+
isNil() {
|
|
31
|
+
for (let i = 0; i < this.digest.length; i++) {
|
|
32
|
+
if (this.digest[i] !== 0)
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
/** Byte-wise equality. */
|
|
38
|
+
equals(other) {
|
|
39
|
+
return this.compareTo(other) === 0;
|
|
40
|
+
}
|
|
41
|
+
/** -1, 0, or 1 — big-endian byte comparison like Go's bytes.Compare. */
|
|
42
|
+
compareTo(other) {
|
|
43
|
+
for (let i = 0; i < digestLen; i++) {
|
|
44
|
+
if (this.digest[i] < other.digest[i])
|
|
45
|
+
return -1;
|
|
46
|
+
if (this.digest[i] > other.digest[i])
|
|
47
|
+
return 1;
|
|
48
|
+
}
|
|
49
|
+
return 0;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Order-independent sum of two IDs.
|
|
53
|
+
* Sort by digest (smaller first), then SHA-512(smaller || larger).
|
|
54
|
+
* If both are equal, return self.
|
|
55
|
+
*/
|
|
56
|
+
async sum(other) {
|
|
57
|
+
const cmp = this.compareTo(other);
|
|
58
|
+
if (cmp === 0)
|
|
59
|
+
return this;
|
|
60
|
+
const first = cmp < 0 ? this.digest : other.digest;
|
|
61
|
+
const second = cmp < 0 ? other.digest : this.digest;
|
|
62
|
+
const combined = new Uint8Array(digestLen * 2);
|
|
63
|
+
combined.set(first, 0);
|
|
64
|
+
combined.set(second, digestLen);
|
|
65
|
+
const hash = await sha512(combined);
|
|
66
|
+
return new C4ID(hash);
|
|
67
|
+
}
|
|
68
|
+
/** Parse a "c4..." string. Throws on invalid input. */
|
|
69
|
+
static parse(s) {
|
|
70
|
+
return parse(s);
|
|
71
|
+
}
|
|
72
|
+
/** Construct from a 64-byte digest (copies the data). */
|
|
73
|
+
static fromDigest(d) {
|
|
74
|
+
const copy = new Uint8Array(digestLen);
|
|
75
|
+
copy.set(d);
|
|
76
|
+
return new C4ID(copy);
|
|
77
|
+
}
|
|
78
|
+
/** The nil ID: all 64 bytes zero. */
|
|
79
|
+
static nil() {
|
|
80
|
+
return new C4ID(new Uint8Array(digestLen));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/** Identify content from a ReadableStream, ArrayBuffer, or Uint8Array. */
|
|
84
|
+
export async function identify(source) {
|
|
85
|
+
if (source instanceof Uint8Array) {
|
|
86
|
+
return identifyBytes(source);
|
|
87
|
+
}
|
|
88
|
+
if (source instanceof ArrayBuffer) {
|
|
89
|
+
return identifyBytes(new Uint8Array(source));
|
|
90
|
+
}
|
|
91
|
+
// ReadableStream: accumulate all chunks, then hash
|
|
92
|
+
const chunks = [];
|
|
93
|
+
let totalLen = 0;
|
|
94
|
+
const reader = source.getReader();
|
|
95
|
+
for (;;) {
|
|
96
|
+
const { done, value } = await reader.read();
|
|
97
|
+
if (done)
|
|
98
|
+
break;
|
|
99
|
+
chunks.push(value);
|
|
100
|
+
totalLen += value.length;
|
|
101
|
+
}
|
|
102
|
+
const combined = new Uint8Array(totalLen);
|
|
103
|
+
let offset = 0;
|
|
104
|
+
for (const chunk of chunks) {
|
|
105
|
+
combined.set(chunk, offset);
|
|
106
|
+
offset += chunk.length;
|
|
107
|
+
}
|
|
108
|
+
return identifyBytes(combined);
|
|
109
|
+
}
|
|
110
|
+
/** Hash a Uint8Array with SHA-512 and return its C4ID. */
|
|
111
|
+
export async function identifyBytes(data) {
|
|
112
|
+
const hash = await sha512(data);
|
|
113
|
+
return new C4ID(hash);
|
|
114
|
+
}
|
|
115
|
+
/** Parse a "c4..." string synchronously (base58 decode only, no hashing). */
|
|
116
|
+
export function parse(s) {
|
|
117
|
+
if (s.length !== idLen) {
|
|
118
|
+
throw new BadIDLengthError(s.length);
|
|
119
|
+
}
|
|
120
|
+
if (s[0] !== "c" || s[1] !== "4") {
|
|
121
|
+
throw new BadIDCharError(0);
|
|
122
|
+
}
|
|
123
|
+
const digest = decode(s.slice(2));
|
|
124
|
+
return new C4ID(digest);
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../../../../core/src/id.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { C4ID } from './id.js';
|
|
2
|
+
/**
|
|
3
|
+
* Try to canonicalize data as a c4m file.
|
|
4
|
+
* Returns the canonical bytes if the data parses as valid c4m,
|
|
5
|
+
* or null if it does not.
|
|
6
|
+
*/
|
|
7
|
+
export declare function tryCanonicalizeC4m(data: Uint8Array): Promise<Uint8Array | null>;
|
|
8
|
+
/**
|
|
9
|
+
* Identify content with c4m-aware canonicalization.
|
|
10
|
+
*
|
|
11
|
+
* If the data parses as a valid c4m file, the C4 ID is computed from
|
|
12
|
+
* the canonical form. Otherwise the raw bytes are hashed directly.
|
|
13
|
+
* This ensures that differently-formatted c4m files describing the
|
|
14
|
+
* same filesystem produce the same C4 ID.
|
|
15
|
+
*/
|
|
16
|
+
export declare function identifyContent(data: Uint8Array): Promise<C4ID>;
|
|
17
|
+
//# sourceMappingURL=identify-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identify-content.d.ts","sourceRoot":"","sources":["../../../../../core/src/identify-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAiB,MAAM,SAAS,CAAA;AA6B7C;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAoBrF;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { identifyBytes } from './id.js';
|
|
2
|
+
import { Manifest } from './manifest.js';
|
|
3
|
+
/**
|
|
4
|
+
* Quick heuristic: does this look like it could be a c4m file?
|
|
5
|
+
*
|
|
6
|
+
* Checks whether the first non-blank line starts with a valid mode
|
|
7
|
+
* prefix: a 10-char Unix permission string (starting with -, d, or l),
|
|
8
|
+
* or a bare "-" followed by a space.
|
|
9
|
+
*/
|
|
10
|
+
function looksLikeC4m(text) {
|
|
11
|
+
for (let i = 0; i < text.length; i++) {
|
|
12
|
+
const ch = text[i];
|
|
13
|
+
if (ch === ' ' || ch === '\t' || ch === '\n' || ch === '\r')
|
|
14
|
+
continue;
|
|
15
|
+
// Bare null-mode entry: "- " at start of line
|
|
16
|
+
if (ch === '-' && i + 1 < text.length && text[i + 1] === ' ')
|
|
17
|
+
return true;
|
|
18
|
+
// 10-char mode string starting with -, d, or l
|
|
19
|
+
if (ch === '-' || ch === 'd' || ch === 'l') {
|
|
20
|
+
if (i + 10 < text.length && text[i + 10] === ' ')
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
// Indented entry (leading spaces then mode)
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Try to canonicalize data as a c4m file.
|
|
30
|
+
* Returns the canonical bytes if the data parses as valid c4m,
|
|
31
|
+
* or null if it does not.
|
|
32
|
+
*/
|
|
33
|
+
export async function tryCanonicalizeC4m(data) {
|
|
34
|
+
// Quick binary check: c4m is text, reject if it contains null bytes
|
|
35
|
+
for (let i = 0; i < Math.min(data.length, 512); i++) {
|
|
36
|
+
if (data[i] === 0)
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
const text = new TextDecoder().decode(data);
|
|
40
|
+
if (!looksLikeC4m(text))
|
|
41
|
+
return null;
|
|
42
|
+
try {
|
|
43
|
+
const m = await Manifest.parse(text);
|
|
44
|
+
if (m.entries.length === 0)
|
|
45
|
+
return null;
|
|
46
|
+
const copy = m.copy();
|
|
47
|
+
copy.canonicalize();
|
|
48
|
+
const canonical = copy.canonical();
|
|
49
|
+
return new TextEncoder().encode(canonical);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Identify content with c4m-aware canonicalization.
|
|
57
|
+
*
|
|
58
|
+
* If the data parses as a valid c4m file, the C4 ID is computed from
|
|
59
|
+
* the canonical form. Otherwise the raw bytes are hashed directly.
|
|
60
|
+
* This ensures that differently-formatted c4m files describing the
|
|
61
|
+
* same filesystem produce the same C4 ID.
|
|
62
|
+
*/
|
|
63
|
+
export async function identifyContent(data) {
|
|
64
|
+
const canonical = await tryCanonicalizeC4m(data);
|
|
65
|
+
if (canonical) {
|
|
66
|
+
return identifyBytes(canonical);
|
|
67
|
+
}
|
|
68
|
+
return identifyBytes(data);
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=identify-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identify-content.js","sourceRoot":"","sources":["../../../../../core/src/identify-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,aAAa,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAClB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI;YAAE,SAAQ;QAErE,8CAA8C;QAC9C,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAA;QAEzE,+CAA+C;QAC/C,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC3C,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAA;QAC/D,CAAC;QAED,4CAA4C;QAC5C,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAgB;IACvD,oEAAoE;IACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;IAChC,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAEvC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QACrB,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAClC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAgB;IACpD,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAChD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,aAAa,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export { C4ID, identify, identifyBytes, parse } from './id.js';
|
|
2
|
+
export { identifyContent, tryCanonicalizeC4m } from './identify-content.js';
|
|
3
|
+
export { treeId } from './tree.js';
|
|
4
|
+
export { type Entry, createEntry, FlowDirection, isDir, isSymlink, isFlowLinked, flowOperator, hasNullValues, getNullFields, formatMode, parseMode, formatTimestamp, parseTimestamp, formatEntry, canonicalEntry, formatSizeWithCommas, NULL_TIMESTAMP, NULL_SIZE, } from './entry.js';
|
|
5
|
+
export { Manifest } from './manifest.js';
|
|
6
|
+
export { decode, loads, type DecodeResult } from './decoder.js';
|
|
7
|
+
export { encode, dumps, type EncoderOptions } from './encoder.js';
|
|
8
|
+
export { diff, merge, applyPatch, patchDiff, type DiffResult, type MergeResult, type MergeConflict, type PatchResult, } from './diff.js';
|
|
9
|
+
export { naturalLess } from './naturalsort.js';
|
|
10
|
+
export { safeName, unsafeName, escapeC4MName, unescapeC4MName, formatName, formatTarget, } from './safename.js';
|
|
11
|
+
export { type Store, ContentNotFoundError, CompositeStore, } from './store.js';
|
|
12
|
+
export { type FileSystem, type DirEntry, type FileStat, FileNotFoundError, FileExistsError, streamToBytes, bytesToStream, joinPath, } from './filesystem.js';
|
|
13
|
+
export { type ContentSource, type ResolveResult, ContentResolver, storeAsSource, } from './resolver.js';
|
|
14
|
+
export { MemoryStore } from './memory-store.js';
|
|
15
|
+
export { MemoryFS } from './memory-fs.js';
|
|
16
|
+
export { ObservableManifest, type ManifestEventType, type ManifestChangeEvent, type ManifestChangeListener } from './observable.js';
|
|
17
|
+
export { scan, type ScanOptions } from './scanner.js';
|
|
18
|
+
export { verify, type VerifyReport, type CorruptEntry, type VerifyOptions } from './verify.js';
|
|
19
|
+
export { plan as reconcilePlan, apply as reconcileApply, type ReconcilePlan, type ReconcileResult, type ReconcileOp, type ReconcileOpType, type ReconcileOptions, } from './reconcile.js';
|
|
20
|
+
export { Workspace, type WorkspaceStatus, type CheckoutOptions, type SnapshotOptions } from './workspace.js';
|
|
21
|
+
export { pool, ingest, type PoolResult, type IngestResult, type PoolOptions } from './pool.js';
|
|
22
|
+
export { C4Error, InvalidEntryError, DuplicatePathError, PathTraversalError, InvalidFlowTargetError, PatchIDMismatchError, EmptyPatchError, BadIDLengthError, BadIDCharError, } from './errors.js';
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../core/src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGlC,OAAO,EACL,KAAK,KAAK,EACV,WAAW,EACX,aAAa,EACb,KAAK,EACL,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,UAAU,EACV,SAAS,EACT,eAAe,EACf,cAAc,EACd,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,SAAS,GACV,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAGjE,OAAO,EACL,IAAI,EACJ,KAAK,EACL,UAAU,EACV,SAAS,EACT,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,WAAW,CAAA;AAGlB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EACL,QAAQ,EACR,UAAU,EACV,aAAa,EACb,eAAe,EACf,UAAU,EACV,YAAY,GACb,MAAM,eAAe,CAAA;AAGtB,OAAO,EACL,KAAK,KAAK,EACV,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,aAAa,EACb,QAAQ,GACT,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,eAAe,EACf,aAAa,GACd,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,OAAO,EAAE,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAGnI,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAG9F,OAAO,EACL,IAAI,IAAI,aAAa,EACrB,KAAK,IAAI,cAAc,EACvB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAG5G,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AAG9F,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// C4 Universal Content Identification — TypeScript Implementation
|
|
2
|
+
// @avalanche-io/c4 v1.0.5
|
|
3
|
+
// Core ID
|
|
4
|
+
export { C4ID, identify, identifyBytes, parse } from './id.js';
|
|
5
|
+
export { identifyContent, tryCanonicalizeC4m } from './identify-content.js';
|
|
6
|
+
export { treeId } from './tree.js';
|
|
7
|
+
// c4m Entry
|
|
8
|
+
export { createEntry, isDir, isSymlink, isFlowLinked, flowOperator, hasNullValues, getNullFields, formatMode, parseMode, formatTimestamp, parseTimestamp, formatEntry, canonicalEntry, formatSizeWithCommas, NULL_TIMESTAMP, NULL_SIZE, } from './entry.js';
|
|
9
|
+
// c4m Manifest
|
|
10
|
+
export { Manifest } from './manifest.js';
|
|
11
|
+
// c4m Decoder/Encoder
|
|
12
|
+
export { decode, loads } from './decoder.js';
|
|
13
|
+
export { encode, dumps } from './encoder.js';
|
|
14
|
+
// Diff, Merge, Patch
|
|
15
|
+
export { diff, merge, applyPatch, patchDiff, } from './diff.js';
|
|
16
|
+
// Natural Sort
|
|
17
|
+
export { naturalLess } from './naturalsort.js';
|
|
18
|
+
// SafeName Encoding
|
|
19
|
+
export { safeName, unsafeName, escapeC4MName, unescapeC4MName, formatName, formatTarget, } from './safename.js';
|
|
20
|
+
// Abstract Interfaces
|
|
21
|
+
export { ContentNotFoundError, CompositeStore, } from './store.js';
|
|
22
|
+
export { FileNotFoundError, FileExistsError, streamToBytes, bytesToStream, joinPath, } from './filesystem.js';
|
|
23
|
+
export { ContentResolver, storeAsSource, } from './resolver.js';
|
|
24
|
+
// Concrete Implementations
|
|
25
|
+
export { MemoryStore } from './memory-store.js';
|
|
26
|
+
export { MemoryFS } from './memory-fs.js';
|
|
27
|
+
// Observable Manifest
|
|
28
|
+
export { ObservableManifest } from './observable.js';
|
|
29
|
+
// Scanner
|
|
30
|
+
export { scan } from './scanner.js';
|
|
31
|
+
// Verify
|
|
32
|
+
export { verify } from './verify.js';
|
|
33
|
+
// Reconcile
|
|
34
|
+
export { plan as reconcilePlan, apply as reconcileApply, } from './reconcile.js';
|
|
35
|
+
// Workspace
|
|
36
|
+
export { Workspace } from './workspace.js';
|
|
37
|
+
// Pool / Ingest
|
|
38
|
+
export { pool, ingest } from './pool.js';
|
|
39
|
+
// Errors
|
|
40
|
+
export { C4Error, InvalidEntryError, DuplicatePathError, PathTraversalError, InvalidFlowTargetError, PatchIDMismatchError, EmptyPatchError, BadIDLengthError, BadIDCharError, } from './errors.js';
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../core/src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,0BAA0B;AAE1B,UAAU;AACV,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,YAAY;AACZ,OAAO,EAEL,WAAW,EAEX,KAAK,EACL,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,UAAU,EACV,SAAS,EACT,eAAe,EACf,cAAc,EACd,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,SAAS,GACV,MAAM,YAAY,CAAA;AAEnB,eAAe;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,sBAAsB;AACtB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAqB,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAuB,MAAM,cAAc,CAAA;AAEjE,qBAAqB;AACrB,OAAO,EACL,IAAI,EACJ,KAAK,EACL,UAAU,EACV,SAAS,GAKV,MAAM,WAAW,CAAA;AAElB,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,oBAAoB;AACpB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,aAAa,EACb,eAAe,EACf,UAAU,EACV,YAAY,GACb,MAAM,eAAe,CAAA;AAEtB,sBAAsB;AACtB,OAAO,EAEL,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAA;AAEnB,OAAO,EAIL,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,aAAa,EACb,QAAQ,GACT,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAGL,eAAe,EACf,aAAa,GACd,MAAM,eAAe,CAAA;AAEtB,2BAA2B;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,sBAAsB;AACtB,OAAO,EAAE,kBAAkB,EAAiF,MAAM,iBAAiB,CAAA;AAEnI,UAAU;AACV,OAAO,EAAE,IAAI,EAAoB,MAAM,cAAc,CAAA;AAErD,SAAS;AACT,OAAO,EAAE,MAAM,EAA4D,MAAM,aAAa,CAAA;AAE9F,YAAY;AACZ,OAAO,EACL,IAAI,IAAI,aAAa,EACrB,KAAK,IAAI,cAAc,GAMxB,MAAM,gBAAgB,CAAA;AAEvB,YAAY;AACZ,OAAO,EAAE,SAAS,EAAoE,MAAM,gBAAgB,CAAA;AAE5G,gBAAgB;AAChB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAwD,MAAM,WAAW,CAAA;AAE9F,SAAS;AACT,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,aAAa,CAAA"}
|