archprint 0.14.0 → 0.16.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.
Files changed (185) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +42 -26
  3. package/dist/cli/adopted-rules.d.ts +23 -2
  4. package/dist/cli/adopted-rules.d.ts.map +1 -1
  5. package/dist/cli/adopted-rules.js +100 -2
  6. package/dist/cli/adopted-rules.js.map +1 -1
  7. package/dist/cli/allow.d.ts.map +1 -1
  8. package/dist/cli/allow.js +5 -14
  9. package/dist/cli/allow.js.map +1 -1
  10. package/dist/cli/allowed-evidence.d.ts.map +1 -1
  11. package/dist/cli/allowed-evidence.js +105 -0
  12. package/dist/cli/allowed-evidence.js.map +1 -1
  13. package/dist/cli/check-evaluate.d.ts +2 -1
  14. package/dist/cli/check-evaluate.d.ts.map +1 -1
  15. package/dist/cli/check-evaluate.js +84 -1
  16. package/dist/cli/check-evaluate.js.map +1 -1
  17. package/dist/cli/check-locate.d.ts.map +1 -1
  18. package/dist/cli/check-locate.js +4 -2
  19. package/dist/cli/check-locate.js.map +1 -1
  20. package/dist/cli/check.js +2 -2
  21. package/dist/cli/check.js.map +1 -1
  22. package/dist/cli/eslint-check.d.ts +6 -0
  23. package/dist/cli/eslint-check.d.ts.map +1 -0
  24. package/dist/cli/eslint-check.js +160 -0
  25. package/dist/cli/eslint-check.js.map +1 -0
  26. package/dist/cli/generate.d.ts +3 -6
  27. package/dist/cli/generate.d.ts.map +1 -1
  28. package/dist/cli/generate.js +67 -64
  29. package/dist/cli/generate.js.map +1 -1
  30. package/dist/cli/layout.d.ts +18 -2
  31. package/dist/cli/layout.d.ts.map +1 -1
  32. package/dist/cli/layout.js +82 -15
  33. package/dist/cli/layout.js.map +1 -1
  34. package/dist/cli/migrate.d.ts.map +1 -1
  35. package/dist/cli/migrate.js +1 -2
  36. package/dist/cli/migrate.js.map +1 -1
  37. package/dist/cli/program.d.ts +0 -1
  38. package/dist/cli/program.d.ts.map +1 -1
  39. package/dist/cli/program.js +59 -79
  40. package/dist/cli/program.js.map +1 -1
  41. package/dist/cli/ratchet.d.ts +24 -0
  42. package/dist/cli/ratchet.d.ts.map +1 -0
  43. package/dist/cli/ratchet.js +43 -0
  44. package/dist/cli/ratchet.js.map +1 -0
  45. package/dist/cli/recommend.d.ts +3 -0
  46. package/dist/cli/recommend.d.ts.map +1 -1
  47. package/dist/cli/recommend.js +16 -1
  48. package/dist/cli/recommend.js.map +1 -1
  49. package/dist/cli/report.d.ts +8 -4
  50. package/dist/cli/report.d.ts.map +1 -1
  51. package/dist/cli/report.js +50 -34
  52. package/dist/cli/report.js.map +1 -1
  53. package/dist/cli/rule-ref.d.ts +10 -0
  54. package/dist/cli/rule-ref.d.ts.map +1 -0
  55. package/dist/cli/rule-ref.js +18 -0
  56. package/dist/cli/rule-ref.js.map +1 -0
  57. package/dist/cli/scan.d.ts.map +1 -1
  58. package/dist/cli/scan.js +4 -4
  59. package/dist/cli/scan.js.map +1 -1
  60. package/dist/cli/summary.d.ts +7 -0
  61. package/dist/cli/summary.d.ts.map +1 -1
  62. package/dist/cli/summary.js +60 -2
  63. package/dist/cli/summary.js.map +1 -1
  64. package/dist/detector/orphan-detector.d.ts +8 -6
  65. package/dist/detector/orphan-detector.d.ts.map +1 -1
  66. package/dist/detector/orphan-detector.js +74 -15
  67. package/dist/detector/orphan-detector.js.map +1 -1
  68. package/dist/detector/pattern-detector.d.ts +2 -0
  69. package/dist/detector/pattern-detector.d.ts.map +1 -1
  70. package/dist/detector/pattern-detector.js +5 -0
  71. package/dist/detector/pattern-detector.js.map +1 -1
  72. package/dist/detector/stories-isolation-detector.d.ts +1 -0
  73. package/dist/detector/stories-isolation-detector.d.ts.map +1 -1
  74. package/dist/detector/stories-isolation-detector.js +1 -1
  75. package/dist/detector/stories-isolation-detector.js.map +1 -1
  76. package/dist/generator/app-isolation-emitters.d.ts +4 -1
  77. package/dist/generator/app-isolation-emitters.d.ts.map +1 -1
  78. package/dist/generator/app-isolation-emitters.js +10 -4
  79. package/dist/generator/app-isolation-emitters.js.map +1 -1
  80. package/dist/generator/console-isolation-emitters.d.ts +2 -6
  81. package/dist/generator/console-isolation-emitters.d.ts.map +1 -1
  82. package/dist/generator/console-isolation-emitters.js +3 -2
  83. package/dist/generator/console-isolation-emitters.js.map +1 -1
  84. package/dist/generator/deep-relative-emitters.d.ts +2 -16
  85. package/dist/generator/deep-relative-emitters.d.ts.map +1 -1
  86. package/dist/generator/deep-relative-emitters.js +6 -20
  87. package/dist/generator/deep-relative-emitters.js.map +1 -1
  88. package/dist/generator/depcruise-exempt.d.ts +17 -2
  89. package/dist/generator/depcruise-exempt.d.ts.map +1 -1
  90. package/dist/generator/depcruise-exempt.js +18 -4
  91. package/dist/generator/depcruise-exempt.js.map +1 -1
  92. package/dist/generator/dependency-internals-emitters.d.ts +1 -1
  93. package/dist/generator/dependency-internals-emitters.d.ts.map +1 -1
  94. package/dist/generator/dependency-internals-emitters.js +2 -2
  95. package/dist/generator/dependency-internals-emitters.js.map +1 -1
  96. package/dist/generator/entry-purity-emitters.d.ts +1 -1
  97. package/dist/generator/entry-purity-emitters.d.ts.map +1 -1
  98. package/dist/generator/entry-purity-emitters.js +3 -3
  99. package/dist/generator/entry-purity-emitters.js.map +1 -1
  100. package/dist/generator/env-access-emitters.d.ts +3 -2
  101. package/dist/generator/env-access-emitters.d.ts.map +1 -1
  102. package/dist/generator/env-access-emitters.js +4 -11
  103. package/dist/generator/env-access-emitters.js.map +1 -1
  104. package/dist/generator/eslint-app-emitter.d.ts +1 -0
  105. package/dist/generator/eslint-app-emitter.d.ts.map +1 -1
  106. package/dist/generator/eslint-app-emitter.js +1 -22
  107. package/dist/generator/eslint-app-emitter.js.map +1 -1
  108. package/dist/generator/eslint-family-rules.d.ts +23 -0
  109. package/dist/generator/eslint-family-rules.d.ts.map +1 -0
  110. package/dist/generator/eslint-family-rules.js +35 -0
  111. package/dist/generator/eslint-family-rules.js.map +1 -0
  112. package/dist/generator/eslint-plugin-emitter.d.ts +2 -0
  113. package/dist/generator/eslint-plugin-emitter.d.ts.map +1 -1
  114. package/dist/generator/eslint-plugin-emitter.js +21 -0
  115. package/dist/generator/eslint-plugin-emitter.js.map +1 -1
  116. package/dist/generator/eslint-preset-emitter.d.ts +2 -1
  117. package/dist/generator/eslint-preset-emitter.d.ts.map +1 -1
  118. package/dist/generator/eslint-preset-emitter.js +13 -10
  119. package/dist/generator/eslint-preset-emitter.js.map +1 -1
  120. package/dist/generator/eslint-scope.d.ts +0 -11
  121. package/dist/generator/eslint-scope.d.ts.map +1 -1
  122. package/dist/generator/eslint-scope.js +0 -44
  123. package/dist/generator/eslint-scope.js.map +1 -1
  124. package/dist/generator/feature-slice-emitters.d.ts +4 -1
  125. package/dist/generator/feature-slice-emitters.d.ts.map +1 -1
  126. package/dist/generator/feature-slice-emitters.js +10 -4
  127. package/dist/generator/feature-slice-emitters.js.map +1 -1
  128. package/dist/generator/layer-emitters.d.ts.map +1 -1
  129. package/dist/generator/layer-emitters.js +1 -4
  130. package/dist/generator/layer-emitters.js.map +1 -1
  131. package/dist/generator/phantom-dependency-emitters.d.ts +1 -1
  132. package/dist/generator/phantom-dependency-emitters.d.ts.map +1 -1
  133. package/dist/generator/phantom-dependency-emitters.js +2 -2
  134. package/dist/generator/phantom-dependency-emitters.js.map +1 -1
  135. package/dist/generator/public-api-emitters.d.ts +2 -1
  136. package/dist/generator/public-api-emitters.d.ts.map +1 -1
  137. package/dist/generator/public-api-emitters.js +8 -5
  138. package/dist/generator/public-api-emitters.js.map +1 -1
  139. package/dist/generator/role-layering-emitters.d.ts +5 -1
  140. package/dist/generator/role-layering-emitters.d.ts.map +1 -1
  141. package/dist/generator/role-layering-emitters.js +16 -8
  142. package/dist/generator/role-layering-emitters.js.map +1 -1
  143. package/dist/generator/server-client-emitters.d.ts.map +1 -1
  144. package/dist/generator/server-client-emitters.js +1 -4
  145. package/dist/generator/server-client-emitters.js.map +1 -1
  146. package/dist/generator/stories-isolation-emitters.d.ts +4 -2
  147. package/dist/generator/stories-isolation-emitters.d.ts.map +1 -1
  148. package/dist/generator/stories-isolation-emitters.js +7 -3
  149. package/dist/generator/stories-isolation-emitters.js.map +1 -1
  150. package/dist/generator/test-isolation-emitters.d.ts +4 -3
  151. package/dist/generator/test-isolation-emitters.d.ts.map +1 -1
  152. package/dist/generator/test-isolation-emitters.js +8 -17
  153. package/dist/generator/test-isolation-emitters.js.map +1 -1
  154. package/dist/generator/ui-data-isolation-emitters.d.ts +4 -1
  155. package/dist/generator/ui-data-isolation-emitters.d.ts.map +1 -1
  156. package/dist/generator/ui-data-isolation-emitters.js +8 -3
  157. package/dist/generator/ui-data-isolation-emitters.js.map +1 -1
  158. package/dist/generator/workspace-package-emitters.d.ts +3 -2
  159. package/dist/generator/workspace-package-emitters.d.ts.map +1 -1
  160. package/dist/generator/workspace-package-emitters.js +7 -15
  161. package/dist/generator/workspace-package-emitters.js.map +1 -1
  162. package/dist/index.d.ts +4 -3
  163. package/dist/index.d.ts.map +1 -1
  164. package/dist/index.js +3 -3
  165. package/dist/index.js.map +1 -1
  166. package/dist/mcp/remote/server.d.ts +2 -2
  167. package/dist/mcp/remote/server.d.ts.map +1 -1
  168. package/dist/mcp/remote/server.js +8 -2
  169. package/dist/mcp/remote/server.js.map +1 -1
  170. package/dist/mcp/server.d.ts +2 -2
  171. package/dist/mcp/server.d.ts.map +1 -1
  172. package/dist/mcp/server.js +2 -2
  173. package/dist/mcp/server.js.map +1 -1
  174. package/dist/mcp/tools.d.ts.map +1 -1
  175. package/dist/mcp/tools.js +4 -4
  176. package/dist/mcp/tools.js.map +1 -1
  177. package/dist/scanner/file-walker.d.ts +4 -0
  178. package/dist/scanner/file-walker.d.ts.map +1 -1
  179. package/dist/scanner/file-walker.js +33 -2
  180. package/dist/scanner/file-walker.js.map +1 -1
  181. package/dist/scanner/usage-scanner.d.ts +2 -0
  182. package/dist/scanner/usage-scanner.d.ts.map +1 -1
  183. package/dist/scanner/usage-scanner.js +25 -8
  184. package/dist/scanner/usage-scanner.js.map +1 -1
  185. package/package.json +3 -2
