@kernlang/review 3.1.6 → 3.1.7

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 (150) hide show
  1. package/dist/cache.d.ts +1 -1
  2. package/dist/cache.js +5 -3
  3. package/dist/cache.js.map +1 -1
  4. package/dist/call-graph.d.ts +63 -0
  5. package/dist/call-graph.js +380 -0
  6. package/dist/call-graph.js.map +1 -0
  7. package/dist/concept-rules/boundary-mutation.d.ts +1 -1
  8. package/dist/concept-rules/boundary-mutation.js.map +1 -1
  9. package/dist/concept-rules/ignored-error.d.ts +1 -1
  10. package/dist/concept-rules/ignored-error.js.map +1 -1
  11. package/dist/concept-rules/illegal-dependency.d.ts +1 -1
  12. package/dist/concept-rules/illegal-dependency.js.map +1 -1
  13. package/dist/concept-rules/index.js +1 -6
  14. package/dist/concept-rules/index.js.map +1 -1
  15. package/dist/concept-rules/unguarded-effect.d.ts +1 -1
  16. package/dist/concept-rules/unguarded-effect.js.map +1 -1
  17. package/dist/concept-rules/unrecovered-effect.d.ts +1 -1
  18. package/dist/concept-rules/unrecovered-effect.js +2 -1
  19. package/dist/concept-rules/unrecovered-effect.js.map +1 -1
  20. package/dist/confidence.js +12 -8
  21. package/dist/confidence.js.map +1 -1
  22. package/dist/differ.js +3 -7
  23. package/dist/differ.js.map +1 -1
  24. package/dist/external-tools.js +5 -6
  25. package/dist/external-tools.js.map +1 -1
  26. package/dist/file-context.d.ts +21 -0
  27. package/dist/file-context.js +234 -0
  28. package/dist/file-context.js.map +1 -0
  29. package/dist/file-role.js +14 -7
  30. package/dist/file-role.js.map +1 -1
  31. package/dist/graph.d.ts +1 -1
  32. package/dist/graph.js +24 -16
  33. package/dist/graph.js.map +1 -1
  34. package/dist/index.d.ts +44 -35
  35. package/dist/index.js +210 -121
  36. package/dist/index.js.map +1 -1
  37. package/dist/inferrer.d.ts +8 -2
  38. package/dist/inferrer.js +80 -47
  39. package/dist/inferrer.js.map +1 -1
  40. package/dist/kern-lint.d.ts +3 -4
  41. package/dist/kern-lint.js +7 -5
  42. package/dist/kern-lint.js.map +1 -1
  43. package/dist/llm-bridge.d.ts +23 -7
  44. package/dist/llm-bridge.js +267 -31
  45. package/dist/llm-bridge.js.map +1 -1
  46. package/dist/llm-review.d.ts +16 -2
  47. package/dist/llm-review.js +240 -35
  48. package/dist/llm-review.js.map +1 -1
  49. package/dist/mappers/ts-concepts.d.ts +1 -1
  50. package/dist/mappers/ts-concepts.js +303 -32
  51. package/dist/mappers/ts-concepts.js.map +1 -1
  52. package/dist/norm-miner.d.ts +31 -0
  53. package/dist/norm-miner.js +119 -0
  54. package/dist/norm-miner.js.map +1 -0
  55. package/dist/obligations.d.ts +63 -0
  56. package/dist/obligations.js +158 -0
  57. package/dist/obligations.js.map +1 -0
  58. package/dist/quality-rules.d.ts +3 -3
  59. package/dist/quality-rules.js +4 -2
  60. package/dist/quality-rules.js.map +1 -1
  61. package/dist/reporter.d.ts +7 -2
  62. package/dist/reporter.js +82 -51
  63. package/dist/reporter.js.map +1 -1
  64. package/dist/rule-eval.d.ts +1 -2
  65. package/dist/rule-eval.js +5 -9
  66. package/dist/rule-eval.js.map +1 -1
  67. package/dist/rule-loader.js +16 -14
  68. package/dist/rule-loader.js.map +1 -1
  69. package/dist/rules/base.js +153 -69
  70. package/dist/rules/base.js.map +1 -1
  71. package/dist/rules/cli.js +23 -19
  72. package/dist/rules/cli.js.map +1 -1
  73. package/dist/rules/confidence.d.ts +1 -1
  74. package/dist/rules/confidence.js +5 -5
  75. package/dist/rules/confidence.js.map +1 -1
  76. package/dist/rules/dead-code.d.ts +10 -0
  77. package/dist/rules/dead-code.js +75 -0
  78. package/dist/rules/dead-code.js.map +1 -0
  79. package/dist/rules/dead-logic.js +35 -31
  80. package/dist/rules/dead-logic.js.map +1 -1
  81. package/dist/rules/express.d.ts +2 -1
  82. package/dist/rules/express.js +380 -126
  83. package/dist/rules/express.js.map +1 -1
  84. package/dist/rules/fastapi.js +53 -19
  85. package/dist/rules/fastapi.js.map +1 -1
  86. package/dist/rules/ground-layer.js +3 -3
  87. package/dist/rules/ground-layer.js.map +1 -1
  88. package/dist/rules/index.js +574 -105
  89. package/dist/rules/index.js.map +1 -1
  90. package/dist/rules/ink.js +9 -8
  91. package/dist/rules/ink.js.map +1 -1
  92. package/dist/rules/kern-source.js +202 -63
  93. package/dist/rules/kern-source.js.map +1 -1
  94. package/dist/rules/nextjs.js +88 -33
  95. package/dist/rules/nextjs.js.map +1 -1
  96. package/dist/rules/null-safety.js +52 -26
  97. package/dist/rules/null-safety.js.map +1 -1
  98. package/dist/rules/nuxt.js +24 -29
  99. package/dist/rules/nuxt.js.map +1 -1
  100. package/dist/rules/react.js +355 -69
  101. package/dist/rules/react.js.map +1 -1
  102. package/dist/rules/security-v2.js +71 -57
  103. package/dist/rules/security-v2.js.map +1 -1
  104. package/dist/rules/security-v3.js.map +1 -1
  105. package/dist/rules/security-v4.js +54 -27
  106. package/dist/rules/security-v4.js.map +1 -1
  107. package/dist/rules/security.js +35 -5
  108. package/dist/rules/security.js.map +1 -1
  109. package/dist/rules/terminal.js +17 -5
  110. package/dist/rules/terminal.js.map +1 -1
  111. package/dist/rules/vue.js +162 -107
  112. package/dist/rules/vue.js.map +1 -1
  113. package/dist/semantic-diff.d.ts +52 -0
  114. package/dist/semantic-diff.js +342 -0
  115. package/dist/semantic-diff.js.map +1 -0
  116. package/dist/spec-checker.js +11 -10
  117. package/dist/spec-checker.js.map +1 -1
  118. package/dist/suppression/apply-suppression.d.ts +2 -3
  119. package/dist/suppression/apply-suppression.js +3 -3
  120. package/dist/suppression/apply-suppression.js.map +1 -1
  121. package/dist/suppression/index.d.ts +2 -2
  122. package/dist/suppression/index.js +1 -1
  123. package/dist/suppression/index.js.map +1 -1
  124. package/dist/suppression/parse-directives.d.ts +1 -1
  125. package/dist/suppression/parse-directives.js +9 -4
  126. package/dist/suppression/parse-directives.js.map +1 -1
  127. package/dist/taint-ast.d.ts +20 -0
  128. package/dist/taint-ast.js +427 -0
  129. package/dist/taint-ast.js.map +1 -0
  130. package/dist/taint-crossfile.d.ts +28 -0
  131. package/dist/taint-crossfile.js +174 -0
  132. package/dist/taint-crossfile.js.map +1 -0
  133. package/dist/taint-findings.d.ts +17 -0
  134. package/dist/taint-findings.js +131 -0
  135. package/dist/taint-findings.js.map +1 -0
  136. package/dist/taint-regex.d.ts +61 -0
  137. package/dist/taint-regex.js +379 -0
  138. package/dist/taint-regex.js.map +1 -0
  139. package/dist/taint-types.d.ts +128 -0
  140. package/dist/taint-types.js +174 -0
  141. package/dist/taint-types.js.map +1 -0
  142. package/dist/taint.d.ts +13 -107
  143. package/dist/taint.js +16 -1067
  144. package/dist/taint.js.map +1 -1
  145. package/dist/template-detector.d.ts +2 -2
  146. package/dist/template-detector.js +11 -16
  147. package/dist/template-detector.js.map +1 -1
  148. package/dist/types.d.ts +35 -0
  149. package/dist/types.js.map +1 -1
  150. package/package.json +2 -2
