circle-ir 3.25.0 → 3.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analysis/passes/scan-secrets-pass.d.ts +60 -0
- package/dist/analysis/passes/scan-secrets-pass.d.ts.map +1 -0
- package/dist/analysis/passes/scan-secrets-pass.js +345 -0
- package/dist/analysis/passes/scan-secrets-pass.js.map +1 -0
- package/dist/analyzer.d.ts +1 -0
- package/dist/analyzer.d.ts.map +1 -1
- package/dist/analyzer.js +272 -249
- package/dist/analyzer.js.map +1 -1
- package/dist/browser/circle-ir.js +507 -213
- package/dist/core/circle-ir-core.cjs +17 -1
- package/dist/core/circle-ir-core.js +17 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/parser.d.ts +19 -1
- package/dist/core/parser.d.ts.map +1 -1
- package/dist/core/parser.js +53 -2
- package/dist/core/parser.js.map +1 -1
- package/dist/graph/analysis-pass.d.ts +10 -0
- package/dist/graph/analysis-pass.d.ts.map +1 -1
- package/dist/graph/analysis-pass.js +3 -0
- package/dist/graph/analysis-pass.js.map +1 -1
- package/package.json +1 -1
|
@@ -4062,6 +4062,7 @@ var parserInitialized = false;
|
|
|
4062
4062
|
var parserInitializing = null;
|
|
4063
4063
|
var loadedLanguages = /* @__PURE__ */ new Map();
|
|
4064
4064
|
var loadingLanguages = /* @__PURE__ */ new Map();
|
|
4065
|
+
var cachedParsers = /* @__PURE__ */ new Map();
|
|
4065
4066
|
var configuredLanguagePaths = {};
|
|
4066
4067
|
var configuredLanguageModules = {};
|
|
4067
4068
|
async function initParser(options = {}) {
|
|
@@ -4131,9 +4132,14 @@ async function loadLanguage(language, wasmPath) {
|
|
|
4131
4132
|
return loadPromise;
|
|
4132
4133
|
}
|
|
4133
4134
|
async function createParser(language) {
|
|
4135
|
+
const cached = cachedParsers.get(language);
|
|
4136
|
+
if (cached) {
|
|
4137
|
+
return cached;
|
|
4138
|
+
}
|
|
4134
4139
|
const lang = await loadLanguage(language);
|
|
4135
4140
|
const parser = new Parser();
|
|
4136
4141
|
parser.setLanguage(lang);
|
|
4142
|
+
cachedParsers.set(language, parser);
|
|
4137
4143
|
return parser;
|
|
4138
4144
|
}
|
|
4139
4145
|
async function parse(code, language) {
|
|
@@ -4230,9 +4236,19 @@ function isLanguageLoaded(language) {
|
|
|
4230
4236
|
return loadedLanguages.has(language);
|
|
4231
4237
|
}
|
|
4232
4238
|
function resetParser() {
|
|
4233
|
-
|
|
4239
|
+
for (const parser of cachedParsers.values()) {
|
|
4240
|
+
try {
|
|
4241
|
+
parser.delete();
|
|
4242
|
+
} catch {
|
|
4243
|
+
}
|
|
4244
|
+
}
|
|
4245
|
+
cachedParsers.clear();
|
|
4234
4246
|
loadedLanguages.clear();
|
|
4247
|
+
loadingLanguages.clear();
|
|
4235
4248
|
configuredLanguagePaths = {};
|
|
4249
|
+
configuredLanguageModules = {};
|
|
4250
|
+
parserInitialized = false;
|
|
4251
|
+
parserInitializing = null;
|
|
4236
4252
|
}
|
|
4237
4253
|
|
|
4238
4254
|
// src/core/extractors/meta.ts
|
|
@@ -3997,6 +3997,7 @@ var parserInitialized = false;
|
|
|
3997
3997
|
var parserInitializing = null;
|
|
3998
3998
|
var loadedLanguages = /* @__PURE__ */ new Map();
|
|
3999
3999
|
var loadingLanguages = /* @__PURE__ */ new Map();
|
|
4000
|
+
var cachedParsers = /* @__PURE__ */ new Map();
|
|
4000
4001
|
var configuredLanguagePaths = {};
|
|
4001
4002
|
var configuredLanguageModules = {};
|
|
4002
4003
|
async function initParser(options = {}) {
|
|
@@ -4066,9 +4067,14 @@ async function loadLanguage(language, wasmPath) {
|
|
|
4066
4067
|
return loadPromise;
|
|
4067
4068
|
}
|
|
4068
4069
|
async function createParser(language) {
|
|
4070
|
+
const cached = cachedParsers.get(language);
|
|
4071
|
+
if (cached) {
|
|
4072
|
+
return cached;
|
|
4073
|
+
}
|
|
4069
4074
|
const lang = await loadLanguage(language);
|
|
4070
4075
|
const parser = new Parser();
|
|
4071
4076
|
parser.setLanguage(lang);
|
|
4077
|
+
cachedParsers.set(language, parser);
|
|
4072
4078
|
return parser;
|
|
4073
4079
|
}
|
|
4074
4080
|
async function parse(code, language) {
|
|
@@ -4165,9 +4171,19 @@ function isLanguageLoaded(language) {
|
|
|
4165
4171
|
return loadedLanguages.has(language);
|
|
4166
4172
|
}
|
|
4167
4173
|
function resetParser() {
|
|
4168
|
-
|
|
4174
|
+
for (const parser of cachedParsers.values()) {
|
|
4175
|
+
try {
|
|
4176
|
+
parser.delete();
|
|
4177
|
+
} catch {
|
|
4178
|
+
}
|
|
4179
|
+
}
|
|
4180
|
+
cachedParsers.clear();
|
|
4169
4181
|
loadedLanguages.clear();
|
|
4182
|
+
loadingLanguages.clear();
|
|
4170
4183
|
configuredLanguagePaths = {};
|
|
4184
|
+
configuredLanguageModules = {};
|
|
4185
|
+
parserInitialized = false;
|
|
4186
|
+
parserInitializing = null;
|
|
4171
4187
|
}
|
|
4172
4188
|
|
|
4173
4189
|
// src/core/extractors/meta.ts
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core module index - re-exports parser and extractors
|
|
3
3
|
*/
|
|
4
|
-
export { initParser, loadLanguage, createParser, parse, walkTree, findNodes, findAncestor, getNodeText, collectAllNodes, getNodesFromCache, isInitialized, isLanguageLoaded, resetParser, type SupportedLanguage, type SyntaxNode, type Node, type NodeCache, type Language, type Tree, } from './parser.js';
|
|
4
|
+
export { initParser, loadLanguage, createParser, createFreshParser, parse, disposeTree, walkTree, findNodes, findAncestor, getNodeText, collectAllNodes, getNodesFromCache, isInitialized, isLanguageLoaded, resetParser, type SupportedLanguage, type SyntaxNode, type Node, type NodeCache, type Language, type Tree, } from './parser.js';
|
|
5
5
|
export { extractMeta, extractTypes, extractCalls, extractImports, extractExports, buildCFG, buildDFG, } from './extractors/index.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,IAAI,GACV,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,QAAQ,EACR,QAAQ,GACT,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,KAAK,EACL,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,IAAI,GACV,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,QAAQ,EACR,QAAQ,GACT,MAAM,uBAAuB,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Core module index - re-exports parser and extractors
|
|
3
3
|
*/
|
|
4
4
|
// Parser
|
|
5
|
-
export { initParser, loadLanguage, createParser, parse, walkTree, findNodes, findAncestor, getNodeText, collectAllNodes, getNodesFromCache, isInitialized, isLanguageLoaded, resetParser, } from './parser.js';
|
|
5
|
+
export { initParser, loadLanguage, createParser, createFreshParser, parse, disposeTree, walkTree, findNodes, findAncestor, getNodeText, collectAllNodes, getNodesFromCache, isInitialized, isLanguageLoaded, resetParser, } from './parser.js';
|
|
6
6
|
// Extractors
|
|
7
7
|
export { extractMeta, extractTypes, extractCalls, extractImports, extractExports, buildCFG, buildDFG, } from './extractors/index.js';
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,OAAO,EACL,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,WAAW,GAOZ,MAAM,aAAa,CAAC;AAErB,aAAa;AACb,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,QAAQ,EACR,QAAQ,GACT,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,OAAO,EACL,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,KAAK,EACL,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,WAAW,GAOZ,MAAM,aAAa,CAAC;AAErB,aAAa;AACb,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,QAAQ,EACR,QAAQ,GACT,MAAM,uBAAuB,CAAC"}
|
package/dist/core/parser.d.ts
CHANGED
|
@@ -45,13 +45,28 @@ export declare function initParser(options?: ParserOptions): Promise<void>;
|
|
|
45
45
|
*/
|
|
46
46
|
export declare function loadLanguage(language: SupportedLanguage, wasmPath?: string): Promise<Language>;
|
|
47
47
|
/**
|
|
48
|
-
*
|
|
48
|
+
* Get a parser instance configured for the specified language. The Parser is
|
|
49
|
+
* cached per-language and reused across calls — see `cachedParsers` above.
|
|
50
|
+
* Use `createFreshParser()` if you need a non-shared instance.
|
|
49
51
|
*/
|
|
50
52
|
export declare function createParser(language: SupportedLanguage): Promise<Parser>;
|
|
53
|
+
/**
|
|
54
|
+
* Create a non-cached parser. Caller is responsible for `parser.delete()` when
|
|
55
|
+
* done. Prefer `createParser` unless isolation is required.
|
|
56
|
+
*/
|
|
57
|
+
export declare function createFreshParser(language: SupportedLanguage): Promise<Parser>;
|
|
51
58
|
/**
|
|
52
59
|
* Parse source code and return the syntax tree.
|
|
60
|
+
*
|
|
61
|
+
* IMPORTANT: The returned Tree holds memory in the tree-sitter WASM heap. Call
|
|
62
|
+
* `disposeTree(tree)` once you no longer need its nodes to free that memory.
|
|
63
|
+
* Failing to dispose causes unbounded WASM heap growth at scale (#16).
|
|
53
64
|
*/
|
|
54
65
|
export declare function parse(code: string, language: SupportedLanguage): Promise<Tree>;
|
|
66
|
+
/**
|
|
67
|
+
* Free the WASM memory backing a parsed Tree. Safe to call multiple times.
|
|
68
|
+
*/
|
|
69
|
+
export declare function disposeTree(tree: Tree | null | undefined): void;
|
|
55
70
|
/**
|
|
56
71
|
* Walk the syntax tree and call the visitor for each node.
|
|
57
72
|
*/
|
|
@@ -92,6 +107,9 @@ export declare function isInitialized(): boolean;
|
|
|
92
107
|
export declare function isLanguageLoaded(language: SupportedLanguage): boolean;
|
|
93
108
|
/**
|
|
94
109
|
* Reset the parser state (mainly for testing).
|
|
110
|
+
*
|
|
111
|
+
* Disposes any cached Parser instances and clears the language cache so the
|
|
112
|
+
* next `initParser()` call starts with a clean WASM heap.
|
|
95
113
|
*/
|
|
96
114
|
export declare function resetParser(): void;
|
|
97
115
|
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAoD/D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC1B,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC;AAE9B,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAEhI,UAAU,aAAa;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC;IAEhC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3D;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;CAC1E;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAoD/D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC1B,YAAY,EAAE,IAAI,EAAE,CAAC;AAErB,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC;AAE9B,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAEhI,UAAU,aAAa;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC;IAEhC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3D;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;CAC1E;AAaD;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C3E;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC,CA6CnB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAU/E;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAKpF;AAED;;;;;;GAMG;AACH,wBAAsB,KAAK,CACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAO/D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAC5B,IAAI,CAQN;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,CAQ1D;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAazE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,EAAE,CAKrF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CASlE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE9C;AA4DD;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAWlC"}
|
package/dist/core/parser.js
CHANGED
|
@@ -52,6 +52,10 @@ let parserInitialized = false;
|
|
|
52
52
|
let parserInitializing = null;
|
|
53
53
|
const loadedLanguages = new Map();
|
|
54
54
|
const loadingLanguages = new Map();
|
|
55
|
+
// One reusable Parser per language. `new Parser()` allocates a struct in the
|
|
56
|
+
// tree-sitter WASM heap; reusing the instance avoids unbounded heap growth
|
|
57
|
+
// when many files are parsed in a single process (see issue #16).
|
|
58
|
+
const cachedParsers = new Map();
|
|
55
59
|
let configuredLanguagePaths = {};
|
|
56
60
|
let configuredLanguageModules = {};
|
|
57
61
|
/**
|
|
@@ -144,9 +148,26 @@ export async function loadLanguage(language, wasmPath) {
|
|
|
144
148
|
return loadPromise;
|
|
145
149
|
}
|
|
146
150
|
/**
|
|
147
|
-
*
|
|
151
|
+
* Get a parser instance configured for the specified language. The Parser is
|
|
152
|
+
* cached per-language and reused across calls — see `cachedParsers` above.
|
|
153
|
+
* Use `createFreshParser()` if you need a non-shared instance.
|
|
148
154
|
*/
|
|
149
155
|
export async function createParser(language) {
|
|
156
|
+
const cached = cachedParsers.get(language);
|
|
157
|
+
if (cached) {
|
|
158
|
+
return cached;
|
|
159
|
+
}
|
|
160
|
+
const lang = await loadLanguage(language);
|
|
161
|
+
const parser = new Parser();
|
|
162
|
+
parser.setLanguage(lang);
|
|
163
|
+
cachedParsers.set(language, parser);
|
|
164
|
+
return parser;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Create a non-cached parser. Caller is responsible for `parser.delete()` when
|
|
168
|
+
* done. Prefer `createParser` unless isolation is required.
|
|
169
|
+
*/
|
|
170
|
+
export async function createFreshParser(language) {
|
|
150
171
|
const lang = await loadLanguage(language);
|
|
151
172
|
const parser = new Parser();
|
|
152
173
|
parser.setLanguage(lang);
|
|
@@ -154,6 +175,10 @@ export async function createParser(language) {
|
|
|
154
175
|
}
|
|
155
176
|
/**
|
|
156
177
|
* Parse source code and return the syntax tree.
|
|
178
|
+
*
|
|
179
|
+
* IMPORTANT: The returned Tree holds memory in the tree-sitter WASM heap. Call
|
|
180
|
+
* `disposeTree(tree)` once you no longer need its nodes to free that memory.
|
|
181
|
+
* Failing to dispose causes unbounded WASM heap growth at scale (#16).
|
|
157
182
|
*/
|
|
158
183
|
export async function parse(code, language) {
|
|
159
184
|
const parser = await createParser(language);
|
|
@@ -163,6 +188,19 @@ export async function parse(code, language) {
|
|
|
163
188
|
}
|
|
164
189
|
return tree;
|
|
165
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Free the WASM memory backing a parsed Tree. Safe to call multiple times.
|
|
193
|
+
*/
|
|
194
|
+
export function disposeTree(tree) {
|
|
195
|
+
if (!tree)
|
|
196
|
+
return;
|
|
197
|
+
try {
|
|
198
|
+
tree.delete();
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
// Already deleted or invalid handle — ignore.
|
|
202
|
+
}
|
|
203
|
+
}
|
|
166
204
|
/**
|
|
167
205
|
* Walk the syntax tree and call the visitor for each node.
|
|
168
206
|
*/
|
|
@@ -293,10 +331,23 @@ export function isLanguageLoaded(language) {
|
|
|
293
331
|
}
|
|
294
332
|
/**
|
|
295
333
|
* Reset the parser state (mainly for testing).
|
|
334
|
+
*
|
|
335
|
+
* Disposes any cached Parser instances and clears the language cache so the
|
|
336
|
+
* next `initParser()` call starts with a clean WASM heap.
|
|
296
337
|
*/
|
|
297
338
|
export function resetParser() {
|
|
298
|
-
|
|
339
|
+
for (const parser of cachedParsers.values()) {
|
|
340
|
+
try {
|
|
341
|
+
parser.delete();
|
|
342
|
+
}
|
|
343
|
+
catch { /* ignore */ }
|
|
344
|
+
}
|
|
345
|
+
cachedParsers.clear();
|
|
299
346
|
loadedLanguages.clear();
|
|
347
|
+
loadingLanguages.clear();
|
|
300
348
|
configuredLanguagePaths = {};
|
|
349
|
+
configuredLanguageModules = {};
|
|
350
|
+
parserInitialized = false;
|
|
351
|
+
parserInitializing = null;
|
|
301
352
|
}
|
|
302
353
|
//# sourceMappingURL=parser.js.map
|
package/dist/core/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,16 @@ export interface PassContext {
|
|
|
33
33
|
* Findings are collected by the pipeline and returned alongside results.
|
|
34
34
|
*/
|
|
35
35
|
addFinding(finding: SastFinding): void;
|
|
36
|
+
/**
|
|
37
|
+
* Read findings emitted by previously-run passes in this pipeline run.
|
|
38
|
+
* Used by dedup-aware passes (e.g. ScanSecretsPass) to avoid double-reporting
|
|
39
|
+
* the same `(file, line, rule_id)` already covered by an earlier pass.
|
|
40
|
+
*
|
|
41
|
+
* Optional: only the real pipeline implementation provides this. Test
|
|
42
|
+
* harnesses that construct a `PassContext` literal may omit it; passes that
|
|
43
|
+
* read it must treat `undefined` as "no prior findings".
|
|
44
|
+
*/
|
|
45
|
+
getFindings?(): readonly SastFinding[];
|
|
36
46
|
}
|
|
37
47
|
/**
|
|
38
48
|
* An analysis pass over a CodeGraph.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis-pass.d.ts","sourceRoot":"","sources":["../../src/graph/analysis-pass.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B;;;OAGG;IACH,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC;IAElC,oEAAoE;IACpE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAErC;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;CACxC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY,CAAC,OAAO,GAAG,OAAO;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;CACpC;AAED,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,2EAA2E;IAC3E,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAE7C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAKnC,GAAG,CACD,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,GAClB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"analysis-pass.d.ts","sourceRoot":"","sources":["../../src/graph/analysis-pass.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B;;;OAGG;IACH,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC;IAElC,oEAAoE;IACpE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAErC;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAEvC;;;;;;;;OAQG;IACH,WAAW,CAAC,IAAI,SAAS,WAAW,EAAE,CAAC;CACxC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY,CAAC,OAAO,GAAG,OAAO;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;CACpC;AAED,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,2EAA2E;IAC3E,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAE7C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAKnC,GAAG,CACD,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,GAClB,iBAAiB;CAmCrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis-pass.js","sourceRoot":"","sources":["../../src/graph/analysis-pass.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"analysis-pass.js","sourceRoot":"","sources":["../../src/graph/analysis-pass.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmEH;;;;;;;;GAQG;AACH,MAAM,OAAO,gBAAgB;IACV,MAAM,GAAmB,EAAE,CAAC;IAE7C,GAAG,CAAI,IAAqB;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CACD,KAAgB,EAChB,IAAY,EACZ,QAAgB,EAChB,MAAmB;QAEnB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;QAC3C,MAAM,QAAQ,GAAkB,EAAE,CAAC;QAEnC,MAAM,OAAO,GAAgB;YAC3B,KAAK;YACL,IAAI;YACJ,QAAQ;YACR,MAAM;YACN,SAAS,CAAI,QAAgB;gBAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CACb,SAAS,QAAQ,8CAA8C,CAChE,CAAC;gBACJ,CAAC;gBACD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAM,CAAC;YACpC,CAAC;YACD,SAAS,CAAC,QAAgB;gBACxB,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;YACD,UAAU,CAAC,OAAoB;gBAC7B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;YACD,WAAW;gBACT,OAAO,QAAQ,CAAC;YAClB,CAAC;SACF,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "circle-ir",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.28.0",
|
|
4
4
|
"description": "High-performance Static Application Security Testing (SAST) library for detecting security vulnerabilities through taint analysis",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|