agentmap 0.7.1 → 0.9.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.
- package/CHANGELOG.md +96 -0
- package/README.md +24 -0
- package/dist/cli.js +44 -12
- package/dist/cli.js.map +1 -1
- package/dist/extract/definitions.js +12 -12
- package/dist/extract/definitions.js.map +1 -1
- package/dist/extract/definitions.test.js +30 -259
- package/dist/extract/definitions.test.js.map +1 -1
- package/dist/extract/git-status.d.ts +11 -4
- package/dist/extract/git-status.d.ts.map +1 -1
- package/dist/extract/git-status.js +21 -16
- package/dist/extract/git-status.js.map +1 -1
- package/dist/extract/markdown.js +1 -1
- package/dist/extract/markdown.test.js +3 -3
- package/dist/extract/markdown.test.js.map +1 -1
- package/dist/extract/marker.js +1 -1
- package/dist/extract/marker.test.js +4 -4
- package/dist/extract/marker.test.js.map +1 -1
- package/dist/extract/submodules.d.ts +12 -0
- package/dist/extract/submodules.d.ts.map +1 -0
- package/dist/extract/submodules.js +234 -0
- package/dist/extract/submodules.js.map +1 -0
- package/dist/extract/submodules.test.d.ts +2 -0
- package/dist/extract/submodules.test.d.ts.map +1 -0
- package/dist/extract/submodules.test.js +84 -0
- package/dist/extract/submodules.test.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -9
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +10 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +41 -0
- package/dist/logger.js.map +1 -0
- package/dist/map/builder.d.ts +3 -3
- package/dist/map/builder.d.ts.map +1 -1
- package/dist/map/builder.js +59 -9
- package/dist/map/builder.js.map +1 -1
- package/dist/map/builder.test.d.ts +2 -0
- package/dist/map/builder.test.d.ts.map +1 -0
- package/dist/map/builder.test.js +66 -0
- package/dist/map/builder.test.js.map +1 -0
- package/dist/map/truncate.d.ts +7 -3
- package/dist/map/truncate.d.ts.map +1 -1
- package/dist/map/truncate.js +90 -9
- package/dist/map/truncate.js.map +1 -1
- package/dist/map/yaml.d.ts.map +1 -1
- package/dist/map/yaml.js +13 -3
- package/dist/map/yaml.js.map +1 -1
- package/dist/scanner.d.ts +9 -2
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +172 -49
- package/dist/scanner.js.map +1 -1
- package/dist/scanner.test.d.ts +2 -0
- package/dist/scanner.test.d.ts.map +1 -0
- package/dist/scanner.test.js +84 -0
- package/dist/scanner.test.js.map +1 -0
- package/dist/test-helpers/git-test-helpers.d.ts +13 -0
- package/dist/test-helpers/git-test-helpers.d.ts.map +1 -0
- package/dist/test-helpers/git-test-helpers.js +48 -0
- package/dist/test-helpers/git-test-helpers.js.map +1 -0
- package/dist/types.d.ts +42 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +15 -3
- package/src/cli.ts +164 -0
- package/src/extract/definitions.test.ts +2040 -0
- package/src/extract/definitions.ts +379 -0
- package/src/extract/git-status.test.ts +507 -0
- package/src/extract/git-status.ts +359 -0
- package/src/extract/markdown.test.ts +159 -0
- package/src/extract/markdown.ts +202 -0
- package/src/extract/marker.test.ts +566 -0
- package/src/extract/marker.ts +398 -0
- package/src/extract/submodules.test.ts +95 -0
- package/src/extract/submodules.ts +269 -0
- package/src/extract/utils.ts +27 -0
- package/src/index.ts +106 -0
- package/src/languages/cpp.ts +129 -0
- package/src/languages/go.ts +72 -0
- package/src/languages/index.ts +231 -0
- package/src/languages/javascript.ts +33 -0
- package/src/languages/python.ts +41 -0
- package/src/languages/rust.ts +72 -0
- package/src/languages/typescript.ts +74 -0
- package/src/languages/zig.ts +106 -0
- package/src/logger.ts +55 -0
- package/src/map/builder.test.ts +72 -0
- package/src/map/builder.ts +175 -0
- package/src/map/truncate.ts +188 -0
- package/src/map/yaml.ts +66 -0
- package/src/parser/index.ts +53 -0
- package/src/parser/languages.ts +64 -0
- package/src/scanner.test.ts +95 -0
- package/src/scanner.ts +364 -0
- package/src/test-helpers/git-test-helpers.ts +62 -0
- package/src/types.ts +191 -0
package/dist/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { toYaml } from './map/yaml.js';
|
|
|
8
8
|
import { truncateMap } from './map/truncate.js';
|
|
9
9
|
export { toYaml } from './map/yaml.js';
|
|
10
10
|
export { truncateMap, truncateDefs } from './map/truncate.js';
|
|
11
|
+
export { createConsoleLogger, createNoopLogger, formatLogMessage } from './logger.js';
|
|
11
12
|
/**
|
|
12
13
|
* Check if directory is inside a git repository
|
|
13
14
|
*/
|
|
@@ -40,11 +41,11 @@ export async function generateMap(options = {}) {
|
|
|
40
41
|
if (!isGitRepo(dir) || isHomeDirectory(dir)) {
|
|
41
42
|
return { [rootName]: {} };
|
|
42
43
|
}
|
|
43
|
-
const
|
|
44
|
-
const map = buildMap(
|
|
45
|
-
// Apply truncation
|
|
44
|
+
const { files, submodules } = await scanDirectory({ ...options, dir });
|
|
45
|
+
const map = buildMap(files, rootName, submodules);
|
|
46
|
+
// Apply truncation
|
|
46
47
|
const maxDefs = options.maxDefs ?? DEFAULT_MAX_DEFS;
|
|
47
|
-
return truncateMap(map, maxDefs);
|
|
48
|
+
return truncateMap(map, { maxDefs, maxDescChars: options.maxDescChars });
|
|
48
49
|
}
|
|
49
50
|
/**
|
|
50
51
|
* Generate a YAML string map from a directory
|
|
@@ -56,15 +57,15 @@ export async function generateMapYaml(options = {}) {
|
|
|
56
57
|
if (!isGitRepo(dir) || isHomeDirectory(dir)) {
|
|
57
58
|
return '';
|
|
58
59
|
}
|
|
59
|
-
const
|
|
60
|
-
if (
|
|
60
|
+
const { files, submodules } = await scanDirectory({ ...options, dir });
|
|
61
|
+
if (files.length === 0 && submodules.length === 0) {
|
|
61
62
|
return '';
|
|
62
63
|
}
|
|
63
64
|
const rootName = getRootName(dir);
|
|
64
|
-
const map = buildMap(
|
|
65
|
-
// Apply truncation
|
|
65
|
+
const map = buildMap(files, rootName, submodules);
|
|
66
|
+
// Apply truncation
|
|
66
67
|
const maxDefs = options.maxDefs ?? DEFAULT_MAX_DEFS;
|
|
67
|
-
const truncated = truncateMap(map, maxDefs);
|
|
68
|
+
const truncated = truncateMap(map, { maxDefs, maxDescChars: options.maxDescChars });
|
|
68
69
|
return toYaml(truncated);
|
|
69
70
|
}
|
|
70
71
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAG/C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface Logger {
|
|
2
|
+
debug: (...args: unknown[]) => void;
|
|
3
|
+
info: (...args: unknown[]) => void;
|
|
4
|
+
warn: (...args: unknown[]) => void;
|
|
5
|
+
error: (...args: unknown[]) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function createNoopLogger(): Logger;
|
|
8
|
+
export declare function formatLogMessage(args: unknown[]): string;
|
|
9
|
+
export declare function createConsoleLogger(): Logger;
|
|
10
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;IACnC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;IAClC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;IAClC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CACpC;AAWD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAkBD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAExD;AAOD,wBAAgB,mBAAmB,IAAI,MAAM,CAO5C"}
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Shared logger abstraction used by CLI and integrations.
|
|
2
|
+
const NOOP = () => { };
|
|
3
|
+
const NOOP_LOGGER = {
|
|
4
|
+
debug: NOOP,
|
|
5
|
+
info: NOOP,
|
|
6
|
+
warn: NOOP,
|
|
7
|
+
error: NOOP,
|
|
8
|
+
};
|
|
9
|
+
export function createNoopLogger() {
|
|
10
|
+
return NOOP_LOGGER;
|
|
11
|
+
}
|
|
12
|
+
function formatArg(value) {
|
|
13
|
+
if (typeof value === 'string') {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
if (value instanceof Error) {
|
|
17
|
+
return value.stack ?? value.message;
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
return JSON.stringify(value);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return String(value);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export function formatLogMessage(args) {
|
|
27
|
+
return args.map(formatArg).join(' ');
|
|
28
|
+
}
|
|
29
|
+
function writeLine(stream, args) {
|
|
30
|
+
const message = formatLogMessage(args);
|
|
31
|
+
stream.write(message.endsWith('\n') ? message : `${message}\n`);
|
|
32
|
+
}
|
|
33
|
+
export function createConsoleLogger() {
|
|
34
|
+
return {
|
|
35
|
+
debug: (...args) => writeLine(process.stderr, args),
|
|
36
|
+
info: (...args) => writeLine(process.stderr, args),
|
|
37
|
+
warn: (...args) => writeLine(process.stderr, args),
|
|
38
|
+
error: (...args) => writeLine(process.stderr, args),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAS1D,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;AAErB,MAAM,WAAW,GAAW;IAC1B,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;CACZ,CAAA;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAA;IACrC,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAe;IAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACtC,CAAC;AAED,SAAS,SAAS,CAAC,MAAyC,EAAE,IAAe;IAC3E,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;QACnD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;QAClD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;QAClD,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;KACpD,CAAA;AACH,CAAC"}
|
package/dist/map/builder.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { FileResult, MapNode } from '../types.js';
|
|
1
|
+
import type { FileResult, MapNode, SubmoduleInfo } from '../types.js';
|
|
2
2
|
/**
|
|
3
|
-
* Build a nested map object from file results
|
|
3
|
+
* Build a nested map object from file results and submodule info
|
|
4
4
|
*/
|
|
5
|
-
export declare function buildMap(results: FileResult[], rootName: string): MapNode;
|
|
5
|
+
export declare function buildMap(results: FileResult[], rootName: string, submodules?: SubmoduleInfo[]): MapNode;
|
|
6
6
|
/**
|
|
7
7
|
* Get the root name from a directory path
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/map/builder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAyB,UAAU,EAAiB,OAAO,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/map/builder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAyB,UAAU,EAAiB,OAAO,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAA;AAE1H;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,aAAa,EAAE,GAAG,OAAO,CAgBvG;AA6ID;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM/C"}
|
package/dist/map/builder.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
// Build the nested map object from file results.
|
|
2
2
|
import { basename } from 'path';
|
|
3
3
|
/**
|
|
4
|
-
* Build a nested map object from file results
|
|
4
|
+
* Build a nested map object from file results and submodule info
|
|
5
5
|
*/
|
|
6
|
-
export function buildMap(results, rootName) {
|
|
6
|
+
export function buildMap(results, rootName, submodules) {
|
|
7
7
|
const root = {};
|
|
8
|
+
// Insert submodule entries
|
|
9
|
+
if (submodules) {
|
|
10
|
+
for (const sub of submodules) {
|
|
11
|
+
insertSubmodule(root, sub);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
8
14
|
for (const result of results) {
|
|
9
15
|
insertFile(root, result);
|
|
10
16
|
}
|
|
@@ -25,20 +31,20 @@ function formatFileDiff(diff) {
|
|
|
25
31
|
return parts.join('');
|
|
26
32
|
}
|
|
27
33
|
/**
|
|
28
|
-
* Format a definition as a string like "
|
|
34
|
+
* Format a definition as a string like "exported fn updated (+5-2)"
|
|
35
|
+
* No commas, exported/extern before the type, "fn" instead of "function".
|
|
29
36
|
*/
|
|
30
37
|
function formatDefinition(def) {
|
|
31
|
-
const
|
|
32
|
-
const parts = [lineStr, def.type];
|
|
38
|
+
const parts = [];
|
|
33
39
|
if (def.exported) {
|
|
34
40
|
parts.push('exported');
|
|
35
41
|
}
|
|
36
42
|
if (def.extern) {
|
|
37
43
|
parts.push('extern');
|
|
38
44
|
}
|
|
45
|
+
parts.push(def.type === 'function' ? 'fn' : def.type);
|
|
39
46
|
// Add diff info if present
|
|
40
47
|
if (def.diff) {
|
|
41
|
-
// Format as +N-M or just +N or -M
|
|
42
48
|
const diffParts = [];
|
|
43
49
|
if (def.diff.added > 0) {
|
|
44
50
|
diffParts.push(`+${def.diff.added}`);
|
|
@@ -46,7 +52,6 @@ function formatDefinition(def) {
|
|
|
46
52
|
if (def.diff.deleted > 0) {
|
|
47
53
|
diffParts.push(`-${def.diff.deleted}`);
|
|
48
54
|
}
|
|
49
|
-
// Combine status with counts: "updated (+5-2)" or just "added"
|
|
50
55
|
if (diffParts.length > 0) {
|
|
51
56
|
parts.push(`${def.diff.status} (${diffParts.join('')})`);
|
|
52
57
|
}
|
|
@@ -54,7 +59,7 @@ function formatDefinition(def) {
|
|
|
54
59
|
parts.push(def.diff.status);
|
|
55
60
|
}
|
|
56
61
|
}
|
|
57
|
-
return parts.join('
|
|
62
|
+
return parts.join(' ');
|
|
58
63
|
}
|
|
59
64
|
/**
|
|
60
65
|
* Insert a file result into the map at its path location
|
|
@@ -70,8 +75,13 @@ function insertFile(root, result) {
|
|
|
70
75
|
}
|
|
71
76
|
current = current[dir];
|
|
72
77
|
}
|
|
73
|
-
// Create file entry
|
|
78
|
+
// Create file entry
|
|
74
79
|
const filename = parts[parts.length - 1];
|
|
80
|
+
// Duplicate files: just point to the original, no defs
|
|
81
|
+
if (result.duplicateOf) {
|
|
82
|
+
current[filename] = { description: `duplicate of ${result.duplicateOf}` };
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
75
85
|
const entry = {};
|
|
76
86
|
if (result.description) {
|
|
77
87
|
entry.description = result.description;
|
|
@@ -87,6 +97,46 @@ function insertFile(root, result) {
|
|
|
87
97
|
}
|
|
88
98
|
current[filename] = entry;
|
|
89
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Insert a submodule entry into the map at its path location.
|
|
102
|
+
* Format: "branch @ sha" or "detached @ sha" or "uninitialized @ sha"
|
|
103
|
+
*/
|
|
104
|
+
function insertSubmodule(root, sub) {
|
|
105
|
+
const parts = sub.path.split('/');
|
|
106
|
+
let current = root;
|
|
107
|
+
// Navigate/create directory structure for nested submodule paths
|
|
108
|
+
for (let i = 0; i < parts.length - 1; i++) {
|
|
109
|
+
const dir = parts[i];
|
|
110
|
+
if (!current[dir]) {
|
|
111
|
+
current[dir] = {};
|
|
112
|
+
}
|
|
113
|
+
current = current[dir];
|
|
114
|
+
}
|
|
115
|
+
// Build the submodule label
|
|
116
|
+
let label;
|
|
117
|
+
if (!sub.initialized) {
|
|
118
|
+
label = `uninitialized @ ${sub.commit}`;
|
|
119
|
+
}
|
|
120
|
+
else if (sub.branch) {
|
|
121
|
+
label = `${sub.branch} @ ${sub.commit}`;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
label = `detached @ ${sub.commit}`;
|
|
125
|
+
}
|
|
126
|
+
const name = parts[parts.length - 1];
|
|
127
|
+
const existing = current[name];
|
|
128
|
+
const entry = existing && typeof existing === 'object'
|
|
129
|
+
? existing
|
|
130
|
+
: { submodule: label };
|
|
131
|
+
entry.submodule = label;
|
|
132
|
+
if (sub.dirty) {
|
|
133
|
+
entry.dirty = 'modified';
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
delete entry.dirty;
|
|
137
|
+
}
|
|
138
|
+
current[name] = entry;
|
|
139
|
+
}
|
|
90
140
|
/**
|
|
91
141
|
* Get the root name from a directory path
|
|
92
142
|
*/
|
package/dist/map/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/map/builder.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAG/B;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAqB,EAAE,QAAgB;
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/map/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.test.d.ts","sourceRoot":"","sources":["../../src/map/builder.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Tests for building nested map nodes for recursive submodule trees.
|
|
2
|
+
import { describe, expect, test } from 'bun:test';
|
|
3
|
+
import { buildMap } from './builder.js';
|
|
4
|
+
describe('buildMap with recursive submodules', () => {
|
|
5
|
+
test('renders submodule metadata and nested files under the same node', () => {
|
|
6
|
+
const map = buildMap([
|
|
7
|
+
{
|
|
8
|
+
relativePath: 'README.md',
|
|
9
|
+
description: 'Root repo\nRoot README.',
|
|
10
|
+
definitions: [],
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
relativePath: 'vendor/child-lib/README.md',
|
|
14
|
+
description: 'Child repo\nChild README.',
|
|
15
|
+
definitions: [],
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
relativePath: 'vendor/child-lib/deps/nested-lib/README.md',
|
|
19
|
+
description: 'Nested repo\nNested README.',
|
|
20
|
+
definitions: [],
|
|
21
|
+
},
|
|
22
|
+
], 'repo', [
|
|
23
|
+
{
|
|
24
|
+
path: 'vendor/child-lib',
|
|
25
|
+
commit: 'abc1234',
|
|
26
|
+
branch: undefined,
|
|
27
|
+
dirty: false,
|
|
28
|
+
initialized: true,
|
|
29
|
+
url: undefined,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
path: 'vendor/child-lib/deps/nested-lib',
|
|
33
|
+
commit: 'def5678',
|
|
34
|
+
branch: undefined,
|
|
35
|
+
dirty: true,
|
|
36
|
+
initialized: true,
|
|
37
|
+
url: undefined,
|
|
38
|
+
},
|
|
39
|
+
]);
|
|
40
|
+
expect(map).toEqual({
|
|
41
|
+
repo: {
|
|
42
|
+
'README.md': {
|
|
43
|
+
description: 'Root repo\nRoot README.',
|
|
44
|
+
},
|
|
45
|
+
vendor: {
|
|
46
|
+
'child-lib': {
|
|
47
|
+
'README.md': {
|
|
48
|
+
description: 'Child repo\nChild README.',
|
|
49
|
+
},
|
|
50
|
+
deps: {
|
|
51
|
+
'nested-lib': {
|
|
52
|
+
'README.md': {
|
|
53
|
+
description: 'Nested repo\nNested README.',
|
|
54
|
+
},
|
|
55
|
+
dirty: 'modified',
|
|
56
|
+
submodule: 'detached @ def5678',
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
submodule: 'detached @ abc1234',
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=builder.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.test.js","sourceRoot":"","sources":["../../src/map/builder.test.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;QAC3E,MAAM,GAAG,GAAG,QAAQ,CAClB;YACE;gBACE,YAAY,EAAE,WAAW;gBACzB,WAAW,EAAE,yBAAyB;gBACtC,WAAW,EAAE,EAAE;aAChB;YACD;gBACE,YAAY,EAAE,4BAA4B;gBAC1C,WAAW,EAAE,2BAA2B;gBACxC,WAAW,EAAE,EAAE;aAChB;YACD;gBACE,YAAY,EAAE,4CAA4C;gBAC1D,WAAW,EAAE,6BAA6B;gBAC1C,WAAW,EAAE,EAAE;aAChB;SACF,EACD,MAAM,EACN;YACE;gBACE,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,IAAI;gBACjB,GAAG,EAAE,SAAS;aACf;YACD;gBACE,IAAI,EAAE,kCAAkC;gBACxC,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,IAAI;gBACjB,GAAG,EAAE,SAAS;aACf;SACF,CACF,CAAA;QAED,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE;gBACJ,WAAW,EAAE;oBACX,WAAW,EAAE,yBAAyB;iBACvC;gBACD,MAAM,EAAE;oBACN,WAAW,EAAE;wBACX,WAAW,EAAE;4BACX,WAAW,EAAE,2BAA2B;yBACzC;wBACD,IAAI,EAAE;4BACJ,YAAY,EAAE;gCACZ,WAAW,EAAE;oCACX,WAAW,EAAE,6BAA6B;iCAC3C;gCACD,KAAK,EAAE,UAAU;gCACjB,SAAS,EAAE,oBAAoB;6BAChC;yBACF;wBACD,SAAS,EAAE,oBAAoB;qBAChC;iBACF;aACF;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/map/truncate.d.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import type { FileEntry, MapNode } from '../types.js';
|
|
2
|
+
export interface TruncateOptions {
|
|
3
|
+
maxDefs?: number;
|
|
4
|
+
maxDescChars?: number;
|
|
5
|
+
}
|
|
2
6
|
/**
|
|
3
7
|
* Truncate definitions in a file entry to maxDefs
|
|
4
8
|
* If file has exported symbols, shows only exports field instead
|
|
5
9
|
* Otherwise uses current truncation behavior
|
|
6
10
|
*/
|
|
7
|
-
export declare function truncateDefs(entry: FileEntry,
|
|
11
|
+
export declare function truncateDefs(entry: FileEntry, maxDefsOrOptions?: number | TruncateOptions): FileEntry;
|
|
8
12
|
/**
|
|
9
|
-
* Recursively truncate defs in all files in the map
|
|
13
|
+
* Recursively truncate defs and descriptions in all files in the map
|
|
10
14
|
*/
|
|
11
|
-
export declare function truncateMap(node: MapNode,
|
|
15
|
+
export declare function truncateMap(node: MapNode, maxDefsOrOptions?: number | TruncateOptions): MapNode;
|
|
12
16
|
//# sourceMappingURL=truncate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncate.d.ts","sourceRoot":"","sources":["../../src/map/truncate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,SAAS,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"truncate.d.ts","sourceRoot":"","sources":["../../src/map/truncate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,SAAS,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAA;AAK9F,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAuGD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CA8CrG;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAkB/F"}
|
package/dist/map/truncate.js
CHANGED
|
@@ -1,11 +1,40 @@
|
|
|
1
|
-
// Truncate definitions in map to limit context size.
|
|
1
|
+
// Truncate definitions and descriptions in map to limit context size.
|
|
2
2
|
const DEFAULT_MAX_DEFS = 25;
|
|
3
|
+
const DEFAULT_MAX_DESC_CHARS = 300;
|
|
3
4
|
/**
|
|
4
5
|
* Check if a def value indicates exported or extern
|
|
5
6
|
*/
|
|
6
7
|
function isExportedDef(value) {
|
|
7
8
|
return value.includes('exported') || value.includes('extern');
|
|
8
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Truncate description by character count, rounding up to include the full line
|
|
12
|
+
* that crosses the limit (in excess).
|
|
13
|
+
*/
|
|
14
|
+
function truncateDescriptionByChars(description, maxChars) {
|
|
15
|
+
if (description.length <= maxChars)
|
|
16
|
+
return description;
|
|
17
|
+
const lines = description.split('\n');
|
|
18
|
+
// Single-line fallback: hard-truncate at maxChars
|
|
19
|
+
if (lines.length === 1) {
|
|
20
|
+
return description.slice(0, maxChars) + '...';
|
|
21
|
+
}
|
|
22
|
+
let charCount = 0;
|
|
23
|
+
for (let i = 0; i < lines.length; i++) {
|
|
24
|
+
// +1 for the newline separator (except first line)
|
|
25
|
+
charCount += lines[i].length + (i > 0 ? 1 : 0);
|
|
26
|
+
if (charCount >= maxChars) {
|
|
27
|
+
// Include this line (in excess), then stop
|
|
28
|
+
const kept = lines.slice(0, i + 1);
|
|
29
|
+
const remaining = lines.length - kept.length;
|
|
30
|
+
if (remaining > 0) {
|
|
31
|
+
kept.push(`... and ${remaining} more lines`);
|
|
32
|
+
}
|
|
33
|
+
return kept.join('\n');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return description;
|
|
37
|
+
}
|
|
9
38
|
/**
|
|
10
39
|
* Check if a value is a FileEntry (has description or defs)
|
|
11
40
|
*/
|
|
@@ -15,12 +44,61 @@ function isFileEntry(value) {
|
|
|
15
44
|
const obj = value;
|
|
16
45
|
return 'description' in obj || 'defs' in obj;
|
|
17
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Check if a value is a SubmoduleEntry (has submodule key)
|
|
49
|
+
*/
|
|
50
|
+
function isSubmoduleEntry(value) {
|
|
51
|
+
if (!value || typeof value !== 'object')
|
|
52
|
+
return false;
|
|
53
|
+
return 'submodule' in value;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Recursively truncate a submodule node while preserving its metadata keys.
|
|
57
|
+
*/
|
|
58
|
+
function truncateSubmoduleNode(entry, options) {
|
|
59
|
+
const result = { submodule: entry.submodule };
|
|
60
|
+
if (entry.dirty) {
|
|
61
|
+
result.dirty = entry.dirty;
|
|
62
|
+
}
|
|
63
|
+
for (const [key, value] of Object.entries(entry)) {
|
|
64
|
+
if (key === 'submodule' || key === 'dirty') {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (isFileEntry(value)) {
|
|
68
|
+
result[key] = truncateFileEntry(value, options);
|
|
69
|
+
}
|
|
70
|
+
else if (isSubmoduleEntry(value)) {
|
|
71
|
+
result[key] = truncateSubmoduleNode(value, options);
|
|
72
|
+
}
|
|
73
|
+
else if (value && typeof value === 'object') {
|
|
74
|
+
result[key] = truncateMap(value, options);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Truncate a file entry: cap description by chars and defs by count.
|
|
81
|
+
*/
|
|
82
|
+
function truncateFileEntry(entry, options) {
|
|
83
|
+
let result = entry;
|
|
84
|
+
// Truncate description by character count
|
|
85
|
+
const maxDescChars = options.maxDescChars ?? DEFAULT_MAX_DESC_CHARS;
|
|
86
|
+
if (result.description && result.description.length > maxDescChars) {
|
|
87
|
+
result = { ...result, description: truncateDescriptionByChars(result.description, maxDescChars) };
|
|
88
|
+
}
|
|
89
|
+
// Truncate defs
|
|
90
|
+
result = truncateDefs(result, options.maxDefs);
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
18
93
|
/**
|
|
19
94
|
* Truncate definitions in a file entry to maxDefs
|
|
20
95
|
* If file has exported symbols, shows only exports field instead
|
|
21
96
|
* Otherwise uses current truncation behavior
|
|
22
97
|
*/
|
|
23
|
-
export function truncateDefs(entry,
|
|
98
|
+
export function truncateDefs(entry, maxDefsOrOptions) {
|
|
99
|
+
const maxDefs = typeof maxDefsOrOptions === 'number'
|
|
100
|
+
? maxDefsOrOptions
|
|
101
|
+
: (maxDefsOrOptions?.maxDefs ?? DEFAULT_MAX_DEFS);
|
|
24
102
|
if (!entry.defs)
|
|
25
103
|
return entry;
|
|
26
104
|
const defNames = Object.keys(entry.defs);
|
|
@@ -57,19 +135,22 @@ export function truncateDefs(entry, maxDefs = DEFAULT_MAX_DEFS) {
|
|
|
57
135
|
return { ...entry, defs: truncated };
|
|
58
136
|
}
|
|
59
137
|
/**
|
|
60
|
-
* Recursively truncate defs in all files in the map
|
|
138
|
+
* Recursively truncate defs and descriptions in all files in the map
|
|
61
139
|
*/
|
|
62
|
-
export function truncateMap(node,
|
|
140
|
+
export function truncateMap(node, maxDefsOrOptions) {
|
|
141
|
+
const options = typeof maxDefsOrOptions === 'number'
|
|
142
|
+
? { maxDefs: maxDefsOrOptions }
|
|
143
|
+
: (maxDefsOrOptions ?? {});
|
|
63
144
|
const result = {};
|
|
64
145
|
for (const [key, value] of Object.entries(node)) {
|
|
65
146
|
if (isFileEntry(value)) {
|
|
66
|
-
result[key] =
|
|
147
|
+
result[key] = truncateFileEntry(value, options);
|
|
67
148
|
}
|
|
68
|
-
else if (value
|
|
69
|
-
result[key] =
|
|
149
|
+
else if (isSubmoduleEntry(value)) {
|
|
150
|
+
result[key] = truncateSubmoduleNode(value, options);
|
|
70
151
|
}
|
|
71
|
-
else {
|
|
72
|
-
result[key] = value;
|
|
152
|
+
else if (value && typeof value === 'object') {
|
|
153
|
+
result[key] = truncateMap(value, options);
|
|
73
154
|
}
|
|
74
155
|
}
|
|
75
156
|
return result;
|
package/dist/map/truncate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../src/map/truncate.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../src/map/truncate.ts"],"names":[],"mappings":"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"}
|
package/dist/map/yaml.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../src/map/yaml.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../src/map/yaml.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAgD1C;;;GAGG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAU3C"}
|
package/dist/map/yaml.js
CHANGED
|
@@ -8,7 +8,7 @@ function isReadme(key) {
|
|
|
8
8
|
return lower === 'readme.md' || lower === 'readme';
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
-
* Custom key sorter: description first, then diff, then defs/exports, then README files, then alphabetical
|
|
11
|
+
* Custom key sorter: description first, then submodule/dirty, then diff, then defs/exports, then README files, then alphabetical
|
|
12
12
|
*/
|
|
13
13
|
function sortKeys(a, b) {
|
|
14
14
|
// description always first
|
|
@@ -16,12 +16,22 @@ function sortKeys(a, b) {
|
|
|
16
16
|
return -1;
|
|
17
17
|
if (b === 'description')
|
|
18
18
|
return 1;
|
|
19
|
-
//
|
|
19
|
+
// submodule second (for submodule entries)
|
|
20
|
+
if (a === 'submodule')
|
|
21
|
+
return -1;
|
|
22
|
+
if (b === 'submodule')
|
|
23
|
+
return 1;
|
|
24
|
+
// dirty third (for submodule entries)
|
|
25
|
+
if (a === 'dirty')
|
|
26
|
+
return -1;
|
|
27
|
+
if (b === 'dirty')
|
|
28
|
+
return 1;
|
|
29
|
+
// diff fourth
|
|
20
30
|
if (a === 'diff')
|
|
21
31
|
return -1;
|
|
22
32
|
if (b === 'diff')
|
|
23
33
|
return 1;
|
|
24
|
-
// defs/exports
|
|
34
|
+
// defs/exports fifth
|
|
25
35
|
if (a === 'defs' || a === 'exports')
|
|
26
36
|
return -1;
|
|
27
37
|
if (b === 'defs' || b === 'exports')
|
package/dist/map/yaml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../src/map/yaml.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAEpC,OAAO,IAAI,MAAM,SAAS,CAAA;AAG1B;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC/B,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,QAAQ,CAAA;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS;IACpC,2BAA2B;IAC3B,IAAI,CAAC,KAAK,aAAa;QAAE,OAAO,CAAC,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK,aAAa;QAAE,OAAO,CAAC,CAAA;IACjC,cAAc;IACd,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC,CAAA;IAC3B,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,CAAC,CAAA;IAC1B,qBAAqB;IACrB,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,CAAA;IAC9C,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAA;IAC7C,uCAAuC;IACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC7B,IAAI,SAAS,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,CAAC,CAAA;IACtC,IAAI,SAAS,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,CAAA;IACrC,mCAAmC;IACnC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACxC,OAAO,OAAO,CAAC,OAAO,CACpB,6DAA6D,EAC7D,YAAY,CACb,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,GAAY;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QAC7B,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,CAAC,CAAC,EAAG,mBAAmB;QACnC,MAAM,EAAE,IAAI,EAAI,4BAA4B;QAC5C,QAAQ,EAAQ,qCAAqC;QACrD,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,KAAK;KACnB,CAAC,CAAA;IACF,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../src/map/yaml.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAEpC,OAAO,IAAI,MAAM,SAAS,CAAA;AAG1B;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC/B,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,QAAQ,CAAA;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS;IACpC,2BAA2B;IAC3B,IAAI,CAAC,KAAK,aAAa;QAAE,OAAO,CAAC,CAAC,CAAA;IAClC,IAAI,CAAC,KAAK,aAAa;QAAE,OAAO,CAAC,CAAA;IACjC,2CAA2C;IAC3C,IAAI,CAAC,KAAK,WAAW;QAAE,OAAO,CAAC,CAAC,CAAA;IAChC,IAAI,CAAC,KAAK,WAAW;QAAE,OAAO,CAAC,CAAA;IAC/B,sCAAsC;IACtC,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,CAAC,CAAC,CAAA;IAC5B,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,CAAC,CAAA;IAC3B,cAAc;IACd,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC,CAAA;IAC3B,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,CAAC,CAAA;IAC1B,qBAAqB;IACrB,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,CAAA;IAC9C,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAA;IAC7C,uCAAuC;IACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC7B,IAAI,SAAS,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,CAAC,CAAA;IACtC,IAAI,SAAS,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,CAAA;IACrC,mCAAmC;IACnC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACxC,OAAO,OAAO,CAAC,OAAO,CACpB,6DAA6D,EAC7D,YAAY,CACb,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,GAAY;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QAC7B,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,CAAC,CAAC,EAAG,mBAAmB;QACnC,MAAM,EAAE,IAAI,EAAI,4BAA4B;QAC5C,QAAQ,EAAQ,qCAAqC;QACrD,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,KAAK;KACnB,CAAC,CAAA;IACF,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
|
package/dist/scanner.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import type { FileResult, GenerateOptions } from './types.js';
|
|
1
|
+
import type { FileResult, GenerateOptions, SubmoduleInfo } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Result of scanning a directory, including both file results and submodule info
|
|
4
|
+
*/
|
|
5
|
+
export interface ScanResult {
|
|
6
|
+
files: FileResult[];
|
|
7
|
+
submodules: SubmoduleInfo[];
|
|
8
|
+
}
|
|
2
9
|
/**
|
|
3
10
|
* Scan directory and process files with header comments
|
|
4
11
|
*/
|
|
5
|
-
export declare function scanDirectory(options?: GenerateOptions): Promise<
|
|
12
|
+
export declare function scanDirectory(options?: GenerateOptions): Promise<ScanResult>;
|
|
6
13
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAA2B,aAAa,EAAE,MAAM,YAAY,CAAA;AAsHrG;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,UAAU,EAAE,aAAa,EAAE,CAAA;CAC5B;AAuJD;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,CAetF"}
|