@@ -4,27 +4,48 @@
4
4
  * Phase 1: error_raise, error_handle, effect
5
5
  * Phase 2: entrypoint, guard, state_mutation, call, dependency
6
6
  */
7
- import { SyntaxKind } from 'ts-morph';
8
7
  import { conceptId, conceptSpan } from '@kernlang/core';
8
+ import { SyntaxKind } from 'ts-morph';
9
9
  const EXTRACTOR_VERSION = '1.0.0';
10
10
  // ── Network effect signatures ────────────────────────────────────────────
11
- const NETWORK_CALLS = new Set([
12
- 'fetch', 'axios', 'got', 'request', 'superagent', 'ky',
13
- ]);
14
- const NETWORK_METHODS = new Set([
15
- 'get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'request',
16
- ]);
11
+ const NETWORK_CALLS = new Set(['fetch', 'axios', 'got', 'request', 'superagent', 'ky']);
12
+ const NETWORK_METHODS = new Set(['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'request']);
17
13
  const DB_CALLS = new Set([
18
- 'query', 'execute', 'findMany', 'findFirst', 'findUnique',
19
- 'create', 'update', 'delete', 'upsert', 'aggregate',
20
- 'insertOne', 'insertMany', 'updateOne', 'updateMany', 'deleteOne', 'deleteMany',
21
- 'find', 'findOne', 'countDocuments',
14
+ 'query',
15
+ 'execute',
16
+ 'findMany',
17
+ 'findFirst',
18
+ 'findUnique',
19
+ 'create',
20
+ 'update',
21
+ 'delete',
22
+ 'upsert',
23
+ 'aggregate',
24
+ 'insertOne',
25
+ 'insertMany',
26
+ 'updateOne',
27
+ 'updateMany',
28
+ 'deleteOne',
29
+ 'deleteMany',
30
+ 'find',
31
+ 'findOne',
32
+ 'countDocuments',
22
33
  ]);
23
34
  const FS_CALLS = new Set([
24
- 'readFile', 'readFileSync', 'writeFile', 'writeFileSync',
25
- 'readdir', 'readdirSync', 'mkdir', 'mkdirSync',
26
- 'unlink', 'unlinkSync', 'rename', 'renameSync',
27
- 'createReadStream', 'createWriteStream',
35
+ 'readFile',
36
+ 'readFileSync',
37
+ 'writeFile',
38
+ 'writeFileSync',
39
+ 'readdir',
40
+ 'readdirSync',
41
+ 'mkdir',
42
+ 'mkdirSync',
43
+ 'unlink',
44
+ 'unlinkSync',
45
+ 'rename',
46
+ 'renameSync',
47
+ 'createReadStream',
48
+ 'createWriteStream',
28
49
  ]);
29
50
  // ── Main Extractor ───────────────────────────────────────────────────────
30
51
  export function extractTsConcepts(sourceFile, filePath) {
@@ -34,9 +55,11 @@ export function extractTsConcepts(sourceFile, filePath) {
34
55
  extractErrorHandle(sourceFile, filePath, nodes);
35
56
  extractEffects(sourceFile, filePath, nodes);
36
57
  extractEntrypoints(sourceFile, filePath, nodes);
58
+ extractNextjsHandlers(sourceFile, filePath, nodes);
37
59
  extractGuards(sourceFile, filePath, nodes);
38
60
  extractStateMutation(sourceFile, filePath, nodes);
39
61
  extractFunctionDeclarations(sourceFile, filePath, nodes);
62
+ extractReactWrapperComponents(sourceFile, filePath, nodes);
40
63
  extractDependencyEdges(sourceFile, filePath, edges);
41
64
  return {
42
65
  filePath,
@@ -51,7 +74,7 @@ function extractErrorRaise(sf, filePath, nodes) {
51
74
  // throw statements
52
75
  for (const throwStmt of sf.getDescendantsOfKind(SyntaxKind.ThrowStatement)) {
53
76
  const start = throwStmt.getStart();
54
- const line = throwStmt.getStartLineNumber();
77
+ const _line = throwStmt.getStartLineNumber();
55
78
  const errorType = extractThrowType(throwStmt);
56
79
  nodes.push({
57
80
  id: conceptId(filePath, 'error_raise', start),
@@ -161,7 +184,7 @@ function classifyDisposition(stmts, errorVar, block) {
161
184
  }
162
185
  return { type: 'ignored', confidence: 1.0 };
163
186
  }
164
- const bodyText = stmts.map(s => s.getText()).join('\n');
187
+ const bodyText = stmts.map((s) => s.getText()).join('\n');
165
188
  // Check for rethrow
166
189
  if (bodyText.includes('throw')) {
167
190
  // throw new XError(err) → wrapped (use word boundary to avoid 'e' matching 'HttpException')
@@ -294,8 +317,8 @@ function extractEntrypoints(sf, filePath, nodes) {
294
317
  if (decl.getKind() === SyntaxKind.FunctionDeclaration) {
295
318
  const fn = decl;
296
319
  const params = fn.getParameters();
297
- const paramNames = params.map(p => p.getName());
298
- const isHandler = paramNames.some(n => /req|request|ctx|context|event/i.test(n));
320
+ const paramNames = params.map((p) => p.getName());
321
+ const isHandler = paramNames.some((n) => /req|request|ctx|context|event/i.test(n));
299
322
  const isComponent = fn.getName()?.[0]?.toUpperCase() === fn.getName()?.[0];
300
323
  if (isHandler || isComponent) {
301
324
  nodes.push({
@@ -316,6 +339,159 @@ function extractEntrypoints(sf, filePath, nodes) {
316
339
  }
317
340
  }
318
341
  }
342
+ // ── Next.js handlers & server actions ────────────────────────────────────
343
+ const NEXTJS_HTTP_METHODS = new Set(['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS']);
344
+ function hasUseServerDirective(sf) {
345
+ const text = sf.getFullText();
346
+ return /^\s*['"]use server['"];?\s*$/m.test(text.substring(0, 200));
347
+ }
348
+ function extractNextjsHandlers(sf, filePath, nodes) {
349
+ // Track offsets we already emitted as entrypoints, to avoid duplication with extractEntrypoints
350
+ const emittedOffsets = new Set();
351
+ // 1. App Router API route handlers: export async function GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS
352
+ for (const [name, decls] of sf.getExportedDeclarations()) {
353
+ if (!NEXTJS_HTTP_METHODS.has(name))
354
+ continue;
355
+ for (const decl of decls) {
356
+ if (decl.getKind() !== SyntaxKind.FunctionDeclaration)
357
+ continue;
358
+ const fn = decl;
359
+ emittedOffsets.add(fn.getStart());
360
+ nodes.push({
361
+ id: conceptId(filePath, 'entrypoint', fn.getStart()),
362
+ kind: 'entrypoint',
363
+ primarySpan: span(filePath, fn),
364
+ evidence: fn.getText().substring(0, 120),
365
+ confidence: 0.95,
366
+ language: 'ts',
367
+ payload: {
368
+ kind: 'entrypoint',
369
+ subtype: 'route',
370
+ name,
371
+ httpMethod: name,
372
+ },
373
+ });
374
+ }
375
+ }
376
+ // 2. Pages Router: default export with NextApiRequest/NextApiResponse params OR file in api/ path
377
+ const isApiPath = /\/api\//.test(filePath) || /\/pages\/api\//.test(filePath);
378
+ for (const [name, decls] of sf.getExportedDeclarations()) {
379
+ if (name !== 'default')
380
+ continue;
381
+ for (const decl of decls) {
382
+ if (decl.getKind() !== SyntaxKind.FunctionDeclaration)
383
+ continue;
384
+ const fn = decl;
385
+ if (emittedOffsets.has(fn.getStart()))
386
+ continue;
387
+ const params = fn.getParameters();
388
+ const paramTypes = params.map((p) => p.getType().getText()).join(',');
389
+ const hasNextApiParams = /NextApiRequest|NextApiResponse/.test(paramTypes) ||
390
+ /NextApiRequest|NextApiResponse/.test(params.map((p) => p.getText()).join(','));
391
+ if (hasNextApiParams || isApiPath) {
392
+ emittedOffsets.add(fn.getStart());
393
+ nodes.push({
394
+ id: conceptId(filePath, 'entrypoint', fn.getStart()),
395
+ kind: 'entrypoint',
396
+ primarySpan: span(filePath, fn),
397
+ evidence: fn.getText().substring(0, 120),
398
+ confidence: hasNextApiParams ? 0.95 : 0.85,
399
+ language: 'ts',
400
+ payload: {
401
+ kind: 'entrypoint',
402
+ subtype: 'handler',
403
+ name: fn.getName() || 'default',
404
+ },
405
+ });
406
+ }
407
+ }
408
+ }
409
+ // 3. Server actions: files with 'use server' directive — all exported async functions are server actions
410
+ if (hasUseServerDirective(sf)) {
411
+ for (const [name, decls] of sf.getExportedDeclarations()) {
412
+ if (name === 'default')
413
+ continue;
414
+ for (const decl of decls) {
415
+ if (decl.getKind() !== SyntaxKind.FunctionDeclaration)
416
+ continue;
417
+ const fn = decl;
418
+ if (!fn.isAsync())
419
+ continue;
420
+ if (emittedOffsets.has(fn.getStart()))
421
+ continue;
422
+ nodes.push({
423
+ id: conceptId(filePath, 'entrypoint', fn.getStart()),
424
+ kind: 'entrypoint',
425
+ primarySpan: span(filePath, fn),
426
+ evidence: fn.getText().substring(0, 120),
427
+ confidence: 0.95,
428
+ language: 'ts',
429
+ payload: {
430
+ kind: 'entrypoint',
431
+ subtype: 'handler',
432
+ name: fn.getName() || name,
433
+ },
434
+ });
435
+ }
436
+ }
437
+ }
438
+ }
439
+ // ── React wrapper components (memo, forwardRef) ─────────────────────────
440
+ const REACT_WRAPPERS = new Set(['memo', 'forwardRef']);
441
+ const REACT_QUALIFIED_WRAPPERS = new Set(['React.memo', 'React.forwardRef']);
442
+ function extractReactWrapperComponents(sf, filePath, nodes) {
443
+ // Detect: const MyComponent = React.memo(() => { ... })
444
+ // const MyComponent = memo(() => { ... })
445
+ // const MyComponent = React.forwardRef((props, ref) => { ... })
446
+ // const MyComponent = forwardRef((props, ref) => { ... })
447
+ //
448
+ // These are NOT caught by extractFunctionDeclarations because the initializer
449
+ // is a CallExpression, not ArrowFunction/FunctionExpression.
450
+ for (const varDecl of sf.getDescendantsOfKind(SyntaxKind.VariableDeclaration)) {
451
+ const init = varDecl.getInitializer();
452
+ if (!init || init.getKind() !== SyntaxKind.CallExpression)
453
+ continue;
454
+ const call = init;
455
+ const calleeText = call.getExpression().getText();
456
+ // Check if the callee is a known React wrapper
457
+ const isWrapper = REACT_WRAPPERS.has(calleeText) || REACT_QUALIFIED_WRAPPERS.has(calleeText);
458
+ if (!isWrapper)
459
+ continue;
460
+ const name = varDecl.getName();
461
+ // React components must start with uppercase
462
+ if (!/^[A-Z]/.test(name))
463
+ continue;
464
+ const args = call.getArguments();
465
+ if (args.length === 0)
466
+ continue;
467
+ // The first argument should be an arrow function or function expression
468
+ const innerFn = args[0];
469
+ const innerKind = innerFn.getKind();
470
+ if (innerKind !== SyntaxKind.ArrowFunction && innerKind !== SyntaxKind.FunctionExpression)
471
+ continue;
472
+ const fn = innerFn;
473
+ const isAsync = fn.isAsync?.() ?? /^async\s/.test(fn.getText());
474
+ const varStmt = varDecl.getParent()?.getParent();
475
+ const isExport = varStmt ? /^export\s/.test(varStmt.getText()) : false;
476
+ nodes.push({
477
+ id: conceptId(filePath, 'function_declaration', varDecl.getStart()),
478
+ kind: 'function_declaration',
479
+ primarySpan: span(filePath, varDecl),
480
+ evidence: `${calleeText}(${name})`,
481
+ confidence: 0.9,
482
+ language: 'ts',
483
+ containerId: getContainerId(varDecl, filePath),
484
+ payload: {
485
+ kind: 'function_declaration',
486
+ name,
487
+ async: isAsync,
488
+ hasAwait: isAsync ? hasAwaitInBody(fn) : false,
489
+ isComponent: true,
490
+ isExport,
491
+ },
492
+ });
493
+ }
494
+ }
319
495
  // ── guard ────────────────────────────────────────────────────────────────
320
496
  const AUTH_KEYWORDS = /auth|session|token|user|role|permission|admin|login|credential/i;
321
497
  const VALIDATION_CALLS = new Set(['parse', 'safeParse', 'validate', 'validateSync', 'check']);
@@ -328,8 +504,11 @@ function extractGuards(sf, filePath, nodes) {
328
504
  const thenBlock = ifStmt.getThenStatement();
329
505
  const thenText = thenBlock.getText();
330
506
  // Must be early exit (return, throw, or response with 401/403)
331
- const isEarlyExit = thenText.includes('return') || thenText.includes('throw') ||
332
- thenText.includes('401') || thenText.includes('403') || thenText.includes('redirect');
507
+ const isEarlyExit = thenText.includes('return') ||
508
+ thenText.includes('throw') ||
509
+ thenText.includes('401') ||
510
+ thenText.includes('403') ||
511
+ thenText.includes('redirect');
333
512
  if (!isEarlyExit)
334
513
  continue;
335
514
  nodes.push({
@@ -371,9 +550,7 @@ function extractStateMutation(sf, filePath, nodes) {
371
550
  // this.x = ..., this.x++, this.x += ...
372
551
  for (const binExpr of sf.getDescendantsOfKind(SyntaxKind.BinaryExpression)) {
373
552
  const op = binExpr.getOperatorToken().getKind();
374
- if (op !== SyntaxKind.EqualsToken &&
375
- op !== SyntaxKind.PlusEqualsToken &&
376
- op !== SyntaxKind.MinusEqualsToken)
553
+ if (op !== SyntaxKind.EqualsToken && op !== SyntaxKind.PlusEqualsToken && op !== SyntaxKind.MinusEqualsToken)
377
554
  continue;
378
555
  const leftText = binExpr.getLeft().getText();
379
556
  if (!leftText.includes('.'))
@@ -432,7 +609,7 @@ function extractStateMutation(sf, filePath, nodes) {
432
609
  const NON_STATE_SETTERS = /^(setTimeout|setInterval|setImmediate|setAttribute|setProperty|setHeader|setRequestHeader|setItem|setCustomValidity)$/;
433
610
  for (const call of sf.getDescendantsOfKind(SyntaxKind.CallExpression)) {
434
611
  const calleeText = call.getExpression().getText();
435
- let target = calleeText;
612
+ const target = calleeText;
436
613
  let scope = 'local';
437
614
  let api;
438
615
  let isStateMutation = false;
@@ -577,7 +754,7 @@ function extractFunctionDeclarations(sf, filePath, nodes) {
577
754
  kind: 'function_declaration',
578
755
  primarySpan: span(filePath, varDecl),
579
756
  evidence: `${isAsync ? 'async ' : ''}${name}`,
580
- confidence: 0.90,
757
+ confidence: 0.9,
581
758
  language: 'ts',
582
759
  containerId: getContainerId(varDecl, filePath),
583
760
  payload: {
@@ -590,12 +767,94 @@ function extractFunctionDeclarations(sf, filePath, nodes) {
590
767
  },
591
768
  });
592
769
  }
770
+ // Express route handler arrow/function callbacks: router.get('/path', async (req, res) => { ... })
771
+ // These are NOT assigned to named variables, so the block above misses them.
772
+ // We synthesize a function name from the HTTP method + route path.
773
+ extractExpressCallbacks(sf, filePath, nodes);
774
+ }
775
+ // ── Express route handler callbacks ──────────────────────────────────────
776
+ const EXPRESS_ROUTE_METHODS = new Set(['get', 'post', 'put', 'delete', 'patch', 'use', 'all']);
777
+ function extractExpressCallbacks(sf, filePath, nodes) {
778
+ // Track offsets already emitted as function_declaration to avoid duplicates
779
+ const emittedOffsets = new Set();
780
+ for (const n of nodes) {
781
+ if (n.kind === 'function_declaration')
782
+ emittedOffsets.add(n.primarySpan.startLine);
783
+ }
784
+ for (const call of sf.getDescendantsOfKind(SyntaxKind.CallExpression)) {
785
+ const callee = call.getExpression();
786
+ if (callee.getKind() !== SyntaxKind.PropertyAccessExpression)
787
+ continue;
788
+ const pa = callee;
789
+ const methodName = pa.getName();
790
+ if (!EXPRESS_ROUTE_METHODS.has(methodName))
791
+ continue;
792
+ const objText = pa.getExpression().getText();
793
+ if (!/app|router|server/i.test(objText))
794
+ continue;
795
+ const args = call.getArguments();
796
+ if (args.length < 2)
797
+ continue;
798
+ // Extract route path from first argument (string literal)
799
+ let routePath;
800
+ if (args[0].getKind() === SyntaxKind.StringLiteral) {
801
+ routePath = args[0].getLiteralValue();
802
+ }
803
+ // Check all arguments after the first for arrow functions / function expressions
804
+ for (let i = 1; i < args.length; i++) {
805
+ const arg = args[i];
806
+ const argKind = arg.getKind();
807
+ if (argKind !== SyntaxKind.ArrowFunction && argKind !== SyntaxKind.FunctionExpression)
808
+ continue;
809
+ const fn = arg;
810
+ const offset = fn.getStart();
811
+ // Skip if already emitted (e.g., assigned to a variable first)
812
+ if (emittedOffsets.has(fn.getStartLineNumber()))
813
+ continue;
814
+ const syntheticName = `${methodName.toUpperCase()}_${routePath || '/'}`;
815
+ const isAsync = fn.isAsync?.() ?? /^async\s/.test(fn.getText());
816
+ nodes.push({
817
+ id: conceptId(filePath, 'function_declaration', offset),
818
+ kind: 'function_declaration',
819
+ primarySpan: span(filePath, fn),
820
+ evidence: `${isAsync ? 'async ' : ''}${syntheticName}`,
821
+ confidence: 0.85,
822
+ language: 'ts',
823
+ containerId: getContainerId(fn, filePath),
824
+ payload: {
825
+ kind: 'function_declaration',
826
+ name: syntheticName,
827
+ async: isAsync,
828
+ hasAwait: isAsync ? hasAwaitInBody(fn) : false,
829
+ isComponent: false,
830
+ isExport: false,
831
+ },
832
+ });
833
+ }
834
+ }
593
835
  }
594
836
  // ── dependency edges ─────────────────────────────────────────────────────
595
837
  const NODE_STDLIB = new Set([
596
- 'fs', 'path', 'os', 'http', 'https', 'url', 'util', 'crypto',
597
- 'events', 'stream', 'buffer', 'child_process', 'cluster', 'net',
598
- 'dns', 'tls', 'zlib', 'readline', 'assert', 'querystring',
838
+ 'fs',
839
+ 'path',
840
+ 'os',
841
+ 'http',
842
+ 'https',
843
+ 'url',
844
+ 'util',
845
+ 'crypto',
846
+ 'events',
847
+ 'stream',
848
+ 'buffer',
849
+ 'child_process',
850
+ 'cluster',
851
+ 'net',
852
+ 'dns',
853
+ 'tls',
854
+ 'zlib',
855
+ 'readline',
856
+ 'assert',
857
+ 'querystring',
599
858
  ]);
600
859
  function extractDependencyEdges(sf, filePath, edges) {
601
860
  for (const imp of sf.getImportDeclarations()) {
@@ -627,8 +886,19 @@ function span(filePath, node) {
627
886
  }
628
887
  // Incidental HOF callbacks — these are NOT logical containers
629
888
  const SKIP_CALLBACKS = new Set([
630
- 'forEach', 'map', 'filter', 'reduce', 'some', 'every',
631
- 'find', 'findIndex', 'flatMap', 'sort', 'then', 'catch', 'finally',
889
+ 'forEach',
890
+ 'map',
891
+ 'filter',
892
+ 'reduce',
893
+ 'some',
894
+ 'every',
895
+ 'find',
896
+ 'findIndex',
897
+ 'flatMap',
898
+ 'sort',
899
+ 'then',
900
+ 'catch',
901
+ 'finally',
632
902
  ]);
633
903
  function getContainerId(node, filePath) {
634
904
  let parent = node.getParent();
@@ -692,7 +962,8 @@ function extractTarget(call) {
692
962
  if (first.getKind() === SyntaxKind.StringLiteral) {
693
963
  return first.getLiteralValue();
694
964
  }
695
- if (first.getKind() === SyntaxKind.TemplateExpression || first.getKind() === SyntaxKind.NoSubstitutionTemplateLiteral) {
965
+ if (first.getKind() === SyntaxKind.TemplateExpression ||
966
+ first.getKind() === SyntaxKind.NoSubstitutionTemplateLiteral) {
696
967
  return first.getText().substring(0, 80);
697
968
  }
698
969
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ts-concepts.js","sourceRoot":"","sources":["../../src/mappers/ts-concepts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ts-concepts.js","sourceRoot":"","sources":["../../src/mappers/ts-concepts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Norm Miner — discovers implicit coding norms from peer function clusters.
3
+ *
4
+ * Groups function_declaration concepts by their child concept profile (e.g.,
5
+ * "has effect + error_handle" vs "has effect, no error_handle") and flags
6
+ * outliers that violate the majority pattern.
7
+ *
8
+ * Softened peer norms: clusters of 2 are allowed for effect-bearing functions
9
+ * (MIN_CLUSTER_SIZE = 2 for *:effect, 3 for *:pure).
10
+ */
11
+ import type { ConceptMap, ConceptNode, ConceptNodeKind } from '@kernlang/core';
12
+ export interface NormViolation {
13
+ /** The function concept node that violates the norm */
14
+ functionNode: ConceptNode;
15
+ /** Norm that was violated: e.g., "functions with network effect should have error_handle" */
16
+ norm: string;
17
+ /** What the function is missing */
18
+ missingKind: ConceptNodeKind;
19
+ /** How many peers follow the norm */
20
+ peerCount: number;
21
+ /** Prevalence of the norm (0-1) */
22
+ prevalence: number;
23
+ /** Whether this norm was derived from a small cluster (< 3 peers) */
24
+ weakNorm?: boolean;
25
+ }
26
+ /**
27
+ * Mine peer norms from a set of concept maps.
28
+ * Clusters functions by their effect profile, then checks whether
29
+ * the majority pattern (e.g., "has error_handle") is violated by outliers.
30
+ */
31
+ export declare function mineNorms(allConcepts: Map<string, ConceptMap>): NormViolation[];