code-auditor-mcp 3.5.0 → 3.7.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 (110) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +62 -0
  3. package/dist/analyzers/applicability.d.ts +6 -5
  4. package/dist/analyzers/applicability.d.ts.map +1 -1
  5. package/dist/analyzers/applicability.js +1 -26
  6. package/dist/analyzers/applicability.js.map +1 -1
  7. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
  8. package/dist/analyzers/cross-language/DependencyGraphBuilder.js +12 -1
  9. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  10. package/dist/analyzers/ruleRegistry.d.ts +14 -12
  11. package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
  12. package/dist/analyzers/ruleRegistry.js +138 -98
  13. package/dist/analyzers/ruleRegistry.js.map +1 -1
  14. package/dist/analyzers/ruleTiming.d.ts +2 -2
  15. package/dist/analyzers/ruleTiming.js +2 -2
  16. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +29 -0
  17. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  18. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +376 -6
  19. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  20. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +6 -0
  21. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  22. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +41 -7
  23. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  24. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  25. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +13 -2
  26. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  27. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +20 -5
  28. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  29. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +83 -14
  30. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  31. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  32. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +5 -2
  33. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  34. package/dist/analyzers/universal/UniversalSecretsAnalyzer.d.ts +55 -0
  35. package/dist/analyzers/universal/UniversalSecretsAnalyzer.d.ts.map +1 -0
  36. package/dist/analyzers/universal/UniversalSecretsAnalyzer.js +318 -0
  37. package/dist/analyzers/universal/UniversalSecretsAnalyzer.js.map +1 -0
  38. package/dist/analyzers/universal/functionConcerns.d.ts +52 -0
  39. package/dist/analyzers/universal/functionConcerns.d.ts.map +1 -0
  40. package/dist/analyzers/universal/functionConcerns.js +225 -0
  41. package/dist/analyzers/universal/functionConcerns.js.map +1 -0
  42. package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
  43. package/dist/analyzers/universal/schema/codeAnalysis.js +9 -3
  44. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
  45. package/dist/analyzers/universal/schema/discovery.d.ts +29 -1
  46. package/dist/analyzers/universal/schema/discovery.d.ts.map +1 -1
  47. package/dist/analyzers/universal/schema/discovery.js +76 -21
  48. package/dist/analyzers/universal/schema/discovery.js.map +1 -1
  49. package/dist/auditRunner.d.ts.map +1 -1
  50. package/dist/auditRunner.js +73 -74
  51. package/dist/auditRunner.js.map +1 -1
  52. package/dist/cli.js +109 -105
  53. package/dist/cli.js.map +1 -1
  54. package/dist/codeIndexDB.js +6 -6
  55. package/dist/codeIndexDB.js.map +1 -1
  56. package/dist/config/configLoader.d.ts.map +1 -1
  57. package/dist/config/configLoader.js +15 -0
  58. package/dist/config/configLoader.js.map +1 -1
  59. package/dist/config/defaults.d.ts +11 -1
  60. package/dist/config/defaults.d.ts.map +1 -1
  61. package/dist/config/defaults.js +25 -3
  62. package/dist/config/defaults.js.map +1 -1
  63. package/dist/config/effectiveConfig.d.ts.map +1 -1
  64. package/dist/config/effectiveConfig.js +2 -0
  65. package/dist/config/effectiveConfig.js.map +1 -1
  66. package/dist/dataPaths.js +18 -1
  67. package/dist/dataPaths.js.map +1 -1
  68. package/dist/enforcement/gate.d.ts +14 -19
  69. package/dist/enforcement/gate.d.ts.map +1 -1
  70. package/dist/enforcement/gate.js +27 -45
  71. package/dist/enforcement/gate.js.map +1 -1
  72. package/dist/graph/importGraph.d.ts +11 -0
  73. package/dist/graph/importGraph.d.ts.map +1 -1
  74. package/dist/graph/importGraph.js +11 -3
  75. package/dist/graph/importGraph.js.map +1 -1
  76. package/dist/installer.d.ts.map +1 -1
  77. package/dist/installer.js +2 -5
  78. package/dist/installer.js.map +1 -1
  79. package/dist/mcp.js +1 -1
  80. package/dist/mcp.js.map +1 -1
  81. package/dist/pipeline.d.ts.map +1 -1
  82. package/dist/pipeline.js +21 -3
  83. package/dist/pipeline.js.map +1 -1
  84. package/dist/pipelineAdapters.d.ts +1 -0
  85. package/dist/pipelineAdapters.d.ts.map +1 -1
  86. package/dist/pipelineAdapters.js +227 -4
  87. package/dist/pipelineAdapters.js.map +1 -1
  88. package/dist/styles/styleExtractor.js +2 -2
  89. package/dist/styles/styleExtractor.js.map +1 -1
  90. package/dist/styles/styleIndexer.js +7 -6
  91. package/dist/styles/styleIndexer.js.map +1 -1
  92. package/dist/styles/tailwindProbe.d.ts +8 -0
  93. package/dist/styles/tailwindProbe.d.ts.map +1 -1
  94. package/dist/styles/tailwindProbe.js +11 -1
  95. package/dist/styles/tailwindProbe.js.map +1 -1
  96. package/dist/styles/types.d.ts +3 -2
  97. package/dist/styles/types.d.ts.map +1 -1
  98. package/dist/types/crossLanguage.d.ts +1 -0
  99. package/dist/types/crossLanguage.d.ts.map +1 -1
  100. package/dist/types.d.ts +23 -30
  101. package/dist/types.d.ts.map +1 -1
  102. package/dist/types.js.map +1 -1
  103. package/package.json +13 -4
  104. package/plugin/.claude-plugin/plugin.json +1 -1
  105. package/plugin/README.md +5 -3
  106. package/plugin/scripts/hook-audit.sh +20 -30
  107. package/plugin/scripts/hook-common.sh +63 -0
  108. package/plugin/scripts/hook-self-audit.sh +23 -31
  109. package/plugin/skills/code-auditor/SKILL-RULE-KINDS.md +4 -2
  110. package/plugin/skills/code-auditor/SKILL.md +20 -12
