@lakindu_perera/toren 1.0.10 → 1.1.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.
@@ -25,6 +25,7 @@ import { detectPackageManager } from '../detectors/package-manager-detector.js';
25
25
  import { detectImportantFiles } from '../detectors/important-files-detector.js';
26
26
  import { detectProjectInfo } from '../detectors/project-info-detector.js';
27
27
  import { detectHealth } from '../detectors/health-detector.js';
28
+ import { detectTechnologyStack } from '../detectors/technology-stack-detector.js';
28
29
  // ---------------------------------------------------------------------------
29
30
  // Constants
30
31
  // ---------------------------------------------------------------------------
@@ -201,10 +202,11 @@ function walkDirectory(dirPath, rootPath, flatFiles, includeHidden, maxFiles) {
201
202
  /**
202
203
  * Detect the project type by checking for known marker files in `rootPath`.
203
204
  *
204
- * Returns the label of the first matched marker, or `'Unknown'` if none match.
205
+ * Returns both the type label and the parsed `packageManifest` (only populated
206
+ * for Node.js projects) so callers can reuse it without a second disk read.
205
207
  *
206
208
  * @param {string} rootPath - Absolute path to the project root
207
- * @returns {string}
209
+ * @returns {{ projectType: string, packageManifest: object | null }}
208
210
  */
209
211
  function detectProjectType(rootPath) {
210
212
  for (const { marker, label } of PROJECT_TYPE_MARKERS) {
@@ -212,21 +214,22 @@ function detectProjectType(rootPath) {
212
214
  if (fs.existsSync(markerPath)) {
213
215
  // Refine Node.js projects by inspecting package.json dependencies.
214
216
  if (marker === 'package.json') {
215
- return refineNodeProjectType(markerPath);
217
+ const { label: refinedLabel, manifest } = readAndRefineNodeProject(markerPath);
218
+ return { projectType: refinedLabel, packageManifest: manifest };
216
219
  }
217
- return label;
220
+ return { projectType: label, packageManifest: null };
218
221
  }
219
222
  }
220
- return 'Unknown';
223
+ return { projectType: 'Unknown', packageManifest: null };
221
224
  }
222
225
  /**
223
- * Read `package.json` and return a more specific label when React / Next / Vue
224
- * etc. are listed as dependencies.
226
+ * Read and parse `package.json`, returning both the refined project-type label
227
+ * and the raw parsed manifest so callers can reuse it without a second read.
225
228
  *
226
229
  * @param {string} pkgPath - Absolute path to package.json
227
- * @returns {string}
230
+ * @returns {{ label: string, manifest: object | null }}
228
231
  */
229
- function refineNodeProjectType(pkgPath) {
232
+ function readAndRefineNodeProject(pkgPath) {
230
233
  try {
231
234
  const raw = fs.readFileSync(pkgPath, 'utf8');
232
235
  const pkg = JSON.parse(raw);
@@ -235,31 +238,47 @@ function refineNodeProjectType(pkgPath) {
235
238
  ...pkg.devDependencies,
236
239
  ...pkg.peerDependencies,
237
240
  };
241
+ let label = 'Node.js / JavaScript';
238
242
  if (deps['next'])
239
- return 'Next.js';
240
- if (deps['nuxt'] || deps['nuxt3'])
241
- return 'Nuxt.js';
242
- if (deps['react'])
243
- return 'React';
244
- if (deps['vue'])
245
- return 'Vue.js';
246
- if (deps['@angular/core'])
247
- return 'Angular';
248
- if (deps['svelte'])
249
- return 'Svelte';
250
- if (deps['express'])
251
- return 'Node.js / Express';
252
- if (deps['fastify'])
253
- return 'Node.js / Fastify';
254
- if (deps['koa'])
255
- return 'Node.js / Koa';
256
- if (deps['typescript'])
257
- return 'Node.js / TypeScript';
243
+ label = 'Next.js';
244
+ else if (deps['nuxt'] || deps['nuxt3'])
245
+ label = 'Nuxt.js';
246
+ else if (deps['react'])
247
+ label = 'React';
248
+ else if (deps['vue'])
249
+ label = 'Vue.js';
250
+ else if (deps['@angular/core'])
251
+ label = 'Angular';
252
+ else if (deps['svelte'])
253
+ label = 'Svelte';
254
+ else if (deps['express'])
255
+ label = 'Node.js / Express';
256
+ else if (deps['fastify'])
257
+ label = 'Node.js / Fastify';
258
+ else if (deps['koa'])
259
+ label = 'Node.js / Koa';
260
+ else if (deps['typescript'])
261
+ label = 'Node.js / TypeScript';
262
+ return {
263
+ label,
264
+ manifest: {
265
+ dependencies: pkg.dependencies ?? undefined,
266
+ devDependencies: pkg.devDependencies ?? undefined,
267
+ peerDependencies: pkg.peerDependencies ?? undefined,
268
+ },
269
+ };
258
270
  }
259
271
  catch {
260
- // Malformed package.json — fall through.
272
+ // Malformed or unreadable package.json — fall through.
261
273
  }
262
- return 'Node.js / JavaScript';
274
+ return { label: 'Node.js / JavaScript', manifest: null };
275
+ }
276
+ /**
277
+ * @deprecated Use readAndRefineNodeProject instead.
278
+ * Kept for any legacy internal callers; delegates to the new function.
279
+ */
280
+ function refineNodeProjectType(pkgPath) {
281
+ return readAndRefineNodeProject(pkgPath).label;
263
282
  }
264
283
  // ---------------------------------------------------------------------------
265
284
  // Entry Point Heuristics
@@ -510,9 +529,12 @@ export function scan(targetPath, options = {}) {
510
529
  let tree;
511
530
  let projectType = 'Unknown';
512
531
  let totalFolders = 0;
532
+ let packageManifest = null;
513
533
  if (stat.isDirectory()) {
514
534
  tree = walkDirectory(rootPath, rootPath, flatFiles, includeHidden, maxFiles);
515
- projectType = detectProjectType(rootPath);
535
+ const detected = detectProjectType(rootPath);
536
+ projectType = detected.projectType;
537
+ packageManifest = detected.packageManifest;
516
538
  // Count all directory nodes in the tree (excluding root itself).
517
539
  totalFolders = countFolders(tree) - 1;
518
540
  entryPoints = findEntryPoints(projectType, flatFiles, rootPath);
@@ -554,6 +576,16 @@ export function scan(targetPath, options = {}) {
554
576
  throw err;
555
577
  }
556
578
  const scanDurationMs = performance.now() - startTime;
579
+ // Assemble technology stack from the already-collected context.
580
+ // packageManifest is reused from the detectProjectType read — no extra I/O.
581
+ const technologyStack = detectTechnologyStack({
582
+ flatFiles,
583
+ configs,
584
+ scripts,
585
+ packageManager,
586
+ projectType,
587
+ packageManifest,
588
+ });
557
589
  return {
558
590
  rootPath,
559
591
  projectType,
@@ -564,6 +596,7 @@ export function scan(targetPath, options = {}) {
564
596
  importantFiles,
565
597
  projectInfo,
566
598
  health,
599
+ technologyStack,
567
600
  tree,
568
601
  flatFiles,
569
602
  totalFolders,
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/scanner/scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/scanner/scan.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,69 @@ export interface HealthObservation {
45
45
  status: HealthStatus;
46
46
  message: string;
47
47
  }
48
+ /**
49
+ * Broad functional grouping for a detected technology.
50
+ */
51
+ export type TechnologyCategory = "language" | "runtime" | "frontend" | "backend" | "styling" | "database" | "orm" | "testing" | "build" | "quality" | "container" | "deployment" | "package-manager" | "other";
52
+ /**
53
+ * The kind of signal that produced a technology detection.
54
+ *
55
+ * - "dependency" — found in package.json `dependencies`
56
+ * - "devDependency" — found in package.json `devDependencies`
57
+ * - "peerDependency" — found in package.json `peerDependencies`
58
+ * - "config" — a recognised configuration file (e.g. tailwind.config.ts)
59
+ * - "file" — a specific file present in the repository
60
+ * - "directory" — a specific directory present in the repository
61
+ * - "script" — a package.json script command keyword
62
+ * - "manifest" — a non-package.json manifest file (e.g. Dockerfile, go.mod)
63
+ */
64
+ export type TechnologyEvidenceType = "dependency" | "devDependency" | "peerDependency" | "config" | "file" | "directory" | "script" | "manifest";
65
+ /**
66
+ * A single piece of evidence that led to a technology being detected.
67
+ *
68
+ * @example
69
+ * { type: "dependency", value: "next" }
70
+ * { type: "config", value: "tailwind.config.ts" }
71
+ */
72
+ export interface TechnologyEvidence {
73
+ /** The kind of signal that provided evidence. */
74
+ type: TechnologyEvidenceType;
75
+ /** The raw value of the signal (package name, filename, etc.). */
76
+ value: string;
77
+ }
78
+ /**
79
+ * A single detected technology with its category, confidence score,
80
+ * and the evidence that supports the detection.
81
+ *
82
+ * @example
83
+ * {
84
+ * name: "Next.js",
85
+ * category: "frontend",
86
+ * confidence: 1,
87
+ * evidence: [{ type: "dependency", value: "next" }]
88
+ * }
89
+ */
90
+ export interface Technology {
91
+ /** Human-readable technology name (e.g. "Next.js", "Tailwind CSS"). */
92
+ name: string;
93
+ /** Functional grouping used for rendering and filtering. */
94
+ category: TechnologyCategory;
95
+ /**
96
+ * Detection confidence in the range [0, 1].
97
+ * 1 = certain (e.g. direct dependency present).
98
+ * 0 = speculative (e.g. heuristic only).
99
+ */
100
+ confidence: number;
101
+ /** One or more signals that triggered this detection. */
102
+ evidence: TechnologyEvidence[];
103
+ }
104
+ /**
105
+ * The complete technology stack detected for a project.
106
+ * Always present on ScanResult; defaults to `{ technologies: [] }`.
107
+ */
108
+ export interface TechnologyStack {
109
+ technologies: Technology[];
110
+ }
48
111
  export interface ScanResult {
49
112
  rootPath: string;
50
113
  projectType: string;
@@ -59,6 +122,7 @@ export interface ScanResult {
59
122
  importantFiles: ImportantFile[];
60
123
  projectInfo: ProjectInfo;
61
124
  health: HealthObservation[];
125
+ technologyStack: TechnologyStack;
62
126
  }
63
127
  export type OutputFormat = "console" | "json" | "markdown" | "html";
64
128
  export interface CliOptions {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lakindu_perera/toren",
3
- "version": "1.0.10",
3
+ "version": "1.1.0",
4
4
  "description": "A powerful codebase scanner CLI tool for project analysis, framework detection, and understanding repository structure instantly.",
5
5
  "type": "module",
6
6
  "bin": {