@buoy-design/cli 0.1.0 → 0.1.2

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 (146) hide show
  1. package/dist/commands/audit.d.ts +3 -0
  2. package/dist/commands/audit.d.ts.map +1 -0
  3. package/dist/commands/audit.js +235 -0
  4. package/dist/commands/audit.js.map +1 -0
  5. package/dist/commands/baseline.d.ts +39 -0
  6. package/dist/commands/baseline.d.ts.map +1 -0
  7. package/dist/commands/baseline.js +298 -0
  8. package/dist/commands/baseline.js.map +1 -0
  9. package/dist/commands/check.d.ts +16 -0
  10. package/dist/commands/check.d.ts.map +1 -0
  11. package/dist/commands/check.js +168 -0
  12. package/dist/commands/check.js.map +1 -0
  13. package/dist/commands/ci.d.ts +2 -2
  14. package/dist/commands/ci.d.ts.map +1 -1
  15. package/dist/commands/ci.js +124 -142
  16. package/dist/commands/ci.js.map +1 -1
  17. package/dist/commands/compare.d.ts +3 -0
  18. package/dist/commands/compare.d.ts.map +1 -0
  19. package/dist/commands/compare.js +170 -0
  20. package/dist/commands/compare.js.map +1 -0
  21. package/dist/commands/drift.d.ts +1 -1
  22. package/dist/commands/drift.d.ts.map +1 -1
  23. package/dist/commands/drift.js +79 -121
  24. package/dist/commands/drift.js.map +1 -1
  25. package/dist/commands/explain.d.ts +3 -0
  26. package/dist/commands/explain.d.ts.map +1 -0
  27. package/dist/commands/explain.js +212 -0
  28. package/dist/commands/explain.js.map +1 -0
  29. package/dist/commands/graph.d.ts +3 -0
  30. package/dist/commands/graph.d.ts.map +1 -0
  31. package/dist/commands/graph.js +430 -0
  32. package/dist/commands/graph.js.map +1 -0
  33. package/dist/commands/index.d.ts +14 -8
  34. package/dist/commands/index.d.ts.map +1 -1
  35. package/dist/commands/index.js +14 -8
  36. package/dist/commands/index.js.map +1 -1
  37. package/dist/commands/init.d.ts +1 -1
  38. package/dist/commands/init.d.ts.map +1 -1
  39. package/dist/commands/init.js +404 -237
  40. package/dist/commands/init.js.map +1 -1
  41. package/dist/commands/plugins.d.ts.map +1 -1
  42. package/dist/commands/plugins.js +32 -41
  43. package/dist/commands/plugins.js.map +1 -1
  44. package/dist/commands/scan.d.ts +1 -1
  45. package/dist/commands/scan.d.ts.map +1 -1
  46. package/dist/commands/scan.js +107 -219
  47. package/dist/commands/scan.js.map +1 -1
  48. package/dist/commands/status.d.ts +1 -1
  49. package/dist/commands/status.d.ts.map +1 -1
  50. package/dist/commands/status.js +114 -122
  51. package/dist/commands/status.js.map +1 -1
  52. package/dist/commands/tokens.d.ts +3 -0
  53. package/dist/commands/tokens.d.ts.map +1 -0
  54. package/dist/commands/tokens.js +261 -0
  55. package/dist/commands/tokens.js.map +1 -0
  56. package/dist/config/auto-detect.d.ts +21 -0
  57. package/dist/config/auto-detect.d.ts.map +1 -0
  58. package/dist/config/auto-detect.js +278 -0
  59. package/dist/config/auto-detect.js.map +1 -0
  60. package/dist/config/loader.d.ts.map +1 -1
  61. package/dist/config/loader.js +17 -0
  62. package/dist/config/loader.js.map +1 -1
  63. package/dist/config/schema.d.ts +63 -63
  64. package/dist/config/schema.d.ts.map +1 -1
  65. package/dist/config/schema.js +20 -2
  66. package/dist/config/schema.js.map +1 -1
  67. package/dist/constants.d.ts +36 -0
  68. package/dist/constants.d.ts.map +1 -0
  69. package/dist/constants.js +37 -0
  70. package/dist/constants.js.map +1 -0
  71. package/dist/detect/frameworks.d.ts +11 -2
  72. package/dist/detect/frameworks.d.ts.map +1 -1
  73. package/dist/detect/frameworks.js +78 -78
  74. package/dist/detect/frameworks.js.map +1 -1
  75. package/dist/detect/index.d.ts +1 -0
  76. package/dist/detect/index.d.ts.map +1 -1
  77. package/dist/detect/index.js +3 -0
  78. package/dist/detect/index.js.map +1 -1
  79. package/dist/detect/monorepo-patterns.d.ts +54 -0
  80. package/dist/detect/monorepo-patterns.d.ts.map +1 -0
  81. package/dist/detect/monorepo-patterns.js +209 -0
  82. package/dist/detect/monorepo-patterns.js.map +1 -0
  83. package/dist/detect/project-detector.d.ts +1 -1
  84. package/dist/detect/project-detector.d.ts.map +1 -1
  85. package/dist/detect/project-detector.js +132 -0
  86. package/dist/detect/project-detector.js.map +1 -1
  87. package/dist/explain/agents.d.ts +31 -0
  88. package/dist/explain/agents.d.ts.map +1 -0
  89. package/dist/explain/agents.js +507 -0
  90. package/dist/explain/agents.js.map +1 -0
  91. package/dist/hooks/index.d.ts +26 -0
  92. package/dist/hooks/index.d.ts.map +1 -0
  93. package/dist/hooks/index.js +283 -0
  94. package/dist/hooks/index.js.map +1 -0
  95. package/dist/index.d.ts +3 -3
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +13 -7
  98. package/dist/index.js.map +1 -1
  99. package/dist/integrations/github-formatter.d.ts +55 -0
  100. package/dist/integrations/github-formatter.d.ts.map +1 -0
  101. package/dist/integrations/github-formatter.js +391 -0
  102. package/dist/integrations/github-formatter.js.map +1 -0
  103. package/dist/integrations/github.d.ts +95 -0
  104. package/dist/integrations/github.d.ts.map +1 -0
  105. package/dist/integrations/github.js +281 -0
  106. package/dist/integrations/github.js.map +1 -0
  107. package/dist/integrations/index.d.ts +4 -0
  108. package/dist/integrations/index.d.ts.map +1 -0
  109. package/dist/integrations/index.js +4 -0
  110. package/dist/integrations/index.js.map +1 -0
  111. package/dist/output/formatters.d.ts.map +1 -1
  112. package/dist/output/formatters.js +5 -10
  113. package/dist/output/formatters.js.map +1 -1
  114. package/dist/scan/orchestrator.d.ts +76 -0
  115. package/dist/scan/orchestrator.d.ts.map +1 -0
  116. package/dist/scan/orchestrator.js +247 -0
  117. package/dist/scan/orchestrator.js.map +1 -0
  118. package/dist/services/ai-analysis.d.ts +54 -0
  119. package/dist/services/ai-analysis.d.ts.map +1 -0
  120. package/dist/services/ai-analysis.js +239 -0
  121. package/dist/services/ai-analysis.js.map +1 -0
  122. package/dist/services/drift-analysis.d.ts +77 -0
  123. package/dist/services/drift-analysis.d.ts.map +1 -0
  124. package/dist/services/drift-analysis.js +145 -0
  125. package/dist/services/drift-analysis.js.map +1 -0
  126. package/package.json +17 -5
  127. package/dist/commands/__tests__/ci.test.d.ts +0 -2
  128. package/dist/commands/__tests__/ci.test.d.ts.map +0 -1
  129. package/dist/commands/__tests__/ci.test.js +0 -33
  130. package/dist/commands/__tests__/ci.test.js.map +0 -1
  131. package/dist/commands/bootstrap.d.ts +0 -3
  132. package/dist/commands/bootstrap.d.ts.map +0 -1
  133. package/dist/commands/bootstrap.js +0 -458
  134. package/dist/commands/bootstrap.js.map +0 -1
  135. package/dist/plugins/index.d.ts +0 -3
  136. package/dist/plugins/index.d.ts.map +0 -1
  137. package/dist/plugins/index.js +0 -3
  138. package/dist/plugins/index.js.map +0 -1
  139. package/dist/plugins/loader.d.ts +0 -11
  140. package/dist/plugins/loader.d.ts.map +0 -1
  141. package/dist/plugins/loader.js +0 -77
  142. package/dist/plugins/loader.js.map +0 -1
  143. package/dist/plugins/registry.d.ts +0 -15
  144. package/dist/plugins/registry.d.ts.map +0 -1
  145. package/dist/plugins/registry.js +0 -32
  146. package/dist/plugins/registry.js.map +0 -1
