code-auditor-mcp 3.8.1 → 3.9.1

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 (175) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +89 -0
  3. package/README.md +12 -0
  4. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.d.ts +14 -0
  5. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.d.ts.map +1 -0
  6. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.js +16 -0
  7. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.js.map +1 -0
  8. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.d.ts +15 -0
  9. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.d.ts.map +1 -0
  10. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.js +17 -0
  11. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.js.map +1 -0
  12. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts +14 -0
  13. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts.map +1 -0
  14. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js +13 -0
  15. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js.map +1 -0
  16. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts +24 -0
  17. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts.map +1 -0
  18. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js +19 -0
  19. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js.map +1 -0
  20. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts +19 -0
  21. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts.map +1 -0
  22. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.js +19 -0
  23. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.js.map +1 -0
  24. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts +17 -0
  25. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts.map +1 -0
  26. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js +19 -0
  27. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js.map +1 -0
  28. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts +25 -0
  29. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts.map +1 -0
  30. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js +21 -0
  31. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js.map +1 -0
  32. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.d.ts +15 -0
  33. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.d.ts.map +1 -0
  34. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.js +19 -0
  35. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.js.map +1 -0
  36. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.d.ts +14 -0
  37. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.d.ts.map +1 -0
  38. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.js +14 -0
  39. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.js.map +1 -0
  40. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts +15 -0
  41. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts.map +1 -0
  42. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js +16 -0
  43. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js.map +1 -0
  44. package/dist/analyzers/applicability.d.ts +38 -0
  45. package/dist/analyzers/applicability.d.ts.map +1 -1
  46. package/dist/analyzers/applicability.js +55 -0
  47. package/dist/analyzers/applicability.js.map +1 -1
  48. package/dist/analyzers/cross-language/SchemaValidator.d.ts +11 -0
  49. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  50. package/dist/analyzers/cross-language/SchemaValidator.js +28 -52
  51. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  52. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +1 -1
  53. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +1 -1
  54. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +7 -0
  55. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  56. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +110 -4
  57. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  58. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +9 -2
  59. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  60. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +65 -3
  61. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  62. package/dist/analyzers/universal/schema/codeAnalysis.d.ts +19 -5
  63. package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
  64. package/dist/analyzers/universal/schema/codeAnalysis.js +36 -13
  65. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
  66. package/dist/analyzers/universal/schema/discovery.js +1 -1
  67. package/dist/analyzers/universal/schema/discovery.js.map +1 -1
  68. package/dist/auditRouter.d.ts.map +1 -1
  69. package/dist/auditRouter.js +0 -2
  70. package/dist/auditRouter.js.map +1 -1
  71. package/dist/cli.js +3 -25
  72. package/dist/cli.js.map +1 -1
  73. package/dist/codeIndexDB.d.ts +3 -5
  74. package/dist/codeIndexDB.d.ts.map +1 -1
  75. package/dist/codeIndexDB.js +10 -40
  76. package/dist/codeIndexDB.js.map +1 -1
  77. package/dist/conventions/conventionMiner.d.ts +3 -3
  78. package/dist/conventions/conventionMiner.d.ts.map +1 -1
  79. package/dist/conventions/conventionMiner.js.map +1 -1
  80. package/dist/generators/AWSQConfigGenerator.js +1 -1
  81. package/dist/generators/AWSQConfigGenerator.js.map +1 -1
  82. package/dist/generators/AiderConfigGenerator.js +1 -1
  83. package/dist/generators/AiderConfigGenerator.js.map +1 -1
  84. package/dist/generators/ClaudeConfigGenerator.js +1 -1
  85. package/dist/generators/ClaudeConfigGenerator.js.map +1 -1
  86. package/dist/generators/ClineConfigGenerator.js +1 -1
  87. package/dist/generators/ClineConfigGenerator.js.map +1 -1
  88. package/dist/generators/CodeiumConfigGenerator.js +1 -1
  89. package/dist/generators/CodeiumConfigGenerator.js.map +1 -1
  90. package/dist/generators/CodexConfigGenerator.js +1 -1
  91. package/dist/generators/CodexConfigGenerator.js.map +1 -1
  92. package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -1
  93. package/dist/generators/ConfigGeneratorFactory.js +2 -0
  94. package/dist/generators/ConfigGeneratorFactory.js.map +1 -1
  95. package/dist/generators/ContinueConfigGenerator.js +1 -1
  96. package/dist/generators/CopilotConfigGenerator.js +1 -1
  97. package/dist/generators/CopilotConfigGenerator.js.map +1 -1
  98. package/dist/generators/CursorConfigGenerator.js +1 -1
  99. package/dist/generators/CursorConfigGenerator.js.map +1 -1
  100. package/dist/generators/GeminiConfigGenerator.js +2 -2
  101. package/dist/generators/GeminiConfigGenerator.js.map +1 -1
  102. package/dist/generators/JetBrainsConfigGenerator.js +1 -1
  103. package/dist/generators/JetBrainsConfigGenerator.js.map +1 -1
  104. package/dist/generators/VSCodeConfigGenerator.js +1 -1
  105. package/dist/generators/VSCodeConfigGenerator.js.map +1 -1
  106. package/dist/generators/ZCodeConfigGenerator.d.ts +21 -0
  107. package/dist/generators/ZCodeConfigGenerator.d.ts.map +1 -0
  108. package/dist/generators/ZCodeConfigGenerator.js +64 -0
  109. package/dist/generators/ZCodeConfigGenerator.js.map +1 -0
  110. package/dist/generators/index.d.ts +3 -2
  111. package/dist/generators/index.d.ts.map +1 -1
  112. package/dist/generators/index.js +3 -2
  113. package/dist/generators/index.js.map +1 -1
  114. package/dist/graph/blastRadius.d.ts +2 -2
  115. package/dist/graph/blastRadius.d.ts.map +1 -1
  116. package/dist/graph/blastRadius.js.map +1 -1
  117. package/dist/graph/callGraph.d.ts +6 -6
  118. package/dist/graph/callGraph.d.ts.map +1 -1
  119. package/dist/graph/callGraph.js.map +1 -1
  120. package/dist/graph/importGraph.d.ts +5 -5
  121. package/dist/graph/importGraph.d.ts.map +1 -1
  122. package/dist/graph/importGraph.js.map +1 -1
  123. package/dist/installer.d.ts.map +1 -1
  124. package/dist/installer.js +8 -0
  125. package/dist/installer.js.map +1 -1
  126. package/dist/languages/LanguageOrchestrator.d.ts +0 -17
  127. package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
  128. package/dist/languages/LanguageOrchestrator.js +23 -50
  129. package/dist/languages/LanguageOrchestrator.js.map +1 -1
  130. package/dist/ledger.d.ts +19 -19
  131. package/dist/ledger.d.ts.map +1 -1
  132. package/dist/ledger.js.map +1 -1
  133. package/dist/mcp-tools/whitelistTools.d.ts +1 -1
  134. package/dist/mcp-tools-shared.js +1 -1
  135. package/dist/mcp-tools-shared.js.map +1 -1
  136. package/dist/mcp.js +4 -3
  137. package/dist/mcp.js.map +1 -1
  138. package/dist/mcpAuditJobs.js.map +1 -1
  139. package/dist/pipeline.d.ts.map +1 -1
  140. package/dist/pipeline.js +12 -1
  141. package/dist/pipeline.js.map +1 -1
  142. package/dist/pipelineAdapters.d.ts.map +1 -1
  143. package/dist/pipelineAdapters.js +14 -3
  144. package/dist/pipelineAdapters.js.map +1 -1
  145. package/dist/search/QueryParser.d.ts.map +1 -1
  146. package/dist/search/QueryParser.js +5 -1
  147. package/dist/search/QueryParser.js.map +1 -1
  148. package/dist/services/auditJobService.d.ts +5 -5
  149. package/dist/services/auditJobService.d.ts.map +1 -1
  150. package/dist/services/auditJobService.js.map +1 -1
  151. package/dist/sqlite/betterSqlite3.d.ts +27 -0
  152. package/dist/sqlite/betterSqlite3.d.ts.map +1 -0
  153. package/dist/sqlite/betterSqlite3.js +79 -0
  154. package/dist/sqlite/betterSqlite3.js.map +1 -0
  155. package/dist/sqlite/driver.d.ts +24 -0
  156. package/dist/sqlite/driver.d.ts.map +1 -0
  157. package/dist/sqlite/driver.js +90 -0
  158. package/dist/sqlite/driver.js.map +1 -0
  159. package/dist/sqlite/nodeSqlite.d.ts +27 -0
  160. package/dist/sqlite/nodeSqlite.d.ts.map +1 -0
  161. package/dist/sqlite/nodeSqlite.js +168 -0
  162. package/dist/sqlite/nodeSqlite.js.map +1 -0
  163. package/dist/sqlite/types.d.ts +52 -0
  164. package/dist/sqlite/types.d.ts.map +1 -0
  165. package/dist/sqlite/types.js +15 -0
  166. package/dist/sqlite/types.js.map +1 -0
  167. package/dist/styles/styleIndexer.d.ts +2 -2
  168. package/dist/styles/styleIndexer.d.ts.map +1 -1
  169. package/dist/styles/styleIndexer.js.map +1 -1
  170. package/dist/workers/auditJobRunner.js +4 -3
  171. package/dist/workers/auditJobRunner.js.map +1 -1
  172. package/package.json +8 -11
  173. package/plugin/.claude-plugin/plugin.json +1 -1
  174. package/plugin/skills/code-auditor/SKILL.md +1 -1
  175. package/server.json +2 -2
