@lakindu_perera/toren 1.0.8 → 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.
Files changed (64) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cli/toren.d.ts +24 -0
  3. package/dist/cli/toren.js +258 -0
  4. package/dist/cli/toren.js.map +1 -0
  5. package/dist/detectors/config-detector.d.ts +3 -0
  6. package/dist/detectors/config-detector.js +58 -0
  7. package/dist/detectors/config-detector.js.map +1 -0
  8. package/dist/detectors/health-detector.d.ts +12 -0
  9. package/dist/detectors/health-detector.js +53 -0
  10. package/dist/detectors/health-detector.js.map +1 -0
  11. package/dist/detectors/important-files-detector.d.ts +51 -0
  12. package/dist/detectors/important-files-detector.js +455 -0
  13. package/dist/detectors/important-files-detector.js.map +1 -0
  14. package/dist/detectors/package-manager-detector.d.ts +7 -0
  15. package/dist/detectors/package-manager-detector.js +35 -0
  16. package/dist/detectors/package-manager-detector.js.map +1 -0
  17. package/dist/detectors/project-info-detector.d.ts +13 -0
  18. package/dist/detectors/project-info-detector.js +97 -0
  19. package/dist/detectors/project-info-detector.js.map +1 -0
  20. package/dist/detectors/script-detector.d.ts +42 -0
  21. package/dist/detectors/script-detector.js +199 -0
  22. package/dist/detectors/script-detector.js.map +1 -0
  23. package/dist/focused-output.d.ts +27 -0
  24. package/dist/focused-output.js +201 -0
  25. package/dist/focused-output.js.map +1 -0
  26. package/dist/lifecycle.d.ts +2 -0
  27. package/dist/lifecycle.js +114 -0
  28. package/dist/lifecycle.js.map +1 -0
  29. package/dist/renderers/console-renderer.d.ts +20 -0
  30. package/dist/renderers/console-renderer.js +363 -0
  31. package/dist/renderers/console-renderer.js.map +1 -0
  32. package/dist/renderers/html-renderer.d.ts +14 -0
  33. package/{src → dist}/renderers/html-renderer.js +181 -241
  34. package/dist/renderers/html-renderer.js.map +1 -0
  35. package/dist/renderers/index.d.ts +7 -0
  36. package/dist/renderers/index.js +12 -0
  37. package/dist/renderers/index.js.map +1 -0
  38. package/dist/renderers/json-renderer.d.ts +10 -0
  39. package/dist/renderers/json-renderer.js +127 -0
  40. package/dist/renderers/json-renderer.js.map +1 -0
  41. package/dist/renderers/markdown-renderer.d.ts +13 -0
  42. package/dist/renderers/markdown-renderer.js +360 -0
  43. package/dist/renderers/markdown-renderer.js.map +1 -0
  44. package/dist/scanner/scan.d.ts +2 -0
  45. package/dist/scanner/scan.js +573 -0
  46. package/dist/scanner/scan.js.map +1 -0
  47. package/dist/types/index.d.ts +85 -0
  48. package/dist/types/index.js +2 -0
  49. package/dist/types/index.js.map +1 -0
  50. package/package.json +11 -6
  51. package/bin/toren.js +0 -311
  52. package/src/detectors/config-detector.js +0 -81
  53. package/src/detectors/health-detector.js +0 -72
  54. package/src/detectors/important-files-detector.js +0 -515
  55. package/src/detectors/package-manager-detector.js +0 -112
  56. package/src/detectors/project-info-detector.js +0 -89
  57. package/src/detectors/script-detector.js +0 -248
  58. package/src/focused-output.js +0 -216
  59. package/src/lifecycle.js +0 -124
  60. package/src/renderers/console-renderer.js +0 -399
  61. package/src/renderers/index.js +0 -41
  62. package/src/renderers/json-renderer.js +0 -168
  63. package/src/renderers/markdown-renderer.js +0 -397
  64. package/src/scanner/scan.js +0 -554
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-renderer.js","sourceRoot":"","sources":["../../src/renderers/html-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ScanResult, OutputFormat } from '../types/index.js';
2
+ export type Renderer = (result: ScanResult, options?: {
3
+ cwd?: string;
4
+ showAllFiles?: boolean;
5
+ }) => void;
6
+ declare const renderers: Record<OutputFormat, Renderer>;
7
+ export default renderers;
@@ -0,0 +1,12 @@
1
+ import { render as renderConsole } from './console-renderer.js';
2
+ import { render as renderJson } from './json-renderer.js';
3
+ import { render as renderMarkdown } from './markdown-renderer.js';
4
+ import { render as renderHtml } from './html-renderer.js';
5
+ const renderers = {
6
+ console: renderConsole,
7
+ json: renderJson,
8
+ markdown: renderMarkdown,
9
+ html: renderHtml,
10
+ };
11
+ export default renderers;
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAK1D,MAAM,SAAS,GAAmC;IAChD,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,cAAc;IACxB,IAAI,EAAE,UAAU;CACjB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ScanResult } from "../types/index.js";
2
+ /**
3
+ * Render a ScanResult as a stable JSON document to stdout.
4
+ *
5
+ * @param {import('../scanner/scan.js').ScanResult} result
6
+ * @param {{ cwd?: string }} [options]
7
+ */
8
+ export declare function render(result: ScanResult, options?: {
9
+ cwd?: string;
10
+ }): void;
@@ -0,0 +1,127 @@
1
+ /**
2
+ * @fileoverview Toren — JSON Renderer
3
+ *
4
+ * Consumes a ScanResult and produces a stable, consistently-ordered JSON
5
+ * object suitable for programmatic consumption.
6
+ *
7
+ * Design contract (mirrors all other renderers):
8
+ * - Accepts a ScanResult and an optional options object.
9
+ * - Never scans files or modifies the data it receives.
10
+ * - All arrays are always present — never undefined or missing.
11
+ * - Property order is fixed and documented below.
12
+ * - Backward compatible: no existing field is removed or renamed.
13
+ *
14
+ * Output property order:
15
+ * 1. meta — schema version + generator provenance
16
+ * 2. project — name (basename), path (relative), detected type
17
+ * 3. frameworks — derived array of detected frameworks ([] when none)
18
+ * 4. entryPoints — array of detected entry-point paths
19
+ * 5. configs — array of detected configuration file paths
20
+ * 6. scripts — array of { name, command } objects
21
+ * 7. statistics — file/folder counts and scan duration (structured)
22
+ * 8. structure — recursive file-tree array
23
+ * 9. summary — retained for backward compatibility (same data as statistics)
24
+ */
25
+ import path from 'node:path';
26
+ import { createRequire } from 'node:module';
27
+ const require = createRequire(import.meta.url);
28
+ const pkg = require('../../package.json');
29
+ function mapTree(node) {
30
+ if (node.type === 'directory') {
31
+ return {
32
+ type: 'folder',
33
+ name: node.name,
34
+ children: (node.children || []).map(mapTree),
35
+ };
36
+ }
37
+ return {
38
+ type: 'file',
39
+ name: node.name,
40
+ };
41
+ }
42
+ // ---------------------------------------------------------------------------
43
+ // Helpers
44
+ // ---------------------------------------------------------------------------
45
+ /**
46
+ * Derive a `frameworks` array from the scanner's `projectType` string.
47
+ * Returns a single-element array when a framework is detected, empty otherwise.
48
+ * This is a pure presentation decision — no business logic is added.
49
+ *
50
+ * @param {string} projectType
51
+ * @returns {string[]}
52
+ */
53
+ function deriveFrameworks(projectType) {
54
+ if (!projectType || projectType === 'Unknown')
55
+ return [];
56
+ return [projectType];
57
+ }
58
+ // ---------------------------------------------------------------------------
59
+ // Public API
60
+ // ---------------------------------------------------------------------------
61
+ /**
62
+ * Render a ScanResult as a stable JSON document to stdout.
63
+ *
64
+ * @param {import('../scanner/scan.js').ScanResult} result
65
+ * @param {{ cwd?: string }} [options]
66
+ */
67
+ export function render(result, options = {}) {
68
+ const { rootPath, projectType, entryPoints = [], configs = [], scripts = [], packageManager, importantFiles = [], projectInfo = null, health = [], tree, flatFiles = [], totalFolders = 0, scanDurationMs, } = result;
69
+ const cwd = options.cwd ?? process.cwd();
70
+ const relRoot = path.relative(cwd, rootPath) || '.';
71
+ const rootName = path.basename(rootPath) || relRoot;
72
+ // Shared statistics values — computed once, used in both `statistics` and
73
+ // the backward-compatible `summary` block.
74
+ // Guard against NaN/undefined: JSON.stringify(NaN) produces null, breaking
75
+ // the schema guarantee that durationMs is always a number.
76
+ const totalFiles = flatFiles.length;
77
+ const durationMs = Number.isFinite(scanDurationMs) ? Math.round(scanDurationMs) : 0;
78
+ const output = {
79
+ // 1. Provenance — lets consumers detect schema changes.
80
+ meta: {
81
+ generatedBy: 'Toren',
82
+ version: pkg.version,
83
+ schema: 1,
84
+ },
85
+ // 2. Project identity — name is the human-readable basename; path is the
86
+ // relative path used for filesystem resolution.
87
+ project: {
88
+ name: (projectInfo && projectInfo.name) ? projectInfo.name : rootName,
89
+ path: relRoot,
90
+ type: projectType,
91
+ packageManager: packageManager || null,
92
+ runtime: projectInfo ? projectInfo.runtime : null,
93
+ language: projectInfo ? projectInfo.language : null,
94
+ framework: projectInfo ? projectInfo.framework : null,
95
+ architecture: projectInfo ? projectInfo.architecture : null,
96
+ entryPoint: projectInfo ? projectInfo.entryPoint : null,
97
+ sourceDirectory: projectInfo ? projectInfo.sourceDirectory : null,
98
+ },
99
+ // 3. Detected frameworks — always an array.
100
+ frameworks: deriveFrameworks(projectType),
101
+ // 4–6. Discovery results — all arrays, always present, never null.
102
+ entryPoints: Array.isArray(entryPoints) ? entryPoints : [],
103
+ configs: Array.isArray(configs) ? configs : [],
104
+ scripts: Array.isArray(scripts) ? scripts : [],
105
+ importantFiles: Array.isArray(importantFiles) ? importantFiles : [],
106
+ health: Array.isArray(health) ? health : [],
107
+ // 7. Structured statistics — always a complete object with numeric values.
108
+ // durationMs is rounded to the nearest millisecond (integer).
109
+ statistics: {
110
+ files: totalFiles,
111
+ folders: totalFolders,
112
+ durationMs,
113
+ },
114
+ // 8. File-tree — array of root-level nodes; always present.
115
+ // Empty array when the scanned directory is empty.
116
+ structure: (tree?.children || []).map(mapTree),
117
+ // 9. Backward-compatible summary block — preserved for existing consumers.
118
+ // Contains the same data under the original field names.
119
+ summary: {
120
+ totalFiles,
121
+ totalFolders,
122
+ scanDurationMs: durationMs,
123
+ },
124
+ };
125
+ console.log(JSON.stringify(output, null, 2));
126
+ }
127
+ //# sourceMappingURL=json-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-renderer.js","sourceRoot":"","sources":["../../src/renderers/json-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { ScanResult } from "../types/index.js";
2
+ /**
3
+ * Render a ScanResult as a GitHub-flavored Markdown report to stdout.
4
+ *
5
+ * All sections are built into an in-memory string array and joined once
6
+ * at the end — a single `console.log` call keeps stdout writes atomic.
7
+ *
8
+ * @param {import('../scanner/scan.js').ScanResult} result
9
+ * @param {{ cwd?: string }} [options]
10
+ */
11
+ export declare function render(result: ScanResult, options?: {
12
+ cwd?: string;
13
+ }): void;
@@ -0,0 +1,360 @@
1
+ /**
2
+ * @fileoverview Toren — Markdown Renderer
3
+ *
4
+ * Consumes a {@link ScanResult} and writes a polished, GitHub-flavored
5
+ * Markdown report to stdout.
6
+ *
7
+ * Design contract (mirrors all other renderers):
8
+ * - Accepts a ScanResult and an optional options object.
9
+ * - Never scans files or modifies the data it receives.
10
+ * - Produces only plain Markdown — no ANSI codes, no HTML, no emoji.
11
+ * - All output goes to stdout so users can redirect freely:
12
+ * toren --format markdown > PROJECT_REPORT.md
13
+ *
14
+ * Sections (in order):
15
+ * 1. Title
16
+ * 2. Project Summary (table)
17
+ * 3. Entry Points (list)
18
+ * 4. Folder Structure (fenced code block)
19
+ * 5. Statistics (table)
20
+ * 6. Scan Information
21
+ *
22
+ * @module renderers/markdown-renderer
23
+ */
24
+ import path from 'node:path';
25
+ // ---------------------------------------------------------------------------
26
+ // Plain-text tree builder (Markdown-safe, no ANSI, no emoji)
27
+ // ---------------------------------------------------------------------------
28
+ /**
29
+ * Recursively serialise a tree node into classic tree-connector lines.
30
+ * Output is plain ASCII — safe for any Markdown renderer.
31
+ *
32
+ * @param {object} node - Current tree node
33
+ * @param {string} prefix - Accumulated prefix string for indentation
34
+ * @param {boolean} isLast - Whether this node is the last sibling
35
+ * @param {string[]} lines - Accumulator for output lines
36
+ * @param {number} depth - Current recursion depth
37
+ * @param {number} maxDepth - Maximum depth to render
38
+ */
39
+ function serializeNode(node, prefix, isLast, lines, depth = 0, maxDepth = 5) {
40
+ if (depth >= maxDepth)
41
+ return;
42
+ const connector = isLast ? '└── ' : '├── ';
43
+ const childPad = isLast ? ' ' : '│ ';
44
+ const label = node.type === 'directory' ? `${node.name}/` : node.name;
45
+ lines.push(`${prefix}${connector}${label}`);
46
+ if (node.type === 'directory') {
47
+ const children = node.children || [];
48
+ // Truncate deep directories with an ellipsis rather than cutting silently.
49
+ if (depth === maxDepth - 1 && children.length > 0) {
50
+ lines.push(`${prefix}${childPad}└── ...`);
51
+ return;
52
+ }
53
+ for (let i = 0; i < children.length; i++) {
54
+ serializeNode(children[i], prefix + childPad, i === children.length - 1, lines, depth + 1, maxDepth);
55
+ }
56
+ }
57
+ }
58
+ /**
59
+ * Convert a ScanResult tree into a Markdown-safe tree string.
60
+ *
61
+ * @param {import('../scanner/scan.js').DirNode} tree
62
+ * @param {string} rootName - Display name for the root node (e.g. "my-app/")
63
+ * @param {number} totalFiles
64
+ * @returns {string}
65
+ */
66
+ function buildTreeString(tree, rootName, totalFiles) {
67
+ if (totalFiles === 0)
68
+ return '';
69
+ const lines = [`${rootName}/`];
70
+ const children = tree.children || [];
71
+ for (let i = 0; i < children.length; i++) {
72
+ serializeNode(children[i], '', i === children.length - 1, lines);
73
+ }
74
+ return lines.join('\n');
75
+ }
76
+ // ---------------------------------------------------------------------------
77
+ // Formatting helpers
78
+ // ---------------------------------------------------------------------------
79
+ /**
80
+ * Format a scan duration in milliseconds to a human-readable string.
81
+ *
82
+ * @param {number} ms
83
+ * @returns {string}
84
+ */
85
+ function formatDuration(ms) {
86
+ if (ms < 1)
87
+ return '< 1 ms';
88
+ if (ms >= 1000)
89
+ return `${(ms / 1000).toFixed(2)} s`;
90
+ return `${Math.round(ms)} ms`;
91
+ }
92
+ /**
93
+ * Build a Markdown table from an array of two-element [label, value] pairs.
94
+ * Column widths are padded to keep the source Markdown tidy.
95
+ *
96
+ * @param {[string, string][]} rows
97
+ * @returns {string}
98
+ */
99
+ function markdownTable(rows) {
100
+ const colA = Math.max(8, ...rows.map(([k]) => k.length));
101
+ const colB = Math.max(5, ...rows.map(([, v]) => String(v).length));
102
+ const pad = (s, n) => String(s).padEnd(n);
103
+ const hr = `|${'-'.repeat(colA + 2)}|${'-'.repeat(colB + 2)}|`;
104
+ const head = `| ${pad('Property', colA)} | ${pad('Value', colB)} |`;
105
+ const body = rows.map(([k, v]) => `| ${pad(k, colA)} | ${pad(v, colB)} |`);
106
+ return [head, hr, ...body].join('\n');
107
+ }
108
+ /**
109
+ * Derive a frameworks array from the projectType string.
110
+ * Returns [] when no specific framework is detected.
111
+ * Mirrors the identical derivation in console-renderer.js and json-renderer.js.
112
+ *
113
+ * @param {string} projectType
114
+ * @returns {string[]}
115
+ */
116
+ function deriveFrameworks(projectType) {
117
+ if (!projectType || projectType === 'Unknown')
118
+ return [];
119
+ return [projectType];
120
+ }
121
+ /**
122
+ * Build a right-aligned Markdown table (used for statistics).
123
+ *
124
+ * @param {[string, string|number][]} rows
125
+ * @returns {string}
126
+ */
127
+ function statsTable(rows) {
128
+ const colA = Math.max(6, ...rows.map(([k]) => k.length));
129
+ const colB = Math.max(5, ...rows.map(([, v]) => String(v).length));
130
+ const padL = (s, n) => String(s).padEnd(n);
131
+ const padR = (s, n) => String(s).padStart(n);
132
+ const hr = `|${'-'.repeat(colA + 2)}|${'-'.repeat(colB + 1)}:|`;
133
+ const head = `| ${padL('Metric', colA)} | ${padR('Value', colB)} |`;
134
+ const body = rows.map(([k, v]) => `| ${padL(k, colA)} | ${padR(v, colB)} |`);
135
+ return [head, hr, ...body].join('\n');
136
+ }
137
+ // ---------------------------------------------------------------------------
138
+ // Section builders (private — one function per report section)
139
+ // ---------------------------------------------------------------------------
140
+ /** @param {string[]} out */
141
+ function sectionTitle(out) {
142
+ out.push('# Toren Report');
143
+ out.push('');
144
+ out.push('Generated by **Toren** — Codebase Onboarding Intelligence');
145
+ }
146
+ /**
147
+ * @param {string[]} out
148
+ * @param {import('../scanner/scan.js').ScanResult} result
149
+ * @param {string} relRoot
150
+ */
151
+ function sectionSummary(out, result, relRoot) {
152
+ const { projectType, flatFiles, totalFolders, packageManager, projectInfo } = result;
153
+ out.push('');
154
+ out.push('## Project');
155
+ out.push('');
156
+ const rows = [];
157
+ if (projectInfo && projectInfo.name)
158
+ rows.push(['Name', projectInfo.name]);
159
+ rows.push(['Project Type', projectType]);
160
+ if (packageManager)
161
+ rows.push(['Package Manager', packageManager]);
162
+ if (projectInfo && projectInfo.runtime)
163
+ rows.push(['Runtime', projectInfo.runtime]);
164
+ if (projectInfo && projectInfo.language)
165
+ rows.push(['Language', projectInfo.language]);
166
+ if (projectInfo && projectInfo.architecture)
167
+ rows.push(['Architecture', projectInfo.architecture]);
168
+ if (projectInfo && projectInfo.framework)
169
+ rows.push(['Framework', projectInfo.framework]);
170
+ if (projectInfo && projectInfo.entryPoint)
171
+ rows.push(['Entry Point', projectInfo.entryPoint]);
172
+ if (projectInfo && projectInfo.sourceDirectory)
173
+ rows.push(['Source Directory', projectInfo.sourceDirectory]);
174
+ rows.push(['Scan Path', relRoot]);
175
+ rows.push(['Total Files', String(flatFiles.length)]);
176
+ rows.push(['Total Folders', String(totalFolders)]);
177
+ out.push(markdownTable(rows));
178
+ }
179
+ /**
180
+ * @param {string[]} out
181
+ * @param {string} projectType
182
+ */
183
+ function sectionFrameworks(out, projectType) {
184
+ const frameworks = deriveFrameworks(projectType);
185
+ out.push('');
186
+ out.push('## Frameworks');
187
+ out.push('');
188
+ if (frameworks.length === 0) {
189
+ out.push('No frameworks detected.');
190
+ }
191
+ else {
192
+ for (const fw of frameworks) {
193
+ out.push(`- ${fw}`);
194
+ }
195
+ }
196
+ }
197
+ /**
198
+ * @param {string[]} out
199
+ * @param {string[]} configs
200
+ */
201
+ function sectionConfigurationFiles(out, configs) {
202
+ out.push('');
203
+ out.push('## Configurations');
204
+ out.push('');
205
+ if (configs.length === 0) {
206
+ out.push('No configuration files detected.');
207
+ }
208
+ else {
209
+ for (const c of configs) {
210
+ out.push(`- ${c}`);
211
+ }
212
+ }
213
+ }
214
+ /**
215
+ * @param {string[]} out
216
+ * @param {Array<{name: string, command: string, description: string, usage: string}>} scripts
217
+ */
218
+ function sectionPackageScripts(out, scripts) {
219
+ out.push('');
220
+ out.push('## Scripts');
221
+ out.push('');
222
+ if (scripts.length === 0) {
223
+ out.push('No package scripts detected.');
224
+ }
225
+ else {
226
+ for (const s of scripts) {
227
+ const usage = s.usage || `npm run ${s.name}`;
228
+ out.push(`- **${usage}**`);
229
+ if (s.description) {
230
+ out.push(` ${s.description} `);
231
+ out.push(` \`${s.command}\``);
232
+ }
233
+ else {
234
+ out.push(` \`${s.command}\``);
235
+ }
236
+ }
237
+ }
238
+ }
239
+ /**
240
+ * @param {string[]} out
241
+ * @param {Array<{path: string, reason: string}>} importantFiles
242
+ */
243
+ function sectionImportantFiles(out, importantFiles) {
244
+ out.push('');
245
+ out.push('## Important Files');
246
+ out.push('');
247
+ if (importantFiles.length === 0) {
248
+ out.push('No important files detected.');
249
+ }
250
+ else {
251
+ for (const f of importantFiles) {
252
+ out.push(`- **${f.path}** `);
253
+ out.push(` ${f.reason}`);
254
+ }
255
+ }
256
+ }
257
+ /**
258
+ * @param {string[]} out
259
+ * @param {Array<{id: string, status: string, message: string}>} health
260
+ */
261
+ function sectionProjectHealth(out, health) {
262
+ out.push('');
263
+ out.push('## Project Health');
264
+ out.push('');
265
+ if (health.length === 0) {
266
+ out.push('No project health observations available.');
267
+ }
268
+ else {
269
+ for (const h of health) {
270
+ let icon = 'ℹ';
271
+ if (h.status === 'pass')
272
+ icon = '✓';
273
+ else if (h.status === 'warning')
274
+ icon = '⚠';
275
+ out.push(`- ${icon} ${h.message}`);
276
+ }
277
+ }
278
+ }
279
+ /**
280
+ * @param {string[]} out
281
+ * @param {string[]} entryPoints
282
+ */
283
+ function sectionEntryPoints(out, entryPoints) {
284
+ out.push('');
285
+ out.push('## Entry Points');
286
+ out.push('');
287
+ if (entryPoints.length === 0) {
288
+ out.push('No entry points detected.');
289
+ }
290
+ else {
291
+ for (const ep of entryPoints) {
292
+ out.push(`- ${ep}`);
293
+ }
294
+ }
295
+ }
296
+ /**
297
+ * @param {string[]} out
298
+ * @param {import('../scanner/scan.js').DirNode} tree
299
+ * @param {number} totalFiles
300
+ * @param {string} rootName
301
+ */
302
+ function sectionFolderStructure(out, tree, totalFiles, rootName) {
303
+ // Contract: omit section entirely when no files were scanned.
304
+ if (totalFiles === 0)
305
+ return;
306
+ out.push('');
307
+ out.push('## Structure');
308
+ out.push('');
309
+ const treeStr = buildTreeString(tree, rootName, totalFiles);
310
+ out.push('```text');
311
+ out.push(treeStr);
312
+ out.push('```');
313
+ }
314
+ /**
315
+ * @param {string[]} out
316
+ * @param {import('../scanner/scan.js').ScanResult} result
317
+ */
318
+ function sectionStatistics(out, result) {
319
+ const { flatFiles, totalFolders, scanDurationMs } = result;
320
+ out.push('');
321
+ out.push('## Statistics');
322
+ out.push('');
323
+ out.push(statsTable([
324
+ ['Files', flatFiles.length.toString()],
325
+ ['Folders', totalFolders.toString()],
326
+ ['Scan Duration', formatDuration(scanDurationMs)],
327
+ ]));
328
+ }
329
+ // ---------------------------------------------------------------------------
330
+ // Public API
331
+ // ---------------------------------------------------------------------------
332
+ /**
333
+ * Render a ScanResult as a GitHub-flavored Markdown report to stdout.
334
+ *
335
+ * All sections are built into an in-memory string array and joined once
336
+ * at the end — a single `console.log` call keeps stdout writes atomic.
337
+ *
338
+ * @param {import('../scanner/scan.js').ScanResult} result
339
+ * @param {{ cwd?: string }} [options]
340
+ */
341
+ export function render(result, options = {}) {
342
+ const { rootPath, projectType, entryPoints, configs = [], scripts = [], flatFiles, tree, importantFiles = [], health = [] } = result;
343
+ const cwd = options.cwd ?? process.cwd();
344
+ const relRoot = path.relative(cwd, rootPath) || '.';
345
+ const rootName = relRoot === '.' ? path.basename(rootPath) : relRoot;
346
+ /** @type {string[]} */
347
+ const out = [];
348
+ sectionTitle(out);
349
+ sectionSummary(out, result, relRoot);
350
+ sectionProjectHealth(out, health);
351
+ sectionImportantFiles(out, importantFiles);
352
+ sectionFrameworks(out, projectType);
353
+ sectionEntryPoints(out, entryPoints);
354
+ sectionConfigurationFiles(out, configs);
355
+ sectionPackageScripts(out, scripts);
356
+ sectionStatistics(out, result);
357
+ sectionFolderStructure(out, tree, flatFiles.length, rootName);
358
+ console.log(out.join('\n'));
359
+ }
360
+ //# sourceMappingURL=markdown-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-renderer.js","sourceRoot":"","sources":["../../src/renderers/markdown-renderer.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAI9E;;;;;;;;;;GAUG;AACH,SAAS,aAAa,CAAC,IAAmC,EAAE,MAAc,EAAE,MAAe,EAAE,KAAe,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC;IACnI,IAAI,KAAK,IAAI,QAAQ;QAAE,OAAO;IAE9B,MAAM,SAAS,GAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,QAAQ,GAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,KAAK,GAAQ,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAE3E,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC,CAAC;IAE5C,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QAErC,2EAA2E;QAC3E,IAAI,KAAK,KAAK,QAAQ,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,QAAQ,SAAS,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,aAAa,CACX,QAAQ,CAAC,CAAC,CAAC,EACX,MAAM,GAAG,QAAQ,EACjB,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EACzB,KAAK,EACL,KAAK,GAAG,CAAC,EACT,QAAQ,CACT,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,IAAa,EAAE,QAAgB,EAAE,UAAkB;IAC1E,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEhC,MAAM,KAAK,GAAM,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;;;GAKG;AACH,SAAS,cAAc,CAAC,EAAU;IAChC,IAAI,EAAE,GAAG,CAAC;QAAM,OAAO,QAAQ,CAAC;IAChC,IAAI,EAAE,IAAI,IAAI;QAAE,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;AAChC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,IAAgB;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnE,MAAM,GAAG,GAAI,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,EAAE,GAAK,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;IACjE,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3E,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACzD,OAAO,CAAC,WAAW,CAAC,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,IAAgB;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAEpE,MAAM,IAAI,GAAG,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAK,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IAClE,MAAM,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7E,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,8EAA8E;AAC9E,+DAA+D;AAC/D,8EAA8E;AAE9E,4BAA4B;AAC5B,SAAS,YAAY,CAAC,GAAa;IACjC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,GAAa,EAAE,MAAkB,EAAE,OAAe;IACxE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAErF,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;IACzC,IAAI,cAAc;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC;IACnE,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACpF,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvF,IAAI,WAAW,IAAI,WAAW,CAAC,YAAY;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IACnG,IAAI,WAAW,IAAI,WAAW,CAAC,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1F,IAAI,WAAW,IAAI,WAAW,CAAC,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9F,IAAI,WAAW,IAAI,WAAW,CAAC,eAAe;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;IAE7G,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAEnD,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,GAAa,EAAE,WAAmB;IAC3D,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEjD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAAC,GAAa,EAAE,OAAiB;IACjE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,GAAa,EAAE,OAAqB;IACjE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAClB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;gBACjC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,GAAa,EAAE,cAA+B;IAC3E,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,GAAa,EAAE,MAA2B;IACtE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,IAAI,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;gBAAE,IAAI,GAAG,GAAG,CAAC;iBAC/B,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;gBAAE,IAAI,GAAG,GAAG,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,GAAa,EAAE,WAAqB;IAC9D,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,GAAa,EAAE,IAAa,EAAE,UAAkB,EAAE,QAAgB;IAChG,8DAA8D;IAC9D,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO;IAE7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACzB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEb,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC5D,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,GAAa,EAAE,MAAkB;IAC1D,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAE3D,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QAClB,CAAC,OAAO,EAAU,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,SAAS,EAAQ,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC1C,CAAC,eAAe,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;KAClD,CAAC,CAAC,CAAC;AACN,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM,CAAC,MAAkB,EAAE,OAAO,GAAqB,EAAE;IACvE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAErI,MAAM,GAAG,GAAO,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC;IACrD,MAAM,QAAQ,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAErE,uBAAuB;IACvB,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,YAAY,CAAC,GAAG,CAAC,CAAC;IAClB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,qBAAqB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC3C,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACpC,kBAAkB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACrC,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxC,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACpC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/B,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE9D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ScanResult, CliOptions } from "../types/index.js";
2
+ export declare function scan(targetPath: string, options?: Partial<CliOptions>): ScanResult;