package/dist/mcp/tools.js CHANGED
@@ -8,6 +8,7 @@ import { ARCHPRINT_DIR } from '../cli/generate.js';
8
8
  import { summarizeRules, toScanSummary, } from '../cli/summary.js';
9
9
  import { buildRecommendations, detectStack } from '../cli/recommend.js';
10
10
  import { guidanceFor } from '../cli/rule-guidance.js';
11
+ import { findRule, ruleNames } from '../cli/rule-ref.js';
11
12
  const URL_SCHEME = /^[a-z][a-z0-9+.-]*:\/\//i;
12
13
  const localPath = (input) => {
13
14
  const trimmed = input.trim();
@@ -43,21 +44,20 @@ export function recommendTool(input) {
43
44
  }
44
45
  export function explainTool(id, input) {
45
46
  const { root, dirs } = resolveAppDirs(input);
46
- const wanted = id.toLowerCase();
47
47
  const known = [];
48
48
  for (const dir of dirs) {
49
49
  const scan = scanRepo(dir, { deep: false });
50
50
  const rules = summarizeRules(scan, Number.POSITIVE_INFINITY);
51
- const rule = rules.find((candidate) => candidate.label.toLowerCase() === wanted);
51
+ const rule = findRule(id, rules);
52
52
  if (rule) {
53
- const pattern = scan.patterns.find((candidate) => candidate.config.id.toLowerCase() === wanted);
53
+ const pattern = scan.patterns.find((candidate) => candidate.config.id === rule.id);
54
54
  return {
55
55
  app: displayApp(dir, root),
56
56
  rule,
57
57
  ...(pattern && { pattern: pattern.result, guidance: guidanceFor(pattern.config.name) }),
58
58
  };
59
59
  }
60
- known.push(...rules.map((candidate) => candidate.label));
60
+ known.push(...ruleNames(rules));
61
61
  }
62
62
  throw new Error(`No rule "${id}" found under ${path.resolve(input)}. Rules found: ${[...new Set(known)].join(', ') || 'none'}.`);
63
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,10 @@ export declare function valueImportBindings(absoluteFilePath: string): (ValueBin
34
34
  specifier: string;
35
35
  })[];
36
36
  export declare function importLocations(absoluteFilePath: string): ImportLocation[];
37
+ /** Every module a file names: its imports of any kind, `import('x')` calls and `export ... from 'x'`. */
38
+ export declare function moduleReferences(absoluteFilePath: string): string[];
39
+ /** The string literals in a file, such as the setup files a tool's config names. */
40
+ export declare function stringLiterals(absoluteFilePath: string): string[];
37
41
  export declare function isWorkspacePackagePath(filePath: string, workspacePackages: readonly string[]): boolean;
38
42
  export declare function createImportAnalyzer(appDir: string, options?: {
39
43
  resolve?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"file-walker.d.ts","sourceRoot":"","sources":["../../src/scanner/file-walker.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAyB9B,MAAM,WAAW,UAAW,SAAQ,kBAAkB;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC;AAEtF,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAsBD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uFAAuF;IACvF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAuB1D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAEzD;AAaD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAkBtD;AAcD,sHAAsH;AACtH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAmFD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,+HAA+H;AAC/H,wBAAgB,mBAAmB,CACjC,gBAAgB,EAAE,MAAM,GACvB,CAAC,YAAY,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,CAI1C;AAED,wBAAgB,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,cAAc,EAAE,CAE1E;AAuBD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,SAAS,MAAM,EAAE,GACnC,OAAO,CAQT;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,CAAC,gBAAgB,EAAE,MAAM,KAAK,cAAc,EAAE,CAqKhD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,cAAc,EAAE,CAEzF"}
1
+ {"version":3,"file":"file-walker.d.ts","sourceRoot":"","sources":["../../src/scanner/file-walker.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAyB9B,MAAM,WAAW,UAAW,SAAQ,kBAAkB;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC;AAEtF,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAsBD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uFAAuF;IACvF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAuB1D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAEzD;AAaD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAkBtD;AAcD,sHAAsH;AACtH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAoGD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,+HAA+H;AAC/H,wBAAgB,mBAAmB,CACjC,gBAAgB,EAAE,MAAM,GACvB,CAAC,YAAY,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,CAI1C;AAKD,wBAAgB,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,cAAc,EAAE,CAE1E;AAED,yGAAyG;AACzG,wBAAgB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnE;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBjE;AAuBD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,SAAS,MAAM,EAAE,GACnC,OAAO,CAQT;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,CAAC,gBAAgB,EAAE,MAAM,KAAK,cAAc,EAAE,CAqKhD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,cAAc,EAAE,CAEzF"}
@@ -158,6 +158,18 @@ function parseFastImports(absoluteFilePath) {
158
158
  hasValueBinding: nodeHasValueBinding(statement.importClause),
159
159
  valueBindings: valueBindingsOf(statement.importClause),
160
160
  line: lineOf(statement),
161
+ reexport: false,
162
+ });
163
+ }
164
+ if (ts.isExportDeclaration(statement) &&
165
+ statement.moduleSpecifier !== undefined &&
166
+ ts.isStringLiteral(statement.moduleSpecifier)) {
167
+ raw.push({
168
+ specifier: statement.moduleSpecifier.text,
169
+ hasValueBinding: !statement.isTypeOnly,
170
+ valueBindings: [],
171
+ line: lineOf(statement),
172
+ reexport: true,
161
173
  });
162
174
  }
163
175
  }
@@ -171,6 +183,7 @@ function parseFastImports(absoluteFilePath) {
171
183
  hasValueBinding: true,
172
184
  valueBindings: [],
173
185
  line: lineOf(node),
186
+ reexport: false,
174
187
  });