@@ -2,103 +2,100 @@ import { resolve } from 'node:path';
2
2
  import { existsSync } from 'node:fs';
3
3
  import { readFile } from 'node:fs/promises';
4
4
  import { glob } from 'glob';
5
+ // Built-in scanners - no plugins needed for these
6
+ export const BUILTIN_SCANNERS = {
7
+ react: { description: 'React/JSX component scanning', detects: 'React components' },
8
+ vue: { description: 'Vue SFC scanning', detects: 'Vue components' },
9
+ svelte: { description: 'Svelte component scanning', detects: 'Svelte components' },
10
+ angular: { description: 'Angular component scanning', detects: 'Angular components' },
11
+ webcomponents: { description: 'Lit/Stencil scanning', detects: 'Web Components' },
12
+ tokens: { description: 'CSS/SCSS/JSON token scanning', detects: 'Design tokens' },
13
+ templates: { description: 'Template scanning (Blade, ERB, Twig)', detects: 'Server templates' },
14
+ tailwind: { description: 'Tailwind config & arbitrary value detection', detects: 'Tailwind CSS' },
15
+ };
16
+ // These require external configuration or APIs (future)
5
17
  export const PLUGIN_INFO = {
6
- react: {
7
- name: '@buoy-design/plugin-react',
8
- description: 'Scans React/JSX components for inline styles, deprecated components, and design system inconsistencies.',
9
- detects: 'React components',
10
- examples: ['Hardcoded colors in style props', 'Deprecated component usage', 'Missing design tokens'],
11
- },
12
- vue: {
13
- name: '@buoy-design/plugin-vue',
14
- description: 'Scans Vue single-file components for hardcoded styles and design drift.',
15
- detects: 'Vue components',
16
- examples: ['Inline styles in <style> blocks', 'Hardcoded values in templates'],
17
- },
18
- svelte: {
19
- name: '@buoy-design/plugin-svelte',
20
- description: 'Scans Svelte components for hardcoded styles and design inconsistencies.',
21
- detects: 'Svelte components',
22
- examples: ['Hardcoded CSS values', 'Inline style attributes'],
23
- },
24
- angular: {
25
- name: '@buoy-design/plugin-angular',
26
- description: 'Scans Angular components for hardcoded styles in templates and component styles.',
27
- detects: 'Angular components',
28
- examples: ['Inline styles', 'Hardcoded values in .component.css'],
29
- },
30
- webcomponents: {
31
- name: '@buoy-design/plugin-webcomponents',
32
- description: 'Scans Lit/Stencil web components for hardcoded styles and design drift.',
33
- detects: 'Web Components (Lit, Stencil)',
34
- examples: ['Hardcoded CSS in shadow DOM', 'Static style values'],
35
- },
36
- css: {
37
- name: '@buoy-design/plugin-css',
38
- description: 'Scans CSS for hardcoded colors, spacing, and fonts that should use design tokens.',
39
- detects: 'CSS files with potential design tokens',
40
- examples: ['#ff6b6b instead of var(--color-error)', '16px instead of var(--spacing-md)'],
41
- },
42
- tailwind: {
43
- name: '@buoy-design/plugin-tailwind',
44
- description: 'Analyzes Tailwind config and usage for design token consistency.',
45
- detects: 'Tailwind CSS configuration',
46
- examples: ['Custom colors not in design system', 'Arbitrary values like [#ff6b6b]'],
47
- },
48
18
  figma: {
49
19
  name: '@buoy-design/plugin-figma',
50
- description: 'Connects to Figma to compare design tokens and components with your codebase.',
20
+ description: 'Connects to Figma to compare design tokens with your codebase.',
51
21
  detects: 'Figma configuration',
52
22
  examples: ['Token value drift between Figma and code', 'Missing component implementations'],
53
23
  },
54
24
  storybook: {
55
25
  name: '@buoy-design/plugin-storybook',
56
- description: 'Scans Storybook stories to verify component coverage and documentation.',
26
+ description: 'Scans Storybook stories to verify component coverage.',
57
27
  detects: 'Storybook configuration',
58
28
  examples: ['Components without stories', 'Undocumented variants'],
59
29
  },
60
30
  };