@@ -26,6 +26,44 @@ export interface RuleApplicability {
26
26
  */
27
27
  kind?: 'notApplicable' | 'cannot-fire';
28
28
  }
29
+ /**
30
+ * Spec 52 R3 — the whole-program rule class. These rules draw a global
31
+ * conclusion ("table X is never read", "table Y is unknown", "no validator is
32
+ * reachable") that is only sound when every file in the project contributed to
33
+ * the evidence. On a scoped/diff run the evidence is a partial file set, so a
34
+ * fired finding would be an unqualified global claim backed by partial evidence.
35
+ *
36
+ * On a scoped run each of these is suppressed with a `notApplicable` reason
37
+ * naming the scope, rather than firing a claim the partial corpus cannot
38
+ * support. The dependency-graph rules (unreferenced-module, orphaned-nodes,
39
+ * review-orphans) are omitted here because their Stage-4 reducer already
40
+ * short-circuits on `isScoped` with its own `notRunReason`.
41
+ *
42
+ * Option chosen (over "evaluate against the full project index"): suppress.
43
+ * Rationale — a scoped run is a diff gate whose value is low latency; running
44
+ * whole-program detectors against the full index would re-open the ~600ms
45
+ * corpus-wide sweep the scoped gate exists to avoid, and the index is only as
46
+ * fresh as the last full sync, so a "full" answer could still be stale. The
47
+ * honest answer under a partial corpus is "not applicable to this run", surfaced
48
+ * with a reason, not a global claim and not silence.
49
+ *
50
+ * Revisit note: this decision is scoped to a *scoped run without the daemon*.
51
+ * Both of the reasons above are contingent on that context — the index can be
52
+ * stale only because the scoped gate runs ahead of a fresh sync, and the cost is
53
+ * a full corpus sweep only because there is no resident index to read. The
54
+ * daemon removes both: its index is live by construction, and a read of an
55
+ * already-built whole-program fact is not a sweep. Whoever reopens this should
56
+ * evaluate "answer from the live daemon index" as the option-2 path rather than
57
+ * re-deriving why suppression beat a cold re-sweep.
58
+ */
59
+ export declare const WHOLE_PROGRAM_RULES: ReadonlyArray<string>;
60
+ /**
61
+ * Build the `notApplicable` verdicts that suppress the whole-program rule class
62
+ * on a scoped run. Returns an empty map when the run is unscoped — whole-program
63
+ * rules run normally on a full corpus. Extracted as a pure function so the
64
+ * scoped-suppression wiring is unit-testable without spinning up a full pipeline.
65
+ */
66
+ export declare function scopedWholeProgramApplicability(isScoped: boolean, fileCount: number): Map<string, RuleApplicability>;
29
67
  /**
30
68
  * A stylesheet source the style indexer could not read (Spec 45 R5). When any
31
69
  * exist, `styles/undefined-class` still fires — the class has no matching
@@ -1 +1 @@
1
- {"version":3,"file":"applicability.d.ts","sourceRoot":"","sources":["../../src/analyzers/applicability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa,CAAC;CACxC;AAUD;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACrD,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,GAC/B,iBAAiB,GAAG,IAAI,CAS1B"}
1
+ {"version":3,"file":"applicability.d.ts","sourceRoot":"","sources":["../../src/analyzers/applicability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,MAAM,CAKrD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,MAAM,GAChB,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAWhC;AAUD;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACrD,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,GAC/B,iBAAiB,GAAG,IAAI,CAS1B"}
@@ -14,6 +14,61 @@
14
14
  * here would create a pipeline↔analyzer cycle. The pipeline-side convention is
15
15
  * to reach analyzers only through dynamic import() (see pipelineAdapters.ts).
16
16
  */