175
188
  }
176
189
  ts.forEachChild(node, visit);
@@ -185,11 +198,29 @@ function parseFastImports(absoluteFilePath) {
185
198
  export function valueImportBindings(absoluteFilePath) {
186
199
  return parseFastImports(absoluteFilePath).flatMap((imp) => imp.valueBindings.map((binding) => ({ ...binding, specifier: imp.specifier })));
187
200
  }
201
+ const importsOf = (absoluteFilePath) => parseFastImports(absoluteFilePath).filter((imp) => !imp.reexport);
188
202
  export function importLocations(absoluteFilePath) {
189
- return parseFastImports(absoluteFilePath).map(({ specifier, line }) => ({ specifier, line }));
203
+ return importsOf(absoluteFilePath).map(({ specifier, line }) => ({ specifier, line }));
204
+ }
205
+ /** Every module a file names: its imports of any kind, `import('x')` calls and `export ... from 'x'`. */
206
+ export function moduleReferences(absoluteFilePath) {
207
+ return parseFastImports(absoluteFilePath).map((imp) => imp.specifier);
208
+ }
209
+ /** The string literals in a file, such as the setup files a tool's config names. */
210
+ export function stringLiterals(absoluteFilePath) {
211
+ const { source, scriptKind } = parseableSource(absoluteFilePath, readFileSync(absoluteFilePath, 'utf8'));
212
+ const sourceFile = ts.createSourceFile(absoluteFilePath, source, ts.ScriptTarget.Latest, false, scriptKind);
213
+ const literals = [];
214
+ const visit = (node) => {
215
+ if (ts.isStringLiteral(node) || ts.isNoSubstitutionTemplateLiteral(node))
216
+ literals.push(node.text);
217
+ ts.forEachChild(node, visit);
218
+ };
219
+ visit(sourceFile);
220
+ return literals;
190
221
  }
191
222
  function specifierLevelImports(absoluteFilePath, classifyEdge) {
192
- return parseFastImports(absoluteFilePath).map((imp) => ({
223
+ return importsOf(absoluteFilePath).map((imp) => ({
193
224
  specifier: imp.specifier,
194
225
  edgeKind: classifyEdge(imp.specifier),
195
226
  throughBarrel: false,
@@ -1 +1 @@
1
- {"version":3,"file":"file-walker.js","sourceRoot":"","sources":["../../src/scanner/file-walker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-walker.js","sourceRoot":"","sources":["../../src/scanner/file-walker.ts"],"names":[],"mappings":"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"}
@@ -8,5 +8,7 @@ export interface UsageScan {
8
8
  files: WalkedFile[];
9
9
  usage: Map<string, FileUsage>;
10
10
  }
11
+ export type UsageSubject = 'console' | 'process.env';
12
+ export declare function usageLines(absolutePath: string, subject: UsageSubject): number[];
11
13
  export declare function scanUsage(appDir: string): UsageScan;
12
14
  //# sourceMappingURL=usage-scanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage-scanner.d.ts","sourceRoot":"","sources":["../../src/scanner/usage-scanner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE7D,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC/B;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CA0BnD"}
1
+ {"version":3,"file":"usage-scanner.d.ts","sourceRoot":"","sources":["../../src/scanner/usage-scanner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE7D,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,aAAa,CAAC;AAoBrD,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAGhF;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAsBnD"}
@@ -1,6 +1,28 @@
1
1
  import * as path from 'node:path';
2
2
  import { Project, SyntaxKind } from 'ts-morph';
3
3
  import { walkRepo } from './file-walker.js';
4
+ function subjectOf(access) {
5
+ const target = access.getExpression();
6
+ if (target.getKind() === SyntaxKind.Identifier && target.getText() === 'console')
7
+ return 'console';
8
+ if (access.getName() === 'env' && target.getText() === 'process')
9
+ return 'process.env';
10
+ return null;
11
+ }
12
+ /** The line of each `console.*` and `process.env` access in a file, in source order. */
13
+ function accessLines(sourceFile) {
14
+ const lines = { console: [], 'process.env': [] };
15
+ for (const access of sourceFile.getDescendantsOfKind(SyntaxKind.PropertyAccessExpression)) {
16
+ const subject = subjectOf(access);
17
+ if (subject !== null)
18
+ lines[subject].push(access.getStartLineNumber());
19
+ }
20
+ return lines;
21
+ }
22
+ export function usageLines(absolutePath, subject) {
23
+ const project = new Project({ skipAddingFilesFromTsConfig: true });
24
+ return accessLines(project.addSourceFileAtPath(absolutePath))[subject];
25
+ }
4
26
  export function scanUsage(appDir) {
5
27
  const root = path.resolve(appDir);
6
28
  const files = walkRepo(root).filter((file) => file.role !== 'TEST');
@@ -11,14 +33,9 @@ export function scanUsage(appDir) {
11
33
  let usesProcessEnv = false;
12
34
  try {
13
35
  const sourceFile = project.addSourceFileAtPath(file.absolutePath);
14
- for (const access of sourceFile.getDescendantsOfKind(SyntaxKind.PropertyAccessExpression)) {
15
- const target = access.getExpression();
16
- if (target.getKind() === SyntaxKind.Identifier && target.getText() === 'console') {
17
- usesConsole = true;
18
- }
19
- if (access.getName() === 'env' && target.getText() === 'process')
20
- usesProcessEnv = true;
21
- }
36
+ const lines = accessLines(sourceFile);
37
+ usesConsole = lines.console.length > 0;
38
+ usesProcessEnv = lines['process.env'].length > 0;
22
39
  project.removeSourceFile(sourceFile);
23
40
  }
24
41
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"usage-scanner.js","sourceRoot":"","sources":["../../src/scanner/usage-scanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAmB,MAAM,kBAAkB,CAAC;AAa7D,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAClE,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC;gBAC1F,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;oBACjF,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;gBACD,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,SAAS;oBAAE,cAAc,GAAG,IAAI,CAAC;YAC1F,CAAC;YACD,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,mFAAmF;QACrF,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"usage-scanner.js","sourceRoot":"","sources":["../../src/scanner/usage-scanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAiC,OAAO,EAAmB,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAmB,MAAM,kBAAkB,CAAC;AAe7D,SAAS,SAAS,CAAC,MAAgC;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;IACtC,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,SAAS;QAC9E,OAAO,SAAS,CAAC;IACnB,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC;IACvF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wFAAwF;AACxF,SAAS,WAAW,CAAC,UAAsB;IACzC,MAAM,KAAK,GAAmC,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;IACjF,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC1F,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,IAAI;YAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,YAAoB,EAAE,OAAqB;IACpE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,OAAO,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAClE,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;YACtC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACvC,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACjD,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,mFAAmF;QACrF,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "archprint",
3
- "version": "0.14.0",
3
+ "version": "0.16.0",
4
4
  "mcpName": "io.github.Tommkruix/archprint",
5
5
  "description": "Mine the architecture rules your TypeScript repo already enforces, with the evidence attached.",
6
6
  "keywords": [
@@ -81,7 +81,7 @@
81
81
  "dependencies": {
82
82
  "@modelcontextprotocol/sdk": "^1.31.0",
83
83
  "commander": "^15.0.0",
84
- "ignore": "7.0.12",
84
+ "ignore": "7.0.14",
85
85
  "ts-morph": "28.0.0",
86
86
  "typescript": "6.0.3"
87
87
  },
@@ -93,6 +93,7 @@
93
93
  "@types/node": "^26.1.0",
94
94
  "@vitest/coverage-v8": "^5.0.3",
95
95
  "chart.js": "^4.5.1",
96
+ "dependency-cruiser": "^18.7.0",
96
97
  "eslint": "^10.6.0",
97
98
  "eslint-config-prettier": "^10.1.8",
98
99
  "get-tsconfig": "^4.14.0",