circle-ir 4.9.19 → 4.9.21

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 (251) hide show
  1. package/dist/analysis/config-loader.d.ts.map +1 -1
  2. package/dist/analysis/config-loader.js +56 -7
  3. package/dist/analysis/config-loader.js.map +1 -1
  4. package/dist/analysis/constant-propagation/evaluator.d.ts.map +1 -1
  5. package/dist/analysis/constant-propagation/evaluator.js.map +1 -1
  6. package/dist/analysis/constant-propagation/index.js.map +1 -1
  7. package/dist/analysis/constant-propagation/propagator.d.ts.map +1 -1
  8. package/dist/analysis/constant-propagation/propagator.js +3 -1
  9. package/dist/analysis/constant-propagation/propagator.js.map +1 -1
  10. package/dist/analysis/dfg-verifier.d.ts.map +1 -1
  11. package/dist/analysis/dfg-verifier.js.map +1 -1
  12. package/dist/analysis/dfg-walk.js.map +1 -1
  13. package/dist/analysis/findings.d.ts +1 -1
  14. package/dist/analysis/findings.d.ts.map +1 -1
  15. package/dist/analysis/findings.js +27 -1
  16. package/dist/analysis/findings.js.map +1 -1
  17. package/dist/analysis/interprocedural.js.map +1 -1
  18. package/dist/analysis/metrics/metric-runner.d.ts.map +1 -1
  19. package/dist/analysis/metrics/passes/cohesion-metrics-pass.d.ts.map +1 -1
  20. package/dist/analysis/metrics/passes/complexity-metrics-pass.d.ts.map +1 -1
  21. package/dist/analysis/metrics/passes/composite-metrics-pass.d.ts.map +1 -1
  22. package/dist/analysis/metrics/passes/coupling-metrics-pass.d.ts.map +1 -1
  23. package/dist/analysis/metrics/passes/data-flow-metrics-pass.d.ts.map +1 -1
  24. package/dist/analysis/metrics/passes/documentation-metrics-pass.d.ts.map +1 -1
  25. package/dist/analysis/metrics/passes/halstead-metrics-pass.d.ts.map +1 -1
  26. package/dist/analysis/metrics/passes/inheritance-metrics-pass.d.ts.map +1 -1
  27. package/dist/analysis/metrics/passes/size-metrics-pass.d.ts.map +1 -1
  28. package/dist/analysis/passes/blocking-main-thread-pass.d.ts +1 -1
  29. package/dist/analysis/passes/blocking-main-thread-pass.d.ts.map +1 -1
  30. package/dist/analysis/passes/broad-catch-pass.d.ts +1 -1
  31. package/dist/analysis/passes/broad-catch-pass.d.ts.map +1 -1
  32. package/dist/analysis/passes/cache-no-vary-pass.d.ts +1 -1
  33. package/dist/analysis/passes/cache-no-vary-pass.d.ts.map +1 -1
  34. package/dist/analysis/passes/circular-dependency-pass.d.ts.map +1 -1
  35. package/dist/analysis/passes/cleanup-verify-pass.d.ts +1 -1
  36. package/dist/analysis/passes/cleanup-verify-pass.d.ts.map +1 -1
  37. package/dist/analysis/passes/cleartext-credential-transport-pass.d.ts +1 -1
  38. package/dist/analysis/passes/cleartext-credential-transport-pass.d.ts.map +1 -1
  39. package/dist/analysis/passes/cli-main-reflection-suppress-pass.d.ts +1 -1
  40. package/dist/analysis/passes/cli-main-reflection-suppress-pass.d.ts.map +1 -1
  41. package/dist/analysis/passes/constant-propagation-pass.d.ts +1 -1
  42. package/dist/analysis/passes/constant-propagation-pass.d.ts.map +1 -1
  43. package/dist/analysis/passes/constant-propagation-pass.js.map +1 -1
  44. package/dist/analysis/passes/cross-file-pass.d.ts.map +1 -1
  45. package/dist/analysis/passes/cross-file-pass.js +1 -1
  46. package/dist/analysis/passes/cross-file-pass.js.map +1 -1
  47. package/dist/analysis/passes/csrf-protection-disabled-pass.d.ts +1 -1
  48. package/dist/analysis/passes/csrf-protection-disabled-pass.d.ts.map +1 -1
  49. package/dist/analysis/passes/dead-code-pass.d.ts +1 -1
  50. package/dist/analysis/passes/dead-code-pass.d.ts.map +1 -1
  51. package/dist/analysis/passes/deep-inheritance-pass.d.ts +1 -1
  52. package/dist/analysis/passes/deep-inheritance-pass.d.ts.map +1 -1
  53. package/dist/analysis/passes/dependency-fan-out-pass.d.ts +1 -1
  54. package/dist/analysis/passes/dependency-fan-out-pass.d.ts.map +1 -1
  55. package/dist/analysis/passes/deserialization-safety-gate-pass.d.ts +1 -1
  56. package/dist/analysis/passes/deserialization-safety-gate-pass.d.ts.map +1 -1
  57. package/dist/analysis/passes/deserialization-safety-gate-pass.js.map +1 -1
  58. package/dist/analysis/passes/double-close-pass.d.ts +1 -1
  59. package/dist/analysis/passes/double-close-pass.d.ts.map +1 -1
  60. package/dist/analysis/passes/excessive-allocation-pass.d.ts +1 -1
  61. package/dist/analysis/passes/excessive-allocation-pass.d.ts.map +1 -1
  62. package/dist/analysis/passes/feature-envy-pass.d.ts +1 -1
  63. package/dist/analysis/passes/feature-envy-pass.d.ts.map +1 -1
  64. package/dist/analysis/passes/god-class-pass.d.ts +1 -1
  65. package/dist/analysis/passes/god-class-pass.d.ts.map +1 -1
  66. package/dist/analysis/passes/infinite-loop-pass.d.ts +1 -1
  67. package/dist/analysis/passes/infinite-loop-pass.d.ts.map +1 -1
  68. package/dist/analysis/passes/info-disclosure-stacktrace-pass.d.ts +1 -1
  69. package/dist/analysis/passes/info-disclosure-stacktrace-pass.d.ts.map +1 -1
  70. package/dist/analysis/passes/insecure-cookie-pass.d.ts +1 -1
  71. package/dist/analysis/passes/insecure-cookie-pass.d.ts.map +1 -1
  72. package/dist/analysis/passes/insecure-deserialization-config-pass.d.ts +1 -1
  73. package/dist/analysis/passes/insecure-deserialization-config-pass.d.ts.map +1 -1
  74. package/dist/analysis/passes/interprocedural-pass.d.ts +1 -1
  75. package/dist/analysis/passes/interprocedural-pass.d.ts.map +1 -1
  76. package/dist/analysis/passes/jwt-verify-disabled-pass.d.ts +1 -1
  77. package/dist/analysis/passes/jwt-verify-disabled-pass.d.ts.map +1 -1
  78. package/dist/analysis/passes/language-sources-pass.d.ts +10 -10
  79. package/dist/analysis/passes/language-sources-pass.d.ts.map +1 -1
  80. package/dist/analysis/passes/language-sources-pass.js +3 -8
  81. package/dist/analysis/passes/language-sources-pass.js.map +1 -1
  82. package/dist/analysis/passes/leaked-global-pass.d.ts +1 -1
  83. package/dist/analysis/passes/leaked-global-pass.d.ts.map +1 -1
  84. package/dist/analysis/passes/library-profile-sink-gate-pass.d.ts +2 -2
  85. package/dist/analysis/passes/library-profile-sink-gate-pass.d.ts.map +1 -1
  86. package/dist/analysis/passes/library-profile-source-gate-pass.d.ts +1 -1
  87. package/dist/analysis/passes/library-profile-source-gate-pass.d.ts.map +1 -1
  88. package/dist/analysis/passes/library-profile-xss-gate-pass.d.ts +1 -1
  89. package/dist/analysis/passes/library-profile-xss-gate-pass.d.ts.map +1 -1
  90. package/dist/analysis/passes/mass-assignment-pass.d.ts +1 -1
  91. package/dist/analysis/passes/mass-assignment-pass.d.ts.map +1 -1
  92. package/dist/analysis/passes/missing-await-pass.d.ts +1 -1
  93. package/dist/analysis/passes/missing-await-pass.d.ts.map +1 -1
  94. package/dist/analysis/passes/missing-guard-dom-pass.d.ts +1 -1
  95. package/dist/analysis/passes/missing-guard-dom-pass.d.ts.map +1 -1
  96. package/dist/analysis/passes/missing-override-pass.d.ts +1 -1
  97. package/dist/analysis/passes/missing-override-pass.d.ts.map +1 -1
  98. package/dist/analysis/passes/missing-public-doc-pass.d.ts +1 -1
  99. package/dist/analysis/passes/missing-public-doc-pass.d.ts.map +1 -1
  100. package/dist/analysis/passes/missing-sanitizer-gate-pass.d.ts +1 -1
  101. package/dist/analysis/passes/missing-sanitizer-gate-pass.d.ts.map +1 -1
  102. package/dist/analysis/passes/missing-stream-pass.d.ts +1 -1
  103. package/dist/analysis/passes/missing-stream-pass.d.ts.map +1 -1
  104. package/dist/analysis/passes/module-side-effect-pass.d.ts +1 -1
  105. package/dist/analysis/passes/module-side-effect-pass.d.ts.map +1 -1
  106. package/dist/analysis/passes/mybatis-annotation-sql-sink-pass.d.ts +1 -1
  107. package/dist/analysis/passes/mybatis-annotation-sql-sink-pass.d.ts.map +1 -1
  108. package/dist/analysis/passes/n-plus-one-pass.d.ts +1 -1
  109. package/dist/analysis/passes/n-plus-one-pass.d.ts.map +1 -1
  110. package/dist/analysis/passes/naming-convention-pass.d.ts +1 -1
  111. package/dist/analysis/passes/naming-convention-pass.d.ts.map +1 -1
  112. package/dist/analysis/passes/naming-convention-pass.js.map +1 -1
  113. package/dist/analysis/passes/null-deref-pass.d.ts +1 -1
  114. package/dist/analysis/passes/null-deref-pass.d.ts.map +1 -1
  115. package/dist/analysis/passes/orphan-module-pass.d.ts.map +1 -1
  116. package/dist/analysis/passes/plaintext-password-storage-pass.d.ts +1 -1
  117. package/dist/analysis/passes/plaintext-password-storage-pass.d.ts.map +1 -1
  118. package/dist/analysis/passes/prompt-injection-safety-gate-pass.d.ts +1 -1
  119. package/dist/analysis/passes/prompt-injection-safety-gate-pass.d.ts.map +1 -1
  120. package/dist/analysis/passes/python-receiver-taint-format-pass.d.ts +1 -1
  121. package/dist/analysis/passes/python-receiver-taint-format-pass.d.ts.map +1 -1
  122. package/dist/analysis/passes/react-inline-jsx-pass.d.ts +1 -1
  123. package/dist/analysis/passes/react-inline-jsx-pass.d.ts.map +1 -1
  124. package/dist/analysis/passes/redundant-loop-pass.d.ts +1 -1
  125. package/dist/analysis/passes/redundant-loop-pass.d.ts.map +1 -1
  126. package/dist/analysis/passes/resource-leak-pass.d.ts +1 -1
  127. package/dist/analysis/passes/resource-leak-pass.d.ts.map +1 -1
  128. package/dist/analysis/passes/scan-secrets-pass.d.ts +1 -1
  129. package/dist/analysis/passes/scan-secrets-pass.d.ts.map +1 -1
  130. package/dist/analysis/passes/security-headers-pass.d.ts +1 -1
  131. package/dist/analysis/passes/security-headers-pass.d.ts.map +1 -1
  132. package/dist/analysis/passes/security-headers-pass.js.map +1 -1
  133. package/dist/analysis/passes/serial-await-pass.d.ts +1 -1
  134. package/dist/analysis/passes/serial-await-pass.d.ts.map +1 -1
  135. package/dist/analysis/passes/sink-filter-pass.d.ts +1 -1
  136. package/dist/analysis/passes/sink-filter-pass.d.ts.map +1 -1
  137. package/dist/analysis/passes/sink-filter-pass.js +1 -1
  138. package/dist/analysis/passes/sink-filter-pass.js.map +1 -1
  139. package/dist/analysis/passes/sink-semantics-pass.d.ts +1 -1
  140. package/dist/analysis/passes/sink-semantics-pass.d.ts.map +1 -1
  141. package/dist/analysis/passes/source-semantics-pass.d.ts +1 -1
  142. package/dist/analysis/passes/source-semantics-pass.d.ts.map +1 -1
  143. package/dist/analysis/passes/speculative-prompt-param-source-pass.d.ts +1 -1
  144. package/dist/analysis/passes/speculative-prompt-param-source-pass.d.ts.map +1 -1
  145. package/dist/analysis/passes/speculative-prompt-param-source-pass.js.map +1 -1
  146. package/dist/analysis/passes/spring4shell-pass.d.ts +1 -1
  147. package/dist/analysis/passes/spring4shell-pass.d.ts.map +1 -1
  148. package/dist/analysis/passes/stale-doc-ref-pass.d.ts +1 -1
  149. package/dist/analysis/passes/stale-doc-ref-pass.d.ts.map +1 -1
  150. package/dist/analysis/passes/string-concat-loop-pass.d.ts +1 -1
  151. package/dist/analysis/passes/string-concat-loop-pass.d.ts.map +1 -1
  152. package/dist/analysis/passes/swallowed-exception-pass.d.ts +1 -1
  153. package/dist/analysis/passes/swallowed-exception-pass.d.ts.map +1 -1
  154. package/dist/analysis/passes/sync-io-async-pass.d.ts +1 -1
  155. package/dist/analysis/passes/sync-io-async-pass.d.ts.map +1 -1
  156. package/dist/analysis/passes/taint-matcher-pass.d.ts +1 -1
  157. package/dist/analysis/passes/taint-matcher-pass.d.ts.map +1 -1
  158. package/dist/analysis/passes/taint-propagation-pass.d.ts +1 -1
  159. package/dist/analysis/passes/taint-propagation-pass.d.ts.map +1 -1
  160. package/dist/analysis/passes/tls-verify-disabled-pass.d.ts +1 -1
  161. package/dist/analysis/passes/tls-verify-disabled-pass.d.ts.map +1 -1
  162. package/dist/analysis/passes/todo-in-prod-pass.d.ts +1 -1
  163. package/dist/analysis/passes/todo-in-prod-pass.d.ts.map +1 -1
  164. package/dist/analysis/passes/unbounded-collection-pass.d.ts +1 -1
  165. package/dist/analysis/passes/unbounded-collection-pass.d.ts.map +1 -1
  166. package/dist/analysis/passes/unchecked-return-pass.d.ts +1 -1
  167. package/dist/analysis/passes/unchecked-return-pass.d.ts.map +1 -1
  168. package/dist/analysis/passes/unhandled-exception-pass.d.ts +1 -1
  169. package/dist/analysis/passes/unhandled-exception-pass.d.ts.map +1 -1
  170. package/dist/analysis/passes/unhandled-exception-pass.js +4 -20
  171. package/dist/analysis/passes/unhandled-exception-pass.js.map +1 -1
  172. package/dist/analysis/passes/unrestricted-file-upload-pass.d.ts +1 -1
  173. package/dist/analysis/passes/unrestricted-file-upload-pass.d.ts.map +1 -1
  174. package/dist/analysis/passes/unused-interface-method-pass.d.ts +1 -1
  175. package/dist/analysis/passes/unused-interface-method-pass.d.ts.map +1 -1
  176. package/dist/analysis/passes/unused-variable-pass.d.ts +1 -1
  177. package/dist/analysis/passes/unused-variable-pass.d.ts.map +1 -1
  178. package/dist/analysis/passes/use-after-close-pass.d.ts +1 -1
  179. package/dist/analysis/passes/use-after-close-pass.d.ts.map +1 -1
  180. package/dist/analysis/passes/variable-shadowing-pass.d.ts +1 -1
  181. package/dist/analysis/passes/variable-shadowing-pass.d.ts.map +1 -1
  182. package/dist/analysis/passes/weak-crypto-pass.d.ts +1 -1
  183. package/dist/analysis/passes/weak-crypto-pass.d.ts.map +1 -1
  184. package/dist/analysis/passes/weak-hash-pass.d.ts +1 -1
  185. package/dist/analysis/passes/weak-hash-pass.d.ts.map +1 -1
  186. package/dist/analysis/passes/weak-password-encoding-pass.d.ts +1 -1
  187. package/dist/analysis/passes/weak-password-encoding-pass.d.ts.map +1 -1
  188. package/dist/analysis/passes/weak-password-hash-pass.d.ts +1 -1
  189. package/dist/analysis/passes/weak-password-hash-pass.d.ts.map +1 -1
  190. package/dist/analysis/passes/weak-random-pass.d.ts +1 -1
  191. package/dist/analysis/passes/weak-random-pass.d.ts.map +1 -1
  192. package/dist/analysis/passes/xml-entity-expansion-pass.d.ts +1 -1
  193. package/dist/analysis/passes/xml-entity-expansion-pass.d.ts.map +1 -1
  194. package/dist/analysis/path-finder.d.ts.map +1 -1
  195. package/dist/analysis/path-finder.js.map +1 -1
  196. package/dist/analysis/project-profile-transform.js.map +1 -1
  197. package/dist/analysis/require-entry-path.js.map +1 -1
  198. package/dist/analysis/sbom.js.map +1 -1
  199. package/dist/analysis/taint-matcher.js.map +1 -1
  200. package/dist/analyzer.d.ts.map +1 -1
  201. package/dist/analyzer.js +4 -0
  202. package/dist/analyzer.js.map +1 -1
  203. package/dist/browser/circle-ir.js +157 -54
  204. package/dist/browser.js.map +1 -1
  205. package/dist/core/circle-ir-core.cjs +150 -29
  206. package/dist/core/circle-ir-core.js +150 -29
  207. package/dist/core/extractors/cfg.js +2 -2
  208. package/dist/core/extractors/cfg.js.map +1 -1
  209. package/dist/core/extractors/dfg.js +1 -1
  210. package/dist/core/extractors/dfg.js.map +1 -1
  211. package/dist/core/extractors/runtime-registrations.js +2 -2
  212. package/dist/core/extractors/runtime-registrations.js.map +1 -1
  213. package/dist/core/extractors/types.js.map +1 -1
  214. package/dist/core/parser.d.ts.map +1 -1
  215. package/dist/core/parser.js +4 -0
  216. package/dist/core/parser.js.map +1 -1
  217. package/dist/graph/analysis-pass.d.ts.map +1 -1
  218. package/dist/graph/code-graph.d.ts.map +1 -1
  219. package/dist/graph/dominator-graph.d.ts.map +1 -1
  220. package/dist/graph/exception-flow-graph.d.ts.map +1 -1
  221. package/dist/graph/import-graph.d.ts.map +1 -1
  222. package/dist/graph/project-graph.d.ts.map +1 -1
  223. package/dist/graph/scope-graph.d.ts.map +1 -1
  224. package/dist/languages/plugins/base.d.ts.map +1 -1
  225. package/dist/languages/plugins/bash.d.ts +1 -1
  226. package/dist/languages/plugins/bash.d.ts.map +1 -1
  227. package/dist/languages/plugins/csharp.d.ts +1 -1
  228. package/dist/languages/plugins/csharp.d.ts.map +1 -1
  229. package/dist/languages/plugins/go.d.ts +1 -1
  230. package/dist/languages/plugins/go.d.ts.map +1 -1
  231. package/dist/languages/plugins/html.d.ts +1 -1
  232. package/dist/languages/plugins/html.d.ts.map +1 -1
  233. package/dist/languages/plugins/java.d.ts +1 -1
  234. package/dist/languages/plugins/java.d.ts.map +1 -1
  235. package/dist/languages/plugins/javascript.d.ts +1 -1
  236. package/dist/languages/plugins/javascript.d.ts.map +1 -1
  237. package/dist/languages/plugins/python.d.ts +1 -1
  238. package/dist/languages/plugins/python.d.ts.map +1 -1
  239. package/dist/languages/plugins/rust.d.ts +1 -1
  240. package/dist/languages/plugins/rust.d.ts.map +1 -1
  241. package/dist/languages/plugins/vue.d.ts +1 -1
  242. package/dist/languages/plugins/vue.d.ts.map +1 -1
  243. package/dist/resolution/cross-file.d.ts.map +1 -1
  244. package/dist/resolution/symbol-table.d.ts.map +1 -1
  245. package/dist/resolution/type-hierarchy.d.ts.map +1 -1
  246. package/dist/resolution/type-hierarchy.js.map +1 -1
  247. package/dist/types/index.d.ts +28 -0
  248. package/dist/types/index.d.ts.map +1 -1
  249. package/dist/utils/logger.d.ts.map +1 -1
  250. package/dist/wasm/web-tree-sitter.wasm +0 -0
  251. package/package.json +7 -7