@@ -17,7 +17,21 @@ export const DEFAULT_DRY_CONFIG = {
17
17
  // R3.2: floor raised from 5 → 15
18
18
  minLineThreshold: 15,
19
19
  similarityThreshold: 0.85,
20
- excludePatterns: ['**/*.test.ts', '**/*.spec.ts'],
20
+ // Test files and test directories are excluded by convention in any language:
21
+ // `.test.*`/`.spec.*` in TS/TSX/JS/JSX, plus `test/` and `tests/` directories.
22
+ // Expected-output fixtures and repeated setup are not production duplication,
23
+ // and a JS library (knex) names its tests `.js` under `test/`, which the
24
+ // earlier TS-only patterns missed (132 fixture-object findings). `__tests__/`
25
+ // is deliberately NOT excluded: this very repo keeps analyzable source
26
+ // fixtures under `__tests__/fixtures/`, and Jest's `__tests__` files are
27
+ // still `.test.*`/`.spec.*` named, so the filename patterns cover them.
28
+ excludePatterns: [
29
+ '**/*.test.ts', '**/*.spec.ts',
30
+ '**/*.test.tsx', '**/*.spec.tsx',
31
+ '**/*.test.js', '**/*.spec.js',
32
+ '**/*.test.jsx', '**/*.spec.jsx',
33
+ '**/test/**', '**/tests/**',
34
+ ],
21
35
  // R4.1: sub-rules disabled by default
22
36
  checkImports: false,
23
37
  checkStrings: false,
@@ -25,6 +39,15 @@ export const DEFAULT_DRY_CONFIG = {
25
39
  ignoreWhitespace: true,
26
40
  // R4.2: structural similarity off by default
27
41
  checkStructuralSimilarity: false,
42
+ // #132: expression similarity ON by default. Fluent library/builder chains
43
+ // (query builders, schema builders, Zod validators, commander, promises, DOM
44
+ // and stdlib method chains) are filtered out of the signal — they are the
45
+ // library's API surface, not duplicated logic — and unrelated schema literals
46
+ // are excluded by requiring object literals to target the same identifier. So
47
+ // the rule fires on real duplication — `resultSummary` built twice — without
48
+ // flooding a default audit.
49
+ checkExpressionSimilarity: true,
50
+ minShapeNames: 4,
28
51
  };
29
52
  // ── R3.1: Span-overlap helpers ──────────────────────────────────────
30
53
  /**
@@ -86,6 +109,248 @@ function deduplicateBlocks(blocks) {
86
109
  }
87
110
  return result;
88
111
  }
112
+ /** True when `outer`'s span fully contains `inner`'s span in the same file. */
113
+ function shapeSpansContain(outer, inner) {
114
+ if (outer.file !== inner.file)
115
+ return false;
116
+ const startLte = outer.start.line < inner.start.line ||
117
+ (outer.start.line === inner.start.line && outer.start.column <= inner.start.column);
118
+ const endGte = outer.end.line > inner.end.line ||
119
+ (outer.end.line === inner.end.line && outer.end.column >= inner.end.column);
120
+ return startLte && endGte;
121
+ }
122
+ /**
123
+ * Drop nested fragments, keeping the outermost. A fluent chain visits its outer
124
+ * call first, then each suffix chain (`a().b()` vs `a().b().c()` share a start
125
+ * position but the outer span is longer); a nested object literal is fully
126
+ * contained in its parent. Sort puts the widest span first so the inner suffix
127
+ * is skipped as contained.
128
+ */
129
+ function dedupeShapeFragments(fragments) {
130
+ const sorted = [...fragments].sort((a, b) => {
131
+ if (a.file !== b.file)
132
+ return a.file.localeCompare(b.file);
133
+ if (a.start.line !== b.start.line)
134
+ return a.start.line - b.start.line;
135
+ if (a.start.column !== b.start.column)
136
+ return a.start.column - b.start.column;
137
+ // Same start → outermost (largest end) first.
138
+ if (a.end.line !== b.end.line)
139
+ return b.end.line - a.end.line;
140
+ return b.end.column - a.end.column;
141
+ });
142
+ const kept = [];
143
+ for (const f of sorted) {
144
+ if (!kept.some((k) => shapeSpansContain(k, f)))
145
+ kept.push(f);
146
+ }
147
+ return kept;
148
+ }
149
+ /** Strip one layer of quotes from a string-literal object key. */
150
+ function bareKeyName(key, getText) {
151
+ let t = getText(key).trim();
152
+ if ((t.startsWith('"') && t.endsWith('"')) || (t.startsWith("'") && t.endsWith("'"))) {
153
+ t = t.slice(1, -1);
154
+ }
155
+ return t;
156
+ }
157
+ /**
158
+ * Field names of an object literal, in source order. Handles `{ a: 1 }`
159
+ * (`pair` → key child) and `{ a }` (`shorthand_property_identifier`).
160
+ */
161
+ function objectFieldNames(node, getText) {
162
+ const names = [];
163
+ for (const child of node.children ?? []) {
164
+ if (child.type === 'pair') {
165
+ const key = child.children?.[0];
166
+ if (key) {
167
+ const name = bareKeyName(key, getText);
168
+ if (name)
169
+ names.push(name);
170
+ }
171
+ }
172
+ else if (child.type === 'shorthand_property_identifier') {
173
+ const name = getText(child).trim();
174
+ if (name)
175
+ names.push(name);
176
+ }
177
+ }
178
+ return names;
179
+ }
180
+ /**
181
+ * Method names of a fluent call chain (`db.update().set().where().returning()`),
182
+ * in call order. Walks `call_expression` → `member_expression` callee chain,
183
+ * collecting each `.method` name and recursing into the chain's receiver until
184
+ * a bare identifier is reached. Returns [] for a bare (non-member) call.
185
+ */
186
+ function callChainMethodNames(node, getText) {
187
+ const names = [];
188
+ let current = node;
189
+ while (current && current.type === 'call_expression') {
190
+ const callee = current.children?.[0];
191
+ if (!callee)
192
+ break;
193
+ if (callee.type === 'member_expression') {
194
+ const prop = callee.children?.find((c) => c.type === 'property_identifier');
195
+ if (!prop)
196
+ break;
197
+ names.push(getText(prop).trim());
198
+ current = callee.children?.[0];
199
+ }
200
+ else if (callee.type === 'call_expression') {
201
+ current = callee; // curried/IIFE — skip the anonymous level, keep walking
202
+ }
203
+ else {
204
+ break; // bare identifier callee — end of the chain
205
+ }
206
+ }
207
+ return names.reverse();
208
+ }
209
+ /**
210
+ * Method names from well-known fluent APIs. A chain built from these verbs is
211
+ * "structurally similar by design" — it is the library's public surface, not
212
+ * duplicated domain logic — so the default-on rule stays quiet on it.
213
+ *
214
+ * The first version excluded only `select`/`selectDistinct` on the theory that
215
+ * read queries are idiomatic but mutation chains (`update().set().where()`)
216
+ * are the real signal. Corpus measurement disproved that theory: the chains
217
+ * that actually fire are Zod validators (`string().trim().min().max()`),
218
+ * query/schema builders (`insert().onConflict().ignore()`,
219
+ * `integer().unsigned().references()`), commander registrations
220
+ * (`command().option().action()`), promise flows (`then().then().catch()`),
221
+ * DOM/JQuery traversal (`closest().find().first().text()`), and stdlib
222
+ * array/string method chains — all library API, none duplicated logic. The
223
+ * object-literal half of the rule (a *specific* object built twice, keyed by
224
+ * target) is where the real signal lives and is unaffected by this exclusion.
225
+ */
226
+ const FLUENT_CHAIN_METHODS = new Set([
227
+ // SQL query builders (knex, Kysely, Drizzle, …)
228
+ 'select', 'selectDistinct', 'from', 'where', 'andWhere', 'orWhere', 'whereRaw',
229
+ 'whereIn', 'whereNotIn', 'whereNull', 'whereNotNull', 'whereExists', 'whereBetween',
230
+ 'orderBy', 'groupBy', 'having', 'join', 'innerJoin', 'leftJoin', 'rightJoin',
231
+ 'crossJoin', 'fullOuterJoin', 'limit', 'offset', 'distinct', 'count', 'sum', 'avg',
232
+ 'first', 'pluck', 'forUpdate', 'forShare', 'skipLocked', 'union', 'unionAll',
233
+ 'insert', 'update', 'del', 'delete', 'into', 'returning', 'onConflict', 'ignore',
234
+ 'merge', 'increment', 'decrement', 'transacting', 'using', 'updateFrom', 'testSql',
235
+ 'toSQL', 'toQuery', 'raw', 'table', 'schemaBuilder', 'queryBuilder', 'partitionBy',
236
+ // Schema builders (knex `table.integer().unsigned().references()`)
237
+ 'createTable', 'alterTable', 'dropTable', 'dropTableIfExists', 'renameTable',
238
+ 'renameColumn', 'dropColumn', 'integer', 'bigInteger', 'text', 'boolean', 'float',
239
+ 'double', 'decimal', 'date', 'dateTime', 'timestamp', 'timestamps', 'time',
240
+ 'binary', 'json', 'jsonb', 'uuid', 'unsigned', 'references', 'inTable', 'defaultTo',
241
+ 'index', 'unique', 'primary', 'comment', 'foreign', 'onDelete', 'onUpdate',
242
+ 'deferrable', 'withKeyName', 'notNullable', 'collate', 'check',
243
+ // Zod / Valibot schema validators
244
+ 'trim', 'min', 'max', 'length', 'int', 'positive', 'nonnegative', 'negative',
245
+ 'regex', 'email', 'url', 'datetime', 'optional', 'nullish', 'nullable', 'default',
246
+ 'describe', 'refine', 'superRefine', 'transform', 'safeParse', 'parse', 'array',
247
+ 'object', 'enum', 'record', 'union', 'intersection', 'tuple', 'literal', 'number',
248
+ 'string', 'nativeEnum', 'lazy', 'preprocess', 'brand',
249
+ // commander / CLI builders
250
+ 'command', 'description', 'option', 'requiredOption', 'action', 'argument',
251
+ 'version', 'usage', 'name', 'alias', 'allowUnknownOption', 'exitOverride',
252
+ // Promises
253
+ 'then', 'catch', 'finally',
254
+ // DOM / jQuery traversal and JS stdlib array/string method chains
255
+ 'closest', 'find', 'text', 'map', 'filter', 'reduce', 'forEach', 'slice', 'split',
256
+ 'join', 'replace', 'replaceAll', 'toLowerCase', 'toUpperCase', 'flatMap', 'concat',
257
+ ]);
258
+ /** True when the chain is a fluent library/builder API (not duplicated logic). */
259
+ function isFluentChain(names) {
260
+ return names.some((n) => FLUENT_CHAIN_METHODS.has(n));
261
+ }
262
+ /**
263
+ * Extract shape fragments (object literals + fluent call chains) from the AST.
264
+ *
265
+ * Object literals are only collected as the *direct value* of a declaration
266
+ * (`const x = {...}`) or assignment (`info.resultSummary = {...}`), and carry
267
+ * that target. Two literals must target the same identifier to be compared —
268
+ * this keeps `pgTable('users', {...})` / `pgTable('orders', {...})` (different
269
+ * targets, shared `id`/`createdAt` column names) out of the "built twice" set.
270
+ *
271
+ * Chains are collected from every `call_expression`, excluding fluent
272
+ * library/builder APIs. Fragments are filtered to `minShapeNames` names and
273
+ * deduplicated to the outermost span.
274
+ */
275
+ function extractShapeFragments(ctx, minShapeNames) {
276
+ const fragments = [];
277
+ const getText = (node) => ctx.adapter.getNodeText(node, ctx.sourceCode);
278
+ const collectObject = (node, target) => {
279
+ const names = objectFieldNames(node, getText);
280
+ if (names.length < minShapeNames)
281
+ return;
282
+ fragments.push({
283
+ file: ctx.ast.filePath,
284
+ start: node.location.start,
285
+ end: node.location.end,
286
+ kind: 'object',
287
+ target,
288
+ names,
289
+ text: getText(node),
290
+ });
291
+ };
292
+ walkAST(ctx.ast.root, (node) => {
293
+ if (node.type === 'variable_declarator') {
294
+ // `const name: T = value` — target is the declarator name, value the last child.
295
+ const name = node.children?.[0];
296
+ const value = node.children?.[node.children.length - 1];
297
+ if (name && value?.type === 'object')
298
+ collectObject(value, getText(name));
299
+ }
300
+ else if (node.type === 'assignment_expression') {
301
+ // `target = value` — target is the left-hand side, value the last child.
302
+ const left = node.children?.[0];
303
+ const value = node.children?.[node.children.length - 1];
304
+ if (left && value?.type === 'object')
305
+ collectObject(value, getText(left));
306
+ }
307
+ else if (node.type === 'call_expression') {
308
+ const names = callChainMethodNames(node, getText);
309
+ if (names.length < minShapeNames || isFluentChain(names))
310
+ return;
311
+ fragments.push({
312
+ file: ctx.ast.filePath,
313
+ start: node.location.start,
314
+ end: node.location.end,
315
+ kind: 'chain',
316
+ names,
317
+ text: getText(node),
318
+ });
319
+ }
320
+ });
321
+ return dedupeShapeFragments(fragments);
322
+ }
323
+ /**
324
+ * Longest common subsequence of two string arrays, returned as the actual
325
+ * shared sequence (so the violation message can name the shared fields/methods).
326
+ */
327
+ function longestCommonSubsequence(a, b) {
328
+ const m = a.length;
329
+ const n = b.length;
330
+ const dp = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));
331
+ for (let i = 1; i <= m; i++) {
332
+ for (let j = 1; j <= n; j++) {
333
+ dp[i][j] = a[i - 1] === b[j - 1] ? dp[i - 1][j - 1] + 1 : Math.max(dp[i - 1][j], dp[i][j - 1]);
334
+ }
335
+ }
336
+ const seq = [];
337
+ let i = m;
338
+ let j = n;
339
+ while (i > 0 && j > 0) {
340
+ if (a[i - 1] === b[j - 1]) {
341
+ seq.push(a[i - 1]);
342
+ i--;
343
+ j--;
344
+ }
345
+ else if (dp[i - 1][j] >= dp[i][j - 1]) {
346
+ i--;
347
+ }
348
+ else {
349
+ j--;
350
+ }
351
+ }
352
+ return seq.reverse();
353
+ }
89
354
  // ── R3.3: Structural similarity helpers ──────────────────────────────