17
+ /**
18
+ * Spec 52 R3 — the whole-program rule class. These rules draw a global
19
+ * conclusion ("table X is never read", "table Y is unknown", "no validator is
20
+ * reachable") that is only sound when every file in the project contributed to
21
+ * the evidence. On a scoped/diff run the evidence is a partial file set, so a
22
+ * fired finding would be an unqualified global claim backed by partial evidence.
23
+ *
24
+ * On a scoped run each of these is suppressed with a `notApplicable` reason
25
+ * naming the scope, rather than firing a claim the partial corpus cannot
26
+ * support. The dependency-graph rules (unreferenced-module, orphaned-nodes,
27
+ * review-orphans) are omitted here because their Stage-4 reducer already
28
+ * short-circuits on `isScoped` with its own `notRunReason`.
29
+ *
30
+ * Option chosen (over "evaluate against the full project index"): suppress.
31
+ * Rationale — a scoped run is a diff gate whose value is low latency; running
32
+ * whole-program detectors against the full index would re-open the ~600ms
33
+ * corpus-wide sweep the scoped gate exists to avoid, and the index is only as
34
+ * fresh as the last full sync, so a "full" answer could still be stale. The
35
+ * honest answer under a partial corpus is "not applicable to this run", surfaced
36
+ * with a reason, not a global claim and not silence.
37
+ *
38
+ * Revisit note: this decision is scoped to a *scoped run without the daemon*.
39
+ * Both of the reasons above are contingent on that context — the index can be
40
+ * stale only because the scoped gate runs ahead of a fresh sync, and the cost is
41
+ * a full corpus sweep only because there is no resident index to read. The
42
+ * daemon removes both: its index is live by construction, and a read of an
43
+ * already-built whole-program fact is not a sweep. Whoever reopens this should
44
+ * evaluate "answer from the live daemon index" as the option-2 path rather than
45
+ * re-deriving why suppression beat a cold re-sweep.
46
+ */
47
+ export const WHOLE_PROGRAM_RULES = [
48
+ 'cross-domain/written-never-read',
49
+ 'cross-domain/read-never-written',
50
+ 'cross-domain/no-validator-reachable',
51
+ 'unknown-table',
52
+ ];
53
+ /**
54
+ * Build the `notApplicable` verdicts that suppress the whole-program rule class
55
+ * on a scoped run. Returns an empty map when the run is unscoped — whole-program
56
+ * rules run normally on a full corpus. Extracted as a pure function so the
57
+ * scoped-suppression wiring is unit-testable without spinning up a full pipeline.
58
+ */
59
+ export function scopedWholeProgramApplicability(isScoped, fileCount) {
60
+ const map = new Map();
61
+ if (!isScoped)
62
+ return map;
63
+ for (const ruleId of WHOLE_PROGRAM_RULES) {
64
+ map.set(ruleId, {
65
+ applicable: false,
66
+ kind: 'notApplicable',
67
+ reason: `requires whole-project analysis; this run was scoped to ${fileCount} file(s)`,
68
+ });
69
+ }
70
+ return map;
71
+ }
17
72
  /**
18
73
  * Default tenant-scoping column names. The single source of truth is
19
74
  * DEFAULT_DATA_ACCESS_CONFIG.orgFilterColumns in UniversalDataAccessAnalyzer.js;
@@ -1 +1 @@
1
- {"version":3,"file":"applicability.js","sourceRoot":"","sources":["../../src/analyzers/applicability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"applicability.js","sourceRoot":"","sources":["../../src/analyzers/applicability.ts"],"names":[],"mappings":"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"}
@@ -121,4 +121,15 @@ export declare function extractSchemas(entities: CrossLanguageEntity[]): SchemaD
121
121
  * @returns
122
122
  */