@@ -122,6 +122,18 @@ function setModule(module2) {
122
122
  }
123
123
  __name(setModule, "setModule");
124
124
  var C;
125
+ function newFinalizer(handler) {
126
+ try {
127
+ return new FinalizationRegistry(handler);
128
+ } catch (e) {
129
+ console.error("Unsupported FinalizationRegistry:", e);
130
+ return;
131
+ }
132
+ }
133
+ __name(newFinalizer, "newFinalizer");
134
+ var finalizer = newFinalizer((address) => {
135
+ C._ts_lookahead_iterator_delete(address);
136
+ });
125
137
  var LookaheadIterator = class {
126
138
  static {
127
139
  __name(this, "LookaheadIterator");
@@ -132,21 +144,39 @@ var LookaheadIterator = class {
132
144
  /** @internal */
133
145
  language;
134
146
  /** @internal */
147
+ positioned = false;
148
+ /** @internal */
135
149
  constructor(internal, address, language) {
136
150
  assertInternal(internal);
137
151
  this[0] = address;
138
152
  this.language = language;
153
+ finalizer?.register(this, address, this);
139
154
  }
140
- /** Get the current symbol of the lookahead iterator. */
155
+ /**
156
+ * Get the current symbol of the lookahead iterator.
157
+ *
158
+ * Returns `null` if the iterator is not positioned on a symbol:
159
+ *
160
+ * - Before the first iteration step
161
+ * - After the iterator is exhausted
162
+ * - After a {@link reset} or {@link resetState} call
163
+ */
141
164
  get currentTypeId() {
142
- return C._ts_lookahead_iterator_current_symbol(this[0]);
165
+ return this.positioned ? C._ts_lookahead_iterator_current_symbol(this[0]) : null;
143
166
  }
144
- /** Get the current symbol name of the lookahead iterator. */
167
+ /**
168
+ * Get the current symbol name of the lookahead iterator.
169
+ *
170
+ * Returns `null` if the iterator is not positioned on a symbol.
171
+ */
145
172
  get currentType() {
146
- return this.language.types[this.currentTypeId] || "ERROR";
173
+ const id = this.currentTypeId;
174
+ if (id === null) return null;
175
+ return this.language.types[id] ?? C.UTF8ToString(C._ts_language_symbol_name(this.language[0], id));
147
176
  }
148
177
  /** Delete the lookahead iterator, freeing its resources. */
149
178
  delete() {
179
+ finalizer?.unregister(this);
150
180
  C._ts_lookahead_iterator_delete(this[0]);
151
181
  this[0] = 0;
152
182
  }
@@ -159,6 +189,7 @@ var LookaheadIterator = class {
159
189
  reset(language, stateId) {
160
190
  if (C._ts_lookahead_iterator_reset(this[0], language[0], stateId)) {
161
191
  this.language = language;
192
+ this.positioned = false;
162
193
  return true;
163
194
  }
164
195
  return false;
@@ -170,7 +201,9 @@ var LookaheadIterator = class {
170
201
  * `false` otherwise.
171
202
  */
172
203
  resetState(stateId) {
173
- return Boolean(C._ts_lookahead_iterator_reset_state(this[0], stateId));
204
+ if (!C._ts_lookahead_iterator_reset_state(this[0], stateId)) return false;
205
+ this.positioned = false;
206
+ return true;
174
207
  }
175
208
  /**
176
209
  * Returns an iterator that iterates over the symbols of the lookahead iterator.
@@ -181,10 +214,9 @@ var LookaheadIterator = class {
181
214
  [Symbol.iterator]() {
182
215
  return {
183
216
  next: /* @__PURE__ */ __name(() => {
184
- if (C._ts_lookahead_iterator_next(this[0])) {
185
- return { done: false, value: this.currentType };
186
- }
187
- return { done: true, value: "" };
217
+ this.positioned = Boolean(C._ts_lookahead_iterator_next(this[0]));
218
+ const value = this.currentType;
219
+ return value === null ? { done: true, value: "" } : { done: false, value };
188
220
  }, "next")
189
221
  };
190
222
  }
@@ -210,6 +242,9 @@ function getText(tree, startIndex, endIndex, startPosition) {
210
242
  return result ?? "";
211
243
  }
212
244
  __name(getText, "getText");
245
+ var finalizer2 = newFinalizer((address) => {
246
+ C._ts_tree_delete(address);
247
+ });
213
248
  var Tree = class _Tree {
214
249
  static {
215
250
  __name(this, "Tree");
@@ -227,6 +262,7 @@ var Tree = class _Tree {
227
262
  this[0] = address;
228
263
  this.language = language;
229
264
  this.textCallback = textCallback;
265
+ finalizer2?.register(this, address, this);
230
266
  }
231
267
  /** Create a shallow copy of the syntax tree. This is very fast. */
232
268
  copy() {
@@ -235,6 +271,7 @@ var Tree = class _Tree {
235
271
  }
236
272
  /** Delete the syntax tree, freeing its resources. */
237
273
  delete() {
274
+ finalizer2?.unregister(this);
238
275
  C._ts_tree_delete(this[0]);
239
276
  this[0] = 0;
240
277
  }
@@ -315,6 +352,9 @@ var Tree = class _Tree {
315
352
  return result;
316
353
  }
317
354
  };
355
+ var finalizer3 = newFinalizer((address) => {
356
+ C._ts_tree_cursor_delete_wasm(address);
357
+ });
318
358
  var TreeCursor = class _TreeCursor {
319
359
  static {
320
360
  __name(this, "TreeCursor");
@@ -342,6 +382,7 @@ var TreeCursor = class _TreeCursor {
342
382
  assertInternal(internal);
343
383
  this.tree = tree;
344
384
  unmarshalTreeCursor(this);
385
+ finalizer3?.register(this, this.tree[0], this);
345
386
  }
346
387
  /** Creates a deep copy of the tree cursor. This allocates new memory. */
347
388
  copy() {
@@ -352,6 +393,7 @@ var TreeCursor = class _TreeCursor {
352
393
  }
353
394
  /** Delete the tree cursor, freeing its resources. */
354
395
  delete() {
396
+ finalizer3?.unregister(this);
355
397
  marshalTreeCursor(this);
356
398
  C._ts_tree_cursor_delete_wasm(this.tree[0]);
357
399
  this[0] = this[1] = this[2] = 0;
@@ -1446,8 +1488,9 @@ var Language = class _Language {
1446
1488
  * This returns `null` if state is invalid for this language.
1447
1489
  *
1448
1490
  * Iterating {@link LookaheadIterator} will yield valid symbols in the given
1449
- * parse state. Newly created lookahead iterators will return the `ERROR`
1450
- * symbol from {@link LookaheadIterator#currentType}.
1491
+ * parse state. A newly created iterator is not positioned on a symbol, so
1492
+ * {@link LookaheadIterator#currentType} returns `null` until the first
1493
+ * iteration step.
1451
1494
  *
1452
1495
  * Lookahead iterators can be useful for generating suggestions and improving
1453
1496
  * syntax error diagnostics. To get symbols valid in an `ERROR` node, use the
@@ -1462,7 +1505,8 @@ var Language = class _Language {
1462
1505
  }
1463
1506
  /**
1464
1507
  * Load a language from a WebAssembly module.
1465
- * The module can be provided as a path to a file or as a buffer.
1508
+ * The module can be provided as a path to a file, a `URL` to a file, or as a
1509
+ * buffer.
1466
1510
  */
1467
1511
  static async load(input) {
1468
1512
  let binary2;
@@ -1489,16 +1533,27 @@ ${body2}`);
1489
1533
  }
1490
1534
  }
1491
1535
  const mod = await C.loadWebAssemblyModule(binary2, { loadAsync: true });
1536
+ return _Language.loadFromWasmExports(mod, { sync: false });
1537
+ }
1538
+ static loadFromWasmExports(mod, { sync }) {
1492
1539
  const symbolNames = Object.keys(mod);
1493
1540
  const functionName = symbolNames.find((key) => LANGUAGE_FUNCTION_REGEX.test(key) && !key.includes("external_scanner_"));
1494
1541
  if (!functionName) {
1495
1542
  console.log(`Couldn't find language function in Wasm file. Symbols:
1496
1543
  ${JSON.stringify(symbolNames, null, 2)}`);
1497
- throw new Error("Language.load failed: no language function found in Wasm file");
1544
+ throw new Error(`Language.${sync ? "loadSync" : "load"} failed: no language function found in Wasm file`);
1498
1545
  }
1499
1546
  const languageAddress = mod[functionName]();
1500
1547
  return new _Language(INTERNAL, languageAddress);
1501
1548
  }
1549
+ /**
1550
+ * Load a language synchronously from a pre-compiled WebAssembly module.
1551
+ * Use this when the host environment provides a `WebAssembly.Module` directly.
1552
+ */
1553
+ static loadSync(wasmModule) {
1554
+ const mod = C.loadWebAssemblyModule(wasmModule, { loadAsync: false });
1555
+ return _Language.loadFromWasmExports(mod, { sync: true });
1556
+ }
1502
1557
  };
1503
1558
  async function Module2(moduleArg = {}) {
1504
1559
  var moduleRtn;
@@ -2021,7 +2076,7 @@ async function Module2(moduleArg = {}) {
2021
2076
  newDSO("__main__", 0, wasmImports);
2022
2077
  }
2023
2078
  };
2024
- var ___heap_base = 78240;
2079
+ var ___heap_base = 82240;
2025
2080
  var alignMemory = /* @__PURE__ */ __name((size, alignment) => Math.ceil(size / alignment) * alignment, "alignMemory");
2026
2081
  var getMemory = /* @__PURE__ */ __name((size) => {
2027
2082
  if (runtimeInitialized) {
@@ -2586,12 +2641,12 @@ async function Module2(moduleArg = {}) {
2586
2641
  "value": "i32",
2587
2642
  "mutable": false
2588
2643
  }, 1024);
2589
- var ___stack_high = 78240;
2590
- var ___stack_low = 12704;
2644
+ var ___stack_high = 82240;
2645
+ var ___stack_low = 16704;
2591
2646
  var ___stack_pointer = new WebAssembly.Global({
2592
2647
  "value": "i32",
2593
2648
  "mutable": true
2594
- }, 78240);
2649
+ }, 82240);
2595
2650
  var ___table_base = new WebAssembly.Global({
2596
2651
  "value": "i32",
2597
2652
  "mutable": false
@@ -2852,7 +2907,7 @@ async function Module2(moduleArg = {}) {
2852
2907
  Module["loadWebAssemblyModule"] = loadWebAssemblyModule;
2853
2908
  Module["LE_HEAP_STORE_I64"] = LE_HEAP_STORE_I64;
2854
2909
  var ASM_CONSTS = {};
2855
- var _malloc, _calloc, _realloc, _free, _ts_range_edit, _memcmp, _ts_language_symbol_count, _ts_language_state_count, _ts_language_abi_version, _ts_language_name, _ts_language_field_count, _ts_language_next_state, _ts_language_symbol_name, _ts_language_symbol_for_name, _strncmp, _ts_language_symbol_type, _ts_language_field_name_for_id, _ts_lookahead_iterator_new, _ts_lookahead_iterator_delete, _ts_lookahead_iterator_reset_state, _ts_lookahead_iterator_reset, _ts_lookahead_iterator_next, _ts_lookahead_iterator_current_symbol, _ts_point_edit, _ts_parser_delete, _ts_parser_reset, _ts_parser_set_language, _ts_parser_set_included_ranges, _ts_query_new, _ts_query_delete, _iswspace, _iswalnum, _ts_query_pattern_count, _ts_query_capture_count, _ts_query_string_count, _ts_query_capture_name_for_id, _ts_query_capture_quantifier_for_id, _ts_query_string_value_for_id, _ts_query_predicates_for_pattern, _ts_query_start_byte_for_pattern, _ts_query_end_byte_for_pattern, _ts_query_is_pattern_rooted, _ts_query_is_pattern_non_local, _ts_query_is_pattern_guaranteed_at_step, _ts_query_disable_capture, _ts_query_disable_pattern, _ts_tree_copy, _ts_tree_delete, _ts_init, _ts_parser_new_wasm, _ts_parser_enable_logger_wasm, _ts_parser_parse_wasm, _ts_parser_included_ranges_wasm, _ts_language_type_is_named_wasm, _ts_language_type_is_visible_wasm, _ts_language_metadata_wasm, _ts_language_supertypes_wasm, _ts_language_subtypes_wasm, _ts_tree_root_node_wasm, _ts_tree_root_node_with_offset_wasm, _ts_tree_edit_wasm, _ts_tree_included_ranges_wasm, _ts_tree_get_changed_ranges_wasm, _ts_tree_cursor_new_wasm, _ts_tree_cursor_copy_wasm, _ts_tree_cursor_delete_wasm, _ts_tree_cursor_reset_wasm, _ts_tree_cursor_reset_to_wasm, _ts_tree_cursor_goto_first_child_wasm, _ts_tree_cursor_goto_last_child_wasm, _ts_tree_cursor_goto_first_child_for_index_wasm, _ts_tree_cursor_goto_first_child_for_position_wasm, _ts_tree_cursor_goto_next_sibling_wasm, _ts_tree_cursor_goto_previous_sibling_wasm, _ts_tree_cursor_goto_descendant_wasm, _ts_tree_cursor_goto_parent_wasm, _ts_tree_cursor_current_node_type_id_wasm, _ts_tree_cursor_current_node_state_id_wasm, _ts_tree_cursor_current_node_is_named_wasm, _ts_tree_cursor_current_node_is_missing_wasm, _ts_tree_cursor_current_node_id_wasm, _ts_tree_cursor_start_position_wasm, _ts_tree_cursor_end_position_wasm, _ts_tree_cursor_start_index_wasm, _ts_tree_cursor_end_index_wasm, _ts_tree_cursor_current_field_id_wasm, _ts_tree_cursor_current_depth_wasm, _ts_tree_cursor_current_descendant_index_wasm, _ts_tree_cursor_current_node_wasm, _ts_node_symbol_wasm, _ts_node_field_name_for_child_wasm, _ts_node_field_name_for_named_child_wasm, _ts_node_children_by_field_id_wasm, _ts_node_first_child_for_byte_wasm, _ts_node_first_named_child_for_byte_wasm, _ts_node_grammar_symbol_wasm, _ts_node_child_count_wasm, _ts_node_named_child_count_wasm, _ts_node_child_wasm, _ts_node_named_child_wasm, _ts_node_child_by_field_id_wasm, _ts_node_next_sibling_wasm, _ts_node_prev_sibling_wasm, _ts_node_next_named_sibling_wasm, _ts_node_prev_named_sibling_wasm, _ts_node_descendant_count_wasm, _ts_node_parent_wasm, _ts_node_child_with_descendant_wasm, _ts_node_descendant_for_index_wasm, _ts_node_named_descendant_for_index_wasm, _ts_node_descendant_for_position_wasm, _ts_node_named_descendant_for_position_wasm, _ts_node_start_point_wasm, _ts_node_end_point_wasm, _ts_node_start_index_wasm, _ts_node_end_index_wasm, _ts_node_to_string_wasm, _ts_node_children_wasm, _ts_node_named_children_wasm, _ts_node_descendants_of_type_wasm, _ts_node_is_named_wasm, _ts_node_has_changes_wasm, _ts_node_has_error_wasm, _ts_node_is_error_wasm, _ts_node_is_missing_wasm, _ts_node_is_extra_wasm, _ts_node_parse_state_wasm, _ts_node_next_parse_state_wasm, _ts_query_matches_wasm, _ts_query_captures_wasm, _memset, _memcpy, _memmove, _iswalpha, _iswblank, _iswdigit, _iswlower, _iswupper, _iswxdigit, _memchr, _strlen, _strcmp, _strncat, _strncpy, _towlower, _towupper, _setThrew, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current, ___wasm_apply_data_relocs;
2910
+ var _malloc, _calloc, _realloc, _free, _ts_range_edit, _memcmp, _ts_language_symbol_count, _ts_language_state_count, _ts_language_abi_version, _ts_language_name, _ts_language_field_count, _ts_language_next_state, _ts_language_symbol_name, _ts_language_symbol_for_name, _strncmp, _ts_language_symbol_type, _ts_language_field_name_for_id, _ts_lookahead_iterator_new, _ts_lookahead_iterator_delete, _ts_lookahead_iterator_reset_state, _ts_lookahead_iterator_reset, _ts_lookahead_iterator_next, _ts_lookahead_iterator_current_symbol, _ts_point_edit, _ts_parser_delete, _ts_parser_reset, _ts_parser_set_language, _ts_parser_set_included_ranges, _ts_query_new, _ts_query_delete, _iswspace, _iswalnum, _ts_query_copy, _ts_query_pattern_count, _ts_query_capture_count, _ts_query_string_count, _ts_query_capture_name_for_id, _ts_query_capture_quantifier_for_id, _ts_query_string_value_for_id, _ts_query_predicates_for_pattern, _ts_query_start_byte_for_pattern, _ts_query_end_byte_for_pattern, _ts_query_is_pattern_rooted, _ts_query_is_pattern_non_local, _ts_query_is_pattern_guaranteed_at_step, _ts_query_disable_capture, _ts_query_disable_pattern, _ts_tree_copy, _ts_tree_delete, _ts_init, _ts_parser_new_wasm, _ts_parser_enable_logger_wasm, _ts_parser_parse_wasm, _ts_parser_included_ranges_wasm, _ts_language_type_is_named_wasm, _ts_language_type_is_visible_wasm, _ts_language_metadata_wasm, _ts_language_supertypes_wasm, _ts_language_subtypes_wasm, _ts_tree_root_node_wasm, _ts_tree_root_node_with_offset_wasm, _ts_tree_edit_wasm, _ts_tree_included_ranges_wasm, _ts_tree_get_changed_ranges_wasm, _ts_tree_cursor_new_wasm, _ts_tree_cursor_copy_wasm, _ts_tree_cursor_delete_wasm, _ts_tree_cursor_reset_wasm, _ts_tree_cursor_reset_to_wasm, _ts_tree_cursor_goto_first_child_wasm, _ts_tree_cursor_goto_last_child_wasm, _ts_tree_cursor_goto_first_child_for_index_wasm, _ts_tree_cursor_goto_first_child_for_position_wasm, _ts_tree_cursor_goto_next_sibling_wasm, _ts_tree_cursor_goto_previous_sibling_wasm, _ts_tree_cursor_goto_descendant_wasm, _ts_tree_cursor_goto_parent_wasm, _ts_tree_cursor_current_node_type_id_wasm, _ts_tree_cursor_current_node_state_id_wasm, _ts_tree_cursor_current_node_is_named_wasm, _ts_tree_cursor_current_node_is_missing_wasm, _ts_tree_cursor_current_node_id_wasm, _ts_tree_cursor_start_position_wasm, _ts_tree_cursor_end_position_wasm, _ts_tree_cursor_start_index_wasm, _ts_tree_cursor_end_index_wasm, _ts_tree_cursor_current_field_id_wasm, _ts_tree_cursor_current_depth_wasm, _ts_tree_cursor_current_descendant_index_wasm, _ts_tree_cursor_current_node_wasm, _ts_node_symbol_wasm, _ts_node_field_name_for_child_wasm, _ts_node_field_name_for_named_child_wasm, _ts_node_children_by_field_id_wasm, _ts_node_first_child_for_byte_wasm, _ts_node_first_named_child_for_byte_wasm, _ts_node_grammar_symbol_wasm, _ts_node_child_count_wasm, _ts_node_named_child_count_wasm, _ts_node_child_wasm, _ts_node_named_child_wasm, _ts_node_child_by_field_id_wasm, _ts_node_next_sibling_wasm, _ts_node_prev_sibling_wasm, _ts_node_next_named_sibling_wasm, _ts_node_prev_named_sibling_wasm, _ts_node_descendant_count_wasm, _ts_node_parent_wasm, _ts_node_child_with_descendant_wasm, _ts_node_descendant_for_index_wasm, _ts_node_named_descendant_for_index_wasm, _ts_node_descendant_for_position_wasm, _ts_node_named_descendant_for_position_wasm, _ts_node_start_point_wasm, _ts_node_end_point_wasm, _ts_node_start_index_wasm, _ts_node_end_index_wasm, _ts_node_to_string_wasm, _ts_node_children_wasm, _ts_node_named_children_wasm, _ts_node_descendants_of_type_wasm, _ts_node_is_named_wasm, _ts_node_has_changes_wasm, _ts_node_has_error_wasm, _ts_node_is_error_wasm, _ts_node_is_missing_wasm, _ts_node_is_extra_wasm, _ts_node_parse_state_wasm, _ts_node_next_parse_state_wasm, _ts_query_matches_wasm, _ts_query_captures_wasm, _memset, _memcpy, _memmove, _iswalpha, _iswblank, _iswdigit, _iswlower, _iswpunct, _iswupper, _iswxdigit, _memchr, _strlen, _strcmp, _strncat, _strncpy, _towlower, _towupper, _setThrew, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current, ___wasm_apply_data_relocs;
2856
2911
  function assignWasmExports(wasmExports2) {
2857
2912
  Module["_malloc"] = _malloc = wasmExports2["malloc"];
2858
2913
  Module["_calloc"] = _calloc = wasmExports2["calloc"];
@@ -2886,6 +2941,7 @@ async function Module2(moduleArg = {}) {
2886
2941
  Module["_ts_query_delete"] = _ts_query_delete = wasmExports2["ts_query_delete"];
2887
2942
  Module["_iswspace"] = _iswspace = wasmExports2["iswspace"];
2888
2943
  Module["_iswalnum"] = _iswalnum = wasmExports2["iswalnum"];
2944
+ Module["_ts_query_copy"] = _ts_query_copy = wasmExports2["ts_query_copy"];
2889
2945
  Module["_ts_query_pattern_count"] = _ts_query_pattern_count = wasmExports2["ts_query_pattern_count"];
2890
2946
  Module["_ts_query_capture_count"] = _ts_query_capture_count = wasmExports2["ts_query_capture_count"];
2891
2947
  Module["_ts_query_string_count"] = _ts_query_string_count = wasmExports2["ts_query_string_count"];
@@ -2991,6 +3047,7 @@ async function Module2(moduleArg = {}) {
2991
3047
  Module["_iswblank"] = _iswblank = wasmExports2["iswblank"];
2992
3048
  Module["_iswdigit"] = _iswdigit = wasmExports2["iswdigit"];
2993
3049
  Module["_iswlower"] = _iswlower = wasmExports2["iswlower"];
3050
+ Module["_iswpunct"] = _iswpunct = wasmExports2["iswpunct"];
2994
3051
  Module["_iswupper"] = _iswupper = wasmExports2["iswupper"];
2995
3052
  Module["_iswxdigit"] = _iswxdigit = wasmExports2["iswxdigit"];
2996
3053
  Module["_memchr"] = _memchr = wasmExports2["memchr"];
@@ -3128,6 +3185,10 @@ __name(checkModule, "checkModule");
3128
3185
  var TRANSFER_BUFFER;
3129
3186
  var LANGUAGE_VERSION;
3130
3187
  var MIN_COMPATIBLE_VERSION;
3188
+ var finalizer4 = newFinalizer((addresses) => {
3189
+ C._ts_parser_delete(addresses[0]);
3190
+ C._free(addresses[1]);
3191
+ });
3131
3192
  var Parser = class {
3132
3193
  static {
3133
3194
  __name(this, "Parser");
@@ -3159,6 +3220,7 @@ var Parser = class {
3159
3220
  */
3160
3221
  constructor() {
3161
3222
  this.initialize();
3223
+ finalizer4?.register(this, [this[0], this[1]], this);
3162
3224
  }
3163
3225
  /** @internal */
3164
3226
  initialize() {
@@ -3171,6 +3233,7 @@ var Parser = class {
3171
3233
  }
3172
3234
  /** Delete the parser, freeing its resources. */
3173
3235
  delete() {
3236
+ finalizer4?.unregister(this);
3174
3237
  C._ts_parser_delete(this[0]);
3175
3238
  C._free(this[1]);
3176
3239
  this[0] = 0;
@@ -3346,6 +3409,10 @@ var QueryError = class _QueryError extends Error {
3346
3409
  this.length = length;
3347
3410
  this.name = "QueryError";
3348
3411
  }
3412
+ kind;
3413
+ info;
3414
+ index;
3415
+ length;
3349
3416
  static {
3350
3417
  __name(this, "QueryError");
3351
3418
  }
@@ -3541,6 +3608,9 @@ function parsePattern(index, stepType, stepValueId, captureNames, stringValues,
3541
3608
  }
3542
3609
  }
3543
3610
  __name(parsePattern, "parsePattern");
3611
+ var finalizer5 = newFinalizer((address) => {
3612
+ C._ts_query_delete(address);
3613
+ });
3544
3614
  var Query = class {
3545
3615
  static {
3546
3616
  __name(this, "Query");
@@ -3695,9 +3765,11 @@ var Query = class {
3695
3765
  this.assertedProperties = assertedProperties;
3696
3766
  this.refutedProperties = refutedProperties;
3697
3767
  this.exceededMatchLimit = false;
3768
+ finalizer5?.register(this, address, this);
3698
3769
  }
3699
3770
  /** Delete the query, freeing its resources. */
3700
3771
  delete() {
3772
+ finalizer5?.unregister(this);
3701
3773
  C._ts_query_delete(this[0]);
3702
3774
  this[0] = 0;
3703
3775
  }
@@ -9133,7 +9205,7 @@ function buildBashCFG(tree, startId, cache) {
9133
9205
  allEdges.push({ from: entryBlock.id, to: firstBlockId, type: "sequential" });
9134
9206
  }
9135
9207
  const exitBlock = {
9136
- id: blockIdCounter++,
9208
+ id: blockIdCounter,
9137
9209
  type: "exit",
9138
9210
  start_line: topLevelStatements[topLevelStatements.length - 1].endPosition.row + 1,
9139
9211
  end_line: topLevelStatements[topLevelStatements.length - 1].endPosition.row + 1
@@ -9251,7 +9323,7 @@ function buildGoCFG(tree, blockIdCounter, cache) {
9251
9323
  );
9252
9324
  if (hasTopLevelDecls) {
9253
9325
  const block = {
9254
- id: blockIdCounter++,
9326
+ id: blockIdCounter,
9255
9327
  type: "normal",
9256
9328
  start_line: 1,
9257
9329
  end_line: tree.rootNode.endPosition.row + 1
@@ -10270,7 +10342,7 @@ function buildRustDFG(tree, cache) {
10270
10342
  const defs = [];
10271
10343
  const uses = [];
10272
10344
  let defIdCounter = 1;
10273
- let useIdCounter = 1;
10345
+ const useIdCounter = 1;
10274
10346
  const scopeStack = [/* @__PURE__ */ new Map()];
10275
10347
  const functions = findNodes(tree.rootNode, "function_item");
10276
10348
  for (const func2 of functions) {
@@ -11005,12 +11077,56 @@ var DEFAULT_SOURCES = [
11005
11077
  { method: "getIn", class: "Exchange", type: "http_body", severity: "high", return_tainted: true },
11006
11078
  { method: "getHeader", class: "Message", type: "http_header", severity: "high", return_tainted: true },
11007
11079
  // File name sources (common in path traversal vulnerabilities)
11008
- { method: "getFileName", type: "file_input", severity: "high", return_tainted: true },
11009
- { method: "getName", class: "File", type: "file_input", severity: "high", return_tainted: true },
11010
- { method: "getPath", class: "File", type: "file_input", severity: "high", return_tainted: true },
11011
- { method: "getAbsolutePath", class: "File", type: "file_input", severity: "high", return_tainted: true },
11012
- { method: "toString", class: "Path", type: "file_input", severity: "medium", return_tainted: true },
11013
- { method: "getFileName", class: "Path", type: "file_input", severity: "high", return_tainted: true },
11080
+ //
11081
+ // cognium-dev#387 — the CLASSLESS `getFileName` was removed with the path
11082
+ // projections below. It had no class and no `languages` scope, so it matched
11083
+ // every `.getFileName()` anywhere, and it kept `Paths.get("/etc/app.conf")
11084
+ // .getFileName()` reporting path_traversal after the class-scoped
11085
+ // `Path.getFileName` was dropped — i.e. it silently defeated that removal,
11086
+ // the same way the classless `getPath` defeated the first revision of this
11087
+ // change. Measured redundant for the sources that matter: with it removed,
11088
+ // `Part.getFileName`, `BodyPart`/`MimeBodyPart.getFileName` and
11089
+ // `MultipartFile.getOriginalFilename` all still bind their sources from
11090
+ // their own class-scoped entries below.
11091
+ // cognium-dev#387 — REMOVED as taint sources: `File.getName`,
11092
+ // `File.getPath`, `File.getAbsolutePath`, `Path.toString`,
11093
+ // `Path.getFileName`, and the classless `getPath` further down this file.
11094
+ //
11095
+ // All of these are pure path PROJECTIONS: they hand back some part of the
11096
+ // path the object already holds. They cannot introduce taint that is not
11097
+ // already present — if the File/Path was built from untrusted input,
11098
+ // propagation carries it — but as blanket sources they turned every
11099
+ // program-constructed path into a high-severity source, and the enclosing
11100
+ // call is usually itself a sink, so source and sink land on the same line.
11101
+ // Each of these was a measured false positive with NO untrusted input
11102
+ // anywhere in the file:
11103
+ //
11104
+ // File f = new File("/etc/app.conf");
11105
+ // new FileInputStream(f.getAbsolutePath()); // path_traversal
11106
+ // new FileInputStream(f.getPath()); // path_traversal
11107
+ // new FileInputStream("/d/" + f.getName()); // path_traversal
11108
+ // Paths.get("/etc/app.conf").getFileName(); // path_traversal
11109
+ //
11110
+ // and conversely, with a genuinely tainted path the finding does NOT depend
11111
+ // on the projection being a source: it comes from the http source and
11112
+ // survives. Verified across six shapes — same-method, inline with no
11113
+ // intermediate variable, `getPath`, `Paths.get(p).toString()`, a File passed
11114
+ // cross-method as a parameter, and a field-held File read in another method.
11115
+ //
11116
+ // The genuinely untrusted name sources are separately class-scoped and
11117
+ // unaffected: `ZipEntry`/`TarArchiveEntry.getName` (Zip/Tar Slip),
11118
+ // `MultipartFile.getOriginalFilename`/`getName`, `Part`, `BodyPart`.
11119
+ // Measured: those still bind their sources with these removed.
11120
+ //
11121
+ // NO `listFiles` COVERAGE IS LOST — an earlier revision of this change
11122
+ // claimed there was. Measured directly, before vs after, for a File taken
11123
+ // from `dir.listFiles()`: `getName` 0 flows -> 0 flows, `getAbsolutePath`
11124
+ // 0 -> 0, `getPath` 1 -> 1. The first two never fired in that shape at all,
11125
+ // because class resolution does not resolve a for-each variable to `File`.
11126
+ // Modelling `listFiles` / `Files.list` / `Files.walk` as sources is still
11127
+ // worth doing — the directory listing IS external data — but it is additive,
11128
+ // needs its own FP measurement, and is not a regression from this change.
11129
+ // Tracked on #387.
11014
11130
  // Multipart file uploads
11015
11131
  { method: "getOriginalFilename", class: "MultipartFile", type: "file_input", severity: "high", return_tainted: true },
11016
11132
  { method: "getName", class: "MultipartFile", type: "file_input", severity: "high", return_tainted: true },
@@ -11102,7 +11218,12 @@ var DEFAULT_SOURCES = [
11102
11218
  // Jenkins/CI pipeline sources
11103
11219
  { method: "getScriptPath", type: "io_input", severity: "critical", return_tainted: true },
11104
11220
  { method: "getFilePathSuffix", type: "io_input", severity: "high", return_tainted: true },
11105
- { method: "getPath", type: "file_input", severity: "high", return_tainted: true },
11221
+ // cognium-dev#387 — the classless `getPath` was REMOVED here too. The first
11222
+ // revision of this change dropped only the class-scoped `File.getPath` and
11223
+ // left this one, so `f.getPath()` kept emitting a `file_input` source and the
11224
+ // self-flow false positive survived — the change did not do what it claimed.
11225
+ // This entry is strictly broader than the one it shadowed: no class and no
11226
+ // `languages` scope, so it matched every `.getPath()` in every language.
11106
11227
  { method: "contentAsString", type: "file_input", severity: "critical", return_tainted: true },
11107
11228
  { method: "readAsString", type: "file_input", severity: "critical", return_tainted: true },
11108
11229
  { method: "content", type: "file_input", severity: "high", return_tainted: true },
@@ -18871,7 +18992,7 @@ var ConstantPropagator = class _ConstantPropagator {
18871
18992
  }
18872
18993
  }
18873
18994
  const startIdx = matchingIdx >= 0 ? matchingIdx : defaultIdx;
18874
- for (let i2 = 0; i2 < startIdx && startIdx >= 0; i2++) {
18995
+ for (let i2 = 0; i2 < startIdx; i2++) {
18875
18996
  this.markUnreachable(caseGroups[i2]);
18876
18997
  }
18877
18998
  if (startIdx >= 0) {
@@ -619,7 +619,7 @@ function buildBashCFG(tree, startId, cache) {
619
619
  }
620
620
  // Create exit block
621
621
  const exitBlock = {
622
- id: blockIdCounter++,
622
+ id: blockIdCounter,
623
623
  type: 'exit',
624
624
  start_line: topLevelStatements[topLevelStatements.length - 1].endPosition.row + 1,
625
625
  end_line: topLevelStatements[topLevelStatements.length - 1].endPosition.row + 1,
@@ -761,7 +761,7 @@ function buildGoCFG(tree, blockIdCounter, cache) {
761
761
  if (hasTopLevelDecls) {
762
762
  // Create a single block for top-level declarations
763
763
  const block = {
764
- id: blockIdCounter++,
764
+ id: blockIdCounter,
765
765
  type: 'normal',
766
766
  start_line: 1,
767
767
  end_line: tree.rootNode.endPosition.row + 1,
@@ -1 +1 @@
1
- {"version":3,"file":"cfg.js","sourceRoot":"","sources":["../../../src/core/extractors/cfg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cfg.js","sourceRoot":"","sources":["../../../src/core/extractors/cfg.ts"],"names":[],"mappings":"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"}
@@ -1274,7 +1274,7 @@ function buildRustDFG(tree, cache) {
1274
1274
  const defs = [];
1275
1275
  const uses = [];
1276
1276
  let defIdCounter = 1;
1277
- let useIdCounter = 1;
1277
+ const useIdCounter = 1;
1278
1278
  // Track definitions by variable name and scope for reaching definitions
1279
1279
  const scopeStack = [new Map()];
1280
1280
  // Find all function bodies