@avalanche-io/c4 1.0.19 → 1.0.21
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/diff.d.ts.map +1 -1
- package/dist/diff.js +9 -1
- package/dist/diff.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/scanner.d.ts +6 -2
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +37 -10
- package/dist/scanner.js.map +1 -1
- package/package.json +1 -1
package/dist/diff.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAyB,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;IAC5C,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;IAC9C,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;CACpE;AAED,8CAA8C;AAC9C,wBAAgB,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,GAAG,UAAU,CAgC7E;
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAyB,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;IAC5C,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;IAC9C,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;CACpE;AAED,8CAA8C;AAC9C,wBAAgB,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,GAAG,UAAU,CAgC7E;AAeD,oBAAoB;AACpB,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,QAAQ,CAAA;IAChB,SAAS,EAAE,aAAa,EAAE,CAAA;CAC3B;AAED,wBAAwB;AACxB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,KAAK,GAAG,SAAS,CAAA;IACvB,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,KAAK,CAAA;CACd;AAED,oCAAoC;AACpC,wBAAgB,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,WAAW,CAqEpF;AAWD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,QAAQ,CA4BpE;AAED,uDAAuD;AACvD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,QAAQ,CAAA;CAChB;AAED,wBAAsB,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAYlG"}
|
package/dist/diff.js
CHANGED
|
@@ -30,8 +30,16 @@ export function diff(oldManifest, newManifest) {
|
|
|
30
30
|
}
|
|
31
31
|
return result;
|
|
32
32
|
}
|
|
33
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Check if two entries are identical. As in the Go reference, when both
|
|
35
|
+
* carry a C4 ID the entries are equal by identity and mode alone — a
|
|
36
|
+
* directory's own mtime, or a file's, is not a modification when the
|
|
37
|
+
* content it names is unchanged. Otherwise every canonical field must match.
|
|
38
|
+
*/
|
|
34
39
|
function entriesEqual(a, b) {
|
|
40
|
+
if (a.c4id && b.c4id && !a.c4id.isNil() && !b.c4id.isNil()) {
|
|
41
|
+
return a.c4id.equals(b.c4id) && a.mode === b.mode && a.modeType === b.modeType;
|
|
42
|
+
}
|
|
35
43
|
return canonicalEntry(a) === canonicalEntry(b);
|
|
36
44
|
}
|
|
37
45
|
/** Three-way merge of manifests. */
|
package/dist/diff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,cAAc,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AASxC,8CAA8C;AAC9C,MAAM,UAAU,IAAI,CAAC,WAAqB,EAAE,WAAqB;IAC/D,MAAM,MAAM,GAAe,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;IAEnE,kBAAkB;IAClB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAA;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;QACxC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAA;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;QACxC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED,4BAA4B;IAC5B,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAChD,CAAC;aAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,aAAa;IACb,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// C4 Universal Content Identification — TypeScript Implementation
|
|
2
|
-
// @avalanche-io/c4 v1.0.
|
|
2
|
+
// @avalanche-io/c4 v1.0.21
|
|
3
3
|
// Core ID
|
|
4
4
|
export { C4ID, identify, identifyBytes, parse } from './id.js';
|
|
5
5
|
export { identifyContent, tryCanonicalizeC4m } from './identify-content.js';
|
package/dist/scanner.d.ts
CHANGED
|
@@ -18,8 +18,12 @@ export interface ScanOptions {
|
|
|
18
18
|
* Scan a filesystem directory into a Manifest.
|
|
19
19
|
*
|
|
20
20
|
* Walks the directory tree rooted at rootPath, reads each file,
|
|
21
|
-
* computes its C4 ID, and builds a sorted Manifest
|
|
22
|
-
*
|
|
21
|
+
* computes its C4 ID, and builds a sorted Manifest. Directories are
|
|
22
|
+
* resolved bottom-up from their already-resolved direct children, as
|
|
23
|
+
* the Go scanner does: a directory keeps its own mtime, its size is the
|
|
24
|
+
* children's sizes plus the bytes of their canonical one-level listing,
|
|
25
|
+
* and its C4 ID is the ID of that listing (identical to
|
|
26
|
+
* `manifest.filter(<direct children>).computeC4ID()`).
|
|
23
27
|
*/
|
|
24
28
|
export declare function scan(fs: FileSystem, rootPath: string, options?: ScanOptions): Promise<Manifest>;
|
|
25
29
|
//# sourceMappingURL=scanner.d.ts.map
|
package/dist/scanner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAKxC,qCAAqC;AACrC,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1D;AAED
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAKxC,qCAAqC;AACrC,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,IAAI,CACxB,EAAE,EAAE,UAAU,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,QAAQ,CAAC,CAoBnB"}
|
package/dist/scanner.js
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { Manifest } from './manifest.js';
|
|
2
|
-
import { createEntry } from './entry.js';
|
|
2
|
+
import { createEntry, NULL_SIZE } from './entry.js';
|
|
3
3
|
import { identifyContent } from './identify-content.js';
|
|
4
4
|
import { streamToBytes, joinPath } from './filesystem.js';
|
|
5
5
|
/**
|
|
6
6
|
* Scan a filesystem directory into a Manifest.
|
|
7
7
|
*
|
|
8
8
|
* Walks the directory tree rooted at rootPath, reads each file,
|
|
9
|
-
* computes its C4 ID, and builds a sorted Manifest
|
|
10
|
-
*
|
|
9
|
+
* computes its C4 ID, and builds a sorted Manifest. Directories are
|
|
10
|
+
* resolved bottom-up from their already-resolved direct children, as
|
|
11
|
+
* the Go scanner does: a directory keeps its own mtime, its size is the
|
|
12
|
+
* children's sizes plus the bytes of their canonical one-level listing,
|
|
13
|
+
* and its C4 ID is the ID of that listing (identical to
|
|
14
|
+
* `manifest.filter(<direct children>).computeC4ID()`).
|
|
11
15
|
*/
|
|
12
16
|
export async function scan(fs, rootPath, options) {
|
|
13
17
|
const computeIds = options?.computeIds ?? true;
|
|
@@ -22,13 +26,14 @@ export async function scan(fs, rootPath, options) {
|
|
|
22
26
|
progress: options?.progress,
|
|
23
27
|
counter: { value: 0 },
|
|
24
28
|
});
|
|
25
|
-
// Propagate directory sizes and timestamps bottom-up.
|
|
26
|
-
manifest.canonicalize();
|
|
27
29
|
// Sort entries (files before dirs, natural sort).
|
|
28
30
|
manifest.sortEntries();
|
|
29
31
|
return manifest;
|
|
30
32
|
}
|
|
31
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Recursively walk a directory, adding entries to the manifest.
|
|
35
|
+
* Returns the directory's direct children, fully resolved.
|
|
36
|
+
*/
|
|
32
37
|
async function walkDir(fs, rootPath, relDir, depth, manifest, state) {
|
|
33
38
|
const absDir = relDir ? joinPath(rootPath, relDir) : rootPath;
|
|
34
39
|
// Collect dir entries so we can process files first, then recurse.
|
|
@@ -47,6 +52,7 @@ async function walkDir(fs, rootPath, relDir, depth, manifest, state) {
|
|
|
47
52
|
files.push({ name: dirEntry.name, relPath });
|
|
48
53
|
}
|
|
49
54
|
}
|
|
55
|
+
const children = [];
|
|
50
56
|
// Process files.
|
|
51
57
|
for (const file of files) {
|
|
52
58
|
const fullPath = joinPath(rootPath, file.relPath);
|
|
@@ -72,6 +78,7 @@ async function walkDir(fs, rootPath, relDir, depth, manifest, state) {
|
|
|
72
78
|
depth,
|
|
73
79
|
});
|
|
74
80
|
manifest.addEntry(entry);
|
|
81
|
+
children.push(entry);
|
|
75
82
|
state.counter.value++;
|
|
76
83
|
state.progress?.(file.relPath, state.counter.value);
|
|
77
84
|
}
|
|
@@ -81,17 +88,37 @@ async function walkDir(fs, rootPath, relDir, depth, manifest, state) {
|
|
|
81
88
|
const stat = await fs.stat(fullPath);
|
|
82
89
|
const mode = stat.mode & 0o7777;
|
|
83
90
|
const dirName = dir.name.endsWith('/') ? dir.name : dir.name + '/';
|
|
84
|
-
// Directory entry
|
|
91
|
+
// Directory entry: it keeps its own mtime; size and C4 ID are
|
|
92
|
+
// resolved from the direct children once they are scanned.
|
|
85
93
|
const entry = createEntry({
|
|
86
94
|
mode,
|
|
87
95
|
modeType: 'd',
|
|
88
|
-
timestamp:
|
|
89
|
-
size:
|
|
96
|
+
timestamp: stat.mtime,
|
|
97
|
+
size: NULL_SIZE,
|
|
90
98
|
name: dirName,
|
|
91
99
|
depth,
|
|
92
100
|
});
|
|
93
101
|
manifest.addEntry(entry);
|
|
94
|
-
|
|
102
|
+
children.push(entry);
|
|
103
|
+
const direct = await walkDir(fs, rootPath, dir.relPath + '/', depth + 1, manifest, state);
|
|
104
|
+
await resolveDir(entry, direct, state.computeIds);
|
|
95
105
|
}
|
|
106
|
+
return children;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Resolve a directory entry from its fully-resolved direct children:
|
|
110
|
+
* first its null size (canonical propagation over [self, children]),
|
|
111
|
+
* then its C4 ID — the ID of the children's canonical one-level listing.
|
|
112
|
+
* An empty directory has size 0 and the ID of the empty string.
|
|
113
|
+
*/
|
|
114
|
+
async function resolveDir(dir, children, computeIds) {
|
|
115
|
+
const scope = Manifest.create();
|
|
116
|
+
scope.entries = [dir, ...children];
|
|
117
|
+
scope.canonicalize();
|
|
118
|
+
if (!computeIds)
|
|
119
|
+
return;
|
|
120
|
+
const listing = Manifest.create();
|
|
121
|
+
listing.entries = children;
|
|
122
|
+
dir.c4id = await listing.computeC4ID();
|
|
96
123
|
}
|
|
97
124
|
//# sourceMappingURL=scanner.js.map
|
package/dist/scanner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
|