90
355
  /**
91
356
  * Group blocks by a key field into a map of key→blocks[].
@@ -230,13 +495,48 @@ function findNodeByLocation(root, location) {
230
495
  return null;
231
496
  }
232
497
  /**
233
- * Check whether a file path matches any of the given glob-ish exclude patterns.
498
+ * Translate a minimal glob (`*`, `**`, `?`) to an anchored regex. A globstar
499
+ * (`**`) matches any run of characters including the path separator, and a
500
+ * globstar followed by a slash becomes an optional segment prefix so it also
501
+ * matches zero path segments (e.g. `test/` at the root of a relative path).
502
+ * `*` and `?` match within a single segment.
234
503
  */
504
+ function globToRegExp(pattern) {
505
+ const out = ['^'];
506
+ for (let i = 0; i < pattern.length; i++) {
507
+ const ch = pattern[i];
508
+ if (ch === '*') {
509
+ if (pattern[i + 1] === '*') {
510
+ i += 1; // consume the second `*`
511
+ if (pattern[i + 1] === '/') {
512
+ i += 1; // fold a trailing `/` into the globstar
513
+ out.push('(?:.*/)?');
514
+ }
515
+ else {
516
+ out.push('.*');
517
+ }
518
+ }
519
+ else {
520
+ out.push('[^/]*');
521
+ }
522
+ }
523
+ else if (ch === '?') {
524
+ out.push('[^/]');
525
+ }
526
+ else if ('^$\\.+?()[]{}|'.includes(ch)) {
527
+ out.push('\\', ch);
528
+ }
529
+ else {
530
+ out.push(ch);
531
+ }
532
+ }
533
+ out.push('$');
534
+ return new RegExp(out.join(''));
535
+ }
536
+ /** Check whether a file path matches any of the given glob-ish exclude patterns. */
235
537
  function isExcluded(filePath, patterns) {
236
- return patterns.some(pattern => {
237
- const regex = new RegExp(pattern.replace(/\*/g, '.*'));
238
- return regex.test(filePath);
239
- });
538
+ const normalized = filePath.replace(/\\/g, '/');
539
+ return patterns.some(pattern => globToRegExp(pattern).test(normalized));
240
540
  }