31
+ // Framework detection patterns
32
+ // scanner = built-in (no install needed), plugin = optional enhancement
61
33
  const FRAMEWORK_PATTERNS = [
62
- // React ecosystem
63
- { name: 'react', plugin: 'react', packages: ['react', 'react-dom'] },
64
- { name: 'next', plugin: 'react', packages: ['next'] },
65
- { name: 'remix', plugin: 'react', packages: ['@remix-run/react'] },
66
- { name: 'gatsby', plugin: 'react', packages: ['gatsby'] },
67
- // Vue ecosystem
68
- { name: 'vue', plugin: 'vue', packages: ['vue'] },
69
- { name: 'nuxt', plugin: 'vue', packages: ['nuxt', 'nuxt3'] },
70
- // Svelte ecosystem
71
- { name: 'svelte', plugin: 'svelte', packages: ['svelte'] },
72
- { name: 'sveltekit', plugin: 'svelte', packages: ['@sveltejs/kit'] },
73
- // Angular
74
- { name: 'angular', plugin: 'angular', packages: ['@angular/core'] },
75
- // Web Components
76
- { name: 'lit', plugin: 'webcomponents', packages: ['lit', 'lit-element'] },
77
- { name: 'stencil', plugin: 'webcomponents', packages: ['@stencil/core'] },
78
- // CSS/Tokens
79
- { name: 'tailwind', plugin: 'tailwind', packages: ['tailwindcss'], files: ['tailwind.config.*'] },
80
- { name: 'css-variables', plugin: 'css', files: ['**/*.css'] },
81
- // Design tools
34
+ // React ecosystem - built-in scanner
35
+ { name: 'react', scanner: 'react', packages: ['react', 'react-dom'] },
36
+ { name: 'next', scanner: 'react', packages: ['next'] },
37
+ { name: 'remix', scanner: 'react', packages: ['@remix-run/react'] },
38
+ { name: 'gatsby', scanner: 'react', packages: ['gatsby'] },
39
+ // Vue ecosystem - built-in scanner
40
+ { name: 'vue', scanner: 'vue', packages: ['vue'] },
41
+ { name: 'nuxt', scanner: 'vue', packages: ['nuxt', 'nuxt3'] },
42
+ // Svelte ecosystem - built-in scanner
43
+ { name: 'svelte', scanner: 'svelte', packages: ['svelte'] },
44
+ { name: 'sveltekit', scanner: 'svelte', packages: ['@sveltejs/kit'] },
45
+ // Angular - built-in scanner
46
+ { name: 'angular', scanner: 'angular', packages: ['@angular/core'] },
47
+ // Web Components - built-in scanner
48
+ { name: 'lit', scanner: 'webcomponents', packages: ['lit', 'lit-element'] },
49
+ { name: 'stencil', scanner: 'webcomponents', packages: ['@stencil/core'] },
50
+ // CSS/Tokens - built-in
51
+ { name: 'tailwind', scanner: 'tailwind', packages: ['tailwindcss'], files: ['tailwind.config.*'] },
52
+ // Design tools - require plugins
82
53
  { name: 'figma', plugin: 'figma', files: ['.figmarc', 'figma.config.*'] },
83
54
  { name: 'storybook', plugin: 'storybook', packages: ['@storybook/react', '@storybook/vue3', '@storybook/svelte'], files: ['.storybook/**'] },
84
55
  ];
