circle-ir 3.154.0 → 3.156.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/configs/sinks/code_injection.yaml +2 -1
- package/configs/sinks/javascript_dom_xss.yaml +4 -2
- package/configs/sinks/xpath.yaml +40 -0
- package/dist/analysis/config-loader.d.ts.map +1 -1
- package/dist/analysis/config-loader.js +3 -0
- package/dist/analysis/config-loader.js.map +1 -1
- package/dist/analysis/dfg-walk.d.ts +36 -0
- package/dist/analysis/dfg-walk.d.ts.map +1 -0
- package/dist/analysis/dfg-walk.js +59 -0
- package/dist/analysis/dfg-walk.js.map +1 -0
- package/dist/analysis/passes/language-sources-pass.d.ts.map +1 -1
- package/dist/analysis/passes/language-sources-pass.js +22 -0
- package/dist/analysis/passes/language-sources-pass.js.map +1 -1
- package/dist/analysis/passes/mybatis-annotation-sql-sink-pass.d.ts +49 -0
- package/dist/analysis/passes/mybatis-annotation-sql-sink-pass.d.ts.map +1 -0
- package/dist/analysis/passes/mybatis-annotation-sql-sink-pass.js +329 -0
- package/dist/analysis/passes/mybatis-annotation-sql-sink-pass.js.map +1 -0
- package/dist/analysis/passes/weak-crypto-pass.d.ts.map +1 -1
- package/dist/analysis/passes/weak-crypto-pass.js +6 -0
- package/dist/analysis/passes/weak-crypto-pass.js.map +1 -1
- package/dist/analysis/path-classification.d.ts +24 -0
- package/dist/analysis/path-classification.d.ts.map +1 -0
- package/dist/analysis/path-classification.js +69 -0
- package/dist/analysis/path-classification.js.map +1 -0
- package/dist/analysis/taint-matcher.d.ts.map +1 -1
- package/dist/analysis/taint-matcher.js +30 -0
- package/dist/analysis/taint-matcher.js.map +1 -1
- package/dist/analysis/taint-propagation.d.ts +17 -1
- package/dist/analysis/taint-propagation.d.ts.map +1 -1
- package/dist/analysis/taint-propagation.js +47 -16
- package/dist/analysis/taint-propagation.js.map +1 -1
- package/dist/analyzer.d.ts.map +1 -1
- package/dist/analyzer.js +8 -0
- package/dist/analyzer.js.map +1 -1
- package/dist/browser/circle-ir.js +475 -12
- package/dist/core/circle-ir-core.cjs +96 -12
- package/dist/core/circle-ir-core.js +96 -12
- package/dist/graph/code-graph.d.ts +7 -0
- package/dist/graph/code-graph.d.ts.map +1 -1
- package/dist/graph/code-graph.js +17 -0
- package/dist/graph/code-graph.js.map +1 -1
- package/dist/resolution/type-hierarchy.d.ts +15 -0
- package/dist/resolution/type-hierarchy.d.ts.map +1 -1
- package/dist/resolution/type-hierarchy.js +159 -0
- package/dist/resolution/type-hierarchy.js.map +1 -1
- package/package.json +1 -1
|
@@ -12297,6 +12297,9 @@ var DEFAULT_SANITIZERS = [
|
|
|
12297
12297
|
{ method: "parseDouble", class: "Double", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12298
12298
|
{ method: "parseShort", class: "Short", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12299
12299
|
{ method: "parseByte", class: "Byte", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12300
|
+
// cognium-dev #238 A.3 — parseBoolean and expanded coercion coverage for XSS/CRLF/log/xpath/ldap/xxe.
|
|
12301
|
+
// A parsed boolean/numeric cannot carry a string-injection payload for any string-based sink.
|
|
12302
|
+
{ method: "parseBoolean", class: "Boolean", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection", "xss", "crlf", "log_injection", "xpath_injection", "ldap_injection", "xxe"] },
|
|
12300
12303
|
// Java UUID parse — UUID.fromString rejects non-UUID strings
|
|
12301
12304
|
{ method: "fromString", class: "UUID", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12302
12305
|
// JavaScript numeric coercion (Number/parseInt/parseFloat already covered above; add path_traversal/code_injection)
|
|
@@ -13490,8 +13493,11 @@ function matchesSinkPattern(call, pattern, typeHierarchy, language) {
|
|
|
13490
13493
|
if (pattern.class === "constructor") {
|
|
13491
13494
|
return true;
|
|
13492
13495
|
}
|
|
13496
|
+
const subtypeArgArityOk = !pattern.arg_positions || pattern.arg_positions.length === 0 || pattern.arg_positions.every((pos) => pos < (call.arguments?.length ?? 0));
|
|
13493
13497
|
if (call.receiver_type && call.receiver_type === pattern.class) {
|
|
13498
|
+
} else if (call.receiver_type && typeHierarchy && subtypeArgArityOk && typeHierarchy.isSubtypeOf(call.receiver_type, pattern.class)) {
|
|
13494
13499
|
} else if (call.receiver_type_fqn && call.receiver_type_fqn.endsWith("." + pattern.class)) {
|
|
13500
|
+
} else if (call.receiver_type_fqn && typeHierarchy && subtypeArgArityOk && typeHierarchy.isSubtypeOf(call.receiver_type_fqn, pattern.class)) {
|
|
13495
13501
|
} else if (call.receiver && !receiverMightBeClass(call.receiver, pattern.class)) {
|
|
13496
13502
|
if (typeHierarchy && typeHierarchy.couldBeType(call.receiver, pattern.class)) {
|
|
13497
13503
|
return true;
|
|
@@ -14046,6 +14052,23 @@ var CodeGraph = class {
|
|
|
14046
14052
|
}
|
|
14047
14053
|
return this._chainsByFromDef;
|
|
14048
14054
|
}
|
|
14055
|
+
/**
|
|
14056
|
+
* Mirror of chainsByFromDef keyed by chain.to_def. Enables backward
|
|
14057
|
+
* walks from a use's reaching def to earlier defs in the chain
|
|
14058
|
+
* (cognium-dev #238 — DFG-walk sanitizer credit).
|
|
14059
|
+
*/
|
|
14060
|
+
_chainsByToDef = null;
|
|
14061
|
+
get chainsByToDef() {
|
|
14062
|
+
if (!this._chainsByToDef) {
|
|
14063
|
+
this._chainsByToDef = /* @__PURE__ */ new Map();
|
|
14064
|
+
for (const chain of this.ir.dfg.chains ?? []) {
|
|
14065
|
+
const arr = this._chainsByToDef.get(chain.to_def) ?? [];
|
|
14066
|
+
arr.push(chain);
|
|
14067
|
+
this._chainsByToDef.set(chain.to_def, arr);
|
|
14068
|
+
}
|
|
14069
|
+
}
|
|
14070
|
+
return this._chainsByToDef;
|
|
14071
|
+
}
|
|
14049
14072
|
// ---------------------------------------------------------------------------
|
|
14050
14073
|
// Call indexes
|
|
14051
14074
|
// ---------------------------------------------------------------------------
|
|
@@ -14216,6 +14239,43 @@ var CodeGraph = class {
|
|
|
14216
14239
|
}
|
|
14217
14240
|
};
|
|
14218
14241
|
|
|
14242
|
+
// src/analysis/dfg-walk.ts
|
|
14243
|
+
function walkBackwardDefs(startDefId, chainsByToDef, defById, options = {}) {
|
|
14244
|
+
const maxHops = options.maxHops ?? 32;
|
|
14245
|
+
const visited = /* @__PURE__ */ new Set();
|
|
14246
|
+
const lines = /* @__PURE__ */ new Set();
|
|
14247
|
+
let hopCapReached = false;
|
|
14248
|
+
const startDef = defById.get(startDefId);
|
|
14249
|
+
if (!startDef) {
|
|
14250
|
+
return { visited, lines, hopCapReached: false };
|
|
14251
|
+
}
|
|
14252
|
+
visited.add(startDefId);
|
|
14253
|
+
lines.add(startDef.line);
|
|
14254
|
+
const queue = [startDefId];
|
|
14255
|
+
let hops = 0;
|
|
14256
|
+
while (queue.length > 0) {
|
|
14257
|
+
if (hops >= maxHops) {
|
|
14258
|
+
hopCapReached = true;
|
|
14259
|
+
break;
|
|
14260
|
+
}
|
|
14261
|
+
hops++;
|
|
14262
|
+
const currentId = queue.shift();
|
|
14263
|
+
const incoming = chainsByToDef.get(currentId);
|
|
14264
|
+
if (!incoming) continue;
|
|
14265
|
+
for (const chain of incoming) {
|
|
14266
|
+
const fromId = chain.from_def;
|
|
14267
|
+
if (visited.has(fromId)) continue;
|
|
14268
|
+
visited.add(fromId);
|
|
14269
|
+
const fromDef = defById.get(fromId);
|
|
14270
|
+
if (fromDef) {
|
|
14271
|
+
lines.add(fromDef.line);
|
|
14272
|
+
}
|
|
14273
|
+
queue.push(fromId);
|
|
14274
|
+
}
|
|
14275
|
+
}
|
|
14276
|
+
return { visited, lines, hopCapReached };
|
|
14277
|
+
}
|
|
14278
|
+
|
|
14219
14279
|
// src/analysis/taint-propagation.ts
|
|
14220
14280
|
function buildSanitizersByLine(sanitizers) {
|
|
14221
14281
|
const out2 = /* @__PURE__ */ new Map();
|
|
@@ -14303,7 +14363,12 @@ function propagateTaint(graphOrDfg, callsOrSources, sourcesOrSinks, sinksOrSanit
|
|
|
14303
14363
|
taintInfo.line,
|
|
14304
14364
|
sink.line,
|
|
14305
14365
|
sink.type,
|
|
14306
|
-
sanitizersByLine
|
|
14366
|
+
sanitizersByLine,
|
|
14367
|
+
{
|
|
14368
|
+
startDefId: use.def_id,
|
|
14369
|
+
chainsByToDef: graph.chainsByToDef,
|
|
14370
|
+
defById
|
|
14371
|
+
}
|
|
14307
14372
|
);
|
|
14308
14373
|
if (!isSanitized.sanitized) {
|
|
14309
14374
|
const source = sources.find((s) => s.line === taintInfo.sourceLine);
|
|
@@ -14441,20 +14506,39 @@ var KNOWN_SINK_TYPES = /* @__PURE__ */ new Set([
|
|
|
14441
14506
|
"crlf",
|
|
14442
14507
|
"mass_assignment"
|
|
14443
14508
|
]);
|
|
14444
|
-
function checkSanitized(_fromLine, toLine, sinkType, sanitizersByLine) {
|
|
14445
|
-
const sanitizersAtTarget = sanitizersByLine.get(toLine);
|
|
14446
|
-
if (!sanitizersAtTarget || sanitizersAtTarget.length === 0) {
|
|
14447
|
-
return { sanitized: false };
|
|
14448
|
-
}
|
|
14509
|
+
function checkSanitized(_fromLine, toLine, sinkType, sanitizersByLine, ctx) {
|
|
14449
14510
|
const isKnownSinkType = KNOWN_SINK_TYPES.has(sinkType);
|
|
14450
|
-
|
|
14451
|
-
|
|
14452
|
-
|
|
14511
|
+
const sanitizersAtTarget = sanitizersByLine.get(toLine);
|
|
14512
|
+
if (sanitizersAtTarget && sanitizersAtTarget.length > 0) {
|
|
14513
|
+
for (const san of sanitizersAtTarget) {
|
|
14514
|
+
if (isKnownSinkType) {
|
|
14515
|
+
if (san.sanitizes.includes(sinkType)) {
|
|
14516
|
+
return { sanitized: true, sanitizer: san };
|
|
14517
|
+
}
|
|
14518
|
+
} else if (san.sanitizes.length > 0) {
|
|
14453
14519
|
return { sanitized: true, sanitizer: san };
|
|
14454
14520
|
}
|
|
14455
|
-
}
|
|
14456
|
-
|
|
14457
|
-
|
|
14521
|
+
}
|
|
14522
|
+
}
|
|
14523
|
+
if (ctx) {
|
|
14524
|
+
const walk = walkBackwardDefs(
|
|
14525
|
+
ctx.startDefId,
|
|
14526
|
+
ctx.chainsByToDef,
|
|
14527
|
+
ctx.defById,
|
|
14528
|
+
{ maxHops: ctx.maxHops ?? 32 }
|
|
14529
|
+
);
|
|
14530
|
+
for (const line of walk.lines) {
|
|
14531
|
+
if (line === toLine) continue;
|
|
14532
|
+
const sansAtLine = sanitizersByLine.get(line);
|
|
14533
|
+
if (!sansAtLine || sansAtLine.length === 0) continue;
|
|
14534
|
+
for (const san of sansAtLine) {
|
|
14535
|
+
if (isKnownSinkType) {
|
|
14536
|
+
if (san.sanitizes.includes(sinkType)) {
|
|
14537
|
+
return { sanitized: true, sanitizer: san };
|
|
14538
|
+
}
|
|
14539
|
+
} else if (san.sanitizes.length > 0) {
|
|
14540
|
+
return { sanitized: true, sanitizer: san };
|
|
14541
|
+
}
|
|
14458
14542
|
}
|
|
14459
14543
|
}
|
|
14460
14544
|
}
|
|
@@ -12231,6 +12231,9 @@ var DEFAULT_SANITIZERS = [
|
|
|
12231
12231
|
{ method: "parseDouble", class: "Double", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12232
12232
|
{ method: "parseShort", class: "Short", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12233
12233
|
{ method: "parseByte", class: "Byte", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12234
|
+
// cognium-dev #238 A.3 — parseBoolean and expanded coercion coverage for XSS/CRLF/log/xpath/ldap/xxe.
|
|
12235
|
+
// A parsed boolean/numeric cannot carry a string-injection payload for any string-based sink.
|
|
12236
|
+
{ method: "parseBoolean", class: "Boolean", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection", "xss", "crlf", "log_injection", "xpath_injection", "ldap_injection", "xxe"] },
|
|
12234
12237
|
// Java UUID parse — UUID.fromString rejects non-UUID strings
|
|
12235
12238
|
{ method: "fromString", class: "UUID", removes: ["sql_injection", "command_injection", "path_traversal", "code_injection"] },
|
|
12236
12239
|
// JavaScript numeric coercion (Number/parseInt/parseFloat already covered above; add path_traversal/code_injection)
|
|
@@ -13424,8 +13427,11 @@ function matchesSinkPattern(call, pattern, typeHierarchy, language) {
|
|
|
13424
13427
|
if (pattern.class === "constructor") {
|
|
13425
13428
|
return true;
|
|
13426
13429
|
}
|
|
13430
|
+
const subtypeArgArityOk = !pattern.arg_positions || pattern.arg_positions.length === 0 || pattern.arg_positions.every((pos) => pos < (call.arguments?.length ?? 0));
|
|
13427
13431
|
if (call.receiver_type && call.receiver_type === pattern.class) {
|
|
13432
|
+
} else if (call.receiver_type && typeHierarchy && subtypeArgArityOk && typeHierarchy.isSubtypeOf(call.receiver_type, pattern.class)) {
|
|
13428
13433
|
} else if (call.receiver_type_fqn && call.receiver_type_fqn.endsWith("." + pattern.class)) {
|
|
13434
|
+
} else if (call.receiver_type_fqn && typeHierarchy && subtypeArgArityOk && typeHierarchy.isSubtypeOf(call.receiver_type_fqn, pattern.class)) {
|
|
13429
13435
|
} else if (call.receiver && !receiverMightBeClass(call.receiver, pattern.class)) {
|
|
13430
13436
|
if (typeHierarchy && typeHierarchy.couldBeType(call.receiver, pattern.class)) {
|
|
13431
13437
|
return true;
|
|
@@ -13980,6 +13986,23 @@ var CodeGraph = class {
|
|
|
13980
13986
|
}
|
|
13981
13987
|
return this._chainsByFromDef;
|
|
13982
13988
|
}
|
|
13989
|
+
/**
|
|
13990
|
+
* Mirror of chainsByFromDef keyed by chain.to_def. Enables backward
|
|
13991
|
+
* walks from a use's reaching def to earlier defs in the chain
|
|
13992
|
+
* (cognium-dev #238 — DFG-walk sanitizer credit).
|
|
13993
|
+
*/
|
|
13994
|
+
_chainsByToDef = null;
|
|
13995
|
+
get chainsByToDef() {
|
|
13996
|
+
if (!this._chainsByToDef) {
|
|
13997
|
+
this._chainsByToDef = /* @__PURE__ */ new Map();
|
|
13998
|
+
for (const chain of this.ir.dfg.chains ?? []) {
|
|
13999
|
+
const arr = this._chainsByToDef.get(chain.to_def) ?? [];
|
|
14000
|
+
arr.push(chain);
|
|
14001
|
+
this._chainsByToDef.set(chain.to_def, arr);
|
|
14002
|
+
}
|
|
14003
|
+
}
|
|
14004
|
+
return this._chainsByToDef;
|
|
14005
|
+
}
|
|
13983
14006
|
// ---------------------------------------------------------------------------
|
|
13984
14007
|
// Call indexes
|
|
13985
14008
|
// ---------------------------------------------------------------------------
|
|
@@ -14150,6 +14173,43 @@ var CodeGraph = class {
|
|
|
14150
14173
|
}
|
|
14151
14174
|
};
|
|
14152
14175
|
|
|
14176
|
+
// src/analysis/dfg-walk.ts
|
|
14177
|
+
function walkBackwardDefs(startDefId, chainsByToDef, defById, options = {}) {
|
|
14178
|
+
const maxHops = options.maxHops ?? 32;
|
|
14179
|
+
const visited = /* @__PURE__ */ new Set();
|
|
14180
|
+
const lines = /* @__PURE__ */ new Set();
|
|
14181
|
+
let hopCapReached = false;
|
|
14182
|
+
const startDef = defById.get(startDefId);
|
|
14183
|
+
if (!startDef) {
|
|
14184
|
+
return { visited, lines, hopCapReached: false };
|
|
14185
|
+
}
|
|
14186
|
+
visited.add(startDefId);
|
|
14187
|
+
lines.add(startDef.line);
|
|
14188
|
+
const queue = [startDefId];
|
|
14189
|
+
let hops = 0;
|
|
14190
|
+
while (queue.length > 0) {
|
|
14191
|
+
if (hops >= maxHops) {
|
|
14192
|
+
hopCapReached = true;
|
|
14193
|
+
break;
|
|
14194
|
+
}
|
|
14195
|
+
hops++;
|
|
14196
|
+
const currentId = queue.shift();
|
|
14197
|
+
const incoming = chainsByToDef.get(currentId);
|
|
14198
|
+
if (!incoming) continue;
|
|
14199
|
+
for (const chain of incoming) {
|
|
14200
|
+
const fromId = chain.from_def;
|
|
14201
|
+
if (visited.has(fromId)) continue;
|
|
14202
|
+
visited.add(fromId);
|
|
14203
|
+
const fromDef = defById.get(fromId);
|
|
14204
|
+
if (fromDef) {
|
|
14205
|
+
lines.add(fromDef.line);
|
|
14206
|
+
}
|
|
14207
|
+
queue.push(fromId);
|
|
14208
|
+
}
|
|
14209
|
+
}
|
|
14210
|
+
return { visited, lines, hopCapReached };
|
|
14211
|
+
}
|
|
14212
|
+
|
|
14153
14213
|
// src/analysis/taint-propagation.ts
|
|
14154
14214
|
function buildSanitizersByLine(sanitizers) {
|
|
14155
14215
|
const out2 = /* @__PURE__ */ new Map();
|
|
@@ -14237,7 +14297,12 @@ function propagateTaint(graphOrDfg, callsOrSources, sourcesOrSinks, sinksOrSanit
|
|
|
14237
14297
|
taintInfo.line,
|
|
14238
14298
|
sink.line,
|
|
14239
14299
|
sink.type,
|
|
14240
|
-
sanitizersByLine
|
|
14300
|
+
sanitizersByLine,
|
|
14301
|
+
{
|
|
14302
|
+
startDefId: use.def_id,
|
|
14303
|
+
chainsByToDef: graph.chainsByToDef,
|
|
14304
|
+
defById
|
|
14305
|
+
}
|
|
14241
14306
|
);
|
|
14242
14307
|
if (!isSanitized.sanitized) {
|
|
14243
14308
|
const source = sources.find((s) => s.line === taintInfo.sourceLine);
|
|
@@ -14375,20 +14440,39 @@ var KNOWN_SINK_TYPES = /* @__PURE__ */ new Set([
|
|
|
14375
14440
|
"crlf",
|
|
14376
14441
|
"mass_assignment"
|
|
14377
14442
|
]);
|
|
14378
|
-
function checkSanitized(_fromLine, toLine, sinkType, sanitizersByLine) {
|
|
14379
|
-
const sanitizersAtTarget = sanitizersByLine.get(toLine);
|
|
14380
|
-
if (!sanitizersAtTarget || sanitizersAtTarget.length === 0) {
|
|
14381
|
-
return { sanitized: false };
|
|
14382
|
-
}
|
|
14443
|
+
function checkSanitized(_fromLine, toLine, sinkType, sanitizersByLine, ctx) {
|
|
14383
14444
|
const isKnownSinkType = KNOWN_SINK_TYPES.has(sinkType);
|
|
14384
|
-
|
|
14385
|
-
|
|
14386
|
-
|
|
14445
|
+
const sanitizersAtTarget = sanitizersByLine.get(toLine);
|
|
14446
|
+
if (sanitizersAtTarget && sanitizersAtTarget.length > 0) {
|
|
14447
|
+
for (const san of sanitizersAtTarget) {
|
|
14448
|
+
if (isKnownSinkType) {
|
|
14449
|
+
if (san.sanitizes.includes(sinkType)) {
|
|
14450
|
+
return { sanitized: true, sanitizer: san };
|
|
14451
|
+
}
|
|
14452
|
+
} else if (san.sanitizes.length > 0) {
|
|
14387
14453
|
return { sanitized: true, sanitizer: san };
|
|
14388
14454
|
}
|
|
14389
|
-
}
|
|
14390
|
-
|
|
14391
|
-
|
|
14455
|
+
}
|
|
14456
|
+
}
|
|
14457
|
+
if (ctx) {
|
|
14458
|
+
const walk = walkBackwardDefs(
|
|
14459
|
+
ctx.startDefId,
|
|
14460
|
+
ctx.chainsByToDef,
|
|
14461
|
+
ctx.defById,
|
|
14462
|
+
{ maxHops: ctx.maxHops ?? 32 }
|
|
14463
|
+
);
|
|
14464
|
+
for (const line of walk.lines) {
|
|
14465
|
+
if (line === toLine) continue;
|
|
14466
|
+
const sansAtLine = sanitizersByLine.get(line);
|
|
14467
|
+
if (!sansAtLine || sansAtLine.length === 0) continue;
|
|
14468
|
+
for (const san of sansAtLine) {
|
|
14469
|
+
if (isKnownSinkType) {
|
|
14470
|
+
if (san.sanitizes.includes(sinkType)) {
|
|
14471
|
+
return { sanitized: true, sanitizer: san };
|
|
14472
|
+
}
|
|
14473
|
+
} else if (san.sanitizes.length > 0) {
|
|
14474
|
+
return { sanitized: true, sanitizer: san };
|
|
14475
|
+
}
|
|
14392
14476
|
}
|
|
14393
14477
|
}
|
|
14394
14478
|
}
|
|
@@ -27,6 +27,13 @@ export declare class CodeGraph {
|
|
|
27
27
|
get usesByDefId(): Map<number, DFGUse[]>;
|
|
28
28
|
private _chainsByFromDef;
|
|
29
29
|
get chainsByFromDef(): Map<number, DFGChain[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Mirror of chainsByFromDef keyed by chain.to_def. Enables backward
|
|
32
|
+
* walks from a use's reaching def to earlier defs in the chain
|
|
33
|
+
* (cognium-dev #238 — DFG-walk sanitizer credit).
|
|
34
|
+
*/
|
|
35
|
+
private _chainsByToDef;
|
|
36
|
+
get chainsByToDef(): Map<number, DFGChain[]>;
|
|
30
37
|
private _callsByLine;
|
|
31
38
|
get callsByLine(): Map<number, CallInfo[]>;
|
|
32
39
|
private _callsByMethod;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-graph.d.ts","sourceRoot":"","sources":["../../src/graph/code-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,SAAS;IACpB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;gBAEV,EAAE,EAAE,QAAQ;IAQxB,OAAO,CAAC,QAAQ,CAAoC;IACpD,IAAI,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQjC;IAED,OAAO,CAAC,WAAW,CAAsC;IACzD,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAUtC;IAED,OAAO,CAAC,UAAU,CAAsC;IACxD,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAUrC;IAED,OAAO,CAAC,WAAW,CAAsC;IACzD,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAUtC;IAED,OAAO,CAAC,YAAY,CAAsC;IAC1D,IAAI,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAYvC;IAED,OAAO,CAAC,gBAAgB,CAAwC;IAChE,IAAI,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAU7C;IAMD,OAAO,CAAC,YAAY,CAAwC;IAC5D,IAAI,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAUzC;IAED,OAAO,CAAC,cAAc,CAAwC;IAC9D,IAAI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAU3C;IAMD,OAAO,CAAC,cAAc,CAA2E;IACjG,IAAI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC,CAY9E;IAED;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI;IAezE,OAAO,CAAC,iBAAiB,CAA8C;IACvE,IAAI,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAUpD;IAMD,uDAAuD;IACvD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAIlC,uDAAuD;IACvD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAIlC,2EAA2E;IAC3E,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAIlC,yDAAyD;IACzD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IAIrC,mEAAmE;IACnE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE;IAIrC;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAU/E,OAAO,CAAC,UAAU,CAAsC;IACxD,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAQrC;IAED;;;;;;;;;;;;OAYG;IACH,UAAU,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAa7D;;;;;;OAMG;IACH,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;CAiBvD"}
|
|
1
|
+
{"version":3,"file":"code-graph.d.ts","sourceRoot":"","sources":["../../src/graph/code-graph.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/code-graph.js
CHANGED
|
@@ -90,6 +90,23 @@ export class CodeGraph {
|
|
|
90
90
|
}
|
|
91
91
|
return this._chainsByFromDef;
|
|
92
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Mirror of chainsByFromDef keyed by chain.to_def. Enables backward
|
|
95
|
+
* walks from a use's reaching def to earlier defs in the chain
|
|
96
|
+
* (cognium-dev #238 — DFG-walk sanitizer credit).
|
|
97
|
+
*/
|
|
98
|
+
_chainsByToDef = null;
|
|
99
|
+
get chainsByToDef() {
|
|
100
|
+
if (!this._chainsByToDef) {
|
|
101
|
+
this._chainsByToDef = new Map();
|
|
102
|
+
for (const chain of this.ir.dfg.chains ?? []) {
|
|
103
|
+
const arr = this._chainsByToDef.get(chain.to_def) ?? [];
|
|
104
|
+
arr.push(chain);
|
|
105
|
+
this._chainsByToDef.set(chain.to_def, arr);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return this._chainsByToDef;
|
|
109
|
+
}
|
|
93
110
|
// ---------------------------------------------------------------------------
|
|
94
111
|
// Call indexes
|
|
95
112
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-graph.js","sourceRoot":"","sources":["../../src/graph/code-graph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-graph.js","sourceRoot":"","sources":["../../src/graph/code-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -124,4 +124,19 @@ export declare class TypeHierarchyResolver {
|
|
|
124
124
|
* These are standard JDK types that code often extends/implements
|
|
125
125
|
*/
|
|
126
126
|
export declare function createWithJdkTypes(): TypeHierarchyResolver;
|
|
127
|
+
/**
|
|
128
|
+
* Pre-registered type hierarchies for widely used third-party libraries.
|
|
129
|
+
*
|
|
130
|
+
* These are strictly additive facts — code that supplies its own IR types
|
|
131
|
+
* for these classes overrides the pre-registered facts via the normal
|
|
132
|
+
* `addFromIR()` path. Purpose: allow sink patterns keyed on a base class /
|
|
133
|
+
* interface (e.g. `HttpClient.execute`) to match subtype receivers
|
|
134
|
+
* (`CloseableHttpClient`, `InternalHttpClient`, etc.) via
|
|
135
|
+
* `TypeHierarchyResolver.isSubtypeOf()`.
|
|
136
|
+
*
|
|
137
|
+
* Currently registered:
|
|
138
|
+
* - Apache HttpClient 4.x (`org.apache.http.*`)
|
|
139
|
+
* - Apache HttpClient 5.x (`org.apache.hc.client5.*`)
|
|
140
|
+
*/
|
|
141
|
+
export declare function registerCommonLibraries(resolver: TypeHierarchyResolver): void;
|
|
127
142
|
//# sourceMappingURL=type-hierarchy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-hierarchy.d.ts","sourceRoot":"","sources":["../../src/resolution/type-hierarchy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,IAAI,iBAAiB,EAGlC,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;IACrC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAEhC,OAAO,CAAC,KAAK,CAAoC;IAGjD,OAAO,CAAC,SAAS,CAAuC;IAGxD,OAAO,CAAC,QAAQ,CAAuC;IAGvD,OAAO,CAAC,eAAe,CAAuC;IAG9D,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,UAAU,CAAoC;IAEtD;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM/C;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,GAAE,MAAM,GAAG,IAAW,GAAG,IAAI;IAsDrF;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAK9C;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IA0B3C;;OAEG;IACH,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE;IAKzD;;OAEG;IACH,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE;IAyCtD;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAiB3D;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAerE;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAK3C;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,EAAE;IAQ9C;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK7C;;;OAGG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAwB/D;;OAEG;IACH,mBAAmB,IAAI,iBAAiB;IAwBxC;;OAEG;IACH,QAAQ,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAUtF;;OAEG;IACH,WAAW,IAAI,QAAQ,EAAE;IAIzB;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;IACH,OAAO,CAAC,UAAU;IAalB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,UAAU;CAInB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,qBAAqB,
|
|
1
|
+
{"version":3,"file":"type-hierarchy.d.ts","sourceRoot":"","sources":["../../src/resolution/type-hierarchy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,IAAI,iBAAiB,EAGlC,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;IACrC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAEhC,OAAO,CAAC,KAAK,CAAoC;IAGjD,OAAO,CAAC,SAAS,CAAuC;IAGxD,OAAO,CAAC,QAAQ,CAAuC;IAGvD,OAAO,CAAC,eAAe,CAAuC;IAG9D,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,UAAU,CAAoC;IAEtD;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM/C;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,GAAE,MAAM,GAAG,IAAW,GAAG,IAAI;IAsDrF;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAK9C;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IA0B3C;;OAEG;IACH,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE;IAKzD;;OAEG;IACH,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE;IAyCtD;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAiB3D;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAerE;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAK3C;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,EAAE;IAQ9C;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK7C;;;OAGG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAwB/D;;OAEG;IACH,mBAAmB,IAAI,iBAAiB;IAwBxC;;OAEG;IACH,QAAQ,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAUtF;;OAEG;IACH,WAAW,IAAI,QAAQ,EAAE;IAIzB;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;IACH,OAAO,CAAC,UAAU;IAalB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,UAAU;CAInB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,qBAAqB,CAoL1D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAgJ7E"}
|
|
@@ -523,6 +523,165 @@ export function createWithJdkTypes() {
|
|
|
523
523
|
for (const type of [...jdbcTypes, ...ioTypes, ...servletTypes]) {
|
|
524
524
|
resolver.addType(type, 'jdk', type.package);
|
|
525
525
|
}
|
|
526
|
+
// Add common third-party library hierarchies
|
|
527
|
+
registerCommonLibraries(resolver);
|
|
526
528
|
return resolver;
|
|
527
529
|
}
|
|
530
|
+
/**
|
|
531
|
+
* Pre-registered type hierarchies for widely used third-party libraries.
|
|
532
|
+
*
|
|
533
|
+
* These are strictly additive facts — code that supplies its own IR types
|
|
534
|
+
* for these classes overrides the pre-registered facts via the normal
|
|
535
|
+
* `addFromIR()` path. Purpose: allow sink patterns keyed on a base class /
|
|
536
|
+
* interface (e.g. `HttpClient.execute`) to match subtype receivers
|
|
537
|
+
* (`CloseableHttpClient`, `InternalHttpClient`, etc.) via
|
|
538
|
+
* `TypeHierarchyResolver.isSubtypeOf()`.
|
|
539
|
+
*
|
|
540
|
+
* Currently registered:
|
|
541
|
+
* - Apache HttpClient 4.x (`org.apache.http.*`)
|
|
542
|
+
* - Apache HttpClient 5.x (`org.apache.hc.client5.*`)
|
|
543
|
+
*/
|
|
544
|
+
export function registerCommonLibraries(resolver) {
|
|
545
|
+
// Apache HttpClient 4.x — org.apache.http.*
|
|
546
|
+
const apacheHttpClient4x = [
|
|
547
|
+
{
|
|
548
|
+
name: 'HttpClient',
|
|
549
|
+
kind: 'interface',
|
|
550
|
+
package: 'org.apache.http.client',
|
|
551
|
+
extends: null,
|
|
552
|
+
implements: [],
|
|
553
|
+
annotations: [],
|
|
554
|
+
methods: [],
|
|
555
|
+
fields: [],
|
|
556
|
+
start_line: 0,
|
|
557
|
+
end_line: 0,
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
name: 'AbstractHttpClient',
|
|
561
|
+
kind: 'class',
|
|
562
|
+
package: 'org.apache.http.impl.client',
|
|
563
|
+
extends: null,
|
|
564
|
+
implements: ['org.apache.http.client.HttpClient'],
|
|
565
|
+
annotations: [],
|
|
566
|
+
methods: [],
|
|
567
|
+
fields: [],
|
|
568
|
+
start_line: 0,
|
|
569
|
+
end_line: 0,
|
|
570
|
+
},
|
|
571
|
+
{
|
|
572
|
+
name: 'CloseableHttpClient',
|
|
573
|
+
kind: 'class',
|
|
574
|
+
package: 'org.apache.http.impl.client',
|
|
575
|
+
extends: null,
|
|
576
|
+
implements: ['org.apache.http.client.HttpClient'],
|
|
577
|
+
annotations: [],
|
|
578
|
+
methods: [],
|
|
579
|
+
fields: [],
|
|
580
|
+
start_line: 0,
|
|
581
|
+
end_line: 0,
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
name: 'InternalHttpClient',
|
|
585
|
+
kind: 'class',
|
|
586
|
+
package: 'org.apache.http.impl.client',
|
|
587
|
+
extends: 'org.apache.http.impl.client.CloseableHttpClient',
|
|
588
|
+
implements: [],
|
|
589
|
+
annotations: [],
|
|
590
|
+
methods: [],
|
|
591
|
+
fields: [],
|
|
592
|
+
start_line: 0,
|
|
593
|
+
end_line: 0,
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
name: 'MinimalHttpClient',
|
|
597
|
+
kind: 'class',
|
|
598
|
+
package: 'org.apache.http.impl.client',
|
|
599
|
+
extends: 'org.apache.http.impl.client.CloseableHttpClient',
|
|
600
|
+
implements: [],
|
|
601
|
+
annotations: [],
|
|
602
|
+
methods: [],
|
|
603
|
+
fields: [],
|
|
604
|
+
start_line: 0,
|
|
605
|
+
end_line: 0,
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
name: 'DefaultHttpClient',
|
|
609
|
+
kind: 'class',
|
|
610
|
+
package: 'org.apache.http.impl.client',
|
|
611
|
+
extends: 'org.apache.http.impl.client.AbstractHttpClient',
|
|
612
|
+
implements: [],
|
|
613
|
+
annotations: [],
|
|
614
|
+
methods: [],
|
|
615
|
+
fields: [],
|
|
616
|
+
start_line: 0,
|
|
617
|
+
end_line: 0,
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
name: 'SystemDefaultHttpClient',
|
|
621
|
+
kind: 'class',
|
|
622
|
+
package: 'org.apache.http.impl.client',
|
|
623
|
+
extends: 'org.apache.http.impl.client.DefaultHttpClient',
|
|
624
|
+
implements: [],
|
|
625
|
+
annotations: [],
|
|
626
|
+
methods: [],
|
|
627
|
+
fields: [],
|
|
628
|
+
start_line: 0,
|
|
629
|
+
end_line: 0,
|
|
630
|
+
},
|
|
631
|
+
];
|
|
632
|
+
// Apache HttpClient 5.x — org.apache.hc.client5.*
|
|
633
|
+
const apacheHttpClient5x = [
|
|
634
|
+
{
|
|
635
|
+
name: 'HttpClient',
|
|
636
|
+
kind: 'interface',
|
|
637
|
+
package: 'org.apache.hc.client5.http.classic',
|
|
638
|
+
extends: null,
|
|
639
|
+
implements: [],
|
|
640
|
+
annotations: [],
|
|
641
|
+
methods: [],
|
|
642
|
+
fields: [],
|
|
643
|
+
start_line: 0,
|
|
644
|
+
end_line: 0,
|
|
645
|
+
},
|
|
646
|
+
{
|
|
647
|
+
name: 'CloseableHttpClient',
|
|
648
|
+
kind: 'class',
|
|
649
|
+
package: 'org.apache.hc.client5.http.impl.classic',
|
|
650
|
+
extends: null,
|
|
651
|
+
implements: ['org.apache.hc.client5.http.classic.HttpClient'],
|
|
652
|
+
annotations: [],
|
|
653
|
+
methods: [],
|
|
654
|
+
fields: [],
|
|
655
|
+
start_line: 0,
|
|
656
|
+
end_line: 0,
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
name: 'InternalHttpClient',
|
|
660
|
+
kind: 'class',
|
|
661
|
+
package: 'org.apache.hc.client5.http.impl.classic',
|
|
662
|
+
extends: 'org.apache.hc.client5.http.impl.classic.CloseableHttpClient',
|
|
663
|
+
implements: [],
|
|
664
|
+
annotations: [],
|
|
665
|
+
methods: [],
|
|
666
|
+
fields: [],
|
|
667
|
+
start_line: 0,
|
|
668
|
+
end_line: 0,
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
name: 'MinimalHttpClient',
|
|
672
|
+
kind: 'class',
|
|
673
|
+
package: 'org.apache.hc.client5.http.impl.classic',
|
|
674
|
+
extends: 'org.apache.hc.client5.http.impl.classic.CloseableHttpClient',
|
|
675
|
+
implements: [],
|
|
676
|
+
annotations: [],
|
|
677
|
+
methods: [],
|
|
678
|
+
fields: [],
|
|
679
|
+
start_line: 0,
|
|
680
|
+
end_line: 0,
|
|
681
|
+
},
|
|
682
|
+
];
|
|
683
|
+
for (const type of [...apacheHttpClient4x, ...apacheHttpClient5x]) {
|
|
684
|
+
resolver.addType(type, 'common-libraries', type.package);
|
|
685
|
+
}
|
|
686
|
+
}
|
|
528
687
|
//# sourceMappingURL=type-hierarchy.js.map
|