@avalanche-io/c4 1.0.18 → 1.0.20
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/naturalsort.d.ts.map +1 -1
- package/dist/naturalsort.js +24 -24
- package/dist/naturalsort.js.map +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.20
|
|
3
3
|
// Core ID
|
|
4
4
|
export { C4ID, identify, identifyBytes, parse } from './id.js';
|
|
5
5
|
export { identifyContent, tryCanonicalizeC4m } from './identify-content.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"naturalsort.d.ts","sourceRoot":"","sources":["../src/naturalsort.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"naturalsort.d.ts","sourceRoot":"","sources":["../src/naturalsort.ts"],"names":[],"mappings":"AAuEA,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CA6BzD"}
|
package/dist/naturalsort.js
CHANGED
|
@@ -19,12 +19,7 @@ function segmentString(s) {
|
|
|
19
19
|
}
|
|
20
20
|
else if (isDigit !== isNumeric) {
|
|
21
21
|
// Transition between text and numeric
|
|
22
|
-
|
|
23
|
-
text: current,
|
|
24
|
-
isNumeric,
|
|
25
|
-
numValue: isNumeric ? parseNumber(current) : 0,
|
|
26
|
-
};
|
|
27
|
-
segments.push(seg);
|
|
22
|
+
segments.push({ text: current, isNumeric });
|
|
28
23
|
current = ch;
|
|
29
24
|
isNumeric = isDigit;
|
|
30
25
|
}
|
|
@@ -34,21 +29,29 @@ function segmentString(s) {
|
|
|
34
29
|
}
|
|
35
30
|
// Add final segment
|
|
36
31
|
if (current.length > 0) {
|
|
37
|
-
segments.push({
|
|
38
|
-
text: current,
|
|
39
|
-
isNumeric,
|
|
40
|
-
numValue: isNumeric ? parseNumber(current) : 0,
|
|
41
|
-
});
|
|
32
|
+
segments.push({ text: current, isNumeric });
|
|
42
33
|
}
|
|
43
34
|
return segments;
|
|
44
35
|
}
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
36
|
+
// compareDigitRuns orders two runs of ASCII digits as integers of any
|
|
37
|
+
// length, with no numeric parse (a double keeps 15-16 digits; a 17-digit
|
|
38
|
+
// run would lose its last digit and two runs could compare equal):
|
|
39
|
+
// leading zeros are dropped, a shorter remainder is the smaller value,
|
|
40
|
+
// equal lengths compare digit by digit, and equal values put the shorter
|
|
41
|
+
// spelling first ("1" < "01"). Returns -1, 0 or 1.
|
|
42
|
+
function compareDigitRuns(a, b) {
|
|
43
|
+
const ta = a.replace(/^0+/, "");
|
|
44
|
+
const tb = b.replace(/^0+/, "");
|
|
45
|
+
if (ta.length !== tb.length) {
|
|
46
|
+
return ta.length < tb.length ? -1 : 1;
|
|
47
|
+
}
|
|
48
|
+
if (ta !== tb) {
|
|
49
|
+
return ta < tb ? -1 : 1;
|
|
50
50
|
}
|
|
51
|
-
|
|
51
|
+
if (a.length !== b.length) {
|
|
52
|
+
return a.length < b.length ? -1 : 1;
|
|
53
|
+
}
|
|
54
|
+
return 0;
|
|
52
55
|
}
|
|
53
56
|
// naturalLess compares two strings using natural sorting.
|
|
54
57
|
// Natural sorting handles numeric sequences intelligently:
|
|
@@ -62,13 +65,10 @@ export function naturalLess(a, b) {
|
|
|
62
65
|
const segA = segsA[i];
|
|
63
66
|
const segB = segsB[i];
|
|
64
67
|
if (segA.isNumeric && segB.isNumeric) {
|
|
65
|
-
// Both numeric: compare as integers
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
// Equal values: shorter representation first
|
|
70
|
-
if (segA.text.length !== segB.text.length) {
|
|
71
|
-
return segA.text.length < segB.text.length;
|
|
68
|
+
// Both numeric: compare as integers of any length
|
|
69
|
+
const c = compareDigitRuns(segA.text, segB.text);
|
|
70
|
+
if (c !== 0) {
|
|
71
|
+
return c < 0;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
else if (segA.isNumeric !== segB.isNumeric) {
|
package/dist/naturalsort.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"naturalsort.js","sourceRoot":"","sources":["../src/naturalsort.ts"],"names":[],"mappings":"AAAA,4CAA4C;
|
|
1
|
+
{"version":3,"file":"naturalsort.js","sourceRoot":"","sources":["../src/naturalsort.ts"],"names":[],"mappings":"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"}
|
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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"}
|