85
- export async function detectFrameworks(projectRoot) {
56
+ export async function detectFrameworks(projectRoot, monorepoInfo) {
86
57
  const detected = [];
87
- // Read package.json
58
+ // Collect all dependency names from root and workspace packages
59
+ const allDeps = {};
60
+ // Read root package.json
88
61
  const pkgPath = resolve(projectRoot, 'package.json');
89
- let pkgJson = {};
90
62
  if (existsSync(pkgPath)) {
91
63
  try {
92
- pkgJson = JSON.parse(await readFile(pkgPath, 'utf-8'));
64
+ const pkgJson = JSON.parse(await readFile(pkgPath, 'utf-8'));
65
+ Object.assign(allDeps, pkgJson.dependencies, pkgJson.devDependencies);
93
66
  }
94
67
  catch {
95
- // Invalid JSON, continue with empty dependencies
68
+ // Invalid JSON, continue
69
+ }
70
+ }
71
+ // If monorepo, also check workspace package.json files
72
+ if (monorepoInfo && monorepoInfo.patterns.length > 0) {
73
+ for (const wsPattern of monorepoInfo.patterns) {
74
+ // Convert workspace pattern to package.json glob
75
+ // e.g., "apps/*" -> "apps/*/package.json"
76
+ // e.g., "packages/**/*" -> "packages/**/*/package.json"
77
+ const normalizedPattern = wsPattern.replace(/\/?$/, '');
78
+ const pkgPattern = normalizedPattern.endsWith('*')
79
+ ? `${normalizedPattern}/package.json`
80
+ : `${normalizedPattern}/*/package.json`;
81
+ try {
82
+ const matches = await glob(pkgPattern, { cwd: projectRoot, nodir: true });
83
+ for (const match of matches.slice(0, 20)) { // Limit to 20 packages
84
+ try {
85
+ const wsPkgPath = resolve(projectRoot, match);
86
+ const wsPkgJson = JSON.parse(await readFile(wsPkgPath, 'utf-8'));
87
+ Object.assign(allDeps, wsPkgJson.dependencies, wsPkgJson.devDependencies);
88
+ }
89
+ catch {
90
+ // Invalid JSON, skip this package
91
+ }
92
+ }
93
+ }
94
+ catch {
95
+ // Glob failed, continue
96
+ }
96
97
  }
97
98
  }
98
- const allDeps = {
99
- ...pkgJson.dependencies,
100
- ...pkgJson.devDependencies,
101
- };
102
99
  const depNames = Object.keys(allDeps);
103
100
  for (const pattern of FRAMEWORK_PATTERNS) {
104
101
  // Check package.json dependencies
@@ -107,6 +104,7 @@ export async function detectFrameworks(projectRoot) {
107
104
  if (matchedPkg) {
108
105
  detected.push({
109
106
  name: pattern.name,
107
+ scanner: pattern.scanner,
110
108
  plugin: pattern.plugin,
111
109
  confidence: 'high',
112
110
  evidence: `Found "${matchedPkg}" in package.json`,
@@ -121,6 +119,7 @@ export async function detectFrameworks(projectRoot) {
121
119
  if (matches.length > 0) {
122
120
  detected.push({
123
121
  name: pattern.name,
122
+ scanner: pattern.scanner,
124
123
  plugin: pattern.plugin,
125
124
  confidence: pattern.packages ? 'medium' : 'high',
126
125
  evidence: `Found ${matches[0]}`,
@@ -131,15 +130,16 @@ export async function detectFrameworks(projectRoot) {
131
130
  }
132
131
  }
133
132
  }
134
- // Deduplicate by plugin name, keeping highest confidence
135
- const byPlugin = new Map();
133
+ // Deduplicate by scanner or plugin name, keeping highest confidence
134
+ const byKey = new Map();
136
135
  for (const d of detected) {
137
- const existing = byPlugin.get(d.plugin);
136
+ const key = d.scanner || d.plugin || d.name;
137
+ const existing = byKey.get(key);
138
138
  if (!existing || confidenceRank(d.confidence) > confidenceRank(existing.confidence)) {
139
- byPlugin.set(d.plugin, d);
139
+ byKey.set(key, d);
140
140
  }
141
141
  }
142
- return Array.from(byPlugin.values());
142
+ return Array.from(byKey.values());
143
143
  }
144
144
  function confidenceRank(c) {
145
145
  return c === 'high' ? 3 : c === 'medium' ? 2 : 1;
@@ -1 +1 @@
1
- {"version":3,"file":"frameworks.js","sourceRoot":"","sources":["../../src/detect/frameworks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAiB5B,MAAM,CAAC,MAAM,WAAW,GAA+B;IACrD,KAAK,EAAE;QACL,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,yGAAyG;QACtH,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,CAAC,iCAAiC,EAAE,4BAA4B,EAAE,uBAAuB,CAAC;KACrG;IACD,GAAG,EAAE;QACH,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,yEAAyE;QACtF,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,CAAC,iCAAiC,EAAE,+BAA+B,CAAC;KAC/E;IACD,MAAM,EAAE;QACN,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,0EAA0E;QACvF,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,CAAC,sBAAsB,EAAE,yBAAyB,CAAC;KAC9D;IACD,OAAO,EAAE;QACP,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,kFAAkF;QAC/F,OAAO,EAAE,oBAAoB;QAC7B,QAAQ,EAAE,CAAC,eAAe,EAAE,oCAAoC,CAAC;KAClE;IACD,aAAa,EAAE;QACb,IAAI,EAAE,mCAAmC;QACzC,WAAW,EAAE,yEAAyE;QACtF,OAAO,EAAE,+BAA+B;QACxC,QAAQ,EAAE,CAAC,6BAA6B,EAAE,qBAAqB,CAAC;KACjE;IACD,GAAG,EAAE;QACH,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,mFAAmF;QAChG,OAAO,EAAE,wCAAwC;QACjD,QAAQ,EAAE,CAAC,uCAAuC,EAAE,mCAAmC,CAAC;KACzF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,kEAAkE;QAC/E,OAAO,EAAE,4BAA4B;QACrC,QAAQ,EAAE,CAAC,oCAAoC,EAAE,iCAAiC,CAAC;KACpF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,+EAA+E;QAC5F,OAAO,EAAE,qBAAqB;QAC9B,QAAQ,EAAE,CAAC,0CAA0C,EAAE,mCAAmC,CAAC;KAC5F;IACD,SAAS,EAAE;QACT,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,yEAAyE;QACtF,OAAO,EAAE,yBAAyB;QAClC,QAAQ,EAAE,CAAC,4BAA4B,EAAE,uBAAuB,CAAC;KAClE;CACF,CAAC;AAOF,MAAM,kBAAkB,GAKnB;IACH,kBAAkB;IAClB,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE;IACpE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;IACrD,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE;IAClE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE;IAEzD,gBAAgB;IAChB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE;IACjD,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAE5D,mBAAmB;IACnB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE;IAC1D,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE;IAEpE,UAAU;IACV,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE;IAEnE,iBAAiB;IACjB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE;IAC1E,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE;IAEzE,aAAa;IACb,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,mBAAmB,CAAC,EAAE;IACjG,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE;IAE7D,eAAe;IACf,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAAE;IACzE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,EAAE,KAAK,EAAE,CAAC,eAAe,CAAC,EAAE;CAC7I,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAmB;IACxD,MAAM,QAAQ,GAAwB,EAAE,CAAC;IAEzC,oBAAoB;IACpB,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACrD,IAAI,OAAO,GAAgB,EAAE,CAAC;IAE9B,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;QACnD,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG;QACd,GAAG,OAAO,CAAC,YAAY;QACvB,GAAG,OAAO,CAAC,eAAe;KAC3B,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEtC,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACzC,kCAAkC;QAClC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1E,IAAI,UAAU,EAAE,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,UAAU,EAAE,MAAM;oBAClB,QAAQ,EAAE,UAAU,UAAU,mBAAmB;iBAClD,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,KAAK,MAAM,WAAW,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACxC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;wBAChD,QAAQ,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC/B,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,iCAAiC;qBACtE,CAAC,CAAC;oBACH,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACpF,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,cAAc,CAAC,CAA4B;IAClD,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IACtE,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAiB,EAAE,cAAsB,OAAO,CAAC,GAAG,EAAE;IAC5F,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IACjE,MAAM,EAAE,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAE7C,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,MAAM;YACT,OAAO,eAAe,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,KAAK,MAAM;YACT,OAAO,eAAe,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C;YACE,OAAO,0BAA0B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"frameworks.js","sourceRoot":"","sources":["../../src/detect/frameworks.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export { detectMonorepoConfig, expandPatternsForMonorepo, getIncludePatternsForFramework, isMonorepo, getMonorepoDescription, type MonorepoConfig, type ExpandedPatterns, } from './monorepo-patterns.js';
1
2
  export { ProjectDetector, getDetectionSummary, type DetectedProject, type FrameworkInfo, type ComponentLocation, type TokenLocation, type StorybookInfo, type DesignSystemInfo, type MonorepoInfo, } from './project-detector.js';
2
3
  export * from './frameworks.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/detect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAE/B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/detect/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,8BAA8B,EAC9B,UAAU,EACV,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAE/B,cAAc,iBAAiB,CAAC"}
@@ -1,3 +1,6 @@
1
+ // Export monorepo patterns first (no dependencies)
2
+ export { detectMonorepoConfig, expandPatternsForMonorepo, getIncludePatternsForFramework, isMonorepo, getMonorepoDescription, } from './monorepo-patterns.js';
3
+ // Then project detector (depends on monorepo-patterns)
1
4
  export { ProjectDetector, getDetectionSummary, } from './project-detector.js';
2
5
  export * from './frameworks.js';
3
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/detect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,mBAAmB,GAQpB,MAAM,uBAAuB,CAAC;AAE/B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/detect/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,8BAA8B,EAC9B,UAAU,EACV,sBAAsB,GAGvB,MAAM,wBAAwB,CAAC;AAEhC,uDAAuD;AACvD,OAAO,EACL,eAAe,EACf,mBAAmB,GAQpB,MAAM,uBAAuB,CAAC;AAE/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Monorepo pattern detection and expansion
3
+ *
4
+ * Handles automatic pattern expansion for popular monorepo structures:
5
+ * - pnpm workspaces (pnpm-workspace.yaml)
6
+ * - yarn/npm workspaces (package.json workspaces)
7
+ * - Lerna (lerna.json)
8
+ * - Nx workspaces (nx.json with apps/libs structure)
9
+ * - Turborepo (turbo.json)
10
+ */
11
+ export interface MonorepoConfig {
12
+ type: 'pnpm' | 'yarn' | 'npm' | 'lerna' | 'nx' | 'turborepo' | null;
13
+ workspacePatterns: string[];
14
+ }
15
+ export interface ExpandedPatterns {
16
+ /** Original patterns (for single-package projects) */
17
+ basePatterns: string[];
18
+ /** Expanded patterns for monorepo structures */
19
+ monorepoPatterns: string[];
20
+ /** Combined patterns (base + monorepo) */
21
+ allPatterns: string[];
22
+ }
23
+ /**
24
+ * Detect monorepo configuration from project root
25
+ */
26
+ export declare function detectMonorepoConfig(projectRoot: string): MonorepoConfig;
27
+ /**
28
+ * Expand file patterns for monorepo structures
29
+ *
30
+ * Given base patterns like ['src/**\/*.tsx'], this function expands them
31
+ * to include monorepo package locations like ['packages/*\/src/**\/*.tsx']
32
+ *
33
+ * @param basePatterns - Original file patterns (e.g., ['src/**\/*.tsx'])
34
+ * @param monorepoConfig - Detected monorepo configuration
35
+ * @returns Expanded patterns for the monorepo structure
36
+ */
37
+ export declare function expandPatternsForMonorepo(basePatterns: string[], monorepoConfig: MonorepoConfig): ExpandedPatterns;
38
+ /**
39
+ * Get default include patterns for a framework, expanded for monorepo if detected
40
+ *
41
+ * @param framework - Framework name (react, vue, svelte, angular)
42
+ * @param projectRoot - Project root directory
43
+ * @returns Include patterns appropriate for the project structure
44
+ */
45
+ export declare function getIncludePatternsForFramework(framework: 'react' | 'vue' | 'svelte' | 'angular' | 'webcomponent', projectRoot: string): string[];
46
+ /**
47
+ * Check if a project is a monorepo
48
+ */
49
+ export declare function isMonorepo(projectRoot: string): boolean;
50
+ /**
51
+ * Get human-readable monorepo type description
52
+ */
53
+ export declare function getMonorepoDescription(config: MonorepoConfig): string;
54
+ //# sourceMappingURL=monorepo-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monorepo-patterns.d.ts","sourceRoot":"","sources":["../../src/detect/monorepo-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAAC;IACpE,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,0CAA0C;IAC1C,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAKD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAuDxE;AA6BD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EAAE,EACtB,cAAc,EAAE,cAAc,GAC7B,gBAAgB,CA4DlB;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,EAClE,WAAW,EAAE,MAAM,GAClB,MAAM,EAAE,CAmBV;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAarE"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Monorepo pattern detection and expansion
3
+ *
4
+ * Handles automatic pattern expansion for popular monorepo structures:
5
+ * - pnpm workspaces (pnpm-workspace.yaml)
6
+ * - yarn/npm workspaces (package.json workspaces)
7
+ * - Lerna (lerna.json)
8
+ * - Nx workspaces (nx.json with apps/libs structure)
9
+ * - Turborepo (turbo.json)
10
+ */
11
+ import { existsSync, readFileSync } from 'fs';
12
+ import { resolve } from 'path';
13
+ import { parse as parseYaml } from 'yaml';
14
+ // Note: These patterns are used in project-detector.ts for scanning monorepo directories
15
+ // The actual patterns are defined inline there for better maintainability
16
+ /**
17
+ * Detect monorepo configuration from project root
18
+ */
19
+ export function detectMonorepoConfig(projectRoot) {
20
+ // Check for pnpm workspaces
21
+ const pnpmWorkspacePath = resolve(projectRoot, 'pnpm-workspace.yaml');
22
+ if (existsSync(pnpmWorkspacePath)) {
23
+ const patterns = parsePnpmWorkspaces(pnpmWorkspacePath);
24
+ return { type: 'pnpm', workspacePatterns: patterns };
25
+ }
26
+ // Check for lerna.json
27
+ const lernaPath = resolve(projectRoot, 'lerna.json');
28
+ if (existsSync(lernaPath)) {
29
+ const patterns = parseLernaConfig(lernaPath);
30
+ return { type: 'lerna', workspacePatterns: patterns };
31
+ }
32
+ // Check for nx.json
33
+ const nxPath = resolve(projectRoot, 'nx.json');
34
+ if (existsSync(nxPath)) {
35
+ // Nx typically uses apps/ and libs/ structure
36
+ return { type: 'nx', workspacePatterns: ['apps/*', 'libs/*', 'packages/*'] };
37
+ }
38
+ // Check for turbo.json
39
+ const turboPath = resolve(projectRoot, 'turbo.json');
40
+ if (existsSync(turboPath)) {
41
+ // Turborepo uses package.json workspaces or pnpm-workspace.yaml
42
+ // Fall through to check package.json
43
+ }
44
+ // Check for package.json workspaces (yarn/npm)
45
+ const pkgPath = resolve(projectRoot, 'package.json');
46
+ if (existsSync(pkgPath)) {
47
+ try {
48
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
49
+ const workspaces = pkg.workspaces;
50
+ if (workspaces) {
51
+ // Handle both array and object format
52
+ const patterns = Array.isArray(workspaces)
53
+ ? workspaces
54
+ : (workspaces.packages || []);
55
+ if (patterns.length > 0) {
56
+ // Determine if it's turborepo with npm/yarn workspaces
57
+ const type = existsSync(turboPath) ? 'turborepo' :
58
+ existsSync(resolve(projectRoot, 'yarn.lock')) ? 'yarn' : 'npm';
59
+ return { type, workspacePatterns: patterns };
60
+ }
61
+ }
62
+ }
63
+ catch {
64
+ // Invalid JSON, continue
65
+ }
66
+ }
67
+ return { type: null, workspacePatterns: [] };
68
+ }
69
+ /**
70
+ * Parse pnpm-workspace.yaml to get workspace patterns
71
+ */
72
+ function parsePnpmWorkspaces(filePath) {
73
+ try {
74
+ const content = readFileSync(filePath, 'utf-8');
75
+ const config = parseYaml(content);
76
+ return config?.packages || [];
77
+ }
78
+ catch {
79
+ // Default pnpm patterns
80
+ return ['packages/*'];
81
+ }
82
+ }
83
+ /**
84
+ * Parse lerna.json to get workspace patterns
85
+ */
86
+ function parseLernaConfig(filePath) {
87
+ try {
88
+ const content = readFileSync(filePath, 'utf-8');
89
+ const config = JSON.parse(content);
90
+ return config?.packages || ['packages/*'];
91
+ }
92
+ catch {
93
+ return ['packages/*'];
94
+ }
95
+ }
96
+ /**
97
+ * Expand file patterns for monorepo structures
98
+ *
99
+ * Given base patterns like ['src/**\/*.tsx'], this function expands them
100
+ * to include monorepo package locations like ['packages/*\/src/**\/*.tsx']
101
+ *
102
+ * @param basePatterns - Original file patterns (e.g., ['src/**\/*.tsx'])
103
+ * @param monorepoConfig - Detected monorepo configuration
104
+ * @returns Expanded patterns for the monorepo structure
105
+ */
106
+ export function expandPatternsForMonorepo(basePatterns, monorepoConfig) {
107
+ if (!monorepoConfig.type || monorepoConfig.workspacePatterns.length === 0) {
108
+ return {
109
+ basePatterns,
110
+ monorepoPatterns: [],
111
+ allPatterns: basePatterns,
112
+ };
113
+ }
114
+ const monorepoPatterns = [];
115
+ for (const workspacePattern of monorepoConfig.workspacePatterns) {
116
+ // Convert workspace patterns like 'packages/*' to component patterns
117
+ // Remove trailing /* if present for cleaner paths
118
+ const baseWorkspace = workspacePattern.replace(/\/\*+$/, '');
119
+ for (const basePattern of basePatterns) {
120
+ // Handle patterns that start with 'src/'
121
+ if (basePattern.startsWith('src/')) {
122
+ // packages/* + src/**/*.tsx -> packages/*/src/**/*.tsx
123
+ monorepoPatterns.push(`${baseWorkspace}/*/${basePattern}`);
124
+ // Also check for scoped packages: packages/@scope/*/src/**/*.tsx
125
+ if (baseWorkspace === 'packages') {
126
+ monorepoPatterns.push(`packages/@*/*/${basePattern}`);
127
+ }
128
+ }
129
+ else {
130
+ // For patterns not starting with src/, add them under workspace packages
131
+ // **/*.tsx -> packages/*/src/**/*.tsx
132
+ monorepoPatterns.push(`${baseWorkspace}/*/src/${basePattern}`);
133
+ if (baseWorkspace === 'packages') {
134
+ monorepoPatterns.push(`packages/@*/*/src/${basePattern}`);
135
+ }
136
+ }
137
+ }
138
+ }
139
+ // Add standard monorepo paths that might not be in workspace config
140
+ // but are commonly used (e.g., apps/ for Nx)
141
+ const additionalPatterns = [];
142
+ if (monorepoConfig.type === 'nx' || monorepoConfig.type === 'turborepo') {
143
+ for (const basePattern of basePatterns) {
144
+ if (basePattern.startsWith('src/')) {
145
+ additionalPatterns.push(`apps/*/${basePattern}`);
146
+ additionalPatterns.push(`libs/*/${basePattern}`);
147
+ }
148
+ else {
149
+ additionalPatterns.push(`apps/*/src/${basePattern}`);
150
+ additionalPatterns.push(`libs/*/src/${basePattern}`);
151
+ }
152
+ }
153
+ }
154
+ // Combine and deduplicate
155
+ const allMonorepoPatterns = Array.from(new Set([...monorepoPatterns, ...additionalPatterns]));
156
+ return {
157
+ basePatterns,
158
+ monorepoPatterns: allMonorepoPatterns,
159
+ allPatterns: Array.from(new Set([...basePatterns, ...allMonorepoPatterns])),
160
+ };
161
+ }
162
+ /**
163
+ * Get default include patterns for a framework, expanded for monorepo if detected
164
+ *
165
+ * @param framework - Framework name (react, vue, svelte, angular)
166
+ * @param projectRoot - Project root directory
167
+ * @returns Include patterns appropriate for the project structure
168
+ */
169
+ export function getIncludePatternsForFramework(framework, projectRoot) {
170
+ // Base patterns by framework
171
+ const basePatterns = {
172
+ react: ['src/**/*.tsx', 'src/**/*.jsx'],
173
+ vue: ['src/**/*.vue'],
174
+ svelte: ['src/**/*.svelte'],
175
+ angular: ['src/**/*.component.ts'],
176
+ webcomponent: ['src/**/*.ts'],
177
+ };
178
+ const patterns = basePatterns[framework] || ['src/**/*.tsx'];
179
+ const monorepoConfig = detectMonorepoConfig(projectRoot);
180
+ if (!monorepoConfig.type) {
181
+ return patterns;
182
+ }
183
+ const expanded = expandPatternsForMonorepo(patterns, monorepoConfig);
184
+ return expanded.allPatterns;
185
+ }
186
+ /**
187
+ * Check if a project is a monorepo
188
+ */
189
+ export function isMonorepo(projectRoot) {
190
+ const config = detectMonorepoConfig(projectRoot);
191
+ return config.type !== null;
192
+ }
193
+ /**
194
+ * Get human-readable monorepo type description
195
+ */
196
+ export function getMonorepoDescription(config) {
197
+ if (!config.type)
198
+ return 'Single package';
199
+ const descriptions = {
200
+ pnpm: 'pnpm workspace',
201
+ yarn: 'Yarn workspace',
202
+ npm: 'npm workspace',
203
+ lerna: 'Lerna monorepo',
204
+ nx: 'Nx workspace',
205
+ turborepo: 'Turborepo',
206
+ };
207
+ return descriptions[config.type] || 'Monorepo';
208
+ }
209
+ //# sourceMappingURL=monorepo-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monorepo-patterns.js","sourceRoot":"","sources":["../../src/detect/monorepo-patterns.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export interface ComponentLocation {
19
19
  path: string;
20
20
  fileCount: number;
21
21
  pattern: string;
22
- type?: 'jsx' | 'vue' | 'svelte' | 'php' | 'erb' | 'blade' | 'twig' | 'html' | 'njk';
22
+ type?: 'jsx' | 'tsx' | 'vue' | 'svelte' | 'astro' | 'solid' | 'qwik' | 'marko' | 'lit' | 'fast' | 'angular' | 'stencil' | 'alpine' | 'htmx' | 'php' | 'erb' | 'blade' | 'twig' | 'html' | 'njk' | 'razor' | 'hbs' | 'mustache' | 'ejs' | 'pug' | 'liquid' | 'slim' | 'haml' | 'jinja' | 'django' | 'thymeleaf' | 'freemarker' | 'go-template' | 'edge' | 'eta' | 'heex' | 'velocity' | 'xslt' | 'hugo' | 'jekyll' | 'eleventy' | 'shopify' | 'markdown' | 'mdx' | 'asciidoc' | 'svg' | 'yaml-template' | 'json-template';
23
23
  }
24
24
  export interface TokenLocation {
25
25
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../../src/detect/project-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../../src/detect/project-detector.ts"],"names":[],"mappings":"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"}