123
123
  export declare function isGoValueType(type: string | undefined): boolean;
124
+ export interface UnimplementedSchemaExtraction {
125
+ language: 'protobuf' | 'graphql' | 'json-schema';
126
+ reason: string;
127
+ }
128
+ /**
129
+ * Detect schema-bearing files whose extraction is not implemented yet, so a
130
+ * caller can state the gap as a notApplicable reason ("protobuf extraction not
131
+ * implemented") rather than silently comparing nothing. Returns one entry per
132
+ * distinct unimplemented language present in the corpus.
133
+ */
134
+ export declare function getUnimplementedSchemaExtractions(entities: CrossLanguageEntity[]): UnimplementedSchemaExtraction[];
124
135
  //# sourceMappingURL=SchemaValidator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaValidator.d.ts","sourceRoot":"","sources":["../../../src/analyzers/cross-language/SchemaValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemaValidator.d.ts","sourceRoot":"","sources":["../../../src/analyzers/cross-language/SchemaValidator.ts"],"names":[],"mappings":"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"}
@@ -482,24 +482,11 @@ export function extractSchemas(entities) {
482
482
  if (schema)
483
483
  schemas.push(schema);
484
484
  }
485
- // Protocol buffer definitions
486
- if (entity.file.endsWith('.proto')) {
487
- const schema = extractProtobufMessage(entity);
488
- if (schema)
489
- schemas.push(schema);
490
- }
491
- // GraphQL types
492
- if (entity.file.endsWith('.graphql') || entity.file.endsWith('.gql')) {
493
- const schema = extractGraphQLType(entity);
494
- if (schema)
495
- schemas.push(schema);
496
- }
497
- // JSON Schema
498
- if (entity.file.endsWith('.json') && entity.name.toLowerCase().includes('schema')) {
499
- const schema = extractJSONSchema(entity);
500
- if (schema)
501
- schemas.push(schema);
502
- }
485
+ // protobuf / GraphQL / JSON Schema files are detected but NOT extracted
486
+ // here. Pushing an empty-field schema for them silently degrades a real
487
+ // comparison into a spurious "missing/extra field" or a false "clean".
488
+ // Callers surface them via getUnimplementedSchemaExtractions() as a
489
+ // notApplicable reason ("protobuf extraction not implemented") instead.
503
490
  }