241
541
  /**
242
542
  * Walk the AST depth-first, invoking the callback on every node.
@@ -355,6 +655,11 @@ export class UniversalDRYAnalyzer extends UniversalAnalyzer {
355
655
  if (finalConfig.checkStructuralSimilarity) {
356
656
  this.reportStructuralDuplicates(deduped, violations);
357
657
  }
658
+ // #132: near-identical object literals and fluent call chains
659
+ if (finalConfig.checkExpressionSimilarity) {
660
+ const fragments = extractShapeFragments(ctx, finalConfig.minShapeNames || 4);
661
+ this.reportExpressionSimilarities(fragments, finalConfig, violations);
662
+ }
358
663
  this.reportCrossFileDuplicates(blocks, finalConfig, violations);
359
664
  // Check for duplicate string literals if enabled
360
665
  if (finalConfig.checkStrings) {
@@ -438,6 +743,71 @@ export class UniversalDRYAnalyzer extends UniversalAnalyzer {
438
743
  }
439
744
  }
440
745
  }
746
+ /**
747
+ * Report near-identical expression shapes (dry/similar-expression, suggestion).
748
+ *
749
+ * Two fragments are "near-identical" when their field/method-name sequence
750
+ * shares a common subsequence of at least `minShapeNames` names — the same
751
+ * `resultSummary` object built twice, the same `.update().set().where()`
752
+ * chain repeated across switch arms. Each later fragment is reported at most
753
+ * once, against the earliest fragment it resembles.
754
+ */
755
+ reportExpressionSimilarities(fragments, config, violations) {
756
+ withRuleTiming('dry/similar-expression', () => {
757
+ const min = config.minShapeNames || 4;
758
+ const reported = new Set();
759
+ for (let j = 1; j < fragments.length; j++) {
760
+ if (reported.has(j))
761
+ continue;
762
+ for (let i = 0; i < j; i++) {
763
+ // Only compare like-with-like: a field list and a method chain are
764
+ // different shapes and should never be flagged as "near-identical".
765
+ if (fragments[i].kind !== fragments[j].kind)
766
+ continue;
767
+ // Object literals must target the same identifier (`info.resultSummary`
768
+ // built twice), not merely two unrelated literals that share column
769
+ // names. Chains have no target (undefined === undefined).
770
+ if (fragments[i].target !== fragments[j].target)
771
+ continue;
772
+ const shared = longestCommonSubsequence(fragments[i].names, fragments[j].names);
773
+ if (shared.length < min)
774
+ continue;
775
+ violations.push(this.buildSimilarityViolation(fragments[j], fragments[i], shared));
776
+ reported.add(j);
777
+ break;
778
+ }
779
+ }
780
+ });
781
+ }
782
+ /**
783
+ * Build the `dry/similar-expression` violation for `fragment` (the later
784
+ * fragment) resembling `first` (the earliest).
785
+ */
786
+ buildSimilarityViolation(fragment, first, shared) {
787
+ const isObject = fragment.kind === 'object';
788
+ const label = isObject ? 'object literal' : 'call chain';
789
+ const unit = isObject ? 'fields' : 'methods';
790
+ const targetClause = isObject && fragment.target
791
+ ? ` built for "${fragment.target}"`
792
+ : '';
793
+ const violation = this.createViolation(fragment.file, fragment.start, `Near-identical ${label}${targetClause} detected (${shared.length} shared ${unit}: ${shared.join(', ')}). ` +
794
+ `First occurrence at ${first.file}:${first.start.line}`, {
795
+ severity: 'suggestion',
796
+ rule: 'dry/similar-expression',
797
+ symbol: shared.join('.'),
798
+ resolution: {
799
+ action: 'extract-shared-expression',
800
+ summary: `Extract the shared ${isObject ? 'field list' : 'method chain'} (${shared.join(', ')}) into a shared helper, builder, or constant both sites use.`,
801
+ files: [fragment.file, first.file],
802
+ lines: [fragment.start.line, first.start.line],
803
+ },
804
+ });
805
+ violation.fix = {
806
+ oldText: fragment.text,
807
+ newText: `// Consider extracting the shared ${unit} into a shared helper`,
808
+ };
809
+ return violation;
810
+ }
441
811
  /**
442
812
  * Report blocks that duplicate a function body from the full codebase index.
443
813
  * Only used in scoped (changed-file) audits.
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalDRYAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalDRYAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UniversalDRYAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalDRYAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,12 @@ export interface DataAccessAnalyzerConfig {
70
70
  sanitizerNames?: string[];
71
71
  }
72
72
  export declare const DEFAULT_DATA_ACCESS_CONFIG: DataAccessAnalyzerConfig;
73
+ /**
74
+ * Extract the set of table names referenced in a SQL/ORM fragment, via the
75
+ * configured `tablePatterns` plus the `.from(...)` / `db.<table>.<method>()`
76
+ * ORM shapes. SQL keywords and aggregates captured in passing are filtered out.
77
+ */
78
+ export declare function extractTables(text: string, config: DataAccessAnalyzerConfig): string[];
73
79
  /**
74
80
  * Universal data access analyzer.
75
81
  */
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalDataAccessAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalDataAccessAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,eAAe,EAAwB,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAsB1B;;GAEG;AACH,MAAM,WAAW,wBAAwB;IAEvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAI5B,SAAS,CAAC,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,IAAI,EAAE,MAAM,CAAC;YACb,cAAc,EAAE,MAAM,EAAE,CAAC;YACzB,aAAa,EAAE,MAAM,EAAE,CAAC;YACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;SACxB,CAAC;KACH,CAAC;IAGF,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAIhC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,KAAK,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAC;aAAE,CAAC,CAAC;SACjD,CAAC,CAAC;KACJ,CAAC,CAAC;IAGH,aAAa,CAAC,EAAE;QACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IAGF,qBAAqB,CAAC,EAAE;QACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IAGF,gBAAgB,CAAC,EAAE;QACjB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC7B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;KACjC,CAAC;IAEF;;gGAE4F;IAC5F,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;qFAEiF;IACjF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,kGAAkG;IAClG,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,oEAAoE;IACpE,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;IAEpC;;+FAE2F;IAC3F,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,0BAA0B,EAAE,wBA4DxC,CAAC;AA8/CF;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,iBAAiB;IAChE,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,mEAAmE;IACvF,QAAQ,CAAC,QAAQ,cAAc;IAE/B,UAAgB,UAAU,CACxB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,wBAAwB,EAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC,CA0CtB;CACF"}
1
+ {"version":3,"file":"UniversalDataAccessAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalDataAccessAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,eAAe,EAAwB,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAuB1B;;GAEG;AACH,MAAM,WAAW,wBAAwB;IAEvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAI5B,SAAS,CAAC,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,IAAI,EAAE,MAAM,CAAC;YACb,cAAc,EAAE,MAAM,EAAE,CAAC;YACzB,aAAa,EAAE,MAAM,EAAE,CAAC;YACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;SACxB,CAAC;KACH,CAAC;IAGF,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAIhC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,KAAK,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAC;aAAE,CAAC,CAAC;SACjD,CAAC,CAAC;KACJ,CAAC,CAAC;IAGH,aAAa,CAAC,EAAE;QACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IAGF,qBAAqB,CAAC,EAAE;QACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IAGF,gBAAgB,CAAC,EAAE;QACjB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC7B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;KACjC,CAAC;IAEF;;gGAE4F;IAC5F,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;qFAEiF;IACjF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,kGAAkG;IAClG,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,oEAAoE;IACpE,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;IAEpC;;+FAE2F;IAC3F,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,0BAA0B,EAAE,wBA4DxC,CAAC;AAm6BF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,GAAG,MAAM,EAAE,CAkCtF;AAwlBD;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,iBAAiB;IAChE,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,mEAAmE;IACvF,QAAQ,CAAC,QAAQ,cAAc;IAE/B,UAAgB,UAAU,CACxB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,wBAAwB,EAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC,CA0CtB;CACF"}