504
491
  return schemas;
505
492
  }
@@ -574,40 +561,29 @@ function extractGoStruct(entity) {
574
561
  fields
575
562
  };
576
563
  }
577
- function extractProtobufMessage(entity) {
578
- // Simplified protobuf extraction
579
- return {
580
- id: entity.id,
581
- name: entity.name,
582
- type: 'protobuf',
583
- language: 'protobuf',
584
- file: entity.file,
585
- line: entity.startLine || 0,
586
- fields: [] // Would parse .proto file in real implementation
587
- };
588
- }
589
- function extractGraphQLType(entity) {
590
- // Simplified GraphQL extraction
591
- return {
592
- id: entity.id,
593
- name: entity.name,
594
- type: 'graphql',
595
- language: 'graphql',
596
- file: entity.file,
597
- line: entity.startLine || 0,
598
- fields: [] // Would parse .graphql file in real implementation
599
- };
600
- }
601
- function extractJSONSchema(entity) {
602
- // Simplified JSON Schema extraction
603
- return {
604
- id: entity.id,
605
- name: entity.name,
606
- type: 'json-schema',
607
- language: 'json',
608
- file: entity.file,
609
- line: entity.startLine || 0,
610
- fields: [] // Would parse JSON schema in real implementation
564
+ /**
565
+ * Detect schema-bearing files whose extraction is not implemented yet, so a
566
+ * caller can state the gap as a notApplicable reason ("protobuf extraction not
567
+ * implemented") rather than silently comparing nothing. Returns one entry per
568
+ * distinct unimplemented language present in the corpus.
569
+ */
570
+ export function getUnimplementedSchemaExtractions(entities) {
571
+ const seen = new Set();
572
+ const result = [];
573
+ const note = (language) => {
574
+ if (seen.has(language))
575
+ return;
576
+ seen.add(language);
577
+ result.push({ language, reason: `${language} extraction not implemented` });
611
578
  };
579
+ for (const entity of entities) {
580
+ if (entity.file.endsWith('.proto'))
581
+ note('protobuf');
582
+ else if (entity.file.endsWith('.graphql') || entity.file.endsWith('.gql'))
583
+ note('graphql');
584
+ else if (entity.file.endsWith('.json') && entity.name.toLowerCase().includes('schema'))
585
+ note('json-schema');
586
+ }
587
+ return result;
612
588
  }
613
589
  //# sourceMappingURL=SchemaValidator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaValidator.js","sourceRoot":"","sources":["../../../src/analyzers/cross-language/SchemaValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemaValidator.js","sourceRoot":"","sources":["../../../src/analyzers/cross-language/SchemaValidator.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  * cross-domain/read-never-written — Table read but never written
10
10
  * cross-domain/multi-table-write — Function writes to too many tables
11
11
  *
12
- * R3 — Validation Bypass (future):
12
+ * R3 — Validation Bypass:
13
13
  * cross-domain/no-validator-reachable — Writer doesn't reach a validator
14
14
  *
15
15
  * R4 — Coverage by Importance:
@@ -9,7 +9,7 @@
9
9
  * cross-domain/read-never-written — Table read but never written
10
10
  * cross-domain/multi-table-write — Function writes to too many tables
11
11
  *
12
- * R3 — Validation Bypass (future):
12
+ * R3 — Validation Bypass:
13
13
  * cross-domain/no-validator-reachable — Writer doesn't reach a validator
14
14
  *
15
15
  * R4 — Coverage by Importance:
@@ -76,6 +76,13 @@ export declare const DEFAULT_DATA_ACCESS_CONFIG: DataAccessAnalyzerConfig;
76
76
  * ORM shapes. SQL keywords and aggregates captured in passing are filtered out.
77
77
  */
78
78
  export declare function extractTables(text: string, config: DataAccessAnalyzerConfig): string[];
79
+ /**
80
+ * True when a SQL statement carries a write verb (INSERT/DELETE/UPDATE/REPLACE).
81
+ * Spec 52 R2: `REPLACE INTO` is an upsert write — matched as a two-word clause
82
+ * (not a bare `REPLACE` word) so the `REPLACE()` string function is not misread
83
+ * as a write.
84
+ */
85
+ export declare function hasWriteVerb(text: string): boolean;
79
86
  /**
80
87
  * Universal data access analyzer.
81
88
  */
@@ -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;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;AAm8BF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,GAAG,MAAM,EAAE,CAkCtF;AA+mBD;;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;AAwiCF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,GAAG,MAAM,EAAE,CAkCtF;AAuFD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIlD;AAshBD;;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"}
@@ -56,7 +56,7 @@ export const DEFAULT_DATA_ACCESS_CONFIG = {
56
56
  /rightJoin\s*\(\s*([\p{L}\p{N}_]+)\s*,/giu,
57
57
  /innerJoin\s*\(\s*([\p{L}\p{N}_]+)\s*,/giu
58
58
  ],
59
- sql: [/INSERT\s+INTO\s+["'`]?([\p{L}\p{N}_]+)["'`]?/giu, /DELETE\s+FROM\s+["'`]?([\p{L}\p{N}_]+)["'`]?/giu, /FROM\s+["'`]?([\p{L}\p{N}_]+)["'`]?/giu, /JOIN\s+["'`]?([\p{L}\p{N}_]+)["'`]?/giu, /UPDATE\s+["'`]?([\p{L}\p{N}_]+)["'`]?/giu],
59
+ sql: [/\b(?:INSERT(?:\s+OR\s+(?:IGNORE|REPLACE))?|REPLACE)\s+INTO\s+["'`]?([\p{L}\p{N}_]+)["'`]?/giu, /DELETE\s+FROM\s+["'`]?([\p{L}\p{N}_]+)["'`]?/giu, /FROM\s+["'`]?([\p{L}\p{N}_]+)["'`]?/giu, /JOIN\s+["'`]?([\p{L}\p{N}_]+)["'`]?/giu, /UPDATE\s+["'`]?([\p{L}\p{N}_]+)["'`]?/giu],
60
60
  queryBuilder: [/\.from\s*\(\s*["'`]?([\p{L}\p{N}_]+)["'`]?\s*\)/giu]
61
61
  },
62
62
  performanceThresholds: {
@@ -565,6 +565,104 @@ function memberPropertyName(node, adapter, sourceCode) {
565
565
  const prop = adapter.getChildren(node).find(c => adapter.getNodeType(c) === 'property_identifier');
566
566
  return prop ? adapter.getNodeText(prop, sourceCode) : null;
567
567
  }
568
+ /**
569
+ * True when a member_expression is the `Promise.all` global, not a D1 `.all()`
570
+ * call. `hasEagerMethodInCallChain` walks up an argument chain, so a
571
+ * `Promise.all([db.prepare(x).bind(y)])` would otherwise mistake `Promise.all`'s
572
+ * "all" property for the eager D1 read method (Spec 52 R1). `Promise` is the
573
+ * only collision in the eager set — none of run/first/raw/exec/batch are
574
+ * Promise methods.
575
+ */
576
+ function isPromiseAllMember(memberExpr, adapter, sourceCode) {
577
+ if (memberPropertyName(memberExpr, adapter, sourceCode) !== 'all')
578
+ return false;
579
+ const objectNode = adapter.getChildren(memberExpr).find(c => adapter.getNodeType(c) !== 'property_identifier');
580
+ if (!objectNode)
581
+ return false;
582
+ const text = adapter.getNodeText(objectNode, sourceCode);
583
+ return text === 'Promise' || text.endsWith('.Promise');
584
+ }
585
+ /**
586
+ * Resolve a db-call node to its call_expression. A template_string db node (the
587
+ * SQL argument) resolves to its enclosing call; a call_expression node is
588
+ * returned as-is. Returns null when the node is neither.
589
+ */
590
+ function resolveDbCallNode(node, adapter) {
591
+ if (adapter.getNodeType(node) === 'template_string') {
592
+ const args = adapter.getParent(node);
593
+ if (!args || adapter.getNodeType(args) !== 'arguments')
594
+ return null;
595
+ const parentCall = adapter.getParent(args);
596
+ if (!parentCall || adapter.getNodeType(parentCall) !== 'call_expression')
597
+ return null;
598
+ return parentCall;
599
+ }
600
+ if (adapter.getNodeType(node) === 'call_expression')
601
+ return node;
602
+ return null;
603
+ }
604
+ /**
605
+ * The DB method a db-call node invokes, or null when the node is not a member
606
+ * call. Identifier-wrapper calls (`query(...)`, `sql(...)`) have no member
607
+ * callee and return null; a template_string db node resolves to its parent
608
+ * call first.
609
+ */
610
+ function dbCallMethodName(node, adapter, sourceCode) {
611
+ const call = resolveDbCallNode(node, adapter);
612
+ if (!call)
613
+ return null;
614
+ const memberExpr = findMemberCallee(call, adapter);
615
+ return memberExpr ? memberPropertyName(memberExpr, adapter, sourceCode) : null;
616
+ }
617
+ /**
618
+ * DB methods that execute I/O immediately (as opposed to `.prepare()`/`.bind()`,
619
+ * which only construct a statement object). Used to decide whether a
620
+ * prepare/bind call is chained into an eager execution.
621
+ */
622
+ const EAGER_DB_METHODS = new Set(['run', 'all', 'first', 'raw', 'exec', 'batch', 'query']);
623
+ /**
624
+ * True when `node` (a `.prepare()`/`.bind()` call) is chained into an eager
625
+ * method — e.g. `db.prepare(sql).bind(x).run()`. The `.run()` at the end of the
626
+ * chain executes I/O on every loop iteration, so the whole chain is a genuine
627
+ * N+1, not an accumulate-then-batch false positive. Walks up the enclosing
628
+ * expression and stops at the statement boundary; a chain never crosses one.
629
+ */
630
+ function hasEagerMethodInCallChain(node, adapter, sourceCode) {
631
+ const call = resolveDbCallNode(node, adapter);
632
+ let cur = call ? adapter.getParent(call) : adapter.getParent(node);
633
+ while (cur) {
634
+ const type = adapter.getNodeType(cur);
635
+ if (type === 'call_expression') {
636
+ const memberExpr = findMemberCallee(cur, adapter);
637
+ const name = memberExpr ? memberPropertyName(memberExpr, adapter, sourceCode) : null;
638
+ if (name && EAGER_DB_METHODS.has(name) && !isPromiseAllMember(memberExpr, adapter, sourceCode))
639
+ return true;
640
+ }
641
+ if (type === 'expression_statement' ||
642
+ type === 'variable_declarator' ||
643
+ type === 'return_statement' ||
644
+ type === 'lexical_declaration' ||
645
+ type === 'for_statement' ||
646
+ type === 'for_in_statement' ||
647
+ type === 'while_statement' ||
648
+ type === 'statement_block' ||
649
+ type === 'block') {
650
+ break;
651
+ }
652
+ cur = adapter.getParent(cur);
653
+ }
654
+ return false;
655
+ }
656
+ /**
657
+ * True when a db-call node is statement construction only — a `.prepare()` /
658
+ * `.bind()` that is not chained into an eager method (`.run()` / `.all()` /
659
+ * `.first()` / `.raw()` / `.exec()` / `.batch()`). Such a call performs no I/O,
660
+ * so it is not a query-in-loop on its own (Spec 52 R1).
661
+ */
662
+ function isStatementConstructionOnly(node, adapter, sourceCode) {
663
+ const method = dbCallMethodName(node, adapter, sourceCode);
664
+ return (method === 'prepare' || method === 'bind') && !hasEagerMethodInCallChain(node, adapter, sourceCode);
665
+ }
568
666
  /** True when a call's arguments contain a spread_element (…binds). */
569
667
  function hasSpreadArgument(call, adapter) {
570
668
  const args = adapter.getChildren(call).find(c => adapter.getNodeType(c) === 'arguments');
@@ -909,11 +1007,15 @@ function hasSelectComponent(text) {
909
1007
  return /\bSELECT\b/.test(text.toUpperCase());
910
1008
  }
911
1009
  /**
912
- * True when a SQL statement carries a write verb (INSERT/DELETE/UPDATE).
1010
+ * True when a SQL statement carries a write verb (INSERT/DELETE/UPDATE/REPLACE).
1011
+ * Spec 52 R2: `REPLACE INTO` is an upsert write — matched as a two-word clause
1012
+ * (not a bare `REPLACE` word) so the `REPLACE()` string function is not misread
1013
+ * as a write.
913
1014
  */
914
- function hasWriteVerb(text) {
1015
+ export function hasWriteVerb(text) {
915
1016
  const upper = text.toUpperCase();
916
- return /\bINSERT\b/.test(upper) || /\bDELETE\b/.test(upper) || /\bUPDATE\b/.test(upper);
1017
+ return /\bINSERT\b/.test(upper) || /\bDELETE\b/.test(upper) || /\bUPDATE\b/.test(upper)
1018
+ || /\bREPLACE\s+INTO\b/.test(upper);
917
1019
  }
918
1020
  /**
919
1021
  * Filter/write shape of a SQL statement, computed together for the
@@ -1157,6 +1259,10 @@ function checkLoopQueries(ast, scan) {
1157
1259
  const nodeText = adapter.getNodeText(node, sourceCode);
1158
1260
  if (!nodeText || nodeText.trim().length < 10)
1159
1261
  continue;
1262
+ // Spec 52 R1 — skip statement construction (prepare/bind with no eager call);
1263
+ // an eager call or a prepare chained into one still fires.
1264
+ if (isStatementConstructionOnly(node, adapter, sourceCode))
1265
+ continue;
1160
1266
  const loopInfo = findEnclosingLoop(node, adapter);
1161
1267
  if (!loopInfo)
1162
1268
  continue;